@robotical/martyblocksjr 4.1.2 → 4.2.1

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 (77) hide show
  1. package/.firebase/hosting.ZWRpdGlvbnMvZnJlZS9zcmM.cache +599 -534
  2. package/editions/free/src/app.bundle.js +1 -1
  3. package/editions/free/src/assets/blockicons/microbitbuttona.svg +33 -0
  4. package/editions/free/src/assets/blockicons/microbitbuttonab.svg +33 -0
  5. package/editions/free/src/assets/blockicons/microbitbuttonb.svg +33 -0
  6. package/editions/free/src/assets/blockicons/microbitdisplayclear.svg +29 -0
  7. package/editions/free/src/assets/blockicons/microbitdisplayhappy.svg +36 -0
  8. package/editions/free/src/assets/blockicons/microbitdisplayheart.svg +42 -0
  9. package/editions/free/src/assets/blockicons/microbitdisplaytext.svg +29 -0
  10. package/editions/free/src/assets/blockicons/microbitgesturejumped.svg +40 -0
  11. package/editions/free/src/assets/blockicons/microbitgesturemoved.svg +41 -0
  12. package/editions/free/src/assets/blockicons/microbitgestureshaken.svg +45 -0
  13. package/editions/free/src/assets/blockicons/microbittiltany.svg +45 -0
  14. package/editions/free/src/assets/blockicons/microbittiltbackward.svg +39 -0
  15. package/editions/free/src/assets/blockicons/microbittiltforward.svg +39 -0
  16. package/editions/free/src/assets/blockicons/microbittiltleft.svg +39 -0
  17. package/editions/free/src/assets/blockicons/microbittiltright.svg +39 -0
  18. package/editions/free/src/assets/categories/MicroBitLooksOff.svg +17 -0
  19. package/editions/free/src/assets/categories/MicroBitLooksOn.svg +17 -0
  20. package/editions/free/src/assets/categories/MicroBitStartOff.svg +17 -0
  21. package/editions/free/src/assets/categories/MicroBitStartOn.svg +17 -0
  22. package/editions/free/src/assets/ui/viewOnCompact.png +0 -0
  23. package/editions/free/src/assets/ui/viewOnTargetCompact.png +0 -0
  24. package/editions/free/src/css/editor.css +334 -1
  25. package/editions/free/src/css/editorleftpanel.css +86 -26
  26. package/editions/free/src/css/editorstage.css +62 -0
  27. package/editions/free/src/css/paintlook.css +23 -0
  28. package/editions/free/src/localizations/bg.json +10 -1
  29. package/editions/free/src/localizations/ca.json +10 -1
  30. package/editions/free/src/localizations/cs.json +10 -1
  31. package/editions/free/src/localizations/cy.json +10 -1
  32. package/editions/free/src/localizations/da.json +10 -1
  33. package/editions/free/src/localizations/de.json +10 -1
  34. package/editions/free/src/localizations/el.json +10 -1
  35. package/editions/free/src/localizations/en.json +10 -1
  36. package/editions/free/src/localizations/es.json +10 -1
  37. package/editions/free/src/localizations/fi.json +10 -1
  38. package/editions/free/src/localizations/fr.json +10 -1
  39. package/editions/free/src/localizations/it.json +10 -1
  40. package/editions/free/src/localizations/ja.json +10 -1
  41. package/editions/free/src/localizations/ko.json +10 -1
  42. package/editions/free/src/localizations/nl.json +10 -1
  43. package/editions/free/src/localizations/no.json +10 -1
  44. package/editions/free/src/localizations/pl.json +10 -1
  45. package/editions/free/src/localizations/pt-br.json +10 -1
  46. package/editions/free/src/localizations/pt.json +10 -1
  47. package/editions/free/src/localizations/sv.json +10 -1
  48. package/editions/free/src/localizations/th.json +10 -1
  49. package/editions/free/src/localizations/tr.json +10 -1
  50. package/editions/free/src/localizations/uk.json +10 -1
  51. package/editions/free/src/localizations/zh-cn.json +10 -1
  52. package/editions/free/src/localizations/zh-tw.json +10 -1
  53. package/editions/free/src/media.json +15 -0
  54. package/editions/free/src/pnglibrary/BeeSprite1.png +0 -0
  55. package/editions/free/src/svglibrary/BeeSprite1.svg +4 -0
  56. package/editions/free/src/svglibrary/BeeSprite2.svg +4 -0
  57. package/editions/free/src/svglibrary/BeeSprite3.svg +4 -0
  58. package/package.json +1 -1
  59. package/tests/e2e/accessibility.e2e.test.js +18 -2
  60. package/tests/e2e/animated-sprite-paint-disabled.e2e.test.js +270 -0
  61. package/tests/e2e/background-paint-active-selection.e2e.test.js +162 -0
  62. package/tests/e2e/blocks-jr-hidden-blocks.e2e.test.js +262 -0
  63. package/tests/e2e/chromium-79-smoke.test.js +235 -0
  64. package/tests/e2e/delete-last-sprite-mode.e2e.test.js +162 -0
  65. package/tests/e2e/duplicate-page.e2e.test.js +414 -0
  66. package/tests/e2e/marty-connection-ui.e2e.test.js +56 -0
  67. package/tests/e2e/marty-script-activation-paths.e2e.test.js +522 -0
  68. package/tests/e2e/microbit-blocks.test.js +162 -0
  69. package/tests/e2e/microbit-extension-project-reload.e2e.test.js +309 -0
  70. package/tests/e2e/microbit-web-bluetooth.test.js +131 -0
  71. package/tests/e2e/page-background-loading.test.js +152 -0
  72. package/tests/e2e/paint-editor-cancel.e2e.test.js +274 -0
  73. package/tests/e2e/project-load-progress-loop.e2e.test.js +310 -0
  74. package/tests/e2e/project-save-stall.e2e.test.js +230 -0
  75. package/tests/e2e/sprite-watermark-grayscale.e2e.test.js +269 -0
  76. package/tests/e2e/top-toolbar-tooltips.e2e.test.js +152 -0
  77. package/vitest.config.js +2 -3
@@ -4,13 +4,13 @@
4
4
  position: absolute;
5
5
  margin: 0px;
6
6
  padding: 0px;
7
- top: ${css_vh(0.13)};
7
+ top: ${css_vh(15.40)};
8
8
  left: ${css_vh(1.69)};
9
9
  background: url('../assets/ui/fliplogo.svg');
10
10
  background-size: cover;
11
11
  background-position: right;
12
- width: ${css_vh(8.20)};
13
- height: ${css_vh(8.20)};
12
+ width: ${css_vh(5.60)};
13
+ height: ${css_vh(5.60)};
14
14
  }
15
15
 
16
16
  /* Styles for the connection buttons area */
@@ -18,7 +18,7 @@
18
18
  box-sizing: border-box;
19
19
  position: absolute;
20
20
  top: ${css_vh(2)};
21
- left: ${css_vh(10.94)};
21
+ left: ${css_vh(1.69)};
22
22
  font-family: Lato Regular;
23
23
 
24
24
  display: flex;
@@ -29,18 +29,24 @@
29
29
  border-radius: 10px;
30
30
  border: 3px solid #F4AD46;
31
31
 
32
- width: ${css_vh(25)};
32
+ width: ${css_vh(22.8)};
33
33
  height: ${css_vh(12)};
34
34
 
35
- padding: 8px 5px;
36
- column-gap: 8px;
35
+ padding: 8px 4px;
36
+ column-gap: 5px;
37
+ }
38
+
39
+ .connectionButtonsArea.extensionEnabled {
40
+ width: ${css_vh(34)};
37
41
  }
38
42
 
39
43
  /* Styles for each connect button */
40
44
  .connectButton {
45
+ flex: 1 1 0;
46
+ min-width: 0;
41
47
  align-self: center;
42
48
  justify-self: center;
43
- width: 100%;
49
+ width: auto;
44
50
  height: 100%;
45
51
  background: white;
46
52
  border-radius: 10px;
@@ -53,6 +59,51 @@
53
59
  padding-top: 2px;
54
60
  }
55
61
 
62
+ .extensionAddButton {
63
+ position: absolute;
64
+ right: -${css_vh(1.45)};
65
+ bottom: -${css_vh(1.45)};
66
+ z-index: 5;
67
+ width: ${css_vh(5)};
68
+ height: ${css_vh(5)};
69
+ background: transparent;
70
+ border: 0;
71
+ display: flex;
72
+ justify-content: center;
73
+ align-items: center;
74
+ cursor: pointer;
75
+ padding: 0;
76
+ -webkit-tap-highlight-color: transparent;
77
+ }
78
+
79
+ .extensionAddIcon {
80
+ display: flex;
81
+ justify-content: center;
82
+ align-items: center;
83
+ width: ${css_vh(3.6)};
84
+ height: ${css_vh(3.6)};
85
+ border-radius: 50%;
86
+ background: #5D9CC8;
87
+ border: ${css_vh(0.32)} solid #fff;
88
+ box-shadow: 0 ${css_vh(0.26)} ${css_vh(0.52)} rgba(0, 0, 0, 0.28);
89
+ color: white;
90
+ font-family: 'Lato Regular';
91
+ font-size: ${css_vh(3.35)};
92
+ font-weight: bold;
93
+ line-height: 1;
94
+ text-shadow: 0 1px #244a64;
95
+ }
96
+
97
+ .extensionAddButton:focus-visible .extensionAddIcon {
98
+ outline: 3px solid #133C46;
99
+ outline-offset: 2px;
100
+ }
101
+
102
+ .extensionAddButton:active .extensionAddIcon {
103
+ background: #3F7EA9;
104
+ transform: translateY(${css_vh(0.13)});
105
+ }
106
+
56
107
  .connectButtonConnected {
57
108
  /* background: #4bfaa3; */
58
109
  display: grid;
@@ -125,6 +176,10 @@
125
176
  column-gap: ${css_vh(1)};
126
177
  }
127
178
 
179
+ .connectButtonConnected .batteryAndSignalContainer {
180
+ margin-bottom: ${css_vh(0.35)};
181
+ }
182
+
128
183
  .batteryIndicatorContainer {
129
184
  display: grid;
130
185
  width: 50%;
@@ -151,6 +206,11 @@
151
206
  width: ${css_vh(4.2)};
152
207
  }
153
208
 
209
+ #cogConnectionButton .connectIcon,
210
+ #martyConnectionButton .connectIcon {
211
+ margin-bottom: ${css_vh(0.55)};
212
+ }
213
+
154
214
  /* .connectText media query for smaller screens */
155
215
  @media (max-width: 1140px) {
156
216
  .connectText {
@@ -210,7 +270,8 @@
210
270
  display: inline-block;
211
271
  margin: 0px;
212
272
  padding: 0px;
213
- top: ${css_vh(15)};
273
+ top: ${css_vh(14.75)};
274
+ left: ${css_vh(7.55)};
214
275
  width: ${css_vh(33.85)};
215
276
  overflow-x: hidden;
216
277
  }
@@ -307,7 +368,7 @@
307
368
  position: relative;
308
369
  display: inline-block;
309
370
  word-spacing: -1;
310
- width: ${css_vh(29.95)};
371
+ width: ${css_vh(23.18)};
311
372
  height: ${css_vh(10.16)};
312
373
  margin: 0px;
313
374
  margin-bottom: ${css_vh(-0.39)};
@@ -330,24 +391,22 @@
330
391
 
331
392
  .spritethumb.off {
332
393
  background: url('../assets/ui/viewOff.png') no-repeat left top;
333
- background-size: ${css_vh(23.18)};
394
+ background-size: 100% 100%;
334
395
  }
335
396
 
336
397
  .spritethumb.off.target {
337
398
  background: url('../assets/ui/viewOffTarget.png') no-repeat left top;
338
- background-size: ${css_vh(23.18)};
399
+ background-size: 100% 100%;
339
400
  }
340
401
 
341
402
  .spritethumb.on.target {
342
- background: url('../assets/ui/viewOnTarget.png') no-repeat left top;
343
- background-size: 100%;
344
- width: ${css_vh(29.95)};
403
+ background: url('../assets/ui/viewOnTargetCompact.png') no-repeat left top;
404
+ background-size: 100% 100%;
345
405
  }
346
406
 
347
407
  .spritethumb.on {
348
- background: url('../assets/ui/viewOn.png') no-repeat left top;
349
- background-size: 100%;
350
- width: ${css_vh(29.95)};
408
+ background: url('../assets/ui/viewOnCompact.png') no-repeat left top;
409
+ background-size: 100% 100%;
351
410
  }
352
411
 
353
412
  .spritethumb.noneditable {
@@ -419,8 +478,8 @@
419
478
  .spritethumb.on .sname{
420
479
  color: #F9A737;
421
480
  top: ${css_vh(3.91)};
422
- left: ${css_vh(9.24)};
423
- width: ${css_vh(11.97)};
481
+ left: ${css_vh(9.11)};
482
+ width: ${css_vh(8.33)};
424
483
  }
425
484
  .spritethumb.noneditable .sname{
426
485
  color: #999;
@@ -430,14 +489,14 @@
430
489
  }
431
490
 
432
491
  .spritethumb .brush {
433
- display: absolute;
492
+ display: block;
434
493
  position: absolute;
435
494
  background: url('../assets/paint/paintbrush.svg');
436
- background-size: ${css_vh(7.03)} ${css_vh(7.03)};
437
- width: ${css_vh(7.03)};
438
- height: ${css_vh(7.03)};
439
- top: ${css_vh(1.30)};
440
- left: ${css_vh(21.75)};
495
+ background-size: 100% 100%;
496
+ width: ${css_vh(5.73)};
497
+ height: ${css_vh(5.73)};
498
+ top: ${css_vh(2.21)};
499
+ left: ${css_vh(17.45)};
441
500
  margin: 0px;
442
501
  padding: 0px;
443
502
  }
@@ -446,3 +505,4 @@
446
505
  .spritethumb.off .brush{ display: none;}
447
506
  .spritethumb.noneditable .brush{ display: none;}
448
507
  .spritethumb.martynoneditable .brush{ display: none;}
508
+ .spritethumb.paintnoneditable .brush{ display: none;}
@@ -1,5 +1,67 @@
1
1
  /* toolbar */
2
2
 
3
+ button[data-tooltip]::before,
4
+ button[data-tooltip]::after {
5
+ position: absolute;
6
+ left: 50%;
7
+ z-index: 13000;
8
+ opacity: 0;
9
+ visibility: hidden;
10
+ pointer-events: none;
11
+ transition: opacity 120ms ease;
12
+ }
13
+
14
+ button[data-tooltip]::before {
15
+ content: '';
16
+ top: calc(100% + 6px);
17
+ width: 10px;
18
+ height: 10px;
19
+ border-top: 1px solid #8E8E8E;
20
+ border-left: 1px solid #8E8E8E;
21
+ background: #FFF0B7;
22
+ transform: translateX(-50%) rotate(45deg);
23
+ }
24
+
25
+ button[data-tooltip]::after {
26
+ content: attr(data-tooltip);
27
+ box-sizing: border-box;
28
+ top: calc(100% + 11px);
29
+ width: max-content;
30
+ max-width: 240px;
31
+ padding: 7px 10px;
32
+ border: 1px solid #8E8E8E;
33
+ border-radius: 4px;
34
+ background: linear-gradient(#FFF0B7, #FFC842);
35
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
36
+ color: #3D2800;
37
+ font-family: 'Lato Regular', sans-serif;
38
+ font-size: 14px;
39
+ font-weight: normal;
40
+ line-height: 18px;
41
+ text-align: center;
42
+ white-space: normal;
43
+ transform: translateX(-50%);
44
+ }
45
+
46
+ button[data-tooltip]:hover::before,
47
+ button[data-tooltip]:hover::after,
48
+ button[data-tooltip]:focus::before,
49
+ button[data-tooltip]:focus::after {
50
+ opacity: 1;
51
+ visibility: visible;
52
+ }
53
+
54
+ #full.presentationmode[data-tooltip]::after {
55
+ left: 0;
56
+ transform: none;
57
+ }
58
+
59
+ #go.presentationmode[data-tooltip]::after {
60
+ right: 0;
61
+ left: auto;
62
+ transform: none;
63
+ }
64
+
3
65
  .fullscreen#full {
4
66
  position: absolute;
5
67
  margin: 0px;
@@ -89,6 +89,29 @@ spriteform.off {visibility: hidden; };
89
89
  background-size: 100%;
90
90
  }
91
91
 
92
+ .paintcancel {
93
+ float: right;
94
+ display: block;
95
+ margin: ${css_vh(0.65)} ${css_vh(0.65)} ${css_vh(0.00)};
96
+ padding: ${css_vh(0.00)};
97
+ width: ${css_vh(8.46)};
98
+ height: ${css_vh(8.46)};
99
+ background: url('../assets/paint/cancel.svg');
100
+ background-size: 100%;
101
+ -webkit-user-select: none;
102
+ z-index: 1000;
103
+ }
104
+
105
+ .paintcancel:active {
106
+ background: url('../assets/paint/cancelPressed.svg');
107
+ background-size: 100%;
108
+ }
109
+
110
+ .paintcancel:focus-visible {
111
+ outline: 3px solid #133C46;
112
+ outline-offset: 2px;
113
+ }
114
+
92
115
  /* camera */
93
116
 
94
117
  .phototopbar {
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }
@@ -1165,6 +1165,15 @@
1165
1165
  "A11Y_ADD_PAGE": "Add page",
1166
1166
  "A11Y_COPY_TO_PAGE": "Copy to page {PAGE}",
1167
1167
  "A11Y_DELETE_PAGE": "Delete page {PAGE}",
1168
+ "A11Y_DUPLICATE_PAGE": "Duplicate page {PAGE}",
1168
1169
  "A11Y_MOVE_PAGE_EARLIER": "Move page {PAGE} earlier",
1169
- "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later"
1170
+ "A11Y_MOVE_PAGE_LATER": "Move page {PAGE} later",
1171
+ "BLOCK_DESC_MICROBIT_ON_BUTTON": "Starts when a micro:bit button is pressed.",
1172
+ "BLOCK_DESC_MICROBIT_ON_GESTURE": "Starts when the micro:bit moves, shakes, or jumps.",
1173
+ "BLOCK_DESC_MICROBIT_ON_TILT": "Starts when the micro:bit is tilted.",
1174
+ "BLOCK_DESC_MICROBIT_DISPLAY_HEART": "Shows a heart on the micro:bit display.",
1175
+ "BLOCK_DESC_MICROBIT_DISPLAY_HAPPY": "Shows a happy face on the micro:bit display.",
1176
+ "BLOCK_DESC_MICROBIT_DISPLAY_TEXT": "Shows text on the micro:bit display.",
1177
+ "BLOCK_DESC_MICROBIT_DISPLAY_CUSTOM": "Shows a custom icon on the micro:bit display.",
1178
+ "BLOCK_DESC_MICROBIT_CLEAR_DISPLAY": "Clears the micro:bit display."
1170
1179
  }