@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
@@ -85,134 +85,250 @@
85
85
  "render-ui",
86
86
  "main",
87
87
  {
88
- "type": "stack",
89
- "direction": "vertical",
90
- "gap": "lg",
91
- "children": [
88
+ "type": "dashboard-layout",
89
+ "appName": "Trading Dashboard",
90
+ "navItems": [
92
91
  {
93
- "type": "stack",
94
- "direction": "horizontal",
95
- "gap": "md",
96
- "justify": "space-between",
97
- "children": [
98
- {
99
- "type": "stack",
100
- "direction": "horizontal",
101
- "gap": "md",
102
- "children": [
103
- {
104
- "type": "icon",
105
- "name": "trending-up",
106
- "size": "lg"
107
- },
108
- {
109
- "type": "typography",
110
- "content": "Portfolio",
111
- "variant": "h2"
112
- }
113
- ]
114
- },
115
- {
116
- "type": "button",
117
- "label": "Refresh",
118
- "event": "REFRESH",
119
- "variant": "secondary",
120
- "icon": "refresh-cw"
121
- }
122
- ]
92
+ "label": "Portfolio",
93
+ "href": "/portfolio",
94
+ "icon": "layout-list"
123
95
  },
124
96
  {
125
- "type": "divider"
97
+ "label": "Orders",
98
+ "href": "/orders",
99
+ "icon": "clipboard-list"
126
100
  },
127
101
  {
128
- "type": "simple-grid",
129
- "columns": 3,
102
+ "label": "Market",
103
+ "href": "/market",
104
+ "icon": "layout-list"
105
+ }
106
+ ],
107
+ "children": [
108
+ {
109
+ "type": "scaled-diagram",
130
110
  "children": [
131
111
  {
132
- "type": "card",
112
+ "type": "stack",
113
+ "direction": "vertical",
114
+ "gap": "lg",
133
115
  "children": [
134
116
  {
135
- "type": "stack",
136
- "direction": "vertical",
137
- "gap": "sm",
138
- "children": [
117
+ "type": "breadcrumb",
118
+ "items": [
139
119
  {
140
- "type": "typography",
141
- "variant": "caption",
142
- "content": "TotalValue"
120
+ "label": "Home",
121
+ "href": "/"
143
122
  },
144
123
  {
145
- "type": "typography",
146
- "variant": "h3",
147
- "content": "@entity.totalValue"
124
+ "label": "Portfolio"
148
125
  }
149
126
  ]
150
- }
151
- ]
152
- },
153
- {
154
- "type": "card",
155
- "children": [
127
+ },
156
128
  {
157
129
  "type": "stack",
158
- "direction": "vertical",
159
- "gap": "sm",
130
+ "direction": "horizontal",
131
+ "gap": "md",
132
+ "justify": "space-between",
160
133
  "children": [
161
134
  {
162
- "type": "typography",
163
- "variant": "caption",
164
- "content": "DailyChange"
135
+ "type": "stack",
136
+ "direction": "horizontal",
137
+ "gap": "md",
138
+ "children": [
139
+ {
140
+ "type": "icon",
141
+ "name": "trending-up",
142
+ "size": "lg"
143
+ },
144
+ {
145
+ "type": "typography",
146
+ "content": "Portfolio",
147
+ "variant": "h2"
148
+ }
149
+ ]
165
150
  },
166
151
  {
167
- "type": "typography",
168
- "variant": "h3",
169
- "content": "@entity.dailyChange"
152
+ "type": "button",
153
+ "label": "Refresh",
154
+ "event": "REFRESH",
155
+ "variant": "secondary",
156
+ "icon": "refresh-cw"
170
157
  }
171
158
  ]
172
- }
173
- ]
174
- },
175
- {
176
- "type": "card",
177
- "children": [
159
+ },
178
160
  {
179
- "type": "stack",
180
- "direction": "vertical",
181
- "gap": "sm",
161
+ "type": "divider"
162
+ },
163
+ {
164
+ "type": "box",
165
+ "padding": "md",
182
166
  "children": [
183
167
  {
184
- "type": "typography",
185
- "variant": "caption",
186
- "content": "Positions"
168
+ "type": "simple-grid",
169
+ "columns": 3,
170
+ "children": [
171
+ {
172
+ "type": "stat-display",
173
+ "label": "TotalValue",
174
+ "value": [
175
+ "object/get",
176
+ [
177
+ "array/first",
178
+ "@entity"
179
+ ],
180
+ "totalValue"
181
+ ]
182
+ },
183
+ {
184
+ "type": "stat-display",
185
+ "label": "DailyChange",
186
+ "value": [
187
+ "object/get",
188
+ [
189
+ "array/first",
190
+ "@entity"
191
+ ],
192
+ "dailyChange"
193
+ ]
194
+ },
195
+ {
196
+ "type": "stat-display",
197
+ "label": "Positions",
198
+ "value": [
199
+ "object/get",
200
+ [
201
+ "array/first",
202
+ "@entity"
203
+ ],
204
+ "positions"
205
+ ]
206
+ },
207
+ {
208
+ "type": "stat-display",
209
+ "label": "CashBalance",
210
+ "value": [
211
+ "object/get",
212
+ [
213
+ "array/first",
214
+ "@entity"
215
+ ],
216
+ "cashBalance"
217
+ ]
218
+ }
219
+ ]
220
+ }
221
+ ]
222
+ },
223
+ {
224
+ "type": "divider"
225
+ },
226
+ {
227
+ "type": "grid",
228
+ "columns": 2,
229
+ "gap": "md",
230
+ "children": [
231
+ {
232
+ "type": "card",
233
+ "children": [
234
+ {
235
+ "type": "typography",
236
+ "variant": "caption",
237
+ "content": "Chart View"
238
+ }
239
+ ]
187
240
  },
188
241
  {
189
- "type": "typography",
190
- "variant": "h3",
191
- "content": "@entity.positions"
242
+ "type": "card",
243
+ "children": [
244
+ {
245
+ "type": "typography",
246
+ "variant": "caption",
247
+ "content": "Graph View"
248
+ }
249
+ ]
192
250
  }
193
251
  ]
194
- }
195
- ]
196
- },
197
- {
198
- "type": "card",
199
- "children": [
252
+ },
200
253
  {
201
- "type": "stack",
202
- "direction": "vertical",
203
- "gap": "sm",
204
- "children": [
254
+ "type": "line-chart",
255
+ "data": [
205
256
  {
206
- "type": "typography",
207
- "variant": "caption",
208
- "content": "CashBalance"
257
+ "date": "Jan",
258
+ "value": 12
209
259
  },
210
260
  {
211
- "type": "typography",
212
- "variant": "h3",
213
- "content": "@entity.cashBalance"
261
+ "date": "Feb",
262
+ "value": 19
263
+ },
264
+ {
265
+ "date": "Mar",
266
+ "value": 15
267
+ },
268
+ {
269
+ "date": "Apr",
270
+ "value": 25
271
+ },
272
+ {
273
+ "date": "May",
274
+ "value": 22
275
+ },
276
+ {
277
+ "date": "Jun",
278
+ "value": 30
279
+ }
280
+ ],
281
+ "xKey": "date",
282
+ "yKey": "value",
283
+ "title": "Trend"
284
+ },
285
+ {
286
+ "type": "chart-legend",
287
+ "items": [
288
+ {
289
+ "label": "Current",
290
+ "color": "primary"
291
+ },
292
+ {
293
+ "label": "Previous",
294
+ "color": "muted"
214
295
  }
215
296
  ]
297
+ },
298
+ {
299
+ "type": "graph-view",
300
+ "nodes": [
301
+ {
302
+ "id": "a",
303
+ "label": "Start",
304
+ "x": 50,
305
+ "y": 100
306
+ },
307
+ {
308
+ "id": "b",
309
+ "label": "Process",
310
+ "x": 200,
311
+ "y": 50
312
+ },
313
+ {
314
+ "id": "c",
315
+ "label": "End",
316
+ "x": 350,
317
+ "y": 100
318
+ }
319
+ ],
320
+ "edges": [
321
+ {
322
+ "from": "a",
323
+ "to": "b"
324
+ },
325
+ {
326
+ "from": "b",
327
+ "to": "c"
328
+ }
329
+ ],
330
+ "width": 400,
331
+ "height": 200
216
332
  }
217
333
  ]
218
334
  }
@@ -236,134 +352,250 @@
236
352
  "render-ui",
237
353
  "main",
238
354
  {
239
- "type": "stack",
240
- "direction": "vertical",
241
- "gap": "lg",
242
- "children": [
355
+ "type": "dashboard-layout",
356
+ "appName": "Trading Dashboard",
357
+ "navItems": [
243
358
  {
244
- "type": "stack",
245
- "direction": "horizontal",
246
- "gap": "md",
247
- "justify": "space-between",
248
- "children": [
249
- {
250
- "type": "stack",
251
- "direction": "horizontal",
252
- "gap": "md",
253
- "children": [
254
- {
255
- "type": "icon",
256
- "name": "trending-up",
257
- "size": "lg"
258
- },
259
- {
260
- "type": "typography",
261
- "content": "Portfolio",
262
- "variant": "h2"
263
- }
264
- ]
265
- },
266
- {
267
- "type": "button",
268
- "label": "Refresh",
269
- "event": "REFRESH",
270
- "variant": "secondary",
271
- "icon": "refresh-cw"
272
- }
273
- ]
359
+ "label": "Portfolio",
360
+ "href": "/portfolio",
361
+ "icon": "layout-list"
274
362
  },
275
363
  {
276
- "type": "divider"
364
+ "label": "Orders",
365
+ "href": "/orders",
366
+ "icon": "clipboard-list"
277
367
  },
278
368
  {
279
- "type": "simple-grid",
280
- "columns": 3,
369
+ "label": "Market",
370
+ "href": "/market",
371
+ "icon": "layout-list"
372
+ }
373
+ ],
374
+ "children": [
375
+ {
376
+ "type": "scaled-diagram",
281
377
  "children": [
282
378
  {
283
- "type": "card",
379
+ "type": "stack",
380
+ "direction": "vertical",
381
+ "gap": "lg",
284
382
  "children": [
285
383
  {
286
- "type": "stack",
287
- "direction": "vertical",
288
- "gap": "sm",
289
- "children": [
384
+ "type": "breadcrumb",
385
+ "items": [
290
386
  {
291
- "type": "typography",
292
- "variant": "caption",
293
- "content": "TotalValue"
387
+ "label": "Home",
388
+ "href": "/"
294
389
  },
295
390
  {
296
- "type": "typography",
297
- "variant": "h3",
298
- "content": "@entity.totalValue"
391
+ "label": "Portfolio"
299
392
  }
300
393
  ]
301
- }
302
- ]
303
- },
304
- {
305
- "type": "card",
306
- "children": [
394
+ },
307
395
  {
308
396
  "type": "stack",
309
- "direction": "vertical",
310
- "gap": "sm",
397
+ "direction": "horizontal",
398
+ "gap": "md",
399
+ "justify": "space-between",
311
400
  "children": [
312
401
  {
313
- "type": "typography",
314
- "variant": "caption",
315
- "content": "DailyChange"
402
+ "type": "stack",
403
+ "direction": "horizontal",
404
+ "gap": "md",
405
+ "children": [
406
+ {
407
+ "type": "icon",
408
+ "name": "trending-up",
409
+ "size": "lg"
410
+ },
411
+ {
412
+ "type": "typography",
413
+ "content": "Portfolio",
414
+ "variant": "h2"
415
+ }
416
+ ]
316
417
  },
317
418
  {
318
- "type": "typography",
319
- "variant": "h3",
320
- "content": "@entity.dailyChange"
419
+ "type": "button",
420
+ "label": "Refresh",
421
+ "event": "REFRESH",
422
+ "variant": "secondary",
423
+ "icon": "refresh-cw"
321
424
  }
322
425
  ]
323
- }
324
- ]
325
- },
326
- {
327
- "type": "card",
328
- "children": [
426
+ },
329
427
  {
330
- "type": "stack",
331
- "direction": "vertical",
332
- "gap": "sm",
428
+ "type": "divider"
429
+ },
430
+ {
431
+ "type": "box",
432
+ "padding": "md",
333
433
  "children": [
334
434
  {
335
- "type": "typography",
336
- "variant": "caption",
337
- "content": "Positions"
435
+ "type": "simple-grid",
436
+ "columns": 3,
437
+ "children": [
438
+ {
439
+ "type": "stat-display",
440
+ "label": "TotalValue",
441
+ "value": [
442
+ "object/get",
443
+ [
444
+ "array/first",
445
+ "@entity"
446
+ ],
447
+ "totalValue"
448
+ ]
449
+ },
450
+ {
451
+ "type": "stat-display",
452
+ "label": "DailyChange",
453
+ "value": [
454
+ "object/get",
455
+ [
456
+ "array/first",
457
+ "@entity"
458
+ ],
459
+ "dailyChange"
460
+ ]
461
+ },
462
+ {
463
+ "type": "stat-display",
464
+ "label": "Positions",
465
+ "value": [
466
+ "object/get",
467
+ [
468
+ "array/first",
469
+ "@entity"
470
+ ],
471
+ "positions"
472
+ ]
473
+ },
474
+ {
475
+ "type": "stat-display",
476
+ "label": "CashBalance",
477
+ "value": [
478
+ "object/get",
479
+ [
480
+ "array/first",
481
+ "@entity"
482
+ ],
483
+ "cashBalance"
484
+ ]
485
+ }
486
+ ]
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "type": "divider"
492
+ },
493
+ {
494
+ "type": "grid",
495
+ "columns": 2,
496
+ "gap": "md",
497
+ "children": [
498
+ {
499
+ "type": "card",
500
+ "children": [
501
+ {
502
+ "type": "typography",
503
+ "variant": "caption",
504
+ "content": "Chart View"
505
+ }
506
+ ]
338
507
  },
339
508
  {
340
- "type": "typography",
341
- "variant": "h3",
342
- "content": "@entity.positions"
509
+ "type": "card",
510
+ "children": [
511
+ {
512
+ "type": "typography",
513
+ "variant": "caption",
514
+ "content": "Graph View"
515
+ }
516
+ ]
343
517
  }
344
518
  ]
345
- }
346
- ]
347
- },
348
- {
349
- "type": "card",
350
- "children": [
519
+ },
351
520
  {
352
- "type": "stack",
353
- "direction": "vertical",
354
- "gap": "sm",
355
- "children": [
521
+ "type": "line-chart",
522
+ "data": [
356
523
  {
357
- "type": "typography",
358
- "variant": "caption",
359
- "content": "CashBalance"
524
+ "date": "Jan",
525
+ "value": 12
360
526
  },
361
527
  {
362
- "type": "typography",
363
- "variant": "h3",
364
- "content": "@entity.cashBalance"
528
+ "date": "Feb",
529
+ "value": 19
530
+ },
531
+ {
532
+ "date": "Mar",
533
+ "value": 15
534
+ },
535
+ {
536
+ "date": "Apr",
537
+ "value": 25
538
+ },
539
+ {
540
+ "date": "May",
541
+ "value": 22
542
+ },
543
+ {
544
+ "date": "Jun",
545
+ "value": 30
546
+ }
547
+ ],
548
+ "xKey": "date",
549
+ "yKey": "value",
550
+ "title": "Trend"
551
+ },
552
+ {
553
+ "type": "chart-legend",
554
+ "items": [
555
+ {
556
+ "label": "Current",
557
+ "color": "primary"
558
+ },
559
+ {
560
+ "label": "Previous",
561
+ "color": "muted"
365
562
  }
366
563
  ]
564
+ },
565
+ {
566
+ "type": "graph-view",
567
+ "nodes": [
568
+ {
569
+ "id": "a",
570
+ "label": "Start",
571
+ "x": 50,
572
+ "y": 100
573
+ },
574
+ {
575
+ "id": "b",
576
+ "label": "Process",
577
+ "x": 200,
578
+ "y": 50
579
+ },
580
+ {
581
+ "id": "c",
582
+ "label": "End",
583
+ "x": 350,
584
+ "y": 100
585
+ }
586
+ ],
587
+ "edges": [
588
+ {
589
+ "from": "a",
590
+ "to": "b"
591
+ },
592
+ {
593
+ "from": "b",
594
+ "to": "c"
595
+ }
596
+ ],
597
+ "width": 400,
598
+ "height": 200
367
599
  }
368
600
  ]
369
601
  }
@@ -387,134 +619,250 @@
387
619
  "render-ui",
388
620
  "main",
389
621
  {
390
- "type": "stack",
391
- "direction": "vertical",
392
- "gap": "lg",
393
- "children": [
622
+ "type": "dashboard-layout",
623
+ "appName": "Trading Dashboard",
624
+ "navItems": [
394
625
  {
395
- "type": "stack",
396
- "direction": "horizontal",
397
- "gap": "md",
398
- "justify": "space-between",
399
- "children": [
400
- {
401
- "type": "stack",
402
- "direction": "horizontal",
403
- "gap": "md",
404
- "children": [
405
- {
406
- "type": "icon",
407
- "name": "trending-up",
408
- "size": "lg"
409
- },
410
- {
411
- "type": "typography",
412
- "content": "Portfolio",
413
- "variant": "h2"
414
- }
415
- ]
416
- },
417
- {
418
- "type": "button",
419
- "label": "Refresh",
420
- "event": "REFRESH",
421
- "variant": "secondary",
422
- "icon": "refresh-cw"
423
- }
424
- ]
626
+ "label": "Portfolio",
627
+ "href": "/portfolio",
628
+ "icon": "layout-list"
425
629
  },
426
630
  {
427
- "type": "divider"
631
+ "label": "Orders",
632
+ "href": "/orders",
633
+ "icon": "clipboard-list"
428
634
  },
429
635
  {
430
- "type": "simple-grid",
431
- "columns": 3,
636
+ "label": "Market",
637
+ "href": "/market",
638
+ "icon": "layout-list"
639
+ }
640
+ ],
641
+ "children": [
642
+ {
643
+ "type": "scaled-diagram",
432
644
  "children": [
433
645
  {
434
- "type": "card",
646
+ "type": "stack",
647
+ "direction": "vertical",
648
+ "gap": "lg",
435
649
  "children": [
436
650
  {
437
- "type": "stack",
438
- "direction": "vertical",
439
- "gap": "sm",
440
- "children": [
651
+ "type": "breadcrumb",
652
+ "items": [
441
653
  {
442
- "type": "typography",
443
- "variant": "caption",
444
- "content": "TotalValue"
654
+ "label": "Home",
655
+ "href": "/"
445
656
  },
446
657
  {
447
- "type": "typography",
448
- "variant": "h3",
449
- "content": "@entity.totalValue"
658
+ "label": "Portfolio"
450
659
  }
451
660
  ]
452
- }
453
- ]
454
- },
455
- {
456
- "type": "card",
457
- "children": [
661
+ },
458
662
  {
459
663
  "type": "stack",
460
- "direction": "vertical",
461
- "gap": "sm",
664
+ "direction": "horizontal",
665
+ "gap": "md",
666
+ "justify": "space-between",
462
667
  "children": [
463
668
  {
464
- "type": "typography",
465
- "variant": "caption",
466
- "content": "DailyChange"
669
+ "type": "stack",
670
+ "direction": "horizontal",
671
+ "gap": "md",
672
+ "children": [
673
+ {
674
+ "type": "icon",
675
+ "name": "trending-up",
676
+ "size": "lg"
677
+ },
678
+ {
679
+ "type": "typography",
680
+ "content": "Portfolio",
681
+ "variant": "h2"
682
+ }
683
+ ]
467
684
  },
468
685
  {
469
- "type": "typography",
470
- "variant": "h3",
471
- "content": "@entity.dailyChange"
686
+ "type": "button",
687
+ "label": "Refresh",
688
+ "event": "REFRESH",
689
+ "variant": "secondary",
690
+ "icon": "refresh-cw"
472
691
  }
473
692
  ]
474
- }
475
- ]
476
- },
477
- {
478
- "type": "card",
479
- "children": [
693
+ },
480
694
  {
481
- "type": "stack",
482
- "direction": "vertical",
483
- "gap": "sm",
695
+ "type": "divider"
696
+ },
697
+ {
698
+ "type": "box",
699
+ "padding": "md",
484
700
  "children": [
485
701
  {
486
- "type": "typography",
487
- "variant": "caption",
488
- "content": "Positions"
702
+ "type": "simple-grid",
703
+ "columns": 3,
704
+ "children": [
705
+ {
706
+ "type": "stat-display",
707
+ "label": "TotalValue",
708
+ "value": [
709
+ "object/get",
710
+ [
711
+ "array/first",
712
+ "@entity"
713
+ ],
714
+ "totalValue"
715
+ ]
716
+ },
717
+ {
718
+ "type": "stat-display",
719
+ "label": "DailyChange",
720
+ "value": [
721
+ "object/get",
722
+ [
723
+ "array/first",
724
+ "@entity"
725
+ ],
726
+ "dailyChange"
727
+ ]
728
+ },
729
+ {
730
+ "type": "stat-display",
731
+ "label": "Positions",
732
+ "value": [
733
+ "object/get",
734
+ [
735
+ "array/first",
736
+ "@entity"
737
+ ],
738
+ "positions"
739
+ ]
740
+ },
741
+ {
742
+ "type": "stat-display",
743
+ "label": "CashBalance",
744
+ "value": [
745
+ "object/get",
746
+ [
747
+ "array/first",
748
+ "@entity"
749
+ ],
750
+ "cashBalance"
751
+ ]
752
+ }
753
+ ]
754
+ }
755
+ ]
756
+ },
757
+ {
758
+ "type": "divider"
759
+ },
760
+ {
761
+ "type": "grid",
762
+ "columns": 2,
763
+ "gap": "md",
764
+ "children": [
765
+ {
766
+ "type": "card",
767
+ "children": [
768
+ {
769
+ "type": "typography",
770
+ "variant": "caption",
771
+ "content": "Chart View"
772
+ }
773
+ ]
489
774
  },
490
775
  {
491
- "type": "typography",
492
- "variant": "h3",
493
- "content": "@entity.positions"
776
+ "type": "card",
777
+ "children": [
778
+ {
779
+ "type": "typography",
780
+ "variant": "caption",
781
+ "content": "Graph View"
782
+ }
783
+ ]
494
784
  }
495
785
  ]
496
- }
497
- ]
498
- },
499
- {
500
- "type": "card",
501
- "children": [
786
+ },
502
787
  {
503
- "type": "stack",
504
- "direction": "vertical",
505
- "gap": "sm",
506
- "children": [
788
+ "type": "line-chart",
789
+ "data": [
507
790
  {
508
- "type": "typography",
509
- "variant": "caption",
510
- "content": "CashBalance"
791
+ "date": "Jan",
792
+ "value": 12
511
793
  },
512
794
  {
513
- "type": "typography",
514
- "variant": "h3",
515
- "content": "@entity.cashBalance"
795
+ "date": "Feb",
796
+ "value": 19
797
+ },
798
+ {
799
+ "date": "Mar",
800
+ "value": 15
801
+ },
802
+ {
803
+ "date": "Apr",
804
+ "value": 25
805
+ },
806
+ {
807
+ "date": "May",
808
+ "value": 22
809
+ },
810
+ {
811
+ "date": "Jun",
812
+ "value": 30
813
+ }
814
+ ],
815
+ "xKey": "date",
816
+ "yKey": "value",
817
+ "title": "Trend"
818
+ },
819
+ {
820
+ "type": "chart-legend",
821
+ "items": [
822
+ {
823
+ "label": "Current",
824
+ "color": "primary"
825
+ },
826
+ {
827
+ "label": "Previous",
828
+ "color": "muted"
516
829
  }
517
830
  ]
831
+ },
832
+ {
833
+ "type": "graph-view",
834
+ "nodes": [
835
+ {
836
+ "id": "a",
837
+ "label": "Start",
838
+ "x": 50,
839
+ "y": 100
840
+ },
841
+ {
842
+ "id": "b",
843
+ "label": "Process",
844
+ "x": 200,
845
+ "y": 50
846
+ },
847
+ {
848
+ "id": "c",
849
+ "label": "End",
850
+ "x": 350,
851
+ "y": 100
852
+ }
853
+ ],
854
+ "edges": [
855
+ {
856
+ "from": "a",
857
+ "to": "b"
858
+ },
859
+ {
860
+ "from": "b",
861
+ "to": "c"
862
+ }
863
+ ],
864
+ "width": 400,
865
+ "height": 200
518
866
  }
519
867
  ]
520
868
  }
@@ -527,145 +875,261 @@
527
875
  },
528
876
  {
529
877
  "from": "displaying",
530
- "to": "refreshing",
531
- "event": "REFRESH",
532
- "effects": [
533
- [
534
- "fetch",
535
- "Portfolio"
536
- ],
537
- [
538
- "render-ui",
539
- "main",
540
- {
541
- "type": "stack",
542
- "direction": "vertical",
543
- "gap": "lg",
544
- "children": [
545
- {
546
- "type": "stack",
547
- "direction": "horizontal",
548
- "gap": "md",
549
- "justify": "space-between",
550
- "children": [
551
- {
552
- "type": "stack",
553
- "direction": "horizontal",
554
- "gap": "md",
555
- "children": [
556
- {
557
- "type": "icon",
558
- "name": "trending-up",
559
- "size": "lg"
560
- },
561
- {
562
- "type": "typography",
563
- "content": "Portfolio",
564
- "variant": "h2"
565
- }
566
- ]
567
- },
568
- {
569
- "type": "button",
570
- "label": "Refresh",
571
- "event": "REFRESH",
572
- "variant": "secondary",
573
- "icon": "refresh-cw"
574
- }
575
- ]
878
+ "to": "refreshing",
879
+ "event": "REFRESH",
880
+ "effects": [
881
+ [
882
+ "fetch",
883
+ "Portfolio"
884
+ ],
885
+ [
886
+ "render-ui",
887
+ "main",
888
+ {
889
+ "type": "dashboard-layout",
890
+ "appName": "Trading Dashboard",
891
+ "navItems": [
892
+ {
893
+ "label": "Portfolio",
894
+ "href": "/portfolio",
895
+ "icon": "layout-list"
576
896
  },
577
897
  {
578
- "type": "divider"
898
+ "label": "Orders",
899
+ "href": "/orders",
900
+ "icon": "clipboard-list"
579
901
  },
580
902
  {
581
- "type": "simple-grid",
582
- "columns": 3,
903
+ "label": "Market",
904
+ "href": "/market",
905
+ "icon": "layout-list"
906
+ }
907
+ ],
908
+ "children": [
909
+ {
910
+ "type": "scaled-diagram",
583
911
  "children": [
584
912
  {
585
- "type": "card",
913
+ "type": "stack",
914
+ "direction": "vertical",
915
+ "gap": "lg",
586
916
  "children": [
587
917
  {
588
- "type": "stack",
589
- "direction": "vertical",
590
- "gap": "sm",
591
- "children": [
918
+ "type": "breadcrumb",
919
+ "items": [
592
920
  {
593
- "type": "typography",
594
- "variant": "caption",
595
- "content": "TotalValue"
921
+ "label": "Home",
922
+ "href": "/"
596
923
  },
597
924
  {
598
- "type": "typography",
599
- "variant": "h3",
600
- "content": "@entity.totalValue"
925
+ "label": "Portfolio"
601
926
  }
602
927
  ]
603
- }
604
- ]
605
- },
606
- {
607
- "type": "card",
608
- "children": [
928
+ },
609
929
  {
610
930
  "type": "stack",
611
- "direction": "vertical",
612
- "gap": "sm",
931
+ "direction": "horizontal",
932
+ "gap": "md",
933
+ "justify": "space-between",
613
934
  "children": [
614
935
  {
615
- "type": "typography",
616
- "variant": "caption",
617
- "content": "DailyChange"
936
+ "type": "stack",
937
+ "direction": "horizontal",
938
+ "gap": "md",
939
+ "children": [
940
+ {
941
+ "type": "icon",
942
+ "name": "trending-up",
943
+ "size": "lg"
944
+ },
945
+ {
946
+ "type": "typography",
947
+ "content": "Portfolio",
948
+ "variant": "h2"
949
+ }
950
+ ]
618
951
  },
619
952
  {
620
- "type": "typography",
621
- "variant": "h3",
622
- "content": "@entity.dailyChange"
953
+ "type": "button",
954
+ "label": "Refresh",
955
+ "event": "REFRESH",
956
+ "variant": "secondary",
957
+ "icon": "refresh-cw"
623
958
  }
624
959
  ]
625
- }
626
- ]
627
- },
628
- {
629
- "type": "card",
630
- "children": [
960
+ },
631
961
  {
632
- "type": "stack",
633
- "direction": "vertical",
634
- "gap": "sm",
962
+ "type": "divider"
963
+ },
964
+ {
965
+ "type": "box",
966
+ "padding": "md",
635
967
  "children": [
636
968
  {
637
- "type": "typography",
638
- "variant": "caption",
639
- "content": "Positions"
969
+ "type": "simple-grid",
970
+ "columns": 3,
971
+ "children": [
972
+ {
973
+ "type": "stat-display",
974
+ "label": "TotalValue",
975
+ "value": [
976
+ "object/get",
977
+ [
978
+ "array/first",
979
+ "@entity"
980
+ ],
981
+ "totalValue"
982
+ ]
983
+ },
984
+ {
985
+ "type": "stat-display",
986
+ "label": "DailyChange",
987
+ "value": [
988
+ "object/get",
989
+ [
990
+ "array/first",
991
+ "@entity"
992
+ ],
993
+ "dailyChange"
994
+ ]
995
+ },
996
+ {
997
+ "type": "stat-display",
998
+ "label": "Positions",
999
+ "value": [
1000
+ "object/get",
1001
+ [
1002
+ "array/first",
1003
+ "@entity"
1004
+ ],
1005
+ "positions"
1006
+ ]
1007
+ },
1008
+ {
1009
+ "type": "stat-display",
1010
+ "label": "CashBalance",
1011
+ "value": [
1012
+ "object/get",
1013
+ [
1014
+ "array/first",
1015
+ "@entity"
1016
+ ],
1017
+ "cashBalance"
1018
+ ]
1019
+ }
1020
+ ]
1021
+ }
1022
+ ]
1023
+ },
1024
+ {
1025
+ "type": "divider"
1026
+ },
1027
+ {
1028
+ "type": "grid",
1029
+ "columns": 2,
1030
+ "gap": "md",
1031
+ "children": [
1032
+ {
1033
+ "type": "card",
1034
+ "children": [
1035
+ {
1036
+ "type": "typography",
1037
+ "variant": "caption",
1038
+ "content": "Chart View"
1039
+ }
1040
+ ]
640
1041
  },
641
1042
  {
642
- "type": "typography",
643
- "variant": "h3",
644
- "content": "@entity.positions"
1043
+ "type": "card",
1044
+ "children": [
1045
+ {
1046
+ "type": "typography",
1047
+ "variant": "caption",
1048
+ "content": "Graph View"
1049
+ }
1050
+ ]
645
1051
  }
646
1052
  ]
647
- }
648
- ]
649
- },
650
- {
651
- "type": "card",
652
- "children": [
1053
+ },
653
1054
  {
654
- "type": "stack",
655
- "direction": "vertical",
656
- "gap": "sm",
657
- "children": [
1055
+ "type": "line-chart",
1056
+ "data": [
658
1057
  {
659
- "type": "typography",
660
- "variant": "caption",
661
- "content": "CashBalance"
1058
+ "date": "Jan",
1059
+ "value": 12
662
1060
  },
663
1061
  {
664
- "type": "typography",
665
- "variant": "h3",
666
- "content": "@entity.cashBalance"
1062
+ "date": "Feb",
1063
+ "value": 19
1064
+ },
1065
+ {
1066
+ "date": "Mar",
1067
+ "value": 15
1068
+ },
1069
+ {
1070
+ "date": "Apr",
1071
+ "value": 25
1072
+ },
1073
+ {
1074
+ "date": "May",
1075
+ "value": 22
1076
+ },
1077
+ {
1078
+ "date": "Jun",
1079
+ "value": 30
1080
+ }
1081
+ ],
1082
+ "xKey": "date",
1083
+ "yKey": "value",
1084
+ "title": "Trend"
1085
+ },
1086
+ {
1087
+ "type": "chart-legend",
1088
+ "items": [
1089
+ {
1090
+ "label": "Current",
1091
+ "color": "primary"
1092
+ },
1093
+ {
1094
+ "label": "Previous",
1095
+ "color": "muted"
667
1096
  }
668
1097
  ]
1098
+ },
1099
+ {
1100
+ "type": "graph-view",
1101
+ "nodes": [
1102
+ {
1103
+ "id": "a",
1104
+ "label": "Start",
1105
+ "x": 50,
1106
+ "y": 100
1107
+ },
1108
+ {
1109
+ "id": "b",
1110
+ "label": "Process",
1111
+ "x": 200,
1112
+ "y": 50
1113
+ },
1114
+ {
1115
+ "id": "c",
1116
+ "label": "End",
1117
+ "x": 350,
1118
+ "y": 100
1119
+ }
1120
+ ],
1121
+ "edges": [
1122
+ {
1123
+ "from": "a",
1124
+ "to": "b"
1125
+ },
1126
+ {
1127
+ "from": "b",
1128
+ "to": "c"
1129
+ }
1130
+ ],
1131
+ "width": 400,
1132
+ "height": 200
669
1133
  }
670
1134
  ]
671
1135
  }
@@ -689,134 +1153,250 @@
689
1153
  "render-ui",
690
1154
  "main",
691
1155
  {
692
- "type": "stack",
693
- "direction": "vertical",
694
- "gap": "lg",
695
- "children": [
1156
+ "type": "dashboard-layout",
1157
+ "appName": "Trading Dashboard",
1158
+ "navItems": [
696
1159
  {
697
- "type": "stack",
698
- "direction": "horizontal",
699
- "gap": "md",
700
- "justify": "space-between",
701
- "children": [
702
- {
703
- "type": "stack",
704
- "direction": "horizontal",
705
- "gap": "md",
706
- "children": [
707
- {
708
- "type": "icon",
709
- "name": "trending-up",
710
- "size": "lg"
711
- },
712
- {
713
- "type": "typography",
714
- "content": "Portfolio",
715
- "variant": "h2"
716
- }
717
- ]
718
- },
719
- {
720
- "type": "button",
721
- "label": "Refresh",
722
- "event": "REFRESH",
723
- "variant": "secondary",
724
- "icon": "refresh-cw"
725
- }
726
- ]
1160
+ "label": "Portfolio",
1161
+ "href": "/portfolio",
1162
+ "icon": "layout-list"
727
1163
  },
728
1164
  {
729
- "type": "divider"
1165
+ "label": "Orders",
1166
+ "href": "/orders",
1167
+ "icon": "clipboard-list"
730
1168
  },
731
1169
  {
732
- "type": "simple-grid",
733
- "columns": 3,
1170
+ "label": "Market",
1171
+ "href": "/market",
1172
+ "icon": "layout-list"
1173
+ }
1174
+ ],
1175
+ "children": [
1176
+ {
1177
+ "type": "scaled-diagram",
734
1178
  "children": [
735
1179
  {
736
- "type": "card",
1180
+ "type": "stack",
1181
+ "direction": "vertical",
1182
+ "gap": "lg",
737
1183
  "children": [
738
1184
  {
739
- "type": "stack",
740
- "direction": "vertical",
741
- "gap": "sm",
742
- "children": [
1185
+ "type": "breadcrumb",
1186
+ "items": [
743
1187
  {
744
- "type": "typography",
745
- "variant": "caption",
746
- "content": "TotalValue"
1188
+ "label": "Home",
1189
+ "href": "/"
747
1190
  },
748
1191
  {
749
- "type": "typography",
750
- "variant": "h3",
751
- "content": "@entity.totalValue"
1192
+ "label": "Portfolio"
752
1193
  }
753
1194
  ]
754
- }
755
- ]
756
- },
757
- {
758
- "type": "card",
759
- "children": [
1195
+ },
760
1196
  {
761
1197
  "type": "stack",
762
- "direction": "vertical",
763
- "gap": "sm",
1198
+ "direction": "horizontal",
1199
+ "gap": "md",
1200
+ "justify": "space-between",
764
1201
  "children": [
765
1202
  {
766
- "type": "typography",
767
- "variant": "caption",
768
- "content": "DailyChange"
1203
+ "type": "stack",
1204
+ "direction": "horizontal",
1205
+ "gap": "md",
1206
+ "children": [
1207
+ {
1208
+ "type": "icon",
1209
+ "name": "trending-up",
1210
+ "size": "lg"
1211
+ },
1212
+ {
1213
+ "type": "typography",
1214
+ "content": "Portfolio",
1215
+ "variant": "h2"
1216
+ }
1217
+ ]
769
1218
  },
770
1219
  {
771
- "type": "typography",
772
- "variant": "h3",
773
- "content": "@entity.dailyChange"
1220
+ "type": "button",
1221
+ "label": "Refresh",
1222
+ "event": "REFRESH",
1223
+ "variant": "secondary",
1224
+ "icon": "refresh-cw"
774
1225
  }
775
1226
  ]
776
- }
777
- ]
778
- },
779
- {
780
- "type": "card",
781
- "children": [
1227
+ },
782
1228
  {
783
- "type": "stack",
784
- "direction": "vertical",
785
- "gap": "sm",
1229
+ "type": "divider"
1230
+ },
1231
+ {
1232
+ "type": "box",
1233
+ "padding": "md",
786
1234
  "children": [
787
1235
  {
788
- "type": "typography",
789
- "variant": "caption",
790
- "content": "Positions"
1236
+ "type": "simple-grid",
1237
+ "columns": 3,
1238
+ "children": [
1239
+ {
1240
+ "type": "stat-display",
1241
+ "label": "TotalValue",
1242
+ "value": [
1243
+ "object/get",
1244
+ [
1245
+ "array/first",
1246
+ "@entity"
1247
+ ],
1248
+ "totalValue"
1249
+ ]
1250
+ },
1251
+ {
1252
+ "type": "stat-display",
1253
+ "label": "DailyChange",
1254
+ "value": [
1255
+ "object/get",
1256
+ [
1257
+ "array/first",
1258
+ "@entity"
1259
+ ],
1260
+ "dailyChange"
1261
+ ]
1262
+ },
1263
+ {
1264
+ "type": "stat-display",
1265
+ "label": "Positions",
1266
+ "value": [
1267
+ "object/get",
1268
+ [
1269
+ "array/first",
1270
+ "@entity"
1271
+ ],
1272
+ "positions"
1273
+ ]
1274
+ },
1275
+ {
1276
+ "type": "stat-display",
1277
+ "label": "CashBalance",
1278
+ "value": [
1279
+ "object/get",
1280
+ [
1281
+ "array/first",
1282
+ "@entity"
1283
+ ],
1284
+ "cashBalance"
1285
+ ]
1286
+ }
1287
+ ]
1288
+ }
1289
+ ]
1290
+ },
1291
+ {
1292
+ "type": "divider"
1293
+ },
1294
+ {
1295
+ "type": "grid",
1296
+ "columns": 2,
1297
+ "gap": "md",
1298
+ "children": [
1299
+ {
1300
+ "type": "card",
1301
+ "children": [
1302
+ {
1303
+ "type": "typography",
1304
+ "variant": "caption",
1305
+ "content": "Chart View"
1306
+ }
1307
+ ]
791
1308
  },
792
1309
  {
793
- "type": "typography",
794
- "variant": "h3",
795
- "content": "@entity.positions"
1310
+ "type": "card",
1311
+ "children": [
1312
+ {
1313
+ "type": "typography",
1314
+ "variant": "caption",
1315
+ "content": "Graph View"
1316
+ }
1317
+ ]
796
1318
  }
797
1319
  ]
798
- }
799
- ]
800
- },
801
- {
802
- "type": "card",
803
- "children": [
1320
+ },
804
1321
  {
805
- "type": "stack",
806
- "direction": "vertical",
807
- "gap": "sm",
808
- "children": [
1322
+ "type": "line-chart",
1323
+ "data": [
809
1324
  {
810
- "type": "typography",
811
- "variant": "caption",
812
- "content": "CashBalance"
1325
+ "date": "Jan",
1326
+ "value": 12
813
1327
  },
814
1328
  {
815
- "type": "typography",
816
- "variant": "h3",
817
- "content": "@entity.cashBalance"
1329
+ "date": "Feb",
1330
+ "value": 19
1331
+ },
1332
+ {
1333
+ "date": "Mar",
1334
+ "value": 15
1335
+ },
1336
+ {
1337
+ "date": "Apr",
1338
+ "value": 25
1339
+ },
1340
+ {
1341
+ "date": "May",
1342
+ "value": 22
1343
+ },
1344
+ {
1345
+ "date": "Jun",
1346
+ "value": 30
1347
+ }
1348
+ ],
1349
+ "xKey": "date",
1350
+ "yKey": "value",
1351
+ "title": "Trend"
1352
+ },
1353
+ {
1354
+ "type": "chart-legend",
1355
+ "items": [
1356
+ {
1357
+ "label": "Current",
1358
+ "color": "primary"
1359
+ },
1360
+ {
1361
+ "label": "Previous",
1362
+ "color": "muted"
818
1363
  }
819
1364
  ]
1365
+ },
1366
+ {
1367
+ "type": "graph-view",
1368
+ "nodes": [
1369
+ {
1370
+ "id": "a",
1371
+ "label": "Start",
1372
+ "x": 50,
1373
+ "y": 100
1374
+ },
1375
+ {
1376
+ "id": "b",
1377
+ "label": "Process",
1378
+ "x": 200,
1379
+ "y": 50
1380
+ },
1381
+ {
1382
+ "id": "c",
1383
+ "label": "End",
1384
+ "x": 350,
1385
+ "y": 100
1386
+ }
1387
+ ],
1388
+ "edges": [
1389
+ {
1390
+ "from": "a",
1391
+ "to": "b"
1392
+ },
1393
+ {
1394
+ "from": "b",
1395
+ "to": "c"
1396
+ }
1397
+ ],
1398
+ "width": 400,
1399
+ "height": 200
820
1400
  }
821
1401
  ]
822
1402
  }
@@ -864,7 +1444,11 @@
864
1444
  {
865
1445
  "name": "side",
866
1446
  "type": "string",
867
- "required": true
1447
+ "required": true,
1448
+ "values": [
1449
+ "buy",
1450
+ "sell"
1451
+ ]
868
1452
  },
869
1453
  {
870
1454
  "name": "quantity",
@@ -993,118 +1577,125 @@
993
1577
  "render-ui",
994
1578
  "main",
995
1579
  {
996
- "type": "stack",
997
- "direction": "vertical",
998
- "gap": "lg",
999
- "children": [
1580
+ "type": "dashboard-layout",
1581
+ "appName": "Trading Dashboard",
1582
+ "navItems": [
1000
1583
  {
1001
- "type": "stack",
1002
- "direction": "horizontal",
1003
- "gap": "md",
1004
- "justify": "space-between",
1005
- "children": [
1006
- {
1007
- "type": "stack",
1008
- "direction": "horizontal",
1009
- "gap": "sm",
1010
- "align": "center",
1011
- "children": [
1012
- {
1013
- "type": "icon",
1014
- "name": "shopping-cart",
1015
- "size": "lg"
1016
- },
1017
- {
1018
- "type": "typography",
1019
- "content": "Trade Orders",
1020
- "variant": "h2"
1021
- }
1022
- ]
1023
- },
1024
- {
1025
- "type": "stack",
1026
- "direction": "horizontal",
1027
- "gap": "sm",
1028
- "children": [
1029
- {
1030
- "type": "button",
1031
- "label": "Create TradeOrder",
1032
- "event": "CREATE",
1033
- "variant": "primary",
1034
- "icon": "plus"
1035
- }
1036
- ]
1037
- }
1038
- ]
1584
+ "label": "Portfolio",
1585
+ "href": "/portfolio",
1586
+ "icon": "layout-list"
1039
1587
  },
1040
1588
  {
1041
- "type": "divider"
1589
+ "label": "Orders",
1590
+ "href": "/orders",
1591
+ "icon": "clipboard-list"
1042
1592
  },
1043
1593
  {
1044
- "type": "data-grid",
1045
- "entity": "TradeOrder",
1046
- "emptyIcon": "inbox",
1047
- "emptyTitle": "No tradeorders yet",
1048
- "emptyDescription": "Create your first tradeorder to get started.",
1049
- "itemActions": [
1050
- {
1051
- "label": "View",
1052
- "event": "VIEW"
1053
- },
1054
- {
1055
- "label": "Edit",
1056
- "event": "EDIT"
1057
- },
1058
- {
1059
- "label": "Delete",
1060
- "event": "DELETE",
1061
- "variant": "danger"
1062
- }
1063
- ],
1064
- "className": "transition-shadow hover:shadow-md cursor-pointer",
1594
+ "label": "Market",
1595
+ "href": "/market",
1596
+ "icon": "layout-list"
1597
+ }
1598
+ ],
1599
+ "children": [
1600
+ {
1601
+ "type": "stack",
1602
+ "direction": "vertical",
1603
+ "gap": "lg",
1604
+ "className": "max-w-5xl mx-auto w-full",
1065
1605
  "children": [
1066
1606
  {
1067
1607
  "type": "stack",
1068
- "direction": "vertical",
1069
- "gap": "sm",
1608
+ "direction": "horizontal",
1609
+ "gap": "md",
1610
+ "justify": "space-between",
1611
+ "align": "center",
1070
1612
  "children": [
1071
1613
  {
1072
1614
  "type": "stack",
1073
1615
  "direction": "horizontal",
1074
- "justify": "space-between",
1616
+ "gap": "sm",
1075
1617
  "align": "center",
1076
1618
  "children": [
1077
1619
  {
1078
- "type": "stack",
1079
- "direction": "horizontal",
1080
- "gap": "sm",
1081
- "align": "center",
1082
- "children": [
1083
- {
1084
- "type": "icon",
1085
- "name": "shopping-cart",
1086
- "size": "sm"
1087
- },
1088
- {
1089
- "type": "typography",
1090
- "variant": "h4",
1091
- "content": "@entity.symbol"
1092
- }
1093
- ]
1620
+ "type": "icon",
1621
+ "name": "shopping-cart",
1622
+ "size": "lg"
1094
1623
  },
1095
1624
  {
1096
- "type": "badge",
1097
- "label": "@entity.side"
1625
+ "type": "typography",
1626
+ "content": "Trade Orders",
1627
+ "variant": "h2"
1098
1628
  }
1099
1629
  ]
1100
1630
  },
1101
1631
  {
1102
- "type": "typography",
1103
- "variant": "caption",
1104
- "color": "muted",
1105
- "content": "@entity.quantity"
1632
+ "type": "stack",
1633
+ "direction": "horizontal",
1634
+ "gap": "sm",
1635
+ "children": [
1636
+ {
1637
+ "type": "button",
1638
+ "label": "Create TradeOrder",
1639
+ "event": "CREATE",
1640
+ "variant": "primary",
1641
+ "icon": "plus"
1642
+ }
1643
+ ]
1106
1644
  }
1107
1645
  ]
1646
+ },
1647
+ {
1648
+ "type": "divider"
1649
+ },
1650
+ {
1651
+ "type": "data-list",
1652
+ "entity": "TradeOrder",
1653
+ "emptyIcon": "inbox",
1654
+ "emptyTitle": "No orders yet",
1655
+ "emptyDescription": "Place your first trade.",
1656
+ "itemActions": [
1657
+ {
1658
+ "label": "View",
1659
+ "event": "VIEW",
1660
+ "variant": "ghost",
1661
+ "size": "sm"
1662
+ },
1663
+ {
1664
+ "label": "Edit",
1665
+ "event": "EDIT",
1666
+ "variant": "ghost",
1667
+ "size": "sm"
1668
+ },
1669
+ {
1670
+ "label": "Delete",
1671
+ "event": "DELETE",
1672
+ "variant": "danger",
1673
+ "size": "sm"
1674
+ }
1675
+ ],
1676
+ "columns": [
1677
+ {
1678
+ "name": "symbol",
1679
+ "variant": "h3",
1680
+ "icon": "trending-up"
1681
+ },
1682
+ {
1683
+ "name": "side",
1684
+ "variant": "badge"
1685
+ },
1686
+ {
1687
+ "name": "quantity",
1688
+ "variant": "body",
1689
+ "format": "number"
1690
+ },
1691
+ {
1692
+ "name": "price",
1693
+ "variant": "h4",
1694
+ "format": "currency"
1695
+ }
1696
+ ],
1697
+ "variant": "card",
1698
+ "gap": "sm"
1108
1699
  }
1109
1700
  ]
1110
1701
  }
@@ -1224,6 +1815,135 @@
1224
1815
  "fetch",
1225
1816
  "TradeOrder"
1226
1817
  ],
1818
+ [
1819
+ "render-ui",
1820
+ "main",
1821
+ {
1822
+ "type": "dashboard-layout",
1823
+ "appName": "Trading Dashboard",
1824
+ "navItems": [
1825
+ {
1826
+ "label": "Portfolio",
1827
+ "href": "/portfolio",
1828
+ "icon": "layout-list"
1829
+ },
1830
+ {
1831
+ "label": "Orders",
1832
+ "href": "/orders",
1833
+ "icon": "clipboard-list"
1834
+ },
1835
+ {
1836
+ "label": "Market",
1837
+ "href": "/market",
1838
+ "icon": "layout-list"
1839
+ }
1840
+ ],
1841
+ "children": [
1842
+ {
1843
+ "type": "stack",
1844
+ "direction": "vertical",
1845
+ "gap": "lg",
1846
+ "className": "max-w-5xl mx-auto w-full",
1847
+ "children": [
1848
+ {
1849
+ "type": "stack",
1850
+ "direction": "horizontal",
1851
+ "gap": "md",
1852
+ "justify": "space-between",
1853
+ "align": "center",
1854
+ "children": [
1855
+ {
1856
+ "type": "stack",
1857
+ "direction": "horizontal",
1858
+ "gap": "sm",
1859
+ "align": "center",
1860
+ "children": [
1861
+ {
1862
+ "type": "icon",
1863
+ "name": "shopping-cart",
1864
+ "size": "lg"
1865
+ },
1866
+ {
1867
+ "type": "typography",
1868
+ "content": "Trade Orders",
1869
+ "variant": "h2"
1870
+ }
1871
+ ]
1872
+ },
1873
+ {
1874
+ "type": "stack",
1875
+ "direction": "horizontal",
1876
+ "gap": "sm",
1877
+ "children": [
1878
+ {
1879
+ "type": "button",
1880
+ "label": "Create TradeOrder",
1881
+ "event": "CREATE",
1882
+ "variant": "primary",
1883
+ "icon": "plus"
1884
+ }
1885
+ ]
1886
+ }
1887
+ ]
1888
+ },
1889
+ {
1890
+ "type": "divider"
1891
+ },
1892
+ {
1893
+ "type": "data-list",
1894
+ "entity": "TradeOrder",
1895
+ "emptyIcon": "inbox",
1896
+ "emptyTitle": "No orders yet",
1897
+ "emptyDescription": "Place your first trade.",
1898
+ "itemActions": [
1899
+ {
1900
+ "label": "View",
1901
+ "event": "VIEW",
1902
+ "variant": "ghost",
1903
+ "size": "sm"
1904
+ },
1905
+ {
1906
+ "label": "Edit",
1907
+ "event": "EDIT",
1908
+ "variant": "ghost",
1909
+ "size": "sm"
1910
+ },
1911
+ {
1912
+ "label": "Delete",
1913
+ "event": "DELETE",
1914
+ "variant": "danger",
1915
+ "size": "sm"
1916
+ }
1917
+ ],
1918
+ "columns": [
1919
+ {
1920
+ "name": "symbol",
1921
+ "variant": "h3",
1922
+ "icon": "trending-up"
1923
+ },
1924
+ {
1925
+ "name": "side",
1926
+ "variant": "badge"
1927
+ },
1928
+ {
1929
+ "name": "quantity",
1930
+ "variant": "body",
1931
+ "format": "number"
1932
+ },
1933
+ {
1934
+ "name": "price",
1935
+ "variant": "h4",
1936
+ "format": "currency"
1937
+ }
1938
+ ],
1939
+ "variant": "card",
1940
+ "gap": "sm"
1941
+ }
1942
+ ]
1943
+ }
1944
+ ]
1945
+ }
1946
+ ],
1227
1947
  [
1228
1948
  "notify",
1229
1949
  "TradeOrder deleted successfully"
@@ -1239,6 +1959,139 @@
1239
1959
  "render-ui",
1240
1960
  "modal",
1241
1961
  null
1962
+ ],
1963
+ [
1964
+ "fetch",
1965
+ "TradeOrder"
1966
+ ],
1967
+ [
1968
+ "render-ui",
1969
+ "main",
1970
+ {
1971
+ "type": "dashboard-layout",
1972
+ "appName": "Trading Dashboard",
1973
+ "navItems": [
1974
+ {
1975
+ "label": "Portfolio",
1976
+ "href": "/portfolio",
1977
+ "icon": "layout-list"
1978
+ },
1979
+ {
1980
+ "label": "Orders",
1981
+ "href": "/orders",
1982
+ "icon": "clipboard-list"
1983
+ },
1984
+ {
1985
+ "label": "Market",
1986
+ "href": "/market",
1987
+ "icon": "layout-list"
1988
+ }
1989
+ ],
1990
+ "children": [
1991
+ {
1992
+ "type": "stack",
1993
+ "direction": "vertical",
1994
+ "gap": "lg",
1995
+ "className": "max-w-5xl mx-auto w-full",
1996
+ "children": [
1997
+ {
1998
+ "type": "stack",
1999
+ "direction": "horizontal",
2000
+ "gap": "md",
2001
+ "justify": "space-between",
2002
+ "align": "center",
2003
+ "children": [
2004
+ {
2005
+ "type": "stack",
2006
+ "direction": "horizontal",
2007
+ "gap": "sm",
2008
+ "align": "center",
2009
+ "children": [
2010
+ {
2011
+ "type": "icon",
2012
+ "name": "shopping-cart",
2013
+ "size": "lg"
2014
+ },
2015
+ {
2016
+ "type": "typography",
2017
+ "content": "Trade Orders",
2018
+ "variant": "h2"
2019
+ }
2020
+ ]
2021
+ },
2022
+ {
2023
+ "type": "stack",
2024
+ "direction": "horizontal",
2025
+ "gap": "sm",
2026
+ "children": [
2027
+ {
2028
+ "type": "button",
2029
+ "label": "Create TradeOrder",
2030
+ "event": "CREATE",
2031
+ "variant": "primary",
2032
+ "icon": "plus"
2033
+ }
2034
+ ]
2035
+ }
2036
+ ]
2037
+ },
2038
+ {
2039
+ "type": "divider"
2040
+ },
2041
+ {
2042
+ "type": "data-list",
2043
+ "entity": "TradeOrder",
2044
+ "emptyIcon": "inbox",
2045
+ "emptyTitle": "No orders yet",
2046
+ "emptyDescription": "Place your first trade.",
2047
+ "itemActions": [
2048
+ {
2049
+ "label": "View",
2050
+ "event": "VIEW",
2051
+ "variant": "ghost",
2052
+ "size": "sm"
2053
+ },
2054
+ {
2055
+ "label": "Edit",
2056
+ "event": "EDIT",
2057
+ "variant": "ghost",
2058
+ "size": "sm"
2059
+ },
2060
+ {
2061
+ "label": "Delete",
2062
+ "event": "DELETE",
2063
+ "variant": "danger",
2064
+ "size": "sm"
2065
+ }
2066
+ ],
2067
+ "columns": [
2068
+ {
2069
+ "name": "symbol",
2070
+ "variant": "h3",
2071
+ "icon": "trending-up"
2072
+ },
2073
+ {
2074
+ "name": "side",
2075
+ "variant": "badge"
2076
+ },
2077
+ {
2078
+ "name": "quantity",
2079
+ "variant": "body",
2080
+ "format": "number"
2081
+ },
2082
+ {
2083
+ "name": "price",
2084
+ "variant": "h4",
2085
+ "format": "currency"
2086
+ }
2087
+ ],
2088
+ "variant": "card",
2089
+ "gap": "sm"
2090
+ }
2091
+ ]
2092
+ }
2093
+ ]
2094
+ }
1242
2095
  ]
1243
2096
  ]
1244
2097
  },
@@ -1251,6 +2104,139 @@
1251
2104
  "render-ui",
1252
2105
  "modal",
1253
2106
  null
2107
+ ],
2108
+ [
2109
+ "fetch",
2110
+ "TradeOrder"
2111
+ ],
2112
+ [
2113
+ "render-ui",
2114
+ "main",
2115
+ {
2116
+ "type": "dashboard-layout",
2117
+ "appName": "Trading Dashboard",
2118
+ "navItems": [
2119
+ {
2120
+ "label": "Portfolio",
2121
+ "href": "/portfolio",
2122
+ "icon": "layout-list"
2123
+ },
2124
+ {
2125
+ "label": "Orders",
2126
+ "href": "/orders",
2127
+ "icon": "clipboard-list"
2128
+ },
2129
+ {
2130
+ "label": "Market",
2131
+ "href": "/market",
2132
+ "icon": "layout-list"
2133
+ }
2134
+ ],
2135
+ "children": [
2136
+ {
2137
+ "type": "stack",
2138
+ "direction": "vertical",
2139
+ "gap": "lg",
2140
+ "className": "max-w-5xl mx-auto w-full",
2141
+ "children": [
2142
+ {
2143
+ "type": "stack",
2144
+ "direction": "horizontal",
2145
+ "gap": "md",
2146
+ "justify": "space-between",
2147
+ "align": "center",
2148
+ "children": [
2149
+ {
2150
+ "type": "stack",
2151
+ "direction": "horizontal",
2152
+ "gap": "sm",
2153
+ "align": "center",
2154
+ "children": [
2155
+ {
2156
+ "type": "icon",
2157
+ "name": "shopping-cart",
2158
+ "size": "lg"
2159
+ },
2160
+ {
2161
+ "type": "typography",
2162
+ "content": "Trade Orders",
2163
+ "variant": "h2"
2164
+ }
2165
+ ]
2166
+ },
2167
+ {
2168
+ "type": "stack",
2169
+ "direction": "horizontal",
2170
+ "gap": "sm",
2171
+ "children": [
2172
+ {
2173
+ "type": "button",
2174
+ "label": "Create TradeOrder",
2175
+ "event": "CREATE",
2176
+ "variant": "primary",
2177
+ "icon": "plus"
2178
+ }
2179
+ ]
2180
+ }
2181
+ ]
2182
+ },
2183
+ {
2184
+ "type": "divider"
2185
+ },
2186
+ {
2187
+ "type": "data-list",
2188
+ "entity": "TradeOrder",
2189
+ "emptyIcon": "inbox",
2190
+ "emptyTitle": "No orders yet",
2191
+ "emptyDescription": "Place your first trade.",
2192
+ "itemActions": [
2193
+ {
2194
+ "label": "View",
2195
+ "event": "VIEW",
2196
+ "variant": "ghost",
2197
+ "size": "sm"
2198
+ },
2199
+ {
2200
+ "label": "Edit",
2201
+ "event": "EDIT",
2202
+ "variant": "ghost",
2203
+ "size": "sm"
2204
+ },
2205
+ {
2206
+ "label": "Delete",
2207
+ "event": "DELETE",
2208
+ "variant": "danger",
2209
+ "size": "sm"
2210
+ }
2211
+ ],
2212
+ "columns": [
2213
+ {
2214
+ "name": "symbol",
2215
+ "variant": "h3",
2216
+ "icon": "trending-up"
2217
+ },
2218
+ {
2219
+ "name": "side",
2220
+ "variant": "badge"
2221
+ },
2222
+ {
2223
+ "name": "quantity",
2224
+ "variant": "body",
2225
+ "format": "number"
2226
+ },
2227
+ {
2228
+ "name": "price",
2229
+ "variant": "h4",
2230
+ "format": "currency"
2231
+ }
2232
+ ],
2233
+ "variant": "card",
2234
+ "gap": "sm"
2235
+ }
2236
+ ]
2237
+ }
2238
+ ]
2239
+ }
1254
2240
  ]
1255
2241
  ]
1256
2242
  }
@@ -1377,6 +2363,11 @@
1377
2363
  "render-ui",
1378
2364
  "modal",
1379
2365
  null
2366
+ ],
2367
+ [
2368
+ "notify",
2369
+ "Cancelled",
2370
+ "info"
1380
2371
  ]
1381
2372
  ]
1382
2373
  },
@@ -1542,6 +2533,11 @@
1542
2533
  "render-ui",
1543
2534
  "modal",
1544
2535
  null
2536
+ ],
2537
+ [
2538
+ "notify",
2539
+ "Cancelled",
2540
+ "info"
1545
2541
  ]
1546
2542
  ]
1547
2543
  },
@@ -1770,6 +2766,11 @@
1770
2766
  "render-ui",
1771
2767
  "modal",
1772
2768
  null
2769
+ ],
2770
+ [
2771
+ "notify",
2772
+ "Cancelled",
2773
+ "info"
1773
2774
  ]
1774
2775
  ]
1775
2776
  }
@@ -1904,38 +2905,67 @@
1904
2905
  "render-ui",
1905
2906
  "main",
1906
2907
  {
1907
- "type": "stack",
1908
- "direction": "vertical",
1909
- "gap": "lg",
1910
- "align": "center",
2908
+ "type": "dashboard-layout",
2909
+ "appName": "Trading Dashboard",
2910
+ "navItems": [
2911
+ {
2912
+ "label": "Portfolio",
2913
+ "href": "/portfolio",
2914
+ "icon": "layout-list"
2915
+ },
2916
+ {
2917
+ "label": "Orders",
2918
+ "href": "/orders",
2919
+ "icon": "clipboard-list"
2920
+ },
2921
+ {
2922
+ "label": "Market",
2923
+ "href": "/market",
2924
+ "icon": "layout-list"
2925
+ }
2926
+ ],
1911
2927
  "children": [
1912
2928
  {
1913
2929
  "type": "stack",
1914
- "direction": "horizontal",
1915
- "gap": "md",
2930
+ "direction": "vertical",
2931
+ "gap": "lg",
1916
2932
  "align": "center",
1917
2933
  "children": [
1918
2934
  {
1919
- "type": "icon",
1920
- "name": "activity",
1921
- "size": "lg"
2935
+ "type": "stack",
2936
+ "direction": "horizontal",
2937
+ "gap": "md",
2938
+ "align": "center",
2939
+ "children": [
2940
+ {
2941
+ "type": "icon",
2942
+ "name": "activity",
2943
+ "size": "lg"
2944
+ },
2945
+ {
2946
+ "type": "typography",
2947
+ "content": "MarketFeed",
2948
+ "variant": "h2"
2949
+ }
2950
+ ]
2951
+ },
2952
+ {
2953
+ "type": "divider"
1922
2954
  },
1923
2955
  {
1924
2956
  "type": "typography",
1925
- "content": "MarketFeed",
1926
- "variant": "h2"
2957
+ "variant": "body",
2958
+ "color": "muted",
2959
+ "content": "Ready to start marketfeed operation."
2960
+ },
2961
+ {
2962
+ "type": "button",
2963
+ "label": "Start",
2964
+ "event": "START",
2965
+ "variant": "primary",
2966
+ "icon": "play"
1927
2967
  }
1928
2968
  ]
1929
- },
1930
- {
1931
- "type": "divider"
1932
- },
1933
- {
1934
- "type": "button",
1935
- "label": "Start",
1936
- "event": "START",
1937
- "variant": "primary",
1938
- "icon": "play"
1939
2969
  }
1940
2970
  ]
1941
2971
  }
@@ -1951,20 +2981,42 @@
1951
2981
  "render-ui",
1952
2982
  "main",
1953
2983
  {
1954
- "type": "stack",
1955
- "direction": "vertical",
1956
- "gap": "lg",
1957
- "align": "center",
1958
- "children": [
2984
+ "type": "dashboard-layout",
2985
+ "appName": "Trading Dashboard",
2986
+ "navItems": [
1959
2987
  {
1960
- "type": "icon",
1961
- "name": "loader",
1962
- "size": "lg"
2988
+ "label": "Portfolio",
2989
+ "href": "/portfolio",
2990
+ "icon": "layout-list"
1963
2991
  },
1964
2992
  {
1965
- "type": "typography",
1966
- "content": "Connecting to market feed...",
1967
- "variant": "h3"
2993
+ "label": "Orders",
2994
+ "href": "/orders",
2995
+ "icon": "clipboard-list"
2996
+ },
2997
+ {
2998
+ "label": "Market",
2999
+ "href": "/market",
3000
+ "icon": "layout-list"
3001
+ }
3002
+ ],
3003
+ "children": [
3004
+ {
3005
+ "type": "stack",
3006
+ "direction": "vertical",
3007
+ "gap": "lg",
3008
+ "align": "center",
3009
+ "children": [
3010
+ {
3011
+ "type": "loading-state",
3012
+ "title": "Connecting to market feed...",
3013
+ "message": "Processing marketfeed..."
3014
+ },
3015
+ {
3016
+ "type": "skeleton",
3017
+ "variant": "text"
3018
+ }
3019
+ ]
1968
3020
  }
1969
3021
  ]
1970
3022
  }
@@ -1986,33 +3038,56 @@
1986
3038
  "render-ui",
1987
3039
  "main",
1988
3040
  {
1989
- "type": "stack",
1990
- "direction": "vertical",
1991
- "gap": "lg",
1992
- "align": "center",
1993
- "children": [
3041
+ "type": "dashboard-layout",
3042
+ "appName": "Trading Dashboard",
3043
+ "navItems": [
1994
3044
  {
1995
- "type": "icon",
1996
- "name": "check-circle",
1997
- "size": "lg"
3045
+ "label": "Portfolio",
3046
+ "href": "/portfolio",
3047
+ "icon": "layout-list"
1998
3048
  },
1999
3049
  {
2000
- "type": "typography",
2001
- "content": "Market feed connected.",
2002
- "variant": "h3"
3050
+ "label": "Orders",
3051
+ "href": "/orders",
3052
+ "icon": "clipboard-list"
2003
3053
  },
3054
+ {
3055
+ "label": "Market",
3056
+ "href": "/market",
3057
+ "icon": "layout-list"
3058
+ }
3059
+ ],
3060
+ "children": [
2004
3061
  {
2005
3062
  "type": "stack",
2006
- "direction": "horizontal",
2007
- "gap": "sm",
2008
- "justify": "center",
3063
+ "direction": "vertical",
3064
+ "gap": "lg",
3065
+ "align": "center",
2009
3066
  "children": [
2010
3067
  {
2011
- "type": "button",
2012
- "label": "Reset",
2013
- "event": "RESET",
2014
- "variant": "ghost",
2015
- "icon": "rotate-ccw"
3068
+ "type": "icon",
3069
+ "name": "check-circle",
3070
+ "size": "lg"
3071
+ },
3072
+ {
3073
+ "type": "alert",
3074
+ "variant": "success",
3075
+ "message": "Market feed connected."
3076
+ },
3077
+ {
3078
+ "type": "stack",
3079
+ "direction": "horizontal",
3080
+ "gap": "sm",
3081
+ "justify": "center",
3082
+ "children": [
3083
+ {
3084
+ "type": "button",
3085
+ "label": "Reset",
3086
+ "event": "RESET",
3087
+ "variant": "ghost",
3088
+ "icon": "rotate-ccw"
3089
+ }
3090
+ ]
2016
3091
  }
2017
3092
  ]
2018
3093
  }
@@ -2034,40 +3109,59 @@
2034
3109
  "render-ui",
2035
3110
  "main",
2036
3111
  {
2037
- "type": "stack",
2038
- "direction": "vertical",
2039
- "gap": "lg",
2040
- "align": "center",
2041
- "children": [
3112
+ "type": "dashboard-layout",
3113
+ "appName": "Trading Dashboard",
3114
+ "navItems": [
2042
3115
  {
2043
- "type": "icon",
2044
- "name": "alert-circle",
2045
- "size": "lg"
3116
+ "label": "Portfolio",
3117
+ "href": "/portfolio",
3118
+ "icon": "layout-list"
2046
3119
  },
2047
3120
  {
2048
- "type": "typography",
2049
- "content": "Market feed disconnected.",
2050
- "variant": "h3"
3121
+ "label": "Orders",
3122
+ "href": "/orders",
3123
+ "icon": "clipboard-list"
2051
3124
  },
3125
+ {
3126
+ "label": "Market",
3127
+ "href": "/market",
3128
+ "icon": "layout-list"
3129
+ }
3130
+ ],
3131
+ "children": [
2052
3132
  {
2053
3133
  "type": "stack",
2054
- "direction": "horizontal",
2055
- "gap": "sm",
2056
- "justify": "center",
3134
+ "direction": "vertical",
3135
+ "gap": "lg",
3136
+ "align": "center",
2057
3137
  "children": [
2058
3138
  {
2059
- "type": "button",
2060
- "label": "Retry",
2061
- "event": "RETRY",
2062
- "variant": "primary",
2063
- "icon": "refresh-cw"
3139
+ "type": "error-state",
3140
+ "title": "Operation Failed",
3141
+ "message": "Market feed disconnected.",
3142
+ "onRetry": "RETRY"
2064
3143
  },
2065
3144
  {
2066
- "type": "button",
2067
- "label": "Reset",
2068
- "event": "RESET",
2069
- "variant": "ghost",
2070
- "icon": "rotate-ccw"
3145
+ "type": "stack",
3146
+ "direction": "horizontal",
3147
+ "gap": "sm",
3148
+ "justify": "center",
3149
+ "children": [
3150
+ {
3151
+ "type": "button",
3152
+ "label": "Retry",
3153
+ "event": "RETRY",
3154
+ "variant": "primary",
3155
+ "icon": "refresh-cw"
3156
+ },
3157
+ {
3158
+ "type": "button",
3159
+ "label": "Reset",
3160
+ "event": "RESET",
3161
+ "variant": "ghost",
3162
+ "icon": "rotate-ccw"
3163
+ }
3164
+ ]
2071
3165
  }
2072
3166
  ]
2073
3167
  }
@@ -2085,38 +3179,67 @@
2085
3179
  "render-ui",
2086
3180
  "main",
2087
3181
  {
2088
- "type": "stack",
2089
- "direction": "vertical",
2090
- "gap": "lg",
2091
- "align": "center",
3182
+ "type": "dashboard-layout",
3183
+ "appName": "Trading Dashboard",
3184
+ "navItems": [
3185
+ {
3186
+ "label": "Portfolio",
3187
+ "href": "/portfolio",
3188
+ "icon": "layout-list"
3189
+ },
3190
+ {
3191
+ "label": "Orders",
3192
+ "href": "/orders",
3193
+ "icon": "clipboard-list"
3194
+ },
3195
+ {
3196
+ "label": "Market",
3197
+ "href": "/market",
3198
+ "icon": "layout-list"
3199
+ }
3200
+ ],
2092
3201
  "children": [
2093
3202
  {
2094
3203
  "type": "stack",
2095
- "direction": "horizontal",
2096
- "gap": "md",
3204
+ "direction": "vertical",
3205
+ "gap": "lg",
2097
3206
  "align": "center",
2098
3207
  "children": [
2099
3208
  {
2100
- "type": "icon",
2101
- "name": "activity",
2102
- "size": "lg"
3209
+ "type": "stack",
3210
+ "direction": "horizontal",
3211
+ "gap": "md",
3212
+ "align": "center",
3213
+ "children": [
3214
+ {
3215
+ "type": "icon",
3216
+ "name": "activity",
3217
+ "size": "lg"
3218
+ },
3219
+ {
3220
+ "type": "typography",
3221
+ "content": "MarketFeed",
3222
+ "variant": "h2"
3223
+ }
3224
+ ]
3225
+ },
3226
+ {
3227
+ "type": "divider"
2103
3228
  },
2104
3229
  {
2105
3230
  "type": "typography",
2106
- "content": "MarketFeed",
2107
- "variant": "h2"
3231
+ "variant": "body",
3232
+ "color": "muted",
3233
+ "content": "Ready to start marketfeed operation."
3234
+ },
3235
+ {
3236
+ "type": "button",
3237
+ "label": "Start",
3238
+ "event": "START",
3239
+ "variant": "primary",
3240
+ "icon": "play"
2108
3241
  }
2109
3242
  ]
2110
- },
2111
- {
2112
- "type": "divider"
2113
- },
2114
- {
2115
- "type": "button",
2116
- "label": "Start",
2117
- "event": "START",
2118
- "variant": "primary",
2119
- "icon": "play"
2120
3243
  }
2121
3244
  ]
2122
3245
  }
@@ -2132,38 +3255,67 @@
2132
3255
  "render-ui",
2133
3256
  "main",
2134
3257
  {
2135
- "type": "stack",
2136
- "direction": "vertical",
2137
- "gap": "lg",
2138
- "align": "center",
3258
+ "type": "dashboard-layout",
3259
+ "appName": "Trading Dashboard",
3260
+ "navItems": [
3261
+ {
3262
+ "label": "Portfolio",
3263
+ "href": "/portfolio",
3264
+ "icon": "layout-list"
3265
+ },
3266
+ {
3267
+ "label": "Orders",
3268
+ "href": "/orders",
3269
+ "icon": "clipboard-list"
3270
+ },
3271
+ {
3272
+ "label": "Market",
3273
+ "href": "/market",
3274
+ "icon": "layout-list"
3275
+ }
3276
+ ],
2139
3277
  "children": [
2140
3278
  {
2141
3279
  "type": "stack",
2142
- "direction": "horizontal",
2143
- "gap": "md",
3280
+ "direction": "vertical",
3281
+ "gap": "lg",
2144
3282
  "align": "center",
2145
3283
  "children": [
2146
3284
  {
2147
- "type": "icon",
2148
- "name": "activity",
2149
- "size": "lg"
3285
+ "type": "stack",
3286
+ "direction": "horizontal",
3287
+ "gap": "md",
3288
+ "align": "center",
3289
+ "children": [
3290
+ {
3291
+ "type": "icon",
3292
+ "name": "activity",
3293
+ "size": "lg"
3294
+ },
3295
+ {
3296
+ "type": "typography",
3297
+ "content": "MarketFeed",
3298
+ "variant": "h2"
3299
+ }
3300
+ ]
3301
+ },
3302
+ {
3303
+ "type": "divider"
2150
3304
  },
2151
3305
  {
2152
3306
  "type": "typography",
2153
- "content": "MarketFeed",
2154
- "variant": "h2"
3307
+ "variant": "body",
3308
+ "color": "muted",
3309
+ "content": "Ready to start marketfeed operation."
3310
+ },
3311
+ {
3312
+ "type": "button",
3313
+ "label": "Start",
3314
+ "event": "START",
3315
+ "variant": "primary",
3316
+ "icon": "play"
2155
3317
  }
2156
3318
  ]
2157
- },
2158
- {
2159
- "type": "divider"
2160
- },
2161
- {
2162
- "type": "button",
2163
- "label": "Start",
2164
- "event": "START",
2165
- "variant": "primary",
2166
- "icon": "play"
2167
3319
  }
2168
3320
  ]
2169
3321
  }
@@ -2179,20 +3331,42 @@
2179
3331
  "render-ui",
2180
3332
  "main",
2181
3333
  {
2182
- "type": "stack",
2183
- "direction": "vertical",
2184
- "gap": "lg",
2185
- "align": "center",
2186
- "children": [
3334
+ "type": "dashboard-layout",
3335
+ "appName": "Trading Dashboard",
3336
+ "navItems": [
2187
3337
  {
2188
- "type": "icon",
2189
- "name": "loader",
2190
- "size": "lg"
3338
+ "label": "Portfolio",
3339
+ "href": "/portfolio",
3340
+ "icon": "layout-list"
2191
3341
  },
2192
3342
  {
2193
- "type": "typography",
2194
- "content": "Connecting to market feed...",
2195
- "variant": "h3"
3343
+ "label": "Orders",
3344
+ "href": "/orders",
3345
+ "icon": "clipboard-list"
3346
+ },
3347
+ {
3348
+ "label": "Market",
3349
+ "href": "/market",
3350
+ "icon": "layout-list"
3351
+ }
3352
+ ],
3353
+ "children": [
3354
+ {
3355
+ "type": "stack",
3356
+ "direction": "vertical",
3357
+ "gap": "lg",
3358
+ "align": "center",
3359
+ "children": [
3360
+ {
3361
+ "type": "loading-state",
3362
+ "title": "Connecting to market feed...",
3363
+ "message": "Processing marketfeed..."
3364
+ },
3365
+ {
3366
+ "type": "skeleton",
3367
+ "variant": "text"
3368
+ }
3369
+ ]
2196
3370
  }
2197
3371
  ]
2198
3372
  }