@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
@@ -32,6 +32,32 @@
32
32
  "name": "outcome",
33
33
  "type": "string"
34
34
  }
35
+ ],
36
+ "instances": [
37
+ {
38
+ "id": "unit-1",
39
+ "name": "Knight",
40
+ "description": "Armored warrior",
41
+ "status": "active",
42
+ "turn": 0,
43
+ "score": 0
44
+ },
45
+ {
46
+ "id": "unit-2",
47
+ "name": "Archer",
48
+ "description": "Ranged attacker",
49
+ "status": "active",
50
+ "turn": 0,
51
+ "score": 0
52
+ },
53
+ {
54
+ "id": "unit-3",
55
+ "name": "Mage",
56
+ "description": "Magic caster",
57
+ "status": "active",
58
+ "turn": 0,
59
+ "score": 0
60
+ }
35
61
  ]
36
62
  },
37
63
  "traits": [
@@ -107,14 +133,21 @@
107
133
  "render-ui",
108
134
  "main",
109
135
  {
110
- "type": "game-menu",
111
- "title": "Battle Arena",
112
- "subtitle": "Turn-Based Strategy",
113
- "menuItems": [
136
+ "type": "game-shell",
137
+ "appName": "RPG Game",
138
+ "showTopBar": true,
139
+ "children": [
114
140
  {
115
- "label": "Start Battle",
116
- "event": "START",
117
- "variant": "primary"
141
+ "type": "game-menu",
142
+ "title": "Battle Arena",
143
+ "subtitle": "Turn-Based Strategy",
144
+ "menuItems": [
145
+ {
146
+ "label": "Start Battle",
147
+ "event": "START",
148
+ "variant": "primary"
149
+ }
150
+ ]
118
151
  }
119
152
  ]
120
153
  }
@@ -130,15 +163,22 @@
130
163
  "render-ui",
131
164
  "main",
132
165
  {
133
- "type": "game-hud",
134
- "stats": [
135
- {
136
- "label": "Turn",
137
- "value": "@entity.turn"
138
- },
166
+ "type": "game-shell",
167
+ "appName": "RPG Game",
168
+ "showTopBar": true,
169
+ "children": [
139
170
  {
140
- "label": "Score",
141
- "value": "@entity.score"
171
+ "type": "game-hud",
172
+ "stats": [
173
+ {
174
+ "label": "Turn",
175
+ "value": "@entity.turn"
176
+ },
177
+ {
178
+ "label": "Score",
179
+ "value": "@entity.score"
180
+ }
181
+ ]
142
182
  }
143
183
  ]
144
184
  }
@@ -163,15 +203,22 @@
163
203
  "render-ui",
164
204
  "main",
165
205
  {
166
- "type": "game-hud",
167
- "stats": [
168
- {
169
- "label": "Turn",
170
- "value": "@entity.turn"
171
- },
206
+ "type": "game-shell",
207
+ "appName": "RPG Game",
208
+ "showTopBar": true,
209
+ "children": [
172
210
  {
173
- "label": "Score",
174
- "value": "@entity.score"
211
+ "type": "game-hud",
212
+ "stats": [
213
+ {
214
+ "label": "Turn",
215
+ "value": "@entity.turn"
216
+ },
217
+ {
218
+ "label": "Score",
219
+ "value": "@entity.score"
220
+ }
221
+ ]
175
222
  }
176
223
  ]
177
224
  }
@@ -226,6 +273,30 @@
226
273
  "render-ui",
227
274
  "modal",
228
275
  null
276
+ ],
277
+ [
278
+ "render-ui",
279
+ "main",
280
+ {
281
+ "type": "game-shell",
282
+ "appName": "RPG Game",
283
+ "showTopBar": true,
284
+ "children": [
285
+ {
286
+ "type": "game-hud",
287
+ "stats": [
288
+ {
289
+ "label": "Turn",
290
+ "value": "@entity.turn"
291
+ },
292
+ {
293
+ "label": "Score",
294
+ "value": "@entity.score"
295
+ }
296
+ ]
297
+ }
298
+ ]
299
+ }
229
300
  ]
230
301
  ]
231
302
  },
@@ -238,6 +309,30 @@
238
309
  "render-ui",
239
310
  "modal",
240
311
  null
312
+ ],
313
+ [
314
+ "render-ui",
315
+ "main",
316
+ {
317
+ "type": "game-shell",
318
+ "appName": "RPG Game",
319
+ "showTopBar": true,
320
+ "children": [
321
+ {
322
+ "type": "game-hud",
323
+ "stats": [
324
+ {
325
+ "label": "Turn",
326
+ "value": "@entity.turn"
327
+ },
328
+ {
329
+ "label": "Score",
330
+ "value": "@entity.score"
331
+ }
332
+ ]
333
+ }
334
+ ]
335
+ }
241
336
  ]
242
337
  ]
243
338
  },
@@ -250,28 +345,35 @@
250
345
  "render-ui",
251
346
  "main",
252
347
  {
253
- "type": "game-over-screen",
254
- "title": "Battle Over",
255
- "stats": [
256
- {
257
- "label": "Turns",
258
- "value": "@entity.turn"
259
- },
260
- {
261
- "label": "Score",
262
- "value": "@entity.score"
263
- }
264
- ],
265
- "menuItems": [
266
- {
267
- "label": "Play Again",
268
- "event": "RESTART",
269
- "variant": "primary"
270
- },
348
+ "type": "game-shell",
349
+ "appName": "RPG Game",
350
+ "showTopBar": true,
351
+ "children": [
271
352
  {
272
- "label": "Main Menu",
273
- "event": "RESTART",
274
- "variant": "secondary"
353
+ "type": "game-over-screen",
354
+ "title": "Battle Over",
355
+ "stats": [
356
+ {
357
+ "label": "Turns",
358
+ "value": "@entity.turn"
359
+ },
360
+ {
361
+ "label": "Score",
362
+ "value": "@entity.score"
363
+ }
364
+ ],
365
+ "menuItems": [
366
+ {
367
+ "label": "Play Again",
368
+ "event": "RESTART",
369
+ "variant": "primary"
370
+ },
371
+ {
372
+ "label": "Main Menu",
373
+ "event": "RESTART",
374
+ "variant": "secondary"
375
+ }
376
+ ]
275
377
  }
276
378
  ]
277
379
  }
@@ -287,14 +389,21 @@
287
389
  "render-ui",
288
390
  "main",
289
391
  {
290
- "type": "game-menu",
291
- "title": "Battle Arena",
292
- "subtitle": "Turn-Based Strategy",
293
- "menuItems": [
392
+ "type": "game-shell",
393
+ "appName": "RPG Game",
394
+ "showTopBar": true,
395
+ "children": [
294
396
  {
295
- "label": "Start Battle",
296
- "event": "START",
297
- "variant": "primary"
397
+ "type": "game-menu",
398
+ "title": "Battle Arena",
399
+ "subtitle": "Turn-Based Strategy",
400
+ "menuItems": [
401
+ {
402
+ "label": "Start Battle",
403
+ "event": "START",
404
+ "variant": "primary"
405
+ }
406
+ ]
298
407
  }
299
408
  ]
300
409
  }
@@ -315,14 +424,21 @@
315
424
  "render-ui",
316
425
  "main",
317
426
  {
318
- "type": "game-menu",
319
- "title": "Battle Arena",
320
- "subtitle": "Turn-Based Strategy",
321
- "menuItems": [
427
+ "type": "game-shell",
428
+ "appName": "RPG Game",
429
+ "showTopBar": true,
430
+ "children": [
322
431
  {
323
- "label": "Start Battle",
324
- "event": "START",
325
- "variant": "primary"
432
+ "type": "game-menu",
433
+ "title": "Battle Arena",
434
+ "subtitle": "Turn-Based Strategy",
435
+ "menuItems": [
436
+ {
437
+ "label": "Start Battle",
438
+ "event": "START",
439
+ "variant": "primary"
440
+ }
441
+ ]
326
442
  }
327
443
  ]
328
444
  }
@@ -405,12 +521,19 @@
405
521
  "render-ui",
406
522
  "main",
407
523
  {
408
- "type": "combat-log",
409
- "events": "@BattleState",
410
- "maxVisible": 10,
411
- "autoScroll": true,
412
- "showTimestamps": true,
413
- "title": "Combat Log"
524
+ "type": "game-shell",
525
+ "appName": "RPG Game",
526
+ "showTopBar": true,
527
+ "children": [
528
+ {
529
+ "type": "combat-log",
530
+ "events": "@BattleState",
531
+ "maxVisible": 10,
532
+ "autoScroll": true,
533
+ "showTimestamps": true,
534
+ "title": "Combat Log"
535
+ }
536
+ ]
414
537
  }
415
538
  ]
416
539
  ]
@@ -424,12 +547,19 @@
424
547
  "render-ui",
425
548
  "main",
426
549
  {
427
- "type": "combat-log",
428
- "events": "@BattleState",
429
- "maxVisible": 10,
430
- "autoScroll": true,
431
- "showTimestamps": true,
432
- "title": "Combat Log"
550
+ "type": "game-shell",
551
+ "appName": "RPG Game",
552
+ "showTopBar": true,
553
+ "children": [
554
+ {
555
+ "type": "combat-log",
556
+ "events": "@BattleState",
557
+ "maxVisible": 10,
558
+ "autoScroll": true,
559
+ "showTimestamps": true,
560
+ "title": "Combat Log"
561
+ }
562
+ ]
433
563
  }
434
564
  ]
435
565
  ]
@@ -542,94 +672,111 @@
542
672
  "render-ui",
543
673
  "main",
544
674
  {
545
- "type": "stack",
546
- "direction": "vertical",
547
- "gap": "lg",
675
+ "type": "game-shell",
676
+ "appName": "RPG Game",
677
+ "showTopBar": true,
548
678
  "children": [
549
679
  {
550
680
  "type": "stack",
551
- "direction": "horizontal",
552
- "gap": "md",
553
- "justify": "space-between",
681
+ "direction": "vertical",
682
+ "gap": "lg",
554
683
  "children": [
555
684
  {
556
685
  "type": "stack",
557
686
  "direction": "horizontal",
558
687
  "gap": "md",
688
+ "justify": "space-between",
559
689
  "children": [
560
690
  {
561
- "type": "icon",
562
- "name": "map",
563
- "size": "lg"
691
+ "type": "stack",
692
+ "direction": "horizontal",
693
+ "gap": "md",
694
+ "children": [
695
+ {
696
+ "type": "icon",
697
+ "name": "map",
698
+ "size": "lg"
699
+ },
700
+ {
701
+ "type": "typography",
702
+ "content": "World Map",
703
+ "variant": "h2"
704
+ }
705
+ ]
564
706
  },
565
707
  {
566
- "type": "typography",
567
- "content": "World Map",
568
- "variant": "h2"
708
+ "type": "status-dot",
709
+ "status": "active",
710
+ "pulse": false,
711
+ "label": "Exploring"
569
712
  }
570
713
  ]
571
714
  },
572
715
  {
573
- "type": "badge",
574
- "label": "Exploring"
575
- }
576
- ]
577
- },
578
- {
579
- "type": "divider"
580
- },
581
- {
582
- "type": "data-grid",
583
- "entity": "WorldZone",
584
- "emptyIcon": "compass",
585
- "emptyTitle": "No worldzones discovered",
586
- "emptyDescription": "Explore to discover new worldzones.",
587
- "itemActions": [
588
- {
589
- "label": "Travel",
590
- "event": "TRAVEL"
591
- }
592
- ],
593
- "children": [
716
+ "type": "divider"
717
+ },
594
718
  {
595
- "type": "stack",
596
- "direction": "vertical",
597
- "gap": "sm",
598
- "children": [
719
+ "type": "map-view",
720
+ "markers": [],
721
+ "height": "200px",
722
+ "zoom": 10
723
+ },
724
+ {
725
+ "type": "data-grid",
726
+ "entity": "WorldZone",
727
+ "emptyIcon": "compass",
728
+ "emptyTitle": "No worldzones discovered",
729
+ "emptyDescription": "Explore to discover new worldzones.",
730
+ "itemActions": [
731
+ {
732
+ "label": "Travel",
733
+ "event": "TRAVEL"
734
+ }
735
+ ],
736
+ "renderItem": [
737
+ "fn",
738
+ "item",
599
739
  {
600
740
  "type": "stack",
601
- "direction": "horizontal",
602
- "justify": "space-between",
603
- "align": "center",
741
+ "direction": "vertical",
742
+ "gap": "sm",
604
743
  "children": [
605
744
  {
606
745
  "type": "stack",
607
746
  "direction": "horizontal",
608
- "gap": "sm",
747
+ "justify": "space-between",
609
748
  "align": "center",
610
749
  "children": [
611
750
  {
612
- "type": "icon",
613
- "name": "map-pin",
614
- "size": "sm"
751
+ "type": "stack",
752
+ "direction": "horizontal",
753
+ "gap": "sm",
754
+ "align": "center",
755
+ "children": [
756
+ {
757
+ "type": "icon",
758
+ "name": "map-pin",
759
+ "size": "sm"
760
+ },
761
+ {
762
+ "type": "typography",
763
+ "variant": "h4",
764
+ "content": "@item.name"
765
+ }
766
+ ]
615
767
  },
616
768
  {
617
- "type": "typography",
618
- "variant": "h4",
619
- "content": "@entity.name"
769
+ "type": "badge",
770
+ "label": "@item.description"
620
771
  }
621
772
  ]
622
773
  },
623
774
  {
624
- "type": "badge",
625
- "label": "@entity.description"
775
+ "type": "typography",
776
+ "variant": "caption",
777
+ "content": "@item.level"
626
778
  }
627
779
  ]
628
- },
629
- {
630
- "type": "typography",
631
- "variant": "caption",
632
- "content": "@entity.level"
633
780
  }
634
781
  ]
635
782
  }
@@ -649,35 +796,42 @@
649
796
  "render-ui",
650
797
  "main",
651
798
  {
652
- "type": "stack",
653
- "direction": "vertical",
654
- "gap": "lg",
655
- "align": "center",
799
+ "type": "game-shell",
800
+ "appName": "RPG Game",
801
+ "showTopBar": true,
656
802
  "children": [
657
803
  {
658
804
  "type": "stack",
659
- "direction": "horizontal",
660
- "gap": "md",
805
+ "direction": "vertical",
806
+ "gap": "lg",
807
+ "align": "center",
661
808
  "children": [
662
809
  {
663
- "type": "icon",
664
- "name": "loader",
665
- "size": "lg"
810
+ "type": "stack",
811
+ "direction": "horizontal",
812
+ "gap": "md",
813
+ "children": [
814
+ {
815
+ "type": "icon",
816
+ "name": "loader",
817
+ "size": "lg"
818
+ },
819
+ {
820
+ "type": "typography",
821
+ "content": "Traveling...",
822
+ "variant": "h2"
823
+ }
824
+ ]
825
+ },
826
+ {
827
+ "type": "divider"
666
828
  },
667
829
  {
668
830
  "type": "typography",
669
- "content": "Traveling...",
670
- "variant": "h2"
831
+ "content": "Traveling to the destination worldzones map.",
832
+ "variant": "body"
671
833
  }
672
834
  ]
673
- },
674
- {
675
- "type": "divider"
676
- },
677
- {
678
- "type": "typography",
679
- "content": "Traveling to the destination worldzones map.",
680
- "variant": "body"
681
835
  }
682
836
  ]
683
837
  }
@@ -697,108 +851,118 @@
697
851
  "render-ui",
698
852
  "main",
699
853
  {
700
- "type": "stack",
701
- "direction": "vertical",
702
- "gap": "lg",
854
+ "type": "game-shell",
855
+ "appName": "RPG Game",
856
+ "showTopBar": true,
703
857
  "children": [
704
858
  {
705
859
  "type": "stack",
706
- "direction": "horizontal",
707
- "gap": "md",
708
- "justify": "space-between",
860
+ "direction": "vertical",
861
+ "gap": "lg",
709
862
  "children": [
710
863
  {
711
864
  "type": "stack",
712
865
  "direction": "horizontal",
713
866
  "gap": "md",
867
+ "justify": "space-between",
714
868
  "children": [
715
869
  {
716
- "type": "icon",
717
- "name": "map",
718
- "size": "lg"
870
+ "type": "stack",
871
+ "direction": "horizontal",
872
+ "gap": "md",
873
+ "children": [
874
+ {
875
+ "type": "icon",
876
+ "name": "map",
877
+ "size": "lg"
878
+ },
879
+ {
880
+ "type": "typography",
881
+ "content": "WorldZones Map",
882
+ "variant": "h2"
883
+ }
884
+ ]
719
885
  },
720
886
  {
721
- "type": "typography",
722
- "content": "WorldZones Map",
723
- "variant": "h2"
887
+ "type": "status-dot",
888
+ "status": "success",
889
+ "label": "Entered"
724
890
  }
725
891
  ]
726
892
  },
727
893
  {
728
- "type": "badge",
729
- "label": "Entered"
730
- }
731
- ]
732
- },
733
- {
734
- "type": "divider"
735
- },
736
- {
737
- "type": "data-grid",
738
- "entity": "WorldZone",
739
- "emptyIcon": "inbox",
740
- "emptyTitle": "Nothing here",
741
- "emptyDescription": "This zone is empty.",
742
- "children": [
894
+ "type": "divider"
895
+ },
743
896
  {
744
- "type": "stack",
745
- "direction": "vertical",
746
- "gap": "sm",
747
- "children": [
897
+ "type": "data-grid",
898
+ "entity": "WorldZone",
899
+ "emptyIcon": "inbox",
900
+ "emptyTitle": "Nothing here",
901
+ "emptyDescription": "This zone is empty.",
902
+ "renderItem": [
903
+ "fn",
904
+ "item",
748
905
  {
749
906
  "type": "stack",
750
- "direction": "horizontal",
751
- "justify": "space-between",
752
- "align": "center",
907
+ "direction": "vertical",
908
+ "gap": "sm",
753
909
  "children": [
754
910
  {
755
911
  "type": "stack",
756
912
  "direction": "horizontal",
757
- "gap": "sm",
913
+ "justify": "space-between",
758
914
  "align": "center",
759
915
  "children": [
760
916
  {
761
- "type": "icon",
762
- "name": "map-pin",
763
- "size": "sm"
917
+ "type": "stack",
918
+ "direction": "horizontal",
919
+ "gap": "sm",
920
+ "align": "center",
921
+ "children": [
922
+ {
923
+ "type": "icon",
924
+ "name": "map-pin",
925
+ "size": "sm"
926
+ },
927
+ {
928
+ "type": "typography",
929
+ "variant": "h4",
930
+ "content": "@item.name"
931
+ }
932
+ ]
764
933
  },
765
934
  {
766
- "type": "typography",
767
- "variant": "h4",
768
- "content": "@entity.name"
935
+ "type": "badge",
936
+ "label": "@item.description"
769
937
  }
770
938
  ]
771
939
  },
772
940
  {
773
- "type": "badge",
774
- "label": "@entity.description"
941
+ "type": "typography",
942
+ "variant": "caption",
943
+ "content": "@item.level"
775
944
  }
776
945
  ]
777
- },
778
- {
779
- "type": "typography",
780
- "variant": "caption",
781
- "content": "@entity.level"
782
946
  }
783
947
  ]
784
- }
785
- ]
786
- },
787
- {
788
- "type": "divider"
789
- },
790
- {
791
- "type": "stack",
792
- "direction": "horizontal",
793
- "gap": "sm",
794
- "justify": "end",
795
- "children": [
948
+ },
796
949
  {
797
- "type": "button",
798
- "label": "Back to Map",
799
- "event": "BACK",
800
- "variant": "ghost",
801
- "icon": "arrow-left"
950
+ "type": "divider"
951
+ },
952
+ {
953
+ "type": "stack",
954
+ "direction": "horizontal",
955
+ "gap": "sm",
956
+ "justify": "end",
957
+ "children": [
958
+ {
959
+ "type": "button",
960
+ "label": "Back to Map",
961
+ "event": "BACK",
962
+ "variant": "ghost",
963
+ "icon": "arrow-left"
964
+ }
965
+ ]
802
966
  }
803
967
  ]
804
968
  }
@@ -820,94 +984,111 @@
820
984
  "render-ui",
821
985
  "main",
822
986
  {
823
- "type": "stack",
824
- "direction": "vertical",
825
- "gap": "lg",
987
+ "type": "game-shell",
988
+ "appName": "RPG Game",
989
+ "showTopBar": true,
826
990
  "children": [
827
991
  {
828
992
  "type": "stack",
829
- "direction": "horizontal",
830
- "gap": "md",
831
- "justify": "space-between",
993
+ "direction": "vertical",
994
+ "gap": "lg",
832
995
  "children": [
833
996
  {
834
997
  "type": "stack",
835
998
  "direction": "horizontal",
836
999
  "gap": "md",
1000
+ "justify": "space-between",
837
1001
  "children": [
838
1002
  {
839
- "type": "icon",
840
- "name": "map",
841
- "size": "lg"
1003
+ "type": "stack",
1004
+ "direction": "horizontal",
1005
+ "gap": "md",
1006
+ "children": [
1007
+ {
1008
+ "type": "icon",
1009
+ "name": "map",
1010
+ "size": "lg"
1011
+ },
1012
+ {
1013
+ "type": "typography",
1014
+ "content": "World Map",
1015
+ "variant": "h2"
1016
+ }
1017
+ ]
842
1018
  },
843
1019
  {
844
- "type": "typography",
845
- "content": "World Map",
846
- "variant": "h2"
1020
+ "type": "status-dot",
1021
+ "status": "active",
1022
+ "pulse": false,
1023
+ "label": "Exploring"
847
1024
  }
848
1025
  ]
849
1026
  },
850
1027
  {
851
- "type": "badge",
852
- "label": "Exploring"
853
- }
854
- ]
855
- },
856
- {
857
- "type": "divider"
858
- },
859
- {
860
- "type": "data-grid",
861
- "entity": "WorldZone",
862
- "emptyIcon": "compass",
863
- "emptyTitle": "No worldzones discovered",
864
- "emptyDescription": "Explore to discover new worldzones.",
865
- "itemActions": [
866
- {
867
- "label": "Travel",
868
- "event": "TRAVEL"
869
- }
870
- ],
871
- "children": [
1028
+ "type": "divider"
1029
+ },
872
1030
  {
873
- "type": "stack",
874
- "direction": "vertical",
875
- "gap": "sm",
876
- "children": [
1031
+ "type": "map-view",
1032
+ "markers": [],
1033
+ "height": "200px",
1034
+ "zoom": 10
1035
+ },
1036
+ {
1037
+ "type": "data-grid",
1038
+ "entity": "WorldZone",
1039
+ "emptyIcon": "compass",
1040
+ "emptyTitle": "No worldzones discovered",
1041
+ "emptyDescription": "Explore to discover new worldzones.",
1042
+ "itemActions": [
1043
+ {
1044
+ "label": "Travel",
1045
+ "event": "TRAVEL"
1046
+ }
1047
+ ],
1048
+ "renderItem": [
1049
+ "fn",
1050
+ "item",
877
1051
  {
878
1052
  "type": "stack",
879
- "direction": "horizontal",
880
- "justify": "space-between",
881
- "align": "center",
1053
+ "direction": "vertical",
1054
+ "gap": "sm",
882
1055
  "children": [
883
1056
  {
884
1057
  "type": "stack",
885
1058
  "direction": "horizontal",
886
- "gap": "sm",
1059
+ "justify": "space-between",
887
1060
  "align": "center",
888
1061
  "children": [
889
1062
  {
890
- "type": "icon",
891
- "name": "map-pin",
892
- "size": "sm"
1063
+ "type": "stack",
1064
+ "direction": "horizontal",
1065
+ "gap": "sm",
1066
+ "align": "center",
1067
+ "children": [
1068
+ {
1069
+ "type": "icon",
1070
+ "name": "map-pin",
1071
+ "size": "sm"
1072
+ },
1073
+ {
1074
+ "type": "typography",
1075
+ "variant": "h4",
1076
+ "content": "@item.name"
1077
+ }
1078
+ ]
893
1079
  },
894
1080
  {
895
- "type": "typography",
896
- "variant": "h4",
897
- "content": "@entity.name"
1081
+ "type": "badge",
1082
+ "label": "@item.description"
898
1083
  }
899
1084
  ]
900
1085
  },
901
1086
  {
902
- "type": "badge",
903
- "label": "@entity.description"
1087
+ "type": "typography",
1088
+ "variant": "caption",
1089
+ "content": "@item.level"
904
1090
  }
905
1091
  ]
906
- },
907
- {
908
- "type": "typography",
909
- "variant": "caption",
910
- "content": "@entity.level"
911
1092
  }
912
1093
  ]
913
1094
  }
@@ -996,6 +1177,29 @@
996
1177
  "type": "string",
997
1178
  "default": ""
998
1179
  }
1180
+ ],
1181
+ "instances": [
1182
+ {
1183
+ "id": "item-1",
1184
+ "name": "Health Potion",
1185
+ "description": "Restores 50 HP",
1186
+ "status": "active",
1187
+ "pendingId": ""
1188
+ },
1189
+ {
1190
+ "id": "item-2",
1191
+ "name": "Iron Sword",
1192
+ "description": "A sturdy blade",
1193
+ "status": "active",
1194
+ "pendingId": ""
1195
+ },
1196
+ {
1197
+ "id": "item-3",
1198
+ "name": "Wooden Shield",
1199
+ "description": "Basic protection",
1200
+ "status": "active",
1201
+ "pendingId": ""
1202
+ }
999
1203
  ]
1000
1204
  },
1001
1205
  "traits": [
@@ -1108,112 +1312,110 @@
1108
1312
  "render-ui",
1109
1313
  "main",
1110
1314
  {
1111
- "type": "stack",
1112
- "direction": "vertical",
1113
- "gap": "lg",
1315
+ "type": "game-shell",
1316
+ "appName": "RPG Game",
1317
+ "showTopBar": true,
1114
1318
  "children": [
1115
1319
  {
1116
1320
  "type": "stack",
1117
- "direction": "horizontal",
1118
- "gap": "md",
1119
- "justify": "space-between",
1321
+ "direction": "vertical",
1322
+ "gap": "lg",
1323
+ "className": "max-w-5xl mx-auto w-full",
1120
1324
  "children": [
1121
1325
  {
1122
1326
  "type": "stack",
1123
1327
  "direction": "horizontal",
1124
- "gap": "sm",
1328
+ "gap": "md",
1329
+ "justify": "space-between",
1125
1330
  "align": "center",
1126
- "children": [
1127
- {
1128
- "type": "icon",
1129
- "name": "briefcase",
1130
- "size": "lg"
1131
- },
1132
- {
1133
- "type": "typography",
1134
- "content": "Inventory",
1135
- "variant": "h2"
1136
- }
1137
- ]
1138
- },
1139
- {
1140
- "type": "stack",
1141
- "direction": "horizontal",
1142
- "gap": "sm",
1143
- "children": [
1144
- {
1145
- "type": "button",
1146
- "label": "Add RpgItem",
1147
- "event": "ADD_ITEM",
1148
- "variant": "primary",
1149
- "icon": "plus"
1150
- }
1151
- ]
1152
- }
1153
- ]
1154
- },
1155
- {
1156
- "type": "divider"
1157
- },
1158
- {
1159
- "type": "data-grid",
1160
- "entity": "RpgItem",
1161
- "emptyIcon": "inbox",
1162
- "emptyTitle": "No items yet",
1163
- "emptyDescription": "Add your first item to get started.",
1164
- "itemActions": [
1165
- {
1166
- "label": "Use",
1167
- "event": "USE_ITEM"
1168
- },
1169
- {
1170
- "label": "Drop",
1171
- "event": "DROP",
1172
- "variant": "danger"
1173
- }
1174
- ],
1175
- "className": "transition-shadow hover:shadow-md cursor-pointer",
1176
- "children": [
1177
- {
1178
- "type": "stack",
1179
- "direction": "vertical",
1180
- "gap": "sm",
1181
1331
  "children": [
1182
1332
  {
1183
1333
  "type": "stack",
1184
1334
  "direction": "horizontal",
1185
- "justify": "space-between",
1335
+ "gap": "sm",
1186
1336
  "align": "center",
1187
1337
  "children": [
1188
1338
  {
1189
- "type": "stack",
1190
- "direction": "horizontal",
1191
- "gap": "sm",
1192
- "align": "center",
1193
- "children": [
1194
- {
1195
- "type": "icon",
1196
- "name": "briefcase",
1197
- "size": "sm"
1198
- },
1199
- {
1200
- "type": "typography",
1201
- "variant": "h4",
1202
- "content": "@entity.name"
1203
- }
1204
- ]
1339
+ "type": "icon",
1340
+ "name": "briefcase",
1341
+ "size": "lg"
1205
1342
  },
1206
1343
  {
1207
- "type": "badge",
1208
- "label": "@entity.type"
1344
+ "type": "typography",
1345
+ "content": "Inventory",
1346
+ "variant": "h2"
1209
1347
  }
1210
1348
  ]
1211
1349
  },
1212
1350
  {
1213
- "type": "typography",
1214
- "variant": "caption",
1215
- "color": "muted",
1216
- "content": "@entity.quantity"
1351
+ "type": "stack",
1352
+ "direction": "horizontal",
1353
+ "gap": "sm",
1354
+ "children": [
1355
+ {
1356
+ "type": "button",
1357
+ "label": "Add RpgItem",
1358
+ "event": "ADD_ITEM",
1359
+ "variant": "primary",
1360
+ "icon": "plus"
1361
+ }
1362
+ ]
1363
+ }
1364
+ ]
1365
+ },
1366
+ {
1367
+ "type": "divider"
1368
+ },
1369
+ {
1370
+ "type": "data-grid",
1371
+ "entity": "RpgItem",
1372
+ "emptyIcon": "inbox",
1373
+ "emptyTitle": "No items yet",
1374
+ "emptyDescription": "Add your first item to get started.",
1375
+ "itemActions": [
1376
+ {
1377
+ "label": "Use",
1378
+ "event": "USE_ITEM",
1379
+ "variant": "ghost",
1380
+ "size": "sm"
1381
+ },
1382
+ {
1383
+ "label": "Drop",
1384
+ "event": "DROP",
1385
+ "variant": "danger",
1386
+ "size": "sm"
1387
+ }
1388
+ ],
1389
+ "columns": [
1390
+ {
1391
+ "name": "name",
1392
+ "label": "Name",
1393
+ "variant": "h4",
1394
+ "icon": "briefcase"
1395
+ },
1396
+ {
1397
+ "name": "type",
1398
+ "label": "Type",
1399
+ "variant": "badge",
1400
+ "colorMap": {
1401
+ "active": "success",
1402
+ "completed": "success",
1403
+ "done": "success",
1404
+ "pending": "warning",
1405
+ "draft": "warning",
1406
+ "scheduled": "warning",
1407
+ "inactive": "neutral",
1408
+ "archived": "neutral",
1409
+ "disabled": "neutral",
1410
+ "error": "destructive",
1411
+ "cancelled": "destructive",
1412
+ "failed": "destructive"
1413
+ }
1414
+ },
1415
+ {
1416
+ "name": "quantity",
1417
+ "label": "Quantity",
1418
+ "variant": "caption"
1217
1419
  }
1218
1420
  ]
1219
1421
  }
@@ -1363,8 +1565,7 @@
1363
1565
  "name",
1364
1566
  "type",
1365
1567
  "quantity",
1366
- "rarity",
1367
- "pendingId"
1568
+ "rarity"
1368
1569
  ]
1369
1570
  }
1370
1571
  ]
@@ -1381,6 +1582,11 @@
1381
1582
  "render-ui",
1382
1583
  "modal",
1383
1584
  null
1585
+ ],
1586
+ [
1587
+ "notify",
1588
+ "Cancelled",
1589
+ "info"
1384
1590
  ]
1385
1591
  ]
1386
1592
  },
@@ -1560,6 +1766,11 @@
1560
1766
  "render-ui",
1561
1767
  "modal",
1562
1768
  null
1769
+ ],
1770
+ [
1771
+ "notify",
1772
+ "Cancelled",
1773
+ "info"
1563
1774
  ]
1564
1775
  ]
1565
1776
  },
@@ -1694,7 +1905,7 @@
1694
1905
  "children": [
1695
1906
  {
1696
1907
  "type": "icon",
1697
- "name": "trash-2",
1908
+ "name": "alert-triangle",
1698
1909
  "size": "md"
1699
1910
  },
1700
1911
  {
@@ -1708,9 +1919,9 @@
1708
1919
  "type": "divider"
1709
1920
  },
1710
1921
  {
1711
- "type": "typography",
1712
- "content": "Are you sure you want to drop this rpgitem?",
1713
- "variant": "body"
1922
+ "type": "alert",
1923
+ "variant": "danger",
1924
+ "message": "Are you sure you want to drop this rpgitem?"
1714
1925
  },
1715
1926
  {
1716
1927
  "type": "stack",
@@ -1758,6 +1969,10 @@
1758
1969
  "modal",
1759
1970
  null
1760
1971
  ],
1972
+ [
1973
+ "fetch",
1974
+ "RpgItem"
1975
+ ],
1761
1976
  [
1762
1977
  "emit",
1763
1978
  "CONFIRM_DROP"
@@ -1777,6 +1992,10 @@
1777
1992
  "render-ui",
1778
1993
  "modal",
1779
1994
  null
1995
+ ],
1996
+ [
1997
+ "fetch",
1998
+ "RpgItem"
1780
1999
  ]
1781
2000
  ]
1782
2001
  },
@@ -1789,6 +2008,10 @@
1789
2008
  "render-ui",
1790
2009
  "modal",
1791
2010
  null
2011
+ ],
2012
+ [
2013
+ "fetch",
2014
+ "RpgItem"
1792
2015
  ]
1793
2016
  ]
1794
2017
  }
@@ -1938,90 +2161,100 @@
1938
2161
  "render-ui",
1939
2162
  "main",
1940
2163
  {
1941
- "type": "stack",
1942
- "direction": "vertical",
1943
- "gap": "lg",
2164
+ "type": "game-shell",
2165
+ "appName": "RPG Game",
2166
+ "showTopBar": true,
1944
2167
  "children": [
1945
2168
  {
1946
2169
  "type": "stack",
1947
- "direction": "horizontal",
1948
- "gap": "md",
1949
- "justify": "space-between",
2170
+ "direction": "vertical",
2171
+ "gap": "lg",
1950
2172
  "children": [
1951
2173
  {
1952
2174
  "type": "stack",
1953
2175
  "direction": "horizontal",
1954
2176
  "gap": "md",
2177
+ "justify": "space-between",
1955
2178
  "children": [
1956
2179
  {
1957
- "type": "icon",
1958
- "name": "flag",
1959
- "size": "lg"
1960
- },
1961
- {
1962
- "type": "typography",
1963
- "content": "Missions Board",
1964
- "variant": "h2"
2180
+ "type": "stack",
2181
+ "direction": "horizontal",
2182
+ "gap": "md",
2183
+ "children": [
2184
+ {
2185
+ "type": "icon",
2186
+ "name": "flag",
2187
+ "size": "lg"
2188
+ },
2189
+ {
2190
+ "type": "typography",
2191
+ "content": "Missions Board",
2192
+ "variant": "h2"
2193
+ }
2194
+ ]
1965
2195
  }
1966
2196
  ]
1967
- }
1968
- ]
1969
- },
1970
- {
1971
- "type": "divider"
1972
- },
1973
- {
1974
- "type": "data-grid",
1975
- "entity": "Mission",
1976
- "emptyIcon": "inbox",
1977
- "emptyTitle": "No missions available",
1978
- "emptyDescription": "Check back later for new missions.",
1979
- "itemActions": [
2197
+ },
1980
2198
  {
1981
- "label": "Accept",
1982
- "event": "ACCEPT"
1983
- }
1984
- ],
1985
- "children": [
2199
+ "type": "divider"
2200
+ },
1986
2201
  {
1987
- "type": "stack",
1988
- "direction": "vertical",
1989
- "gap": "sm",
1990
- "children": [
2202
+ "type": "data-list",
2203
+ "entity": "Mission",
2204
+ "groupBy": "status",
2205
+ "emptyIcon": "inbox",
2206
+ "emptyTitle": "No missions available",
2207
+ "emptyDescription": "Check back later for new missions.",
2208
+ "itemActions": [
2209
+ {
2210
+ "label": "Accept",
2211
+ "event": "ACCEPT"
2212
+ }
2213
+ ],
2214
+ "renderItem": [
2215
+ "fn",
2216
+ "item",
1991
2217
  {
1992
2218
  "type": "stack",
1993
- "direction": "horizontal",
1994
- "justify": "space-between",
1995
- "align": "center",
2219
+ "direction": "vertical",
2220
+ "gap": "sm",
1996
2221
  "children": [
1997
2222
  {
1998
2223
  "type": "stack",
1999
2224
  "direction": "horizontal",
2000
- "gap": "sm",
2225
+ "justify": "space-between",
2001
2226
  "align": "center",
2002
2227
  "children": [
2003
2228
  {
2004
- "type": "icon",
2005
- "name": "flag",
2006
- "size": "sm"
2229
+ "type": "stack",
2230
+ "direction": "horizontal",
2231
+ "gap": "sm",
2232
+ "align": "center",
2233
+ "children": [
2234
+ {
2235
+ "type": "icon",
2236
+ "name": "flag",
2237
+ "size": "sm"
2238
+ },
2239
+ {
2240
+ "type": "typography",
2241
+ "variant": "h4",
2242
+ "content": "@item.title"
2243
+ }
2244
+ ]
2007
2245
  },
2008
2246
  {
2009
- "type": "typography",
2010
- "variant": "h4",
2011
- "content": "@entity.title"
2247
+ "type": "badge",
2248
+ "label": "@item.description"
2012
2249
  }
2013
2250
  ]
2014
2251
  },
2015
2252
  {
2016
- "type": "badge",
2017
- "label": "@entity.description"
2253
+ "type": "typography",
2254
+ "variant": "caption",
2255
+ "content": "@item.status"
2018
2256
  }
2019
2257
  ]
2020
- },
2021
- {
2022
- "type": "typography",
2023
- "variant": "caption",
2024
- "content": "@entity.status"
2025
2258
  }
2026
2259
  ]
2027
2260
  }
@@ -2045,103 +2278,117 @@
2045
2278
  "render-ui",
2046
2279
  "main",
2047
2280
  {
2048
- "type": "stack",
2049
- "direction": "vertical",
2050
- "gap": "lg",
2281
+ "type": "game-shell",
2282
+ "appName": "RPG Game",
2283
+ "showTopBar": true,
2051
2284
  "children": [
2052
2285
  {
2053
2286
  "type": "stack",
2054
- "direction": "horizontal",
2055
- "gap": "md",
2056
- "justify": "space-between",
2287
+ "direction": "vertical",
2288
+ "gap": "lg",
2057
2289
  "children": [
2058
2290
  {
2059
2291
  "type": "stack",
2060
2292
  "direction": "horizontal",
2061
2293
  "gap": "md",
2294
+ "justify": "space-between",
2062
2295
  "children": [
2063
2296
  {
2064
- "type": "icon",
2065
- "name": "flag",
2066
- "size": "lg"
2297
+ "type": "stack",
2298
+ "direction": "horizontal",
2299
+ "gap": "md",
2300
+ "children": [
2301
+ {
2302
+ "type": "icon",
2303
+ "name": "flag",
2304
+ "size": "lg"
2305
+ },
2306
+ {
2307
+ "type": "typography",
2308
+ "content": "Missions Board",
2309
+ "variant": "h2"
2310
+ }
2311
+ ]
2067
2312
  },
2068
2313
  {
2069
- "type": "typography",
2070
- "content": "Missions Board",
2071
- "variant": "h2"
2314
+ "type": "badge",
2315
+ "label": "Active"
2072
2316
  }
2073
2317
  ]
2074
2318
  },
2075
2319
  {
2076
- "type": "badge",
2077
- "label": "Active"
2078
- }
2079
- ]
2080
- },
2081
- {
2082
- "type": "divider"
2083
- },
2084
- {
2085
- "type": "data-grid",
2086
- "entity": "Mission",
2087
- "emptyIcon": "inbox",
2088
- "emptyTitle": "No active quests",
2089
- "emptyDescription": "Accept a quest to begin.",
2090
- "itemActions": [
2091
- {
2092
- "label": "Progress",
2093
- "event": "PROGRESS"
2320
+ "type": "divider"
2094
2321
  },
2095
2322
  {
2096
- "label": "Complete",
2097
- "event": "COMPLETE"
2323
+ "type": "progress-bar",
2324
+ "value": 50,
2325
+ "showPercentage": true
2098
2326
  },
2099
2327
  {
2100
- "label": "Fail",
2101
- "event": "FAIL",
2102
- "variant": "danger"
2103
- }
2104
- ],
2105
- "children": [
2106
- {
2107
- "type": "stack",
2108
- "direction": "vertical",
2109
- "gap": "sm",
2110
- "children": [
2328
+ "type": "data-grid",
2329
+ "entity": "Mission",
2330
+ "emptyIcon": "inbox",
2331
+ "emptyTitle": "No active quests",
2332
+ "emptyDescription": "Accept a quest to begin.",
2333
+ "itemActions": [
2334
+ {
2335
+ "label": "Progress",
2336
+ "event": "PROGRESS"
2337
+ },
2338
+ {
2339
+ "label": "Complete",
2340
+ "event": "COMPLETE"
2341
+ },
2342
+ {
2343
+ "label": "Fail",
2344
+ "event": "FAIL",
2345
+ "variant": "danger"
2346
+ }
2347
+ ],
2348
+ "renderItem": [
2349
+ "fn",
2350
+ "item",
2111
2351
  {
2112
2352
  "type": "stack",
2113
- "direction": "horizontal",
2114
- "justify": "space-between",
2115
- "align": "center",
2353
+ "direction": "vertical",
2354
+ "gap": "sm",
2116
2355
  "children": [
2117
2356
  {
2118
2357
  "type": "stack",
2119
2358
  "direction": "horizontal",
2120
- "gap": "sm",
2359
+ "justify": "space-between",
2121
2360
  "align": "center",
2122
2361
  "children": [
2123
2362
  {
2124
- "type": "icon",
2125
- "name": "flag",
2126
- "size": "sm"
2363
+ "type": "stack",
2364
+ "direction": "horizontal",
2365
+ "gap": "sm",
2366
+ "align": "center",
2367
+ "children": [
2368
+ {
2369
+ "type": "icon",
2370
+ "name": "flag",
2371
+ "size": "sm"
2372
+ },
2373
+ {
2374
+ "type": "typography",
2375
+ "variant": "h4",
2376
+ "content": "@item.title"
2377
+ }
2378
+ ]
2127
2379
  },
2128
2380
  {
2129
- "type": "typography",
2130
- "variant": "h4",
2131
- "content": "@entity.title"
2381
+ "type": "badge",
2382
+ "label": "@item.description"
2132
2383
  }
2133
2384
  ]
2134
2385
  },
2135
2386
  {
2136
- "type": "badge",
2137
- "label": "@entity.description"
2387
+ "type": "typography",
2388
+ "variant": "caption",
2389
+ "content": "@item.status"
2138
2390
  }
2139
2391
  ]
2140
- },
2141
- {
2142
- "type": "typography",
2143
- "variant": "caption",
2144
- "content": "@entity.status"
2145
2392
  }
2146
2393
  ]
2147
2394
  }
@@ -2165,103 +2412,117 @@
2165
2412
  "render-ui",
2166
2413
  "main",
2167
2414
  {
2168
- "type": "stack",
2169
- "direction": "vertical",
2170
- "gap": "lg",
2415
+ "type": "game-shell",
2416
+ "appName": "RPG Game",
2417
+ "showTopBar": true,
2171
2418
  "children": [
2172
2419
  {
2173
2420
  "type": "stack",
2174
- "direction": "horizontal",
2175
- "gap": "md",
2176
- "justify": "space-between",
2421
+ "direction": "vertical",
2422
+ "gap": "lg",
2177
2423
  "children": [
2178
2424
  {
2179
2425
  "type": "stack",
2180
2426
  "direction": "horizontal",
2181
2427
  "gap": "md",
2428
+ "justify": "space-between",
2182
2429
  "children": [
2183
2430
  {
2184
- "type": "icon",
2185
- "name": "flag",
2186
- "size": "lg"
2431
+ "type": "stack",
2432
+ "direction": "horizontal",
2433
+ "gap": "md",
2434
+ "children": [
2435
+ {
2436
+ "type": "icon",
2437
+ "name": "flag",
2438
+ "size": "lg"
2439
+ },
2440
+ {
2441
+ "type": "typography",
2442
+ "content": "Missions Board",
2443
+ "variant": "h2"
2444
+ }
2445
+ ]
2187
2446
  },
2188
2447
  {
2189
- "type": "typography",
2190
- "content": "Missions Board",
2191
- "variant": "h2"
2448
+ "type": "badge",
2449
+ "label": "Active"
2192
2450
  }
2193
2451
  ]
2194
2452
  },
2195
2453
  {
2196
- "type": "badge",
2197
- "label": "Active"
2198
- }
2199
- ]
2200
- },
2201
- {
2202
- "type": "divider"
2203
- },
2204
- {
2205
- "type": "data-grid",
2206
- "entity": "Mission",
2207
- "emptyIcon": "inbox",
2208
- "emptyTitle": "No active quests",
2209
- "emptyDescription": "Accept a quest to begin.",
2210
- "itemActions": [
2211
- {
2212
- "label": "Progress",
2213
- "event": "PROGRESS"
2454
+ "type": "divider"
2214
2455
  },
2215
2456
  {
2216
- "label": "Complete",
2217
- "event": "COMPLETE"
2457
+ "type": "progress-bar",
2458
+ "value": 50,
2459
+ "showPercentage": true
2218
2460
  },
2219
2461
  {
2220
- "label": "Fail",
2221
- "event": "FAIL",
2222
- "variant": "danger"
2223
- }
2224
- ],
2225
- "children": [
2226
- {
2227
- "type": "stack",
2228
- "direction": "vertical",
2229
- "gap": "sm",
2230
- "children": [
2462
+ "type": "data-grid",
2463
+ "entity": "Mission",
2464
+ "emptyIcon": "inbox",
2465
+ "emptyTitle": "No active quests",
2466
+ "emptyDescription": "Accept a quest to begin.",
2467
+ "itemActions": [
2468
+ {
2469
+ "label": "Progress",
2470
+ "event": "PROGRESS"
2471
+ },
2472
+ {
2473
+ "label": "Complete",
2474
+ "event": "COMPLETE"
2475
+ },
2476
+ {
2477
+ "label": "Fail",
2478
+ "event": "FAIL",
2479
+ "variant": "danger"
2480
+ }
2481
+ ],
2482
+ "renderItem": [
2483
+ "fn",
2484
+ "item",
2231
2485
  {
2232
2486
  "type": "stack",
2233
- "direction": "horizontal",
2234
- "justify": "space-between",
2235
- "align": "center",
2487
+ "direction": "vertical",
2488
+ "gap": "sm",
2236
2489
  "children": [
2237
2490
  {
2238
2491
  "type": "stack",
2239
2492
  "direction": "horizontal",
2240
- "gap": "sm",
2493
+ "justify": "space-between",
2241
2494
  "align": "center",
2242
2495
  "children": [
2243
2496
  {
2244
- "type": "icon",
2245
- "name": "flag",
2246
- "size": "sm"
2497
+ "type": "stack",
2498
+ "direction": "horizontal",
2499
+ "gap": "sm",
2500
+ "align": "center",
2501
+ "children": [
2502
+ {
2503
+ "type": "icon",
2504
+ "name": "flag",
2505
+ "size": "sm"
2506
+ },
2507
+ {
2508
+ "type": "typography",
2509
+ "variant": "h4",
2510
+ "content": "@item.title"
2511
+ }
2512
+ ]
2247
2513
  },
2248
2514
  {
2249
- "type": "typography",
2250
- "variant": "h4",
2251
- "content": "@entity.title"
2515
+ "type": "badge",
2516
+ "label": "@item.description"
2252
2517
  }
2253
2518
  ]
2254
2519
  },
2255
2520
  {
2256
- "type": "badge",
2257
- "label": "@entity.description"
2521
+ "type": "typography",
2522
+ "variant": "caption",
2523
+ "content": "@item.status"
2258
2524
  }
2259
2525
  ]
2260
- },
2261
- {
2262
- "type": "typography",
2263
- "variant": "caption",
2264
- "content": "@entity.status"
2265
2526
  }
2266
2527
  ]
2267
2528
  }
@@ -2347,103 +2608,117 @@
2347
2608
  "render-ui",
2348
2609
  "main",
2349
2610
  {
2350
- "type": "stack",
2351
- "direction": "vertical",
2352
- "gap": "lg",
2611
+ "type": "game-shell",
2612
+ "appName": "RPG Game",
2613
+ "showTopBar": true,
2353
2614
  "children": [
2354
2615
  {
2355
2616
  "type": "stack",
2356
- "direction": "horizontal",
2357
- "gap": "md",
2358
- "justify": "space-between",
2617
+ "direction": "vertical",
2618
+ "gap": "lg",
2359
2619
  "children": [
2360
2620
  {
2361
2621
  "type": "stack",
2362
2622
  "direction": "horizontal",
2363
2623
  "gap": "md",
2624
+ "justify": "space-between",
2364
2625
  "children": [
2365
2626
  {
2366
- "type": "icon",
2367
- "name": "flag",
2368
- "size": "lg"
2627
+ "type": "stack",
2628
+ "direction": "horizontal",
2629
+ "gap": "md",
2630
+ "children": [
2631
+ {
2632
+ "type": "icon",
2633
+ "name": "flag",
2634
+ "size": "lg"
2635
+ },
2636
+ {
2637
+ "type": "typography",
2638
+ "content": "Missions Board",
2639
+ "variant": "h2"
2640
+ }
2641
+ ]
2369
2642
  },
2370
2643
  {
2371
- "type": "typography",
2372
- "content": "Missions Board",
2373
- "variant": "h2"
2644
+ "type": "badge",
2645
+ "label": "Active"
2374
2646
  }
2375
2647
  ]
2376
2648
  },
2377
2649
  {
2378
- "type": "badge",
2379
- "label": "Active"
2380
- }
2381
- ]
2382
- },
2383
- {
2384
- "type": "divider"
2385
- },
2386
- {
2387
- "type": "data-grid",
2388
- "entity": "Mission",
2389
- "emptyIcon": "inbox",
2390
- "emptyTitle": "No active quests",
2391
- "emptyDescription": "Accept a quest to begin.",
2392
- "itemActions": [
2393
- {
2394
- "label": "Progress",
2395
- "event": "PROGRESS"
2650
+ "type": "divider"
2396
2651
  },
2397
2652
  {
2398
- "label": "Complete",
2399
- "event": "COMPLETE"
2653
+ "type": "progress-bar",
2654
+ "value": 50,
2655
+ "showPercentage": true
2400
2656
  },
2401
2657
  {
2402
- "label": "Fail",
2403
- "event": "FAIL",
2404
- "variant": "danger"
2405
- }
2406
- ],
2407
- "children": [
2408
- {
2409
- "type": "stack",
2410
- "direction": "vertical",
2411
- "gap": "sm",
2412
- "children": [
2658
+ "type": "data-grid",
2659
+ "entity": "Mission",
2660
+ "emptyIcon": "inbox",
2661
+ "emptyTitle": "No active quests",
2662
+ "emptyDescription": "Accept a quest to begin.",
2663
+ "itemActions": [
2664
+ {
2665
+ "label": "Progress",
2666
+ "event": "PROGRESS"
2667
+ },
2668
+ {
2669
+ "label": "Complete",
2670
+ "event": "COMPLETE"
2671
+ },
2672
+ {
2673
+ "label": "Fail",
2674
+ "event": "FAIL",
2675
+ "variant": "danger"
2676
+ }
2677
+ ],
2678
+ "renderItem": [
2679
+ "fn",
2680
+ "item",
2413
2681
  {
2414
2682
  "type": "stack",
2415
- "direction": "horizontal",
2416
- "justify": "space-between",
2417
- "align": "center",
2683
+ "direction": "vertical",
2684
+ "gap": "sm",
2418
2685
  "children": [
2419
2686
  {
2420
2687
  "type": "stack",
2421
2688
  "direction": "horizontal",
2422
- "gap": "sm",
2689
+ "justify": "space-between",
2423
2690
  "align": "center",
2424
2691
  "children": [
2425
2692
  {
2426
- "type": "icon",
2427
- "name": "flag",
2428
- "size": "sm"
2693
+ "type": "stack",
2694
+ "direction": "horizontal",
2695
+ "gap": "sm",
2696
+ "align": "center",
2697
+ "children": [
2698
+ {
2699
+ "type": "icon",
2700
+ "name": "flag",
2701
+ "size": "sm"
2702
+ },
2703
+ {
2704
+ "type": "typography",
2705
+ "variant": "h4",
2706
+ "content": "@item.title"
2707
+ }
2708
+ ]
2429
2709
  },
2430
2710
  {
2431
- "type": "typography",
2432
- "variant": "h4",
2433
- "content": "@entity.title"
2711
+ "type": "badge",
2712
+ "label": "@item.description"
2434
2713
  }
2435
2714
  ]
2436
2715
  },
2437
2716
  {
2438
- "type": "badge",
2439
- "label": "@entity.description"
2717
+ "type": "typography",
2718
+ "variant": "caption",
2719
+ "content": "@item.status"
2440
2720
  }
2441
2721
  ]
2442
- },
2443
- {
2444
- "type": "typography",
2445
- "variant": "caption",
2446
- "content": "@entity.status"
2447
2722
  }
2448
2723
  ]
2449
2724
  }
@@ -2467,6 +2742,133 @@
2467
2742
  "render-ui",
2468
2743
  "modal",
2469
2744
  null
2745
+ ],
2746
+ [
2747
+ "fetch",
2748
+ "Mission"
2749
+ ],
2750
+ [
2751
+ "render-ui",
2752
+ "main",
2753
+ {
2754
+ "type": "game-shell",
2755
+ "appName": "RPG Game",
2756
+ "showTopBar": true,
2757
+ "children": [
2758
+ {
2759
+ "type": "stack",
2760
+ "direction": "vertical",
2761
+ "gap": "lg",
2762
+ "children": [
2763
+ {
2764
+ "type": "stack",
2765
+ "direction": "horizontal",
2766
+ "gap": "md",
2767
+ "justify": "space-between",
2768
+ "children": [
2769
+ {
2770
+ "type": "stack",
2771
+ "direction": "horizontal",
2772
+ "gap": "md",
2773
+ "children": [
2774
+ {
2775
+ "type": "icon",
2776
+ "name": "flag",
2777
+ "size": "lg"
2778
+ },
2779
+ {
2780
+ "type": "typography",
2781
+ "content": "Missions Board",
2782
+ "variant": "h2"
2783
+ }
2784
+ ]
2785
+ },
2786
+ {
2787
+ "type": "badge",
2788
+ "label": "Active"
2789
+ }
2790
+ ]
2791
+ },
2792
+ {
2793
+ "type": "divider"
2794
+ },
2795
+ {
2796
+ "type": "progress-bar",
2797
+ "value": 50,
2798
+ "showPercentage": true
2799
+ },
2800
+ {
2801
+ "type": "data-grid",
2802
+ "entity": "Mission",
2803
+ "emptyIcon": "inbox",
2804
+ "emptyTitle": "No active quests",
2805
+ "emptyDescription": "Accept a quest to begin.",
2806
+ "itemActions": [
2807
+ {
2808
+ "label": "Progress",
2809
+ "event": "PROGRESS"
2810
+ },
2811
+ {
2812
+ "label": "Complete",
2813
+ "event": "COMPLETE"
2814
+ },
2815
+ {
2816
+ "label": "Fail",
2817
+ "event": "FAIL",
2818
+ "variant": "danger"
2819
+ }
2820
+ ],
2821
+ "renderItem": [
2822
+ "fn",
2823
+ "item",
2824
+ {
2825
+ "type": "stack",
2826
+ "direction": "vertical",
2827
+ "gap": "sm",
2828
+ "children": [
2829
+ {
2830
+ "type": "stack",
2831
+ "direction": "horizontal",
2832
+ "justify": "space-between",
2833
+ "align": "center",
2834
+ "children": [
2835
+ {
2836
+ "type": "stack",
2837
+ "direction": "horizontal",
2838
+ "gap": "sm",
2839
+ "align": "center",
2840
+ "children": [
2841
+ {
2842
+ "type": "icon",
2843
+ "name": "flag",
2844
+ "size": "sm"
2845
+ },
2846
+ {
2847
+ "type": "typography",
2848
+ "variant": "h4",
2849
+ "content": "@item.title"
2850
+ }
2851
+ ]
2852
+ },
2853
+ {
2854
+ "type": "badge",
2855
+ "label": "@item.description"
2856
+ }
2857
+ ]
2858
+ },
2859
+ {
2860
+ "type": "typography",
2861
+ "variant": "caption",
2862
+ "content": "@item.status"
2863
+ }
2864
+ ]
2865
+ }
2866
+ ]
2867
+ }
2868
+ ]
2869
+ }
2870
+ ]
2871
+ }
2470
2872
  ]
2471
2873
  ]
2472
2874
  },
@@ -2479,6 +2881,133 @@
2479
2881
  "render-ui",
2480
2882
  "modal",
2481
2883
  null
2884
+ ],
2885
+ [
2886
+ "fetch",
2887
+ "Mission"
2888
+ ],
2889
+ [
2890
+ "render-ui",
2891
+ "main",
2892
+ {
2893
+ "type": "game-shell",
2894
+ "appName": "RPG Game",
2895
+ "showTopBar": true,
2896
+ "children": [
2897
+ {
2898
+ "type": "stack",
2899
+ "direction": "vertical",
2900
+ "gap": "lg",
2901
+ "children": [
2902
+ {
2903
+ "type": "stack",
2904
+ "direction": "horizontal",
2905
+ "gap": "md",
2906
+ "justify": "space-between",
2907
+ "children": [
2908
+ {
2909
+ "type": "stack",
2910
+ "direction": "horizontal",
2911
+ "gap": "md",
2912
+ "children": [
2913
+ {
2914
+ "type": "icon",
2915
+ "name": "flag",
2916
+ "size": "lg"
2917
+ },
2918
+ {
2919
+ "type": "typography",
2920
+ "content": "Missions Board",
2921
+ "variant": "h2"
2922
+ }
2923
+ ]
2924
+ },
2925
+ {
2926
+ "type": "badge",
2927
+ "label": "Active"
2928
+ }
2929
+ ]
2930
+ },
2931
+ {
2932
+ "type": "divider"
2933
+ },
2934
+ {
2935
+ "type": "progress-bar",
2936
+ "value": 50,
2937
+ "showPercentage": true
2938
+ },
2939
+ {
2940
+ "type": "data-grid",
2941
+ "entity": "Mission",
2942
+ "emptyIcon": "inbox",
2943
+ "emptyTitle": "No active quests",
2944
+ "emptyDescription": "Accept a quest to begin.",
2945
+ "itemActions": [
2946
+ {
2947
+ "label": "Progress",
2948
+ "event": "PROGRESS"
2949
+ },
2950
+ {
2951
+ "label": "Complete",
2952
+ "event": "COMPLETE"
2953
+ },
2954
+ {
2955
+ "label": "Fail",
2956
+ "event": "FAIL",
2957
+ "variant": "danger"
2958
+ }
2959
+ ],
2960
+ "renderItem": [
2961
+ "fn",
2962
+ "item",
2963
+ {
2964
+ "type": "stack",
2965
+ "direction": "vertical",
2966
+ "gap": "sm",
2967
+ "children": [
2968
+ {
2969
+ "type": "stack",
2970
+ "direction": "horizontal",
2971
+ "justify": "space-between",
2972
+ "align": "center",
2973
+ "children": [
2974
+ {
2975
+ "type": "stack",
2976
+ "direction": "horizontal",
2977
+ "gap": "sm",
2978
+ "align": "center",
2979
+ "children": [
2980
+ {
2981
+ "type": "icon",
2982
+ "name": "flag",
2983
+ "size": "sm"
2984
+ },
2985
+ {
2986
+ "type": "typography",
2987
+ "variant": "h4",
2988
+ "content": "@item.title"
2989
+ }
2990
+ ]
2991
+ },
2992
+ {
2993
+ "type": "badge",
2994
+ "label": "@item.description"
2995
+ }
2996
+ ]
2997
+ },
2998
+ {
2999
+ "type": "typography",
3000
+ "variant": "caption",
3001
+ "content": "@item.status"
3002
+ }
3003
+ ]
3004
+ }
3005
+ ]
3006
+ }
3007
+ ]
3008
+ }
3009
+ ]
3010
+ }
2482
3011
  ]
2483
3012
  ]
2484
3013
  },
@@ -2491,32 +3020,39 @@
2491
3020
  "render-ui",
2492
3021
  "main",
2493
3022
  {
2494
- "type": "stack",
2495
- "direction": "vertical",
2496
- "gap": "lg",
2497
- "align": "center",
3023
+ "type": "game-shell",
3024
+ "appName": "RPG Game",
3025
+ "showTopBar": true,
2498
3026
  "children": [
2499
3027
  {
2500
- "type": "icon",
2501
- "name": "check-circle",
2502
- "size": "lg"
2503
- },
2504
- {
2505
- "type": "typography",
2506
- "content": "Quest Complete",
2507
- "variant": "h2"
2508
- },
2509
- {
2510
- "type": "typography",
2511
- "content": "Congratulations! The quest has been completed.",
2512
- "variant": "body"
2513
- },
2514
- {
2515
- "type": "button",
2516
- "label": "View Quests",
2517
- "event": "RESET",
2518
- "variant": "primary",
2519
- "icon": "arrow-left"
3028
+ "type": "stack",
3029
+ "direction": "vertical",
3030
+ "gap": "lg",
3031
+ "align": "center",
3032
+ "children": [
3033
+ {
3034
+ "type": "icon",
3035
+ "name": "check-circle",
3036
+ "size": "lg"
3037
+ },
3038
+ {
3039
+ "type": "typography",
3040
+ "content": "Quest Complete",
3041
+ "variant": "h2"
3042
+ },
3043
+ {
3044
+ "type": "alert",
3045
+ "variant": "success",
3046
+ "message": "Congratulations! The quest has been completed."
3047
+ },
3048
+ {
3049
+ "type": "button",
3050
+ "label": "View Quests",
3051
+ "event": "RESET",
3052
+ "variant": "primary",
3053
+ "icon": "arrow-left"
3054
+ }
3055
+ ]
2520
3056
  }
2521
3057
  ]
2522
3058
  }
@@ -2532,32 +3068,39 @@
2532
3068
  "render-ui",
2533
3069
  "main",
2534
3070
  {
2535
- "type": "stack",
2536
- "direction": "vertical",
2537
- "gap": "lg",
2538
- "align": "center",
3071
+ "type": "game-shell",
3072
+ "appName": "RPG Game",
3073
+ "showTopBar": true,
2539
3074
  "children": [
2540
3075
  {
2541
- "type": "icon",
2542
- "name": "x-circle",
2543
- "size": "lg"
2544
- },
2545
- {
2546
- "type": "typography",
2547
- "content": "Quest Failed",
2548
- "variant": "h2"
2549
- },
2550
- {
2551
- "type": "typography",
2552
- "content": "The quest was not completed. You can try again.",
2553
- "variant": "body"
2554
- },
2555
- {
2556
- "type": "button",
2557
- "label": "View Quests",
2558
- "event": "RESET",
2559
- "variant": "primary",
2560
- "icon": "arrow-left"
3076
+ "type": "stack",
3077
+ "direction": "vertical",
3078
+ "gap": "lg",
3079
+ "align": "center",
3080
+ "children": [
3081
+ {
3082
+ "type": "icon",
3083
+ "name": "x-circle",
3084
+ "size": "lg"
3085
+ },
3086
+ {
3087
+ "type": "typography",
3088
+ "content": "Quest Failed",
3089
+ "variant": "h2"
3090
+ },
3091
+ {
3092
+ "type": "alert",
3093
+ "variant": "danger",
3094
+ "message": "The quest was not completed. You can try again."
3095
+ },
3096
+ {
3097
+ "type": "button",
3098
+ "label": "View Quests",
3099
+ "event": "RESET",
3100
+ "variant": "primary",
3101
+ "icon": "arrow-left"
3102
+ }
3103
+ ]
2561
3104
  }
2562
3105
  ]
2563
3106
  }
@@ -2577,90 +3120,100 @@
2577
3120
  "render-ui",
2578
3121
  "main",
2579
3122
  {
2580
- "type": "stack",
2581
- "direction": "vertical",
2582
- "gap": "lg",
3123
+ "type": "game-shell",
3124
+ "appName": "RPG Game",
3125
+ "showTopBar": true,
2583
3126
  "children": [
2584
3127
  {
2585
3128
  "type": "stack",
2586
- "direction": "horizontal",
2587
- "gap": "md",
2588
- "justify": "space-between",
3129
+ "direction": "vertical",
3130
+ "gap": "lg",
2589
3131
  "children": [
2590
3132
  {
2591
3133
  "type": "stack",
2592
3134
  "direction": "horizontal",
2593
3135
  "gap": "md",
3136
+ "justify": "space-between",
2594
3137
  "children": [
2595
3138
  {
2596
- "type": "icon",
2597
- "name": "flag",
2598
- "size": "lg"
2599
- },
2600
- {
2601
- "type": "typography",
2602
- "content": "Missions Board",
2603
- "variant": "h2"
3139
+ "type": "stack",
3140
+ "direction": "horizontal",
3141
+ "gap": "md",
3142
+ "children": [
3143
+ {
3144
+ "type": "icon",
3145
+ "name": "flag",
3146
+ "size": "lg"
3147
+ },
3148
+ {
3149
+ "type": "typography",
3150
+ "content": "Missions Board",
3151
+ "variant": "h2"
3152
+ }
3153
+ ]
2604
3154
  }
2605
3155
  ]
2606
- }
2607
- ]
2608
- },
2609
- {
2610
- "type": "divider"
2611
- },
2612
- {
2613
- "type": "data-grid",
2614
- "entity": "Mission",
2615
- "emptyIcon": "inbox",
2616
- "emptyTitle": "No missions available",
2617
- "emptyDescription": "Check back later for new missions.",
2618
- "itemActions": [
3156
+ },
2619
3157
  {
2620
- "label": "Accept",
2621
- "event": "ACCEPT"
2622
- }
2623
- ],
2624
- "children": [
3158
+ "type": "divider"
3159
+ },
2625
3160
  {
2626
- "type": "stack",
2627
- "direction": "vertical",
2628
- "gap": "sm",
2629
- "children": [
3161
+ "type": "data-list",
3162
+ "entity": "Mission",
3163
+ "groupBy": "status",
3164
+ "emptyIcon": "inbox",
3165
+ "emptyTitle": "No missions available",
3166
+ "emptyDescription": "Check back later for new missions.",
3167
+ "itemActions": [
3168
+ {
3169
+ "label": "Accept",
3170
+ "event": "ACCEPT"
3171
+ }
3172
+ ],
3173
+ "renderItem": [
3174
+ "fn",
3175
+ "item",
2630
3176
  {
2631
3177
  "type": "stack",
2632
- "direction": "horizontal",
2633
- "justify": "space-between",
2634
- "align": "center",
3178
+ "direction": "vertical",
3179
+ "gap": "sm",
2635
3180
  "children": [
2636
3181
  {
2637
3182
  "type": "stack",
2638
3183
  "direction": "horizontal",
2639
- "gap": "sm",
3184
+ "justify": "space-between",
2640
3185
  "align": "center",
2641
3186
  "children": [
2642
3187
  {
2643
- "type": "icon",
2644
- "name": "flag",
2645
- "size": "sm"
3188
+ "type": "stack",
3189
+ "direction": "horizontal",
3190
+ "gap": "sm",
3191
+ "align": "center",
3192
+ "children": [
3193
+ {
3194
+ "type": "icon",
3195
+ "name": "flag",
3196
+ "size": "sm"
3197
+ },
3198
+ {
3199
+ "type": "typography",
3200
+ "variant": "h4",
3201
+ "content": "@item.title"
3202
+ }
3203
+ ]
2646
3204
  },
2647
3205
  {
2648
- "type": "typography",
2649
- "variant": "h4",
2650
- "content": "@entity.title"
3206
+ "type": "badge",
3207
+ "label": "@item.description"
2651
3208
  }
2652
3209
  ]
2653
3210
  },
2654
3211
  {
2655
- "type": "badge",
2656
- "label": "@entity.description"
3212
+ "type": "typography",
3213
+ "variant": "caption",
3214
+ "content": "@item.status"
2657
3215
  }
2658
3216
  ]
2659
- },
2660
- {
2661
- "type": "typography",
2662
- "variant": "caption",
2663
- "content": "@entity.status"
2664
3217
  }
2665
3218
  ]
2666
3219
  }
@@ -2684,90 +3237,100 @@
2684
3237
  "render-ui",
2685
3238
  "main",
2686
3239
  {
2687
- "type": "stack",
2688
- "direction": "vertical",
2689
- "gap": "lg",
3240
+ "type": "game-shell",
3241
+ "appName": "RPG Game",
3242
+ "showTopBar": true,
2690
3243
  "children": [
2691
3244
  {
2692
3245
  "type": "stack",
2693
- "direction": "horizontal",
2694
- "gap": "md",
2695
- "justify": "space-between",
3246
+ "direction": "vertical",
3247
+ "gap": "lg",
2696
3248
  "children": [
2697
3249
  {
2698
3250
  "type": "stack",
2699
3251
  "direction": "horizontal",
2700
3252
  "gap": "md",
3253
+ "justify": "space-between",
2701
3254
  "children": [
2702
3255
  {
2703
- "type": "icon",
2704
- "name": "flag",
2705
- "size": "lg"
2706
- },
2707
- {
2708
- "type": "typography",
2709
- "content": "Missions Board",
2710
- "variant": "h2"
3256
+ "type": "stack",
3257
+ "direction": "horizontal",
3258
+ "gap": "md",
3259
+ "children": [
3260
+ {
3261
+ "type": "icon",
3262
+ "name": "flag",
3263
+ "size": "lg"
3264
+ },
3265
+ {
3266
+ "type": "typography",
3267
+ "content": "Missions Board",
3268
+ "variant": "h2"
3269
+ }
3270
+ ]
2711
3271
  }
2712
3272
  ]
2713
- }
2714
- ]
2715
- },
2716
- {
2717
- "type": "divider"
2718
- },
2719
- {
2720
- "type": "data-grid",
2721
- "entity": "Mission",
2722
- "emptyIcon": "inbox",
2723
- "emptyTitle": "No missions available",
2724
- "emptyDescription": "Check back later for new missions.",
2725
- "itemActions": [
3273
+ },
2726
3274
  {
2727
- "label": "Accept",
2728
- "event": "ACCEPT"
2729
- }
2730
- ],
2731
- "children": [
3275
+ "type": "divider"
3276
+ },
2732
3277
  {
2733
- "type": "stack",
2734
- "direction": "vertical",
2735
- "gap": "sm",
2736
- "children": [
3278
+ "type": "data-list",
3279
+ "entity": "Mission",
3280
+ "groupBy": "status",
3281
+ "emptyIcon": "inbox",
3282
+ "emptyTitle": "No missions available",
3283
+ "emptyDescription": "Check back later for new missions.",
3284
+ "itemActions": [
3285
+ {
3286
+ "label": "Accept",
3287
+ "event": "ACCEPT"
3288
+ }
3289
+ ],
3290
+ "renderItem": [
3291
+ "fn",
3292
+ "item",
2737
3293
  {
2738
3294
  "type": "stack",
2739
- "direction": "horizontal",
2740
- "justify": "space-between",
2741
- "align": "center",
3295
+ "direction": "vertical",
3296
+ "gap": "sm",
2742
3297
  "children": [
2743
3298
  {
2744
3299
  "type": "stack",
2745
3300
  "direction": "horizontal",
2746
- "gap": "sm",
3301
+ "justify": "space-between",
2747
3302
  "align": "center",
2748
3303
  "children": [
2749
3304
  {
2750
- "type": "icon",
2751
- "name": "flag",
2752
- "size": "sm"
3305
+ "type": "stack",
3306
+ "direction": "horizontal",
3307
+ "gap": "sm",
3308
+ "align": "center",
3309
+ "children": [
3310
+ {
3311
+ "type": "icon",
3312
+ "name": "flag",
3313
+ "size": "sm"
3314
+ },
3315
+ {
3316
+ "type": "typography",
3317
+ "variant": "h4",
3318
+ "content": "@item.title"
3319
+ }
3320
+ ]
2753
3321
  },
2754
3322
  {
2755
- "type": "typography",
2756
- "variant": "h4",
2757
- "content": "@entity.title"
3323
+ "type": "badge",
3324
+ "label": "@item.description"
2758
3325
  }
2759
3326
  ]
2760
3327
  },
2761
3328
  {
2762
- "type": "badge",
2763
- "label": "@entity.description"
3329
+ "type": "typography",
3330
+ "variant": "caption",
3331
+ "content": "@item.status"
2764
3332
  }
2765
3333
  ]
2766
- },
2767
- {
2768
- "type": "typography",
2769
- "variant": "caption",
2770
- "content": "@entity.status"
2771
3334
  }
2772
3335
  ]
2773
3336
  }