@almadar/std 3.2.1 → 3.2.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 (295) hide show
  1. package/behaviors/exports/atoms/std-async.orb +41 -24
  2. package/behaviors/exports/atoms/std-browse.orb +44 -44
  3. package/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  4. package/behaviors/exports/atoms/std-calendar.orb +770 -0
  5. package/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  6. package/behaviors/exports/atoms/std-collision.orb +278 -206
  7. package/behaviors/exports/atoms/std-combat-log.orb +6 -1
  8. package/behaviors/exports/atoms/std-combat.orb +6 -1
  9. package/behaviors/exports/atoms/std-confirmation.orb +212 -7
  10. package/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  11. package/behaviors/exports/atoms/std-display.orb +1186 -376
  12. package/behaviors/exports/atoms/std-drawer.orb +307 -101
  13. package/behaviors/exports/atoms/std-filter.orb +211 -18
  14. package/behaviors/exports/atoms/std-flip-card.orb +596 -0
  15. package/behaviors/exports/atoms/std-gallery.orb +382 -0
  16. package/behaviors/exports/atoms/std-game-audio.orb +6 -1
  17. package/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  18. package/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  19. package/behaviors/exports/atoms/std-game-hud.orb +6 -1
  20. package/behaviors/exports/atoms/std-game-menu.orb +6 -1
  21. package/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  22. package/behaviors/exports/atoms/std-gameflow.orb +100 -5
  23. package/behaviors/exports/atoms/std-input.orb +142 -137
  24. package/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  25. package/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  26. package/behaviors/exports/atoms/std-loading.orb +149 -170
  27. package/behaviors/exports/atoms/std-modal.orb +159 -94
  28. package/behaviors/exports/atoms/std-movement.orb +401 -31
  29. package/behaviors/exports/atoms/std-notification.orb +117 -95
  30. package/behaviors/exports/atoms/std-overworld.orb +44 -16
  31. package/behaviors/exports/atoms/std-pagination.orb +44 -115
  32. package/behaviors/exports/atoms/std-physics2d.orb +6 -1
  33. package/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  34. package/behaviors/exports/atoms/std-quest.orb +309 -34
  35. package/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  36. package/behaviors/exports/atoms/std-rating.orb +328 -0
  37. package/behaviors/exports/atoms/std-score-board.orb +6 -1
  38. package/behaviors/exports/atoms/std-score.orb +252 -11
  39. package/behaviors/exports/atoms/std-search.orb +62 -47
  40. package/behaviors/exports/atoms/std-selection.orb +180 -149
  41. package/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  42. package/behaviors/exports/atoms/std-sort.orb +192 -60
  43. package/behaviors/exports/atoms/std-sprite.orb +6 -1
  44. package/behaviors/exports/atoms/std-tabs.orb +25 -15
  45. package/behaviors/exports/atoms/std-text-effects.orb +658 -0
  46. package/behaviors/exports/atoms/std-theme.orb +573 -0
  47. package/behaviors/exports/atoms/std-timer.orb +483 -91
  48. package/behaviors/exports/atoms/std-undo.orb +211 -81
  49. package/behaviors/exports/atoms/std-upload.orb +535 -0
  50. package/behaviors/exports/atoms/std-wizard.orb +677 -240
  51. package/behaviors/exports/molecules/std-builder-game.orb +49 -4
  52. package/behaviors/exports/molecules/std-cart.orb +325 -102
  53. package/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  54. package/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  55. package/behaviors/exports/molecules/std-detail.orb +52 -48
  56. package/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  57. package/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  58. package/behaviors/exports/molecules/std-geospatial.orb +70 -51
  59. package/behaviors/exports/molecules/std-inventory.orb +92 -53
  60. package/behaviors/exports/molecules/std-list.orb +416 -52
  61. package/behaviors/exports/molecules/std-messaging.orb +41 -49
  62. package/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  63. package/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  64. package/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  65. package/behaviors/exports/molecules/std-quiz.orb +1045 -0
  66. package/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  67. package/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  68. package/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  69. package/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  70. package/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  71. package/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  72. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  73. package/behaviors/exports/organisms/std-cms.orb +1150 -277
  74. package/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  75. package/behaviors/exports/organisms/std-crm.orb +2357 -821
  76. package/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  77. package/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  78. package/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  79. package/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  80. package/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  81. package/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  82. package/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  83. package/behaviors/exports/organisms/std-lms.orb +2548 -1192
  84. package/behaviors/exports/organisms/std-logic-training.orb +220 -66
  85. package/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  86. package/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  87. package/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  88. package/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  89. package/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  90. package/behaviors/exports/organisms/std-social-feed.orb +184 -168
  91. package/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  92. package/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  93. package/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  94. package/behaviors/exports/validation-report.json +3 -750
  95. package/behaviors/exports/verify-results.json +13 -0
  96. package/dist/behaviors/exports/atoms/std-async.orb +41 -24
  97. package/dist/behaviors/exports/atoms/std-browse.orb +44 -44
  98. package/dist/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  99. package/dist/behaviors/exports/atoms/std-calendar.orb +770 -0
  100. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  101. package/dist/behaviors/exports/atoms/std-collision.orb +278 -206
  102. package/dist/behaviors/exports/atoms/std-combat-log.orb +6 -1
  103. package/dist/behaviors/exports/atoms/std-combat.orb +6 -1
  104. package/dist/behaviors/exports/atoms/std-confirmation.orb +212 -7
  105. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  106. package/dist/behaviors/exports/atoms/std-display.orb +1186 -376
  107. package/dist/behaviors/exports/atoms/std-drawer.orb +307 -101
  108. package/dist/behaviors/exports/atoms/std-filter.orb +211 -18
  109. package/dist/behaviors/exports/atoms/std-flip-card.orb +596 -0
  110. package/dist/behaviors/exports/atoms/std-gallery.orb +382 -0
  111. package/dist/behaviors/exports/atoms/std-game-audio.orb +6 -1
  112. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  113. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  114. package/dist/behaviors/exports/atoms/std-game-hud.orb +6 -1
  115. package/dist/behaviors/exports/atoms/std-game-menu.orb +6 -1
  116. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  117. package/dist/behaviors/exports/atoms/std-gameflow.orb +100 -5
  118. package/dist/behaviors/exports/atoms/std-input.orb +142 -137
  119. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  120. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  121. package/dist/behaviors/exports/atoms/std-loading.orb +149 -170
  122. package/dist/behaviors/exports/atoms/std-modal.orb +159 -94
  123. package/dist/behaviors/exports/atoms/std-movement.orb +401 -31
  124. package/dist/behaviors/exports/atoms/std-notification.orb +117 -95
  125. package/dist/behaviors/exports/atoms/std-overworld.orb +44 -16
  126. package/dist/behaviors/exports/atoms/std-pagination.orb +44 -115
  127. package/dist/behaviors/exports/atoms/std-physics2d.orb +6 -1
  128. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  129. package/dist/behaviors/exports/atoms/std-quest.orb +309 -34
  130. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  131. package/dist/behaviors/exports/atoms/std-rating.orb +328 -0
  132. package/dist/behaviors/exports/atoms/std-score-board.orb +6 -1
  133. package/dist/behaviors/exports/atoms/std-score.orb +252 -11
  134. package/dist/behaviors/exports/atoms/std-search.orb +62 -47
  135. package/dist/behaviors/exports/atoms/std-selection.orb +180 -149
  136. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  137. package/dist/behaviors/exports/atoms/std-sort.orb +192 -60
  138. package/dist/behaviors/exports/atoms/std-sprite.orb +6 -1
  139. package/dist/behaviors/exports/atoms/std-tabs.orb +25 -15
  140. package/dist/behaviors/exports/atoms/std-text-effects.orb +658 -0
  141. package/dist/behaviors/exports/atoms/std-theme.orb +573 -0
  142. package/dist/behaviors/exports/atoms/std-timer.orb +483 -91
  143. package/dist/behaviors/exports/atoms/std-undo.orb +211 -81
  144. package/dist/behaviors/exports/atoms/std-upload.orb +535 -0
  145. package/dist/behaviors/exports/atoms/std-wizard.orb +677 -240
  146. package/dist/behaviors/exports/molecules/std-builder-game.orb +49 -4
  147. package/dist/behaviors/exports/molecules/std-cart.orb +325 -102
  148. package/dist/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  149. package/dist/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  150. package/dist/behaviors/exports/molecules/std-detail.orb +52 -48
  151. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  152. package/dist/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  153. package/dist/behaviors/exports/molecules/std-geospatial.orb +70 -51
  154. package/dist/behaviors/exports/molecules/std-inventory.orb +92 -53
  155. package/dist/behaviors/exports/molecules/std-list.orb +416 -52
  156. package/dist/behaviors/exports/molecules/std-messaging.orb +41 -49
  157. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  158. package/dist/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  159. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  160. package/dist/behaviors/exports/molecules/std-quiz.orb +1045 -0
  161. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  162. package/dist/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  163. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  164. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  165. package/dist/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  166. package/dist/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  167. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  168. package/dist/behaviors/exports/organisms/std-cms.orb +1150 -277
  169. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  170. package/dist/behaviors/exports/organisms/std-crm.orb +2357 -821
  171. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  172. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  173. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  174. package/dist/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  175. package/dist/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  176. package/dist/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  177. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  178. package/dist/behaviors/exports/organisms/std-lms.orb +2548 -1192
  179. package/dist/behaviors/exports/organisms/std-logic-training.orb +220 -66
  180. package/dist/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  181. package/dist/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  182. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  183. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  184. package/dist/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  185. package/dist/behaviors/exports/organisms/std-social-feed.orb +184 -168
  186. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  187. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  188. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  189. package/dist/behaviors/exports/validation-report.json +3 -750
  190. package/dist/behaviors/exports/verify-results.json +13 -0
  191. package/dist/behaviors/functions/index.d.ts +270 -1
  192. package/dist/behaviors/functions/index.js +3811 -1333
  193. package/dist/behaviors/functions/index.js.map +1 -1
  194. package/dist/behaviors/index.d.ts +1 -1
  195. package/dist/behaviors/index.js +3811 -1333
  196. package/dist/behaviors/index.js.map +1 -1
  197. package/dist/exports/atoms/std-async.orb +41 -24
  198. package/dist/exports/atoms/std-browse.orb +44 -44
  199. package/dist/exports/atoms/std-cache-aside.orb +256 -42
  200. package/dist/exports/atoms/std-calendar.orb +770 -0
  201. package/dist/exports/atoms/std-circuit-breaker.orb +577 -97
  202. package/dist/exports/atoms/std-collision.orb +278 -206
  203. package/dist/exports/atoms/std-combat-log.orb +6 -1
  204. package/dist/exports/atoms/std-combat.orb +6 -1
  205. package/dist/exports/atoms/std-confirmation.orb +212 -7
  206. package/dist/exports/atoms/std-dialogue-box.orb +6 -1
  207. package/dist/exports/atoms/std-display.orb +1186 -376
  208. package/dist/exports/atoms/std-drawer.orb +307 -101
  209. package/dist/exports/atoms/std-filter.orb +211 -18
  210. package/dist/exports/atoms/std-flip-card.orb +596 -0
  211. package/dist/exports/atoms/std-gallery.orb +382 -0
  212. package/dist/exports/atoms/std-game-audio.orb +6 -1
  213. package/dist/exports/atoms/std-game-canvas2d.orb +6 -1
  214. package/dist/exports/atoms/std-game-canvas3d.orb +6 -1
  215. package/dist/exports/atoms/std-game-hud.orb +6 -1
  216. package/dist/exports/atoms/std-game-menu.orb +6 -1
  217. package/dist/exports/atoms/std-game-over-screen.orb +6 -1
  218. package/dist/exports/atoms/std-gameflow.orb +100 -5
  219. package/dist/exports/atoms/std-input.orb +142 -137
  220. package/dist/exports/atoms/std-inventory-panel.orb +6 -1
  221. package/dist/exports/atoms/std-isometric-canvas.orb +6 -1
  222. package/dist/exports/atoms/std-loading.orb +149 -170
  223. package/dist/exports/atoms/std-modal.orb +159 -94
  224. package/dist/exports/atoms/std-movement.orb +401 -31
  225. package/dist/exports/atoms/std-notification.orb +117 -95
  226. package/dist/exports/atoms/std-overworld.orb +44 -16
  227. package/dist/exports/atoms/std-pagination.orb +44 -115
  228. package/dist/exports/atoms/std-physics2d.orb +6 -1
  229. package/dist/exports/atoms/std-platformer-canvas.orb +6 -1
  230. package/dist/exports/atoms/std-quest.orb +309 -34
  231. package/dist/exports/atoms/std-rate-limiter.orb +410 -157
  232. package/dist/exports/atoms/std-rating.orb +328 -0
  233. package/dist/exports/atoms/std-score-board.orb +6 -1
  234. package/dist/exports/atoms/std-score.orb +252 -11
  235. package/dist/exports/atoms/std-search.orb +62 -47
  236. package/dist/exports/atoms/std-selection.orb +180 -149
  237. package/dist/exports/atoms/std-simulation-canvas.orb +6 -1
  238. package/dist/exports/atoms/std-sort.orb +192 -60
  239. package/dist/exports/atoms/std-sprite.orb +6 -1
  240. package/dist/exports/atoms/std-tabs.orb +25 -15
  241. package/dist/exports/atoms/std-text-effects.orb +658 -0
  242. package/dist/exports/atoms/std-theme.orb +573 -0
  243. package/dist/exports/atoms/std-timer.orb +483 -91
  244. package/dist/exports/atoms/std-undo.orb +211 -81
  245. package/dist/exports/atoms/std-upload.orb +535 -0
  246. package/dist/exports/atoms/std-wizard.orb +677 -240
  247. package/dist/exports/molecules/std-builder-game.orb +49 -4
  248. package/dist/exports/molecules/std-cart.orb +325 -102
  249. package/dist/exports/molecules/std-classifier-game.orb +49 -4
  250. package/dist/exports/molecules/std-debugger-game.orb +49 -4
  251. package/dist/exports/molecules/std-detail.orb +52 -48
  252. package/dist/exports/molecules/std-event-handler-game.orb +49 -4
  253. package/dist/exports/molecules/std-form-advanced.orb +654 -0
  254. package/dist/exports/molecules/std-geospatial.orb +70 -51
  255. package/dist/exports/molecules/std-inventory.orb +92 -53
  256. package/dist/exports/molecules/std-list.orb +416 -52
  257. package/dist/exports/molecules/std-messaging.orb +41 -49
  258. package/dist/exports/molecules/std-negotiator-game.orb +49 -4
  259. package/dist/exports/molecules/std-platformer-game.orb +58 -3
  260. package/dist/exports/molecules/std-puzzle-game.orb +58 -7
  261. package/dist/exports/molecules/std-quiz.orb +1045 -0
  262. package/dist/exports/molecules/std-sequencer-game.orb +49 -4
  263. package/dist/exports/molecules/std-simulator-game.orb +49 -4
  264. package/dist/exports/molecules/std-turn-based-battle.orb +66 -1
  265. package/dist/exports/organisms/std-api-gateway.orb +2615 -867
  266. package/dist/exports/organisms/std-arcade-game.orb +399 -197
  267. package/dist/exports/organisms/std-booking-system.orb +3154 -1305
  268. package/dist/exports/organisms/std-cicd-pipeline.orb +2298 -779
  269. package/dist/exports/organisms/std-cms.orb +1150 -277
  270. package/dist/exports/organisms/std-coding-academy.orb +1222 -533
  271. package/dist/exports/organisms/std-crm.orb +2357 -821
  272. package/dist/exports/organisms/std-devops-dashboard.orb +4230 -1281
  273. package/dist/exports/organisms/std-ecommerce.orb +2660 -1098
  274. package/dist/exports/organisms/std-finance-tracker.orb +1749 -737
  275. package/dist/exports/organisms/std-healthcare.orb +3593 -1478
  276. package/dist/exports/organisms/std-helpdesk.orb +1870 -738
  277. package/dist/exports/organisms/std-hr-portal.orb +3290 -1385
  278. package/dist/exports/organisms/std-iot-dashboard.orb +2704 -788
  279. package/dist/exports/organisms/std-lms.orb +2548 -1192
  280. package/dist/exports/organisms/std-logic-training.orb +220 -66
  281. package/dist/exports/organisms/std-platformer-app.orb +373 -194
  282. package/dist/exports/organisms/std-project-manager.orb +2347 -806
  283. package/dist/exports/organisms/std-puzzle-app.orb +240 -95
  284. package/dist/exports/organisms/std-realtime-chat.orb +2020 -660
  285. package/dist/exports/organisms/std-rpg-game.orb +1303 -740
  286. package/dist/exports/organisms/std-social-feed.orb +184 -168
  287. package/dist/exports/organisms/std-stem-lab.orb +1223 -512
  288. package/dist/exports/organisms/std-strategy-game.orb +1412 -731
  289. package/dist/exports/organisms/std-trading-dashboard.orb +1869 -695
  290. package/dist/exports/validation-report.json +3 -750
  291. package/dist/exports/verify-results.json +13 -0
  292. package/dist/index.d.ts +1 -1
  293. package/dist/index.js +3808 -1330
  294. package/dist/index.js.map +1 -1
  295. package/package.json +1 -1
@@ -31,6 +31,21 @@
31
31
  "name": "completed",
32
32
  "type": "boolean",
33
33
  "default": false
34
+ },
35
+ {
36
+ "name": "level",
37
+ "type": "number",
38
+ "default": 1
39
+ }
40
+ ],
41
+ "instances": [
42
+ {
43
+ "id": "game-1",
44
+ "name": "Simulator Session",
45
+ "description": "Active game session",
46
+ "status": "active",
47
+ "score": 0,
48
+ "level": 1
34
49
  }
35
50
  ]
36
51
  },
@@ -88,13 +103,20 @@
88
103
  "render-ui",
89
104
  "main",
90
105
  {
91
- "type": "game-menu",
92
- "title": "Experiment Simulator",
93
- "menuItems": [
106
+ "type": "game-shell",
107
+ "appName": "STEM Lab",
108
+ "showTopBar": true,
109
+ "children": [
94
110
  {
95
- "label": "Start",
96
- "event": "START",
97
- "variant": "primary"
111
+ "type": "game-menu",
112
+ "title": "Experiment Simulator",
113
+ "menuItems": [
114
+ {
115
+ "label": "Start",
116
+ "event": "START",
117
+ "variant": "primary"
118
+ }
119
+ ]
98
120
  }
99
121
  ]
100
122
  }
@@ -110,9 +132,36 @@
110
132
  "render-ui",
111
133
  "main",
112
134
  {
113
- "type": "simulator-board",
114
- "entity": "Experiment",
115
- "completeEvent": "COMPLETE"
135
+ "type": "game-shell",
136
+ "appName": "STEM Lab",
137
+ "showTopBar": true,
138
+ "children": [
139
+ {
140
+ "type": "stack",
141
+ "direction": "vertical",
142
+ "gap": "md",
143
+ "children": [
144
+ {
145
+ "type": "game-hud",
146
+ "stats": [
147
+ {
148
+ "label": "Score",
149
+ "value": "@entity.score"
150
+ },
151
+ {
152
+ "label": "Level",
153
+ "value": "@entity.level"
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ "type": "simulator-board",
159
+ "entity": "Experiment",
160
+ "completeEvent": "COMPLETE"
161
+ }
162
+ ]
163
+ }
164
+ ]
116
165
  }
117
166
  ]
118
167
  ]
@@ -132,13 +181,20 @@
132
181
  "render-ui",
133
182
  "main",
134
183
  {
135
- "type": "game-over-screen",
136
- "title": "Well Done!",
137
- "menuItems": [
184
+ "type": "game-shell",
185
+ "appName": "STEM Lab",
186
+ "showTopBar": true,
187
+ "children": [
138
188
  {
139
- "label": "Play Again",
140
- "event": "RESTART",
141
- "variant": "primary"
189
+ "type": "game-over-screen",
190
+ "title": "Well Done!",
191
+ "menuItems": [
192
+ {
193
+ "label": "Play Again",
194
+ "event": "RESTART",
195
+ "variant": "primary"
196
+ }
197
+ ]
142
198
  }
143
199
  ]
144
200
  }
@@ -154,13 +210,20 @@
154
210
  "render-ui",
155
211
  "main",
156
212
  {
157
- "type": "game-menu",
158
- "title": "Experiment Simulator",
159
- "menuItems": [
213
+ "type": "game-shell",
214
+ "appName": "STEM Lab",
215
+ "showTopBar": true,
216
+ "children": [
160
217
  {
161
- "label": "Start",
162
- "event": "START",
163
- "variant": "primary"
218
+ "type": "game-menu",
219
+ "title": "Experiment Simulator",
220
+ "menuItems": [
221
+ {
222
+ "label": "Start",
223
+ "event": "START",
224
+ "variant": "primary"
225
+ }
226
+ ]
164
227
  }
165
228
  ]
166
229
  }
@@ -213,6 +276,21 @@
213
276
  "name": "accuracy",
214
277
  "type": "number",
215
278
  "default": 0
279
+ },
280
+ {
281
+ "name": "level",
282
+ "type": "number",
283
+ "default": 1
284
+ }
285
+ ],
286
+ "instances": [
287
+ {
288
+ "id": "game-1",
289
+ "name": "Classifier Session",
290
+ "description": "Active game session",
291
+ "status": "active",
292
+ "score": 0,
293
+ "level": 1
216
294
  }
217
295
  ]
218
296
  },
@@ -270,13 +348,20 @@
270
348
  "render-ui",
271
349
  "main",
272
350
  {
273
- "type": "game-menu",
274
- "title": "Classification Lab",
275
- "menuItems": [
351
+ "type": "game-shell",
352
+ "appName": "STEM Lab",
353
+ "showTopBar": true,
354
+ "children": [
276
355
  {
277
- "label": "Start",
278
- "event": "START",
279
- "variant": "primary"
356
+ "type": "game-menu",
357
+ "title": "Classification Lab",
358
+ "menuItems": [
359
+ {
360
+ "label": "Start",
361
+ "event": "START",
362
+ "variant": "primary"
363
+ }
364
+ ]
280
365
  }
281
366
  ]
282
367
  }
@@ -292,9 +377,36 @@
292
377
  "render-ui",
293
378
  "main",
294
379
  {
295
- "type": "classifier-board",
296
- "entity": "Classification",
297
- "completeEvent": "COMPLETE"
380
+ "type": "game-shell",
381
+ "appName": "STEM Lab",
382
+ "showTopBar": true,
383
+ "children": [
384
+ {
385
+ "type": "stack",
386
+ "direction": "vertical",
387
+ "gap": "md",
388
+ "children": [
389
+ {
390
+ "type": "game-hud",
391
+ "stats": [
392
+ {
393
+ "label": "Score",
394
+ "value": "@entity.score"
395
+ },
396
+ {
397
+ "label": "Level",
398
+ "value": "@entity.level"
399
+ }
400
+ ]
401
+ },
402
+ {
403
+ "type": "classifier-board",
404
+ "entity": "Classification",
405
+ "completeEvent": "COMPLETE"
406
+ }
407
+ ]
408
+ }
409
+ ]
298
410
  }
299
411
  ]
300
412
  ]
@@ -314,13 +426,20 @@
314
426
  "render-ui",
315
427
  "main",
316
428
  {
317
- "type": "game-over-screen",
318
- "title": "Well Done!",
319
- "menuItems": [
429
+ "type": "game-shell",
430
+ "appName": "STEM Lab",
431
+ "showTopBar": true,
432
+ "children": [
320
433
  {
321
- "label": "Play Again",
322
- "event": "RESTART",
323
- "variant": "primary"
434
+ "type": "game-over-screen",
435
+ "title": "Well Done!",
436
+ "menuItems": [
437
+ {
438
+ "label": "Play Again",
439
+ "event": "RESTART",
440
+ "variant": "primary"
441
+ }
442
+ ]
324
443
  }
325
444
  ]
326
445
  }
@@ -336,13 +455,20 @@
336
455
  "render-ui",
337
456
  "main",
338
457
  {
339
- "type": "game-menu",
340
- "title": "Classification Lab",
341
- "menuItems": [
458
+ "type": "game-shell",
459
+ "appName": "STEM Lab",
460
+ "showTopBar": true,
461
+ "children": [
342
462
  {
343
- "label": "Start",
344
- "event": "START",
345
- "variant": "primary"
463
+ "type": "game-menu",
464
+ "title": "Classification Lab",
465
+ "menuItems": [
466
+ {
467
+ "label": "Start",
468
+ "event": "START",
469
+ "variant": "primary"
470
+ }
471
+ ]
346
472
  }
347
473
  ]
348
474
  }
@@ -448,134 +574,251 @@
448
574
  "render-ui",
449
575
  "main",
450
576
  {
451
- "type": "stack",
452
- "direction": "vertical",
453
- "gap": "lg",
577
+ "type": "game-shell",
578
+ "appName": "STEM Lab",
579
+ "showTopBar": true,
454
580
  "children": [
455
581
  {
456
- "type": "stack",
457
- "direction": "horizontal",
458
- "gap": "md",
459
- "justify": "space-between",
582
+ "type": "scaled-diagram",
460
583
  "children": [
461
584
  {
462
585
  "type": "stack",
463
- "direction": "horizontal",
464
- "gap": "md",
586
+ "direction": "vertical",
587
+ "gap": "lg",
465
588
  "children": [
466
589
  {
467
- "type": "icon",
468
- "name": "clipboard",
469
- "size": "lg"
590
+ "type": "breadcrumb",
591
+ "items": [
592
+ {
593
+ "label": "Home",
594
+ "href": "/"
595
+ },
596
+ {
597
+ "label": "Lab Results"
598
+ }
599
+ ]
470
600
  },
471
- {
472
- "type": "typography",
473
- "content": "Lab Results",
474
- "variant": "h2"
475
- }
476
- ]
477
- },
478
- {
479
- "type": "button",
480
- "label": "Refresh",
481
- "event": "REFRESH",
482
- "variant": "secondary",
483
- "icon": "refresh-cw"
484
- }
485
- ]
486
- },
487
- {
488
- "type": "divider"
489
- },
490
- {
491
- "type": "simple-grid",
492
- "columns": 3,
493
- "children": [
494
- {
495
- "type": "card",
496
- "children": [
497
601
  {
498
602
  "type": "stack",
499
- "direction": "vertical",
500
- "gap": "sm",
603
+ "direction": "horizontal",
604
+ "gap": "md",
605
+ "justify": "space-between",
501
606
  "children": [
502
607
  {
503
- "type": "typography",
504
- "variant": "caption",
505
- "content": "ExperimentCount"
608
+ "type": "stack",
609
+ "direction": "horizontal",
610
+ "gap": "md",
611
+ "children": [
612
+ {
613
+ "type": "icon",
614
+ "name": "clipboard",
615
+ "size": "lg"
616
+ },
617
+ {
618
+ "type": "typography",
619
+ "content": "Lab Results",
620
+ "variant": "h2"
621
+ }
622
+ ]
506
623
  },
507
624
  {
508
- "type": "typography",
509
- "variant": "h3",
510
- "content": "@entity.experimentCount"
625
+ "type": "button",
626
+ "label": "Refresh",
627
+ "event": "REFRESH",
628
+ "variant": "secondary",
629
+ "icon": "refresh-cw"
511
630
  }
512
631
  ]
513
- }
514
- ]
515
- },
516
- {
517
- "type": "card",
518
- "children": [
632
+ },
519
633
  {
520
- "type": "stack",
521
- "direction": "vertical",
522
- "gap": "sm",
634
+ "type": "divider"
635
+ },
636
+ {
637
+ "type": "box",
638
+ "padding": "md",
523
639
  "children": [
524
640
  {
525
- "type": "typography",
526
- "variant": "caption",
527
- "content": "AvgAccuracy"
528
- },
529
- {
530
- "type": "typography",
531
- "variant": "h3",
532
- "content": "@entity.avgAccuracy"
641
+ "type": "simple-grid",
642
+ "columns": 3,
643
+ "children": [
644
+ {
645
+ "type": "stat-display",
646
+ "label": "ExperimentCount",
647
+ "value": [
648
+ "object/get",
649
+ [
650
+ "array/first",
651
+ "@entity"
652
+ ],
653
+ "experimentCount"
654
+ ]
655
+ },
656
+ {
657
+ "type": "stat-display",
658
+ "label": "AvgAccuracy",
659
+ "value": [
660
+ "object/get",
661
+ [
662
+ "array/first",
663
+ "@entity"
664
+ ],
665
+ "avgAccuracy"
666
+ ]
667
+ },
668
+ {
669
+ "type": "stat-display",
670
+ "label": "TotalScore",
671
+ "value": [
672
+ "object/get",
673
+ [
674
+ "array/first",
675
+ "@entity"
676
+ ],
677
+ "totalScore"
678
+ ]
679
+ },
680
+ {
681
+ "type": "card",
682
+ "children": [
683
+ {
684
+ "type": "stack",
685
+ "direction": "vertical",
686
+ "gap": "sm",
687
+ "children": [
688
+ {
689
+ "type": "typography",
690
+ "variant": "caption",
691
+ "content": "Grade"
692
+ },
693
+ {
694
+ "type": "typography",
695
+ "variant": "h3",
696
+ "content": [
697
+ "object/get",
698
+ [
699
+ "array/first",
700
+ "@entity"
701
+ ],
702
+ "grade"
703
+ ]
704
+ }
705
+ ]
706
+ }
707
+ ]
708
+ }
709
+ ]
533
710
  }
534
711
  ]
535
- }
536
- ]
537
- },
538
- {
539
- "type": "card",
540
- "children": [
712
+ },
541
713
  {
542
- "type": "stack",
543
- "direction": "vertical",
544
- "gap": "sm",
714
+ "type": "divider"
715
+ },
716
+ {
717
+ "type": "grid",
718
+ "columns": 2,
719
+ "gap": "md",
545
720
  "children": [
546
721
  {
547
- "type": "typography",
548
- "variant": "caption",
549
- "content": "TotalScore"
722
+ "type": "card",
723
+ "children": [
724
+ {
725
+ "type": "typography",
726
+ "variant": "caption",
727
+ "content": "Chart View"
728
+ }
729
+ ]
550
730
  },
551
731
  {
552
- "type": "typography",
553
- "variant": "h3",
554
- "content": "@entity.totalScore"
732
+ "type": "card",
733
+ "children": [
734
+ {
735
+ "type": "typography",
736
+ "variant": "caption",
737
+ "content": "Graph View"
738
+ }
739
+ ]
555
740
  }
556
741
  ]
557
- }
558
- ]
559
- },
560
- {
561
- "type": "card",
562
- "children": [
742
+ },
563
743
  {
564
- "type": "stack",
565
- "direction": "vertical",
566
- "gap": "sm",
567
- "children": [
744
+ "type": "line-chart",
745
+ "data": [
746
+ {
747
+ "date": "Jan",
748
+ "value": 12
749
+ },
750
+ {
751
+ "date": "Feb",
752
+ "value": 19
753
+ },
754
+ {
755
+ "date": "Mar",
756
+ "value": 15
757
+ },
758
+ {
759
+ "date": "Apr",
760
+ "value": 25
761
+ },
568
762
  {
569
- "type": "typography",
570
- "variant": "caption",
571
- "content": "Grade"
763
+ "date": "May",
764
+ "value": 22
572
765
  },
573
766
  {
574
- "type": "typography",
575
- "variant": "h3",
576
- "content": "@entity.grade"
767
+ "date": "Jun",
768
+ "value": 30
769
+ }
770
+ ],
771
+ "xKey": "date",
772
+ "yKey": "value",
773
+ "title": "Trend"
774
+ },
775
+ {
776
+ "type": "chart-legend",
777
+ "items": [
778
+ {
779
+ "label": "Current",
780
+ "color": "primary"
781
+ },
782
+ {
783
+ "label": "Previous",
784
+ "color": "muted"
577
785
  }
578
786
  ]
787
+ },
788
+ {
789
+ "type": "graph-view",
790
+ "nodes": [
791
+ {
792
+ "id": "a",
793
+ "label": "Start",
794
+ "x": 50,
795
+ "y": 100
796
+ },
797
+ {
798
+ "id": "b",
799
+ "label": "Process",
800
+ "x": 200,
801
+ "y": 50
802
+ },
803
+ {
804
+ "id": "c",
805
+ "label": "End",
806
+ "x": 350,
807
+ "y": 100
808
+ }
809
+ ],
810
+ "edges": [
811
+ {
812
+ "from": "a",
813
+ "to": "b"
814
+ },
815
+ {
816
+ "from": "b",
817
+ "to": "c"
818
+ }
819
+ ],
820
+ "width": 400,
821
+ "height": 200
579
822
  }
580
823
  ]
581
824
  }
@@ -599,134 +842,251 @@
599
842
  "render-ui",
600
843
  "main",
601
844
  {
602
- "type": "stack",
603
- "direction": "vertical",
604
- "gap": "lg",
845
+ "type": "game-shell",
846
+ "appName": "STEM Lab",
847
+ "showTopBar": true,
605
848
  "children": [
606
849
  {
607
- "type": "stack",
608
- "direction": "horizontal",
609
- "gap": "md",
610
- "justify": "space-between",
850
+ "type": "scaled-diagram",
611
851
  "children": [
612
852
  {
613
853
  "type": "stack",
614
- "direction": "horizontal",
615
- "gap": "md",
854
+ "direction": "vertical",
855
+ "gap": "lg",
616
856
  "children": [
617
857
  {
618
- "type": "icon",
619
- "name": "clipboard",
620
- "size": "lg"
858
+ "type": "breadcrumb",
859
+ "items": [
860
+ {
861
+ "label": "Home",
862
+ "href": "/"
863
+ },
864
+ {
865
+ "label": "Lab Results"
866
+ }
867
+ ]
621
868
  },
622
- {
623
- "type": "typography",
624
- "content": "Lab Results",
625
- "variant": "h2"
626
- }
627
- ]
628
- },
629
- {
630
- "type": "button",
631
- "label": "Refresh",
632
- "event": "REFRESH",
633
- "variant": "secondary",
634
- "icon": "refresh-cw"
635
- }
636
- ]
637
- },
638
- {
639
- "type": "divider"
640
- },
641
- {
642
- "type": "simple-grid",
643
- "columns": 3,
644
- "children": [
645
- {
646
- "type": "card",
647
- "children": [
648
869
  {
649
870
  "type": "stack",
650
- "direction": "vertical",
651
- "gap": "sm",
871
+ "direction": "horizontal",
872
+ "gap": "md",
873
+ "justify": "space-between",
652
874
  "children": [
653
875
  {
654
- "type": "typography",
655
- "variant": "caption",
656
- "content": "ExperimentCount"
876
+ "type": "stack",
877
+ "direction": "horizontal",
878
+ "gap": "md",
879
+ "children": [
880
+ {
881
+ "type": "icon",
882
+ "name": "clipboard",
883
+ "size": "lg"
884
+ },
885
+ {
886
+ "type": "typography",
887
+ "content": "Lab Results",
888
+ "variant": "h2"
889
+ }
890
+ ]
657
891
  },
658
892
  {
659
- "type": "typography",
660
- "variant": "h3",
661
- "content": "@entity.experimentCount"
893
+ "type": "button",
894
+ "label": "Refresh",
895
+ "event": "REFRESH",
896
+ "variant": "secondary",
897
+ "icon": "refresh-cw"
662
898
  }
663
899
  ]
664
- }
665
- ]
666
- },
667
- {
668
- "type": "card",
669
- "children": [
900
+ },
670
901
  {
671
- "type": "stack",
672
- "direction": "vertical",
673
- "gap": "sm",
902
+ "type": "divider"
903
+ },
904
+ {
905
+ "type": "box",
906
+ "padding": "md",
674
907
  "children": [
675
908
  {
676
- "type": "typography",
677
- "variant": "caption",
678
- "content": "AvgAccuracy"
679
- },
680
- {
681
- "type": "typography",
682
- "variant": "h3",
683
- "content": "@entity.avgAccuracy"
909
+ "type": "simple-grid",
910
+ "columns": 3,
911
+ "children": [
912
+ {
913
+ "type": "stat-display",
914
+ "label": "ExperimentCount",
915
+ "value": [
916
+ "object/get",
917
+ [
918
+ "array/first",
919
+ "@entity"
920
+ ],
921
+ "experimentCount"
922
+ ]
923
+ },
924
+ {
925
+ "type": "stat-display",
926
+ "label": "AvgAccuracy",
927
+ "value": [
928
+ "object/get",
929
+ [
930
+ "array/first",
931
+ "@entity"
932
+ ],
933
+ "avgAccuracy"
934
+ ]
935
+ },
936
+ {
937
+ "type": "stat-display",
938
+ "label": "TotalScore",
939
+ "value": [
940
+ "object/get",
941
+ [
942
+ "array/first",
943
+ "@entity"
944
+ ],
945
+ "totalScore"
946
+ ]
947
+ },
948
+ {
949
+ "type": "card",
950
+ "children": [
951
+ {
952
+ "type": "stack",
953
+ "direction": "vertical",
954
+ "gap": "sm",
955
+ "children": [
956
+ {
957
+ "type": "typography",
958
+ "variant": "caption",
959
+ "content": "Grade"
960
+ },
961
+ {
962
+ "type": "typography",
963
+ "variant": "h3",
964
+ "content": [
965
+ "object/get",
966
+ [
967
+ "array/first",
968
+ "@entity"
969
+ ],
970
+ "grade"
971
+ ]
972
+ }
973
+ ]
974
+ }
975
+ ]
976
+ }
977
+ ]
684
978
  }
685
979
  ]
686
- }
687
- ]
688
- },
689
- {
690
- "type": "card",
691
- "children": [
980
+ },
692
981
  {
693
- "type": "stack",
694
- "direction": "vertical",
695
- "gap": "sm",
982
+ "type": "divider"
983
+ },
984
+ {
985
+ "type": "grid",
986
+ "columns": 2,
987
+ "gap": "md",
696
988
  "children": [
697
989
  {
698
- "type": "typography",
699
- "variant": "caption",
700
- "content": "TotalScore"
990
+ "type": "card",
991
+ "children": [
992
+ {
993
+ "type": "typography",
994
+ "variant": "caption",
995
+ "content": "Chart View"
996
+ }
997
+ ]
701
998
  },
702
999
  {
703
- "type": "typography",
704
- "variant": "h3",
705
- "content": "@entity.totalScore"
1000
+ "type": "card",
1001
+ "children": [
1002
+ {
1003
+ "type": "typography",
1004
+ "variant": "caption",
1005
+ "content": "Graph View"
1006
+ }
1007
+ ]
706
1008
  }
707
1009
  ]
708
- }
709
- ]
710
- },
711
- {
712
- "type": "card",
713
- "children": [
1010
+ },
714
1011
  {
715
- "type": "stack",
716
- "direction": "vertical",
717
- "gap": "sm",
718
- "children": [
1012
+ "type": "line-chart",
1013
+ "data": [
1014
+ {
1015
+ "date": "Jan",
1016
+ "value": 12
1017
+ },
719
1018
  {
720
- "type": "typography",
721
- "variant": "caption",
722
- "content": "Grade"
1019
+ "date": "Feb",
1020
+ "value": 19
723
1021
  },
724
1022
  {
725
- "type": "typography",
726
- "variant": "h3",
727
- "content": "@entity.grade"
1023
+ "date": "Mar",
1024
+ "value": 15
1025
+ },
1026
+ {
1027
+ "date": "Apr",
1028
+ "value": 25
1029
+ },
1030
+ {
1031
+ "date": "May",
1032
+ "value": 22
1033
+ },
1034
+ {
1035
+ "date": "Jun",
1036
+ "value": 30
1037
+ }
1038
+ ],
1039
+ "xKey": "date",
1040
+ "yKey": "value",
1041
+ "title": "Trend"
1042
+ },
1043
+ {
1044
+ "type": "chart-legend",
1045
+ "items": [
1046
+ {
1047
+ "label": "Current",
1048
+ "color": "primary"
1049
+ },
1050
+ {
1051
+ "label": "Previous",
1052
+ "color": "muted"
728
1053
  }
729
1054
  ]
1055
+ },
1056
+ {
1057
+ "type": "graph-view",
1058
+ "nodes": [
1059
+ {
1060
+ "id": "a",
1061
+ "label": "Start",
1062
+ "x": 50,
1063
+ "y": 100
1064
+ },
1065
+ {
1066
+ "id": "b",
1067
+ "label": "Process",
1068
+ "x": 200,
1069
+ "y": 50
1070
+ },
1071
+ {
1072
+ "id": "c",
1073
+ "label": "End",
1074
+ "x": 350,
1075
+ "y": 100
1076
+ }
1077
+ ],
1078
+ "edges": [
1079
+ {
1080
+ "from": "a",
1081
+ "to": "b"
1082
+ },
1083
+ {
1084
+ "from": "b",
1085
+ "to": "c"
1086
+ }
1087
+ ],
1088
+ "width": 400,
1089
+ "height": 200
730
1090
  }
731
1091
  ]
732
1092
  }
@@ -750,134 +1110,251 @@
750
1110
  "render-ui",
751
1111
  "main",
752
1112
  {
753
- "type": "stack",
754
- "direction": "vertical",
755
- "gap": "lg",
1113
+ "type": "game-shell",
1114
+ "appName": "STEM Lab",
1115
+ "showTopBar": true,
756
1116
  "children": [
757
1117
  {
758
- "type": "stack",
759
- "direction": "horizontal",
760
- "gap": "md",
761
- "justify": "space-between",
1118
+ "type": "scaled-diagram",
762
1119
  "children": [
763
1120
  {
764
1121
  "type": "stack",
765
- "direction": "horizontal",
766
- "gap": "md",
1122
+ "direction": "vertical",
1123
+ "gap": "lg",
767
1124
  "children": [
768
1125
  {
769
- "type": "icon",
770
- "name": "clipboard",
771
- "size": "lg"
1126
+ "type": "breadcrumb",
1127
+ "items": [
1128
+ {
1129
+ "label": "Home",
1130
+ "href": "/"
1131
+ },
1132
+ {
1133
+ "label": "Lab Results"
1134
+ }
1135
+ ]
772
1136
  },
773
- {
774
- "type": "typography",
775
- "content": "Lab Results",
776
- "variant": "h2"
777
- }
778
- ]
779
- },
780
- {
781
- "type": "button",
782
- "label": "Refresh",
783
- "event": "REFRESH",
784
- "variant": "secondary",
785
- "icon": "refresh-cw"
786
- }
787
- ]
788
- },
789
- {
790
- "type": "divider"
791
- },
792
- {
793
- "type": "simple-grid",
794
- "columns": 3,
795
- "children": [
796
- {
797
- "type": "card",
798
- "children": [
799
1137
  {
800
1138
  "type": "stack",
801
- "direction": "vertical",
802
- "gap": "sm",
1139
+ "direction": "horizontal",
1140
+ "gap": "md",
1141
+ "justify": "space-between",
803
1142
  "children": [
804
1143
  {
805
- "type": "typography",
806
- "variant": "caption",
807
- "content": "ExperimentCount"
1144
+ "type": "stack",
1145
+ "direction": "horizontal",
1146
+ "gap": "md",
1147
+ "children": [
1148
+ {
1149
+ "type": "icon",
1150
+ "name": "clipboard",
1151
+ "size": "lg"
1152
+ },
1153
+ {
1154
+ "type": "typography",
1155
+ "content": "Lab Results",
1156
+ "variant": "h2"
1157
+ }
1158
+ ]
808
1159
  },
809
1160
  {
810
- "type": "typography",
811
- "variant": "h3",
812
- "content": "@entity.experimentCount"
1161
+ "type": "button",
1162
+ "label": "Refresh",
1163
+ "event": "REFRESH",
1164
+ "variant": "secondary",
1165
+ "icon": "refresh-cw"
813
1166
  }
814
1167
  ]
815
- }
816
- ]
817
- },
818
- {
819
- "type": "card",
820
- "children": [
1168
+ },
821
1169
  {
822
- "type": "stack",
823
- "direction": "vertical",
824
- "gap": "sm",
1170
+ "type": "divider"
1171
+ },
1172
+ {
1173
+ "type": "box",
1174
+ "padding": "md",
825
1175
  "children": [
826
1176
  {
827
- "type": "typography",
828
- "variant": "caption",
829
- "content": "AvgAccuracy"
830
- },
831
- {
832
- "type": "typography",
833
- "variant": "h3",
834
- "content": "@entity.avgAccuracy"
1177
+ "type": "simple-grid",
1178
+ "columns": 3,
1179
+ "children": [
1180
+ {
1181
+ "type": "stat-display",
1182
+ "label": "ExperimentCount",
1183
+ "value": [
1184
+ "object/get",
1185
+ [
1186
+ "array/first",
1187
+ "@entity"
1188
+ ],
1189
+ "experimentCount"
1190
+ ]
1191
+ },
1192
+ {
1193
+ "type": "stat-display",
1194
+ "label": "AvgAccuracy",
1195
+ "value": [
1196
+ "object/get",
1197
+ [
1198
+ "array/first",
1199
+ "@entity"
1200
+ ],
1201
+ "avgAccuracy"
1202
+ ]
1203
+ },
1204
+ {
1205
+ "type": "stat-display",
1206
+ "label": "TotalScore",
1207
+ "value": [
1208
+ "object/get",
1209
+ [
1210
+ "array/first",
1211
+ "@entity"
1212
+ ],
1213
+ "totalScore"
1214
+ ]
1215
+ },
1216
+ {
1217
+ "type": "card",
1218
+ "children": [
1219
+ {
1220
+ "type": "stack",
1221
+ "direction": "vertical",
1222
+ "gap": "sm",
1223
+ "children": [
1224
+ {
1225
+ "type": "typography",
1226
+ "variant": "caption",
1227
+ "content": "Grade"
1228
+ },
1229
+ {
1230
+ "type": "typography",
1231
+ "variant": "h3",
1232
+ "content": [
1233
+ "object/get",
1234
+ [
1235
+ "array/first",
1236
+ "@entity"
1237
+ ],
1238
+ "grade"
1239
+ ]
1240
+ }
1241
+ ]
1242
+ }
1243
+ ]
1244
+ }
1245
+ ]
835
1246
  }
836
1247
  ]
837
- }
838
- ]
839
- },
840
- {
841
- "type": "card",
842
- "children": [
1248
+ },
843
1249
  {
844
- "type": "stack",
845
- "direction": "vertical",
846
- "gap": "sm",
1250
+ "type": "divider"
1251
+ },
1252
+ {
1253
+ "type": "grid",
1254
+ "columns": 2,
1255
+ "gap": "md",
847
1256
  "children": [
848
1257
  {
849
- "type": "typography",
850
- "variant": "caption",
851
- "content": "TotalScore"
1258
+ "type": "card",
1259
+ "children": [
1260
+ {
1261
+ "type": "typography",
1262
+ "variant": "caption",
1263
+ "content": "Chart View"
1264
+ }
1265
+ ]
852
1266
  },
853
1267
  {
854
- "type": "typography",
855
- "variant": "h3",
856
- "content": "@entity.totalScore"
1268
+ "type": "card",
1269
+ "children": [
1270
+ {
1271
+ "type": "typography",
1272
+ "variant": "caption",
1273
+ "content": "Graph View"
1274
+ }
1275
+ ]
857
1276
  }
858
1277
  ]
859
- }
860
- ]
861
- },
862
- {
863
- "type": "card",
864
- "children": [
1278
+ },
865
1279
  {
866
- "type": "stack",
867
- "direction": "vertical",
868
- "gap": "sm",
869
- "children": [
1280
+ "type": "line-chart",
1281
+ "data": [
1282
+ {
1283
+ "date": "Jan",
1284
+ "value": 12
1285
+ },
1286
+ {
1287
+ "date": "Feb",
1288
+ "value": 19
1289
+ },
1290
+ {
1291
+ "date": "Mar",
1292
+ "value": 15
1293
+ },
1294
+ {
1295
+ "date": "Apr",
1296
+ "value": 25
1297
+ },
1298
+ {
1299
+ "date": "May",
1300
+ "value": 22
1301
+ },
870
1302
  {
871
- "type": "typography",
872
- "variant": "caption",
873
- "content": "Grade"
1303
+ "date": "Jun",
1304
+ "value": 30
1305
+ }
1306
+ ],
1307
+ "xKey": "date",
1308
+ "yKey": "value",
1309
+ "title": "Trend"
1310
+ },
1311
+ {
1312
+ "type": "chart-legend",
1313
+ "items": [
1314
+ {
1315
+ "label": "Current",
1316
+ "color": "primary"
874
1317
  },
875
1318
  {
876
- "type": "typography",
877
- "variant": "h3",
878
- "content": "@entity.grade"
1319
+ "label": "Previous",
1320
+ "color": "muted"
879
1321
  }
880
1322
  ]
1323
+ },
1324
+ {
1325
+ "type": "graph-view",
1326
+ "nodes": [
1327
+ {
1328
+ "id": "a",
1329
+ "label": "Start",
1330
+ "x": 50,
1331
+ "y": 100
1332
+ },
1333
+ {
1334
+ "id": "b",
1335
+ "label": "Process",
1336
+ "x": 200,
1337
+ "y": 50
1338
+ },
1339
+ {
1340
+ "id": "c",
1341
+ "label": "End",
1342
+ "x": 350,
1343
+ "y": 100
1344
+ }
1345
+ ],
1346
+ "edges": [
1347
+ {
1348
+ "from": "a",
1349
+ "to": "b"
1350
+ },
1351
+ {
1352
+ "from": "b",
1353
+ "to": "c"
1354
+ }
1355
+ ],
1356
+ "width": 400,
1357
+ "height": 200
881
1358
  }
882
1359
  ]
883
1360
  }
@@ -901,134 +1378,251 @@
901
1378
  "render-ui",
902
1379
  "main",
903
1380
  {
904
- "type": "stack",
905
- "direction": "vertical",
906
- "gap": "lg",
1381
+ "type": "game-shell",
1382
+ "appName": "STEM Lab",
1383
+ "showTopBar": true,
907
1384
  "children": [
908
1385
  {
909
- "type": "stack",
910
- "direction": "horizontal",
911
- "gap": "md",
912
- "justify": "space-between",
1386
+ "type": "scaled-diagram",
913
1387
  "children": [
914
1388
  {
915
1389
  "type": "stack",
916
- "direction": "horizontal",
917
- "gap": "md",
1390
+ "direction": "vertical",
1391
+ "gap": "lg",
918
1392
  "children": [
919
1393
  {
920
- "type": "icon",
921
- "name": "clipboard",
922
- "size": "lg"
1394
+ "type": "breadcrumb",
1395
+ "items": [
1396
+ {
1397
+ "label": "Home",
1398
+ "href": "/"
1399
+ },
1400
+ {
1401
+ "label": "Lab Results"
1402
+ }
1403
+ ]
923
1404
  },
924
- {
925
- "type": "typography",
926
- "content": "Lab Results",
927
- "variant": "h2"
928
- }
929
- ]
930
- },
931
- {
932
- "type": "button",
933
- "label": "Refresh",
934
- "event": "REFRESH",
935
- "variant": "secondary",
936
- "icon": "refresh-cw"
937
- }
938
- ]
939
- },
940
- {
941
- "type": "divider"
942
- },
943
- {
944
- "type": "simple-grid",
945
- "columns": 3,
946
- "children": [
947
- {
948
- "type": "card",
949
- "children": [
950
1405
  {
951
1406
  "type": "stack",
952
- "direction": "vertical",
953
- "gap": "sm",
1407
+ "direction": "horizontal",
1408
+ "gap": "md",
1409
+ "justify": "space-between",
954
1410
  "children": [
955
1411
  {
956
- "type": "typography",
957
- "variant": "caption",
958
- "content": "ExperimentCount"
1412
+ "type": "stack",
1413
+ "direction": "horizontal",
1414
+ "gap": "md",
1415
+ "children": [
1416
+ {
1417
+ "type": "icon",
1418
+ "name": "clipboard",
1419
+ "size": "lg"
1420
+ },
1421
+ {
1422
+ "type": "typography",
1423
+ "content": "Lab Results",
1424
+ "variant": "h2"
1425
+ }
1426
+ ]
959
1427
  },
960
1428
  {
961
- "type": "typography",
962
- "variant": "h3",
963
- "content": "@entity.experimentCount"
1429
+ "type": "button",
1430
+ "label": "Refresh",
1431
+ "event": "REFRESH",
1432
+ "variant": "secondary",
1433
+ "icon": "refresh-cw"
964
1434
  }
965
1435
  ]
966
- }
967
- ]
968
- },
969
- {
970
- "type": "card",
971
- "children": [
1436
+ },
972
1437
  {
973
- "type": "stack",
974
- "direction": "vertical",
975
- "gap": "sm",
1438
+ "type": "divider"
1439
+ },
1440
+ {
1441
+ "type": "box",
1442
+ "padding": "md",
976
1443
  "children": [
977
1444
  {
978
- "type": "typography",
979
- "variant": "caption",
980
- "content": "AvgAccuracy"
981
- },
982
- {
983
- "type": "typography",
984
- "variant": "h3",
985
- "content": "@entity.avgAccuracy"
1445
+ "type": "simple-grid",
1446
+ "columns": 3,
1447
+ "children": [
1448
+ {
1449
+ "type": "stat-display",
1450
+ "label": "ExperimentCount",
1451
+ "value": [
1452
+ "object/get",
1453
+ [
1454
+ "array/first",
1455
+ "@entity"
1456
+ ],
1457
+ "experimentCount"
1458
+ ]
1459
+ },
1460
+ {
1461
+ "type": "stat-display",
1462
+ "label": "AvgAccuracy",
1463
+ "value": [
1464
+ "object/get",
1465
+ [
1466
+ "array/first",
1467
+ "@entity"
1468
+ ],
1469
+ "avgAccuracy"
1470
+ ]
1471
+ },
1472
+ {
1473
+ "type": "stat-display",
1474
+ "label": "TotalScore",
1475
+ "value": [
1476
+ "object/get",
1477
+ [
1478
+ "array/first",
1479
+ "@entity"
1480
+ ],
1481
+ "totalScore"
1482
+ ]
1483
+ },
1484
+ {
1485
+ "type": "card",
1486
+ "children": [
1487
+ {
1488
+ "type": "stack",
1489
+ "direction": "vertical",
1490
+ "gap": "sm",
1491
+ "children": [
1492
+ {
1493
+ "type": "typography",
1494
+ "variant": "caption",
1495
+ "content": "Grade"
1496
+ },
1497
+ {
1498
+ "type": "typography",
1499
+ "variant": "h3",
1500
+ "content": [
1501
+ "object/get",
1502
+ [
1503
+ "array/first",
1504
+ "@entity"
1505
+ ],
1506
+ "grade"
1507
+ ]
1508
+ }
1509
+ ]
1510
+ }
1511
+ ]
1512
+ }
1513
+ ]
986
1514
  }
987
1515
  ]
988
- }
989
- ]
990
- },
991
- {
992
- "type": "card",
993
- "children": [
1516
+ },
994
1517
  {
995
- "type": "stack",
996
- "direction": "vertical",
997
- "gap": "sm",
1518
+ "type": "divider"
1519
+ },
1520
+ {
1521
+ "type": "grid",
1522
+ "columns": 2,
1523
+ "gap": "md",
998
1524
  "children": [
999
1525
  {
1000
- "type": "typography",
1001
- "variant": "caption",
1002
- "content": "TotalScore"
1526
+ "type": "card",
1527
+ "children": [
1528
+ {
1529
+ "type": "typography",
1530
+ "variant": "caption",
1531
+ "content": "Chart View"
1532
+ }
1533
+ ]
1003
1534
  },
1004
1535
  {
1005
- "type": "typography",
1006
- "variant": "h3",
1007
- "content": "@entity.totalScore"
1536
+ "type": "card",
1537
+ "children": [
1538
+ {
1539
+ "type": "typography",
1540
+ "variant": "caption",
1541
+ "content": "Graph View"
1542
+ }
1543
+ ]
1008
1544
  }
1009
1545
  ]
1010
- }
1011
- ]
1012
- },
1013
- {
1014
- "type": "card",
1015
- "children": [
1546
+ },
1016
1547
  {
1017
- "type": "stack",
1018
- "direction": "vertical",
1019
- "gap": "sm",
1020
- "children": [
1548
+ "type": "line-chart",
1549
+ "data": [
1550
+ {
1551
+ "date": "Jan",
1552
+ "value": 12
1553
+ },
1021
1554
  {
1022
- "type": "typography",
1023
- "variant": "caption",
1024
- "content": "Grade"
1555
+ "date": "Feb",
1556
+ "value": 19
1025
1557
  },
1026
1558
  {
1027
- "type": "typography",
1028
- "variant": "h3",
1029
- "content": "@entity.grade"
1559
+ "date": "Mar",
1560
+ "value": 15
1561
+ },
1562
+ {
1563
+ "date": "Apr",
1564
+ "value": 25
1565
+ },
1566
+ {
1567
+ "date": "May",
1568
+ "value": 22
1569
+ },
1570
+ {
1571
+ "date": "Jun",
1572
+ "value": 30
1573
+ }
1574
+ ],
1575
+ "xKey": "date",
1576
+ "yKey": "value",
1577
+ "title": "Trend"
1578
+ },
1579
+ {
1580
+ "type": "chart-legend",
1581
+ "items": [
1582
+ {
1583
+ "label": "Current",
1584
+ "color": "primary"
1585
+ },
1586
+ {
1587
+ "label": "Previous",
1588
+ "color": "muted"
1030
1589
  }
1031
1590
  ]
1591
+ },
1592
+ {
1593
+ "type": "graph-view",
1594
+ "nodes": [
1595
+ {
1596
+ "id": "a",
1597
+ "label": "Start",
1598
+ "x": 50,
1599
+ "y": 100
1600
+ },
1601
+ {
1602
+ "id": "b",
1603
+ "label": "Process",
1604
+ "x": 200,
1605
+ "y": 50
1606
+ },
1607
+ {
1608
+ "id": "c",
1609
+ "label": "End",
1610
+ "x": 350,
1611
+ "y": 100
1612
+ }
1613
+ ],
1614
+ "edges": [
1615
+ {
1616
+ "from": "a",
1617
+ "to": "b"
1618
+ },
1619
+ {
1620
+ "from": "b",
1621
+ "to": "c"
1622
+ }
1623
+ ],
1624
+ "width": 400,
1625
+ "height": 200
1032
1626
  }
1033
1627
  ]
1034
1628
  }
@@ -1052,134 +1646,251 @@
1052
1646
  "render-ui",
1053
1647
  "main",
1054
1648
  {
1055
- "type": "stack",
1056
- "direction": "vertical",
1057
- "gap": "lg",
1649
+ "type": "game-shell",
1650
+ "appName": "STEM Lab",
1651
+ "showTopBar": true,
1058
1652
  "children": [
1059
1653
  {
1060
- "type": "stack",
1061
- "direction": "horizontal",
1062
- "gap": "md",
1063
- "justify": "space-between",
1654
+ "type": "scaled-diagram",
1064
1655
  "children": [
1065
1656
  {
1066
1657
  "type": "stack",
1067
- "direction": "horizontal",
1068
- "gap": "md",
1658
+ "direction": "vertical",
1659
+ "gap": "lg",
1069
1660
  "children": [
1070
1661
  {
1071
- "type": "icon",
1072
- "name": "clipboard",
1073
- "size": "lg"
1662
+ "type": "breadcrumb",
1663
+ "items": [
1664
+ {
1665
+ "label": "Home",
1666
+ "href": "/"
1667
+ },
1668
+ {
1669
+ "label": "Lab Results"
1670
+ }
1671
+ ]
1074
1672
  },
1075
- {
1076
- "type": "typography",
1077
- "content": "Lab Results",
1078
- "variant": "h2"
1079
- }
1080
- ]
1081
- },
1082
- {
1083
- "type": "button",
1084
- "label": "Refresh",
1085
- "event": "REFRESH",
1086
- "variant": "secondary",
1087
- "icon": "refresh-cw"
1088
- }
1089
- ]
1090
- },
1091
- {
1092
- "type": "divider"
1093
- },
1094
- {
1095
- "type": "simple-grid",
1096
- "columns": 3,
1097
- "children": [
1098
- {
1099
- "type": "card",
1100
- "children": [
1101
1673
  {
1102
1674
  "type": "stack",
1103
- "direction": "vertical",
1104
- "gap": "sm",
1675
+ "direction": "horizontal",
1676
+ "gap": "md",
1677
+ "justify": "space-between",
1105
1678
  "children": [
1106
1679
  {
1107
- "type": "typography",
1108
- "variant": "caption",
1109
- "content": "ExperimentCount"
1680
+ "type": "stack",
1681
+ "direction": "horizontal",
1682
+ "gap": "md",
1683
+ "children": [
1684
+ {
1685
+ "type": "icon",
1686
+ "name": "clipboard",
1687
+ "size": "lg"
1688
+ },
1689
+ {
1690
+ "type": "typography",
1691
+ "content": "Lab Results",
1692
+ "variant": "h2"
1693
+ }
1694
+ ]
1110
1695
  },
1111
1696
  {
1112
- "type": "typography",
1113
- "variant": "h3",
1114
- "content": "@entity.experimentCount"
1697
+ "type": "button",
1698
+ "label": "Refresh",
1699
+ "event": "REFRESH",
1700
+ "variant": "secondary",
1701
+ "icon": "refresh-cw"
1115
1702
  }
1116
1703
  ]
1117
- }
1118
- ]
1119
- },
1120
- {
1121
- "type": "card",
1122
- "children": [
1704
+ },
1123
1705
  {
1124
- "type": "stack",
1125
- "direction": "vertical",
1126
- "gap": "sm",
1706
+ "type": "divider"
1707
+ },
1708
+ {
1709
+ "type": "box",
1710
+ "padding": "md",
1127
1711
  "children": [
1128
1712
  {
1129
- "type": "typography",
1130
- "variant": "caption",
1131
- "content": "AvgAccuracy"
1132
- },
1133
- {
1134
- "type": "typography",
1135
- "variant": "h3",
1136
- "content": "@entity.avgAccuracy"
1713
+ "type": "simple-grid",
1714
+ "columns": 3,
1715
+ "children": [
1716
+ {
1717
+ "type": "stat-display",
1718
+ "label": "ExperimentCount",
1719
+ "value": [
1720
+ "object/get",
1721
+ [
1722
+ "array/first",
1723
+ "@entity"
1724
+ ],
1725
+ "experimentCount"
1726
+ ]
1727
+ },
1728
+ {
1729
+ "type": "stat-display",
1730
+ "label": "AvgAccuracy",
1731
+ "value": [
1732
+ "object/get",
1733
+ [
1734
+ "array/first",
1735
+ "@entity"
1736
+ ],
1737
+ "avgAccuracy"
1738
+ ]
1739
+ },
1740
+ {
1741
+ "type": "stat-display",
1742
+ "label": "TotalScore",
1743
+ "value": [
1744
+ "object/get",
1745
+ [
1746
+ "array/first",
1747
+ "@entity"
1748
+ ],
1749
+ "totalScore"
1750
+ ]
1751
+ },
1752
+ {
1753
+ "type": "card",
1754
+ "children": [
1755
+ {
1756
+ "type": "stack",
1757
+ "direction": "vertical",
1758
+ "gap": "sm",
1759
+ "children": [
1760
+ {
1761
+ "type": "typography",
1762
+ "variant": "caption",
1763
+ "content": "Grade"
1764
+ },
1765
+ {
1766
+ "type": "typography",
1767
+ "variant": "h3",
1768
+ "content": [
1769
+ "object/get",
1770
+ [
1771
+ "array/first",
1772
+ "@entity"
1773
+ ],
1774
+ "grade"
1775
+ ]
1776
+ }
1777
+ ]
1778
+ }
1779
+ ]
1780
+ }
1781
+ ]
1137
1782
  }
1138
1783
  ]
1139
- }
1140
- ]
1141
- },
1142
- {
1143
- "type": "card",
1144
- "children": [
1784
+ },
1145
1785
  {
1146
- "type": "stack",
1147
- "direction": "vertical",
1148
- "gap": "sm",
1786
+ "type": "divider"
1787
+ },
1788
+ {
1789
+ "type": "grid",
1790
+ "columns": 2,
1791
+ "gap": "md",
1149
1792
  "children": [
1150
1793
  {
1151
- "type": "typography",
1152
- "variant": "caption",
1153
- "content": "TotalScore"
1794
+ "type": "card",
1795
+ "children": [
1796
+ {
1797
+ "type": "typography",
1798
+ "variant": "caption",
1799
+ "content": "Chart View"
1800
+ }
1801
+ ]
1154
1802
  },
1155
1803
  {
1156
- "type": "typography",
1157
- "variant": "h3",
1158
- "content": "@entity.totalScore"
1804
+ "type": "card",
1805
+ "children": [
1806
+ {
1807
+ "type": "typography",
1808
+ "variant": "caption",
1809
+ "content": "Graph View"
1810
+ }
1811
+ ]
1159
1812
  }
1160
1813
  ]
1161
- }
1162
- ]
1163
- },
1164
- {
1165
- "type": "card",
1166
- "children": [
1814
+ },
1167
1815
  {
1168
- "type": "stack",
1169
- "direction": "vertical",
1170
- "gap": "sm",
1171
- "children": [
1816
+ "type": "line-chart",
1817
+ "data": [
1818
+ {
1819
+ "date": "Jan",
1820
+ "value": 12
1821
+ },
1822
+ {
1823
+ "date": "Feb",
1824
+ "value": 19
1825
+ },
1826
+ {
1827
+ "date": "Mar",
1828
+ "value": 15
1829
+ },
1172
1830
  {
1173
- "type": "typography",
1174
- "variant": "caption",
1175
- "content": "Grade"
1831
+ "date": "Apr",
1832
+ "value": 25
1176
1833
  },
1177
1834
  {
1178
- "type": "typography",
1179
- "variant": "h3",
1180
- "content": "@entity.grade"
1835
+ "date": "May",
1836
+ "value": 22
1837
+ },
1838
+ {
1839
+ "date": "Jun",
1840
+ "value": 30
1841
+ }
1842
+ ],
1843
+ "xKey": "date",
1844
+ "yKey": "value",
1845
+ "title": "Trend"
1846
+ },
1847
+ {
1848
+ "type": "chart-legend",
1849
+ "items": [
1850
+ {
1851
+ "label": "Current",
1852
+ "color": "primary"
1853
+ },
1854
+ {
1855
+ "label": "Previous",
1856
+ "color": "muted"
1181
1857
  }
1182
1858
  ]
1859
+ },
1860
+ {
1861
+ "type": "graph-view",
1862
+ "nodes": [
1863
+ {
1864
+ "id": "a",
1865
+ "label": "Start",
1866
+ "x": 50,
1867
+ "y": 100
1868
+ },
1869
+ {
1870
+ "id": "b",
1871
+ "label": "Process",
1872
+ "x": 200,
1873
+ "y": 50
1874
+ },
1875
+ {
1876
+ "id": "c",
1877
+ "label": "End",
1878
+ "x": 350,
1879
+ "y": 100
1880
+ }
1881
+ ],
1882
+ "edges": [
1883
+ {
1884
+ "from": "a",
1885
+ "to": "b"
1886
+ },
1887
+ {
1888
+ "from": "b",
1889
+ "to": "c"
1890
+ }
1891
+ ],
1892
+ "width": 400,
1893
+ "height": 200
1183
1894
  }
1184
1895
  ]
1185
1896
  }