@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-finance-tracker",
3
3
  "version": "1.0.0",
4
- "description": "Finance tracker organism. Composes: stdList(Transaction) + stdDisplay(FinanceSummary) + stdDetail(FinanceReport)",
4
+ "description": "std-finance-tracker as a Function",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "TransactionOrbital",
8
8
  "entity": {
9
9
  "name": "Transaction",
10
- "persistence": "persistent",
11
10
  "collection": "transactions",
11
+ "persistence": "persistent",
12
12
  "fields": [
13
13
  {
14
14
  "name": "id",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "name": "date",
34
- "type": "date"
34
+ "type": "datetime"
35
35
  },
36
36
  {
37
37
  "name": "pendingId",
@@ -43,23 +43,79 @@
43
43
  "traits": [
44
44
  {
45
45
  "name": "TransactionBrowse",
46
- "linkedEntity": "Transaction",
47
46
  "category": "interaction",
47
+ "linkedEntity": "Transaction",
48
+ "emits": [
49
+ {
50
+ "event": "TransactionLoaded",
51
+ "description": "Fired when Transaction finishes loading",
52
+ "scope": "internal",
53
+ "payload": [
54
+ {
55
+ "name": "id",
56
+ "type": "string",
57
+ "required": true
58
+ },
59
+ {
60
+ "name": "description",
61
+ "type": "string",
62
+ "required": true
63
+ },
64
+ {
65
+ "name": "amount",
66
+ "type": "number",
67
+ "required": true
68
+ },
69
+ {
70
+ "name": "category",
71
+ "type": "string"
72
+ },
73
+ {
74
+ "name": "date",
75
+ "type": "datetime"
76
+ },
77
+ {
78
+ "name": "pendingId",
79
+ "type": "string"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "event": "TransactionLoadFailed",
85
+ "description": "Fired when Transaction fails to load",
86
+ "scope": "internal",
87
+ "payload": [
88
+ {
89
+ "name": "message",
90
+ "type": "string"
91
+ }
92
+ ]
93
+ }
94
+ ],
48
95
  "listens": [
49
96
  {
50
97
  "event": "TRANSACTION_CREATED",
51
98
  "triggers": "INIT",
52
- "scope": "external"
99
+ "source": {
100
+ "kind": "trait",
101
+ "trait": "TransactionCreate"
102
+ }
53
103
  },
54
104
  {
55
105
  "event": "TRANSACTION_UPDATED",
56
106
  "triggers": "INIT",
57
- "scope": "external"
107
+ "source": {
108
+ "kind": "trait",
109
+ "trait": "TransactionEdit"
110
+ }
58
111
  },
59
112
  {
60
113
  "event": "TRANSACTION_DELETED",
61
114
  "triggers": "INIT",
62
- "scope": "external"
115
+ "source": {
116
+ "kind": "trait",
117
+ "trait": "TransactionDelete"
118
+ }
63
119
  }
64
120
  ],
65
121
  "stateMachine": {
@@ -75,12 +131,22 @@
75
131
  "name": "Initialize"
76
132
  },
77
133
  {
78
- "key": "CREATE",
79
- "name": "CREATE"
134
+ "key": "TransactionLoaded",
135
+ "name": "Transaction loaded"
136
+ },
137
+ {
138
+ "key": "TransactionLoadFailed",
139
+ "name": "Transaction load failed",
140
+ "payload": [
141
+ {
142
+ "name": "message",
143
+ "type": "string"
144
+ }
145
+ ]
80
146
  },
81
147
  {
82
148
  "key": "VIEW",
83
- "name": "VIEW",
149
+ "name": "View",
84
150
  "payload": [
85
151
  {
86
152
  "name": "id",
@@ -95,7 +161,7 @@
95
161
  },
96
162
  {
97
163
  "key": "EDIT",
98
- "name": "EDIT",
164
+ "name": "Edit",
99
165
  "payload": [
100
166
  {
101
167
  "name": "id",
@@ -110,7 +176,7 @@
110
176
  },
111
177
  {
112
178
  "key": "DELETE",
113
- "name": "DELETE",
179
+ "name": "Delete",
114
180
  "payload": [
115
181
  {
116
182
  "name": "id",
@@ -138,44 +204,18 @@
138
204
  "render-ui",
139
205
  "main",
140
206
  {
141
- "type": "dashboard-layout",
142
- "appName": "Finance Tracker",
143
- "navItems": [
144
- {
145
- "label": "Transactions",
146
- "href": "/transactions",
147
- "icon": "dollar-sign"
148
- },
149
- {
150
- "label": "Summary",
151
- "href": "/summary",
152
- "icon": "layout-list"
153
- },
154
- {
155
- "label": "Reports",
156
- "href": "/reports",
157
- "icon": "bar-chart"
158
- }
159
- ],
160
207
  "children": [
161
208
  {
162
- "type": "stack",
163
209
  "direction": "vertical",
164
210
  "gap": "lg",
165
- "className": "max-w-5xl mx-auto w-full",
166
211
  "children": [
167
212
  {
213
+ "align": "center",
168
214
  "type": "stack",
169
215
  "direction": "horizontal",
170
216
  "gap": "md",
171
- "justify": "space-between",
172
- "align": "center",
173
217
  "children": [
174
218
  {
175
- "type": "stack",
176
- "direction": "horizontal",
177
- "gap": "sm",
178
- "align": "center",
179
219
  "children": [
180
220
  {
181
221
  "type": "icon",
@@ -184,102 +224,176 @@
184
224
  },
185
225
  {
186
226
  "type": "typography",
187
- "content": "Transactions",
188
- "variant": "h2"
227
+ "variant": "h2",
228
+ "content": "Transactions"
189
229
  }
190
- ]
230
+ ],
231
+ "type": "stack",
232
+ "direction": "horizontal",
233
+ "gap": "sm",
234
+ "align": "center"
191
235
  },
192
236
  {
193
237
  "type": "stack",
194
- "direction": "horizontal",
195
238
  "gap": "sm",
239
+ "direction": "horizontal",
196
240
  "children": [
197
241
  {
198
- "type": "button",
242
+ "variant": "primary",
199
243
  "label": "Create Transaction",
200
244
  "event": "CREATE",
201
- "variant": "primary",
202
- "icon": "plus"
245
+ "icon": "plus",
246
+ "type": "button"
203
247
  }
204
248
  ]
205
249
  }
206
- ]
250
+ ],
251
+ "justify": "space-between"
207
252
  },
208
253
  {
209
254
  "type": "divider"
210
255
  },
211
256
  {
212
- "type": "data-list",
213
257
  "entity": "Transaction",
214
- "emptyIcon": "inbox",
215
258
  "emptyTitle": "No transactions yet",
216
- "emptyDescription": "Record your first transaction.",
217
259
  "itemActions": [
218
260
  {
219
- "label": "View",
220
- "event": "VIEW",
261
+ "size": "sm",
221
262
  "variant": "ghost",
222
- "size": "sm"
263
+ "label": "View",
264
+ "event": "VIEW"
223
265
  },
224
266
  {
225
- "label": "Edit",
226
- "event": "EDIT",
227
267
  "variant": "ghost",
268
+ "event": "EDIT",
269
+ "label": "Edit",
228
270
  "size": "sm"
229
271
  },
230
272
  {
231
- "label": "Delete",
232
273
  "event": "DELETE",
274
+ "label": "Delete",
233
275
  "variant": "danger",
234
276
  "size": "sm"
235
277
  }
236
278
  ],
279
+ "variant": "card",
280
+ "emptyDescription": "Record your first transaction.",
281
+ "emptyIcon": "inbox",
237
282
  "columns": [
238
283
  {
239
- "name": "description",
284
+ "icon": "credit-card",
240
285
  "variant": "h3",
241
- "icon": "credit-card"
286
+ "name": "description"
242
287
  },
243
288
  {
244
- "name": "category",
245
- "variant": "badge"
289
+ "variant": "badge",
290
+ "name": "category"
246
291
  },
247
292
  {
293
+ "format": "currency",
248
294
  "name": "amount",
249
- "variant": "h4",
250
- "format": "currency"
295
+ "variant": "h4"
251
296
  },
252
297
  {
298
+ "format": "date",
253
299
  "name": "date",
254
- "variant": "caption",
255
- "format": "date"
300
+ "variant": "caption"
256
301
  }
257
302
  ],
258
- "variant": "card",
303
+ "type": "data-list",
259
304
  "gap": "sm"
260
305
  }
261
- ]
306
+ ],
307
+ "className": "max-w-5xl mx-auto w-full",
308
+ "type": "stack"
262
309
  }
263
- ]
310
+ ],
311
+ "type": "dashboard-layout",
312
+ "navItems": [
313
+ {
314
+ "icon": "dollar-sign",
315
+ "label": "Transactions",
316
+ "href": "/transactions"
317
+ },
318
+ {
319
+ "label": "Summary",
320
+ "href": "/summary",
321
+ "icon": "layout-list"
322
+ },
323
+ {
324
+ "icon": "bar-chart",
325
+ "label": "Reports",
326
+ "href": "/reports"
327
+ }
328
+ ],
329
+ "appName": "Finance Tracker"
264
330
  }
265
331
  ]
266
332
  ]
267
333
  }
268
334
  ]
269
- }
335
+ },
336
+ "scope": "collection"
270
337
  },
271
338
  {
272
339
  "name": "TransactionCreate",
273
- "linkedEntity": "Transaction",
274
340
  "category": "interaction",
341
+ "linkedEntity": "Transaction",
275
342
  "emits": [
276
343
  {
277
- "event": "SAVE",
278
- "scope": "internal"
344
+ "event": "TRANSACTION_CREATED",
345
+ "scope": "external",
346
+ "payload": [
347
+ {
348
+ "name": "id",
349
+ "type": "string"
350
+ }
351
+ ]
279
352
  },
280
353
  {
281
- "event": "TRANSACTION_CREATED",
282
- "scope": "external"
354
+ "event": "TransactionLoaded",
355
+ "description": "Fired when Transaction finishes loading",
356
+ "scope": "internal",
357
+ "payload": [
358
+ {
359
+ "name": "id",
360
+ "type": "string",
361
+ "required": true
362
+ },
363
+ {
364
+ "name": "description",
365
+ "type": "string",
366
+ "required": true
367
+ },
368
+ {
369
+ "name": "amount",
370
+ "type": "number",
371
+ "required": true
372
+ },
373
+ {
374
+ "name": "category",
375
+ "type": "string"
376
+ },
377
+ {
378
+ "name": "date",
379
+ "type": "datetime"
380
+ },
381
+ {
382
+ "name": "pendingId",
383
+ "type": "string"
384
+ }
385
+ ]
386
+ },
387
+ {
388
+ "event": "TransactionLoadFailed",
389
+ "description": "Fired when Transaction fails to load",
390
+ "scope": "internal",
391
+ "payload": [
392
+ {
393
+ "name": "message",
394
+ "type": "string"
395
+ }
396
+ ]
283
397
  }
284
398
  ],
285
399
  "stateMachine": {
@@ -299,7 +413,7 @@
299
413
  },
300
414
  {
301
415
  "key": "CREATE",
302
- "name": "Open"
416
+ "name": "Create"
303
417
  },
304
418
  {
305
419
  "key": "CLOSE",
@@ -315,6 +429,24 @@
315
429
  "required": true
316
430
  }
317
431
  ]
432
+ },
433
+ {
434
+ "key": "TRANSACTION_CREATED",
435
+ "name": "Transaction Created"
436
+ },
437
+ {
438
+ "key": "TransactionLoaded",
439
+ "name": "Transaction loaded"
440
+ },
441
+ {
442
+ "key": "TransactionLoadFailed",
443
+ "name": "Transaction load failed",
444
+ "payload": [
445
+ {
446
+ "name": "message",
447
+ "type": "string"
448
+ }
449
+ ]
318
450
  }
319
451
  ],
320
452
  "transitions": [
@@ -336,50 +468,56 @@
336
468
  "effects": [
337
469
  [
338
470
  "fetch",
339
- "Transaction"
471
+ "Transaction",
472
+ {
473
+ "emit": {
474
+ "success": "TransactionLoaded",
475
+ "failure": "TransactionLoadFailed"
476
+ }
477
+ }
340
478
  ],
341
479
  [
342
480
  "render-ui",
343
481
  "modal",
344
482
  {
345
- "type": "stack",
346
483
  "direction": "vertical",
347
- "gap": "md",
348
484
  "children": [
349
485
  {
350
- "type": "stack",
351
486
  "direction": "horizontal",
352
- "gap": "sm",
353
487
  "children": [
354
488
  {
489
+ "size": "md",
355
490
  "type": "icon",
356
- "name": "plus-circle",
357
- "size": "md"
491
+ "name": "plus-circle"
358
492
  },
359
493
  {
360
- "type": "typography",
361
494
  "content": "Create Transaction",
495
+ "type": "typography",
362
496
  "variant": "h3"
363
497
  }
364
- ]
498
+ ],
499
+ "type": "stack",
500
+ "gap": "sm"
365
501
  },
366
502
  {
367
503
  "type": "divider"
368
504
  },
369
505
  {
370
- "type": "form-section",
371
- "entity": "Transaction",
372
- "mode": "create",
373
506
  "submitEvent": "SAVE",
507
+ "mode": "create",
508
+ "entity": "Transaction",
374
509
  "cancelEvent": "CLOSE",
375
510
  "fields": [
376
511
  "description",
377
512
  "amount",
378
513
  "category",
379
514
  "date"
380
- ]
515
+ ],
516
+ "type": "form-section"
381
517
  }
382
- ]
518
+ ],
519
+ "gap": "md",
520
+ "type": "stack"
383
521
  }
384
522
  ]
385
523
  ]
@@ -394,6 +532,13 @@
394
532
  "modal",
395
533
  null
396
534
  ],
535
+ [
536
+ "render-ui",
537
+ "main",
538
+ {
539
+ "type": "box"
540
+ }
541
+ ],
397
542
  [
398
543
  "notify",
399
544
  "Cancelled",
@@ -417,6 +562,13 @@
417
562
  "modal",
418
563
  null
419
564
  ],
565
+ [
566
+ "render-ui",
567
+ "main",
568
+ {
569
+ "type": "box"
570
+ }
571
+ ],
420
572
  [
421
573
  "emit",
422
574
  "TRANSACTION_CREATED"
@@ -424,20 +576,68 @@
424
576
  ]
425
577
  }
426
578
  ]
427
- }
579
+ },
580
+ "scope": "collection"
428
581
  },
429
582
  {
430
583
  "name": "TransactionEdit",
431
- "linkedEntity": "Transaction",
432
584
  "category": "interaction",
585
+ "linkedEntity": "Transaction",
433
586
  "emits": [
434
587
  {
435
- "event": "SAVE",
436
- "scope": "internal"
588
+ "event": "TRANSACTION_UPDATED",
589
+ "scope": "external",
590
+ "payload": [
591
+ {
592
+ "name": "id",
593
+ "type": "string"
594
+ }
595
+ ]
437
596
  },
438
597
  {
439
- "event": "TRANSACTION_UPDATED",
440
- "scope": "external"
598
+ "event": "TransactionLoaded",
599
+ "description": "Fired when Transaction finishes loading",
600
+ "scope": "internal",
601
+ "payload": [
602
+ {
603
+ "name": "id",
604
+ "type": "string",
605
+ "required": true
606
+ },
607
+ {
608
+ "name": "description",
609
+ "type": "string",
610
+ "required": true
611
+ },
612
+ {
613
+ "name": "amount",
614
+ "type": "number",
615
+ "required": true
616
+ },
617
+ {
618
+ "name": "category",
619
+ "type": "string"
620
+ },
621
+ {
622
+ "name": "date",
623
+ "type": "datetime"
624
+ },
625
+ {
626
+ "name": "pendingId",
627
+ "type": "string"
628
+ }
629
+ ]
630
+ },
631
+ {
632
+ "event": "TransactionLoadFailed",
633
+ "description": "Fired when Transaction fails to load",
634
+ "scope": "internal",
635
+ "payload": [
636
+ {
637
+ "name": "message",
638
+ "type": "string"
639
+ }
640
+ ]
441
641
  }
442
642
  ],
443
643
  "stateMachine": {
@@ -457,7 +657,7 @@
457
657
  },
458
658
  {
459
659
  "key": "EDIT",
460
- "name": "Open",
660
+ "name": "Edit",
461
661
  "payload": [
462
662
  {
463
663
  "name": "id",
@@ -480,6 +680,24 @@
480
680
  "required": true
481
681
  }
482
682
  ]
683
+ },
684
+ {
685
+ "key": "TRANSACTION_UPDATED",
686
+ "name": "Transaction Updated"
687
+ },
688
+ {
689
+ "key": "TransactionLoaded",
690
+ "name": "Transaction loaded"
691
+ },
692
+ {
693
+ "key": "TransactionLoadFailed",
694
+ "name": "Transaction load failed",
695
+ "payload": [
696
+ {
697
+ "name": "message",
698
+ "type": "string"
699
+ }
700
+ ]
483
701
  }
484
702
  ],
485
703
  "transitions": [
@@ -503,7 +721,11 @@
503
721
  "fetch",
504
722
  "Transaction",
505
723
  {
506
- "id": "@payload.id"
724
+ "id": "@payload.id",
725
+ "emit": {
726
+ "success": "TransactionLoaded",
727
+ "failure": "TransactionLoadFailed"
728
+ }
507
729
  }
508
730
  ],
509
731
  [
@@ -515,9 +737,8 @@
515
737
  "gap": "md",
516
738
  "children": [
517
739
  {
518
- "type": "stack",
519
- "direction": "horizontal",
520
740
  "gap": "sm",
741
+ "direction": "horizontal",
521
742
  "children": [
522
743
  {
523
744
  "type": "icon",
@@ -526,27 +747,28 @@
526
747
  },
527
748
  {
528
749
  "type": "typography",
529
- "content": "Edit Transaction",
530
- "variant": "h3"
750
+ "variant": "h3",
751
+ "content": "Edit Transaction"
531
752
  }
532
- ]
753
+ ],
754
+ "type": "stack"
533
755
  },
534
756
  {
535
757
  "type": "divider"
536
758
  },
537
759
  {
760
+ "entityId": "@entity.id",
538
761
  "type": "form-section",
539
762
  "entity": "Transaction",
540
763
  "mode": "edit",
541
- "submitEvent": "SAVE",
542
764
  "cancelEvent": "CLOSE",
765
+ "submitEvent": "SAVE",
543
766
  "fields": [
544
767
  "description",
545
768
  "amount",
546
769
  "category",
547
770
  "date"
548
- ],
549
- "entityId": "@entity.id"
771
+ ]
550
772
  }
551
773
  ]
552
774
  }
@@ -563,6 +785,13 @@
563
785
  "modal",
564
786
  null
565
787
  ],
788
+ [
789
+ "render-ui",
790
+ "main",
791
+ {
792
+ "type": "box"
793
+ }
794
+ ],
566
795
  [
567
796
  "notify",
568
797
  "Cancelled",
@@ -586,6 +815,13 @@
586
815
  "modal",
587
816
  null
588
817
  ],
818
+ [
819
+ "render-ui",
820
+ "main",
821
+ {
822
+ "type": "box"
823
+ }
824
+ ],
589
825
  [
590
826
  "emit",
591
827
  "TRANSACTION_UPDATED"
@@ -593,16 +829,58 @@
593
829
  ]
594
830
  }
595
831
  ]
596
- }
832
+ },
833
+ "scope": "collection"
597
834
  },
598
835
  {
599
836
  "name": "TransactionView",
600
- "linkedEntity": "Transaction",
601
837
  "category": "interaction",
838
+ "linkedEntity": "Transaction",
602
839
  "emits": [
603
840
  {
604
- "event": "SAVE",
605
- "scope": "internal"
841
+ "event": "TransactionLoaded",
842
+ "description": "Fired when Transaction finishes loading",
843
+ "scope": "internal",
844
+ "payload": [
845
+ {
846
+ "name": "id",
847
+ "type": "string",
848
+ "required": true
849
+ },
850
+ {
851
+ "name": "description",
852
+ "type": "string",
853
+ "required": true
854
+ },
855
+ {
856
+ "name": "amount",
857
+ "type": "number",
858
+ "required": true
859
+ },
860
+ {
861
+ "name": "category",
862
+ "type": "string"
863
+ },
864
+ {
865
+ "name": "date",
866
+ "type": "datetime"
867
+ },
868
+ {
869
+ "name": "pendingId",
870
+ "type": "string"
871
+ }
872
+ ]
873
+ },
874
+ {
875
+ "event": "TransactionLoadFailed",
876
+ "description": "Fired when Transaction fails to load",
877
+ "scope": "internal",
878
+ "payload": [
879
+ {
880
+ "name": "message",
881
+ "type": "string"
882
+ }
883
+ ]
606
884
  }
607
885
  ],
608
886
  "stateMachine": {
@@ -622,7 +900,7 @@
622
900
  },
623
901
  {
624
902
  "key": "VIEW",
625
- "name": "Open",
903
+ "name": "View",
626
904
  "payload": [
627
905
  {
628
906
  "name": "id",
@@ -645,6 +923,20 @@
645
923
  "required": true
646
924
  }
647
925
  ]
926
+ },
927
+ {
928
+ "key": "TransactionLoaded",
929
+ "name": "Transaction loaded"
930
+ },
931
+ {
932
+ "key": "TransactionLoadFailed",
933
+ "name": "Transaction load failed",
934
+ "payload": [
935
+ {
936
+ "name": "message",
937
+ "type": "string"
938
+ }
939
+ ]
648
940
  }
649
941
  ],
650
942
  "transitions": [
@@ -668,7 +960,11 @@
668
960
  "fetch",
669
961
  "Transaction",
670
962
  {
671
- "id": "@payload.id"
963
+ "id": "@payload.id",
964
+ "emit": {
965
+ "failure": "TransactionLoadFailed",
966
+ "success": "TransactionLoaded"
967
+ }
672
968
  }
673
969
  ],
674
970
  [
@@ -677,38 +973,37 @@
677
973
  {
678
974
  "type": "stack",
679
975
  "direction": "vertical",
680
- "gap": "md",
681
976
  "children": [
682
977
  {
683
978
  "type": "stack",
684
- "direction": "horizontal",
685
979
  "gap": "sm",
686
- "align": "center",
687
980
  "children": [
688
981
  {
689
- "type": "icon",
690
982
  "name": "eye",
691
- "size": "md"
983
+ "size": "md",
984
+ "type": "icon"
692
985
  },
693
986
  {
694
987
  "type": "typography",
695
- "variant": "h3",
696
- "content": "@entity.description"
988
+ "content": "@entity.description",
989
+ "variant": "h3"
697
990
  }
698
- ]
991
+ ],
992
+ "align": "center",
993
+ "direction": "horizontal"
699
994
  },
700
995
  {
701
996
  "type": "divider"
702
997
  },
703
998
  {
704
999
  "type": "stack",
705
- "direction": "horizontal",
706
1000
  "gap": "md",
1001
+ "direction": "horizontal",
707
1002
  "children": [
708
1003
  {
709
1004
  "type": "typography",
710
- "variant": "caption",
711
- "content": "Description"
1005
+ "content": "Description",
1006
+ "variant": "caption"
712
1007
  },
713
1008
  {
714
1009
  "type": "typography",
@@ -718,48 +1013,48 @@
718
1013
  ]
719
1014
  },
720
1015
  {
721
- "type": "stack",
722
- "direction": "horizontal",
723
- "gap": "md",
724
1016
  "children": [
725
1017
  {
726
- "type": "typography",
727
1018
  "variant": "caption",
1019
+ "type": "typography",
728
1020
  "content": "Amount"
729
1021
  },
730
1022
  {
731
- "type": "typography",
732
1023
  "variant": "body",
1024
+ "type": "typography",
733
1025
  "content": "@entity.amount"
734
1026
  }
735
- ]
736
- },
737
- {
738
- "type": "stack",
1027
+ ],
739
1028
  "direction": "horizontal",
740
1029
  "gap": "md",
1030
+ "type": "stack"
1031
+ },
1032
+ {
741
1033
  "children": [
742
1034
  {
743
- "type": "typography",
744
1035
  "variant": "caption",
745
- "content": "Category"
1036
+ "content": "Category",
1037
+ "type": "typography"
746
1038
  },
747
1039
  {
748
- "type": "typography",
749
1040
  "variant": "body",
750
- "content": "@entity.category"
1041
+ "content": "@entity.category",
1042
+ "type": "typography"
751
1043
  }
752
- ]
1044
+ ],
1045
+ "type": "stack",
1046
+ "direction": "horizontal",
1047
+ "gap": "md"
753
1048
  },
754
1049
  {
755
- "type": "stack",
756
1050
  "direction": "horizontal",
757
1051
  "gap": "md",
1052
+ "type": "stack",
758
1053
  "children": [
759
1054
  {
1055
+ "content": "Date",
760
1056
  "type": "typography",
761
- "variant": "caption",
762
- "content": "Date"
1057
+ "variant": "caption"
763
1058
  },
764
1059
  {
765
1060
  "type": "typography",
@@ -772,16 +1067,14 @@
772
1067
  "type": "divider"
773
1068
  },
774
1069
  {
775
- "type": "stack",
776
- "direction": "horizontal",
777
1070
  "gap": "sm",
778
- "justify": "end",
1071
+ "type": "stack",
779
1072
  "children": [
780
1073
  {
781
- "type": "button",
782
1074
  "label": "Edit",
783
- "event": "EDIT",
1075
+ "type": "button",
784
1076
  "variant": "primary",
1077
+ "event": "EDIT",
785
1078
  "icon": "edit"
786
1079
  },
787
1080
  {
@@ -790,9 +1083,12 @@
790
1083
  "event": "CLOSE",
791
1084
  "variant": "ghost"
792
1085
  }
793
- ]
1086
+ ],
1087
+ "direction": "horizontal",
1088
+ "justify": "end"
794
1089
  }
795
- ]
1090
+ ],
1091
+ "gap": "md"
796
1092
  }
797
1093
  ]
798
1094
  ]
@@ -807,6 +1103,13 @@
807
1103
  "modal",
808
1104
  null
809
1105
  ],
1106
+ [
1107
+ "render-ui",
1108
+ "main",
1109
+ {
1110
+ "type": "box"
1111
+ }
1112
+ ],
810
1113
  [
811
1114
  "notify",
812
1115
  "Cancelled",
@@ -823,24 +1126,79 @@
823
1126
  "render-ui",
824
1127
  "modal",
825
1128
  null
1129
+ ],
1130
+ [
1131
+ "render-ui",
1132
+ "main",
1133
+ {
1134
+ "type": "box"
1135
+ }
826
1136
  ]
827
1137
  ]
828
1138
  }
829
1139
  ]
830
- }
1140
+ },
1141
+ "scope": "collection"
831
1142
  },
832
1143
  {
833
1144
  "name": "TransactionDelete",
834
- "linkedEntity": "Transaction",
835
1145
  "category": "interaction",
1146
+ "linkedEntity": "Transaction",
836
1147
  "emits": [
837
1148
  {
838
- "event": "CONFIRM_DELETE",
839
- "scope": "internal"
1149
+ "event": "TRANSACTION_DELETED",
1150
+ "scope": "external",
1151
+ "payload": [
1152
+ {
1153
+ "name": "id",
1154
+ "type": "string"
1155
+ }
1156
+ ]
840
1157
  },
841
1158
  {
842
- "event": "TRANSACTION_DELETED",
843
- "scope": "external"
1159
+ "event": "TransactionLoaded",
1160
+ "description": "Fired when Transaction finishes loading",
1161
+ "scope": "internal",
1162
+ "payload": [
1163
+ {
1164
+ "name": "id",
1165
+ "type": "string",
1166
+ "required": true
1167
+ },
1168
+ {
1169
+ "name": "description",
1170
+ "type": "string",
1171
+ "required": true
1172
+ },
1173
+ {
1174
+ "name": "amount",
1175
+ "type": "number",
1176
+ "required": true
1177
+ },
1178
+ {
1179
+ "name": "category",
1180
+ "type": "string"
1181
+ },
1182
+ {
1183
+ "name": "date",
1184
+ "type": "datetime"
1185
+ },
1186
+ {
1187
+ "name": "pendingId",
1188
+ "type": "string"
1189
+ }
1190
+ ]
1191
+ },
1192
+ {
1193
+ "event": "TransactionLoadFailed",
1194
+ "description": "Fired when Transaction fails to load",
1195
+ "scope": "internal",
1196
+ "payload": [
1197
+ {
1198
+ "name": "message",
1199
+ "type": "string"
1200
+ }
1201
+ ]
844
1202
  }
845
1203
  ],
846
1204
  "stateMachine": {
@@ -860,7 +1218,7 @@
860
1218
  },
861
1219
  {
862
1220
  "key": "DELETE",
863
- "name": "Request Confirmation",
1221
+ "name": "Delete",
864
1222
  "payload": [
865
1223
  {
866
1224
  "name": "id",
@@ -871,7 +1229,7 @@
871
1229
  },
872
1230
  {
873
1231
  "key": "CONFIRM_DELETE",
874
- "name": "Confirm"
1232
+ "name": "Confirm Delete"
875
1233
  },
876
1234
  {
877
1235
  "key": "CANCEL",
@@ -880,6 +1238,24 @@
880
1238
  {
881
1239
  "key": "CLOSE",
882
1240
  "name": "Close"
1241
+ },
1242
+ {
1243
+ "key": "TRANSACTION_DELETED",
1244
+ "name": "Transaction Deleted"
1245
+ },
1246
+ {
1247
+ "key": "TransactionLoaded",
1248
+ "name": "Transaction loaded"
1249
+ },
1250
+ {
1251
+ "key": "TransactionLoadFailed",
1252
+ "name": "Transaction load failed",
1253
+ "payload": [
1254
+ {
1255
+ "name": "message",
1256
+ "type": "string"
1257
+ }
1258
+ ]
883
1259
  }
884
1260
  ],
885
1261
  "transitions": [
@@ -908,32 +1284,36 @@
908
1284
  "fetch",
909
1285
  "Transaction",
910
1286
  {
911
- "id": "@payload.id"
1287
+ "id": "@payload.id",
1288
+ "emit": {
1289
+ "success": "TransactionLoaded",
1290
+ "failure": "TransactionLoadFailed"
1291
+ }
912
1292
  }
913
1293
  ],
914
1294
  [
915
1295
  "render-ui",
916
1296
  "modal",
917
1297
  {
1298
+ "gap": "md",
918
1299
  "type": "stack",
919
1300
  "direction": "vertical",
920
- "gap": "md",
921
1301
  "children": [
922
1302
  {
923
- "type": "stack",
924
- "direction": "horizontal",
925
- "gap": "sm",
926
1303
  "align": "center",
1304
+ "gap": "sm",
1305
+ "direction": "horizontal",
1306
+ "type": "stack",
927
1307
  "children": [
928
1308
  {
929
- "type": "icon",
1309
+ "size": "md",
930
1310
  "name": "alert-triangle",
931
- "size": "md"
1311
+ "type": "icon"
932
1312
  },
933
1313
  {
934
- "type": "typography",
1314
+ "variant": "h3",
935
1315
  "content": "Delete Transaction",
936
- "variant": "h3"
1316
+ "type": "typography"
937
1317
  }
938
1318
  ]
939
1319
  },
@@ -941,27 +1321,27 @@
941
1321
  "type": "divider"
942
1322
  },
943
1323
  {
944
- "type": "alert",
945
1324
  "variant": "danger",
1325
+ "type": "alert",
946
1326
  "message": "This action cannot be undone."
947
1327
  },
948
1328
  {
949
- "type": "stack",
950
- "direction": "horizontal",
951
1329
  "gap": "sm",
952
1330
  "justify": "end",
1331
+ "type": "stack",
1332
+ "direction": "horizontal",
953
1333
  "children": [
954
1334
  {
955
- "type": "button",
956
- "label": "Cancel",
1335
+ "variant": "ghost",
957
1336
  "event": "CANCEL",
958
- "variant": "ghost"
1337
+ "type": "button",
1338
+ "label": "Cancel"
959
1339
  },
960
1340
  {
961
- "type": "button",
962
- "label": "Delete",
963
1341
  "event": "CONFIRM_DELETE",
1342
+ "type": "button",
964
1343
  "variant": "danger",
1344
+ "label": "Delete",
965
1345
  "icon": "check"
966
1346
  }
967
1347
  ]
@@ -987,6 +1367,13 @@
987
1367
  "modal",
988
1368
  null
989
1369
  ],
1370
+ [
1371
+ "render-ui",
1372
+ "main",
1373
+ {
1374
+ "type": "box"
1375
+ }
1376
+ ],
990
1377
  [
991
1378
  "ref",
992
1379
  "Transaction"
@@ -1007,6 +1394,13 @@
1007
1394
  "modal",
1008
1395
  null
1009
1396
  ],
1397
+ [
1398
+ "render-ui",
1399
+ "main",
1400
+ {
1401
+ "type": "box"
1402
+ }
1403
+ ],
1010
1404
  [
1011
1405
  "ref",
1012
1406
  "Transaction"
@@ -1023,6 +1417,13 @@
1023
1417
  "modal",
1024
1418
  null
1025
1419
  ],
1420
+ [
1421
+ "render-ui",
1422
+ "main",
1423
+ {
1424
+ "type": "box"
1425
+ }
1426
+ ],
1026
1427
  [
1027
1428
  "ref",
1028
1429
  "Transaction"
@@ -1030,14 +1431,14 @@
1030
1431
  ]
1031
1432
  }
1032
1433
  ]
1033
- }
1434
+ },
1435
+ "scope": "collection"
1034
1436
  }
1035
1437
  ],
1036
1438
  "pages": [
1037
1439
  {
1038
1440
  "name": "TransactionsPage",
1039
1441
  "path": "/transactions",
1040
- "isInitial": true,
1041
1442
  "traits": [
1042
1443
  {
1043
1444
  "ref": "TransactionBrowse"
@@ -1071,31 +1472,68 @@
1071
1472
  },
1072
1473
  {
1073
1474
  "name": "totalIncome",
1074
- "type": "number",
1075
- "default": 0
1475
+ "type": "number"
1076
1476
  },
1077
1477
  {
1078
1478
  "name": "totalExpenses",
1079
- "type": "number",
1080
- "default": 0
1479
+ "type": "number"
1081
1480
  },
1082
1481
  {
1083
1482
  "name": "balance",
1084
- "type": "number",
1085
- "default": 0
1483
+ "type": "number"
1086
1484
  },
1087
1485
  {
1088
1486
  "name": "savingsRate",
1089
- "type": "number",
1090
- "default": 0
1487
+ "type": "number"
1091
1488
  }
1092
1489
  ]
1093
1490
  },
1094
1491
  "traits": [
1095
1492
  {
1096
1493
  "name": "FinanceSummaryDisplay",
1097
- "linkedEntity": "FinanceSummary",
1098
1494
  "category": "interaction",
1495
+ "linkedEntity": "FinanceSummary",
1496
+ "emits": [
1497
+ {
1498
+ "event": "FinanceSummaryLoaded",
1499
+ "description": "Fired when FinanceSummary finishes loading",
1500
+ "scope": "internal",
1501
+ "payload": [
1502
+ {
1503
+ "name": "id",
1504
+ "type": "string",
1505
+ "required": true
1506
+ },
1507
+ {
1508
+ "name": "totalIncome",
1509
+ "type": "number"
1510
+ },
1511
+ {
1512
+ "name": "totalExpenses",
1513
+ "type": "number"
1514
+ },
1515
+ {
1516
+ "name": "balance",
1517
+ "type": "number"
1518
+ },
1519
+ {
1520
+ "name": "savingsRate",
1521
+ "type": "number"
1522
+ }
1523
+ ]
1524
+ },
1525
+ {
1526
+ "event": "FinanceSummaryLoadFailed",
1527
+ "description": "Fired when FinanceSummary fails to load",
1528
+ "scope": "internal",
1529
+ "payload": [
1530
+ {
1531
+ "name": "message",
1532
+ "type": "string"
1533
+ }
1534
+ ]
1535
+ }
1536
+ ],
1099
1537
  "stateMachine": {
1100
1538
  "states": [
1101
1539
  {
@@ -1125,6 +1563,20 @@
1125
1563
  {
1126
1564
  "key": "REFRESHED",
1127
1565
  "name": "Refreshed"
1566
+ },
1567
+ {
1568
+ "key": "FinanceSummaryLoaded",
1569
+ "name": "FinanceSummary loaded"
1570
+ },
1571
+ {
1572
+ "key": "FinanceSummaryLoadFailed",
1573
+ "name": "FinanceSummary load failed",
1574
+ "payload": [
1575
+ {
1576
+ "name": "message",
1577
+ "type": "string"
1578
+ }
1579
+ ]
1128
1580
  }
1129
1581
  ],
1130
1582
  "transitions": [
@@ -1135,42 +1587,28 @@
1135
1587
  "effects": [
1136
1588
  [
1137
1589
  "fetch",
1138
- "FinanceSummary"
1590
+ "FinanceSummary",
1591
+ {
1592
+ "emit": {
1593
+ "failure": "FinanceSummaryLoadFailed",
1594
+ "success": "FinanceSummaryLoaded"
1595
+ }
1596
+ }
1139
1597
  ],
1140
1598
  [
1141
1599
  "render-ui",
1142
1600
  "main",
1143
1601
  {
1144
- "type": "dashboard-layout",
1145
- "appName": "Finance Tracker",
1146
- "navItems": [
1147
- {
1148
- "label": "Transactions",
1149
- "href": "/transactions",
1150
- "icon": "dollar-sign"
1151
- },
1152
- {
1153
- "label": "Summary",
1154
- "href": "/summary",
1155
- "icon": "layout-list"
1156
- },
1157
- {
1158
- "label": "Reports",
1159
- "href": "/reports",
1160
- "icon": "bar-chart"
1161
- }
1162
- ],
1163
1602
  "children": [
1164
1603
  {
1165
1604
  "type": "scaled-diagram",
1166
1605
  "children": [
1167
1606
  {
1168
- "type": "stack",
1169
- "direction": "vertical",
1170
1607
  "gap": "lg",
1608
+ "direction": "vertical",
1609
+ "type": "stack",
1171
1610
  "children": [
1172
1611
  {
1173
- "type": "breadcrumb",
1174
1612
  "items": [
1175
1613
  {
1176
1614
  "label": "Home",
@@ -1179,39 +1617,40 @@
1179
1617
  {
1180
1618
  "label": "Financial Summary"
1181
1619
  }
1182
- ]
1620
+ ],
1621
+ "type": "breadcrumb"
1183
1622
  },
1184
1623
  {
1185
- "type": "stack",
1186
1624
  "direction": "horizontal",
1625
+ "type": "stack",
1187
1626
  "gap": "md",
1188
- "justify": "space-between",
1189
1627
  "children": [
1190
1628
  {
1191
- "type": "stack",
1192
1629
  "direction": "horizontal",
1630
+ "type": "stack",
1193
1631
  "gap": "md",
1194
1632
  "children": [
1195
1633
  {
1196
- "type": "icon",
1634
+ "size": "lg",
1197
1635
  "name": "pie-chart",
1198
- "size": "lg"
1636
+ "type": "icon"
1199
1637
  },
1200
1638
  {
1201
- "type": "typography",
1639
+ "variant": "h2",
1202
1640
  "content": "Financial Summary",
1203
- "variant": "h2"
1641
+ "type": "typography"
1204
1642
  }
1205
1643
  ]
1206
1644
  },
1207
1645
  {
1208
- "type": "button",
1209
- "label": "Refresh",
1646
+ "icon": "refresh-cw",
1210
1647
  "event": "REFRESH",
1648
+ "label": "Refresh",
1211
1649
  "variant": "secondary",
1212
- "icon": "refresh-cw"
1650
+ "type": "button"
1213
1651
  }
1214
- ]
1652
+ ],
1653
+ "justify": "space-between"
1215
1654
  },
1216
1655
  {
1217
1656
  "type": "divider"
@@ -1222,7 +1661,7 @@
1222
1661
  "children": [
1223
1662
  {
1224
1663
  "type": "simple-grid",
1225
- "columns": 3,
1664
+ "columns": 3.0,
1226
1665
  "children": [
1227
1666
  {
1228
1667
  "type": "stat-display",
@@ -1237,7 +1676,6 @@
1237
1676
  ]
1238
1677
  },
1239
1678
  {
1240
- "type": "stat-display",
1241
1679
  "label": "TotalExpenses",
1242
1680
  "value": [
1243
1681
  "object/get",
@@ -1246,11 +1684,12 @@
1246
1684
  "@entity"
1247
1685
  ],
1248
1686
  "totalExpenses"
1249
- ]
1687
+ ],
1688
+ "type": "stat-display"
1250
1689
  },
1251
1690
  {
1252
- "type": "stat-display",
1253
1691
  "label": "Balance",
1692
+ "type": "stat-display",
1254
1693
  "value": [
1255
1694
  "object/get",
1256
1695
  [
@@ -1261,7 +1700,6 @@
1261
1700
  ]
1262
1701
  },
1263
1702
  {
1264
- "type": "stat-display",
1265
1703
  "label": "SavingsRate",
1266
1704
  "value": [
1267
1705
  "object/get",
@@ -1270,7 +1708,8 @@
1270
1708
  "@entity"
1271
1709
  ],
1272
1710
  "savingsRate"
1273
- ]
1711
+ ],
1712
+ "type": "stat-display"
1274
1713
  }
1275
1714
  ]
1276
1715
  }
@@ -1281,69 +1720,69 @@
1281
1720
  },
1282
1721
  {
1283
1722
  "type": "grid",
1284
- "columns": 2,
1285
- "gap": "md",
1286
1723
  "children": [
1287
1724
  {
1288
- "type": "card",
1289
1725
  "children": [
1290
1726
  {
1291
- "type": "typography",
1292
1727
  "variant": "caption",
1293
- "content": "Chart View"
1728
+ "content": "Chart View",
1729
+ "type": "typography"
1294
1730
  }
1295
- ]
1731
+ ],
1732
+ "type": "card"
1296
1733
  },
1297
1734
  {
1298
- "type": "card",
1299
1735
  "children": [
1300
1736
  {
1301
- "type": "typography",
1737
+ "content": "Graph View",
1302
1738
  "variant": "caption",
1303
- "content": "Graph View"
1739
+ "type": "typography"
1304
1740
  }
1305
- ]
1741
+ ],
1742
+ "type": "card"
1306
1743
  }
1307
- ]
1744
+ ],
1745
+ "columns": 2.0,
1746
+ "gap": "md"
1308
1747
  },
1309
1748
  {
1310
- "type": "line-chart",
1749
+ "title": "Trend",
1311
1750
  "data": [
1312
1751
  {
1313
- "date": "Jan",
1314
- "value": 12
1752
+ "value": 12.0,
1753
+ "date": "Jan"
1315
1754
  },
1316
1755
  {
1317
1756
  "date": "Feb",
1318
- "value": 19
1757
+ "value": 19.0
1319
1758
  },
1320
1759
  {
1321
- "date": "Mar",
1322
- "value": 15
1760
+ "value": 15.0,
1761
+ "date": "Mar"
1323
1762
  },
1324
1763
  {
1325
1764
  "date": "Apr",
1326
- "value": 25
1765
+ "value": 25.0
1327
1766
  },
1328
1767
  {
1329
1768
  "date": "May",
1330
- "value": 22
1769
+ "value": 22.0
1331
1770
  },
1332
1771
  {
1333
1772
  "date": "Jun",
1334
- "value": 30
1773
+ "value": 30.0
1335
1774
  }
1336
1775
  ],
1337
1776
  "xKey": "date",
1338
1777
  "yKey": "value",
1339
- "title": "Trend"
1778
+ "type": "line-chart"
1340
1779
  },
1341
1780
  {
1342
1781
  "type": "chart-legend",
1343
1782
  "items": [
1344
1783
  {
1345
- "label": "Current",
1346
- "color": "primary"
1784
+ "color": "primary",
1785
+ "label": "Current"
1347
1786
  },
1348
1787
  {
1349
1788
  "label": "Previous",
@@ -1352,25 +1791,26 @@
1352
1791
  ]
1353
1792
  },
1354
1793
  {
1355
- "type": "graph-view",
1794
+ "height": 200.0,
1795
+ "width": 400.0,
1356
1796
  "nodes": [
1357
1797
  {
1358
- "id": "a",
1359
1798
  "label": "Start",
1360
- "x": 50,
1361
- "y": 100
1799
+ "x": 50.0,
1800
+ "y": 100.0,
1801
+ "id": "a"
1362
1802
  },
1363
1803
  {
1364
1804
  "id": "b",
1365
- "label": "Process",
1366
- "x": 200,
1367
- "y": 50
1805
+ "x": 200.0,
1806
+ "y": 50.0,
1807
+ "label": "Process"
1368
1808
  },
1369
1809
  {
1810
+ "y": 100.0,
1370
1811
  "id": "c",
1371
1812
  "label": "End",
1372
- "x": 350,
1373
- "y": 100
1813
+ "x": 350.0
1374
1814
  }
1375
1815
  ],
1376
1816
  "edges": [
@@ -1379,18 +1819,36 @@
1379
1819
  "to": "b"
1380
1820
  },
1381
1821
  {
1382
- "from": "b",
1383
- "to": "c"
1822
+ "to": "c",
1823
+ "from": "b"
1384
1824
  }
1385
1825
  ],
1386
- "width": 400,
1387
- "height": 200
1826
+ "type": "graph-view"
1388
1827
  }
1389
1828
  ]
1390
1829
  }
1391
1830
  ]
1392
1831
  }
1393
- ]
1832
+ ],
1833
+ "navItems": [
1834
+ {
1835
+ "label": "Transactions",
1836
+ "href": "/transactions",
1837
+ "icon": "dollar-sign"
1838
+ },
1839
+ {
1840
+ "icon": "layout-list",
1841
+ "label": "Summary",
1842
+ "href": "/summary"
1843
+ },
1844
+ {
1845
+ "icon": "bar-chart",
1846
+ "label": "Reports",
1847
+ "href": "/reports"
1848
+ }
1849
+ ],
1850
+ "type": "dashboard-layout",
1851
+ "appName": "Finance Tracker"
1394
1852
  }
1395
1853
  ]
1396
1854
  ]
@@ -1402,46 +1860,32 @@
1402
1860
  "effects": [
1403
1861
  [
1404
1862
  "fetch",
1405
- "FinanceSummary"
1863
+ "FinanceSummary",
1864
+ {
1865
+ "emit": {
1866
+ "success": "FinanceSummaryLoaded",
1867
+ "failure": "FinanceSummaryLoadFailed"
1868
+ }
1869
+ }
1406
1870
  ],
1407
1871
  [
1408
1872
  "render-ui",
1409
1873
  "main",
1410
1874
  {
1411
1875
  "type": "dashboard-layout",
1412
- "appName": "Finance Tracker",
1413
- "navItems": [
1414
- {
1415
- "label": "Transactions",
1416
- "href": "/transactions",
1417
- "icon": "dollar-sign"
1418
- },
1419
- {
1420
- "label": "Summary",
1421
- "href": "/summary",
1422
- "icon": "layout-list"
1423
- },
1424
- {
1425
- "label": "Reports",
1426
- "href": "/reports",
1427
- "icon": "bar-chart"
1428
- }
1429
- ],
1430
1876
  "children": [
1431
1877
  {
1432
- "type": "scaled-diagram",
1433
1878
  "children": [
1434
1879
  {
1435
- "type": "stack",
1436
- "direction": "vertical",
1437
1880
  "gap": "lg",
1881
+ "direction": "vertical",
1438
1882
  "children": [
1439
1883
  {
1440
1884
  "type": "breadcrumb",
1441
1885
  "items": [
1442
1886
  {
1443
- "label": "Home",
1444
- "href": "/"
1887
+ "href": "/",
1888
+ "label": "Home"
1445
1889
  },
1446
1890
  {
1447
1891
  "label": "Financial Summary"
@@ -1452,33 +1896,33 @@
1452
1896
  "type": "stack",
1453
1897
  "direction": "horizontal",
1454
1898
  "gap": "md",
1455
- "justify": "space-between",
1456
1899
  "children": [
1457
1900
  {
1458
1901
  "type": "stack",
1459
- "direction": "horizontal",
1460
1902
  "gap": "md",
1461
1903
  "children": [
1462
1904
  {
1463
- "type": "icon",
1464
1905
  "name": "pie-chart",
1465
- "size": "lg"
1906
+ "size": "lg",
1907
+ "type": "icon"
1466
1908
  },
1467
1909
  {
1468
1910
  "type": "typography",
1469
- "content": "Financial Summary",
1470
- "variant": "h2"
1911
+ "variant": "h2",
1912
+ "content": "Financial Summary"
1471
1913
  }
1472
- ]
1914
+ ],
1915
+ "direction": "horizontal"
1473
1916
  },
1474
1917
  {
1475
- "type": "button",
1476
1918
  "label": "Refresh",
1919
+ "icon": "refresh-cw",
1920
+ "type": "button",
1477
1921
  "event": "REFRESH",
1478
- "variant": "secondary",
1479
- "icon": "refresh-cw"
1922
+ "variant": "secondary"
1480
1923
  }
1481
- ]
1924
+ ],
1925
+ "justify": "space-between"
1482
1926
  },
1483
1927
  {
1484
1928
  "type": "divider"
@@ -1488,12 +1932,10 @@
1488
1932
  "padding": "md",
1489
1933
  "children": [
1490
1934
  {
1491
- "type": "simple-grid",
1492
- "columns": 3,
1493
1935
  "children": [
1494
1936
  {
1495
- "type": "stat-display",
1496
1937
  "label": "TotalIncome",
1938
+ "type": "stat-display",
1497
1939
  "value": [
1498
1940
  "object/get",
1499
1941
  [
@@ -1504,8 +1946,6 @@
1504
1946
  ]
1505
1947
  },
1506
1948
  {
1507
- "type": "stat-display",
1508
- "label": "TotalExpenses",
1509
1949
  "value": [
1510
1950
  "object/get",
1511
1951
  [
@@ -1513,11 +1953,11 @@
1513
1953
  "@entity"
1514
1954
  ],
1515
1955
  "totalExpenses"
1516
- ]
1956
+ ],
1957
+ "type": "stat-display",
1958
+ "label": "TotalExpenses"
1517
1959
  },
1518
1960
  {
1519
- "type": "stat-display",
1520
- "label": "Balance",
1521
1961
  "value": [
1522
1962
  "object/get",
1523
1963
  [
@@ -1525,7 +1965,9 @@
1525
1965
  "@entity"
1526
1966
  ],
1527
1967
  "balance"
1528
- ]
1968
+ ],
1969
+ "type": "stat-display",
1970
+ "label": "Balance"
1529
1971
  },
1530
1972
  {
1531
1973
  "type": "stat-display",
@@ -1539,7 +1981,9 @@
1539
1981
  "savingsRate"
1540
1982
  ]
1541
1983
  }
1542
- ]
1984
+ ],
1985
+ "type": "simple-grid",
1986
+ "columns": 3.0
1543
1987
  }
1544
1988
  ]
1545
1989
  },
@@ -1548,116 +1992,136 @@
1548
1992
  },
1549
1993
  {
1550
1994
  "type": "grid",
1551
- "columns": 2,
1995
+ "columns": 2.0,
1552
1996
  "gap": "md",
1553
1997
  "children": [
1554
1998
  {
1555
1999
  "type": "card",
1556
2000
  "children": [
1557
2001
  {
2002
+ "content": "Chart View",
1558
2003
  "type": "typography",
1559
- "variant": "caption",
1560
- "content": "Chart View"
2004
+ "variant": "caption"
1561
2005
  }
1562
2006
  ]
1563
2007
  },
1564
2008
  {
1565
- "type": "card",
1566
2009
  "children": [
1567
2010
  {
1568
- "type": "typography",
1569
2011
  "variant": "caption",
1570
- "content": "Graph View"
2012
+ "content": "Graph View",
2013
+ "type": "typography"
1571
2014
  }
1572
- ]
2015
+ ],
2016
+ "type": "card"
1573
2017
  }
1574
2018
  ]
1575
2019
  },
1576
2020
  {
2021
+ "yKey": "value",
2022
+ "title": "Trend",
2023
+ "xKey": "date",
1577
2024
  "type": "line-chart",
1578
2025
  "data": [
1579
2026
  {
1580
- "date": "Jan",
1581
- "value": 12
2027
+ "value": 12.0,
2028
+ "date": "Jan"
1582
2029
  },
1583
2030
  {
1584
2031
  "date": "Feb",
1585
- "value": 19
2032
+ "value": 19.0
1586
2033
  },
1587
2034
  {
1588
2035
  "date": "Mar",
1589
- "value": 15
2036
+ "value": 15.0
1590
2037
  },
1591
2038
  {
1592
2039
  "date": "Apr",
1593
- "value": 25
2040
+ "value": 25.0
1594
2041
  },
1595
2042
  {
1596
2043
  "date": "May",
1597
- "value": 22
2044
+ "value": 22.0
1598
2045
  },
1599
2046
  {
1600
2047
  "date": "Jun",
1601
- "value": 30
2048
+ "value": 30.0
1602
2049
  }
1603
- ],
1604
- "xKey": "date",
1605
- "yKey": "value",
1606
- "title": "Trend"
2050
+ ]
1607
2051
  },
1608
2052
  {
1609
- "type": "chart-legend",
1610
2053
  "items": [
1611
2054
  {
1612
- "label": "Current",
1613
- "color": "primary"
2055
+ "color": "primary",
2056
+ "label": "Current"
1614
2057
  },
1615
2058
  {
1616
- "label": "Previous",
1617
- "color": "muted"
2059
+ "color": "muted",
2060
+ "label": "Previous"
1618
2061
  }
1619
- ]
2062
+ ],
2063
+ "type": "chart-legend"
1620
2064
  },
1621
2065
  {
1622
- "type": "graph-view",
1623
- "nodes": [
2066
+ "edges": [
2067
+ {
2068
+ "from": "a",
2069
+ "to": "b"
2070
+ },
2071
+ {
2072
+ "to": "c",
2073
+ "from": "b"
2074
+ }
2075
+ ],
2076
+ "height": 200.0,
2077
+ "nodes": [
1624
2078
  {
2079
+ "x": 50.0,
2080
+ "y": 100.0,
1625
2081
  "id": "a",
1626
- "label": "Start",
1627
- "x": 50,
1628
- "y": 100
2082
+ "label": "Start"
1629
2083
  },
1630
2084
  {
1631
2085
  "id": "b",
1632
- "label": "Process",
1633
- "x": 200,
1634
- "y": 50
2086
+ "x": 200.0,
2087
+ "y": 50.0,
2088
+ "label": "Process"
1635
2089
  },
1636
2090
  {
1637
2091
  "id": "c",
1638
2092
  "label": "End",
1639
- "x": 350,
1640
- "y": 100
1641
- }
1642
- ],
1643
- "edges": [
1644
- {
1645
- "from": "a",
1646
- "to": "b"
1647
- },
1648
- {
1649
- "from": "b",
1650
- "to": "c"
2093
+ "x": 350.0,
2094
+ "y": 100.0
1651
2095
  }
1652
2096
  ],
1653
- "width": 400,
1654
- "height": 200
2097
+ "width": 400.0,
2098
+ "type": "graph-view"
1655
2099
  }
1656
- ]
2100
+ ],
2101
+ "type": "stack"
1657
2102
  }
1658
- ]
2103
+ ],
2104
+ "type": "scaled-diagram"
1659
2105
  }
1660
- ]
2106
+ ],
2107
+ "navItems": [
2108
+ {
2109
+ "label": "Transactions",
2110
+ "icon": "dollar-sign",
2111
+ "href": "/transactions"
2112
+ },
2113
+ {
2114
+ "icon": "layout-list",
2115
+ "href": "/summary",
2116
+ "label": "Summary"
2117
+ },
2118
+ {
2119
+ "href": "/reports",
2120
+ "icon": "bar-chart",
2121
+ "label": "Reports"
2122
+ }
2123
+ ],
2124
+ "appName": "Finance Tracker"
1661
2125
  }
1662
2126
  ]
1663
2127
  ]
@@ -1669,24 +2133,28 @@
1669
2133
  "effects": [
1670
2134
  [
1671
2135
  "fetch",
1672
- "FinanceSummary"
2136
+ "FinanceSummary",
2137
+ {
2138
+ "emit": {
2139
+ "failure": "FinanceSummaryLoadFailed",
2140
+ "success": "FinanceSummaryLoaded"
2141
+ }
2142
+ }
1673
2143
  ],
1674
2144
  [
1675
2145
  "render-ui",
1676
2146
  "main",
1677
2147
  {
1678
- "type": "dashboard-layout",
1679
- "appName": "Finance Tracker",
1680
2148
  "navItems": [
1681
2149
  {
1682
2150
  "label": "Transactions",
1683
- "href": "/transactions",
1684
- "icon": "dollar-sign"
2151
+ "icon": "dollar-sign",
2152
+ "href": "/transactions"
1685
2153
  },
1686
2154
  {
2155
+ "icon": "layout-list",
1687
2156
  "label": "Summary",
1688
- "href": "/summary",
1689
- "icon": "layout-list"
2157
+ "href": "/summary"
1690
2158
  },
1691
2159
  {
1692
2160
  "label": "Reports",
@@ -1699,16 +2167,16 @@
1699
2167
  "type": "scaled-diagram",
1700
2168
  "children": [
1701
2169
  {
2170
+ "gap": "lg",
1702
2171
  "type": "stack",
1703
2172
  "direction": "vertical",
1704
- "gap": "lg",
1705
2173
  "children": [
1706
2174
  {
1707
2175
  "type": "breadcrumb",
1708
2176
  "items": [
1709
2177
  {
1710
- "label": "Home",
1711
- "href": "/"
2178
+ "href": "/",
2179
+ "label": "Home"
1712
2180
  },
1713
2181
  {
1714
2182
  "label": "Financial Summary"
@@ -1716,51 +2184,48 @@
1716
2184
  ]
1717
2185
  },
1718
2186
  {
1719
- "type": "stack",
1720
2187
  "direction": "horizontal",
1721
2188
  "gap": "md",
1722
2189
  "justify": "space-between",
1723
2190
  "children": [
1724
2191
  {
1725
2192
  "type": "stack",
1726
- "direction": "horizontal",
1727
2193
  "gap": "md",
1728
2194
  "children": [
1729
2195
  {
1730
- "type": "icon",
2196
+ "size": "lg",
1731
2197
  "name": "pie-chart",
1732
- "size": "lg"
2198
+ "type": "icon"
1733
2199
  },
1734
2200
  {
1735
- "type": "typography",
1736
2201
  "content": "Financial Summary",
1737
- "variant": "h2"
2202
+ "variant": "h2",
2203
+ "type": "typography"
1738
2204
  }
1739
- ]
2205
+ ],
2206
+ "direction": "horizontal"
1740
2207
  },
1741
2208
  {
1742
2209
  "type": "button",
1743
- "label": "Refresh",
1744
- "event": "REFRESH",
1745
2210
  "variant": "secondary",
1746
- "icon": "refresh-cw"
2211
+ "label": "Refresh",
2212
+ "icon": "refresh-cw",
2213
+ "event": "REFRESH"
1747
2214
  }
1748
- ]
2215
+ ],
2216
+ "type": "stack"
1749
2217
  },
1750
2218
  {
1751
2219
  "type": "divider"
1752
2220
  },
1753
2221
  {
1754
2222
  "type": "box",
1755
- "padding": "md",
1756
2223
  "children": [
1757
2224
  {
2225
+ "columns": 3.0,
1758
2226
  "type": "simple-grid",
1759
- "columns": 3,
1760
2227
  "children": [
1761
2228
  {
1762
- "type": "stat-display",
1763
- "label": "TotalIncome",
1764
2229
  "value": [
1765
2230
  "object/get",
1766
2231
  [
@@ -1768,10 +2233,11 @@
1768
2233
  "@entity"
1769
2234
  ],
1770
2235
  "totalIncome"
1771
- ]
2236
+ ],
2237
+ "label": "TotalIncome",
2238
+ "type": "stat-display"
1772
2239
  },
1773
2240
  {
1774
- "type": "stat-display",
1775
2241
  "label": "TotalExpenses",
1776
2242
  "value": [
1777
2243
  "object/get",
@@ -1780,7 +2246,8 @@
1780
2246
  "@entity"
1781
2247
  ],
1782
2248
  "totalExpenses"
1783
- ]
2249
+ ],
2250
+ "type": "stat-display"
1784
2251
  },
1785
2252
  {
1786
2253
  "type": "stat-display",
@@ -1808,69 +2275,70 @@
1808
2275
  }
1809
2276
  ]
1810
2277
  }
1811
- ]
2278
+ ],
2279
+ "padding": "md"
1812
2280
  },
1813
2281
  {
1814
2282
  "type": "divider"
1815
2283
  },
1816
2284
  {
1817
- "type": "grid",
1818
- "columns": 2,
1819
2285
  "gap": "md",
1820
2286
  "children": [
1821
2287
  {
1822
- "type": "card",
1823
2288
  "children": [
1824
2289
  {
1825
2290
  "type": "typography",
1826
2291
  "variant": "caption",
1827
2292
  "content": "Chart View"
1828
2293
  }
1829
- ]
2294
+ ],
2295
+ "type": "card"
1830
2296
  },
1831
2297
  {
1832
2298
  "type": "card",
1833
2299
  "children": [
1834
2300
  {
1835
- "type": "typography",
1836
2301
  "variant": "caption",
2302
+ "type": "typography",
1837
2303
  "content": "Graph View"
1838
2304
  }
1839
2305
  ]
1840
2306
  }
1841
- ]
2307
+ ],
2308
+ "type": "grid",
2309
+ "columns": 2.0
1842
2310
  },
1843
2311
  {
1844
- "type": "line-chart",
2312
+ "title": "Trend",
1845
2313
  "data": [
1846
2314
  {
1847
2315
  "date": "Jan",
1848
- "value": 12
2316
+ "value": 12.0
1849
2317
  },
1850
2318
  {
1851
2319
  "date": "Feb",
1852
- "value": 19
2320
+ "value": 19.0
1853
2321
  },
1854
2322
  {
1855
- "date": "Mar",
1856
- "value": 15
2323
+ "value": 15.0,
2324
+ "date": "Mar"
1857
2325
  },
1858
2326
  {
1859
- "date": "Apr",
1860
- "value": 25
2327
+ "value": 25.0,
2328
+ "date": "Apr"
1861
2329
  },
1862
2330
  {
1863
2331
  "date": "May",
1864
- "value": 22
2332
+ "value": 22.0
1865
2333
  },
1866
2334
  {
1867
- "date": "Jun",
1868
- "value": 30
2335
+ "value": 30.0,
2336
+ "date": "Jun"
1869
2337
  }
1870
2338
  ],
1871
2339
  "xKey": "date",
1872
- "yKey": "value",
1873
- "title": "Trend"
2340
+ "type": "line-chart",
2341
+ "yKey": "value"
1874
2342
  },
1875
2343
  {
1876
2344
  "type": "chart-legend",
@@ -1887,44 +2355,46 @@
1887
2355
  },
1888
2356
  {
1889
2357
  "type": "graph-view",
2358
+ "height": 200.0,
2359
+ "edges": [
2360
+ {
2361
+ "to": "b",
2362
+ "from": "a"
2363
+ },
2364
+ {
2365
+ "from": "b",
2366
+ "to": "c"
2367
+ }
2368
+ ],
1890
2369
  "nodes": [
1891
2370
  {
1892
- "id": "a",
1893
2371
  "label": "Start",
1894
- "x": 50,
1895
- "y": 100
2372
+ "y": 100.0,
2373
+ "id": "a",
2374
+ "x": 50.0
1896
2375
  },
1897
2376
  {
1898
2377
  "id": "b",
2378
+ "x": 200.0,
1899
2379
  "label": "Process",
1900
- "x": 200,
1901
- "y": 50
2380
+ "y": 50.0
1902
2381
  },
1903
2382
  {
2383
+ "x": 350.0,
2384
+ "y": 100.0,
1904
2385
  "id": "c",
1905
- "label": "End",
1906
- "x": 350,
1907
- "y": 100
1908
- }
1909
- ],
1910
- "edges": [
1911
- {
1912
- "from": "a",
1913
- "to": "b"
1914
- },
1915
- {
1916
- "from": "b",
1917
- "to": "c"
2386
+ "label": "End"
1918
2387
  }
1919
2388
  ],
1920
- "width": 400,
1921
- "height": 200
2389
+ "width": 400.0
1922
2390
  }
1923
2391
  ]
1924
2392
  }
1925
2393
  ]
1926
2394
  }
1927
- ]
2395
+ ],
2396
+ "type": "dashboard-layout",
2397
+ "appName": "Finance Tracker"
1928
2398
  }
1929
2399
  ]
1930
2400
  ]
@@ -1936,18 +2406,24 @@
1936
2406
  "effects": [
1937
2407
  [
1938
2408
  "fetch",
1939
- "FinanceSummary"
2409
+ "FinanceSummary",
2410
+ {
2411
+ "emit": {
2412
+ "success": "FinanceSummaryLoaded",
2413
+ "failure": "FinanceSummaryLoadFailed"
2414
+ }
2415
+ }
1940
2416
  ],
1941
2417
  [
1942
2418
  "render-ui",
1943
2419
  "main",
1944
2420
  {
1945
- "type": "dashboard-layout",
1946
2421
  "appName": "Finance Tracker",
2422
+ "type": "dashboard-layout",
1947
2423
  "navItems": [
1948
2424
  {
1949
- "label": "Transactions",
1950
2425
  "href": "/transactions",
2426
+ "label": "Transactions",
1951
2427
  "icon": "dollar-sign"
1952
2428
  },
1953
2429
  {
@@ -1956,22 +2432,20 @@
1956
2432
  "icon": "layout-list"
1957
2433
  },
1958
2434
  {
1959
- "label": "Reports",
1960
2435
  "href": "/reports",
1961
- "icon": "bar-chart"
2436
+ "icon": "bar-chart",
2437
+ "label": "Reports"
1962
2438
  }
1963
2439
  ],
1964
2440
  "children": [
1965
2441
  {
1966
- "type": "scaled-diagram",
1967
2442
  "children": [
1968
2443
  {
1969
2444
  "type": "stack",
1970
- "direction": "vertical",
1971
2445
  "gap": "lg",
2446
+ "direction": "vertical",
1972
2447
  "children": [
1973
2448
  {
1974
- "type": "breadcrumb",
1975
2449
  "items": [
1976
2450
  {
1977
2451
  "label": "Home",
@@ -1980,54 +2454,53 @@
1980
2454
  {
1981
2455
  "label": "Financial Summary"
1982
2456
  }
1983
- ]
2457
+ ],
2458
+ "type": "breadcrumb"
1984
2459
  },
1985
2460
  {
1986
- "type": "stack",
1987
- "direction": "horizontal",
1988
- "gap": "md",
1989
- "justify": "space-between",
1990
2461
  "children": [
1991
2462
  {
1992
- "type": "stack",
1993
2463
  "direction": "horizontal",
1994
2464
  "gap": "md",
2465
+ "type": "stack",
1995
2466
  "children": [
1996
2467
  {
1997
- "type": "icon",
1998
2468
  "name": "pie-chart",
1999
- "size": "lg"
2469
+ "size": "lg",
2470
+ "type": "icon"
2000
2471
  },
2001
2472
  {
2473
+ "variant": "h2",
2002
2474
  "type": "typography",
2003
- "content": "Financial Summary",
2004
- "variant": "h2"
2475
+ "content": "Financial Summary"
2005
2476
  }
2006
2477
  ]
2007
2478
  },
2008
2479
  {
2009
- "type": "button",
2480
+ "icon": "refresh-cw",
2010
2481
  "label": "Refresh",
2011
- "event": "REFRESH",
2482
+ "type": "button",
2012
2483
  "variant": "secondary",
2013
- "icon": "refresh-cw"
2484
+ "event": "REFRESH"
2014
2485
  }
2015
- ]
2486
+ ],
2487
+ "justify": "space-between",
2488
+ "type": "stack",
2489
+ "gap": "md",
2490
+ "direction": "horizontal"
2016
2491
  },
2017
2492
  {
2018
2493
  "type": "divider"
2019
2494
  },
2020
2495
  {
2021
- "type": "box",
2022
2496
  "padding": "md",
2497
+ "type": "box",
2023
2498
  "children": [
2024
2499
  {
2025
- "type": "simple-grid",
2026
- "columns": 3,
2027
2500
  "children": [
2028
2501
  {
2029
- "type": "stat-display",
2030
2502
  "label": "TotalIncome",
2503
+ "type": "stat-display",
2031
2504
  "value": [
2032
2505
  "object/get",
2033
2506
  [
@@ -2038,8 +2511,8 @@
2038
2511
  ]
2039
2512
  },
2040
2513
  {
2041
- "type": "stat-display",
2042
2514
  "label": "TotalExpenses",
2515
+ "type": "stat-display",
2043
2516
  "value": [
2044
2517
  "object/get",
2045
2518
  [
@@ -2062,7 +2535,6 @@
2062
2535
  ]
2063
2536
  },
2064
2537
  {
2065
- "type": "stat-display",
2066
2538
  "label": "SavingsRate",
2067
2539
  "value": [
2068
2540
  "object/get",
@@ -2071,9 +2543,12 @@
2071
2543
  "@entity"
2072
2544
  ],
2073
2545
  "savingsRate"
2074
- ]
2546
+ ],
2547
+ "type": "stat-display"
2075
2548
  }
2076
- ]
2549
+ ],
2550
+ "type": "simple-grid",
2551
+ "columns": 3.0
2077
2552
  }
2078
2553
  ]
2079
2554
  },
@@ -2081,115 +2556,116 @@
2081
2556
  "type": "divider"
2082
2557
  },
2083
2558
  {
2084
- "type": "grid",
2085
- "columns": 2,
2086
- "gap": "md",
2087
2559
  "children": [
2088
2560
  {
2089
- "type": "card",
2090
2561
  "children": [
2091
2562
  {
2092
- "type": "typography",
2093
2563
  "variant": "caption",
2564
+ "type": "typography",
2094
2565
  "content": "Chart View"
2095
2566
  }
2096
- ]
2567
+ ],
2568
+ "type": "card"
2097
2569
  },
2098
2570
  {
2099
2571
  "type": "card",
2100
2572
  "children": [
2101
2573
  {
2102
- "type": "typography",
2103
2574
  "variant": "caption",
2575
+ "type": "typography",
2104
2576
  "content": "Graph View"
2105
2577
  }
2106
2578
  ]
2107
2579
  }
2108
- ]
2580
+ ],
2581
+ "columns": 2.0,
2582
+ "gap": "md",
2583
+ "type": "grid"
2109
2584
  },
2110
2585
  {
2111
2586
  "type": "line-chart",
2587
+ "title": "Trend",
2588
+ "xKey": "date",
2589
+ "yKey": "value",
2112
2590
  "data": [
2113
2591
  {
2114
2592
  "date": "Jan",
2115
- "value": 12
2593
+ "value": 12.0
2116
2594
  },
2117
2595
  {
2118
- "date": "Feb",
2119
- "value": 19
2596
+ "value": 19.0,
2597
+ "date": "Feb"
2120
2598
  },
2121
2599
  {
2122
2600
  "date": "Mar",
2123
- "value": 15
2601
+ "value": 15.0
2124
2602
  },
2125
2603
  {
2126
2604
  "date": "Apr",
2127
- "value": 25
2605
+ "value": 25.0
2128
2606
  },
2129
2607
  {
2130
2608
  "date": "May",
2131
- "value": 22
2609
+ "value": 22.0
2132
2610
  },
2133
2611
  {
2134
- "date": "Jun",
2135
- "value": 30
2612
+ "value": 30.0,
2613
+ "date": "Jun"
2136
2614
  }
2137
- ],
2138
- "xKey": "date",
2139
- "yKey": "value",
2140
- "title": "Trend"
2615
+ ]
2141
2616
  },
2142
2617
  {
2143
- "type": "chart-legend",
2144
2618
  "items": [
2145
2619
  {
2146
2620
  "label": "Current",
2147
2621
  "color": "primary"
2148
2622
  },
2149
2623
  {
2150
- "label": "Previous",
2151
- "color": "muted"
2624
+ "color": "muted",
2625
+ "label": "Previous"
2152
2626
  }
2153
- ]
2627
+ ],
2628
+ "type": "chart-legend"
2154
2629
  },
2155
2630
  {
2156
- "type": "graph-view",
2631
+ "edges": [
2632
+ {
2633
+ "from": "a",
2634
+ "to": "b"
2635
+ },
2636
+ {
2637
+ "from": "b",
2638
+ "to": "c"
2639
+ }
2640
+ ],
2641
+ "width": 400.0,
2157
2642
  "nodes": [
2158
2643
  {
2159
2644
  "id": "a",
2160
2645
  "label": "Start",
2161
- "x": 50,
2162
- "y": 100
2646
+ "x": 50.0,
2647
+ "y": 100.0
2163
2648
  },
2164
2649
  {
2165
- "id": "b",
2650
+ "x": 200.0,
2166
2651
  "label": "Process",
2167
- "x": 200,
2168
- "y": 50
2652
+ "id": "b",
2653
+ "y": 50.0
2169
2654
  },
2170
2655
  {
2171
- "id": "c",
2172
2656
  "label": "End",
2173
- "x": 350,
2174
- "y": 100
2175
- }
2176
- ],
2177
- "edges": [
2178
- {
2179
- "from": "a",
2180
- "to": "b"
2181
- },
2182
- {
2183
- "from": "b",
2184
- "to": "c"
2657
+ "id": "c",
2658
+ "y": 100.0,
2659
+ "x": 350.0
2185
2660
  }
2186
2661
  ],
2187
- "width": 400,
2188
- "height": 200
2662
+ "height": 200.0,
2663
+ "type": "graph-view"
2189
2664
  }
2190
2665
  ]
2191
2666
  }
2192
- ]
2667
+ ],
2668
+ "type": "scaled-diagram"
2193
2669
  }
2194
2670
  ]
2195
2671
  }
@@ -2203,39 +2679,23 @@
2203
2679
  "effects": [
2204
2680
  [
2205
2681
  "fetch",
2206
- "FinanceSummary"
2682
+ "FinanceSummary",
2683
+ {
2684
+ "emit": {
2685
+ "success": "FinanceSummaryLoaded",
2686
+ "failure": "FinanceSummaryLoadFailed"
2687
+ }
2688
+ }
2207
2689
  ],
2208
2690
  [
2209
2691
  "render-ui",
2210
2692
  "main",
2211
2693
  {
2212
- "type": "dashboard-layout",
2213
- "appName": "Finance Tracker",
2214
- "navItems": [
2215
- {
2216
- "label": "Transactions",
2217
- "href": "/transactions",
2218
- "icon": "dollar-sign"
2219
- },
2220
- {
2221
- "label": "Summary",
2222
- "href": "/summary",
2223
- "icon": "layout-list"
2224
- },
2225
- {
2226
- "label": "Reports",
2227
- "href": "/reports",
2228
- "icon": "bar-chart"
2229
- }
2230
- ],
2231
2694
  "children": [
2232
2695
  {
2233
- "type": "scaled-diagram",
2234
2696
  "children": [
2235
2697
  {
2236
2698
  "type": "stack",
2237
- "direction": "vertical",
2238
- "gap": "lg",
2239
2699
  "children": [
2240
2700
  {
2241
2701
  "type": "breadcrumb",
@@ -2250,8 +2710,8 @@
2250
2710
  ]
2251
2711
  },
2252
2712
  {
2253
- "type": "stack",
2254
2713
  "direction": "horizontal",
2714
+ "type": "stack",
2255
2715
  "gap": "md",
2256
2716
  "justify": "space-between",
2257
2717
  "children": [
@@ -2261,9 +2721,9 @@
2261
2721
  "gap": "md",
2262
2722
  "children": [
2263
2723
  {
2264
- "type": "icon",
2265
2724
  "name": "pie-chart",
2266
- "size": "lg"
2725
+ "size": "lg",
2726
+ "type": "icon"
2267
2727
  },
2268
2728
  {
2269
2729
  "type": "typography",
@@ -2273,11 +2733,11 @@
2273
2733
  ]
2274
2734
  },
2275
2735
  {
2736
+ "variant": "secondary",
2737
+ "icon": "refresh-cw",
2276
2738
  "type": "button",
2277
- "label": "Refresh",
2278
2739
  "event": "REFRESH",
2279
- "variant": "secondary",
2280
- "icon": "refresh-cw"
2740
+ "label": "Refresh"
2281
2741
  }
2282
2742
  ]
2283
2743
  },
@@ -2289,8 +2749,8 @@
2289
2749
  "padding": "md",
2290
2750
  "children": [
2291
2751
  {
2752
+ "columns": 3.0,
2292
2753
  "type": "simple-grid",
2293
- "columns": 3,
2294
2754
  "children": [
2295
2755
  {
2296
2756
  "type": "stat-display",
@@ -2305,8 +2765,6 @@
2305
2765
  ]
2306
2766
  },
2307
2767
  {
2308
- "type": "stat-display",
2309
- "label": "TotalExpenses",
2310
2768
  "value": [
2311
2769
  "object/get",
2312
2770
  [
@@ -2314,11 +2772,11 @@
2314
2772
  "@entity"
2315
2773
  ],
2316
2774
  "totalExpenses"
2317
- ]
2775
+ ],
2776
+ "type": "stat-display",
2777
+ "label": "TotalExpenses"
2318
2778
  },
2319
2779
  {
2320
- "type": "stat-display",
2321
- "label": "Balance",
2322
2780
  "value": [
2323
2781
  "object/get",
2324
2782
  [
@@ -2326,11 +2784,11 @@
2326
2784
  "@entity"
2327
2785
  ],
2328
2786
  "balance"
2329
- ]
2787
+ ],
2788
+ "type": "stat-display",
2789
+ "label": "Balance"
2330
2790
  },
2331
2791
  {
2332
- "type": "stat-display",
2333
- "label": "SavingsRate",
2334
2792
  "value": [
2335
2793
  "object/get",
2336
2794
  [
@@ -2338,7 +2796,9 @@
2338
2796
  "@entity"
2339
2797
  ],
2340
2798
  "savingsRate"
2341
- ]
2799
+ ],
2800
+ "type": "stat-display",
2801
+ "label": "SavingsRate"
2342
2802
  }
2343
2803
  ]
2344
2804
  }
@@ -2348,63 +2808,63 @@
2348
2808
  "type": "divider"
2349
2809
  },
2350
2810
  {
2351
- "type": "grid",
2352
- "columns": 2,
2353
- "gap": "md",
2354
2811
  "children": [
2355
2812
  {
2356
- "type": "card",
2357
2813
  "children": [
2358
2814
  {
2359
- "type": "typography",
2360
2815
  "variant": "caption",
2361
- "content": "Chart View"
2816
+ "content": "Chart View",
2817
+ "type": "typography"
2362
2818
  }
2363
- ]
2819
+ ],
2820
+ "type": "card"
2364
2821
  },
2365
2822
  {
2366
2823
  "type": "card",
2367
2824
  "children": [
2368
2825
  {
2369
- "type": "typography",
2370
2826
  "variant": "caption",
2371
- "content": "Graph View"
2827
+ "content": "Graph View",
2828
+ "type": "typography"
2372
2829
  }
2373
2830
  ]
2374
2831
  }
2375
- ]
2832
+ ],
2833
+ "gap": "md",
2834
+ "columns": 2.0,
2835
+ "type": "grid"
2376
2836
  },
2377
2837
  {
2378
- "type": "line-chart",
2838
+ "yKey": "value",
2379
2839
  "data": [
2380
2840
  {
2381
2841
  "date": "Jan",
2382
- "value": 12
2842
+ "value": 12.0
2383
2843
  },
2384
2844
  {
2385
- "date": "Feb",
2386
- "value": 19
2845
+ "value": 19.0,
2846
+ "date": "Feb"
2387
2847
  },
2388
2848
  {
2389
- "date": "Mar",
2390
- "value": 15
2849
+ "value": 15.0,
2850
+ "date": "Mar"
2391
2851
  },
2392
2852
  {
2393
2853
  "date": "Apr",
2394
- "value": 25
2854
+ "value": 25.0
2395
2855
  },
2396
2856
  {
2397
- "date": "May",
2398
- "value": 22
2857
+ "value": 22.0,
2858
+ "date": "May"
2399
2859
  },
2400
2860
  {
2401
- "date": "Jun",
2402
- "value": 30
2861
+ "value": 30.0,
2862
+ "date": "Jun"
2403
2863
  }
2404
2864
  ],
2405
- "xKey": "date",
2406
- "yKey": "value",
2407
- "title": "Trend"
2865
+ "title": "Trend",
2866
+ "type": "line-chart",
2867
+ "xKey": "date"
2408
2868
  },
2409
2869
  {
2410
2870
  "type": "chart-legend",
@@ -2414,49 +2874,71 @@
2414
2874
  "color": "primary"
2415
2875
  },
2416
2876
  {
2417
- "label": "Previous",
2418
- "color": "muted"
2877
+ "color": "muted",
2878
+ "label": "Previous"
2419
2879
  }
2420
2880
  ]
2421
2881
  },
2422
2882
  {
2423
- "type": "graph-view",
2883
+ "edges": [
2884
+ {
2885
+ "to": "b",
2886
+ "from": "a"
2887
+ },
2888
+ {
2889
+ "to": "c",
2890
+ "from": "b"
2891
+ }
2892
+ ],
2424
2893
  "nodes": [
2425
2894
  {
2426
2895
  "id": "a",
2427
- "label": "Start",
2428
- "x": 50,
2429
- "y": 100
2896
+ "y": 100.0,
2897
+ "x": 50.0,
2898
+ "label": "Start"
2430
2899
  },
2431
2900
  {
2432
- "id": "b",
2901
+ "y": 50.0,
2433
2902
  "label": "Process",
2434
- "x": 200,
2435
- "y": 50
2903
+ "x": 200.0,
2904
+ "id": "b"
2436
2905
  },
2437
2906
  {
2438
2907
  "id": "c",
2439
2908
  "label": "End",
2440
- "x": 350,
2441
- "y": 100
2909
+ "x": 350.0,
2910
+ "y": 100.0
2442
2911
  }
2443
2912
  ],
2444
- "edges": [
2445
- {
2446
- "from": "a",
2447
- "to": "b"
2448
- },
2449
- {
2450
- "from": "b",
2451
- "to": "c"
2452
- }
2453
- ],
2454
- "width": 400,
2455
- "height": 200
2913
+ "type": "graph-view",
2914
+ "width": 400.0,
2915
+ "height": 200.0
2456
2916
  }
2457
- ]
2917
+ ],
2918
+ "direction": "vertical",
2919
+ "gap": "lg"
2458
2920
  }
2459
- ]
2921
+ ],
2922
+ "type": "scaled-diagram"
2923
+ }
2924
+ ],
2925
+ "type": "dashboard-layout",
2926
+ "appName": "Finance Tracker",
2927
+ "navItems": [
2928
+ {
2929
+ "label": "Transactions",
2930
+ "icon": "dollar-sign",
2931
+ "href": "/transactions"
2932
+ },
2933
+ {
2934
+ "label": "Summary",
2935
+ "href": "/summary",
2936
+ "icon": "layout-list"
2937
+ },
2938
+ {
2939
+ "label": "Reports",
2940
+ "icon": "bar-chart",
2941
+ "href": "/reports"
2460
2942
  }
2461
2943
  ]
2462
2944
  }
@@ -2464,12 +2946,13 @@
2464
2946
  ]
2465
2947
  }
2466
2948
  ]
2467
- }
2949
+ },
2950
+ "scope": "collection"
2468
2951
  }
2469
2952
  ],
2470
2953
  "pages": [
2471
2954
  {
2472
- "name": "SummaryPage",
2955
+ "name": "Summary",
2473
2956
  "path": "/summary",
2474
2957
  "traits": [
2475
2958
  {
@@ -2483,8 +2966,8 @@
2483
2966
  "name": "FinanceReportOrbital",
2484
2967
  "entity": {
2485
2968
  "name": "FinanceReport",
2486
- "persistence": "persistent",
2487
2969
  "collection": "financereports",
2970
+ "persistence": "persistent",
2488
2971
  "fields": [
2489
2972
  {
2490
2973
  "name": "id",
@@ -2507,20 +2990,56 @@
2507
2990
  },
2508
2991
  {
2509
2992
  "name": "generatedAt",
2510
- "type": "date"
2993
+ "type": "datetime"
2511
2994
  }
2512
2995
  ]
2513
2996
  },
2514
2997
  "traits": [
2515
2998
  {
2516
2999
  "name": "FinanceReportBrowse",
2517
- "linkedEntity": "FinanceReport",
2518
3000
  "category": "interaction",
2519
- "listens": [
3001
+ "linkedEntity": "FinanceReport",
3002
+ "emits": [
2520
3003
  {
2521
- "event": "SAVE",
2522
- "triggers": "INIT",
2523
- "scope": "internal"
3004
+ "event": "FinanceReportLoaded",
3005
+ "description": "Fired when FinanceReport finishes loading",
3006
+ "scope": "internal",
3007
+ "payload": [
3008
+ {
3009
+ "name": "id",
3010
+ "type": "string",
3011
+ "required": true
3012
+ },
3013
+ {
3014
+ "name": "title",
3015
+ "type": "string",
3016
+ "required": true
3017
+ },
3018
+ {
3019
+ "name": "period",
3020
+ "type": "string",
3021
+ "required": true
3022
+ },
3023
+ {
3024
+ "name": "total",
3025
+ "type": "number"
3026
+ },
3027
+ {
3028
+ "name": "generatedAt",
3029
+ "type": "datetime"
3030
+ }
3031
+ ]
3032
+ },
3033
+ {
3034
+ "event": "FinanceReportLoadFailed",
3035
+ "description": "Fired when FinanceReport fails to load",
3036
+ "scope": "internal",
3037
+ "payload": [
3038
+ {
3039
+ "name": "message",
3040
+ "type": "string"
3041
+ }
3042
+ ]
2524
3043
  }
2525
3044
  ],
2526
3045
  "stateMachine": {
@@ -2536,21 +3055,16 @@
2536
3055
  "name": "Initialize"
2537
3056
  },
2538
3057
  {
2539
- "key": "CREATE",
2540
- "name": "CREATE"
3058
+ "key": "FinanceReportLoaded",
3059
+ "name": "FinanceReport loaded"
2541
3060
  },
2542
3061
  {
2543
- "key": "VIEW",
2544
- "name": "VIEW",
3062
+ "key": "FinanceReportLoadFailed",
3063
+ "name": "FinanceReport load failed",
2545
3064
  "payload": [
2546
3065
  {
2547
- "name": "id",
2548
- "type": "string",
2549
- "required": true
2550
- },
2551
- {
2552
- "name": "row",
2553
- "type": "object"
3066
+ "name": "message",
3067
+ "type": "string"
2554
3068
  }
2555
3069
  ]
2556
3070
  }
@@ -2569,13 +3083,11 @@
2569
3083
  "render-ui",
2570
3084
  "main",
2571
3085
  {
2572
- "type": "dashboard-layout",
2573
- "appName": "Finance Tracker",
2574
3086
  "navItems": [
2575
3087
  {
2576
- "label": "Transactions",
2577
3088
  "href": "/transactions",
2578
- "icon": "dollar-sign"
3089
+ "icon": "dollar-sign",
3090
+ "label": "Transactions"
2579
3091
  },
2580
3092
  {
2581
3093
  "label": "Summary",
@@ -2583,119 +3095,159 @@
2583
3095
  "icon": "layout-list"
2584
3096
  },
2585
3097
  {
3098
+ "icon": "bar-chart",
2586
3099
  "label": "Reports",
2587
- "href": "/reports",
2588
- "icon": "bar-chart"
3100
+ "href": "/reports"
2589
3101
  }
2590
3102
  ],
3103
+ "appName": "Finance Tracker",
2591
3104
  "children": [
2592
3105
  {
2593
- "type": "stack",
2594
- "direction": "vertical",
2595
- "gap": "lg",
2596
3106
  "className": "max-w-5xl mx-auto w-full",
2597
3107
  "children": [
2598
3108
  {
2599
3109
  "type": "stack",
2600
3110
  "direction": "horizontal",
2601
- "gap": "md",
2602
- "justify": "space-between",
2603
- "align": "center",
2604
3111
  "children": [
2605
3112
  {
2606
- "type": "stack",
2607
- "direction": "horizontal",
2608
- "gap": "sm",
2609
- "align": "center",
2610
3113
  "children": [
2611
3114
  {
2612
- "type": "icon",
3115
+ "size": "lg",
2613
3116
  "name": "file-text",
2614
- "size": "lg"
3117
+ "type": "icon"
2615
3118
  },
2616
3119
  {
2617
- "type": "typography",
2618
3120
  "content": "Reports",
2619
- "variant": "h2"
3121
+ "variant": "h2",
3122
+ "type": "typography"
2620
3123
  }
2621
- ]
2622
- },
2623
- {
3124
+ ],
2624
3125
  "type": "stack",
2625
3126
  "direction": "horizontal",
3127
+ "align": "center",
3128
+ "gap": "sm"
3129
+ },
3130
+ {
2626
3131
  "gap": "sm",
2627
3132
  "children": [
2628
3133
  {
2629
- "type": "button",
2630
- "label": "Create FinanceReport",
2631
- "event": "CREATE",
2632
3134
  "variant": "primary",
2633
- "icon": "plus"
3135
+ "label": "Create FinanceReport",
3136
+ "icon": "plus",
3137
+ "type": "button",
3138
+ "event": "CREATE"
2634
3139
  }
2635
- ]
3140
+ ],
3141
+ "direction": "horizontal",
3142
+ "type": "stack"
2636
3143
  }
2637
- ]
3144
+ ],
3145
+ "justify": "space-between",
3146
+ "align": "center",
3147
+ "gap": "md"
2638
3148
  },
2639
3149
  {
2640
3150
  "type": "divider"
2641
3151
  },
2642
3152
  {
2643
- "type": "data-list",
2644
- "entity": "FinanceReport",
2645
- "emptyIcon": "inbox",
2646
3153
  "emptyTitle": "No reports yet",
3154
+ "entity": "FinanceReport",
2647
3155
  "emptyDescription": "Generate a report to analyze your finances.",
2648
3156
  "itemActions": [
2649
3157
  {
2650
- "label": "View",
2651
- "event": "VIEW",
2652
3158
  "variant": "ghost",
2653
- "size": "sm"
3159
+ "label": "View",
3160
+ "size": "sm",
3161
+ "event": "VIEW"
2654
3162
  }
2655
3163
  ],
2656
3164
  "columns": [
2657
3165
  {
2658
3166
  "name": "title",
2659
- "variant": "h3",
2660
- "icon": "file-text"
3167
+ "icon": "file-text",
3168
+ "variant": "h3"
2661
3169
  },
2662
3170
  {
2663
- "name": "period",
2664
- "variant": "badge"
3171
+ "variant": "badge",
3172
+ "name": "period"
2665
3173
  },
2666
3174
  {
2667
- "name": "total",
2668
3175
  "variant": "h4",
2669
- "format": "currency"
3176
+ "format": "currency",
3177
+ "name": "total"
2670
3178
  },
2671
3179
  {
2672
- "name": "generatedAt",
2673
- "label": "Generated",
3180
+ "format": "date",
2674
3181
  "variant": "caption",
2675
- "format": "date"
3182
+ "label": "Generated",
3183
+ "name": "generatedAt"
2676
3184
  }
2677
3185
  ],
3186
+ "gap": "sm",
3187
+ "emptyIcon": "inbox",
2678
3188
  "variant": "card",
2679
- "gap": "sm"
3189
+ "type": "data-list"
2680
3190
  }
2681
- ]
3191
+ ],
3192
+ "gap": "lg",
3193
+ "direction": "vertical",
3194
+ "type": "stack"
2682
3195
  }
2683
- ]
3196
+ ],
3197
+ "type": "dashboard-layout"
2684
3198
  }
2685
3199
  ]
2686
3200
  ]
2687
3201
  }
2688
3202
  ]
2689
- }
3203
+ },
3204
+ "scope": "collection"
2690
3205
  },
2691
3206
  {
2692
3207
  "name": "FinanceReportCreate",
2693
- "linkedEntity": "FinanceReport",
2694
3208
  "category": "interaction",
3209
+ "linkedEntity": "FinanceReport",
2695
3210
  "emits": [
2696
3211
  {
2697
- "event": "SAVE",
2698
- "scope": "internal"
3212
+ "event": "FinanceReportLoaded",
3213
+ "description": "Fired when FinanceReport finishes loading",
3214
+ "scope": "internal",
3215
+ "payload": [
3216
+ {
3217
+ "name": "id",
3218
+ "type": "string",
3219
+ "required": true
3220
+ },
3221
+ {
3222
+ "name": "title",
3223
+ "type": "string",
3224
+ "required": true
3225
+ },
3226
+ {
3227
+ "name": "period",
3228
+ "type": "string",
3229
+ "required": true
3230
+ },
3231
+ {
3232
+ "name": "total",
3233
+ "type": "number"
3234
+ },
3235
+ {
3236
+ "name": "generatedAt",
3237
+ "type": "datetime"
3238
+ }
3239
+ ]
3240
+ },
3241
+ {
3242
+ "event": "FinanceReportLoadFailed",
3243
+ "description": "Fired when FinanceReport fails to load",
3244
+ "scope": "internal",
3245
+ "payload": [
3246
+ {
3247
+ "name": "message",
3248
+ "type": "string"
3249
+ }
3250
+ ]
2699
3251
  }
2700
3252
  ],
2701
3253
  "stateMachine": {
@@ -2715,7 +3267,7 @@
2715
3267
  },
2716
3268
  {
2717
3269
  "key": "CREATE",
2718
- "name": "Open"
3270
+ "name": "Create"
2719
3271
  },
2720
3272
  {
2721
3273
  "key": "CLOSE",
@@ -2727,8 +3279,21 @@
2727
3279
  "payload": [
2728
3280
  {
2729
3281
  "name": "data",
2730
- "type": "object",
2731
- "required": true
3282
+ "type": "string"
3283
+ }
3284
+ ]
3285
+ },
3286
+ {
3287
+ "key": "FinanceReportLoaded",
3288
+ "name": "FinanceReport loaded"
3289
+ },
3290
+ {
3291
+ "key": "FinanceReportLoadFailed",
3292
+ "name": "FinanceReport load failed",
3293
+ "payload": [
3294
+ {
3295
+ "name": "message",
3296
+ "type": "string"
2732
3297
  }
2733
3298
  ]
2734
3299
  }
@@ -2752,50 +3317,56 @@
2752
3317
  "effects": [
2753
3318
  [
2754
3319
  "fetch",
2755
- "FinanceReport"
3320
+ "FinanceReport",
3321
+ {
3322
+ "emit": {
3323
+ "failure": "FinanceReportLoadFailed",
3324
+ "success": "FinanceReportLoaded"
3325
+ }
3326
+ }
2756
3327
  ],
2757
3328
  [
2758
3329
  "render-ui",
2759
3330
  "modal",
2760
3331
  {
2761
3332
  "type": "stack",
2762
- "direction": "vertical",
2763
- "gap": "md",
2764
3333
  "children": [
2765
3334
  {
2766
- "type": "stack",
2767
- "direction": "horizontal",
2768
3335
  "gap": "sm",
3336
+ "direction": "horizontal",
2769
3337
  "children": [
2770
3338
  {
2771
- "type": "icon",
3339
+ "size": "md",
2772
3340
  "name": "plus-circle",
2773
- "size": "md"
3341
+ "type": "icon"
2774
3342
  },
2775
3343
  {
2776
- "type": "typography",
2777
3344
  "content": "New FinanceReport",
2778
- "variant": "h3"
3345
+ "variant": "h3",
3346
+ "type": "typography"
2779
3347
  }
2780
- ]
3348
+ ],
3349
+ "type": "stack"
2781
3350
  },
2782
3351
  {
2783
3352
  "type": "divider"
2784
3353
  },
2785
3354
  {
2786
- "type": "form-section",
2787
- "entity": "FinanceReport",
2788
- "mode": "create",
2789
3355
  "submitEvent": "SAVE",
2790
- "cancelEvent": "CLOSE",
2791
3356
  "fields": [
2792
3357
  "title",
2793
3358
  "period",
2794
3359
  "total",
2795
3360
  "generatedAt"
2796
- ]
3361
+ ],
3362
+ "entity": "FinanceReport",
3363
+ "cancelEvent": "CLOSE",
3364
+ "mode": "create",
3365
+ "type": "form-section"
2797
3366
  }
2798
- ]
3367
+ ],
3368
+ "gap": "md",
3369
+ "direction": "vertical"
2799
3370
  }
2800
3371
  ]
2801
3372
  ]
@@ -2810,6 +3381,13 @@
2810
3381
  "modal",
2811
3382
  null
2812
3383
  ],
3384
+ [
3385
+ "render-ui",
3386
+ "main",
3387
+ {
3388
+ "type": "box"
3389
+ }
3390
+ ],
2813
3391
  [
2814
3392
  "notify",
2815
3393
  "Cancelled",
@@ -2832,20 +3410,65 @@
2832
3410
  "render-ui",
2833
3411
  "modal",
2834
3412
  null
3413
+ ],
3414
+ [
3415
+ "render-ui",
3416
+ "main",
3417
+ {
3418
+ "type": "box"
3419
+ }
2835
3420
  ]
2836
3421
  ]
2837
3422
  }
2838
3423
  ]
2839
- }
3424
+ },
3425
+ "scope": "collection"
2840
3426
  },
2841
3427
  {
2842
3428
  "name": "FinanceReportView",
2843
- "linkedEntity": "FinanceReport",
2844
3429
  "category": "interaction",
3430
+ "linkedEntity": "FinanceReport",
2845
3431
  "emits": [
2846
3432
  {
2847
- "event": "SAVE",
2848
- "scope": "internal"
3433
+ "event": "FinanceReportLoaded",
3434
+ "description": "Fired when FinanceReport finishes loading",
3435
+ "scope": "internal",
3436
+ "payload": [
3437
+ {
3438
+ "name": "id",
3439
+ "type": "string",
3440
+ "required": true
3441
+ },
3442
+ {
3443
+ "name": "title",
3444
+ "type": "string",
3445
+ "required": true
3446
+ },
3447
+ {
3448
+ "name": "period",
3449
+ "type": "string",
3450
+ "required": true
3451
+ },
3452
+ {
3453
+ "name": "total",
3454
+ "type": "number"
3455
+ },
3456
+ {
3457
+ "name": "generatedAt",
3458
+ "type": "datetime"
3459
+ }
3460
+ ]
3461
+ },
3462
+ {
3463
+ "event": "FinanceReportLoadFailed",
3464
+ "description": "Fired when FinanceReport fails to load",
3465
+ "scope": "internal",
3466
+ "payload": [
3467
+ {
3468
+ "name": "message",
3469
+ "type": "string"
3470
+ }
3471
+ ]
2849
3472
  }
2850
3473
  ],
2851
3474
  "stateMachine": {
@@ -2865,12 +3488,11 @@
2865
3488
  },
2866
3489
  {
2867
3490
  "key": "VIEW",
2868
- "name": "Open",
3491
+ "name": "View",
2869
3492
  "payload": [
2870
3493
  {
2871
3494
  "name": "id",
2872
- "type": "string",
2873
- "required": true
3495
+ "type": "string"
2874
3496
  }
2875
3497
  ]
2876
3498
  },
@@ -2880,12 +3502,19 @@
2880
3502
  },
2881
3503
  {
2882
3504
  "key": "SAVE",
2883
- "name": "Save",
3505
+ "name": "Save"
3506
+ },
3507
+ {
3508
+ "key": "FinanceReportLoaded",
3509
+ "name": "FinanceReport loaded"
3510
+ },
3511
+ {
3512
+ "key": "FinanceReportLoadFailed",
3513
+ "name": "FinanceReport load failed",
2884
3514
  "payload": [
2885
3515
  {
2886
- "name": "data",
2887
- "type": "object",
2888
- "required": true
3516
+ "name": "message",
3517
+ "type": "string"
2889
3518
  }
2890
3519
  ]
2891
3520
  }
@@ -2911,32 +3540,34 @@
2911
3540
  "fetch",
2912
3541
  "FinanceReport",
2913
3542
  {
2914
- "id": "@payload.id"
3543
+ "id": "@payload.id",
3544
+ "emit": {
3545
+ "success": "FinanceReportLoaded",
3546
+ "failure": "FinanceReportLoadFailed"
3547
+ }
2915
3548
  }
2916
3549
  ],
2917
3550
  [
2918
3551
  "render-ui",
2919
3552
  "modal",
2920
3553
  {
2921
- "type": "stack",
2922
3554
  "direction": "vertical",
2923
- "gap": "md",
2924
3555
  "children": [
2925
3556
  {
2926
3557
  "type": "stack",
2927
- "direction": "horizontal",
2928
3558
  "gap": "sm",
3559
+ "direction": "horizontal",
2929
3560
  "align": "center",
2930
3561
  "children": [
2931
3562
  {
3563
+ "size": "md",
2932
3564
  "type": "icon",
2933
- "name": "eye",
2934
- "size": "md"
3565
+ "name": "eye"
2935
3566
  },
2936
3567
  {
2937
- "type": "typography",
2938
3568
  "variant": "h3",
2939
- "content": "@entity.title"
3569
+ "content": "@entity.title",
3570
+ "type": "typography"
2940
3571
  }
2941
3572
  ]
2942
3573
  },
@@ -2944,55 +3575,55 @@
2944
3575
  "type": "divider"
2945
3576
  },
2946
3577
  {
2947
- "type": "stack",
2948
3578
  "direction": "horizontal",
2949
- "gap": "md",
2950
3579
  "children": [
2951
3580
  {
2952
- "type": "typography",
2953
3581
  "variant": "caption",
2954
- "content": "Title"
3582
+ "content": "Title",
3583
+ "type": "typography"
2955
3584
  },
2956
3585
  {
2957
- "type": "typography",
3586
+ "content": "@entity.title",
2958
3587
  "variant": "body",
2959
- "content": "@entity.title"
3588
+ "type": "typography"
2960
3589
  }
2961
- ]
3590
+ ],
3591
+ "gap": "md",
3592
+ "type": "stack"
2962
3593
  },
2963
3594
  {
3595
+ "gap": "md",
2964
3596
  "type": "stack",
2965
3597
  "direction": "horizontal",
2966
- "gap": "md",
2967
3598
  "children": [
2968
3599
  {
2969
- "type": "typography",
2970
3600
  "variant": "caption",
3601
+ "type": "typography",
2971
3602
  "content": "Period"
2972
3603
  },
2973
3604
  {
2974
- "type": "typography",
2975
3605
  "variant": "body",
2976
- "content": "@entity.period"
3606
+ "content": "@entity.period",
3607
+ "type": "typography"
2977
3608
  }
2978
3609
  ]
2979
3610
  },
2980
3611
  {
2981
- "type": "stack",
2982
- "direction": "horizontal",
2983
- "gap": "md",
2984
3612
  "children": [
2985
3613
  {
2986
- "type": "typography",
2987
3614
  "variant": "caption",
2988
- "content": "Total"
3615
+ "content": "Total",
3616
+ "type": "typography"
2989
3617
  },
2990
3618
  {
2991
- "type": "typography",
2992
3619
  "variant": "body",
3620
+ "type": "typography",
2993
3621
  "content": "@entity.total"
2994
3622
  }
2995
- ]
3623
+ ],
3624
+ "gap": "md",
3625
+ "type": "stack",
3626
+ "direction": "horizontal"
2996
3627
  },
2997
3628
  {
2998
3629
  "type": "stack",
@@ -3000,14 +3631,14 @@
3000
3631
  "gap": "md",
3001
3632
  "children": [
3002
3633
  {
3003
- "type": "typography",
3634
+ "content": "Generated At",
3004
3635
  "variant": "caption",
3005
- "content": "Generated At"
3636
+ "type": "typography"
3006
3637
  },
3007
3638
  {
3639
+ "content": "@entity.generatedAt",
3008
3640
  "type": "typography",
3009
- "variant": "body",
3010
- "content": "@entity.generatedAt"
3641
+ "variant": "body"
3011
3642
  }
3012
3643
  ]
3013
3644
  },
@@ -3016,19 +3647,21 @@
3016
3647
  },
3017
3648
  {
3018
3649
  "type": "stack",
3019
- "direction": "horizontal",
3020
- "gap": "sm",
3021
- "justify": "end",
3022
3650
  "children": [
3023
3651
  {
3024
- "type": "button",
3025
- "label": "Close",
3026
3652
  "event": "CLOSE",
3027
- "variant": "ghost"
3653
+ "type": "button",
3654
+ "variant": "ghost",
3655
+ "label": "Close"
3028
3656
  }
3029
- ]
3657
+ ],
3658
+ "gap": "sm",
3659
+ "justify": "end",
3660
+ "direction": "horizontal"
3030
3661
  }
3031
- ]
3662
+ ],
3663
+ "type": "stack",
3664
+ "gap": "md"
3032
3665
  }
3033
3666
  ]
3034
3667
  ]
@@ -3043,6 +3676,13 @@
3043
3676
  "modal",
3044
3677
  null
3045
3678
  ],
3679
+ [
3680
+ "render-ui",
3681
+ "main",
3682
+ {
3683
+ "type": "box"
3684
+ }
3685
+ ],
3046
3686
  [
3047
3687
  "notify",
3048
3688
  "Cancelled",
@@ -3059,16 +3699,24 @@
3059
3699
  "render-ui",
3060
3700
  "modal",
3061
3701
  null
3702
+ ],
3703
+ [
3704
+ "render-ui",
3705
+ "main",
3706
+ {
3707
+ "type": "box"
3708
+ }
3062
3709
  ]
3063
3710
  ]
3064
3711
  }
3065
3712
  ]
3066
- }
3713
+ },
3714
+ "scope": "collection"
3067
3715
  }
3068
3716
  ],
3069
3717
  "pages": [
3070
3718
  {
3071
- "name": "ReportsPage",
3719
+ "name": "Reports",
3072
3720
  "path": "/reports",
3073
3721
  "traits": [
3074
3722
  {
@@ -3085,4 +3733,4 @@
3085
3733
  ]
3086
3734
  }
3087
3735
  ]
3088
- }
3736
+ }