@almadar/std 6.5.2 → 7.2.0

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 (307) hide show
  1. package/behaviors/registry/atoms/std-agent-activity-log.orb +240 -227
  2. package/behaviors/registry/atoms/std-agent-chat-thread.orb +296 -199
  3. package/behaviors/registry/atoms/std-agent-classifier.orb +384 -133
  4. package/behaviors/registry/atoms/std-agent-completion.orb +404 -141
  5. package/behaviors/registry/atoms/std-agent-context-window.orb +904 -607
  6. package/behaviors/registry/atoms/std-agent-conversation.orb +443 -234
  7. package/behaviors/registry/atoms/std-agent-memory.orb +584 -150
  8. package/behaviors/registry/atoms/std-agent-provider.orb +431 -174
  9. package/behaviors/registry/atoms/std-agent-search.orb +217 -61
  10. package/behaviors/registry/atoms/std-agent-session.orb +406 -159
  11. package/behaviors/registry/atoms/std-agent-step-progress.orb +314 -294
  12. package/behaviors/registry/atoms/std-agent-token-gauge.orb +577 -500
  13. package/behaviors/registry/atoms/std-agent-tool-call.orb +328 -138
  14. package/behaviors/registry/atoms/std-async.orb +147 -86
  15. package/behaviors/registry/atoms/std-autoregressive.orb +64 -73
  16. package/behaviors/registry/atoms/std-browse.orb +260 -126
  17. package/behaviors/registry/atoms/std-cache-aside.orb +358 -259
  18. package/behaviors/registry/atoms/std-calendar.orb +280 -215
  19. package/behaviors/registry/atoms/std-circuit-breaker.orb +295 -234
  20. package/behaviors/registry/atoms/std-collision.orb +136 -135
  21. package/behaviors/registry/atoms/std-combat-log.orb +108 -90
  22. package/behaviors/registry/atoms/std-combat.orb +171 -98
  23. package/behaviors/registry/atoms/std-confirmation.orb +28 -300
  24. package/behaviors/registry/atoms/std-dialogue-box.orb +111 -30
  25. package/behaviors/registry/atoms/std-display.orb +491 -587
  26. package/behaviors/registry/atoms/std-drawer.orb +194 -121
  27. package/behaviors/registry/atoms/std-filter.orb +311 -326
  28. package/behaviors/registry/atoms/std-flip-card.orb +223 -177
  29. package/behaviors/registry/atoms/std-gallery.orb +130 -151
  30. package/behaviors/registry/atoms/std-game-audio.orb +133 -72
  31. package/behaviors/registry/atoms/std-game-canvas2d.orb +112 -52
  32. package/behaviors/registry/atoms/std-game-canvas3d.orb +150 -107
  33. package/behaviors/registry/atoms/std-game-hud.orb +87 -20
  34. package/behaviors/registry/atoms/std-game-menu.orb +32 -32
  35. package/behaviors/registry/atoms/std-game-over-screen.orb +100 -33
  36. package/behaviors/registry/atoms/std-gameflow.orb +147 -80
  37. package/behaviors/registry/atoms/std-input.orb +128 -393
  38. package/behaviors/registry/atoms/std-inventory-panel.orb +108 -71
  39. package/behaviors/registry/atoms/std-isometric-canvas.orb +156 -407
  40. package/behaviors/registry/atoms/std-loading.orb +127 -126
  41. package/behaviors/registry/atoms/std-modal.orb +30 -267
  42. package/behaviors/registry/atoms/std-movement.orb +391 -292
  43. package/behaviors/registry/atoms/std-notification.orb +133 -75
  44. package/behaviors/registry/atoms/std-overworld.orb +194 -121
  45. package/behaviors/registry/atoms/std-pagination.orb +120 -53
  46. package/behaviors/registry/atoms/std-physics2d.orb +94 -93
  47. package/behaviors/registry/atoms/std-platformer-canvas.orb +110 -98
  48. package/behaviors/registry/atoms/std-push.orb +172 -36
  49. package/behaviors/registry/atoms/std-quest.orb +552 -449
  50. package/behaviors/registry/atoms/std-rate-limiter.orb +242 -241
  51. package/behaviors/registry/atoms/std-rating.orb +123 -65
  52. package/behaviors/registry/atoms/std-related.orb +202 -26
  53. package/behaviors/registry/atoms/std-score-board.orb +109 -28
  54. package/behaviors/registry/atoms/std-score.orb +210 -146
  55. package/behaviors/registry/atoms/std-search.orb +265 -138
  56. package/behaviors/registry/atoms/std-selection.orb +311 -220
  57. package/behaviors/registry/atoms/std-service-custom-bearer.orb +199 -110
  58. package/behaviors/registry/atoms/std-service-custom-header.orb +206 -117
  59. package/behaviors/registry/atoms/std-service-custom-noauth.orb +197 -108
  60. package/behaviors/registry/atoms/std-service-custom-query.orb +193 -104
  61. package/behaviors/registry/atoms/std-service-email.orb +195 -107
  62. package/behaviors/registry/atoms/std-service-github.orb +216 -122
  63. package/behaviors/registry/atoms/std-service-llm.orb +204 -122
  64. package/behaviors/registry/atoms/std-service-oauth.orb +290 -204
  65. package/behaviors/registry/atoms/std-service-redis.orb +177 -92
  66. package/behaviors/registry/atoms/std-service-storage.orb +211 -122
  67. package/behaviors/registry/atoms/std-service-stripe.orb +236 -154
  68. package/behaviors/registry/atoms/std-service-twilio.orb +221 -137
  69. package/behaviors/registry/atoms/std-service-youtube.orb +327 -241
  70. package/behaviors/registry/atoms/std-simulation-canvas.orb +97 -36
  71. package/behaviors/registry/atoms/std-sort.orb +284 -207
  72. package/behaviors/registry/atoms/std-sprite.orb +150 -74
  73. package/behaviors/registry/atoms/std-tabs.orb +129 -62
  74. package/behaviors/registry/atoms/std-text-effects.orb +251 -190
  75. package/behaviors/registry/atoms/std-theme.orb +193 -135
  76. package/behaviors/registry/atoms/std-timer.orb +320 -344
  77. package/behaviors/registry/atoms/std-undo.orb +278 -199
  78. package/behaviors/registry/atoms/std-upload.orb +112 -111
  79. package/behaviors/registry/atoms/std-validate-on-save.orb +159 -151
  80. package/behaviors/registry/atoms/std-wizard.orb +445 -336
  81. package/behaviors/registry/molecules/std-agent-fix-loop.orb +876 -857
  82. package/behaviors/registry/molecules/std-agent-learner.orb +635 -654
  83. package/behaviors/registry/molecules/std-agent-planner.orb +581 -548
  84. package/behaviors/registry/molecules/std-agent-rag.orb +414 -410
  85. package/behaviors/registry/molecules/std-agent-tool-loop.orb +716 -711
  86. package/behaviors/registry/molecules/std-batch-selected-list.orb +28 -12
  87. package/behaviors/registry/molecules/std-builder-game.orb +86 -28
  88. package/behaviors/registry/molecules/std-calendar-booking.orb +32 -8
  89. package/behaviors/registry/molecules/std-cart.orb +347 -406
  90. package/behaviors/registry/molecules/std-classifier-game.orb +95 -37
  91. package/behaviors/registry/molecules/std-dashboard-tabbed.orb +16 -10
  92. package/behaviors/registry/molecules/std-debugger-game.orb +95 -37
  93. package/behaviors/registry/molecules/std-detail.orb +133 -138
  94. package/behaviors/registry/molecules/std-drawer-master-list.orb +12 -6
  95. package/behaviors/registry/molecules/std-event-handler-game.orb +91 -33
  96. package/behaviors/registry/molecules/std-filtered-list.orb +14 -8
  97. package/behaviors/registry/molecules/std-form-advanced.orb +242 -153
  98. package/behaviors/registry/molecules/std-gallery-filtered.orb +16 -10
  99. package/behaviors/registry/molecules/std-geospatial.orb +175 -122
  100. package/behaviors/registry/molecules/std-inventory.orb +216 -170
  101. package/behaviors/registry/molecules/std-list.orb +280 -205
  102. package/behaviors/registry/molecules/std-messaging.orb +146 -99
  103. package/behaviors/registry/molecules/std-negotiator-game.orb +95 -37
  104. package/behaviors/registry/molecules/std-platformer-game.orb +300 -171
  105. package/behaviors/registry/molecules/std-push-activity-log.orb +32 -8
  106. package/behaviors/registry/molecules/std-puzzle-game.orb +287 -146
  107. package/behaviors/registry/molecules/std-quiz.orb +322 -263
  108. package/behaviors/registry/molecules/std-related-master-detail.orb +21 -15
  109. package/behaviors/registry/molecules/std-sequencer-game.orb +92 -34
  110. package/behaviors/registry/molecules/std-service-content-pipeline.orb +268 -267
  111. package/behaviors/registry/molecules/std-service-custom-api-tester.orb +245 -152
  112. package/behaviors/registry/molecules/std-service-devops-toolkit.orb +633 -294
  113. package/behaviors/registry/molecules/std-service-notification-hub.orb +237 -152
  114. package/behaviors/registry/molecules/std-service-payment-flow.orb +310 -180
  115. package/behaviors/registry/molecules/std-simulator-game.orb +96 -38
  116. package/behaviors/registry/molecules/std-turn-based-battle.orb +247 -137
  117. package/behaviors/registry/molecules/std-wizard-form.orb +60 -9
  118. package/behaviors/registry/organisms/std-agent-assistant.orb +2810 -1833
  119. package/behaviors/registry/organisms/std-agent-builder.orb +6401 -4539
  120. package/behaviors/registry/organisms/std-agent-pipeline.orb +5028 -3497
  121. package/behaviors/registry/organisms/std-agent-reviewer.orb +2219 -1406
  122. package/behaviors/registry/organisms/std-agent-tutor.orb +2069 -1384
  123. package/behaviors/registry/organisms/std-api-gateway.orb +1419 -870
  124. package/behaviors/registry/organisms/std-arcade-game.orb +488 -231
  125. package/behaviors/registry/organisms/std-booking-system.orb +2457 -1467
  126. package/behaviors/registry/organisms/std-cicd-pipeline.orb +1367 -825
  127. package/behaviors/registry/organisms/std-cms.orb +1549 -566
  128. package/behaviors/registry/organisms/std-coding-academy.orb +744 -495
  129. package/behaviors/registry/organisms/std-crm.orb +1997 -1014
  130. package/behaviors/registry/organisms/std-devops-dashboard.orb +2160 -1606
  131. package/behaviors/registry/organisms/std-ecommerce.orb +2279 -1153
  132. package/behaviors/registry/organisms/std-finance-tracker.orb +1375 -727
  133. package/behaviors/registry/organisms/std-healthcare.orb +2940 -1703
  134. package/behaviors/registry/organisms/std-helpdesk.orb +1443 -781
  135. package/behaviors/registry/organisms/std-hr-portal.orb +2361 -1440
  136. package/behaviors/registry/organisms/std-iot-dashboard.orb +1491 -1026
  137. package/behaviors/registry/organisms/std-lms.orb +1629 -1046
  138. package/behaviors/registry/organisms/std-logic-training.orb +321 -134
  139. package/behaviors/registry/organisms/std-platformer-app.orb +855 -417
  140. package/behaviors/registry/organisms/std-project-manager.orb +1795 -877
  141. package/behaviors/registry/organisms/std-puzzle-app.orb +407 -206
  142. package/behaviors/registry/organisms/std-realtime-chat.orb +1436 -844
  143. package/behaviors/registry/organisms/std-rpg-game.orb +1522 -1007
  144. package/behaviors/registry/organisms/std-service-marketplace.orb +2110 -1204
  145. package/behaviors/registry/organisms/std-service-research-assistant.orb +1285 -1078
  146. package/behaviors/registry/organisms/std-social-feed.orb +612 -252
  147. package/behaviors/registry/organisms/std-stem-lab.orb +642 -450
  148. package/behaviors/registry/organisms/std-strategy-game.orb +893 -650
  149. package/behaviors/registry/organisms/std-trading-dashboard.orb +1271 -805
  150. package/dist/behaviors/registry/atoms/std-agent-activity-log.orb +240 -227
  151. package/dist/behaviors/registry/atoms/std-agent-chat-thread.orb +296 -199
  152. package/dist/behaviors/registry/atoms/std-agent-classifier.orb +384 -133
  153. package/dist/behaviors/registry/atoms/std-agent-completion.orb +404 -141
  154. package/dist/behaviors/registry/atoms/std-agent-context-window.orb +904 -607
  155. package/dist/behaviors/registry/atoms/std-agent-conversation.orb +443 -234
  156. package/dist/behaviors/registry/atoms/std-agent-memory.orb +584 -150
  157. package/dist/behaviors/registry/atoms/std-agent-provider.orb +431 -174
  158. package/dist/behaviors/registry/atoms/std-agent-search.orb +217 -61
  159. package/dist/behaviors/registry/atoms/std-agent-session.orb +406 -159
  160. package/dist/behaviors/registry/atoms/std-agent-step-progress.orb +314 -294
  161. package/dist/behaviors/registry/atoms/std-agent-token-gauge.orb +577 -500
  162. package/dist/behaviors/registry/atoms/std-agent-tool-call.orb +328 -138
  163. package/dist/behaviors/registry/atoms/std-async.orb +147 -86
  164. package/dist/behaviors/registry/atoms/std-autoregressive.orb +64 -73
  165. package/dist/behaviors/registry/atoms/std-browse.orb +260 -126
  166. package/dist/behaviors/registry/atoms/std-cache-aside.orb +358 -259
  167. package/dist/behaviors/registry/atoms/std-calendar.orb +280 -215
  168. package/dist/behaviors/registry/atoms/std-circuit-breaker.orb +295 -234
  169. package/dist/behaviors/registry/atoms/std-collision.orb +136 -135
  170. package/dist/behaviors/registry/atoms/std-combat-log.orb +108 -90
  171. package/dist/behaviors/registry/atoms/std-combat.orb +171 -98
  172. package/dist/behaviors/registry/atoms/std-confirmation.orb +28 -300
  173. package/dist/behaviors/registry/atoms/std-dialogue-box.orb +111 -30
  174. package/dist/behaviors/registry/atoms/std-display.orb +491 -587
  175. package/dist/behaviors/registry/atoms/std-drawer.orb +194 -121
  176. package/dist/behaviors/registry/atoms/std-filter.orb +311 -326
  177. package/dist/behaviors/registry/atoms/std-flip-card.orb +223 -177
  178. package/dist/behaviors/registry/atoms/std-gallery.orb +130 -151
  179. package/dist/behaviors/registry/atoms/std-game-audio.orb +133 -72
  180. package/dist/behaviors/registry/atoms/std-game-canvas2d.orb +112 -52
  181. package/dist/behaviors/registry/atoms/std-game-canvas3d.orb +150 -107
  182. package/dist/behaviors/registry/atoms/std-game-hud.orb +87 -20
  183. package/dist/behaviors/registry/atoms/std-game-menu.orb +32 -32
  184. package/dist/behaviors/registry/atoms/std-game-over-screen.orb +100 -33
  185. package/dist/behaviors/registry/atoms/std-gameflow.orb +147 -80
  186. package/dist/behaviors/registry/atoms/std-input.orb +128 -393
  187. package/dist/behaviors/registry/atoms/std-inventory-panel.orb +108 -71
  188. package/dist/behaviors/registry/atoms/std-isometric-canvas.orb +156 -407
  189. package/dist/behaviors/registry/atoms/std-loading.orb +127 -126
  190. package/dist/behaviors/registry/atoms/std-modal.orb +30 -267
  191. package/dist/behaviors/registry/atoms/std-movement.orb +391 -292
  192. package/dist/behaviors/registry/atoms/std-notification.orb +133 -75
  193. package/dist/behaviors/registry/atoms/std-overworld.orb +194 -121
  194. package/dist/behaviors/registry/atoms/std-pagination.orb +120 -53
  195. package/dist/behaviors/registry/atoms/std-physics2d.orb +94 -93
  196. package/dist/behaviors/registry/atoms/std-platformer-canvas.orb +110 -98
  197. package/dist/behaviors/registry/atoms/std-push.orb +172 -36
  198. package/dist/behaviors/registry/atoms/std-quest.orb +552 -449
  199. package/dist/behaviors/registry/atoms/std-rate-limiter.orb +242 -241
  200. package/dist/behaviors/registry/atoms/std-rating.orb +123 -65
  201. package/dist/behaviors/registry/atoms/std-related.orb +202 -26
  202. package/dist/behaviors/registry/atoms/std-score-board.orb +109 -28
  203. package/dist/behaviors/registry/atoms/std-score.orb +210 -146
  204. package/dist/behaviors/registry/atoms/std-search.orb +265 -138
  205. package/dist/behaviors/registry/atoms/std-selection.orb +311 -220
  206. package/dist/behaviors/registry/atoms/std-service-custom-bearer.orb +199 -110
  207. package/dist/behaviors/registry/atoms/std-service-custom-header.orb +206 -117
  208. package/dist/behaviors/registry/atoms/std-service-custom-noauth.orb +197 -108
  209. package/dist/behaviors/registry/atoms/std-service-custom-query.orb +193 -104
  210. package/dist/behaviors/registry/atoms/std-service-email.orb +195 -107
  211. package/dist/behaviors/registry/atoms/std-service-github.orb +216 -122
  212. package/dist/behaviors/registry/atoms/std-service-llm.orb +204 -122
  213. package/dist/behaviors/registry/atoms/std-service-oauth.orb +290 -204
  214. package/dist/behaviors/registry/atoms/std-service-redis.orb +177 -92
  215. package/dist/behaviors/registry/atoms/std-service-storage.orb +211 -122
  216. package/dist/behaviors/registry/atoms/std-service-stripe.orb +236 -154
  217. package/dist/behaviors/registry/atoms/std-service-twilio.orb +221 -137
  218. package/dist/behaviors/registry/atoms/std-service-youtube.orb +327 -241
  219. package/dist/behaviors/registry/atoms/std-simulation-canvas.orb +97 -36
  220. package/dist/behaviors/registry/atoms/std-sort.orb +284 -207
  221. package/dist/behaviors/registry/atoms/std-sprite.orb +150 -74
  222. package/dist/behaviors/registry/atoms/std-tabs.orb +129 -62
  223. package/dist/behaviors/registry/atoms/std-text-effects.orb +251 -190
  224. package/dist/behaviors/registry/atoms/std-theme.orb +193 -135
  225. package/dist/behaviors/registry/atoms/std-timer.orb +320 -344
  226. package/dist/behaviors/registry/atoms/std-undo.orb +278 -199
  227. package/dist/behaviors/registry/atoms/std-upload.orb +112 -111
  228. package/dist/behaviors/registry/atoms/std-validate-on-save.orb +159 -151
  229. package/dist/behaviors/registry/atoms/std-wizard.orb +445 -336
  230. package/dist/behaviors/registry/molecules/std-agent-fix-loop.orb +876 -857
  231. package/dist/behaviors/registry/molecules/std-agent-learner.orb +635 -654
  232. package/dist/behaviors/registry/molecules/std-agent-planner.orb +581 -548
  233. package/dist/behaviors/registry/molecules/std-agent-rag.orb +414 -410
  234. package/dist/behaviors/registry/molecules/std-agent-tool-loop.orb +716 -711
  235. package/dist/behaviors/registry/molecules/std-batch-selected-list.orb +28 -12
  236. package/dist/behaviors/registry/molecules/std-builder-game.orb +86 -28
  237. package/dist/behaviors/registry/molecules/std-calendar-booking.orb +32 -8
  238. package/dist/behaviors/registry/molecules/std-cart.orb +347 -406
  239. package/dist/behaviors/registry/molecules/std-classifier-game.orb +95 -37
  240. package/dist/behaviors/registry/molecules/std-dashboard-tabbed.orb +16 -10
  241. package/dist/behaviors/registry/molecules/std-debugger-game.orb +95 -37
  242. package/dist/behaviors/registry/molecules/std-detail.orb +133 -138
  243. package/dist/behaviors/registry/molecules/std-drawer-master-list.orb +12 -6
  244. package/dist/behaviors/registry/molecules/std-event-handler-game.orb +91 -33
  245. package/dist/behaviors/registry/molecules/std-filtered-list.orb +14 -8
  246. package/dist/behaviors/registry/molecules/std-form-advanced.orb +242 -153
  247. package/dist/behaviors/registry/molecules/std-gallery-filtered.orb +16 -10
  248. package/dist/behaviors/registry/molecules/std-geospatial.orb +175 -122
  249. package/dist/behaviors/registry/molecules/std-inventory.orb +216 -170
  250. package/dist/behaviors/registry/molecules/std-list.orb +280 -205
  251. package/dist/behaviors/registry/molecules/std-messaging.orb +146 -99
  252. package/dist/behaviors/registry/molecules/std-negotiator-game.orb +95 -37
  253. package/dist/behaviors/registry/molecules/std-platformer-game.orb +300 -171
  254. package/dist/behaviors/registry/molecules/std-push-activity-log.orb +32 -8
  255. package/dist/behaviors/registry/molecules/std-puzzle-game.orb +287 -146
  256. package/dist/behaviors/registry/molecules/std-quiz.orb +322 -263
  257. package/dist/behaviors/registry/molecules/std-related-master-detail.orb +21 -15
  258. package/dist/behaviors/registry/molecules/std-sequencer-game.orb +92 -34
  259. package/dist/behaviors/registry/molecules/std-service-content-pipeline.orb +268 -267
  260. package/dist/behaviors/registry/molecules/std-service-custom-api-tester.orb +245 -152
  261. package/dist/behaviors/registry/molecules/std-service-devops-toolkit.orb +633 -294
  262. package/dist/behaviors/registry/molecules/std-service-notification-hub.orb +237 -152
  263. package/dist/behaviors/registry/molecules/std-service-payment-flow.orb +310 -180
  264. package/dist/behaviors/registry/molecules/std-simulator-game.orb +96 -38
  265. package/dist/behaviors/registry/molecules/std-turn-based-battle.orb +247 -137
  266. package/dist/behaviors/registry/molecules/std-wizard-form.orb +60 -9
  267. package/dist/behaviors/registry/organisms/std-agent-assistant.orb +2810 -1833
  268. package/dist/behaviors/registry/organisms/std-agent-builder.orb +6401 -4539
  269. package/dist/behaviors/registry/organisms/std-agent-pipeline.orb +5028 -3497
  270. package/dist/behaviors/registry/organisms/std-agent-reviewer.orb +2219 -1406
  271. package/dist/behaviors/registry/organisms/std-agent-tutor.orb +2069 -1384
  272. package/dist/behaviors/registry/organisms/std-api-gateway.orb +1419 -870
  273. package/dist/behaviors/registry/organisms/std-arcade-game.orb +488 -231
  274. package/dist/behaviors/registry/organisms/std-booking-system.orb +2457 -1467
  275. package/dist/behaviors/registry/organisms/std-cicd-pipeline.orb +1367 -825
  276. package/dist/behaviors/registry/organisms/std-cms.orb +1549 -566
  277. package/dist/behaviors/registry/organisms/std-coding-academy.orb +744 -495
  278. package/dist/behaviors/registry/organisms/std-crm.orb +1997 -1014
  279. package/dist/behaviors/registry/organisms/std-devops-dashboard.orb +2160 -1606
  280. package/dist/behaviors/registry/organisms/std-ecommerce.orb +2279 -1153
  281. package/dist/behaviors/registry/organisms/std-finance-tracker.orb +1375 -727
  282. package/dist/behaviors/registry/organisms/std-healthcare.orb +2940 -1703
  283. package/dist/behaviors/registry/organisms/std-helpdesk.orb +1443 -781
  284. package/dist/behaviors/registry/organisms/std-hr-portal.orb +2361 -1440
  285. package/dist/behaviors/registry/organisms/std-iot-dashboard.orb +1491 -1026
  286. package/dist/behaviors/registry/organisms/std-lms.orb +1629 -1046
  287. package/dist/behaviors/registry/organisms/std-logic-training.orb +321 -134
  288. package/dist/behaviors/registry/organisms/std-platformer-app.orb +855 -417
  289. package/dist/behaviors/registry/organisms/std-project-manager.orb +1795 -877
  290. package/dist/behaviors/registry/organisms/std-puzzle-app.orb +407 -206
  291. package/dist/behaviors/registry/organisms/std-realtime-chat.orb +1436 -844
  292. package/dist/behaviors/registry/organisms/std-rpg-game.orb +1522 -1007
  293. package/dist/behaviors/registry/organisms/std-service-marketplace.orb +2110 -1204
  294. package/dist/behaviors/registry/organisms/std-service-research-assistant.orb +1285 -1078
  295. package/dist/behaviors/registry/organisms/std-social-feed.orb +612 -252
  296. package/dist/behaviors/registry/organisms/std-stem-lab.orb +642 -450
  297. package/dist/behaviors/registry/organisms/std-strategy-game.orb +893 -650
  298. package/dist/behaviors/registry/organisms/std-trading-dashboard.orb +1271 -805
  299. package/dist/index.js +16 -4
  300. package/dist/index.js.map +1 -1
  301. package/dist/modules/core.js +16 -4
  302. package/dist/modules/core.js.map +1 -1
  303. package/dist/modules/index.js +16 -4
  304. package/dist/modules/index.js.map +1 -1
  305. package/dist/registry.js +16 -4
  306. package/dist/registry.js.map +1 -1
  307. package/package.json +2 -2
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "std-project-manager",
3
3
  "version": "1.0.0",
4
- "description": "Project management organism. Composes molecules via compose: - stdList(Task): task management with CRUD - stdList(Sprint): sprint management with CRUD - stdDisplay(Burndown): burndown chart dashboard",
4
+ "description": "std-project-manager as a Function",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "TaskOrbital",
8
8
  "entity": {
9
9
  "name": "Task",
10
- "persistence": "persistent",
11
10
  "collection": "tasks",
11
+ "persistence": "persistent",
12
12
  "fields": [
13
13
  {
14
14
  "name": "id",
@@ -53,11 +53,11 @@
53
53
  {
54
54
  "name": "storyPoints",
55
55
  "type": "number",
56
- "default": 0
56
+ "default": 0.0
57
57
  },
58
58
  {
59
59
  "name": "dueDate",
60
- "type": "date"
60
+ "type": "datetime"
61
61
  },
62
62
  {
63
63
  "name": "pendingId",
@@ -69,28 +69,97 @@
69
69
  "traits": [
70
70
  {
71
71
  "name": "TaskBrowse",
72
- "linkedEntity": "Task",
73
72
  "category": "interaction",
73
+ "linkedEntity": "Task",
74
+ "emits": [
75
+ {
76
+ "event": "TaskLoaded",
77
+ "description": "Fired when Task finishes loading",
78
+ "scope": "internal",
79
+ "payload": [
80
+ {
81
+ "name": "id",
82
+ "type": "string",
83
+ "required": true
84
+ },
85
+ {
86
+ "name": "title",
87
+ "type": "string",
88
+ "required": true
89
+ },
90
+ {
91
+ "name": "description",
92
+ "type": "string"
93
+ },
94
+ {
95
+ "name": "assignee",
96
+ "type": "string"
97
+ },
98
+ {
99
+ "name": "priority",
100
+ "type": "string"
101
+ },
102
+ {
103
+ "name": "status",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "name": "storyPoints",
108
+ "type": "number"
109
+ },
110
+ {
111
+ "name": "dueDate",
112
+ "type": "datetime"
113
+ },
114
+ {
115
+ "name": "pendingId",
116
+ "type": "string"
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "event": "TaskLoadFailed",
122
+ "description": "Fired when Task fails to load",
123
+ "scope": "internal",
124
+ "payload": [
125
+ {
126
+ "name": "message",
127
+ "type": "string"
128
+ }
129
+ ]
130
+ }
131
+ ],
74
132
  "listens": [
75
133
  {
76
134
  "event": "TASK_CREATED",
77
135
  "triggers": "INIT",
78
- "scope": "external"
136
+ "source": {
137
+ "kind": "trait",
138
+ "trait": "TaskCreate"
139
+ }
79
140
  },
80
141
  {
81
142
  "event": "TASK_UPDATED",
82
143
  "triggers": "INIT",
83
- "scope": "external"
144
+ "source": {
145
+ "kind": "trait",
146
+ "trait": "TaskEdit"
147
+ }
84
148
  },
85
149
  {
86
150
  "event": "TASK_DELETED",
87
151
  "triggers": "INIT",
88
- "scope": "external"
152
+ "source": {
153
+ "kind": "trait",
154
+ "trait": "TaskDelete"
155
+ }
89
156
  },
90
157
  {
91
158
  "event": "ASSIGN_TASK",
92
159
  "triggers": "INIT",
93
- "scope": "external"
160
+ "source": {
161
+ "kind": "any"
162
+ }
94
163
  }
95
164
  ],
96
165
  "stateMachine": {
@@ -106,12 +175,22 @@
106
175
  "name": "Initialize"
107
176
  },
108
177
  {
109
- "key": "CREATE",
110
- "name": "CREATE"
178
+ "key": "TaskLoaded",
179
+ "name": "Task loaded"
180
+ },
181
+ {
182
+ "key": "TaskLoadFailed",
183
+ "name": "Task load failed",
184
+ "payload": [
185
+ {
186
+ "name": "message",
187
+ "type": "string"
188
+ }
189
+ ]
111
190
  },
112
191
  {
113
192
  "key": "VIEW",
114
- "name": "VIEW",
193
+ "name": "View",
115
194
  "payload": [
116
195
  {
117
196
  "name": "id",
@@ -126,7 +205,7 @@
126
205
  },
127
206
  {
128
207
  "key": "EDIT",
129
- "name": "EDIT",
208
+ "name": "Edit",
130
209
  "payload": [
131
210
  {
132
211
  "name": "id",
@@ -141,7 +220,7 @@
141
220
  },
142
221
  {
143
222
  "key": "DELETE",
144
- "name": "DELETE",
223
+ "name": "Delete",
145
224
  "payload": [
146
225
  {
147
226
  "name": "id",
@@ -169,7 +248,6 @@
169
248
  "render-ui",
170
249
  "main",
171
250
  {
172
- "type": "dashboard-layout",
173
251
  "appName": "ProjectManagerApp",
174
252
  "navItems": [
175
253
  {
@@ -178,40 +256,38 @@
178
256
  "icon": "check-square"
179
257
  },
180
258
  {
181
- "label": "Sprints",
182
259
  "href": "/sprints",
260
+ "label": "Sprints",
183
261
  "icon": "zap"
184
262
  },
185
263
  {
264
+ "icon": "layout-list",
186
265
  "label": "Burndown",
187
- "href": "/burndown",
188
- "icon": "layout-list"
266
+ "href": "/burndown"
189
267
  }
190
268
  ],
191
269
  "children": [
192
270
  {
193
271
  "type": "stack",
194
- "direction": "vertical",
195
- "gap": "lg",
196
272
  "className": "max-w-5xl mx-auto w-full",
273
+ "gap": "lg",
197
274
  "children": [
198
275
  {
199
- "type": "stack",
200
276
  "direction": "horizontal",
201
277
  "gap": "md",
202
278
  "justify": "space-between",
203
279
  "align": "center",
204
280
  "children": [
205
281
  {
206
- "type": "stack",
207
282
  "direction": "horizontal",
208
283
  "gap": "sm",
209
284
  "align": "center",
285
+ "type": "stack",
210
286
  "children": [
211
287
  {
288
+ "size": "lg",
212
289
  "type": "icon",
213
- "name": "check-square",
214
- "size": "lg"
290
+ "name": "check-square"
215
291
  },
216
292
  {
217
293
  "type": "typography",
@@ -221,66 +297,66 @@
221
297
  ]
222
298
  },
223
299
  {
300
+ "gap": "sm",
224
301
  "type": "stack",
225
302
  "direction": "horizontal",
226
- "gap": "sm",
227
303
  "children": [
228
304
  {
229
305
  "type": "button",
230
- "label": "Create Task",
231
306
  "event": "CREATE",
232
- "variant": "primary",
233
- "icon": "plus"
307
+ "icon": "plus",
308
+ "label": "Create Task",
309
+ "variant": "primary"
234
310
  }
235
311
  ]
236
312
  }
237
- ]
313
+ ],
314
+ "type": "stack"
238
315
  },
239
316
  {
240
317
  "type": "divider"
241
318
  },
242
319
  {
243
- "type": "simple-grid",
244
- "columns": 1,
245
320
  "children": [
246
321
  {
247
- "type": "stat-display",
322
+ "icon": "check-square",
248
323
  "label": "Total Tasks",
324
+ "type": "stat-display",
249
325
  "value": [
250
326
  "array/len",
251
327
  "@entity"
252
- ],
253
- "icon": "check-square"
328
+ ]
254
329
  }
255
- ]
330
+ ],
331
+ "type": "simple-grid",
332
+ "columns": 1.0
256
333
  },
257
334
  {
258
335
  "type": "divider"
259
336
  },
260
337
  {
261
- "type": "data-grid",
262
- "entity": "Task",
338
+ "gap": "md",
263
339
  "emptyIcon": "inbox",
264
- "emptyTitle": "No tasks yet",
340
+ "type": "data-grid",
265
341
  "emptyDescription": "Create tasks to plan your sprint.",
266
342
  "itemActions": [
267
343
  {
268
- "label": "View",
269
344
  "event": "VIEW",
345
+ "size": "sm",
270
346
  "variant": "ghost",
271
- "size": "sm"
347
+ "label": "View"
272
348
  },
273
349
  {
274
- "label": "Edit",
275
- "event": "EDIT",
276
350
  "variant": "ghost",
277
- "size": "sm"
351
+ "event": "EDIT",
352
+ "size": "sm",
353
+ "label": "Edit"
278
354
  },
279
355
  {
356
+ "size": "sm",
280
357
  "label": "Delete",
281
- "event": "DELETE",
282
358
  "variant": "danger",
283
- "size": "sm"
359
+ "event": "DELETE"
284
360
  }
285
361
  ],
286
362
  "columns": [
@@ -290,55 +366,117 @@
290
366
  "icon": "check-square"
291
367
  },
292
368
  {
293
- "name": "priority",
294
- "variant": "badge"
369
+ "variant": "badge",
370
+ "name": "priority"
295
371
  },
296
372
  {
297
373
  "name": "status",
298
374
  "variant": "badge"
299
375
  },
300
376
  {
301
- "name": "assignee",
302
- "variant": "body"
377
+ "variant": "body",
378
+ "name": "assignee"
303
379
  },
304
380
  {
381
+ "variant": "body",
305
382
  "name": "storyPoints",
306
383
  "label": "Points",
307
- "variant": "body",
308
384
  "format": "number"
309
385
  },
310
386
  {
311
- "name": "dueDate",
387
+ "format": "date",
312
388
  "label": "Due",
313
389
  "variant": "caption",
314
- "format": "date"
390
+ "name": "dueDate"
315
391
  }
316
392
  ],
317
- "cols": 2,
318
- "gap": "md"
393
+ "entity": "Task",
394
+ "emptyTitle": "No tasks yet",
395
+ "cols": 2.0
319
396
  }
320
- ]
397
+ ],
398
+ "direction": "vertical"
321
399
  }
322
- ]
400
+ ],
401
+ "type": "dashboard-layout"
323
402
  }
324
403
  ]
325
404
  ]
326
405
  }
327
406
  ]
328
- }
407
+ },
408
+ "scope": "collection"
329
409
  },
330
410
  {
331
411
  "name": "TaskCreate",
332
- "linkedEntity": "Task",
333
412
  "category": "interaction",
413
+ "linkedEntity": "Task",
334
414
  "emits": [
335
415
  {
336
- "event": "SAVE",
337
- "scope": "internal"
416
+ "event": "TASK_CREATED",
417
+ "scope": "external",
418
+ "payload": [
419
+ {
420
+ "name": "id",
421
+ "type": "string"
422
+ }
423
+ ]
338
424
  },
339
425
  {
340
- "event": "TASK_CREATED",
341
- "scope": "external"
426
+ "event": "TaskLoaded",
427
+ "description": "Fired when Task finishes loading",
428
+ "scope": "internal",
429
+ "payload": [
430
+ {
431
+ "name": "id",
432
+ "type": "string",
433
+ "required": true
434
+ },
435
+ {
436
+ "name": "title",
437
+ "type": "string",
438
+ "required": true
439
+ },
440
+ {
441
+ "name": "description",
442
+ "type": "string"
443
+ },
444
+ {
445
+ "name": "assignee",
446
+ "type": "string"
447
+ },
448
+ {
449
+ "name": "priority",
450
+ "type": "string"
451
+ },
452
+ {
453
+ "name": "status",
454
+ "type": "string"
455
+ },
456
+ {
457
+ "name": "storyPoints",
458
+ "type": "number"
459
+ },
460
+ {
461
+ "name": "dueDate",
462
+ "type": "datetime"
463
+ },
464
+ {
465
+ "name": "pendingId",
466
+ "type": "string"
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "event": "TaskLoadFailed",
472
+ "description": "Fired when Task fails to load",
473
+ "scope": "internal",
474
+ "payload": [
475
+ {
476
+ "name": "message",
477
+ "type": "string"
478
+ }
479
+ ]
342
480
  }
343
481
  ],
344
482
  "stateMachine": {
@@ -358,7 +496,7 @@
358
496
  },
359
497
  {
360
498
  "key": "CREATE",
361
- "name": "Open"
499
+ "name": "Create"
362
500
  },
363
501
  {
364
502
  "key": "CLOSE",
@@ -374,6 +512,24 @@
374
512
  "required": true
375
513
  }
376
514
  ]
515
+ },
516
+ {
517
+ "key": "TASK_CREATED",
518
+ "name": "Task Created"
519
+ },
520
+ {
521
+ "key": "TaskLoaded",
522
+ "name": "Task loaded"
523
+ },
524
+ {
525
+ "key": "TaskLoadFailed",
526
+ "name": "Task load failed",
527
+ "payload": [
528
+ {
529
+ "name": "message",
530
+ "type": "string"
531
+ }
532
+ ]
377
533
  }
378
534
  ],
379
535
  "transitions": [
@@ -395,30 +551,33 @@
395
551
  "effects": [
396
552
  [
397
553
  "fetch",
398
- "Task"
554
+ "Task",
555
+ {
556
+ "emit": {
557
+ "success": "TaskLoaded",
558
+ "failure": "TaskLoadFailed"
559
+ }
560
+ }
399
561
  ],
400
562
  [
401
563
  "render-ui",
402
564
  "modal",
403
565
  {
404
- "type": "stack",
405
- "direction": "vertical",
406
- "gap": "md",
407
566
  "children": [
408
567
  {
409
- "type": "stack",
410
568
  "direction": "horizontal",
569
+ "type": "stack",
411
570
  "gap": "sm",
412
571
  "children": [
413
572
  {
573
+ "size": "md",
414
574
  "type": "icon",
415
- "name": "plus-circle",
416
- "size": "md"
575
+ "name": "plus-circle"
417
576
  },
418
577
  {
578
+ "variant": "h3",
419
579
  "type": "typography",
420
- "content": "Create Task",
421
- "variant": "h3"
580
+ "content": "Create Task"
422
581
  }
423
582
  ]
424
583
  },
@@ -426,9 +585,7 @@
426
585
  "type": "divider"
427
586
  },
428
587
  {
429
- "type": "form-section",
430
588
  "entity": "Task",
431
- "mode": "create",
432
589
  "submitEvent": "SAVE",
433
590
  "cancelEvent": "CLOSE",
434
591
  "fields": [
@@ -439,9 +596,14 @@
439
596
  "status",
440
597
  "storyPoints",
441
598
  "dueDate"
442
- ]
599
+ ],
600
+ "type": "form-section",
601
+ "mode": "create"
443
602
  }
444
- ]
603
+ ],
604
+ "direction": "vertical",
605
+ "type": "stack",
606
+ "gap": "md"
445
607
  }
446
608
  ]
447
609
  ]
@@ -456,6 +618,13 @@
456
618
  "modal",
457
619
  null
458
620
  ],
621
+ [
622
+ "render-ui",
623
+ "main",
624
+ {
625
+ "type": "box"
626
+ }
627
+ ],
459
628
  [
460
629
  "notify",
461
630
  "Cancelled",
@@ -479,6 +648,13 @@
479
648
  "modal",
480
649
  null
481
650
  ],
651
+ [
652
+ "render-ui",
653
+ "main",
654
+ {
655
+ "type": "box"
656
+ }
657
+ ],
482
658
  [
483
659
  "emit",
484
660
  "TASK_CREATED"
@@ -486,20 +662,79 @@
486
662
  ]
487
663
  }
488
664
  ]
489
- }
665
+ },
666
+ "scope": "collection"
490
667
  },
491
668
  {
492
669
  "name": "TaskEdit",
493
- "linkedEntity": "Task",
494
670
  "category": "interaction",
671
+ "linkedEntity": "Task",
495
672
  "emits": [
496
673
  {
497
- "event": "SAVE",
498
- "scope": "internal"
674
+ "event": "TASK_UPDATED",
675
+ "scope": "external",
676
+ "payload": [
677
+ {
678
+ "name": "id",
679
+ "type": "string"
680
+ }
681
+ ]
499
682
  },
500
683
  {
501
- "event": "TASK_UPDATED",
502
- "scope": "external"
684
+ "event": "TaskLoaded",
685
+ "description": "Fired when Task finishes loading",
686
+ "scope": "internal",
687
+ "payload": [
688
+ {
689
+ "name": "id",
690
+ "type": "string",
691
+ "required": true
692
+ },
693
+ {
694
+ "name": "title",
695
+ "type": "string",
696
+ "required": true
697
+ },
698
+ {
699
+ "name": "description",
700
+ "type": "string"
701
+ },
702
+ {
703
+ "name": "assignee",
704
+ "type": "string"
705
+ },
706
+ {
707
+ "name": "priority",
708
+ "type": "string"
709
+ },
710
+ {
711
+ "name": "status",
712
+ "type": "string"
713
+ },
714
+ {
715
+ "name": "storyPoints",
716
+ "type": "number"
717
+ },
718
+ {
719
+ "name": "dueDate",
720
+ "type": "datetime"
721
+ },
722
+ {
723
+ "name": "pendingId",
724
+ "type": "string"
725
+ }
726
+ ]
727
+ },
728
+ {
729
+ "event": "TaskLoadFailed",
730
+ "description": "Fired when Task fails to load",
731
+ "scope": "internal",
732
+ "payload": [
733
+ {
734
+ "name": "message",
735
+ "type": "string"
736
+ }
737
+ ]
503
738
  }
504
739
  ],
505
740
  "stateMachine": {
@@ -519,7 +754,7 @@
519
754
  },
520
755
  {
521
756
  "key": "EDIT",
522
- "name": "Open",
757
+ "name": "Edit",
523
758
  "payload": [
524
759
  {
525
760
  "name": "id",
@@ -542,6 +777,24 @@
542
777
  "required": true
543
778
  }
544
779
  ]
780
+ },
781
+ {
782
+ "key": "TASK_UPDATED",
783
+ "name": "Task Updated"
784
+ },
785
+ {
786
+ "key": "TaskLoaded",
787
+ "name": "Task loaded"
788
+ },
789
+ {
790
+ "key": "TaskLoadFailed",
791
+ "name": "Task load failed",
792
+ "payload": [
793
+ {
794
+ "name": "message",
795
+ "type": "string"
796
+ }
797
+ ]
545
798
  }
546
799
  ],
547
800
  "transitions": [
@@ -565,6 +818,10 @@
565
818
  "fetch",
566
819
  "Task",
567
820
  {
821
+ "emit": {
822
+ "failure": "TaskLoadFailed",
823
+ "success": "TaskLoaded"
824
+ },
568
825
  "id": "@payload.id"
569
826
  }
570
827
  ],
@@ -572,26 +829,25 @@
572
829
  "render-ui",
573
830
  "modal",
574
831
  {
575
- "type": "stack",
576
832
  "direction": "vertical",
577
833
  "gap": "md",
578
834
  "children": [
579
835
  {
580
- "type": "stack",
581
- "direction": "horizontal",
582
836
  "gap": "sm",
837
+ "direction": "horizontal",
583
838
  "children": [
584
839
  {
840
+ "size": "md",
585
841
  "type": "icon",
586
- "name": "edit",
587
- "size": "md"
842
+ "name": "edit"
588
843
  },
589
844
  {
590
845
  "type": "typography",
591
846
  "content": "Edit Task",
592
847
  "variant": "h3"
593
848
  }
594
- ]
849
+ ],
850
+ "type": "stack"
595
851
  },
596
852
  {
597
853
  "type": "divider"
@@ -599,8 +855,8 @@
599
855
  {
600
856
  "type": "form-section",
601
857
  "entity": "Task",
602
- "mode": "edit",
603
858
  "submitEvent": "SAVE",
859
+ "mode": "edit",
604
860
  "cancelEvent": "CLOSE",
605
861
  "fields": [
606
862
  "title",
@@ -613,7 +869,8 @@
613
869
  ],
614
870
  "entityId": "@entity.id"
615
871
  }
616
- ]
872
+ ],
873
+ "type": "stack"
617
874
  }
618
875
  ]
619
876
  ]
@@ -628,6 +885,13 @@
628
885
  "modal",
629
886
  null
630
887
  ],
888
+ [
889
+ "render-ui",
890
+ "main",
891
+ {
892
+ "type": "box"
893
+ }
894
+ ],
631
895
  [
632
896
  "notify",
633
897
  "Cancelled",
@@ -651,6 +915,13 @@
651
915
  "modal",
652
916
  null
653
917
  ],
918
+ [
919
+ "render-ui",
920
+ "main",
921
+ {
922
+ "type": "box"
923
+ }
924
+ ],
654
925
  [
655
926
  "emit",
656
927
  "TASK_UPDATED"
@@ -658,16 +929,69 @@
658
929
  ]
659
930
  }
660
931
  ]
661
- }
932
+ },
933
+ "scope": "collection"
662
934
  },
663
935
  {
664
936
  "name": "TaskView",
665
- "linkedEntity": "Task",
666
937
  "category": "interaction",
938
+ "linkedEntity": "Task",
667
939
  "emits": [
668
940
  {
669
- "event": "SAVE",
670
- "scope": "internal"
941
+ "event": "TaskLoaded",
942
+ "description": "Fired when Task finishes loading",
943
+ "scope": "internal",
944
+ "payload": [
945
+ {
946
+ "name": "id",
947
+ "type": "string",
948
+ "required": true
949
+ },
950
+ {
951
+ "name": "title",
952
+ "type": "string",
953
+ "required": true
954
+ },
955
+ {
956
+ "name": "description",
957
+ "type": "string"
958
+ },
959
+ {
960
+ "name": "assignee",
961
+ "type": "string"
962
+ },
963
+ {
964
+ "name": "priority",
965
+ "type": "string"
966
+ },
967
+ {
968
+ "name": "status",
969
+ "type": "string"
970
+ },
971
+ {
972
+ "name": "storyPoints",
973
+ "type": "number"
974
+ },
975
+ {
976
+ "name": "dueDate",
977
+ "type": "datetime"
978
+ },
979
+ {
980
+ "name": "pendingId",
981
+ "type": "string"
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "event": "TaskLoadFailed",
987
+ "description": "Fired when Task fails to load",
988
+ "scope": "internal",
989
+ "payload": [
990
+ {
991
+ "name": "message",
992
+ "type": "string"
993
+ }
994
+ ]
671
995
  }
672
996
  ],
673
997
  "stateMachine": {
@@ -687,7 +1011,7 @@
687
1011
  },
688
1012
  {
689
1013
  "key": "VIEW",
690
- "name": "Open",
1014
+ "name": "View",
691
1015
  "payload": [
692
1016
  {
693
1017
  "name": "id",
@@ -710,11 +1034,25 @@
710
1034
  "required": true
711
1035
  }
712
1036
  ]
713
- }
714
- ],
715
- "transitions": [
1037
+ },
716
1038
  {
717
- "from": "closed",
1039
+ "key": "TaskLoaded",
1040
+ "name": "Task loaded"
1041
+ },
1042
+ {
1043
+ "key": "TaskLoadFailed",
1044
+ "name": "Task load failed",
1045
+ "payload": [
1046
+ {
1047
+ "name": "message",
1048
+ "type": "string"
1049
+ }
1050
+ ]
1051
+ }
1052
+ ],
1053
+ "transitions": [
1054
+ {
1055
+ "from": "closed",
718
1056
  "to": "closed",
719
1057
  "event": "INIT",
720
1058
  "effects": [
@@ -733,7 +1071,11 @@
733
1071
  "fetch",
734
1072
  "Task",
735
1073
  {
736
- "id": "@payload.id"
1074
+ "id": "@payload.id",
1075
+ "emit": {
1076
+ "failure": "TaskLoadFailed",
1077
+ "success": "TaskLoaded"
1078
+ }
737
1079
  }
738
1080
  ],
739
1081
  [
@@ -741,131 +1083,131 @@
741
1083
  "modal",
742
1084
  {
743
1085
  "type": "stack",
744
- "direction": "vertical",
745
1086
  "gap": "md",
1087
+ "direction": "vertical",
746
1088
  "children": [
747
1089
  {
748
1090
  "type": "stack",
749
- "direction": "horizontal",
750
- "gap": "sm",
751
1091
  "align": "center",
752
1092
  "children": [
753
1093
  {
754
- "type": "icon",
755
1094
  "name": "eye",
1095
+ "type": "icon",
756
1096
  "size": "md"
757
1097
  },
758
1098
  {
759
- "type": "typography",
1099
+ "content": "@entity.title",
760
1100
  "variant": "h3",
761
- "content": "@entity.title"
1101
+ "type": "typography"
762
1102
  }
763
- ]
1103
+ ],
1104
+ "direction": "horizontal",
1105
+ "gap": "sm"
764
1106
  },
765
1107
  {
766
1108
  "type": "divider"
767
1109
  },
768
1110
  {
769
- "type": "stack",
770
- "direction": "horizontal",
771
- "gap": "md",
772
1111
  "children": [
773
1112
  {
774
- "type": "typography",
775
1113
  "variant": "caption",
1114
+ "type": "typography",
776
1115
  "content": "Title"
777
1116
  },
778
1117
  {
779
- "type": "typography",
780
1118
  "variant": "body",
1119
+ "type": "typography",
781
1120
  "content": "@entity.title"
782
1121
  }
783
- ]
784
- },
785
- {
1122
+ ],
786
1123
  "type": "stack",
787
1124
  "direction": "horizontal",
1125
+ "gap": "md"
1126
+ },
1127
+ {
788
1128
  "gap": "md",
1129
+ "direction": "horizontal",
789
1130
  "children": [
790
1131
  {
791
1132
  "type": "typography",
792
- "variant": "caption",
793
- "content": "Description"
1133
+ "content": "Description",
1134
+ "variant": "caption"
794
1135
  },
795
1136
  {
796
1137
  "type": "typography",
797
- "variant": "body",
798
- "content": "@entity.description"
1138
+ "content": "@entity.description",
1139
+ "variant": "body"
799
1140
  }
800
- ]
1141
+ ],
1142
+ "type": "stack"
801
1143
  },
802
1144
  {
803
- "type": "stack",
804
- "direction": "horizontal",
805
1145
  "gap": "md",
1146
+ "direction": "horizontal",
1147
+ "type": "stack",
806
1148
  "children": [
807
1149
  {
808
- "type": "typography",
809
1150
  "variant": "caption",
810
- "content": "Assignee"
1151
+ "content": "Assignee",
1152
+ "type": "typography"
811
1153
  },
812
1154
  {
1155
+ "content": "@entity.assignee",
813
1156
  "type": "typography",
814
- "variant": "body",
815
- "content": "@entity.assignee"
1157
+ "variant": "body"
816
1158
  }
817
1159
  ]
818
1160
  },
819
1161
  {
820
- "type": "stack",
821
- "direction": "horizontal",
822
1162
  "gap": "md",
823
1163
  "children": [
824
1164
  {
825
- "type": "typography",
1165
+ "content": "Priority",
826
1166
  "variant": "caption",
827
- "content": "Priority"
1167
+ "type": "typography"
828
1168
  },
829
1169
  {
830
- "type": "typography",
831
1170
  "variant": "body",
1171
+ "type": "typography",
832
1172
  "content": "@entity.priority"
833
1173
  }
834
- ]
1174
+ ],
1175
+ "type": "stack",
1176
+ "direction": "horizontal"
835
1177
  },
836
1178
  {
837
- "type": "stack",
838
- "direction": "horizontal",
839
1179
  "gap": "md",
1180
+ "type": "stack",
840
1181
  "children": [
841
1182
  {
842
- "type": "typography",
843
1183
  "variant": "caption",
844
- "content": "Status"
1184
+ "content": "Status",
1185
+ "type": "typography"
845
1186
  },
846
1187
  {
1188
+ "content": "@entity.status",
847
1189
  "type": "typography",
848
- "variant": "body",
849
- "content": "@entity.status"
1190
+ "variant": "body"
850
1191
  }
851
- ]
1192
+ ],
1193
+ "direction": "horizontal"
852
1194
  },
853
1195
  {
854
- "type": "stack",
855
1196
  "direction": "horizontal",
856
1197
  "gap": "md",
857
1198
  "children": [
858
1199
  {
859
- "type": "typography",
1200
+ "content": "Story Points",
860
1201
  "variant": "caption",
861
- "content": "Story Points"
1202
+ "type": "typography"
862
1203
  },
863
1204
  {
864
- "type": "typography",
865
1205
  "variant": "body",
866
- "content": "@entity.storyPoints"
1206
+ "content": "@entity.storyPoints",
1207
+ "type": "typography"
867
1208
  }
868
- ]
1209
+ ],
1210
+ "type": "stack"
869
1211
  },
870
1212
  {
871
1213
  "type": "stack",
@@ -873,14 +1215,14 @@
873
1215
  "gap": "md",
874
1216
  "children": [
875
1217
  {
876
- "type": "typography",
877
1218
  "variant": "caption",
878
- "content": "Due Date"
1219
+ "content": "Due Date",
1220
+ "type": "typography"
879
1221
  },
880
1222
  {
881
- "type": "typography",
882
1223
  "variant": "body",
883
- "content": "@entity.dueDate"
1224
+ "content": "@entity.dueDate",
1225
+ "type": "typography"
884
1226
  }
885
1227
  ]
886
1228
  },
@@ -889,24 +1231,24 @@
889
1231
  },
890
1232
  {
891
1233
  "type": "stack",
892
- "direction": "horizontal",
893
- "gap": "sm",
894
1234
  "justify": "end",
895
1235
  "children": [
896
1236
  {
897
- "type": "button",
898
- "label": "Edit",
899
1237
  "event": "EDIT",
900
1238
  "variant": "primary",
901
- "icon": "edit"
1239
+ "icon": "edit",
1240
+ "type": "button",
1241
+ "label": "Edit"
902
1242
  },
903
1243
  {
904
1244
  "type": "button",
905
- "label": "Close",
906
1245
  "event": "CLOSE",
907
- "variant": "ghost"
1246
+ "variant": "ghost",
1247
+ "label": "Close"
908
1248
  }
909
- ]
1249
+ ],
1250
+ "gap": "sm",
1251
+ "direction": "horizontal"
910
1252
  }
911
1253
  ]
912
1254
  }
@@ -923,6 +1265,13 @@
923
1265
  "modal",
924
1266
  null
925
1267
  ],
1268
+ [
1269
+ "render-ui",
1270
+ "main",
1271
+ {
1272
+ "type": "box"
1273
+ }
1274
+ ],
926
1275
  [
927
1276
  "notify",
928
1277
  "Cancelled",
@@ -939,24 +1288,90 @@
939
1288
  "render-ui",
940
1289
  "modal",
941
1290
  null
1291
+ ],
1292
+ [
1293
+ "render-ui",
1294
+ "main",
1295
+ {
1296
+ "type": "box"
1297
+ }
942
1298
  ]
943
1299
  ]
944
1300
  }
945
1301
  ]
946
- }
1302
+ },
1303
+ "scope": "collection"
947
1304
  },
948
1305
  {
949
1306
  "name": "TaskDelete",
950
- "linkedEntity": "Task",
951
1307
  "category": "interaction",
1308
+ "linkedEntity": "Task",
952
1309
  "emits": [
953
1310
  {
954
- "event": "CONFIRM_DELETE",
955
- "scope": "internal"
1311
+ "event": "TASK_DELETED",
1312
+ "scope": "external",
1313
+ "payload": [
1314
+ {
1315
+ "name": "id",
1316
+ "type": "string"
1317
+ }
1318
+ ]
956
1319
  },
957
1320
  {
958
- "event": "TASK_DELETED",
959
- "scope": "external"
1321
+ "event": "TaskLoaded",
1322
+ "description": "Fired when Task finishes loading",
1323
+ "scope": "internal",
1324
+ "payload": [
1325
+ {
1326
+ "name": "id",
1327
+ "type": "string",
1328
+ "required": true
1329
+ },
1330
+ {
1331
+ "name": "title",
1332
+ "type": "string",
1333
+ "required": true
1334
+ },
1335
+ {
1336
+ "name": "description",
1337
+ "type": "string"
1338
+ },
1339
+ {
1340
+ "name": "assignee",
1341
+ "type": "string"
1342
+ },
1343
+ {
1344
+ "name": "priority",
1345
+ "type": "string"
1346
+ },
1347
+ {
1348
+ "name": "status",
1349
+ "type": "string"
1350
+ },
1351
+ {
1352
+ "name": "storyPoints",
1353
+ "type": "number"
1354
+ },
1355
+ {
1356
+ "name": "dueDate",
1357
+ "type": "datetime"
1358
+ },
1359
+ {
1360
+ "name": "pendingId",
1361
+ "type": "string"
1362
+ }
1363
+ ]
1364
+ },
1365
+ {
1366
+ "event": "TaskLoadFailed",
1367
+ "description": "Fired when Task fails to load",
1368
+ "scope": "internal",
1369
+ "payload": [
1370
+ {
1371
+ "name": "message",
1372
+ "type": "string"
1373
+ }
1374
+ ]
960
1375
  }
961
1376
  ],
962
1377
  "stateMachine": {
@@ -976,7 +1391,7 @@
976
1391
  },
977
1392
  {
978
1393
  "key": "DELETE",
979
- "name": "Request Confirmation",
1394
+ "name": "Delete",
980
1395
  "payload": [
981
1396
  {
982
1397
  "name": "id",
@@ -987,7 +1402,7 @@
987
1402
  },
988
1403
  {
989
1404
  "key": "CONFIRM_DELETE",
990
- "name": "Confirm"
1405
+ "name": "Confirm Delete"
991
1406
  },
992
1407
  {
993
1408
  "key": "CANCEL",
@@ -996,6 +1411,24 @@
996
1411
  {
997
1412
  "key": "CLOSE",
998
1413
  "name": "Close"
1414
+ },
1415
+ {
1416
+ "key": "TASK_DELETED",
1417
+ "name": "Task Deleted"
1418
+ },
1419
+ {
1420
+ "key": "TaskLoaded",
1421
+ "name": "Task loaded"
1422
+ },
1423
+ {
1424
+ "key": "TaskLoadFailed",
1425
+ "name": "Task load failed",
1426
+ "payload": [
1427
+ {
1428
+ "name": "message",
1429
+ "type": "string"
1430
+ }
1431
+ ]
999
1432
  }
1000
1433
  ],
1001
1434
  "transitions": [
@@ -1024,6 +1457,10 @@
1024
1457
  "fetch",
1025
1458
  "Task",
1026
1459
  {
1460
+ "emit": {
1461
+ "failure": "TaskLoadFailed",
1462
+ "success": "TaskLoaded"
1463
+ },
1027
1464
  "id": "@payload.id"
1028
1465
  }
1029
1466
  ],
@@ -1031,25 +1468,25 @@
1031
1468
  "render-ui",
1032
1469
  "modal",
1033
1470
  {
1034
- "type": "stack",
1035
1471
  "direction": "vertical",
1472
+ "type": "stack",
1036
1473
  "gap": "md",
1037
1474
  "children": [
1038
1475
  {
1476
+ "gap": "sm",
1039
1477
  "type": "stack",
1040
1478
  "direction": "horizontal",
1041
- "gap": "sm",
1042
1479
  "align": "center",
1043
1480
  "children": [
1044
1481
  {
1482
+ "size": "md",
1045
1483
  "type": "icon",
1046
- "name": "alert-triangle",
1047
- "size": "md"
1484
+ "name": "alert-triangle"
1048
1485
  },
1049
1486
  {
1050
1487
  "type": "typography",
1051
- "content": "Delete Task",
1052
- "variant": "h3"
1488
+ "variant": "h3",
1489
+ "content": "Delete Task"
1053
1490
  }
1054
1491
  ]
1055
1492
  },
@@ -1057,30 +1494,30 @@
1057
1494
  "type": "divider"
1058
1495
  },
1059
1496
  {
1060
- "type": "alert",
1061
1497
  "variant": "danger",
1062
- "message": "This action cannot be undone."
1498
+ "message": "This action cannot be undone.",
1499
+ "type": "alert"
1063
1500
  },
1064
1501
  {
1065
- "type": "stack",
1066
- "direction": "horizontal",
1067
- "gap": "sm",
1068
- "justify": "end",
1069
1502
  "children": [
1070
1503
  {
1504
+ "variant": "ghost",
1071
1505
  "type": "button",
1072
- "label": "Cancel",
1073
1506
  "event": "CANCEL",
1074
- "variant": "ghost"
1507
+ "label": "Cancel"
1075
1508
  },
1076
1509
  {
1077
1510
  "type": "button",
1511
+ "icon": "check",
1078
1512
  "label": "Delete",
1079
1513
  "event": "CONFIRM_DELETE",
1080
- "variant": "danger",
1081
- "icon": "check"
1514
+ "variant": "danger"
1082
1515
  }
1083
- ]
1516
+ ],
1517
+ "type": "stack",
1518
+ "direction": "horizontal",
1519
+ "justify": "end",
1520
+ "gap": "sm"
1084
1521
  }
1085
1522
  ]
1086
1523
  }
@@ -1103,6 +1540,13 @@
1103
1540
  "modal",
1104
1541
  null
1105
1542
  ],
1543
+ [
1544
+ "render-ui",
1545
+ "main",
1546
+ {
1547
+ "type": "box"
1548
+ }
1549
+ ],
1106
1550
  [
1107
1551
  "ref",
1108
1552
  "Task"
@@ -1123,6 +1567,13 @@
1123
1567
  "modal",
1124
1568
  null
1125
1569
  ],
1570
+ [
1571
+ "render-ui",
1572
+ "main",
1573
+ {
1574
+ "type": "box"
1575
+ }
1576
+ ],
1126
1577
  [
1127
1578
  "ref",
1128
1579
  "Task"
@@ -1139,6 +1590,13 @@
1139
1590
  "modal",
1140
1591
  null
1141
1592
  ],
1593
+ [
1594
+ "render-ui",
1595
+ "main",
1596
+ {
1597
+ "type": "box"
1598
+ }
1599
+ ],
1142
1600
  [
1143
1601
  "ref",
1144
1602
  "Task"
@@ -1146,14 +1604,14 @@
1146
1604
  ]
1147
1605
  }
1148
1606
  ]
1149
- }
1607
+ },
1608
+ "scope": "collection"
1150
1609
  }
1151
1610
  ],
1152
1611
  "pages": [
1153
1612
  {
1154
1613
  "name": "TasksPage",
1155
1614
  "path": "/tasks",
1156
- "isInitial": true,
1157
1615
  "traits": [
1158
1616
  {
1159
1617
  "ref": "TaskBrowse"
@@ -1178,8 +1636,8 @@
1178
1636
  "name": "SprintOrbital",
1179
1637
  "entity": {
1180
1638
  "name": "Sprint",
1181
- "persistence": "persistent",
1182
1639
  "collection": "sprints",
1640
+ "persistence": "persistent",
1183
1641
  "fields": [
1184
1642
  {
1185
1643
  "name": "id",
@@ -1193,12 +1651,12 @@
1193
1651
  },
1194
1652
  {
1195
1653
  "name": "startDate",
1196
- "type": "date",
1654
+ "type": "datetime",
1197
1655
  "required": true
1198
1656
  },
1199
1657
  {
1200
1658
  "name": "endDate",
1201
- "type": "date",
1659
+ "type": "datetime",
1202
1660
  "required": true
1203
1661
  },
1204
1662
  {
@@ -1208,17 +1666,17 @@
1208
1666
  {
1209
1667
  "name": "status",
1210
1668
  "type": "string",
1211
- "default": "planning",
1669
+ "default": "todo",
1212
1670
  "values": [
1213
- "planning",
1214
- "active",
1215
- "completed"
1671
+ "todo",
1672
+ "in-progress",
1673
+ "review",
1674
+ "done"
1216
1675
  ]
1217
1676
  },
1218
1677
  {
1219
1678
  "name": "taskCount",
1220
- "type": "number",
1221
- "default": 0
1679
+ "type": "number"
1222
1680
  },
1223
1681
  {
1224
1682
  "name": "pendingId",
@@ -1230,23 +1688,108 @@
1230
1688
  "traits": [
1231
1689
  {
1232
1690
  "name": "SprintBrowse",
1233
- "linkedEntity": "Sprint",
1234
1691
  "category": "interaction",
1692
+ "linkedEntity": "Sprint",
1693
+ "emits": [
1694
+ {
1695
+ "event": "ASSIGN_TASK",
1696
+ "scope": "external",
1697
+ "payload": [
1698
+ {
1699
+ "name": "id",
1700
+ "type": "string"
1701
+ }
1702
+ ]
1703
+ },
1704
+ {
1705
+ "event": "COMPLETE_SPRINT",
1706
+ "scope": "external",
1707
+ "payload": [
1708
+ {
1709
+ "name": "id",
1710
+ "type": "string"
1711
+ }
1712
+ ]
1713
+ },
1714
+ {
1715
+ "event": "SprintLoaded",
1716
+ "description": "Fired when Sprint finishes loading",
1717
+ "scope": "internal",
1718
+ "payload": [
1719
+ {
1720
+ "name": "id",
1721
+ "type": "string",
1722
+ "required": true
1723
+ },
1724
+ {
1725
+ "name": "name",
1726
+ "type": "string",
1727
+ "required": true
1728
+ },
1729
+ {
1730
+ "name": "startDate",
1731
+ "type": "datetime",
1732
+ "required": true
1733
+ },
1734
+ {
1735
+ "name": "endDate",
1736
+ "type": "datetime",
1737
+ "required": true
1738
+ },
1739
+ {
1740
+ "name": "goal",
1741
+ "type": "string"
1742
+ },
1743
+ {
1744
+ "name": "status",
1745
+ "type": "string"
1746
+ },
1747
+ {
1748
+ "name": "taskCount",
1749
+ "type": "number"
1750
+ },
1751
+ {
1752
+ "name": "pendingId",
1753
+ "type": "string"
1754
+ }
1755
+ ]
1756
+ },
1757
+ {
1758
+ "event": "SprintLoadFailed",
1759
+ "description": "Fired when Sprint fails to load",
1760
+ "scope": "internal",
1761
+ "payload": [
1762
+ {
1763
+ "name": "message",
1764
+ "type": "string"
1765
+ }
1766
+ ]
1767
+ }
1768
+ ],
1235
1769
  "listens": [
1236
1770
  {
1237
1771
  "event": "SPRINT_CREATED",
1238
1772
  "triggers": "INIT",
1239
- "scope": "external"
1773
+ "source": {
1774
+ "kind": "trait",
1775
+ "trait": "SprintCreate"
1776
+ }
1240
1777
  },
1241
1778
  {
1242
1779
  "event": "SPRINT_UPDATED",
1243
1780
  "triggers": "INIT",
1244
- "scope": "external"
1781
+ "source": {
1782
+ "kind": "trait",
1783
+ "trait": "SprintEdit"
1784
+ }
1245
1785
  },
1246
1786
  {
1247
1787
  "event": "SPRINT_DELETED",
1248
1788
  "triggers": "INIT",
1249
- "scope": "external"
1789
+ "source": {
1790
+ "kind": "trait",
1791
+ "trait": "SprintDelete"
1792
+ }
1250
1793
  }
1251
1794
  ],
1252
1795
  "stateMachine": {
@@ -1262,51 +1805,24 @@
1262
1805
  "name": "Initialize"
1263
1806
  },
1264
1807
  {
1265
- "key": "CREATE",
1266
- "name": "CREATE"
1808
+ "key": "ASSIGN_TASK",
1809
+ "name": "Assign Task"
1267
1810
  },
1268
1811
  {
1269
- "key": "VIEW",
1270
- "name": "VIEW",
1271
- "payload": [
1272
- {
1273
- "name": "id",
1274
- "type": "string",
1275
- "required": true
1276
- },
1277
- {
1278
- "name": "row",
1279
- "type": "object"
1280
- }
1281
- ]
1812
+ "key": "COMPLETE_SPRINT",
1813
+ "name": "Complete Sprint"
1282
1814
  },
1283
1815
  {
1284
- "key": "EDIT",
1285
- "name": "EDIT",
1286
- "payload": [
1287
- {
1288
- "name": "id",
1289
- "type": "string",
1290
- "required": true
1291
- },
1292
- {
1293
- "name": "row",
1294
- "type": "object"
1295
- }
1296
- ]
1816
+ "key": "SprintLoaded",
1817
+ "name": "Sprint loaded"
1297
1818
  },
1298
1819
  {
1299
- "key": "DELETE",
1300
- "name": "DELETE",
1820
+ "key": "SprintLoadFailed",
1821
+ "name": "Sprint load failed",
1301
1822
  "payload": [
1302
1823
  {
1303
- "name": "id",
1304
- "type": "string",
1305
- "required": true
1306
- },
1307
- {
1308
- "name": "row",
1309
- "type": "object"
1824
+ "name": "message",
1825
+ "type": "string"
1310
1826
  }
1311
1827
  ]
1312
1828
  }
@@ -1325,48 +1841,42 @@
1325
1841
  "render-ui",
1326
1842
  "main",
1327
1843
  {
1328
- "type": "dashboard-layout",
1329
- "appName": "ProjectManagerApp",
1330
1844
  "navItems": [
1331
1845
  {
1846
+ "icon": "check-square",
1332
1847
  "label": "Tasks",
1333
- "href": "/tasks",
1334
- "icon": "check-square"
1848
+ "href": "/tasks"
1335
1849
  },
1336
1850
  {
1337
- "label": "Sprints",
1338
1851
  "href": "/sprints",
1852
+ "label": "Sprints",
1339
1853
  "icon": "zap"
1340
1854
  },
1341
1855
  {
1342
- "label": "Burndown",
1343
1856
  "href": "/burndown",
1857
+ "label": "Burndown",
1344
1858
  "icon": "layout-list"
1345
1859
  }
1346
1860
  ],
1861
+ "appName": "ProjectManagerApp",
1347
1862
  "children": [
1348
1863
  {
1349
- "type": "stack",
1350
1864
  "direction": "vertical",
1351
- "gap": "lg",
1352
1865
  "className": "max-w-5xl mx-auto w-full",
1353
1866
  "children": [
1354
1867
  {
1355
- "type": "stack",
1356
1868
  "direction": "horizontal",
1357
- "gap": "md",
1358
- "justify": "space-between",
1359
1869
  "align": "center",
1360
1870
  "children": [
1361
1871
  {
1362
- "type": "stack",
1363
1872
  "direction": "horizontal",
1364
1873
  "gap": "sm",
1874
+ "type": "stack",
1365
1875
  "align": "center",
1366
1876
  "children": [
1367
1877
  {
1368
- "type": "icon",
1369
1878
  "name": "zap",
1879
+ "type": "icon",
1370
1880
  "size": "lg"
1371
1881
  },
1372
1882
  {
@@ -1377,132 +1887,164 @@
1377
1887
  ]
1378
1888
  },
1379
1889
  {
1380
- "type": "stack",
1381
1890
  "direction": "horizontal",
1382
1891
  "gap": "sm",
1892
+ "type": "stack",
1383
1893
  "children": [
1384
1894
  {
1385
- "type": "button",
1895
+ "icon": "plus",
1386
1896
  "label": "Create Sprint",
1897
+ "type": "button",
1387
1898
  "event": "CREATE",
1388
- "variant": "primary",
1389
- "icon": "plus"
1899
+ "variant": "primary"
1390
1900
  }
1391
1901
  ]
1392
1902
  }
1393
- ]
1903
+ ],
1904
+ "gap": "md",
1905
+ "justify": "space-between",
1906
+ "type": "stack"
1394
1907
  },
1395
1908
  {
1396
1909
  "type": "divider"
1397
1910
  },
1398
1911
  {
1912
+ "emptyTitle": "No sprints yet",
1399
1913
  "type": "data-grid",
1400
- "entity": "Sprint",
1401
1914
  "emptyIcon": "inbox",
1402
- "emptyTitle": "No sprints yet",
1403
1915
  "emptyDescription": "Create a sprint to organize your work.",
1916
+ "gap": "md",
1917
+ "entity": "Sprint",
1404
1918
  "itemActions": [
1405
1919
  {
1406
- "label": "View",
1407
- "event": "VIEW",
1408
1920
  "variant": "ghost",
1409
- "size": "sm"
1921
+ "label": "View",
1922
+ "size": "sm",
1923
+ "event": "VIEW"
1410
1924
  },
1411
1925
  {
1412
- "label": "Edit",
1413
1926
  "event": "EDIT",
1414
1927
  "variant": "ghost",
1415
- "size": "sm"
1928
+ "size": "sm",
1929
+ "label": "Edit"
1416
1930
  },
1417
1931
  {
1418
- "label": "Delete",
1932
+ "size": "sm",
1419
1933
  "event": "DELETE",
1420
- "variant": "danger",
1421
- "size": "sm"
1934
+ "label": "Delete",
1935
+ "variant": "danger"
1422
1936
  }
1423
1937
  ],
1424
1938
  "columns": [
1425
1939
  {
1940
+ "icon": "zap",
1426
1941
  "name": "name",
1427
- "variant": "h3",
1428
- "icon": "zap"
1942
+ "variant": "h3"
1429
1943
  },
1430
1944
  {
1431
1945
  "name": "status",
1432
1946
  "variant": "badge"
1433
1947
  },
1434
1948
  {
1435
- "name": "goal",
1436
- "variant": "body"
1949
+ "variant": "body",
1950
+ "name": "goal"
1437
1951
  },
1438
1952
  {
1439
1953
  "name": "startDate",
1954
+ "format": "date",
1440
1955
  "label": "Start",
1441
- "variant": "caption",
1442
- "format": "date"
1956
+ "variant": "caption"
1443
1957
  },
1444
1958
  {
1959
+ "format": "date",
1445
1960
  "name": "endDate",
1446
1961
  "label": "End",
1447
- "variant": "caption",
1448
- "format": "date"
1962
+ "variant": "caption"
1449
1963
  },
1450
1964
  {
1451
1965
  "name": "taskCount",
1452
- "label": "Tasks",
1453
1966
  "variant": "body",
1967
+ "label": "Tasks",
1454
1968
  "format": "number"
1455
1969
  }
1456
1970
  ],
1457
- "cols": 2,
1458
- "gap": "md"
1971
+ "cols": 2.0
1459
1972
  }
1460
- ]
1973
+ ],
1974
+ "gap": "lg",
1975
+ "type": "stack"
1461
1976
  }
1462
- ]
1977
+ ],
1978
+ "type": "dashboard-layout"
1463
1979
  }
1464
1980
  ]
1465
1981
  ]
1466
1982
  }
1467
1983
  ]
1468
1984
  },
1985
+ "scope": "collection"
1986
+ },
1987
+ {
1988
+ "name": "SprintCreate",
1989
+ "category": "interaction",
1990
+ "linkedEntity": "Sprint",
1469
1991
  "emits": [
1470
1992
  {
1471
- "event": "ASSIGN_TASK",
1993
+ "event": "SPRINT_CREATED"
1994
+ },
1995
+ {
1996
+ "event": "SprintLoaded",
1997
+ "description": "Fired when Sprint finishes loading",
1998
+ "scope": "internal",
1472
1999
  "payload": [
1473
2000
  {
1474
2001
  "name": "id",
1475
2002
  "type": "string",
1476
2003
  "required": true
1477
- }
1478
- ],
1479
- "scope": "external"
1480
- },
1481
- {
1482
- "event": "COMPLETE_SPRINT",
1483
- "payload": [
2004
+ },
1484
2005
  {
1485
- "name": "id",
2006
+ "name": "name",
1486
2007
  "type": "string",
1487
2008
  "required": true
2009
+ },
2010
+ {
2011
+ "name": "startDate",
2012
+ "type": "datetime",
2013
+ "required": true
2014
+ },
2015
+ {
2016
+ "name": "endDate",
2017
+ "type": "datetime",
2018
+ "required": true
2019
+ },
2020
+ {
2021
+ "name": "goal",
2022
+ "type": "string"
2023
+ },
2024
+ {
2025
+ "name": "status",
2026
+ "type": "string"
2027
+ },
2028
+ {
2029
+ "name": "taskCount",
2030
+ "type": "number"
2031
+ },
2032
+ {
2033
+ "name": "pendingId",
2034
+ "type": "string"
1488
2035
  }
1489
- ],
1490
- "scope": "external"
1491
- }
1492
- ]
1493
- },
1494
- {
1495
- "name": "SprintCreate",
1496
- "linkedEntity": "Sprint",
1497
- "category": "interaction",
1498
- "emits": [
1499
- {
1500
- "event": "SAVE",
1501
- "scope": "internal"
2036
+ ]
1502
2037
  },
1503
2038
  {
1504
- "event": "SPRINT_CREATED",
1505
- "scope": "external"
2039
+ "event": "SprintLoadFailed",
2040
+ "description": "Fired when Sprint fails to load",
2041
+ "scope": "internal",
2042
+ "payload": [
2043
+ {
2044
+ "name": "message",
2045
+ "type": "string"
2046
+ }
2047
+ ]
1506
2048
  }
1507
2049
  ],
1508
2050
  "stateMachine": {
@@ -1522,7 +2064,7 @@
1522
2064
  },
1523
2065
  {
1524
2066
  "key": "CREATE",
1525
- "name": "Open"
2067
+ "name": "Create"
1526
2068
  },
1527
2069
  {
1528
2070
  "key": "CLOSE",
@@ -1534,8 +2076,25 @@
1534
2076
  "payload": [
1535
2077
  {
1536
2078
  "name": "data",
1537
- "type": "object",
1538
- "required": true
2079
+ "type": "string"
2080
+ }
2081
+ ]
2082
+ },
2083
+ {
2084
+ "key": "SPRINT_CREATED",
2085
+ "name": "Sprint Created"
2086
+ },
2087
+ {
2088
+ "key": "SprintLoaded",
2089
+ "name": "Sprint loaded"
2090
+ },
2091
+ {
2092
+ "key": "SprintLoadFailed",
2093
+ "name": "Sprint load failed",
2094
+ "payload": [
2095
+ {
2096
+ "name": "message",
2097
+ "type": "string"
1539
2098
  }
1540
2099
  ]
1541
2100
  }
@@ -1559,32 +2118,37 @@
1559
2118
  "effects": [
1560
2119
  [
1561
2120
  "fetch",
1562
- "Sprint"
2121
+ "Sprint",
2122
+ {
2123
+ "emit": {
2124
+ "success": "SprintLoaded",
2125
+ "failure": "SprintLoadFailed"
2126
+ }
2127
+ }
1563
2128
  ],
1564
2129
  [
1565
2130
  "render-ui",
1566
2131
  "modal",
1567
2132
  {
1568
- "type": "stack",
1569
2133
  "direction": "vertical",
1570
2134
  "gap": "md",
1571
2135
  "children": [
1572
2136
  {
1573
- "type": "stack",
1574
- "direction": "horizontal",
1575
- "gap": "sm",
1576
2137
  "children": [
1577
2138
  {
1578
- "type": "icon",
2139
+ "size": "md",
1579
2140
  "name": "plus-circle",
1580
- "size": "md"
2141
+ "type": "icon"
1581
2142
  },
1582
2143
  {
1583
2144
  "type": "typography",
1584
2145
  "content": "Create Sprint",
1585
2146
  "variant": "h3"
1586
2147
  }
1587
- ]
2148
+ ],
2149
+ "type": "stack",
2150
+ "direction": "horizontal",
2151
+ "gap": "sm"
1588
2152
  },
1589
2153
  {
1590
2154
  "type": "divider"
@@ -1592,9 +2156,8 @@
1592
2156
  {
1593
2157
  "type": "form-section",
1594
2158
  "entity": "Sprint",
1595
- "mode": "create",
1596
- "submitEvent": "SAVE",
1597
2159
  "cancelEvent": "CLOSE",
2160
+ "mode": "create",
1598
2161
  "fields": [
1599
2162
  "name",
1600
2163
  "startDate",
@@ -1602,9 +2165,11 @@
1602
2165
  "goal",
1603
2166
  "status",
1604
2167
  "taskCount"
1605
- ]
2168
+ ],
2169
+ "submitEvent": "SAVE"
1606
2170
  }
1607
- ]
2171
+ ],
2172
+ "type": "stack"
1608
2173
  }
1609
2174
  ]
1610
2175
  ]
@@ -1619,6 +2184,13 @@
1619
2184
  "modal",
1620
2185
  null
1621
2186
  ],
2187
+ [
2188
+ "render-ui",
2189
+ "main",
2190
+ {
2191
+ "type": "box"
2192
+ }
2193
+ ],
1622
2194
  [
1623
2195
  "notify",
1624
2196
  "Cancelled",
@@ -1642,6 +2214,13 @@
1642
2214
  "modal",
1643
2215
  null
1644
2216
  ],
2217
+ [
2218
+ "render-ui",
2219
+ "main",
2220
+ {
2221
+ "type": "box"
2222
+ }
2223
+ ],
1645
2224
  [
1646
2225
  "emit",
1647
2226
  "SPRINT_CREATED"
@@ -1649,20 +2228,70 @@
1649
2228
  ]
1650
2229
  }
1651
2230
  ]
1652
- }
2231
+ },
2232
+ "scope": "collection"
1653
2233
  },
1654
2234
  {
1655
2235
  "name": "SprintEdit",
1656
- "linkedEntity": "Sprint",
1657
2236
  "category": "interaction",
2237
+ "linkedEntity": "Sprint",
1658
2238
  "emits": [
1659
2239
  {
1660
- "event": "SAVE",
1661
- "scope": "internal"
2240
+ "event": "SPRINT_UPDATED"
1662
2241
  },
1663
2242
  {
1664
- "event": "SPRINT_UPDATED",
1665
- "scope": "external"
2243
+ "event": "SprintLoaded",
2244
+ "description": "Fired when Sprint finishes loading",
2245
+ "scope": "internal",
2246
+ "payload": [
2247
+ {
2248
+ "name": "id",
2249
+ "type": "string",
2250
+ "required": true
2251
+ },
2252
+ {
2253
+ "name": "name",
2254
+ "type": "string",
2255
+ "required": true
2256
+ },
2257
+ {
2258
+ "name": "startDate",
2259
+ "type": "datetime",
2260
+ "required": true
2261
+ },
2262
+ {
2263
+ "name": "endDate",
2264
+ "type": "datetime",
2265
+ "required": true
2266
+ },
2267
+ {
2268
+ "name": "goal",
2269
+ "type": "string"
2270
+ },
2271
+ {
2272
+ "name": "status",
2273
+ "type": "string"
2274
+ },
2275
+ {
2276
+ "name": "taskCount",
2277
+ "type": "number"
2278
+ },
2279
+ {
2280
+ "name": "pendingId",
2281
+ "type": "string"
2282
+ }
2283
+ ]
2284
+ },
2285
+ {
2286
+ "event": "SprintLoadFailed",
2287
+ "description": "Fired when Sprint fails to load",
2288
+ "scope": "internal",
2289
+ "payload": [
2290
+ {
2291
+ "name": "message",
2292
+ "type": "string"
2293
+ }
2294
+ ]
1666
2295
  }
1667
2296
  ],
1668
2297
  "stateMachine": {
@@ -1682,12 +2311,11 @@
1682
2311
  },
1683
2312
  {
1684
2313
  "key": "EDIT",
1685
- "name": "Open",
2314
+ "name": "Edit",
1686
2315
  "payload": [
1687
2316
  {
1688
2317
  "name": "id",
1689
- "type": "string",
1690
- "required": true
2318
+ "type": "string"
1691
2319
  }
1692
2320
  ]
1693
2321
  },
@@ -1701,8 +2329,25 @@
1701
2329
  "payload": [
1702
2330
  {
1703
2331
  "name": "data",
1704
- "type": "object",
1705
- "required": true
2332
+ "type": "string"
2333
+ }
2334
+ ]
2335
+ },
2336
+ {
2337
+ "key": "SPRINT_UPDATED",
2338
+ "name": "Sprint Updated"
2339
+ },
2340
+ {
2341
+ "key": "SprintLoaded",
2342
+ "name": "Sprint loaded"
2343
+ },
2344
+ {
2345
+ "key": "SprintLoadFailed",
2346
+ "name": "Sprint load failed",
2347
+ "payload": [
2348
+ {
2349
+ "name": "message",
2350
+ "type": "string"
1706
2351
  }
1707
2352
  ]
1708
2353
  }
@@ -1728,7 +2373,11 @@
1728
2373
  "fetch",
1729
2374
  "Sprint",
1730
2375
  {
1731
- "id": "@payload.id"
2376
+ "id": "@payload.id",
2377
+ "emit": {
2378
+ "success": "SprintLoaded",
2379
+ "failure": "SprintLoadFailed"
2380
+ }
1732
2381
  }
1733
2382
  ],
1734
2383
  [
@@ -1737,7 +2386,6 @@
1737
2386
  {
1738
2387
  "type": "stack",
1739
2388
  "direction": "vertical",
1740
- "gap": "md",
1741
2389
  "children": [
1742
2390
  {
1743
2391
  "type": "stack",
@@ -1751,8 +2399,8 @@
1751
2399
  },
1752
2400
  {
1753
2401
  "type": "typography",
1754
- "content": "Edit Sprint",
1755
- "variant": "h3"
2402
+ "variant": "h3",
2403
+ "content": "Edit Sprint"
1756
2404
  }
1757
2405
  ]
1758
2406
  },
@@ -1761,10 +2409,8 @@
1761
2409
  },
1762
2410
  {
1763
2411
  "type": "form-section",
1764
- "entity": "Sprint",
1765
- "mode": "edit",
1766
2412
  "submitEvent": "SAVE",
1767
- "cancelEvent": "CLOSE",
2413
+ "entityId": "@entity.id",
1768
2414
  "fields": [
1769
2415
  "name",
1770
2416
  "startDate",
@@ -1773,9 +2419,12 @@
1773
2419
  "status",
1774
2420
  "taskCount"
1775
2421
  ],
1776
- "entityId": "@entity.id"
2422
+ "entity": "Sprint",
2423
+ "cancelEvent": "CLOSE",
2424
+ "mode": "edit"
1777
2425
  }
1778
- ]
2426
+ ],
2427
+ "gap": "md"
1779
2428
  }
1780
2429
  ]
1781
2430
  ]
@@ -1790,6 +2439,13 @@
1790
2439
  "modal",
1791
2440
  null
1792
2441
  ],
2442
+ [
2443
+ "render-ui",
2444
+ "main",
2445
+ {
2446
+ "type": "box"
2447
+ }
2448
+ ],
1793
2449
  [
1794
2450
  "notify",
1795
2451
  "Cancelled",
@@ -1813,6 +2469,13 @@
1813
2469
  "modal",
1814
2470
  null
1815
2471
  ],
2472
+ [
2473
+ "render-ui",
2474
+ "main",
2475
+ {
2476
+ "type": "box"
2477
+ }
2478
+ ],
1816
2479
  [
1817
2480
  "emit",
1818
2481
  "SPRINT_UPDATED"
@@ -1820,16 +2483,67 @@
1820
2483
  ]
1821
2484
  }
1822
2485
  ]
1823
- }
2486
+ },
2487
+ "scope": "collection"
1824
2488
  },
1825
2489
  {
1826
2490
  "name": "SprintView",
1827
- "linkedEntity": "Sprint",
1828
2491
  "category": "interaction",
2492
+ "linkedEntity": "Sprint",
1829
2493
  "emits": [
1830
2494
  {
1831
- "event": "SAVE",
1832
- "scope": "internal"
2495
+ "event": "SprintLoaded",
2496
+ "description": "Fired when Sprint finishes loading",
2497
+ "scope": "internal",
2498
+ "payload": [
2499
+ {
2500
+ "name": "id",
2501
+ "type": "string",
2502
+ "required": true
2503
+ },
2504
+ {
2505
+ "name": "name",
2506
+ "type": "string",
2507
+ "required": true
2508
+ },
2509
+ {
2510
+ "name": "startDate",
2511
+ "type": "datetime",
2512
+ "required": true
2513
+ },
2514
+ {
2515
+ "name": "endDate",
2516
+ "type": "datetime",
2517
+ "required": true
2518
+ },
2519
+ {
2520
+ "name": "goal",
2521
+ "type": "string"
2522
+ },
2523
+ {
2524
+ "name": "status",
2525
+ "type": "string"
2526
+ },
2527
+ {
2528
+ "name": "taskCount",
2529
+ "type": "number"
2530
+ },
2531
+ {
2532
+ "name": "pendingId",
2533
+ "type": "string"
2534
+ }
2535
+ ]
2536
+ },
2537
+ {
2538
+ "event": "SprintLoadFailed",
2539
+ "description": "Fired when Sprint fails to load",
2540
+ "scope": "internal",
2541
+ "payload": [
2542
+ {
2543
+ "name": "message",
2544
+ "type": "string"
2545
+ }
2546
+ ]
1833
2547
  }
1834
2548
  ],
1835
2549
  "stateMachine": {
@@ -1849,12 +2563,11 @@
1849
2563
  },
1850
2564
  {
1851
2565
  "key": "VIEW",
1852
- "name": "Open",
2566
+ "name": "View",
1853
2567
  "payload": [
1854
2568
  {
1855
2569
  "name": "id",
1856
- "type": "string",
1857
- "required": true
2570
+ "type": "string"
1858
2571
  }
1859
2572
  ]
1860
2573
  },
@@ -1864,12 +2577,19 @@
1864
2577
  },
1865
2578
  {
1866
2579
  "key": "SAVE",
1867
- "name": "Save",
2580
+ "name": "Save"
2581
+ },
2582
+ {
2583
+ "key": "SprintLoaded",
2584
+ "name": "Sprint loaded"
2585
+ },
2586
+ {
2587
+ "key": "SprintLoadFailed",
2588
+ "name": "Sprint load failed",
1868
2589
  "payload": [
1869
2590
  {
1870
- "name": "data",
1871
- "type": "object",
1872
- "required": true
2591
+ "name": "message",
2592
+ "type": "string"
1873
2593
  }
1874
2594
  ]
1875
2595
  }
@@ -1895,114 +2615,116 @@
1895
2615
  "fetch",
1896
2616
  "Sprint",
1897
2617
  {
1898
- "id": "@payload.id"
2618
+ "id": "@payload.id",
2619
+ "emit": {
2620
+ "failure": "SprintLoadFailed",
2621
+ "success": "SprintLoaded"
2622
+ }
1899
2623
  }
1900
2624
  ],
1901
2625
  [
1902
2626
  "render-ui",
1903
2627
  "modal",
1904
2628
  {
1905
- "type": "stack",
1906
- "direction": "vertical",
1907
2629
  "gap": "md",
1908
2630
  "children": [
1909
2631
  {
1910
- "type": "stack",
1911
- "direction": "horizontal",
1912
- "gap": "sm",
1913
- "align": "center",
1914
2632
  "children": [
1915
2633
  {
1916
- "type": "icon",
1917
2634
  "name": "eye",
1918
- "size": "md"
2635
+ "size": "md",
2636
+ "type": "icon"
1919
2637
  },
1920
2638
  {
1921
2639
  "type": "typography",
1922
2640
  "variant": "h3",
1923
2641
  "content": "@entity.name"
1924
2642
  }
1925
- ]
2643
+ ],
2644
+ "type": "stack",
2645
+ "direction": "horizontal",
2646
+ "gap": "sm",
2647
+ "align": "center"
1926
2648
  },
1927
2649
  {
1928
2650
  "type": "divider"
1929
2651
  },
1930
2652
  {
1931
- "type": "stack",
1932
2653
  "direction": "horizontal",
1933
- "gap": "md",
1934
2654
  "children": [
1935
2655
  {
2656
+ "content": "Name",
1936
2657
  "type": "typography",
1937
- "variant": "caption",
1938
- "content": "Name"
2658
+ "variant": "caption"
1939
2659
  },
1940
2660
  {
1941
2661
  "type": "typography",
1942
2662
  "variant": "body",
1943
2663
  "content": "@entity.name"
1944
2664
  }
1945
- ]
2665
+ ],
2666
+ "type": "stack",
2667
+ "gap": "md"
1946
2668
  },
1947
2669
  {
1948
- "type": "stack",
1949
- "direction": "horizontal",
1950
2670
  "gap": "md",
1951
2671
  "children": [
1952
2672
  {
1953
2673
  "type": "typography",
1954
- "variant": "caption",
1955
- "content": "Start Date"
2674
+ "content": "Start Date",
2675
+ "variant": "caption"
1956
2676
  },
1957
2677
  {
1958
- "type": "typography",
2678
+ "content": "@entity.startDate",
1959
2679
  "variant": "body",
1960
- "content": "@entity.startDate"
2680
+ "type": "typography"
1961
2681
  }
1962
- ]
2682
+ ],
2683
+ "direction": "horizontal",
2684
+ "type": "stack"
1963
2685
  },
1964
2686
  {
1965
2687
  "type": "stack",
1966
- "direction": "horizontal",
1967
2688
  "gap": "md",
1968
2689
  "children": [
1969
2690
  {
1970
2691
  "type": "typography",
1971
- "variant": "caption",
1972
- "content": "End Date"
2692
+ "content": "End Date",
2693
+ "variant": "caption"
1973
2694
  },
1974
2695
  {
2696
+ "content": "@entity.endDate",
1975
2697
  "type": "typography",
1976
- "variant": "body",
1977
- "content": "@entity.endDate"
2698
+ "variant": "body"
1978
2699
  }
1979
- ]
2700
+ ],
2701
+ "direction": "horizontal"
1980
2702
  },
1981
2703
  {
1982
- "type": "stack",
1983
- "direction": "horizontal",
1984
2704
  "gap": "md",
1985
2705
  "children": [
1986
2706
  {
2707
+ "content": "Goal",
1987
2708
  "type": "typography",
1988
- "variant": "caption",
1989
- "content": "Goal"
2709
+ "variant": "caption"
1990
2710
  },
1991
2711
  {
1992
- "type": "typography",
1993
2712
  "variant": "body",
1994
- "content": "@entity.goal"
2713
+ "content": "@entity.goal",
2714
+ "type": "typography"
1995
2715
  }
1996
- ]
2716
+ ],
2717
+ "direction": "horizontal",
2718
+ "type": "stack"
1997
2719
  },
1998
2720
  {
2721
+ "gap": "md",
1999
2722
  "type": "stack",
2000
2723
  "direction": "horizontal",
2001
- "gap": "md",
2002
2724
  "children": [
2003
2725
  {
2004
- "type": "typography",
2005
2726
  "variant": "caption",
2727
+ "type": "typography",
2006
2728
  "content": "Status"
2007
2729
  },
2008
2730
  {
@@ -2019,8 +2741,8 @@
2019
2741
  "children": [
2020
2742
  {
2021
2743
  "type": "typography",
2022
- "variant": "caption",
2023
- "content": "Task Count"
2744
+ "content": "Task Count",
2745
+ "variant": "caption"
2024
2746
  },
2025
2747
  {
2026
2748
  "type": "typography",
@@ -2034,26 +2756,28 @@
2034
2756
  },
2035
2757
  {
2036
2758
  "type": "stack",
2037
- "direction": "horizontal",
2038
- "gap": "sm",
2039
- "justify": "end",
2040
2759
  "children": [
2041
2760
  {
2761
+ "variant": "primary",
2042
2762
  "type": "button",
2043
- "label": "Edit",
2044
2763
  "event": "EDIT",
2045
- "variant": "primary",
2764
+ "label": "Edit",
2046
2765
  "icon": "edit"
2047
2766
  },
2048
2767
  {
2049
- "type": "button",
2050
- "label": "Close",
2051
2768
  "event": "CLOSE",
2769
+ "label": "Close",
2770
+ "type": "button",
2052
2771
  "variant": "ghost"
2053
2772
  }
2054
- ]
2773
+ ],
2774
+ "justify": "end",
2775
+ "gap": "sm",
2776
+ "direction": "horizontal"
2055
2777
  }
2056
- ]
2778
+ ],
2779
+ "direction": "vertical",
2780
+ "type": "stack"
2057
2781
  }
2058
2782
  ]
2059
2783
  ]
@@ -2068,6 +2792,13 @@
2068
2792
  "modal",
2069
2793
  null
2070
2794
  ],
2795
+ [
2796
+ "render-ui",
2797
+ "main",
2798
+ {
2799
+ "type": "box"
2800
+ }
2801
+ ],
2071
2802
  [
2072
2803
  "notify",
2073
2804
  "Cancelled",
@@ -2084,24 +2815,81 @@
2084
2815
  "render-ui",
2085
2816
  "modal",
2086
2817
  null
2818
+ ],
2819
+ [
2820
+ "render-ui",
2821
+ "main",
2822
+ {
2823
+ "type": "box"
2824
+ }
2087
2825
  ]
2088
2826
  ]
2089
2827
  }
2090
2828
  ]
2091
- }
2829
+ },
2830
+ "scope": "collection"
2092
2831
  },
2093
2832
  {
2094
2833
  "name": "SprintDelete",
2095
- "linkedEntity": "Sprint",
2096
2834
  "category": "interaction",
2835
+ "linkedEntity": "Sprint",
2097
2836
  "emits": [
2098
2837
  {
2099
- "event": "CONFIRM_DELETE",
2100
- "scope": "internal"
2838
+ "event": "SPRINT_DELETED"
2101
2839
  },
2102
2840
  {
2103
- "event": "SPRINT_DELETED",
2104
- "scope": "external"
2841
+ "event": "SprintLoaded",
2842
+ "description": "Fired when Sprint finishes loading",
2843
+ "scope": "internal",
2844
+ "payload": [
2845
+ {
2846
+ "name": "id",
2847
+ "type": "string",
2848
+ "required": true
2849
+ },
2850
+ {
2851
+ "name": "name",
2852
+ "type": "string",
2853
+ "required": true
2854
+ },
2855
+ {
2856
+ "name": "startDate",
2857
+ "type": "datetime",
2858
+ "required": true
2859
+ },
2860
+ {
2861
+ "name": "endDate",
2862
+ "type": "datetime",
2863
+ "required": true
2864
+ },
2865
+ {
2866
+ "name": "goal",
2867
+ "type": "string"
2868
+ },
2869
+ {
2870
+ "name": "status",
2871
+ "type": "string"
2872
+ },
2873
+ {
2874
+ "name": "taskCount",
2875
+ "type": "number"
2876
+ },
2877
+ {
2878
+ "name": "pendingId",
2879
+ "type": "string"
2880
+ }
2881
+ ]
2882
+ },
2883
+ {
2884
+ "event": "SprintLoadFailed",
2885
+ "description": "Fired when Sprint fails to load",
2886
+ "scope": "internal",
2887
+ "payload": [
2888
+ {
2889
+ "name": "message",
2890
+ "type": "string"
2891
+ }
2892
+ ]
2105
2893
  }
2106
2894
  ],
2107
2895
  "stateMachine": {
@@ -2121,18 +2909,17 @@
2121
2909
  },
2122
2910
  {
2123
2911
  "key": "DELETE",
2124
- "name": "Request Confirmation",
2912
+ "name": "Delete",
2125
2913
  "payload": [
2126
2914
  {
2127
2915
  "name": "id",
2128
- "type": "string",
2129
- "required": true
2916
+ "type": "string"
2130
2917
  }
2131
2918
  ]
2132
2919
  },
2133
2920
  {
2134
2921
  "key": "CONFIRM_DELETE",
2135
- "name": "Confirm"
2922
+ "name": "Confirm Delete"
2136
2923
  },
2137
2924
  {
2138
2925
  "key": "CANCEL",
@@ -2141,6 +2928,24 @@
2141
2928
  {
2142
2929
  "key": "CLOSE",
2143
2930
  "name": "Close"
2931
+ },
2932
+ {
2933
+ "key": "SPRINT_DELETED",
2934
+ "name": "Sprint Deleted"
2935
+ },
2936
+ {
2937
+ "key": "SprintLoaded",
2938
+ "name": "Sprint loaded"
2939
+ },
2940
+ {
2941
+ "key": "SprintLoadFailed",
2942
+ "name": "Sprint load failed",
2943
+ "payload": [
2944
+ {
2945
+ "name": "message",
2946
+ "type": "string"
2947
+ }
2948
+ ]
2144
2949
  }
2145
2950
  ],
2146
2951
  "transitions": [
@@ -2169,6 +2974,10 @@
2169
2974
  "fetch",
2170
2975
  "Sprint",
2171
2976
  {
2977
+ "emit": {
2978
+ "success": "SprintLoaded",
2979
+ "failure": "SprintLoadFailed"
2980
+ },
2172
2981
  "id": "@payload.id"
2173
2982
  }
2174
2983
  ],
@@ -2177,26 +2986,24 @@
2177
2986
  "modal",
2178
2987
  {
2179
2988
  "type": "stack",
2180
- "direction": "vertical",
2181
- "gap": "md",
2182
2989
  "children": [
2183
2990
  {
2184
- "type": "stack",
2185
- "direction": "horizontal",
2186
- "gap": "sm",
2187
2991
  "align": "center",
2992
+ "direction": "horizontal",
2188
2993
  "children": [
2189
2994
  {
2190
- "type": "icon",
2191
2995
  "name": "alert-triangle",
2192
- "size": "md"
2996
+ "size": "md",
2997
+ "type": "icon"
2193
2998
  },
2194
2999
  {
2195
3000
  "type": "typography",
2196
3001
  "content": "Delete Sprint",
2197
3002
  "variant": "h3"
2198
3003
  }
2199
- ]
3004
+ ],
3005
+ "type": "stack",
3006
+ "gap": "sm"
2200
3007
  },
2201
3008
  {
2202
3009
  "type": "divider"
@@ -2207,27 +3014,29 @@
2207
3014
  "message": "This action cannot be undone."
2208
3015
  },
2209
3016
  {
2210
- "type": "stack",
2211
- "direction": "horizontal",
2212
3017
  "gap": "sm",
3018
+ "type": "stack",
2213
3019
  "justify": "end",
3020
+ "direction": "horizontal",
2214
3021
  "children": [
2215
3022
  {
2216
- "type": "button",
2217
3023
  "label": "Cancel",
2218
- "event": "CANCEL",
2219
- "variant": "ghost"
3024
+ "variant": "ghost",
3025
+ "type": "button",
3026
+ "event": "CANCEL"
2220
3027
  },
2221
3028
  {
2222
- "type": "button",
2223
- "label": "Delete",
2224
3029
  "event": "CONFIRM_DELETE",
3030
+ "type": "button",
3031
+ "icon": "check",
2225
3032
  "variant": "danger",
2226
- "icon": "check"
3033
+ "label": "Delete"
2227
3034
  }
2228
3035
  ]
2229
3036
  }
2230
- ]
3037
+ ],
3038
+ "gap": "md",
3039
+ "direction": "vertical"
2231
3040
  }
2232
3041
  ]
2233
3042
  ]
@@ -2248,6 +3057,13 @@
2248
3057
  "modal",
2249
3058
  null
2250
3059
  ],
3060
+ [
3061
+ "render-ui",
3062
+ "main",
3063
+ {
3064
+ "type": "box"
3065
+ }
3066
+ ],
2251
3067
  [
2252
3068
  "ref",
2253
3069
  "Sprint"
@@ -2268,6 +3084,13 @@
2268
3084
  "modal",
2269
3085
  null
2270
3086
  ],
3087
+ [
3088
+ "render-ui",
3089
+ "main",
3090
+ {
3091
+ "type": "box"
3092
+ }
3093
+ ],
2271
3094
  [
2272
3095
  "ref",
2273
3096
  "Sprint"
@@ -2284,6 +3107,13 @@
2284
3107
  "modal",
2285
3108
  null
2286
3109
  ],
3110
+ [
3111
+ "render-ui",
3112
+ "main",
3113
+ {
3114
+ "type": "box"
3115
+ }
3116
+ ],
2287
3117
  [
2288
3118
  "ref",
2289
3119
  "Sprint"
@@ -2291,12 +3121,13 @@
2291
3121
  ]
2292
3122
  }
2293
3123
  ]
2294
- }
3124
+ },
3125
+ "scope": "collection"
2295
3126
  }
2296
3127
  ],
2297
3128
  "pages": [
2298
3129
  {
2299
- "name": "SprintsPage",
3130
+ "name": "Sprints",
2300
3131
  "path": "/sprints",
2301
3132
  "traits": [
2302
3133
  {
@@ -2331,36 +3162,85 @@
2331
3162
  },
2332
3163
  {
2333
3164
  "name": "totalPoints",
2334
- "type": "number",
2335
- "default": 0
3165
+ "type": "number"
2336
3166
  },
2337
3167
  {
2338
3168
  "name": "completedPoints",
2339
- "type": "number",
2340
- "default": 0
3169
+ "type": "number"
2341
3170
  },
2342
3171
  {
2343
3172
  "name": "remainingPoints",
2344
- "type": "number",
2345
- "default": 0
3173
+ "type": "number"
2346
3174
  },
2347
3175
  {
2348
3176
  "name": "velocity",
2349
- "type": "number",
2350
- "default": 0
3177
+ "type": "number"
2351
3178
  },
2352
3179
  {
2353
3180
  "name": "daysRemaining",
2354
- "type": "number",
2355
- "default": 0
3181
+ "type": "number"
2356
3182
  }
2357
3183
  ]
2358
3184
  },
2359
3185
  "traits": [
2360
3186
  {
2361
3187
  "name": "BurndownDisplay",
2362
- "linkedEntity": "Burndown",
2363
3188
  "category": "interaction",
3189
+ "linkedEntity": "Burndown",
3190
+ "emits": [
3191
+ {
3192
+ "event": "BurndownLoaded",
3193
+ "description": "Fired when Burndown finishes loading",
3194
+ "scope": "internal",
3195
+ "payload": [
3196
+ {
3197
+ "name": "id",
3198
+ "type": "string",
3199
+ "required": true
3200
+ },
3201
+ {
3202
+ "name": "totalPoints",
3203
+ "type": "number"
3204
+ },
3205
+ {
3206
+ "name": "completedPoints",
3207
+ "type": "number"
3208
+ },
3209
+ {
3210
+ "name": "remainingPoints",
3211
+ "type": "number"
3212
+ },
3213
+ {
3214
+ "name": "velocity",
3215
+ "type": "number"
3216
+ },
3217
+ {
3218
+ "name": "daysRemaining",
3219
+ "type": "number"
3220
+ }
3221
+ ]
3222
+ },
3223
+ {
3224
+ "event": "BurndownLoadFailed",
3225
+ "description": "Fired when Burndown fails to load",
3226
+ "scope": "internal",
3227
+ "payload": [
3228
+ {
3229
+ "name": "message",
3230
+ "type": "string"
3231
+ }
3232
+ ]
3233
+ }
3234
+ ],
3235
+ "listens": [
3236
+ {
3237
+ "event": "COMPLETE_SPRINT",
3238
+ "triggers": "INIT",
3239
+ "source": {
3240
+ "kind": "any"
3241
+ }
3242
+ }
3243
+ ],
2364
3244
  "stateMachine": {
2365
3245
  "states": [
2366
3246
  {
@@ -2390,6 +3270,20 @@
2390
3270
  {
2391
3271
  "key": "REFRESHED",
2392
3272
  "name": "Refreshed"
3273
+ },
3274
+ {
3275
+ "key": "BurndownLoaded",
3276
+ "name": "Burndown loaded"
3277
+ },
3278
+ {
3279
+ "key": "BurndownLoadFailed",
3280
+ "name": "Burndown load failed",
3281
+ "payload": [
3282
+ {
3283
+ "name": "message",
3284
+ "type": "string"
3285
+ }
3286
+ ]
2393
3287
  }
2394
3288
  ],
2395
3289
  "transitions": [
@@ -2400,42 +3294,24 @@
2400
3294
  "effects": [
2401
3295
  [
2402
3296
  "fetch",
2403
- "Burndown"
3297
+ "Burndown",
3298
+ {
3299
+ "emit": {
3300
+ "failure": "BurndownLoadFailed",
3301
+ "success": "BurndownLoaded"
3302
+ }
3303
+ }
2404
3304
  ],
2405
3305
  [
2406
3306
  "render-ui",
2407
3307
  "main",
2408
3308
  {
2409
- "type": "dashboard-layout",
2410
- "appName": "ProjectManagerApp",
2411
- "navItems": [
2412
- {
2413
- "label": "Tasks",
2414
- "href": "/tasks",
2415
- "icon": "check-square"
2416
- },
2417
- {
2418
- "label": "Sprints",
2419
- "href": "/sprints",
2420
- "icon": "zap"
2421
- },
2422
- {
2423
- "label": "Burndown",
2424
- "href": "/burndown",
2425
- "icon": "layout-list"
2426
- }
2427
- ],
2428
3309
  "children": [
2429
3310
  {
2430
- "type": "scaled-diagram",
2431
3311
  "children": [
2432
3312
  {
2433
- "type": "stack",
2434
- "direction": "vertical",
2435
- "gap": "lg",
2436
3313
  "children": [
2437
3314
  {
2438
- "type": "breadcrumb",
2439
3315
  "items": [
2440
3316
  {
2441
3317
  "label": "Home",
@@ -2444,18 +3320,12 @@
2444
3320
  {
2445
3321
  "label": "Burndown Chart"
2446
3322
  }
2447
- ]
3323
+ ],
3324
+ "type": "breadcrumb"
2448
3325
  },
2449
3326
  {
2450
- "type": "stack",
2451
- "direction": "horizontal",
2452
- "gap": "md",
2453
- "justify": "space-between",
2454
3327
  "children": [
2455
3328
  {
2456
- "type": "stack",
2457
- "direction": "horizontal",
2458
- "gap": "md",
2459
3329
  "children": [
2460
3330
  {
2461
3331
  "type": "icon",
@@ -2467,16 +3337,23 @@
2467
3337
  "content": "Burndown Chart",
2468
3338
  "variant": "h2"
2469
3339
  }
2470
- ]
3340
+ ],
3341
+ "direction": "horizontal",
3342
+ "gap": "md",
3343
+ "type": "stack"
2471
3344
  },
2472
3345
  {
2473
3346
  "type": "button",
2474
- "label": "Refresh",
2475
- "event": "REFRESH",
2476
3347
  "variant": "secondary",
2477
- "icon": "refresh-cw"
3348
+ "icon": "refresh-cw",
3349
+ "label": "Refresh",
3350
+ "event": "REFRESH"
2478
3351
  }
2479
- ]
3352
+ ],
3353
+ "gap": "md",
3354
+ "type": "stack",
3355
+ "justify": "space-between",
3356
+ "direction": "horizontal"
2480
3357
  },
2481
3358
  {
2482
3359
  "type": "divider"
@@ -2487,10 +3364,9 @@
2487
3364
  "children": [
2488
3365
  {
2489
3366
  "type": "simple-grid",
2490
- "columns": 5,
3367
+ "columns": 5.0,
2491
3368
  "children": [
2492
3369
  {
2493
- "type": "stat-display",
2494
3370
  "label": "TotalPoints",
2495
3371
  "value": [
2496
3372
  "object/get",
@@ -2499,10 +3375,10 @@
2499
3375
  "@entity"
2500
3376
  ],
2501
3377
  "totalPoints"
2502
- ]
3378
+ ],
3379
+ "type": "stat-display"
2503
3380
  },
2504
3381
  {
2505
- "type": "stat-display",
2506
3382
  "label": "CompletedPoints",
2507
3383
  "value": [
2508
3384
  "object/get",
@@ -2511,7 +3387,8 @@
2511
3387
  "@entity"
2512
3388
  ],
2513
3389
  "completedPoints"
2514
- ]
3390
+ ],
3391
+ "type": "stat-display"
2515
3392
  },
2516
3393
  {
2517
3394
  "type": "stat-display",
@@ -2539,7 +3416,6 @@
2539
3416
  },
2540
3417
  {
2541
3418
  "type": "stat-display",
2542
- "label": "DaysRemaining",
2543
3419
  "value": [
2544
3420
  "object/get",
2545
3421
  [
@@ -2547,7 +3423,8 @@
2547
3423
  "@entity"
2548
3424
  ],
2549
3425
  "daysRemaining"
2550
- ]
3426
+ ],
3427
+ "label": "DaysRemaining"
2551
3428
  }
2552
3429
  ]
2553
3430
  }
@@ -2557,62 +3434,62 @@
2557
3434
  "type": "divider"
2558
3435
  },
2559
3436
  {
2560
- "type": "grid",
2561
- "columns": 2,
2562
- "gap": "md",
2563
3437
  "children": [
2564
3438
  {
2565
- "type": "card",
2566
3439
  "children": [
2567
3440
  {
3441
+ "content": "Chart View",
2568
3442
  "type": "typography",
2569
- "variant": "caption",
2570
- "content": "Chart View"
3443
+ "variant": "caption"
2571
3444
  }
2572
- ]
3445
+ ],
3446
+ "type": "card"
2573
3447
  },
2574
3448
  {
2575
- "type": "card",
2576
3449
  "children": [
2577
3450
  {
2578
3451
  "type": "typography",
2579
3452
  "variant": "caption",
2580
3453
  "content": "Graph View"
2581
3454
  }
2582
- ]
3455
+ ],
3456
+ "type": "card"
2583
3457
  }
2584
- ]
3458
+ ],
3459
+ "columns": 2.0,
3460
+ "type": "grid",
3461
+ "gap": "md"
2585
3462
  },
2586
3463
  {
3464
+ "yKey": "value",
2587
3465
  "type": "line-chart",
3466
+ "xKey": "date",
2588
3467
  "data": [
2589
3468
  {
2590
3469
  "date": "Jan",
2591
- "value": 12
3470
+ "value": 12.0
2592
3471
  },
2593
3472
  {
2594
- "date": "Feb",
2595
- "value": 19
3473
+ "value": 19.0,
3474
+ "date": "Feb"
2596
3475
  },
2597
3476
  {
2598
3477
  "date": "Mar",
2599
- "value": 15
3478
+ "value": 15.0
2600
3479
  },
2601
3480
  {
2602
3481
  "date": "Apr",
2603
- "value": 25
3482
+ "value": 25.0
2604
3483
  },
2605
3484
  {
2606
- "date": "May",
2607
- "value": 22
3485
+ "value": 22.0,
3486
+ "date": "May"
2608
3487
  },
2609
3488
  {
2610
3489
  "date": "Jun",
2611
- "value": 30
3490
+ "value": 30.0
2612
3491
  }
2613
3492
  ],
2614
- "xKey": "date",
2615
- "yKey": "value",
2616
3493
  "title": "Trend"
2617
3494
  },
2618
3495
  {
@@ -2623,34 +3500,13 @@
2623
3500
  "color": "primary"
2624
3501
  },
2625
3502
  {
2626
- "label": "Previous",
2627
- "color": "muted"
3503
+ "color": "muted",
3504
+ "label": "Previous"
2628
3505
  }
2629
3506
  ]
2630
3507
  },
2631
3508
  {
2632
- "type": "graph-view",
2633
- "nodes": [
2634
- {
2635
- "id": "a",
2636
- "label": "Start",
2637
- "x": 50,
2638
- "y": 100
2639
- },
2640
- {
2641
- "id": "b",
2642
- "label": "Process",
2643
- "x": 200,
2644
- "y": 50
2645
- },
2646
- {
2647
- "id": "c",
2648
- "label": "End",
2649
- "x": 350,
2650
- "y": 100
2651
- }
2652
- ],
2653
- "edges": [
3509
+ "edges": [
2654
3510
  {
2655
3511
  "from": "a",
2656
3512
  "to": "b"
@@ -2660,12 +3516,56 @@
2660
3516
  "to": "c"
2661
3517
  }
2662
3518
  ],
2663
- "width": 400,
2664
- "height": 200
3519
+ "width": 400.0,
3520
+ "type": "graph-view",
3521
+ "height": 200.0,
3522
+ "nodes": [
3523
+ {
3524
+ "id": "a",
3525
+ "y": 100.0,
3526
+ "label": "Start",
3527
+ "x": 50.0
3528
+ },
3529
+ {
3530
+ "label": "Process",
3531
+ "x": 200.0,
3532
+ "y": 50.0,
3533
+ "id": "b"
3534
+ },
3535
+ {
3536
+ "id": "c",
3537
+ "label": "End",
3538
+ "y": 100.0,
3539
+ "x": 350.0
3540
+ }
3541
+ ]
2665
3542
  }
2666
- ]
3543
+ ],
3544
+ "direction": "vertical",
3545
+ "type": "stack",
3546
+ "gap": "lg"
2667
3547
  }
2668
- ]
3548
+ ],
3549
+ "type": "scaled-diagram"
3550
+ }
3551
+ ],
3552
+ "appName": "ProjectManagerApp",
3553
+ "type": "dashboard-layout",
3554
+ "navItems": [
3555
+ {
3556
+ "icon": "check-square",
3557
+ "label": "Tasks",
3558
+ "href": "/tasks"
3559
+ },
3560
+ {
3561
+ "icon": "zap",
3562
+ "label": "Sprints",
3563
+ "href": "/sprints"
3564
+ },
3565
+ {
3566
+ "label": "Burndown",
3567
+ "href": "/burndown",
3568
+ "icon": "layout-list"
2669
3569
  }
2670
3570
  ]
2671
3571
  }
@@ -2679,62 +3579,42 @@
2679
3579
  "effects": [
2680
3580
  [
2681
3581
  "fetch",
2682
- "Burndown"
3582
+ "Burndown",
3583
+ {
3584
+ "emit": {
3585
+ "failure": "BurndownLoadFailed",
3586
+ "success": "BurndownLoaded"
3587
+ }
3588
+ }
2683
3589
  ],
2684
3590
  [
2685
3591
  "render-ui",
2686
3592
  "main",
2687
3593
  {
2688
3594
  "type": "dashboard-layout",
2689
- "appName": "ProjectManagerApp",
2690
- "navItems": [
2691
- {
2692
- "label": "Tasks",
2693
- "href": "/tasks",
2694
- "icon": "check-square"
2695
- },
2696
- {
2697
- "label": "Sprints",
2698
- "href": "/sprints",
2699
- "icon": "zap"
2700
- },
2701
- {
2702
- "label": "Burndown",
2703
- "href": "/burndown",
2704
- "icon": "layout-list"
2705
- }
2706
- ],
2707
3595
  "children": [
2708
3596
  {
2709
- "type": "scaled-diagram",
2710
3597
  "children": [
2711
3598
  {
2712
- "type": "stack",
2713
3599
  "direction": "vertical",
3600
+ "type": "stack",
2714
3601
  "gap": "lg",
2715
3602
  "children": [
2716
3603
  {
2717
- "type": "breadcrumb",
2718
3604
  "items": [
2719
3605
  {
2720
- "label": "Home",
2721
- "href": "/"
3606
+ "href": "/",
3607
+ "label": "Home"
2722
3608
  },
2723
3609
  {
2724
3610
  "label": "Burndown Chart"
2725
3611
  }
2726
- ]
3612
+ ],
3613
+ "type": "breadcrumb"
2727
3614
  },
2728
3615
  {
2729
- "type": "stack",
2730
- "direction": "horizontal",
2731
- "gap": "md",
2732
- "justify": "space-between",
2733
3616
  "children": [
2734
3617
  {
2735
- "type": "stack",
2736
- "direction": "horizontal",
2737
- "gap": "md",
2738
3618
  "children": [
2739
3619
  {
2740
3620
  "type": "icon",
@@ -2746,16 +3626,23 @@
2746
3626
  "content": "Burndown Chart",
2747
3627
  "variant": "h2"
2748
3628
  }
2749
- ]
3629
+ ],
3630
+ "gap": "md",
3631
+ "type": "stack",
3632
+ "direction": "horizontal"
2750
3633
  },
2751
3634
  {
2752
- "type": "button",
2753
3635
  "label": "Refresh",
2754
3636
  "event": "REFRESH",
2755
3637
  "variant": "secondary",
3638
+ "type": "button",
2756
3639
  "icon": "refresh-cw"
2757
3640
  }
2758
- ]
3641
+ ],
3642
+ "type": "stack",
3643
+ "direction": "horizontal",
3644
+ "gap": "md",
3645
+ "justify": "space-between"
2759
3646
  },
2760
3647
  {
2761
3648
  "type": "divider"
@@ -2765,8 +3652,6 @@
2765
3652
  "padding": "md",
2766
3653
  "children": [
2767
3654
  {
2768
- "type": "simple-grid",
2769
- "columns": 5,
2770
3655
  "children": [
2771
3656
  {
2772
3657
  "type": "stat-display",
@@ -2793,8 +3678,6 @@
2793
3678
  ]
2794
3679
  },
2795
3680
  {
2796
- "type": "stat-display",
2797
- "label": "RemainingPoints",
2798
3681
  "value": [
2799
3682
  "object/get",
2800
3683
  [
@@ -2802,11 +3685,13 @@
2802
3685
  "@entity"
2803
3686
  ],
2804
3687
  "remainingPoints"
2805
- ]
3688
+ ],
3689
+ "type": "stat-display",
3690
+ "label": "RemainingPoints"
2806
3691
  },
2807
3692
  {
2808
- "type": "stat-display",
2809
3693
  "label": "Velocity",
3694
+ "type": "stat-display",
2810
3695
  "value": [
2811
3696
  "object/get",
2812
3697
  [
@@ -2828,7 +3713,9 @@
2828
3713
  "daysRemaining"
2829
3714
  ]
2830
3715
  }
2831
- ]
3716
+ ],
3717
+ "columns": 5.0,
3718
+ "type": "simple-grid"
2832
3719
  }
2833
3720
  ]
2834
3721
  },
@@ -2836,74 +3723,74 @@
2836
3723
  "type": "divider"
2837
3724
  },
2838
3725
  {
2839
- "type": "grid",
2840
- "columns": 2,
3726
+ "columns": 2.0,
2841
3727
  "gap": "md",
3728
+ "type": "grid",
2842
3729
  "children": [
2843
3730
  {
2844
3731
  "type": "card",
2845
3732
  "children": [
2846
3733
  {
2847
3734
  "type": "typography",
2848
- "variant": "caption",
2849
- "content": "Chart View"
3735
+ "content": "Chart View",
3736
+ "variant": "caption"
2850
3737
  }
2851
3738
  ]
2852
3739
  },
2853
3740
  {
2854
- "type": "card",
2855
3741
  "children": [
2856
3742
  {
2857
3743
  "type": "typography",
2858
3744
  "variant": "caption",
2859
3745
  "content": "Graph View"
2860
3746
  }
2861
- ]
3747
+ ],
3748
+ "type": "card"
2862
3749
  }
2863
3750
  ]
2864
3751
  },
2865
3752
  {
2866
- "type": "line-chart",
3753
+ "title": "Trend",
3754
+ "xKey": "date",
3755
+ "yKey": "value",
2867
3756
  "data": [
2868
3757
  {
2869
3758
  "date": "Jan",
2870
- "value": 12
3759
+ "value": 12.0
2871
3760
  },
2872
3761
  {
2873
- "date": "Feb",
2874
- "value": 19
3762
+ "value": 19.0,
3763
+ "date": "Feb"
2875
3764
  },
2876
3765
  {
2877
3766
  "date": "Mar",
2878
- "value": 15
3767
+ "value": 15.0
2879
3768
  },
2880
3769
  {
2881
3770
  "date": "Apr",
2882
- "value": 25
3771
+ "value": 25.0
2883
3772
  },
2884
3773
  {
2885
- "date": "May",
2886
- "value": 22
3774
+ "value": 22.0,
3775
+ "date": "May"
2887
3776
  },
2888
3777
  {
2889
3778
  "date": "Jun",
2890
- "value": 30
3779
+ "value": 30.0
2891
3780
  }
2892
3781
  ],
2893
- "xKey": "date",
2894
- "yKey": "value",
2895
- "title": "Trend"
3782
+ "type": "line-chart"
2896
3783
  },
2897
3784
  {
2898
3785
  "type": "chart-legend",
2899
3786
  "items": [
2900
3787
  {
2901
- "label": "Current",
2902
- "color": "primary"
3788
+ "color": "primary",
3789
+ "label": "Current"
2903
3790
  },
2904
3791
  {
2905
- "label": "Previous",
2906
- "color": "muted"
3792
+ "color": "muted",
3793
+ "label": "Previous"
2907
3794
  }
2908
3795
  ]
2909
3796
  },
@@ -2911,40 +3798,59 @@
2911
3798
  "type": "graph-view",
2912
3799
  "nodes": [
2913
3800
  {
2914
- "id": "a",
3801
+ "y": 100.0,
2915
3802
  "label": "Start",
2916
- "x": 50,
2917
- "y": 100
3803
+ "x": 50.0,
3804
+ "id": "a"
2918
3805
  },
2919
3806
  {
2920
3807
  "id": "b",
2921
- "label": "Process",
2922
- "x": 200,
2923
- "y": 50
3808
+ "y": 50.0,
3809
+ "x": 200.0,
3810
+ "label": "Process"
2924
3811
  },
2925
3812
  {
3813
+ "y": 100.0,
3814
+ "x": 350.0,
2926
3815
  "id": "c",
2927
- "label": "End",
2928
- "x": 350,
2929
- "y": 100
3816
+ "label": "End"
2930
3817
  }
2931
3818
  ],
3819
+ "width": 400.0,
3820
+ "height": 200.0,
2932
3821
  "edges": [
2933
3822
  {
2934
- "from": "a",
2935
- "to": "b"
3823
+ "to": "b",
3824
+ "from": "a"
2936
3825
  },
2937
3826
  {
2938
3827
  "from": "b",
2939
3828
  "to": "c"
2940
3829
  }
2941
- ],
2942
- "width": 400,
2943
- "height": 200
3830
+ ]
2944
3831
  }
2945
3832
  ]
2946
3833
  }
2947
- ]
3834
+ ],
3835
+ "type": "scaled-diagram"
3836
+ }
3837
+ ],
3838
+ "appName": "ProjectManagerApp",
3839
+ "navItems": [
3840
+ {
3841
+ "label": "Tasks",
3842
+ "icon": "check-square",
3843
+ "href": "/tasks"
3844
+ },
3845
+ {
3846
+ "icon": "zap",
3847
+ "label": "Sprints",
3848
+ "href": "/sprints"
3849
+ },
3850
+ {
3851
+ "label": "Burndown",
3852
+ "href": "/burndown",
3853
+ "icon": "layout-list"
2948
3854
  }
2949
3855
  ]
2950
3856
  }
@@ -2958,46 +3864,49 @@
2958
3864
  "effects": [
2959
3865
  [
2960
3866
  "fetch",
2961
- "Burndown"
3867
+ "Burndown",
3868
+ {
3869
+ "emit": {
3870
+ "failure": "BurndownLoadFailed",
3871
+ "success": "BurndownLoaded"
3872
+ }
3873
+ }
2962
3874
  ],
2963
3875
  [
2964
3876
  "render-ui",
2965
3877
  "main",
2966
3878
  {
2967
- "type": "dashboard-layout",
2968
- "appName": "ProjectManagerApp",
2969
3879
  "navItems": [
2970
3880
  {
2971
- "label": "Tasks",
2972
3881
  "href": "/tasks",
2973
- "icon": "check-square"
3882
+ "icon": "check-square",
3883
+ "label": "Tasks"
2974
3884
  },
2975
3885
  {
2976
- "label": "Sprints",
2977
3886
  "href": "/sprints",
3887
+ "label": "Sprints",
2978
3888
  "icon": "zap"
2979
3889
  },
2980
3890
  {
2981
- "label": "Burndown",
2982
3891
  "href": "/burndown",
3892
+ "label": "Burndown",
2983
3893
  "icon": "layout-list"
2984
3894
  }
2985
3895
  ],
3896
+ "appName": "ProjectManagerApp",
3897
+ "type": "dashboard-layout",
2986
3898
  "children": [
2987
3899
  {
2988
3900
  "type": "scaled-diagram",
2989
3901
  "children": [
2990
3902
  {
2991
- "type": "stack",
2992
- "direction": "vertical",
2993
- "gap": "lg",
2994
3903
  "children": [
2995
3904
  {
2996
3905
  "type": "breadcrumb",
2997
3906
  "items": [
2998
3907
  {
2999
- "label": "Home",
3000
- "href": "/"
3908
+ "href": "/",
3909
+ "label": "Home"
3001
3910
  },
3002
3911
  {
3003
3912
  "label": "Burndown Chart"
@@ -3005,47 +3914,45 @@
3005
3914
  ]
3006
3915
  },
3007
3916
  {
3008
- "type": "stack",
3009
- "direction": "horizontal",
3010
- "gap": "md",
3011
3917
  "justify": "space-between",
3012
3918
  "children": [
3013
3919
  {
3014
3920
  "type": "stack",
3015
- "direction": "horizontal",
3016
3921
  "gap": "md",
3017
3922
  "children": [
3018
3923
  {
3019
- "type": "icon",
3020
3924
  "name": "trending-down",
3021
- "size": "lg"
3925
+ "size": "lg",
3926
+ "type": "icon"
3022
3927
  },
3023
3928
  {
3024
3929
  "type": "typography",
3025
- "content": "Burndown Chart",
3026
- "variant": "h2"
3930
+ "variant": "h2",
3931
+ "content": "Burndown Chart"
3027
3932
  }
3028
- ]
3933
+ ],
3934
+ "direction": "horizontal"
3029
3935
  },
3030
3936
  {
3031
- "type": "button",
3032
3937
  "label": "Refresh",
3033
- "event": "REFRESH",
3034
3938
  "variant": "secondary",
3035
- "icon": "refresh-cw"
3939
+ "type": "button",
3940
+ "icon": "refresh-cw",
3941
+ "event": "REFRESH"
3036
3942
  }
3037
- ]
3943
+ ],
3944
+ "direction": "horizontal",
3945
+ "gap": "md",
3946
+ "type": "stack"
3038
3947
  },
3039
3948
  {
3040
3949
  "type": "divider"
3041
3950
  },
3042
3951
  {
3043
- "type": "box",
3044
- "padding": "md",
3045
3952
  "children": [
3046
3953
  {
3047
3954
  "type": "simple-grid",
3048
- "columns": 5,
3955
+ "columns": 5.0,
3049
3956
  "children": [
3050
3957
  {
3051
3958
  "type": "stat-display",
@@ -3060,8 +3967,6 @@
3060
3967
  ]
3061
3968
  },
3062
3969
  {
3063
- "type": "stat-display",
3064
- "label": "CompletedPoints",
3065
3970
  "value": [
3066
3971
  "object/get",
3067
3972
  [
@@ -3069,10 +3974,11 @@
3069
3974
  "@entity"
3070
3975
  ],
3071
3976
  "completedPoints"
3072
- ]
3977
+ ],
3978
+ "type": "stat-display",
3979
+ "label": "CompletedPoints"
3073
3980
  },
3074
3981
  {
3075
- "type": "stat-display",
3076
3982
  "label": "RemainingPoints",
3077
3983
  "value": [
3078
3984
  "object/get",
@@ -3081,10 +3987,10 @@
3081
3987
  "@entity"
3082
3988
  ],
3083
3989
  "remainingPoints"
3084
- ]
3990
+ ],
3991
+ "type": "stat-display"
3085
3992
  },
3086
3993
  {
3087
- "type": "stat-display",
3088
3994
  "label": "Velocity",
3089
3995
  "value": [
3090
3996
  "object/get",
@@ -3093,7 +3999,8 @@
3093
3999
  "@entity"
3094
4000
  ],
3095
4001
  "velocity"
3096
- ]
4002
+ ],
4003
+ "type": "stat-display"
3097
4004
  },
3098
4005
  {
3099
4006
  "type": "stat-display",
@@ -3109,69 +4016,71 @@
3109
4016
  }
3110
4017
  ]
3111
4018
  }
3112
- ]
4019
+ ],
4020
+ "type": "box",
4021
+ "padding": "md"
3113
4022
  },
3114
4023
  {
3115
4024
  "type": "divider"
3116
4025
  },
3117
4026
  {
4027
+ "columns": 2.0,
3118
4028
  "type": "grid",
3119
- "columns": 2,
3120
4029
  "gap": "md",
3121
4030
  "children": [
3122
4031
  {
3123
4032
  "type": "card",
3124
4033
  "children": [
3125
4034
  {
4035
+ "content": "Chart View",
3126
4036
  "type": "typography",
3127
- "variant": "caption",
3128
- "content": "Chart View"
4037
+ "variant": "caption"
3129
4038
  }
3130
4039
  ]
3131
4040
  },
3132
4041
  {
3133
- "type": "card",
3134
4042
  "children": [
3135
4043
  {
3136
- "type": "typography",
3137
4044
  "variant": "caption",
3138
- "content": "Graph View"
4045
+ "content": "Graph View",
4046
+ "type": "typography"
3139
4047
  }
3140
- ]
4048
+ ],
4049
+ "type": "card"
3141
4050
  }
3142
4051
  ]
3143
4052
  },
3144
4053
  {
3145
- "type": "line-chart",
4054
+ "yKey": "value",
4055
+ "title": "Trend",
4056
+ "xKey": "date",
3146
4057
  "data": [
3147
4058
  {
3148
4059
  "date": "Jan",
3149
- "value": 12
4060
+ "value": 12.0
3150
4061
  },
3151
4062
  {
3152
4063
  "date": "Feb",
3153
- "value": 19
4064
+ "value": 19.0
3154
4065
  },
3155
4066
  {
3156
4067
  "date": "Mar",
3157
- "value": 15
4068
+ "value": 15.0
3158
4069
  },
3159
4070
  {
3160
- "date": "Apr",
3161
- "value": 25
4071
+ "value": 25.0,
4072
+ "date": "Apr"
3162
4073
  },
3163
4074
  {
3164
- "date": "May",
3165
- "value": 22
4075
+ "value": 22.0,
4076
+ "date": "May"
3166
4077
  },
3167
4078
  {
3168
- "date": "Jun",
3169
- "value": 30
4079
+ "value": 30.0,
4080
+ "date": "Jun"
3170
4081
  }
3171
4082
  ],
3172
- "xKey": "date",
3173
- "yKey": "value",
3174
- "title": "Trend"
4083
+ "type": "line-chart"
3175
4084
  },
3176
4085
  {
3177
4086
  "type": "chart-legend",
@@ -3181,47 +4090,50 @@
3181
4090
  "color": "primary"
3182
4091
  },
3183
4092
  {
3184
- "label": "Previous",
3185
- "color": "muted"
4093
+ "color": "muted",
4094
+ "label": "Previous"
3186
4095
  }
3187
4096
  ]
3188
4097
  },
3189
4098
  {
3190
4099
  "type": "graph-view",
4100
+ "edges": [
4101
+ {
4102
+ "to": "b",
4103
+ "from": "a"
4104
+ },
4105
+ {
4106
+ "to": "c",
4107
+ "from": "b"
4108
+ }
4109
+ ],
4110
+ "width": 400.0,
3191
4111
  "nodes": [
3192
4112
  {
4113
+ "x": 50.0,
4114
+ "y": 100.0,
3193
4115
  "id": "a",
3194
- "label": "Start",
3195
- "x": 50,
3196
- "y": 100
4116
+ "label": "Start"
3197
4117
  },
3198
4118
  {
3199
- "id": "b",
4119
+ "y": 50.0,
3200
4120
  "label": "Process",
3201
- "x": 200,
3202
- "y": 50
4121
+ "id": "b",
4122
+ "x": 200.0
3203
4123
  },
3204
4124
  {
3205
- "id": "c",
4125
+ "x": 350.0,
3206
4126
  "label": "End",
3207
- "x": 350,
3208
- "y": 100
3209
- }
3210
- ],
3211
- "edges": [
3212
- {
3213
- "from": "a",
3214
- "to": "b"
3215
- },
3216
- {
3217
- "from": "b",
3218
- "to": "c"
4127
+ "id": "c",
4128
+ "y": 100.0
3219
4129
  }
3220
4130
  ],
3221
- "width": 400,
3222
- "height": 200
4131
+ "height": 200.0
3223
4132
  }
3224
- ]
4133
+ ],
4134
+ "direction": "vertical",
4135
+ "type": "stack",
4136
+ "gap": "lg"
3225
4137
  }
3226
4138
  ]
3227
4139
  }
@@ -3237,55 +4149,39 @@
3237
4149
  "effects": [
3238
4150
  [
3239
4151
  "fetch",
3240
- "Burndown"
4152
+ "Burndown",
4153
+ {
4154
+ "emit": {
4155
+ "success": "BurndownLoaded",
4156
+ "failure": "BurndownLoadFailed"
4157
+ }
4158
+ }
3241
4159
  ],
3242
4160
  [
3243
4161
  "render-ui",
3244
4162
  "main",
3245
4163
  {
3246
- "type": "dashboard-layout",
3247
- "appName": "ProjectManagerApp",
3248
- "navItems": [
3249
- {
3250
- "label": "Tasks",
3251
- "href": "/tasks",
3252
- "icon": "check-square"
3253
- },
3254
- {
3255
- "label": "Sprints",
3256
- "href": "/sprints",
3257
- "icon": "zap"
3258
- },
3259
- {
3260
- "label": "Burndown",
3261
- "href": "/burndown",
3262
- "icon": "layout-list"
3263
- }
3264
- ],
3265
4164
  "children": [
3266
4165
  {
3267
- "type": "scaled-diagram",
3268
4166
  "children": [
3269
4167
  {
4168
+ "gap": "lg",
3270
4169
  "type": "stack",
3271
4170
  "direction": "vertical",
3272
- "gap": "lg",
3273
4171
  "children": [
3274
4172
  {
3275
- "type": "breadcrumb",
3276
4173
  "items": [
3277
4174
  {
3278
- "label": "Home",
3279
- "href": "/"
4175
+ "href": "/",
4176
+ "label": "Home"
3280
4177
  },
3281
4178
  {
3282
4179
  "label": "Burndown Chart"
3283
4180
  }
3284
- ]
4181
+ ],
4182
+ "type": "breadcrumb"
3285
4183
  },
3286
4184
  {
3287
- "type": "stack",
3288
- "direction": "horizontal",
3289
4185
  "gap": "md",
3290
4186
  "justify": "space-between",
3291
4187
  "children": [
@@ -3301,30 +4197,30 @@
3301
4197
  },
3302
4198
  {
3303
4199
  "type": "typography",
3304
- "content": "Burndown Chart",
3305
- "variant": "h2"
4200
+ "variant": "h2",
4201
+ "content": "Burndown Chart"
3306
4202
  }
3307
4203
  ]
3308
4204
  },
3309
4205
  {
3310
- "type": "button",
3311
- "label": "Refresh",
3312
4206
  "event": "REFRESH",
3313
- "variant": "secondary",
3314
- "icon": "refresh-cw"
4207
+ "label": "Refresh",
4208
+ "icon": "refresh-cw",
4209
+ "type": "button",
4210
+ "variant": "secondary"
3315
4211
  }
3316
- ]
4212
+ ],
4213
+ "direction": "horizontal",
4214
+ "type": "stack"
3317
4215
  },
3318
4216
  {
3319
4217
  "type": "divider"
3320
4218
  },
3321
4219
  {
3322
- "type": "box",
3323
- "padding": "md",
3324
4220
  "children": [
3325
4221
  {
3326
4222
  "type": "simple-grid",
3327
- "columns": 5,
4223
+ "columns": 5.0,
3328
4224
  "children": [
3329
4225
  {
3330
4226
  "type": "stat-display",
@@ -3339,8 +4235,6 @@
3339
4235
  ]
3340
4236
  },
3341
4237
  {
3342
- "type": "stat-display",
3343
- "label": "CompletedPoints",
3344
4238
  "value": [
3345
4239
  "object/get",
3346
4240
  [
@@ -3348,11 +4242,11 @@
3348
4242
  "@entity"
3349
4243
  ],
3350
4244
  "completedPoints"
3351
- ]
4245
+ ],
4246
+ "label": "CompletedPoints",
4247
+ "type": "stat-display"
3352
4248
  },
3353
4249
  {
3354
- "type": "stat-display",
3355
- "label": "RemainingPoints",
3356
4250
  "value": [
3357
4251
  "object/get",
3358
4252
  [
@@ -3360,11 +4254,11 @@
3360
4254
  "@entity"
3361
4255
  ],
3362
4256
  "remainingPoints"
3363
- ]
4257
+ ],
4258
+ "type": "stat-display",
4259
+ "label": "RemainingPoints"
3364
4260
  },
3365
4261
  {
3366
- "type": "stat-display",
3367
- "label": "Velocity",
3368
4262
  "value": [
3369
4263
  "object/get",
3370
4264
  [
@@ -3372,11 +4266,11 @@
3372
4266
  "@entity"
3373
4267
  ],
3374
4268
  "velocity"
3375
- ]
4269
+ ],
4270
+ "label": "Velocity",
4271
+ "type": "stat-display"
3376
4272
  },
3377
4273
  {
3378
- "type": "stat-display",
3379
- "label": "DaysRemaining",
3380
4274
  "value": [
3381
4275
  "object/get",
3382
4276
  [
@@ -3384,27 +4278,31 @@
3384
4278
  "@entity"
3385
4279
  ],
3386
4280
  "daysRemaining"
3387
- ]
4281
+ ],
4282
+ "type": "stat-display",
4283
+ "label": "DaysRemaining"
3388
4284
  }
3389
4285
  ]
3390
4286
  }
3391
- ]
4287
+ ],
4288
+ "type": "box",
4289
+ "padding": "md"
3392
4290
  },
3393
4291
  {
3394
4292
  "type": "divider"
3395
4293
  },
3396
4294
  {
3397
4295
  "type": "grid",
3398
- "columns": 2,
3399
4296
  "gap": "md",
4297
+ "columns": 2.0,
3400
4298
  "children": [
3401
4299
  {
3402
4300
  "type": "card",
3403
4301
  "children": [
3404
4302
  {
3405
- "type": "typography",
3406
4303
  "variant": "caption",
3407
- "content": "Chart View"
4304
+ "content": "Chart View",
4305
+ "type": "typography"
3408
4306
  }
3409
4307
  ]
3410
4308
  },
@@ -3412,48 +4310,47 @@
3412
4310
  "type": "card",
3413
4311
  "children": [
3414
4312
  {
4313
+ "content": "Graph View",
3415
4314
  "type": "typography",
3416
- "variant": "caption",
3417
- "content": "Graph View"
4315
+ "variant": "caption"
3418
4316
  }
3419
4317
  ]
3420
4318
  }
3421
4319
  ]
3422
4320
  },
3423
4321
  {
3424
- "type": "line-chart",
4322
+ "yKey": "value",
3425
4323
  "data": [
3426
4324
  {
3427
- "date": "Jan",
3428
- "value": 12
4325
+ "value": 12.0,
4326
+ "date": "Jan"
3429
4327
  },
3430
4328
  {
3431
- "date": "Feb",
3432
- "value": 19
4329
+ "value": 19.0,
4330
+ "date": "Feb"
3433
4331
  },
3434
4332
  {
3435
- "date": "Mar",
3436
- "value": 15
4333
+ "value": 15.0,
4334
+ "date": "Mar"
3437
4335
  },
3438
4336
  {
3439
4337
  "date": "Apr",
3440
- "value": 25
4338
+ "value": 25.0
3441
4339
  },
3442
4340
  {
3443
- "date": "May",
3444
- "value": 22
4341
+ "value": 22.0,
4342
+ "date": "May"
3445
4343
  },
3446
4344
  {
3447
- "date": "Jun",
3448
- "value": 30
4345
+ "value": 30.0,
4346
+ "date": "Jun"
3449
4347
  }
3450
4348
  ],
3451
- "xKey": "date",
3452
- "yKey": "value",
3453
- "title": "Trend"
4349
+ "title": "Trend",
4350
+ "type": "line-chart",
4351
+ "xKey": "date"
3454
4352
  },
3455
4353
  {
3456
- "type": "chart-legend",
3457
4354
  "items": [
3458
4355
  {
3459
4356
  "label": "Current",
@@ -3463,48 +4360,69 @@
3463
4360
  "label": "Previous",
3464
4361
  "color": "muted"
3465
4362
  }
3466
- ]
4363
+ ],
4364
+ "type": "chart-legend"
3467
4365
  },
3468
4366
  {
3469
- "type": "graph-view",
4367
+ "height": 200.0,
4368
+ "edges": [
4369
+ {
4370
+ "from": "a",
4371
+ "to": "b"
4372
+ },
4373
+ {
4374
+ "from": "b",
4375
+ "to": "c"
4376
+ }
4377
+ ],
3470
4378
  "nodes": [
3471
4379
  {
3472
- "id": "a",
3473
4380
  "label": "Start",
3474
- "x": 50,
3475
- "y": 100
4381
+ "y": 100.0,
4382
+ "id": "a",
4383
+ "x": 50.0
3476
4384
  },
3477
4385
  {
3478
- "id": "b",
3479
4386
  "label": "Process",
3480
- "x": 200,
3481
- "y": 50
4387
+ "y": 50.0,
4388
+ "id": "b",
4389
+ "x": 200.0
3482
4390
  },
3483
4391
  {
3484
4392
  "id": "c",
4393
+ "y": 100.0,
3485
4394
  "label": "End",
3486
- "x": 350,
3487
- "y": 100
3488
- }
3489
- ],
3490
- "edges": [
3491
- {
3492
- "from": "a",
3493
- "to": "b"
3494
- },
3495
- {
3496
- "from": "b",
3497
- "to": "c"
4395
+ "x": 350.0
3498
4396
  }
3499
4397
  ],
3500
- "width": 400,
3501
- "height": 200
4398
+ "type": "graph-view",
4399
+ "width": 400.0
3502
4400
  }
3503
4401
  ]
3504
4402
  }
3505
- ]
4403
+ ],
4404
+ "type": "scaled-diagram"
3506
4405
  }
3507
- ]
4406
+ ],
4407
+ "appName": "ProjectManagerApp",
4408
+ "navItems": [
4409
+ {
4410
+ "href": "/tasks",
4411
+ "label": "Tasks",
4412
+ "icon": "check-square"
4413
+ },
4414
+ {
4415
+ "icon": "zap",
4416
+ "label": "Sprints",
4417
+ "href": "/sprints"
4418
+ },
4419
+ {
4420
+ "label": "Burndown",
4421
+ "href": "/burndown",
4422
+ "icon": "layout-list"
4423
+ }
4424
+ ],
4425
+ "type": "dashboard-layout"
3508
4426
  }
3509
4427
  ]
3510
4428
  ]
@@ -3516,98 +4434,82 @@
3516
4434
  "effects": [
3517
4435
  [
3518
4436
  "fetch",
3519
- "Burndown"
4437
+ "Burndown",
4438
+ {
4439
+ "emit": {
4440
+ "success": "BurndownLoaded",
4441
+ "failure": "BurndownLoadFailed"
4442
+ }
4443
+ }
3520
4444
  ],
3521
4445
  [
3522
4446
  "render-ui",
3523
4447
  "main",
3524
4448
  {
3525
4449
  "type": "dashboard-layout",
3526
- "appName": "ProjectManagerApp",
3527
- "navItems": [
3528
- {
3529
- "label": "Tasks",
3530
- "href": "/tasks",
3531
- "icon": "check-square"
3532
- },
3533
- {
3534
- "label": "Sprints",
3535
- "href": "/sprints",
3536
- "icon": "zap"
3537
- },
3538
- {
3539
- "label": "Burndown",
3540
- "href": "/burndown",
3541
- "icon": "layout-list"
3542
- }
3543
- ],
3544
4450
  "children": [
3545
4451
  {
3546
4452
  "type": "scaled-diagram",
3547
4453
  "children": [
3548
4454
  {
3549
- "type": "stack",
3550
4455
  "direction": "vertical",
4456
+ "type": "stack",
3551
4457
  "gap": "lg",
3552
4458
  "children": [
3553
4459
  {
3554
- "type": "breadcrumb",
3555
4460
  "items": [
3556
4461
  {
3557
- "label": "Home",
3558
- "href": "/"
4462
+ "href": "/",
4463
+ "label": "Home"
3559
4464
  },
3560
4465
  {
3561
4466
  "label": "Burndown Chart"
3562
4467
  }
3563
- ]
4468
+ ],
4469
+ "type": "breadcrumb"
3564
4470
  },
3565
4471
  {
3566
- "type": "stack",
3567
- "direction": "horizontal",
3568
- "gap": "md",
3569
- "justify": "space-between",
3570
4472
  "children": [
3571
4473
  {
3572
- "type": "stack",
3573
- "direction": "horizontal",
3574
4474
  "gap": "md",
4475
+ "direction": "horizontal",
3575
4476
  "children": [
3576
4477
  {
3577
- "type": "icon",
3578
4478
  "name": "trending-down",
3579
- "size": "lg"
4479
+ "size": "lg",
4480
+ "type": "icon"
3580
4481
  },
3581
4482
  {
3582
- "type": "typography",
4483
+ "variant": "h2",
3583
4484
  "content": "Burndown Chart",
3584
- "variant": "h2"
4485
+ "type": "typography"
3585
4486
  }
3586
- ]
4487
+ ],
4488
+ "type": "stack"
3587
4489
  },
3588
4490
  {
3589
- "type": "button",
3590
- "label": "Refresh",
3591
4491
  "event": "REFRESH",
3592
- "variant": "secondary",
3593
- "icon": "refresh-cw"
4492
+ "label": "Refresh",
4493
+ "icon": "refresh-cw",
4494
+ "type": "button",
4495
+ "variant": "secondary"
3594
4496
  }
3595
- ]
4497
+ ],
4498
+ "direction": "horizontal",
4499
+ "type": "stack",
4500
+ "gap": "md",
4501
+ "justify": "space-between"
3596
4502
  },
3597
4503
  {
3598
4504
  "type": "divider"
3599
4505
  },
3600
4506
  {
3601
- "type": "box",
3602
- "padding": "md",
3603
4507
  "children": [
3604
4508
  {
3605
4509
  "type": "simple-grid",
3606
- "columns": 5,
4510
+ "columns": 5.0,
3607
4511
  "children": [
3608
4512
  {
3609
- "type": "stat-display",
3610
- "label": "TotalPoints",
3611
4513
  "value": [
3612
4514
  "object/get",
3613
4515
  [
@@ -3615,11 +4517,12 @@
3615
4517
  "@entity"
3616
4518
  ],
3617
4519
  "totalPoints"
3618
- ]
4520
+ ],
4521
+ "type": "stat-display",
4522
+ "label": "TotalPoints"
3619
4523
  },
3620
4524
  {
3621
4525
  "type": "stat-display",
3622
- "label": "CompletedPoints",
3623
4526
  "value": [
3624
4527
  "object/get",
3625
4528
  [
@@ -3627,11 +4530,11 @@
3627
4530
  "@entity"
3628
4531
  ],
3629
4532
  "completedPoints"
3630
- ]
4533
+ ],
4534
+ "label": "CompletedPoints"
3631
4535
  },
3632
4536
  {
3633
4537
  "type": "stat-display",
3634
- "label": "RemainingPoints",
3635
4538
  "value": [
3636
4539
  "object/get",
3637
4540
  [
@@ -3639,10 +4542,10 @@
3639
4542
  "@entity"
3640
4543
  ],
3641
4544
  "remainingPoints"
3642
- ]
4545
+ ],
4546
+ "label": "RemainingPoints"
3643
4547
  },
3644
4548
  {
3645
- "type": "stat-display",
3646
4549
  "label": "Velocity",
3647
4550
  "value": [
3648
4551
  "object/get",
@@ -3651,7 +4554,8 @@
3651
4554
  "@entity"
3652
4555
  ],
3653
4556
  "velocity"
3654
- ]
4557
+ ],
4558
+ "type": "stat-display"
3655
4559
  },
3656
4560
  {
3657
4561
  "type": "stat-display",
@@ -3667,69 +4571,71 @@
3667
4571
  }
3668
4572
  ]
3669
4573
  }
3670
- ]
4574
+ ],
4575
+ "padding": "md",
4576
+ "type": "box"
3671
4577
  },
3672
4578
  {
3673
4579
  "type": "divider"
3674
4580
  },
3675
4581
  {
3676
- "type": "grid",
3677
- "columns": 2,
3678
4582
  "gap": "md",
4583
+ "type": "grid",
4584
+ "columns": 2.0,
3679
4585
  "children": [
3680
4586
  {
3681
- "type": "card",
3682
4587
  "children": [
3683
4588
  {
3684
- "type": "typography",
3685
4589
  "variant": "caption",
3686
- "content": "Chart View"
4590
+ "content": "Chart View",
4591
+ "type": "typography"
3687
4592
  }
3688
- ]
4593
+ ],
4594
+ "type": "card"
3689
4595
  },
3690
4596
  {
3691
- "type": "card",
3692
4597
  "children": [
3693
4598
  {
3694
4599
  "type": "typography",
3695
- "variant": "caption",
3696
- "content": "Graph View"
4600
+ "content": "Graph View",
4601
+ "variant": "caption"
3697
4602
  }
3698
- ]
4603
+ ],
4604
+ "type": "card"
3699
4605
  }
3700
4606
  ]
3701
4607
  },
3702
4608
  {
4609
+ "yKey": "value",
3703
4610
  "type": "line-chart",
3704
4611
  "data": [
3705
4612
  {
3706
4613
  "date": "Jan",
3707
- "value": 12
4614
+ "value": 12.0
3708
4615
  },
3709
4616
  {
3710
4617
  "date": "Feb",
3711
- "value": 19
4618
+ "value": 19.0
3712
4619
  },
3713
4620
  {
3714
4621
  "date": "Mar",
3715
- "value": 15
4622
+ "value": 15.0
3716
4623
  },
3717
4624
  {
3718
4625
  "date": "Apr",
3719
- "value": 25
4626
+ "value": 25.0
3720
4627
  },
3721
4628
  {
3722
- "date": "May",
3723
- "value": 22
4629
+ "value": 22.0,
4630
+ "date": "May"
3724
4631
  },
3725
4632
  {
3726
- "date": "Jun",
3727
- "value": 30
4633
+ "value": 30.0,
4634
+ "date": "Jun"
3728
4635
  }
3729
4636
  ],
3730
- "xKey": "date",
3731
- "yKey": "value",
3732
- "title": "Trend"
4637
+ "title": "Trend",
4638
+ "xKey": "date"
3733
4639
  },
3734
4640
  {
3735
4641
  "type": "chart-legend",
@@ -3748,41 +4654,59 @@
3748
4654
  "type": "graph-view",
3749
4655
  "nodes": [
3750
4656
  {
4657
+ "x": 50.0,
3751
4658
  "id": "a",
3752
4659
  "label": "Start",
3753
- "x": 50,
3754
- "y": 100
4660
+ "y": 100.0
3755
4661
  },
3756
4662
  {
3757
- "id": "b",
4663
+ "x": 200.0,
4664
+ "y": 50.0,
3758
4665
  "label": "Process",
3759
- "x": 200,
3760
- "y": 50
4666
+ "id": "b"
3761
4667
  },
3762
4668
  {
3763
4669
  "id": "c",
3764
- "label": "End",
3765
- "x": 350,
3766
- "y": 100
4670
+ "y": 100.0,
4671
+ "x": 350.0,
4672
+ "label": "End"
3767
4673
  }
3768
4674
  ],
3769
4675
  "edges": [
3770
4676
  {
3771
- "from": "a",
3772
- "to": "b"
4677
+ "to": "b",
4678
+ "from": "a"
3773
4679
  },
3774
4680
  {
3775
4681
  "from": "b",
3776
4682
  "to": "c"
3777
4683
  }
3778
4684
  ],
3779
- "width": 400,
3780
- "height": 200
4685
+ "width": 400.0,
4686
+ "height": 200.0
3781
4687
  }
3782
4688
  ]
3783
4689
  }
3784
4690
  ]
3785
4691
  }
4692
+ ],
4693
+ "appName": "ProjectManagerApp",
4694
+ "navItems": [
4695
+ {
4696
+ "label": "Tasks",
4697
+ "href": "/tasks",
4698
+ "icon": "check-square"
4699
+ },
4700
+ {
4701
+ "href": "/sprints",
4702
+ "icon": "zap",
4703
+ "label": "Sprints"
4704
+ },
4705
+ {
4706
+ "icon": "layout-list",
4707
+ "label": "Burndown",
4708
+ "href": "/burndown"
4709
+ }
3786
4710
  ]
3787
4711
  }
3788
4712
  ]
@@ -3790,18 +4714,12 @@
3790
4714
  }
3791
4715
  ]
3792
4716
  },
3793
- "listens": [
3794
- {
3795
- "event": "COMPLETE_SPRINT",
3796
- "triggers": "INIT",
3797
- "scope": "external"
3798
- }
3799
- ]
4717
+ "scope": "collection"
3800
4718
  }
3801
4719
  ],
3802
4720
  "pages": [
3803
4721
  {
3804
- "name": "BurndownPage",
4722
+ "name": "Burndown",
3805
4723
  "path": "/burndown",
3806
4724
  "traits": [
3807
4725
  {
@@ -3812,4 +4730,4 @@
3812
4730
  ]
3813
4731
  }
3814
4732
  ]
3815
- }
4733
+ }