@almadar/std 3.2.1 → 3.2.3

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 (295) hide show
  1. package/behaviors/exports/atoms/std-async.orb +41 -24
  2. package/behaviors/exports/atoms/std-browse.orb +44 -44
  3. package/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  4. package/behaviors/exports/atoms/std-calendar.orb +770 -0
  5. package/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  6. package/behaviors/exports/atoms/std-collision.orb +278 -206
  7. package/behaviors/exports/atoms/std-combat-log.orb +6 -1
  8. package/behaviors/exports/atoms/std-combat.orb +6 -1
  9. package/behaviors/exports/atoms/std-confirmation.orb +212 -7
  10. package/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  11. package/behaviors/exports/atoms/std-display.orb +1186 -376
  12. package/behaviors/exports/atoms/std-drawer.orb +307 -101
  13. package/behaviors/exports/atoms/std-filter.orb +211 -18
  14. package/behaviors/exports/atoms/std-flip-card.orb +596 -0
  15. package/behaviors/exports/atoms/std-gallery.orb +382 -0
  16. package/behaviors/exports/atoms/std-game-audio.orb +6 -1
  17. package/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  18. package/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  19. package/behaviors/exports/atoms/std-game-hud.orb +6 -1
  20. package/behaviors/exports/atoms/std-game-menu.orb +6 -1
  21. package/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  22. package/behaviors/exports/atoms/std-gameflow.orb +100 -5
  23. package/behaviors/exports/atoms/std-input.orb +142 -137
  24. package/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  25. package/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  26. package/behaviors/exports/atoms/std-loading.orb +149 -170
  27. package/behaviors/exports/atoms/std-modal.orb +159 -94
  28. package/behaviors/exports/atoms/std-movement.orb +401 -31
  29. package/behaviors/exports/atoms/std-notification.orb +117 -95
  30. package/behaviors/exports/atoms/std-overworld.orb +44 -16
  31. package/behaviors/exports/atoms/std-pagination.orb +44 -115
  32. package/behaviors/exports/atoms/std-physics2d.orb +6 -1
  33. package/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  34. package/behaviors/exports/atoms/std-quest.orb +309 -34
  35. package/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  36. package/behaviors/exports/atoms/std-rating.orb +328 -0
  37. package/behaviors/exports/atoms/std-score-board.orb +6 -1
  38. package/behaviors/exports/atoms/std-score.orb +252 -11
  39. package/behaviors/exports/atoms/std-search.orb +62 -47
  40. package/behaviors/exports/atoms/std-selection.orb +180 -149
  41. package/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  42. package/behaviors/exports/atoms/std-sort.orb +192 -60
  43. package/behaviors/exports/atoms/std-sprite.orb +6 -1
  44. package/behaviors/exports/atoms/std-tabs.orb +25 -15
  45. package/behaviors/exports/atoms/std-text-effects.orb +658 -0
  46. package/behaviors/exports/atoms/std-theme.orb +573 -0
  47. package/behaviors/exports/atoms/std-timer.orb +483 -91
  48. package/behaviors/exports/atoms/std-undo.orb +211 -81
  49. package/behaviors/exports/atoms/std-upload.orb +535 -0
  50. package/behaviors/exports/atoms/std-wizard.orb +677 -240
  51. package/behaviors/exports/molecules/std-builder-game.orb +49 -4
  52. package/behaviors/exports/molecules/std-cart.orb +325 -102
  53. package/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  54. package/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  55. package/behaviors/exports/molecules/std-detail.orb +52 -48
  56. package/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  57. package/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  58. package/behaviors/exports/molecules/std-geospatial.orb +70 -51
  59. package/behaviors/exports/molecules/std-inventory.orb +92 -53
  60. package/behaviors/exports/molecules/std-list.orb +416 -52
  61. package/behaviors/exports/molecules/std-messaging.orb +41 -49
  62. package/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  63. package/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  64. package/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  65. package/behaviors/exports/molecules/std-quiz.orb +1045 -0
  66. package/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  67. package/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  68. package/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  69. package/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  70. package/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  71. package/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  72. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  73. package/behaviors/exports/organisms/std-cms.orb +1150 -277
  74. package/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  75. package/behaviors/exports/organisms/std-crm.orb +2357 -821
  76. package/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  77. package/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  78. package/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  79. package/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  80. package/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  81. package/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  82. package/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  83. package/behaviors/exports/organisms/std-lms.orb +2548 -1192
  84. package/behaviors/exports/organisms/std-logic-training.orb +220 -66
  85. package/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  86. package/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  87. package/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  88. package/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  89. package/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  90. package/behaviors/exports/organisms/std-social-feed.orb +184 -168
  91. package/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  92. package/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  93. package/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  94. package/behaviors/exports/validation-report.json +3 -750
  95. package/behaviors/exports/verify-results.json +13 -0
  96. package/dist/behaviors/exports/atoms/std-async.orb +41 -24
  97. package/dist/behaviors/exports/atoms/std-browse.orb +44 -44
  98. package/dist/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  99. package/dist/behaviors/exports/atoms/std-calendar.orb +770 -0
  100. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  101. package/dist/behaviors/exports/atoms/std-collision.orb +278 -206
  102. package/dist/behaviors/exports/atoms/std-combat-log.orb +6 -1
  103. package/dist/behaviors/exports/atoms/std-combat.orb +6 -1
  104. package/dist/behaviors/exports/atoms/std-confirmation.orb +212 -7
  105. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  106. package/dist/behaviors/exports/atoms/std-display.orb +1186 -376
  107. package/dist/behaviors/exports/atoms/std-drawer.orb +307 -101
  108. package/dist/behaviors/exports/atoms/std-filter.orb +211 -18
  109. package/dist/behaviors/exports/atoms/std-flip-card.orb +596 -0
  110. package/dist/behaviors/exports/atoms/std-gallery.orb +382 -0
  111. package/dist/behaviors/exports/atoms/std-game-audio.orb +6 -1
  112. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  113. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  114. package/dist/behaviors/exports/atoms/std-game-hud.orb +6 -1
  115. package/dist/behaviors/exports/atoms/std-game-menu.orb +6 -1
  116. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  117. package/dist/behaviors/exports/atoms/std-gameflow.orb +100 -5
  118. package/dist/behaviors/exports/atoms/std-input.orb +142 -137
  119. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  120. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  121. package/dist/behaviors/exports/atoms/std-loading.orb +149 -170
  122. package/dist/behaviors/exports/atoms/std-modal.orb +159 -94
  123. package/dist/behaviors/exports/atoms/std-movement.orb +401 -31
  124. package/dist/behaviors/exports/atoms/std-notification.orb +117 -95
  125. package/dist/behaviors/exports/atoms/std-overworld.orb +44 -16
  126. package/dist/behaviors/exports/atoms/std-pagination.orb +44 -115
  127. package/dist/behaviors/exports/atoms/std-physics2d.orb +6 -1
  128. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  129. package/dist/behaviors/exports/atoms/std-quest.orb +309 -34
  130. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  131. package/dist/behaviors/exports/atoms/std-rating.orb +328 -0
  132. package/dist/behaviors/exports/atoms/std-score-board.orb +6 -1
  133. package/dist/behaviors/exports/atoms/std-score.orb +252 -11
  134. package/dist/behaviors/exports/atoms/std-search.orb +62 -47
  135. package/dist/behaviors/exports/atoms/std-selection.orb +180 -149
  136. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  137. package/dist/behaviors/exports/atoms/std-sort.orb +192 -60
  138. package/dist/behaviors/exports/atoms/std-sprite.orb +6 -1
  139. package/dist/behaviors/exports/atoms/std-tabs.orb +25 -15
  140. package/dist/behaviors/exports/atoms/std-text-effects.orb +658 -0
  141. package/dist/behaviors/exports/atoms/std-theme.orb +573 -0
  142. package/dist/behaviors/exports/atoms/std-timer.orb +483 -91
  143. package/dist/behaviors/exports/atoms/std-undo.orb +211 -81
  144. package/dist/behaviors/exports/atoms/std-upload.orb +535 -0
  145. package/dist/behaviors/exports/atoms/std-wizard.orb +677 -240
  146. package/dist/behaviors/exports/molecules/std-builder-game.orb +49 -4
  147. package/dist/behaviors/exports/molecules/std-cart.orb +325 -102
  148. package/dist/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  149. package/dist/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  150. package/dist/behaviors/exports/molecules/std-detail.orb +52 -48
  151. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  152. package/dist/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  153. package/dist/behaviors/exports/molecules/std-geospatial.orb +70 -51
  154. package/dist/behaviors/exports/molecules/std-inventory.orb +92 -53
  155. package/dist/behaviors/exports/molecules/std-list.orb +416 -52
  156. package/dist/behaviors/exports/molecules/std-messaging.orb +41 -49
  157. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  158. package/dist/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  159. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  160. package/dist/behaviors/exports/molecules/std-quiz.orb +1045 -0
  161. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  162. package/dist/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  163. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  164. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  165. package/dist/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  166. package/dist/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  167. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  168. package/dist/behaviors/exports/organisms/std-cms.orb +1150 -277
  169. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  170. package/dist/behaviors/exports/organisms/std-crm.orb +2357 -821
  171. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  172. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  173. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  174. package/dist/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  175. package/dist/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  176. package/dist/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  177. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  178. package/dist/behaviors/exports/organisms/std-lms.orb +2548 -1192
  179. package/dist/behaviors/exports/organisms/std-logic-training.orb +220 -66
  180. package/dist/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  181. package/dist/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  182. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  183. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  184. package/dist/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  185. package/dist/behaviors/exports/organisms/std-social-feed.orb +184 -168
  186. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  187. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  188. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  189. package/dist/behaviors/exports/validation-report.json +3 -750
  190. package/dist/behaviors/exports/verify-results.json +13 -0
  191. package/dist/behaviors/functions/index.d.ts +270 -1
  192. package/dist/behaviors/functions/index.js +3811 -1333
  193. package/dist/behaviors/functions/index.js.map +1 -1
  194. package/dist/behaviors/index.d.ts +1 -1
  195. package/dist/behaviors/index.js +3811 -1333
  196. package/dist/behaviors/index.js.map +1 -1
  197. package/dist/exports/atoms/std-async.orb +41 -24
  198. package/dist/exports/atoms/std-browse.orb +44 -44
  199. package/dist/exports/atoms/std-cache-aside.orb +256 -42
  200. package/dist/exports/atoms/std-calendar.orb +770 -0
  201. package/dist/exports/atoms/std-circuit-breaker.orb +577 -97
  202. package/dist/exports/atoms/std-collision.orb +278 -206
  203. package/dist/exports/atoms/std-combat-log.orb +6 -1
  204. package/dist/exports/atoms/std-combat.orb +6 -1
  205. package/dist/exports/atoms/std-confirmation.orb +212 -7
  206. package/dist/exports/atoms/std-dialogue-box.orb +6 -1
  207. package/dist/exports/atoms/std-display.orb +1186 -376
  208. package/dist/exports/atoms/std-drawer.orb +307 -101
  209. package/dist/exports/atoms/std-filter.orb +211 -18
  210. package/dist/exports/atoms/std-flip-card.orb +596 -0
  211. package/dist/exports/atoms/std-gallery.orb +382 -0
  212. package/dist/exports/atoms/std-game-audio.orb +6 -1
  213. package/dist/exports/atoms/std-game-canvas2d.orb +6 -1
  214. package/dist/exports/atoms/std-game-canvas3d.orb +6 -1
  215. package/dist/exports/atoms/std-game-hud.orb +6 -1
  216. package/dist/exports/atoms/std-game-menu.orb +6 -1
  217. package/dist/exports/atoms/std-game-over-screen.orb +6 -1
  218. package/dist/exports/atoms/std-gameflow.orb +100 -5
  219. package/dist/exports/atoms/std-input.orb +142 -137
  220. package/dist/exports/atoms/std-inventory-panel.orb +6 -1
  221. package/dist/exports/atoms/std-isometric-canvas.orb +6 -1
  222. package/dist/exports/atoms/std-loading.orb +149 -170
  223. package/dist/exports/atoms/std-modal.orb +159 -94
  224. package/dist/exports/atoms/std-movement.orb +401 -31
  225. package/dist/exports/atoms/std-notification.orb +117 -95
  226. package/dist/exports/atoms/std-overworld.orb +44 -16
  227. package/dist/exports/atoms/std-pagination.orb +44 -115
  228. package/dist/exports/atoms/std-physics2d.orb +6 -1
  229. package/dist/exports/atoms/std-platformer-canvas.orb +6 -1
  230. package/dist/exports/atoms/std-quest.orb +309 -34
  231. package/dist/exports/atoms/std-rate-limiter.orb +410 -157
  232. package/dist/exports/atoms/std-rating.orb +328 -0
  233. package/dist/exports/atoms/std-score-board.orb +6 -1
  234. package/dist/exports/atoms/std-score.orb +252 -11
  235. package/dist/exports/atoms/std-search.orb +62 -47
  236. package/dist/exports/atoms/std-selection.orb +180 -149
  237. package/dist/exports/atoms/std-simulation-canvas.orb +6 -1
  238. package/dist/exports/atoms/std-sort.orb +192 -60
  239. package/dist/exports/atoms/std-sprite.orb +6 -1
  240. package/dist/exports/atoms/std-tabs.orb +25 -15
  241. package/dist/exports/atoms/std-text-effects.orb +658 -0
  242. package/dist/exports/atoms/std-theme.orb +573 -0
  243. package/dist/exports/atoms/std-timer.orb +483 -91
  244. package/dist/exports/atoms/std-undo.orb +211 -81
  245. package/dist/exports/atoms/std-upload.orb +535 -0
  246. package/dist/exports/atoms/std-wizard.orb +677 -240
  247. package/dist/exports/molecules/std-builder-game.orb +49 -4
  248. package/dist/exports/molecules/std-cart.orb +325 -102
  249. package/dist/exports/molecules/std-classifier-game.orb +49 -4
  250. package/dist/exports/molecules/std-debugger-game.orb +49 -4
  251. package/dist/exports/molecules/std-detail.orb +52 -48
  252. package/dist/exports/molecules/std-event-handler-game.orb +49 -4
  253. package/dist/exports/molecules/std-form-advanced.orb +654 -0
  254. package/dist/exports/molecules/std-geospatial.orb +70 -51
  255. package/dist/exports/molecules/std-inventory.orb +92 -53
  256. package/dist/exports/molecules/std-list.orb +416 -52
  257. package/dist/exports/molecules/std-messaging.orb +41 -49
  258. package/dist/exports/molecules/std-negotiator-game.orb +49 -4
  259. package/dist/exports/molecules/std-platformer-game.orb +58 -3
  260. package/dist/exports/molecules/std-puzzle-game.orb +58 -7
  261. package/dist/exports/molecules/std-quiz.orb +1045 -0
  262. package/dist/exports/molecules/std-sequencer-game.orb +49 -4
  263. package/dist/exports/molecules/std-simulator-game.orb +49 -4
  264. package/dist/exports/molecules/std-turn-based-battle.orb +66 -1
  265. package/dist/exports/organisms/std-api-gateway.orb +2615 -867
  266. package/dist/exports/organisms/std-arcade-game.orb +399 -197
  267. package/dist/exports/organisms/std-booking-system.orb +3154 -1305
  268. package/dist/exports/organisms/std-cicd-pipeline.orb +2298 -779
  269. package/dist/exports/organisms/std-cms.orb +1150 -277
  270. package/dist/exports/organisms/std-coding-academy.orb +1222 -533
  271. package/dist/exports/organisms/std-crm.orb +2357 -821
  272. package/dist/exports/organisms/std-devops-dashboard.orb +4230 -1281
  273. package/dist/exports/organisms/std-ecommerce.orb +2660 -1098
  274. package/dist/exports/organisms/std-finance-tracker.orb +1749 -737
  275. package/dist/exports/organisms/std-healthcare.orb +3593 -1478
  276. package/dist/exports/organisms/std-helpdesk.orb +1870 -738
  277. package/dist/exports/organisms/std-hr-portal.orb +3290 -1385
  278. package/dist/exports/organisms/std-iot-dashboard.orb +2704 -788
  279. package/dist/exports/organisms/std-lms.orb +2548 -1192
  280. package/dist/exports/organisms/std-logic-training.orb +220 -66
  281. package/dist/exports/organisms/std-platformer-app.orb +373 -194
  282. package/dist/exports/organisms/std-project-manager.orb +2347 -806
  283. package/dist/exports/organisms/std-puzzle-app.orb +240 -95
  284. package/dist/exports/organisms/std-realtime-chat.orb +2020 -660
  285. package/dist/exports/organisms/std-rpg-game.orb +1303 -740
  286. package/dist/exports/organisms/std-social-feed.orb +184 -168
  287. package/dist/exports/organisms/std-stem-lab.orb +1223 -512
  288. package/dist/exports/organisms/std-strategy-game.orb +1412 -731
  289. package/dist/exports/organisms/std-trading-dashboard.orb +1869 -695
  290. package/dist/exports/validation-report.json +3 -750
  291. package/dist/exports/verify-results.json +13 -0
  292. package/dist/index.d.ts +1 -1
  293. package/dist/index.js +3808 -1330
  294. package/dist/index.js.map +1 -1
  295. package/package.json +1 -1
@@ -30,7 +30,7 @@
30
30
  },
31
31
  {
32
32
  "name": "timestamp",
33
- "type": "string"
33
+ "type": "date"
34
34
  }
35
35
  ]
36
36
  },
@@ -98,109 +98,108 @@
98
98
  "render-ui",
99
99
  "main",
100
100
  {
101
- "type": "stack",
102
- "direction": "vertical",
103
- "gap": "lg",
104
- "children": [
101
+ "type": "dashboard-layout",
102
+ "appName": "Realtime Chat",
103
+ "navItems": [
105
104
  {
106
- "type": "stack",
107
- "direction": "horizontal",
108
- "gap": "md",
109
- "justify": "space-between",
110
- "children": [
111
- {
112
- "type": "stack",
113
- "direction": "horizontal",
114
- "gap": "sm",
115
- "align": "center",
116
- "children": [
117
- {
118
- "type": "icon",
119
- "name": "message-circle",
120
- "size": "lg"
121
- },
122
- {
123
- "type": "typography",
124
- "content": "Chat",
125
- "variant": "h2"
126
- }
127
- ]
128
- },
129
- {
130
- "type": "stack",
131
- "direction": "horizontal",
132
- "gap": "sm",
133
- "children": [
134
- {
135
- "type": "button",
136
- "label": "Compose",
137
- "event": "COMPOSE",
138
- "variant": "primary",
139
- "icon": "edit"
140
- }
141
- ]
142
- }
143
- ]
105
+ "label": "Chat",
106
+ "href": "/chat",
107
+ "icon": "layout-list"
144
108
  },
145
109
  {
146
- "type": "divider"
110
+ "label": "Channels",
111
+ "href": "/channels",
112
+ "icon": "hash"
147
113
  },
148
114
  {
149
- "type": "data-grid",
150
- "entity": "ChatMessage",
151
- "emptyIcon": "inbox",
152
- "emptyTitle": "No messages yet",
153
- "emptyDescription": "Start a new conversation.",
154
- "itemActions": [
155
- {
156
- "label": "View",
157
- "event": "VIEW"
158
- }
159
- ],
160
- "className": "transition-shadow hover:shadow-md cursor-pointer",
115
+ "label": "Online",
116
+ "href": "/online",
117
+ "icon": "layout-list"
118
+ }
119
+ ],
120
+ "children": [
121
+ {
122
+ "type": "stack",
123
+ "direction": "vertical",
124
+ "gap": "lg",
125
+ "className": "max-w-5xl mx-auto w-full",
161
126
  "children": [
162
127
  {
163
128
  "type": "stack",
164
- "direction": "vertical",
165
- "gap": "sm",
129
+ "direction": "horizontal",
130
+ "gap": "md",
131
+ "justify": "space-between",
132
+ "align": "center",
166
133
  "children": [
167
134
  {
168
135
  "type": "stack",
169
136
  "direction": "horizontal",
170
- "justify": "space-between",
137
+ "gap": "sm",
171
138
  "align": "center",
172
139
  "children": [
173
140
  {
174
- "type": "stack",
175
- "direction": "horizontal",
176
- "gap": "sm",
177
- "align": "center",
178
- "children": [
179
- {
180
- "type": "icon",
181
- "name": "message-circle",
182
- "size": "sm"
183
- },
184
- {
185
- "type": "typography",
186
- "variant": "h4",
187
- "content": "@entity.sender"
188
- }
189
- ]
141
+ "type": "icon",
142
+ "name": "message-circle",
143
+ "size": "lg"
190
144
  },
191
145
  {
192
- "type": "badge",
193
- "label": "@entity.content"
146
+ "type": "typography",
147
+ "content": "Chat",
148
+ "variant": "h2"
194
149
  }
195
150
  ]
196
151
  },
197
152
  {
198
- "type": "typography",
199
- "variant": "caption",
200
- "color": "muted",
201
- "content": "@entity.channel"
153
+ "type": "stack",
154
+ "direction": "horizontal",
155
+ "gap": "sm",
156
+ "children": [
157
+ {
158
+ "type": "button",
159
+ "label": "Compose",
160
+ "event": "COMPOSE",
161
+ "variant": "primary",
162
+ "icon": "edit"
163
+ }
164
+ ]
202
165
  }
203
166
  ]
167
+ },
168
+ {
169
+ "type": "divider"
170
+ },
171
+ {
172
+ "type": "data-list",
173
+ "entity": "ChatMessage",
174
+ "emptyIcon": "inbox",
175
+ "emptyTitle": "No messages yet",
176
+ "emptyDescription": "Start a new conversation.",
177
+ "itemActions": [
178
+ {
179
+ "label": "View",
180
+ "event": "VIEW",
181
+ "variant": "ghost",
182
+ "size": "sm"
183
+ }
184
+ ],
185
+ "columns": [
186
+ {
187
+ "name": "sender",
188
+ "variant": "h4"
189
+ },
190
+ {
191
+ "name": "content",
192
+ "variant": "body"
193
+ },
194
+ {
195
+ "name": "timestamp",
196
+ "variant": "caption",
197
+ "format": "date"
198
+ }
199
+ ],
200
+ "variant": "message",
201
+ "senderField": "sender",
202
+ "gap": "sm"
204
203
  }
205
204
  ]
206
205
  }
@@ -339,6 +338,11 @@
339
338
  "render-ui",
340
339
  "modal",
341
340
  null
341
+ ],
342
+ [
343
+ "notify",
344
+ "Cancelled",
345
+ "info"
342
346
  ]
343
347
  ]
344
348
  },
@@ -560,6 +564,11 @@
560
564
  "render-ui",
561
565
  "modal",
562
566
  null
567
+ ],
568
+ [
569
+ "notify",
570
+ "Cancelled",
571
+ "info"
563
572
  ]
564
573
  ]
565
574
  }
@@ -735,118 +744,127 @@
735
744
  "render-ui",
736
745
  "main",
737
746
  {
738
- "type": "stack",
739
- "direction": "vertical",
740
- "gap": "lg",
741
- "children": [
747
+ "type": "dashboard-layout",
748
+ "appName": "Realtime Chat",
749
+ "navItems": [
742
750
  {
743
- "type": "stack",
744
- "direction": "horizontal",
745
- "gap": "md",
746
- "justify": "space-between",
747
- "children": [
748
- {
749
- "type": "stack",
750
- "direction": "horizontal",
751
- "gap": "sm",
752
- "align": "center",
753
- "children": [
754
- {
755
- "type": "icon",
756
- "name": "hash",
757
- "size": "lg"
758
- },
759
- {
760
- "type": "typography",
761
- "content": "Channels",
762
- "variant": "h2"
763
- }
764
- ]
765
- },
766
- {
767
- "type": "stack",
768
- "direction": "horizontal",
769
- "gap": "sm",
770
- "children": [
771
- {
772
- "type": "button",
773
- "label": "Create Channel",
774
- "event": "CREATE",
775
- "variant": "primary",
776
- "icon": "plus"
777
- }
778
- ]
779
- }
780
- ]
751
+ "label": "Chat",
752
+ "href": "/chat",
753
+ "icon": "layout-list"
781
754
  },
782
755
  {
783
- "type": "divider"
756
+ "label": "Channels",
757
+ "href": "/channels",
758
+ "icon": "hash"
784
759
  },
785
760
  {
786
- "type": "data-grid",
787
- "entity": "Channel",
788
- "emptyIcon": "inbox",
789
- "emptyTitle": "No channels yet",
790
- "emptyDescription": "Create your first channel to get started.",
791
- "itemActions": [
792
- {
793
- "label": "View",
794
- "event": "VIEW"
795
- },
796
- {
797
- "label": "Edit",
798
- "event": "EDIT"
799
- },
800
- {
801
- "label": "Delete",
802
- "event": "DELETE",
803
- "variant": "danger"
804
- }
805
- ],
806
- "className": "transition-shadow hover:shadow-md cursor-pointer",
761
+ "label": "Online",
762
+ "href": "/online",
763
+ "icon": "layout-list"
764
+ }
765
+ ],
766
+ "children": [
767
+ {
768
+ "type": "stack",
769
+ "direction": "vertical",
770
+ "gap": "lg",
771
+ "className": "max-w-5xl mx-auto w-full",
807
772
  "children": [
808
773
  {
809
774
  "type": "stack",
810
- "direction": "vertical",
811
- "gap": "sm",
775
+ "direction": "horizontal",
776
+ "gap": "md",
777
+ "justify": "space-between",
778
+ "align": "center",
812
779
  "children": [
813
780
  {
814
781
  "type": "stack",
815
782
  "direction": "horizontal",
816
- "justify": "space-between",
783
+ "gap": "sm",
817
784
  "align": "center",
818
785
  "children": [
819
786
  {
820
- "type": "stack",
821
- "direction": "horizontal",
822
- "gap": "sm",
823
- "align": "center",
824
- "children": [
825
- {
826
- "type": "icon",
827
- "name": "hash",
828
- "size": "sm"
829
- },
830
- {
831
- "type": "typography",
832
- "variant": "h4",
833
- "content": "@entity.name"
834
- }
835
- ]
787
+ "type": "icon",
788
+ "name": "hash",
789
+ "size": "lg"
836
790
  },
837
791
  {
838
- "type": "badge",
839
- "label": "@entity.description"
792
+ "type": "typography",
793
+ "content": "Channels",
794
+ "variant": "h2"
840
795
  }
841
796
  ]
842
797
  },
843
798
  {
844
- "type": "typography",
845
- "variant": "caption",
846
- "color": "muted",
847
- "content": "@entity.memberCount"
799
+ "type": "stack",
800
+ "direction": "horizontal",
801
+ "gap": "sm",
802
+ "children": [
803
+ {
804
+ "type": "button",
805
+ "label": "Create Channel",
806
+ "event": "CREATE",
807
+ "variant": "primary",
808
+ "icon": "plus"
809
+ }
810
+ ]
848
811
  }
849
812
  ]
813
+ },
814
+ {
815
+ "type": "divider"
816
+ },
817
+ {
818
+ "type": "data-list",
819
+ "entity": "Channel",
820
+ "emptyIcon": "inbox",
821
+ "emptyTitle": "No channels yet",
822
+ "emptyDescription": "Create a channel to start conversations.",
823
+ "itemActions": [
824
+ {
825
+ "label": "View",
826
+ "event": "VIEW",
827
+ "variant": "ghost",
828
+ "size": "sm"
829
+ },
830
+ {
831
+ "label": "Edit",
832
+ "event": "EDIT",
833
+ "variant": "ghost",
834
+ "size": "sm"
835
+ },
836
+ {
837
+ "label": "Delete",
838
+ "event": "DELETE",
839
+ "variant": "danger",
840
+ "size": "sm"
841
+ }
842
+ ],
843
+ "columns": [
844
+ {
845
+ "name": "name",
846
+ "variant": "h3",
847
+ "icon": "hash"
848
+ },
849
+ {
850
+ "name": "memberCount",
851
+ "label": "Members",
852
+ "variant": "badge",
853
+ "format": "number"
854
+ },
855
+ {
856
+ "name": "description",
857
+ "variant": "body"
858
+ },
859
+ {
860
+ "name": "isPrivate",
861
+ "label": "Private",
862
+ "variant": "body",
863
+ "format": "boolean"
864
+ }
865
+ ],
866
+ "variant": "card",
867
+ "gap": "sm"
850
868
  }
851
869
  ]
852
870
  }
@@ -966,6 +984,137 @@
966
984
  "fetch",
967
985
  "Channel"
968
986
  ],
987
+ [
988
+ "render-ui",
989
+ "main",
990
+ {
991
+ "type": "dashboard-layout",
992
+ "appName": "Realtime Chat",
993
+ "navItems": [
994
+ {
995
+ "label": "Chat",
996
+ "href": "/chat",
997
+ "icon": "layout-list"
998
+ },
999
+ {
1000
+ "label": "Channels",
1001
+ "href": "/channels",
1002
+ "icon": "hash"
1003
+ },
1004
+ {
1005
+ "label": "Online",
1006
+ "href": "/online",
1007
+ "icon": "layout-list"
1008
+ }
1009
+ ],
1010
+ "children": [
1011
+ {
1012
+ "type": "stack",
1013
+ "direction": "vertical",
1014
+ "gap": "lg",
1015
+ "className": "max-w-5xl mx-auto w-full",
1016
+ "children": [
1017
+ {
1018
+ "type": "stack",
1019
+ "direction": "horizontal",
1020
+ "gap": "md",
1021
+ "justify": "space-between",
1022
+ "align": "center",
1023
+ "children": [
1024
+ {
1025
+ "type": "stack",
1026
+ "direction": "horizontal",
1027
+ "gap": "sm",
1028
+ "align": "center",
1029
+ "children": [
1030
+ {
1031
+ "type": "icon",
1032
+ "name": "hash",
1033
+ "size": "lg"
1034
+ },
1035
+ {
1036
+ "type": "typography",
1037
+ "content": "Channels",
1038
+ "variant": "h2"
1039
+ }
1040
+ ]
1041
+ },
1042
+ {
1043
+ "type": "stack",
1044
+ "direction": "horizontal",
1045
+ "gap": "sm",
1046
+ "children": [
1047
+ {
1048
+ "type": "button",
1049
+ "label": "Create Channel",
1050
+ "event": "CREATE",
1051
+ "variant": "primary",
1052
+ "icon": "plus"
1053
+ }
1054
+ ]
1055
+ }
1056
+ ]
1057
+ },
1058
+ {
1059
+ "type": "divider"
1060
+ },
1061
+ {
1062
+ "type": "data-list",
1063
+ "entity": "Channel",
1064
+ "emptyIcon": "inbox",
1065
+ "emptyTitle": "No channels yet",
1066
+ "emptyDescription": "Create a channel to start conversations.",
1067
+ "itemActions": [
1068
+ {
1069
+ "label": "View",
1070
+ "event": "VIEW",
1071
+ "variant": "ghost",
1072
+ "size": "sm"
1073
+ },
1074
+ {
1075
+ "label": "Edit",
1076
+ "event": "EDIT",
1077
+ "variant": "ghost",
1078
+ "size": "sm"
1079
+ },
1080
+ {
1081
+ "label": "Delete",
1082
+ "event": "DELETE",
1083
+ "variant": "danger",
1084
+ "size": "sm"
1085
+ }
1086
+ ],
1087
+ "columns": [
1088
+ {
1089
+ "name": "name",
1090
+ "variant": "h3",
1091
+ "icon": "hash"
1092
+ },
1093
+ {
1094
+ "name": "memberCount",
1095
+ "label": "Members",
1096
+ "variant": "badge",
1097
+ "format": "number"
1098
+ },
1099
+ {
1100
+ "name": "description",
1101
+ "variant": "body"
1102
+ },
1103
+ {
1104
+ "name": "isPrivate",
1105
+ "label": "Private",
1106
+ "variant": "body",
1107
+ "format": "boolean"
1108
+ }
1109
+ ],
1110
+ "variant": "card",
1111
+ "gap": "sm"
1112
+ }
1113
+ ]
1114
+ }
1115
+ ]
1116
+ }
1117
+ ],
969
1118
  [
970
1119
  "notify",
971
1120
  "Channel deleted successfully"
@@ -981,26 +1130,296 @@
981
1130
  "render-ui",
982
1131
  "modal",
983
1132
  null
984
- ]
985
- ]
986
- },
987
- {
988
- "from": "deleting",
989
- "to": "browsing",
990
- "event": "CLOSE",
991
- "effects": [
1133
+ ],
1134
+ [
1135
+ "fetch",
1136
+ "Channel"
1137
+ ],
992
1138
  [
993
1139
  "render-ui",
994
- "modal",
995
- null
996
- ]
997
- ]
998
- }
999
- ]
1000
- }
1001
- },
1002
- {
1003
- "name": "ChannelCreate",
1140
+ "main",
1141
+ {
1142
+ "type": "dashboard-layout",
1143
+ "appName": "Realtime Chat",
1144
+ "navItems": [
1145
+ {
1146
+ "label": "Chat",
1147
+ "href": "/chat",
1148
+ "icon": "layout-list"
1149
+ },
1150
+ {
1151
+ "label": "Channels",
1152
+ "href": "/channels",
1153
+ "icon": "hash"
1154
+ },
1155
+ {
1156
+ "label": "Online",
1157
+ "href": "/online",
1158
+ "icon": "layout-list"
1159
+ }
1160
+ ],
1161
+ "children": [
1162
+ {
1163
+ "type": "stack",
1164
+ "direction": "vertical",
1165
+ "gap": "lg",
1166
+ "className": "max-w-5xl mx-auto w-full",
1167
+ "children": [
1168
+ {
1169
+ "type": "stack",
1170
+ "direction": "horizontal",
1171
+ "gap": "md",
1172
+ "justify": "space-between",
1173
+ "align": "center",
1174
+ "children": [
1175
+ {
1176
+ "type": "stack",
1177
+ "direction": "horizontal",
1178
+ "gap": "sm",
1179
+ "align": "center",
1180
+ "children": [
1181
+ {
1182
+ "type": "icon",
1183
+ "name": "hash",
1184
+ "size": "lg"
1185
+ },
1186
+ {
1187
+ "type": "typography",
1188
+ "content": "Channels",
1189
+ "variant": "h2"
1190
+ }
1191
+ ]
1192
+ },
1193
+ {
1194
+ "type": "stack",
1195
+ "direction": "horizontal",
1196
+ "gap": "sm",
1197
+ "children": [
1198
+ {
1199
+ "type": "button",
1200
+ "label": "Create Channel",
1201
+ "event": "CREATE",
1202
+ "variant": "primary",
1203
+ "icon": "plus"
1204
+ }
1205
+ ]
1206
+ }
1207
+ ]
1208
+ },
1209
+ {
1210
+ "type": "divider"
1211
+ },
1212
+ {
1213
+ "type": "data-list",
1214
+ "entity": "Channel",
1215
+ "emptyIcon": "inbox",
1216
+ "emptyTitle": "No channels yet",
1217
+ "emptyDescription": "Create a channel to start conversations.",
1218
+ "itemActions": [
1219
+ {
1220
+ "label": "View",
1221
+ "event": "VIEW",
1222
+ "variant": "ghost",
1223
+ "size": "sm"
1224
+ },
1225
+ {
1226
+ "label": "Edit",
1227
+ "event": "EDIT",
1228
+ "variant": "ghost",
1229
+ "size": "sm"
1230
+ },
1231
+ {
1232
+ "label": "Delete",
1233
+ "event": "DELETE",
1234
+ "variant": "danger",
1235
+ "size": "sm"
1236
+ }
1237
+ ],
1238
+ "columns": [
1239
+ {
1240
+ "name": "name",
1241
+ "variant": "h3",
1242
+ "icon": "hash"
1243
+ },
1244
+ {
1245
+ "name": "memberCount",
1246
+ "label": "Members",
1247
+ "variant": "badge",
1248
+ "format": "number"
1249
+ },
1250
+ {
1251
+ "name": "description",
1252
+ "variant": "body"
1253
+ },
1254
+ {
1255
+ "name": "isPrivate",
1256
+ "label": "Private",
1257
+ "variant": "body",
1258
+ "format": "boolean"
1259
+ }
1260
+ ],
1261
+ "variant": "card",
1262
+ "gap": "sm"
1263
+ }
1264
+ ]
1265
+ }
1266
+ ]
1267
+ }
1268
+ ]
1269
+ ]
1270
+ },
1271
+ {
1272
+ "from": "deleting",
1273
+ "to": "browsing",
1274
+ "event": "CLOSE",
1275
+ "effects": [
1276
+ [
1277
+ "render-ui",
1278
+ "modal",
1279
+ null
1280
+ ],
1281
+ [
1282
+ "fetch",
1283
+ "Channel"
1284
+ ],
1285
+ [
1286
+ "render-ui",
1287
+ "main",
1288
+ {
1289
+ "type": "dashboard-layout",
1290
+ "appName": "Realtime Chat",
1291
+ "navItems": [
1292
+ {
1293
+ "label": "Chat",
1294
+ "href": "/chat",
1295
+ "icon": "layout-list"
1296
+ },
1297
+ {
1298
+ "label": "Channels",
1299
+ "href": "/channels",
1300
+ "icon": "hash"
1301
+ },
1302
+ {
1303
+ "label": "Online",
1304
+ "href": "/online",
1305
+ "icon": "layout-list"
1306
+ }
1307
+ ],
1308
+ "children": [
1309
+ {
1310
+ "type": "stack",
1311
+ "direction": "vertical",
1312
+ "gap": "lg",
1313
+ "className": "max-w-5xl mx-auto w-full",
1314
+ "children": [
1315
+ {
1316
+ "type": "stack",
1317
+ "direction": "horizontal",
1318
+ "gap": "md",
1319
+ "justify": "space-between",
1320
+ "align": "center",
1321
+ "children": [
1322
+ {
1323
+ "type": "stack",
1324
+ "direction": "horizontal",
1325
+ "gap": "sm",
1326
+ "align": "center",
1327
+ "children": [
1328
+ {
1329
+ "type": "icon",
1330
+ "name": "hash",
1331
+ "size": "lg"
1332
+ },
1333
+ {
1334
+ "type": "typography",
1335
+ "content": "Channels",
1336
+ "variant": "h2"
1337
+ }
1338
+ ]
1339
+ },
1340
+ {
1341
+ "type": "stack",
1342
+ "direction": "horizontal",
1343
+ "gap": "sm",
1344
+ "children": [
1345
+ {
1346
+ "type": "button",
1347
+ "label": "Create Channel",
1348
+ "event": "CREATE",
1349
+ "variant": "primary",
1350
+ "icon": "plus"
1351
+ }
1352
+ ]
1353
+ }
1354
+ ]
1355
+ },
1356
+ {
1357
+ "type": "divider"
1358
+ },
1359
+ {
1360
+ "type": "data-list",
1361
+ "entity": "Channel",
1362
+ "emptyIcon": "inbox",
1363
+ "emptyTitle": "No channels yet",
1364
+ "emptyDescription": "Create a channel to start conversations.",
1365
+ "itemActions": [
1366
+ {
1367
+ "label": "View",
1368
+ "event": "VIEW",
1369
+ "variant": "ghost",
1370
+ "size": "sm"
1371
+ },
1372
+ {
1373
+ "label": "Edit",
1374
+ "event": "EDIT",
1375
+ "variant": "ghost",
1376
+ "size": "sm"
1377
+ },
1378
+ {
1379
+ "label": "Delete",
1380
+ "event": "DELETE",
1381
+ "variant": "danger",
1382
+ "size": "sm"
1383
+ }
1384
+ ],
1385
+ "columns": [
1386
+ {
1387
+ "name": "name",
1388
+ "variant": "h3",
1389
+ "icon": "hash"
1390
+ },
1391
+ {
1392
+ "name": "memberCount",
1393
+ "label": "Members",
1394
+ "variant": "badge",
1395
+ "format": "number"
1396
+ },
1397
+ {
1398
+ "name": "description",
1399
+ "variant": "body"
1400
+ },
1401
+ {
1402
+ "name": "isPrivate",
1403
+ "label": "Private",
1404
+ "variant": "body",
1405
+ "format": "boolean"
1406
+ }
1407
+ ],
1408
+ "variant": "card",
1409
+ "gap": "sm"
1410
+ }
1411
+ ]
1412
+ }
1413
+ ]
1414
+ }
1415
+ ]
1416
+ ]
1417
+ }
1418
+ ]
1419
+ }
1420
+ },
1421
+ {
1422
+ "name": "ChannelCreate",
1004
1423
  "linkedEntity": "Channel",
1005
1424
  "category": "interaction",
1006
1425
  "emits": [
@@ -1119,6 +1538,11 @@
1119
1538
  "render-ui",
1120
1539
  "modal",
1121
1540
  null
1541
+ ],
1542
+ [
1543
+ "notify",
1544
+ "Cancelled",
1545
+ "info"
1122
1546
  ]
1123
1547
  ]
1124
1548
  },
@@ -1284,6 +1708,11 @@
1284
1708
  "render-ui",
1285
1709
  "modal",
1286
1710
  null
1711
+ ],
1712
+ [
1713
+ "notify",
1714
+ "Cancelled",
1715
+ "info"
1287
1716
  ]
1288
1717
  ]
1289
1718
  },
@@ -1448,7 +1877,7 @@
1448
1877
  {
1449
1878
  "type": "typography",
1450
1879
  "variant": "caption",
1451
- "content": "MemberCount"
1880
+ "content": "Member Count"
1452
1881
  },
1453
1882
  {
1454
1883
  "type": "typography",
@@ -1465,7 +1894,7 @@
1465
1894
  {
1466
1895
  "type": "typography",
1467
1896
  "variant": "caption",
1468
- "content": "IsPrivate"
1897
+ "content": "Is Private"
1469
1898
  },
1470
1899
  {
1471
1900
  "type": "typography",
@@ -1512,6 +1941,11 @@
1512
1941
  "render-ui",
1513
1942
  "modal",
1514
1943
  null
1944
+ ],
1945
+ [
1946
+ "notify",
1947
+ "Cancelled",
1948
+ "info"
1515
1949
  ]
1516
1950
  ]
1517
1951
  }
@@ -1559,11 +1993,17 @@
1559
1993
  {
1560
1994
  "name": "status",
1561
1995
  "type": "string",
1562
- "default": "online"
1996
+ "default": "online",
1997
+ "values": [
1998
+ "online",
1999
+ "away",
2000
+ "busy",
2001
+ "offline"
2002
+ ]
1563
2003
  },
1564
2004
  {
1565
2005
  "name": "lastActive",
1566
- "type": "string"
2006
+ "type": "date"
1567
2007
  },
1568
2008
  {
1569
2009
  "name": "avatar",
@@ -1621,134 +2061,318 @@
1621
2061
  "render-ui",
1622
2062
  "main",
1623
2063
  {
1624
- "type": "stack",
1625
- "direction": "vertical",
1626
- "gap": "lg",
1627
- "children": [
2064
+ "type": "dashboard-layout",
2065
+ "appName": "Realtime Chat",
2066
+ "navItems": [
1628
2067
  {
1629
- "type": "stack",
1630
- "direction": "horizontal",
1631
- "gap": "md",
1632
- "justify": "space-between",
1633
- "children": [
1634
- {
1635
- "type": "stack",
1636
- "direction": "horizontal",
1637
- "gap": "md",
1638
- "children": [
1639
- {
1640
- "type": "icon",
1641
- "name": "users",
1642
- "size": "lg"
1643
- },
1644
- {
1645
- "type": "typography",
1646
- "content": "Online Users",
1647
- "variant": "h2"
1648
- }
1649
- ]
1650
- },
1651
- {
1652
- "type": "button",
1653
- "label": "Refresh",
1654
- "event": "REFRESH",
1655
- "variant": "secondary",
1656
- "icon": "refresh-cw"
1657
- }
1658
- ]
2068
+ "label": "Chat",
2069
+ "href": "/chat",
2070
+ "icon": "layout-list"
1659
2071
  },
1660
2072
  {
1661
- "type": "divider"
2073
+ "label": "Channels",
2074
+ "href": "/channels",
2075
+ "icon": "hash"
1662
2076
  },
1663
2077
  {
1664
- "type": "simple-grid",
1665
- "columns": 3,
2078
+ "label": "Online",
2079
+ "href": "/online",
2080
+ "icon": "layout-list"
2081
+ }
2082
+ ],
2083
+ "children": [
2084
+ {
2085
+ "type": "scaled-diagram",
1666
2086
  "children": [
1667
2087
  {
1668
- "type": "card",
2088
+ "type": "stack",
2089
+ "direction": "vertical",
2090
+ "gap": "lg",
1669
2091
  "children": [
1670
2092
  {
1671
- "type": "stack",
1672
- "direction": "vertical",
1673
- "gap": "sm",
1674
- "children": [
2093
+ "type": "breadcrumb",
2094
+ "items": [
1675
2095
  {
1676
- "type": "typography",
1677
- "variant": "caption",
1678
- "content": "Username"
2096
+ "label": "Home",
2097
+ "href": "/"
1679
2098
  },
1680
2099
  {
1681
- "type": "typography",
1682
- "variant": "h3",
1683
- "content": "@entity.username"
2100
+ "label": "Online Users"
1684
2101
  }
1685
2102
  ]
1686
- }
1687
- ]
1688
- },
1689
- {
1690
- "type": "card",
1691
- "children": [
2103
+ },
1692
2104
  {
1693
2105
  "type": "stack",
1694
- "direction": "vertical",
1695
- "gap": "sm",
2106
+ "direction": "horizontal",
2107
+ "gap": "md",
2108
+ "justify": "space-between",
1696
2109
  "children": [
1697
2110
  {
1698
- "type": "typography",
1699
- "variant": "caption",
1700
- "content": "Status"
2111
+ "type": "stack",
2112
+ "direction": "horizontal",
2113
+ "gap": "md",
2114
+ "children": [
2115
+ {
2116
+ "type": "icon",
2117
+ "name": "users",
2118
+ "size": "lg"
2119
+ },
2120
+ {
2121
+ "type": "typography",
2122
+ "content": "Online Users",
2123
+ "variant": "h2"
2124
+ }
2125
+ ]
1701
2126
  },
1702
2127
  {
1703
- "type": "typography",
1704
- "variant": "h3",
1705
- "content": "@entity.status"
2128
+ "type": "button",
2129
+ "label": "Refresh",
2130
+ "event": "REFRESH",
2131
+ "variant": "secondary",
2132
+ "icon": "refresh-cw"
1706
2133
  }
1707
2134
  ]
1708
- }
1709
- ]
1710
- },
1711
- {
1712
- "type": "card",
1713
- "children": [
2135
+ },
1714
2136
  {
1715
- "type": "stack",
1716
- "direction": "vertical",
1717
- "gap": "sm",
2137
+ "type": "divider"
2138
+ },
2139
+ {
2140
+ "type": "box",
2141
+ "padding": "md",
1718
2142
  "children": [
1719
2143
  {
1720
- "type": "typography",
1721
- "variant": "caption",
1722
- "content": "LastActive"
1723
- },
1724
- {
1725
- "type": "typography",
1726
- "variant": "h3",
1727
- "content": "@entity.lastActive"
2144
+ "type": "simple-grid",
2145
+ "columns": 3,
2146
+ "children": [
2147
+ {
2148
+ "type": "card",
2149
+ "children": [
2150
+ {
2151
+ "type": "stack",
2152
+ "direction": "vertical",
2153
+ "gap": "sm",
2154
+ "children": [
2155
+ {
2156
+ "type": "typography",
2157
+ "variant": "caption",
2158
+ "content": "Username"
2159
+ },
2160
+ {
2161
+ "type": "typography",
2162
+ "variant": "h3",
2163
+ "content": [
2164
+ "object/get",
2165
+ [
2166
+ "array/first",
2167
+ "@entity"
2168
+ ],
2169
+ "username"
2170
+ ]
2171
+ }
2172
+ ]
2173
+ }
2174
+ ]
2175
+ },
2176
+ {
2177
+ "type": "card",
2178
+ "children": [
2179
+ {
2180
+ "type": "stack",
2181
+ "direction": "vertical",
2182
+ "gap": "sm",
2183
+ "children": [
2184
+ {
2185
+ "type": "typography",
2186
+ "variant": "caption",
2187
+ "content": "Status"
2188
+ },
2189
+ {
2190
+ "type": "typography",
2191
+ "variant": "h3",
2192
+ "content": [
2193
+ "object/get",
2194
+ [
2195
+ "array/first",
2196
+ "@entity"
2197
+ ],
2198
+ "status"
2199
+ ]
2200
+ }
2201
+ ]
2202
+ }
2203
+ ]
2204
+ },
2205
+ {
2206
+ "type": "card",
2207
+ "children": [
2208
+ {
2209
+ "type": "stack",
2210
+ "direction": "vertical",
2211
+ "gap": "sm",
2212
+ "children": [
2213
+ {
2214
+ "type": "typography",
2215
+ "variant": "caption",
2216
+ "content": "LastActive"
2217
+ },
2218
+ {
2219
+ "type": "typography",
2220
+ "variant": "h3",
2221
+ "content": [
2222
+ "object/get",
2223
+ [
2224
+ "array/first",
2225
+ "@entity"
2226
+ ],
2227
+ "lastActive"
2228
+ ]
2229
+ }
2230
+ ]
2231
+ }
2232
+ ]
2233
+ },
2234
+ {
2235
+ "type": "card",
2236
+ "children": [
2237
+ {
2238
+ "type": "stack",
2239
+ "direction": "vertical",
2240
+ "gap": "sm",
2241
+ "children": [
2242
+ {
2243
+ "type": "typography",
2244
+ "variant": "caption",
2245
+ "content": "Avatar"
2246
+ },
2247
+ {
2248
+ "type": "typography",
2249
+ "variant": "h3",
2250
+ "content": [
2251
+ "object/get",
2252
+ [
2253
+ "array/first",
2254
+ "@entity"
2255
+ ],
2256
+ "avatar"
2257
+ ]
2258
+ }
2259
+ ]
2260
+ }
2261
+ ]
2262
+ }
2263
+ ]
1728
2264
  }
1729
2265
  ]
1730
- }
1731
- ]
1732
- },
1733
- {
1734
- "type": "card",
1735
- "children": [
2266
+ },
1736
2267
  {
1737
- "type": "stack",
1738
- "direction": "vertical",
1739
- "gap": "sm",
2268
+ "type": "divider"
2269
+ },
2270
+ {
2271
+ "type": "grid",
2272
+ "columns": 2,
2273
+ "gap": "md",
1740
2274
  "children": [
1741
2275
  {
1742
- "type": "typography",
1743
- "variant": "caption",
1744
- "content": "Avatar"
1745
- },
2276
+ "type": "card",
2277
+ "children": [
2278
+ {
2279
+ "type": "typography",
2280
+ "variant": "caption",
2281
+ "content": "Chart View"
2282
+ }
2283
+ ]
2284
+ },
1746
2285
  {
1747
- "type": "typography",
1748
- "variant": "h3",
1749
- "content": "@entity.avatar"
2286
+ "type": "card",
2287
+ "children": [
2288
+ {
2289
+ "type": "typography",
2290
+ "variant": "caption",
2291
+ "content": "Graph View"
2292
+ }
2293
+ ]
2294
+ }
2295
+ ]
2296
+ },
2297
+ {
2298
+ "type": "line-chart",
2299
+ "data": [
2300
+ {
2301
+ "date": "Jan",
2302
+ "value": 12
2303
+ },
2304
+ {
2305
+ "date": "Feb",
2306
+ "value": 19
2307
+ },
2308
+ {
2309
+ "date": "Mar",
2310
+ "value": 15
2311
+ },
2312
+ {
2313
+ "date": "Apr",
2314
+ "value": 25
2315
+ },
2316
+ {
2317
+ "date": "May",
2318
+ "value": 22
2319
+ },
2320
+ {
2321
+ "date": "Jun",
2322
+ "value": 30
2323
+ }
2324
+ ],
2325
+ "xKey": "date",
2326
+ "yKey": "value",
2327
+ "title": "Trend"
2328
+ },
2329
+ {
2330
+ "type": "chart-legend",
2331
+ "items": [
2332
+ {
2333
+ "label": "Current",
2334
+ "color": "primary"
2335
+ },
2336
+ {
2337
+ "label": "Previous",
2338
+ "color": "muted"
1750
2339
  }
1751
2340
  ]
2341
+ },
2342
+ {
2343
+ "type": "graph-view",
2344
+ "nodes": [
2345
+ {
2346
+ "id": "a",
2347
+ "label": "Start",
2348
+ "x": 50,
2349
+ "y": 100
2350
+ },
2351
+ {
2352
+ "id": "b",
2353
+ "label": "Process",
2354
+ "x": 200,
2355
+ "y": 50
2356
+ },
2357
+ {
2358
+ "id": "c",
2359
+ "label": "End",
2360
+ "x": 350,
2361
+ "y": 100
2362
+ }
2363
+ ],
2364
+ "edges": [
2365
+ {
2366
+ "from": "a",
2367
+ "to": "b"
2368
+ },
2369
+ {
2370
+ "from": "b",
2371
+ "to": "c"
2372
+ }
2373
+ ],
2374
+ "width": 400,
2375
+ "height": 200
1752
2376
  }
1753
2377
  ]
1754
2378
  }
@@ -1772,134 +2396,318 @@
1772
2396
  "render-ui",
1773
2397
  "main",
1774
2398
  {
1775
- "type": "stack",
1776
- "direction": "vertical",
1777
- "gap": "lg",
1778
- "children": [
2399
+ "type": "dashboard-layout",
2400
+ "appName": "Realtime Chat",
2401
+ "navItems": [
1779
2402
  {
1780
- "type": "stack",
1781
- "direction": "horizontal",
1782
- "gap": "md",
1783
- "justify": "space-between",
1784
- "children": [
1785
- {
1786
- "type": "stack",
1787
- "direction": "horizontal",
1788
- "gap": "md",
1789
- "children": [
1790
- {
1791
- "type": "icon",
1792
- "name": "users",
1793
- "size": "lg"
1794
- },
1795
- {
1796
- "type": "typography",
1797
- "content": "Online Users",
1798
- "variant": "h2"
1799
- }
1800
- ]
1801
- },
1802
- {
1803
- "type": "button",
1804
- "label": "Refresh",
1805
- "event": "REFRESH",
1806
- "variant": "secondary",
1807
- "icon": "refresh-cw"
1808
- }
1809
- ]
2403
+ "label": "Chat",
2404
+ "href": "/chat",
2405
+ "icon": "layout-list"
1810
2406
  },
1811
2407
  {
1812
- "type": "divider"
2408
+ "label": "Channels",
2409
+ "href": "/channels",
2410
+ "icon": "hash"
1813
2411
  },
1814
2412
  {
1815
- "type": "simple-grid",
1816
- "columns": 3,
2413
+ "label": "Online",
2414
+ "href": "/online",
2415
+ "icon": "layout-list"
2416
+ }
2417
+ ],
2418
+ "children": [
2419
+ {
2420
+ "type": "scaled-diagram",
1817
2421
  "children": [
1818
2422
  {
1819
- "type": "card",
2423
+ "type": "stack",
2424
+ "direction": "vertical",
2425
+ "gap": "lg",
1820
2426
  "children": [
1821
2427
  {
1822
- "type": "stack",
1823
- "direction": "vertical",
1824
- "gap": "sm",
1825
- "children": [
2428
+ "type": "breadcrumb",
2429
+ "items": [
1826
2430
  {
1827
- "type": "typography",
1828
- "variant": "caption",
1829
- "content": "Username"
2431
+ "label": "Home",
2432
+ "href": "/"
1830
2433
  },
1831
2434
  {
1832
- "type": "typography",
1833
- "variant": "h3",
1834
- "content": "@entity.username"
2435
+ "label": "Online Users"
1835
2436
  }
1836
2437
  ]
1837
- }
1838
- ]
1839
- },
1840
- {
1841
- "type": "card",
1842
- "children": [
2438
+ },
1843
2439
  {
1844
2440
  "type": "stack",
1845
- "direction": "vertical",
1846
- "gap": "sm",
2441
+ "direction": "horizontal",
2442
+ "gap": "md",
2443
+ "justify": "space-between",
1847
2444
  "children": [
1848
2445
  {
1849
- "type": "typography",
1850
- "variant": "caption",
1851
- "content": "Status"
2446
+ "type": "stack",
2447
+ "direction": "horizontal",
2448
+ "gap": "md",
2449
+ "children": [
2450
+ {
2451
+ "type": "icon",
2452
+ "name": "users",
2453
+ "size": "lg"
2454
+ },
2455
+ {
2456
+ "type": "typography",
2457
+ "content": "Online Users",
2458
+ "variant": "h2"
2459
+ }
2460
+ ]
1852
2461
  },
1853
2462
  {
1854
- "type": "typography",
1855
- "variant": "h3",
1856
- "content": "@entity.status"
2463
+ "type": "button",
2464
+ "label": "Refresh",
2465
+ "event": "REFRESH",
2466
+ "variant": "secondary",
2467
+ "icon": "refresh-cw"
1857
2468
  }
1858
2469
  ]
1859
- }
1860
- ]
1861
- },
1862
- {
1863
- "type": "card",
1864
- "children": [
2470
+ },
1865
2471
  {
1866
- "type": "stack",
1867
- "direction": "vertical",
1868
- "gap": "sm",
2472
+ "type": "divider"
2473
+ },
2474
+ {
2475
+ "type": "box",
2476
+ "padding": "md",
1869
2477
  "children": [
1870
2478
  {
1871
- "type": "typography",
1872
- "variant": "caption",
1873
- "content": "LastActive"
2479
+ "type": "simple-grid",
2480
+ "columns": 3,
2481
+ "children": [
2482
+ {
2483
+ "type": "card",
2484
+ "children": [
2485
+ {
2486
+ "type": "stack",
2487
+ "direction": "vertical",
2488
+ "gap": "sm",
2489
+ "children": [
2490
+ {
2491
+ "type": "typography",
2492
+ "variant": "caption",
2493
+ "content": "Username"
2494
+ },
2495
+ {
2496
+ "type": "typography",
2497
+ "variant": "h3",
2498
+ "content": [
2499
+ "object/get",
2500
+ [
2501
+ "array/first",
2502
+ "@entity"
2503
+ ],
2504
+ "username"
2505
+ ]
2506
+ }
2507
+ ]
2508
+ }
2509
+ ]
2510
+ },
2511
+ {
2512
+ "type": "card",
2513
+ "children": [
2514
+ {
2515
+ "type": "stack",
2516
+ "direction": "vertical",
2517
+ "gap": "sm",
2518
+ "children": [
2519
+ {
2520
+ "type": "typography",
2521
+ "variant": "caption",
2522
+ "content": "Status"
2523
+ },
2524
+ {
2525
+ "type": "typography",
2526
+ "variant": "h3",
2527
+ "content": [
2528
+ "object/get",
2529
+ [
2530
+ "array/first",
2531
+ "@entity"
2532
+ ],
2533
+ "status"
2534
+ ]
2535
+ }
2536
+ ]
2537
+ }
2538
+ ]
2539
+ },
2540
+ {
2541
+ "type": "card",
2542
+ "children": [
2543
+ {
2544
+ "type": "stack",
2545
+ "direction": "vertical",
2546
+ "gap": "sm",
2547
+ "children": [
2548
+ {
2549
+ "type": "typography",
2550
+ "variant": "caption",
2551
+ "content": "LastActive"
2552
+ },
2553
+ {
2554
+ "type": "typography",
2555
+ "variant": "h3",
2556
+ "content": [
2557
+ "object/get",
2558
+ [
2559
+ "array/first",
2560
+ "@entity"
2561
+ ],
2562
+ "lastActive"
2563
+ ]
2564
+ }
2565
+ ]
2566
+ }
2567
+ ]
2568
+ },
2569
+ {
2570
+ "type": "card",
2571
+ "children": [
2572
+ {
2573
+ "type": "stack",
2574
+ "direction": "vertical",
2575
+ "gap": "sm",
2576
+ "children": [
2577
+ {
2578
+ "type": "typography",
2579
+ "variant": "caption",
2580
+ "content": "Avatar"
2581
+ },
2582
+ {
2583
+ "type": "typography",
2584
+ "variant": "h3",
2585
+ "content": [
2586
+ "object/get",
2587
+ [
2588
+ "array/first",
2589
+ "@entity"
2590
+ ],
2591
+ "avatar"
2592
+ ]
2593
+ }
2594
+ ]
2595
+ }
2596
+ ]
2597
+ }
2598
+ ]
2599
+ }
2600
+ ]
2601
+ },
2602
+ {
2603
+ "type": "divider"
2604
+ },
2605
+ {
2606
+ "type": "grid",
2607
+ "columns": 2,
2608
+ "gap": "md",
2609
+ "children": [
2610
+ {
2611
+ "type": "card",
2612
+ "children": [
2613
+ {
2614
+ "type": "typography",
2615
+ "variant": "caption",
2616
+ "content": "Chart View"
2617
+ }
2618
+ ]
1874
2619
  },
1875
2620
  {
1876
- "type": "typography",
1877
- "variant": "h3",
1878
- "content": "@entity.lastActive"
2621
+ "type": "card",
2622
+ "children": [
2623
+ {
2624
+ "type": "typography",
2625
+ "variant": "caption",
2626
+ "content": "Graph View"
2627
+ }
2628
+ ]
1879
2629
  }
1880
2630
  ]
1881
- }
1882
- ]
1883
- },
1884
- {
1885
- "type": "card",
1886
- "children": [
2631
+ },
1887
2632
  {
1888
- "type": "stack",
1889
- "direction": "vertical",
1890
- "gap": "sm",
1891
- "children": [
2633
+ "type": "line-chart",
2634
+ "data": [
1892
2635
  {
1893
- "type": "typography",
1894
- "variant": "caption",
1895
- "content": "Avatar"
2636
+ "date": "Jan",
2637
+ "value": 12
1896
2638
  },
1897
2639
  {
1898
- "type": "typography",
1899
- "variant": "h3",
1900
- "content": "@entity.avatar"
2640
+ "date": "Feb",
2641
+ "value": 19
2642
+ },
2643
+ {
2644
+ "date": "Mar",
2645
+ "value": 15
2646
+ },
2647
+ {
2648
+ "date": "Apr",
2649
+ "value": 25
2650
+ },
2651
+ {
2652
+ "date": "May",
2653
+ "value": 22
2654
+ },
2655
+ {
2656
+ "date": "Jun",
2657
+ "value": 30
2658
+ }
2659
+ ],
2660
+ "xKey": "date",
2661
+ "yKey": "value",
2662
+ "title": "Trend"
2663
+ },
2664
+ {
2665
+ "type": "chart-legend",
2666
+ "items": [
2667
+ {
2668
+ "label": "Current",
2669
+ "color": "primary"
2670
+ },
2671
+ {
2672
+ "label": "Previous",
2673
+ "color": "muted"
1901
2674
  }
1902
2675
  ]
2676
+ },
2677
+ {
2678
+ "type": "graph-view",
2679
+ "nodes": [
2680
+ {
2681
+ "id": "a",
2682
+ "label": "Start",
2683
+ "x": 50,
2684
+ "y": 100
2685
+ },
2686
+ {
2687
+ "id": "b",
2688
+ "label": "Process",
2689
+ "x": 200,
2690
+ "y": 50
2691
+ },
2692
+ {
2693
+ "id": "c",
2694
+ "label": "End",
2695
+ "x": 350,
2696
+ "y": 100
2697
+ }
2698
+ ],
2699
+ "edges": [
2700
+ {
2701
+ "from": "a",
2702
+ "to": "b"
2703
+ },
2704
+ {
2705
+ "from": "b",
2706
+ "to": "c"
2707
+ }
2708
+ ],
2709
+ "width": 400,
2710
+ "height": 200
1903
2711
  }
1904
2712
  ]
1905
2713
  }
@@ -1923,134 +2731,318 @@
1923
2731
  "render-ui",
1924
2732
  "main",
1925
2733
  {
1926
- "type": "stack",
1927
- "direction": "vertical",
1928
- "gap": "lg",
1929
- "children": [
2734
+ "type": "dashboard-layout",
2735
+ "appName": "Realtime Chat",
2736
+ "navItems": [
1930
2737
  {
1931
- "type": "stack",
1932
- "direction": "horizontal",
1933
- "gap": "md",
1934
- "justify": "space-between",
1935
- "children": [
1936
- {
1937
- "type": "stack",
1938
- "direction": "horizontal",
1939
- "gap": "md",
1940
- "children": [
1941
- {
1942
- "type": "icon",
1943
- "name": "users",
1944
- "size": "lg"
1945
- },
1946
- {
1947
- "type": "typography",
1948
- "content": "Online Users",
1949
- "variant": "h2"
1950
- }
1951
- ]
1952
- },
1953
- {
1954
- "type": "button",
1955
- "label": "Refresh",
1956
- "event": "REFRESH",
1957
- "variant": "secondary",
1958
- "icon": "refresh-cw"
1959
- }
1960
- ]
2738
+ "label": "Chat",
2739
+ "href": "/chat",
2740
+ "icon": "layout-list"
1961
2741
  },
1962
2742
  {
1963
- "type": "divider"
2743
+ "label": "Channels",
2744
+ "href": "/channels",
2745
+ "icon": "hash"
1964
2746
  },
1965
2747
  {
1966
- "type": "simple-grid",
1967
- "columns": 3,
2748
+ "label": "Online",
2749
+ "href": "/online",
2750
+ "icon": "layout-list"
2751
+ }
2752
+ ],
2753
+ "children": [
2754
+ {
2755
+ "type": "scaled-diagram",
1968
2756
  "children": [
1969
2757
  {
1970
- "type": "card",
2758
+ "type": "stack",
2759
+ "direction": "vertical",
2760
+ "gap": "lg",
1971
2761
  "children": [
1972
2762
  {
1973
- "type": "stack",
1974
- "direction": "vertical",
1975
- "gap": "sm",
1976
- "children": [
2763
+ "type": "breadcrumb",
2764
+ "items": [
1977
2765
  {
1978
- "type": "typography",
1979
- "variant": "caption",
1980
- "content": "Username"
2766
+ "label": "Home",
2767
+ "href": "/"
1981
2768
  },
1982
2769
  {
1983
- "type": "typography",
1984
- "variant": "h3",
1985
- "content": "@entity.username"
2770
+ "label": "Online Users"
1986
2771
  }
1987
2772
  ]
1988
- }
1989
- ]
1990
- },
1991
- {
1992
- "type": "card",
1993
- "children": [
2773
+ },
1994
2774
  {
1995
2775
  "type": "stack",
1996
- "direction": "vertical",
1997
- "gap": "sm",
2776
+ "direction": "horizontal",
2777
+ "gap": "md",
2778
+ "justify": "space-between",
1998
2779
  "children": [
1999
2780
  {
2000
- "type": "typography",
2001
- "variant": "caption",
2002
- "content": "Status"
2781
+ "type": "stack",
2782
+ "direction": "horizontal",
2783
+ "gap": "md",
2784
+ "children": [
2785
+ {
2786
+ "type": "icon",
2787
+ "name": "users",
2788
+ "size": "lg"
2789
+ },
2790
+ {
2791
+ "type": "typography",
2792
+ "content": "Online Users",
2793
+ "variant": "h2"
2794
+ }
2795
+ ]
2003
2796
  },
2004
2797
  {
2005
- "type": "typography",
2006
- "variant": "h3",
2007
- "content": "@entity.status"
2798
+ "type": "button",
2799
+ "label": "Refresh",
2800
+ "event": "REFRESH",
2801
+ "variant": "secondary",
2802
+ "icon": "refresh-cw"
2008
2803
  }
2009
2804
  ]
2010
- }
2011
- ]
2012
- },
2013
- {
2014
- "type": "card",
2015
- "children": [
2805
+ },
2016
2806
  {
2017
- "type": "stack",
2018
- "direction": "vertical",
2019
- "gap": "sm",
2807
+ "type": "divider"
2808
+ },
2809
+ {
2810
+ "type": "box",
2811
+ "padding": "md",
2020
2812
  "children": [
2021
2813
  {
2022
- "type": "typography",
2023
- "variant": "caption",
2024
- "content": "LastActive"
2025
- },
2026
- {
2027
- "type": "typography",
2028
- "variant": "h3",
2029
- "content": "@entity.lastActive"
2814
+ "type": "simple-grid",
2815
+ "columns": 3,
2816
+ "children": [
2817
+ {
2818
+ "type": "card",
2819
+ "children": [
2820
+ {
2821
+ "type": "stack",
2822
+ "direction": "vertical",
2823
+ "gap": "sm",
2824
+ "children": [
2825
+ {
2826
+ "type": "typography",
2827
+ "variant": "caption",
2828
+ "content": "Username"
2829
+ },
2830
+ {
2831
+ "type": "typography",
2832
+ "variant": "h3",
2833
+ "content": [
2834
+ "object/get",
2835
+ [
2836
+ "array/first",
2837
+ "@entity"
2838
+ ],
2839
+ "username"
2840
+ ]
2841
+ }
2842
+ ]
2843
+ }
2844
+ ]
2845
+ },
2846
+ {
2847
+ "type": "card",
2848
+ "children": [
2849
+ {
2850
+ "type": "stack",
2851
+ "direction": "vertical",
2852
+ "gap": "sm",
2853
+ "children": [
2854
+ {
2855
+ "type": "typography",
2856
+ "variant": "caption",
2857
+ "content": "Status"
2858
+ },
2859
+ {
2860
+ "type": "typography",
2861
+ "variant": "h3",
2862
+ "content": [
2863
+ "object/get",
2864
+ [
2865
+ "array/first",
2866
+ "@entity"
2867
+ ],
2868
+ "status"
2869
+ ]
2870
+ }
2871
+ ]
2872
+ }
2873
+ ]
2874
+ },
2875
+ {
2876
+ "type": "card",
2877
+ "children": [
2878
+ {
2879
+ "type": "stack",
2880
+ "direction": "vertical",
2881
+ "gap": "sm",
2882
+ "children": [
2883
+ {
2884
+ "type": "typography",
2885
+ "variant": "caption",
2886
+ "content": "LastActive"
2887
+ },
2888
+ {
2889
+ "type": "typography",
2890
+ "variant": "h3",
2891
+ "content": [
2892
+ "object/get",
2893
+ [
2894
+ "array/first",
2895
+ "@entity"
2896
+ ],
2897
+ "lastActive"
2898
+ ]
2899
+ }
2900
+ ]
2901
+ }
2902
+ ]
2903
+ },
2904
+ {
2905
+ "type": "card",
2906
+ "children": [
2907
+ {
2908
+ "type": "stack",
2909
+ "direction": "vertical",
2910
+ "gap": "sm",
2911
+ "children": [
2912
+ {
2913
+ "type": "typography",
2914
+ "variant": "caption",
2915
+ "content": "Avatar"
2916
+ },
2917
+ {
2918
+ "type": "typography",
2919
+ "variant": "h3",
2920
+ "content": [
2921
+ "object/get",
2922
+ [
2923
+ "array/first",
2924
+ "@entity"
2925
+ ],
2926
+ "avatar"
2927
+ ]
2928
+ }
2929
+ ]
2930
+ }
2931
+ ]
2932
+ }
2933
+ ]
2030
2934
  }
2031
2935
  ]
2032
- }
2033
- ]
2034
- },
2035
- {
2036
- "type": "card",
2037
- "children": [
2936
+ },
2038
2937
  {
2039
- "type": "stack",
2040
- "direction": "vertical",
2041
- "gap": "sm",
2938
+ "type": "divider"
2939
+ },
2940
+ {
2941
+ "type": "grid",
2942
+ "columns": 2,
2943
+ "gap": "md",
2042
2944
  "children": [
2043
2945
  {
2044
- "type": "typography",
2045
- "variant": "caption",
2046
- "content": "Avatar"
2946
+ "type": "card",
2947
+ "children": [
2948
+ {
2949
+ "type": "typography",
2950
+ "variant": "caption",
2951
+ "content": "Chart View"
2952
+ }
2953
+ ]
2047
2954
  },
2048
2955
  {
2049
- "type": "typography",
2050
- "variant": "h3",
2051
- "content": "@entity.avatar"
2956
+ "type": "card",
2957
+ "children": [
2958
+ {
2959
+ "type": "typography",
2960
+ "variant": "caption",
2961
+ "content": "Graph View"
2962
+ }
2963
+ ]
2052
2964
  }
2053
2965
  ]
2966
+ },
2967
+ {
2968
+ "type": "line-chart",
2969
+ "data": [
2970
+ {
2971
+ "date": "Jan",
2972
+ "value": 12
2973
+ },
2974
+ {
2975
+ "date": "Feb",
2976
+ "value": 19
2977
+ },
2978
+ {
2979
+ "date": "Mar",
2980
+ "value": 15
2981
+ },
2982
+ {
2983
+ "date": "Apr",
2984
+ "value": 25
2985
+ },
2986
+ {
2987
+ "date": "May",
2988
+ "value": 22
2989
+ },
2990
+ {
2991
+ "date": "Jun",
2992
+ "value": 30
2993
+ }
2994
+ ],
2995
+ "xKey": "date",
2996
+ "yKey": "value",
2997
+ "title": "Trend"
2998
+ },
2999
+ {
3000
+ "type": "chart-legend",
3001
+ "items": [
3002
+ {
3003
+ "label": "Current",
3004
+ "color": "primary"
3005
+ },
3006
+ {
3007
+ "label": "Previous",
3008
+ "color": "muted"
3009
+ }
3010
+ ]
3011
+ },
3012
+ {
3013
+ "type": "graph-view",
3014
+ "nodes": [
3015
+ {
3016
+ "id": "a",
3017
+ "label": "Start",
3018
+ "x": 50,
3019
+ "y": 100
3020
+ },
3021
+ {
3022
+ "id": "b",
3023
+ "label": "Process",
3024
+ "x": 200,
3025
+ "y": 50
3026
+ },
3027
+ {
3028
+ "id": "c",
3029
+ "label": "End",
3030
+ "x": 350,
3031
+ "y": 100
3032
+ }
3033
+ ],
3034
+ "edges": [
3035
+ {
3036
+ "from": "a",
3037
+ "to": "b"
3038
+ },
3039
+ {
3040
+ "from": "b",
3041
+ "to": "c"
3042
+ }
3043
+ ],
3044
+ "width": 400,
3045
+ "height": 200
2054
3046
  }
2055
3047
  ]
2056
3048
  }
@@ -2074,134 +3066,318 @@
2074
3066
  "render-ui",
2075
3067
  "main",
2076
3068
  {
2077
- "type": "stack",
2078
- "direction": "vertical",
2079
- "gap": "lg",
2080
- "children": [
3069
+ "type": "dashboard-layout",
3070
+ "appName": "Realtime Chat",
3071
+ "navItems": [
2081
3072
  {
2082
- "type": "stack",
2083
- "direction": "horizontal",
2084
- "gap": "md",
2085
- "justify": "space-between",
2086
- "children": [
2087
- {
2088
- "type": "stack",
2089
- "direction": "horizontal",
2090
- "gap": "md",
2091
- "children": [
2092
- {
2093
- "type": "icon",
2094
- "name": "users",
2095
- "size": "lg"
2096
- },
2097
- {
2098
- "type": "typography",
2099
- "content": "Online Users",
2100
- "variant": "h2"
2101
- }
2102
- ]
2103
- },
2104
- {
2105
- "type": "button",
2106
- "label": "Refresh",
2107
- "event": "REFRESH",
2108
- "variant": "secondary",
2109
- "icon": "refresh-cw"
2110
- }
2111
- ]
3073
+ "label": "Chat",
3074
+ "href": "/chat",
3075
+ "icon": "layout-list"
2112
3076
  },
2113
3077
  {
2114
- "type": "divider"
3078
+ "label": "Channels",
3079
+ "href": "/channels",
3080
+ "icon": "hash"
2115
3081
  },
2116
3082
  {
2117
- "type": "simple-grid",
2118
- "columns": 3,
3083
+ "label": "Online",
3084
+ "href": "/online",
3085
+ "icon": "layout-list"
3086
+ }
3087
+ ],
3088
+ "children": [
3089
+ {
3090
+ "type": "scaled-diagram",
2119
3091
  "children": [
2120
3092
  {
2121
- "type": "card",
3093
+ "type": "stack",
3094
+ "direction": "vertical",
3095
+ "gap": "lg",
2122
3096
  "children": [
2123
3097
  {
2124
- "type": "stack",
2125
- "direction": "vertical",
2126
- "gap": "sm",
2127
- "children": [
3098
+ "type": "breadcrumb",
3099
+ "items": [
2128
3100
  {
2129
- "type": "typography",
2130
- "variant": "caption",
2131
- "content": "Username"
3101
+ "label": "Home",
3102
+ "href": "/"
2132
3103
  },
2133
3104
  {
2134
- "type": "typography",
2135
- "variant": "h3",
2136
- "content": "@entity.username"
3105
+ "label": "Online Users"
2137
3106
  }
2138
3107
  ]
2139
- }
2140
- ]
2141
- },
2142
- {
2143
- "type": "card",
2144
- "children": [
3108
+ },
2145
3109
  {
2146
3110
  "type": "stack",
2147
- "direction": "vertical",
2148
- "gap": "sm",
3111
+ "direction": "horizontal",
3112
+ "gap": "md",
3113
+ "justify": "space-between",
2149
3114
  "children": [
2150
3115
  {
2151
- "type": "typography",
2152
- "variant": "caption",
2153
- "content": "Status"
3116
+ "type": "stack",
3117
+ "direction": "horizontal",
3118
+ "gap": "md",
3119
+ "children": [
3120
+ {
3121
+ "type": "icon",
3122
+ "name": "users",
3123
+ "size": "lg"
3124
+ },
3125
+ {
3126
+ "type": "typography",
3127
+ "content": "Online Users",
3128
+ "variant": "h2"
3129
+ }
3130
+ ]
2154
3131
  },
2155
3132
  {
2156
- "type": "typography",
2157
- "variant": "h3",
2158
- "content": "@entity.status"
3133
+ "type": "button",
3134
+ "label": "Refresh",
3135
+ "event": "REFRESH",
3136
+ "variant": "secondary",
3137
+ "icon": "refresh-cw"
2159
3138
  }
2160
3139
  ]
2161
- }
2162
- ]
2163
- },
2164
- {
2165
- "type": "card",
2166
- "children": [
3140
+ },
2167
3141
  {
2168
- "type": "stack",
2169
- "direction": "vertical",
2170
- "gap": "sm",
3142
+ "type": "divider"
3143
+ },
3144
+ {
3145
+ "type": "box",
3146
+ "padding": "md",
2171
3147
  "children": [
2172
3148
  {
2173
- "type": "typography",
2174
- "variant": "caption",
2175
- "content": "LastActive"
3149
+ "type": "simple-grid",
3150
+ "columns": 3,
3151
+ "children": [
3152
+ {
3153
+ "type": "card",
3154
+ "children": [
3155
+ {
3156
+ "type": "stack",
3157
+ "direction": "vertical",
3158
+ "gap": "sm",
3159
+ "children": [
3160
+ {
3161
+ "type": "typography",
3162
+ "variant": "caption",
3163
+ "content": "Username"
3164
+ },
3165
+ {
3166
+ "type": "typography",
3167
+ "variant": "h3",
3168
+ "content": [
3169
+ "object/get",
3170
+ [
3171
+ "array/first",
3172
+ "@entity"
3173
+ ],
3174
+ "username"
3175
+ ]
3176
+ }
3177
+ ]
3178
+ }
3179
+ ]
3180
+ },
3181
+ {
3182
+ "type": "card",
3183
+ "children": [
3184
+ {
3185
+ "type": "stack",
3186
+ "direction": "vertical",
3187
+ "gap": "sm",
3188
+ "children": [
3189
+ {
3190
+ "type": "typography",
3191
+ "variant": "caption",
3192
+ "content": "Status"
3193
+ },
3194
+ {
3195
+ "type": "typography",
3196
+ "variant": "h3",
3197
+ "content": [
3198
+ "object/get",
3199
+ [
3200
+ "array/first",
3201
+ "@entity"
3202
+ ],
3203
+ "status"
3204
+ ]
3205
+ }
3206
+ ]
3207
+ }
3208
+ ]
3209
+ },
3210
+ {
3211
+ "type": "card",
3212
+ "children": [
3213
+ {
3214
+ "type": "stack",
3215
+ "direction": "vertical",
3216
+ "gap": "sm",
3217
+ "children": [
3218
+ {
3219
+ "type": "typography",
3220
+ "variant": "caption",
3221
+ "content": "LastActive"
3222
+ },
3223
+ {
3224
+ "type": "typography",
3225
+ "variant": "h3",
3226
+ "content": [
3227
+ "object/get",
3228
+ [
3229
+ "array/first",
3230
+ "@entity"
3231
+ ],
3232
+ "lastActive"
3233
+ ]
3234
+ }
3235
+ ]
3236
+ }
3237
+ ]
3238
+ },
3239
+ {
3240
+ "type": "card",
3241
+ "children": [
3242
+ {
3243
+ "type": "stack",
3244
+ "direction": "vertical",
3245
+ "gap": "sm",
3246
+ "children": [
3247
+ {
3248
+ "type": "typography",
3249
+ "variant": "caption",
3250
+ "content": "Avatar"
3251
+ },
3252
+ {
3253
+ "type": "typography",
3254
+ "variant": "h3",
3255
+ "content": [
3256
+ "object/get",
3257
+ [
3258
+ "array/first",
3259
+ "@entity"
3260
+ ],
3261
+ "avatar"
3262
+ ]
3263
+ }
3264
+ ]
3265
+ }
3266
+ ]
3267
+ }
3268
+ ]
3269
+ }
3270
+ ]
3271
+ },
3272
+ {
3273
+ "type": "divider"
3274
+ },
3275
+ {
3276
+ "type": "grid",
3277
+ "columns": 2,
3278
+ "gap": "md",
3279
+ "children": [
3280
+ {
3281
+ "type": "card",
3282
+ "children": [
3283
+ {
3284
+ "type": "typography",
3285
+ "variant": "caption",
3286
+ "content": "Chart View"
3287
+ }
3288
+ ]
2176
3289
  },
2177
3290
  {
2178
- "type": "typography",
2179
- "variant": "h3",
2180
- "content": "@entity.lastActive"
3291
+ "type": "card",
3292
+ "children": [
3293
+ {
3294
+ "type": "typography",
3295
+ "variant": "caption",
3296
+ "content": "Graph View"
3297
+ }
3298
+ ]
2181
3299
  }
2182
3300
  ]
2183
- }
2184
- ]
2185
- },
2186
- {
2187
- "type": "card",
2188
- "children": [
3301
+ },
2189
3302
  {
2190
- "type": "stack",
2191
- "direction": "vertical",
2192
- "gap": "sm",
2193
- "children": [
3303
+ "type": "line-chart",
3304
+ "data": [
2194
3305
  {
2195
- "type": "typography",
2196
- "variant": "caption",
2197
- "content": "Avatar"
3306
+ "date": "Jan",
3307
+ "value": 12
2198
3308
  },
2199
3309
  {
2200
- "type": "typography",
2201
- "variant": "h3",
2202
- "content": "@entity.avatar"
3310
+ "date": "Feb",
3311
+ "value": 19
3312
+ },
3313
+ {
3314
+ "date": "Mar",
3315
+ "value": 15
3316
+ },
3317
+ {
3318
+ "date": "Apr",
3319
+ "value": 25
3320
+ },
3321
+ {
3322
+ "date": "May",
3323
+ "value": 22
3324
+ },
3325
+ {
3326
+ "date": "Jun",
3327
+ "value": 30
3328
+ }
3329
+ ],
3330
+ "xKey": "date",
3331
+ "yKey": "value",
3332
+ "title": "Trend"
3333
+ },
3334
+ {
3335
+ "type": "chart-legend",
3336
+ "items": [
3337
+ {
3338
+ "label": "Current",
3339
+ "color": "primary"
3340
+ },
3341
+ {
3342
+ "label": "Previous",
3343
+ "color": "muted"
2203
3344
  }
2204
3345
  ]
3346
+ },
3347
+ {
3348
+ "type": "graph-view",
3349
+ "nodes": [
3350
+ {
3351
+ "id": "a",
3352
+ "label": "Start",
3353
+ "x": 50,
3354
+ "y": 100
3355
+ },
3356
+ {
3357
+ "id": "b",
3358
+ "label": "Process",
3359
+ "x": 200,
3360
+ "y": 50
3361
+ },
3362
+ {
3363
+ "id": "c",
3364
+ "label": "End",
3365
+ "x": 350,
3366
+ "y": 100
3367
+ }
3368
+ ],
3369
+ "edges": [
3370
+ {
3371
+ "from": "a",
3372
+ "to": "b"
3373
+ },
3374
+ {
3375
+ "from": "b",
3376
+ "to": "c"
3377
+ }
3378
+ ],
3379
+ "width": 400,
3380
+ "height": 200
2205
3381
  }
2206
3382
  ]
2207
3383
  }
@@ -2225,134 +3401,318 @@
2225
3401
  "render-ui",
2226
3402
  "main",
2227
3403
  {
2228
- "type": "stack",
2229
- "direction": "vertical",
2230
- "gap": "lg",
2231
- "children": [
3404
+ "type": "dashboard-layout",
3405
+ "appName": "Realtime Chat",
3406
+ "navItems": [
2232
3407
  {
2233
- "type": "stack",
2234
- "direction": "horizontal",
2235
- "gap": "md",
2236
- "justify": "space-between",
2237
- "children": [
2238
- {
2239
- "type": "stack",
2240
- "direction": "horizontal",
2241
- "gap": "md",
2242
- "children": [
2243
- {
2244
- "type": "icon",
2245
- "name": "users",
2246
- "size": "lg"
2247
- },
2248
- {
2249
- "type": "typography",
2250
- "content": "Online Users",
2251
- "variant": "h2"
2252
- }
2253
- ]
2254
- },
2255
- {
2256
- "type": "button",
2257
- "label": "Refresh",
2258
- "event": "REFRESH",
2259
- "variant": "secondary",
2260
- "icon": "refresh-cw"
2261
- }
2262
- ]
3408
+ "label": "Chat",
3409
+ "href": "/chat",
3410
+ "icon": "layout-list"
2263
3411
  },
2264
3412
  {
2265
- "type": "divider"
3413
+ "label": "Channels",
3414
+ "href": "/channels",
3415
+ "icon": "hash"
2266
3416
  },
2267
3417
  {
2268
- "type": "simple-grid",
2269
- "columns": 3,
3418
+ "label": "Online",
3419
+ "href": "/online",
3420
+ "icon": "layout-list"
3421
+ }
3422
+ ],
3423
+ "children": [
3424
+ {
3425
+ "type": "scaled-diagram",
2270
3426
  "children": [
2271
3427
  {
2272
- "type": "card",
3428
+ "type": "stack",
3429
+ "direction": "vertical",
3430
+ "gap": "lg",
2273
3431
  "children": [
2274
3432
  {
2275
- "type": "stack",
2276
- "direction": "vertical",
2277
- "gap": "sm",
2278
- "children": [
3433
+ "type": "breadcrumb",
3434
+ "items": [
2279
3435
  {
2280
- "type": "typography",
2281
- "variant": "caption",
2282
- "content": "Username"
3436
+ "label": "Home",
3437
+ "href": "/"
2283
3438
  },
2284
3439
  {
2285
- "type": "typography",
2286
- "variant": "h3",
2287
- "content": "@entity.username"
3440
+ "label": "Online Users"
2288
3441
  }
2289
3442
  ]
2290
- }
2291
- ]
2292
- },
2293
- {
2294
- "type": "card",
2295
- "children": [
3443
+ },
2296
3444
  {
2297
3445
  "type": "stack",
2298
- "direction": "vertical",
2299
- "gap": "sm",
3446
+ "direction": "horizontal",
3447
+ "gap": "md",
3448
+ "justify": "space-between",
2300
3449
  "children": [
2301
3450
  {
2302
- "type": "typography",
2303
- "variant": "caption",
2304
- "content": "Status"
3451
+ "type": "stack",
3452
+ "direction": "horizontal",
3453
+ "gap": "md",
3454
+ "children": [
3455
+ {
3456
+ "type": "icon",
3457
+ "name": "users",
3458
+ "size": "lg"
3459
+ },
3460
+ {
3461
+ "type": "typography",
3462
+ "content": "Online Users",
3463
+ "variant": "h2"
3464
+ }
3465
+ ]
2305
3466
  },
2306
3467
  {
2307
- "type": "typography",
2308
- "variant": "h3",
2309
- "content": "@entity.status"
3468
+ "type": "button",
3469
+ "label": "Refresh",
3470
+ "event": "REFRESH",
3471
+ "variant": "secondary",
3472
+ "icon": "refresh-cw"
2310
3473
  }
2311
3474
  ]
2312
- }
2313
- ]
2314
- },
2315
- {
2316
- "type": "card",
2317
- "children": [
3475
+ },
2318
3476
  {
2319
- "type": "stack",
2320
- "direction": "vertical",
2321
- "gap": "sm",
3477
+ "type": "divider"
3478
+ },
3479
+ {
3480
+ "type": "box",
3481
+ "padding": "md",
2322
3482
  "children": [
2323
3483
  {
2324
- "type": "typography",
2325
- "variant": "caption",
2326
- "content": "LastActive"
3484
+ "type": "simple-grid",
3485
+ "columns": 3,
3486
+ "children": [
3487
+ {
3488
+ "type": "card",
3489
+ "children": [
3490
+ {
3491
+ "type": "stack",
3492
+ "direction": "vertical",
3493
+ "gap": "sm",
3494
+ "children": [
3495
+ {
3496
+ "type": "typography",
3497
+ "variant": "caption",
3498
+ "content": "Username"
3499
+ },
3500
+ {
3501
+ "type": "typography",
3502
+ "variant": "h3",
3503
+ "content": [
3504
+ "object/get",
3505
+ [
3506
+ "array/first",
3507
+ "@entity"
3508
+ ],
3509
+ "username"
3510
+ ]
3511
+ }
3512
+ ]
3513
+ }
3514
+ ]
3515
+ },
3516
+ {
3517
+ "type": "card",
3518
+ "children": [
3519
+ {
3520
+ "type": "stack",
3521
+ "direction": "vertical",
3522
+ "gap": "sm",
3523
+ "children": [
3524
+ {
3525
+ "type": "typography",
3526
+ "variant": "caption",
3527
+ "content": "Status"
3528
+ },
3529
+ {
3530
+ "type": "typography",
3531
+ "variant": "h3",
3532
+ "content": [
3533
+ "object/get",
3534
+ [
3535
+ "array/first",
3536
+ "@entity"
3537
+ ],
3538
+ "status"
3539
+ ]
3540
+ }
3541
+ ]
3542
+ }
3543
+ ]
3544
+ },
3545
+ {
3546
+ "type": "card",
3547
+ "children": [
3548
+ {
3549
+ "type": "stack",
3550
+ "direction": "vertical",
3551
+ "gap": "sm",
3552
+ "children": [
3553
+ {
3554
+ "type": "typography",
3555
+ "variant": "caption",
3556
+ "content": "LastActive"
3557
+ },
3558
+ {
3559
+ "type": "typography",
3560
+ "variant": "h3",
3561
+ "content": [
3562
+ "object/get",
3563
+ [
3564
+ "array/first",
3565
+ "@entity"
3566
+ ],
3567
+ "lastActive"
3568
+ ]
3569
+ }
3570
+ ]
3571
+ }
3572
+ ]
3573
+ },
3574
+ {
3575
+ "type": "card",
3576
+ "children": [
3577
+ {
3578
+ "type": "stack",
3579
+ "direction": "vertical",
3580
+ "gap": "sm",
3581
+ "children": [
3582
+ {
3583
+ "type": "typography",
3584
+ "variant": "caption",
3585
+ "content": "Avatar"
3586
+ },
3587
+ {
3588
+ "type": "typography",
3589
+ "variant": "h3",
3590
+ "content": [
3591
+ "object/get",
3592
+ [
3593
+ "array/first",
3594
+ "@entity"
3595
+ ],
3596
+ "avatar"
3597
+ ]
3598
+ }
3599
+ ]
3600
+ }
3601
+ ]
3602
+ }
3603
+ ]
3604
+ }
3605
+ ]
3606
+ },
3607
+ {
3608
+ "type": "divider"
3609
+ },
3610
+ {
3611
+ "type": "grid",
3612
+ "columns": 2,
3613
+ "gap": "md",
3614
+ "children": [
3615
+ {
3616
+ "type": "card",
3617
+ "children": [
3618
+ {
3619
+ "type": "typography",
3620
+ "variant": "caption",
3621
+ "content": "Chart View"
3622
+ }
3623
+ ]
2327
3624
  },
2328
3625
  {
2329
- "type": "typography",
2330
- "variant": "h3",
2331
- "content": "@entity.lastActive"
3626
+ "type": "card",
3627
+ "children": [
3628
+ {
3629
+ "type": "typography",
3630
+ "variant": "caption",
3631
+ "content": "Graph View"
3632
+ }
3633
+ ]
2332
3634
  }
2333
3635
  ]
2334
- }
2335
- ]
2336
- },
2337
- {
2338
- "type": "card",
2339
- "children": [
3636
+ },
2340
3637
  {
2341
- "type": "stack",
2342
- "direction": "vertical",
2343
- "gap": "sm",
2344
- "children": [
3638
+ "type": "line-chart",
3639
+ "data": [
2345
3640
  {
2346
- "type": "typography",
2347
- "variant": "caption",
2348
- "content": "Avatar"
3641
+ "date": "Jan",
3642
+ "value": 12
2349
3643
  },
2350
3644
  {
2351
- "type": "typography",
2352
- "variant": "h3",
2353
- "content": "@entity.avatar"
3645
+ "date": "Feb",
3646
+ "value": 19
3647
+ },
3648
+ {
3649
+ "date": "Mar",
3650
+ "value": 15
3651
+ },
3652
+ {
3653
+ "date": "Apr",
3654
+ "value": 25
3655
+ },
3656
+ {
3657
+ "date": "May",
3658
+ "value": 22
3659
+ },
3660
+ {
3661
+ "date": "Jun",
3662
+ "value": 30
3663
+ }
3664
+ ],
3665
+ "xKey": "date",
3666
+ "yKey": "value",
3667
+ "title": "Trend"
3668
+ },
3669
+ {
3670
+ "type": "chart-legend",
3671
+ "items": [
3672
+ {
3673
+ "label": "Current",
3674
+ "color": "primary"
3675
+ },
3676
+ {
3677
+ "label": "Previous",
3678
+ "color": "muted"
2354
3679
  }
2355
3680
  ]
3681
+ },
3682
+ {
3683
+ "type": "graph-view",
3684
+ "nodes": [
3685
+ {
3686
+ "id": "a",
3687
+ "label": "Start",
3688
+ "x": 50,
3689
+ "y": 100
3690
+ },
3691
+ {
3692
+ "id": "b",
3693
+ "label": "Process",
3694
+ "x": 200,
3695
+ "y": 50
3696
+ },
3697
+ {
3698
+ "id": "c",
3699
+ "label": "End",
3700
+ "x": 350,
3701
+ "y": 100
3702
+ }
3703
+ ],
3704
+ "edges": [
3705
+ {
3706
+ "from": "a",
3707
+ "to": "b"
3708
+ },
3709
+ {
3710
+ "from": "b",
3711
+ "to": "c"
3712
+ }
3713
+ ],
3714
+ "width": 400,
3715
+ "height": 200
2356
3716
  }
2357
3717
  ]
2358
3718
  }