@almadar/std 3.2.0 → 3.2.2

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 (262) hide show
  1. package/behaviors/exports/atoms/std-async.orb +41 -24
  2. package/behaviors/exports/atoms/std-browse.orb +12 -5
  3. package/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  5. package/behaviors/exports/atoms/std-collision.orb +278 -206
  6. package/behaviors/exports/atoms/std-combat-log.orb +6 -1
  7. package/behaviors/exports/atoms/std-combat.orb +6 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +212 -7
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  10. package/behaviors/exports/atoms/std-display.orb +166 -21
  11. package/behaviors/exports/atoms/std-drawer.orb +208 -104
  12. package/behaviors/exports/atoms/std-filter.orb +211 -18
  13. package/behaviors/exports/atoms/std-game-audio.orb +6 -1
  14. package/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  15. package/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  16. package/behaviors/exports/atoms/std-game-hud.orb +6 -1
  17. package/behaviors/exports/atoms/std-game-menu.orb +6 -1
  18. package/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  19. package/behaviors/exports/atoms/std-gameflow.orb +100 -5
  20. package/behaviors/exports/atoms/std-input.orb +142 -137
  21. package/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  22. package/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  23. package/behaviors/exports/atoms/std-loading.orb +27 -76
  24. package/behaviors/exports/atoms/std-modal.orb +177 -93
  25. package/behaviors/exports/atoms/std-movement.orb +401 -31
  26. package/behaviors/exports/atoms/std-notification.orb +46 -95
  27. package/behaviors/exports/atoms/std-overworld.orb +44 -16
  28. package/behaviors/exports/atoms/std-pagination.orb +26 -89
  29. package/behaviors/exports/atoms/std-physics2d.orb +6 -1
  30. package/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  31. package/behaviors/exports/atoms/std-quest.orb +309 -34
  32. package/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  33. package/behaviors/exports/atoms/std-score-board.orb +6 -1
  34. package/behaviors/exports/atoms/std-score.orb +211 -11
  35. package/behaviors/exports/atoms/std-search.orb +28 -27
  36. package/behaviors/exports/atoms/std-selection.orb +160 -121
  37. package/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  38. package/behaviors/exports/atoms/std-sort.orb +134 -24
  39. package/behaviors/exports/atoms/std-sprite.orb +6 -1
  40. package/behaviors/exports/atoms/std-tabs.orb +25 -15
  41. package/behaviors/exports/atoms/std-timer.orb +483 -91
  42. package/behaviors/exports/atoms/std-undo.orb +211 -81
  43. package/behaviors/exports/atoms/std-wizard.orb +31 -34
  44. package/behaviors/exports/molecules/std-builder-game.orb +6 -1
  45. package/behaviors/exports/molecules/std-cart.orb +6 -1
  46. package/behaviors/exports/molecules/std-classifier-game.orb +6 -1
  47. package/behaviors/exports/molecules/std-debugger-game.orb +6 -1
  48. package/behaviors/exports/molecules/std-detail.orb +12 -5
  49. package/behaviors/exports/molecules/std-event-handler-game.orb +6 -1
  50. package/behaviors/exports/molecules/std-geospatial.orb +28 -9
  51. package/behaviors/exports/molecules/std-inventory.orb +28 -9
  52. package/behaviors/exports/molecules/std-list.orb +392 -5
  53. package/behaviors/exports/molecules/std-messaging.orb +12 -5
  54. package/behaviors/exports/molecules/std-negotiator-game.orb +6 -1
  55. package/behaviors/exports/molecules/std-platformer-game.orb +40 -1
  56. package/behaviors/exports/molecules/std-puzzle-game.orb +26 -1
  57. package/behaviors/exports/molecules/std-sequencer-game.orb +6 -1
  58. package/behaviors/exports/molecules/std-simulator-game.orb +6 -1
  59. package/behaviors/exports/molecules/std-turn-based-battle.orb +40 -1
  60. package/behaviors/exports/organisms/std-api-gateway.orb +1145 -403
  61. package/behaviors/exports/organisms/std-arcade-game.orb +214 -16
  62. package/behaviors/exports/organisms/std-booking-system.orb +2165 -1605
  63. package/behaviors/exports/organisms/std-cicd-pipeline.orb +581 -47
  64. package/behaviors/exports/organisms/std-cms.orb +1713 -947
  65. package/behaviors/exports/organisms/std-coding-academy.orb +180 -380
  66. package/behaviors/exports/organisms/std-crm.orb +1669 -1153
  67. package/behaviors/exports/organisms/std-devops-dashboard.orb +1430 -378
  68. package/behaviors/exports/organisms/std-ecommerce.orb +2361 -1601
  69. package/behaviors/exports/organisms/std-finance-tracker.orb +622 -438
  70. package/behaviors/exports/organisms/std-healthcare.orb +1687 -1125
  71. package/behaviors/exports/organisms/std-helpdesk.orb +626 -407
  72. package/behaviors/exports/organisms/std-hr-portal.orb +1309 -714
  73. package/behaviors/exports/organisms/std-iot-dashboard.orb +1247 -335
  74. package/behaviors/exports/organisms/std-lms.orb +658 -362
  75. package/behaviors/exports/organisms/std-platformer-app.orb +56 -8
  76. package/behaviors/exports/organisms/std-project-manager.orb +1697 -1183
  77. package/behaviors/exports/organisms/std-puzzle-app.orb +20 -0
  78. package/behaviors/exports/organisms/std-realtime-chat.orb +552 -28
  79. package/behaviors/exports/organisms/std-rpg-game.orb +397 -56
  80. package/behaviors/exports/organisms/std-social-feed.orb +12 -8
  81. package/behaviors/exports/organisms/std-stem-lab.orb +175 -290
  82. package/behaviors/exports/organisms/std-strategy-game.orb +252 -395
  83. package/behaviors/exports/organisms/std-trading-dashboard.orb +718 -524
  84. package/behaviors/exports/validation-report.json +747 -0
  85. package/behaviors/exports/verify-results.json +13 -0
  86. package/dist/behaviors/exports/atoms/std-async.orb +41 -24
  87. package/dist/behaviors/exports/atoms/std-browse.orb +12 -5
  88. package/dist/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  89. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  90. package/dist/behaviors/exports/atoms/std-collision.orb +278 -206
  91. package/dist/behaviors/exports/atoms/std-combat-log.orb +6 -1
  92. package/dist/behaviors/exports/atoms/std-combat.orb +6 -1
  93. package/dist/behaviors/exports/atoms/std-confirmation.orb +212 -7
  94. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  95. package/dist/behaviors/exports/atoms/std-display.orb +166 -21
  96. package/dist/behaviors/exports/atoms/std-drawer.orb +208 -104
  97. package/dist/behaviors/exports/atoms/std-filter.orb +211 -18
  98. package/dist/behaviors/exports/atoms/std-game-audio.orb +6 -1
  99. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  100. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  101. package/dist/behaviors/exports/atoms/std-game-hud.orb +6 -1
  102. package/dist/behaviors/exports/atoms/std-game-menu.orb +6 -1
  103. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  104. package/dist/behaviors/exports/atoms/std-gameflow.orb +100 -5
  105. package/dist/behaviors/exports/atoms/std-input.orb +142 -137
  106. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  107. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  108. package/dist/behaviors/exports/atoms/std-loading.orb +27 -76
  109. package/dist/behaviors/exports/atoms/std-modal.orb +177 -93
  110. package/dist/behaviors/exports/atoms/std-movement.orb +401 -31
  111. package/dist/behaviors/exports/atoms/std-notification.orb +46 -95
  112. package/dist/behaviors/exports/atoms/std-overworld.orb +44 -16
  113. package/dist/behaviors/exports/atoms/std-pagination.orb +26 -89
  114. package/dist/behaviors/exports/atoms/std-physics2d.orb +6 -1
  115. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  116. package/dist/behaviors/exports/atoms/std-quest.orb +309 -34
  117. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  118. package/dist/behaviors/exports/atoms/std-score-board.orb +6 -1
  119. package/dist/behaviors/exports/atoms/std-score.orb +211 -11
  120. package/dist/behaviors/exports/atoms/std-search.orb +28 -27
  121. package/dist/behaviors/exports/atoms/std-selection.orb +160 -121
  122. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  123. package/dist/behaviors/exports/atoms/std-sort.orb +134 -24
  124. package/dist/behaviors/exports/atoms/std-sprite.orb +6 -1
  125. package/dist/behaviors/exports/atoms/std-tabs.orb +25 -15
  126. package/dist/behaviors/exports/atoms/std-timer.orb +483 -91
  127. package/dist/behaviors/exports/atoms/std-undo.orb +211 -81
  128. package/dist/behaviors/exports/atoms/std-wizard.orb +31 -34
  129. package/dist/behaviors/exports/molecules/std-builder-game.orb +6 -1
  130. package/dist/behaviors/exports/molecules/std-cart.orb +6 -1
  131. package/dist/behaviors/exports/molecules/std-classifier-game.orb +6 -1
  132. package/dist/behaviors/exports/molecules/std-debugger-game.orb +6 -1
  133. package/dist/behaviors/exports/molecules/std-detail.orb +12 -5
  134. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +6 -1
  135. package/dist/behaviors/exports/molecules/std-geospatial.orb +28 -9
  136. package/dist/behaviors/exports/molecules/std-inventory.orb +28 -9
  137. package/dist/behaviors/exports/molecules/std-list.orb +392 -5
  138. package/dist/behaviors/exports/molecules/std-messaging.orb +12 -5
  139. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +6 -1
  140. package/dist/behaviors/exports/molecules/std-platformer-game.orb +40 -1
  141. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +26 -1
  142. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +6 -1
  143. package/dist/behaviors/exports/molecules/std-simulator-game.orb +6 -1
  144. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +40 -1
  145. package/dist/behaviors/exports/organisms/std-api-gateway.orb +1145 -403
  146. package/dist/behaviors/exports/organisms/std-arcade-game.orb +214 -16
  147. package/dist/behaviors/exports/organisms/std-booking-system.orb +2165 -1605
  148. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +581 -47
  149. package/dist/behaviors/exports/organisms/std-cms.orb +1713 -947
  150. package/dist/behaviors/exports/organisms/std-coding-academy.orb +180 -380
  151. package/dist/behaviors/exports/organisms/std-crm.orb +1669 -1153
  152. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +1430 -378
  153. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2361 -1601
  154. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +622 -438
  155. package/dist/behaviors/exports/organisms/std-healthcare.orb +1687 -1125
  156. package/dist/behaviors/exports/organisms/std-helpdesk.orb +626 -407
  157. package/dist/behaviors/exports/organisms/std-hr-portal.orb +1309 -714
  158. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +1247 -335
  159. package/dist/behaviors/exports/organisms/std-lms.orb +658 -362
  160. package/dist/behaviors/exports/organisms/std-platformer-app.orb +56 -8
  161. package/dist/behaviors/exports/organisms/std-project-manager.orb +1697 -1183
  162. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +20 -0
  163. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +552 -28
  164. package/dist/behaviors/exports/organisms/std-rpg-game.orb +397 -56
  165. package/dist/behaviors/exports/organisms/std-social-feed.orb +12 -8
  166. package/dist/behaviors/exports/organisms/std-stem-lab.orb +175 -290
  167. package/dist/behaviors/exports/organisms/std-strategy-game.orb +252 -395
  168. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +718 -524
  169. package/dist/behaviors/exports/validation-report.json +747 -0
  170. package/dist/behaviors/exports/verify-results.json +13 -0
  171. package/dist/behaviors/functions/index.js +715 -593
  172. package/dist/behaviors/functions/index.js.map +1 -1
  173. package/dist/behaviors/index.js +715 -593
  174. package/dist/behaviors/index.js.map +1 -1
  175. package/dist/exports/atoms/std-async.orb +41 -24
  176. package/dist/exports/atoms/std-browse.orb +12 -5
  177. package/dist/exports/atoms/std-cache-aside.orb +256 -42
  178. package/dist/exports/atoms/std-circuit-breaker.orb +577 -97
  179. package/dist/exports/atoms/std-collision.orb +278 -206
  180. package/dist/exports/atoms/std-combat-log.orb +6 -1
  181. package/dist/exports/atoms/std-combat.orb +6 -1
  182. package/dist/exports/atoms/std-confirmation.orb +212 -7
  183. package/dist/exports/atoms/std-dialogue-box.orb +6 -1
  184. package/dist/exports/atoms/std-display.orb +166 -21
  185. package/dist/exports/atoms/std-drawer.orb +208 -104
  186. package/dist/exports/atoms/std-filter.orb +211 -18
  187. package/dist/exports/atoms/std-game-audio.orb +6 -1
  188. package/dist/exports/atoms/std-game-canvas2d.orb +6 -1
  189. package/dist/exports/atoms/std-game-canvas3d.orb +6 -1
  190. package/dist/exports/atoms/std-game-hud.orb +6 -1
  191. package/dist/exports/atoms/std-game-menu.orb +6 -1
  192. package/dist/exports/atoms/std-game-over-screen.orb +6 -1
  193. package/dist/exports/atoms/std-gameflow.orb +100 -5
  194. package/dist/exports/atoms/std-input.orb +142 -137
  195. package/dist/exports/atoms/std-inventory-panel.orb +6 -1
  196. package/dist/exports/atoms/std-isometric-canvas.orb +6 -1
  197. package/dist/exports/atoms/std-loading.orb +27 -76
  198. package/dist/exports/atoms/std-modal.orb +177 -93
  199. package/dist/exports/atoms/std-movement.orb +401 -31
  200. package/dist/exports/atoms/std-notification.orb +46 -95
  201. package/dist/exports/atoms/std-overworld.orb +44 -16
  202. package/dist/exports/atoms/std-pagination.orb +26 -89
  203. package/dist/exports/atoms/std-physics2d.orb +6 -1
  204. package/dist/exports/atoms/std-platformer-canvas.orb +6 -1
  205. package/dist/exports/atoms/std-quest.orb +309 -34
  206. package/dist/exports/atoms/std-rate-limiter.orb +410 -157
  207. package/dist/exports/atoms/std-score-board.orb +6 -1
  208. package/dist/exports/atoms/std-score.orb +211 -11
  209. package/dist/exports/atoms/std-search.orb +28 -27
  210. package/dist/exports/atoms/std-selection.orb +160 -121
  211. package/dist/exports/atoms/std-simulation-canvas.orb +6 -1
  212. package/dist/exports/atoms/std-sort.orb +134 -24
  213. package/dist/exports/atoms/std-sprite.orb +6 -1
  214. package/dist/exports/atoms/std-tabs.orb +25 -15
  215. package/dist/exports/atoms/std-timer.orb +483 -91
  216. package/dist/exports/atoms/std-undo.orb +211 -81
  217. package/dist/exports/atoms/std-wizard.orb +31 -34
  218. package/dist/exports/molecules/std-builder-game.orb +6 -1
  219. package/dist/exports/molecules/std-cart.orb +6 -1
  220. package/dist/exports/molecules/std-classifier-game.orb +6 -1
  221. package/dist/exports/molecules/std-debugger-game.orb +6 -1
  222. package/dist/exports/molecules/std-detail.orb +12 -5
  223. package/dist/exports/molecules/std-event-handler-game.orb +6 -1
  224. package/dist/exports/molecules/std-geospatial.orb +28 -9
  225. package/dist/exports/molecules/std-inventory.orb +28 -9
  226. package/dist/exports/molecules/std-list.orb +392 -5
  227. package/dist/exports/molecules/std-messaging.orb +12 -5
  228. package/dist/exports/molecules/std-negotiator-game.orb +6 -1
  229. package/dist/exports/molecules/std-platformer-game.orb +40 -1
  230. package/dist/exports/molecules/std-puzzle-game.orb +26 -1
  231. package/dist/exports/molecules/std-sequencer-game.orb +6 -1
  232. package/dist/exports/molecules/std-simulator-game.orb +6 -1
  233. package/dist/exports/molecules/std-turn-based-battle.orb +40 -1
  234. package/dist/exports/organisms/std-api-gateway.orb +1145 -403
  235. package/dist/exports/organisms/std-arcade-game.orb +214 -16
  236. package/dist/exports/organisms/std-booking-system.orb +2165 -1605
  237. package/dist/exports/organisms/std-cicd-pipeline.orb +581 -47
  238. package/dist/exports/organisms/std-cms.orb +1713 -947
  239. package/dist/exports/organisms/std-coding-academy.orb +180 -380
  240. package/dist/exports/organisms/std-crm.orb +1669 -1153
  241. package/dist/exports/organisms/std-devops-dashboard.orb +1430 -378
  242. package/dist/exports/organisms/std-ecommerce.orb +2361 -1601
  243. package/dist/exports/organisms/std-finance-tracker.orb +622 -438
  244. package/dist/exports/organisms/std-healthcare.orb +1687 -1125
  245. package/dist/exports/organisms/std-helpdesk.orb +626 -407
  246. package/dist/exports/organisms/std-hr-portal.orb +1309 -714
  247. package/dist/exports/organisms/std-iot-dashboard.orb +1247 -335
  248. package/dist/exports/organisms/std-lms.orb +658 -362
  249. package/dist/exports/organisms/std-platformer-app.orb +56 -8
  250. package/dist/exports/organisms/std-project-manager.orb +1697 -1183
  251. package/dist/exports/organisms/std-puzzle-app.orb +20 -0
  252. package/dist/exports/organisms/std-realtime-chat.orb +552 -28
  253. package/dist/exports/organisms/std-rpg-game.orb +397 -56
  254. package/dist/exports/organisms/std-social-feed.orb +12 -8
  255. package/dist/exports/organisms/std-stem-lab.orb +175 -290
  256. package/dist/exports/organisms/std-strategy-game.orb +252 -395
  257. package/dist/exports/organisms/std-trading-dashboard.orb +718 -524
  258. package/dist/exports/validation-report.json +747 -0
  259. package/dist/exports/verify-results.json +13 -0
  260. package/dist/index.js +715 -593
  261. package/dist/index.js.map +1 -1
  262. package/package.json +1 -1
@@ -238,7 +238,9 @@
238
238
  }
239
239
  ],
240
240
  "className": "transition-shadow hover:shadow-md cursor-pointer",
241
- "children": [
241
+ "renderItem": [
242
+ "fn",
243
+ "item",
242
244
  {
243
245
  "type": "stack",
244
246
  "direction": "vertical",
@@ -264,13 +266,13 @@
264
266
  {
265
267
  "type": "typography",
266
268
  "variant": "h4",
267
- "content": "@entity.title"
269
+ "content": "@item.title"
268
270
  }
269
271
  ]
270
272
  },
271
273
  {
272
274
  "type": "badge",
273
- "label": "@entity.description"
275
+ "label": "@item.description"
274
276
  }
275
277
  ]
276
278
  },
@@ -278,7 +280,7 @@
278
280
  "type": "typography",
279
281
  "variant": "caption",
280
282
  "color": "muted",
281
- "content": "@entity.assignee"
283
+ "content": "@item.assignee"
282
284
  }
283
285
  ]
284
286
  }
@@ -396,130 +398,55 @@
396
398
  "modal",
397
399
  null
398
400
  ],
399
- [
400
- "fetch",
401
- "Task"
402
- ],
403
- [
404
- "notify",
405
- "Task deleted successfully"
406
- ]
407
- ]
408
- },
409
- {
410
- "from": "deleting",
411
- "to": "browsing",
412
- "event": "CANCEL",
413
- "effects": [
414
- [
415
- "render-ui",
416
- "modal",
417
- null
418
- ]
419
- ]
420
- },
421
- {
422
- "from": "deleting",
423
- "to": "browsing",
424
- "event": "CLOSE",
425
- "effects": [
426
- [
427
- "render-ui",
428
- "modal",
429
- null
430
- ]
431
- ]
432
- }
433
- ]
434
- }
435
- },
436
- {
437
- "name": "TaskCreate",
438
- "linkedEntity": "Task",
439
- "category": "interaction",
440
- "emits": [
441
- {
442
- "event": "TASK_CREATED"
443
- }
444
- ],
445
- "stateMachine": {
446
- "states": [
447
- {
448
- "name": "closed",
449
- "isInitial": true
450
- },
451
- {
452
- "name": "open"
453
- }
454
- ],
455
- "events": [
456
- {
457
- "key": "INIT",
458
- "name": "Initialize"
459
- },
460
- {
461
- "key": "CREATE",
462
- "name": "Open"
463
- },
464
- {
465
- "key": "CLOSE",
466
- "name": "Close"
467
- },
468
- {
469
- "key": "SAVE",
470
- "name": "Save",
471
- "payload": [
472
- {
473
- "name": "data",
474
- "type": "object",
475
- "required": true
476
- }
477
- ]
478
- }
479
- ],
480
- "transitions": [
481
- {
482
- "from": "closed",
483
- "to": "closed",
484
- "event": "INIT",
485
- "effects": [
486
- [
487
- "fetch",
488
- "Task"
489
- ]
490
- ]
491
- },
492
- {
493
- "from": "closed",
494
- "to": "open",
495
- "event": "CREATE",
496
- "effects": [
497
401
  [
498
402
  "fetch",
499
403
  "Task"
500
404
  ],
501
405
  [
502
406
  "render-ui",
503
- "modal",
407
+ "main",
504
408
  {
505
409
  "type": "stack",
506
410
  "direction": "vertical",
507
- "gap": "md",
411
+ "gap": "lg",
508
412
  "children": [
509
413
  {
510
414
  "type": "stack",
511
415
  "direction": "horizontal",
512
- "gap": "sm",
416
+ "gap": "md",
417
+ "justify": "space-between",
513
418
  "children": [
514
419
  {
515
- "type": "icon",
516
- "name": "plus-circle",
517
- "size": "md"
420
+ "type": "stack",
421
+ "direction": "horizontal",
422
+ "gap": "sm",
423
+ "align": "center",
424
+ "children": [
425
+ {
426
+ "type": "icon",
427
+ "name": "check-square",
428
+ "size": "lg"
429
+ },
430
+ {
431
+ "type": "typography",
432
+ "content": "Tasks",
433
+ "variant": "h2"
434
+ }
435
+ ]
518
436
  },
519
437
  {
520
- "type": "typography",
521
- "content": "Create Task",
522
- "variant": "h3"
438
+ "type": "stack",
439
+ "direction": "horizontal",
440
+ "gap": "sm",
441
+ "children": [
442
+ {
443
+ "type": "button",
444
+ "label": "Create Task",
445
+ "event": "CREATE",
446
+ "variant": "primary",
447
+ "icon": "plus"
448
+ }
449
+ ]
523
450
  }
524
451
  ]
525
452
  },
@@ -527,48 +454,93 @@
527
454
  "type": "divider"
528
455
  },
529
456
  {
530
- "type": "form-section",
457
+ "type": "data-grid",
531
458
  "entity": "Task",
532
- "mode": "create",
533
- "submitEvent": "SAVE",
534
- "cancelEvent": "CLOSE",
535
- "fields": [
536
- "title",
537
- "description",
538
- "assignee",
539
- "priority",
540
- "status",
541
- "storyPoints",
542
- "dueDate"
459
+ "emptyIcon": "inbox",
460
+ "emptyTitle": "No tasks yet",
461
+ "emptyDescription": "Create your first task to get started.",
462
+ "itemActions": [
463
+ {
464
+ "label": "View",
465
+ "event": "VIEW"
466
+ },
467
+ {
468
+ "label": "Edit",
469
+ "event": "EDIT"
470
+ },
471
+ {
472
+ "label": "Delete",
473
+ "event": "DELETE",
474
+ "variant": "danger"
475
+ }
476
+ ],
477
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
478
+ "renderItem": [
479
+ "fn",
480
+ "item",
481
+ {
482
+ "type": "stack",
483
+ "direction": "vertical",
484
+ "gap": "sm",
485
+ "children": [
486
+ {
487
+ "type": "stack",
488
+ "direction": "horizontal",
489
+ "justify": "space-between",
490
+ "align": "center",
491
+ "children": [
492
+ {
493
+ "type": "stack",
494
+ "direction": "horizontal",
495
+ "gap": "sm",
496
+ "align": "center",
497
+ "children": [
498
+ {
499
+ "type": "icon",
500
+ "name": "check-square",
501
+ "size": "sm"
502
+ },
503
+ {
504
+ "type": "typography",
505
+ "variant": "h4",
506
+ "content": "@item.title"
507
+ }
508
+ ]
509
+ },
510
+ {
511
+ "type": "badge",
512
+ "label": "@item.description"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "type": "typography",
518
+ "variant": "caption",
519
+ "color": "muted",
520
+ "content": "@item.assignee"
521
+ }
522
+ ]
523
+ }
543
524
  ]
544
525
  }
545
526
  ]
546
527
  }
528
+ ],
529
+ [
530
+ "notify",
531
+ "Task deleted successfully"
547
532
  ]
548
533
  ]
549
534
  },
550
535
  {
551
- "from": "open",
552
- "to": "closed",
553
- "event": "CLOSE",
536
+ "from": "deleting",
537
+ "to": "browsing",
538
+ "event": "CANCEL",
554
539
  "effects": [
555
540
  [
556
541
  "render-ui",
557
542
  "modal",
558
543
  null
559
- ]
560
- ]
561
- },
562
- {
563
- "from": "open",
564
- "to": "closed",
565
- "event": "SAVE",
566
- "effects": [
567
- [
568
- "persist",
569
- "create",
570
- "Task",
571
- "@payload.data"
572
544
  ],
573
545
  [
574
546
  "fetch",
@@ -576,117 +548,49 @@
576
548
  ],
577
549
  [
578
550
  "render-ui",
579
- "modal",
580
- null
581
- ],
582
- [
583
- "emit",
584
- "TASK_CREATED"
585
- ],
586
- [
587
- "notify",
588
- "Task created successfully"
589
- ]
590
- ]
591
- }
592
- ]
593
- }
594
- },
595
- {
596
- "name": "TaskEdit",
597
- "linkedEntity": "Task",
598
- "category": "interaction",
599
- "emits": [
600
- {
601
- "event": "TASK_UPDATED"
602
- }
603
- ],
604
- "stateMachine": {
605
- "states": [
606
- {
607
- "name": "closed",
608
- "isInitial": true
609
- },
610
- {
611
- "name": "open"
612
- }
613
- ],
614
- "events": [
615
- {
616
- "key": "INIT",
617
- "name": "Initialize"
618
- },
619
- {
620
- "key": "EDIT",
621
- "name": "Open",
622
- "payload": [
623
- {
624
- "name": "id",
625
- "type": "string",
626
- "required": true
627
- }
628
- ]
629
- },
630
- {
631
- "key": "CLOSE",
632
- "name": "Close"
633
- },
634
- {
635
- "key": "SAVE",
636
- "name": "Save",
637
- "payload": [
638
- {
639
- "name": "data",
640
- "type": "object",
641
- "required": true
642
- }
643
- ]
644
- }
645
- ],
646
- "transitions": [
647
- {
648
- "from": "closed",
649
- "to": "closed",
650
- "event": "INIT",
651
- "effects": [
652
- [
653
- "fetch",
654
- "Task"
655
- ]
656
- ]
657
- },
658
- {
659
- "from": "closed",
660
- "to": "open",
661
- "event": "EDIT",
662
- "effects": [
663
- [
664
- "fetch",
665
- "Task",
666
- "@payload.id"
667
- ],
668
- [
669
- "render-ui",
670
- "modal",
551
+ "main",
671
552
  {
672
553
  "type": "stack",
673
554
  "direction": "vertical",
674
- "gap": "md",
555
+ "gap": "lg",
675
556
  "children": [
676
557
  {
677
558
  "type": "stack",
678
559
  "direction": "horizontal",
679
- "gap": "sm",
560
+ "gap": "md",
561
+ "justify": "space-between",
680
562
  "children": [
681
563
  {
682
- "type": "icon",
683
- "name": "edit",
684
- "size": "md"
564
+ "type": "stack",
565
+ "direction": "horizontal",
566
+ "gap": "sm",
567
+ "align": "center",
568
+ "children": [
569
+ {
570
+ "type": "icon",
571
+ "name": "check-square",
572
+ "size": "lg"
573
+ },
574
+ {
575
+ "type": "typography",
576
+ "content": "Tasks",
577
+ "variant": "h2"
578
+ }
579
+ ]
685
580
  },
686
581
  {
687
- "type": "typography",
688
- "content": "Edit Task",
689
- "variant": "h3"
582
+ "type": "stack",
583
+ "direction": "horizontal",
584
+ "gap": "sm",
585
+ "children": [
586
+ {
587
+ "type": "button",
588
+ "label": "Create Task",
589
+ "event": "CREATE",
590
+ "variant": "primary",
591
+ "icon": "plus"
592
+ }
593
+ ]
690
594
  }
691
595
  ]
692
596
  },
@@ -694,21 +598,74 @@
694
598
  "type": "divider"
695
599
  },
696
600
  {
697
- "type": "form-section",
601
+ "type": "data-grid",
698
602
  "entity": "Task",
699
- "mode": "edit",
700
- "submitEvent": "SAVE",
701
- "cancelEvent": "CLOSE",
702
- "fields": [
703
- "title",
704
- "description",
705
- "assignee",
706
- "priority",
707
- "status",
708
- "storyPoints",
709
- "dueDate"
603
+ "emptyIcon": "inbox",
604
+ "emptyTitle": "No tasks yet",
605
+ "emptyDescription": "Create your first task to get started.",
606
+ "itemActions": [
607
+ {
608
+ "label": "View",
609
+ "event": "VIEW"
610
+ },
611
+ {
612
+ "label": "Edit",
613
+ "event": "EDIT"
614
+ },
615
+ {
616
+ "label": "Delete",
617
+ "event": "DELETE",
618
+ "variant": "danger"
619
+ }
710
620
  ],
711
- "entityId": "@entity.id"
621
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
622
+ "renderItem": [
623
+ "fn",
624
+ "item",
625
+ {
626
+ "type": "stack",
627
+ "direction": "vertical",
628
+ "gap": "sm",
629
+ "children": [
630
+ {
631
+ "type": "stack",
632
+ "direction": "horizontal",
633
+ "justify": "space-between",
634
+ "align": "center",
635
+ "children": [
636
+ {
637
+ "type": "stack",
638
+ "direction": "horizontal",
639
+ "gap": "sm",
640
+ "align": "center",
641
+ "children": [
642
+ {
643
+ "type": "icon",
644
+ "name": "check-square",
645
+ "size": "sm"
646
+ },
647
+ {
648
+ "type": "typography",
649
+ "variant": "h4",
650
+ "content": "@item.title"
651
+ }
652
+ ]
653
+ },
654
+ {
655
+ "type": "badge",
656
+ "label": "@item.description"
657
+ }
658
+ ]
659
+ },
660
+ {
661
+ "type": "typography",
662
+ "variant": "caption",
663
+ "color": "muted",
664
+ "content": "@item.assignee"
665
+ }
666
+ ]
667
+ }
668
+ ]
712
669
  }
713
670
  ]
714
671
  }
@@ -716,27 +673,14 @@
716
673
  ]
717
674
  },
718
675
  {
719
- "from": "open",
720
- "to": "closed",
676
+ "from": "deleting",
677
+ "to": "browsing",
721
678
  "event": "CLOSE",
722
679
  "effects": [
723
680
  [
724
681
  "render-ui",
725
682
  "modal",
726
683
  null
727
- ]
728
- ]
729
- },
730
- {
731
- "from": "open",
732
- "to": "closed",
733
- "event": "SAVE",
734
- "effects": [
735
- [
736
- "persist",
737
- "update",
738
- "Task",
739
- "@payload.data"
740
684
  ],
741
685
  [
742
686
  "fetch",
@@ -744,61 +688,181 @@
744
688
  ],
745
689
  [
746
690
  "render-ui",
747
- "modal",
748
- null
749
- ],
750
- [
751
- "emit",
752
- "TASK_UPDATED"
753
- ],
754
- [
755
- "notify",
756
- "Task updated successfully"
757
- ]
758
- ]
759
- }
760
- ]
761
- }
762
- },
763
- {
764
- "name": "TaskView",
765
- "linkedEntity": "Task",
766
- "category": "interaction",
767
- "stateMachine": {
768
- "states": [
769
- {
770
- "name": "closed",
771
- "isInitial": true
772
- },
773
- {
774
- "name": "open"
775
- }
776
- ],
777
- "events": [
778
- {
779
- "key": "INIT",
780
- "name": "Initialize"
781
- },
782
- {
783
- "key": "VIEW",
784
- "name": "Open",
785
- "payload": [
786
- {
787
- "name": "id",
788
- "type": "string",
789
- "required": true
790
- }
791
- ]
792
- },
793
- {
794
- "key": "CLOSE",
795
- "name": "Close"
796
- }
797
- ],
798
- "transitions": [
799
- {
800
- "from": "closed",
801
- "to": "closed",
691
+ "main",
692
+ {
693
+ "type": "stack",
694
+ "direction": "vertical",
695
+ "gap": "lg",
696
+ "children": [
697
+ {
698
+ "type": "stack",
699
+ "direction": "horizontal",
700
+ "gap": "md",
701
+ "justify": "space-between",
702
+ "children": [
703
+ {
704
+ "type": "stack",
705
+ "direction": "horizontal",
706
+ "gap": "sm",
707
+ "align": "center",
708
+ "children": [
709
+ {
710
+ "type": "icon",
711
+ "name": "check-square",
712
+ "size": "lg"
713
+ },
714
+ {
715
+ "type": "typography",
716
+ "content": "Tasks",
717
+ "variant": "h2"
718
+ }
719
+ ]
720
+ },
721
+ {
722
+ "type": "stack",
723
+ "direction": "horizontal",
724
+ "gap": "sm",
725
+ "children": [
726
+ {
727
+ "type": "button",
728
+ "label": "Create Task",
729
+ "event": "CREATE",
730
+ "variant": "primary",
731
+ "icon": "plus"
732
+ }
733
+ ]
734
+ }
735
+ ]
736
+ },
737
+ {
738
+ "type": "divider"
739
+ },
740
+ {
741
+ "type": "data-grid",
742
+ "entity": "Task",
743
+ "emptyIcon": "inbox",
744
+ "emptyTitle": "No tasks yet",
745
+ "emptyDescription": "Create your first task to get started.",
746
+ "itemActions": [
747
+ {
748
+ "label": "View",
749
+ "event": "VIEW"
750
+ },
751
+ {
752
+ "label": "Edit",
753
+ "event": "EDIT"
754
+ },
755
+ {
756
+ "label": "Delete",
757
+ "event": "DELETE",
758
+ "variant": "danger"
759
+ }
760
+ ],
761
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
762
+ "renderItem": [
763
+ "fn",
764
+ "item",
765
+ {
766
+ "type": "stack",
767
+ "direction": "vertical",
768
+ "gap": "sm",
769
+ "children": [
770
+ {
771
+ "type": "stack",
772
+ "direction": "horizontal",
773
+ "justify": "space-between",
774
+ "align": "center",
775
+ "children": [
776
+ {
777
+ "type": "stack",
778
+ "direction": "horizontal",
779
+ "gap": "sm",
780
+ "align": "center",
781
+ "children": [
782
+ {
783
+ "type": "icon",
784
+ "name": "check-square",
785
+ "size": "sm"
786
+ },
787
+ {
788
+ "type": "typography",
789
+ "variant": "h4",
790
+ "content": "@item.title"
791
+ }
792
+ ]
793
+ },
794
+ {
795
+ "type": "badge",
796
+ "label": "@item.description"
797
+ }
798
+ ]
799
+ },
800
+ {
801
+ "type": "typography",
802
+ "variant": "caption",
803
+ "color": "muted",
804
+ "content": "@item.assignee"
805
+ }
806
+ ]
807
+ }
808
+ ]
809
+ }
810
+ ]
811
+ }
812
+ ]
813
+ ]
814
+ }
815
+ ]
816
+ }
817
+ },
818
+ {
819
+ "name": "TaskCreate",
820
+ "linkedEntity": "Task",
821
+ "category": "interaction",
822
+ "emits": [
823
+ {
824
+ "event": "TASK_CREATED"
825
+ }
826
+ ],
827
+ "stateMachine": {
828
+ "states": [
829
+ {
830
+ "name": "closed",
831
+ "isInitial": true
832
+ },
833
+ {
834
+ "name": "open"
835
+ }
836
+ ],
837
+ "events": [
838
+ {
839
+ "key": "INIT",
840
+ "name": "Initialize"
841
+ },
842
+ {
843
+ "key": "CREATE",
844
+ "name": "Open"
845
+ },
846
+ {
847
+ "key": "CLOSE",
848
+ "name": "Close"
849
+ },
850
+ {
851
+ "key": "SAVE",
852
+ "name": "Save",
853
+ "payload": [
854
+ {
855
+ "name": "data",
856
+ "type": "object",
857
+ "required": true
858
+ }
859
+ ]
860
+ }
861
+ ],
862
+ "transitions": [
863
+ {
864
+ "from": "closed",
865
+ "to": "closed",
802
866
  "event": "INIT",
803
867
  "effects": [
804
868
  [
@@ -810,12 +874,11 @@
810
874
  {
811
875
  "from": "closed",
812
876
  "to": "open",
813
- "event": "VIEW",
877
+ "event": "CREATE",
814
878
  "effects": [
815
879
  [
816
880
  "fetch",
817
- "Task",
818
- "@payload.id"
881
+ "Task"
819
882
  ],
820
883
  [
821
884
  "render-ui",
@@ -829,17 +892,16 @@
829
892
  "type": "stack",
830
893
  "direction": "horizontal",
831
894
  "gap": "sm",
832
- "align": "center",
833
895
  "children": [
834
896
  {
835
897
  "type": "icon",
836
- "name": "eye",
898
+ "name": "plus-circle",
837
899
  "size": "md"
838
900
  },
839
901
  {
840
902
  "type": "typography",
841
- "variant": "h3",
842
- "content": "@entity.title"
903
+ "content": "Create Task",
904
+ "variant": "h3"
843
905
  }
844
906
  ]
845
907
  },
@@ -847,146 +909,19 @@
847
909
  "type": "divider"
848
910
  },
849
911
  {
850
- "type": "stack",
851
- "direction": "horizontal",
852
- "gap": "md",
853
- "children": [
854
- {
855
- "type": "typography",
856
- "variant": "caption",
857
- "content": "Title"
858
- },
859
- {
860
- "type": "typography",
861
- "variant": "body",
862
- "content": "@entity.title"
863
- }
864
- ]
865
- },
866
- {
867
- "type": "stack",
868
- "direction": "horizontal",
869
- "gap": "md",
870
- "children": [
871
- {
872
- "type": "typography",
873
- "variant": "caption",
874
- "content": "Description"
875
- },
876
- {
877
- "type": "typography",
878
- "variant": "body",
879
- "content": "@entity.description"
880
- }
881
- ]
882
- },
883
- {
884
- "type": "stack",
885
- "direction": "horizontal",
886
- "gap": "md",
887
- "children": [
888
- {
889
- "type": "typography",
890
- "variant": "caption",
891
- "content": "Assignee"
892
- },
893
- {
894
- "type": "typography",
895
- "variant": "body",
896
- "content": "@entity.assignee"
897
- }
898
- ]
899
- },
900
- {
901
- "type": "stack",
902
- "direction": "horizontal",
903
- "gap": "md",
904
- "children": [
905
- {
906
- "type": "typography",
907
- "variant": "caption",
908
- "content": "Priority"
909
- },
910
- {
911
- "type": "typography",
912
- "variant": "body",
913
- "content": "@entity.priority"
914
- }
915
- ]
916
- },
917
- {
918
- "type": "stack",
919
- "direction": "horizontal",
920
- "gap": "md",
921
- "children": [
922
- {
923
- "type": "typography",
924
- "variant": "caption",
925
- "content": "Status"
926
- },
927
- {
928
- "type": "typography",
929
- "variant": "body",
930
- "content": "@entity.status"
931
- }
932
- ]
933
- },
934
- {
935
- "type": "stack",
936
- "direction": "horizontal",
937
- "gap": "md",
938
- "children": [
939
- {
940
- "type": "typography",
941
- "variant": "caption",
942
- "content": "StoryPoints"
943
- },
944
- {
945
- "type": "typography",
946
- "variant": "body",
947
- "content": "@entity.storyPoints"
948
- }
949
- ]
950
- },
951
- {
952
- "type": "stack",
953
- "direction": "horizontal",
954
- "gap": "md",
955
- "children": [
956
- {
957
- "type": "typography",
958
- "variant": "caption",
959
- "content": "DueDate"
960
- },
961
- {
962
- "type": "typography",
963
- "variant": "body",
964
- "content": "@entity.dueDate"
965
- }
966
- ]
967
- },
968
- {
969
- "type": "divider"
970
- },
971
- {
972
- "type": "stack",
973
- "direction": "horizontal",
974
- "gap": "sm",
975
- "justify": "end",
976
- "children": [
977
- {
978
- "type": "button",
979
- "label": "Edit",
980
- "event": "EDIT",
981
- "variant": "primary",
982
- "icon": "edit"
983
- },
984
- {
985
- "type": "button",
986
- "label": "Close",
987
- "event": "CLOSE",
988
- "variant": "ghost"
989
- }
912
+ "type": "form-section",
913
+ "entity": "Task",
914
+ "mode": "create",
915
+ "submitEvent": "SAVE",
916
+ "cancelEvent": "CLOSE",
917
+ "fields": [
918
+ "title",
919
+ "description",
920
+ "assignee",
921
+ "priority",
922
+ "status",
923
+ "storyPoints",
924
+ "dueDate"
990
925
  ]
991
926
  }
992
927
  ]
@@ -1005,99 +940,57 @@
1005
940
  null
1006
941
  ]
1007
942
  ]
943
+ },
944
+ {
945
+ "from": "open",
946
+ "to": "closed",
947
+ "event": "SAVE",
948
+ "effects": [
949
+ [
950
+ "persist",
951
+ "create",
952
+ "Task",
953
+ "@payload.data"
954
+ ],
955
+ [
956
+ "fetch",
957
+ "Task"
958
+ ],
959
+ [
960
+ "render-ui",
961
+ "modal",
962
+ null
963
+ ],
964
+ [
965
+ "emit",
966
+ "TASK_CREATED"
967
+ ],
968
+ [
969
+ "notify",
970
+ "Task created successfully"
971
+ ]
972
+ ]
1008
973
  }
1009
974
  ]
1010
975
  }
1011
- }
1012
- ],
1013
- "pages": [
1014
- {
1015
- "name": "TasksPage",
1016
- "path": "/tasks",
1017
- "isInitial": true,
1018
- "traits": [
1019
- {
1020
- "ref": "TaskBrowse"
1021
- },
1022
- {
1023
- "ref": "TaskCreate"
1024
- },
1025
- {
1026
- "ref": "TaskEdit"
1027
- },
1028
- {
1029
- "ref": "TaskView"
1030
- }
1031
- ]
1032
- }
1033
- ]
1034
- },
1035
- {
1036
- "name": "SprintOrbital",
1037
- "entity": {
1038
- "name": "Sprint",
1039
- "persistence": "persistent",
1040
- "collection": "sprints",
1041
- "fields": [
1042
- {
1043
- "name": "id",
1044
- "type": "string",
1045
- "required": true
1046
- },
1047
- {
1048
- "name": "name",
1049
- "type": "string",
1050
- "required": true
1051
- },
1052
- {
1053
- "name": "startDate",
1054
- "type": "string",
1055
- "required": true
1056
- },
1057
- {
1058
- "name": "endDate",
1059
- "type": "string",
1060
- "required": true
1061
- },
1062
- {
1063
- "name": "goal",
1064
- "type": "string"
1065
- },
1066
- {
1067
- "name": "status",
1068
- "type": "string",
1069
- "default": "planning"
1070
- },
1071
- {
1072
- "name": "taskCount",
1073
- "type": "number",
1074
- "default": 0
1075
- }
1076
- ]
1077
- },
1078
- "traits": [
976
+ },
1079
977
  {
1080
- "name": "SprintBrowse",
1081
- "linkedEntity": "Sprint",
978
+ "name": "TaskEdit",
979
+ "linkedEntity": "Task",
1082
980
  "category": "interaction",
1083
- "listens": [
1084
- {
1085
- "event": "SPRINT_CREATED",
1086
- "triggers": "SPRINT_CREATED"
1087
- },
981
+ "emits": [
1088
982
  {
1089
- "event": "SPRINT_UPDATED",
1090
- "triggers": "SPRINT_UPDATED"
983
+ "event": "TASK_UPDATED"
1091
984
  }
1092
985
  ],
1093
986
  "stateMachine": {
1094
987
  "states": [
1095
988
  {
1096
- "name": "browsing",
989
+ "name": "closed",
1097
990
  "isInitial": true
1098
991
  },
1099
992
  {
1100
- "name": "deleting"
993
+ "name": "open"
1101
994
  }
1102
995
  ],
1103
996
  "events": [
@@ -1105,24 +998,9 @@
1105
998
  "key": "INIT",
1106
999
  "name": "Initialize"
1107
1000
  },
1108
- {
1109
- "key": "CREATE",
1110
- "name": "CREATE"
1111
- },
1112
- {
1113
- "key": "VIEW",
1114
- "name": "VIEW",
1115
- "payload": [
1116
- {
1117
- "name": "id",
1118
- "type": "string",
1119
- "required": true
1120
- }
1121
- ]
1122
- },
1123
1001
  {
1124
1002
  "key": "EDIT",
1125
- "name": "EDIT",
1003
+ "name": "Open",
1126
1004
  "payload": [
1127
1005
  {
1128
1006
  "name": "id",
@@ -1132,19 +1010,12 @@
1132
1010
  ]
1133
1011
  },
1134
1012
  {
1135
- "key": "DELETE",
1136
- "name": "DELETE",
1137
- "payload": [
1138
- {
1139
- "name": "id",
1140
- "type": "string",
1141
- "required": true
1142
- }
1143
- ]
1013
+ "key": "CLOSE",
1014
+ "name": "Close"
1144
1015
  },
1145
1016
  {
1146
- "key": "SPRINT_CREATED",
1147
- "name": "SPRINT_CREATED",
1017
+ "key": "SAVE",
1018
+ "name": "Save",
1148
1019
  "payload": [
1149
1020
  {
1150
1021
  "name": "data",
@@ -1152,37 +1023,929 @@
1152
1023
  "required": true
1153
1024
  }
1154
1025
  ]
1026
+ }
1027
+ ],
1028
+ "transitions": [
1029
+ {
1030
+ "from": "closed",
1031
+ "to": "closed",
1032
+ "event": "INIT",
1033
+ "effects": [
1034
+ [
1035
+ "fetch",
1036
+ "Task"
1037
+ ]
1038
+ ]
1155
1039
  },
1156
1040
  {
1157
- "key": "SPRINT_UPDATED",
1158
- "name": "SPRINT_UPDATED",
1159
- "payload": [
1160
- {
1161
- "name": "data",
1162
- "type": "object",
1163
- "required": true
1164
- }
1041
+ "from": "closed",
1042
+ "to": "open",
1043
+ "event": "EDIT",
1044
+ "effects": [
1045
+ [
1046
+ "fetch",
1047
+ "Task",
1048
+ "@payload.id"
1049
+ ],
1050
+ [
1051
+ "render-ui",
1052
+ "modal",
1053
+ {
1054
+ "type": "stack",
1055
+ "direction": "vertical",
1056
+ "gap": "md",
1057
+ "children": [
1058
+ {
1059
+ "type": "stack",
1060
+ "direction": "horizontal",
1061
+ "gap": "sm",
1062
+ "children": [
1063
+ {
1064
+ "type": "icon",
1065
+ "name": "edit",
1066
+ "size": "md"
1067
+ },
1068
+ {
1069
+ "type": "typography",
1070
+ "content": "Edit Task",
1071
+ "variant": "h3"
1072
+ }
1073
+ ]
1074
+ },
1075
+ {
1076
+ "type": "divider"
1077
+ },
1078
+ {
1079
+ "type": "form-section",
1080
+ "entity": "Task",
1081
+ "mode": "edit",
1082
+ "submitEvent": "SAVE",
1083
+ "cancelEvent": "CLOSE",
1084
+ "fields": [
1085
+ "title",
1086
+ "description",
1087
+ "assignee",
1088
+ "priority",
1089
+ "status",
1090
+ "storyPoints",
1091
+ "dueDate"
1092
+ ],
1093
+ "entityId": "@entity.id"
1094
+ }
1095
+ ]
1096
+ }
1097
+ ]
1098
+ ]
1099
+ },
1100
+ {
1101
+ "from": "open",
1102
+ "to": "closed",
1103
+ "event": "CLOSE",
1104
+ "effects": [
1105
+ [
1106
+ "render-ui",
1107
+ "modal",
1108
+ null
1109
+ ]
1110
+ ]
1111
+ },
1112
+ {
1113
+ "from": "open",
1114
+ "to": "closed",
1115
+ "event": "SAVE",
1116
+ "effects": [
1117
+ [
1118
+ "persist",
1119
+ "update",
1120
+ "Task",
1121
+ "@payload.data"
1122
+ ],
1123
+ [
1124
+ "fetch",
1125
+ "Task"
1126
+ ],
1127
+ [
1128
+ "render-ui",
1129
+ "modal",
1130
+ null
1131
+ ],
1132
+ [
1133
+ "emit",
1134
+ "TASK_UPDATED"
1135
+ ],
1136
+ [
1137
+ "notify",
1138
+ "Task updated successfully"
1139
+ ]
1140
+ ]
1141
+ }
1142
+ ]
1143
+ }
1144
+ },
1145
+ {
1146
+ "name": "TaskView",
1147
+ "linkedEntity": "Task",
1148
+ "category": "interaction",
1149
+ "stateMachine": {
1150
+ "states": [
1151
+ {
1152
+ "name": "closed",
1153
+ "isInitial": true
1154
+ },
1155
+ {
1156
+ "name": "open"
1157
+ }
1158
+ ],
1159
+ "events": [
1160
+ {
1161
+ "key": "INIT",
1162
+ "name": "Initialize"
1163
+ },
1164
+ {
1165
+ "key": "VIEW",
1166
+ "name": "Open",
1167
+ "payload": [
1168
+ {
1169
+ "name": "id",
1170
+ "type": "string",
1171
+ "required": true
1172
+ }
1173
+ ]
1174
+ },
1175
+ {
1176
+ "key": "CLOSE",
1177
+ "name": "Close"
1178
+ }
1179
+ ],
1180
+ "transitions": [
1181
+ {
1182
+ "from": "closed",
1183
+ "to": "closed",
1184
+ "event": "INIT",
1185
+ "effects": [
1186
+ [
1187
+ "fetch",
1188
+ "Task"
1189
+ ]
1190
+ ]
1191
+ },
1192
+ {
1193
+ "from": "closed",
1194
+ "to": "open",
1195
+ "event": "VIEW",
1196
+ "effects": [
1197
+ [
1198
+ "fetch",
1199
+ "Task",
1200
+ "@payload.id"
1201
+ ],
1202
+ [
1203
+ "render-ui",
1204
+ "modal",
1205
+ {
1206
+ "type": "stack",
1207
+ "direction": "vertical",
1208
+ "gap": "md",
1209
+ "children": [
1210
+ {
1211
+ "type": "stack",
1212
+ "direction": "horizontal",
1213
+ "gap": "sm",
1214
+ "align": "center",
1215
+ "children": [
1216
+ {
1217
+ "type": "icon",
1218
+ "name": "eye",
1219
+ "size": "md"
1220
+ },
1221
+ {
1222
+ "type": "typography",
1223
+ "variant": "h3",
1224
+ "content": "@entity.title"
1225
+ }
1226
+ ]
1227
+ },
1228
+ {
1229
+ "type": "divider"
1230
+ },
1231
+ {
1232
+ "type": "stack",
1233
+ "direction": "horizontal",
1234
+ "gap": "md",
1235
+ "children": [
1236
+ {
1237
+ "type": "typography",
1238
+ "variant": "caption",
1239
+ "content": "Title"
1240
+ },
1241
+ {
1242
+ "type": "typography",
1243
+ "variant": "body",
1244
+ "content": "@entity.title"
1245
+ }
1246
+ ]
1247
+ },
1248
+ {
1249
+ "type": "stack",
1250
+ "direction": "horizontal",
1251
+ "gap": "md",
1252
+ "children": [
1253
+ {
1254
+ "type": "typography",
1255
+ "variant": "caption",
1256
+ "content": "Description"
1257
+ },
1258
+ {
1259
+ "type": "typography",
1260
+ "variant": "body",
1261
+ "content": "@entity.description"
1262
+ }
1263
+ ]
1264
+ },
1265
+ {
1266
+ "type": "stack",
1267
+ "direction": "horizontal",
1268
+ "gap": "md",
1269
+ "children": [
1270
+ {
1271
+ "type": "typography",
1272
+ "variant": "caption",
1273
+ "content": "Assignee"
1274
+ },
1275
+ {
1276
+ "type": "typography",
1277
+ "variant": "body",
1278
+ "content": "@entity.assignee"
1279
+ }
1280
+ ]
1281
+ },
1282
+ {
1283
+ "type": "stack",
1284
+ "direction": "horizontal",
1285
+ "gap": "md",
1286
+ "children": [
1287
+ {
1288
+ "type": "typography",
1289
+ "variant": "caption",
1290
+ "content": "Priority"
1291
+ },
1292
+ {
1293
+ "type": "typography",
1294
+ "variant": "body",
1295
+ "content": "@entity.priority"
1296
+ }
1297
+ ]
1298
+ },
1299
+ {
1300
+ "type": "stack",
1301
+ "direction": "horizontal",
1302
+ "gap": "md",
1303
+ "children": [
1304
+ {
1305
+ "type": "typography",
1306
+ "variant": "caption",
1307
+ "content": "Status"
1308
+ },
1309
+ {
1310
+ "type": "typography",
1311
+ "variant": "body",
1312
+ "content": "@entity.status"
1313
+ }
1314
+ ]
1315
+ },
1316
+ {
1317
+ "type": "stack",
1318
+ "direction": "horizontal",
1319
+ "gap": "md",
1320
+ "children": [
1321
+ {
1322
+ "type": "typography",
1323
+ "variant": "caption",
1324
+ "content": "StoryPoints"
1325
+ },
1326
+ {
1327
+ "type": "typography",
1328
+ "variant": "body",
1329
+ "content": "@entity.storyPoints"
1330
+ }
1331
+ ]
1332
+ },
1333
+ {
1334
+ "type": "stack",
1335
+ "direction": "horizontal",
1336
+ "gap": "md",
1337
+ "children": [
1338
+ {
1339
+ "type": "typography",
1340
+ "variant": "caption",
1341
+ "content": "DueDate"
1342
+ },
1343
+ {
1344
+ "type": "typography",
1345
+ "variant": "body",
1346
+ "content": "@entity.dueDate"
1347
+ }
1348
+ ]
1349
+ },
1350
+ {
1351
+ "type": "divider"
1352
+ },
1353
+ {
1354
+ "type": "stack",
1355
+ "direction": "horizontal",
1356
+ "gap": "sm",
1357
+ "justify": "end",
1358
+ "children": [
1359
+ {
1360
+ "type": "button",
1361
+ "label": "Edit",
1362
+ "event": "EDIT",
1363
+ "variant": "primary",
1364
+ "icon": "edit"
1365
+ },
1366
+ {
1367
+ "type": "button",
1368
+ "label": "Close",
1369
+ "event": "CLOSE",
1370
+ "variant": "ghost"
1371
+ }
1372
+ ]
1373
+ }
1374
+ ]
1375
+ }
1376
+ ]
1377
+ ]
1378
+ },
1379
+ {
1380
+ "from": "open",
1381
+ "to": "closed",
1382
+ "event": "CLOSE",
1383
+ "effects": [
1384
+ [
1385
+ "render-ui",
1386
+ "modal",
1387
+ null
1388
+ ]
1389
+ ]
1390
+ }
1391
+ ]
1392
+ }
1393
+ }
1394
+ ],
1395
+ "pages": [
1396
+ {
1397
+ "name": "TasksPage",
1398
+ "path": "/tasks",
1399
+ "isInitial": true,
1400
+ "traits": [
1401
+ {
1402
+ "ref": "TaskBrowse"
1403
+ },
1404
+ {
1405
+ "ref": "TaskCreate"
1406
+ },
1407
+ {
1408
+ "ref": "TaskEdit"
1409
+ },
1410
+ {
1411
+ "ref": "TaskView"
1412
+ }
1413
+ ]
1414
+ }
1415
+ ]
1416
+ },
1417
+ {
1418
+ "name": "SprintOrbital",
1419
+ "entity": {
1420
+ "name": "Sprint",
1421
+ "persistence": "persistent",
1422
+ "collection": "sprints",
1423
+ "fields": [
1424
+ {
1425
+ "name": "id",
1426
+ "type": "string",
1427
+ "required": true
1428
+ },
1429
+ {
1430
+ "name": "name",
1431
+ "type": "string",
1432
+ "required": true
1433
+ },
1434
+ {
1435
+ "name": "startDate",
1436
+ "type": "string",
1437
+ "required": true
1438
+ },
1439
+ {
1440
+ "name": "endDate",
1441
+ "type": "string",
1442
+ "required": true
1443
+ },
1444
+ {
1445
+ "name": "goal",
1446
+ "type": "string"
1447
+ },
1448
+ {
1449
+ "name": "status",
1450
+ "type": "string",
1451
+ "default": "planning"
1452
+ },
1453
+ {
1454
+ "name": "taskCount",
1455
+ "type": "number",
1456
+ "default": 0
1457
+ }
1458
+ ]
1459
+ },
1460
+ "traits": [
1461
+ {
1462
+ "name": "SprintBrowse",
1463
+ "linkedEntity": "Sprint",
1464
+ "category": "interaction",
1465
+ "listens": [
1466
+ {
1467
+ "event": "SPRINT_CREATED",
1468
+ "triggers": "SPRINT_CREATED"
1469
+ },
1470
+ {
1471
+ "event": "SPRINT_UPDATED",
1472
+ "triggers": "SPRINT_UPDATED"
1473
+ }
1474
+ ],
1475
+ "stateMachine": {
1476
+ "states": [
1477
+ {
1478
+ "name": "browsing",
1479
+ "isInitial": true
1480
+ },
1481
+ {
1482
+ "name": "deleting"
1483
+ }
1484
+ ],
1485
+ "events": [
1486
+ {
1487
+ "key": "INIT",
1488
+ "name": "Initialize"
1489
+ },
1490
+ {
1491
+ "key": "CREATE",
1492
+ "name": "CREATE"
1493
+ },
1494
+ {
1495
+ "key": "VIEW",
1496
+ "name": "VIEW",
1497
+ "payload": [
1498
+ {
1499
+ "name": "id",
1500
+ "type": "string",
1501
+ "required": true
1502
+ }
1503
+ ]
1504
+ },
1505
+ {
1506
+ "key": "EDIT",
1507
+ "name": "EDIT",
1508
+ "payload": [
1509
+ {
1510
+ "name": "id",
1511
+ "type": "string",
1512
+ "required": true
1513
+ }
1514
+ ]
1515
+ },
1516
+ {
1517
+ "key": "DELETE",
1518
+ "name": "DELETE",
1519
+ "payload": [
1520
+ {
1521
+ "name": "id",
1522
+ "type": "string",
1523
+ "required": true
1524
+ }
1525
+ ]
1526
+ },
1527
+ {
1528
+ "key": "SPRINT_CREATED",
1529
+ "name": "SPRINT_CREATED",
1530
+ "payload": [
1531
+ {
1532
+ "name": "data",
1533
+ "type": "object",
1534
+ "required": true
1535
+ }
1536
+ ]
1537
+ },
1538
+ {
1539
+ "key": "SPRINT_UPDATED",
1540
+ "name": "SPRINT_UPDATED",
1541
+ "payload": [
1542
+ {
1543
+ "name": "data",
1544
+ "type": "object",
1545
+ "required": true
1546
+ }
1547
+ ]
1548
+ },
1549
+ {
1550
+ "key": "CONFIRM_DELETE",
1551
+ "name": "Confirm Delete"
1552
+ },
1553
+ {
1554
+ "key": "CANCEL",
1555
+ "name": "Cancel"
1556
+ },
1557
+ {
1558
+ "key": "CLOSE",
1559
+ "name": "Close"
1560
+ }
1561
+ ],
1562
+ "transitions": [
1563
+ {
1564
+ "from": "browsing",
1565
+ "to": "browsing",
1566
+ "event": "INIT",
1567
+ "effects": [
1568
+ [
1569
+ "fetch",
1570
+ "Sprint"
1571
+ ],
1572
+ [
1573
+ "render-ui",
1574
+ "main",
1575
+ {
1576
+ "type": "stack",
1577
+ "direction": "vertical",
1578
+ "gap": "lg",
1579
+ "children": [
1580
+ {
1581
+ "type": "stack",
1582
+ "direction": "horizontal",
1583
+ "gap": "md",
1584
+ "justify": "space-between",
1585
+ "children": [
1586
+ {
1587
+ "type": "stack",
1588
+ "direction": "horizontal",
1589
+ "gap": "sm",
1590
+ "align": "center",
1591
+ "children": [
1592
+ {
1593
+ "type": "icon",
1594
+ "name": "zap",
1595
+ "size": "lg"
1596
+ },
1597
+ {
1598
+ "type": "typography",
1599
+ "content": "Sprints",
1600
+ "variant": "h2"
1601
+ }
1602
+ ]
1603
+ },
1604
+ {
1605
+ "type": "stack",
1606
+ "direction": "horizontal",
1607
+ "gap": "sm",
1608
+ "children": [
1609
+ {
1610
+ "type": "button",
1611
+ "label": "Create Sprint",
1612
+ "event": "CREATE",
1613
+ "variant": "primary",
1614
+ "icon": "plus"
1615
+ }
1616
+ ]
1617
+ }
1618
+ ]
1619
+ },
1620
+ {
1621
+ "type": "divider"
1622
+ },
1623
+ {
1624
+ "type": "data-grid",
1625
+ "entity": "Sprint",
1626
+ "emptyIcon": "inbox",
1627
+ "emptyTitle": "No sprints yet",
1628
+ "emptyDescription": "Create your first sprint to get started.",
1629
+ "itemActions": [
1630
+ {
1631
+ "label": "View",
1632
+ "event": "VIEW"
1633
+ },
1634
+ {
1635
+ "label": "Edit",
1636
+ "event": "EDIT"
1637
+ },
1638
+ {
1639
+ "label": "Delete",
1640
+ "event": "DELETE",
1641
+ "variant": "danger"
1642
+ }
1643
+ ],
1644
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
1645
+ "renderItem": [
1646
+ "fn",
1647
+ "item",
1648
+ {
1649
+ "type": "stack",
1650
+ "direction": "vertical",
1651
+ "gap": "sm",
1652
+ "children": [
1653
+ {
1654
+ "type": "stack",
1655
+ "direction": "horizontal",
1656
+ "justify": "space-between",
1657
+ "align": "center",
1658
+ "children": [
1659
+ {
1660
+ "type": "stack",
1661
+ "direction": "horizontal",
1662
+ "gap": "sm",
1663
+ "align": "center",
1664
+ "children": [
1665
+ {
1666
+ "type": "icon",
1667
+ "name": "zap",
1668
+ "size": "sm"
1669
+ },
1670
+ {
1671
+ "type": "typography",
1672
+ "variant": "h4",
1673
+ "content": "@item.name"
1674
+ }
1675
+ ]
1676
+ },
1677
+ {
1678
+ "type": "badge",
1679
+ "label": "@item.startDate"
1680
+ }
1681
+ ]
1682
+ },
1683
+ {
1684
+ "type": "typography",
1685
+ "variant": "caption",
1686
+ "color": "muted",
1687
+ "content": "@item.endDate"
1688
+ }
1689
+ ]
1690
+ }
1691
+ ]
1692
+ }
1693
+ ]
1694
+ }
1695
+ ]
1696
+ ]
1697
+ },
1698
+ {
1699
+ "from": "browsing",
1700
+ "to": "browsing",
1701
+ "event": "SPRINT_CREATED",
1702
+ "effects": [
1703
+ [
1704
+ "fetch",
1705
+ "Sprint"
1706
+ ]
1707
+ ]
1708
+ },
1709
+ {
1710
+ "from": "browsing",
1711
+ "to": "browsing",
1712
+ "event": "SPRINT_UPDATED",
1713
+ "effects": [
1714
+ [
1715
+ "fetch",
1716
+ "Sprint"
1717
+ ]
1718
+ ]
1719
+ },
1720
+ {
1721
+ "from": "browsing",
1722
+ "to": "deleting",
1723
+ "event": "DELETE",
1724
+ "effects": [
1725
+ [
1726
+ "fetch",
1727
+ "Sprint",
1728
+ "@payload.id"
1729
+ ],
1730
+ [
1731
+ "render-ui",
1732
+ "modal",
1733
+ {
1734
+ "type": "stack",
1735
+ "direction": "vertical",
1736
+ "gap": "md",
1737
+ "children": [
1738
+ {
1739
+ "type": "stack",
1740
+ "direction": "horizontal",
1741
+ "gap": "sm",
1742
+ "children": [
1743
+ {
1744
+ "type": "icon",
1745
+ "name": "trash-2",
1746
+ "size": "md"
1747
+ },
1748
+ {
1749
+ "type": "typography",
1750
+ "content": "Delete Sprint",
1751
+ "variant": "h3"
1752
+ }
1753
+ ]
1754
+ },
1755
+ {
1756
+ "type": "divider"
1757
+ },
1758
+ {
1759
+ "type": "typography",
1760
+ "content": "Are you sure you want to delete this sprint?",
1761
+ "variant": "body"
1762
+ },
1763
+ {
1764
+ "type": "stack",
1765
+ "direction": "horizontal",
1766
+ "gap": "sm",
1767
+ "justify": "end",
1768
+ "children": [
1769
+ {
1770
+ "type": "button",
1771
+ "label": "Cancel",
1772
+ "event": "CANCEL",
1773
+ "variant": "ghost"
1774
+ },
1775
+ {
1776
+ "type": "button",
1777
+ "label": "Delete",
1778
+ "event": "CONFIRM_DELETE",
1779
+ "variant": "danger",
1780
+ "icon": "trash"
1781
+ }
1782
+ ]
1783
+ }
1784
+ ]
1785
+ }
1786
+ ]
1787
+ ]
1788
+ },
1789
+ {
1790
+ "from": "deleting",
1791
+ "to": "browsing",
1792
+ "event": "CONFIRM_DELETE",
1793
+ "effects": [
1794
+ [
1795
+ "persist",
1796
+ "delete",
1797
+ "Sprint",
1798
+ "@entity.id"
1799
+ ],
1800
+ [
1801
+ "render-ui",
1802
+ "modal",
1803
+ null
1804
+ ],
1805
+ [
1806
+ "fetch",
1807
+ "Sprint"
1808
+ ],
1809
+ [
1810
+ "render-ui",
1811
+ "main",
1812
+ {
1813
+ "type": "stack",
1814
+ "direction": "vertical",
1815
+ "gap": "lg",
1816
+ "children": [
1817
+ {
1818
+ "type": "stack",
1819
+ "direction": "horizontal",
1820
+ "gap": "md",
1821
+ "justify": "space-between",
1822
+ "children": [
1823
+ {
1824
+ "type": "stack",
1825
+ "direction": "horizontal",
1826
+ "gap": "sm",
1827
+ "align": "center",
1828
+ "children": [
1829
+ {
1830
+ "type": "icon",
1831
+ "name": "zap",
1832
+ "size": "lg"
1833
+ },
1834
+ {
1835
+ "type": "typography",
1836
+ "content": "Sprints",
1837
+ "variant": "h2"
1838
+ }
1839
+ ]
1840
+ },
1841
+ {
1842
+ "type": "stack",
1843
+ "direction": "horizontal",
1844
+ "gap": "sm",
1845
+ "children": [
1846
+ {
1847
+ "type": "button",
1848
+ "label": "Create Sprint",
1849
+ "event": "CREATE",
1850
+ "variant": "primary",
1851
+ "icon": "plus"
1852
+ }
1853
+ ]
1854
+ }
1855
+ ]
1856
+ },
1857
+ {
1858
+ "type": "divider"
1859
+ },
1860
+ {
1861
+ "type": "data-grid",
1862
+ "entity": "Sprint",
1863
+ "emptyIcon": "inbox",
1864
+ "emptyTitle": "No sprints yet",
1865
+ "emptyDescription": "Create your first sprint to get started.",
1866
+ "itemActions": [
1867
+ {
1868
+ "label": "View",
1869
+ "event": "VIEW"
1870
+ },
1871
+ {
1872
+ "label": "Edit",
1873
+ "event": "EDIT"
1874
+ },
1875
+ {
1876
+ "label": "Delete",
1877
+ "event": "DELETE",
1878
+ "variant": "danger"
1879
+ }
1880
+ ],
1881
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
1882
+ "renderItem": [
1883
+ "fn",
1884
+ "item",
1885
+ {
1886
+ "type": "stack",
1887
+ "direction": "vertical",
1888
+ "gap": "sm",
1889
+ "children": [
1890
+ {
1891
+ "type": "stack",
1892
+ "direction": "horizontal",
1893
+ "justify": "space-between",
1894
+ "align": "center",
1895
+ "children": [
1896
+ {
1897
+ "type": "stack",
1898
+ "direction": "horizontal",
1899
+ "gap": "sm",
1900
+ "align": "center",
1901
+ "children": [
1902
+ {
1903
+ "type": "icon",
1904
+ "name": "zap",
1905
+ "size": "sm"
1906
+ },
1907
+ {
1908
+ "type": "typography",
1909
+ "variant": "h4",
1910
+ "content": "@item.name"
1911
+ }
1912
+ ]
1913
+ },
1914
+ {
1915
+ "type": "badge",
1916
+ "label": "@item.startDate"
1917
+ }
1918
+ ]
1919
+ },
1920
+ {
1921
+ "type": "typography",
1922
+ "variant": "caption",
1923
+ "color": "muted",
1924
+ "content": "@item.endDate"
1925
+ }
1926
+ ]
1927
+ }
1928
+ ]
1929
+ }
1930
+ ]
1931
+ }
1932
+ ],
1933
+ [
1934
+ "notify",
1935
+ "Sprint deleted successfully"
1936
+ ]
1165
1937
  ]
1166
1938
  },
1167
1939
  {
1168
- "key": "CONFIRM_DELETE",
1169
- "name": "Confirm Delete"
1170
- },
1171
- {
1172
- "key": "CANCEL",
1173
- "name": "Cancel"
1174
- },
1175
- {
1176
- "key": "CLOSE",
1177
- "name": "Close"
1178
- }
1179
- ],
1180
- "transitions": [
1181
- {
1182
- "from": "browsing",
1940
+ "from": "deleting",
1183
1941
  "to": "browsing",
1184
- "event": "INIT",
1942
+ "event": "CANCEL",
1185
1943
  "effects": [
1944
+ [
1945
+ "render-ui",
1946
+ "modal",
1947
+ null
1948
+ ],
1186
1949
  [
1187
1950
  "fetch",
1188
1951
  "Sprint"
@@ -1260,7 +2023,9 @@
1260
2023
  }
1261
2024
  ],
1262
2025
  "className": "transition-shadow hover:shadow-md cursor-pointer",
1263
- "children": [
2026
+ "renderItem": [
2027
+ "fn",
2028
+ "item",
1264
2029
  {
1265
2030
  "type": "stack",
1266
2031
  "direction": "vertical",
@@ -1286,13 +2051,13 @@
1286
2051
  {
1287
2052
  "type": "typography",
1288
2053
  "variant": "h4",
1289
- "content": "@entity.name"
2054
+ "content": "@item.name"
1290
2055
  }
1291
2056
  ]
1292
2057
  },
1293
2058
  {
1294
2059
  "type": "badge",
1295
- "label": "@entity.startDate"
2060
+ "label": "@item.startDate"
1296
2061
  }
1297
2062
  ]
1298
2063
  },
@@ -1300,7 +2065,7 @@
1300
2065
  "type": "typography",
1301
2066
  "variant": "caption",
1302
2067
  "color": "muted",
1303
- "content": "@entity.endDate"
2068
+ "content": "@item.endDate"
1304
2069
  }
1305
2070
  ]
1306
2071
  }
@@ -1312,59 +2077,64 @@
1312
2077
  ]
1313
2078
  },
1314
2079
  {
1315
- "from": "browsing",
2080
+ "from": "deleting",
1316
2081
  "to": "browsing",
1317
- "event": "SPRINT_CREATED",
2082
+ "event": "CLOSE",
1318
2083
  "effects": [
1319
2084
  [
1320
- "fetch",
1321
- "Sprint"
1322
- ]
1323
- ]
1324
- },
1325
- {
1326
- "from": "browsing",
1327
- "to": "browsing",
1328
- "event": "SPRINT_UPDATED",
1329
- "effects": [
2085
+ "render-ui",
2086
+ "modal",
2087
+ null
2088
+ ],
1330
2089
  [
1331
2090
  "fetch",
1332
2091
  "Sprint"
1333
- ]
1334
- ]
1335
- },
1336
- {
1337
- "from": "browsing",
1338
- "to": "deleting",
1339
- "event": "DELETE",
1340
- "effects": [
1341
- [
1342
- "fetch",
1343
- "Sprint",
1344
- "@payload.id"
1345
2092
  ],
1346
2093
  [
1347
2094
  "render-ui",
1348
- "modal",
2095
+ "main",
1349
2096
  {
1350
2097
  "type": "stack",
1351
2098
  "direction": "vertical",
1352
- "gap": "md",
2099
+ "gap": "lg",
1353
2100
  "children": [
1354
2101
  {
1355
2102
  "type": "stack",
1356
2103
  "direction": "horizontal",
1357
- "gap": "sm",
2104
+ "gap": "md",
2105
+ "justify": "space-between",
1358
2106
  "children": [
1359
2107
  {
1360
- "type": "icon",
1361
- "name": "trash-2",
1362
- "size": "md"
2108
+ "type": "stack",
2109
+ "direction": "horizontal",
2110
+ "gap": "sm",
2111
+ "align": "center",
2112
+ "children": [
2113
+ {
2114
+ "type": "icon",
2115
+ "name": "zap",
2116
+ "size": "lg"
2117
+ },
2118
+ {
2119
+ "type": "typography",
2120
+ "content": "Sprints",
2121
+ "variant": "h2"
2122
+ }
2123
+ ]
1363
2124
  },
1364
2125
  {
1365
- "type": "typography",
1366
- "content": "Delete Sprint",
1367
- "variant": "h3"
2126
+ "type": "stack",
2127
+ "direction": "horizontal",
2128
+ "gap": "sm",
2129
+ "children": [
2130
+ {
2131
+ "type": "button",
2132
+ "label": "Create Sprint",
2133
+ "event": "CREATE",
2134
+ "variant": "primary",
2135
+ "icon": "plus"
2136
+ }
2137
+ ]
1368
2138
  }
1369
2139
  ]
1370
2140
  },
@@ -1372,83 +2142,77 @@
1372
2142
  "type": "divider"
1373
2143
  },
1374
2144
  {
1375
- "type": "typography",
1376
- "content": "Are you sure you want to delete this sprint?",
1377
- "variant": "body"
1378
- },
1379
- {
1380
- "type": "stack",
1381
- "direction": "horizontal",
1382
- "gap": "sm",
1383
- "justify": "end",
1384
- "children": [
2145
+ "type": "data-grid",
2146
+ "entity": "Sprint",
2147
+ "emptyIcon": "inbox",
2148
+ "emptyTitle": "No sprints yet",
2149
+ "emptyDescription": "Create your first sprint to get started.",
2150
+ "itemActions": [
1385
2151
  {
1386
- "type": "button",
1387
- "label": "Cancel",
1388
- "event": "CANCEL",
1389
- "variant": "ghost"
2152
+ "label": "View",
2153
+ "event": "VIEW"
2154
+ },
2155
+ {
2156
+ "label": "Edit",
2157
+ "event": "EDIT"
1390
2158
  },
1391
2159
  {
1392
- "type": "button",
1393
2160
  "label": "Delete",
1394
- "event": "CONFIRM_DELETE",
1395
- "variant": "danger",
1396
- "icon": "trash"
2161
+ "event": "DELETE",
2162
+ "variant": "danger"
1397
2163
  }
1398
- ]
1399
- }
1400
- ]
1401
- }
1402
- ]
1403
- ]
1404
- },
1405
- {
1406
- "from": "deleting",
1407
- "to": "browsing",
1408
- "event": "CONFIRM_DELETE",
1409
- "effects": [
1410
- [
1411
- "persist",
1412
- "delete",
1413
- "Sprint",
1414
- "@entity.id"
1415
- ],
1416
- [
1417
- "render-ui",
1418
- "modal",
1419
- null
1420
- ],
1421
- [
1422
- "fetch",
1423
- "Sprint"
1424
- ],
1425
- [
1426
- "notify",
1427
- "Sprint deleted successfully"
1428
- ]
1429
- ]
1430
- },
1431
- {
1432
- "from": "deleting",
1433
- "to": "browsing",
1434
- "event": "CANCEL",
1435
- "effects": [
1436
- [
1437
- "render-ui",
1438
- "modal",
1439
- null
1440
- ]
1441
- ]
1442
- },
1443
- {
1444
- "from": "deleting",
1445
- "to": "browsing",
1446
- "event": "CLOSE",
1447
- "effects": [
1448
- [
1449
- "render-ui",
1450
- "modal",
1451
- null
2164
+ ],
2165
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
2166
+ "renderItem": [
2167
+ "fn",
2168
+ "item",
2169
+ {
2170
+ "type": "stack",
2171
+ "direction": "vertical",
2172
+ "gap": "sm",
2173
+ "children": [
2174
+ {
2175
+ "type": "stack",
2176
+ "direction": "horizontal",
2177
+ "justify": "space-between",
2178
+ "align": "center",
2179
+ "children": [
2180
+ {
2181
+ "type": "stack",
2182
+ "direction": "horizontal",
2183
+ "gap": "sm",
2184
+ "align": "center",
2185
+ "children": [
2186
+ {
2187
+ "type": "icon",
2188
+ "name": "zap",
2189
+ "size": "sm"
2190
+ },
2191
+ {
2192
+ "type": "typography",
2193
+ "variant": "h4",
2194
+ "content": "@item.name"
2195
+ }
2196
+ ]
2197
+ },
2198
+ {
2199
+ "type": "badge",
2200
+ "label": "@item.startDate"
2201
+ }
2202
+ ]
2203
+ },
2204
+ {
2205
+ "type": "typography",
2206
+ "variant": "caption",
2207
+ "color": "muted",
2208
+ "content": "@item.endDate"
2209
+ }
2210
+ ]
2211
+ }
2212
+ ]
2213
+ }
2214
+ ]
2215
+ }
1452
2216
  ]
1453
2217
  ]
1454
2218
  }
@@ -2190,113 +2954,63 @@
2190
2954
  "columns": 5,
2191
2955
  "children": [
2192
2956
  {
2193
- "type": "card",
2194
- "children": [
2195
- {
2196
- "type": "stack",
2197
- "direction": "vertical",
2198
- "gap": "sm",
2199
- "children": [
2200
- {
2201
- "type": "typography",
2202
- "variant": "caption",
2203
- "content": "TotalPoints"
2204
- },
2205
- {
2206
- "type": "typography",
2207
- "variant": "h3",
2208
- "content": "@entity.totalPoints"
2209
- }
2210
- ]
2211
- }
2957
+ "type": "stat-display",
2958
+ "label": "TotalPoints",
2959
+ "value": [
2960
+ "object/get",
2961
+ [
2962
+ "array/first",
2963
+ "@entity"
2964
+ ],
2965
+ "totalPoints"
2212
2966
  ]
2213
2967
  },
2214
2968
  {
2215
- "type": "card",
2216
- "children": [
2217
- {
2218
- "type": "stack",
2219
- "direction": "vertical",
2220
- "gap": "sm",
2221
- "children": [
2222
- {
2223
- "type": "typography",
2224
- "variant": "caption",
2225
- "content": "CompletedPoints"
2226
- },
2227
- {
2228
- "type": "typography",
2229
- "variant": "h3",
2230
- "content": "@entity.completedPoints"
2231
- }
2232
- ]
2233
- }
2969
+ "type": "stat-display",
2970
+ "label": "CompletedPoints",
2971
+ "value": [
2972
+ "object/get",
2973
+ [
2974
+ "array/first",
2975
+ "@entity"
2976
+ ],
2977
+ "completedPoints"
2234
2978
  ]
2235
2979
  },
2236
2980
  {
2237
- "type": "card",
2238
- "children": [
2239
- {
2240
- "type": "stack",
2241
- "direction": "vertical",
2242
- "gap": "sm",
2243
- "children": [
2244
- {
2245
- "type": "typography",
2246
- "variant": "caption",
2247
- "content": "RemainingPoints"
2248
- },
2249
- {
2250
- "type": "typography",
2251
- "variant": "h3",
2252
- "content": "@entity.remainingPoints"
2253
- }
2254
- ]
2255
- }
2981
+ "type": "stat-display",
2982
+ "label": "RemainingPoints",
2983
+ "value": [
2984
+ "object/get",
2985
+ [
2986
+ "array/first",
2987
+ "@entity"
2988
+ ],
2989
+ "remainingPoints"
2256
2990
  ]
2257
2991
  },
2258
2992
  {
2259
- "type": "card",
2260
- "children": [
2261
- {
2262
- "type": "stack",
2263
- "direction": "vertical",
2264
- "gap": "sm",
2265
- "children": [
2266
- {
2267
- "type": "typography",
2268
- "variant": "caption",
2269
- "content": "Velocity"
2270
- },
2271
- {
2272
- "type": "typography",
2273
- "variant": "h3",
2274
- "content": "@entity.velocity"
2275
- }
2276
- ]
2277
- }
2993
+ "type": "stat-display",
2994
+ "label": "Velocity",
2995
+ "value": [
2996
+ "object/get",
2997
+ [
2998
+ "array/first",
2999
+ "@entity"
3000
+ ],
3001
+ "velocity"
2278
3002
  ]
2279
3003
  },
2280
3004
  {
2281
- "type": "card",
2282
- "children": [
2283
- {
2284
- "type": "stack",
2285
- "direction": "vertical",
2286
- "gap": "sm",
2287
- "children": [
2288
- {
2289
- "type": "typography",
2290
- "variant": "caption",
2291
- "content": "DaysRemaining"
2292
- },
2293
- {
2294
- "type": "typography",
2295
- "variant": "h3",
2296
- "content": "@entity.daysRemaining"
2297
- }
2298
- ]
2299
- }
3005
+ "type": "stat-display",
3006
+ "label": "DaysRemaining",
3007
+ "value": [
3008
+ "object/get",
3009
+ [
3010
+ "array/first",
3011
+ "@entity"
3012
+ ],
3013
+ "daysRemaining"
2300
3014
  ]
2301
3015
  }
2302
3016
  ]
@@ -2363,113 +3077,63 @@
2363
3077
  "columns": 5,
2364
3078
  "children": [
2365
3079
  {
2366
- "type": "card",
2367
- "children": [
2368
- {
2369
- "type": "stack",
2370
- "direction": "vertical",
2371
- "gap": "sm",
2372
- "children": [
2373
- {
2374
- "type": "typography",
2375
- "variant": "caption",
2376
- "content": "TotalPoints"
2377
- },
2378
- {
2379
- "type": "typography",
2380
- "variant": "h3",
2381
- "content": "@entity.totalPoints"
2382
- }
2383
- ]
2384
- }
3080
+ "type": "stat-display",
3081
+ "label": "TotalPoints",
3082
+ "value": [
3083
+ "object/get",
3084
+ [
3085
+ "array/first",
3086
+ "@entity"
3087
+ ],
3088
+ "totalPoints"
2385
3089
  ]
2386
3090
  },
2387
3091
  {
2388
- "type": "card",
2389
- "children": [
2390
- {
2391
- "type": "stack",
2392
- "direction": "vertical",
2393
- "gap": "sm",
2394
- "children": [
2395
- {
2396
- "type": "typography",
2397
- "variant": "caption",
2398
- "content": "CompletedPoints"
2399
- },
2400
- {
2401
- "type": "typography",
2402
- "variant": "h3",
2403
- "content": "@entity.completedPoints"
2404
- }
2405
- ]
2406
- }
3092
+ "type": "stat-display",
3093
+ "label": "CompletedPoints",
3094
+ "value": [
3095
+ "object/get",
3096
+ [
3097
+ "array/first",
3098
+ "@entity"
3099
+ ],
3100
+ "completedPoints"
2407
3101
  ]
2408
3102
  },
2409
3103
  {
2410
- "type": "card",
2411
- "children": [
2412
- {
2413
- "type": "stack",
2414
- "direction": "vertical",
2415
- "gap": "sm",
2416
- "children": [
2417
- {
2418
- "type": "typography",
2419
- "variant": "caption",
2420
- "content": "RemainingPoints"
2421
- },
2422
- {
2423
- "type": "typography",
2424
- "variant": "h3",
2425
- "content": "@entity.remainingPoints"
2426
- }
2427
- ]
2428
- }
3104
+ "type": "stat-display",
3105
+ "label": "RemainingPoints",
3106
+ "value": [
3107
+ "object/get",
3108
+ [
3109
+ "array/first",
3110
+ "@entity"
3111
+ ],
3112
+ "remainingPoints"
2429
3113
  ]
2430
3114
  },
2431
3115
  {
2432
- "type": "card",
2433
- "children": [
2434
- {
2435
- "type": "stack",
2436
- "direction": "vertical",
2437
- "gap": "sm",
2438
- "children": [
2439
- {
2440
- "type": "typography",
2441
- "variant": "caption",
2442
- "content": "Velocity"
2443
- },
2444
- {
2445
- "type": "typography",
2446
- "variant": "h3",
2447
- "content": "@entity.velocity"
2448
- }
2449
- ]
2450
- }
3116
+ "type": "stat-display",
3117
+ "label": "Velocity",
3118
+ "value": [
3119
+ "object/get",
3120
+ [
3121
+ "array/first",
3122
+ "@entity"
3123
+ ],
3124
+ "velocity"
2451
3125
  ]
2452
3126
  },
2453
3127
  {
2454
- "type": "card",
2455
- "children": [
2456
- {
2457
- "type": "stack",
2458
- "direction": "vertical",
2459
- "gap": "sm",
2460
- "children": [
2461
- {
2462
- "type": "typography",
2463
- "variant": "caption",
2464
- "content": "DaysRemaining"
2465
- },
2466
- {
2467
- "type": "typography",
2468
- "variant": "h3",
2469
- "content": "@entity.daysRemaining"
2470
- }
2471
- ]
2472
- }
3128
+ "type": "stat-display",
3129
+ "label": "DaysRemaining",
3130
+ "value": [
3131
+ "object/get",
3132
+ [
3133
+ "array/first",
3134
+ "@entity"
3135
+ ],
3136
+ "daysRemaining"
2473
3137
  ]
2474
3138
  }
2475
3139
  ]
@@ -2536,113 +3200,63 @@
2536
3200
  "columns": 5,
2537
3201
  "children": [
2538
3202
  {
2539
- "type": "card",
2540
- "children": [
2541
- {
2542
- "type": "stack",
2543
- "direction": "vertical",
2544
- "gap": "sm",
2545
- "children": [
2546
- {
2547
- "type": "typography",
2548
- "variant": "caption",
2549
- "content": "TotalPoints"
2550
- },
2551
- {
2552
- "type": "typography",
2553
- "variant": "h3",
2554
- "content": "@entity.totalPoints"
2555
- }
2556
- ]
2557
- }
3203
+ "type": "stat-display",
3204
+ "label": "TotalPoints",
3205
+ "value": [
3206
+ "object/get",
3207
+ [
3208
+ "array/first",
3209
+ "@entity"
3210
+ ],
3211
+ "totalPoints"
2558
3212
  ]
2559
3213
  },
2560
3214
  {
2561
- "type": "card",
2562
- "children": [
2563
- {
2564
- "type": "stack",
2565
- "direction": "vertical",
2566
- "gap": "sm",
2567
- "children": [
2568
- {
2569
- "type": "typography",
2570
- "variant": "caption",
2571
- "content": "CompletedPoints"
2572
- },
2573
- {
2574
- "type": "typography",
2575
- "variant": "h3",
2576
- "content": "@entity.completedPoints"
2577
- }
2578
- ]
2579
- }
3215
+ "type": "stat-display",
3216
+ "label": "CompletedPoints",
3217
+ "value": [
3218
+ "object/get",
3219
+ [
3220
+ "array/first",
3221
+ "@entity"
3222
+ ],
3223
+ "completedPoints"
2580
3224
  ]
2581
3225
  },
2582
3226
  {
2583
- "type": "card",
2584
- "children": [
2585
- {
2586
- "type": "stack",
2587
- "direction": "vertical",
2588
- "gap": "sm",
2589
- "children": [
2590
- {
2591
- "type": "typography",
2592
- "variant": "caption",
2593
- "content": "RemainingPoints"
2594
- },
2595
- {
2596
- "type": "typography",
2597
- "variant": "h3",
2598
- "content": "@entity.remainingPoints"
2599
- }
2600
- ]
2601
- }
3227
+ "type": "stat-display",
3228
+ "label": "RemainingPoints",
3229
+ "value": [
3230
+ "object/get",
3231
+ [
3232
+ "array/first",
3233
+ "@entity"
3234
+ ],
3235
+ "remainingPoints"
2602
3236
  ]
2603
3237
  },
2604
3238
  {
2605
- "type": "card",
2606
- "children": [
2607
- {
2608
- "type": "stack",
2609
- "direction": "vertical",
2610
- "gap": "sm",
2611
- "children": [
2612
- {
2613
- "type": "typography",
2614
- "variant": "caption",
2615
- "content": "Velocity"
2616
- },
2617
- {
2618
- "type": "typography",
2619
- "variant": "h3",
2620
- "content": "@entity.velocity"
2621
- }
2622
- ]
2623
- }
3239
+ "type": "stat-display",
3240
+ "label": "Velocity",
3241
+ "value": [
3242
+ "object/get",
3243
+ [
3244
+ "array/first",
3245
+ "@entity"
3246
+ ],
3247
+ "velocity"
2624
3248
  ]
2625
3249
  },
2626
3250
  {
2627
- "type": "card",
2628
- "children": [
2629
- {
2630
- "type": "stack",
2631
- "direction": "vertical",
2632
- "gap": "sm",
2633
- "children": [
2634
- {
2635
- "type": "typography",
2636
- "variant": "caption",
2637
- "content": "DaysRemaining"
2638
- },
2639
- {
2640
- "type": "typography",
2641
- "variant": "h3",
2642
- "content": "@entity.daysRemaining"
2643
- }
2644
- ]
2645
- }
3251
+ "type": "stat-display",
3252
+ "label": "DaysRemaining",
3253
+ "value": [
3254
+ "object/get",
3255
+ [
3256
+ "array/first",
3257
+ "@entity"
3258
+ ],
3259
+ "daysRemaining"
2646
3260
  ]
2647
3261
  }
2648
3262
  ]
@@ -2709,113 +3323,63 @@
2709
3323
  "columns": 5,
2710
3324
  "children": [
2711
3325
  {
2712
- "type": "card",
2713
- "children": [
2714
- {
2715
- "type": "stack",
2716
- "direction": "vertical",
2717
- "gap": "sm",
2718
- "children": [
2719
- {
2720
- "type": "typography",
2721
- "variant": "caption",
2722
- "content": "TotalPoints"
2723
- },
2724
- {
2725
- "type": "typography",
2726
- "variant": "h3",
2727
- "content": "@entity.totalPoints"
2728
- }
2729
- ]
2730
- }
3326
+ "type": "stat-display",
3327
+ "label": "TotalPoints",
3328
+ "value": [
3329
+ "object/get",
3330
+ [
3331
+ "array/first",
3332
+ "@entity"
3333
+ ],
3334
+ "totalPoints"
2731
3335
  ]
2732
3336
  },
2733
3337
  {
2734
- "type": "card",
2735
- "children": [
2736
- {
2737
- "type": "stack",
2738
- "direction": "vertical",
2739
- "gap": "sm",
2740
- "children": [
2741
- {
2742
- "type": "typography",
2743
- "variant": "caption",
2744
- "content": "CompletedPoints"
2745
- },
2746
- {
2747
- "type": "typography",
2748
- "variant": "h3",
2749
- "content": "@entity.completedPoints"
2750
- }
2751
- ]
2752
- }
3338
+ "type": "stat-display",
3339
+ "label": "CompletedPoints",
3340
+ "value": [
3341
+ "object/get",
3342
+ [
3343
+ "array/first",
3344
+ "@entity"
3345
+ ],
3346
+ "completedPoints"
2753
3347
  ]
2754
3348
  },
2755
3349
  {
2756
- "type": "card",
2757
- "children": [
2758
- {
2759
- "type": "stack",
2760
- "direction": "vertical",
2761
- "gap": "sm",
2762
- "children": [
2763
- {
2764
- "type": "typography",
2765
- "variant": "caption",
2766
- "content": "RemainingPoints"
2767
- },
2768
- {
2769
- "type": "typography",
2770
- "variant": "h3",
2771
- "content": "@entity.remainingPoints"
2772
- }
2773
- ]
2774
- }
3350
+ "type": "stat-display",
3351
+ "label": "RemainingPoints",
3352
+ "value": [
3353
+ "object/get",
3354
+ [
3355
+ "array/first",
3356
+ "@entity"
3357
+ ],
3358
+ "remainingPoints"
2775
3359
  ]
2776
3360
  },
2777
3361
  {
2778
- "type": "card",
2779
- "children": [
2780
- {
2781
- "type": "stack",
2782
- "direction": "vertical",
2783
- "gap": "sm",
2784
- "children": [
2785
- {
2786
- "type": "typography",
2787
- "variant": "caption",
2788
- "content": "Velocity"
2789
- },
2790
- {
2791
- "type": "typography",
2792
- "variant": "h3",
2793
- "content": "@entity.velocity"
2794
- }
2795
- ]
2796
- }
3362
+ "type": "stat-display",
3363
+ "label": "Velocity",
3364
+ "value": [
3365
+ "object/get",
3366
+ [
3367
+ "array/first",
3368
+ "@entity"
3369
+ ],
3370
+ "velocity"
2797
3371
  ]
2798
3372
  },
2799
3373
  {
2800
- "type": "card",
2801
- "children": [
2802
- {
2803
- "type": "stack",
2804
- "direction": "vertical",
2805
- "gap": "sm",
2806
- "children": [
2807
- {
2808
- "type": "typography",
2809
- "variant": "caption",
2810
- "content": "DaysRemaining"
2811
- },
2812
- {
2813
- "type": "typography",
2814
- "variant": "h3",
2815
- "content": "@entity.daysRemaining"
2816
- }
2817
- ]
2818
- }
3374
+ "type": "stat-display",
3375
+ "label": "DaysRemaining",
3376
+ "value": [
3377
+ "object/get",
3378
+ [
3379
+ "array/first",
3380
+ "@entity"
3381
+ ],
3382
+ "daysRemaining"
2819
3383
  ]
2820
3384
  }
2821
3385
  ]
@@ -2882,113 +3446,63 @@
2882
3446
  "columns": 5,
2883
3447
  "children": [
2884
3448
  {
2885
- "type": "card",
2886
- "children": [
2887
- {
2888
- "type": "stack",
2889
- "direction": "vertical",
2890
- "gap": "sm",
2891
- "children": [
2892
- {
2893
- "type": "typography",
2894
- "variant": "caption",
2895
- "content": "TotalPoints"
2896
- },
2897
- {
2898
- "type": "typography",
2899
- "variant": "h3",
2900
- "content": "@entity.totalPoints"
2901
- }
2902
- ]
2903
- }
3449
+ "type": "stat-display",
3450
+ "label": "TotalPoints",
3451
+ "value": [
3452
+ "object/get",
3453
+ [
3454
+ "array/first",
3455
+ "@entity"
3456
+ ],
3457
+ "totalPoints"
2904
3458
  ]
2905
3459
  },
2906
3460
  {
2907
- "type": "card",
2908
- "children": [
2909
- {
2910
- "type": "stack",
2911
- "direction": "vertical",
2912
- "gap": "sm",
2913
- "children": [
2914
- {
2915
- "type": "typography",
2916
- "variant": "caption",
2917
- "content": "CompletedPoints"
2918
- },
2919
- {
2920
- "type": "typography",
2921
- "variant": "h3",
2922
- "content": "@entity.completedPoints"
2923
- }
2924
- ]
2925
- }
3461
+ "type": "stat-display",
3462
+ "label": "CompletedPoints",
3463
+ "value": [
3464
+ "object/get",
3465
+ [
3466
+ "array/first",
3467
+ "@entity"
3468
+ ],
3469
+ "completedPoints"
2926
3470
  ]
2927
3471
  },
2928
3472
  {
2929
- "type": "card",
2930
- "children": [
2931
- {
2932
- "type": "stack",
2933
- "direction": "vertical",
2934
- "gap": "sm",
2935
- "children": [
2936
- {
2937
- "type": "typography",
2938
- "variant": "caption",
2939
- "content": "RemainingPoints"
2940
- },
2941
- {
2942
- "type": "typography",
2943
- "variant": "h3",
2944
- "content": "@entity.remainingPoints"
2945
- }
2946
- ]
2947
- }
3473
+ "type": "stat-display",
3474
+ "label": "RemainingPoints",
3475
+ "value": [
3476
+ "object/get",
3477
+ [
3478
+ "array/first",
3479
+ "@entity"
3480
+ ],
3481
+ "remainingPoints"
2948
3482
  ]
2949
3483
  },
2950
3484
  {
2951
- "type": "card",
2952
- "children": [
2953
- {
2954
- "type": "stack",
2955
- "direction": "vertical",
2956
- "gap": "sm",
2957
- "children": [
2958
- {
2959
- "type": "typography",
2960
- "variant": "caption",
2961
- "content": "Velocity"
2962
- },
2963
- {
2964
- "type": "typography",
2965
- "variant": "h3",
2966
- "content": "@entity.velocity"
2967
- }
2968
- ]
2969
- }
3485
+ "type": "stat-display",
3486
+ "label": "Velocity",
3487
+ "value": [
3488
+ "object/get",
3489
+ [
3490
+ "array/first",
3491
+ "@entity"
3492
+ ],
3493
+ "velocity"
2970
3494
  ]
2971
3495
  },
2972
3496
  {
2973
- "type": "card",
2974
- "children": [
2975
- {
2976
- "type": "stack",
2977
- "direction": "vertical",
2978
- "gap": "sm",
2979
- "children": [
2980
- {
2981
- "type": "typography",
2982
- "variant": "caption",
2983
- "content": "DaysRemaining"
2984
- },
2985
- {
2986
- "type": "typography",
2987
- "variant": "h3",
2988
- "content": "@entity.daysRemaining"
2989
- }
2990
- ]
2991
- }
3497
+ "type": "stat-display",
3498
+ "label": "DaysRemaining",
3499
+ "value": [
3500
+ "object/get",
3501
+ [
3502
+ "array/first",
3503
+ "@entity"
3504
+ ],
3505
+ "daysRemaining"
2992
3506
  ]
2993
3507
  }
2994
3508
  ]