pxt-core 8.3.1 → 8.3.3

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 (46) hide show
  1. package/built/cli.js +73 -76
  2. package/built/pxt.js +74 -77
  3. package/built/pxtlib.d.ts +0 -1
  4. package/built/pxtlib.js +1 -1
  5. package/built/server.js +0 -4
  6. package/built/target.js +1 -1
  7. package/built/web/ai.0.js +1 -1
  8. package/built/web/main.js +1 -1
  9. package/built/web/pxtapp.js +1 -1
  10. package/built/web/pxtasseteditor.js +1 -1
  11. package/built/web/pxtembed.js +1 -1
  12. package/built/web/pxtlib.js +1 -1
  13. package/built/web/pxtworker.js +1 -1
  14. package/built/web/react-common-authcode.css +6981 -4
  15. package/built/web/react-common-skillmap.css +1 -1
  16. package/built/web/rtlreact-common-skillmap.css +1 -1
  17. package/built/web/rtlsemantic.css +1 -1
  18. package/built/web/semantic.css +1 -1
  19. package/built/web/semantic.js +0 -0
  20. package/built/web/skillmap/css/main.3684f34d.chunk.css +1 -0
  21. package/built/web/skillmap/js/2.d9c1cec5.chunk.js +2 -0
  22. package/built/web/skillmap/js/main.94faba64.chunk.js +1 -0
  23. package/built/web/skillmap/js/runtime-main.37bd2885.js +1 -0
  24. package/package.json +55 -56
  25. package/react-common/components/controls/Modal.tsx +0 -2
  26. package/react-common/components/profile/UserPane.tsx +1 -0
  27. package/react-common/components/share/ThumbnailRecorder.tsx +36 -15
  28. package/react-common/styles/react-common-authcode-core.less +1 -1
  29. package/react-common/styles/react-common-authcode.less +1 -1
  30. package/react-common/styles/share/share.less +9 -0
  31. package/theme/toolbox.less +1 -0
  32. package/theme/tutorial-sidebar.less +3 -1
  33. package/webapp/public/skillmap.html +32 -1
  34. package/built/web/multiplayer/css/main.b0b14e9a.css +0 -2
  35. package/built/web/multiplayer/js/main.448c5eda.js +0 -2
  36. package/built/web/react-common-multiplayer.css +0 -13
  37. package/built/web/rtlreact-common-authcode.css +0 -13
  38. package/built/web/rtlreact-common-multiplayer.css +0 -13
  39. package/built/web/skillmap/css/main.242f7a98.css +0 -1
  40. package/built/web/skillmap/js/main.f143771a.js +0 -2
  41. package/pxtcompiler/ext-typescript/readme.md +0 -1
  42. package/react-common/styles/react-common-multiplayer-core.less +0 -10
  43. package/react-common/styles/react-common-multiplayer.less +0 -12
  44. package/tests/blocks-test/README.md +0 -4
  45. package/webapp/package.json +0 -15
  46. package/webapp/public/multiplayer.html +0 -1
@@ -79,7 +79,16 @@ export const ThumbnailRecorder = (props: ThumbnailRecorderProps) => {
79
79
 
80
80
  const screenshotLabel = lf("Screenshot ({0})", targetTheme.simScreenshotKey);
81
81
  const startRecordingLabel = lf("Record ({0})", targetTheme.simGifKey);
82
- const stopRecordingLabel = lf("Stop recording ({0})", targetTheme.simGifKey) ;
82
+ const stopRecordingLabel = lf("Stop recording ({0})", targetTheme.simGifKey);
83
+ const renderingLabel = lf("Rendering...");
84
+
85
+ let recordLabel: string;
86
+
87
+ switch (recorderState) {
88
+ case "default": recordLabel = startRecordingLabel; break;
89
+ case "recording": recordLabel = stopRecordingLabel; break;
90
+ case "rendering": recordLabel = renderingLabel; break;
91
+ }
83
92
 
84
93
  const thumbnailLabel = uri ? lf("New Thumbnail") : lf("Current Thumbnail");
85
94
  const classes = classList(
@@ -95,14 +104,17 @@ export const ThumbnailRecorder = (props: ThumbnailRecorderProps) => {
95
104
  </div>
96
105
  <div className="gif-recorder">
97
106
  <div className="gif-recorder-actions">
107
+ {recorderState === "default" &&
108
+ <Button className="teal inverted"
109
+ title={screenshotLabel}
110
+ label={screenshotLabel}
111
+ leftIcon="fas fa-camera"
112
+ onClick={handleScreenshotClick} />
113
+ }
98
114
  <Button className="teal inverted"
99
- title={screenshotLabel}
100
- label={screenshotLabel}
101
- leftIcon="fas fa-camera"
102
- onClick={handleScreenshotClick} />
103
- <Button className="teal inverted"
104
- title={recorderState === "recording" ? stopRecordingLabel : startRecordingLabel}
105
- label={recorderState === "recording" ? stopRecordingLabel : startRecordingLabel}
115
+ disabled={recorderState === "rendering"}
116
+ title={recordLabel}
117
+ label={recordLabel}
106
118
  leftIcon={`fas fa-${recorderState === "recording" ? "square" : "circle"}`}
107
119
  onClick={handleRecordClick} />
108
120
  <div className="spacer mobile-only" />
@@ -124,24 +136,33 @@ export const ThumbnailRecorder = (props: ThumbnailRecorderProps) => {
124
136
  label={lf("Try again?")}
125
137
  onClick={() => setUri(undefined)} />
126
138
  </div>
127
- <div className="thumbnail-image">
128
- {(uri || initialUri)
139
+ <div className="project-share-thumbnail">
140
+ {recorderState !== "default" &&
141
+ <div className="project-thumbnail-placeholder">
142
+ <div className="common-spinner" />
143
+ <div className="project-thumbnail-label">
144
+ {recorderState === "recording" ? lf("Recording...") : lf("Rendering GIF...")}
145
+ </div>
146
+ </div>
147
+ }
148
+ { recorderState === "default" &&
149
+ ((uri || initialUri)
129
150
  ? <img src={uri || initialUri} />
130
- : <div className="thumbnail-placeholder" />
151
+ : <div className="thumbnail-placeholder" />)
131
152
  }
132
153
  </div>
133
154
  </div>
134
155
  </div>
135
156
  <div className="thumbnail-actions">
136
- {uri &&
157
+ <Button title={lf("Cancel")}
158
+ label={lf("Cancel")}
159
+ onClick={onCancel} />
160
+ {uri && recorderState === "default" &&
137
161
  <Button className="primary"
138
162
  title={lf("Apply")}
139
163
  label={lf("Apply")}
140
164
  onClick={handleApplyClick} />
141
165
  }
142
- <Button title={lf("Cancel")}
143
- label={lf("Cancel")}
144
- onClick={onCancel} />
145
166
  </div>
146
167
  </div>
147
168
  </div>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file is the same as react-common-authcode.less except it doesn't import any
2
+ * This file is the same as react-common-skillmap.less except it doesn't import any
3
3
  * variables from the target. This is used for pxt-core's css build
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Used for building react-common-authcode.css
2
+ * Used for building react-common-skillmap.css
3
3
  */
4
4
 
5
5
  // Import variables from pxt-core
@@ -77,6 +77,8 @@
77
77
  display: flex;
78
78
  align-items: center;
79
79
  justify-content: center;
80
+ flex-direction: column;
81
+ gap: 0.5rem;
80
82
 
81
83
  .common-spinner {
82
84
  width: 5rem;
@@ -231,6 +233,13 @@
231
233
 
232
234
  .gif-recorder-actions {
233
235
  display: flex;
236
+ width: 100%;
237
+
238
+ .common-button {
239
+ padding-left: 0;
240
+ padding-right: 0;
241
+ flex: 1;
242
+ }
234
243
  }
235
244
 
236
245
  .thumbnail-image,
@@ -135,6 +135,7 @@ span.blocklyTreeLabel, text.blocklyText {
135
135
  font-size: 1.2rem;
136
136
  padding: .5rem 1rem;
137
137
  border-bottom: 2px solid darken(desaturate(@editorToolsBackground, 60%), 10%);
138
+ user-select: none;
138
139
  }
139
140
 
140
141
  @media only screen and (max-width: @largestMobileScreen) {
@@ -182,6 +182,7 @@
182
182
  background: @tutorialPrimaryColor;
183
183
  width: 2rem;
184
184
  height: 2rem;
185
+ user-select: none;
185
186
 
186
187
  ~ .circle-button {
187
188
  // buttons after selected step
@@ -405,7 +406,6 @@
405
406
  padding: 1rem 0.5rem 1rem 1rem;
406
407
  overflow-x: hidden;
407
408
  overflow-y: scroll;
408
-
409
409
  &.ui.items { margin-top: 0; }
410
410
  }
411
411
 
@@ -531,6 +531,8 @@
531
531
  .tabTutorial {
532
532
  .immersive-reader-button.ui.item {
533
533
  float: right;
534
+ border: 2px solid @tutorialGrayOffset;
535
+ margin-left: 1.5rem;
534
536
  }
535
537
  }
536
538
 
@@ -1 +1,32 @@
1
- <!doctype html><html lang="@locale@"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>MakeCode Skill Map</title><link rel="stylesheet" data-rtl="/blb/rtlsemantic.css" href="/blb/semantic.css"><link rel="stylesheet" href="/blb/icons.css"><link rel="stylesheet" href="/blb/react-common-skillmap.css"><script defer="defer" src="/blb/skillmap/js/main.f143771a.js"></script><link href="/blb/skillmap/css/main.242f7a98.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><script type="text/javascript" src="/blb/target.js"></script><script type="text/javascript" src="/blb/pxtlib.js"></script><div id="root"></div><script>var pxtConfig=null</script><script type="text/javascript">window.lightningjs||function(e){function n(n,i){return i&&(i+=(/\?/.test(i)?"&":"?")+"lv=1"),e[n]||function(){var a=window,r=document,o=n,d=r.location.protocol,s="load",l=0;!function(){function n(){c.P(s),c.w=1,e[o]("_load")}e[o]=function(){function n(){return n.id=i,e[o].apply(n,arguments)}var t,i=++l;return t=this&&this!=a&&this.id||0,(c.s=c.s||[]).push([i,t,arguments]),n.then=function(e,t,a){var r=c.fh[i]=c.fh[i]||[],o=c.eh[i]=c.eh[i]||[],d=c.ph[i]=c.ph[i]||[];return e&&r.push(e),t&&o.push(t),a&&d.push(a),n},n};var c=e[o]._={};c.fh={},c.eh={},c.ph={},c.l=i?i.replace(/^\/\//,("https:"==d?d:"http:")+"//"):i,c.p={0:+new Date},c.P=function(e){c.p[e]=new Date-c.p[0]},c.w&&n(),a.addEventListener?a.addEventListener(s,n,!1):a.attachEvent("on"+s,n);var u=function(){function e(){return["<head></head><",n,' onload="var d=',f,";d.getElementsByTagName('head')[0].",d,"(d.",s,"('script')).",l,"='",c.l,"'\"></",n,">"].join("")}var n="body",i=r[n];if(!i)return setTimeout(u,100);c.P(1);var a,d="appendChild",s="createElement",l="src",h=r[s]("div"),p=h[d](r[s]("div")),v=r[s]("iframe"),f="document";h.style.display="none",i.insertBefore(h,i.firstChild).id=t+"-"+o,v.frameBorder="0",v.id=t+"-frame-"+o,/MSIE[ ]+6/.test(navigator.userAgent)&&(v[l]="javascript:false"),v.allowTransparency="true",p[d](v);try{v.contentWindow[f].open()}catch(e){c.domain=r.domain,a="javascript:var d="+f+".open();d.domain='"+r.domain+"';",v[l]=a+"void(0);"}try{var w=v.contentWindow[f];w.write(e()),w.close()}catch(n){v[l]=a+'d.write("'+e().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}c.P(2)};c.l&&setTimeout(u,0)}()}(),e[n].lv="1",e[n]}var t="lightningjs",i=window[t]=n(t);i.require=n,i.modules=e}({}),window.usabilla_live=lightningjs.require("usabilla_live","//w.usabilla.com/1bba04d66c15.js")</script></body></html>
1
+ <!doctype html>
2
+ <html lang="@locale@">
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1"/>
6
+ <title>MakeCode Skill Map</title>
7
+ <link rel="stylesheet" data-rtl="/blb/rtlsemantic.css" href="/blb/semantic.css">
8
+ <link rel="stylesheet" href="/blb/icons.css">
9
+ <link rel="stylesheet" href="/blb/react-common-skillmap.css">
10
+ <link href="/blb/skillmap/css/main.3684f34d.chunk.css" rel="stylesheet"></head>
11
+ <body>
12
+ <noscript>You need to enable JavaScript to run this app.</noscript>
13
+
14
+ <!-- @include tracking.html -->
15
+ <!-- @include tickevent.html -->
16
+
17
+ <!-- target.js is generated by the CLI -->
18
+ <script type="text/javascript" src="/blb/target.js"></script>
19
+ <script type="text/javascript" src="/blb/pxtlib.js"></script>
20
+
21
+ <div id="root"></div>
22
+
23
+
24
+ <script>var pxtConfig=null</script>
25
+
26
+ <!-- begin usabilla live embed code -->
27
+ <script type="text/javascript">window.lightningjs||function(e){function n(n,i){return i&&(i+=(/\?/.test(i)?"&":"?")+"lv=1"),e[n]||function(){var a=window,r=document,o=n,d=r.location.protocol,s="load",l=0;!function(){function n(){c.P(s),c.w=1,e[o]("_load")}e[o]=function(){function n(){return n.id=i,e[o].apply(n,arguments)}var t,i=++l;return t=this&&this!=a&&this.id||0,(c.s=c.s||[]).push([i,t,arguments]),n.then=function(e,t,a){var r=c.fh[i]=c.fh[i]||[],o=c.eh[i]=c.eh[i]||[],d=c.ph[i]=c.ph[i]||[];return e&&r.push(e),t&&o.push(t),a&&d.push(a),n},n};var c=e[o]._={};c.fh={},c.eh={},c.ph={},c.l=i?i.replace(/^\/\//,("https:"==d?d:"http:")+"//"):i,c.p={0:+new Date},c.P=function(e){c.p[e]=new Date-c.p[0]},c.w&&n(),a.addEventListener?a.addEventListener(s,n,!1):a.attachEvent("on"+s,n);var u=function(){function e(){return["<head></head><",n,' onload="var d=',f,";d.getElementsByTagName('head')[0].",d,"(d.",s,"('script')).",l,"='",c.l,"'\"></",n,">"].join("")}var n="body",i=r[n];if(!i)return setTimeout(u,100);c.P(1);var a,d="appendChild",s="createElement",l="src",h=r[s]("div"),p=h[d](r[s]("div")),v=r[s]("iframe"),f="document";h.style.display="none",i.insertBefore(h,i.firstChild).id=t+"-"+o,v.frameBorder="0",v.id=t+"-frame-"+o,/MSIE[ ]+6/.test(navigator.userAgent)&&(v[l]="javascript:false"),v.allowTransparency="true",p[d](v);try{v.contentWindow[f].open()}catch(e){c.domain=r.domain,a="javascript:var d="+f+".open();d.domain='"+r.domain+"';",v[l]=a+"void(0);"}try{var w=v.contentWindow[f];w.write(e()),w.close()}catch(n){v[l]=a+'d.write("'+e().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}c.P(2)};c.l&&setTimeout(u,0)}()}(),e[n].lv="1",e[n]}var t="lightningjs",i=window[t]=n(t);i.require=n,i.modules=e}({}),window.usabilla_live=lightningjs.require("usabilla_live","//w.usabilla.com/1bba04d66c15.js")</script>
28
+ <!-- end usabilla live embed code -->
29
+
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.d9c1cec5.chunk.js"></script><script src="/blb/skillmap/js/main.94faba64.chunk.js"></script></body>
32
+ </html>
@@ -1,2 +0,0 @@
1
- :root{--black:#000;--white:#fff;--primary-color:#aa278f;--secondary-color:#eac6eb;--tertiary-color:#850a6b;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:var(--secondary-color);--inactive-hover-color:#6e6e6e;--invert-active-color:#fff;--invert-hover-text-color:#850a6b;--body-background-color:#f9f9f9;--default-card-color:#ccc;--card-hover-color:#bfbfbf;--card-border-color:#e9eef2;--dropdown-hover-color:#ccc;--inverted-text-color:var(--white);--subtitle-text-color:#6e6e6e;--header-height:4rem;--header-padding-top:1rem;--body-font-family:"Share Tech Mono",Monaco,Menlo,"Ubuntu Mono",Consolas,source-code-pro,monospace;--feature-text-font:Segoe UI,Tahoma,Geneva,Verdana;--frame-loader-zindex:30;--above-frame-zindex:50;--modal-dimmer-zindex:100;--fullscreen-modal-zindex:90;--graph-backround-zindex:10;--above-graph-zindex:20;--high-contrast-text:var(--white);--high-contrast-background:var(--black);--high-contrast-highlight:#ff0;--high-contrast-focus-outline:2px solid var(--high-contrast-highlight);--high-contrast-hyperlink:#807fff}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9f9f9;background-color:var(--body-background-color);font-family:Share Tech Mono,Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-family:var(--body-font-family);margin:0;overflow:hidden;position:relative}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,#root>div,.app-container{height:100%;width:100%}.app-content{gap:1rem;padding-top:3rem}.app-content,.content-row{align-items:center;display:flex;flex-direction:column}.auth-button,.motd-button{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}body{background:#fdf3e0}.arcade{--primary-color:#e77038;--secondary-color:#ffeb9a;--tertiary-color:#e77038;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:#bfbfbf;--invert-active-color:#fff;--invert-hover-text-color:#e77038;--body-background-color:#fdf3e0;--card-hover-color:var(--default-card-color)}.arcade .banner{background:linear-gradient(90deg,#9feffd,#fd99c2)}.arcade .dropdown-menu,.arcade .modal{background-color:var(--white)}.arcade .carousel-arrow{color:var(--primary-color)}
2
- /*# sourceMappingURL=main.b0b14e9a.css.map*/