Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d17b40796c | ||
|
|
121e19b33d | ||
|
|
a4e4f9cb52 | ||
|
|
a442264953 | ||
|
|
1118aa2af8 | ||
|
|
32ff42d583 | ||
|
|
7895cac17f | ||
|
|
b891f6c35e | ||
|
|
307abbf085 | ||
|
|
9acbdb8367 |
@@ -2,12 +2,4 @@
|
|||||||
|
|
||||||
See [pybricks-micropython/CHANGELOG.md][changelog] for the changes in each release.
|
See [pybricks-micropython/CHANGELOG.md][changelog] for the changes in each release.
|
||||||
|
|
||||||
This repository is frequently updated to stay in sync with the implementation.
|
|
||||||
|
|
||||||
Major and minor versions are synchronized with `pybricks-micropython`, which
|
|
||||||
leads. Patch versions and prerelease version numbers may differ, as they may
|
|
||||||
be bumped for every small change or typo in the docs.
|
|
||||||
|
|
||||||
The version for this repository is also used for the `@pybricks/jedi` and `@pybricks/ide-docs` npm packages.
|
|
||||||
|
|
||||||
[changelog]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md
|
[changelog]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md
|
||||||
|
|||||||
@@ -168,6 +168,18 @@ Building all release artifacts (docs, jedi, npm packages):
|
|||||||
# Linux/macOS only
|
# Linux/macOS only
|
||||||
./build-all.sh
|
./build-all.sh
|
||||||
|
|
||||||
|
** version notes **
|
||||||
|
|
||||||
|
This repository is frequently updated to stay in sync with the firmware
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
Major and minor versions are synchronized with `pybricks-micropython`, which
|
||||||
|
leads. Patch versions and prerelease version numbers may differ, as they may
|
||||||
|
be bumped for every small change or typo in the docs.
|
||||||
|
|
||||||
|
The version for this repository is also used for the `@pybricks/jedi` and
|
||||||
|
`@pybricks/ide-docs` npm packages.
|
||||||
|
|
||||||
[vscode]: https://code.visualstudio.com/
|
[vscode]: https://code.visualstudio.com/
|
||||||
[git]: https://git-scm.com/
|
[git]: https://git-scm.com/
|
||||||
[python]: https://www.python.org/
|
[python]: https://www.python.org/
|
||||||
|
|||||||
@@ -384,7 +384,7 @@ def on_build_finished(app: Sphinx, exception):
|
|||||||
for name, (project, version, url, display) in entries.items():
|
for name, (project, version, url, display) in entries.items():
|
||||||
index[name] = url
|
index[name] = url
|
||||||
|
|
||||||
out_path = os.path.join(app.outdir, "index.json")
|
out_path = os.path.join(app.outdir, "namespace_index.json")
|
||||||
with open(out_path, "w") as f:
|
with open(out_path, "w") as f:
|
||||||
json.dump(index, f, indent=2, sort_keys=True)
|
json.dump(index, f, indent=2, sort_keys=True)
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,994 @@
|
|||||||
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 275.3828125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="275.3828125" height="42" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||||
|
.blocklyEditableText:not(.editing):hover>rect,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||||
|
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 2;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||||
|
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||||
|
fill: #fff !important;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||||
|
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||||
|
stroke: #ffffff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
|
fill-opacity: 0.2;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySvg {
|
||||||
|
background-color: #fff;
|
||||||
|
outline: none;
|
||||||
|
overflow: hidden; /* IE overflows by default. */
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 99999; /* big value for bootstrap3 compatibility */
|
||||||
|
}
|
||||||
|
|
||||||
|
.injectionDiv {
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden; /* So blocks in drag surface disappear at edges */
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNonSelectable {
|
||||||
|
user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyBlockCanvas.blocklyCanvasTransitioning,
|
||||||
|
.blocklyBubbleCanvas.blocklyCanvasTransitioning {
|
||||||
|
transition: transform .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTooltipDiv {
|
||||||
|
background-color: #ffffc7;
|
||||||
|
border: 1px solid #ddc;
|
||||||
|
box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);
|
||||||
|
color: #000;
|
||||||
|
display: none;
|
||||||
|
font: 9pt sans-serif;
|
||||||
|
opacity: .9;
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100000; /* big value for bootstrap3 compatibility */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
display: none;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #dadce0;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 4px;
|
||||||
|
box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv.blocklyFocused {
|
||||||
|
box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownContent {
|
||||||
|
max-height: 300px; /* @todo: spec for maximum height. */
|
||||||
|
overflow: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownArrow {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
z-index: -1;
|
||||||
|
background-color: inherit;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownButton {
|
||||||
|
display: inline-block;
|
||||||
|
float: left;
|
||||||
|
padding: 0;
|
||||||
|
margin: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
outline: none;
|
||||||
|
border: 1px solid;
|
||||||
|
transition: box-shadow .1s;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyArrowTop {
|
||||||
|
border-top: 1px solid;
|
||||||
|
border-left: 1px solid;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyArrowBottom {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
border-right: 1px solid;
|
||||||
|
border-bottom-right-radius: 4px;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeSE {
|
||||||
|
cursor: se-resize;
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeSW {
|
||||||
|
cursor: sw-resize;
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeLine {
|
||||||
|
stroke: #515A5A;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHighlightedConnectionPath {
|
||||||
|
fill: none;
|
||||||
|
stroke: #fc3;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyPathLight {
|
||||||
|
fill: none;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected>.blocklyPathLight {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDraggable {
|
||||||
|
cursor: grab;
|
||||||
|
cursor: -webkit-grab;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging {
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Changes cursor on mouse down. Not effective in Firefox because of
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */
|
||||||
|
.blocklyDraggable:active {
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging.blocklyDraggingDelete {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging>.blocklyPath,
|
||||||
|
.blocklyDragging>.blocklyPathLight {
|
||||||
|
fill-opacity: .8;
|
||||||
|
stroke-opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging>.blocklyPathDark {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDisabled>.blocklyPath {
|
||||||
|
fill-opacity: .5;
|
||||||
|
stroke-opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDisabled>.blocklyPathLight,
|
||||||
|
.blocklyDisabled>.blocklyPathDark {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyInsertionMarker>.blocklyPath,
|
||||||
|
.blocklyInsertionMarker>.blocklyPathLight,
|
||||||
|
.blocklyInsertionMarker>.blocklyPathDark {
|
||||||
|
fill-opacity: .2;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultilineText {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNonEditableText>text {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyout {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyText text {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Don't allow users to select text. It gets annoying when trying to
|
||||||
|
drag a block and selected text moves instead.
|
||||||
|
*/
|
||||||
|
.blocklySvg text {
|
||||||
|
user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
cursor: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFieldDropdown:not(.blocklyHidden) {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconGroup {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconGroup:not(:hover),
|
||||||
|
.blocklyIconGroupReadonly {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconShape {
|
||||||
|
fill: #00f;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconSymbol {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMinimalBody {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHtmlInput {
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
outline: none;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove the increase and decrease arrows on the field number editor */
|
||||||
|
input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button,
|
||||||
|
input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=number] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMainBackground {
|
||||||
|
stroke-width: 1;
|
||||||
|
stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMutatorBackground {
|
||||||
|
fill: #fff;
|
||||||
|
stroke: #ddd;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutBackground {
|
||||||
|
fill: #ddd;
|
||||||
|
fill-opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMainWorkspaceScrollbar {
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutScrollbar {
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarHorizontal,
|
||||||
|
.blocklyScrollbarVertical {
|
||||||
|
position: absolute;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarBackground {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarHandle {
|
||||||
|
fill: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
|
||||||
|
.blocklyScrollbarHandle:hover {
|
||||||
|
fill: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Darken flyout scrollbars due to being on a grey background. */
|
||||||
|
/* By contrast, workspace scrollbars are on a white background. */
|
||||||
|
.blocklyFlyout .blocklyScrollbarHandle {
|
||||||
|
fill: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
|
||||||
|
.blocklyFlyout .blocklyScrollbarHandle:hover {
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyInvalidInput {
|
||||||
|
background: #faa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyVerticalMarker {
|
||||||
|
stroke-width: 3px;
|
||||||
|
fill: rgba(255,255,255,.5);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyComputeCanvas {
|
||||||
|
position: absolute;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNoPointerEvents {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyContextMenu {
|
||||||
|
border-radius: 4px;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropdownMenu {
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropdownMenu .blocklyMenuItem {
|
||||||
|
/* 28px on the left for icon or checkbox. */
|
||||||
|
padding-left: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BiDi override for the resting state. */
|
||||||
|
.blocklyDropdownMenu .blocklyMenuItemRtl {
|
||||||
|
/* Flip left/right padding for BiDi. */
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv .blocklyMenu {
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
|
||||||
|
font: normal 13px Arial, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
outline: none;
|
||||||
|
padding: 4px 0;
|
||||||
|
position: absolute;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
max-height: 100%;
|
||||||
|
z-index: 20000; /* Arbitrary, but some apps depend on it... */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv .blocklyMenu.blocklyFocused {
|
||||||
|
box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv .blocklyMenu {
|
||||||
|
background: inherit; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
border: inherit; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
font: normal 13px "Helvetica Neue", Helvetica, sans-serif;
|
||||||
|
outline: none;
|
||||||
|
position: relative; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
z-index: 20000; /* Arbitrary, but some apps depend on it... */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: resting. */
|
||||||
|
.blocklyMenuItem {
|
||||||
|
border: none;
|
||||||
|
color: #000;
|
||||||
|
cursor: pointer;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
/* 7em on the right for shortcut. */
|
||||||
|
min-width: 7em;
|
||||||
|
padding: 6px 15px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: disabled. */
|
||||||
|
.blocklyMenuItemDisabled {
|
||||||
|
color: #ccc;
|
||||||
|
cursor: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: hover. */
|
||||||
|
.blocklyMenuItemHighlight {
|
||||||
|
background-color: rgba(0,0,0,.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: selected/checked. */
|
||||||
|
.blocklyMenuItemCheckbox {
|
||||||
|
height: 16px;
|
||||||
|
position: absolute;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMenuItemSelected .blocklyMenuItemCheckbox {
|
||||||
|
background: url(https://blockly-demo.appspot.com/static/media/sprites.png) no-repeat -48px -16px;
|
||||||
|
float: left;
|
||||||
|
margin-left: -24px;
|
||||||
|
position: static; /* Scroll with the menu. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMenuItemRtl .blocklyMenuItemCheckbox {
|
||||||
|
float: right;
|
||||||
|
margin-right: -24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyZoom>image, .blocklyZoom>svg>image {
|
||||||
|
opacity: .4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyZoom>image:active, .blocklyZoom>svg>image:active {
|
||||||
|
opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyCommentForeignObject {
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentRect {
|
||||||
|
fill: #E7DE8E;
|
||||||
|
stroke: #bcA903;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentTarget {
|
||||||
|
fill: transparent;
|
||||||
|
stroke: #bcA903;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentTargetFocused {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentHandleTarget {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentHandleTargetFocused {
|
||||||
|
fill: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFocused>.blocklyCommentRect {
|
||||||
|
fill: #B9B272;
|
||||||
|
stroke: #B9B272;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected>.blocklyCommentTarget {
|
||||||
|
stroke: #fc3;
|
||||||
|
stroke-width: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentDeleteIcon {
|
||||||
|
cursor: pointer;
|
||||||
|
fill: #000;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected > .blocklyCommentDeleteIcon {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDeleteIconShape {
|
||||||
|
fill: #000;
|
||||||
|
stroke: #000;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDeleteIconShape.blocklyDeleteIconHighlighted {
|
||||||
|
stroke: #fc3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyCommentTextarea {
|
||||||
|
background-color: #fef49c;
|
||||||
|
border: 0;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
outline: 0;
|
||||||
|
padding: 3px;
|
||||||
|
resize: none;
|
||||||
|
text-overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyAngleCircle {
|
||||||
|
stroke: #444;
|
||||||
|
stroke-width: 1;
|
||||||
|
fill: #ddd;
|
||||||
|
fill-opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleMarks {
|
||||||
|
stroke: #444;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleGauge {
|
||||||
|
fill: #f88;
|
||||||
|
fill-opacity: 0.8;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleLine {
|
||||||
|
stroke: #f00;
|
||||||
|
stroke-width: 2;
|
||||||
|
stroke-linecap: round;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyColourTable {
|
||||||
|
border-collapse: collapse;
|
||||||
|
display: block;
|
||||||
|
outline: none;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td {
|
||||||
|
border: 0.5px solid #888;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td.blocklyColourHighlighted {
|
||||||
|
border-color: #eee;
|
||||||
|
box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourSelected, .blocklyColourSelected:hover {
|
||||||
|
border-color: #eee !important;
|
||||||
|
outline: 1px solid #333;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyHtmlTextAreaInput {
|
||||||
|
font-family: monospace;
|
||||||
|
resize: none;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 100%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHtmlTextAreaInputOverflowedY {
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyFlyoutButton {
|
||||||
|
fill: #888;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutButtonShadow {
|
||||||
|
fill: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutButton:hover {
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutLabel {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutLabelBackground {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyTreeRow:not(.blocklyTreeSelected):hover {
|
||||||
|
background-color: rgba(255, 255, 255, .2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[layout="h"] .blocklyToolboxCategory {
|
||||||
|
margin: 1px 5px 1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"][layout="h"] .blocklyToolboxCategory {
|
||||||
|
margin: 1px 0 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeRow {
|
||||||
|
height: 22px;
|
||||||
|
line-height: 22px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
padding-right: 8px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {
|
||||||
|
margin-left: 8px;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIcon {
|
||||||
|
background-image: url(https://blockly-demo.appspot.com/static/media/sprites.png);
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
visibility: hidden;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIconClosed {
|
||||||
|
background-position: -32px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeIconClosed {
|
||||||
|
background-position: 0 -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected>.blocklyTreeIconClosed {
|
||||||
|
background-position: -32px -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeSelected>.blocklyTreeIconClosed {
|
||||||
|
background-position: 0 -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIconOpen {
|
||||||
|
background-position: -16px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected>.blocklyTreeIconOpen {
|
||||||
|
background-position: -16px -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeLabel {
|
||||||
|
cursor: default;
|
||||||
|
font: 16px sans-serif;
|
||||||
|
padding: 0 3px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDelete .blocklyTreeLabel {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected .blocklyTreeLabel {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyTreeSeparator {
|
||||||
|
border-bottom: solid #e5e5e5 1px;
|
||||||
|
height: 0;
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[layout="h"] .blocklyTreeSeparator {
|
||||||
|
border-right: solid #e5e5e5 1px;
|
||||||
|
border-bottom: none;
|
||||||
|
height: auto;
|
||||||
|
margin: 0 5px 0 5px;
|
||||||
|
padding: 5px 0;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyToolboxDelete {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxGrab {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handclosed.cur"), auto;
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Category tree in Toolbox. */
|
||||||
|
.blocklyToolboxDiv {
|
||||||
|
background-color: #ddd;
|
||||||
|
overflow-x: visible;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 4px 0 4px 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 70; /* so blocks go under toolbox when dragging */
|
||||||
|
-webkit-tap-highlight-color: transparent; /* issue #1345 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxContents {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxContents:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyColourTable {
|
||||||
|
border-collapse: collapse;
|
||||||
|
display: block;
|
||||||
|
outline: none;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td {
|
||||||
|
border: 0.5px solid #888;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td.blocklyColourHighlighted {
|
||||||
|
border-color: #eee;
|
||||||
|
box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourSelected, .blocklyColourSelected:hover {
|
||||||
|
border-color: #eee !important;
|
||||||
|
outline: 1px solid #333;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.fieldColourSliderContainer {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
.fieldColourSliderContainer hr {
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #bbb;
|
||||||
|
}
|
||||||
|
.fieldColourSliderLabel {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
font: 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper {
|
||||||
|
appearance: none;
|
||||||
|
position: relative;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: transparent;
|
||||||
|
font: inherit;
|
||||||
|
color: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper:hover {
|
||||||
|
background: rgba(0,0,0,0.1)
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper input {
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper::before {
|
||||||
|
content: "Eyedropper";
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper::after {
|
||||||
|
content: "";
|
||||||
|
margin-left: 8px;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
background: currentColor;
|
||||||
|
pointer-events: none;
|
||||||
|
-webkit-mask-image: var(--customize-dial-symbol);
|
||||||
|
-webkit-mask-repeat: no-repeat;
|
||||||
|
-webkit-mask-position: center;
|
||||||
|
mask-image: var(--customize-dial-symbol);
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
mask-position: center;
|
||||||
|
--customize-dial-symbol: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"> <path stroke="black" strokewidth="1.414" fill="none" d="m 13 8 L 6 15 Q 3 18 2 21 Q 0 23 .5 23.5 Q 1 24 3 22 Q 6 21 9 18 L 16 11"/> <path fill="black" d="m 12 7 Q 11 6 12 5 Q 13 4 14 5 Q 15 6 16 5 Q 20 -1 22.5 1.5 Q 25 4 19 8 Q 18 9 19 10 Q 20 11 19 12 Q 18 13 17 12"/> </svg>');
|
||||||
|
}
|
||||||
|
.fieldColourSlider {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 150px;
|
||||||
|
height: 24px;
|
||||||
|
margin: 4px 8px 24px 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.fieldColourSlider:last-child {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
/* Webkit */
|
||||||
|
.fieldColourSlider::-webkit-slider-runnable-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 8px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-webkit-slider-thumb {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
margin-top: -4px;
|
||||||
|
}
|
||||||
|
/* Firefox */
|
||||||
|
.fieldColourSlider::-moz-range-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 8px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-moz-range-thumb {
|
||||||
|
background: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-moz-focus-outer {
|
||||||
|
/* override the focus border style */
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
/* IE */
|
||||||
|
.fieldColourSlider::-ms-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 12px;
|
||||||
|
width: 100%;
|
||||||
|
height: 24px;
|
||||||
|
/* remove default tick marks */
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-fill-lower {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-fill-upper {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-thumb {
|
||||||
|
background: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyMultilineText {
|
||||||
|
fill: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
|
opacity: .2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultiselect>image:hover, .blocklyMultiselect>svg>image:hover {
|
||||||
|
opacity: .4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultiselect>image:active, .blocklyMultiselect>svg>image:active {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 1)"><g data-id="yHRh+a$N=A!M1D(8v*f[" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 233.3828125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -233.3828125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="q33[pxK@e!ZG[~ugQ_H_" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 51.1171875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -51.1171875 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g class="blocklyEditableText" transform="translate(12,7)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9">radio</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(47.1171875,3)"/></g></g><g transform="translate(12,7)"><image height="25px" width="25px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMSAxNy43NyAxMC44ODUtMTAuODg1LTUuNTgxOS01LjU4MTl2MjIuMzkzbDUuNjc0NC01LjY3NDQtMTAuODU1LTEwLjg1NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgo8cGF0aCBkPSJtMjAuMjEzIDMuNWExMi43MjggMTIuNzI4IDAgMCAxIDMuNzI3OSA5IDEyLjcyOCAxMi43MjggMCAwIDEtMy43Mjc5IDkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KPHBhdGggZD0ibTE3LjA1OSA3LjQwNzVhNy4yMDE4IDcuMjAxOCAwIDAgMSAyLjEwOTMgNS4wOTI0IDcuMjAxOCA3LjIwMTggMCAwIDEtMi4xMDkzIDUuMDkyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgogIDwvZz4KPC9zdmc+"/></g><g transform="translate(45,4.5)"><image height="30px" width="3px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0yLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g transform="translate(147.1171875,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">observe</text></g><g class="blocklyEditableText" transform="translate(216.484375,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="44.8984375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">0</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(24.8984375,8.6)"/></g></g></g></svg>
|
||||||
|
After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,994 @@
|
|||||||
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 371.5265625 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="371.5265625" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||||
|
fill: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||||
|
.blocklyEditableText:not(.editing):hover>rect,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||||
|
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 2;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||||
|
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #575E75;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||||
|
fill: #fff !important;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||||
|
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||||
|
stroke: #ffffff;
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
|
}
|
||||||
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
|
fill-opacity: 0.2;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySvg {
|
||||||
|
background-color: #fff;
|
||||||
|
outline: none;
|
||||||
|
overflow: hidden; /* IE overflows by default. */
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 99999; /* big value for bootstrap3 compatibility */
|
||||||
|
}
|
||||||
|
|
||||||
|
.injectionDiv {
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden; /* So blocks in drag surface disappear at edges */
|
||||||
|
touch-action: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNonSelectable {
|
||||||
|
user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyBlockCanvas.blocklyCanvasTransitioning,
|
||||||
|
.blocklyBubbleCanvas.blocklyCanvasTransitioning {
|
||||||
|
transition: transform .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTooltipDiv {
|
||||||
|
background-color: #ffffc7;
|
||||||
|
border: 1px solid #ddc;
|
||||||
|
box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);
|
||||||
|
color: #000;
|
||||||
|
display: none;
|
||||||
|
font: 9pt sans-serif;
|
||||||
|
opacity: .9;
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100000; /* big value for bootstrap3 compatibility */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
display: none;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #dadce0;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 4px;
|
||||||
|
box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv.blocklyFocused {
|
||||||
|
box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownContent {
|
||||||
|
max-height: 300px; /* @todo: spec for maximum height. */
|
||||||
|
overflow: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownArrow {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
z-index: -1;
|
||||||
|
background-color: inherit;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownButton {
|
||||||
|
display: inline-block;
|
||||||
|
float: left;
|
||||||
|
padding: 0;
|
||||||
|
margin: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
outline: none;
|
||||||
|
border: 1px solid;
|
||||||
|
transition: box-shadow .1s;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyArrowTop {
|
||||||
|
border-top: 1px solid;
|
||||||
|
border-left: 1px solid;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyArrowBottom {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
border-right: 1px solid;
|
||||||
|
border-bottom-right-radius: 4px;
|
||||||
|
border-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeSE {
|
||||||
|
cursor: se-resize;
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeSW {
|
||||||
|
cursor: sw-resize;
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyResizeLine {
|
||||||
|
stroke: #515A5A;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHighlightedConnectionPath {
|
||||||
|
fill: none;
|
||||||
|
stroke: #fc3;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyPathLight {
|
||||||
|
fill: none;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected>.blocklyPathLight {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDraggable {
|
||||||
|
cursor: grab;
|
||||||
|
cursor: -webkit-grab;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging {
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Changes cursor on mouse down. Not effective in Firefox because of
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */
|
||||||
|
.blocklyDraggable:active {
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging.blocklyDraggingDelete {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging>.blocklyPath,
|
||||||
|
.blocklyDragging>.blocklyPathLight {
|
||||||
|
fill-opacity: .8;
|
||||||
|
stroke-opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDragging>.blocklyPathDark {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDisabled>.blocklyPath {
|
||||||
|
fill-opacity: .5;
|
||||||
|
stroke-opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDisabled>.blocklyPathLight,
|
||||||
|
.blocklyDisabled>.blocklyPathDark {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyInsertionMarker>.blocklyPath,
|
||||||
|
.blocklyInsertionMarker>.blocklyPathLight,
|
||||||
|
.blocklyInsertionMarker>.blocklyPathDark {
|
||||||
|
fill-opacity: .2;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultilineText {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNonEditableText>text {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyout {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyText text {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Don't allow users to select text. It gets annoying when trying to
|
||||||
|
drag a block and selected text moves instead.
|
||||||
|
*/
|
||||||
|
.blocklySvg text {
|
||||||
|
user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
cursor: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFieldDropdown:not(.blocklyHidden) {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconGroup {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconGroup:not(:hover),
|
||||||
|
.blocklyIconGroupReadonly {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconShape {
|
||||||
|
fill: #00f;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyIconSymbol {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMinimalBody {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHtmlInput {
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
outline: none;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove the increase and decrease arrows on the field number editor */
|
||||||
|
input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button,
|
||||||
|
input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=number] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMainBackground {
|
||||||
|
stroke-width: 1;
|
||||||
|
stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMutatorBackground {
|
||||||
|
fill: #fff;
|
||||||
|
stroke: #ddd;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutBackground {
|
||||||
|
fill: #ddd;
|
||||||
|
fill-opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMainWorkspaceScrollbar {
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutScrollbar {
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarHorizontal,
|
||||||
|
.blocklyScrollbarVertical {
|
||||||
|
position: absolute;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarBackground {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarHandle {
|
||||||
|
fill: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
|
||||||
|
.blocklyScrollbarHandle:hover {
|
||||||
|
fill: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Darken flyout scrollbars due to being on a grey background. */
|
||||||
|
/* By contrast, workspace scrollbars are on a white background. */
|
||||||
|
.blocklyFlyout .blocklyScrollbarHandle {
|
||||||
|
fill: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
|
||||||
|
.blocklyFlyout .blocklyScrollbarHandle:hover {
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyInvalidInput {
|
||||||
|
background: #faa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyVerticalMarker {
|
||||||
|
stroke-width: 3px;
|
||||||
|
fill: rgba(255,255,255,.5);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyComputeCanvas {
|
||||||
|
position: absolute;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyNoPointerEvents {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyContextMenu {
|
||||||
|
border-radius: 4px;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropdownMenu {
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropdownMenu .blocklyMenuItem {
|
||||||
|
/* 28px on the left for icon or checkbox. */
|
||||||
|
padding-left: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BiDi override for the resting state. */
|
||||||
|
.blocklyDropdownMenu .blocklyMenuItemRtl {
|
||||||
|
/* Flip left/right padding for BiDi. */
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv .blocklyMenu {
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
|
||||||
|
font: normal 13px Arial, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
outline: none;
|
||||||
|
padding: 4px 0;
|
||||||
|
position: absolute;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
max-height: 100%;
|
||||||
|
z-index: 20000; /* Arbitrary, but some apps depend on it... */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyWidgetDiv .blocklyMenu.blocklyFocused {
|
||||||
|
box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDropDownDiv .blocklyMenu {
|
||||||
|
background: inherit; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
border: inherit; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
font: normal 13px "Helvetica Neue", Helvetica, sans-serif;
|
||||||
|
outline: none;
|
||||||
|
position: relative; /* Compatibility with gapi, reset from goog-menu */
|
||||||
|
z-index: 20000; /* Arbitrary, but some apps depend on it... */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: resting. */
|
||||||
|
.blocklyMenuItem {
|
||||||
|
border: none;
|
||||||
|
color: #000;
|
||||||
|
cursor: pointer;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
/* 7em on the right for shortcut. */
|
||||||
|
min-width: 7em;
|
||||||
|
padding: 6px 15px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: disabled. */
|
||||||
|
.blocklyMenuItemDisabled {
|
||||||
|
color: #ccc;
|
||||||
|
cursor: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: hover. */
|
||||||
|
.blocklyMenuItemHighlight {
|
||||||
|
background-color: rgba(0,0,0,.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* State: selected/checked. */
|
||||||
|
.blocklyMenuItemCheckbox {
|
||||||
|
height: 16px;
|
||||||
|
position: absolute;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMenuItemSelected .blocklyMenuItemCheckbox {
|
||||||
|
background: url(https://blockly-demo.appspot.com/static/media/sprites.png) no-repeat -48px -16px;
|
||||||
|
float: left;
|
||||||
|
margin-left: -24px;
|
||||||
|
position: static; /* Scroll with the menu. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMenuItemRtl .blocklyMenuItemCheckbox {
|
||||||
|
float: right;
|
||||||
|
margin-right: -24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyZoom>image, .blocklyZoom>svg>image {
|
||||||
|
opacity: .4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyZoom>image:active, .blocklyZoom>svg>image:active {
|
||||||
|
opacity: .8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyCommentForeignObject {
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentRect {
|
||||||
|
fill: #E7DE8E;
|
||||||
|
stroke: #bcA903;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentTarget {
|
||||||
|
fill: transparent;
|
||||||
|
stroke: #bcA903;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentTargetFocused {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentHandleTarget {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentHandleTargetFocused {
|
||||||
|
fill: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFocused>.blocklyCommentRect {
|
||||||
|
fill: #B9B272;
|
||||||
|
stroke: #B9B272;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected>.blocklyCommentTarget {
|
||||||
|
stroke: #fc3;
|
||||||
|
stroke-width: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyCommentDeleteIcon {
|
||||||
|
cursor: pointer;
|
||||||
|
fill: #000;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklySelected > .blocklyCommentDeleteIcon {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDeleteIconShape {
|
||||||
|
fill: #000;
|
||||||
|
stroke: #000;
|
||||||
|
stroke-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyDeleteIconShape.blocklyDeleteIconHighlighted {
|
||||||
|
stroke: #fc3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyCommentTextarea {
|
||||||
|
background-color: #fef49c;
|
||||||
|
border: 0;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
outline: 0;
|
||||||
|
padding: 3px;
|
||||||
|
resize: none;
|
||||||
|
text-overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyAngleCircle {
|
||||||
|
stroke: #444;
|
||||||
|
stroke-width: 1;
|
||||||
|
fill: #ddd;
|
||||||
|
fill-opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleMarks {
|
||||||
|
stroke: #444;
|
||||||
|
stroke-width: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleGauge {
|
||||||
|
fill: #f88;
|
||||||
|
fill-opacity: 0.8;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyAngleLine {
|
||||||
|
stroke: #f00;
|
||||||
|
stroke-width: 2;
|
||||||
|
stroke-linecap: round;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyColourTable {
|
||||||
|
border-collapse: collapse;
|
||||||
|
display: block;
|
||||||
|
outline: none;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td {
|
||||||
|
border: 0.5px solid #888;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td.blocklyColourHighlighted {
|
||||||
|
border-color: #eee;
|
||||||
|
box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourSelected, .blocklyColourSelected:hover {
|
||||||
|
border-color: #eee !important;
|
||||||
|
outline: 1px solid #333;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyHtmlTextAreaInput {
|
||||||
|
font-family: monospace;
|
||||||
|
resize: none;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 100%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyHtmlTextAreaInputOverflowedY {
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyFlyoutButton {
|
||||||
|
fill: #888;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutButtonShadow {
|
||||||
|
fill: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutButton:hover {
|
||||||
|
fill: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutLabel {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutLabelBackground {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyTreeRow:not(.blocklyTreeSelected):hover {
|
||||||
|
background-color: rgba(255, 255, 255, .2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[layout="h"] .blocklyToolboxCategory {
|
||||||
|
margin: 1px 5px 1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"][layout="h"] .blocklyToolboxCategory {
|
||||||
|
margin: 1px 0 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeRow {
|
||||||
|
height: 22px;
|
||||||
|
line-height: 22px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
padding-right: 8px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {
|
||||||
|
margin-left: 8px;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIcon {
|
||||||
|
background-image: url(https://blockly-demo.appspot.com/static/media/sprites.png);
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
visibility: hidden;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIconClosed {
|
||||||
|
background-position: -32px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeIconClosed {
|
||||||
|
background-position: 0 -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected>.blocklyTreeIconClosed {
|
||||||
|
background-position: -32px -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[dir="RTL"] .blocklyTreeSelected>.blocklyTreeIconClosed {
|
||||||
|
background-position: 0 -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeIconOpen {
|
||||||
|
background-position: -16px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected>.blocklyTreeIconOpen {
|
||||||
|
background-position: -16px -17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeLabel {
|
||||||
|
cursor: default;
|
||||||
|
font: 16px sans-serif;
|
||||||
|
padding: 0 3px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDelete .blocklyTreeLabel {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyTreeSelected .blocklyTreeLabel {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyTreeSeparator {
|
||||||
|
border-bottom: solid #e5e5e5 1px;
|
||||||
|
height: 0;
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxDiv[layout="h"] .blocklyTreeSeparator {
|
||||||
|
border-right: solid #e5e5e5 1px;
|
||||||
|
border-bottom: none;
|
||||||
|
height: auto;
|
||||||
|
margin: 0 5px 0 5px;
|
||||||
|
padding: 5px 0;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyToolboxDelete {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handdelete.cur"), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxGrab {
|
||||||
|
cursor: url("https://blockly-demo.appspot.com/static/media/handclosed.cur"), auto;
|
||||||
|
cursor: grabbing;
|
||||||
|
cursor: -webkit-grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Category tree in Toolbox. */
|
||||||
|
.blocklyToolboxDiv {
|
||||||
|
background-color: #ddd;
|
||||||
|
overflow-x: visible;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 4px 0 4px 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 70; /* so blocks go under toolbox when dragging */
|
||||||
|
-webkit-tap-highlight-color: transparent; /* issue #1345 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxContents {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyToolboxContents:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyColourTable {
|
||||||
|
border-collapse: collapse;
|
||||||
|
display: block;
|
||||||
|
outline: none;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td {
|
||||||
|
border: 0.5px solid #888;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourTable>tr>td.blocklyColourHighlighted {
|
||||||
|
border-color: #eee;
|
||||||
|
box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyColourSelected, .blocklyColourSelected:hover {
|
||||||
|
border-color: #eee !important;
|
||||||
|
outline: 1px solid #333;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.fieldColourSliderContainer {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
.fieldColourSliderContainer hr {
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #bbb;
|
||||||
|
}
|
||||||
|
.fieldColourSliderLabel {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
font: 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper {
|
||||||
|
appearance: none;
|
||||||
|
position: relative;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: transparent;
|
||||||
|
font: inherit;
|
||||||
|
color: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper:hover {
|
||||||
|
background: rgba(0,0,0,0.1)
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper input {
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper::before {
|
||||||
|
content: "Eyedropper";
|
||||||
|
}
|
||||||
|
.fieldColourEyedropper::after {
|
||||||
|
content: "";
|
||||||
|
margin-left: 8px;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
background: currentColor;
|
||||||
|
pointer-events: none;
|
||||||
|
-webkit-mask-image: var(--customize-dial-symbol);
|
||||||
|
-webkit-mask-repeat: no-repeat;
|
||||||
|
-webkit-mask-position: center;
|
||||||
|
mask-image: var(--customize-dial-symbol);
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
mask-position: center;
|
||||||
|
--customize-dial-symbol: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"> <path stroke="black" strokewidth="1.414" fill="none" d="m 13 8 L 6 15 Q 3 18 2 21 Q 0 23 .5 23.5 Q 1 24 3 22 Q 6 21 9 18 L 16 11"/> <path fill="black" d="m 12 7 Q 11 6 12 5 Q 13 4 14 5 Q 15 6 16 5 Q 20 -1 22.5 1.5 Q 25 4 19 8 Q 18 9 19 10 Q 20 11 19 12 Q 18 13 17 12"/> </svg>');
|
||||||
|
}
|
||||||
|
.fieldColourSlider {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
width: 150px;
|
||||||
|
height: 24px;
|
||||||
|
margin: 4px 8px 24px 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.fieldColourSlider:last-child {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
/* Webkit */
|
||||||
|
.fieldColourSlider::-webkit-slider-runnable-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 8px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-webkit-slider-thumb {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
margin-top: -4px;
|
||||||
|
}
|
||||||
|
/* Firefox */
|
||||||
|
.fieldColourSlider::-moz-range-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 8px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-moz-range-thumb {
|
||||||
|
background: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-moz-focus-outer {
|
||||||
|
/* override the focus border style */
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
/* IE */
|
||||||
|
.fieldColourSlider::-ms-track {
|
||||||
|
background: var(--slider-track-background);
|
||||||
|
border-radius: 12px;
|
||||||
|
width: 100%;
|
||||||
|
height: 24px;
|
||||||
|
/* remove default tick marks */
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-fill-lower {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-fill-upper {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.fieldColourSlider::-ms-thumb {
|
||||||
|
background: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 4px rgba(0,0,0,.15);
|
||||||
|
cursor: pointer;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyMultilineText {
|
||||||
|
fill: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
|
opacity: .2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultiselect>image:hover, .blocklyMultiselect>svg>image:hover {
|
||||||
|
opacity: .4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blocklyMultiselect>image:active, .blocklyMultiselect>svg>image:active {
|
||||||
|
opacity: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="v{m!~$1f5l%h:MFI]d8M" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 326.5265625 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -326.5265625 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cmVjdCB4PSI0LjUiIHk9IjEuNSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjIyIiByeD0iNC4wODU5IiByeT0iNC4wODU5IiBmaWxsPSJub25lIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CjxwYXRoIGQ9Im04LjgyNjIgNS43NTg5aDcuMzQ3NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgo8Y2lyY2xlIGN4PSIxMi41IiBjeT0iMTcuNDY0IiByPSIyIiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIi8+CiAgPC9nPgo8L3N2Zz4="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="59.578125" class="blocklyFieldRect" stroke="#4585a1" style="display: block; fill: rgb(78, 150, 182);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">smart</text></g><g class="blocklyEditableText" transform="translate(122.378125,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="129.34375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">line follower</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(109.34375,8.6)"/></g><g class="blocklyEditableText" transform="translate(259.721875,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="101.8046875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">dark line</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(81.8046875,8.6)"/></g></g></g></svg>
|
||||||
|
After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 25 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 162.1359375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="162.1359375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 142.1359375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="142.1359375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern9387213926908944)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="AGU@JJxqaZ900CU1q4O~" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 117.13593750000001 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -117.13593750000001 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMS40NDIiIHk9Ii0yNC45IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMCIgcnk9IjAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzFiMjkzMyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLXdpZHRoPSIuMiIvPgo8cmVjdCB0cmFuc2Zvcm09InNjYWxlKC0xKSIgeD0iLTEzLjg3OCIgeT0iLTI0LjgyMiIgd2lkdGg9IjIuNjcwMyIgaGVpZ2h0PSI0LjI0MjQiIGZpbGw9IiM4MzliZmYiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xNS4yOTIiIHk9Ii0xOS4zODUiIHdpZHRoPSI1LjUiIGhlaWdodD0iNS41IiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,6.9)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="77.3359375" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="15.1">city hub</text></g><g transform="translate(140.1359375,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="x8^AN=nIc/70bNA=C]ql" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 97.13593750000001 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -97.13593750000001 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMS40NDIiIHk9Ii0yNC45IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMCIgcnk9IjAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzFiMjkzMyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLXdpZHRoPSIuMiIvPgo8cmVjdCB0cmFuc2Zvcm09InNjYWxlKC0xKSIgeD0iLTEzLjg3OCIgeT0iLTI0LjgyMiIgd2lkdGg9IjIuNjcwMyIgaGVpZ2h0PSI0LjI0MjQiIGZpbGw9IiM4MzliZmYiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xNS4yOTIiIHk9Ii0xOS4zODUiIHdpZHRoPSI1LjUiIGhlaWdodD0iNS41IiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="77.3359375" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">city hub</text></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 203.05 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="203.05" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 203.05 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="203.05" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="{Jrf7Nz~mk-.f{~B||f-" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 158.05 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -158.05 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMS42Mjg2IiB5PSIzLjc0NiIgd2lkdGg9IjIxLjgiIGhlaWdodD0iMTYuNzUyIiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgeD0iMTAuMzI0IiB5PSI5Ljk1ODciIHdpZHRoPSI0LjQwODgiIGhlaWdodD0iNC40MTE1IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIuMTY3Ii8+CjxyZWN0IHg9IjExLjE4MyIgeT0iMTYuMDc4IiB3aWR0aD0iMi42OTA3IiBoZWlnaHQ9IjQuNDExNSIgZmlsbD0iIzgzOWJmZiIvPgo8L2c+CiAgPC9nPgo8L3N2Zz4="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="118.25" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">essential hub</text></g><g transform="translate(181.05,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="%NMD$cHdMIS^c1w|gyTX" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 158.05 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -158.05 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMS42Mjg2IiB5PSIzLjc0NiIgd2lkdGg9IjIxLjgiIGhlaWdodD0iMTYuNzUyIiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgeD0iMTAuMzI0IiB5PSI5Ljk1ODciIHdpZHRoPSI0LjQwODgiIGhlaWdodD0iNC40MTE1IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIuMTY3Ii8+CjxyZWN0IHg9IjExLjE4MyIgeT0iMTYuMDc4IiB3aWR0aD0iMi42OTA3IiBoZWlnaHQ9IjQuNDExNSIgZmlsbD0iIzgzOWJmZiIvPgo8L2c+CiAgPC9nPgo8L3N2Zz4="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="118.25" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">essential hub</text></g><g transform="translate(181.05,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 26 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 197.6828125 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="197.6828125" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 197.6828125 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="197.6828125" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="Q5w{_w)*b:I1hX^{3=1Q" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 152.6828125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -152.6828125 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMy41ODM0IiB5PSIuMDgzNDQ5IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjIwLjUzMyIgcj0iMi40NSIgZmlsbD0iIzgzOWJmZiIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjEiLz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4xOTk5IDAgMCAxLjE5OTkgLTIuNDk5NiAtMS40MDkpIiBmaWxsPSIjZmZkZTAwIiBzdHJva2Utd2lkdGg9Ii44MzMzNyI+CjxyZWN0IHg9IjcuNSIgeT0iNC4wMDA1IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSI0IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjQuMDAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxMSIgeT0iNy41IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjExIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxNC41IiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8L2c+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.8828125" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">inventor hub</text></g><g transform="translate(175.6828125,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="]ZWmx={.=ydSt2,}36m?" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 152.6828125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -152.6828125 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMy41ODM0IiB5PSIuMDgzNDQ5IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjIwLjUzMyIgcj0iMi40NSIgZmlsbD0iIzgzOWJmZiIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjEiLz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4xOTk5IDAgMCAxLjE5OTkgLTIuNDk5NiAtMS40MDkpIiBmaWxsPSIjZmZkZTAwIiBzdHJva2Utd2lkdGg9Ii44MzMzNyI+CjxyZWN0IHg9IjcuNSIgeT0iNC4wMDA1IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSI0IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjQuMDAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxMSIgeT0iNy41IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjExIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxNC41IiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8L2c+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.8828125" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">inventor hub</text></g><g transform="translate(175.6828125,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 27 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176.3625 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="176.3625" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176.3625 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="176.3625" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="xK?mk5x/iFU?4h[XPhb@" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 131.3625 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -131.3625 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHBhdGggZD0ibTYuNDY4OCAwLjE0MDYydjE1LjU4M2gxLjV2My41MjM0aC0xLjV2NS45MDdoMTEuODAxdi01LjkwN2gtMS41di0zLjUyMzRoMS41di0xNS41ODN6IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xMy4yNDgiIHk9Ii0xMi44MjkiIHdpZHRoPSIxLjc1OTEiIGhlaWdodD0iMi43OTk0IiBmaWxsPSIjODM5YmZmIi8+CjxyZWN0IHRyYW5zZm9ybT0ic2NhbGUoLTEpIiB4PSItMTQuMTgiIHk9Ii05LjI0MTEiIHdpZHRoPSIzLjYyMzMiIGhlaWdodD0iMy42MjkyIiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="91.5625" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">move hub</text></g><g transform="translate(154.3625,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="m:~uM;VAgHYD~%We#NrJ" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 131.3625 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -131.3625 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHBhdGggZD0ibTYuNDY4OCAwLjE0MDYydjE1LjU4M2gxLjV2My41MjM0aC0xLjV2NS45MDdoMTEuODAxdi01LjkwN2gtMS41di0zLjUyMzRoMS41di0xNS41ODN6IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xMy4yNDgiIHk9Ii0xMi44MjkiIHdpZHRoPSIxLjc1OTEiIGhlaWdodD0iMi43OTk0IiBmaWxsPSIjODM5YmZmIi8+CjxyZWN0IHRyYW5zZm9ybT0ic2NhbGUoLTEpIiB4PSItMTQuMTgiIHk9Ii05LjI0MTEiIHdpZHRoPSIzLjYyMzMiIGhlaWdodD0iMy42MjkyIiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="91.5625" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">move hub</text></g><g transform="translate(154.3625,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 178.1359375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="178.1359375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 178.1359375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="178.1359375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="L)zR+;mugupgeNNgUL9#" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 133.1359375 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -133.1359375 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMy41ODM0IiB5PSIuMDgzNDQ5IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjIwLjUzMyIgcj0iMi40NSIgZmlsbD0iIzgzOWJmZiIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjEiLz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4xOTk5IDAgMCAxLjE5OTkgLTIuNDk5NiAtMS40MDkpIiBmaWxsPSIjZmZkZTAwIiBzdHJva2Utd2lkdGg9Ii44MzMzNyI+CjxyZWN0IHg9IjcuNSIgeT0iNC4wMDA1IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSI0IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjQuMDAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxMSIgeT0iNy41IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjExIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxNC41IiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8L2c+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="93.3359375" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">prime hub</text></g><g transform="translate(156.1359375,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id="$so[Yep]~$*_qL%{w@6^" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 133.1359375 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -133.1359375 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgeD0iMy41ODM0IiB5PSIuMDgzNDQ5IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMS45NzY0IiByeT0iMS45NzY0IiBmaWxsPSIjZjRmNGY0IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjIwLjUzMyIgcj0iMi40NSIgZmlsbD0iIzgzOWJmZiIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjEiLz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4xOTk5IDAgMCAxLjE5OTkgLTIuNDk5NiAtMS40MDkpIiBmaWxsPSIjZmZkZTAwIiBzdHJva2Utd2lkdGg9Ii44MzMzNyI+CjxyZWN0IHg9IjcuNSIgeT0iNC4wMDA1IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSI0IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjQuMDAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxMSIgeT0iNy41IiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjE0LjUiIHk9IjcuNTAwNSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSI3LjUiIHk9IjExIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+CjxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8cmVjdCB4PSIxNC41IiB5PSIxMSIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPgo8L2c+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="93.3359375" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">prime hub</text></g><g transform="translate(156.1359375,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 190.58125 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="190.58125" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 190.58125 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="190.58125" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||||
@@ -48,7 +48,7 @@ color: #fff;
|
|||||||
stroke: #ffffff;
|
stroke: #ffffff;
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
fill: url(#blocklyDisabledPattern770586695409901)
|
||||||
}
|
}
|
||||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyInsertionMarker>.blocklyPath {
|
||||||
fill-opacity: 0.2;
|
fill-opacity: 0.2;
|
||||||
@@ -949,15 +949,9 @@ input[type=number] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.controlsIconStyle {
|
.blocklyMultilineText {
|
||||||
opacity: 0.2;
|
fill: #fff !important;
|
||||||
}
|
}
|
||||||
.controlsIconStyle:hover {
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
.controlsIconStyle:active {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
.blocklyMultiselect>image, .blocklyMultiselect>svg>image {
|
||||||
@@ -972,4 +966,29 @@ input[type=number] {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style><g transform="translate(1, 5)"><g data-id="3CD}BAMY1jnM,4Xoo;QM" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 145.58125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -145.58125 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMy40NDIiIHk9Ii04LjQiIHdpZHRoPSIyMS44IiBoZWlnaHQ9IjguMyIgcng9IjEuMjgwNiIgcnk9IjEuMjgwNiIgZmlsbD0iIzc3NyIgc3Ryb2tlPSIjMWIyOTMzIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2Utd2lkdGg9Ii4yIi8+CjxyZWN0IHRyYW5zZm9ybT0ic2NhbGUoLTEpIiB4PSItMjMuNDQyIiB5PSItMjQuOSIgd2lkdGg9IjIxLjgiIGhlaWdodD0iOC4zIiByeD0iMS4yODA2IiByeT0iMS4yODA2IiBmaWxsPSIjNzc3IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMS40NDIiIHk9Ii0yNC45IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMCIgcnk9IjAiIGZpbGw9IiNjOWM5YzkiIHN0cm9rZT0iIzFiMjkzMyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLXdpZHRoPSIuMiIvPgo8cmVjdCB0cmFuc2Zvcm09InNjYWxlKC0xKSIgeD0iLTEzLjg3OCIgeT0iLTI0LjgyMiIgd2lkdGg9IjIuNjcwMyIgaGVpZ2h0PSI0LjI0MjQiIGZpbGw9IiM4MzliZmYiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xNS4yOTIiIHk9Ii0xOS4zODUiIHdpZHRoPSI1LjUiIGhlaWdodD0iNS41IiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="105.78125" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">technic hub</text></g><g transform="translate(168.58125,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
|
||||||
|
.controlsIconStyleLightTheme {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:hover {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
.controlsIconStyleLightTheme:active {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.controlsIconStyleDarkTheme {
|
||||||
|
opacity: 0.4;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
.controlsIconStyleDarkTheme:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style><g transform="translate(1, 5)"><g data-id=")(Y5*G-E2$SXHQ*S.:4g" class="blocklyDraggable"><path class="blocklyPath" stroke="#3971bf" fill="#4c97ff" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 l 0,-4 10,0 0,4 10,0 0,-4 10,0 0,4 h 145.58125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -145.58125 l 0,-4 -10,0 0,4 -10,0 0,-4 -10,0 0,4 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28.8px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNSAyNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8Zz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMy40NDIiIHk9Ii04LjQiIHdpZHRoPSIyMS44IiBoZWlnaHQ9IjguMyIgcng9IjEuMjgwNiIgcnk9IjEuMjgwNiIgZmlsbD0iIzc3NyIgc3Ryb2tlPSIjMWIyOTMzIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2Utd2lkdGg9Ii4yIi8+CjxyZWN0IHRyYW5zZm9ybT0ic2NhbGUoLTEpIiB4PSItMjMuNDQyIiB5PSItMjQuOSIgd2lkdGg9IjIxLjgiIGhlaWdodD0iOC4zIiByeD0iMS4yODA2IiByeT0iMS4yODA2IiBmaWxsPSIjNzc3IiBzdHJva2U9IiMxYjI5MzMiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iLjIiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0yMS40NDIiIHk9Ii0yNC45IiB3aWR0aD0iMTcuOCIgaGVpZ2h0PSIyNC44IiByeD0iMCIgcnk9IjAiIGZpbGw9IiNjOWM5YzkiIHN0cm9rZT0iIzFiMjkzMyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLXdpZHRoPSIuMiIvPgo8cmVjdCB0cmFuc2Zvcm09InNjYWxlKC0xKSIgeD0iLTEzLjg3OCIgeT0iLTI0LjgyMiIgd2lkdGg9IjIuNjcwMyIgaGVpZ2h0PSI0LjI0MjQiIGZpbGw9IiM4MzliZmYiLz4KPHJlY3QgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIHg9Ii0xNS4yOTIiIHk9Ii0xOS4zODUiIHdpZHRoPSI1LjUiIGhlaWdodD0iNS41IiByeD0iLjQwNDI0IiByeT0iLjQwNDI0IiBmaWxsPSIjMDBiZTBhIi8+CjwvZz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44.8,6.5)"><image height="30px" width="2px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDApIj4KICAgIDxwYXRoIGQ9Im0wLjUgMC41djI5IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW9wYWNpdHk9Ii4yNjI1Ii8+CiAgPC9nPgo8L3N2Zz4="/></g><g class="blocklyEditableText" transform="translate(54.8,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="105.78125" class="blocklyFieldRect" stroke="#3971bf" style="display: block; fill: rgb(65, 128, 217);"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="8" y="14.6">technic hub</text></g><g transform="translate(168.58125,6.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 27 KiB |
@@ -1,148 +0,0 @@
|
|||||||
.. pybricks-requirements::
|
|
||||||
|
|
||||||
Other blocks
|
|
||||||
=====================================================
|
|
||||||
|
|
||||||
Most blocks correspond directly to one of the documented Python commands. This
|
|
||||||
page lists the remaining blocks.
|
|
||||||
|
|
||||||
This page will be expanded with more details in the next release.
|
|
||||||
|
|
||||||
Math
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
See also :mod:`umath` for other math operations.
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathFormula
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathOp_modulo
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathArithmetic_add
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathArithmetic_minus
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathArithmetic_multiply
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathArithmetic_divide
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMathArithmetic_power
|
|
||||||
|
|
||||||
Logic
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompareDouble
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_eq
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_gte
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_gt
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_lte
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_lt
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicCompare_neq
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicIsNone_is_none
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicIsNone_is_not_none
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicIsNone_not
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicOperation_and
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicOperation_or
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicTernary
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockLogicTernaryDouble
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockIsIn
|
|
||||||
|
|
||||||
Flow
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowBreakContinue_break
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowBreakContinue_continue
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowForEach_loop_for
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowForEach_loop_for_list
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowForEach_loop_for_range
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowRepeat
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowWhile_until
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockFlowWhile_while
|
|
||||||
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockIfElse_if_else
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockIfElse_if_else_else
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockIfElse_if_only
|
|
||||||
|
|
||||||
|
|
||||||
Device and system setup
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockGlobalSetup
|
|
||||||
|
|
||||||
Waiting
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockWaitTime
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockWaitUntil
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockWaitForever
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Variables
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_setup_any
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockVariableGetValue
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockVariableSetValue
|
|
||||||
|
|
||||||
Multitasking
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockGlobalStart
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockMultiTask
|
|
||||||
|
|
||||||
Your own tasks
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_setup_function_basic
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_setup_function_with_args
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockTaskReturn
|
|
||||||
|
|
||||||
External tasks
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_setup_imported_function
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockImportTaskCallStatement
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockImportTaskCallValue
|
|
||||||
|
|
||||||
Comments
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockComment
|
|
||||||
|
|
||||||
Stopping programs
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockProgramStop
|
|
||||||
@@ -7,8 +7,6 @@ City Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_city_hub_option0
|
.. blockimg:: pybricks_variables_set_city_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_city_hub_option3
|
|
||||||
|
|
||||||
.. autoclass:: pybricks.hubs.CityHub
|
.. autoclass:: pybricks.hubs.CityHub
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Essential Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_essential_hub_option0
|
.. blockimg:: pybricks_variables_set_essential_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_essential_hub_option4
|
.. blockimg:: pybricks_variables_set_essential_hub_option1
|
||||||
|
|
||||||
.. autoclass:: pybricks.hubs.EssentialHub
|
.. autoclass:: pybricks.hubs.EssentialHub
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Move Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_move_hub_option0
|
.. blockimg:: pybricks_variables_set_move_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_move_hub_option4
|
.. blockimg:: pybricks_variables_set_move_hub_option1
|
||||||
|
|
||||||
.. autoclass:: pybricks.hubs.MoveHub
|
.. autoclass:: pybricks.hubs.MoveHub
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Prime Hub / Inventor Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_inventor_hub_option0
|
.. blockimg:: pybricks_variables_set_inventor_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_inventor_hub_option4
|
.. blockimg:: pybricks_variables_set_inventor_hub_option1
|
||||||
|
|
||||||
.. currentmodule:: pybricks.hubs
|
.. currentmodule:: pybricks.hubs
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ Prime Hub / Inventor Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_prime_hub_option0
|
.. blockimg:: pybricks_variables_set_prime_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_prime_hub_option4
|
.. blockimg:: pybricks_variables_set_prime_hub_option1
|
||||||
|
|
||||||
.. autoclass:: pybricks.hubs.PrimeHub
|
.. autoclass:: pybricks.hubs.PrimeHub
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Technic Hub
|
|||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_technic_hub_option0
|
.. blockimg:: pybricks_variables_set_technic_hub_option0
|
||||||
|
|
||||||
.. blockimg:: pybricks_variables_set_technic_hub_option4
|
.. blockimg:: pybricks_variables_set_technic_hub_option1
|
||||||
|
|
||||||
.. autoclass:: pybricks.hubs.TechnicHub
|
.. autoclass:: pybricks.hubs.TechnicHub
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|||||||
@@ -1,19 +1,24 @@
|
|||||||
Pybricks Documentation
|
Pybricks Reference Manual
|
||||||
==================================================================
|
==================================================================
|
||||||
|
|
||||||
`Pybricks <https://pybricks.com/>`_ is Python coding for smart LEGO® hubs.
|
.. only:: ide
|
||||||
Run MicroPython scripts
|
|
||||||
directly on the hub, and get full control of your motors and sensors.
|
|
||||||
|
|
||||||
Pybricks runs on LEGO® BOOST, City, Technic, MINDSTORMS®, and SPIKE®. You
|
This documentation details all available functions and classes in Pybricks.
|
||||||
can code using Windows, Mac, Linux, Chromebook, and Android.
|
For example, you can find the meaning of specific function parameters like
|
||||||
|
motor speed.
|
||||||
|
|
||||||
Click on any device below to see its documentation. Use the menu on the left
|
If you are new to Pybricks, we recommend starting with the `Pybricks learn`_
|
||||||
to find documentation for additional modules. You may need to click the ☰ icon
|
guide instead.
|
||||||
above to reveal this menu.
|
|
||||||
|
|
||||||
.. only:: main
|
.. only:: main
|
||||||
|
|
||||||
|
`Pybricks <https://pybricks.com/>`_ is Python coding for smart LEGO® hubs.
|
||||||
|
Run MicroPython scripts
|
||||||
|
directly on the hub, and get full control of your motors and sensors.
|
||||||
|
|
||||||
|
Pybricks runs on LEGO® BOOST, City, Technic, MINDSTORMS®, and SPIKE®. You
|
||||||
|
can code using Windows, Mac, Linux, Chromebook, and Android.
|
||||||
|
|
||||||
.. note:: You are viewing the stand-alone version of the documentation. To
|
.. note:: You are viewing the stand-alone version of the documentation. To
|
||||||
learn more about Pybricks and to start coding, visit
|
learn more about Pybricks and to start coding, visit
|
||||||
the `Pybricks website`_
|
the `Pybricks website`_
|
||||||
@@ -21,8 +26,13 @@ above to reveal this menu.
|
|||||||
.. note:: Are you using LEGO MINDSTORMS EV3? Check out the
|
.. note:: Are you using LEGO MINDSTORMS EV3? Check out the
|
||||||
`EV3 documentation`_ instead.
|
`EV3 documentation`_ instead.
|
||||||
|
|
||||||
|
Click on any device below to see its documentation. Use the menu on the left
|
||||||
|
to find documentation for additional modules. You may need to click the ☰ icon
|
||||||
|
above to reveal this menu.
|
||||||
|
|
||||||
.. _EV3 documentation: https://pybricks.com/ev3-micropython/
|
.. _EV3 documentation: https://pybricks.com/ev3-micropython/
|
||||||
.. _Pybricks website: https://pybricks.com/
|
.. _Pybricks website: https://pybricks.com/
|
||||||
|
.. _Pybricks learn: https://pybricks.com/learn/
|
||||||
|
|
||||||
.. rubric:: Programmable hubs
|
.. rubric:: Programmable hubs
|
||||||
|
|
||||||
@@ -63,13 +73,6 @@ above to reveal this menu.
|
|||||||
messaging/index
|
messaging/index
|
||||||
signaltypes
|
signaltypes
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
:caption: Code with blocks
|
|
||||||
:hidden:
|
|
||||||
|
|
||||||
blocks/index
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:caption: MicroPython modules
|
:caption: MicroPython modules
|
||||||
|
|||||||
@@ -6,22 +6,40 @@
|
|||||||
|
|
||||||
.. pybricks-requirements:: pup
|
.. pybricks-requirements:: pup
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_ble_radio
|
||||||
|
|
||||||
.. autoclass:: pybricks.messaging.BLERadio
|
.. autoclass:: pybricks.messaging.BLERadio
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_blockBleBroadcast2
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.BLERadio.broadcast
|
.. automethod:: pybricks.messaging.BLERadio.broadcast
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_blockBleObserve2
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.BLERadio.observe
|
.. automethod:: pybricks.messaging.BLERadio.observe
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.BLERadio.signal_strength
|
.. automethod:: pybricks.messaging.BLERadio.signal_strength
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.BLERadio.version
|
.. automethod:: pybricks.messaging.BLERadio.version
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_app_data_app_data_color_tracker
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_app_data_app_data_teachable_machine
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_app_data_app_data_object_detection
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_app_data_app_data_line_follower
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_variables_set_app_data_app_data_custom
|
||||||
|
|
||||||
.. autoclass:: pybricks.messaging.AppData
|
.. autoclass:: pybricks.messaging.AppData
|
||||||
:no-members:
|
:no-members:
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.AppData.get_bytes
|
.. automethod:: pybricks.messaging.AppData.get_bytes
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_blockAppDataGetValues
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.AppData.write_bytes
|
.. automethod:: pybricks.messaging.AppData.write_bytes
|
||||||
|
|
||||||
.. automethod:: pybricks.messaging.AppData.configure
|
.. automethod:: pybricks.messaging.AppData.configure
|
||||||
|
|||||||
@@ -19,22 +19,26 @@
|
|||||||
This is measured using the internal rotation sensors. Because wheels may
|
This is measured using the internal rotation sensors. Because wheels may
|
||||||
slip while moving, the traveled distance and angle are only estimates.
|
slip while moving, the traveled distance and angle are only estimates.
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseDrive_drivebase_drive_straight
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_straight
|
||||||
|
|
||||||
.. automethod:: pybricks.robotics.DriveBase.straight
|
.. automethod:: pybricks.robotics.DriveBase.straight
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseDrive_drivebase_drive_turn
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_turn_by
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_turn_to
|
||||||
|
|
||||||
.. automethod:: pybricks.robotics.DriveBase.turn
|
.. automethod:: pybricks.robotics.DriveBase.turn
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseDrive2_drivebase_drive_arc_angle
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_arc_deg
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseDrive2_drivebase_drive_arc_distance
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_arc_mm
|
||||||
|
|
||||||
.. automethod:: pybricks.robotics.DriveBase.arc
|
.. automethod:: pybricks.robotics.DriveBase.arc
|
||||||
|
|
||||||
.. pybricks-requirements:: stm32-float
|
.. pybricks-requirements:: stm32-float
|
||||||
|
|
||||||
|
.. blockimg:: pybricks_blockDriveBaseMove_drivebase_move_coordinates
|
||||||
|
|
||||||
.. automethod:: pybricks.robotics.DriveBase.move_by
|
.. automethod:: pybricks.robotics.DriveBase.move_by
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseConfigure_drivebase_straight_speed
|
.. blockimg:: pybricks_blockDriveBaseConfigure_drivebase_straight_speed
|
||||||
@@ -57,7 +61,7 @@
|
|||||||
using :meth:`.drive` again. For example, you can drive until a
|
using :meth:`.drive` again. For example, you can drive until a
|
||||||
sensor is triggered and then stop or turn around.
|
sensor is triggered and then stop or turn around.
|
||||||
|
|
||||||
.. blockimg:: pybricks_blockDriveBaseDrive_drivebase_drive_forever
|
.. blockimg:: pybricks_blockDriveBaseStart
|
||||||
|
|
||||||
.. automethod:: pybricks.robotics.DriveBase.drive
|
.. automethod:: pybricks.robotics.DriveBase.drive
|
||||||
|
|
||||||
@@ -128,7 +132,7 @@
|
|||||||
``then=Stop.COAST`` in your last
|
``then=Stop.COAST`` in your last
|
||||||
:meth:`straight <pybricks.robotics.DriveBase.straight>`,
|
:meth:`straight <pybricks.robotics.DriveBase.straight>`,
|
||||||
:meth:`turn <pybricks.robotics.DriveBase.turn>`, or
|
:meth:`turn <pybricks.robotics.DriveBase.turn>`, or
|
||||||
:meth:`curve <pybricks.robotics.DriveBase.arc>` command.
|
:meth:`arc <pybricks.robotics.DriveBase.arc>` command.
|
||||||
|
|
||||||
.. _measuring:
|
.. _measuring:
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,13 @@ import pathlib
|
|||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tomllib
|
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
|
try:
|
||||||
|
import tomllib
|
||||||
|
except ImportError:
|
||||||
|
import tomli as tomllib # type: ignore[no-redef]
|
||||||
|
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 2:
|
||||||
print(f"Usage: {sys.argv[0]} <version>", file=sys.stderr)
|
print(f"Usage: {sys.argv[0]} <version>", file=sys.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|||||||
@@ -13,6 +13,10 @@
|
|||||||
},
|
},
|
||||||
"author": "The Pybricks Authors",
|
"author": "The Pybricks Authors",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"exports": {
|
||||||
|
"./package.json": "./package.json",
|
||||||
|
"./html/namespace_index.json": "./html/namespace_index.json"
|
||||||
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"html"
|
"html"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "pybricks"
|
name = "pybricks"
|
||||||
version = "4.0.0b11"
|
version = "4.0.0"
|
||||||
description = "Documentation and user-API stubs for Pybricks MicroPython"
|
description = "Documentation and user-API stubs for Pybricks MicroPython"
|
||||||
authors = ["The Pybricks Authors <team@pybricks.com>"]
|
authors = ["The Pybricks Authors <team@pybricks.com>"]
|
||||||
maintainers = ["Laurens Valk <laurens@pybricks.com>", "David Lechner <david@pybricks.com>" ]
|
maintainers = ["Laurens Valk <laurens@pybricks.com>", "David Lechner <david@pybricks.com>" ]
|
||||||
|
|||||||
@@ -125,6 +125,9 @@ class Color:
|
|||||||
def __eq__(self, other: Color) -> bool:
|
def __eq__(self, other: Color) -> bool:
|
||||||
return self.h == other.h and self.s == other.s and self.v == other.v
|
return self.h == other.h and self.s == other.s and self.v == other.v
|
||||||
|
|
||||||
|
def __hash__(self) -> int:
|
||||||
|
return hash((self.h, self.s, self.v))
|
||||||
|
|
||||||
def __mul__(self, scale: float) -> Color:
|
def __mul__(self, scale: float) -> Color:
|
||||||
v = max(0, min(self.v * scale, 100))
|
v = max(0, min(self.v * scale, 100))
|
||||||
return Color(self.h, self.s, int(v))
|
return Color(self.h, self.s, int(v))
|
||||||
|
|||||||