Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcd4d3a45c | ||
|
|
48cd9db78a | ||
|
|
719e587517 | ||
|
|
eab61dc6ac | ||
|
|
c78eb16660 | ||
|
|
fa7a336fd1 | ||
|
|
d5f6a1ad00 | ||
|
|
5bef252078 | ||
|
|
f12a6a26ac | ||
|
|
4e78de9d2a | ||
|
|
95b168355e | ||
|
|
a9be86238d | ||
|
|
16d5ba64d2 | ||
|
|
d8802ace7d | ||
|
|
acb5206349 | ||
|
|
6686fce3c3 | ||
|
|
7d27fbb5d8 | ||
|
|
a0e98ba75f | ||
|
|
1b69e42b6b | ||
|
|
47a3d664c2 | ||
|
|
e6cb436c47 | ||
|
|
a8d74720b6 | ||
|
|
54b4e39360 | ||
|
|
1f8f0f777a | ||
|
|
45b9b89d11 | ||
|
|
e0f48b178b | ||
|
|
8ed5a489b9 | ||
|
|
a2ba8e4dcd | ||
|
|
7900f03574 | ||
|
|
7014f46441 | ||
|
|
7411a246c9 | ||
|
|
3bc2f35e3e | ||
|
|
61578b5547 | ||
|
|
c615ccf986 | ||
|
|
32f974e7e5 | ||
|
|
0efcfd4a36 | ||
|
|
356f6ffdba | ||
|
|
4967b96ddd | ||
|
|
116368e4c7 | ||
|
|
5b56249d8c | ||
|
|
04fb7e3e19 | ||
|
|
5814a73bb1 | ||
|
|
ed3059b47b | ||
|
|
2a98264144 | ||
|
|
6083b17d9a | ||
|
|
1c598f35be | ||
|
|
52c522df2d | ||
|
|
2380be2814 | ||
|
|
89a34e9f51 | ||
|
|
9597f227f4 | ||
|
|
1e09cb2232 | ||
|
|
6739b517a5 | ||
|
|
c5cfcd0ac8 | ||
|
|
827eda031b | ||
|
|
c77b440270 | ||
|
|
789e70a42b | ||
|
|
53d6d14de6 | ||
|
|
ce9d7420fb | ||
|
|
044903b193 | ||
|
|
25bfd0e80e | ||
|
|
b28f768bec | ||
|
|
f35bbe44f5 | ||
|
|
08fa5b1c17 | ||
|
|
6982cf4fd2 | ||
|
|
8ffdde38e6 | ||
|
|
353310c1ba | ||
|
|
4ca1ddf909 | ||
|
|
b0ff867dcc | ||
|
|
c05d5c42cd | ||
|
|
190c0a4a75 | ||
|
|
52b3b4c007 | ||
|
|
0145fd41ae | ||
|
|
d228b7de99 | ||
|
|
615d21cd54 | ||
|
|
d028e805e7 | ||
|
|
d2fee3557d | ||
|
|
c02ab79abe | ||
|
|
3783fac4e3 | ||
|
|
dcf8405f31 | ||
|
|
2d0cf6c28c | ||
|
|
d4e7657d31 | ||
|
|
15664146bd | ||
|
|
32a63a4c09 | ||
|
|
c7e582ea22 | ||
|
|
fbea972807 | ||
|
|
ea4f594696 | ||
|
|
65748ca56c | ||
|
|
1194f6c29f | ||
|
|
01070eea34 | ||
|
|
6dd0d6dea0 | ||
|
|
0bc8675ca7 | ||
|
|
7acdfc035e | ||
|
|
2e538b66c3 | ||
|
|
b2b183ef8f | ||
|
|
72f25cb88e | ||
|
|
079b108680 | ||
|
|
e3b2e6edca | ||
|
|
194949c668 | ||
|
|
d3ca8ee719 | ||
|
|
fae24a6ef0 | ||
|
|
dd192de18b | ||
|
|
d1b7d0f61b | ||
|
|
8fa99928dd | ||
|
|
00318fd815 | ||
|
|
b4adb50adf | ||
|
|
1d2c0c273c | ||
|
|
04b7c745e2 | ||
|
|
1d7efe6bdc | ||
|
|
2b1f161005 | ||
|
|
7b2242e420 | ||
|
|
45b6fd5de1 | ||
|
|
296eb0f234 | ||
|
|
43f0e72a09 | ||
|
|
4d864737ae | ||
|
|
68e5dbd6d2 | ||
|
|
60ec65bd19 |
@@ -22,7 +22,7 @@ jobs:
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Install dependencies
|
||||
|
||||
@@ -7,24 +7,9 @@ jobs:
|
||||
if: github.ref_type != 'tag'
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
- run: pipx install poetry
|
||||
- run: poetry install
|
||||
working-directory: ./jedi
|
||||
- run: poetry run pytest -vv
|
||||
working-directory: ./jedi
|
||||
|
||||
publish:
|
||||
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'pybricks_jedi/')
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: pipx install poetry
|
||||
- run: poetry install
|
||||
working-directory: ./jedi
|
||||
- run: poetry build
|
||||
working-directory: ./jedi
|
||||
- run: poetry publish
|
||||
working-directory: ./jedi
|
||||
env:
|
||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_PYBRICKS_JEDI_TOKEN }}
|
||||
|
||||
@@ -2,22 +2,32 @@ name: Release @pybricks/ide-docs
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '@pybricks/ide-docs/**'
|
||||
tags:
|
||||
- 'v4.*'
|
||||
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
publish_ide_docs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Get version from tag
|
||||
run: |
|
||||
VERSION="${GITHUB_REF_NAME#v}"
|
||||
NPM_VERSION=$(echo "$VERSION" | sed 's/\([0-9]\)a\([0-9]\)/\1-alpha.\2/;s/\([0-9]\)b\([0-9]\)/\1-beta.\2/;s/\([0-9]\)rc\([0-9]\)/\1-rc.\2/')
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
echo "NPM_VERSION=$NPM_VERSION" >> $GITHUB_ENV
|
||||
- name: Ubuntu packages
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y dvisvgm preview-latex-style texlive texlive-fonts-extra texlive-latex-extra
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install dependencies
|
||||
@@ -26,13 +36,13 @@ jobs:
|
||||
poetry run python -m pip install --upgrade pip
|
||||
poetry run python -m pip install --upgrade setuptools
|
||||
poetry install --only=doc
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '14.x'
|
||||
node-version: '24'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- run: npm version --no-git-tag-version "$NPM_VERSION"
|
||||
working-directory: npm/ide-docs
|
||||
- run: yarn build
|
||||
working-directory: npm/ide-docs
|
||||
- run: yarn publish
|
||||
- run: npm publish
|
||||
working-directory: npm/ide-docs
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
||||
|
||||
@@ -9,11 +9,11 @@ jobs:
|
||||
publish_ide_docs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
# Setup .npmrc file to publish to npm
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '16.x'
|
||||
node-version: '22.x'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- run: ./build.py
|
||||
working-directory: npm/images
|
||||
|
||||
@@ -2,22 +2,38 @@ name: Release @pybricks/jedi
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '@pybricks/jedi/**'
|
||||
tags:
|
||||
- 'v4.*'
|
||||
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
publish_jedi:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
# Setup .npmrc file to publish to npm
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/checkout@v6
|
||||
- name: Get version from tag
|
||||
run: |
|
||||
VERSION="${GITHUB_REF_NAME#v}"
|
||||
NPM_VERSION=$(echo "$VERSION" | sed 's/\([0-9]\)a\([0-9]\)/\1-alpha.\2/;s/\([0-9]\)b\([0-9]\)/\1-beta.\2/;s/\([0-9]\)rc\([0-9]\)/\1-rc.\2/')
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
echo "NPM_VERSION=$NPM_VERSION" >> $GITHUB_ENV
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
node-version: '16.x'
|
||||
python-version: '3.11'
|
||||
- name: Install poetry
|
||||
run: pipx install poetry
|
||||
- name: Set pybricks-jedi version
|
||||
run: poetry version "$VERSION"
|
||||
working-directory: jedi
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '24'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- run: ./build.py
|
||||
- run: ./build.py "$NPM_VERSION"
|
||||
working-directory: npm/jedi
|
||||
- run: yarn publish
|
||||
- run: npm publish
|
||||
working-directory: npm/jedi/build
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
||||
|
||||
@@ -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:
|
||||
- 'v4.*'
|
||||
|
||||
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@v6
|
||||
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@v6
|
||||
- run: pipx run poetry build
|
||||
- run: pipx run poetry publish
|
||||
env:
|
||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
|
||||
@@ -12,9 +12,8 @@ build:
|
||||
jobs:
|
||||
post_create_environment:
|
||||
- pip install poetry
|
||||
- poetry config virtualenvs.create false
|
||||
post_install:
|
||||
- poetry install --only=doc
|
||||
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --only=doc
|
||||
|
||||
# Build documentation in the doc/main/ directory with Sphinx
|
||||
sphinx:
|
||||
|
||||
@@ -24,7 +24,6 @@ EV3
|
||||
ev3brick
|
||||
ev3dev
|
||||
ev3devices
|
||||
Ev3devSensor
|
||||
fb
|
||||
Franca
|
||||
func
|
||||
|
||||
@@ -4,6 +4,123 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 4.0.0b4 - 2026-05-29
|
||||
|
||||
### Changed
|
||||
|
||||
- Bump node version.
|
||||
|
||||
## 4.0.0b3 - 2026-05-29
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed NPM publishing permissions.
|
||||
|
||||
## 4.0.0b2 - 2026-05-29
|
||||
|
||||
### Changed
|
||||
|
||||
- Change NPM publishing to trusted publishers.
|
||||
|
||||
|
||||
## 4.0.0b1 - 2026-05-29
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated API for firmware 4.0.0bx. See upstream changelog for details.
|
||||
- Updated release pipeline to publish rtd, npm/docs and npm/jedi on tag.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed `DriveBase.angle` reporting an incorrect return type.
|
||||
|
||||
## 3.6.1 - 2025-05-01
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed missing `hub.system.info` method on some hubs.
|
||||
|
||||
## 3.6.0 - 2025-03-11
|
||||
|
||||
### Changed
|
||||
|
||||
- Update API for firmware 3.6.0. See upstream changelog for details.
|
||||
|
||||
## 3.6.0b5 - 2025-02-26
|
||||
|
||||
### Changed
|
||||
|
||||
- Update API for firmware 3.6.0b5. See upstream changelog for details.
|
||||
|
||||
## 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
|
||||
|
||||
- Added `XboxController.rumble` method.
|
||||
- Added block icons for `hub.system.set_stop_button` and `hub.system.shutdown`.
|
||||
- Added program stop block (`raise SystemExit`).
|
||||
|
||||
## 3.4.1 - 2024-03-11
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed Read The Docs virtual environment workflow.
|
||||
|
||||
## 3.4.0 - 2024-03-11
|
||||
|
||||
### Changed
|
||||
|
||||
- Update list block screenshots to match implementation.
|
||||
|
||||
## 3.4.0b5 - 2024-03-05
|
||||
|
||||
### Changed
|
||||
|
||||
- Updates for v3.4.0b3 firmware (out of sync with docs).
|
||||
- Changed `hub.button` to `hub.buttons` on single button hubs. Access via
|
||||
`hub.button` will keep working in the firmware for backwards compatibility.
|
||||
|
||||
## 3.4.0b4 - 2024-02-14
|
||||
|
||||
### Added
|
||||
|
||||
- Added `pybricks.iodevices.XboxController` class.
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed `buttons.pressed` return type to set.
|
||||
|
||||
## 3.4.0b3 - 2024-01-30
|
||||
|
||||
### Added
|
||||
|
||||
- Added `pybricks.robotics.Car` class.
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed `pybricks.robotics.DriveBase` icon to two wheels instead of steering
|
||||
wheel, which will be used for the new car class.
|
||||
|
||||
## 3.4.0b2 - 2023-11-28
|
||||
|
||||
### Changed
|
||||
- Include first batch of block coding images.
|
||||
|
||||
## 3.3.0 - 2023-11-24
|
||||
|
||||
### Changed
|
||||
@@ -11,7 +128,7 @@
|
||||
|
||||
## 3.3.0c1 - 2023-11-20
|
||||
|
||||
## Added
|
||||
### Added
|
||||
- Enabled tilt and orientation config for `MoveHub()`.
|
||||
- Documented `Motor.close()`
|
||||
|
||||
@@ -25,7 +142,7 @@
|
||||
toggled using `use_gyro` instead of using a separate `GyroDriveBase` class.
|
||||
- Documentation updates to match firmware 3.3.0b5--3.3.0b9 updates.
|
||||
|
||||
## Added
|
||||
### Added
|
||||
- Added `set` to `ubuiltins` module.
|
||||
- Basic multitasking docs.
|
||||
- Awaitable keyword for awaitable methods and functions.
|
||||
@@ -107,7 +224,7 @@
|
||||
|
||||
## 3.2.0b1-r1 - 2022-06-09
|
||||
|
||||
## Added
|
||||
### Added
|
||||
- Added `__init__.py` to `pybricks` package.
|
||||
|
||||
## 3.2.0b1 - 2022-06-02
|
||||
@@ -178,7 +295,7 @@ not correspond to Pybricks firmware version numbers.**
|
||||
|
||||
## 1.3.2 - 2021-04-26
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
- Theme style fixes.
|
||||
- Example code fixes
|
||||
- Match doc version to firmware version.
|
||||
|
||||
@@ -163,6 +163,11 @@ Linting:
|
||||
poetry run flake8 # check Python
|
||||
poetry run doc8 # check Restructured Text
|
||||
|
||||
Building all release artifacts (docs, jedi, npm packages):
|
||||
|
||||
# Linux/macOS only
|
||||
./build-all.sh
|
||||
|
||||
[vscode]: https://code.visualstudio.com/
|
||||
[git]: https://git-scm.com/
|
||||
[python]: https://www.python.org/
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build all release artifacts locally (equivalent to CI workflows, minus publish).
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
|
||||
|
||||
# Activate the project venv so python/make/etc. all use it without poetry run
|
||||
source "$REPO_ROOT/.venv/bin/activate"
|
||||
|
||||
# Read version from pyproject.toml
|
||||
VERSION=$(grep '^version = ' "$REPO_ROOT/pyproject.toml" | head -1 | sed 's/version = "\(.*\)"/\1/')
|
||||
# Convert Python pre-release format (e.g. 4.0.0a1, 4.0.0b1, 4.0.0rc1) to npm semver (e.g. 4.0.0-alpha.1, 4.0.0-beta.1, 4.0.0-rc.1)
|
||||
NPM_VERSION=$(echo "$VERSION" | sed 's/\([0-9]\)a\([0-9]\)/\1-alpha.\2/;s/\([0-9]\)b\([0-9]\)/\1-beta.\2/;s/\([0-9]\)rc\([0-9]\)/\1-rc.\2/')
|
||||
echo "==> Building version $VERSION (npm: $NPM_VERSION)"
|
||||
|
||||
# lint
|
||||
echo "==> Linting"
|
||||
cd "$REPO_ROOT"
|
||||
flake8
|
||||
doc8
|
||||
|
||||
# pybricks-jedi wheel (from local source)
|
||||
echo "==> Testing pybricks-jedi"
|
||||
cd "$REPO_ROOT/jedi"
|
||||
poetry run pytest -vv
|
||||
|
||||
echo "==> Building pybricks-jedi wheel"
|
||||
cd "$REPO_ROOT/jedi"
|
||||
rm -rf dist/
|
||||
poetry build --format=wheel
|
||||
|
||||
# @pybricks/jedi npm package
|
||||
echo "==> Building @pybricks/jedi"
|
||||
cd "$REPO_ROOT"
|
||||
python3 npm/jedi/build.py "$NPM_VERSION"
|
||||
|
||||
# @pybricks/ide-docs npm package
|
||||
echo "==> Building @pybricks/ide-docs"
|
||||
cd "$REPO_ROOT"
|
||||
make -C doc clean
|
||||
cd "$REPO_ROOT/npm/ide-docs"
|
||||
yarn build
|
||||
|
||||
echo ""
|
||||
echo "Build complete."
|
||||
echo " jedi npm package : npm/jedi/build/"
|
||||
echo " ide-docs : npm/ide-docs/html/"
|
||||
@@ -0,0 +1,11 @@
|
||||
.svg-container {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.svg-container svg {
|
||||
position: relative;
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
@@ -57,6 +57,7 @@ extensions = [
|
||||
"sphinx.ext.todo",
|
||||
"sphinx.ext.mathjax",
|
||||
# Custom Pybricks extensions
|
||||
"blockimg",
|
||||
"color",
|
||||
"classlink",
|
||||
"requirements",
|
||||
@@ -150,6 +151,9 @@ import sphinx_rtd_theme
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||
|
||||
html_show_sourcelink = False
|
||||
html_copy_source = False
|
||||
|
||||
html_context = {
|
||||
"disclaimer": _DISCLAIMER,
|
||||
}
|
||||
@@ -250,16 +254,11 @@ latex_documents = [
|
||||
exclude_patterns = [
|
||||
"ev3devices.rst",
|
||||
"hubs/ev3brick.rst",
|
||||
"iodevices/analogsensor.rst",
|
||||
"iodevices/dcmotor.rst",
|
||||
"iodevices/ev3devsensor.rst",
|
||||
"iodevices/i2cdevice.rst",
|
||||
"iodevices/lumpdevice.rst",
|
||||
"iodevices/uartdevice.rst",
|
||||
"media.rst",
|
||||
"messaging.rst",
|
||||
"nxtdevices.rst",
|
||||
"tools/datalog.rst",
|
||||
"*.rst.txt",
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
from docutils.parsers.rst import Directive
|
||||
from docutils import nodes
|
||||
from pathlib import Path
|
||||
|
||||
SPHINX_IMAGE_PATH = "blockimg"
|
||||
|
||||
|
||||
def get_svg_content(file_path):
|
||||
with open(file_path, "r", encoding="utf-8") as file:
|
||||
return file.read()
|
||||
|
||||
|
||||
# Global variable to store the app object
|
||||
app = None
|
||||
|
||||
|
||||
class BlockImageDirective(Directive):
|
||||
has_content = False
|
||||
required_arguments = 1
|
||||
optional_arguments = 0
|
||||
|
||||
def run(self):
|
||||
# Adjust the image path
|
||||
file_name = self.arguments[0] + ".svg"
|
||||
file_path = Path(app.srcdir) / SPHINX_IMAGE_PATH / file_name
|
||||
|
||||
# Read the SVG content
|
||||
svg_content = get_svg_content(file_path)
|
||||
|
||||
# Create a raw HTML node with the SVG content
|
||||
raw_html = f'<div class="svg-container">{svg_content}</div>'
|
||||
raw_node = nodes.raw("", raw_html, format="html")
|
||||
|
||||
return [raw_node]
|
||||
|
||||
|
||||
def setup(apparg):
|
||||
global app
|
||||
app = apparg
|
||||
app.add_directive("blockimg", BlockImageDirective)
|
||||
@@ -14,29 +14,46 @@ FEATURES_MEDIUM = FEATURES_SMALL | {
|
||||
"pybricks-iodevices",
|
||||
"stm32-extra",
|
||||
"stm32-float",
|
||||
"pybricks-frozen",
|
||||
}
|
||||
|
||||
# Large feature set.
|
||||
FEATURES_LARGE = FEATURES_MEDIUM | set()
|
||||
FEATURES_LARGE = FEATURES_MEDIUM | {
|
||||
"ble-extra", # Extra features such as pairing or multiple connections.
|
||||
}
|
||||
|
||||
# Features per hub.
|
||||
HUB_FEATURES = {
|
||||
"movehub": {"movehub"} | FEATURES_SMALL,
|
||||
"cityhub": {"cityhub"} | FEATURES_MEDIUM,
|
||||
"technichub": {"technichub", "gyro"} | FEATURES_MEDIUM,
|
||||
"primehub": {"primehub", "inventorhub", "light-matrix", "gyro"} | FEATURES_LARGE,
|
||||
"inventorhub": {"primehub", "inventorhub", "light-matrix", "gyro"} | FEATURES_LARGE,
|
||||
"essentialhub": {"essentialhub", "gyro"} | FEATURES_LARGE,
|
||||
"movehub": {"movehub", "pup"} | FEATURES_SMALL,
|
||||
"cityhub": {"cityhub", "pup"} | FEATURES_MEDIUM,
|
||||
"technichub": {"technichub", "gyro", "xbox-controller", "pup"} | FEATURES_MEDIUM,
|
||||
"primehub": {
|
||||
"primehub",
|
||||
"inventorhub",
|
||||
"light-matrix",
|
||||
"gyro",
|
||||
"xbox-controller",
|
||||
"pup",
|
||||
}
|
||||
| FEATURES_LARGE,
|
||||
"inventorhub": {
|
||||
"primehub",
|
||||
"inventorhub",
|
||||
"light-matrix",
|
||||
"gyro",
|
||||
"xbox-controller",
|
||||
"pup",
|
||||
}
|
||||
| FEATURES_LARGE,
|
||||
"essentialhub": {"essentialhub", "gyro", "xbox-controller", "pup"} | FEATURES_LARGE,
|
||||
}
|
||||
|
||||
|
||||
class PybricksRequirementsStaticDirective(Directive):
|
||||
|
||||
required_arguments = 0
|
||||
optional_arguments = 10
|
||||
|
||||
def run(self):
|
||||
|
||||
# Copy required resources to static
|
||||
# CC BY-SA 4.0 via https://stackoverflow.com/a/63728208
|
||||
env = self.state.document.settings.env
|
||||
@@ -87,9 +104,7 @@ class PybricksRequirementsStaticDirective(Directive):
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
""".format(
|
||||
compat_row
|
||||
)
|
||||
""".format(compat_row)
|
||||
|
||||
# Return the node.
|
||||
node = nodes.raw("", html, format="html")
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Copyright (c) 2024 The Pybricks Authors - All rights reserved
|
||||
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 335.8125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="335.8125" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="TM:xt;sb{[(ouv1G)6=7" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 293.8125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -293.8125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="t#MJ)EYE%Nd$JbJg$lf," transform="translate(56, 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">city 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(69.3359375,3.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(169.3359375,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(230.6875,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 336.703125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="336.703125" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="Aw^Mpc.{F?hs$,|l9?/w" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 294.703125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -294.703125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="37AlsSCP[IW2ldqWM~%G" transform="translate(56, 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">city 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(69.3359375,3.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(169.3359375,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(230.6875,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 376.7265625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="376.7265625" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="VR.uH`([INlm($[u*-qB" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 334.7265625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -334.7265625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="nZ+o}Pq.^5V`TMQ}UU}O" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(210.25,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(271.6015625,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 377.6171875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="377.6171875" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="#U3R,_0;K#BQs]w#pvew" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 335.6171875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -335.6171875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="FkCg4^C)Gv8gD2+sD4+Y" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(210.25,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(271.6015625,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 371.359375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="371.359375" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="/_mt(`U#Wp/mHCHw{UPZ" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 329.359375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -329.359375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="BTEgeCu?;zzs!1zlA0/9" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(204.8828125,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(266.234375,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 372.25 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="372.25" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="XHIL)43~Y;BOk+pm|]+X" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 330.25 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -330.25 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="=nD$@1E**Clx=jU^fP9!" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(204.8828125,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(266.234375,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350.0390625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="350.0390625" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="Y?1*1D2ko!i~gk6-w#k_" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 308.0390625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -308.0390625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="cvy8yY-3n8Wk8:eXNm%N" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(183.5625,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(244.9140625,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350.9296875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="350.9296875" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="O].[M@qC{]{RQ37T^}n*" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 308.9296875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -308.9296875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id=";XcZ`(Jg-QHT6;@9irpn" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(183.5625,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(244.9140625,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 351.8125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="351.8125" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="VQOntrQLF]Hloj]P@}[h" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 309.8125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -309.8125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="WEahWZni:i=BOgtfrRX$" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(185.3359375,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(246.6875,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352.703125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="352.703125" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="l2+(Sy-$bK^UZVH8slg[" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 310.703125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -310.703125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="m#l9@/ZS#$6Bpih66vFR" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(185.3359375,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(246.6875,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 364.2578125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="364.2578125" 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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="mhR%KRMic=.FV{|c_t5a" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 322.2578125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -322.2578125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="h1xvwMNyzH@Q.[+@Ah)Z" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(197.78125,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(259.1328125,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="91.125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">current</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(71.125,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 365.1484375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="365.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(#blocklyDisabledPattern9387213926908944)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="VC`B!I?5;,-QT0D#xQuz" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 323.1484375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -323.1484375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="(]VvG{675B%eXPE*=G[5" 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,6.5)" style="cursor: default;"><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="0" y="9.5">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.5)"/></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+CiAgICA8ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9IjAiPgo8cmVjdCB4PSI3LjcyNjUiIHk9IjIuMDkyNWUtNyIgd2lkdGg9IjkuNTQ3IiBoZWlnaHQ9IjMuOTM2OCIgcng9Ii43NTg0MSIgcnk9Ii43MjU0MyIvPgo8cGF0aCBkPSJtNS4xMDYzIDMuMDIyMmMtMC4zMzYxMy0xZS03IC0wLjYwNjI1IDAuMzEwMTctMC42MDYyNSAwLjY5NTMxdjIwLjU4N2MwIDAuMzg1MTQgMC4yNzAxMiAwLjY5NTMxIDAuNjA2MjUgMC42OTUzMWgxNC43ODdjMC4zMzYxMyAwIDAuNjA2MjUtMC4zMTAxNyAwLjYwNjI1LTAuNjk1MzF2LTIwLjU4N2MwLTAuMzg1MTQtMC4yNzAxMi0wLjY5NTMxLTAuNjA2MjUtMC42OTUzMXptMC45NDIxOSAyLjE4MTZoMTIuOTAzdjUuMzYxM2gtMTIuOTAzeiIvPgo8L2c+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(197.78125,10.5)"><text class="blocklyText" dominant-baseline="central" x="0" y="9.5">battery</text></g><g class="blocklyEditableText" transform="translate(259.1328125,4.9)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="30.2" width="92.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="15.1">voltage</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(72.015625,9.1)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 297.6015625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="297.6015625" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="d4%8R0P|NsuWM7/n34f0" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 255.6015625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -255.6015625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="RhT/N^Vc%GAY6X/,x6Xr" transform="translate(56, 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">city 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(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+CiAgICA8cGF0aCB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIiBkPSJtLTIwLjc5NCAzLjVhMTIuNzI4IDEyLjcyOCAwIDAgMSAzLjcyNzkgOSAxMi43MjggMTIuNzI4IDAgMCAxLTMuNzI3OSA5IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkiIGQ9Im0tMjMuOTQ4IDcuNDA3NWE3LjIwMTggNy4yMDE4IDAgMCAxIDIuMTA5MyA1LjA5MjQgNy4yMDE4IDcuMjAxOCAwIDAgMS0yLjEwOTMgNS4wOTI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIGQ9Im0xIDE3Ljc3IDEwLjg4NS0xMC44ODUtNS41ODE5LTUuNTgxOXYyMi4zOTNsNS42NzQ0LTUuNjc0NC0xMC44NTUtMTAuODU1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+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(169.3359375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">observe</text></g><g class="blocklyEditableText" transform="translate(238.703125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="44.8984375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">0</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(24.8984375,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 338.515625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="338.515625" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="n)t+X~IZdbI-83^2,Bib" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 296.515625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -296.515625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="sx|#xWd;!FAj$+ee$`lX" 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+CiAgICA8cGF0aCB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIiBkPSJtLTIwLjc5NCAzLjVhMTIuNzI4IDEyLjcyOCAwIDAgMSAzLjcyNzkgOSAxMi43MjggMTIuNzI4IDAgMCAxLTMuNzI3OSA5IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkiIGQ9Im0tMjMuOTQ4IDcuNDA3NWE3LjIwMTggNy4yMDE4IDAgMCAxIDIuMTA5MyA1LjA5MjQgNy4yMDE4IDcuMjAxOCAwIDAgMS0yLjEwOTMgNS4wOTI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIGQ9Im0xIDE3Ljc3IDEwLjg4NS0xMC44ODUtNS41ODE5LTUuNTgxOXYyMi4zOTNsNS42NzQ0LTUuNjc0NC0xMC44NTUtMTAuODU1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+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(210.25,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">observe</text></g><g class="blocklyEditableText" transform="translate(279.6171875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="44.8984375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">0</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(24.8984375,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 313.6015625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="313.6015625" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id=";`a0~1?0(%3M`PmNGcP_" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 271.6015625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -271.6015625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="IqPhInwvUg`a.0?h;7hK" 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+CiAgICA8cGF0aCB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIiBkPSJtLTIwLjc5NCAzLjVhMTIuNzI4IDEyLjcyOCAwIDAgMSAzLjcyNzkgOSAxMi43MjggMTIuNzI4IDAgMCAxLTMuNzI3OSA5IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkiIGQ9Im0tMjMuOTQ4IDcuNDA3NWE3LjIwMTggNy4yMDE4IDAgMCAxIDIuMTA5MyA1LjA5MjQgNy4yMDE4IDcuMjAxOCAwIDAgMS0yLjEwOTMgNS4wOTI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIGQ9Im0xIDE3Ljc3IDEwLjg4NS0xMC44ODUtNS41ODE5LTUuNTgxOXYyMi4zOTNsNS42NzQ0LTUuNjc0NC0xMC44NTUtMTAuODU1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+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(185.3359375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">observe</text></g><g class="blocklyEditableText" transform="translate(254.703125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="44.8984375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">0</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(24.8984375,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 326.046875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="326.046875" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="E6*-m1HDcv18zKGzs|Y6" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 284.046875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -284.046875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="kcT!H4rYvaj]NRg|o}X|" 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+CiAgICA8cGF0aCB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIiBkPSJtLTIwLjc5NCAzLjVhMTIuNzI4IDEyLjcyOCAwIDAgMSAzLjcyNzkgOSAxMi43MjggMTIuNzI4IDAgMCAxLTMuNzI3OSA5IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkiIGQ9Im0tMjMuOTQ4IDcuNDA3NWE3LjIwMTggNy4yMDE4IDAgMCAxIDIuMTA5MyA1LjA5MjQgNy4yMDE4IDcuMjAxOCAwIDAgMS0yLjEwOTMgNS4wOTI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIGQ9Im0xIDE3Ljc3IDEwLjg4NS0xMC44ODUtNS41ODE5LTUuNTgxOXYyMi4zOTNsNS42NzQ0LTUuNjc0NC0xMC44NTUtMTAuODU1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+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(197.78125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">observe</text></g><g class="blocklyEditableText" transform="translate(267.1484375,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="44.8984375" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">0</text><image style="display: none;"/><image height="12px" width="12px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" transform="translate(24.8984375,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 249.5859375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="249.5859375" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="Vj{`AcqWBKR:gZzVT_j%" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 207.5859375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -207.5859375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="*pG;WRtz9F^6eUcOWG|W" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 64.46875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -64.46875 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">sensor</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(60.46875,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+CiAgICA8Zz4KPGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE3LjUiIHI9IjcuNSIgZmlsbD0iIzFmZjUwMCIgc3R5bGU9Ii13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQiLz4KPGNpcmNsZSBjeD0iNy41IiBjeT0iMTcuNSIgcj0iNy41IiBmaWxsPSIjZjUyOTAwIiBzdHlsZT0iLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZCIvPgo8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNy41IiByPSI3LjUiIGZpbGw9IiMwMDUwZjUiIHN0eWxlPSItd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkIi8+CjwvZz4KICA8L2c+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 class="blocklyEditableText" transform="translate(160.46875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="75.1171875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">color</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(55.1171875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 238.0390625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="238.0390625" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="cgN)it=q81EV~UJFgM7*" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 196.0390625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -196.0390625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="Y};n=;pq.^d|rG--b6VE" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 64.46875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -64.46875 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">sensor</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(60.46875,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+CiAgICA8Zz4KPGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE3LjUiIHI9IjcuNSIgZmlsbD0iIzFmZjUwMCIgc3R5bGU9Ii13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQiLz4KPGNpcmNsZSBjeD0iNy41IiBjeT0iMTcuNSIgcj0iNy41IiBmaWxsPSIjZjUyOTAwIiBzdHlsZT0iLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZCIvPgo8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNy41IiByPSI3LjUiIGZpbGw9IiMwMDUwZjUiIHN0eWxlPSItd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkIi8+CjwvZz4KICA8L2c+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 class="blocklyEditableText" transform="translate(160.46875,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="63.5703125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">hsv</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(43.5703125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 293.1484375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="293.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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="v!-lqi5y#j+;a,_#~iP4" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 251.1484375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -251.1484375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="I!X[{ocKU.Gb}31SL(}/" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.03125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.03125 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">color sensor</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.03125,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+CiAgICA8Zz4KPGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE3LjUiIHI9IjcuNSIgZmlsbD0iIzFmZjUwMCIgc3R5bGU9Ii13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQiLz4KPGNpcmNsZSBjeD0iNy41IiBjeT0iMTcuNSIgcj0iNy41IiBmaWxsPSIjZjUyOTAwIiBzdHlsZT0iLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZCIvPgo8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNy41IiByPSI3LjUiIGZpbGw9IiMwMDUwZjUiIHN0eWxlPSItd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkIi8+CjwvZz4KICA8L2c+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 class="blocklyEditableText" transform="translate(204.03125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="75.1171875" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">color</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(55.1171875,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 281.6015625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="281.6015625" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="MuY[+d=Vng}9NBqPKK#]" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 239.6015625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -239.6015625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="qfCc0X*byu?Z[uy?48bI" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.03125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.03125 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">color sensor</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.03125,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+CiAgICA8Zz4KPGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE3LjUiIHI9IjcuNSIgZmlsbD0iIzFmZjUwMCIgc3R5bGU9Ii13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQiLz4KPGNpcmNsZSBjeD0iNy41IiBjeT0iMTcuNSIgcj0iNy41IiBmaWxsPSIjZjUyOTAwIiBzdHlsZT0iLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZCIvPgo8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNy41IiByPSI3LjUiIGZpbGw9IiMwMDUwZjUiIHN0eWxlPSItd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkIi8+CjwvZz4KICA8L2c+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 class="blocklyEditableText" transform="translate(204.03125,5.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="63.5703125" class="blocklyFieldRect blocklyDropdownRect" stroke="#4585a1" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">hsv</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(43.5703125,8.6)"/></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 261.5 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="261.5" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="NZ7WdOar=6yrO_EkGw)K" class="blocklyDraggable"><path class="blocklyPath" stroke="#8f8f8f" fill="#bfbfbf" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 216.5 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -216.5 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="#" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCBkPSJtMTAuNTYgMy4wNzY0LTQuOTQ1IDE4LjQ2MiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIvPgo8cGF0aCBkPSJtNC4wNTQ2IDguMzAxNmgxOS4xMDYiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiLz4KPHBhdGggZD0ibTIuMTYwNiAxNS4yNjRoMTkuMTA2IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CjxwYXRoIGQ9Im0xOS4wNTUgMy4wNzY0LTQuOTQ1IDE4LjQ2MiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIvPgogIDwvZz4KPC9zdmc+"/></g><g transform="translate(44,6.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 class="blocklyEditableText" transform="translate(55,7.4)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="196.5" class="blocklyFieldRect" style="fill: rgb(162, 162, 162);"/><g class="blocklyEditableText"><text class="blocklyText blocklyMultilineText" x="8" y="5.6" dy="14">Describe your program.</text></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 239.3828125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="239.3828125" height="42" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="lDlk9J`OT(,GY{4,Qd)]" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 197.3828125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -197.3828125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id=")/Cj|,g):/vlEShefB%3" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 64.46875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -64.46875 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">sensor</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(60.46875,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+CiAgICA8cGF0aCBkPSJtMjAuMzI4IDEyLjU5MWgtMTUuNTczIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAgMS4wMTM2IDEuMDE3NiAwIC0zLjkzMTQgLTI1LjY0OSkiIGQ9Im00MS44MzggMTIuMTc4aC04LjUwMzdsNC4yNTE5LTcuMzY0NXoiIGZpbGw9IiNmZmYiLz4KPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMCAxLjAxMzYgLTEuMDE3NiAwIDI4LjkxNSAtMjUuNjQ5KSIgZD0ibTQxLjgzOCAxMi4xNzhoLTguNTAzN2w0LjI1MTktNy4zNjQ1eiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJtMC43NSAyMC4wNDR2LTE1LjU3MyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8cGF0aCBkPSJtMjQuMjUgMjAuMDQ0di0xNS41NzMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8L2c+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(160.46875,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">distance</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 282.953125 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="282.953125" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id=")4!3WH13zM{dmK2f0=w*" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 240.953125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -240.953125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="]4SQO}[Nm%P,:{xVKQn)" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.0390625 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.0390625 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">force sensor</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.0390625,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+CiAgICA8cGF0aCBkPSJtMjAuMzI4IDEyLjU5MWgtMTUuNTczIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAgMS4wMTM2IDEuMDE3NiAwIC0zLjkzMTQgLTI1LjY0OSkiIGQ9Im00MS44MzggMTIuMTc4aC04LjUwMzdsNC4yNTE5LTcuMzY0NXoiIGZpbGw9IiNmZmYiLz4KPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMCAxLjAxMzYgLTEuMDE3NiAwIDI4LjkxNSAtMjUuNjQ5KSIgZD0ibTQxLjgzOCAxMi4xNzhoLTguNTAzN2w0LjI1MTktNy4zNjQ1eiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJtMC43NSAyMC4wNDR2LTE1LjU3MyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8cGF0aCBkPSJtMjQuMjUgMjAuMDQ0di0xNS41NzMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8L2c+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.0390625,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">distance</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 303.3984375 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="303.3984375" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="/c0?C?SvXg|S%$=M0igj" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 261.3984375 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -261.3984375 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="7_Vpy}p0duC*r(RFi0R:" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 128.484375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -128.484375 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">infrared sensor</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(124.484375,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+CiAgICA8cGF0aCBkPSJtMjAuMzI4IDEyLjU5MWgtMTUuNTczIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAgMS4wMTM2IDEuMDE3NiAwIC0zLjkzMTQgLTI1LjY0OSkiIGQ9Im00MS44MzggMTIuMTc4aC04LjUwMzdsNC4yNTE5LTcuMzY0NXoiIGZpbGw9IiNmZmYiLz4KPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMCAxLjAxMzYgLTEuMDE3NiAwIDI4LjkxNSAtMjUuNjQ5KSIgZD0ibTQxLjgzOCAxMi4xNzhoLTguNTAzN2w0LjI1MTktNy4zNjQ1eiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJtMC43NSAyMC4wNDR2LTE1LjU3MyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8cGF0aCBkPSJtMjQuMjUgMjAuMDQ0di0xNS41NzMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8L2c+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(224.484375,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">distance</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 308.7421875 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="308.7421875" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="_=uW$jucY@j;kQZaX(v6" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 266.7421875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -266.7421875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="/@W2iu2)S,Cm+6+M/J5O" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 133.828125 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -133.828125 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">distance sensor</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(129.828125,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+CiAgICA8cGF0aCBkPSJtMjAuMzI4IDEyLjU5MWgtMTUuNTczIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KDAgMS4wMTM2IDEuMDE3NiAwIC0zLjkzMTQgLTI1LjY0OSkiIGQ9Im00MS44MzggMTIuMTc4aC04LjUwMzdsNC4yNTE5LTcuMzY0NXoiIGZpbGw9IiNmZmYiLz4KPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMCAxLjAxMzYgLTEuMDE3NiAwIDI4LjkxNSAtMjUuNjQ5KSIgZD0ibTQxLjgzOCAxMi4xNzhoLTguNTAzN2w0LjI1MTktNy4zNjQ1eiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJtMC43NSAyMC4wNDR2LTE1LjU3MyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8cGF0aCBkPSJtMjQuMjUgMjAuMDQ0di0xNS41NzMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8L2c+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(229.828125,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">distance</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 218.328125 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="218.328125" height="46" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="w2(uLyFP-OT)EjoyKKJo" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 173.328125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -208.328125 a 4 4 0 0,1 -4,-4 z "/><g class="blocklyEditableText" transform="translate(39,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="108.015625" class="blocklyFieldRect blocklyDropdownRect" stroke="#bf8013" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">break out</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(88.015625,8.6)"/></g><g transform="translate(155.015625,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">of loop</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 354.3203125 45.99999999999977" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="354.3203125" height="45.99999999999977" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="m^Ia,.bqpE4)a@)UJO|-" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 309.3203125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -344.3203125 a 4 4 0 0,1 -4,-4 z "/><g class="blocklyEditableText" transform="translate(39,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="244.0078125" class="blocklyFieldRect blocklyDropdownRect" stroke="#bf8013" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">continue with next iteration</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(224.0078125,8.6)"/></g><g transform="translate(291.0078125,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">of loop</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 181.234375 122" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="181.234375" height="122" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="*=kjY+CH)3(~(`g@HYrd" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 136.234375 a 4 4 0 0,1 4,4 v 6 V 38 V 40 a 4 4 0 0,1 -4,4 H 61 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,0 -4,4 v 32 a 4 4 0 0,0 4,4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 H 175.234375 a 4 4 0 0,1 4,4 V 90 V 110 a 4 4 0 0,1 -4,4 h -136.234375 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="g$z5O=B86BHrRceAJp0B" transform="translate(39, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#d99115" d=" m 16,0 h 22.8984375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -22.8984375 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g class="blocklyEditableText" transform="translate(11,7)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="18" width="32.8984375" class="blocklyFieldRect" style="display: none;"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="0" y="9">item</text></g></g><g data-id="{V!cYG(tX@eU1$h8(d,h" transform="translate(124.1171875, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#d99115" d=" m 16,0 h 15.1171875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -15.1171875 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">list</text></g></g><g transform="translate(8,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">for</text></g><g transform="translate(101.8984375,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">in</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 269.6875 122" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="269.6875" height="122" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="0Y:-{!zn`:7}FjAumZ8^" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 224.6875 a 4 4 0 0,1 4,4 v 6 V 42 a 4 4 0 0,1 -4,4 H 61 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,0 -4,4 v 32 a 4 4 0 0,0 4,4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 H 263.6875 a 4 4 0 0,1 4,4 V 90 V 110 a 4 4 0 0,1 -4,4 h -224.6875 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="_)~SaS`f5_oqiL~HxVqX" transform="translate(39, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#d99115" d=" m 16,0 h 22.8984375 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -22.8984375 a 16 16 0 0,1 -16,-16 v 0 a 16 16 0 0,1 16,-16 z "/><g class="blocklyEditableText" transform="translate(11,7)" style="cursor: text;"><rect rx="4" ry="4" x="0" y="0" height="18" width="32.8984375" class="blocklyFieldRect" style="display: none;"/><text class="blocklyText" dominant-baseline="central" style="fill: rgb(255, 255, 255);" x="0" y="9">item</text></g></g><g data-id="(XJy@%4VW3CIYhkXy_$g" transform="translate(124.1171875, 2)" class="blocklyDraggable" style="display: block;"><path class="blocklyPath" stroke="#009973" fill="#00cc99" d=" m 20,0 h 95.5703125 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -95.5703125 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="ESD1eJKHG_JY}YX^M-aE" transform="translate(63.5703125, 4)" style="display: block;"><path class="blocklyPath" stroke="#009973" 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="#009973" style="display: none;"/><text class="blocklyText" dominant-baseline="central" x="0" y="9">3</text></g></g><g transform="translate(12,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">range</text></g><g transform="translate(111.5703125,4.5)"><image height="30px" width="12px" alt="" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMiAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSI+CiAgICA8cGF0aCBkPSJtMi40NzM4IDUuNzk2OCA3LjUwOTYgOS40MDI3LTcuNTA5NiA5LjQwMjciIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8L2c+Cjwvc3ZnPg==" style="cursor: pointer;"/></g></g><g transform="translate(8,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">for</text></g><g transform="translate(101.8984375,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">in</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 165.6171875 122" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="165.6171875" height="122" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="Nb?Z.WM.=u+PGG}4(}{f" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 120.6171875 a 4 4 0 0,1 4,4 v 6 V 38 V 40 a 4 4 0 0,1 -4,4 H 61 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,0 -4,4 v 32 a 4 4 0 0,0 4,4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 H 159.6171875 a 4 4 0 0,1 4,4 V 90 V 110 a 4 4 0 0,1 -4,4 h -120.6171875 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="ykNFo=9bO|kP[,/0rxoK" transform="translate(64.0234375, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#fff" d=" m 16,0 h 9.796875 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -9.796875 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="17.796875" class="blocklyFieldRect" stroke="#bf8013" style="display: none;"/><text class="blocklyText" dominant-baseline="central" x="0" y="9">10</text></g></g><g transform="translate(8,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">repeat</text></g><g transform="translate(113.8203125,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">times</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 206.015625 122" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="206.015625" height="122" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="*ezI5.|~Jagy}`~]C?Hg" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 161.015625 a 4 4 0 0,1 4,4 v 6 V 38 V 40 a 4 4 0 0,1 -4,4 H 61 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,0 -4,4 v 32 a 4 4 0 0,0 4,4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 H 200.015625 a 4 4 0 0,1 4,4 V 90 V 110 a 4 4 0 0,1 -4,4 h -161.015625 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="u-{f[OKi?|P7i;aJG$N?" transform="translate(141.7890625, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#d99115" 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(8,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">repeat</text></g><g class="blocklyEditableText" transform="translate(64.0234375,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="69.765625" class="blocklyFieldRect blocklyDropdownRect" stroke="#bf8013" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">until</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(49.765625,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212.2578125 122" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="212.2578125" height="122" 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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id="(=SAN8/i*beSNi7L4||u" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8013" fill="#ffab19" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 167.2578125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 a 4 4 0 0,1 -4,4 H 61 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,0 -4,4 v 32 a 4 4 0 0,0 4,4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 H 206.2578125 a 4 4 0 0,1 4,4 V 90 V 110 a 4 4 0 0,1 -4,4 h -167.2578125 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="]$M5{7y(~}zPT4(n?s15" transform="translate(148.03125, 6)" style="display: block;"><path class="blocklyPath" stroke="#bf8013" fill="#d99115" 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(8,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">repeat</text></g><g class="blocklyEditableText" transform="translate(64.0234375,7.4)" style="cursor: default;"><rect rx="4" ry="4" x="0" y="0" height="29.2" width="76.0078125" class="blocklyFieldRect blocklyDropdownRect" stroke="#bf8013" fill="transparent"/><text class="blocklyText blocklyDropdownText" dominant-baseline="central" text-anchor="start" x="8" y="14.6">while</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(56.0078125,8.6)"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 257.1640625 42" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="257.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(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id=".5+Qa4t50SW@9FqU|#V%" class="blocklyDraggable"><path class="blocklyPath" stroke="#4585a1" fill="#5cb1d6" d=" m 20,0 h 215.1640625 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -215.1640625 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g data-id="(bl?Mzf0U1-C1+qg`|.e" transform="translate(56, 4)" style="display: block;"><path class="blocklyPath" stroke="#4585a1" fill="#4e96b6" d=" m 16,0 h 108.0390625 a 16 16 0 0,1 16,16 v 0 a 16 16 0 0,1 -16,16 V 32 h -108.0390625 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">force sensor</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.0390625,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+CiAgICA8cGF0aCBkPSJtMjMuNDQ5IDIzLjg0OS00LjEzOC0xNS40NjJoLTEzLjY1MWwtNC4xMzY3IDE1LjQ2eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KPGVsbGlwc2UgY3g9IjEyLjUiIGN5PSI0LjM3NiIgcng9IjMuMzYxNyIgcnk9IjMuMzc2IiBmaWxsPSJub25lIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+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(204.0390625,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">force</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 41 KiB |
@@ -0,0 +1,975 @@
|
||||
<!-- Copyright (c) 2023 The Pybricks Authors. All rights reserved. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129.8984375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="129.8984375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern8106945446883995)
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
.controlsIconStyle {
|
||||
opacity: 0.2;
|
||||
}
|
||||
.controlsIconStyle:hover {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.controlsIconStyle:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
</style><g transform="translate(1, 1)"><g data-id=")1:e%2hh~lxoU6,T5B~q" class="blocklyDraggable"><path class="blocklyPath" stroke="#bf8f00" fill="#ffbf00" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 119.8984375 a 4 4 0 0,1 4,4 v 4 V 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -84.8984375 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgxLjI0NTMgMCAwIDEuMjQ1MyAtNS42MDMzIC03LjkwMjMpIiBkPSJtMjQuNTAxIDE2LjM4My0xNy4zODYgMTAuMDM4di0yMC4wNzV6IiBmaWxsPSIjZmZmIi8+CiAgPC9nPgo8L3N2Zz4="/></g><g transform="translate(44,6.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(55,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">program</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 22 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 258.3203125 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="258.3203125" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="vx|Un1Sh:}Uz/sQ0AwNA" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 213.3203125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -248.3203125 a 4 4 0 0,1 -4,-4 z "/><g data-id="ktT=F4Q`@V$1g51|Dsf%" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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">city 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(69.3359375,3)"/></g></g><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(168.3359375,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</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 299.234375 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="299.234375" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="xR.=?:XhCI8]ul.gDW/I" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 254.234375 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -289.234375 a 4 4 0 0,1 -4,-4 z "/><g data-id="^D,908uq]2_K4pFNX51z" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(209.25,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</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 293.8671875 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="293.8671875" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="js%4J_[q86fo,v#61(8x" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 248.8671875 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -283.8671875 a 4 4 0 0,1 -4,-4 z "/><g data-id="cxPU:7G2JB+O,Rmjn{`T" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(203.8828125,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</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 272.546875 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="272.546875" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="$+y5hr*Vju)$IL`4)~TX" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 227.546875 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -262.546875 a 4 4 0 0,1 -4,-4 z "/><g data-id="R+c;([Fi9hSN_heY+uEs" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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 transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(182.5625,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</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 274.3203125 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="274.3203125" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="*Zw,vP9Px]k^lQf_UdJc" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 229.3203125 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -264.3203125 a 4 4 0 0,1 -4,-4 z "/><g data-id=".@!#`*e5/:/5m[;xO|hv" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(184.3359375,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</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 286.765625 46" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="286.765625" height="46" 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(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="F0r/GFzZU`Em5|ms$T[]" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 241.765625 a 4 4 0 0,1 4,4 v 6 V 38 V 40 V 40 a 4 4 0 0,1 -4,4 h -276.765625 a 4 4 0 0,1 -4,-4 z "/><g data-id="1Gw^pTATc~8K~{Q[c7ZR" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(196.78125,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">shut down</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 26 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 354.3125 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="354.3125" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="v2Wu%x:~z|O39d5VxJi2" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 309.3125 a 4 4 0 0,1 4,4 v 6 V 42 V 40 a 4 4 0 0,1 -4,4 h -309.3125 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="MkOoS=:$fC*~Tib;#@i]" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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">city 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(69.3359375,3)"/></g></g><g data-id="PN![6RJYc!daQqicK:$h" transform="translate(282.09375, 2)" class="blocklyDraggable" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#21a176" d=" m 20,0 h 22.21875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -22.21875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g transform="translate(12,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">none</text></g></g><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(168.3359375,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">stop button is</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 26 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 395.2265625 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="395.2265625" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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="F}|G73ZfrY*h3O,qY;p6" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 350.2265625 a 4 4 0 0,1 4,4 v 6 V 42 V 40 a 4 4 0 0,1 -4,4 h -350.2265625 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="kX!nkWSB!F#;(0JqE4C^" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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="$8z`yEXPJmDa?FIGs@[o" transform="translate(323.0078125, 2)" class="blocklyDraggable" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#21a176" d=" m 20,0 h 22.21875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -22.21875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g transform="translate(12,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">none</text></g></g><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(209.25,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">stop button is</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 26 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 389.859375 52" class="blocklySvg pybricks_renderer-renderer pybricks-zelos-light-theme" width="389.859375" height="52" style="background-color: transparent"><style xmlns="http://www.w3.org/1999/xhtml">.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
font: bold 12pt "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>rect:not(.blocklyDropdownRect),
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>rect:not(.blocklyDropdownRect) {
|
||||
fill: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyNonEditableText>g>text,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyEditableText>g>text {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyFlyoutLabelText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyText.blocklyBubbleText {
|
||||
fill: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>rect,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDraggable:not(.blocklyDisabled)
|
||||
.blocklyEditableText:not(.editing):hover>.blocklyPath {
|
||||
stroke: #fff;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHtmlInput {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
color: #575E75;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDropdownText {
|
||||
fill: #fff !important;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyWidgetDiv .goog-menuitem,
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem {
|
||||
font-family: "Helvetica Neue", "Segoe UI", Helvetica, sans-serif;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme.blocklyDropDownDiv .goog-menuitem-content {
|
||||
color: #fff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyHighlightedConnectionPath {
|
||||
stroke: #ffffff;
|
||||
}
|
||||
.pybricks_renderer-renderer.pybricks-zelos-light-theme .blocklyDisabled > .blocklyOutlinePath {
|
||||
fill: url(#blocklyDisabledPattern29564335225952343)
|
||||
}
|
||||
.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=";/W9e]l+caQKmPY)m2nb" class="blocklyDraggable"><path class="blocklyPath" stroke="#74567a" fill="#9a72a2" d=" m 0,0 m 0,4 a 4 4 0 0,1 4,-4 h 5 c 1.6666666666666667,0 2.5,0.75 3.3333333333333335,1.5 l 3.3333333333333335,3 c 0.8333333333333334,0.75 1.6666666666666667,1.5 3.3333333333333335,1.5 h 10 c 1.6666666666666667,0 2.5,-0.75 3.3333333333333335,-1.5 l 3.3333333333333335,-3 c 0.8333333333333334,-0.75 1.6666666666666667,-1.5 3.3333333333333335,-1.5 h 344.859375 a 4 4 0 0,1 4,4 v 6 V 42 V 40 a 4 4 0 0,1 -4,4 h -344.859375 c -1.6666666666666667,0 -2.5,0.75 -3.3333333333333335,1.5 l -3.3333333333333335,3 c -0.8333333333333334,0.75 -1.6666666666666667,1.5 -3.3333333333333335,1.5 h -10 c -1.6666666666666667,0 -2.5,-0.75 -3.3333333333333335,-1.5 l -3.3333333333333335,-3 c -0.8333333333333334,-0.75 -1.6666666666666667,-1.5 -3.3333333333333335,-1.5 h -5 a 4 4 0 0,1 -4,-4 z "/><g data-id="%,x(DejuN7b11Wl+Iu*$" transform="translate(55, 6)" style="display: block;"><path class="blocklyPath" stroke="#74567a" fill="#83618a" 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="#j261S6#LDOPXYMgVcLE" transform="translate(317.640625, 2)" class="blocklyDraggable" style="display: block;"><path class="blocklyPath" stroke="#197959" fill="#21a176" d=" m 20,0 h 22.21875 a 20 20 0 0,1 20,20 v 0 a 20 20 0 0,1 -20,20 V 40 h -22.21875 a 20 20 0 0,1 -20,-20 v 0 a 20 20 0 0,1 20,-20 z "/><g transform="translate(12,11)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">none</text></g></g><g transform="translate(8,6.5)"><image height="30px" width="28px" alt="*" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCA1KSI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InJvdGF0ZSgtNDUpIiBkPSJtNy4yMDkyIDE2LjgzNGE5IDkgMCAwIDEtNC4xOTMzIDEwLjEyNCA5IDkgMCAwIDEtMTAuODY0LTEuNDMwMyA5IDkgMCAwIDEtMS40MzAzLTEwLjg2NCA5IDkgMCAwIDEgMTAuMTI0LTQuMTkzMyIgZmlsbD0ibm9uZSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CjxwYXRoIGQ9Im0xMi45MSAxLjQ2ODF2MTAuOTYyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICA8L2c+Cjwvc3ZnPg=="/></g><g transform="translate(44,6.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(203.8828125,13)"><text class="blocklyText" dominant-baseline="central" x="0" y="9">stop button is</text></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 26 KiB |