@almadar/std 8.4.2 → 9.0.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 (187) hide show
  1. package/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  2. package/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  3. package/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  4. package/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  5. package/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  6. package/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  8. package/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  9. package/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  10. package/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  11. package/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  12. package/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  14. package/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  15. package/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  16. package/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  17. package/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  18. package/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  19. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1240 -1226
  20. package/behaviors/registry/agent/organisms/std-agent-builder.orb +3031 -3051
  21. package/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2132 -2140
  22. package/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1049 -1035
  23. package/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  24. package/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  25. package/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  26. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  27. package/behaviors/registry/app/organisms/std-cms.orb +587 -587
  28. package/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  29. package/behaviors/registry/app/organisms/std-crm.orb +966 -966
  30. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  31. package/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  32. package/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  33. package/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  34. package/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  35. package/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  36. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  37. package/behaviors/registry/app/organisms/std-lms.orb +876 -876
  38. package/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  39. package/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  40. package/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  41. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  42. package/behaviors/registry/core/atoms/std-browse.orb +67 -67
  43. package/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  44. package/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  45. package/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  46. package/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  47. package/behaviors/registry/core/atoms/std-display.orb +370 -370
  48. package/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  49. package/behaviors/registry/core/atoms/std-filter.orb +63 -63
  50. package/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  51. package/behaviors/registry/core/atoms/std-modal.orb +19 -19
  52. package/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  53. package/behaviors/registry/core/atoms/std-push.orb +50 -60
  54. package/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  55. package/behaviors/registry/core/atoms/std-related.orb +39 -39
  56. package/behaviors/registry/core/atoms/std-search.orb +73 -73
  57. package/behaviors/registry/core/atoms/std-selection.orb +110 -110
  58. package/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  59. package/behaviors/registry/core/molecules/std-cart.orb +60 -60
  60. package/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  61. package/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  62. package/behaviors/registry/core/molecules/std-list.orb +68 -68
  63. package/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  64. package/behaviors/registry/game/atoms/std-collision.orb +140 -140
  65. package/behaviors/registry/game/atoms/std-combat.orb +76 -76
  66. package/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  67. package/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  68. package/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  69. package/behaviors/registry/game/atoms/std-movement.orb +276 -276
  70. package/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  71. package/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  72. package/behaviors/registry/game/atoms/std-quest.orb +129 -129
  73. package/behaviors/registry/game/atoms/std-timer.orb +285 -285
  74. package/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  75. package/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  76. package/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  77. package/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  78. package/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  79. package/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  80. package/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  81. package/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  82. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  83. package/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  84. package/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  85. package/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  86. package/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  87. package/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  88. package/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  89. package/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  90. package/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  91. package/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  92. package/behaviors/registry/service/organisms/std-service-marketplace.orb +1072 -1072
  93. package/behaviors/registry/service/organisms/std-service-research-assistant.orb +979 -979
  94. package/dist/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  95. package/dist/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  96. package/dist/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  97. package/dist/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  98. package/dist/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  99. package/dist/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  100. package/dist/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  101. package/dist/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  102. package/dist/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  103. package/dist/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  104. package/dist/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  105. package/dist/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  106. package/dist/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  107. package/dist/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  108. package/dist/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  109. package/dist/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  110. package/dist/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  111. package/dist/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  112. package/dist/behaviors/registry/agent/organisms/std-agent-assistant.orb +1240 -1226
  113. package/dist/behaviors/registry/agent/organisms/std-agent-builder.orb +3031 -3051
  114. package/dist/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2132 -2140
  115. package/dist/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1049 -1035
  116. package/dist/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  117. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  118. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  119. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  120. package/dist/behaviors/registry/app/organisms/std-cms.orb +587 -587
  121. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  122. package/dist/behaviors/registry/app/organisms/std-crm.orb +966 -966
  123. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  124. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  125. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  126. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  127. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  128. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  129. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  130. package/dist/behaviors/registry/app/organisms/std-lms.orb +876 -876
  131. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  132. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  133. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  134. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  135. package/dist/behaviors/registry/core/atoms/std-browse.orb +67 -67
  136. package/dist/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  137. package/dist/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  138. package/dist/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  139. package/dist/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  140. package/dist/behaviors/registry/core/atoms/std-display.orb +370 -370
  141. package/dist/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  142. package/dist/behaviors/registry/core/atoms/std-filter.orb +63 -63
  143. package/dist/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  144. package/dist/behaviors/registry/core/atoms/std-modal.orb +19 -19
  145. package/dist/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  146. package/dist/behaviors/registry/core/atoms/std-push.orb +50 -60
  147. package/dist/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  148. package/dist/behaviors/registry/core/atoms/std-related.orb +39 -39
  149. package/dist/behaviors/registry/core/atoms/std-search.orb +73 -73
  150. package/dist/behaviors/registry/core/atoms/std-selection.orb +110 -110
  151. package/dist/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  152. package/dist/behaviors/registry/core/molecules/std-cart.orb +60 -60
  153. package/dist/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  154. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  155. package/dist/behaviors/registry/core/molecules/std-list.orb +68 -68
  156. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  157. package/dist/behaviors/registry/game/atoms/std-collision.orb +140 -140
  158. package/dist/behaviors/registry/game/atoms/std-combat.orb +76 -76
  159. package/dist/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  160. package/dist/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  161. package/dist/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  162. package/dist/behaviors/registry/game/atoms/std-movement.orb +276 -276
  163. package/dist/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  164. package/dist/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  165. package/dist/behaviors/registry/game/atoms/std-quest.orb +129 -129
  166. package/dist/behaviors/registry/game/atoms/std-timer.orb +285 -285
  167. package/dist/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  168. package/dist/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  169. package/dist/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  170. package/dist/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  171. package/dist/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  172. package/dist/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  173. package/dist/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  174. package/dist/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  175. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  176. package/dist/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  177. package/dist/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  178. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  179. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  180. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  181. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  182. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  183. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  184. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  185. package/dist/behaviors/registry/service/organisms/std-service-marketplace.orb +1072 -1072
  186. package/dist/behaviors/registry/service/organisms/std-service-research-assistant.orb +979 -979
  187. package/package.json +1 -1
@@ -45,7 +45,7 @@
45
45
  "event": "ChatMessageLoaded",
46
46
  "description": "Fired when ChatMessage finishes loading",
47
47
  "scope": "internal",
48
- "payload": [
48
+ "payloadSchema": [
49
49
  {
50
50
  "name": "data",
51
51
  "type": "[ChatMessage]"
@@ -56,7 +56,7 @@
56
56
  "event": "ChatMessageLoadFailed",
57
57
  "description": "Fired when ChatMessage fails to load",
58
58
  "scope": "internal",
59
- "payload": [
59
+ "payloadSchema": [
60
60
  {
61
61
  "name": "error",
62
62
  "type": "string"
@@ -70,7 +70,7 @@
70
70
  {
71
71
  "event": "ChatMessageSaved",
72
72
  "scope": "internal",
73
- "payload": [
73
+ "payloadSchema": [
74
74
  {
75
75
  "name": "id",
76
76
  "type": "string"
@@ -80,7 +80,7 @@
80
80
  {
81
81
  "event": "ChatMessageSaveFailed",
82
82
  "scope": "internal",
83
- "payload": [
83
+ "payloadSchema": [
84
84
  {
85
85
  "name": "error",
86
86
  "type": "string"
@@ -94,7 +94,7 @@
94
94
  {
95
95
  "event": "ChannelSaved",
96
96
  "scope": "internal",
97
- "payload": [
97
+ "payloadSchema": [
98
98
  {
99
99
  "name": "id",
100
100
  "type": "string"
@@ -104,7 +104,7 @@
104
104
  {
105
105
  "event": "ChannelSaveFailed",
106
106
  "scope": "internal",
107
- "payload": [
107
+ "payloadSchema": [
108
108
  {
109
109
  "name": "error",
110
110
  "type": "string"
@@ -118,7 +118,7 @@
118
118
  {
119
119
  "event": "ChannelUpdated",
120
120
  "scope": "internal",
121
- "payload": [
121
+ "payloadSchema": [
122
122
  {
123
123
  "name": "id",
124
124
  "type": "string"
@@ -128,7 +128,7 @@
128
128
  {
129
129
  "event": "ChannelUpdateFailed",
130
130
  "scope": "internal",
131
- "payload": [
131
+ "payloadSchema": [
132
132
  {
133
133
  "name": "error",
134
134
  "type": "string"
@@ -142,7 +142,7 @@
142
142
  {
143
143
  "event": "ChannelDeleted",
144
144
  "scope": "internal",
145
- "payload": [
145
+ "payloadSchema": [
146
146
  {
147
147
  "name": "id",
148
148
  "type": "string"
@@ -152,7 +152,7 @@
152
152
  {
153
153
  "event": "ChannelDeleteFailed",
154
154
  "scope": "internal",
155
- "payload": [
155
+ "payloadSchema": [
156
156
  {
157
157
  "name": "error",
158
158
  "type": "string"
@@ -189,7 +189,7 @@
189
189
  {
190
190
  "key": "ChatMessageLoaded",
191
191
  "name": "ChatMessage loaded",
192
- "payload": [
192
+ "payloadSchema": [
193
193
  {
194
194
  "name": "data",
195
195
  "type": "[ChatMessage]"
@@ -199,7 +199,7 @@
199
199
  {
200
200
  "key": "ChatMessageLoadFailed",
201
201
  "name": "ChatMessage load failed",
202
- "payload": [
202
+ "payloadSchema": [
203
203
  {
204
204
  "name": "error",
205
205
  "type": "string"
@@ -213,7 +213,7 @@
213
213
  {
214
214
  "key": "ChatMessageSaved",
215
215
  "name": "ChatMessage saved",
216
- "payload": [
216
+ "payloadSchema": [
217
217
  {
218
218
  "name": "id",
219
219
  "type": "string"
@@ -223,7 +223,7 @@
223
223
  {
224
224
  "key": "ChatMessageSaveFailed",
225
225
  "name": "ChatMessage save failed",
226
- "payload": [
226
+ "payloadSchema": [
227
227
  {
228
228
  "name": "error",
229
229
  "type": "string"
@@ -237,7 +237,7 @@
237
237
  {
238
238
  "key": "ChannelSaved",
239
239
  "name": "Channel saved",
240
- "payload": [
240
+ "payloadSchema": [
241
241
  {
242
242
  "name": "id",
243
243
  "type": "string"
@@ -247,7 +247,7 @@
247
247
  {
248
248
  "key": "ChannelSaveFailed",
249
249
  "name": "Channel save failed",
250
- "payload": [
250
+ "payloadSchema": [
251
251
  {
252
252
  "name": "error",
253
253
  "type": "string"
@@ -261,7 +261,7 @@
261
261
  {
262
262
  "key": "ChannelUpdated",
263
263
  "name": "Channel updated",
264
- "payload": [
264
+ "payloadSchema": [
265
265
  {
266
266
  "name": "id",
267
267
  "type": "string"
@@ -271,7 +271,7 @@
271
271
  {
272
272
  "key": "ChannelUpdateFailed",
273
273
  "name": "Channel update failed",
274
- "payload": [
274
+ "payloadSchema": [
275
275
  {
276
276
  "name": "error",
277
277
  "type": "string"
@@ -285,7 +285,7 @@
285
285
  {
286
286
  "key": "ChannelDeleted",
287
287
  "name": "Channel deleted",
288
- "payload": [
288
+ "payloadSchema": [
289
289
  {
290
290
  "name": "id",
291
291
  "type": "string"
@@ -295,7 +295,7 @@
295
295
  {
296
296
  "key": "ChannelDeleteFailed",
297
297
  "name": "Channel delete failed",
298
- "payload": [
298
+ "payloadSchema": [
299
299
  {
300
300
  "name": "error",
301
301
  "type": "string"
@@ -309,7 +309,7 @@
309
309
  {
310
310
  "key": "VIEW",
311
311
  "name": "View",
312
- "payload": [
312
+ "payloadSchema": [
313
313
  {
314
314
  "name": "id",
315
315
  "type": "string",
@@ -342,22 +342,22 @@
342
342
  "render-ui",
343
343
  "main",
344
344
  {
345
- "direction": "vertical",
346
- "gap": "md",
347
345
  "className": "py-12",
348
- "type": "stack",
346
+ "direction": "vertical",
349
347
  "children": [
350
348
  {
351
349
  "type": "spinner"
352
350
  },
353
351
  {
354
- "variant": "caption",
355
- "type": "typography",
356
352
  "color": "muted",
353
+ "type": "typography",
354
+ "variant": "caption",
357
355
  "content": "Loading…"
358
356
  }
359
357
  ],
360
- "align": "center"
358
+ "gap": "md",
359
+ "align": "center",
360
+ "type": "stack"
361
361
  }
362
362
  ]
363
363
  ]
@@ -372,44 +372,40 @@
372
372
  "main",
373
373
  {
374
374
  "appName": "Realtime Chat",
375
+ "type": "dashboard-layout",
375
376
  "navItems": [
376
377
  {
377
378
  "icon": "layout-list",
378
- "href": "/chat",
379
- "label": "Chat"
379
+ "label": "Chat",
380
+ "href": "/chat"
380
381
  },
381
382
  {
382
- "label": "Channels",
383
383
  "href": "/channels",
384
+ "label": "Channels",
384
385
  "icon": "hash"
385
386
  },
386
387
  {
387
388
  "href": "/online",
388
- "label": "Online",
389
- "icon": "layout-list"
389
+ "icon": "layout-list",
390
+ "label": "Online"
390
391
  }
391
392
  ],
392
- "type": "dashboard-layout",
393
393
  "children": [
394
394
  {
395
- "gap": "lg",
396
- "type": "stack",
397
- "direction": "vertical",
398
- "className": "max-w-5xl mx-auto w-full",
399
395
  "children": [
400
396
  {
401
- "direction": "horizontal",
397
+ "type": "stack",
398
+ "justify": "between",
402
399
  "gap": "md",
400
+ "direction": "horizontal",
403
401
  "align": "center",
404
- "type": "stack",
405
402
  "children": [
406
403
  {
407
- "align": "center",
408
- "type": "stack",
404
+ "direction": "horizontal",
409
405
  "children": [
410
406
  {
411
- "name": "message-circle",
412
- "type": "icon"
407
+ "type": "icon",
408
+ "name": "message-circle"
413
409
  },
414
410
  {
415
411
  "content": "Chat",
@@ -417,60 +413,64 @@
417
413
  "variant": "h2"
418
414
  }
419
415
  ],
420
- "direction": "horizontal",
421
- "gap": "sm"
416
+ "gap": "sm",
417
+ "type": "stack",
418
+ "align": "center"
422
419
  },
423
420
  {
424
- "gap": "sm",
425
421
  "direction": "horizontal",
426
422
  "children": [
427
423
  {
428
- "icon": "edit",
424
+ "label": "Compose",
429
425
  "action": "COMPOSE",
430
426
  "variant": "primary",
431
427
  "type": "button",
432
- "label": "Compose"
428
+ "icon": "edit"
433
429
  }
434
430
  ],
435
- "type": "stack"
431
+ "type": "stack",
432
+ "gap": "sm"
436
433
  }
437
- ],
438
- "justify": "between"
434
+ ]
439
435
  },
440
436
  {
441
437
  "type": "divider"
442
438
  },
443
439
  {
444
440
  "fields": [],
445
- "senderField": "sender",
446
- "gap": "sm",
447
441
  "type": "data-list",
448
442
  "variant": "message",
449
- "entity": "@payload.data",
450
- "itemActions": [
451
- {
452
- "variant": "ghost",
453
- "label": "View",
454
- "event": "VIEW"
455
- }
456
- ],
457
443
  "columns": [
458
444
  {
459
- "variant": "h4",
460
- "name": "sender"
445
+ "name": "sender",
446
+ "variant": "h4"
461
447
  },
462
448
  {
463
- "name": "content",
464
- "variant": "body"
449
+ "variant": "body",
450
+ "name": "content"
465
451
  },
466
452
  {
467
- "format": "date",
468
453
  "name": "timestamp",
469
- "variant": "caption"
454
+ "variant": "caption",
455
+ "format": "date"
470
456
  }
471
- ]
457
+ ],
458
+ "itemActions": [
459
+ {
460
+ "event": "VIEW",
461
+ "variant": "ghost",
462
+ "label": "View"
463
+ }
464
+ ],
465
+ "gap": "sm",
466
+ "senderField": "sender",
467
+ "entity": "@payload.data"
472
468
  }
473
- ]
469
+ ],
470
+ "type": "stack",
471
+ "className": "max-w-5xl mx-auto w-full",
472
+ "gap": "lg",
473
+ "direction": "vertical"
474
474
  }
475
475
  ]
476
476
  }
@@ -486,36 +486,36 @@
486
486
  "render-ui",
487
487
  "main",
488
488
  {
489
+ "gap": "md",
489
490
  "className": "py-12",
490
491
  "children": [
491
492
  {
492
- "color": "destructive",
493
493
  "type": "icon",
494
- "name": "alert-triangle"
494
+ "name": "alert-triangle",
495
+ "color": "destructive"
495
496
  },
496
497
  {
498
+ "content": "Failed to load chatmessage",
497
499
  "type": "typography",
498
- "variant": "h3",
499
- "content": "Failed to load chatmessage"
500
+ "variant": "h3"
500
501
  },
501
502
  {
502
503
  "variant": "body",
504
+ "color": "muted",
503
505
  "content": "@payload.error",
504
- "type": "typography",
505
- "color": "muted"
506
+ "type": "typography"
506
507
  },
507
508
  {
509
+ "type": "button",
508
510
  "label": "Retry",
509
- "variant": "primary",
510
- "icon": "rotate-ccw",
511
511
  "action": "INIT",
512
- "type": "button"
512
+ "icon": "rotate-ccw",
513
+ "variant": "primary"
513
514
  }
514
515
  ],
516
+ "type": "stack",
515
517
  "direction": "vertical",
516
- "gap": "md",
517
- "align": "center",
518
- "type": "stack"
518
+ "align": "center"
519
519
  }
520
520
  ]
521
521
  ]
@@ -536,7 +536,7 @@
536
536
  "event": "ChatMessageLoadFailed",
537
537
  "description": "Fired when ChatMessage fails to load",
538
538
  "scope": "internal",
539
- "payload": [
539
+ "payloadSchema": [
540
540
  {
541
541
  "name": "error",
542
542
  "type": "string"
@@ -551,7 +551,7 @@
551
551
  "event": "ChatMessageLoaded",
552
552
  "description": "Fired when ChatMessage finishes loading",
553
553
  "scope": "internal",
554
- "payload": [
554
+ "payloadSchema": [
555
555
  {
556
556
  "name": "data",
557
557
  "type": "[ChatMessage]"
@@ -561,7 +561,7 @@
561
561
  {
562
562
  "event": "ChatMessageSaveFailed",
563
563
  "scope": "internal",
564
- "payload": [
564
+ "payloadSchema": [
565
565
  {
566
566
  "name": "error",
567
567
  "type": "string"
@@ -575,7 +575,7 @@
575
575
  {
576
576
  "event": "ChatMessageSaved",
577
577
  "scope": "internal",
578
- "payload": [
578
+ "payloadSchema": [
579
579
  {
580
580
  "name": "id",
581
581
  "type": "string"
@@ -609,7 +609,7 @@
609
609
  {
610
610
  "key": "SEND",
611
611
  "name": "Send",
612
- "payload": [
612
+ "payloadSchema": [
613
613
  {
614
614
  "name": "data",
615
615
  "type": "object",
@@ -620,7 +620,7 @@
620
620
  {
621
621
  "key": "ChatMessageLoadFailed",
622
622
  "name": "ChatMessage load failed",
623
- "payload": [
623
+ "payloadSchema": [
624
624
  {
625
625
  "name": "error",
626
626
  "type": "string"
@@ -634,7 +634,7 @@
634
634
  {
635
635
  "key": "ChatMessageLoaded",
636
636
  "name": "ChatMessage loaded",
637
- "payload": [
637
+ "payloadSchema": [
638
638
  {
639
639
  "name": "data",
640
640
  "type": "[ChatMessage]"
@@ -644,7 +644,7 @@
644
644
  {
645
645
  "key": "ChatMessageSaveFailed",
646
646
  "name": "ChatMessage save failed",
647
- "payload": [
647
+ "payloadSchema": [
648
648
  {
649
649
  "name": "error",
650
650
  "type": "string"
@@ -658,7 +658,7 @@
658
658
  {
659
659
  "key": "ChatMessageSaved",
660
660
  "name": "ChatMessage saved",
661
- "payload": [
661
+ "payloadSchema": [
662
662
  {
663
663
  "name": "id",
664
664
  "type": "string"
@@ -687,10 +687,12 @@
687
687
  "render-ui",
688
688
  "modal",
689
689
  {
690
- "gap": "md",
690
+ "direction": "vertical",
691
691
  "children": [
692
692
  {
693
693
  "direction": "horizontal",
694
+ "gap": "sm",
695
+ "type": "stack",
694
696
  "children": [
695
697
  {
696
698
  "name": "edit",
@@ -701,17 +703,15 @@
701
703
  "variant": "h3",
702
704
  "content": "New ChatMessage"
703
705
  }
704
- ],
705
- "gap": "sm",
706
- "type": "stack"
706
+ ]
707
707
  },
708
708
  {
709
709
  "type": "divider"
710
710
  },
711
711
  {
712
- "mode": "create",
713
- "type": "form-section",
714
712
  "submitEvent": "SEND",
713
+ "type": "form-section",
714
+ "mode": "create",
715
715
  "fields": [
716
716
  "sender",
717
717
  "content",
@@ -721,8 +721,8 @@
721
721
  "cancelEvent": "CLOSE"
722
722
  }
723
723
  ],
724
- "direction": "vertical",
725
- "type": "stack"
724
+ "type": "stack",
725
+ "gap": "md"
726
726
  }
727
727
  ]
728
728
  ]
@@ -795,7 +795,7 @@
795
795
  "event": "ChatMessageLoaded",
796
796
  "description": "Fired when ChatMessage finishes loading",
797
797
  "scope": "internal",
798
- "payload": [
798
+ "payloadSchema": [
799
799
  {
800
800
  "name": "data",
801
801
  "type": "[ChatMessage]"
@@ -806,7 +806,7 @@
806
806
  "event": "ChatMessageLoadFailed",
807
807
  "description": "Fired when ChatMessage fails to load",
808
808
  "scope": "internal",
809
- "payload": [
809
+ "payloadSchema": [
810
810
  {
811
811
  "name": "error",
812
812
  "type": "string"
@@ -836,7 +836,7 @@
836
836
  {
837
837
  "key": "VIEW",
838
838
  "name": "View",
839
- "payload": [
839
+ "payloadSchema": [
840
840
  {
841
841
  "name": "id",
842
842
  "type": "string",
@@ -851,7 +851,7 @@
851
851
  {
852
852
  "key": "SAVE",
853
853
  "name": "Save",
854
- "payload": [
854
+ "payloadSchema": [
855
855
  {
856
856
  "name": "data",
857
857
  "type": "object",
@@ -862,7 +862,7 @@
862
862
  {
863
863
  "key": "ChatMessageLoaded",
864
864
  "name": "ChatMessage loaded",
865
- "payload": [
865
+ "payloadSchema": [
866
866
  {
867
867
  "name": "data",
868
868
  "type": "[ChatMessage]"
@@ -872,7 +872,7 @@
872
872
  {
873
873
  "key": "ChatMessageLoadFailed",
874
874
  "name": "ChatMessage load failed",
875
- "payload": [
875
+ "payloadSchema": [
876
876
  {
877
877
  "name": "error",
878
878
  "type": "string"
@@ -907,8 +907,8 @@
907
907
  {
908
908
  "id": "@payload.id",
909
909
  "emit": {
910
- "failure": "ChatMessageLoadFailed",
911
- "success": "ChatMessageLoaded"
910
+ "success": "ChatMessageLoaded",
911
+ "failure": "ChatMessageLoadFailed"
912
912
  }
913
913
  }
914
914
  ],
@@ -921,14 +921,14 @@
921
921
  "gap": "md",
922
922
  "children": [
923
923
  {
924
- "gap": "sm",
925
- "direction": "horizontal",
926
924
  "align": "center",
925
+ "direction": "horizontal",
926
+ "gap": "sm",
927
927
  "type": "stack",
928
928
  "children": [
929
929
  {
930
- "type": "icon",
931
- "name": "eye"
930
+ "name": "eye",
931
+ "type": "icon"
932
932
  },
933
933
  {
934
934
  "content": "@entity.sender",
@@ -942,58 +942,58 @@
942
942
  },
943
943
  {
944
944
  "type": "stack",
945
- "direction": "horizontal",
945
+ "gap": "md",
946
946
  "children": [
947
947
  {
948
- "variant": "caption",
949
948
  "content": "Sender",
949
+ "variant": "caption",
950
950
  "type": "typography"
951
951
  },
952
952
  {
953
- "type": "typography",
953
+ "variant": "body",
954
954
  "content": "@entity.sender",
955
- "variant": "body"
955
+ "type": "typography"
956
956
  }
957
957
  ],
958
- "gap": "md"
958
+ "direction": "horizontal"
959
959
  },
960
960
  {
961
- "type": "stack",
962
- "gap": "md",
963
- "direction": "horizontal",
964
961
  "children": [
965
962
  {
966
963
  "type": "typography",
967
- "variant": "caption",
968
- "content": "Content"
964
+ "content": "Content",
965
+ "variant": "caption"
969
966
  },
970
967
  {
971
968
  "content": "@entity.content",
972
969
  "type": "typography",
973
970
  "variant": "body"
974
971
  }
975
- ]
972
+ ],
973
+ "gap": "md",
974
+ "direction": "horizontal",
975
+ "type": "stack"
976
976
  },
977
977
  {
978
- "type": "stack",
978
+ "direction": "horizontal",
979
979
  "gap": "md",
980
+ "type": "stack",
980
981
  "children": [
981
982
  {
982
- "content": "Channel",
983
+ "type": "typography",
983
984
  "variant": "caption",
984
- "type": "typography"
985
+ "content": "Channel"
985
986
  },
986
987
  {
987
988
  "variant": "body",
988
989
  "content": "@entity.channel",
989
990
  "type": "typography"
990
991
  }
991
- ],
992
- "direction": "horizontal"
992
+ ]
993
993
  },
994
994
  {
995
995
  "gap": "md",
996
- "direction": "horizontal",
996
+ "type": "stack",
997
997
  "children": [
998
998
  {
999
999
  "variant": "caption",
@@ -1006,24 +1006,24 @@
1006
1006
  "type": "typography"
1007
1007
  }
1008
1008
  ],
1009
- "type": "stack"
1009
+ "direction": "horizontal"
1010
1010
  },
1011
1011
  {
1012
1012
  "type": "divider"
1013
1013
  },
1014
1014
  {
1015
- "direction": "horizontal",
1016
1015
  "type": "stack",
1017
- "justify": "end",
1018
1016
  "children": [
1019
1017
  {
1020
- "action": "CLOSE",
1021
1018
  "type": "button",
1022
1019
  "label": "Close",
1023
- "variant": "ghost"
1020
+ "variant": "ghost",
1021
+ "action": "CLOSE"
1024
1022
  }
1025
1023
  ],
1026
- "gap": "sm"
1024
+ "gap": "sm",
1025
+ "direction": "horizontal",
1026
+ "justify": "end"
1027
1027
  }
1028
1028
  ]
1029
1029
  }
@@ -1142,7 +1142,7 @@
1142
1142
  "event": "ChannelLoaded",
1143
1143
  "description": "Fired when Channel finishes loading",
1144
1144
  "scope": "internal",
1145
- "payload": [
1145
+ "payloadSchema": [
1146
1146
  {
1147
1147
  "name": "data",
1148
1148
  "type": "[Channel]"
@@ -1153,7 +1153,7 @@
1153
1153
  "event": "ChannelLoadFailed",
1154
1154
  "description": "Fired when Channel fails to load",
1155
1155
  "scope": "internal",
1156
- "payload": [
1156
+ "payloadSchema": [
1157
1157
  {
1158
1158
  "name": "error",
1159
1159
  "type": "string"
@@ -1206,7 +1206,7 @@
1206
1206
  {
1207
1207
  "key": "ChannelLoaded",
1208
1208
  "name": "Channel loaded",
1209
- "payload": [
1209
+ "payloadSchema": [
1210
1210
  {
1211
1211
  "name": "data",
1212
1212
  "type": "[Channel]"
@@ -1216,7 +1216,7 @@
1216
1216
  {
1217
1217
  "key": "ChannelLoadFailed",
1218
1218
  "name": "Channel load failed",
1219
- "payload": [
1219
+ "payloadSchema": [
1220
1220
  {
1221
1221
  "name": "error",
1222
1222
  "type": "string"
@@ -1249,7 +1249,6 @@
1249
1249
  "main",
1250
1250
  {
1251
1251
  "gap": "md",
1252
- "align": "center",
1253
1252
  "type": "stack",
1254
1253
  "className": "py-12",
1255
1254
  "children": [
@@ -1257,12 +1256,13 @@
1257
1256
  "type": "spinner"
1258
1257
  },
1259
1258
  {
1260
- "color": "muted",
1261
- "variant": "caption",
1262
1259
  "type": "typography",
1260
+ "variant": "caption",
1261
+ "color": "muted",
1263
1262
  "content": "Loading…"
1264
1263
  }
1265
1264
  ],
1265
+ "align": "center",
1266
1266
  "direction": "vertical"
1267
1267
  }
1268
1268
  ]
@@ -1277,88 +1277,88 @@
1277
1277
  "render-ui",
1278
1278
  "main",
1279
1279
  {
1280
+ "type": "dashboard-layout",
1280
1281
  "children": [
1281
1282
  {
1282
1283
  "direction": "vertical",
1283
- "type": "stack",
1284
- "className": "max-w-5xl mx-auto w-full",
1284
+ "gap": "lg",
1285
1285
  "children": [
1286
1286
  {
1287
+ "justify": "between",
1287
1288
  "align": "center",
1288
- "gap": "md",
1289
+ "type": "stack",
1289
1290
  "children": [
1290
1291
  {
1291
- "direction": "horizontal",
1292
- "type": "stack",
1293
- "gap": "sm",
1294
- "align": "center",
1295
1292
  "children": [
1296
1293
  {
1297
1294
  "type": "icon",
1298
1295
  "name": "hash"
1299
1296
  },
1300
1297
  {
1298
+ "variant": "h2",
1301
1299
  "content": "Channels",
1302
- "type": "typography",
1303
- "variant": "h2"
1300
+ "type": "typography"
1304
1301
  }
1305
- ]
1306
- },
1307
- {
1302
+ ],
1308
1303
  "gap": "sm",
1309
- "direction": "horizontal",
1310
1304
  "type": "stack",
1305
+ "align": "center",
1306
+ "direction": "horizontal"
1307
+ },
1308
+ {
1311
1309
  "children": [
1312
1310
  {
1313
- "variant": "primary",
1314
- "action": "CREATE",
1315
1311
  "icon": "plus",
1312
+ "action": "CREATE",
1313
+ "type": "button",
1316
1314
  "label": "Create Channel",
1317
- "type": "button"
1315
+ "variant": "primary"
1318
1316
  }
1319
- ]
1317
+ ],
1318
+ "gap": "sm",
1319
+ "type": "stack",
1320
+ "direction": "horizontal"
1320
1321
  }
1321
1322
  ],
1322
- "type": "stack",
1323
- "direction": "horizontal",
1324
- "justify": "between"
1323
+ "gap": "md",
1324
+ "direction": "horizontal"
1325
1325
  },
1326
1326
  {
1327
1327
  "type": "divider"
1328
1328
  },
1329
1329
  {
1330
+ "fields": [],
1331
+ "type": "data-list",
1330
1332
  "itemActions": [
1331
1333
  {
1332
- "variant": "ghost",
1334
+ "label": "View",
1333
1335
  "event": "VIEW",
1334
- "label": "View"
1336
+ "variant": "ghost"
1335
1337
  },
1336
1338
  {
1337
- "event": "EDIT",
1338
1339
  "label": "Edit",
1339
- "variant": "ghost"
1340
+ "variant": "ghost",
1341
+ "event": "EDIT"
1340
1342
  },
1341
1343
  {
1342
- "event": "DELETE",
1343
1344
  "variant": "danger",
1345
+ "event": "DELETE",
1344
1346
  "label": "Delete"
1345
1347
  }
1346
1348
  ],
1347
- "type": "data-list",
1348
- "gap": "sm",
1349
1349
  "variant": "card",
1350
- "fields": [],
1350
+ "gap": "sm",
1351
1351
  "columns": [
1352
1352
  {
1353
1353
  "name": "name",
1354
- "variant": "h3",
1355
- "icon": "hash"
1354
+ "icon": "hash",
1355
+ "variant": "h3"
1356
1356
  },
1357
1357
  {
1358
+ "label": "Members",
1358
1359
  "name": "memberCount",
1359
- "format": "number",
1360
1360
  "variant": "badge",
1361
- "label": "Members"
1361
+ "format": "number"
1362
1362
  },
1363
1363
  {
1364
1364
  "name": "description",
@@ -1366,18 +1366,18 @@
1366
1366
  },
1367
1367
  {
1368
1368
  "label": "Private",
1369
- "variant": "body",
1370
1369
  "format": "boolean",
1370
+ "variant": "body",
1371
1371
  "name": "isPrivate"
1372
1372
  }
1373
1373
  ],
1374
1374
  "entity": "@payload.data"
1375
1375
  }
1376
1376
  ],
1377
- "gap": "lg"
1377
+ "type": "stack",
1378
+ "className": "max-w-5xl mx-auto w-full"
1378
1379
  }
1379
1380
  ],
1380
- "type": "dashboard-layout",
1381
1381
  "navItems": [
1382
1382
  {
1383
1383
  "href": "/chat",
@@ -1385,13 +1385,13 @@
1385
1385
  "icon": "layout-list"
1386
1386
  },
1387
1387
  {
1388
+ "icon": "hash",
1388
1389
  "label": "Channels",
1389
- "href": "/channels",
1390
- "icon": "hash"
1390
+ "href": "/channels"
1391
1391
  },
1392
1392
  {
1393
- "href": "/online",
1394
1393
  "icon": "layout-list",
1394
+ "href": "/online",
1395
1395
  "label": "Online"
1396
1396
  }
1397
1397
  ],
@@ -1409,36 +1409,36 @@
1409
1409
  "render-ui",
1410
1410
  "main",
1411
1411
  {
1412
+ "gap": "md",
1412
1413
  "align": "center",
1414
+ "type": "stack",
1415
+ "className": "py-12",
1416
+ "direction": "vertical",
1413
1417
  "children": [
1414
1418
  {
1415
- "type": "icon",
1416
1419
  "name": "alert-triangle",
1420
+ "type": "icon",
1417
1421
  "color": "destructive"
1418
1422
  },
1419
1423
  {
1420
- "variant": "h3",
1421
1424
  "type": "typography",
1425
+ "variant": "h3",
1422
1426
  "content": "Failed to load channel"
1423
1427
  },
1424
1428
  {
1429
+ "variant": "body",
1425
1430
  "content": "@payload.error",
1426
1431
  "color": "muted",
1427
- "type": "typography",
1428
- "variant": "body"
1432
+ "type": "typography"
1429
1433
  },
1430
1434
  {
1431
- "type": "button",
1432
- "action": "INIT",
1433
1435
  "icon": "rotate-ccw",
1434
1436
  "label": "Retry",
1435
- "variant": "primary"
1437
+ "action": "INIT",
1438
+ "variant": "primary",
1439
+ "type": "button"
1436
1440
  }
1437
- ],
1438
- "type": "stack",
1439
- "gap": "md",
1440
- "className": "py-12",
1441
- "direction": "vertical"
1441
+ ]
1442
1442
  }
1443
1443
  ]
1444
1444
  ]
@@ -1459,7 +1459,7 @@
1459
1459
  "event": "ChannelLoadFailed",
1460
1460
  "description": "Fired when Channel fails to load",
1461
1461
  "scope": "internal",
1462
- "payload": [
1462
+ "payloadSchema": [
1463
1463
  {
1464
1464
  "name": "error",
1465
1465
  "type": "string"
@@ -1474,7 +1474,7 @@
1474
1474
  "event": "ChannelLoaded",
1475
1475
  "description": "Fired when Channel finishes loading",
1476
1476
  "scope": "internal",
1477
- "payload": [
1477
+ "payloadSchema": [
1478
1478
  {
1479
1479
  "name": "data",
1480
1480
  "type": "[Channel]"
@@ -1484,7 +1484,7 @@
1484
1484
  {
1485
1485
  "event": "ChannelSaveFailed",
1486
1486
  "scope": "internal",
1487
- "payload": [
1487
+ "payloadSchema": [
1488
1488
  {
1489
1489
  "name": "error",
1490
1490
  "type": "string"
@@ -1498,7 +1498,7 @@
1498
1498
  {
1499
1499
  "event": "ChannelSaved",
1500
1500
  "scope": "internal",
1501
- "payload": [
1501
+ "payloadSchema": [
1502
1502
  {
1503
1503
  "name": "id",
1504
1504
  "type": "string"
@@ -1532,7 +1532,7 @@
1532
1532
  {
1533
1533
  "key": "SAVE",
1534
1534
  "name": "Save",
1535
- "payload": [
1535
+ "payloadSchema": [
1536
1536
  {
1537
1537
  "name": "data",
1538
1538
  "type": "string"
@@ -1546,7 +1546,7 @@
1546
1546
  {
1547
1547
  "key": "ChannelLoadFailed",
1548
1548
  "name": "Channel load failed",
1549
- "payload": [
1549
+ "payloadSchema": [
1550
1550
  {
1551
1551
  "name": "error",
1552
1552
  "type": "string"
@@ -1560,7 +1560,7 @@
1560
1560
  {
1561
1561
  "key": "ChannelLoaded",
1562
1562
  "name": "Channel loaded",
1563
- "payload": [
1563
+ "payloadSchema": [
1564
1564
  {
1565
1565
  "name": "data",
1566
1566
  "type": "[Channel]"
@@ -1570,7 +1570,7 @@
1570
1570
  {
1571
1571
  "key": "ChannelSaveFailed",
1572
1572
  "name": "Channel save failed",
1573
- "payload": [
1573
+ "payloadSchema": [
1574
1574
  {
1575
1575
  "name": "error",
1576
1576
  "type": "string"
@@ -1584,7 +1584,7 @@
1584
1584
  {
1585
1585
  "key": "ChannelSaved",
1586
1586
  "name": "Channel saved",
1587
- "payload": [
1587
+ "payloadSchema": [
1588
1588
  {
1589
1589
  "name": "id",
1590
1590
  "type": "string"
@@ -1614,8 +1614,8 @@
1614
1614
  "Channel",
1615
1615
  {
1616
1616
  "emit": {
1617
- "success": "ChannelLoaded",
1618
- "failure": "ChannelLoadFailed"
1617
+ "failure": "ChannelLoadFailed",
1618
+ "success": "ChannelLoaded"
1619
1619
  }
1620
1620
  }
1621
1621
  ],
@@ -1628,20 +1628,20 @@
1628
1628
  "type": "stack",
1629
1629
  "children": [
1630
1630
  {
1631
- "direction": "horizontal",
1632
- "gap": "sm",
1633
- "type": "stack",
1634
1631
  "children": [
1635
1632
  {
1636
- "name": "plus-circle",
1637
- "type": "icon"
1633
+ "type": "icon",
1634
+ "name": "plus-circle"
1638
1635
  },
1639
1636
  {
1640
- "type": "typography",
1641
1637
  "content": "Create Channel",
1642
- "variant": "h3"
1638
+ "variant": "h3",
1639
+ "type": "typography"
1643
1640
  }
1644
- ]
1641
+ ],
1642
+ "direction": "horizontal",
1643
+ "gap": "sm",
1644
+ "type": "stack"
1645
1645
  },
1646
1646
  {
1647
1647
  "type": "divider"
@@ -1649,15 +1649,15 @@
1649
1649
  {
1650
1650
  "type": "form-section",
1651
1651
  "mode": "create",
1652
- "cancelEvent": "CLOSE",
1653
1652
  "submitEvent": "SAVE",
1654
1653
  "fields": [
1655
1654
  "name",
1656
1655
  "description",
1657
1656
  "memberCount",
1658
1657
  "isPrivate"
1659
- ]
1660
- }
1658
+ ],
1659
+ "cancelEvent": "CLOSE"
1660
+ }
1661
1661
  ]
1662
1662
  }
1663
1663
  ]
@@ -1738,7 +1738,7 @@
1738
1738
  "event": "ChannelLoadFailed",
1739
1739
  "description": "Fired when Channel fails to load",
1740
1740
  "scope": "internal",
1741
- "payload": [
1741
+ "payloadSchema": [
1742
1742
  {
1743
1743
  "name": "error",
1744
1744
  "type": "string"
@@ -1753,7 +1753,7 @@
1753
1753
  "event": "ChannelLoaded",
1754
1754
  "description": "Fired when Channel finishes loading",
1755
1755
  "scope": "internal",
1756
- "payload": [
1756
+ "payloadSchema": [
1757
1757
  {
1758
1758
  "name": "data",
1759
1759
  "type": "[Channel]"
@@ -1763,7 +1763,7 @@
1763
1763
  {
1764
1764
  "event": "ChannelUpdateFailed",
1765
1765
  "scope": "internal",
1766
- "payload": [
1766
+ "payloadSchema": [
1767
1767
  {
1768
1768
  "name": "error",
1769
1769
  "type": "string"
@@ -1777,7 +1777,7 @@
1777
1777
  {
1778
1778
  "event": "ChannelUpdated",
1779
1779
  "scope": "internal",
1780
- "payload": [
1780
+ "payloadSchema": [
1781
1781
  {
1782
1782
  "name": "id",
1783
1783
  "type": "string"
@@ -1803,7 +1803,7 @@
1803
1803
  {
1804
1804
  "key": "EDIT",
1805
1805
  "name": "Edit",
1806
- "payload": [
1806
+ "payloadSchema": [
1807
1807
  {
1808
1808
  "name": "id",
1809
1809
  "type": "string"
@@ -1821,7 +1821,7 @@
1821
1821
  {
1822
1822
  "key": "SAVE",
1823
1823
  "name": "Save",
1824
- "payload": [
1824
+ "payloadSchema": [
1825
1825
  {
1826
1826
  "name": "data",
1827
1827
  "type": "string"
@@ -1835,7 +1835,7 @@
1835
1835
  {
1836
1836
  "key": "ChannelLoadFailed",
1837
1837
  "name": "Channel load failed",
1838
- "payload": [
1838
+ "payloadSchema": [
1839
1839
  {
1840
1840
  "name": "error",
1841
1841
  "type": "string"
@@ -1849,7 +1849,7 @@
1849
1849
  {
1850
1850
  "key": "ChannelLoaded",
1851
1851
  "name": "Channel loaded",
1852
- "payload": [
1852
+ "payloadSchema": [
1853
1853
  {
1854
1854
  "name": "data",
1855
1855
  "type": "[Channel]"
@@ -1859,7 +1859,7 @@
1859
1859
  {
1860
1860
  "key": "ChannelUpdateFailed",
1861
1861
  "name": "Channel update failed",
1862
- "payload": [
1862
+ "payloadSchema": [
1863
1863
  {
1864
1864
  "name": "error",
1865
1865
  "type": "string"
@@ -1873,7 +1873,7 @@
1873
1873
  {
1874
1874
  "key": "ChannelUpdated",
1875
1875
  "name": "Channel updated",
1876
- "payload": [
1876
+ "payloadSchema": [
1877
1877
  {
1878
1878
  "name": "id",
1879
1879
  "type": "string"
@@ -1902,11 +1902,11 @@
1902
1902
  "fetch",
1903
1903
  "Channel",
1904
1904
  {
1905
+ "id": "@payload.id",
1905
1906
  "emit": {
1906
- "success": "ChannelLoaded",
1907
- "failure": "ChannelLoadFailed"
1908
- },
1909
- "id": "@payload.id"
1907
+ "failure": "ChannelLoadFailed",
1908
+ "success": "ChannelLoaded"
1909
+ }
1910
1910
  }
1911
1911
  ],
1912
1912
  [
@@ -1914,13 +1914,12 @@
1914
1914
  "modal",
1915
1915
  {
1916
1916
  "direction": "vertical",
1917
- "type": "stack",
1918
1917
  "gap": "md",
1918
+ "type": "stack",
1919
1919
  "children": [
1920
1920
  {
1921
1921
  "type": "stack",
1922
1922
  "gap": "sm",
1923
- "direction": "horizontal",
1924
1923
  "children": [
1925
1924
  {
1926
1925
  "name": "edit",
@@ -1928,26 +1927,27 @@
1928
1927
  },
1929
1928
  {
1930
1929
  "variant": "h3",
1931
- "type": "typography",
1932
- "content": "Edit Channel"
1930
+ "content": "Edit Channel",
1931
+ "type": "typography"
1933
1932
  }
1934
- ]
1933
+ ],
1934
+ "direction": "horizontal"
1935
1935
  },
1936
1936
  {
1937
1937
  "type": "divider"
1938
1938
  },
1939
1939
  {
1940
- "entity": "@payload.row",
1940
+ "type": "form-section",
1941
+ "mode": "edit",
1941
1942
  "submitEvent": "SAVE",
1943
+ "cancelEvent": "CLOSE",
1942
1944
  "fields": [
1943
1945
  "name",
1944
1946
  "description",
1945
1947
  "memberCount",
1946
1948
  "isPrivate"
1947
1949
  ],
1948
- "type": "form-section",
1949
- "mode": "edit",
1950
- "cancelEvent": "CLOSE"
1950
+ "entity": "@payload.row"
1951
1951
  }
1952
1952
  ]
1953
1953
  }
@@ -1990,8 +1990,8 @@
1990
1990
  "@payload.data",
1991
1991
  {
1992
1992
  "emit": {
1993
- "failure": "ChannelUpdateFailed",
1994
- "success": "ChannelUpdated"
1993
+ "success": "ChannelUpdated",
1994
+ "failure": "ChannelUpdateFailed"
1995
1995
  }
1996
1996
  }
1997
1997
  ],
@@ -2026,7 +2026,7 @@
2026
2026
  "event": "ChannelLoaded",
2027
2027
  "description": "Fired when Channel finishes loading",
2028
2028
  "scope": "internal",
2029
- "payload": [
2029
+ "payloadSchema": [
2030
2030
  {
2031
2031
  "name": "data",
2032
2032
  "type": "[Channel]"
@@ -2037,7 +2037,7 @@
2037
2037
  "event": "ChannelLoadFailed",
2038
2038
  "description": "Fired when Channel fails to load",
2039
2039
  "scope": "internal",
2040
- "payload": [
2040
+ "payloadSchema": [
2041
2041
  {
2042
2042
  "name": "error",
2043
2043
  "type": "string"
@@ -2067,7 +2067,7 @@
2067
2067
  {
2068
2068
  "key": "VIEW",
2069
2069
  "name": "View",
2070
- "payload": [
2070
+ "payloadSchema": [
2071
2071
  {
2072
2072
  "name": "id",
2073
2073
  "type": "string"
@@ -2085,7 +2085,7 @@
2085
2085
  {
2086
2086
  "key": "ChannelLoaded",
2087
2087
  "name": "Channel loaded",
2088
- "payload": [
2088
+ "payloadSchema": [
2089
2089
  {
2090
2090
  "name": "data",
2091
2091
  "type": "[Channel]"
@@ -2095,7 +2095,7 @@
2095
2095
  {
2096
2096
  "key": "ChannelLoadFailed",
2097
2097
  "name": "Channel load failed",
2098
- "payload": [
2098
+ "payloadSchema": [
2099
2099
  {
2100
2100
  "name": "error",
2101
2101
  "type": "string"
@@ -2139,123 +2139,123 @@
2139
2139
  "render-ui",
2140
2140
  "modal",
2141
2141
  {
2142
- "direction": "vertical",
2143
2142
  "type": "stack",
2144
2143
  "gap": "md",
2145
2144
  "children": [
2146
2145
  {
2146
+ "align": "center",
2147
2147
  "gap": "sm",
2148
+ "type": "stack",
2148
2149
  "children": [
2149
2150
  {
2150
- "name": "eye",
2151
- "type": "icon"
2151
+ "type": "icon",
2152
+ "name": "eye"
2152
2153
  },
2153
2154
  {
2154
- "type": "typography",
2155
+ "variant": "h3",
2155
2156
  "content": "@entity.name",
2156
- "variant": "h3"
2157
+ "type": "typography"
2157
2158
  }
2158
2159
  ],
2159
- "type": "stack",
2160
- "align": "center",
2161
2160
  "direction": "horizontal"
2162
2161
  },
2163
2162
  {
2164
2163
  "type": "divider"
2165
2164
  },
2166
2165
  {
2167
- "type": "stack",
2168
- "direction": "horizontal",
2169
2166
  "gap": "md",
2170
2167
  "children": [
2171
2168
  {
2172
- "type": "typography",
2173
2169
  "variant": "caption",
2174
- "content": "Name"
2170
+ "content": "Name",
2171
+ "type": "typography"
2175
2172
  },
2176
2173
  {
2177
- "variant": "body",
2178
2174
  "type": "typography",
2179
- "content": "@entity.name"
2175
+ "content": "@entity.name",
2176
+ "variant": "body"
2180
2177
  }
2181
- ]
2178
+ ],
2179
+ "type": "stack",
2180
+ "direction": "horizontal"
2182
2181
  },
2183
2182
  {
2184
2183
  "direction": "horizontal",
2184
+ "type": "stack",
2185
+ "gap": "md",
2185
2186
  "children": [
2186
2187
  {
2187
- "type": "typography",
2188
2188
  "content": "Description",
2189
+ "type": "typography",
2189
2190
  "variant": "caption"
2190
2191
  },
2191
2192
  {
2193
+ "content": "@entity.description",
2192
2194
  "type": "typography",
2193
- "variant": "body",
2194
- "content": "@entity.description"
2195
+ "variant": "body"
2195
2196
  }
2196
- ],
2197
- "type": "stack",
2198
- "gap": "md"
2197
+ ]
2199
2198
  },
2200
2199
  {
2200
+ "gap": "md",
2201
+ "direction": "horizontal",
2202
+ "type": "stack",
2201
2203
  "children": [
2202
2204
  {
2203
2205
  "content": "Member Count",
2204
- "variant": "caption",
2205
- "type": "typography"
2206
+ "type": "typography",
2207
+ "variant": "caption"
2206
2208
  },
2207
2209
  {
2208
2210
  "type": "typography",
2209
2211
  "variant": "body",
2210
2212
  "content": "@entity.memberCount"
2211
2213
  }
2212
- ],
2213
- "direction": "horizontal",
2214
- "type": "stack",
2215
- "gap": "md"
2214
+ ]
2216
2215
  },
2217
2216
  {
2218
2217
  "children": [
2219
2218
  {
2220
- "content": "Is Private",
2219
+ "variant": "caption",
2221
2220
  "type": "typography",
2222
- "variant": "caption"
2221
+ "content": "Is Private"
2223
2222
  },
2224
2223
  {
2225
- "type": "typography",
2226
2224
  "variant": "body",
2225
+ "type": "typography",
2227
2226
  "content": "@entity.isPrivate"
2228
2227
  }
2229
2228
  ],
2229
+ "gap": "md",
2230
2230
  "type": "stack",
2231
- "direction": "horizontal",
2232
- "gap": "md"
2231
+ "direction": "horizontal"
2233
2232
  },
2234
2233
  {
2235
2234
  "type": "divider"
2236
2235
  },
2237
2236
  {
2238
- "gap": "sm",
2239
2237
  "type": "stack",
2238
+ "direction": "horizontal",
2239
+ "gap": "sm",
2240
2240
  "justify": "end",
2241
2241
  "children": [
2242
2242
  {
2243
- "icon": "edit",
2244
- "variant": "primary",
2245
2243
  "type": "button",
2244
+ "action": "EDIT",
2246
2245
  "label": "Edit",
2247
- "action": "EDIT"
2246
+ "variant": "primary",
2247
+ "icon": "edit"
2248
2248
  },
2249
2249
  {
2250
- "action": "CLOSE",
2251
- "label": "Close",
2252
2250
  "type": "button",
2251
+ "label": "Close",
2252
+ "action": "CLOSE",
2253
2253
  "variant": "ghost"
2254
2254
  }
2255
- ],
2256
- "direction": "horizontal"
2255
+ ]
2257
2256
  }
2258
- ]
2257
+ ],
2258
+ "direction": "vertical"
2259
2259
  }
2260
2260
  ]
2261
2261
  ]
@@ -2318,7 +2318,7 @@
2318
2318
  {
2319
2319
  "event": "ChannelDeleteFailed",
2320
2320
  "scope": "internal",
2321
- "payload": [
2321
+ "payloadSchema": [
2322
2322
  {
2323
2323
  "name": "error",
2324
2324
  "type": "string"
@@ -2332,7 +2332,7 @@
2332
2332
  {
2333
2333
  "event": "ChannelDeleted",
2334
2334
  "scope": "internal",
2335
- "payload": [
2335
+ "payloadSchema": [
2336
2336
  {
2337
2337
  "name": "id",
2338
2338
  "type": "string"
@@ -2343,7 +2343,7 @@
2343
2343
  "event": "ChannelLoadFailed",
2344
2344
  "description": "Fired when Channel fails to load",
2345
2345
  "scope": "internal",
2346
- "payload": [
2346
+ "payloadSchema": [
2347
2347
  {
2348
2348
  "name": "error",
2349
2349
  "type": "string"
@@ -2358,7 +2358,7 @@
2358
2358
  "event": "ChannelLoaded",
2359
2359
  "description": "Fired when Channel finishes loading",
2360
2360
  "scope": "internal",
2361
- "payload": [
2361
+ "payloadSchema": [
2362
2362
  {
2363
2363
  "name": "data",
2364
2364
  "type": "[Channel]"
@@ -2384,7 +2384,7 @@
2384
2384
  {
2385
2385
  "key": "DELETE",
2386
2386
  "name": "Delete",
2387
- "payload": [
2387
+ "payloadSchema": [
2388
2388
  {
2389
2389
  "name": "id",
2390
2390
  "type": "string"
@@ -2410,7 +2410,7 @@
2410
2410
  {
2411
2411
  "key": "ChannelDeleteFailed",
2412
2412
  "name": "Channel delete failed",
2413
- "payload": [
2413
+ "payloadSchema": [
2414
2414
  {
2415
2415
  "name": "error",
2416
2416
  "type": "string"
@@ -2424,7 +2424,7 @@
2424
2424
  {
2425
2425
  "key": "ChannelDeleted",
2426
2426
  "name": "Channel deleted",
2427
- "payload": [
2427
+ "payloadSchema": [
2428
2428
  {
2429
2429
  "name": "id",
2430
2430
  "type": "string"
@@ -2434,7 +2434,7 @@
2434
2434
  {
2435
2435
  "key": "ChannelLoadFailed",
2436
2436
  "name": "Channel load failed",
2437
- "payload": [
2437
+ "payloadSchema": [
2438
2438
  {
2439
2439
  "name": "error",
2440
2440
  "type": "string"
@@ -2448,7 +2448,7 @@
2448
2448
  {
2449
2449
  "key": "ChannelLoaded",
2450
2450
  "name": "Channel loaded",
2451
- "payload": [
2451
+ "payloadSchema": [
2452
2452
  {
2453
2453
  "name": "data",
2454
2454
  "type": "[Channel]"
@@ -2493,25 +2493,24 @@
2493
2493
  "render-ui",
2494
2494
  "modal",
2495
2495
  {
2496
- "type": "stack",
2497
- "gap": "md",
2496
+ "direction": "vertical",
2498
2497
  "children": [
2499
2498
  {
2500
2499
  "type": "stack",
2501
- "direction": "horizontal",
2500
+ "align": "center",
2502
2501
  "children": [
2503
2502
  {
2504
- "name": "alert-triangle",
2505
- "type": "icon"
2503
+ "type": "icon",
2504
+ "name": "alert-triangle"
2506
2505
  },
2507
2506
  {
2508
- "variant": "h3",
2509
2507
  "content": "Delete Channel",
2510
- "type": "typography"
2508
+ "type": "typography",
2509
+ "variant": "h3"
2511
2510
  }
2512
2511
  ],
2513
- "align": "center",
2514
- "gap": "sm"
2512
+ "gap": "sm",
2513
+ "direction": "horizontal"
2515
2514
  },
2516
2515
  {
2517
2516
  "type": "divider"
@@ -2522,28 +2521,29 @@
2522
2521
  "message": "This action cannot be undone."
2523
2522
  },
2524
2523
  {
2524
+ "direction": "horizontal",
2525
2525
  "children": [
2526
2526
  {
2527
- "action": "CANCEL",
2528
2527
  "type": "button",
2529
2528
  "variant": "ghost",
2529
+ "action": "CANCEL",
2530
2530
  "label": "Cancel"
2531
2531
  },
2532
2532
  {
2533
- "action": "CONFIRM_DELETE",
2533
+ "type": "button",
2534
2534
  "variant": "danger",
2535
2535
  "icon": "check",
2536
- "label": "Delete",
2537
- "type": "button"
2536
+ "action": "CONFIRM_DELETE",
2537
+ "label": "Delete"
2538
2538
  }
2539
2539
  ],
2540
2540
  "type": "stack",
2541
- "justify": "end",
2542
- "direction": "horizontal",
2543
- "gap": "sm"
2541
+ "gap": "sm",
2542
+ "justify": "end"
2544
2543
  }
2545
2544
  ],
2546
- "direction": "vertical"
2545
+ "type": "stack",
2546
+ "gap": "md"
2547
2547
  }
2548
2548
  ]
2549
2549
  ]
@@ -2560,8 +2560,8 @@
2560
2560
  "@entity.pendingId",
2561
2561
  {
2562
2562
  "emit": {
2563
- "success": "ChannelDeleted",
2564
- "failure": "ChannelDeleteFailed"
2563
+ "failure": "ChannelDeleteFailed",
2564
+ "success": "ChannelDeleted"
2565
2565
  }
2566
2566
  }
2567
2567
  ],
@@ -2702,7 +2702,7 @@
2702
2702
  "event": "OnlineUserLoaded",
2703
2703
  "description": "Fired when OnlineUser finishes loading",
2704
2704
  "scope": "internal",
2705
- "payload": [
2705
+ "payloadSchema": [
2706
2706
  {
2707
2707
  "name": "data",
2708
2708
  "type": "[OnlineUser]"
@@ -2713,7 +2713,7 @@
2713
2713
  "event": "OnlineUserLoadFailed",
2714
2714
  "description": "Fired when OnlineUser fails to load",
2715
2715
  "scope": "internal",
2716
- "payload": [
2716
+ "payloadSchema": [
2717
2717
  {
2718
2718
  "name": "error",
2719
2719
  "type": "string"
@@ -2758,7 +2758,7 @@
2758
2758
  {
2759
2759
  "key": "OnlineUserLoaded",
2760
2760
  "name": "OnlineUser loaded",
2761
- "payload": [
2761
+ "payloadSchema": [
2762
2762
  {
2763
2763
  "name": "data",
2764
2764
  "type": "[OnlineUser]"
@@ -2768,7 +2768,7 @@
2768
2768
  {
2769
2769
  "key": "OnlineUserLoadFailed",
2770
2770
  "name": "OnlineUser load failed",
2771
- "payload": [
2771
+ "payloadSchema": [
2772
2772
  {
2773
2773
  "name": "error",
2774
2774
  "type": "string"
@@ -2791,8 +2791,8 @@
2791
2791
  "OnlineUser",
2792
2792
  {
2793
2793
  "emit": {
2794
- "failure": "OnlineUserLoadFailed",
2795
- "success": "OnlineUserLoaded"
2794
+ "success": "OnlineUserLoaded",
2795
+ "failure": "OnlineUserLoadFailed"
2796
2796
  }
2797
2797
  }
2798
2798
  ],
@@ -2800,11 +2800,12 @@
2800
2800
  "render-ui",
2801
2801
  "main",
2802
2802
  {
2803
+ "type": "dashboard-layout",
2803
2804
  "navItems": [
2804
2805
  {
2805
2806
  "label": "Chat",
2806
- "icon": "layout-list",
2807
- "href": "/chat"
2807
+ "href": "/chat",
2808
+ "icon": "layout-list"
2808
2809
  },
2809
2810
  {
2810
2811
  "label": "Channels",
@@ -2813,20 +2814,20 @@
2813
2814
  },
2814
2815
  {
2815
2816
  "href": "/online",
2816
- "icon": "layout-list",
2817
- "label": "Online"
2817
+ "label": "Online",
2818
+ "icon": "layout-list"
2818
2819
  }
2819
2820
  ],
2820
- "type": "dashboard-layout",
2821
2821
  "appName": "Realtime Chat",
2822
2822
  "children": [
2823
2823
  {
2824
2824
  "type": "scaled-diagram",
2825
2825
  "children": [
2826
2826
  {
2827
- "gap": "lg",
2827
+ "type": "stack",
2828
2828
  "children": [
2829
2829
  {
2830
+ "type": "breadcrumb",
2830
2831
  "items": [
2831
2832
  {
2832
2833
  "label": "Home",
@@ -2835,13 +2836,12 @@
2835
2836
  {
2836
2837
  "label": "Online Users"
2837
2838
  }
2838
- ],
2839
- "type": "breadcrumb"
2839
+ ]
2840
2840
  },
2841
2841
  {
2842
- "direction": "horizontal",
2843
2842
  "children": [
2844
2843
  {
2844
+ "gap": "md",
2845
2845
  "children": [
2846
2846
  {
2847
2847
  "type": "icon",
@@ -2853,36 +2853,36 @@
2853
2853
  "content": "Online Users"
2854
2854
  }
2855
2855
  ],
2856
- "direction": "horizontal",
2857
2856
  "type": "stack",
2858
- "gap": "md"
2857
+ "direction": "horizontal"
2859
2858
  },
2860
2859
  {
2860
+ "type": "button",
2861
+ "icon": "refresh-cw",
2861
2862
  "action": "REFRESH",
2862
- "variant": "secondary",
2863
2863
  "label": "Refresh",
2864
- "type": "button",
2865
- "icon": "refresh-cw"
2864
+ "variant": "secondary"
2866
2865
  }
2867
2866
  ],
2868
2867
  "gap": "md",
2868
+ "justify": "between",
2869
2869
  "type": "stack",
2870
- "justify": "between"
2870
+ "direction": "horizontal"
2871
2871
  },
2872
2872
  {
2873
2873
  "type": "divider"
2874
2874
  },
2875
2875
  {
2876
+ "type": "box",
2876
2877
  "padding": "md",
2877
2878
  "children": [
2878
2879
  {
2880
+ "cols": 3.0,
2879
2881
  "children": [
2880
2882
  {
2881
2883
  "type": "card",
2882
2884
  "children": [
2883
2885
  {
2884
- "gap": "sm",
2885
- "type": "stack",
2886
2886
  "direction": "vertical",
2887
2887
  "children": [
2888
2888
  {
@@ -2891,190 +2891,190 @@
2891
2891
  "type": "typography"
2892
2892
  },
2893
2893
  {
2894
- "variant": "h3",
2895
2894
  "type": "typography",
2895
+ "variant": "h3",
2896
2896
  "content": "@entity.username"
2897
2897
  }
2898
- ]
2898
+ ],
2899
+ "gap": "sm",
2900
+ "type": "stack"
2899
2901
  }
2900
2902
  ]
2901
2903
  },
2902
2904
  {
2905
+ "type": "card",
2903
2906
  "children": [
2904
2907
  {
2908
+ "type": "stack",
2905
2909
  "children": [
2906
2910
  {
2907
- "content": "Status",
2911
+ "variant": "caption",
2908
2912
  "type": "typography",
2909
- "variant": "caption"
2913
+ "content": "Status"
2910
2914
  },
2911
2915
  {
2912
- "content": "@entity.status",
2913
2916
  "variant": "h3",
2917
+ "content": "@entity.status",
2914
2918
  "type": "typography"
2915
2919
  }
2916
2920
  ],
2917
- "type": "stack",
2918
- "direction": "vertical",
2919
- "gap": "sm"
2921
+ "gap": "sm",
2922
+ "direction": "vertical"
2920
2923
  }
2921
- ],
2922
- "type": "card"
2924
+ ]
2923
2925
  },
2924
2926
  {
2925
- "type": "card",
2926
2927
  "children": [
2927
2928
  {
2928
2929
  "type": "stack",
2930
+ "gap": "sm",
2929
2931
  "children": [
2930
2932
  {
2933
+ "variant": "caption",
2931
2934
  "content": "LastActive",
2932
- "type": "typography",
2933
- "variant": "caption"
2935
+ "type": "typography"
2934
2936
  },
2935
2937
  {
2936
2938
  "content": "@entity.lastActive",
2937
- "variant": "h3",
2938
- "type": "typography"
2939
+ "type": "typography",
2940
+ "variant": "h3"
2939
2941
  }
2940
2942
  ],
2941
- "gap": "sm",
2942
2943
  "direction": "vertical"
2943
2944
  }
2944
- ]
2945
+ ],
2946
+ "type": "card"
2945
2947
  },
2946
2948
  {
2947
- "type": "card",
2948
2949
  "children": [
2949
2950
  {
2950
- "gap": "sm",
2951
2951
  "type": "stack",
2952
2952
  "direction": "vertical",
2953
2953
  "children": [
2954
2954
  {
2955
- "variant": "caption",
2956
2955
  "content": "Avatar",
2957
- "type": "typography"
2956
+ "type": "typography",
2957
+ "variant": "caption"
2958
2958
  },
2959
2959
  {
2960
2960
  "variant": "h3",
2961
2961
  "content": "@entity.avatar",
2962
2962
  "type": "typography"
2963
2963
  }
2964
- ]
2964
+ ],
2965
+ "gap": "sm"
2965
2966
  }
2966
- ]
2967
+ ],
2968
+ "type": "card"
2967
2969
  }
2968
2970
  ],
2969
- "cols": 3.0,
2970
2971
  "type": "simple-grid"
2971
2972
  }
2972
- ],
2973
- "type": "box"
2973
+ ]
2974
2974
  },
2975
2975
  {
2976
2976
  "type": "divider"
2977
2977
  },
2978
2978
  {
2979
- "cols": 2.0,
2980
- "type": "grid",
2981
2979
  "gap": "md",
2982
2980
  "children": [
2983
2981
  {
2982
+ "type": "card",
2984
2983
  "children": [
2985
2984
  {
2985
+ "type": "typography",
2986
2986
  "content": "Chart View",
2987
- "variant": "caption",
2988
- "type": "typography"
2987
+ "variant": "caption"
2989
2988
  }
2990
- ],
2991
- "type": "card"
2989
+ ]
2992
2990
  },
2993
2991
  {
2994
2992
  "type": "card",
2995
2993
  "children": [
2996
2994
  {
2997
- "type": "typography",
2998
2995
  "content": "Graph View",
2996
+ "type": "typography",
2999
2997
  "variant": "caption"
3000
2998
  }
3001
2999
  ]
3002
3000
  }
3003
- ]
3001
+ ],
3002
+ "type": "grid",
3003
+ "cols": 2.0
3004
3004
  },
3005
3005
  {
3006
- "type": "line-chart",
3007
3006
  "data": [
3008
3007
  {
3009
3008
  "date": "Jan",
3010
3009
  "value": 12.0
3011
3010
  },
3012
3011
  {
3013
- "value": 19.0,
3014
- "date": "Feb"
3012
+ "date": "Feb",
3013
+ "value": 19.0
3015
3014
  },
3016
3015
  {
3017
3016
  "date": "Mar",
3018
3017
  "value": 15.0
3019
3018
  },
3020
3019
  {
3021
- "date": "Apr",
3022
- "value": 25.0
3020
+ "value": 25.0,
3021
+ "date": "Apr"
3023
3022
  },
3024
3023
  {
3025
- "date": "May",
3026
- "value": 22.0
3024
+ "value": 22.0,
3025
+ "date": "May"
3027
3026
  },
3028
3027
  {
3029
- "value": 30.0,
3030
- "date": "Jun"
3028
+ "date": "Jun",
3029
+ "value": 30.0
3031
3030
  }
3032
- ]
3031
+ ],
3032
+ "type": "line-chart"
3033
3033
  },
3034
3034
  {
3035
+ "type": "chart-legend",
3035
3036
  "items": [
3036
3037
  {
3037
- "color": "primary",
3038
- "label": "Current"
3038
+ "label": "Current",
3039
+ "color": "primary"
3039
3040
  },
3040
3041
  {
3041
- "color": "muted",
3042
- "label": "Previous"
3042
+ "label": "Previous",
3043
+ "color": "muted"
3043
3044
  }
3044
- ],
3045
- "type": "chart-legend"
3045
+ ]
3046
3046
  },
3047
3047
  {
3048
+ "height": 200.0,
3048
3049
  "nodes": [
3049
3050
  {
3050
3051
  "label": "Start",
3051
3052
  "id": "a"
3052
3053
  },
3053
3054
  {
3054
- "label": "Process",
3055
- "id": "b"
3055
+ "id": "b",
3056
+ "label": "Process"
3056
3057
  },
3057
3058
  {
3058
3059
  "label": "End",
3059
3060
  "id": "c"
3060
3061
  }
3061
3062
  ],
3062
- "height": 200.0,
3063
- "width": 400.0,
3064
- "type": "graph-view",
3065
3063
  "edges": [
3066
3064
  {
3067
3065
  "source": "a",
3068
3066
  "target": "b"
3069
3067
  },
3070
3068
  {
3071
- "source": "b",
3072
- "target": "c"
3069
+ "target": "c",
3070
+ "source": "b"
3073
3071
  }
3074
- ]
3075
- }
3072
+ ],
3073
+ "type": "graph-view",
3074
+ "width": 400.0
3075
+ }
3076
3076
  ],
3077
- "type": "stack",
3077
+ "gap": "lg",
3078
3078
  "direction": "vertical"
3079
3079
  }
3080
3080
  ]
@@ -3094,8 +3094,8 @@
3094
3094
  "OnlineUser",
3095
3095
  {
3096
3096
  "emit": {
3097
- "failure": "OnlineUserLoadFailed",
3098
- "success": "OnlineUserLoaded"
3097
+ "success": "OnlineUserLoaded",
3098
+ "failure": "OnlineUserLoadFailed"
3099
3099
  }
3100
3100
  }
3101
3101
  ],
@@ -3110,14 +3110,14 @@
3110
3110
  "label": "Chat"
3111
3111
  },
3112
3112
  {
3113
+ "label": "Channels",
3113
3114
  "href": "/channels",
3114
- "icon": "hash",
3115
- "label": "Channels"
3115
+ "icon": "hash"
3116
3116
  },
3117
3117
  {
3118
- "href": "/online",
3118
+ "label": "Online",
3119
3119
  "icon": "layout-list",
3120
- "label": "Online"
3120
+ "href": "/online"
3121
3121
  }
3122
3122
  ],
3123
3123
  "appName": "Realtime Chat",
@@ -3128,7 +3128,7 @@
3128
3128
  "children": [
3129
3129
  {
3130
3130
  "type": "stack",
3131
- "direction": "vertical",
3131
+ "gap": "lg",
3132
3132
  "children": [
3133
3133
  {
3134
3134
  "items": [
@@ -3143,40 +3143,42 @@
3143
3143
  "type": "breadcrumb"
3144
3144
  },
3145
3145
  {
3146
+ "direction": "horizontal",
3146
3147
  "type": "stack",
3148
+ "gap": "md",
3147
3149
  "justify": "between",
3148
3150
  "children": [
3149
3151
  {
3150
- "gap": "md",
3151
- "type": "stack",
3152
- "direction": "horizontal",
3153
3152
  "children": [
3154
3153
  {
3155
- "name": "users",
3156
- "type": "icon"
3154
+ "type": "icon",
3155
+ "name": "users"
3157
3156
  },
3158
3157
  {
3159
3158
  "type": "typography",
3160
- "content": "Online Users",
3161
- "variant": "h2"
3159
+ "variant": "h2",
3160
+ "content": "Online Users"
3162
3161
  }
3163
- ]
3162
+ ],
3163
+ "gap": "md",
3164
+ "direction": "horizontal",
3165
+ "type": "stack"
3164
3166
  },
3165
3167
  {
3166
- "icon": "refresh-cw",
3167
- "type": "button",
3168
3168
  "label": "Refresh",
3169
3169
  "action": "REFRESH",
3170
- "variant": "secondary"
3170
+ "variant": "secondary",
3171
+ "type": "button",
3172
+ "icon": "refresh-cw"
3171
3173
  }
3172
- ],
3173
- "gap": "md",
3174
- "direction": "horizontal"
3174
+ ]
3175
3175
  },
3176
3176
  {
3177
3177
  "type": "divider"
3178
3178
  },
3179
3179
  {
3180
+ "type": "box",
3181
+ "padding": "md",
3180
3182
  "children": [
3181
3183
  {
3182
3184
  "children": [
@@ -3184,11 +3186,13 @@
3184
3186
  "type": "card",
3185
3187
  "children": [
3186
3188
  {
3189
+ "direction": "vertical",
3190
+ "type": "stack",
3187
3191
  "gap": "sm",
3188
3192
  "children": [
3189
3193
  {
3190
- "variant": "caption",
3191
3194
  "type": "typography",
3195
+ "variant": "caption",
3192
3196
  "content": "Username"
3193
3197
  },
3194
3198
  {
@@ -3196,38 +3200,36 @@
3196
3200
  "variant": "h3",
3197
3201
  "content": "@entity.username"
3198
3202
  }
3199
- ],
3200
- "type": "stack",
3201
- "direction": "vertical"
3203
+ ]
3202
3204
  }
3203
3205
  ]
3204
3206
  },
3205
3207
  {
3208
+ "type": "card",
3206
3209
  "children": [
3207
3210
  {
3208
- "type": "stack",
3209
3211
  "direction": "vertical",
3212
+ "type": "stack",
3210
3213
  "gap": "sm",
3211
3214
  "children": [
3212
3215
  {
3213
- "type": "typography",
3214
3216
  "variant": "caption",
3215
- "content": "Status"
3217
+ "content": "Status",
3218
+ "type": "typography"
3216
3219
  },
3217
3220
  {
3218
- "variant": "h3",
3219
3221
  "content": "@entity.status",
3222
+ "variant": "h3",
3220
3223
  "type": "typography"
3221
3224
  }
3222
3225
  ]
3223
3226
  }
3224
- ],
3225
- "type": "card"
3227
+ ]
3226
3228
  },
3227
3229
  {
3228
- "type": "card",
3229
3230
  "children": [
3230
3231
  {
3232
+ "gap": "sm",
3231
3233
  "children": [
3232
3234
  {
3233
3235
  "variant": "caption",
@@ -3235,46 +3237,44 @@
3235
3237
  "type": "typography"
3236
3238
  },
3237
3239
  {
3238
- "type": "typography",
3239
3240
  "variant": "h3",
3240
- "content": "@entity.lastActive"
3241
+ "content": "@entity.lastActive",
3242
+ "type": "typography"
3241
3243
  }
3242
3244
  ],
3243
- "type": "stack",
3244
3245
  "direction": "vertical",
3245
- "gap": "sm"
3246
+ "type": "stack"
3246
3247
  }
3247
- ]
3248
+ ],
3249
+ "type": "card"
3248
3250
  },
3249
3251
  {
3250
3252
  "type": "card",
3251
3253
  "children": [
3252
3254
  {
3255
+ "type": "stack",
3253
3256
  "direction": "vertical",
3257
+ "gap": "sm",
3254
3258
  "children": [
3255
3259
  {
3260
+ "variant": "caption",
3256
3261
  "content": "Avatar",
3257
- "type": "typography",
3258
- "variant": "caption"
3262
+ "type": "typography"
3259
3263
  },
3260
3264
  {
3265
+ "type": "typography",
3261
3266
  "variant": "h3",
3262
- "content": "@entity.avatar",
3263
- "type": "typography"
3267
+ "content": "@entity.avatar"
3264
3268
  }
3265
- ],
3266
- "type": "stack",
3267
- "gap": "sm"
3269
+ ]
3268
3270
  }
3269
3271
  ]
3270
3272
  }
3271
3273
  ],
3272
- "type": "simple-grid",
3273
- "cols": 3.0
3274
+ "cols": 3.0,
3275
+ "type": "simple-grid"
3274
3276
  }
3275
- ],
3276
- "padding": "md",
3277
- "type": "box"
3277
+ ]
3278
3278
  },
3279
3279
  {
3280
3280
  "type": "divider"
@@ -3282,60 +3282,61 @@
3282
3282
  {
3283
3283
  "children": [
3284
3284
  {
3285
- "type": "card",
3286
3285
  "children": [
3287
3286
  {
3287
+ "content": "Chart View",
3288
3288
  "variant": "caption",
3289
- "type": "typography",
3290
- "content": "Chart View"
3289
+ "type": "typography"
3291
3290
  }
3292
- ]
3291
+ ],
3292
+ "type": "card"
3293
3293
  },
3294
3294
  {
3295
+ "type": "card",
3295
3296
  "children": [
3296
3297
  {
3297
- "type": "typography",
3298
3298
  "content": "Graph View",
3299
+ "type": "typography",
3299
3300
  "variant": "caption"
3300
3301
  }
3301
- ],
3302
- "type": "card"
3302
+ ]
3303
3303
  }
3304
3304
  ],
3305
3305
  "gap": "md",
3306
- "type": "grid",
3307
- "cols": 2.0
3306
+ "cols": 2.0,
3307
+ "type": "grid"
3308
3308
  },
3309
3309
  {
3310
3310
  "data": [
3311
3311
  {
3312
- "date": "Jan",
3313
- "value": 12.0
3312
+ "value": 12.0,
3313
+ "date": "Jan"
3314
3314
  },
3315
3315
  {
3316
- "date": "Feb",
3317
- "value": 19.0
3316
+ "value": 19.0,
3317
+ "date": "Feb"
3318
3318
  },
3319
3319
  {
3320
3320
  "value": 15.0,
3321
3321
  "date": "Mar"
3322
3322
  },
3323
3323
  {
3324
- "date": "Apr",
3325
- "value": 25.0
3324
+ "value": 25.0,
3325
+ "date": "Apr"
3326
3326
  },
3327
3327
  {
3328
- "date": "May",
3329
- "value": 22.0
3328
+ "value": 22.0,
3329
+ "date": "May"
3330
3330
  },
3331
3331
  {
3332
- "date": "Jun",
3333
- "value": 30.0
3332
+ "value": 30.0,
3333
+ "date": "Jun"
3334
3334
  }
3335
3335
  ],
3336
3336
  "type": "line-chart"
3337
3337
  },
3338
3338
  {
3339
+ "type": "chart-legend",
3339
3340
  "items": [
3340
3341
  {
3341
3342
  "label": "Current",
@@ -3345,40 +3346,39 @@
3345
3346
  "label": "Previous",
3346
3347
  "color": "muted"
3347
3348
  }
3348
- ],
3349
- "type": "chart-legend"
3349
+ ]
3350
3350
  },
3351
3351
  {
3352
- "width": 400.0,
3353
- "edges": [
3354
- {
3355
- "target": "b",
3356
- "source": "a"
3357
- },
3358
- {
3359
- "source": "b",
3360
- "target": "c"
3361
- }
3362
- ],
3363
- "type": "graph-view",
3364
3352
  "nodes": [
3365
3353
  {
3366
3354
  "id": "a",
3367
3355
  "label": "Start"
3368
3356
  },
3369
3357
  {
3370
- "id": "b",
3371
- "label": "Process"
3358
+ "label": "Process",
3359
+ "id": "b"
3372
3360
  },
3373
3361
  {
3374
- "id": "c",
3375
- "label": "End"
3362
+ "label": "End",
3363
+ "id": "c"
3376
3364
  }
3377
3365
  ],
3378
- "height": 200.0
3366
+ "width": 400.0,
3367
+ "height": 200.0,
3368
+ "type": "graph-view",
3369
+ "edges": [
3370
+ {
3371
+ "source": "a",
3372
+ "target": "b"
3373
+ },
3374
+ {
3375
+ "target": "c",
3376
+ "source": "b"
3377
+ }
3378
+ ]
3379
3379
  }
3380
3380
  ],
3381
- "gap": "lg"
3381
+ "direction": "vertical"
3382
3382
  }
3383
3383
  ]
3384
3384
  }
@@ -3407,16 +3407,31 @@
3407
3407
  "main",
3408
3408
  {
3409
3409
  "appName": "Realtime Chat",
3410
- "type": "dashboard-layout",
3410
+ "navItems": [
3411
+ {
3412
+ "href": "/chat",
3413
+ "label": "Chat",
3414
+ "icon": "layout-list"
3415
+ },
3416
+ {
3417
+ "label": "Channels",
3418
+ "href": "/channels",
3419
+ "icon": "hash"
3420
+ },
3421
+ {
3422
+ "href": "/online",
3423
+ "label": "Online",
3424
+ "icon": "layout-list"
3425
+ }
3426
+ ],
3411
3427
  "children": [
3412
3428
  {
3413
3429
  "type": "scaled-diagram",
3414
3430
  "children": [
3415
3431
  {
3416
- "gap": "lg",
3432
+ "direction": "vertical",
3417
3433
  "children": [
3418
3434
  {
3419
- "type": "breadcrumb",
3420
3435
  "items": [
3421
3436
  {
3422
3437
  "label": "Home",
@@ -3425,12 +3440,12 @@
3425
3440
  {
3426
3441
  "label": "Online Users"
3427
3442
  }
3428
- ]
3443
+ ],
3444
+ "type": "breadcrumb"
3429
3445
  },
3430
3446
  {
3431
3447
  "children": [
3432
3448
  {
3433
- "type": "stack",
3434
3449
  "children": [
3435
3450
  {
3436
3451
  "type": "icon",
@@ -3438,43 +3453,44 @@
3438
3453
  },
3439
3454
  {
3440
3455
  "type": "typography",
3441
- "variant": "h2",
3442
- "content": "Online Users"
3456
+ "content": "Online Users",
3457
+ "variant": "h2"
3443
3458
  }
3444
3459
  ],
3445
3460
  "gap": "md",
3446
- "direction": "horizontal"
3461
+ "direction": "horizontal",
3462
+ "type": "stack"
3447
3463
  },
3448
3464
  {
3449
- "action": "REFRESH",
3450
- "type": "button",
3465
+ "icon": "refresh-cw",
3451
3466
  "variant": "secondary",
3452
- "label": "Refresh",
3453
- "icon": "refresh-cw"
3467
+ "type": "button",
3468
+ "action": "REFRESH",
3469
+ "label": "Refresh"
3454
3470
  }
3455
3471
  ],
3456
- "gap": "md",
3457
- "justify": "between",
3458
3472
  "type": "stack",
3459
- "direction": "horizontal"
3473
+ "direction": "horizontal",
3474
+ "justify": "between",
3475
+ "gap": "md"
3460
3476
  },
3461
3477
  {
3462
3478
  "type": "divider"
3463
3479
  },
3464
3480
  {
3481
+ "type": "box",
3465
3482
  "children": [
3466
3483
  {
3467
- "cols": 3.0,
3468
3484
  "children": [
3469
3485
  {
3486
+ "type": "card",
3470
3487
  "children": [
3471
3488
  {
3472
- "direction": "vertical",
3473
3489
  "children": [
3474
3490
  {
3475
3491
  "type": "typography",
3476
- "variant": "caption",
3477
- "content": "Username"
3492
+ "content": "Username",
3493
+ "variant": "caption"
3478
3494
  },
3479
3495
  {
3480
3496
  "variant": "h3",
@@ -3482,30 +3498,30 @@
3482
3498
  "type": "typography"
3483
3499
  }
3484
3500
  ],
3485
- "type": "stack",
3486
- "gap": "sm"
3501
+ "direction": "vertical",
3502
+ "gap": "sm",
3503
+ "type": "stack"
3487
3504
  }
3488
- ],
3489
- "type": "card"
3505
+ ]
3490
3506
  },
3491
3507
  {
3492
3508
  "children": [
3493
3509
  {
3494
- "direction": "vertical",
3495
3510
  "type": "stack",
3511
+ "gap": "sm",
3512
+ "direction": "vertical",
3496
3513
  "children": [
3497
3514
  {
3498
- "content": "Status",
3515
+ "variant": "caption",
3499
3516
  "type": "typography",
3500
- "variant": "caption"
3517
+ "content": "Status"
3501
3518
  },
3502
3519
  {
3503
- "content": "@entity.status",
3520
+ "variant": "h3",
3504
3521
  "type": "typography",
3505
- "variant": "h3"
3522
+ "content": "@entity.status"
3506
3523
  }
3507
- ],
3508
- "gap": "sm"
3524
+ ]
3509
3525
  }
3510
3526
  ],
3511
3527
  "type": "card"
@@ -3515,19 +3531,19 @@
3515
3531
  "children": [
3516
3532
  {
3517
3533
  "direction": "vertical",
3534
+ "gap": "sm",
3518
3535
  "children": [
3519
3536
  {
3520
- "type": "typography",
3521
3537
  "variant": "caption",
3538
+ "type": "typography",
3522
3539
  "content": "LastActive"
3523
3540
  },
3524
3541
  {
3525
- "type": "typography",
3526
3542
  "content": "@entity.lastActive",
3527
- "variant": "h3"
3543
+ "variant": "h3",
3544
+ "type": "typography"
3528
3545
  }
3529
3546
  ],
3530
- "gap": "sm",
3531
3547
  "type": "stack"
3532
3548
  }
3533
3549
  ]
@@ -3536,45 +3552,46 @@
3536
3552
  "type": "card",
3537
3553
  "children": [
3538
3554
  {
3555
+ "type": "stack",
3539
3556
  "gap": "sm",
3540
3557
  "children": [
3541
3558
  {
3542
- "variant": "caption",
3559
+ "content": "Avatar",
3543
3560
  "type": "typography",
3544
- "content": "Avatar"
3561
+ "variant": "caption"
3545
3562
  },
3546
3563
  {
3547
3564
  "variant": "h3",
3548
- "type": "typography",
3549
- "content": "@entity.avatar"
3565
+ "content": "@entity.avatar",
3566
+ "type": "typography"
3550
3567
  }
3551
3568
  ],
3552
- "direction": "vertical",
3553
- "type": "stack"
3569
+ "direction": "vertical"
3554
3570
  }
3555
3571
  ]
3556
3572
  }
3557
3573
  ],
3558
- "type": "simple-grid"
3574
+ "type": "simple-grid",
3575
+ "cols": 3.0
3559
3576
  }
3560
3577
  ],
3561
- "type": "box",
3562
3578
  "padding": "md"
3563
3579
  },
3564
3580
  {
3565
3581
  "type": "divider"
3566
3582
  },
3567
3583
  {
3584
+ "gap": "md",
3568
3585
  "children": [
3569
3586
  {
3570
- "type": "card",
3571
3587
  "children": [
3572
3588
  {
3589
+ "type": "typography",
3573
3590
  "variant": "caption",
3574
- "content": "Chart View",
3575
- "type": "typography"
3591
+ "content": "Chart View"
3576
3592
  }
3577
- ]
3593
+ ],
3594
+ "type": "card"
3578
3595
  },
3579
3596
  {
3580
3597
  "type": "card",
@@ -3587,105 +3604,88 @@
3587
3604
  ]
3588
3605
  }
3589
3606
  ],
3590
- "cols": 2.0,
3591
3607
  "type": "grid",
3592
- "gap": "md"
3608
+ "cols": 2.0
3593
3609
  },
3594
3610
  {
3611
+ "type": "line-chart",
3595
3612
  "data": [
3596
3613
  {
3597
- "date": "Jan",
3598
- "value": 12.0
3614
+ "value": 12.0,
3615
+ "date": "Jan"
3599
3616
  },
3600
3617
  {
3601
- "date": "Feb",
3602
- "value": 19.0
3618
+ "value": 19.0,
3619
+ "date": "Feb"
3603
3620
  },
3604
3621
  {
3605
3622
  "date": "Mar",
3606
3623
  "value": 15.0
3607
3624
  },
3608
3625
  {
3609
- "value": 25.0,
3610
- "date": "Apr"
3626
+ "date": "Apr",
3627
+ "value": 25.0
3611
3628
  },
3612
3629
  {
3613
- "value": 22.0,
3614
- "date": "May"
3630
+ "date": "May",
3631
+ "value": 22.0
3615
3632
  },
3616
3633
  {
3617
- "value": 30.0,
3618
- "date": "Jun"
3634
+ "date": "Jun",
3635
+ "value": 30.0
3619
3636
  }
3620
- ],
3621
- "type": "line-chart"
3637
+ ]
3622
3638
  },
3623
3639
  {
3624
3640
  "items": [
3625
3641
  {
3626
- "label": "Current",
3627
- "color": "primary"
3642
+ "color": "primary",
3643
+ "label": "Current"
3628
3644
  },
3629
3645
  {
3630
- "color": "muted",
3631
- "label": "Previous"
3646
+ "label": "Previous",
3647
+ "color": "muted"
3632
3648
  }
3633
3649
  ],
3634
3650
  "type": "chart-legend"
3635
3651
  },
3636
3652
  {
3637
- "edges": [
3638
- {
3639
- "source": "a",
3640
- "target": "b"
3641
- },
3642
- {
3643
- "source": "b",
3644
- "target": "c"
3645
- }
3646
- ],
3647
- "type": "graph-view",
3648
3653
  "width": 400.0,
3654
+ "height": 200.0,
3655
+ "type": "graph-view",
3649
3656
  "nodes": [
3650
3657
  {
3651
3658
  "id": "a",
3652
3659
  "label": "Start"
3653
3660
  },
3654
3661
  {
3655
- "id": "b",
3656
- "label": "Process"
3662
+ "label": "Process",
3663
+ "id": "b"
3657
3664
  },
3658
3665
  {
3659
3666
  "label": "End",
3660
3667
  "id": "c"
3661
3668
  }
3662
3669
  ],
3663
- "height": 200.0
3670
+ "edges": [
3671
+ {
3672
+ "source": "a",
3673
+ "target": "b"
3674
+ },
3675
+ {
3676
+ "target": "c",
3677
+ "source": "b"
3678
+ }
3679
+ ]
3664
3680
  }
3665
3681
  ],
3666
- "direction": "vertical",
3682
+ "gap": "lg",
3667
3683
  "type": "stack"
3668
3684
  }
3669
3685
  ]
3670
3686
  }
3671
3687
  ],
3672
- "navItems": [
3673
- {
3674
- "label": "Chat",
3675
- "icon": "layout-list",
3676
- "href": "/chat"
3677
- },
3678
- {
3679
- "label": "Channels",
3680
- "href": "/channels",
3681
- "icon": "hash"
3682
- },
3683
- {
3684
- "icon": "layout-list",
3685
- "label": "Online",
3686
- "href": "/online"
3687
- }
3688
- ]
3688
+ "type": "dashboard-layout"
3689
3689
  }
3690
3690
  ]
3691
3691
  ]
@@ -3709,13 +3709,31 @@
3709
3709
  "render-ui",
3710
3710
  "main",
3711
3711
  {
3712
+ "navItems": [
3713
+ {
3714
+ "label": "Chat",
3715
+ "icon": "layout-list",
3716
+ "href": "/chat"
3717
+ },
3718
+ {
3719
+ "href": "/channels",
3720
+ "label": "Channels",
3721
+ "icon": "hash"
3722
+ },
3723
+ {
3724
+ "label": "Online",
3725
+ "icon": "layout-list",
3726
+ "href": "/online"
3727
+ }
3728
+ ],
3729
+ "type": "dashboard-layout",
3730
+ "appName": "Realtime Chat",
3712
3731
  "children": [
3713
3732
  {
3714
- "type": "scaled-diagram",
3715
3733
  "children": [
3716
3734
  {
3717
- "type": "stack",
3718
3735
  "gap": "lg",
3736
+ "type": "stack",
3719
3737
  "children": [
3720
3738
  {
3721
3739
  "items": [
@@ -3730,13 +3748,10 @@
3730
3748
  "type": "breadcrumb"
3731
3749
  },
3732
3750
  {
3733
- "gap": "md",
3734
- "type": "stack",
3735
3751
  "direction": "horizontal",
3736
3752
  "justify": "between",
3737
3753
  "children": [
3738
3754
  {
3739
- "type": "stack",
3740
3755
  "children": [
3741
3756
  {
3742
3757
  "name": "users",
@@ -3749,41 +3764,43 @@
3749
3764
  }
3750
3765
  ],
3751
3766
  "direction": "horizontal",
3752
- "gap": "md"
3767
+ "gap": "md",
3768
+ "type": "stack"
3753
3769
  },
3754
3770
  {
3755
- "action": "REFRESH",
3756
3771
  "label": "Refresh",
3772
+ "action": "REFRESH",
3757
3773
  "variant": "secondary",
3758
3774
  "type": "button",
3759
3775
  "icon": "refresh-cw"
3760
3776
  }
3761
- ]
3777
+ ],
3778
+ "type": "stack",
3779
+ "gap": "md"
3762
3780
  },
3763
3781
  {
3764
3782
  "type": "divider"
3765
3783
  },
3766
3784
  {
3767
- "padding": "md",
3768
3785
  "children": [
3769
3786
  {
3770
- "type": "simple-grid",
3787
+ "cols": 3.0,
3771
3788
  "children": [
3772
3789
  {
3773
3790
  "children": [
3774
3791
  {
3775
- "type": "stack",
3776
- "direction": "vertical",
3777
3792
  "gap": "sm",
3793
+ "direction": "vertical",
3794
+ "type": "stack",
3778
3795
  "children": [
3779
3796
  {
3780
- "variant": "caption",
3781
3797
  "content": "Username",
3798
+ "variant": "caption",
3782
3799
  "type": "typography"
3783
3800
  },
3784
3801
  {
3785
- "type": "typography",
3786
3802
  "variant": "h3",
3803
+ "type": "typography",
3787
3804
  "content": "@entity.username"
3788
3805
  }
3789
3806
  ]
@@ -3792,14 +3809,13 @@
3792
3809
  "type": "card"
3793
3810
  },
3794
3811
  {
3812
+ "type": "card",
3795
3813
  "children": [
3796
3814
  {
3797
- "gap": "sm",
3798
- "type": "stack",
3799
3815
  "children": [
3800
3816
  {
3801
- "variant": "caption",
3802
3817
  "content": "Status",
3818
+ "variant": "caption",
3803
3819
  "type": "typography"
3804
3820
  },
3805
3821
  {
@@ -3808,76 +3824,75 @@
3808
3824
  "variant": "h3"
3809
3825
  }
3810
3826
  ],
3827
+ "gap": "sm",
3828
+ "type": "stack",
3811
3829
  "direction": "vertical"
3812
3830
  }
3813
- ],
3814
- "type": "card"
3831
+ ]
3815
3832
  },
3816
3833
  {
3817
3834
  "children": [
3818
3835
  {
3819
3836
  "type": "stack",
3820
- "direction": "vertical",
3837
+ "gap": "sm",
3821
3838
  "children": [
3822
3839
  {
3823
- "type": "typography",
3824
3840
  "variant": "caption",
3841
+ "type": "typography",
3825
3842
  "content": "LastActive"
3826
3843
  },
3827
3844
  {
3828
- "type": "typography",
3829
3845
  "variant": "h3",
3830
- "content": "@entity.lastActive"
3846
+ "content": "@entity.lastActive",
3847
+ "type": "typography"
3831
3848
  }
3832
3849
  ],
3833
- "gap": "sm"
3850
+ "direction": "vertical"
3834
3851
  }
3835
3852
  ],
3836
3853
  "type": "card"
3837
3854
  },
3838
3855
  {
3839
- "type": "card",
3840
3856
  "children": [
3841
3857
  {
3842
- "type": "stack",
3843
3858
  "direction": "vertical",
3844
3859
  "gap": "sm",
3860
+ "type": "stack",
3845
3861
  "children": [
3846
3862
  {
3847
- "variant": "caption",
3848
3863
  "content": "Avatar",
3864
+ "variant": "caption",
3849
3865
  "type": "typography"
3850
3866
  },
3851
3867
  {
3852
3868
  "type": "typography",
3853
- "variant": "h3",
3854
- "content": "@entity.avatar"
3869
+ "content": "@entity.avatar",
3870
+ "variant": "h3"
3855
3871
  }
3856
3872
  ]
3857
3873
  }
3858
- ]
3874
+ ],
3875
+ "type": "card"
3859
3876
  }
3860
3877
  ],
3861
- "cols": 3.0
3878
+ "type": "simple-grid"
3862
3879
  }
3863
3880
  ],
3864
- "type": "box"
3881
+ "type": "box",
3882
+ "padding": "md"
3865
3883
  },
3866
3884
  {
3867
3885
  "type": "divider"
3868
3886
  },
3869
3887
  {
3870
- "cols": 2.0,
3871
- "type": "grid",
3872
- "gap": "md",
3873
3888
  "children": [
3874
3889
  {
3875
3890
  "type": "card",
3876
3891
  "children": [
3877
3892
  {
3893
+ "variant": "caption",
3878
3894
  "type": "typography",
3879
- "content": "Chart View",
3880
- "variant": "caption"
3895
+ "content": "Chart View"
3881
3896
  }
3882
3897
  ]
3883
3898
  },
@@ -3885,69 +3900,72 @@
3885
3900
  "type": "card",
3886
3901
  "children": [
3887
3902
  {
3888
- "variant": "caption",
3903
+ "type": "typography",
3889
3904
  "content": "Graph View",
3890
- "type": "typography"
3905
+ "variant": "caption"
3891
3906
  }
3892
3907
  ]
3893
3908
  }
3894
- ]
3909
+ ],
3910
+ "type": "grid",
3911
+ "cols": 2.0,
3912
+ "gap": "md"
3895
3913
  },
3896
3914
  {
3915
+ "type": "line-chart",
3897
3916
  "data": [
3898
3917
  {
3899
3918
  "date": "Jan",
3900
3919
  "value": 12.0
3901
3920
  },
3902
3921
  {
3903
- "date": "Feb",
3904
- "value": 19.0
3922
+ "value": 19.0,
3923
+ "date": "Feb"
3905
3924
  },
3906
3925
  {
3907
- "value": 15.0,
3908
- "date": "Mar"
3926
+ "date": "Mar",
3927
+ "value": 15.0
3909
3928
  },
3910
3929
  {
3911
3930
  "date": "Apr",
3912
3931
  "value": 25.0
3913
3932
  },
3914
3933
  {
3915
- "value": 22.0,
3916
- "date": "May"
3934
+ "date": "May",
3935
+ "value": 22.0
3917
3936
  },
3918
3937
  {
3919
3938
  "date": "Jun",
3920
3939
  "value": 30.0
3921
3940
  }
3922
- ],
3923
- "type": "line-chart"
3941
+ ]
3924
3942
  },
3925
3943
  {
3926
- "type": "chart-legend",
3927
3944
  "items": [
3928
3945
  {
3929
3946
  "label": "Current",
3930
3947
  "color": "primary"
3931
3948
  },
3932
3949
  {
3933
- "color": "muted",
3934
- "label": "Previous"
3950
+ "label": "Previous",
3951
+ "color": "muted"
3935
3952
  }
3936
- ]
3953
+ ],
3954
+ "type": "chart-legend"
3937
3955
  },
3938
3956
  {
3957
+ "type": "graph-view",
3958
+ "width": 400.0,
3939
3959
  "edges": [
3940
3960
  {
3941
3961
  "source": "a",
3942
3962
  "target": "b"
3943
3963
  },
3944
3964
  {
3945
- "source": "b",
3946
- "target": "c"
3965
+ "target": "c",
3966
+ "source": "b"
3947
3967
  }
3948
3968
  ],
3949
- "type": "graph-view",
3950
- "width": 400.0,
3951
3969
  "nodes": [
3952
3970
  {
3953
3971
  "id": "a",
@@ -3958,8 +3976,8 @@
3958
3976
  "label": "Process"
3959
3977
  },
3960
3978
  {
3961
- "id": "c",
3962
- "label": "End"
3979
+ "label": "End",
3980
+ "id": "c"
3963
3981
  }
3964
3982
  ],
3965
3983
  "height": 200.0
@@ -3967,28 +3985,10 @@
3967
3985
  ],
3968
3986
  "direction": "vertical"
3969
3987
  }
3970
- ]
3971
- }
3972
- ],
3973
- "navItems": [
3974
- {
3975
- "icon": "layout-list",
3976
- "href": "/chat",
3977
- "label": "Chat"
3978
- },
3979
- {
3980
- "icon": "hash",
3981
- "label": "Channels",
3982
- "href": "/channels"
3983
- },
3984
- {
3985
- "icon": "layout-list",
3986
- "label": "Online",
3987
- "href": "/online"
3988
+ ],
3989
+ "type": "scaled-diagram"
3988
3990
  }
3989
- ],
3990
- "type": "dashboard-layout",
3991
- "appName": "Realtime Chat"
3991
+ ]
3992
3992
  }
3993
3993
  ]
3994
3994
  ]
@@ -4014,34 +4014,35 @@
4014
4014
  {
4015
4015
  "navItems": [
4016
4016
  {
4017
- "icon": "layout-list",
4018
4017
  "label": "Chat",
4019
- "href": "/chat"
4018
+ "href": "/chat",
4019
+ "icon": "layout-list"
4020
4020
  },
4021
4021
  {
4022
- "icon": "hash",
4022
+ "label": "Channels",
4023
4023
  "href": "/channels",
4024
- "label": "Channels"
4024
+ "icon": "hash"
4025
4025
  },
4026
4026
  {
4027
- "icon": "layout-list",
4027
+ "href": "/online",
4028
4028
  "label": "Online",
4029
- "href": "/online"
4029
+ "icon": "layout-list"
4030
4030
  }
4031
4031
  ],
4032
- "appName": "Realtime Chat",
4033
- "type": "dashboard-layout",
4034
4032
  "children": [
4035
4033
  {
4034
+ "type": "scaled-diagram",
4036
4035
  "children": [
4037
4036
  {
4037
+ "direction": "vertical",
4038
+ "gap": "lg",
4038
4039
  "type": "stack",
4039
4040
  "children": [
4040
4041
  {
4041
4042
  "items": [
4042
4043
  {
4043
- "href": "/",
4044
- "label": "Home"
4044
+ "label": "Home",
4045
+ "href": "/"
4045
4046
  },
4046
4047
  {
4047
4048
  "label": "Online Users"
@@ -4050,35 +4051,35 @@
4050
4051
  "type": "breadcrumb"
4051
4052
  },
4052
4053
  {
4054
+ "gap": "md",
4055
+ "justify": "between",
4056
+ "type": "stack",
4053
4057
  "children": [
4054
4058
  {
4055
- "direction": "horizontal",
4056
- "type": "stack",
4057
- "gap": "md",
4058
4059
  "children": [
4059
4060
  {
4060
4061
  "name": "users",
4061
4062
  "type": "icon"
4062
4063
  },
4063
4064
  {
4064
- "type": "typography",
4065
+ "variant": "h2",
4065
4066
  "content": "Online Users",
4066
- "variant": "h2"
4067
+ "type": "typography"
4067
4068
  }
4068
- ]
4069
+ ],
4070
+ "direction": "horizontal",
4071
+ "type": "stack",
4072
+ "gap": "md"
4069
4073
  },
4070
4074
  {
4071
4075
  "type": "button",
4072
- "variant": "secondary",
4073
4076
  "action": "REFRESH",
4074
4077
  "label": "Refresh",
4078
+ "variant": "secondary",
4075
4079
  "icon": "refresh-cw"
4076
4080
  }
4077
4081
  ],
4078
- "direction": "horizontal",
4079
- "gap": "md",
4080
- "type": "stack",
4081
- "justify": "between"
4082
+ "direction": "horizontal"
4082
4083
  },
4083
4084
  {
4084
4085
  "type": "divider"
@@ -4088,25 +4089,24 @@
4088
4089
  "padding": "md",
4089
4090
  "children": [
4090
4091
  {
4091
- "type": "simple-grid",
4092
4092
  "cols": 3.0,
4093
4093
  "children": [
4094
4094
  {
4095
4095
  "children": [
4096
4096
  {
4097
- "direction": "vertical",
4098
4097
  "type": "stack",
4098
+ "direction": "vertical",
4099
4099
  "gap": "sm",
4100
4100
  "children": [
4101
4101
  {
4102
+ "type": "typography",
4102
4103
  "variant": "caption",
4103
- "content": "Username",
4104
- "type": "typography"
4104
+ "content": "Username"
4105
4105
  },
4106
4106
  {
4107
- "type": "typography",
4108
4107
  "variant": "h3",
4109
- "content": "@entity.username"
4108
+ "content": "@entity.username",
4109
+ "type": "typography"
4110
4110
  }
4111
4111
  ]
4112
4112
  }
@@ -4117,35 +4117,33 @@
4117
4117
  "type": "card",
4118
4118
  "children": [
4119
4119
  {
4120
- "direction": "vertical",
4121
- "type": "stack",
4120
+ "gap": "sm",
4122
4121
  "children": [
4123
4122
  {
4124
- "content": "Status",
4125
4123
  "type": "typography",
4126
- "variant": "caption"
4124
+ "variant": "caption",
4125
+ "content": "Status"
4127
4126
  },
4128
4127
  {
4128
+ "variant": "h3",
4129
4129
  "content": "@entity.status",
4130
- "type": "typography",
4131
- "variant": "h3"
4130
+ "type": "typography"
4132
4131
  }
4133
4132
  ],
4134
- "gap": "sm"
4133
+ "type": "stack",
4134
+ "direction": "vertical"
4135
4135
  }
4136
4136
  ]
4137
4137
  },
4138
4138
  {
4139
- "type": "card",
4140
4139
  "children": [
4141
4140
  {
4142
- "type": "stack",
4143
- "direction": "vertical",
4141
+ "gap": "sm",
4144
4142
  "children": [
4145
4143
  {
4146
4144
  "type": "typography",
4147
- "variant": "caption",
4148
- "content": "LastActive"
4145
+ "content": "LastActive",
4146
+ "variant": "caption"
4149
4147
  },
4150
4148
  {
4151
4149
  "type": "typography",
@@ -4153,33 +4151,36 @@
4153
4151
  "variant": "h3"
4154
4152
  }
4155
4153
  ],
4156
- "gap": "sm"
4154
+ "direction": "vertical",
4155
+ "type": "stack"
4157
4156
  }
4158
- ]
4157
+ ],
4158
+ "type": "card"
4159
4159
  },
4160
4160
  {
4161
+ "type": "card",
4161
4162
  "children": [
4162
4163
  {
4163
- "gap": "sm",
4164
- "direction": "vertical",
4165
4164
  "type": "stack",
4166
4165
  "children": [
4167
4166
  {
4168
- "variant": "caption",
4167
+ "content": "Avatar",
4169
4168
  "type": "typography",
4170
- "content": "Avatar"
4169
+ "variant": "caption"
4171
4170
  },
4172
4171
  {
4172
+ "variant": "h3",
4173
4173
  "content": "@entity.avatar",
4174
- "type": "typography",
4175
- "variant": "h3"
4174
+ "type": "typography"
4176
4175
  }
4177
- ]
4176
+ ],
4177
+ "direction": "vertical",
4178
+ "gap": "sm"
4178
4179
  }
4179
- ],
4180
- "type": "card"
4180
+ ]
4181
4181
  }
4182
- ]
4182
+ ],
4183
+ "type": "simple-grid"
4183
4184
  }
4184
4185
  ]
4185
4186
  },
@@ -4187,37 +4188,37 @@
4187
4188
  "type": "divider"
4188
4189
  },
4189
4190
  {
4190
- "gap": "md",
4191
4191
  "children": [
4192
4192
  {
4193
- "type": "card",
4194
4193
  "children": [
4195
4194
  {
4196
- "content": "Chart View",
4195
+ "variant": "caption",
4197
4196
  "type": "typography",
4198
- "variant": "caption"
4197
+ "content": "Chart View"
4199
4198
  }
4200
- ]
4199
+ ],
4200
+ "type": "card"
4201
4201
  },
4202
4202
  {
4203
+ "type": "card",
4203
4204
  "children": [
4204
4205
  {
4205
4206
  "type": "typography",
4206
4207
  "variant": "caption",
4207
4208
  "content": "Graph View"
4208
4209
  }
4209
- ],
4210
- "type": "card"
4210
+ ]
4211
4211
  }
4212
4212
  ],
4213
4213
  "type": "grid",
4214
+ "gap": "md",
4214
4215
  "cols": 2.0
4215
4216
  },
4216
4217
  {
4217
4218
  "data": [
4218
4219
  {
4219
- "date": "Jan",
4220
- "value": 12.0
4220
+ "value": 12.0,
4221
+ "date": "Jan"
4221
4222
  },
4222
4223
  {
4223
4224
  "date": "Feb",
@@ -4232,8 +4233,8 @@
4232
4233
  "date": "Apr"
4233
4234
  },
4234
4235
  {
4235
- "date": "May",
4236
- "value": 22.0
4236
+ "value": 22.0,
4237
+ "date": "May"
4237
4238
  },
4238
4239
  {
4239
4240
  "value": 30.0,
@@ -4250,13 +4251,22 @@
4250
4251
  "label": "Current"
4251
4252
  },
4252
4253
  {
4253
- "color": "muted",
4254
- "label": "Previous"
4254
+ "label": "Previous",
4255
+ "color": "muted"
4255
4256
  }
4256
4257
  ]
4257
4258
  },
4258
4259
  {
4259
- "width": 400.0,
4260
+ "edges": [
4261
+ {
4262
+ "target": "b",
4263
+ "source": "a"
4264
+ },
4265
+ {
4266
+ "target": "c",
4267
+ "source": "b"
4268
+ }
4269
+ ],
4260
4270
  "nodes": [
4261
4271
  {
4262
4272
  "label": "Start",
@@ -4267,31 +4277,21 @@
4267
4277
  "id": "b"
4268
4278
  },
4269
4279
  {
4270
- "id": "c",
4271
- "label": "End"
4272
- }
4273
- ],
4274
- "edges": [
4275
- {
4276
- "source": "a",
4277
- "target": "b"
4278
- },
4279
- {
4280
- "source": "b",
4281
- "target": "c"
4280
+ "label": "End",
4281
+ "id": "c"
4282
4282
  }
4283
4283
  ],
4284
+ "width": 400.0,
4284
4285
  "type": "graph-view",
4285
4286
  "height": 200.0
4286
4287
  }
4287
- ],
4288
- "direction": "vertical",
4289
- "gap": "lg"
4288
+ ]
4290
4289
  }
4291
- ],
4292
- "type": "scaled-diagram"
4290
+ ]
4293
4291
  }
4294
- ]
4292
+ ],
4293
+ "type": "dashboard-layout",
4294
+ "appName": "Realtime Chat"
4295
4295
  }
4296
4296
  ]
4297
4297
  ]
@@ -4314,4 +4314,4 @@
4314
4314
  ]
4315
4315
  }
4316
4316
  ]
4317
- }
4317
+ }