pxt-core 13.2.16 → 13.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/built/backendutils.d.ts +13 -0
- package/built/backendutils.js +66 -16
- package/built/cli.js +14 -9
- package/built/nodeutil.js +3 -7
- package/built/pxt.js +67 -25
- package/built/pxtblocks/backpack.d.ts +1 -1
- package/built/pxtblocks/clipboard.d.ts +1 -1
- package/built/pxtblocks/plugins/duplicateOnDrag/dragStrategy.d.ts +2 -0
- package/built/pxtlib.js +53 -16
- package/built/pxtservices/editorDriver.d.ts +1 -0
- package/built/target.js +1 -1
- package/built/targetlight.js +1 -1
- package/built/tests/blocksrunner.js +38 -18
- package/built/tests/blockssetup.js +38 -18
- package/built/tests/cli-test/cli/commandparser.d.ts +49 -0
- package/built/tests/cli-test/cli/nodeutil.d.ts +95 -0
- package/built/tests/cli-test/tests/cli-test/bump.d.ts +1 -0
- package/built/tests/cli-test/tests/cli-test/clirunner.d.ts +1 -0
- package/built/web/blockly.css +1 -1
- package/built/web/main.js +2 -2
- package/built/web/pxtapp.js +2 -2
- package/built/web/pxtasseteditor.js +2 -2
- package/built/web/pxtembed.js +2 -2
- package/built/web/pxtlib.js +1 -1
- package/built/web/pxtworker.js +1 -1
- package/built/web/rtlblockly.css +1 -1
- package/built/web/rtlsemantic.css +1 -1
- package/built/web/runnerembed.js +2 -2
- package/built/web/semantic.css +1 -1
- package/built/web/teachertool/js/{main.9894b09b.js → main.c8f9e9a1.js} +2 -2
- package/built/web/tutorialtool/js/{main.347d6451.js → main.86239049.js} +2 -2
- package/localtypings/pxteditor.d.ts +1 -0
- package/package.json +1 -1
- package/theme/blockly-core.less +5 -0
- package/theme/home.less +1 -0
- package/theme/themes/pxt/globals/zindex.variables +1 -1
- package/webapp/public/controller.html +1 -0
- package/webapp/public/teachertool.html +1 -1
- package/webapp/public/tutorialtool.html +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare type FlagType = "boolean" | "string" | "number";
|
|
2
|
+
export interface CommandFlag {
|
|
3
|
+
description: string;
|
|
4
|
+
argument?: string;
|
|
5
|
+
type?: FlagType;
|
|
6
|
+
aliases?: string[];
|
|
7
|
+
possibleValues?: (string | RegExp)[];
|
|
8
|
+
deprecated?: boolean;
|
|
9
|
+
hidden?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The flag may be given more than once, and its values are collected into a
|
|
12
|
+
* string[]. Applies to string flags with an argument only: defineCommand
|
|
13
|
+
* throws on a repeatable flag of another type or without an argument.
|
|
14
|
+
*/
|
|
15
|
+
repeatable?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface Command {
|
|
18
|
+
name: string;
|
|
19
|
+
help: string;
|
|
20
|
+
onlineHelp?: boolean;
|
|
21
|
+
priority?: number;
|
|
22
|
+
advanced?: boolean;
|
|
23
|
+
argString?: string;
|
|
24
|
+
flags?: {
|
|
25
|
+
[index: string]: CommandFlag;
|
|
26
|
+
};
|
|
27
|
+
aliases?: string[];
|
|
28
|
+
numArgs?: number;
|
|
29
|
+
anyArgs?: boolean;
|
|
30
|
+
_aliasMap?: {
|
|
31
|
+
[index: string]: string;
|
|
32
|
+
};
|
|
33
|
+
_callback?: (c?: ParsedCommand) => Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export interface ParsedCommand {
|
|
36
|
+
name: string;
|
|
37
|
+
args: string[];
|
|
38
|
+
flags: {
|
|
39
|
+
[index: string]: boolean | string | number | string[];
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export declare class CommandParser {
|
|
43
|
+
private commands;
|
|
44
|
+
defineCommand(c: Command, callback: (c?: ParsedCommand) => Promise<void>): void;
|
|
45
|
+
parseCommand(args: string[]): Promise<void>;
|
|
46
|
+
printHelp(args: string[], print: (s: string) => void): void;
|
|
47
|
+
private printCommandHelp;
|
|
48
|
+
private printTopLevelHelp;
|
|
49
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import * as events from 'events';
|
|
4
|
+
export interface SpawnOptions {
|
|
5
|
+
cmd: string;
|
|
6
|
+
args: string[];
|
|
7
|
+
cwd?: string;
|
|
8
|
+
shell?: boolean;
|
|
9
|
+
pipe?: boolean;
|
|
10
|
+
input?: string;
|
|
11
|
+
silent?: boolean;
|
|
12
|
+
envOverrides?: pxt.Map<string>;
|
|
13
|
+
allowNonZeroExit?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare let targetDir: string;
|
|
16
|
+
export declare let pxtCoreDir: string;
|
|
17
|
+
export declare let cliFinalizers: (() => Promise<void>)[];
|
|
18
|
+
export declare function addCliFinalizer(f: () => Promise<void>): void;
|
|
19
|
+
export declare function runCliFinalizersAsync(): Promise<void>;
|
|
20
|
+
export declare function setTargetDir(dir: string): void;
|
|
21
|
+
export declare function readResAsync(g: events.EventEmitter): Promise<Buffer>;
|
|
22
|
+
export declare function spawnAsync(opts: SpawnOptions): Promise<void>;
|
|
23
|
+
export declare function spawnWithPipeAsync(opts: SpawnOptions): Promise<Buffer>;
|
|
24
|
+
export declare function addCmd(name: string): string;
|
|
25
|
+
export declare function runNpmAsync(...args: string[]): Promise<void>;
|
|
26
|
+
export declare function npmLatestVersionAsync(packageName: string): Promise<string>;
|
|
27
|
+
export interface NpmRegistry {
|
|
28
|
+
_id: string;
|
|
29
|
+
_name: string;
|
|
30
|
+
"dist-tags": pxt.Map<string>;
|
|
31
|
+
"versions": pxt.Map<any>;
|
|
32
|
+
}
|
|
33
|
+
export declare function npmRegistryAsync(pkg: string): Promise<NpmRegistry>;
|
|
34
|
+
export declare function runNpmAsyncWithCwd(cwd: string, ...args: string[]): Promise<void>;
|
|
35
|
+
export declare function runGitAsync(...args: string[]): Promise<void>;
|
|
36
|
+
export declare function gitInfoAsync(args: string[], cwd?: string, silent?: boolean): Promise<string>;
|
|
37
|
+
export declare function currGitTagAsync(): Promise<string>;
|
|
38
|
+
export declare function needsGitCleanAsync(): Promise<void>;
|
|
39
|
+
export declare function getDefaultBranchAsync(): Promise<string>;
|
|
40
|
+
export declare function getCurrentBranchNameAsync(): Promise<string>;
|
|
41
|
+
export declare function getGitHubTokenAsync(): Promise<string>;
|
|
42
|
+
export declare function getGitHubUserAsync(token: string): Promise<string>;
|
|
43
|
+
export declare function getGitHubOwnerAndRepoAsync(): Promise<{
|
|
44
|
+
owner: string;
|
|
45
|
+
repo: string;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function createBranchAsync(branchName: string): Promise<void>;
|
|
48
|
+
export declare function switchBranchAsync(branchName: string): Promise<void>;
|
|
49
|
+
export declare function getLocalTagPointingAtHeadAsync(): Promise<string | undefined>;
|
|
50
|
+
export declare function npmVersionBumpAsync(bumpType: "patch" | "minor" | "major" | string, tagCommit?: boolean): Promise<string>;
|
|
51
|
+
export declare function gitPushAsync(followTags?: boolean): Promise<void>;
|
|
52
|
+
export declare function createPullRequestAsync(opts: {
|
|
53
|
+
token: string;
|
|
54
|
+
owner: string;
|
|
55
|
+
repo: string;
|
|
56
|
+
title: string;
|
|
57
|
+
head: string;
|
|
58
|
+
base: string;
|
|
59
|
+
body: string;
|
|
60
|
+
}): Promise<string>;
|
|
61
|
+
export declare function isBranchProtectedAsync(token: string, owner: string, repo: string, branch: string): Promise<boolean>;
|
|
62
|
+
export declare function timestamp(date?: Date): string;
|
|
63
|
+
export declare function sanitizePath(path: string): string;
|
|
64
|
+
export declare function readJson(fn: string): any;
|
|
65
|
+
export declare function readText(fn: string): string;
|
|
66
|
+
export declare function readPkgConfig(dir: string): pxt.PackageConfig;
|
|
67
|
+
export declare function getPxtTarget(): pxt.TargetBundle;
|
|
68
|
+
export declare function pathToPtr(path: string): string;
|
|
69
|
+
export declare function mkdirP(thePath: string): void;
|
|
70
|
+
export declare function cpR(src: string, dst: string, maxDepth?: number): void;
|
|
71
|
+
export declare function cp(srcFile: string, destDirectory: string, destName?: string): void;
|
|
72
|
+
interface AllFilesOpts {
|
|
73
|
+
maxDepth?: number;
|
|
74
|
+
allowMissing?: boolean;
|
|
75
|
+
includeDirs?: boolean;
|
|
76
|
+
ignoredFileMarker?: string;
|
|
77
|
+
includeHiddenFiles?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function allFiles(top: string, opts?: AllFilesOpts): string[];
|
|
80
|
+
export declare function existsDirSync(name: string): boolean;
|
|
81
|
+
export declare function writeFileSync(p: string, data: any, options?: {
|
|
82
|
+
encoding?: string | null;
|
|
83
|
+
mode?: number | string;
|
|
84
|
+
flag?: string;
|
|
85
|
+
} | string | null): void;
|
|
86
|
+
export declare function openUrl(startUrl: string, browser: string): void;
|
|
87
|
+
export declare function fileExistsSync(p: string): boolean;
|
|
88
|
+
export declare let lastResolveMdDirs: string[];
|
|
89
|
+
export declare function resolveMd(root: string, pathname: string, md?: string): string;
|
|
90
|
+
export declare function getBundledPackagesDocs(): string[];
|
|
91
|
+
export declare function lazyDependencies(): pxt.Map<string>;
|
|
92
|
+
export declare function lazyRequire(name: string, install?: boolean): any;
|
|
93
|
+
export declare function stringify(content: any): string;
|
|
94
|
+
export declare function matchesAny(input: string, patterns: (string | RegExp)[]): boolean;
|
|
95
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/built/web/blockly.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.blocklyDropDownContent{overflow-y:auto}.blocklyDropDownContent .blocklyPianoDiv{position:relative;touch-action:none}.blocklyDropDownContent .blocklyNote{background-color:#fff;border:.5px solid;border-bottom-left-radius:3px;border-bottom-right-radius:3px;cursor:pointer;display:inline-block;position:absolute;top:0;z-index:1000}.blocklyDropDownContent .blocklyNote.black{background-color:#000;z-index:1001}.blocklyDropDownContent .blocklyNote:hover{background-color:#ff0!important}.blocklyDropDownContent .blocklyNote.selected{background-color:#9acd32!important}.blocklyDropDownContent .blocklyNoteLabel{font-family:Consolas,Monaco,Menlo,Ubuntu Mono,source-code-pro,monospace;font-size:12pt}.blocklyDropDownContent .blocklyNoteLabel,.blocklyDropDownContent .blocklyNotePrevNext{border:.5px solid;color:#fff;display:inline-block;line-height:normal;position:absolute;text-align:center}.blocklyDropDownContent .blocklyNotePrevNext{border-top:0;cursor:pointer;font-weight:700}.blocklyDropDownContent .blocklyDropdownTextLabel{color:#fff;display:inline-block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.blocklyToggle{transition:transform 1s}.blocklyToggle .blocklyToggleCircle,.blocklyToggle .blocklyToggleRect{stroke:grey;stroke-opacity:.4;stroke-width:1px}.blocklyToggle.blocklyToggleOn .blocklyToggleCircle,.blocklyToggle.blocklyToggleOn .blocklyToggleRect{fill:#4ddc64}.blocklyToggle.blocklyToggleOff .blocklyToggleCircle,.blocklyToggle.blocklyToggleOff .blocklyToggleRect{fill:#95a5a6}.blocklyToggle.blocklyToggleOnBreakpoint polygon{cursor:pointer;fill:#e80d00;stroke:#fff;stroke-linecap:round;stroke-opacity:1;stroke-width:12px!important}.blocklyToggle.blocklyToggleOffBreakpoint polygon{cursor:pointer;fill:#333;stroke:0}.blocklyToggle~.blocklyText.blocklyToggleText{cursor:pointer;font-size:10pt}.blocklyToggle.blocklyToggleOff~.blocklyText.blocklyToggleText{fill:#fff}.blocklyDropDownDiv .rgbColorPicker>tr>td{height:40px;width:40px}.blocklyDropDownDiv .blocklyFieldSliderReadout .blocklyColorReadout{border-radius:10px;display:inline-block;height:20px;vertical-align:middle;width:25px}#custom-content .blocklyLightboxDiv{background-color:rgba(0,0,0,.55);bottom:0;left:0;position:absolute;right:0;top:0;z-index:993}.blocklyCanvasOverlayOuter{background:#249ca3;border:2px solid #249ca3;border-bottom-left-radius:0;border-top-left-radius:1rem;border-top-right-radius:1rem;margin:.1rem;padding:.5rem}.blocklyCanvasOverlayDiv{background-color:hsla(0,0%,100%,.9);border:5px solid #333;clip-path:polygon(0 4px,4px 0,calc(100% - 2px) 0,100% 4px,100% calc(100% - 2px),calc(100% - 2px) 100%,4px 100%,0 calc(100% - 2px));cursor:none;overflow:hidden;position:relative;z-index:10000}.blocklyCanvasOverlayDiv .cross-x,.blocklyCanvasOverlayDiv .cross-y{background-color:#575e75;position:absolute}.blocklyCanvasOverlayDiv .cross-x{height:2px;width:100%;z-index:10}.blocklyCanvasOverlayDiv .cross-y{height:100%;width:2px;z-index:10}.blocklyCanvasOverlayDiv .label{color:#575e75;font-size:100%;position:absolute;white-space:nowrap}.positionEyedropper{background:none;border:none;border-top:1px solid #ddd;cursor:pointer;outline:none;padding-top:5px;text-align:center;width:100%}.positionEyedropper:hover{background:#eee}.pixel-cell{shape-rendering:crispedges}.palette-selected{stroke:orange;stroke-width:2px}.palette-unselected{stroke:none}.sprite-editor-canvas{cursor:crosshair;touch-action:none;z-index:1001}.sprite-editor-canvas.sprite-editor-eyedropper{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M15.241 4.652 13.76 6.133l.835.835-3.085 3.085-.762-.762-5.168 5.17L1.984 16 .025 14.041l1.349-3.742 5.19-5.191-.645-.646 3.085-3.085.835.835L11.32.731c.431-.431 1-.678 1.616-.731h.461a2.84 2.84 0 0 1 1.77.802c1.082 1.084 1.114 2.81.074 3.85' style='fill:%23f6f6f6'/%3E%3Cpath d='m9.467 7.932.612.613-5.071 5.072-2.795 1.198-1.032-1.032 1.057-2.936L7.31 5.775l.585.585v.003l-4.356 4.356 1.569 1.569 4.355-4.356zm4.995-6.422c-.667-.664-1.777-.729-2.435-.072L9.839 3.627l-.836-.835-.174.174-1.497 1.497 4.177 4.177 1.671-1.671-.835-.835 2.189-2.189c.658-.658.592-1.768-.072-2.435' style='fill:%23424242'/%3E%3C/svg%3E") 2 16,copy}.sprite-canvas-controls{z-index:1000}#sprite-editor-palette .palette-swatch{cursor:pointer}.sprite-editor-dropdown.blocklyDropDownDiv{background:linear-gradient(#4b7bec 50px,#2c3e50 0,#2c3e50)}.sprite-editor-dropdown.blocklyDropDownDiv .blocklyDropDownArrow.arrowTop{background:#4b7bec}.sprite-editor-dropdown.blocklyDropDownDiv .blocklyDropDownArrow.arrowBottom{background:#2c3e50}#sprite-editor-header{height:50px;left:0;position:absolute;top:0;width:inherit;z-index:1002}#sprite-editor-header-controls{height:100%;width:100%}#sprite-editor-gallery-outer{overflow:hidden;position:absolute;width:100%;z-index:1002}#sprite-editor-gallery{background:#2c3e50;height:100%;overflow-y:scroll;width:100%}.sprite-editor-card{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath fill='%23fff' d='M0 0h10v10H0z'/%3E%3Cpath fill='%23dedede' d='M0 0h5v5H0zM5 5h5v5H5z'/%3E%3C/svg%3E")}.sprite-editor-icon{fill:#fff;font-family:Icons;font-size:19px}.sprite-editor-xicon{fill:#fff;font-family:xicon;font-size:19px}.sprite-editor-button{cursor:pointer}.sprite-editor-button-bg{fill:#525a5b}.sprite-editor-button-fg{fill:#7f8c8d}.sprite-editor-confirm-button .sprite-editor-button-bg{fill:#294da0}.sprite-editor-confirm-button .sprite-editor-button-fg{fill:#4b7bec}.sprite-editor-button.disabled{cursor:not-allowed}.sprite-editor-button.disabled .sprite-editor-button-bg,.sprite-editor-button.disabled .sprite-editor-button-fg{fill-opacity:.8}.sprite-editor-button:active:not(.disabled) .sprite-editor-button-bg,.sprite-editor-button:active:not(.disabled) .sprite-editor-button-fg{fill-opacity:1!important;transition:fill-opacity .1s}.sprite-editor-button:hover:not(.disabled) .sprite-editor-button-bg,.sprite-editor-button:hover:not(.disabled) .sprite-editor-button-fg{fill-opacity:.8;transition:fill-opacity .1s}.sprite-editor-button.selected{position:relative}.sprite-editor-button.selected .sprite-editor-button-fg{fill:#495353}.sprite-editor-text{cursor:auto;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;user-select:none}.sprite-editor-label{fill:#fff}.sprite-editor-dropdown-bg{background:linear-gradient(#4b7bec 50px,#2c3e50 0,#2c3e50);border-radius:4px;padding-top:4px;position:relative}.sprite-editor-glyph{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M16 8c0 4.411-3.589 8-8 8a2.803 2.803 0 0 1-2.8-2.8c0-.833.272-1.629.766-2.241a.6.6 0 0 0 .101-.359.667.667 0 0 0-.667-.666.58.58 0 0 0-.358.102A3.6 3.6 0 0 1 2.8 10.8 2.803 2.803 0 0 1 0 8c0-4.411 3.589-8 8-8s8 3.589 8 8' style='fill:%23f6f6f6'/%3E%3Cpath d='M5.4 7.933a2.67 2.67 0 0 1 2.667 2.666c0 .606-.193 1.179-.544 1.614a1.6 1.6 0 0 0-.323.987.8.8 0 0 0 .8.8c3.309 0 6-2.691 6-6s-2.691-6-6-6-6 2.691-6 6c0 .441.359.8.8.8.378 0 .729-.114.986-.322A2.57 2.57 0 0 1 5.4 7.933' style='fill:%23fff'/%3E%3Cpath d='M8 15c-.992 0-1.8-.808-1.8-1.8 0-.606.193-1.179.544-1.613.208-.259.323-.609.323-.987 0-.919-.748-1.666-1.667-1.666-.377 0-.728.115-.986.323A2.58 2.58 0 0 1 2.8 9.8C1.808 9.8 1 8.992 1 8c0-3.86 3.14-7 7-7s7 3.14 7 7-3.141 7-7 7M5.4 7.933a2.67 2.67 0 0 1 2.667 2.666c0 .606-.193 1.179-.544 1.614a1.6 1.6 0 0 0-.323.987.8.8 0 0 0 .8.8c3.309 0 6-2.691 6-6s-2.691-6-6-6-6 2.691-6 6c0 .441.359.8.8.8.378 0 .729-.114.986-.322A2.57 2.57 0 0 1 5.4 7.933' style='fill:%23424242'/%3E%3Cpath d='M4.5 5.375a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23652d90'/%3E%3Cpath d='M7.125 3.625a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%231ba1e2'/%3E%3Cpath d='M10.625 4.5a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23393'/%3E%3Cpath d='M11.5 8a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23fc0'/%3E%3Cpath d='M9.75 10.625a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23e51400'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:65%;cursor:pointer}.sprite-focus-hover{border-radius:50%;transition:all .15s ease-out}.sprite-focus-hover:hover{box-shadow:0 0 0 3px rgba(0,0,0,.35);-webkit-transform:scale(1.1);transform:scale(1.1)}.sprite-editor-glyph.sprite-focus-hover:hover{box-shadow:inset 0 0 0 2px rgba(0,0,0,.35)}.sprite-gallery-button{border:1px solid;border-radius:4px;cursor:pointer;display:inline-block;float:left;margin:4px;outline:none;padding:0;transition:box-shadow .1s}.sprite-gallery-button-hover{box-shadow:0 0 0 4px hsla(0,0%,100%,.2)}.sprite-gallery-button:active{box-shadow:0 0 0 6px hsla(0,0%,100%,.2)}.sprite-gallery-button>img{height:80%;image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;margin-top:5%;width:80%;-ms-interpolation-mode:nearest-neighbor}.snippet-sprite-editor,.sprite-editor-snippet-container{height:503px;overflow:hidden;width:492px}.snippet-sprite-editor{max-height:503px;max-width:492px;min-height:503px;min-width:492px}#melody-toggle{float:center;margin:10px;text-align:center}#melody-editor-header-controls{display:block;height:52px}.melody-grid-div{background-color:inherit;margin:10px 20px 0;outline:none;text-align:center}.cell{height:35px;margin:1px;width:35px}.melody-top-bar-div{float:center;text-align:center}.melody-editor-div{background-color:#4f0643;height:100%}.melody-content-div{max-height:550px;overflow:hidden;padding:0;width:300px}.melody-editor-dropdown{padding:0!important}#melody-editor-gallery-outer{overflow:hidden;position:absolute;width:100%;z-index:1002}#melody-editor-gallery{background:#4f0643;max-height:350px;outline:none;overflow-x:hidden;overflow-y:scroll;padding:.75rem}.melody-gallery-button{background-color:#dcdcdc;border-radius:4px;cursor:pointer;display:flex;height:2.75rem;line-height:2.5rem;margin-bottom:.75rem;text-align:center;transition:box-shadow .1s;width:100%}.melody-gallery-button .melody-color-block{margin-top:.5rem}.melody-editor-button.left-button{border-bottom:1px solid #fff;border-left:1px solid #fff;border-radius:4px 0 0 4px;border-top:1px solid #fff;flex-grow:1;padding-left:.5rem;padding-right:.3rem}.melody-editor-button.right-button{border:1px solid #fff;border-left-color:#4f0643;border-radius:0 4px 4px 0;min-width:2.75rem;padding-left:.3rem}.melody-editor-toggle-buttons{outline:none}.melody-editor-toggle-buttons:focus-within{border-radius:2px;outline:3px solid #fff}.melody-editor-toggle-buttons g{outline:none}.melody-editor-button{background-color:#dcdcdc;color:#000;transition:color .1s,background-color .1s}.melody-editor-button:hover{background-color:#cacbcd;color:#000}.melody-editor-button:focus-visible{outline:none}.melody-editor-button.selected{outline:3px solid var(--pxt-focus-border);outline-offset:-5px}.melody-editor-button.right-button .icon{opacity:.9}.melody-gallery-play-icon{float:left}.melody-confirm-button{background-color:#e30fc0;border:none;border-radius:2px;color:#fff;float:right;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;height:28px;margin:0!important;-webkit-transition-duration:.1s;transition-duration:.1s;width:70px}.melody-confirm-button:hover{background-color:#9e0986;border:1px solid #e30fc0}.melody-editor-text{float:left;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;font-size:17px;font-weight:700;margin:0 3px}.melody-editor-field-icon{fill:#fff;font-family:Icons;font-size:19px}.melody-icon{float:left;height:25px}.melody-gallery-button-hover{box-shadow:0 0 0 4px hsla(0,0%,100%,.2)}.melody-gallery-button:active{box-shadow:0 0 0 6px hsla(0,0%,100%,.2)}#melody-tempo-input{background-color:#fff;border:none;border-radius:2px;color:#1b1c1d;float:left;height:28px;padding-left:5px;width:50px}#melody-tempo-input:focus{outline:none!important}#melody-play-button{background-color:#7f8c8d;border:none;border-radius:2px;color:#fff;display:inline-block;height:28px;-webkit-transition-duration:.1s;transition-duration:.1s;width:120px}#melody-play-button:hover{background-color:#525a5b;border:1px solid #7f8c8d}.melody-bottom-bar-div button:focus-visible{outline:3px solid #fff}.melody-bottom-bar-div{background-color:inherit;margin:7px 3px 0;padding:0 20px 20px;text-align:center}.melody-color-block{float:right;margin:4px 7px 0 0}.sliver{border:1px solid rgba(0,0,0,.2);display:inline-block;height:23px;margin:.5px;width:9px}.left-edge{border-radius:5px 0 0 5px}.right-edge{border-radius:0 5px 5px 0}.melody-preview-button{float:right;height:35px;padding:12px 11px!important;width:35px}.melody-gallery-row{float:left}.melody-content-div .melody-red,.pxt-renderer.classic-theme g.blocklyField>.melody-red{background:#a80000;fill:#a80000}.melody-content-div .melody-orange,.pxt-renderer.classic-theme g.blocklyField>.melody-orange{background:#d83b01;fill:#d83b01}.melody-content-div .melody-yellow,.pxt-renderer.classic-theme g.blocklyField>.melody-yellow{background:#ffb900;fill:#ffb900}.melody-content-div .melody-green,.pxt-renderer.classic-theme g.blocklyField>.melody-green{background:#107c10;fill:#107c10}.melody-content-div .melody-teal,.pxt-renderer.classic-theme g.blocklyField>.melody-teal{background:#008272;fill:#008272}.melody-content-div .melody-blue,.pxt-renderer.classic-theme g.blocklyField>.melody-blue{background:#0078d7;fill:#0078d7}.melody-content-div .melody-violet,.pxt-renderer.classic-theme g.blocklyField>.melody-violet{background:#b4009e;fill:#b4009e}.melody-content-div .melody-purple,.pxt-renderer.classic-theme g.blocklyField>.melody-purple{background:#5c2d91;fill:#5c2d91}.melody-content-div .melody-default,.pxt-renderer.classic-theme g.blocklyField>.melody-default{background:#dcdcdc;fill:#dcdcdc}.playing{fill-opacity:.7}svg.blocklySvg{background-color:var(--pxt-target-background1)!important;color:var(--pxt-target-foreground1)!important}#blocksEditor>div.loading,#maineditor{background:var(--pxt-target-background1);color:var(--pxt-target-foreground1)}.blocksAndErrorList{display:flex;flex-direction:column;height:100%}.blocksEditorOuter{display:inline-block;height:100%;overflow:hidden;position:relative}#blocksEditor{height:100%;position:absolute;width:100%}#blocksEditor .injectionDiv svg{overflow:visible}#blocksEditor .injectionDiv .blocklyDropDownDiv svg,#blocksEditor .injectionDiv .blocklyWidgetDiv svg{overflow:revert}#blocksEditor>div.loading{bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;z-index:1}.blocklyMainBackground{stroke:none!important}.rtl text.blocklyText{text-align:right}body.blocklyMinimalBody{min-width:auto;overflow:initial;position:unset}@supports (-ms-accelerator:true){.rtl .blocklyPreview{left:auto;right:50%}}.pxt-renderer.classic-theme .blocklyFlyoutButton text.blocklyText,.pxt-renderer.classic-theme text.blocklyFlyoutLabelText{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important}.pxt-renderer.classic-theme text.blocklyText.blocklyBoldText{font-weight:700}.pxt-renderer.classic-theme text.blocklyText.blocklyItalicizedText{font-style:italic}.pxt-renderer.classic-theme text.blocklyText.blocklyBoldItalicizedText{font-style:italic;font-weight:700}.pxt-renderer.classic-theme text.blocklyText.blocklyBubbleText{fill:#fff}.pxt-renderer.classic-theme .blocklyEditableField>text.semanticIcon,.pxt-renderer.classic-theme .blocklyEditableText>text.semanticIcon,.pxt-renderer.classic-theme .blocklyNonEditableText>text.semanticIcon{fill:#fff;font-family:Icons;font-size:19px}.pxt-renderer.classic-theme .blocklyEditableField>text.semanticIcon.inverted,.pxt-renderer.classic-theme .blocklyEditableText>text.semanticIcon.inverted{fill:#000}.blocklyGreyExpressionBlockText{color:#fff}.blocklyTreeRowContentContainer{pointer-events:none}span.blocklyTreeIcon{visibility:visible}span.blocklyTreeIcon.pxt-toolbox-icon{display:inline-block}i.icon.blocklyTreeButton{color:grey;float:right;line-height:40px;opacity:0;transition-duration:.5s;transition-property:opacity}.blocklyTreeRow:hover i.icon.blocklyTreeButton{opacity:1}.blocklyFlyoutButton{fill:transparent!important}.blocklyFlyoutButton:hover{fill:var(--pxt-primary-background)!important}.blocklyFlyoutButtonBackground{stroke:var(--pxt-primary-background)!important;stroke-width:3px!important}.blocklyFlyoutButton .blocklyText{fill:var(--pxt-neutral-foreground3)!important}.blocklyFlyoutButtonShadow{fill:none!important}.blocklyFlyoutLabelText{fill:var(--pxt-neutral-foreground3)!important;font-size:1rem}.blocklyFlyoutHeading .blocklyFlyoutLabelText{fill:var(--pxt-neutral-foreground3)!important;font-size:1.5rem}.blocklyFlyoutLabelText:hover{fill:var(--pxt-neutral-foreground3)!important}.blocklyFlyoutLabelIcon{font-family:Icons;font-size:1.5rem}line.blocklyFlyoutLine{stroke:var(--pxt-neutral-foreground3)}path.blocklyFlyoutBackground{fill:var(--pxt-neutral-background3)!important;fill-opacity:.9!important}div.blocklyWidgetDiv{z-index:993}div.blocklyWidgetDiv:focus-visible{outline:none}div.blocklyWidgetDiv.functioneditor{z-index:1001}div.blocklyDropDownDiv{overflow:hidden;z-index:994}div.blocklyDropDownDiv:focus-visible{outline:none}div.blocklyTooltipDiv{background-color:transparent!important;border:none!important;box-shadow:none!important;opacity:1!important;overflow-wrap:break-word}div.blocklyTooltipDiv .ui.card .content .description{display:inline}.blocklyWidgetDiv .goog-slider-horizontal{background:#fff;border:2px solid #000;border-radius:5px}text.blocklyCheckbox{fill:#ff3030!important;font-size:17pt!important;text-shadow:0 0 6px red}.pxt-renderer.classic-theme .blocklyEditableField>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklyAnimationField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklyTilemapField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklyAnimationField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklyTilemapField{fill:#dedede;stroke:#898989;stroke-width:1}.blocklyDragging>.blocklyPath{fill-opacity:.7}.blocklyDisabled>.blocklyPathDark{display:block!important;fill-opacity:.5}.blocklyDisabled .blocklyNonEditableText .blocklyBlockBackground{fill-opacity:.1!important}.passiveBlockFocus.blocklyPath{stroke:#ffa200;stroke-dasharray:5 3;stroke-width:3}.passiveNextIndicator{fill:#ffa200;stroke:#ffa200}.inputActiveFocus{stroke:#ffa200;stroke-width:3}.blocklyScrollbarBackground{fill:none}.blocklyScrollbarHandle{fill:var(--pxt-target-stencil1);opacity:1}.blocklyScrollbarBackground:active+.blocklyScrollbarHandle,.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,.blocklyScrollbarHandle:active,.blocklyScrollbarHandle:hover{stroke:var(--pxt-target-stencil1);stroke-width:3}.blocklyWidgetDiv .blocklyContextMenu{background:var(--pxt-neutral-background1);border:1px solid var(--pxt-neutral-stencil1);box-shadow:0 1px 2px 0 var(--pxt-neutral-alpha20)!important;color:var(--pxt-neutral-foreground1);padding:0!important}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem{background:var(--pxt-neutral-background1);color:var(--pxt-neutral-foreground1);font:normal 13px Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;margin:0!important;padding:.92857143em 1.14285714em!important}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem.blocklyMenuItemDisabled{color:var(--pxt-neutral-alpha20)}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem.blocklyMenuItemHighlight,.blocklyWidgetDiv .blocklyContextMenu .gridpicker-menuitem-hover{background:var(--pxt-neutral-background1-hover)!important;border:none!important;color:var(--pxt-neutral-foreground1-hover);padding:.92857143em 1.14285714em!important}.blocklyDeleteIcon{display:block}.blocklyComment .blocklyTextarea{border:none;color:#575e75}.blocklyCommentText::placeholder{opacity:0}.blockly-ws-searching path.blocklyPath:not(.blockly-ws-search-highlight-pxt){opacity:.6}.blockly-ws-searching path.blocklyPath.blockly-ws-search-highlight-pxt.blockly-ws-search-current{stroke:#fff200;stroke-width:4px;transition:none}@media only screen and (max-width:767px){text.blocklyCheckbox{font-size:17pt!important}}.injectionDiv{--blockly-active-tree-color:var(--pxt-target-foreground1);--blockly-active-workspace-comment-color:var(--pxt-target-foreground1)}div.blocklyTreeRoot>div[role=tree]:focus-visible{outline:none}.blocklyKeyboardNavigation div.blocklyTreeRoot>div[role=tree]:focus-visible{outline:var(--blockly-selection-width) solid var(--blockly-active-tree-color);outline-offset:calc(var(--blockly-selection-width)*-1)}.blocklyKeyboardNavigation .blocklyActiveFocus.blocklyField>.blocklyFieldRect.blocklySpriteField,.blocklyKeyboardNavigation .blocklyActiveFocus.blocklyIconGroup>:is(.blocklyBreakpointSymbol){stroke:var(--blockly-active-node-color);stroke-width:var(--blockly-selection-width)}.blocklyKeyboardNavigation .blocklyPassiveFocus.blocklyField>.blocklyFieldRect.blocklySpriteField,.blocklyKeyboardNavigation .blocklyPassiveFocus.blocklyIconGroup>:is(.blocklyBreakpointSymbol){stroke:var(--blockly-active-node-color);stroke-dasharray:5px 3px;stroke-width:var(--blockly-selection-width)}.blocklyKeyboardNavigation .blocklyIconGroup:is(.blocklyActiveFocus,.blocklyPassiveFocus){opacity:1}.blocklyKeyboardNavigation .injectionDiv .blocklyToolbox:has(.blocklyActiveFocus){outline:none}.blocklyKeyboardNavigation .injectionDiv .blocklyFlyout .blocklyFlyoutLabel.blocklyActiveFocus>.blocklyFlyoutLabelText{outline:none}.blocklyKeyboardNavigation .injectionDiv .blocklyFlyout .blocklyFlyoutLabel.blocklyActiveFocus>.blocklyFlyoutLabelBackground{border-radius:2px;fill:transparent;opacity:1;outline:var(--blockly-selection-width) solid var(--blockly-active-node-color);outline-offset:2px}.blocklyKeyboardNavigation .blocklyImageField:focus-visible{outline:none}.blocklyKeyboardNavigation .blocklyImageField:is(.blocklyActiveFocus,.blocklyPassiveFocus)>image{border-radius:2px;outline:var(--blockly-selection-width) solid var(--blockly-active-node-color);outline-offset:2px}.blocklyKeyboardNavigation .blocklyImageField.blocklyPassiveFocus>image{outline-style:dashed}.blocklyKeyboardNavigation .blocklyComment.blocklyActiveFocus .blocklyCommentHighlight{stroke:var(--blockly-active-workspace-comment-color);stroke-width:4px}.blocklyCommentTopbar .blocklyActiveFocus{border-radius:2px;outline:2px solid var(--blockly-active-workspace-comment-color);outline-offset:-1px}
|
|
1
|
+
.blocklyDropDownContent{overflow-y:auto}.blocklyDropDownContent .blocklyPianoDiv{position:relative;touch-action:none}.blocklyDropDownContent .blocklyNote{background-color:#fff;border:.5px solid;border-bottom-left-radius:3px;border-bottom-right-radius:3px;cursor:pointer;display:inline-block;position:absolute;top:0;z-index:1000}.blocklyDropDownContent .blocklyNote.black{background-color:#000;z-index:1001}.blocklyDropDownContent .blocklyNote:hover{background-color:#ff0!important}.blocklyDropDownContent .blocklyNote.selected{background-color:#9acd32!important}.blocklyDropDownContent .blocklyNoteLabel{font-family:Consolas,Monaco,Menlo,Ubuntu Mono,source-code-pro,monospace;font-size:12pt}.blocklyDropDownContent .blocklyNoteLabel,.blocklyDropDownContent .blocklyNotePrevNext{border:.5px solid;color:#fff;display:inline-block;line-height:normal;position:absolute;text-align:center}.blocklyDropDownContent .blocklyNotePrevNext{border-top:0;cursor:pointer;font-weight:700}.blocklyDropDownContent .blocklyDropdownTextLabel{color:#fff;display:inline-block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.blocklyToggle{transition:transform 1s}.blocklyToggle .blocklyToggleCircle,.blocklyToggle .blocklyToggleRect{stroke:grey;stroke-opacity:.4;stroke-width:1px}.blocklyToggle.blocklyToggleOn .blocklyToggleCircle,.blocklyToggle.blocklyToggleOn .blocklyToggleRect{fill:#4ddc64}.blocklyToggle.blocklyToggleOff .blocklyToggleCircle,.blocklyToggle.blocklyToggleOff .blocklyToggleRect{fill:#95a5a6}.blocklyToggle.blocklyToggleOnBreakpoint polygon{cursor:pointer;fill:#e80d00;stroke:#fff;stroke-linecap:round;stroke-opacity:1;stroke-width:12px!important}.blocklyToggle.blocklyToggleOffBreakpoint polygon{cursor:pointer;fill:#333;stroke:0}.blocklyToggle~.blocklyText.blocklyToggleText{cursor:pointer;font-size:10pt}.blocklyToggle.blocklyToggleOff~.blocklyText.blocklyToggleText{fill:#fff}.blocklyDropDownDiv .rgbColorPicker>tr>td{height:40px;width:40px}.blocklyDropDownDiv .blocklyFieldSliderReadout .blocklyColorReadout{border-radius:10px;display:inline-block;height:20px;vertical-align:middle;width:25px}#custom-content .blocklyLightboxDiv{background-color:rgba(0,0,0,.55);bottom:0;left:0;position:absolute;right:0;top:0;z-index:993}.blocklyCanvasOverlayOuter{background:#249ca3;border:2px solid #249ca3;border-bottom-left-radius:0;border-top-left-radius:1rem;border-top-right-radius:1rem;margin:.1rem;padding:.5rem}.blocklyCanvasOverlayDiv{background-color:hsla(0,0%,100%,.9);border:5px solid #333;clip-path:polygon(0 4px,4px 0,calc(100% - 2px) 0,100% 4px,100% calc(100% - 2px),calc(100% - 2px) 100%,4px 100%,0 calc(100% - 2px));cursor:none;overflow:hidden;position:relative;z-index:10000}.blocklyCanvasOverlayDiv .cross-x,.blocklyCanvasOverlayDiv .cross-y{background-color:#575e75;position:absolute}.blocklyCanvasOverlayDiv .cross-x{height:2px;width:100%;z-index:10}.blocklyCanvasOverlayDiv .cross-y{height:100%;width:2px;z-index:10}.blocklyCanvasOverlayDiv .label{color:#575e75;font-size:100%;position:absolute;white-space:nowrap}.positionEyedropper{background:none;border:none;border-top:1px solid #ddd;cursor:pointer;outline:none;padding-top:5px;text-align:center;width:100%}.positionEyedropper:hover{background:#eee}.pixel-cell{shape-rendering:crispedges}.palette-selected{stroke:orange;stroke-width:2px}.palette-unselected{stroke:none}.sprite-editor-canvas{cursor:crosshair;touch-action:none;z-index:1001}.sprite-editor-canvas.sprite-editor-eyedropper{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M15.241 4.652 13.76 6.133l.835.835-3.085 3.085-.762-.762-5.168 5.17L1.984 16 .025 14.041l1.349-3.742 5.19-5.191-.645-.646 3.085-3.085.835.835L11.32.731c.431-.431 1-.678 1.616-.731h.461a2.84 2.84 0 0 1 1.77.802c1.082 1.084 1.114 2.81.074 3.85' style='fill:%23f6f6f6'/%3E%3Cpath d='m9.467 7.932.612.613-5.071 5.072-2.795 1.198-1.032-1.032 1.057-2.936L7.31 5.775l.585.585v.003l-4.356 4.356 1.569 1.569 4.355-4.356zm4.995-6.422c-.667-.664-1.777-.729-2.435-.072L9.839 3.627l-.836-.835-.174.174-1.497 1.497 4.177 4.177 1.671-1.671-.835-.835 2.189-2.189c.658-.658.592-1.768-.072-2.435' style='fill:%23424242'/%3E%3C/svg%3E") 2 16,copy}.sprite-canvas-controls{z-index:1000}#sprite-editor-palette .palette-swatch{cursor:pointer}.sprite-editor-dropdown.blocklyDropDownDiv{background:linear-gradient(#4b7bec 50px,#2c3e50 0,#2c3e50)}.sprite-editor-dropdown.blocklyDropDownDiv .blocklyDropDownArrow.arrowTop{background:#4b7bec}.sprite-editor-dropdown.blocklyDropDownDiv .blocklyDropDownArrow.arrowBottom{background:#2c3e50}#sprite-editor-header{height:50px;left:0;position:absolute;top:0;width:inherit;z-index:1002}#sprite-editor-header-controls{height:100%;width:100%}#sprite-editor-gallery-outer{overflow:hidden;position:absolute;width:100%;z-index:1002}#sprite-editor-gallery{background:#2c3e50;height:100%;overflow-y:scroll;width:100%}.sprite-editor-card{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath fill='%23fff' d='M0 0h10v10H0z'/%3E%3Cpath fill='%23dedede' d='M0 0h5v5H0zM5 5h5v5H5z'/%3E%3C/svg%3E")}.sprite-editor-icon{fill:#fff;font-family:Icons;font-size:19px}.sprite-editor-xicon{fill:#fff;font-family:xicon;font-size:19px}.sprite-editor-button{cursor:pointer}.sprite-editor-button-bg{fill:#525a5b}.sprite-editor-button-fg{fill:#7f8c8d}.sprite-editor-confirm-button .sprite-editor-button-bg{fill:#294da0}.sprite-editor-confirm-button .sprite-editor-button-fg{fill:#4b7bec}.sprite-editor-button.disabled{cursor:not-allowed}.sprite-editor-button.disabled .sprite-editor-button-bg,.sprite-editor-button.disabled .sprite-editor-button-fg{fill-opacity:.8}.sprite-editor-button:active:not(.disabled) .sprite-editor-button-bg,.sprite-editor-button:active:not(.disabled) .sprite-editor-button-fg{fill-opacity:1!important;transition:fill-opacity .1s}.sprite-editor-button:hover:not(.disabled) .sprite-editor-button-bg,.sprite-editor-button:hover:not(.disabled) .sprite-editor-button-fg{fill-opacity:.8;transition:fill-opacity .1s}.sprite-editor-button.selected{position:relative}.sprite-editor-button.selected .sprite-editor-button-fg{fill:#495353}.sprite-editor-text{cursor:auto;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;user-select:none}.sprite-editor-label{fill:#fff}.sprite-editor-dropdown-bg{background:linear-gradient(#4b7bec 50px,#2c3e50 0,#2c3e50);border-radius:4px;padding-top:4px;position:relative}.sprite-editor-glyph{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M16 8c0 4.411-3.589 8-8 8a2.803 2.803 0 0 1-2.8-2.8c0-.833.272-1.629.766-2.241a.6.6 0 0 0 .101-.359.667.667 0 0 0-.667-.666.58.58 0 0 0-.358.102A3.6 3.6 0 0 1 2.8 10.8 2.803 2.803 0 0 1 0 8c0-4.411 3.589-8 8-8s8 3.589 8 8' style='fill:%23f6f6f6'/%3E%3Cpath d='M5.4 7.933a2.67 2.67 0 0 1 2.667 2.666c0 .606-.193 1.179-.544 1.614a1.6 1.6 0 0 0-.323.987.8.8 0 0 0 .8.8c3.309 0 6-2.691 6-6s-2.691-6-6-6-6 2.691-6 6c0 .441.359.8.8.8.378 0 .729-.114.986-.322A2.57 2.57 0 0 1 5.4 7.933' style='fill:%23fff'/%3E%3Cpath d='M8 15c-.992 0-1.8-.808-1.8-1.8 0-.606.193-1.179.544-1.613.208-.259.323-.609.323-.987 0-.919-.748-1.666-1.667-1.666-.377 0-.728.115-.986.323A2.58 2.58 0 0 1 2.8 9.8C1.808 9.8 1 8.992 1 8c0-3.86 3.14-7 7-7s7 3.14 7 7-3.141 7-7 7M5.4 7.933a2.67 2.67 0 0 1 2.667 2.666c0 .606-.193 1.179-.544 1.614a1.6 1.6 0 0 0-.323.987.8.8 0 0 0 .8.8c3.309 0 6-2.691 6-6s-2.691-6-6-6-6 2.691-6 6c0 .441.359.8.8.8.378 0 .729-.114.986-.322A2.57 2.57 0 0 1 5.4 7.933' style='fill:%23424242'/%3E%3Cpath d='M4.5 5.375a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23652d90'/%3E%3Cpath d='M7.125 3.625a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%231ba1e2'/%3E%3Cpath d='M10.625 4.5a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23393'/%3E%3Cpath d='M11.5 8a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23fc0'/%3E%3Cpath d='M9.75 10.625a.875.875 0 1 0 0 1.75.875.875 0 0 0 0-1.75' style='fill:%23e51400'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:65%;cursor:pointer}.sprite-focus-hover{border-radius:50%;transition:all .15s ease-out}.sprite-focus-hover:hover{box-shadow:0 0 0 3px rgba(0,0,0,.35);-webkit-transform:scale(1.1);transform:scale(1.1)}.sprite-editor-glyph.sprite-focus-hover:hover{box-shadow:inset 0 0 0 2px rgba(0,0,0,.35)}.sprite-gallery-button{border:1px solid;border-radius:4px;cursor:pointer;display:inline-block;float:left;margin:4px;outline:none;padding:0;transition:box-shadow .1s}.sprite-gallery-button-hover{box-shadow:0 0 0 4px hsla(0,0%,100%,.2)}.sprite-gallery-button:active{box-shadow:0 0 0 6px hsla(0,0%,100%,.2)}.sprite-gallery-button>img{height:80%;image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;margin-top:5%;width:80%;-ms-interpolation-mode:nearest-neighbor}.snippet-sprite-editor,.sprite-editor-snippet-container{height:503px;overflow:hidden;width:492px}.snippet-sprite-editor{max-height:503px;max-width:492px;min-height:503px;min-width:492px}#melody-toggle{float:center;margin:10px;text-align:center}#melody-editor-header-controls{display:block;height:52px}.melody-grid-div{background-color:inherit;margin:10px 20px 0;outline:none;text-align:center}.cell{height:35px;margin:1px;width:35px}.melody-top-bar-div{float:center;text-align:center}.melody-editor-div{background-color:#4f0643;height:100%}.melody-content-div{max-height:550px;overflow:hidden;padding:0;width:300px}.melody-editor-dropdown{padding:0!important}#melody-editor-gallery-outer{overflow:hidden;position:absolute;width:100%;z-index:1002}#melody-editor-gallery{background:#4f0643;max-height:350px;outline:none;overflow-x:hidden;overflow-y:scroll;padding:.75rem}.melody-gallery-button{background-color:#dcdcdc;border-radius:4px;cursor:pointer;display:flex;height:2.75rem;line-height:2.5rem;margin-bottom:.75rem;text-align:center;transition:box-shadow .1s;width:100%}.melody-gallery-button .melody-color-block{margin-top:.5rem}.melody-editor-button.left-button{border-bottom:1px solid #fff;border-left:1px solid #fff;border-radius:4px 0 0 4px;border-top:1px solid #fff;flex-grow:1;padding-left:.5rem;padding-right:.3rem}.melody-editor-button.right-button{border:1px solid #fff;border-left-color:#4f0643;border-radius:0 4px 4px 0;min-width:2.75rem;padding-left:.3rem}.melody-editor-toggle-buttons{outline:none}.melody-editor-toggle-buttons:focus-within{border-radius:2px;outline:3px solid #fff}.melody-editor-toggle-buttons g{outline:none}.melody-editor-button{background-color:#dcdcdc;color:#000;transition:color .1s,background-color .1s}.melody-editor-button:hover{background-color:#cacbcd;color:#000}.melody-editor-button:focus-visible{outline:none}.melody-editor-button.selected{outline:3px solid var(--pxt-focus-border);outline-offset:-5px}.melody-editor-button.right-button .icon{opacity:.9}.melody-gallery-play-icon{float:left}.melody-confirm-button{background-color:#e30fc0;border:none;border-radius:2px;color:#fff;float:right;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;height:28px;margin:0!important;-webkit-transition-duration:.1s;transition-duration:.1s;width:70px}.melody-confirm-button:hover{background-color:#9e0986;border:1px solid #e30fc0}.melody-editor-text{float:left;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;font-size:17px;font-weight:700;margin:0 3px}.melody-editor-field-icon{fill:#fff;font-family:Icons;font-size:19px}.melody-icon{float:left;height:25px}.melody-gallery-button-hover{box-shadow:0 0 0 4px hsla(0,0%,100%,.2)}.melody-gallery-button:active{box-shadow:0 0 0 6px hsla(0,0%,100%,.2)}#melody-tempo-input{background-color:#fff;border:none;border-radius:2px;color:#1b1c1d;float:left;height:28px;padding-left:5px;width:50px}#melody-tempo-input:focus{outline:none!important}#melody-play-button{background-color:#7f8c8d;border:none;border-radius:2px;color:#fff;display:inline-block;height:28px;-webkit-transition-duration:.1s;transition-duration:.1s;width:120px}#melody-play-button:hover{background-color:#525a5b;border:1px solid #7f8c8d}.melody-bottom-bar-div button:focus-visible{outline:3px solid #fff}.melody-bottom-bar-div{background-color:inherit;margin:7px 3px 0;padding:0 20px 20px;text-align:center}.melody-color-block{float:right;margin:4px 7px 0 0}.sliver{border:1px solid rgba(0,0,0,.2);display:inline-block;height:23px;margin:.5px;width:9px}.left-edge{border-radius:5px 0 0 5px}.right-edge{border-radius:0 5px 5px 0}.melody-preview-button{float:right;height:35px;padding:12px 11px!important;width:35px}.melody-gallery-row{float:left}.melody-content-div .melody-red,.pxt-renderer.classic-theme g.blocklyField>.melody-red{background:#a80000;fill:#a80000}.melody-content-div .melody-orange,.pxt-renderer.classic-theme g.blocklyField>.melody-orange{background:#d83b01;fill:#d83b01}.melody-content-div .melody-yellow,.pxt-renderer.classic-theme g.blocklyField>.melody-yellow{background:#ffb900;fill:#ffb900}.melody-content-div .melody-green,.pxt-renderer.classic-theme g.blocklyField>.melody-green{background:#107c10;fill:#107c10}.melody-content-div .melody-teal,.pxt-renderer.classic-theme g.blocklyField>.melody-teal{background:#008272;fill:#008272}.melody-content-div .melody-blue,.pxt-renderer.classic-theme g.blocklyField>.melody-blue{background:#0078d7;fill:#0078d7}.melody-content-div .melody-violet,.pxt-renderer.classic-theme g.blocklyField>.melody-violet{background:#b4009e;fill:#b4009e}.melody-content-div .melody-purple,.pxt-renderer.classic-theme g.blocklyField>.melody-purple{background:#5c2d91;fill:#5c2d91}.melody-content-div .melody-default,.pxt-renderer.classic-theme g.blocklyField>.melody-default{background:#dcdcdc;fill:#dcdcdc}.playing{fill-opacity:.7}.injectionDiv>.blocklyBlockDragSurface{z-index:97}svg.blocklySvg{background-color:var(--pxt-target-background1)!important;color:var(--pxt-target-foreground1)!important}#blocksEditor>div.loading,#maineditor{background:var(--pxt-target-background1);color:var(--pxt-target-foreground1)}.blocksAndErrorList{display:flex;flex-direction:column;height:100%}.blocksEditorOuter{display:inline-block;height:100%;overflow:hidden;position:relative}#blocksEditor{height:100%;position:absolute;width:100%}#blocksEditor .injectionDiv svg{overflow:visible}#blocksEditor .injectionDiv .blocklyDropDownDiv svg,#blocksEditor .injectionDiv .blocklyWidgetDiv svg{overflow:revert}#blocksEditor>div.loading{bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;z-index:1}.blocklyMainBackground{stroke:none!important}.rtl text.blocklyText{text-align:right}body.blocklyMinimalBody{min-width:auto;overflow:initial;position:unset}@supports (-ms-accelerator:true){.rtl .blocklyPreview{left:auto;right:50%}}.pxt-renderer.classic-theme .blocklyFlyoutButton text.blocklyText,.pxt-renderer.classic-theme text.blocklyFlyoutLabelText{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important}.pxt-renderer.classic-theme text.blocklyText.blocklyBoldText{font-weight:700}.pxt-renderer.classic-theme text.blocklyText.blocklyItalicizedText{font-style:italic}.pxt-renderer.classic-theme text.blocklyText.blocklyBoldItalicizedText{font-style:italic;font-weight:700}.pxt-renderer.classic-theme text.blocklyText.blocklyBubbleText{fill:#fff}.pxt-renderer.classic-theme .blocklyEditableField>text.semanticIcon,.pxt-renderer.classic-theme .blocklyEditableText>text.semanticIcon,.pxt-renderer.classic-theme .blocklyNonEditableText>text.semanticIcon{fill:#fff;font-family:Icons;font-size:19px}.pxt-renderer.classic-theme .blocklyEditableField>text.semanticIcon.inverted,.pxt-renderer.classic-theme .blocklyEditableText>text.semanticIcon.inverted{fill:#000}.blocklyGreyExpressionBlockText{color:#fff}.blocklyTreeRowContentContainer{pointer-events:none}span.blocklyTreeIcon{visibility:visible}span.blocklyTreeIcon.pxt-toolbox-icon{display:inline-block}i.icon.blocklyTreeButton{color:grey;float:right;line-height:40px;opacity:0;transition-duration:.5s;transition-property:opacity}.blocklyTreeRow:hover i.icon.blocklyTreeButton{opacity:1}.blocklyFlyoutButton{fill:transparent!important}.blocklyFlyoutButton:hover{fill:var(--pxt-primary-background)!important}.blocklyFlyoutButtonBackground{stroke:var(--pxt-primary-background)!important;stroke-width:3px!important}.blocklyFlyoutButton .blocklyText{fill:var(--pxt-neutral-foreground3)!important}.blocklyFlyoutButtonShadow{fill:none!important}.blocklyFlyoutLabelText{fill:var(--pxt-neutral-foreground3)!important;font-size:1rem}.blocklyFlyoutHeading .blocklyFlyoutLabelText{fill:var(--pxt-neutral-foreground3)!important;font-size:1.5rem}.blocklyFlyoutLabelText:hover{fill:var(--pxt-neutral-foreground3)!important}.blocklyFlyoutLabelIcon{font-family:Icons;font-size:1.5rem}line.blocklyFlyoutLine{stroke:var(--pxt-neutral-foreground3)}path.blocklyFlyoutBackground{fill:var(--pxt-neutral-background3)!important;fill-opacity:.9!important}div.blocklyWidgetDiv{z-index:993}div.blocklyWidgetDiv:focus-visible{outline:none}div.blocklyWidgetDiv.functioneditor{z-index:1001}div.blocklyDropDownDiv{overflow:hidden;z-index:994}div.blocklyDropDownDiv:focus-visible{outline:none}div.blocklyTooltipDiv{background-color:transparent!important;border:none!important;box-shadow:none!important;opacity:1!important;overflow-wrap:break-word}div.blocklyTooltipDiv .ui.card .content .description{display:inline}.blocklyWidgetDiv .goog-slider-horizontal{background:#fff;border:2px solid #000;border-radius:5px}text.blocklyCheckbox{fill:#ff3030!important;font-size:17pt!important;text-shadow:0 0 6px red}.pxt-renderer.classic-theme .blocklyEditableField>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklyAnimationField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyEditableText>rect.blocklyTilemapField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklyAnimationField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklySpriteField,.pxt-renderer.classic-theme .blocklyNonEditableText>rect.blocklyTilemapField{fill:#dedede;stroke:#898989;stroke-width:1}.blocklyDragging>.blocklyPath{fill-opacity:.7}.blocklyDisabled>.blocklyPathDark{display:block!important;fill-opacity:.5}.blocklyDisabled .blocklyNonEditableText .blocklyBlockBackground{fill-opacity:.1!important}.passiveBlockFocus.blocklyPath{stroke:#ffa200;stroke-dasharray:5 3;stroke-width:3}.passiveNextIndicator{fill:#ffa200;stroke:#ffa200}.inputActiveFocus{stroke:#ffa200;stroke-width:3}.blocklyScrollbarBackground{fill:none}.blocklyScrollbarHandle{fill:var(--pxt-target-stencil1);opacity:1}.blocklyScrollbarBackground:active+.blocklyScrollbarHandle,.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,.blocklyScrollbarHandle:active,.blocklyScrollbarHandle:hover{stroke:var(--pxt-target-stencil1);stroke-width:3}.blocklyWidgetDiv .blocklyContextMenu{background:var(--pxt-neutral-background1);border:1px solid var(--pxt-neutral-stencil1);box-shadow:0 1px 2px 0 var(--pxt-neutral-alpha20)!important;color:var(--pxt-neutral-foreground1);padding:0!important}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem{background:var(--pxt-neutral-background1);color:var(--pxt-neutral-foreground1);font:normal 13px Lato,Helvetica Neue,Arial,Helvetica,sans-serif!important;margin:0!important;padding:.92857143em 1.14285714em!important}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem.blocklyMenuItemDisabled{color:var(--pxt-neutral-alpha20)}.blocklyWidgetDiv .blocklyContextMenu .blocklyMenuItem.blocklyMenuItemHighlight,.blocklyWidgetDiv .blocklyContextMenu .gridpicker-menuitem-hover{background:var(--pxt-neutral-background1-hover)!important;border:none!important;color:var(--pxt-neutral-foreground1-hover);padding:.92857143em 1.14285714em!important}.blocklyDeleteIcon{display:block}.blocklyComment .blocklyTextarea{border:none;color:#575e75}.blocklyCommentText::placeholder{opacity:0}.blockly-ws-searching path.blocklyPath:not(.blockly-ws-search-highlight-pxt){opacity:.6}.blockly-ws-searching path.blocklyPath.blockly-ws-search-highlight-pxt.blockly-ws-search-current{stroke:#fff200;stroke-width:4px;transition:none}@media only screen and (max-width:767px){text.blocklyCheckbox{font-size:17pt!important}}.injectionDiv{--blockly-active-tree-color:var(--pxt-target-foreground1);--blockly-active-workspace-comment-color:var(--pxt-target-foreground1)}div.blocklyTreeRoot>div[role=tree]:focus-visible{outline:none}.blocklyKeyboardNavigation div.blocklyTreeRoot>div[role=tree]:focus-visible{outline:var(--blockly-selection-width) solid var(--blockly-active-tree-color);outline-offset:calc(var(--blockly-selection-width)*-1)}.blocklyKeyboardNavigation .blocklyActiveFocus.blocklyField>.blocklyFieldRect.blocklySpriteField,.blocklyKeyboardNavigation .blocklyActiveFocus.blocklyIconGroup>:is(.blocklyBreakpointSymbol){stroke:var(--blockly-active-node-color);stroke-width:var(--blockly-selection-width)}.blocklyKeyboardNavigation .blocklyPassiveFocus.blocklyField>.blocklyFieldRect.blocklySpriteField,.blocklyKeyboardNavigation .blocklyPassiveFocus.blocklyIconGroup>:is(.blocklyBreakpointSymbol){stroke:var(--blockly-active-node-color);stroke-dasharray:5px 3px;stroke-width:var(--blockly-selection-width)}.blocklyKeyboardNavigation .blocklyIconGroup:is(.blocklyActiveFocus,.blocklyPassiveFocus){opacity:1}.blocklyKeyboardNavigation .injectionDiv .blocklyToolbox:has(.blocklyActiveFocus){outline:none}.blocklyKeyboardNavigation .injectionDiv .blocklyFlyout .blocklyFlyoutLabel.blocklyActiveFocus>.blocklyFlyoutLabelText{outline:none}.blocklyKeyboardNavigation .injectionDiv .blocklyFlyout .blocklyFlyoutLabel.blocklyActiveFocus>.blocklyFlyoutLabelBackground{border-radius:2px;fill:transparent;opacity:1;outline:var(--blockly-selection-width) solid var(--blockly-active-node-color);outline-offset:2px}.blocklyKeyboardNavigation .blocklyImageField:focus-visible{outline:none}.blocklyKeyboardNavigation .blocklyImageField:is(.blocklyActiveFocus,.blocklyPassiveFocus)>image{border-radius:2px;outline:var(--blockly-selection-width) solid var(--blockly-active-node-color);outline-offset:2px}.blocklyKeyboardNavigation .blocklyImageField.blocklyPassiveFocus>image{outline-style:dashed}.blocklyKeyboardNavigation .blocklyComment.blocklyActiveFocus .blocklyCommentHighlight{stroke:var(--blockly-active-workspace-comment-color);stroke-width:4px}.blocklyCommentTopbar .blocklyActiveFocus{border-radius:2px;outline:2px solid var(--blockly-active-workspace-comment-color);outline-offset:-1px}
|