pxt-core 13.2.15 → 13.2.17
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.js +53 -16
- package/built/cli.js +14 -9
- package/built/nodeutil.js +3 -7
- package/built/pxt.js +67 -25
- package/built/pxtlib.js +53 -16
- package/built/target.js +1 -1
- package/built/targetlight.js +1 -1
- 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/main.js +1 -1
- package/built/web/pxtapp.js +2 -2
- package/built/web/pxtembed.js +1 -1
- package/built/web/pxtlib.js +1 -1
- package/built/web/pxtworker.js +1 -1
- package/built/web/rtlsemantic.css +1 -1
- package/built/web/semantic.css +1 -1
- package/package.json +1 -1
- package/theme/highcontrast.less +4 -0
package/built/targetlight.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var pxtTargetBundle = {"id":"core","name":"Microsoft MakeCode","title":"Microsoft MakeCode","description":"A toolkit to build JavaScript Blocks editors.","compile":{"hasHex":false,"jsRefCounting":false,"switches":{},"noSourceInFlash":true,"utf8":true},"uploadDocs":true,"versions":{"branch":"master","tag":"v13.2.15","commits":"https://github.com/microsoft/pxt/commits/a6a8a575fca3d6d39144cf7834c9dd9ee3cecf81","target":"13.2.15","pxt":"13.2.15"},"blocksprj":{"id":"blocksprj","config":{"name":"empty","description":"An empty project for docs rendering","dependencies":{},"files":["main.ts","pxt-core.d.ts","pxt-helpers.ts"],"public":true,"additionalFilePaths":[]},"files":{"main.ts":"\n"}},"tsprj":{"id":"tsprj","config":{"name":"empty","description":"An empty project for docs rendering","dependencies":{},"files":["main.ts","pxt-core.d.ts","pxt-helpers.ts"],"public":true,"additionalFilePaths":[]},"files":{"main.ts":"\n"}},"colorThemeMap":{"pxt-high-contrast":{"id":"pxt-high-contrast","name":"High Contrast","weight":100,"monacoBaseTheme":"hc-black","colors":{"pxt-header-background":"#000000","pxt-header-foreground":"#FFFFFF","pxt-header-background-hover":"#000000","pxt-header-foreground-hover":"#FFFFFF","pxt-header-stencil":"#FFFFFF","pxt-primary-background":"#000000","pxt-primary-foreground":"#FFFFFF","pxt-primary-background-hover":"#000000","pxt-primary-foreground-hover":"#FFFFFF","pxt-primary-accent":"#000000","pxt-secondary-background":"#000000","pxt-secondary-foreground":"#FFFFFF","pxt-secondary-background-hover":"#000000","pxt-secondary-foreground-hover":"#FFFFFF","pxt-secondary-accent":"#000000","pxt-tertiary-background":"#000000","pxt-tertiary-foreground":"#FFFFFF","pxt-tertiary-background-hover":"#000000","pxt-tertiary-foreground-hover":"#FFFFFF","pxt-tertiary-accent":"#000000","pxt-target-background1":"#000000","pxt-target-foreground1":"#FFFFFF","pxt-target-background1-hover":"#000000","pxt-target-foreground1-hover":"#cccccc","pxt-target-stencil1":"#FFFFFF","pxt-target-background2":"#000000","pxt-target-foreground2":"#FFFFFF","pxt-target-background2-hover":"#000000","pxt-target-foreground2-hover":"#cccccc","pxt-target-stencil2":"#FFFFFF","pxt-target-background3":"#000000","pxt-target-foreground3":"#FFFFFF","pxt-target-background3-hover":"#000000","pxt-target-foreground3-hover":"#cccccc","pxt-target-stencil3":"#FFFFFF","pxt-neutral-background1":"#000000","pxt-neutral-foreground1":"#FFFFFF","pxt-neutral-background1-hover":"#000000","pxt-neutral-foreground1-hover":"#FFFFFF","pxt-neutral-stencil1":"#FFFFFF","pxt-neutral-background2":"#000000","pxt-neutral-foreground2":"#FFFFFF","pxt-neutral-background2-hover":"#000000","pxt-neutral-foreground2-hover":"#FFFFFF","pxt-neutral-stencil2":"#FFFFFF","pxt-neutral-background3":"#000000","pxt-neutral-foreground3":"#FFFFFF","pxt-neutral-background3-hover":"#000000","pxt-neutral-foreground3-hover":"#FFFFFF","pxt-neutral-stencil3":"#FFFFFF","pxt-neutral-background3-alpha90":"#000000E5","pxt-neutral-base":"rgba(255, 255, 255, 1)","pxt-neutral-alpha0":"rgba(255, 255, 255, 0)","pxt-neutral-alpha10":"rgba(255, 255, 255, 0.1)","pxt-neutral-alpha20":"rgba(255, 255, 255, 0.2)","pxt-neutral-alpha50":"rgba(255, 255, 255, 0.5)","pxt-neutral-alpha80":"rgba(255, 255, 255, 0.8)","pxt-link":"#807FFF","pxt-link-hover":"#BBBBFF","pxt-focus-border":"#FFFF00","pxt-success":"#00FF00","pxt-success-foreground":"#000000","pxt-success-hover":"#00FF00","pxt-success-alpha10":"#00FF0019","pxt-warning":"#00FFFF","pxt-warning-foreground":"#FFFFFF","pxt-warning-hover":"#00FFFF","pxt-warning-alpha10":"#00FFFF19","pxt-error":"#880000","pxt-error-foreground":"#FFFFFF","pxt-error-hover":"#880000","pxt-error-alpha10":"#88000019","pxt-colors-purple-background":"#FF00FF","pxt-colors-purple-foreground":"#000000","pxt-colors-purple-hover":"#FF00FF","pxt-colors-purple-alpha10":"#FF00FF19","pxt-colors-orange-background":"#FF7F00","pxt-colors-orange-foreground":"#000000","pxt-colors-orange-hover":"#FF7F00","pxt-colors-orange-alpha10":"#FF7F0019","pxt-colors-brown-background":"#d1b7a3","pxt-colors-brown-foreground":"#FFFFFF","pxt-colors-brown-hover":"#d1b7a3","pxt-colors-brown-alpha10":"#d1b7a319","pxt-colors-blue-background":"#0078D7","pxt-colors-blue-foreground":"#FFFFFF","pxt-colors-blue-hover":"#0086F1","pxt-colors-blue-alpha10":"#0078D719","pxt-colors-green-background":"#00FF00","pxt-colors-green-foreground":"#000000","pxt-colors-green-hover":"#00FF00","pxt-colors-green-alpha10":"#00FF0019","pxt-colors-red-background":"#880000","pxt-colors-red-foreground":"#FFFFFF","pxt-colors-red-hover":"#880000","pxt-colors-red-alpha10":"#88000019","pxt-colors-teal-background":"#5BE0FF","pxt-colors-teal-foreground":"#000000","pxt-colors-teal-hover":"#5BE0FF","pxt-colors-teal-alpha10":"#5BE0FF19","pxt-colors-yellow-background":"#FFFF00","pxt-colors-yellow-foreground":"#000000","pxt-colors-yellow-hover":"#FFFF00","pxt-colors-yellow-alpha10":"#FFFF0019"},"overrideCss":".common-button {\n color: var(--pxt-neutral-foreground2) !important;\n background-color: var(--pxt-neutral-background2) !important;\n border-color: var(--pxt-neutral-foreground2) !important;\n}\n\n.common-button:hover, .common-button:focus {\n outline: 2px solid var(--pxt-colors-yellow-background) !important;\n z-index: 1;\n}\n\n.common-button.home-share-button {\n border: 1px solid var(--pxt-neutral-foreground2) !important;\n}\n\n/*\nOverride default button background for the area menu, which requires transparency,\nbut still use a fairly opaque one to keep focus/visibility on the main buttons.\n*/\n.area-menu-container .area-button {\n background-color: var(--pxt-neutral-alpha80) !important;\n}\n\n/*\n * \"User-provided content\" header in the import modal.\n */\n.ui.violet.message .header {\n color: var(--pxt-colors-purple-background) !important;\n}\n\n/*\n * Checkbox styles\n * In HC the neutral and primary colors are the same, so we need to differentiate with\n * a different background color when checked.\n */\n.common-checkbox.toggle input:checked~label:before,\ndiv.field .ui.toggle.checkbox input:checked~label:before {\n background-color: var(--pxt-colors-purple-background) !important;\n}\n\n.common-checkbox-icon.checked {\n background-color: var(--pxt-colors-purple-background);\n color: var(--pxt-colors-purple-foreground);\n border-color: var(--pxt-colors-purple-hover);\n}\n\n.common-checkbox-icon.checked i.fas.fa-check {\n color: var(--pxt-colors-purple-foreground);\n}\n\n/*\n * Make toggle \"handle\" more visible for HC\n */\n.common-checkbox.toggle label:after {\n background-color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Selection highlights\n */\n\n.blocklyContextMenu {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n.blocklyWidgetDiv .blocklyMenu.blocklyContextMenu .blocklyMenuItem.blocklyMenuItemHighlight {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/*\n * Toolbox\n */\n.blocklyTreeRow:hover {\n outline: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n#blocklySearchInput i {\n color: var(--pxt-neutral-foreground1);\n opacity: 1;\n}\n\n/*\n * Inverted image colors\n */\n.barcharticon,\n.blockly-ws-search-next-btn,\n.blockly-ws-search-previous-btn,\n.blockly-ws-search-close-btn {\n filter: invert(1);\n}\n\n/* Sim toolbar */\n#simulator .editor-sidebar .simtoolbar .debug-button.active,\n#simulator .editor-sidebar .simtoolbar .debug-button.active:hover {\n /* Make active state more apparent with a yellow border */\n color: var(--pxt-neutral-foreground2) !important;\n background: var(--pxt-neutral-background2) !important;\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/* Image Editor */\n.image-editor-topbar, .image-editor-bottombar, .image-editor-sidebar {\n background: var(--pxt-neutral-background1) !important;\n}\n.image-editor-tool-buttons {\n background: none !important;\n}\n.image-editor-button,\n.image-editor-input,\n.image-editor-confirm {\n border: 1px solid var(--pxt-neutral-foreground1);\n}\n.image-editor-canvas, .image-editor-canvas:hover, .image-editor-canvas:focus {\n outline: none !important;\n}\n.cursor-button {\n /* remove margin since we now have a border around the cursor buttons and it looks better centered */\n margin-right: 0;\n}\n\n/* Toolbox */\n.pxtToolbox:not(.invertedToolbox) span.blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeLabel,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeIcon {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected) .blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):hover,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):focus {\n background-color: #404040;\n}\n\n.blocksEditorOuter #blocklyTrashIcon {\n color: var(--pxt-primary-foreground);\n}\n\n/*\n * Teaching Bubbles\n */\n.teaching-bubble,\n.teaching-bubble .teaching-bubble-navigation-buttons > .common-button {\n background: var(--pxt-neutral-background1) !important;\n color: var(--pxt-neutral-foreground1) !important;\n border: solid var(--pxt-neutral-foreground1) !important;\n}\n\n.teaching-bubble-cutout {\n border: 0.25rem solid var(--pxt-neutral-alpha20);\n}\n\n.teaching-bubble .ai-footer {\n opacity: 1 !important;\n}\n\n.teaching-bubble-arrow,\n.teaching-bubble .ai-footer-text,\n.teaching-bubble .feedback-button,\n.teaching-bubble .feedback-button.disabled,\n.teaching-bubble .teaching-bubble-steps {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Side Docs\n */\n\n#sidedocs {\n background-color: var(--pxt-neutral-foreground1);\n}\n\n#sidedocsbar a i,\n#sidedocsbar a span {\n color: var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover,\n#sidedocsbar a:focus {\n /* Yellow does not contrast well against white background */\n outline: 3px solid var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover i,\n#sidedocsbar a:focus i,\n#sidedocsbar a:hover span,\n#sidedocsbar a:focus span {\n color: var(--pxt-link-hover) !important;\n}\n\n/*\n * Editor Toggle\n */\n#editortoggle .selected.item {\n transition: none;\n &:focus {\n box-shadow: inset 0 0 0 6px #000000 !important;\n }\n >.icon {\n color: #000000 !important;\n }\n}\n\n#editordropdown.ui.button.active > .icon {\n color: #000000 !important;\n}\n\n/*\n * Dropdown Menu\n */\n.common-menu-dropdown-item:hover,\n.common-menu-dropdown > .menu-button.expanded {\n outline: var(--pxt-focus-border) solid 3px !important;\n outline-offset: -4px;\n z-index: 1;\n}\n\ntable.diffview.update .diff-added .ch-added {\n color: var(--pxt-neutral-background1) !important;\n outline-color: var(--pxt-neutral-background1) !important;\n}\n\n.blocklyFieldSliderDropdown {\n background-color: var(--pxt-neutral-background1) !important;\n border-color: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown .blocklyFieldSliderLabel {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider {\n outline: none !important;\n background-color: var(--pxt-neutral-background1) !important;\n --blocklyFieldSliderBackgroundColor: var(--pxt-neutral-background1) !important;\n --blocklyFieldSliderThumbColor: var(--pxt-neutral-foreground1) !important;\n --blocklyFieldSliderThumbBorderColor: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:hover::-webkit-slider-runnable-track, .blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:focus-visible::-webkit-slider-runnable-track {\n outline: solid 3px var(--pxt-focus-border) !important;\n}\n\ninput[type=range].blocklyFieldSlider::-webkit-slider-runnable-track {\n border: solid 1px var(--pxt-neutral-foreground1) !important;\n box-sizing: content-box;\n}\n\ninput[type=range].blocklyFieldSlider::-moz-range-track {\n border: solid 1px var(--pxt-neutral-foreground1) !important;\n box-sizing: content-box;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:hover::-moz-range-track, .blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:focus-visible::-moz-range-track {\n outline: solid 3px var(--pxt-focus-border) !important;\n}\n\n/*\n * Music editor gallery\n */\n.song-gallery-item .common-button.play-button {\n background-color: var(--pxt-neutral-background1) !important;\n color: var(--pxt-neutral-foreground1) !important;\n border: solid 2px var(--pxt-neutral-foreground1) !important;\n}\n\n.song-gallery-item .common-button.play-button i.fas {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n.song-gallery-item .common-button.play-button:focus, .song-gallery-item .common-button.play-button:focus-visible {\n outline: none !important;\n}\n\n.song-gallery-item .common-button.play-button:focus::after, .song-gallery-item .common-button.play-button:focus-visible::after {\n border-radius: 50% !important;\n outline-offset: 10px !important;\n}\n"}}}
|
|
1
|
+
var pxtTargetBundle = {"id":"core","name":"Microsoft MakeCode","title":"Microsoft MakeCode","description":"A toolkit to build JavaScript Blocks editors.","compile":{"hasHex":false,"jsRefCounting":false,"switches":{},"noSourceInFlash":true,"utf8":true},"uploadDocs":true,"versions":{"branch":"master","tag":"v13.2.17","commits":"https://github.com/microsoft/pxt/commits/aa05e324109d6308e29dee68d6becf75edf79763","target":"13.2.17","pxt":"13.2.17"},"blocksprj":{"id":"blocksprj","config":{"name":"empty","description":"An empty project for docs rendering","dependencies":{},"files":["main.ts","pxt-core.d.ts","pxt-helpers.ts"],"public":true,"additionalFilePaths":[]},"files":{"main.ts":"\n"}},"tsprj":{"id":"tsprj","config":{"name":"empty","description":"An empty project for docs rendering","dependencies":{},"files":["main.ts","pxt-core.d.ts","pxt-helpers.ts"],"public":true,"additionalFilePaths":[]},"files":{"main.ts":"\n"}},"colorThemeMap":{"pxt-high-contrast":{"id":"pxt-high-contrast","name":"High Contrast","weight":100,"monacoBaseTheme":"hc-black","colors":{"pxt-header-background":"#000000","pxt-header-foreground":"#FFFFFF","pxt-header-background-hover":"#000000","pxt-header-foreground-hover":"#FFFFFF","pxt-header-stencil":"#FFFFFF","pxt-primary-background":"#000000","pxt-primary-foreground":"#FFFFFF","pxt-primary-background-hover":"#000000","pxt-primary-foreground-hover":"#FFFFFF","pxt-primary-accent":"#000000","pxt-secondary-background":"#000000","pxt-secondary-foreground":"#FFFFFF","pxt-secondary-background-hover":"#000000","pxt-secondary-foreground-hover":"#FFFFFF","pxt-secondary-accent":"#000000","pxt-tertiary-background":"#000000","pxt-tertiary-foreground":"#FFFFFF","pxt-tertiary-background-hover":"#000000","pxt-tertiary-foreground-hover":"#FFFFFF","pxt-tertiary-accent":"#000000","pxt-target-background1":"#000000","pxt-target-foreground1":"#FFFFFF","pxt-target-background1-hover":"#000000","pxt-target-foreground1-hover":"#cccccc","pxt-target-stencil1":"#FFFFFF","pxt-target-background2":"#000000","pxt-target-foreground2":"#FFFFFF","pxt-target-background2-hover":"#000000","pxt-target-foreground2-hover":"#cccccc","pxt-target-stencil2":"#FFFFFF","pxt-target-background3":"#000000","pxt-target-foreground3":"#FFFFFF","pxt-target-background3-hover":"#000000","pxt-target-foreground3-hover":"#cccccc","pxt-target-stencil3":"#FFFFFF","pxt-neutral-background1":"#000000","pxt-neutral-foreground1":"#FFFFFF","pxt-neutral-background1-hover":"#000000","pxt-neutral-foreground1-hover":"#FFFFFF","pxt-neutral-stencil1":"#FFFFFF","pxt-neutral-background2":"#000000","pxt-neutral-foreground2":"#FFFFFF","pxt-neutral-background2-hover":"#000000","pxt-neutral-foreground2-hover":"#FFFFFF","pxt-neutral-stencil2":"#FFFFFF","pxt-neutral-background3":"#000000","pxt-neutral-foreground3":"#FFFFFF","pxt-neutral-background3-hover":"#000000","pxt-neutral-foreground3-hover":"#FFFFFF","pxt-neutral-stencil3":"#FFFFFF","pxt-neutral-background3-alpha90":"#000000E5","pxt-neutral-base":"rgba(255, 255, 255, 1)","pxt-neutral-alpha0":"rgba(255, 255, 255, 0)","pxt-neutral-alpha10":"rgba(255, 255, 255, 0.1)","pxt-neutral-alpha20":"rgba(255, 255, 255, 0.2)","pxt-neutral-alpha50":"rgba(255, 255, 255, 0.5)","pxt-neutral-alpha80":"rgba(255, 255, 255, 0.8)","pxt-link":"#807FFF","pxt-link-hover":"#BBBBFF","pxt-focus-border":"#FFFF00","pxt-success":"#00FF00","pxt-success-foreground":"#000000","pxt-success-hover":"#00FF00","pxt-success-alpha10":"#00FF0019","pxt-warning":"#00FFFF","pxt-warning-foreground":"#FFFFFF","pxt-warning-hover":"#00FFFF","pxt-warning-alpha10":"#00FFFF19","pxt-error":"#880000","pxt-error-foreground":"#FFFFFF","pxt-error-hover":"#880000","pxt-error-alpha10":"#88000019","pxt-colors-purple-background":"#FF00FF","pxt-colors-purple-foreground":"#000000","pxt-colors-purple-hover":"#FF00FF","pxt-colors-purple-alpha10":"#FF00FF19","pxt-colors-orange-background":"#FF7F00","pxt-colors-orange-foreground":"#000000","pxt-colors-orange-hover":"#FF7F00","pxt-colors-orange-alpha10":"#FF7F0019","pxt-colors-brown-background":"#d1b7a3","pxt-colors-brown-foreground":"#FFFFFF","pxt-colors-brown-hover":"#d1b7a3","pxt-colors-brown-alpha10":"#d1b7a319","pxt-colors-blue-background":"#0078D7","pxt-colors-blue-foreground":"#FFFFFF","pxt-colors-blue-hover":"#0086F1","pxt-colors-blue-alpha10":"#0078D719","pxt-colors-green-background":"#00FF00","pxt-colors-green-foreground":"#000000","pxt-colors-green-hover":"#00FF00","pxt-colors-green-alpha10":"#00FF0019","pxt-colors-red-background":"#880000","pxt-colors-red-foreground":"#FFFFFF","pxt-colors-red-hover":"#880000","pxt-colors-red-alpha10":"#88000019","pxt-colors-teal-background":"#5BE0FF","pxt-colors-teal-foreground":"#000000","pxt-colors-teal-hover":"#5BE0FF","pxt-colors-teal-alpha10":"#5BE0FF19","pxt-colors-yellow-background":"#FFFF00","pxt-colors-yellow-foreground":"#000000","pxt-colors-yellow-hover":"#FFFF00","pxt-colors-yellow-alpha10":"#FFFF0019"},"overrideCss":".common-button {\n color: var(--pxt-neutral-foreground2) !important;\n background-color: var(--pxt-neutral-background2) !important;\n border-color: var(--pxt-neutral-foreground2) !important;\n}\n\n.common-button:hover, .common-button:focus {\n outline: 2px solid var(--pxt-colors-yellow-background) !important;\n z-index: 1;\n}\n\n.common-button.home-share-button {\n border: 1px solid var(--pxt-neutral-foreground2) !important;\n}\n\n/*\nOverride default button background for the area menu, which requires transparency,\nbut still use a fairly opaque one to keep focus/visibility on the main buttons.\n*/\n.area-menu-container .area-button {\n background-color: var(--pxt-neutral-alpha80) !important;\n}\n\n/*\n * \"User-provided content\" header in the import modal.\n */\n.ui.violet.message .header {\n color: var(--pxt-colors-purple-background) !important;\n}\n\n/*\n * Checkbox styles\n * In HC the neutral and primary colors are the same, so we need to differentiate with\n * a different background color when checked.\n */\n.common-checkbox.toggle input:checked~label:before,\ndiv.field .ui.toggle.checkbox input:checked~label:before {\n background-color: var(--pxt-colors-purple-background) !important;\n}\n\n.common-checkbox-icon.checked {\n background-color: var(--pxt-colors-purple-background);\n color: var(--pxt-colors-purple-foreground);\n border-color: var(--pxt-colors-purple-hover);\n}\n\n.common-checkbox-icon.checked i.fas.fa-check {\n color: var(--pxt-colors-purple-foreground);\n}\n\n/*\n * Make toggle \"handle\" more visible for HC\n */\n.common-checkbox.toggle label:after {\n background-color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Selection highlights\n */\n\n.blocklyContextMenu {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n.blocklyWidgetDiv .blocklyMenu.blocklyContextMenu .blocklyMenuItem.blocklyMenuItemHighlight {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/*\n * Toolbox\n */\n.blocklyTreeRow:hover {\n outline: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n#blocklySearchInput i {\n color: var(--pxt-neutral-foreground1);\n opacity: 1;\n}\n\n/*\n * Inverted image colors\n */\n.barcharticon,\n.blockly-ws-search-next-btn,\n.blockly-ws-search-previous-btn,\n.blockly-ws-search-close-btn {\n filter: invert(1);\n}\n\n/* Sim toolbar */\n#simulator .editor-sidebar .simtoolbar .debug-button.active,\n#simulator .editor-sidebar .simtoolbar .debug-button.active:hover {\n /* Make active state more apparent with a yellow border */\n color: var(--pxt-neutral-foreground2) !important;\n background: var(--pxt-neutral-background2) !important;\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/* Image Editor */\n.image-editor-topbar, .image-editor-bottombar, .image-editor-sidebar {\n background: var(--pxt-neutral-background1) !important;\n}\n.image-editor-tool-buttons {\n background: none !important;\n}\n.image-editor-button,\n.image-editor-input,\n.image-editor-confirm {\n border: 1px solid var(--pxt-neutral-foreground1);\n}\n.image-editor-canvas, .image-editor-canvas:hover, .image-editor-canvas:focus {\n outline: none !important;\n}\n.cursor-button {\n /* remove margin since we now have a border around the cursor buttons and it looks better centered */\n margin-right: 0;\n}\n\n/* Toolbox */\n.pxtToolbox:not(.invertedToolbox) span.blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeLabel,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeIcon {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected) .blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):hover,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):focus {\n background-color: #404040;\n}\n\n.blocksEditorOuter #blocklyTrashIcon {\n color: var(--pxt-primary-foreground);\n}\n\n/*\n * Teaching Bubbles\n */\n.teaching-bubble,\n.teaching-bubble .teaching-bubble-navigation-buttons > .common-button {\n background: var(--pxt-neutral-background1) !important;\n color: var(--pxt-neutral-foreground1) !important;\n border: solid var(--pxt-neutral-foreground1) !important;\n}\n\n.teaching-bubble-cutout {\n border: 0.25rem solid var(--pxt-neutral-alpha20);\n}\n\n.teaching-bubble .ai-footer {\n opacity: 1 !important;\n}\n\n.teaching-bubble-arrow,\n.teaching-bubble .ai-footer-text,\n.teaching-bubble .feedback-button,\n.teaching-bubble .feedback-button.disabled,\n.teaching-bubble .teaching-bubble-steps {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Side Docs\n */\n\n#sidedocs {\n background-color: var(--pxt-neutral-foreground1);\n}\n\n#sidedocsbar a i,\n#sidedocsbar a span {\n color: var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover,\n#sidedocsbar a:focus {\n /* Yellow does not contrast well against white background */\n outline: 3px solid var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover i,\n#sidedocsbar a:focus i,\n#sidedocsbar a:hover span,\n#sidedocsbar a:focus span {\n color: var(--pxt-link-hover) !important;\n}\n\n/*\n * Editor Toggle\n */\n#editortoggle .selected.item {\n transition: none;\n &:focus {\n box-shadow: inset 0 0 0 6px #000000 !important;\n }\n >.icon {\n color: #000000 !important;\n }\n}\n\n#editordropdown.ui.button.active > .icon {\n color: #000000 !important;\n}\n\n/*\n * Dropdown Menu\n */\n.common-menu-dropdown-item:hover,\n.common-menu-dropdown > .menu-button.expanded {\n outline: var(--pxt-focus-border) solid 3px !important;\n outline-offset: -4px;\n z-index: 1;\n}\n\ntable.diffview.update .diff-added .ch-added {\n color: var(--pxt-neutral-background1) !important;\n outline-color: var(--pxt-neutral-background1) !important;\n}\n\n.blocklyFieldSliderDropdown {\n background-color: var(--pxt-neutral-background1) !important;\n border-color: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown .blocklyFieldSliderLabel {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider {\n outline: none !important;\n background-color: var(--pxt-neutral-background1) !important;\n --blocklyFieldSliderBackgroundColor: var(--pxt-neutral-background1) !important;\n --blocklyFieldSliderThumbColor: var(--pxt-neutral-foreground1) !important;\n --blocklyFieldSliderThumbBorderColor: var(--pxt-neutral-foreground1) !important;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:hover::-webkit-slider-runnable-track, .blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:focus-visible::-webkit-slider-runnable-track {\n outline: solid 3px var(--pxt-focus-border) !important;\n}\n\ninput[type=range].blocklyFieldSlider::-webkit-slider-runnable-track {\n border: solid 1px var(--pxt-neutral-foreground1) !important;\n box-sizing: content-box;\n}\n\ninput[type=range].blocklyFieldSlider::-moz-range-track {\n border: solid 1px var(--pxt-neutral-foreground1) !important;\n box-sizing: content-box;\n}\n\n.blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:hover::-moz-range-track, .blocklyFieldSliderDropdown input[type=range].blocklyFieldSlider:focus-visible::-moz-range-track {\n outline: solid 3px var(--pxt-focus-border) !important;\n}\n\n/*\n * Music editor gallery\n */\n.song-gallery-item .common-button.play-button {\n background-color: var(--pxt-neutral-background1) !important;\n color: var(--pxt-neutral-foreground1) !important;\n border: solid 2px var(--pxt-neutral-foreground1) !important;\n}\n\n.song-gallery-item .common-button.play-button i.fas {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n.song-gallery-item .common-button.play-button:focus, .song-gallery-item .common-button.play-button:focus-visible {\n outline: none !important;\n}\n\n.song-gallery-item .common-button.play-button:focus::after, .song-gallery-item .common-button.play-button:focus-visible::after {\n border-radius: 50% !important;\n outline-offset: 10px !important;\n}\n"}}}
|
|
@@ -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 {};
|