pxt-core 8.2.13 → 8.2.15

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.
Files changed (49) hide show
  1. package/built/buildengine.js +3 -3
  2. package/built/cli.js +5 -5
  3. package/built/gdb.js +4 -4
  4. package/built/nodeutil.d.ts +1 -0
  5. package/built/pxt.js +360 -360
  6. package/built/pxtblockly.js +35 -35
  7. package/built/pxtblocks.js +35 -35
  8. package/built/pxtcompiler.js +156 -156
  9. package/built/pxteditor.d.ts +15 -3
  10. package/built/pxteditor.js +6 -6
  11. package/built/pxtlib.d.ts +2 -1
  12. package/built/pxtlib.js +162 -161
  13. package/built/pxtpy.js +34 -35
  14. package/built/pxtsim.d.ts +5 -5
  15. package/built/pxtsim.js +3 -3
  16. package/built/server.js +5 -5
  17. package/built/storage.js +4 -4
  18. package/built/target.js +1 -1
  19. package/built/web/main.js +1 -1
  20. package/built/web/pxtapp.js +1 -1
  21. package/built/web/pxtasseteditor.js +1 -1
  22. package/built/web/pxteditor.js +1 -1
  23. package/built/web/pxtembed.js +2 -2
  24. package/built/web/pxtlib.js +1 -1
  25. package/built/web/pxtpy.js +1 -1
  26. package/built/web/pxtsim.js +1 -1
  27. package/built/web/pxtworker.js +1 -1
  28. package/built/web/rtlsemantic.css +1 -1
  29. package/built/web/semantic.css +1 -1
  30. package/built/web/skillmap/js/2.960f04a5.chunk.js +2 -0
  31. package/built/web/skillmap/js/main.44b2383f.chunk.js +1 -0
  32. package/common-docs/static/logo/social-buttons/google-classroom.png +0 -0
  33. package/common-docs/static/logo/social-buttons/microsoft-teams.png +0 -0
  34. package/docfiles/pxtweb/tsconfig.json +2 -1
  35. package/localtypings/dom.d.ts +3 -0
  36. package/localtypings/react.d.ts +1 -1
  37. package/package.json +6 -6
  38. package/react-common/components/controls/Modal.tsx +2 -2
  39. package/react-common/components/share/ShareInfo.tsx +1 -1
  40. package/react-common/tsconfig.json +3 -2
  41. package/theme/common.less +5 -3
  42. package/theme/highcontrast.less +3 -0
  43. package/theme/image-editor/imageEditor.less +1 -1
  44. package/theme/toolbox.less +25 -0
  45. package/theme/tutorial-sidebar.less +171 -115
  46. package/theme/tutorial.less +7 -0
  47. package/webapp/public/skillmap.html +1 -1
  48. package/built/web/skillmap/js/2.26325281.chunk.js +0 -2
  49. package/built/web/skillmap/js/main.d94a2bd9.chunk.js +0 -1
@@ -6,6 +6,8 @@
6
6
  @tutorialSecondaryColor: @sidebarSecondaryColor;
7
7
  @tutorialBarForegroundColor: @tutorialPrimaryColor;
8
8
  @tutorialBarBackgroundColor: @tutorialSecondaryColor;
9
+ @tutorialGrayOffset: #CECDCE;
10
+ @tutorialDarkGray: #767676;
9
11
 
10
12
  @tutorialLinkColor: #0064BF;
11
13
  @tutorialLinkHoverColor: #003C94;
@@ -43,7 +45,8 @@
43
45
  .tutorial-content {
44
46
  flex: 1;
45
47
  padding: 0 1rem;
46
- margin: 2rem 0;
48
+ margin-top: .5rem;
49
+ margin-bottom: 0;
47
50
  overflow-x: hidden;
48
51
  overflow-y: auto;
49
52
  font-family: @segoeUIFont;
@@ -75,13 +78,13 @@
75
78
  position: absolute;
76
79
  height: 3rem;
77
80
  width: calc(~'100% - 1rem');
78
- bottom: 6rem;
81
+ bottom: 0rem;
79
82
  pointer-events: none;
80
83
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), @white);
81
84
  }
82
85
 
83
86
  .tutorial-replace-code + .tutorial-scroll-gradient {
84
- bottom: 9rem;
87
+ bottom: 2rem;
85
88
  }
86
89
 
87
90
  .tutorial-container,
@@ -131,12 +134,17 @@
131
134
  *******************************/
132
135
 
133
136
  .tutorial-step-counter {
134
- flex: 1;
135
- margin-right: 0.5rem;
137
+ padding: 0 1rem;
138
+ padding-bottom: 0.5rem;
139
+ border-bottom: 2px solid @tutorialGrayOffset;
136
140
  }
137
141
 
138
142
  .tutorial-step-label {
139
143
  display: flex;
144
+ user-select: none;
145
+ cursor: default;
146
+ font-size: 1rem;
147
+ color: @tutorialDarkGray;
140
148
  }
141
149
 
142
150
  .tutorial-step-title {
@@ -145,24 +153,48 @@
145
153
  text-overflow: ellipsis;
146
154
  }
147
155
 
148
- .tutorial-step-number {
156
+ .tutorial-step-number:not(:first-child) {
149
157
  flex-shrink: 0;
150
- margin-left: 0.5rem;
158
+ margin-left: 1rem;
151
159
  }
152
160
 
153
- .tutorial-step-bar {
154
- height: 1rem;
155
- overflow: hidden;
156
- border-radius: 1rem;
157
- background-color: @tutorialBarBackgroundColor;
158
- cursor: pointer;
159
- }
161
+ #root.tabTutorial .tutorial-step-bubbles {
162
+ display: flex;
163
+ flex: 1;
164
+ justify-content: space-between;
165
+ align-items: center;
166
+ margin-left: auto;
167
+
168
+ .circle-button {
169
+ transition: none;
170
+ width: 1rem;
171
+ height: 1rem;
172
+ // buttons before selected step
173
+ background: darken(@tutorialSecondaryColor, 10%);
174
+
175
+ &.current {
176
+ color: white;
177
+ background: @tutorialPrimaryColor;
178
+ width: 2rem;
179
+ height: 2rem;
180
+
181
+ ~ .circle-button {
182
+ // buttons after selected step
183
+ background: @tutorialGrayOffset;
184
+ }
185
+ }
186
+ }
160
187
 
161
- .tutorial-step-bar-fill {
162
- background-color: @tutorialBarForegroundColor;
163
- height: 100%;
164
- transition: width 0.5s ease-out;
165
- pointer-events: none;
188
+ > .common-button.square-button {
189
+ border: solid 1px @tutorialPrimaryColor;
190
+ color: @tutorialPrimaryColor;
191
+ width: 2rem;
192
+ height: 2rem;
193
+
194
+ &.disabled {
195
+ visibility: hidden;
196
+ }
197
+ }
166
198
  }
167
199
 
168
200
  /*******************************
@@ -182,8 +214,11 @@
182
214
 
183
215
  .tutorial-controls {
184
216
  display: flex;
185
- justify-content: center;
217
+ flex-direction: row;
218
+ justify-content: space-between;
219
+ flex-wrap: wrap;
186
220
  margin-bottom: 1rem;
221
+ padding-top: 1rem;
187
222
 
188
223
  .ui.button {
189
224
  margin: 0 1rem;
@@ -196,6 +231,10 @@
196
231
  width: 7rem;
197
232
  }
198
233
 
234
+ > .ui.button:last-child {
235
+ margin-left: auto;
236
+ }
237
+
199
238
  .ui.button:hover, .ui.button:focus {
200
239
  background: darken(@tutorialPrimaryColor, 5%);
201
240
  color: @white;
@@ -230,12 +269,13 @@
230
269
  position: fixed;
231
270
  top: unset;
232
271
  right: unset;
233
- bottom: 11rem;
272
+ bottom: 5rem;
234
273
  left: 3rem;
235
274
  max-width: 50%;
236
275
  }
237
276
 
238
277
  .tutorial-callout:before {
278
+ display: none;
239
279
  top: auto;
240
280
  left: 6.5rem;
241
281
  bottom: -2.5rem;
@@ -322,7 +362,7 @@
322
362
 
323
363
  .tutorial-callout-button.ui.button {
324
364
  padding: 0;
325
- margin: 0 0 2rem;
365
+ margin: 0 0 1rem;
326
366
  color: @tutorialLinkColor;
327
367
  background: none transparent;
328
368
  font-family: @segoeUIFont;
@@ -335,7 +375,7 @@
335
375
  }
336
376
 
337
377
  .tutorial-callout {
338
- bottom: 13.5rem;
378
+ bottom: 5rem;
339
379
  padding: 1rem;
340
380
  max-width: 32rem;
341
381
  }
@@ -376,19 +416,47 @@
376
416
  #boardview { display: inline-block; }
377
417
 
378
418
  .simtoolbar, #miniSimOverlay { display: block; }
379
- .sidebar-button, .play-button { display: block !important; }
380
- .expand-button, .fullscreen-button { display: none !important; }
419
+ .play-button { display: none !important; }
420
+ .expand-button, .fullscreen-button { display: block !important; }
381
421
  }
382
422
 
383
423
  .tutorial-controls { display: none; }
424
+
425
+ /** TODO: change when supporting small horizontal sim && make not arcade centric at that time. **/
426
+ #boardview.ui.vertical.editorFloat, #boardview #simulators .simframe {
427
+ width: 17rem !important;
428
+
429
+ }
430
+ #boardview #simulators {
431
+ justify-content: flex-end;
432
+ .simframe {
433
+ margin-right: -2rem;
434
+ }
435
+ }
436
+
437
+ aside.simtoolbar {
438
+ z-index: 5;
439
+ }
440
+
441
+ .simPanel {
442
+ display: flex;
443
+ align-items: flex-end;
444
+ aside.simtoolbar {
445
+ float: unset;
446
+ }
447
+ }
384
448
  }
385
449
  .tab-simulator.tab-content:not(.hidden) {
386
450
  .simPanel {
387
451
  height: calc(100% - @tutorialControlsOffset);
388
452
 
389
- .sidebar-button, .button.hidefullscreen { display: none !important; }
453
+ .button.hidefullscreen { display: none !important; }
390
454
  }
391
455
  }
456
+
457
+ #miniSimOverlay {
458
+ display: none !important;
459
+ }
392
460
  }
393
461
 
394
462
  /*******************************
@@ -454,29 +522,62 @@
454
522
  border-radius: .5rem;
455
523
  }
456
524
 
525
+
526
+ .tabTutorial {
527
+ .immersive-reader-button.ui.item {
528
+ float: right;
529
+ }
530
+ }
531
+
457
532
  /*******************************
458
533
  Media Adjustments
459
534
  *******************************/
460
535
 
461
536
  /* Desktop Only */
462
- @media only screen and (max-height: @tallEditorBreakpoint) and (min-width: @largestTabletScreen) {
463
- #root.tabTutorial:not(.fullscreensim) .tab-simulator:not(.hidden) {
464
- .simPanel {
465
- height: calc(100% - @tutorialControlsOffset);
466
- min-height: @tutorialSimulatorMinHeight;
537
+ @media only screen and (min-width: @largestTabletScreen) {
538
+ #root.tabTutorial:not(.fullscreensim) {
539
+ #editortools {
540
+ width: calc(100% - @simulatorWidth);
541
+ left: unset;
542
+ right: 0;
467
543
  }
468
- #boardview {
469
- height: calc(100% - @tutorialBoardviewOffset);
470
- min-height: @tutorialSimulatorMinHeight;
544
+ #editorSidebar {
545
+ bottom: 0;
471
546
  }
472
- #simulators {
473
- height: 100%;
474
- min-height: @tutorialSimulatorMinHeight;
547
+ }
548
+ .tutorial-container .tutorial-step-counter {
549
+ .tutorial-step-label {
550
+ display: none;
475
551
  }
476
- .simframe {
477
- padding-bottom: unset !important;
478
- height: 100%;
479
- min-height: @tutorialSimulatorMinHeight;
552
+ }
553
+
554
+ .tutorial-step-label {
555
+ font-size: 1rem;
556
+ justify-content: space-between;
557
+ }
558
+
559
+ /* Short Deskstop Only */
560
+ @media (max-height: @tallEditorBreakpoint) {
561
+ #root.tabTutorial:not(.fullscreensim) {
562
+ .tab-simulator:not(.hidden) {
563
+ .simPanel {
564
+ height: calc(100% - @tutorialControlsOffset);
565
+ min-height: @tutorialSimulatorMinHeight;
566
+ }
567
+ #boardview {
568
+ height: calc(100% - @tutorialBoardviewOffset);
569
+ min-height: @tutorialSimulatorMinHeight;
570
+ }
571
+ #simulators {
572
+ height: 100%;
573
+ min-height: @tutorialSimulatorMinHeight;
574
+ }
575
+ .simframe {
576
+ padding-bottom: unset !important;
577
+ height: 100%;
578
+ min-height: @tutorialSimulatorMinHeight;
579
+ }
580
+ }
480
581
  }
481
582
  }
482
583
  }
@@ -496,6 +597,10 @@
496
597
  border-right: 0;
497
598
  border-bottom: 2px solid darken(desaturate(@blocklyToolboxColor, 60%), 10%);
498
599
  }
600
+
601
+ .tutorial-content {
602
+ padding-top: .5rem;
603
+ }
499
604
  }
500
605
 
501
606
  .tab-tutorial.tab-content {
@@ -509,13 +614,12 @@
509
614
  .tutorial-content {
510
615
  margin: 0;
511
616
  padding: 1rem;
617
+ padding-bottom: 0;
512
618
  }
513
619
 
514
620
  .tutorial-replace-code + .tutorial-scroll-gradient,
515
621
  .tutorial-scroll-gradient {
516
- width: calc(~'100% - 15rem');
517
622
  bottom: 0;
518
- left: 4rem;
519
623
  }
520
624
 
521
625
  /*******************************
@@ -541,69 +645,34 @@
541
645
  padding: 0.5rem 1rem;
542
646
  }
543
647
 
544
- #editorSidebar .immersive-reader-button.ui.item,
545
- #editorSidebar .immersive-reader-button.ui.item:focus{
546
- background-image: @immersiveReaderLightIcon;
547
- }
548
-
549
648
  /*******************************
550
649
  Step Counter
551
650
  *******************************/
552
651
 
553
652
  .tutorial-step-counter {
554
- margin-left: 1rem;
555
- margin-right: 0;
556
- color: @white;
557
- }
558
-
559
- .tutorial-step-bar {
560
- background-color: @white;
653
+ display: flex;
654
+ flex-direction: row;
655
+ align-items: center;
656
+ justify-content: space-between;
657
+ flex-wrap: wrap;
658
+ padding-left: 0;
659
+ padding-right: 0;
660
+ column-gap: 1rem;
661
+ margin-bottom: .5rem;
561
662
  }
562
663
 
563
- .tutorial-step-bar-fill {
564
- background-color: @tutorialBarBackgroundColor;
664
+ .tutorial-step-bubbles {
665
+ flex: 1;
666
+ max-width: 20rem;
667
+ min-width: 13rem;
565
668
  }
566
669
 
567
670
  /*******************************
568
671
  Tutorial Controls
569
672
  *******************************/
570
673
 
571
- .tutorial-container,
572
- .tutorial-controls {
573
- .ui.button {
574
- display: flex;
575
- flex-direction: column;
576
- align-items: center;
577
- justify-content: center;
578
- margin: 0;
579
- font-size: 1rem;
580
-
581
- i.icon {
582
- display: flex;
583
- align-items: center;
584
- justify-content: center;
585
- font-size: 2rem;
586
- }
587
-
588
- > .icon-and-text.icon~.ui.text {
589
- margin-left: 0 !important;
590
- }
591
- }
592
- }
593
-
594
- .tutorial-container,
595
674
  .tutorial-controls {
596
- > .ui.button, > .ui.button:focus {
597
- color: @tutorialPrimaryColor;
598
- background: @tutorialTabletButtonColor;
599
- border-radius: 0;
600
- }
601
-
602
- > .ui.button:hover {
603
- color: @white;
604
- background-color: @tutorialPrimaryColor;
605
- filter: none;
606
- }
675
+ padding-top: 0;
607
676
  }
608
677
 
609
678
  .tutorial-container > .ui.button i.icon {
@@ -752,14 +821,6 @@
752
821
  color: @black;
753
822
  }
754
823
 
755
- .tutorial-step-bar {
756
- background-color: @tutorialBarBackgroundColor;
757
- }
758
-
759
- .tutorial-step-bar-fill {
760
- background-color: @tutorialBarForegroundColor;
761
- }
762
-
763
824
  .tutorial-hint .tutorial-callout-button.ui.button {
764
825
  flex-direction: row;
765
826
  width: 12rem;
@@ -780,6 +841,16 @@
780
841
  }
781
842
  }
782
843
 
844
+ /* thin tablet header */
845
+ @media only screen and (min-width: @largestMobileScreen) and (max-height: @tallEditorBreakpoint) {
846
+ #root.tabTutorial,
847
+ #root.headless.tabTutorial {
848
+ #editorSidebar {
849
+ top: @thinMenuHeight;
850
+ }
851
+ }
852
+ }
853
+
783
854
  .tutorial-video-embed {
784
855
  display: flex;
785
856
  align-content: center;
@@ -798,10 +869,6 @@
798
869
  }
799
870
  }
800
871
 
801
- .tutorial-content.has-hint > :not(.tutorial-mobile-header) {
802
- padding-right: 4rem;
803
- }
804
-
805
872
  #root.headless.tabTutorial.collapsedEditorTools {
806
873
  .tutorial-hint .tutorial-callout-button.ui.button {
807
874
  margin: 0;
@@ -816,17 +883,6 @@
816
883
  align-items: center;
817
884
  }
818
885
  }
819
-
820
- .tutorial-mobile-header {
821
- display: flex;
822
- flex-direction: row;
823
-
824
- .tutorial-mobile-progress {
825
- flex-grow: 1;
826
- font-size: 1rem;
827
- }
828
- }
829
-
830
886
  .tutorial-title {
831
887
  max-width: 100%;
832
888
  }
@@ -264,6 +264,13 @@ span.docs.inlineblock {
264
264
  color: @white;
265
265
  font-family: @blocklyFont !important;
266
266
  font-size: 1em !important;
267
+ &.clickable {
268
+ cursor: pointer;
269
+
270
+ &:hover, &:focus {
271
+ opacity: .8;
272
+ }
273
+ }
267
274
  }
268
275
 
269
276
  code.lang-filterblocks {
@@ -28,5 +28,5 @@
28
28
  <!-- end usabilla live embed code -->
29
29
 
30
30
  <!-- @include thin-footer.html -->
31
- <script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this.webpackJsonpskillsmap=this.webpackJsonpskillsmap||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="/blb/skillmap/js/2.26325281.chunk.js"></script><script src="/blb/skillmap/js/main.d94a2bd9.chunk.js"></script></body>
31
+ <script>!function(e){function r(r){for(var n,l,i=r[0],a=r[1],p=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var a=t[i];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this.webpackJsonpskillsmap=this.webpackJsonpskillsmap||[],a=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var f=a;t()}([])</script><script src="/blb/skillmap/js/2.960f04a5.chunk.js"></script><script src="/blb/skillmap/js/main.44b2383f.chunk.js"></script></body>
32
32
  </html>