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