diff --git a/docfiles/footer.html b/docfiles/footer.html
index 79d1595a..fd69c348 100644
--- a/docfiles/footer.html
+++ b/docfiles/footer.html
@@ -6,7 +6,7 @@
Privacy & Cookies
Terms Of Use
Trademarks
-
Powered by Microsoft MakeCode
diff --git a/docs/static/icons/immersive-reader-light.svg b/docs/static/icons/immersive-reader-light.svg
new file mode 100644
index 00000000..359ca9b8
--- /dev/null
+++ b/docs/static/icons/immersive-reader-light.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/static/icons/immersive-reader.svg b/docs/static/icons/immersive-reader.svg
new file mode 100644
index 00000000..fbab2235
--- /dev/null
+++ b/docs/static/icons/immersive-reader.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/static/loader.svg b/docs/static/loader.svg
new file mode 100644
index 00000000..579a183b
--- /dev/null
+++ b/docs/static/loader.svg
@@ -0,0 +1,82 @@
+
+
+
diff --git a/docs/static/orglogowide.png b/docs/static/orglogowide.png
new file mode 100644
index 00000000..d6139e3d
Binary files /dev/null and b/docs/static/orglogowide.png differ
diff --git a/fieldeditors/field_music.ts b/fieldeditors/field_music.ts
index 04e3b8a6..2d98c61e 100644
--- a/fieldeditors/field_music.ts
+++ b/fieldeditors/field_music.ts
@@ -26,7 +26,7 @@ export class FieldMusic extends pxtblockly.FieldImages implements Blockly.FieldC
this.columns_ = parseInt(options.columns) || 4;
this.width_ = parseInt(options.width) || 450;
- this.setText = Blockly.FieldDropdown.prototype.setText;
+ //this.setText = Blockly.FieldDropdown.prototype.setText;
this.updateSize_ = (Blockly.Field as any).prototype.updateSize_;
if (!pxt.BrowserUtils.isIE() && !soundCache) {
diff --git a/fieldeditors/field_ports.ts b/fieldeditors/field_ports.ts
index 9af3acae..f3035dc0 100644
--- a/fieldeditors/field_ports.ts
+++ b/fieldeditors/field_ports.ts
@@ -16,7 +16,7 @@ export class FieldPorts extends pxtblockly.FieldImages implements Blockly.FieldC
this.columns_ = parseInt(options.columns) || 4;
this.width_ = parseInt(options.width) || 300;
- this.setText = Blockly.FieldDropdown.prototype.setText;
+ //this.setText = Blockly.FieldDropdown.prototype.setText;
this.updateSize_ = (Blockly.Field as any).prototype.updateSize_;
}
diff --git a/libs/broadcast/README.md b/libs/broadcast/README.md
new file mode 100644
index 00000000..38660976
--- /dev/null
+++ b/libs/broadcast/README.md
@@ -0,0 +1,3 @@
+# Brodcast
+
+The library to ...
\ No newline at end of file
diff --git a/libs/broadcast/broadcast.ts b/libs/broadcast/broadcast.ts
index bbf0b0f5..6a027957 100644
--- a/libs/broadcast/broadcast.ts
+++ b/libs/broadcast/broadcast.ts
@@ -1,8 +1,7 @@
/**
* Message broadcasting
*/
-//% weight=70
-//% color="#58AB41"
+//% color="#58AB41" weight=80 icon="\uf27a" advanced=true
namespace broadcast {
const broadcastEventId = control.allocateNotifyEvent();
const broadcastDoneEventId = control.allocateNotifyEvent();
diff --git a/libs/broadcast/pxt.json b/libs/broadcast/pxt.json
index ea10e5b3..560a6477 100644
--- a/libs/broadcast/pxt.json
+++ b/libs/broadcast/pxt.json
@@ -1,11 +1,15 @@
{
"name": "broadcast",
+ "version": "0.0.2",
"description": "Broadcasting messages - beta",
"files": [
"broadcast.ts"
],
+ "testFiles": [
+ "test.ts"
+ ],
"public": true,
"dependencies": {
- "core": "file:../core"
+ "core": "file:../core"
}
}
\ No newline at end of file
diff --git a/libs/broadcast/test.ts b/libs/broadcast/test.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/libs/broadcast/tsconfig.json b/libs/broadcast/tsconfig.json
new file mode 100644
index 00000000..bfb6a748
--- /dev/null
+++ b/libs/broadcast/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "noImplicitAny": true,
+ "outDir": "built",
+ "rootDir": "."
+ },
+ "exclude": ["pxt_modules/**/*test.ts"]
+}
\ No newline at end of file
diff --git a/libs/ev3/ns.ts b/libs/ev3/ns.ts
index 484434f2..6a0f436d 100644
--- a/libs/ev3/ns.ts
+++ b/libs/ev3/ns.ts
@@ -1,11 +1,9 @@
-
//% color="#68C3E2" weight=100 icon="\uf106"
//% groups='["Buttons", "Screen", "Power"]'
//% labelLineWidth=60
namespace brick {
}
-
//% color="#C8509B" weight=95 icon="\uf10f"
//% labelLineWidth=100
//% groups='["Touch Sensor", "Color Sensor", "Ultrasonic Sensor", "Gyro Sensor", "Infrared Sensor", "Remote Infrared Beacon", "Calibration"]'
@@ -16,46 +14,22 @@ namespace sensors {
//% groups='["Move", "Counters", "Properties"]'
//% labelLineWidth=50
namespace motors {
-
}
+//% color="#00852B" icon="\uf1b9" weight=85
//% labelLineWidth=0
namespace chassis {
-
-}
-
-//% labelLineWidth=0
-namespace behaviors {
-
}
//% color="#D67923" weight=80 icon="\uf10e"
//% groups='["Sounds", "Tone", "Volume", "Tempo"]'
namespace music {
-
}
//% color="#5F3109" icon="\uf107"
namespace control {
-
}
-//% color="#011C32"
-namespace serial {
-
-}
-
-//% color="#58AB41"
-namespace loops {
-
-}
-
-//% color="#1E5AA8"
-namespace light {
-
-}
-
-//% color="#b0b0b0" advanced=true weight=5
-namespace storage {
-
+//% icon="\uf0d0"
+namespace automation {
}
\ No newline at end of file
diff --git a/libs/game/pxt.json b/libs/game/pxt.json
deleted file mode 100644
index e0d15550..00000000
--- a/libs/game/pxt.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "additionalFilePath": "../../node_modules/pxt-common-packages/libs/game"
-}
diff --git a/libs/storage/storage-core.ts b/libs/storage/storage-core.ts
index fe7db319..539e5c9f 100644
--- a/libs/storage/storage-core.ts
+++ b/libs/storage/storage-core.ts
@@ -1,14 +1,23 @@
namespace storage {
+
+ export enum Separators {
+ //% block="comma"
+ Comma,
+ //% block="semicolon"
+ Semicolon
+ }
+
//% shim=storage::__unlink
function __unlink(filename: string): void { }
//% shim=storage::__truncate
function __truncate(filename: string): void { }
+ let csvSeparator = separatorConverter(Separators.Comma);
+
//% fixedInstances
export class Storage {
- csvSeparator: string;
+
constructor() {
- this.csvSeparator = ",";
}
protected mapFilename(filename: string) {
@@ -37,21 +46,23 @@ namespace storage {
}
/**
- * Append string data to a new or existing file.
+ * Append string data to a new or existing file.
* @param filename the file name to append data, eg: "data.txt"
* @param data the data to append
*/
//% blockId=storageAppend block="storage %source|%filename|append %data"
+ //% weight=94
append(filename: string, data: string): void {
this.appendBuffer(filename, __stringToBuffer(data))
}
/**
- * Appends a new line of data in the file
+ * Appends a new line of data in the file.
* @param filename the file name to append data, eg: "data.txt"
* @param data the data to append
*/
//% blockId=storageAppendLine block="storage %source|%filename|append line %data"
+ //% weight=93
appendLine(filename: string, data: string): void {
this.append(filename, data + "\r\n");
}
@@ -64,15 +75,16 @@ namespace storage {
}
/**
- * Append a row of CSV headers
+ * Append a row of CSV headers.
* @param filename the file name to append data, eg: "data.csv"
* @param headers the data to append
*/
//% blockId=storageAppendCSVHeaders block="storage %source|%filename|append CSV headers %headers"
+ //% weight=89
appendCSVHeaders(filename: string, headers: string[]) {
let s = ""
for (const d of headers) {
- if (s) s += this.csvSeparator;
+ if (s) s += csvSeparator;
s = s + d;
}
s += "\r\n"
@@ -80,21 +92,24 @@ namespace storage {
}
/**
- * Append a row of CSV data
+ * Append a row of CSV data.
* @param filename the file name to append data, eg: "data.csv"
* @param data the data to append
*/
//% blockId=storageAppendCSV block="storage %source|%filename|append CSV %data"
+ //% weight=88
appendCSV(filename: string, data: number[]) {
- let s = toCSV(data, this.csvSeparator);
+ let s = toCSV(data, csvSeparator);
this.append(filename, s)
}
- /** Overwrite file with string data.
+ /**
+ * Overwrite file with string data.
* @param filename the file name to append data, eg: "data.txt"
* @param data the data to append
*/
//% blockId=storageOverwrite block="storage %source|%filename|overwrite with|%data"
+ //% weight=95
overwrite(filename: string, data: string): void {
this.overwriteWithBuffer(filename, __stringToBuffer(data))
}
@@ -105,30 +120,44 @@ namespace storage {
this.appendBuffer(filename, data)
}
- /** Tests if a file exists
+ /**
+ * Tests if a file exists.
* @param filename the file name to append data, eg: "data.txt"
*/
//% blockId=storageExists block="storage %source|%filename|exists"
+ //% weight=99
exists(filename: string): boolean {
return !!control.mmap(this.mapFilename(filename), 0, 0);
}
- /** Delete a file, or do nothing if it doesn't exist. */
+ /**
+ * Delete a file, or do nothing if it doesn't exist.
+ * @param filename the file name to append data, eg: "data.txt"
+ */
//% blockId=storageRemove block="storage %source|remove %filename"
+ //% weight=97
remove(filename: string): void {
__unlink(this.mapFilename(filename))
}
- /** Return the size of the file, or -1 if it doesn't exists. */
+ /**
+ * Return the size of the file, or -1 if it doesn't exists.
+ * @param filename the file name to append data, eg: "data.txt"
+ */
//% blockId=storageSize block="storage %source|%filename|size"
+ //% weight=98
size(filename: string): int32 {
let f = control.mmap(this.mapFilename(filename), 0, 0)
if (!f) return -1;
return f.lseek(0, SeekWhence.End)
}
- /** Read contents of file as a string. */
+ /**
+ * Read contents of file as a string.
+ * @param filename the file name to append data, eg: "data.txt"
+ */
//% blockId=storageRead block="storage %source|read %filename|as string"
+ //% weight=96
read(filename: string): string {
return __bufferToString(this.readAsBuffer(filename))
}
@@ -145,11 +174,12 @@ namespace storage {
}
/**
- * Resizing the size of a file to stay under the limit
- * @param filename name of the file to drop
+ * Resizing the size of a file to stay under the limit.
+ * @param filename name of the file to drop, eg: "data.txt"
* @param size maximum length
*/
//% blockId=storageLimit block="storage %source|limit %filename|to %size|bytes"
+ //% weight=100
limit(filename: string, size: number) {
if (!this.exists(filename) || size < 0) return;
@@ -172,6 +202,21 @@ namespace storage {
return s;
}
+ /**
+ * Set for CSV file separator. It is necessary to use depending on your regional settings of the application displaying CSV. By default, a comma is used.
+ * @param sep separator character, eg: Separators.Comma
+ */
+ //% blockId=setCSVSeparator block="storage CSV set $sep|separator"
+ //% weight=80
+ export function setCSVSeparator(sep: Separators) {
+ csvSeparator = separatorConverter(sep);
+ }
+
+ function separatorConverter(sep: Separators): string {
+ if (sep == Separators.Semicolon) return ";";
+ else return ",";
+ }
+
class TemporaryStorage extends Storage {
constructor() {
super();
diff --git a/libs/storage/storage.cpp b/libs/storage/storage.cpp
index 16093991..c70c01f5 100644
--- a/libs/storage/storage.cpp
+++ b/libs/storage/storage.cpp
@@ -10,13 +10,13 @@ namespace storage {
/** Will be moved. */
//%
Buffer __stringToBuffer(String s) {
- return mkBuffer((uint8_t *)s->data, s->length);
+ return mkBuffer((uint8_t *)PXT_STRING_DATA(s), PXT_STRING_DATA_LENGTH(s));
}
/** Will be moved. */
//%
String __bufferToString(Buffer s) {
- return mkString((char*)s->data, s->length);
+ return mkString((char*)PXT_BUFFER_DATA(s), PXT_BUFFER_LENGTH(s));
}
//%
@@ -26,19 +26,19 @@ void __init() {
//%
void __unlink(String filename) {
- ::unlink(filename->data);
+ ::unlink(PXT_STRING_DATA(filename));
}
//%
void __truncate(String filename) {
- int fd = open(filename->data, O_CREAT | O_TRUNC | O_WRONLY, 0777);
+ int fd = open(PXT_STRING_DATA(filename), O_CREAT | O_TRUNC | O_WRONLY, 0777);
close(fd);
}
/** Create named directory. */
//%
void __mkdir(String filename) {
- ::mkdir(filename->data, 0777);
+ ::mkdir(PXT_STRING_DATA(filename), 0777);
}
} // namespace storage
diff --git a/libs/storage/storage.ts b/libs/storage/storage.ts
index a5ff2963..55b4a803 100644
--- a/libs/storage/storage.ts
+++ b/libs/storage/storage.ts
@@ -1,3 +1,4 @@
+//% color="#FE5722" weight=5 icon="\uf1c0"
namespace storage {
// automatically send console output to temp storage
storage.temporary.remove("console.txt");
diff --git a/package.json b/package.json
index f01f1155..f80ab340 100644
--- a/package.json
+++ b/package.json
@@ -38,14 +38,15 @@
"@types/react-dom": "16.0.3",
"@types/web-bluetooth": "0.0.4",
"@vusion/webfonts-generator": "^0.7.1",
+ "less": "3.13.1",
"react": "16.8.3",
"react-dom": "16.11.0",
"semantic-ui-less": "2.4.1",
"typescript": "^4.2.3"
},
"dependencies": {
- "pxt-common-packages": "9.2.7",
- "pxt-core": "7.2.27"
+ "pxt-common-packages": "11.1.2",
+ "pxt-core": "9.1.10"
},
"scripts": {
"test": "node node_modules/pxt-core/built/pxt.js travis"
diff --git a/pxtarget.json b/pxtarget.json
index 4ffb8119..8592b1e8 100644
--- a/pxtarget.json
+++ b/pxtarget.json
@@ -160,15 +160,17 @@
"extendEditor": true,
"extendFieldEditors": true,
"scriptManager": true,
+ "showProjectSettings": true,
"debugger": true,
"errorList": true,
+ "workspaceSearch": true,
"importExtensionFiles": true,
+ "allowPackageExtensions": true,
"addNewTypeScriptFile": true,
"experiments": [
- "python",
- "alwaysGithubItemBlocks"
+ "alwaysGithubItemBlocks",
+ "blocksErrorList"
],
- "disableBlockIcons": true,
"blocklyOptions": {
"grid": {
"spacing": 40,
@@ -207,7 +209,10 @@
"shareFinishedTutorials": true,
"nameProjectFirst": true,
"enableTrace": true,
- "githubEditor": true
+ "githubEditor": true,
+ "chooseLanguageRestrictionOnNewProject": true,
+ "openProjectNewTab": true,
+ "python": true
},
"ignoreDocsErrors": true,
"uploadDocs": true
diff --git a/sim/tsconfig.json b/sim/tsconfig.json
index 15ca0210..6640f46f 100644
--- a/sim/tsconfig.json
+++ b/sim/tsconfig.json
@@ -4,9 +4,10 @@
"noImplicitAny": true,
"noImplicitReturns": true,
"declaration": true,
- "out": "../built/sim.js",
+ "outFile": "../built/sim.js",
"rootDir": ".",
"newLine": "LF",
+ "moduleResolution": "node",
"sourceMap": false,
"lib": ["dom", "dom.iterable", "scripthost", "es2017"],
"types": [],
diff --git a/theme/blockly-toolbox.less b/theme/blockly-toolbox.less
index dc92db43..8ddbe86d 100644
--- a/theme/blockly-toolbox.less
+++ b/theme/blockly-toolbox.less
@@ -7,11 +7,13 @@
/* Fonts for toolbox icons */
@font-face {
font-family: 'legoIcons';
+ size-adjust: 110%;
src: data-uri("../docs/static/fonts/icons/iconfont.woff");
}
span.blocklyTreeIcon {
- font-family: 'legoIcons' !important;
+ font-family: 'legoIcons', 'Icons' !important;
+ font-size: 1.2rem !important;
}
/* Toolbox padding */
@@ -25,11 +27,7 @@ span.blocklyTreeIcon {
div.blocklyTreeRow {
border-radius: 0px;
- margin-bottom: 7px;
- /*-webkit-box-shadow: inset 0px 0px 0px 3px rgba(0,0,0,0.2);
- -moz-box-shadow: inset 0px 0px 0px 3px rgba(0,0,0,0.2);
- box-shadow: inset 0px 0px 0px 3px rgba(0,0,0,0.2);*/
-
+ margin-bottom: 0px;
border: none !important;
border-bottom: 1px solid #EBEBEB !important;
}
@@ -48,9 +46,9 @@ span.blocklyTreeLabel {
/* Search box */
#blocklySearchArea {
- margin: 0.5rem;
- margin-left: 1rem;
- margin-right: 1rem;
+ margin: 0;
+ margin-left: 0;
+ margin-right: 0;
margin-bottom: 0.8rem;
}
.blocklySearchInputField {
@@ -75,5 +73,6 @@ span.blocklyTreeLabel {
*******************************/
span.blocklyTreeIcon.blocklyTreeIconfunctions {
- font-family: 'legoIcons' !important;
+ font-family: 'legoIcons', 'Icons' !important;
+ font-size: 1.2rem !important;
}
\ No newline at end of file
diff --git a/theme/blockly.less b/theme/blockly.less
index fe022faf..658ce7ff 100644
--- a/theme/blockly.less
+++ b/theme/blockly.less
@@ -10,7 +10,8 @@
}
.blocklyFlyoutLabel .blocklyFlyoutLabelIcon {
- font-family: 'legoIcons' !important;
+ font-family: 'legoIcons', 'Icons' !important;
+ font-size: 1.4rem !important;
}
/* Square shaped corners */
diff --git a/theme/site/elements/loader.overrides b/theme/site/elements/loader.overrides
index a91402ea..b2e8f481 100644
--- a/theme/site/elements/loader.overrides
+++ b/theme/site/elements/loader.overrides
@@ -2,7 +2,7 @@
Site Overrides
*******************************/
-.ui.loader.main:before,
+.ui.loader.main:not(.msft):before,
.ui.loader.avatar:before {
border: none;
border-radius: 0px;
@@ -11,68 +11,68 @@
background-size: 100%;
}
-.ui.loader.main:after {
+.ui.loader.main:not(.msft):after {
border: none;
box-shadow: none;
border-radius: 0px;
background: transparent @loaderImage no-repeat center center;
background-size: 100%;
- -webkit-animation: @loaderAnimation @loaderSpeed infinite linear;
- animation: @loaderAnimation @loaderSpeed infinite linear;
+ -webkit-animation: @ev3LoaderAnimation @ev3LoaderSpeed infinite linear;
+ animation: @ev3LoaderAnimation @ev3LoaderSpeed infinite linear;
}
-.ui.loader.avatar:after {
+.ui.loader.avatar:not(.msft):after {
border: none;
box-shadow: none;
border-radius: 0px;
background: transparent @avatarImage no-repeat center center;
background-size: 100%;
- -webkit-animation: @loaderAnimation @loaderSpeed infinite linear;
- animation: @loaderAnimation @loaderSpeed infinite linear;
+ -webkit-animation: @ev3LoaderAnimation @ev3LoaderSpeed infinite linear;
+ animation: @ev3LoaderAnimation @ev3LoaderSpeed infinite linear;
}
@-webkit-keyframes loader-pxt-ev3 {
0% {
- -webkit-transform: translateX(@loaderStartPoint);
- transform: translateX(@loaderStartPoint);
+ -webkit-transform: translateX(@ev3LoaderStartPoint);
+ transform: translateX(@ev3LoaderStartPoint);
}
20% {
- -webkit-transform: translateX(-@loaderMiddlePoint);
- transform: translateX(-@loaderMiddlePoint);
+ -webkit-transform: translateX(-@ev3LoaderMiddlePoint);
+ transform: translateX(-@ev3LoaderMiddlePoint);
}
50% {
- -webkit-transform: translateX(-@loaderEndPoint);
- transform: translateX(-@loaderEndPoint);
+ -webkit-transform: translateX(-@ev3LoaderEndPoint);
+ transform: translateX(-@ev3LoaderEndPoint);
}
75% {
- -webkit-transform: translateX(-@loaderMiddlePoint);
- transform: translateX(-@loaderMiddlePoint);
+ -webkit-transform: translateX(-@ev3LoaderMiddlePoint);
+ transform: translateX(-@ev3LoaderMiddlePoint);
}
100% {
- -webkit-transform: translateX(@loaderStartPoint);
- transform: translateX(@loaderStartPoint);
+ -webkit-transform: translateX(@ev3LoaderStartPoint);
+ transform: translateX(@ev3LoaderStartPoint);
}
}
@keyframes loader-pxt-ev3 {
0% {
- -webkit-transform: translateX(@loaderStartPoint);
- transform: translateX(@loaderStartPoint);
+ -webkit-transform: translateX(@ev3LoaderStartPoint);
+ transform: translateX(@ev3LoaderStartPoint);
}
20% {
- -webkit-transform: translateX(-@loaderMiddlePoint);
- transform: translateX(-@loaderMiddlePoint);
+ -webkit-transform: translateX(-@ev3LoaderMiddlePoint);
+ transform: translateX(-@ev3LoaderMiddlePoint);
}
50% {
- -webkit-transform: translateX(-@loaderEndPoint);
- transform: translateX(-@loaderEndPoint);
+ -webkit-transform: translateX(-@ev3LoaderEndPoint);
+ transform: translateX(-@ev3LoaderEndPoint);
}
75% {
- -webkit-transform: translateX(-@loaderMiddlePoint);
- transform: translateX(-@loaderMiddlePoint);
+ -webkit-transform: translateX(-@ev3LoaderMiddlePoint);
+ transform: translateX(-@ev3LoaderMiddlePoint);
}
100% {
- -webkit-transform: translateX(@loaderStartPoint);
- transform: translateX(@loaderStartPoint);
+ -webkit-transform: translateX(@ev3LoaderStartPoint);
+ transform: translateX(@ev3LoaderStartPoint);
}
}
\ No newline at end of file
diff --git a/theme/site/elements/loader.variables b/theme/site/elements/loader.variables
index a013b99f..a6d937ce 100644
--- a/theme/site/elements/loader.variables
+++ b/theme/site/elements/loader.variables
@@ -8,12 +8,12 @@
@loaderImageUrl: "../docs/static/loader_front.svg";
@loaderImage: data-uri(@loaderImageUrl);
-@loaderSpeed: 2s;
+@ev3LoaderSpeed: 2s;
-@loaderStartPoint: 0px;
-@loaderMiddlePoint: 14px;
-@loaderEndPoint: 28px;
+@ev3LoaderStartPoint: 0px;
+@ev3LoaderMiddlePoint: 14px;
+@ev3LoaderEndPoint: 28px;
-@loaderAnimation: loader-pxt-ev3;
+@ev3LoaderAnimation: loader-pxt-ev3;
-@large : 200px;
+@large: 200px;
\ No newline at end of file
diff --git a/theme/site/globals/site.variables b/theme/site/globals/site.variables
index b2af287d..5766bfdb 100644
--- a/theme/site/globals/site.variables
+++ b/theme/site/globals/site.variables
@@ -13,7 +13,6 @@
@teal:#08415C;
@violet:#C200C0;
@brown:#2E282A;
-@grey:#999;
@pink:#FB48C7;
@purple:#8073E5;
@@ -107,9 +106,10 @@
--------------------*/
@mainMenuBackground: @legoGreyLight;
-@mainMenuInvertedBackground: #FFFFFF;
+@mainMenuInvertedBackground: @darkGrey;
@mainMenuTutorialBackground: @orange;
+@mainMenuBlocksJsToggleColor: @primaryColor;
@tutorialSelectedMenuColor: @blue;
@@ -159,8 +159,6 @@
@blocklyToolboxColor: #FFF; /*#FAC80A;*/
@trashIconColor: #FAC80A; /*white*/
-@editorToggleColor: @primaryColor;
-
/*-------------------
Blockly
--------------------*/
diff --git a/theme/style.less b/theme/style.less
index c5e045c9..cd1bcf93 100644
--- a/theme/style.less
+++ b/theme/style.less
@@ -77,6 +77,13 @@
}
/* Editor menu toggle */
+#root:not(.hc) #editordropdown {
+ padding: 0 1em;
+}
+#root:not(.hc) #editordropdown #mainmenu #editordropdown.active:focus,
+ #root:not(.hc) #editordropdown.active {
+ background-color: @mainMenuBlocksJsToggleColor!important;
+}
.menubar .ui.menu.fixed .item.editor-menuitem .ui.grid {
background: fade(@blue, 10%) !important;
border: 1px solid #888888;
@@ -84,17 +91,14 @@
}
.menubar .ui.menu.fixed .ui.item.editor-menuitem .item {
border-radius: 0px !important;
- display: flex;
- justify-content: center;
- align-items: center;
}
.menubar .ui.menu.fixed .ui.item.editor-menuitem .item.active {
color: white;
}
-/* active toggle */
+/* Blocks or JS active toggle color */
.ui.item.editor-menuitem .active~.item.toggle {
- background: @editorToggleColor!important;
+ background: @mainMenuBlocksJsToggleColor!important;
}
.menubar .ui.item.editor-menuitem .item.toggle {
@@ -137,6 +141,9 @@
#filelist {
background: transparent;
}
+ #blocklySearchArea {
+ display: none !important;
+ }
}
/* Tablet */
@@ -198,10 +205,4 @@
.bluetooth {
background-color: #007EF4 !important;
color: white !important;
-}
-
-/* Temporary fix simPanel jump for some screen resolutions so-as the problem is in the pxt version. Need pxt version 8.2.7 and up */
-.invisibleScrollbar::-webkit-scrollbar {
- background: transparent !important;
- width: initial !important;
}
\ No newline at end of file