Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f35bbe44f5 | ||
|
|
08fa5b1c17 | ||
|
|
6982cf4fd2 | ||
|
|
8ffdde38e6 | ||
|
|
353310c1ba | ||
|
|
4ca1ddf909 | ||
|
|
b0ff867dcc | ||
|
|
c05d5c42cd | ||
|
|
190c0a4a75 | ||
|
|
52b3b4c007 | ||
|
|
0145fd41ae | ||
|
|
d228b7de99 | ||
|
|
615d21cd54 |
@@ -1,15 +0,0 @@
|
||||
name: Release to PyPI
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: pipx run poetry build
|
||||
- run: pipx run poetry publish
|
||||
env:
|
||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
|
||||
@@ -0,0 +1,45 @@
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v3.*'
|
||||
|
||||
name: Create release on GitHub and PyPI
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
create_release:
|
||||
name: Create release on GitHub
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
- name: Get tag
|
||||
run: echo "GITHUB_TAG=${GITHUB_REF#*refs/tags/}" >> $GITHUB_ENV
|
||||
- name: Create release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
tag: ${{ github.ref_name }}
|
||||
run: |
|
||||
if [[ "${{ contains(env.GITHUB_TAG, 'a') || contains(env.GITHUB_TAG, 'b') || contains(env.GITHUB_TAG, 'c') }}" == "true" ]]; then
|
||||
PRERELEASE_FLAG="--prerelease"
|
||||
else
|
||||
PRERELEASE_FLAG=""
|
||||
fi
|
||||
gh release create "$tag" \
|
||||
--repo="$GITHUB_REPOSITORY" \
|
||||
--title="${tag#v}" \
|
||||
-F CHANGELOG.md \
|
||||
$PRERELEASE_FLAG
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: pipx run poetry build
|
||||
- run: pipx run poetry publish
|
||||
env:
|
||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
|
||||
@@ -4,6 +4,21 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 3.5.0- 2024-04-11
|
||||
|
||||
### Changed
|
||||
- Bump version to 3.5.0 without additional changes.
|
||||
|
||||
## 3.5.0b2 - 2024-04-05
|
||||
|
||||
### Added
|
||||
|
||||
- Added `pybricks.pupdevices.Remote.disconnect` method.
|
||||
- Added blocks for `up`, `ready` and `stationary` for IMUs.
|
||||
- Added `last` and `chr` parameters to `read_input_byte` and add blocks.
|
||||
- Added block for the `in` operation.
|
||||
- Add double ternary block.
|
||||
|
||||
## 3.5.0b1 - 2024-03-11
|
||||
|
||||
### Added
|
||||
|
||||
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 324.2890625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="324.2890625" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="r~lFK0:,#3icD*2-%U.;" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 282.2890625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -282.2890625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="~V@;`~CVMs.(4a#em|bS" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 114.25 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -114.25 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">essential hub</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(110.25,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(210.25,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(231.59375,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="78.6953125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">ready</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(58.6953125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 358.0625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="358.0625" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="%[@Q)9S8/C3@4O{#|{{/" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 316.0625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -316.0625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="sg4XgAg25t+I0Q;@L5L#" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 114.25 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -114.25 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">essential hub</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(110.25,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(210.25,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(231.59375,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.46875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">stationary</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(92.46875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 318.921875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="318.921875" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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=",O.jf6y]G(@Spc3Fk)3D" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 276.921875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -276.921875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="9H+pjb(jaz|NT3.gcCn#" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.8828125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.8828125 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">inventor hub</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(104.8828125,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(204.8828125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(226.2265625,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="78.6953125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">ready</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(58.6953125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352.6953125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="352.6953125" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="FLWqkmD:}dyHc5i(?^d)" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 310.6953125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -310.6953125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="[qsnI,xy2PsPY:zd%lJL" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.8828125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.8828125 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">inventor hub</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(104.8828125,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(204.8828125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(226.2265625,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.46875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">stationary</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(92.46875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="299.375" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="%eHdv*ge=82H8}8PTi+n" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 257.375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -257.375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="%^zlznPHf_Y)uV5+VL7G" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 89.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -89.3359375 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">prime hub</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(85.3359375,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(185.3359375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(206.6796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="78.6953125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">ready</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(58.6953125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 333.1484375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="333.1484375" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="a/~yiI/8kobDEk8SD7Lk" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 291.1484375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -291.1484375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="y*~}(cj|?`YKE*RJ(/OO" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 89.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -89.3359375 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">prime hub</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(85.3359375,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(185.3359375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(206.6796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.46875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">stationary</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(92.46875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 311.8203125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="311.8203125" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="smkjxCc.8Ctnj4[/irN2" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 269.8203125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -269.8203125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="2Pb|p5HYky3]4;435S6!" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 101.78125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -101.78125 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">technic hub</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(97.78125,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(197.78125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(219.125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="78.6953125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">ready</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(58.6953125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 345.59375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="345.59375" 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(#blocklyDisabledPattern035900976629106074)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="6{AXO/T1{umu^4(p)iZF" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 303.59375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -303.59375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="}!d1{qV5]W1`A=Cw`IU8" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 101.78125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -101.78125 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">technic hub</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(97.78125,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+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMjY1NjQgMS41MjUxIC0xLjUyNTEgLjI2NTY0IDIzLjQ5MSAtMTEuNzQpIiBzdHJva2Utd2lkdGg9Ii42OTU5Ij4KPHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDExLjUzMiA2LjI1MzgpIiBkPSJtMTMuOTE5IDYuNjMzaC03LjUzNzRsMy43Njg3LTYuNTI3NnoiIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxOC43ODkiLz4KPC9nPgo8cGF0aCBkPSJtMy4xMzg3IDEuMTgwMnYyMS4yNjVsMTkuNDY0LTguNDY1NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuMTUxNiIvPgo8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgxMTMuNDQpIiBkPSJtMi42NjQ3LTUuOTM2OWExNC4xNDYgMTQuMTQ2IDAgMCAxIDAuMTIwNDItMTAuNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(197.78125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is</text></g><g class="blocklyEditableText" transform="translate(219.125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="112.46875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">stationary</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(92.46875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 374.921875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="374.921875" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="09d7j@^MaPKcqZM3fs+a" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 332.921875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -332.921875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="!4vFBu5Y-5C)A%Hsvss9" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 114.25 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -114.25 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">essential hub</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(110.25,3)"/></g></g><g data-id=".pQ$!=nwS0!dZb6/3^r(" transform="translate(210.25, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 73.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -73.3359375 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">top side</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(69.3359375,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+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguNjIzODEgLTEuMDg1MiAtMS4wODUyIC0uNjIzODEgMTEuMzEzIDE5LjQ4MSkiIGQ9Im0xMy45MTkgNi42MzNoLTcuNTM3NGwzLjc2ODctNi41Mjc2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjI3Ii8+CjxyZWN0IHg9IjExLjM0OSIgeT0iNS43NjkyIiB3aWR0aD0iMi45MjczIiBoZWlnaHQ9IjcuMjY2IiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iLjM3Nzk1Ii8+CjxyZWN0IHRyYW5zZm9ybT0icm90YXRlKC0uNDMxMDgpIiB4PSIxLjUzMzIiIHk9IjE2LjEzMyIgd2lkdGg9IjIyLjI1MSIgaGVpZ2h0PSI4Ljg5NDIiIHJ4PSIxLjk2OTUiIHJ5PSIxLjk2OTUiIGZpbGw9IiNmZmYiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(323.5859375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is up</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 369.5546875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="369.5546875" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="j~muMgS@ls:J3xnB?Cd`" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 327.5546875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -327.5546875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="1F+EW7+RW[k9CRFTi~==" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.8828125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.8828125 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">inventor hub</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(104.8828125,3)"/></g></g><g data-id="R:$HK0]2sQ3Xm!WkLFe!" transform="translate(204.8828125, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 73.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -73.3359375 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">top side</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(69.3359375,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+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguNjIzODEgLTEuMDg1MiAtMS4wODUyIC0uNjIzODEgMTEuMzEzIDE5LjQ4MSkiIGQ9Im0xMy45MTkgNi42MzNoLTcuNTM3NGwzLjc2ODctNi41Mjc2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjI3Ii8+CjxyZWN0IHg9IjExLjM0OSIgeT0iNS43NjkyIiB3aWR0aD0iMi45MjczIiBoZWlnaHQ9IjcuMjY2IiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iLjM3Nzk1Ii8+CjxyZWN0IHRyYW5zZm9ybT0icm90YXRlKC0uNDMxMDgpIiB4PSIxLjUzMzIiIHk9IjE2LjEzMyIgd2lkdGg9IjIyLjI1MSIgaGVpZ2h0PSI4Ljg5NDIiIHJ4PSIxLjk2OTUiIHJ5PSIxLjk2OTUiIGZpbGw9IiNmZmYiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(318.21875,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is up</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 348.234375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="348.234375" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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=":iCcTgH_WJ?/lU(AAvV," class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 306.234375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -306.234375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="HAlO(MC%8V.m^yb~s)LH" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 87.5625 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -87.5625 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">move hub</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(83.5625,3)"/></g></g><g data-id="{nQIuRS5thYhbu7|l5b1" transform="translate(183.5625, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 73.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -73.3359375 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">top side</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(69.3359375,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+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguNjIzODEgLTEuMDg1MiAtMS4wODUyIC0uNjIzODEgMTEuMzEzIDE5LjQ4MSkiIGQ9Im0xMy45MTkgNi42MzNoLTcuNTM3NGwzLjc2ODctNi41Mjc2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjI3Ii8+CjxyZWN0IHg9IjExLjM0OSIgeT0iNS43NjkyIiB3aWR0aD0iMi45MjczIiBoZWlnaHQ9IjcuMjY2IiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iLjM3Nzk1Ii8+CjxyZWN0IHRyYW5zZm9ybT0icm90YXRlKC0uNDMxMDgpIiB4PSIxLjUzMzIiIHk9IjE2LjEzMyIgd2lkdGg9IjIyLjI1MSIgaGVpZ2h0PSI4Ljg5NDIiIHJ4PSIxLjk2OTUiIHJ5PSIxLjk2OTUiIGZpbGw9IiNmZmYiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(296.8984375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is up</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350.0078125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="350.0078125" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="eUEGzgmr?LK*Fou^96p%" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 308.0078125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -308.0078125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="I[}E[M5LbC!16,T[GH^@" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 89.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -89.3359375 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">prime hub</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(85.3359375,3)"/></g></g><g data-id="8VPoOm_|^#tUc!{|JZ*7" transform="translate(185.3359375, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 73.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -73.3359375 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">top side</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(69.3359375,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+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguNjIzODEgLTEuMDg1MiAtMS4wODUyIC0uNjIzODEgMTEuMzEzIDE5LjQ4MSkiIGQ9Im0xMy45MTkgNi42MzNoLTcuNTM3NGwzLjc2ODctNi41Mjc2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjI3Ii8+CjxyZWN0IHg9IjExLjM0OSIgeT0iNS43NjkyIiB3aWR0aD0iMi45MjczIiBoZWlnaHQ9IjcuMjY2IiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iLjM3Nzk1Ii8+CjxyZWN0IHRyYW5zZm9ybT0icm90YXRlKC0uNDMxMDgpIiB4PSIxLjUzMzIiIHk9IjE2LjEzMyIgd2lkdGg9IjIyLjI1MSIgaGVpZ2h0PSI4Ljg5NDIiIHJ4PSIxLjk2OTUiIHJ5PSIxLjk2OTUiIGZpbGw9IiNmZmYiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(298.671875,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is up</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 362.453125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="362.453125" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="@eBx[Cl=W3$6VwqtyI`l" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 320.453125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -320.453125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="tiiIIL^^h!(![dC@e05)" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 101.78125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -101.78125 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">technic hub</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(97.78125,3)"/></g></g><g data-id="ukoph)TC4:ttUd#O(UNI" transform="translate(197.78125, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 73.3359375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -73.3359375 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">top side</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(69.3359375,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+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguNjIzODEgLTEuMDg1MiAtMS4wODUyIC0uNjIzODEgMTEuMzEzIDE5LjQ4MSkiIGQ9Im0xMy45MTkgNi42MzNoLTcuNTM3NGwzLjc2ODctNi41Mjc2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjI3Ii8+CjxyZWN0IHg9IjExLjM0OSIgeT0iNS43NjkyIiB3aWR0aD0iMi45MjczIiBoZWlnaHQ9IjcuMjY2IiBmaWxsPSIjZmZmIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iLjM3Nzk1Ii8+CjxyZWN0IHRyYW5zZm9ybT0icm90YXRlKC0uNDMxMDgpIiB4PSIxLjUzMzIiIHk9IjE2LjEzMyIgd2lkdGg9IjIyLjI1MSIgaGVpZ2h0PSI4Ljg5NDIiIHJ4PSIxLjk2OTUiIHJ5PSIxLjk2OTUiIGZpbGw9IiNmZmYiLz4KICA8L2c+Cjwvc3ZnPg=="/></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(311.1171875,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">is up</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 236.6875 47.19999999999982" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="236.6875" height="47.19999999999982" 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(#blocklyDisabledPattern02332991936176998)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="$6p%)$hg)hzhm$obP]e1" class="blocklyDraggable"><path class="blocklyPath" stroke="#009973" fill="#00cc99" d=" m 22.6,0 h 189.4875 a 22.6 22.6 0 0,1 22.6,22.6 v 0 a 22.6 22.6 0 0,1 -22.6,22.6 V 45.2 h -189.4875 a 22.6 22.6 0 0,1 -22.6,-22.6 v 0 a 22.6 22.6 0 0,1 22.6,-22.6 z "/><g data-id="3Yvy.qb?8]~Eo|GLhtWp" transform="translate(4, 4)" style="display: block;"><path class="blocklyPath" stroke="#009973" fill="#00ad82" d=" m 18.6,0 h 51.6984375 a 18.6 18.6 0 0,1 18.6,18.6 v 0 a 18.6 18.6 0 0,1 -18.6,18.6 V 37.2 h -51.6984375 a 18.6 18.6 0 0,1 -18.6,-18.6 v 0 a 18.6 18.6 0 0,1 18.6,-18.6 z "/><g transform="translate(12,12.100000000000001)"><image height="12px" width="12px" alt="“" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC"/></g><g class="blocklyEditableText" transform="translate(32,4.000000000000002)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="24.8984375" class="blocklyFieldRect" stroke="#009973" style="display: block;"/><text class="blocklyText" dominant-baseline="central" x="8" y="14.6">a</text></g><g transform="translate(64.8984375,12.100000000000001)"><image height="12px" width="12px" alt="”" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=="/></g></g><g data-id="``z9Q0;q5`+CT{5Fp~Ea" transform="translate(123.1171875, 4)" style="display: block;"><path class="blocklyPath" stroke="#009973" fill="#00ad82" d=" m 18.6,0 h 70.3703125 a 18.6 18.6 0 0,1 18.6,18.6 v 0 a 18.6 18.6 0 0,1 -18.6,18.6 V 37.2 h -70.3703125 a 18.6 18.6 0 0,1 -18.6,-18.6 v 0 a 18.6 18.6 0 0,1 18.6,-18.6 z "/><g transform="translate(12,12.100000000000001)"><image height="12px" width="12px" alt="“" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC"/></g><g class="blocklyEditableText" transform="translate(32,4.000000000000002)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="43.5703125" class="blocklyFieldRect" stroke="#009973" style="display: block;"/><text class="blocklyText" dominant-baseline="central" x="8" y="14.6">abc</text></g><g transform="translate(83.5703125,12.100000000000001)"><image height="12px" width="12px" alt="”" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=="/></g></g><g transform="translate(100.8984375,13.600000000000001)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">in</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 411 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="411" 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(#blocklyDisabledPattern5514378754411586)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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=":!Muh45A,Aj+@}aho@l]" class="blocklyDraggable"><path class="blocklyPath" stroke="#197959" fill="#21a176" d=" m 20,0 h 369 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -369 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="0sib$!C=O2`EKf{==l/-" transform="translate(4, 4)" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#fff" d=" m 16,0 h 18.6953125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -18.6953125 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: text;"><rect rx="4" ry="4" x="0" y="0" height="18" width="26.6953125" class="blocklyFieldRect" stroke="#197959" style="display: none;"/><text class="blocklyText" dominant-baseline="central" x="0" y="9">100</text></g></g><g data-id="aUc1%pcuu/1K8BHE4q?." transform="translate(181.8359375, 4)" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#fff" d=" m 16,0 h 24.0234375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -24.0234375 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: text;"><rect rx="4" ry="4" x="0" y="0" height="18" width="32.0234375" class="blocklyFieldRect" stroke="#197959" style="display: none;"/><text class="blocklyText" dominant-baseline="central" x="0" y="9">-100</text></g></g><g data-id="]G4ru)/diSU%[:ARZDGP" transform="translate(365, 4)" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#fff" d=" m 16,0 h 8 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -8 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g class="blocklyEditableText" transform="translate(15.55078125,7)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="18" width="8.8984375" class="blocklyFieldRect" stroke="#197959" style="display: none;"/><text class="blocklyText" dominant-baseline="central" x="0" y="9">0</text></g></g><g data-id="]1Vv~335R$@_UYa$EilV" transform="translate(80.46875, 4)" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#1c8964" d=" m 16,0 h 22.2265625 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -22.2265625 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g transform="translate(12,7)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">true</text></g></g><g data-id="8VIxq*cG%4)TbE/|23G4" transform="translate(263.6328125, 4)" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#1c8964" d=" m 16,0 h 22.2265625 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -22.2265625 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g transform="translate(12,7)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">true</text></g></g><g transform="translate(62.6953125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">if</text></g><g transform="translate(142.6953125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">else</text></g><g transform="translate(245.859375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">if</text></g><g transform="translate(325.859375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">else</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 215.3671875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="215.3671875" 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(#blocklyDisabledPattern5514378754411586)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="R(7.qrvhh*8xF=Yuz??%" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 173.3671875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -173.3671875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><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+CiAgICA8cGF0aCBkPSJtMS43MTYxIDQuNjgyOCA3LjUwOTYgNy4xOTU3LTcuNTA5NiA3LjE5NTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz4KPHBhdGggZD0ibTEzLjYwMiAxOC44MzRoOS4yNjM1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPC9nPgo8L3N2Zz4="/></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(56,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">read</text></g><g class="blocklyEditableText" transform="translate(97.796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="103.5703125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">first byte</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(83.5703125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 209.1640625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="209.1640625" 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(#blocklyDisabledPattern5514378754411586)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="j05nn=c{QW;U!At%Az^f" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 167.1640625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -167.1640625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><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+CiAgICA8cGF0aCBkPSJtMS43MTYxIDQuNjgyOCA3LjUwOTYgNy4xOTU3LTcuNTA5NiA3LjE5NTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz4KPHBhdGggZD0ibTEzLjYwMiAxOC44MzRoOS4yNjM1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPC9nPgo8L3N2Zz4="/></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(56,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">read</text></g><g class="blocklyEditableText" transform="translate(97.796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="97.3671875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">first key</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(77.3671875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212.7109375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="212.7109375" 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(#blocklyDisabledPattern5514378754411586)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="m{M;5I@y(2TJ[dC0(GiK" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 170.7109375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -170.7109375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><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+CiAgICA8cGF0aCBkPSJtMS43MTYxIDQuNjgyOCA3LjUwOTYgNy4xOTU3LTcuNTA5NiA3LjE5NTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz4KPHBhdGggZD0ibTEzLjYwMiAxOC44MzRoOS4yNjM1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPC9nPgo8L3N2Zz4="/></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(56,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">read</text></g><g class="blocklyEditableText" transform="translate(97.796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="100.9140625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">last byte</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(80.9140625,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,989 @@
|
||||
<!-- Copyright (c) 2024 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 206.5078125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="206.5078125" 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(#blocklyDisabledPattern5514378754411586)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.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="-IGV,V:Hjrkh#3:8H|d:" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 164.5078125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -164.5078125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><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+CiAgICA8cGF0aCBkPSJtMS43MTYxIDQuNjgyOCA3LjUwOTYgNy4xOTU3LTcuNTA5NiA3LjE5NTciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz4KPHBhdGggZD0ibTEzLjYwMiAxOC44MzRoOS4yNjM1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPC9nPgo8L3N2Zz4="/></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(56,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">read</text></g><g class="blocklyEditableText" transform="translate(97.796875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="94.7109375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">last key</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(74.7109375,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -56,6 +56,10 @@ Logic
|
||||
|
||||
.. blockimg:: pybricks_blockLogicTernary
|
||||
|
||||
.. blockimg:: pybricks_blockLogicTernaryDouble
|
||||
|
||||
.. blockimg:: pybricks_blockIsIn
|
||||
|
||||
Flow
|
||||
--------------------------
|
||||
|
||||
|
||||
@@ -43,10 +43,16 @@ Essential Hub
|
||||
|
||||
.. rubric:: Using the IMU
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_EssentialHub_ready
|
||||
|
||||
.. automethod:: pybricks.hubs::EssentialHub.imu.ready
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_EssentialHub_stationary
|
||||
|
||||
.. automethod:: pybricks.hubs::EssentialHub.imu.stationary
|
||||
|
||||
.. blockimg:: pybricks_blockImuUp_EssentialHub
|
||||
|
||||
.. automethod:: pybricks.hubs::EssentialHub.imu.up
|
||||
|
||||
.. blockimg:: pybricks_blockTilt_EssentialHub_imu.tilt.pitch
|
||||
|
||||
@@ -32,6 +32,8 @@ Move Hub
|
||||
|
||||
.. rubric:: Using the IMU
|
||||
|
||||
.. blockimg:: pybricks_blockImuUp_MoveHub
|
||||
|
||||
.. automethod:: pybricks.hubs::MoveHub.imu.up
|
||||
|
||||
.. blockimg:: pybricks_blockTilt_MoveHub_imu.tilt.pitch
|
||||
|
||||
@@ -90,10 +90,16 @@ Prime Hub / Inventor Hub
|
||||
|
||||
.. rubric:: Using the IMU
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_PrimeHub_ready
|
||||
|
||||
.. automethod:: pybricks.hubs::PrimeHub.imu.ready
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_PrimeHub_stationary
|
||||
|
||||
.. automethod:: pybricks.hubs::PrimeHub.imu.stationary
|
||||
|
||||
.. blockimg:: pybricks_blockImuUp_PrimeHub
|
||||
|
||||
.. automethod:: pybricks.hubs::PrimeHub.imu.up
|
||||
|
||||
.. blockimg:: pybricks_blockTilt_PrimeHub_imu.tilt.pitch
|
||||
|
||||
@@ -30,10 +30,16 @@ Technic Hub
|
||||
|
||||
.. rubric:: Using the IMU
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_TechnicHub_ready
|
||||
|
||||
.. automethod:: pybricks.hubs::TechnicHub.imu.ready
|
||||
|
||||
.. blockimg:: pybricks_blockImuStatus_TechnicHub_stationary
|
||||
|
||||
.. automethod:: pybricks.hubs::TechnicHub.imu.stationary
|
||||
|
||||
.. blockimg:: pybricks_blockImuUp_TechnicHub
|
||||
|
||||
.. automethod:: pybricks.hubs::TechnicHub.imu.up
|
||||
|
||||
.. blockimg:: pybricks_blockTilt_TechnicHub_imu.tilt.pitch
|
||||
|
||||
@@ -28,6 +28,8 @@ Remote Control
|
||||
|
||||
.. automethod:: pybricks.pupdevices::Remote.buttons.pressed
|
||||
|
||||
.. automethod:: pybricks.pupdevices::Remote.disconnect
|
||||
|
||||
Examples
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -37,8 +37,24 @@ Timing tools
|
||||
Input tools
|
||||
-----------
|
||||
|
||||
.. blockimg:: pybricks_blockReadInput_read_input_first_byte
|
||||
|
||||
.. blockimg:: pybricks_blockReadInput_read_input_first_char
|
||||
:stack:
|
||||
|
||||
.. blockimg:: pybricks_blockReadInput_read_input_last_byte
|
||||
:stack:
|
||||
|
||||
.. blockimg:: pybricks_blockReadInput_read_input_last_char
|
||||
:stack:
|
||||
|
||||
.. autofunction:: pybricks.tools.read_input_byte
|
||||
|
||||
.. versionchanged:: 3.3
|
||||
|
||||
Added ``last`` and ``chr`` options.
|
||||
|
||||
|
||||
.. pybricks-requirements:: light-matrix
|
||||
|
||||
.. autofunction:: pybricks.tools.hub_menu
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 1.16.0 - 2024-04-05
|
||||
|
||||
### Changed
|
||||
- Updated `pybricks` package to v3.5.0b2.
|
||||
|
||||
## 1.15.0 - 2024-03-21
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -175,19 +175,19 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "parso"
|
||||
version = "0.8.3"
|
||||
version = "0.8.4"
|
||||
description = "A Python Parser"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"},
|
||||
{file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"},
|
||||
{file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
|
||||
{file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
|
||||
testing = ["docopt", "pytest (<6.0.0)"]
|
||||
qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"]
|
||||
testing = ["docopt", "pytest"]
|
||||
|
||||
[[package]]
|
||||
name = "pathspec"
|
||||
@@ -235,7 +235,7 @@ testing = ["pytest", "pytest-benchmark"]
|
||||
|
||||
[[package]]
|
||||
name = "pybricks"
|
||||
version = "v3.5.0b1"
|
||||
version = "3.5.0b2"
|
||||
description = "Documentation and user-API stubs for Pybricks MicroPython"
|
||||
category = "main"
|
||||
optional = false
|
||||
@@ -321,4 +321,4 @@ files = [
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">= 3.10, < 3.12"
|
||||
content-hash = "ed8e7ae0c6ccd2be4b216c32cb496645b37aa63539c2a4738ef6fd8122ec6e2d"
|
||||
content-hash = "a634c0231937213565b3dff33539075fd544a4261bf8f84e99b294f34ec7edd4"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
[tool.poetry]
|
||||
name = "pybricks_jedi"
|
||||
version = "1.15.0"
|
||||
version = "1.16.0"
|
||||
description = "Code completion for Pybricks."
|
||||
authors = ["The Pybricks Authors <team@pybricks.com>"]
|
||||
license = "MIT"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = ">= 3.10, < 3.12"
|
||||
pybricks = "3.5.0b1"
|
||||
pybricks = "3.5.0b2"
|
||||
jedi = "0.18.1"
|
||||
typing-extensions = "4.2.0"
|
||||
docstring-parser = "0.14.1"
|
||||
|
||||
@@ -29,7 +29,11 @@ def _get_function_signature(module: str, function: str) -> SignatureHelp:
|
||||
|
||||
|
||||
FUNCTION_PARAMS = [
|
||||
pytest.param("pybricks.tools", "read_input_byte", [([], "Optional[int]")]),
|
||||
pytest.param(
|
||||
"pybricks.tools",
|
||||
"read_input_byte",
|
||||
[(["last: bool=False", "chr: bool=False"], "Optional[int | str]")],
|
||||
),
|
||||
pytest.param("pybricks.tools", "wait", [(["time: Number"], "MaybeAwaitable")]),
|
||||
pytest.param(
|
||||
"pybricks.tools",
|
||||
|
||||
@@ -2,6 +2,16 @@
|
||||
|
||||
<!-- refer to https://keepachangelog.com/en/1.0.0/ for guidance -->
|
||||
|
||||
## 2.19.0 - 2024-04-11
|
||||
|
||||
### Changed
|
||||
- Updated docs to v3.5.0.
|
||||
|
||||
## 2.18.0 - 2024-04-05
|
||||
|
||||
### Changed
|
||||
- Updated docs to v3.5.0b2.
|
||||
|
||||
## 2.17.0 - 2024-03-21
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pybricks/ide-docs",
|
||||
"version": "2.17.0",
|
||||
"version": "2.19.0",
|
||||
"description": "Special build of Pybricks API docs for embedding in an IDE.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 1.16.0 - 2024-04-05
|
||||
|
||||
### Changed
|
||||
- Updated `pybricks_jedi` Python package to v1.16.0.
|
||||
|
||||
## 1.15.0 - 2024-03-21
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -12,7 +12,7 @@ BUILD_DIR = (pathlib.Path(__file__).parent / "build").resolve()
|
||||
|
||||
package_json = {
|
||||
"name": "@pybricks/jedi",
|
||||
"version": "1.15.0",
|
||||
"version": "1.16.0",
|
||||
"description": "Binary distribution of pybricks-jedi Python package and dependencies for use with Pyodide.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -38,7 +38,7 @@ subprocess.check_call(
|
||||
"pip",
|
||||
"download",
|
||||
"--only-binary=any",
|
||||
"pybricks-jedi==1.15.0",
|
||||
"pybricks-jedi==1.16.0",
|
||||
],
|
||||
cwd=BUILD_DIR,
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "pybricks"
|
||||
version = "v3.5.0b1"
|
||||
version = "3.5.0"
|
||||
description = "Documentation and user-API stubs for Pybricks MicroPython"
|
||||
authors = ["The Pybricks Authors <team@pybricks.com>"]
|
||||
maintainers = ["Laurens Valk <laurens@pybricks.com>", "David Lechner <david@pybricks.com>" ]
|
||||
|
||||
@@ -299,7 +299,7 @@ class LWP3Device:
|
||||
"""
|
||||
|
||||
@overload
|
||||
def name(self, name: str) -> None: ...
|
||||
def name(self, name: str) -> MaybeAwaitable: ...
|
||||
|
||||
@overload
|
||||
def name(self) -> str: ...
|
||||
@@ -336,6 +336,12 @@ class LWP3Device:
|
||||
The raw binary message.
|
||||
"""
|
||||
|
||||
def disconnect(self) -> MaybeAwaitable:
|
||||
"""disconnect()
|
||||
|
||||
Disconnects the remote LWP3Device from the hub.
|
||||
"""
|
||||
|
||||
|
||||
class XboxController:
|
||||
"""Use the Microsoft® Xbox® controller as a sensor in your projects to
|
||||
|
||||
@@ -143,6 +143,12 @@ class Remote:
|
||||
this method returns the current name.
|
||||
"""
|
||||
|
||||
def disconnect(self) -> MaybeAwaitable:
|
||||
"""disconnect()
|
||||
|
||||
Disconnects the remote from the hub.
|
||||
"""
|
||||
|
||||
|
||||
class TiltSensor:
|
||||
"""LEGO® Powered Up Tilt Sensor."""
|
||||
|
||||
@@ -211,14 +211,23 @@ def cross(a: Matrix, b: Matrix) -> Matrix:
|
||||
"""
|
||||
|
||||
|
||||
def read_input_byte() -> Optional[int]:
|
||||
def read_input_byte(last: bool = False, chr: bool = False) -> Optional[int | str]:
|
||||
"""
|
||||
read_input_byte() -> int | None
|
||||
read_input_byte() -> int | str | None
|
||||
|
||||
Reads one byte from standard input without blocking.
|
||||
Reads one byte from standard input without blocking and removes it from the
|
||||
input buffer.
|
||||
|
||||
Arguments:
|
||||
last (bool): Choose ``True`` to read the last (most recent) byte in the buffer and discard the rest.
|
||||
Choose ``False`` to read only the first (oldest) byte.
|
||||
chr (bool): Choose ``True`` to convert the result to a one-character string.
|
||||
|
||||
Returns:
|
||||
The numeric value of the byte read or ``None`` if no data is available.
|
||||
The byte that was read, as a numeric value (``0`` to ``255``) or
|
||||
string (e.g. ``"B"``). Returns ``None`` if no data is available. If
|
||||
``chr=True``, it also return ``None`` if the byte that was read is not
|
||||
printable as a character.
|
||||
"""
|
||||
|
||||
|
||||
|
||||