pxt-core 7.5.8 → 7.5.11

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 (47) hide show
  1. package/built/pxt.js +1004 -4
  2. package/built/pxtblockly.js +439 -49
  3. package/built/pxtblocks.d.ts +34 -0
  4. package/built/pxtblocks.js +439 -49
  5. package/built/pxtlib.d.ts +20 -2
  6. package/built/pxtlib.js +127 -3
  7. package/built/pxtsim.d.ts +222 -0
  8. package/built/pxtsim.js +877 -1
  9. package/built/target.js +1 -1
  10. package/built/web/icons.css +49 -10
  11. package/built/web/main.js +1 -1
  12. package/built/web/pxtapp.js +1 -1
  13. package/built/web/pxtasseteditor.js +1 -1
  14. package/built/web/pxtblockly.js +1 -1
  15. package/built/web/pxtblocks.js +1 -1
  16. package/built/web/pxtembed.js +2 -2
  17. package/built/web/pxtlib.js +1 -1
  18. package/built/web/pxtsim.js +1 -1
  19. package/built/web/pxtworker.js +1 -1
  20. package/built/web/react-common-authcode.css +130 -1
  21. package/built/web/react-common-skillmap.css +1 -1
  22. package/built/web/rtlreact-common-skillmap.css +1 -1
  23. package/built/web/rtlsemantic.css +2 -2
  24. package/built/web/semantic.css +2 -2
  25. package/built/web/skillmap/js/main.e30f6be4.chunk.js +1 -0
  26. package/docfiles/footer.html +1 -1
  27. package/docfiles/script.html +1 -1
  28. package/docfiles/thin-footer.html +1 -1
  29. package/localtypings/pxtarget.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/react-common/components/controls/Button.tsx +10 -4
  32. package/react-common/components/controls/DraggableGraph.tsx +242 -0
  33. package/react-common/components/controls/Dropdown.tsx +121 -0
  34. package/react-common/components/controls/FocusList.tsx +17 -8
  35. package/react-common/components/controls/Input.tsx +13 -3
  36. package/react-common/components/controls/RadioButtonGroup.tsx +66 -0
  37. package/react-common/components/util.tsx +23 -0
  38. package/react-common/styles/controls/Button.less +21 -0
  39. package/react-common/styles/controls/DraggableGraph.less +13 -0
  40. package/react-common/styles/controls/Dropdown.less +68 -0
  41. package/react-common/styles/controls/RadioButtonGroup.less +36 -0
  42. package/react-common/styles/react-common-variables.less +38 -0
  43. package/react-common/styles/react-common.less +3 -0
  44. package/theme/pxt.less +1 -0
  45. package/theme/soundeffecteditor.less +239 -0
  46. package/webapp/public/skillmap.html +1 -1
  47. package/built/web/skillmap/js/main.2485091f.chunk.js +0 -1
@@ -0,0 +1,36 @@
1
+ .common-radio-group.common-radio-buttons {
2
+ display: flex;
3
+ flex-direction: row;
4
+
5
+ .common-radio-choice {
6
+ &:extend(.common-button);
7
+ position: relative;
8
+
9
+ padding: 0;
10
+ background: @radioButtonIconBackground;
11
+ color: @radioButtonIconColor;
12
+ border: 1px solid @radioButtonIconBorder;
13
+
14
+ width: 2.5rem;
15
+ height: 2.5rem;
16
+ display: flex;
17
+ align-items: center;
18
+
19
+ i {
20
+ width: 100%;
21
+ margin: 0;
22
+ }
23
+
24
+ input {
25
+ position: absolute;
26
+ appearance: none;
27
+ width: 100%;
28
+ height: 100%;
29
+ }
30
+ }
31
+
32
+ .common-radio-choice.selected {
33
+ background: @radioButtonIconBackgroundChecked;
34
+ color: @radioButtonIconColorChecked;
35
+ }
36
+ }
@@ -35,6 +35,33 @@
35
35
  @buttonFocusOutlineLightBackground: @commonBorderColor solid 1px;
36
36
  @buttonMenuBackgroundHoverColor: rgba(0,0,0,.1);
37
37
  @buttonMenuBackgroundActiveColor: rgba(0,0,0,.15);
38
+ @buttonLinkColor: #3977b4;
39
+
40
+
41
+ /****************************************************
42
+ * Dropdowns *
43
+ ****************************************************/
44
+
45
+
46
+ /****************************************************
47
+ * DraggableGraph *
48
+ ****************************************************/
49
+
50
+ @draggableGraphPathColor: #E63022;
51
+ @draggableGraphPointColor: #E63022;
52
+
53
+
54
+ /****************************************************
55
+ * Dropdowns *
56
+ ****************************************************/
57
+
58
+
59
+ /****************************************************
60
+ * DraggableGraph *
61
+ ****************************************************/
62
+
63
+ @draggableGraphPathColor: #E63022;
64
+ @draggableGraphPointColor: #E63022;
38
65
 
39
66
  /****************************************************
40
67
  * Modals *
@@ -89,10 +116,21 @@
89
116
  /****************************************************
90
117
  * EditorToggle *
91
118
  ****************************************************/
119
+
92
120
  @editorToggleBackgroundColor: rgba(52,73,94,.4);
93
121
  @editorToggleBorderColor: rgba(52,73,94,.2);
94
122
  @editorToggleBorderWidth: 3px;
95
123
 
124
+ /****************************************************
125
+ * RadioButtonGroup *
126
+ ****************************************************/
127
+
128
+ @radioButtonIconBackground: #eaeaea;
129
+ @radioButtonIconBackgroundChecked: #ffffff;
130
+ @radioButtonIconColor: #333333;
131
+ @radioButtonIconColorChecked: #E63022;
132
+ @radioButtonIconBorder: #A6A6A6;
133
+
96
134
  /****************************************************
97
135
  * High Contrast *
98
136
  ****************************************************/
@@ -2,11 +2,14 @@
2
2
  @import "share/share.less";
3
3
  @import "controls/Button.less";
4
4
  @import "controls/Checkbox.less";
5
+ @import "controls/DraggableGraph.less";
6
+ @import "controls/Dropdown.less";
5
7
  @import "controls/EditorToggle.less";
6
8
  @import "controls/Icon.less";
7
9
  @import "controls/Input.less";
8
10
  @import "controls/MenuDropdown.less";
9
11
  @import "controls/Modal.less";
12
+ @import "controls/RadioButtonGroup.less";
10
13
  @import "controls/Spinner.less";
11
14
  @import "controls/Textarea.less";
12
15
  @import "./react-common-variables.less";
package/theme/pxt.less CHANGED
@@ -38,6 +38,7 @@
38
38
  @import 'webusb';
39
39
 
40
40
  @import 'image-editor/imageEditor';
41
+ @import "soundeffecteditor";
41
42
 
42
43
  @import "react-common";
43
44
 
@@ -0,0 +1,239 @@
1
+ /****************************************************
2
+ * Variables *
3
+ ****************************************************/
4
+
5
+ @soundEffectHeaderColor: #E63022;
6
+
7
+ @soundPlayButtonBackground: #333333;
8
+ @soundPlayButtonForeground: #ffffff;
9
+
10
+ @soundPreviewBackgroundColor: #fbe2d6;
11
+ @soundPreviewBaselineColor: #888888;
12
+ @soundPreviewStaticWaveColor: @soundPreviewBaselineColor;
13
+ @soundPreviewAnimatedWaveColor: @soundEffectHeaderColor;
14
+
15
+ @soundGalleryBackgroundColor: #481041;
16
+ @soundGalleryWaveColor: @soundEffectHeaderColor;
17
+
18
+
19
+ /****************************************************
20
+ * Container *
21
+ ****************************************************/
22
+
23
+ .sound-effect-editor-widget {
24
+ box-shadow: 0 0 3px ~"rgb(0 0 0 / 30%)";
25
+ border-radius: 0.25rem;
26
+ overflow-y: scroll;
27
+ background-color: @white;
28
+ }
29
+
30
+ .sound-effect-editor {
31
+ width: 100%;
32
+ height: 100%;
33
+ background-color: @white;
34
+ display: flex;
35
+ flex-direction: column;
36
+
37
+ .link-button {
38
+ margin-left: 2rem;
39
+ }
40
+ }
41
+
42
+ .sound-effect-editor-content {
43
+ flex-grow: 1;
44
+ position: relative;
45
+ overflow: hidden;
46
+ }
47
+
48
+ .sound-controls {
49
+ padding: 0.5rem 2rem;
50
+ }
51
+
52
+ .sound-effect-header {
53
+ display: flex;
54
+ flex-direction: row;
55
+ position: relative;
56
+ height: 3.5rem;
57
+ position: relative;
58
+
59
+ justify-content: center;
60
+ align-items: center;
61
+
62
+ background-color: @soundEffectHeaderColor;
63
+
64
+ & > .common-button {
65
+ position: absolute;
66
+ right: 0;
67
+ top: 0;
68
+ }
69
+ }
70
+
71
+ /****************************************************
72
+ * Graphs *
73
+ ****************************************************/
74
+
75
+ .sound-graph-header {
76
+ display: flex;
77
+ flex-direction: row;
78
+ align-items: center;
79
+ padding-left: 0.5rem;
80
+ padding-right: 0.5rem;
81
+
82
+ & > span {
83
+ flex-grow: 1;
84
+ }
85
+ }
86
+
87
+ .frequency-graph {
88
+ padding-top: 0.5rem;
89
+ border-bottom: 1px solid #dedede;
90
+ }
91
+
92
+ .dropdown-and-label {
93
+ display: flex;
94
+ flex-direction: row;
95
+ margin-right: 0.5rem;
96
+ align-items: center;
97
+ }
98
+
99
+ .sound-graph-container {
100
+ margin-top: 0.5rem;
101
+ border: 1px solid #dedede;
102
+ }
103
+
104
+ .sound-label {
105
+ font-size: 14px;
106
+ font-weight: 400;
107
+ line-height: 2rem;
108
+ margin-right: 0.5rem;
109
+ user-select: none;
110
+ }
111
+
112
+ .sound-label.waveform-name {
113
+ font-weight: 600;
114
+ margin-left: 0.5rem;
115
+ }
116
+
117
+ .waveform-and-duration-controls {
118
+ display: flex;
119
+ flex-direction: row;
120
+ align-items: center;
121
+
122
+ .duration-controls {
123
+ display: flex;
124
+ flex-direction: row;
125
+ flex-grow: 1;
126
+ justify-content: right;
127
+
128
+ input {
129
+ width: 4rem;
130
+ }
131
+ }
132
+ }
133
+
134
+ /****************************************************
135
+ * Preview *
136
+ ****************************************************/
137
+
138
+ .sound-preview {
139
+ height: 8rem;
140
+ padding: 0 2.5rem;
141
+ background: @soundPreviewBackgroundColor;
142
+
143
+ display: flex;
144
+ justify-content: center;
145
+ align-items: center;
146
+
147
+ svg {
148
+ height: 100%;
149
+ }
150
+ }
151
+
152
+ .common-button.sound-effect-play-button {
153
+ width: 3rem;
154
+ height: 3rem;
155
+ overflow: hidden;
156
+ padding: 0;
157
+ border-radius: 2rem;
158
+ background: @soundPlayButtonBackground;
159
+ position: absolute;
160
+ right: 0;
161
+ margin-top: -1.5rem;
162
+
163
+ .fas.fa-play {
164
+ margin: 0 0 0 0.25rem;
165
+ color: @soundPlayButtonForeground;
166
+ }
167
+ }
168
+
169
+ .common-button.sound-effect-play-button:focus::after {
170
+ border-radius: 2rem;
171
+ }
172
+
173
+ .sound-preview-baseline {
174
+ stroke: @soundPreviewBaselineColor;
175
+ }
176
+
177
+ .sound-preview-static-wave {
178
+ stroke: @soundPreviewStaticWaveColor;
179
+ }
180
+
181
+ .sound-preview-animated-wave {
182
+ stroke: @soundPreviewAnimatedWaveColor;
183
+ }
184
+
185
+
186
+ /****************************************************
187
+ * Gallery *
188
+ ****************************************************/
189
+
190
+ .sound-gallery {
191
+ position: absolute;
192
+ height: 100%;
193
+ top: -100%;
194
+ width: 100%;
195
+ transition: top 0.25s ease;
196
+ background: @soundGalleryBackgroundColor;
197
+ padding: 1rem;
198
+ overflow-y: auto;
199
+ }
200
+
201
+ .sound-gallery.visible {
202
+ top: 0px;
203
+ }
204
+
205
+ .sound-gallery-scroller {
206
+ min-height: 100%;
207
+ display: flex;
208
+ flex-direction: column;
209
+ }
210
+
211
+ .sound-gallery-scroller > .common-button {
212
+ margin-bottom: 0.5rem;
213
+ padding: 0.6rem 2rem 0.6rem;
214
+ }
215
+
216
+ .sound-gallery-item-label {
217
+ display: flex;
218
+ flex-direction: row;
219
+ align-items: center;
220
+
221
+ .common-button.sound-effect-play-button {
222
+ position: relative;
223
+ margin-top: 0;
224
+ z-index: 2;
225
+ }
226
+
227
+ .sound-effect-name {
228
+ font-size: 22px;
229
+ flex-grow: 1;
230
+ }
231
+
232
+ svg {
233
+ width: 10rem;
234
+ }
235
+ }
236
+
237
+ .sound-gallery-preview-wave {
238
+ stroke: @soundGalleryWaveColor;
239
+ }
@@ -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.3e47a285.chunk.js"></script><script src="/blb/skillmap/js/main.2485091f.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.3e47a285.chunk.js"></script><script src="/blb/skillmap/js/main.e30f6be4.chunk.js"></script></body>
32
32
  </html>