@almadar/std 7.4.7 → 7.4.8

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 (297) hide show
  1. package/behaviors/registry/atoms/std-agent-activity-log.orb +45 -45
  2. package/behaviors/registry/atoms/std-agent-chat-thread.orb +161 -161
  3. package/behaviors/registry/atoms/std-agent-classifier.orb +98 -98
  4. package/behaviors/registry/atoms/std-agent-completion.orb +92 -92
  5. package/behaviors/registry/atoms/std-agent-context-window.orb +366 -366
  6. package/behaviors/registry/atoms/std-agent-conversation.orb +155 -155
  7. package/behaviors/registry/atoms/std-agent-memory.orb +72 -72
  8. package/behaviors/registry/atoms/std-agent-provider.orb +106 -106
  9. package/behaviors/registry/atoms/std-agent-search.orb +38 -38
  10. package/behaviors/registry/atoms/std-agent-session.orb +70 -70
  11. package/behaviors/registry/atoms/std-agent-step-progress.orb +175 -175
  12. package/behaviors/registry/atoms/std-agent-token-gauge.orb +342 -342
  13. package/behaviors/registry/atoms/std-agent-tool-call.orb +68 -68
  14. package/behaviors/registry/atoms/std-async.orb +224 -132
  15. package/behaviors/registry/atoms/std-autoregressive.orb +60 -60
  16. package/behaviors/registry/atoms/std-browse.orb +59 -59
  17. package/behaviors/registry/atoms/std-cache-aside.orb +322 -306
  18. package/behaviors/registry/atoms/std-calendar.orb +166 -166
  19. package/behaviors/registry/atoms/std-circuit-breaker.orb +196 -196
  20. package/behaviors/registry/atoms/std-collision.orb +133 -133
  21. package/behaviors/registry/atoms/std-combat-log.orb +9 -9
  22. package/behaviors/registry/atoms/std-combat.orb +63 -63
  23. package/behaviors/registry/atoms/std-confirmation.orb +21 -21
  24. package/behaviors/registry/atoms/std-dialogue-box.orb +22 -22
  25. package/behaviors/registry/atoms/std-display.orb +366 -366
  26. package/behaviors/registry/atoms/std-drawer.orb +119 -119
  27. package/behaviors/registry/atoms/std-filter.orb +94 -94
  28. package/behaviors/registry/atoms/std-flip-card.orb +145 -145
  29. package/behaviors/registry/atoms/std-gallery.orb +51 -51
  30. package/behaviors/registry/atoms/std-game-audio.orb +88 -88
  31. package/behaviors/registry/atoms/std-game-canvas2d.orb +39 -39
  32. package/behaviors/registry/atoms/std-game-canvas3d.orb +50 -50
  33. package/behaviors/registry/atoms/std-game-hud.orb +15 -15
  34. package/behaviors/registry/atoms/std-game-menu.orb +21 -21
  35. package/behaviors/registry/atoms/std-game-over-screen.orb +17 -17
  36. package/behaviors/registry/atoms/std-gameflow.orb +44 -44
  37. package/behaviors/registry/atoms/std-input.orb +107 -107
  38. package/behaviors/registry/atoms/std-inventory-panel.orb +26 -26
  39. package/behaviors/registry/atoms/std-isometric-canvas.orb +54 -54
  40. package/behaviors/registry/atoms/std-loading.orb +82 -82
  41. package/behaviors/registry/atoms/std-modal.orb +11 -11
  42. package/behaviors/registry/atoms/std-movement.orb +285 -285
  43. package/behaviors/registry/atoms/std-notification.orb +60 -60
  44. package/behaviors/registry/atoms/std-overworld.orb +111 -111
  45. package/behaviors/registry/atoms/std-pagination.orb +45 -45
  46. package/behaviors/registry/atoms/std-physics2d.orb +77 -77
  47. package/behaviors/registry/atoms/std-platformer-canvas.orb +26 -26
  48. package/behaviors/registry/atoms/std-push.orb +44 -44
  49. package/behaviors/registry/atoms/std-quest.orb +314 -314
  50. package/behaviors/registry/atoms/std-rate-limiter.orb +199 -199
  51. package/behaviors/registry/atoms/std-rating.orb +45 -45
  52. package/behaviors/registry/atoms/std-related.orb +38 -38
  53. package/behaviors/registry/atoms/std-score-board.orb +11 -11
  54. package/behaviors/registry/atoms/std-score.orb +125 -125
  55. package/behaviors/registry/atoms/std-search.orb +77 -77
  56. package/behaviors/registry/atoms/std-selection.orb +184 -184
  57. package/behaviors/registry/atoms/std-service-custom-bearer.orb +80 -80
  58. package/behaviors/registry/atoms/std-service-custom-header.orb +80 -80
  59. package/behaviors/registry/atoms/std-service-custom-noauth.orb +72 -72
  60. package/behaviors/registry/atoms/std-service-custom-query.orb +66 -66
  61. package/behaviors/registry/atoms/std-service-email.orb +88 -88
  62. package/behaviors/registry/atoms/std-service-github.orb +88 -88
  63. package/behaviors/registry/atoms/std-service-llm.orb +110 -110
  64. package/behaviors/registry/atoms/std-service-oauth.orb +125 -125
  65. package/behaviors/registry/atoms/std-service-redis.orb +87 -87
  66. package/behaviors/registry/atoms/std-service-storage.orb +101 -101
  67. package/behaviors/registry/atoms/std-service-stripe.orb +99 -99
  68. package/behaviors/registry/atoms/std-service-twilio.orb +103 -103
  69. package/behaviors/registry/atoms/std-service-youtube.orb +111 -111
  70. package/behaviors/registry/atoms/std-simulation-canvas.orb +21 -21
  71. package/behaviors/registry/atoms/std-sort.orb +198 -198
  72. package/behaviors/registry/atoms/std-sprite.orb +54 -54
  73. package/behaviors/registry/atoms/std-tabs.orb +47 -47
  74. package/behaviors/registry/atoms/std-text-effects.orb +125 -125
  75. package/behaviors/registry/atoms/std-theme.orb +114 -114
  76. package/behaviors/registry/atoms/std-timer.orb +298 -298
  77. package/behaviors/registry/atoms/std-undo.orb +186 -186
  78. package/behaviors/registry/atoms/std-upload.orb +88 -88
  79. package/behaviors/registry/atoms/std-validate-on-save.orb +60 -60
  80. package/behaviors/registry/atoms/std-wizard.orb +261 -261
  81. package/behaviors/registry/molecules/std-agent-fix-loop.orb +167 -167
  82. package/behaviors/registry/molecules/std-agent-learner.orb +180 -180
  83. package/behaviors/registry/molecules/std-agent-planner.orb +136 -136
  84. package/behaviors/registry/molecules/std-agent-rag.orb +106 -106
  85. package/behaviors/registry/molecules/std-agent-tool-loop.orb +196 -196
  86. package/behaviors/registry/molecules/std-batch-selected-list.orb +9 -9
  87. package/behaviors/registry/molecules/std-builder-game.orb +20 -20
  88. package/behaviors/registry/molecules/std-calendar-booking.orb +1 -1
  89. package/behaviors/registry/molecules/std-cart.orb +47 -47
  90. package/behaviors/registry/molecules/std-classifier-game.orb +16 -16
  91. package/behaviors/registry/molecules/std-dashboard-tabbed.orb +7 -7
  92. package/behaviors/registry/molecules/std-debugger-game.orb +13 -13
  93. package/behaviors/registry/molecules/std-detail.orb +78 -78
  94. package/behaviors/registry/molecules/std-drawer-master-list.orb +6 -6
  95. package/behaviors/registry/molecules/std-event-handler-game.orb +18 -18
  96. package/behaviors/registry/molecules/std-filtered-list.orb +4 -4
  97. package/behaviors/registry/molecules/std-form-advanced.orb +134 -134
  98. package/behaviors/registry/molecules/std-gallery-filtered.orb +4 -4
  99. package/behaviors/registry/molecules/std-geospatial.orb +81 -81
  100. package/behaviors/registry/molecules/std-inventory.orb +53 -53
  101. package/behaviors/registry/molecules/std-list.orb +57 -57
  102. package/behaviors/registry/molecules/std-messaging.orb +67 -67
  103. package/behaviors/registry/molecules/std-negotiator-game.orb +17 -17
  104. package/behaviors/registry/molecules/std-platformer-game.orb +67 -67
  105. package/behaviors/registry/molecules/std-push-activity-log.orb +3 -3
  106. package/behaviors/registry/molecules/std-puzzle-game.orb +45 -45
  107. package/behaviors/registry/molecules/std-quiz.orb +204 -204
  108. package/behaviors/registry/molecules/std-related-master-detail.orb +1 -1
  109. package/behaviors/registry/molecules/std-sequencer-game.orb +19 -19
  110. package/behaviors/registry/molecules/std-service-content-pipeline.orb +152 -152
  111. package/behaviors/registry/molecules/std-service-custom-api-tester.orb +128 -128
  112. package/behaviors/registry/molecules/std-service-devops-toolkit.orb +250 -250
  113. package/behaviors/registry/molecules/std-service-notification-hub.orb +120 -120
  114. package/behaviors/registry/molecules/std-service-payment-flow.orb +111 -111
  115. package/behaviors/registry/molecules/std-simulator-game.orb +18 -18
  116. package/behaviors/registry/molecules/std-turn-based-battle.orb +50 -50
  117. package/behaviors/registry/organisms/std-agent-assistant.orb +1233 -1233
  118. package/behaviors/registry/organisms/std-agent-builder.orb +2951 -2951
  119. package/behaviors/registry/organisms/std-agent-pipeline.orb +2046 -2046
  120. package/behaviors/registry/organisms/std-agent-reviewer.orb +960 -960
  121. package/behaviors/registry/organisms/std-agent-tutor.orb +892 -892
  122. package/behaviors/registry/organisms/std-api-gateway.orb +808 -808
  123. package/behaviors/registry/organisms/std-arcade-game.orb +131 -131
  124. package/behaviors/registry/organisms/std-booking-system.orb +1178 -1178
  125. package/behaviors/registry/organisms/std-cicd-pipeline.orb +744 -744
  126. package/behaviors/registry/organisms/std-cms.orb +393 -393
  127. package/behaviors/registry/organisms/std-coding-academy.orb +397 -397
  128. package/behaviors/registry/organisms/std-crm.orb +751 -751
  129. package/behaviors/registry/organisms/std-devops-dashboard.orb +1405 -1405
  130. package/behaviors/registry/organisms/std-ecommerce.orb +858 -858
  131. package/behaviors/registry/organisms/std-finance-tracker.orb +597 -597
  132. package/behaviors/registry/organisms/std-healthcare.orb +1329 -1329
  133. package/behaviors/registry/organisms/std-helpdesk.orb +635 -635
  134. package/behaviors/registry/organisms/std-hr-portal.orb +1149 -1149
  135. package/behaviors/registry/organisms/std-iot-dashboard.orb +824 -824
  136. package/behaviors/registry/organisms/std-lms.orb +834 -834
  137. package/behaviors/registry/organisms/std-logic-training.orb +73 -73
  138. package/behaviors/registry/organisms/std-platformer-app.orb +209 -209
  139. package/behaviors/registry/organisms/std-project-manager.orb +661 -661
  140. package/behaviors/registry/organisms/std-puzzle-app.orb +97 -97
  141. package/behaviors/registry/organisms/std-realtime-chat.orb +670 -670
  142. package/behaviors/registry/organisms/std-rpg-game.orb +630 -630
  143. package/behaviors/registry/organisms/std-service-marketplace.orb +871 -871
  144. package/behaviors/registry/organisms/std-service-research-assistant.orb +916 -916
  145. package/behaviors/registry/organisms/std-social-feed.orb +188 -188
  146. package/behaviors/registry/organisms/std-stem-lab.orb +374 -374
  147. package/behaviors/registry/organisms/std-strategy-game.orb +472 -472
  148. package/behaviors/registry/organisms/std-trading-dashboard.orb +711 -711
  149. package/dist/behaviors/registry/atoms/std-agent-activity-log.orb +45 -45
  150. package/dist/behaviors/registry/atoms/std-agent-chat-thread.orb +161 -161
  151. package/dist/behaviors/registry/atoms/std-agent-classifier.orb +98 -98
  152. package/dist/behaviors/registry/atoms/std-agent-completion.orb +92 -92
  153. package/dist/behaviors/registry/atoms/std-agent-context-window.orb +366 -366
  154. package/dist/behaviors/registry/atoms/std-agent-conversation.orb +155 -155
  155. package/dist/behaviors/registry/atoms/std-agent-memory.orb +72 -72
  156. package/dist/behaviors/registry/atoms/std-agent-provider.orb +106 -106
  157. package/dist/behaviors/registry/atoms/std-agent-search.orb +38 -38
  158. package/dist/behaviors/registry/atoms/std-agent-session.orb +70 -70
  159. package/dist/behaviors/registry/atoms/std-agent-step-progress.orb +175 -175
  160. package/dist/behaviors/registry/atoms/std-agent-token-gauge.orb +342 -342
  161. package/dist/behaviors/registry/atoms/std-agent-tool-call.orb +68 -68
  162. package/dist/behaviors/registry/atoms/std-async.orb +224 -132
  163. package/dist/behaviors/registry/atoms/std-autoregressive.orb +60 -60
  164. package/dist/behaviors/registry/atoms/std-browse.orb +59 -59
  165. package/dist/behaviors/registry/atoms/std-cache-aside.orb +322 -306
  166. package/dist/behaviors/registry/atoms/std-calendar.orb +166 -166
  167. package/dist/behaviors/registry/atoms/std-circuit-breaker.orb +196 -196
  168. package/dist/behaviors/registry/atoms/std-collision.orb +133 -133
  169. package/dist/behaviors/registry/atoms/std-combat-log.orb +9 -9
  170. package/dist/behaviors/registry/atoms/std-combat.orb +63 -63
  171. package/dist/behaviors/registry/atoms/std-confirmation.orb +21 -21
  172. package/dist/behaviors/registry/atoms/std-dialogue-box.orb +22 -22
  173. package/dist/behaviors/registry/atoms/std-display.orb +366 -366
  174. package/dist/behaviors/registry/atoms/std-drawer.orb +119 -119
  175. package/dist/behaviors/registry/atoms/std-filter.orb +94 -94
  176. package/dist/behaviors/registry/atoms/std-flip-card.orb +145 -145
  177. package/dist/behaviors/registry/atoms/std-gallery.orb +51 -51
  178. package/dist/behaviors/registry/atoms/std-game-audio.orb +88 -88
  179. package/dist/behaviors/registry/atoms/std-game-canvas2d.orb +39 -39
  180. package/dist/behaviors/registry/atoms/std-game-canvas3d.orb +50 -50
  181. package/dist/behaviors/registry/atoms/std-game-hud.orb +15 -15
  182. package/dist/behaviors/registry/atoms/std-game-menu.orb +21 -21
  183. package/dist/behaviors/registry/atoms/std-game-over-screen.orb +17 -17
  184. package/dist/behaviors/registry/atoms/std-gameflow.orb +44 -44
  185. package/dist/behaviors/registry/atoms/std-input.orb +107 -107
  186. package/dist/behaviors/registry/atoms/std-inventory-panel.orb +26 -26
  187. package/dist/behaviors/registry/atoms/std-isometric-canvas.orb +54 -54
  188. package/dist/behaviors/registry/atoms/std-loading.orb +82 -82
  189. package/dist/behaviors/registry/atoms/std-modal.orb +11 -11
  190. package/dist/behaviors/registry/atoms/std-movement.orb +285 -285
  191. package/dist/behaviors/registry/atoms/std-notification.orb +60 -60
  192. package/dist/behaviors/registry/atoms/std-overworld.orb +111 -111
  193. package/dist/behaviors/registry/atoms/std-pagination.orb +45 -45
  194. package/dist/behaviors/registry/atoms/std-physics2d.orb +77 -77
  195. package/dist/behaviors/registry/atoms/std-platformer-canvas.orb +26 -26
  196. package/dist/behaviors/registry/atoms/std-push.orb +44 -44
  197. package/dist/behaviors/registry/atoms/std-quest.orb +314 -314
  198. package/dist/behaviors/registry/atoms/std-rate-limiter.orb +199 -199
  199. package/dist/behaviors/registry/atoms/std-rating.orb +45 -45
  200. package/dist/behaviors/registry/atoms/std-related.orb +38 -38
  201. package/dist/behaviors/registry/atoms/std-score-board.orb +11 -11
  202. package/dist/behaviors/registry/atoms/std-score.orb +125 -125
  203. package/dist/behaviors/registry/atoms/std-search.orb +77 -77
  204. package/dist/behaviors/registry/atoms/std-selection.orb +184 -184
  205. package/dist/behaviors/registry/atoms/std-service-custom-bearer.orb +80 -80
  206. package/dist/behaviors/registry/atoms/std-service-custom-header.orb +80 -80
  207. package/dist/behaviors/registry/atoms/std-service-custom-noauth.orb +72 -72
  208. package/dist/behaviors/registry/atoms/std-service-custom-query.orb +66 -66
  209. package/dist/behaviors/registry/atoms/std-service-email.orb +88 -88
  210. package/dist/behaviors/registry/atoms/std-service-github.orb +88 -88
  211. package/dist/behaviors/registry/atoms/std-service-llm.orb +110 -110
  212. package/dist/behaviors/registry/atoms/std-service-oauth.orb +125 -125
  213. package/dist/behaviors/registry/atoms/std-service-redis.orb +87 -87
  214. package/dist/behaviors/registry/atoms/std-service-storage.orb +101 -101
  215. package/dist/behaviors/registry/atoms/std-service-stripe.orb +99 -99
  216. package/dist/behaviors/registry/atoms/std-service-twilio.orb +103 -103
  217. package/dist/behaviors/registry/atoms/std-service-youtube.orb +111 -111
  218. package/dist/behaviors/registry/atoms/std-simulation-canvas.orb +21 -21
  219. package/dist/behaviors/registry/atoms/std-sort.orb +198 -198
  220. package/dist/behaviors/registry/atoms/std-sprite.orb +54 -54
  221. package/dist/behaviors/registry/atoms/std-tabs.orb +47 -47
  222. package/dist/behaviors/registry/atoms/std-text-effects.orb +125 -125
  223. package/dist/behaviors/registry/atoms/std-theme.orb +114 -114
  224. package/dist/behaviors/registry/atoms/std-timer.orb +298 -298
  225. package/dist/behaviors/registry/atoms/std-undo.orb +186 -186
  226. package/dist/behaviors/registry/atoms/std-upload.orb +88 -88
  227. package/dist/behaviors/registry/atoms/std-validate-on-save.orb +60 -60
  228. package/dist/behaviors/registry/atoms/std-wizard.orb +261 -261
  229. package/dist/behaviors/registry/molecules/std-agent-fix-loop.orb +167 -167
  230. package/dist/behaviors/registry/molecules/std-agent-learner.orb +180 -180
  231. package/dist/behaviors/registry/molecules/std-agent-planner.orb +136 -136
  232. package/dist/behaviors/registry/molecules/std-agent-rag.orb +106 -106
  233. package/dist/behaviors/registry/molecules/std-agent-tool-loop.orb +196 -196
  234. package/dist/behaviors/registry/molecules/std-batch-selected-list.orb +9 -9
  235. package/dist/behaviors/registry/molecules/std-builder-game.orb +20 -20
  236. package/dist/behaviors/registry/molecules/std-calendar-booking.orb +1 -1
  237. package/dist/behaviors/registry/molecules/std-cart.orb +47 -47
  238. package/dist/behaviors/registry/molecules/std-classifier-game.orb +16 -16
  239. package/dist/behaviors/registry/molecules/std-dashboard-tabbed.orb +7 -7
  240. package/dist/behaviors/registry/molecules/std-debugger-game.orb +13 -13
  241. package/dist/behaviors/registry/molecules/std-detail.orb +78 -78
  242. package/dist/behaviors/registry/molecules/std-drawer-master-list.orb +6 -6
  243. package/dist/behaviors/registry/molecules/std-event-handler-game.orb +18 -18
  244. package/dist/behaviors/registry/molecules/std-filtered-list.orb +4 -4
  245. package/dist/behaviors/registry/molecules/std-form-advanced.orb +134 -134
  246. package/dist/behaviors/registry/molecules/std-gallery-filtered.orb +4 -4
  247. package/dist/behaviors/registry/molecules/std-geospatial.orb +81 -81
  248. package/dist/behaviors/registry/molecules/std-inventory.orb +53 -53
  249. package/dist/behaviors/registry/molecules/std-list.orb +57 -57
  250. package/dist/behaviors/registry/molecules/std-messaging.orb +67 -67
  251. package/dist/behaviors/registry/molecules/std-negotiator-game.orb +17 -17
  252. package/dist/behaviors/registry/molecules/std-platformer-game.orb +67 -67
  253. package/dist/behaviors/registry/molecules/std-push-activity-log.orb +3 -3
  254. package/dist/behaviors/registry/molecules/std-puzzle-game.orb +45 -45
  255. package/dist/behaviors/registry/molecules/std-quiz.orb +204 -204
  256. package/dist/behaviors/registry/molecules/std-related-master-detail.orb +1 -1
  257. package/dist/behaviors/registry/molecules/std-sequencer-game.orb +19 -19
  258. package/dist/behaviors/registry/molecules/std-service-content-pipeline.orb +152 -152
  259. package/dist/behaviors/registry/molecules/std-service-custom-api-tester.orb +128 -128
  260. package/dist/behaviors/registry/molecules/std-service-devops-toolkit.orb +250 -250
  261. package/dist/behaviors/registry/molecules/std-service-notification-hub.orb +120 -120
  262. package/dist/behaviors/registry/molecules/std-service-payment-flow.orb +111 -111
  263. package/dist/behaviors/registry/molecules/std-simulator-game.orb +18 -18
  264. package/dist/behaviors/registry/molecules/std-turn-based-battle.orb +50 -50
  265. package/dist/behaviors/registry/organisms/std-agent-assistant.orb +1233 -1233
  266. package/dist/behaviors/registry/organisms/std-agent-builder.orb +2951 -2951
  267. package/dist/behaviors/registry/organisms/std-agent-pipeline.orb +2046 -2046
  268. package/dist/behaviors/registry/organisms/std-agent-reviewer.orb +960 -960
  269. package/dist/behaviors/registry/organisms/std-agent-tutor.orb +892 -892
  270. package/dist/behaviors/registry/organisms/std-api-gateway.orb +808 -808
  271. package/dist/behaviors/registry/organisms/std-arcade-game.orb +131 -131
  272. package/dist/behaviors/registry/organisms/std-booking-system.orb +1178 -1178
  273. package/dist/behaviors/registry/organisms/std-cicd-pipeline.orb +744 -744
  274. package/dist/behaviors/registry/organisms/std-cms.orb +393 -393
  275. package/dist/behaviors/registry/organisms/std-coding-academy.orb +397 -397
  276. package/dist/behaviors/registry/organisms/std-crm.orb +751 -751
  277. package/dist/behaviors/registry/organisms/std-devops-dashboard.orb +1405 -1405
  278. package/dist/behaviors/registry/organisms/std-ecommerce.orb +858 -858
  279. package/dist/behaviors/registry/organisms/std-finance-tracker.orb +597 -597
  280. package/dist/behaviors/registry/organisms/std-healthcare.orb +1329 -1329
  281. package/dist/behaviors/registry/organisms/std-helpdesk.orb +635 -635
  282. package/dist/behaviors/registry/organisms/std-hr-portal.orb +1149 -1149
  283. package/dist/behaviors/registry/organisms/std-iot-dashboard.orb +824 -824
  284. package/dist/behaviors/registry/organisms/std-lms.orb +834 -834
  285. package/dist/behaviors/registry/organisms/std-logic-training.orb +73 -73
  286. package/dist/behaviors/registry/organisms/std-platformer-app.orb +209 -209
  287. package/dist/behaviors/registry/organisms/std-project-manager.orb +661 -661
  288. package/dist/behaviors/registry/organisms/std-puzzle-app.orb +97 -97
  289. package/dist/behaviors/registry/organisms/std-realtime-chat.orb +670 -670
  290. package/dist/behaviors/registry/organisms/std-rpg-game.orb +630 -630
  291. package/dist/behaviors/registry/organisms/std-service-marketplace.orb +871 -871
  292. package/dist/behaviors/registry/organisms/std-service-research-assistant.orb +916 -916
  293. package/dist/behaviors/registry/organisms/std-social-feed.orb +188 -188
  294. package/dist/behaviors/registry/organisms/std-stem-lab.orb +374 -374
  295. package/dist/behaviors/registry/organisms/std-strategy-game.orb +472 -472
  296. package/dist/behaviors/registry/organisms/std-trading-dashboard.orb +711 -711
  297. package/package.json +1 -1
@@ -163,8 +163,8 @@
163
163
  "SensorReading",
164
164
  {
165
165
  "emit": {
166
- "success": "SensorReadingLoaded",
167
- "failure": "SensorReadingLoadFailed"
166
+ "failure": "SensorReadingLoadFailed",
167
+ "success": "SensorReadingLoaded"
168
168
  }
169
169
  }
170
170
  ],
@@ -172,32 +172,47 @@
172
172
  "render-ui",
173
173
  "main",
174
174
  {
175
+ "type": "dashboard-layout",
176
+ "navItems": [
177
+ {
178
+ "icon": "layout-list",
179
+ "href": "/sensors",
180
+ "label": "Sensors"
181
+ },
182
+ {
183
+ "label": "Devices",
184
+ "icon": "cpu",
185
+ "href": "/devices"
186
+ },
187
+ {
188
+ "label": "Alerts",
189
+ "icon": "bell",
190
+ "href": "/alerts"
191
+ }
192
+ ],
193
+ "appName": "IoT Dashboard",
175
194
  "children": [
176
195
  {
196
+ "type": "scaled-diagram",
177
197
  "children": [
178
198
  {
179
- "type": "stack",
180
- "direction": "vertical",
181
- "gap": "lg",
182
199
  "children": [
183
200
  {
201
+ "type": "breadcrumb",
184
202
  "items": [
185
203
  {
186
- "label": "Home",
187
- "href": "/"
204
+ "href": "/",
205
+ "label": "Home"
188
206
  },
189
207
  {
190
208
  "label": "Sensor Readings"
191
209
  }
192
- ],
193
- "type": "breadcrumb"
210
+ ]
194
211
  },
195
212
  {
196
213
  "direction": "horizontal",
197
- "type": "stack",
198
214
  "children": [
199
215
  {
200
- "direction": "horizontal",
201
216
  "children": [
202
217
  {
203
218
  "name": "thermometer",
@@ -209,17 +224,19 @@
209
224
  "variant": "h2"
210
225
  }
211
226
  ],
212
- "gap": "md",
213
- "type": "stack"
227
+ "direction": "horizontal",
228
+ "type": "stack",
229
+ "gap": "md"
214
230
  },
215
231
  {
216
232
  "label": "Refresh",
217
- "action": "REFRESH",
218
233
  "icon": "refresh-cw",
234
+ "action": "REFRESH",
219
235
  "type": "button",
220
236
  "variant": "secondary"
221
237
  }
222
238
  ],
239
+ "type": "stack",
223
240
  "justify": "between",
224
241
  "gap": "md"
225
242
  },
@@ -228,17 +245,13 @@
228
245
  },
229
246
  {
230
247
  "type": "box",
231
- "padding": "md",
232
248
  "children": [
233
249
  {
234
- "cols": 3.0,
235
250
  "children": [
236
251
  {
237
- "type": "card",
238
252
  "children": [
239
253
  {
240
- "type": "stack",
241
- "direction": "vertical",
254
+ "gap": "sm",
242
255
  "children": [
243
256
  {
244
257
  "type": "typography",
@@ -246,7 +259,6 @@
246
259
  "variant": "caption"
247
260
  },
248
261
  {
249
- "variant": "h3",
250
262
  "content": [
251
263
  "object/get",
252
264
  [
@@ -255,12 +267,15 @@
255
267
  ],
256
268
  "sensorId"
257
269
  ],
258
- "type": "typography"
270
+ "type": "typography",
271
+ "variant": "h3"
259
272
  }
260
273
  ],
261
- "gap": "sm"
274
+ "direction": "vertical",
275
+ "type": "stack"
262
276
  }
263
- ]
277
+ ],
278
+ "type": "card"
264
279
  },
265
280
  {
266
281
  "value": [
@@ -271,19 +286,18 @@
271
286
  ],
272
287
  "value"
273
288
  ],
274
- "label": "Value",
275
- "type": "stat-display"
289
+ "type": "stat-display",
290
+ "label": "Value"
276
291
  },
277
292
  {
293
+ "type": "card",
278
294
  "children": [
279
295
  {
280
- "type": "stack",
281
- "gap": "sm",
282
296
  "children": [
283
297
  {
298
+ "content": "Unit",
284
299
  "type": "typography",
285
- "variant": "caption",
286
- "content": "Unit"
300
+ "variant": "caption"
287
301
  },
288
302
  {
289
303
  "type": "typography",
@@ -298,25 +312,24 @@
298
312
  ]
299
313
  }
300
314
  ],
315
+ "type": "stack",
316
+ "gap": "sm",
301
317
  "direction": "vertical"
302
318
  }
303
- ],
304
- "type": "card"
319
+ ]
305
320
  },
306
321
  {
307
322
  "children": [
308
323
  {
309
- "gap": "sm",
310
- "direction": "vertical",
311
324
  "type": "stack",
325
+ "direction": "vertical",
312
326
  "children": [
313
327
  {
314
328
  "content": "Timestamp",
315
- "type": "typography",
316
- "variant": "caption"
329
+ "variant": "caption",
330
+ "type": "typography"
317
331
  },
318
332
  {
319
- "variant": "h3",
320
333
  "content": [
321
334
  "object/get",
322
335
  [
@@ -325,47 +338,51 @@
325
338
  ],
326
339
  "timestamp"
327
340
  ],
328
- "type": "typography"
341
+ "type": "typography",
342
+ "variant": "h3"
329
343
  }
330
- ]
344
+ ],
345
+ "gap": "sm"
331
346
  }
332
347
  ],
333
348
  "type": "card"
334
349
  }
335
350
  ],
351
+ "cols": 3.0,
336
352
  "type": "simple-grid"
337
353
  }
338
- ]
354
+ ],
355
+ "padding": "md"
339
356
  },
340
357
  {
341
358
  "type": "divider"
342
359
  },
343
360
  {
344
- "gap": "md",
345
- "cols": 2.0,
346
361
  "type": "grid",
347
362
  "children": [
348
363
  {
349
- "type": "card",
350
364
  "children": [
351
365
  {
352
- "variant": "caption",
353
366
  "content": "Chart View",
367
+ "variant": "caption",
354
368
  "type": "typography"
355
369
  }
356
- ]
370
+ ],
371
+ "type": "card"
357
372
  },
358
373
  {
359
374
  "children": [
360
375
  {
361
- "variant": "caption",
376
+ "content": "Graph View",
362
377
  "type": "typography",
363
- "content": "Graph View"
378
+ "variant": "caption"
364
379
  }
365
380
  ],
366
381
  "type": "card"
367
382
  }
368
- ]
383
+ ],
384
+ "cols": 2.0,
385
+ "gap": "md"
369
386
  },
370
387
  {
371
388
  "type": "line-chart",
@@ -375,41 +392,42 @@
375
392
  "value": 12.0
376
393
  },
377
394
  {
378
- "date": "Feb",
379
- "value": 19.0
395
+ "value": 19.0,
396
+ "date": "Feb"
380
397
  },
381
398
  {
382
399
  "date": "Mar",
383
400
  "value": 15.0
384
401
  },
385
402
  {
386
- "value": 25.0,
387
- "date": "Apr"
403
+ "date": "Apr",
404
+ "value": 25.0
388
405
  },
389
406
  {
390
407
  "date": "May",
391
408
  "value": 22.0
392
409
  },
393
410
  {
394
- "value": 30.0,
395
- "date": "Jun"
411
+ "date": "Jun",
412
+ "value": 30.0
396
413
  }
397
414
  ]
398
415
  },
399
416
  {
417
+ "type": "chart-legend",
400
418
  "items": [
401
419
  {
402
- "color": "primary",
403
- "label": "Current"
420
+ "label": "Current",
421
+ "color": "primary"
404
422
  },
405
423
  {
406
424
  "label": "Previous",
407
425
  "color": "muted"
408
426
  }
409
- ],
410
- "type": "chart-legend"
427
+ ]
411
428
  },
412
429
  {
430
+ "width": 400.0,
413
431
  "height": 200.0,
414
432
  "edges": [
415
433
  {
@@ -417,58 +435,40 @@
417
435
  "to": "b"
418
436
  },
419
437
  {
420
- "to": "c",
421
- "from": "b"
438
+ "from": "b",
439
+ "to": "c"
422
440
  }
423
441
  ],
424
- "type": "graph-view",
425
- "width": 400.0,
426
442
  "nodes": [
427
443
  {
444
+ "y": 100.0,
428
445
  "x": 50.0,
429
446
  "label": "Start",
430
- "id": "a",
431
- "y": 100.0
447
+ "id": "a"
432
448
  },
433
449
  {
434
- "id": "b",
435
- "label": "Process",
436
450
  "y": 50.0,
437
- "x": 200.0
451
+ "x": 200.0,
452
+ "id": "b",
453
+ "label": "Process"
438
454
  },
439
455
  {
440
- "label": "End",
456
+ "y": 100.0,
441
457
  "x": 350.0,
442
- "id": "c",
443
- "y": 100.0
458
+ "label": "End",
459
+ "id": "c"
444
460
  }
445
- ]
461
+ ],
462
+ "type": "graph-view"
446
463
  }
447
- ]
464
+ ],
465
+ "direction": "vertical",
466
+ "gap": "lg",
467
+ "type": "stack"
448
468
  }
449
- ],
450
- "type": "scaled-diagram"
451
- }
452
- ],
453
- "appName": "IoT Dashboard",
454
- "navItems": [
455
- {
456
- "label": "Sensors",
457
- "href": "/sensors",
458
- "icon": "layout-list"
459
- },
460
- {
461
- "href": "/devices",
462
- "label": "Devices",
463
- "icon": "cpu"
464
- },
465
- {
466
- "label": "Alerts",
467
- "href": "/alerts",
468
- "icon": "bell"
469
+ ]
469
470
  }
470
- ],
471
- "type": "dashboard-layout"
471
+ ]
472
472
  }
473
473
  ]
474
474
  ]
@@ -492,33 +492,15 @@
492
492
  "render-ui",
493
493
  "main",
494
494
  {
495
- "type": "dashboard-layout",
496
- "navItems": [
497
- {
498
- "label": "Sensors",
499
- "href": "/sensors",
500
- "icon": "layout-list"
501
- },
502
- {
503
- "icon": "cpu",
504
- "label": "Devices",
505
- "href": "/devices"
506
- },
507
- {
508
- "icon": "bell",
509
- "href": "/alerts",
510
- "label": "Alerts"
511
- }
512
- ],
513
495
  "appName": "IoT Dashboard",
514
496
  "children": [
515
497
  {
516
498
  "type": "scaled-diagram",
517
499
  "children": [
518
500
  {
519
- "gap": "lg",
520
501
  "children": [
521
502
  {
503
+ "type": "breadcrumb",
522
504
  "items": [
523
505
  {
524
506
  "label": "Home",
@@ -527,44 +509,45 @@
527
509
  {
528
510
  "label": "Sensor Readings"
529
511
  }
530
- ],
531
- "type": "breadcrumb"
512
+ ]
532
513
  },
533
514
  {
534
- "direction": "horizontal",
515
+ "justify": "between",
516
+ "gap": "md",
535
517
  "children": [
536
518
  {
537
- "gap": "md",
538
519
  "type": "stack",
520
+ "gap": "md",
539
521
  "children": [
540
522
  {
541
523
  "type": "icon",
542
524
  "name": "thermometer"
543
525
  },
544
526
  {
545
- "variant": "h2",
527
+ "type": "typography",
546
528
  "content": "Sensor Readings",
547
- "type": "typography"
529
+ "variant": "h2"
548
530
  }
549
531
  ],
550
532
  "direction": "horizontal"
551
533
  },
552
534
  {
553
- "action": "REFRESH",
554
535
  "icon": "refresh-cw",
536
+ "action": "REFRESH",
537
+ "label": "Refresh",
555
538
  "variant": "secondary",
556
- "type": "button",
557
- "label": "Refresh"
539
+ "type": "button"
558
540
  }
559
541
  ],
560
- "type": "stack",
561
- "justify": "between",
562
- "gap": "md"
542
+ "direction": "horizontal",
543
+ "type": "stack"
563
544
  },
564
545
  {
565
546
  "type": "divider"
566
547
  },
567
548
  {
549
+ "padding": "md",
550
+ "type": "box",
568
551
  "children": [
569
552
  {
570
553
  "type": "simple-grid",
@@ -573,14 +556,14 @@
573
556
  {
574
557
  "children": [
575
558
  {
576
- "gap": "sm",
577
559
  "children": [
578
560
  {
561
+ "variant": "caption",
579
562
  "type": "typography",
580
- "content": "SensorId",
581
- "variant": "caption"
563
+ "content": "SensorId"
582
564
  },
583
565
  {
566
+ "variant": "h3",
584
567
  "content": [
585
568
  "object/get",
586
569
  [
@@ -589,19 +572,18 @@
589
572
  ],
590
573
  "sensorId"
591
574
  ],
592
- "type": "typography",
593
- "variant": "h3"
575
+ "type": "typography"
594
576
  }
595
577
  ],
596
578
  "direction": "vertical",
597
- "type": "stack"
579
+ "type": "stack",
580
+ "gap": "sm"
598
581
  }
599
582
  ],
600
583
  "type": "card"
601
584
  },
602
585
  {
603
586
  "label": "Value",
604
- "type": "stat-display",
605
587
  "value": [
606
588
  "object/get",
607
589
  [
@@ -609,22 +591,22 @@
609
591
  "@entity"
610
592
  ],
611
593
  "value"
612
- ]
594
+ ],
595
+ "type": "stat-display"
613
596
  },
614
597
  {
598
+ "type": "card",
615
599
  "children": [
616
600
  {
601
+ "gap": "sm",
617
602
  "type": "stack",
618
- "direction": "vertical",
619
603
  "children": [
620
604
  {
621
605
  "content": "Unit",
622
- "type": "typography",
623
- "variant": "caption"
606
+ "variant": "caption",
607
+ "type": "typography"
624
608
  },
625
609
  {
626
- "type": "typography",
627
- "variant": "h3",
628
610
  "content": [
629
611
  "object/get",
630
612
  [
@@ -632,24 +614,23 @@
632
614
  "@entity"
633
615
  ],
634
616
  "unit"
635
- ]
636
- }
637
- ],
638
- "gap": "sm"
617
+ ],
618
+ "type": "typography",
619
+ "variant": "h3"
620
+ }
621
+ ],
622
+ "direction": "vertical"
639
623
  }
640
- ],
641
- "type": "card"
624
+ ]
642
625
  },
643
626
  {
644
627
  "children": [
645
628
  {
646
- "gap": "sm",
647
- "type": "stack",
648
629
  "children": [
649
630
  {
650
- "type": "typography",
651
631
  "variant": "caption",
652
- "content": "Timestamp"
632
+ "content": "Timestamp",
633
+ "type": "typography"
653
634
  },
654
635
  {
655
636
  "content": [
@@ -664,16 +645,16 @@
664
645
  "variant": "h3"
665
646
  }
666
647
  ],
667
- "direction": "vertical"
648
+ "type": "stack",
649
+ "direction": "vertical",
650
+ "gap": "sm"
668
651
  }
669
652
  ],
670
653
  "type": "card"
671
654
  }
672
655
  ]
673
656
  }
674
- ],
675
- "type": "box",
676
- "padding": "md"
657
+ ]
677
658
  },
678
659
  {
679
660
  "type": "divider"
@@ -684,21 +665,21 @@
684
665
  "gap": "md",
685
666
  "children": [
686
667
  {
668
+ "type": "card",
687
669
  "children": [
688
670
  {
689
671
  "variant": "caption",
690
672
  "type": "typography",
691
673
  "content": "Chart View"
692
674
  }
693
- ],
694
- "type": "card"
675
+ ]
695
676
  },
696
677
  {
697
678
  "children": [
698
679
  {
699
680
  "variant": "caption",
700
- "content": "Graph View",
701
- "type": "typography"
681
+ "type": "typography",
682
+ "content": "Graph View"
702
683
  }
703
684
  ],
704
685
  "type": "card"
@@ -712,12 +693,12 @@
712
693
  "date": "Jan"
713
694
  },
714
695
  {
715
- "value": 19.0,
716
- "date": "Feb"
696
+ "date": "Feb",
697
+ "value": 19.0
717
698
  },
718
699
  {
719
- "value": 15.0,
720
- "date": "Mar"
700
+ "date": "Mar",
701
+ "value": 15.0
721
702
  },
722
703
  {
723
704
  "date": "Apr",
@@ -737,8 +718,8 @@
737
718
  {
738
719
  "items": [
739
720
  {
740
- "label": "Current",
741
- "color": "primary"
721
+ "color": "primary",
722
+ "label": "Current"
742
723
  },
743
724
  {
744
725
  "label": "Previous",
@@ -748,47 +729,66 @@
748
729
  "type": "chart-legend"
749
730
  },
750
731
  {
751
- "edges": [
752
- {
753
- "to": "b",
754
- "from": "a"
755
- },
756
- {
757
- "from": "b",
758
- "to": "c"
759
- }
760
- ],
761
732
  "width": 400.0,
733
+ "type": "graph-view",
762
734
  "nodes": [
763
735
  {
764
- "x": 50.0,
765
- "label": "Start",
736
+ "id": "a",
766
737
  "y": 100.0,
767
- "id": "a"
738
+ "label": "Start",
739
+ "x": 50.0
768
740
  },
769
741
  {
770
- "y": 50.0,
771
- "id": "b",
742
+ "label": "Process",
772
743
  "x": 200.0,
773
- "label": "Process"
744
+ "y": 50.0,
745
+ "id": "b"
774
746
  },
775
747
  {
748
+ "id": "c",
776
749
  "label": "End",
777
- "x": 350.0,
778
750
  "y": 100.0,
779
- "id": "c"
751
+ "x": 350.0
752
+ }
753
+ ],
754
+ "edges": [
755
+ {
756
+ "from": "a",
757
+ "to": "b"
758
+ },
759
+ {
760
+ "to": "c",
761
+ "from": "b"
780
762
  }
781
763
  ],
782
- "type": "graph-view",
783
764
  "height": 200.0
784
765
  }
785
766
  ],
767
+ "gap": "lg",
786
768
  "direction": "vertical",
787
769
  "type": "stack"
788
770
  }
789
771
  ]
790
772
  }
791
- ]
773
+ ],
774
+ "navItems": [
775
+ {
776
+ "href": "/sensors",
777
+ "icon": "layout-list",
778
+ "label": "Sensors"
779
+ },
780
+ {
781
+ "label": "Devices",
782
+ "href": "/devices",
783
+ "icon": "cpu"
784
+ },
785
+ {
786
+ "icon": "bell",
787
+ "href": "/alerts",
788
+ "label": "Alerts"
789
+ }
790
+ ],
791
+ "type": "dashboard-layout"
792
792
  }
793
793
  ]
794
794
  ]
@@ -803,8 +803,8 @@
803
803
  "SensorReading",
804
804
  {
805
805
  "emit": {
806
- "failure": "SensorReadingLoadFailed",
807
- "success": "SensorReadingLoaded"
806
+ "success": "SensorReadingLoaded",
807
+ "failure": "SensorReadingLoadFailed"
808
808
  }
809
809
  }
810
810
  ],
@@ -812,29 +812,11 @@
812
812
  "render-ui",
813
813
  "main",
814
814
  {
815
- "navItems": [
816
- {
817
- "icon": "layout-list",
818
- "href": "/sensors",
819
- "label": "Sensors"
820
- },
821
- {
822
- "label": "Devices",
823
- "href": "/devices",
824
- "icon": "cpu"
825
- },
826
- {
827
- "href": "/alerts",
828
- "icon": "bell",
829
- "label": "Alerts"
830
- }
831
- ],
832
- "appName": "IoT Dashboard",
833
815
  "children": [
834
816
  {
817
+ "type": "scaled-diagram",
835
818
  "children": [
836
819
  {
837
- "type": "stack",
838
820
  "children": [
839
821
  {
840
822
  "type": "breadcrumb",
@@ -850,34 +832,34 @@
850
832
  },
851
833
  {
852
834
  "justify": "between",
853
- "gap": "md",
835
+ "type": "stack",
854
836
  "children": [
855
837
  {
856
- "type": "stack",
857
838
  "children": [
858
839
  {
859
- "name": "thermometer",
860
- "type": "icon"
840
+ "type": "icon",
841
+ "name": "thermometer"
861
842
  },
862
843
  {
863
844
  "type": "typography",
864
- "variant": "h2",
865
- "content": "Sensor Readings"
845
+ "content": "Sensor Readings",
846
+ "variant": "h2"
866
847
  }
867
848
  ],
868
- "gap": "md",
869
- "direction": "horizontal"
849
+ "direction": "horizontal",
850
+ "type": "stack",
851
+ "gap": "md"
870
852
  },
871
853
  {
872
- "type": "button",
854
+ "action": "REFRESH",
873
855
  "label": "Refresh",
874
856
  "variant": "secondary",
875
857
  "icon": "refresh-cw",
876
- "action": "REFRESH"
858
+ "type": "button"
877
859
  }
878
860
  ],
879
- "type": "stack",
880
- "direction": "horizontal"
861
+ "direction": "horizontal",
862
+ "gap": "md"
881
863
  },
882
864
  {
883
865
  "type": "divider"
@@ -887,18 +869,17 @@
887
869
  {
888
870
  "children": [
889
871
  {
872
+ "type": "card",
890
873
  "children": [
891
874
  {
892
- "type": "stack",
875
+ "gap": "sm",
893
876
  "children": [
894
877
  {
895
- "type": "typography",
896
878
  "variant": "caption",
897
- "content": "SensorId"
879
+ "content": "SensorId",
880
+ "type": "typography"
898
881
  },
899
882
  {
900
- "variant": "h3",
901
- "type": "typography",
902
883
  "content": [
903
884
  "object/get",
904
885
  [
@@ -906,16 +887,19 @@
906
887
  "@entity"
907
888
  ],
908
889
  "sensorId"
909
- ]
890
+ ],
891
+ "type": "typography",
892
+ "variant": "h3"
910
893
  }
911
894
  ],
912
- "direction": "vertical",
913
- "gap": "sm"
895
+ "type": "stack",
896
+ "direction": "vertical"
914
897
  }
915
- ],
916
- "type": "card"
898
+ ]
917
899
  },
918
900
  {
901
+ "label": "Value",
902
+ "type": "stat-display",
919
903
  "value": [
920
904
  "object/get",
921
905
  [
@@ -923,22 +907,21 @@
923
907
  "@entity"
924
908
  ],
925
909
  "value"
926
- ],
927
- "label": "Value",
928
- "type": "stat-display"
910
+ ]
929
911
  },
930
912
  {
931
913
  "type": "card",
932
914
  "children": [
933
915
  {
916
+ "direction": "vertical",
917
+ "gap": "sm",
934
918
  "children": [
935
919
  {
920
+ "variant": "caption",
936
921
  "content": "Unit",
937
- "type": "typography",
938
- "variant": "caption"
922
+ "type": "typography"
939
923
  },
940
924
  {
941
- "type": "typography",
942
925
  "variant": "h3",
943
926
  "content": [
944
927
  "object/get",
@@ -947,12 +930,11 @@
947
930
  "@entity"
948
931
  ],
949
932
  "unit"
950
- ]
933
+ ],
934
+ "type": "typography"
951
935
  }
952
936
  ],
953
- "direction": "vertical",
954
- "type": "stack",
955
- "gap": "sm"
937
+ "type": "stack"
956
938
  }
957
939
  ]
958
940
  },
@@ -960,14 +942,11 @@
960
942
  "type": "card",
961
943
  "children": [
962
944
  {
963
- "type": "stack",
964
- "direction": "vertical",
965
- "gap": "sm",
966
945
  "children": [
967
946
  {
968
- "type": "typography",
947
+ "variant": "caption",
969
948
  "content": "Timestamp",
970
- "variant": "caption"
949
+ "type": "typography"
971
950
  },
972
951
  {
973
952
  "content": [
@@ -981,7 +960,10 @@
981
960
  "type": "typography",
982
961
  "variant": "h3"
983
962
  }
984
- ]
963
+ ],
964
+ "gap": "sm",
965
+ "type": "stack",
966
+ "direction": "vertical"
985
967
  }
986
968
  ]
987
969
  }
@@ -990,40 +972,41 @@
990
972
  "type": "simple-grid"
991
973
  }
992
974
  ],
993
- "type": "box",
994
- "padding": "md"
975
+ "padding": "md",
976
+ "type": "box"
995
977
  },
996
978
  {
997
979
  "type": "divider"
998
980
  },
999
981
  {
982
+ "gap": "md",
1000
983
  "children": [
1001
984
  {
1002
985
  "children": [
1003
986
  {
1004
- "type": "typography",
1005
987
  "variant": "caption",
1006
- "content": "Chart View"
988
+ "content": "Chart View",
989
+ "type": "typography"
1007
990
  }
1008
991
  ],
1009
992
  "type": "card"
1010
993
  },
1011
994
  {
995
+ "type": "card",
1012
996
  "children": [
1013
997
  {
1014
- "variant": "caption",
1015
998
  "type": "typography",
999
+ "variant": "caption",
1016
1000
  "content": "Graph View"
1017
1001
  }
1018
- ],
1019
- "type": "card"
1002
+ ]
1020
1003
  }
1021
1004
  ],
1022
1005
  "type": "grid",
1023
- "gap": "md",
1024
1006
  "cols": 2.0
1025
1007
  },
1026
1008
  {
1009
+ "type": "line-chart",
1027
1010
  "data": [
1028
1011
  {
1029
1012
  "date": "Jan",
@@ -1038,77 +1021,94 @@
1038
1021
  "date": "Mar"
1039
1022
  },
1040
1023
  {
1041
- "value": 25.0,
1042
- "date": "Apr"
1024
+ "date": "Apr",
1025
+ "value": 25.0
1043
1026
  },
1044
1027
  {
1045
- "date": "May",
1046
- "value": 22.0
1028
+ "value": 22.0,
1029
+ "date": "May"
1047
1030
  },
1048
1031
  {
1049
- "date": "Jun",
1050
- "value": 30.0
1032
+ "value": 30.0,
1033
+ "date": "Jun"
1051
1034
  }
1052
- ],
1053
- "type": "line-chart"
1035
+ ]
1054
1036
  },
1055
1037
  {
1056
- "type": "chart-legend",
1057
1038
  "items": [
1058
1039
  {
1059
- "label": "Current",
1060
- "color": "primary"
1040
+ "color": "primary",
1041
+ "label": "Current"
1061
1042
  },
1062
1043
  {
1063
- "color": "muted",
1064
- "label": "Previous"
1044
+ "label": "Previous",
1045
+ "color": "muted"
1065
1046
  }
1066
- ]
1047
+ ],
1048
+ "type": "chart-legend"
1067
1049
  },
1068
1050
  {
1051
+ "height": 200.0,
1069
1052
  "nodes": [
1070
1053
  {
1071
- "id": "a",
1072
- "label": "Start",
1054
+ "y": 100.0,
1073
1055
  "x": 50.0,
1074
- "y": 100.0
1056
+ "id": "a",
1057
+ "label": "Start"
1075
1058
  },
1076
1059
  {
1077
- "id": "b",
1078
- "x": 200.0,
1079
1060
  "label": "Process",
1080
- "y": 50.0
1061
+ "x": 200.0,
1062
+ "y": 50.0,
1063
+ "id": "b"
1081
1064
  },
1082
1065
  {
1083
1066
  "id": "c",
1084
- "x": 350.0,
1085
1067
  "label": "End",
1086
- "y": 100.0
1068
+ "y": 100.0,
1069
+ "x": 350.0
1087
1070
  }
1088
1071
  ],
1089
- "height": 200.0,
1090
1072
  "edges": [
1091
1073
  {
1092
- "to": "b",
1093
- "from": "a"
1074
+ "from": "a",
1075
+ "to": "b"
1094
1076
  },
1095
1077
  {
1096
- "from": "b",
1097
- "to": "c"
1078
+ "to": "c",
1079
+ "from": "b"
1098
1080
  }
1099
1081
  ],
1100
1082
  "type": "graph-view",
1101
1083
  "width": 400.0
1102
1084
  }
1103
1085
  ],
1086
+ "type": "stack",
1104
1087
  "gap": "lg",
1105
1088
  "direction": "vertical"
1106
- }
1107
- ],
1108
- "type": "scaled-diagram"
1089
+ }
1090
+ ]
1109
1091
  }
1110
1092
  ],
1111
- "type": "dashboard-layout"
1093
+ "type": "dashboard-layout",
1094
+ "appName": "IoT Dashboard",
1095
+ "navItems": [
1096
+ {
1097
+ "icon": "layout-list",
1098
+ "href": "/sensors",
1099
+ "label": "Sensors"
1100
+ },
1101
+ {
1102
+ "label": "Devices",
1103
+ "href": "/devices",
1104
+ "icon": "cpu"
1105
+ },
1106
+ {
1107
+ "label": "Alerts",
1108
+ "icon": "bell",
1109
+ "href": "/alerts"
1110
+ }
1111
+ ]
1112
1112
  }
1113
1113
  ]
1114
1114
  ]
@@ -1136,6 +1136,8 @@
1136
1136
  {
1137
1137
  "children": [
1138
1138
  {
1139
+ "type": "stack",
1140
+ "direction": "vertical",
1139
1141
  "children": [
1140
1142
  {
1141
1143
  "items": [
@@ -1150,12 +1152,12 @@
1150
1152
  "type": "breadcrumb"
1151
1153
  },
1152
1154
  {
1153
- "gap": "md",
1154
1155
  "direction": "horizontal",
1156
+ "justify": "between",
1157
+ "gap": "md",
1158
+ "type": "stack",
1155
1159
  "children": [
1156
1160
  {
1157
- "direction": "horizontal",
1158
- "type": "stack",
1159
1161
  "children": [
1160
1162
  {
1161
1163
  "type": "icon",
@@ -1163,43 +1165,47 @@
1163
1165
  },
1164
1166
  {
1165
1167
  "type": "typography",
1166
- "variant": "h2",
1167
- "content": "Sensor Readings"
1168
+ "content": "Sensor Readings",
1169
+ "variant": "h2"
1168
1170
  }
1169
1171
  ],
1170
- "gap": "md"
1172
+ "gap": "md",
1173
+ "direction": "horizontal",
1174
+ "type": "stack"
1171
1175
  },
1172
1176
  {
1173
- "variant": "secondary",
1177
+ "icon": "refresh-cw",
1178
+ "action": "REFRESH",
1174
1179
  "type": "button",
1175
1180
  "label": "Refresh",
1176
- "icon": "refresh-cw",
1177
- "action": "REFRESH"
1181
+ "variant": "secondary"
1178
1182
  }
1179
- ],
1180
- "type": "stack",
1181
- "justify": "between"
1183
+ ]
1182
1184
  },
1183
1185
  {
1184
1186
  "type": "divider"
1185
1187
  },
1186
1188
  {
1187
- "padding": "md",
1188
1189
  "children": [
1189
1190
  {
1191
+ "type": "simple-grid",
1192
+ "cols": 3.0,
1190
1193
  "children": [
1191
1194
  {
1195
+ "type": "card",
1192
1196
  "children": [
1193
1197
  {
1198
+ "type": "stack",
1199
+ "gap": "sm",
1200
+ "direction": "vertical",
1194
1201
  "children": [
1195
1202
  {
1196
1203
  "type": "typography",
1197
- "content": "SensorId",
1198
- "variant": "caption"
1204
+ "variant": "caption",
1205
+ "content": "SensorId"
1199
1206
  },
1200
1207
  {
1201
1208
  "variant": "h3",
1202
- "type": "typography",
1203
1209
  "content": [
1204
1210
  "object/get",
1205
1211
  [
@@ -1207,17 +1213,16 @@
1207
1213
  "@entity"
1208
1214
  ],
1209
1215
  "sensorId"
1210
- ]
1216
+ ],
1217
+ "type": "typography"
1211
1218
  }
1212
- ],
1213
- "direction": "vertical",
1214
- "type": "stack",
1215
- "gap": "sm"
1219
+ ]
1216
1220
  }
1217
- ],
1218
- "type": "card"
1221
+ ]
1219
1222
  },
1220
1223
  {
1224
+ "type": "stat-display",
1225
+ "label": "Value",
1221
1226
  "value": [
1222
1227
  "object/get",
1223
1228
  [
@@ -1225,24 +1230,21 @@
1225
1230
  "@entity"
1226
1231
  ],
1227
1232
  "value"
1228
- ],
1229
- "label": "Value",
1230
- "type": "stat-display"
1233
+ ]
1231
1234
  },
1232
1235
  {
1236
+ "type": "card",
1233
1237
  "children": [
1234
1238
  {
1235
- "type": "stack",
1236
1239
  "gap": "sm",
1237
- "direction": "vertical",
1240
+ "type": "stack",
1238
1241
  "children": [
1239
1242
  {
1240
1243
  "content": "Unit",
1241
- "variant": "caption",
1242
- "type": "typography"
1244
+ "type": "typography",
1245
+ "variant": "caption"
1243
1246
  },
1244
1247
  {
1245
- "variant": "h3",
1246
1248
  "content": [
1247
1249
  "object/get",
1248
1250
  [
@@ -1251,19 +1253,21 @@
1251
1253
  ],
1252
1254
  "unit"
1253
1255
  ],
1254
- "type": "typography"
1256
+ "type": "typography",
1257
+ "variant": "h3"
1255
1258
  }
1256
- ]
1259
+ ],
1260
+ "direction": "vertical"
1257
1261
  }
1258
- ],
1259
- "type": "card"
1262
+ ]
1260
1263
  },
1261
1264
  {
1262
1265
  "type": "card",
1263
1266
  "children": [
1264
1267
  {
1265
- "type": "stack",
1268
+ "direction": "vertical",
1266
1269
  "gap": "sm",
1270
+ "type": "stack",
1267
1271
  "children": [
1268
1272
  {
1269
1273
  "type": "typography",
@@ -1272,6 +1276,7 @@
1272
1276
  },
1273
1277
  {
1274
1278
  "variant": "h3",
1279
+ "type": "typography",
1275
1280
  "content": [
1276
1281
  "object/get",
1277
1282
  [
@@ -1279,35 +1284,30 @@
1279
1284
  "@entity"
1280
1285
  ],
1281
1286
  "timestamp"
1282
- ],
1283
- "type": "typography"
1287
+ ]
1284
1288
  }
1285
- ],
1286
- "direction": "vertical"
1289
+ ]
1287
1290
  }
1288
1291
  ]
1289
1292
  }
1290
- ],
1291
- "cols": 3.0,
1292
- "type": "simple-grid"
1293
+ ]
1293
1294
  }
1294
1295
  ],
1295
- "type": "box"
1296
+ "type": "box",
1297
+ "padding": "md"
1296
1298
  },
1297
1299
  {
1298
1300
  "type": "divider"
1299
1301
  },
1300
1302
  {
1301
1303
  "type": "grid",
1302
- "cols": 2.0,
1303
- "gap": "md",
1304
1304
  "children": [
1305
1305
  {
1306
1306
  "children": [
1307
1307
  {
1308
- "variant": "caption",
1308
+ "type": "typography",
1309
1309
  "content": "Chart View",
1310
- "type": "typography"
1310
+ "variant": "caption"
1311
1311
  }
1312
1312
  ],
1313
1313
  "type": "card"
@@ -1322,9 +1322,12 @@
1322
1322
  }
1323
1323
  ]
1324
1324
  }
1325
- ]
1325
+ ],
1326
+ "cols": 2.0,
1327
+ "gap": "md"
1326
1328
  },
1327
1329
  {
1330
+ "type": "line-chart",
1328
1331
  "data": [
1329
1332
  {
1330
1333
  "value": 12.0,
@@ -1335,23 +1338,22 @@
1335
1338
  "date": "Feb"
1336
1339
  },
1337
1340
  {
1338
- "date": "Mar",
1339
- "value": 15.0
1341
+ "value": 15.0,
1342
+ "date": "Mar"
1340
1343
  },
1341
1344
  {
1342
- "date": "Apr",
1343
- "value": 25.0
1345
+ "value": 25.0,
1346
+ "date": "Apr"
1344
1347
  },
1345
1348
  {
1346
- "date": "May",
1347
- "value": 22.0
1349
+ "value": 22.0,
1350
+ "date": "May"
1348
1351
  },
1349
1352
  {
1350
1353
  "date": "Jun",
1351
1354
  "value": 30.0
1352
1355
  }
1353
- ],
1354
- "type": "line-chart"
1356
+ ]
1355
1357
  },
1356
1358
  {
1357
1359
  "items": [
@@ -1371,40 +1373,38 @@
1371
1373
  "height": 200.0,
1372
1374
  "edges": [
1373
1375
  {
1374
- "from": "a",
1375
- "to": "b"
1376
+ "to": "b",
1377
+ "from": "a"
1376
1378
  },
1377
1379
  {
1378
1380
  "from": "b",
1379
1381
  "to": "c"
1380
1382
  }
1381
1383
  ],
1384
+ "width": 400.0,
1382
1385
  "nodes": [
1383
1386
  {
1387
+ "label": "Start",
1384
1388
  "x": 50.0,
1385
1389
  "y": 100.0,
1386
- "id": "a",
1387
- "label": "Start"
1390
+ "id": "a"
1388
1391
  },
1389
1392
  {
1390
- "id": "b",
1391
- "y": 50.0,
1393
+ "x": 200.0,
1392
1394
  "label": "Process",
1393
- "x": 200.0
1395
+ "id": "b",
1396
+ "y": 50.0
1394
1397
  },
1395
1398
  {
1396
- "y": 100.0,
1399
+ "x": 350.0,
1397
1400
  "label": "End",
1398
- "id": "c",
1399
- "x": 350.0
1401
+ "y": 100.0,
1402
+ "id": "c"
1400
1403
  }
1401
- ],
1402
- "width": 400.0
1404
+ ]
1403
1405
  }
1404
1406
  ],
1405
- "gap": "lg",
1406
- "type": "stack",
1407
- "direction": "vertical"
1407
+ "gap": "lg"
1408
1408
  }
1409
1409
  ],
1410
1410
  "type": "scaled-diagram"
@@ -1412,19 +1412,19 @@
1412
1412
  ],
1413
1413
  "navItems": [
1414
1414
  {
1415
- "icon": "layout-list",
1416
1415
  "label": "Sensors",
1416
+ "icon": "layout-list",
1417
1417
  "href": "/sensors"
1418
1418
  },
1419
1419
  {
1420
- "label": "Devices",
1421
1420
  "href": "/devices",
1421
+ "label": "Devices",
1422
1422
  "icon": "cpu"
1423
1423
  },
1424
1424
  {
1425
+ "href": "/alerts",
1425
1426
  "icon": "bell",
1426
- "label": "Alerts",
1427
- "href": "/alerts"
1427
+ "label": "Alerts"
1428
1428
  }
1429
1429
  ],
1430
1430
  "appName": "IoT Dashboard",
@@ -1443,8 +1443,8 @@
1443
1443
  "SensorReading",
1444
1444
  {
1445
1445
  "emit": {
1446
- "success": "SensorReadingLoaded",
1447
- "failure": "SensorReadingLoadFailed"
1446
+ "failure": "SensorReadingLoadFailed",
1447
+ "success": "SensorReadingLoaded"
1448
1448
  }
1449
1449
  }
1450
1450
  ],
@@ -1456,9 +1456,9 @@
1456
1456
  "appName": "IoT Dashboard",
1457
1457
  "navItems": [
1458
1458
  {
1459
- "href": "/sensors",
1460
1459
  "icon": "layout-list",
1461
- "label": "Sensors"
1460
+ "label": "Sensors",
1461
+ "href": "/sensors"
1462
1462
  },
1463
1463
  {
1464
1464
  "icon": "cpu",
@@ -1466,9 +1466,9 @@
1466
1466
  "href": "/devices"
1467
1467
  },
1468
1468
  {
1469
+ "href": "/alerts",
1469
1470
  "label": "Alerts",
1470
- "icon": "bell",
1471
- "href": "/alerts"
1471
+ "icon": "bell"
1472
1472
  }
1473
1473
  ],
1474
1474
  "children": [
@@ -1476,14 +1476,15 @@
1476
1476
  "type": "scaled-diagram",
1477
1477
  "children": [
1478
1478
  {
1479
+ "gap": "lg",
1479
1480
  "direction": "vertical",
1480
1481
  "type": "stack",
1481
1482
  "children": [
1482
1483
  {
1483
1484
  "items": [
1484
1485
  {
1485
- "href": "/",
1486
- "label": "Home"
1486
+ "label": "Home",
1487
+ "href": "/"
1487
1488
  },
1488
1489
  {
1489
1490
  "label": "Sensor Readings"
@@ -1492,11 +1493,13 @@
1492
1493
  "type": "breadcrumb"
1493
1494
  },
1494
1495
  {
1496
+ "type": "stack",
1497
+ "justify": "between",
1498
+ "direction": "horizontal",
1495
1499
  "children": [
1496
1500
  {
1497
- "direction": "horizontal",
1498
- "gap": "md",
1499
1501
  "type": "stack",
1502
+ "direction": "horizontal",
1500
1503
  "children": [
1501
1504
  {
1502
1505
  "name": "thermometer",
@@ -1504,46 +1507,43 @@
1504
1507
  },
1505
1508
  {
1506
1509
  "type": "typography",
1507
- "content": "Sensor Readings",
1508
- "variant": "h2"
1510
+ "variant": "h2",
1511
+ "content": "Sensor Readings"
1509
1512
  }
1510
- ]
1513
+ ],
1514
+ "gap": "md"
1511
1515
  },
1512
1516
  {
1513
1517
  "action": "REFRESH",
1514
1518
  "variant": "secondary",
1515
- "type": "button",
1519
+ "icon": "refresh-cw",
1516
1520
  "label": "Refresh",
1517
- "icon": "refresh-cw"
1521
+ "type": "button"
1518
1522
  }
1519
1523
  ],
1520
- "justify": "between",
1521
- "type": "stack",
1522
- "gap": "md",
1523
- "direction": "horizontal"
1524
+ "gap": "md"
1524
1525
  },
1525
1526
  {
1526
1527
  "type": "divider"
1527
1528
  },
1528
1529
  {
1530
+ "padding": "md",
1529
1531
  "type": "box",
1530
1532
  "children": [
1531
1533
  {
1532
- "type": "simple-grid",
1533
- "cols": 3.0,
1534
1534
  "children": [
1535
1535
  {
1536
1536
  "type": "card",
1537
1537
  "children": [
1538
1538
  {
1539
- "gap": "sm",
1540
1539
  "children": [
1541
1540
  {
1542
- "type": "typography",
1543
1541
  "content": "SensorId",
1544
- "variant": "caption"
1542
+ "variant": "caption",
1543
+ "type": "typography"
1545
1544
  },
1546
1545
  {
1546
+ "type": "typography",
1547
1547
  "variant": "h3",
1548
1548
  "content": [
1549
1549
  "object/get",
@@ -1552,11 +1552,11 @@
1552
1552
  "@entity"
1553
1553
  ],
1554
1554
  "sensorId"
1555
- ],
1556
- "type": "typography"
1555
+ ]
1557
1556
  }
1558
1557
  ],
1559
1558
  "direction": "vertical",
1559
+ "gap": "sm",
1560
1560
  "type": "stack"
1561
1561
  }
1562
1562
  ]
@@ -1578,8 +1578,6 @@
1578
1578
  "children": [
1579
1579
  {
1580
1580
  "type": "stack",
1581
- "gap": "sm",
1582
- "direction": "vertical",
1583
1581
  "children": [
1584
1582
  {
1585
1583
  "type": "typography",
@@ -1587,6 +1585,7 @@
1587
1585
  "content": "Unit"
1588
1586
  },
1589
1587
  {
1588
+ "variant": "h3",
1590
1589
  "content": [
1591
1590
  "object/get",
1592
1591
  [
@@ -1595,17 +1594,18 @@
1595
1594
  ],
1596
1595
  "unit"
1597
1596
  ],
1598
- "type": "typography",
1599
- "variant": "h3"
1597
+ "type": "typography"
1600
1598
  }
1601
- ]
1599
+ ],
1600
+ "direction": "vertical",
1601
+ "gap": "sm"
1602
1602
  }
1603
1603
  ]
1604
1604
  },
1605
1605
  {
1606
- "type": "card",
1607
1606
  "children": [
1608
1607
  {
1608
+ "gap": "sm",
1609
1609
  "children": [
1610
1610
  {
1611
1611
  "content": "Timestamp",
@@ -1613,6 +1613,7 @@
1613
1613
  "variant": "caption"
1614
1614
  },
1615
1615
  {
1616
+ "type": "typography",
1616
1617
  "variant": "h3",
1617
1618
  "content": [
1618
1619
  "object/get",
@@ -1621,65 +1622,65 @@
1621
1622
  "@entity"
1622
1623
  ],
1623
1624
  "timestamp"
1624
- ],
1625
- "type": "typography"
1625
+ ]
1626
1626
  }
1627
1627
  ],
1628
- "gap": "sm",
1629
1628
  "type": "stack",
1630
1629
  "direction": "vertical"
1631
1630
  }
1632
- ]
1631
+ ],
1632
+ "type": "card"
1633
1633
  }
1634
- ]
1634
+ ],
1635
+ "type": "simple-grid",
1636
+ "cols": 3.0
1635
1637
  }
1636
- ],
1637
- "padding": "md"
1638
+ ]
1638
1639
  },
1639
1640
  {
1640
1641
  "type": "divider"
1641
1642
  },
1642
1643
  {
1643
- "gap": "md",
1644
1644
  "type": "grid",
1645
+ "cols": 2.0,
1646
+ "gap": "md",
1645
1647
  "children": [
1646
1648
  {
1649
+ "type": "card",
1647
1650
  "children": [
1648
1651
  {
1649
- "variant": "caption",
1650
1652
  "content": "Chart View",
1651
- "type": "typography"
1653
+ "type": "typography",
1654
+ "variant": "caption"
1652
1655
  }
1653
- ],
1654
- "type": "card"
1656
+ ]
1655
1657
  },
1656
1658
  {
1657
1659
  "type": "card",
1658
1660
  "children": [
1659
1661
  {
1660
1662
  "type": "typography",
1661
- "content": "Graph View",
1662
- "variant": "caption"
1663
+ "variant": "caption",
1664
+ "content": "Graph View"
1663
1665
  }
1664
1666
  ]
1665
1667
  }
1666
- ],
1667
- "cols": 2.0
1668
+ ]
1668
1669
  },
1669
1670
  {
1670
1671
  "type": "line-chart",
1671
1672
  "data": [
1672
1673
  {
1673
- "date": "Jan",
1674
- "value": 12.0
1674
+ "value": 12.0,
1675
+ "date": "Jan"
1675
1676
  },
1676
1677
  {
1677
1678
  "value": 19.0,
1678
1679
  "date": "Feb"
1679
1680
  },
1680
1681
  {
1681
- "date": "Mar",
1682
- "value": 15.0
1682
+ "value": 15.0,
1683
+ "date": "Mar"
1683
1684
  },
1684
1685
  {
1685
1686
  "date": "Apr",
@@ -1690,61 +1691,60 @@
1690
1691
  "date": "May"
1691
1692
  },
1692
1693
  {
1693
- "date": "Jun",
1694
- "value": 30.0
1694
+ "value": 30.0,
1695
+ "date": "Jun"
1695
1696
  }
1696
1697
  ]
1697
1698
  },
1698
1699
  {
1700
+ "type": "chart-legend",
1699
1701
  "items": [
1700
1702
  {
1701
- "color": "primary",
1702
- "label": "Current"
1703
+ "label": "Current",
1704
+ "color": "primary"
1703
1705
  },
1704
1706
  {
1705
- "color": "muted",
1706
- "label": "Previous"
1707
+ "label": "Previous",
1708
+ "color": "muted"
1707
1709
  }
1708
- ],
1709
- "type": "chart-legend"
1710
+ ]
1710
1711
  },
1711
1712
  {
1713
+ "type": "graph-view",
1712
1714
  "nodes": [
1713
1715
  {
1714
- "y": 100.0,
1716
+ "label": "Start",
1715
1717
  "x": 50.0,
1716
1718
  "id": "a",
1717
- "label": "Start"
1719
+ "y": 100.0
1718
1720
  },
1719
1721
  {
1720
1722
  "y": 50.0,
1721
- "x": 200.0,
1723
+ "id": "b",
1722
1724
  "label": "Process",
1723
- "id": "b"
1725
+ "x": 200.0
1724
1726
  },
1725
1727
  {
1726
- "id": "c",
1727
1728
  "x": 350.0,
1728
1729
  "y": 100.0,
1730
+ "id": "c",
1729
1731
  "label": "End"
1730
1732
  }
1731
1733
  ],
1734
+ "height": 200.0,
1735
+ "width": 400.0,
1732
1736
  "edges": [
1733
1737
  {
1734
- "to": "b",
1735
- "from": "a"
1738
+ "from": "a",
1739
+ "to": "b"
1736
1740
  },
1737
1741
  {
1738
- "from": "b",
1739
- "to": "c"
1742
+ "to": "c",
1743
+ "from": "b"
1740
1744
  }
1741
- ],
1742
- "type": "graph-view",
1743
- "width": 400.0,
1744
- "height": 200.0
1745
+ ]
1745
1746
  }
1746
- ],
1747
- "gap": "lg"
1747
+ ]
1748
1748
  }
1749
1749
  ]
1750
1750
  }
@@ -1955,105 +1955,93 @@
1955
1955
  "render-ui",
1956
1956
  "main",
1957
1957
  {
1958
- "navItems": [
1959
- {
1960
- "icon": "layout-list",
1961
- "href": "/sensors",
1962
- "label": "Sensors"
1963
- },
1964
- {
1965
- "href": "/devices",
1966
- "label": "Devices",
1967
- "icon": "cpu"
1968
- },
1969
- {
1970
- "label": "Alerts",
1971
- "href": "/alerts",
1972
- "icon": "bell"
1973
- }
1974
- ],
1958
+ "type": "dashboard-layout",
1975
1959
  "children": [
1976
1960
  {
1961
+ "direction": "vertical",
1962
+ "gap": "lg",
1963
+ "type": "stack",
1977
1964
  "className": "max-w-5xl mx-auto w-full",
1978
1965
  "children": [
1979
1966
  {
1967
+ "align": "center",
1968
+ "type": "stack",
1969
+ "direction": "horizontal",
1970
+ "gap": "md",
1980
1971
  "children": [
1981
1972
  {
1982
1973
  "align": "center",
1974
+ "gap": "sm",
1983
1975
  "children": [
1984
1976
  {
1985
1977
  "name": "cpu",
1986
1978
  "type": "icon"
1987
1979
  },
1988
1980
  {
1981
+ "content": "Devices",
1989
1982
  "type": "typography",
1990
- "variant": "h2",
1991
- "content": "Devices"
1983
+ "variant": "h2"
1992
1984
  }
1993
1985
  ],
1994
- "gap": "sm",
1995
- "direction": "horizontal",
1996
- "type": "stack"
1986
+ "type": "stack",
1987
+ "direction": "horizontal"
1997
1988
  },
1998
1989
  {
1999
1990
  "type": "stack",
1991
+ "gap": "sm",
1992
+ "direction": "horizontal",
2000
1993
  "children": [
2001
1994
  {
2002
- "action": "CREATE",
1995
+ "type": "button",
2003
1996
  "icon": "plus",
2004
- "label": "Create Device",
2005
1997
  "variant": "primary",
2006
- "type": "button"
1998
+ "action": "CREATE",
1999
+ "label": "Create Device"
2007
2000
  }
2008
- ],
2009
- "gap": "sm",
2010
- "direction": "horizontal"
2001
+ ]
2011
2002
  }
2012
2003
  ],
2013
- "align": "center",
2014
- "gap": "md",
2015
- "type": "stack",
2016
- "direction": "horizontal",
2017
2004
  "justify": "between"
2018
2005
  },
2019
2006
  {
2020
2007
  "type": "divider"
2021
2008
  },
2022
2009
  {
2023
- "cols": 3.0,
2024
2010
  "entity": "Device",
2025
2011
  "type": "data-grid",
2012
+ "cols": 3.0,
2013
+ "gap": "md",
2014
+ "fields": [],
2026
2015
  "itemActions": [
2027
2016
  {
2028
- "variant": "ghost",
2029
2017
  "event": "VIEW",
2018
+ "variant": "ghost",
2030
2019
  "label": "View"
2031
2020
  },
2032
2021
  {
2033
2022
  "variant": "ghost",
2034
- "label": "Edit",
2035
- "event": "EDIT"
2023
+ "event": "EDIT",
2024
+ "label": "Edit"
2036
2025
  },
2037
2026
  {
2038
2027
  "label": "Delete",
2039
- "event": "DELETE",
2040
- "variant": "danger"
2028
+ "variant": "danger",
2029
+ "event": "DELETE"
2041
2030
  }
2042
2031
  ],
2043
- "fields": [],
2044
2032
  "columns": [
2045
2033
  {
2046
- "name": "name",
2047
2034
  "icon": "cpu",
2048
- "variant": "h3"
2035
+ "variant": "h3",
2036
+ "name": "name"
2049
2037
  },
2050
2038
  {
2051
- "name": "status",
2052
- "variant": "badge"
2039
+ "variant": "badge",
2040
+ "name": "status"
2053
2041
  },
2054
2042
  {
2055
- "name": "type",
2056
- "variant": "body"
2043
+ "variant": "body",
2044
+ "name": "type"
2057
2045
  },
2058
2046
  {
2059
2047
  "name": "lastSeen",
@@ -2061,17 +2049,29 @@
2061
2049
  "format": "date",
2062
2050
  "variant": "caption"
2063
2051
  }
2064
- ],
2065
- "gap": "md"
2052
+ ]
2066
2053
  }
2067
- ],
2068
- "gap": "lg",
2069
- "type": "stack",
2070
- "direction": "vertical"
2054
+ ]
2071
2055
  }
2072
2056
  ],
2073
2057
  "appName": "IoT Dashboard",
2074
- "type": "dashboard-layout"
2058
+ "navItems": [
2059
+ {
2060
+ "icon": "layout-list",
2061
+ "label": "Sensors",
2062
+ "href": "/sensors"
2063
+ },
2064
+ {
2065
+ "href": "/devices",
2066
+ "icon": "cpu",
2067
+ "label": "Devices"
2068
+ },
2069
+ {
2070
+ "icon": "bell",
2071
+ "label": "Alerts",
2072
+ "href": "/alerts"
2073
+ }
2074
+ ]
2075
2075
  }
2076
2076
  ]
2077
2077
  ]
@@ -2246,34 +2246,35 @@
2246
2246
  "render-ui",
2247
2247
  "modal",
2248
2248
  {
2249
- "gap": "md",
2249
+ "direction": "vertical",
2250
2250
  "type": "stack",
2251
+ "gap": "md",
2251
2252
  "children": [
2252
2253
  {
2254
+ "type": "stack",
2253
2255
  "direction": "horizontal",
2256
+ "gap": "sm",
2254
2257
  "children": [
2255
2258
  {
2256
2259
  "type": "icon",
2257
2260
  "name": "plus-circle"
2258
2261
  },
2259
2262
  {
2260
- "type": "typography",
2261
2263
  "content": "Create Device",
2264
+ "type": "typography",
2262
2265
  "variant": "h3"
2263
2266
  }
2264
- ],
2265
- "gap": "sm",
2266
- "type": "stack"
2267
+ ]
2267
2268
  },
2268
2269
  {
2269
2270
  "type": "divider"
2270
2271
  },
2271
2272
  {
2272
- "submitEvent": "SAVE",
2273
2273
  "type": "form-section",
2274
+ "cancelEvent": "CLOSE",
2275
+ "submitEvent": "SAVE",
2274
2276
  "entity": "Device",
2275
2277
  "mode": "create",
2276
- "cancelEvent": "CLOSE",
2277
2278
  "fields": [
2278
2279
  "name",
2279
2280
  "type",
@@ -2281,8 +2282,7 @@
2281
2282
  "lastSeen"
2282
2283
  ]
2283
2284
  }
2284
- ],
2285
- "direction": "vertical"
2285
+ ]
2286
2286
  }
2287
2287
  ]
2288
2288
  ]
@@ -2517,12 +2517,9 @@
2517
2517
  "render-ui",
2518
2518
  "modal",
2519
2519
  {
2520
- "type": "stack",
2521
- "direction": "vertical",
2522
2520
  "children": [
2523
2521
  {
2524
2522
  "gap": "sm",
2525
- "type": "stack",
2526
2523
  "children": [
2527
2524
  {
2528
2525
  "name": "edit",
@@ -2534,27 +2531,30 @@
2534
2531
  "variant": "h3"
2535
2532
  }
2536
2533
  ],
2534
+ "type": "stack",
2537
2535
  "direction": "horizontal"
2538
2536
  },
2539
2537
  {
2540
2538
  "type": "divider"
2541
2539
  },
2542
2540
  {
2543
- "entityId": "@entity.id",
2544
2541
  "type": "form-section",
2545
- "entity": "Device",
2546
- "submitEvent": "SAVE",
2547
- "mode": "edit",
2548
- "cancelEvent": "CLOSE",
2549
2542
  "fields": [
2550
2543
  "name",
2551
2544
  "type",
2552
2545
  "status",
2553
2546
  "lastSeen"
2554
- ]
2547
+ ],
2548
+ "submitEvent": "SAVE",
2549
+ "entityId": "@entity.id",
2550
+ "entity": "Device",
2551
+ "cancelEvent": "CLOSE",
2552
+ "mode": "edit"
2555
2553
  }
2556
2554
  ],
2557
- "gap": "md"
2555
+ "direction": "vertical",
2556
+ "gap": "md",
2557
+ "type": "stack"
2558
2558
  }
2559
2559
  ]
2560
2560
  ]
@@ -2765,103 +2765,106 @@
2765
2765
  "fetch",
2766
2766
  "Device",
2767
2767
  {
2768
+ "id": "@payload.id",
2768
2769
  "emit": {
2769
2770
  "failure": "DeviceLoadFailed",
2770
2771
  "success": "DeviceLoaded"
2771
- },
2772
- "id": "@payload.id"
2772
+ }
2773
2773
  }
2774
2774
  ],
2775
2775
  [
2776
2776
  "render-ui",
2777
2777
  "modal",
2778
2778
  {
2779
+ "type": "stack",
2780
+ "gap": "md",
2781
+ "direction": "vertical",
2779
2782
  "children": [
2780
2783
  {
2781
- "gap": "sm",
2784
+ "type": "stack",
2782
2785
  "align": "center",
2786
+ "gap": "sm",
2787
+ "direction": "horizontal",
2783
2788
  "children": [
2784
2789
  {
2785
- "type": "icon",
2786
- "name": "eye"
2790
+ "name": "eye",
2791
+ "type": "icon"
2787
2792
  },
2788
2793
  {
2789
- "type": "typography",
2790
2794
  "variant": "h3",
2795
+ "type": "typography",
2791
2796
  "content": "@entity.name"
2792
2797
  }
2793
- ],
2794
- "direction": "horizontal",
2795
- "type": "stack"
2798
+ ]
2796
2799
  },
2797
2800
  {
2798
2801
  "type": "divider"
2799
2802
  },
2800
2803
  {
2801
- "gap": "md",
2802
- "direction": "horizontal",
2803
- "type": "stack",
2804
2804
  "children": [
2805
2805
  {
2806
- "content": "Name",
2807
2806
  "type": "typography",
2808
- "variant": "caption"
2807
+ "variant": "caption",
2808
+ "content": "Name"
2809
2809
  },
2810
2810
  {
2811
- "type": "typography",
2812
2811
  "content": "@entity.name",
2812
+ "type": "typography",
2813
2813
  "variant": "body"
2814
2814
  }
2815
- ]
2815
+ ],
2816
+ "gap": "md",
2817
+ "type": "stack",
2818
+ "direction": "horizontal"
2816
2819
  },
2817
2820
  {
2818
- "direction": "horizontal",
2819
- "gap": "md",
2820
2821
  "children": [
2821
2822
  {
2822
- "content": "Type",
2823
+ "type": "typography",
2823
2824
  "variant": "caption",
2824
- "type": "typography"
2825
+ "content": "Type"
2825
2826
  },
2826
2827
  {
2828
+ "variant": "body",
2827
2829
  "content": "@entity.type",
2828
- "type": "typography",
2829
- "variant": "body"
2830
+ "type": "typography"
2830
2831
  }
2831
2832
  ],
2832
- "type": "stack"
2833
+ "type": "stack",
2834
+ "direction": "horizontal",
2835
+ "gap": "md"
2833
2836
  },
2834
2837
  {
2835
2838
  "direction": "horizontal",
2839
+ "type": "stack",
2836
2840
  "gap": "md",
2837
2841
  "children": [
2838
2842
  {
2839
- "type": "typography",
2843
+ "variant": "caption",
2840
2844
  "content": "Status",
2841
- "variant": "caption"
2845
+ "type": "typography"
2842
2846
  },
2843
2847
  {
2844
2848
  "type": "typography",
2845
- "content": "@entity.status",
2846
- "variant": "body"
2849
+ "variant": "body",
2850
+ "content": "@entity.status"
2847
2851
  }
2848
- ],
2849
- "type": "stack"
2852
+ ]
2850
2853
  },
2851
2854
  {
2852
- "direction": "horizontal",
2853
2855
  "gap": "md",
2854
2856
  "type": "stack",
2857
+ "direction": "horizontal",
2855
2858
  "children": [
2856
2859
  {
2860
+ "content": "Last Seen",
2857
2861
  "variant": "caption",
2858
- "type": "typography",
2859
- "content": "Last Seen"
2862
+ "type": "typography"
2860
2863
  },
2861
2864
  {
2865
+ "content": "@entity.lastSeen",
2862
2866
  "variant": "body",
2863
- "type": "typography",
2864
- "content": "@entity.lastSeen"
2867
+ "type": "typography"
2865
2868
  }
2866
2869
  ]
2867
2870
  },
@@ -2870,29 +2873,26 @@
2870
2873
  },
2871
2874
  {
2872
2875
  "type": "stack",
2876
+ "direction": "horizontal",
2873
2877
  "justify": "end",
2874
2878
  "gap": "sm",
2875
2879
  "children": [
2876
2880
  {
2877
- "type": "button",
2878
- "action": "EDIT",
2879
- "variant": "primary",
2880
2881
  "label": "Edit",
2881
- "icon": "edit"
2882
+ "variant": "primary",
2883
+ "icon": "edit",
2884
+ "action": "EDIT",
2885
+ "type": "button"
2882
2886
  },
2883
2887
  {
2884
- "action": "CLOSE",
2885
2888
  "type": "button",
2886
2889
  "variant": "ghost",
2887
- "label": "Close"
2890
+ "label": "Close",
2891
+ "action": "CLOSE"
2888
2892
  }
2889
- ],
2890
- "direction": "horizontal"
2893
+ ]
2891
2894
  }
2892
- ],
2893
- "gap": "md",
2894
- "type": "stack",
2895
- "direction": "vertical"
2895
+ ]
2896
2896
  }
2897
2897
  ]
2898
2898
  ]
@@ -3111,8 +3111,8 @@
3111
3111
  {
3112
3112
  "id": "@payload.id",
3113
3113
  "emit": {
3114
- "failure": "DeviceLoadFailed",
3115
- "success": "DeviceLoaded"
3114
+ "success": "DeviceLoaded",
3115
+ "failure": "DeviceLoadFailed"
3116
3116
  }
3117
3117
  }
3118
3118
  ],
@@ -3120,15 +3120,11 @@
3120
3120
  "render-ui",
3121
3121
  "modal",
3122
3122
  {
3123
- "type": "stack",
3124
- "gap": "md",
3125
3123
  "direction": "vertical",
3124
+ "gap": "md",
3125
+ "type": "stack",
3126
3126
  "children": [
3127
3127
  {
3128
- "direction": "horizontal",
3129
- "type": "stack",
3130
- "gap": "sm",
3131
- "align": "center",
3132
3128
  "children": [
3133
3129
  {
3134
3130
  "type": "icon",
@@ -3139,36 +3135,40 @@
3139
3135
  "variant": "h3",
3140
3136
  "content": "Delete Device"
3141
3137
  }
3142
- ]
3138
+ ],
3139
+ "gap": "sm",
3140
+ "direction": "horizontal",
3141
+ "align": "center",
3142
+ "type": "stack"
3143
3143
  },
3144
3144
  {
3145
3145
  "type": "divider"
3146
3146
  },
3147
3147
  {
3148
+ "type": "alert",
3148
3149
  "variant": "error",
3149
- "message": "This action cannot be undone.",
3150
- "type": "alert"
3150
+ "message": "This action cannot be undone."
3151
3151
  },
3152
3152
  {
3153
- "direction": "horizontal",
3154
- "gap": "sm",
3155
- "justify": "end",
3156
3153
  "type": "stack",
3157
3154
  "children": [
3158
3155
  {
3159
- "variant": "ghost",
3160
3156
  "label": "Cancel",
3161
- "type": "button",
3162
- "action": "CANCEL"
3157
+ "action": "CANCEL",
3158
+ "variant": "ghost",
3159
+ "type": "button"
3163
3160
  },
3164
3161
  {
3165
- "action": "CONFIRM_DELETE",
3162
+ "type": "button",
3166
3163
  "label": "Delete",
3167
3164
  "variant": "danger",
3168
- "type": "button",
3169
- "icon": "check"
3165
+ "icon": "check",
3166
+ "action": "CONFIRM_DELETE"
3170
3167
  }
3171
- ]
3168
+ ],
3169
+ "justify": "end",
3170
+ "gap": "sm",
3171
+ "direction": "horizontal"
3172
3172
  }
3173
3173
  ]
3174
3174
  }
@@ -3505,59 +3505,64 @@
3505
3505
  "icon": "cpu"
3506
3506
  },
3507
3507
  {
3508
- "label": "Alerts",
3509
3508
  "icon": "bell",
3510
- "href": "/alerts"
3509
+ "href": "/alerts",
3510
+ "label": "Alerts"
3511
3511
  }
3512
3512
  ],
3513
3513
  "type": "dashboard-layout",
3514
3514
  "children": [
3515
3515
  {
3516
+ "type": "stack",
3516
3517
  "direction": "vertical",
3518
+ "gap": "lg",
3517
3519
  "children": [
3518
3520
  {
3519
- "type": "stack",
3520
3521
  "direction": "horizontal",
3522
+ "gap": "md",
3523
+ "type": "stack",
3524
+ "align": "center",
3525
+ "justify": "between",
3521
3526
  "children": [
3522
3527
  {
3523
- "direction": "horizontal",
3528
+ "align": "center",
3529
+ "type": "stack",
3524
3530
  "gap": "md",
3531
+ "direction": "horizontal",
3525
3532
  "children": [
3526
3533
  {
3527
- "type": "icon",
3528
- "name": "bell"
3534
+ "name": "bell",
3535
+ "type": "icon"
3529
3536
  },
3530
3537
  {
3531
- "type": "typography",
3532
3538
  "content": "DeviceAlert",
3533
- "variant": "h2"
3539
+ "variant": "h2",
3540
+ "type": "typography"
3534
3541
  }
3535
- ],
3536
- "type": "stack",
3537
- "align": "center"
3542
+ ]
3538
3543
  },
3539
3544
  {
3540
3545
  "label": "Circuit Closed",
3546
+ "pulse": false,
3541
3547
  "type": "status-dot",
3542
- "status": "online",
3543
- "pulse": false
3548
+ "status": "online"
3544
3549
  }
3545
- ],
3546
- "align": "center",
3547
- "justify": "between",
3548
- "gap": "md"
3550
+ ]
3549
3551
  },
3550
3552
  {
3551
3553
  "type": "divider"
3552
3554
  },
3553
3555
  {
3556
+ "variant": "success",
3554
3557
  "message": "Service is healthy. All requests are being processed.",
3555
- "type": "alert",
3556
- "variant": "success"
3558
+ "type": "alert"
3557
3559
  },
3558
3560
  {
3561
+ "type": "simple-grid",
3562
+ "cols": 2.0,
3559
3563
  "children": [
3560
3564
  {
3565
+ "type": "stat-display",
3561
3566
  "label": "Failures",
3562
3567
  "value": [
3563
3568
  "object/get",
@@ -3566,8 +3571,7 @@
3566
3571
  "@entity"
3567
3572
  ],
3568
3573
  "failureCount"
3569
- ],
3570
- "type": "stat-display"
3574
+ ]
3571
3575
  },
3572
3576
  {
3573
3577
  "type": "stat-display",
@@ -3581,33 +3585,29 @@
3581
3585
  "successCount"
3582
3586
  ]
3583
3587
  }
3584
- ],
3585
- "type": "simple-grid",
3586
- "cols": 2.0
3588
+ ]
3587
3589
  },
3588
3590
  {
3589
3591
  "type": "meter",
3590
3592
  "min": 0.0,
3591
- "max": [
3593
+ "value": [
3592
3594
  "object/get",
3593
3595
  [
3594
3596
  "array/first",
3595
3597
  "@entity"
3596
3598
  ],
3597
- "threshold"
3599
+ "failureCount"
3598
3600
  ],
3599
- "value": [
3601
+ "max": [
3600
3602
  "object/get",
3601
3603
  [
3602
3604
  "array/first",
3603
3605
  "@entity"
3604
3606
  ],
3605
- "failureCount"
3607
+ "threshold"
3606
3608
  ]
3607
3609
  }
3608
- ],
3609
- "type": "stack",
3610
- "gap": "lg"
3610
+ ]
3611
3611
  }
3612
3612
  ]
3613
3613
  }
@@ -3623,73 +3623,55 @@
3623
3623
  "render-ui",
3624
3624
  "main",
3625
3625
  {
3626
- "type": "dashboard-layout",
3627
- "navItems": [
3628
- {
3629
- "icon": "layout-list",
3630
- "label": "Sensors",
3631
- "href": "/sensors"
3632
- },
3633
- {
3634
- "label": "Devices",
3635
- "href": "/devices",
3636
- "icon": "cpu"
3637
- },
3638
- {
3639
- "href": "/alerts",
3640
- "icon": "bell",
3641
- "label": "Alerts"
3642
- }
3643
- ],
3644
- "appName": "IoT Dashboard",
3645
3626
  "children": [
3646
3627
  {
3628
+ "direction": "vertical",
3647
3629
  "type": "stack",
3648
3630
  "children": [
3649
3631
  {
3650
- "type": "stack",
3651
- "direction": "horizontal",
3652
3632
  "align": "center",
3633
+ "justify": "between",
3634
+ "direction": "horizontal",
3653
3635
  "children": [
3654
3636
  {
3655
- "align": "center",
3637
+ "gap": "md",
3656
3638
  "children": [
3657
3639
  {
3658
3640
  "type": "icon",
3659
3641
  "name": "alert-triangle"
3660
3642
  },
3661
3643
  {
3662
- "type": "typography",
3663
3644
  "content": "DeviceAlert",
3645
+ "type": "typography",
3664
3646
  "variant": "h2"
3665
3647
  }
3666
3648
  ],
3649
+ "align": "center",
3667
3650
  "direction": "horizontal",
3668
- "type": "stack",
3669
- "gap": "md"
3651
+ "type": "stack"
3670
3652
  },
3671
3653
  {
3672
- "type": "status-dot",
3673
3654
  "status": "critical",
3674
3655
  "pulse": true,
3675
- "label": "Circuit Open"
3656
+ "label": "Circuit Open",
3657
+ "type": "status-dot"
3676
3658
  }
3677
3659
  ],
3678
- "justify": "between",
3679
- "gap": "md"
3660
+ "gap": "md",
3661
+ "type": "stack"
3680
3662
  },
3681
3663
  {
3682
3664
  "type": "divider"
3683
3665
  },
3684
3666
  {
3685
- "variant": "error",
3686
3667
  "type": "alert",
3668
+ "variant": "error",
3687
3669
  "message": "Circuit is open. Requests are being rejected to prevent cascading failures."
3688
3670
  },
3689
3671
  {
3672
+ "cols": 2.0,
3690
3673
  "children": [
3691
3674
  {
3692
- "label": "Failures",
3693
3675
  "value": [
3694
3676
  "object/get",
3695
3677
  [
@@ -3698,6 +3680,7 @@
3698
3680
  ],
3699
3681
  "failureCount"
3700
3682
  ],
3683
+ "label": "Failures",
3701
3684
  "type": "stat-display"
3702
3685
  },
3703
3686
  {
@@ -3713,39 +3696,56 @@
3713
3696
  "label": "Successes"
3714
3697
  }
3715
3698
  ],
3716
- "cols": 2.0,
3717
3699
  "type": "simple-grid"
3718
3700
  },
3719
3701
  {
3720
- "max": [
3702
+ "min": 0.0,
3703
+ "value": [
3721
3704
  "object/get",
3722
3705
  [
3723
3706
  "array/first",
3724
3707
  "@entity"
3725
3708
  ],
3726
- "threshold"
3709
+ "failureCount"
3727
3710
  ],
3728
- "value": [
3711
+ "type": "meter",
3712
+ "max": [
3729
3713
  "object/get",
3730
3714
  [
3731
3715
  "array/first",
3732
3716
  "@entity"
3733
3717
  ],
3734
- "failureCount"
3735
- ],
3736
- "min": 0.0,
3737
- "type": "meter"
3718
+ "threshold"
3719
+ ]
3738
3720
  },
3739
3721
  {
3740
- "type": "button",
3741
- "variant": "ghost",
3742
3722
  "label": "Reset",
3743
- "action": "RESET",
3744
- "icon": "rotate-ccw"
3723
+ "variant": "ghost",
3724
+ "icon": "rotate-ccw",
3725
+ "type": "button",
3726
+ "action": "RESET"
3745
3727
  }
3746
3728
  ],
3747
- "gap": "lg",
3748
- "direction": "vertical"
3729
+ "gap": "lg"
3730
+ }
3731
+ ],
3732
+ "type": "dashboard-layout",
3733
+ "appName": "IoT Dashboard",
3734
+ "navItems": [
3735
+ {
3736
+ "href": "/sensors",
3737
+ "icon": "layout-list",
3738
+ "label": "Sensors"
3739
+ },
3740
+ {
3741
+ "href": "/devices",
3742
+ "label": "Devices",
3743
+ "icon": "cpu"
3744
+ },
3745
+ {
3746
+ "icon": "bell",
3747
+ "label": "Alerts",
3748
+ "href": "/alerts"
3749
3749
  }
3750
3750
  ]
3751
3751
  }
@@ -3761,18 +3761,31 @@
3761
3761
  "render-ui",
3762
3762
  "main",
3763
3763
  {
3764
+ "type": "dashboard-layout",
3765
+ "navItems": [
3766
+ {
3767
+ "href": "/sensors",
3768
+ "label": "Sensors",
3769
+ "icon": "layout-list"
3770
+ },
3771
+ {
3772
+ "label": "Devices",
3773
+ "href": "/devices",
3774
+ "icon": "cpu"
3775
+ },
3776
+ {
3777
+ "href": "/alerts",
3778
+ "icon": "bell",
3779
+ "label": "Alerts"
3780
+ }
3781
+ ],
3782
+ "appName": "IoT Dashboard",
3764
3783
  "children": [
3765
3784
  {
3766
- "type": "stack",
3767
3785
  "direction": "vertical",
3768
- "gap": "lg",
3769
3786
  "children": [
3770
3787
  {
3771
- "gap": "md",
3772
3788
  "direction": "horizontal",
3773
- "type": "stack",
3774
- "justify": "between",
3775
- "align": "center",
3776
3789
  "children": [
3777
3790
  {
3778
3791
  "direction": "horizontal",
@@ -3787,27 +3800,32 @@
3787
3800
  "variant": "h2"
3788
3801
  }
3789
3802
  ],
3790
- "align": "center",
3791
3803
  "type": "stack",
3804
+ "align": "center",
3792
3805
  "gap": "md"
3793
3806
  },
3794
3807
  {
3808
+ "pulse": false,
3795
3809
  "status": "online",
3796
3810
  "label": "Circuit Closed",
3797
- "type": "status-dot",
3798
- "pulse": false
3811
+ "type": "status-dot"
3799
3812
  }
3800
- ]
3813
+ ],
3814
+ "gap": "md",
3815
+ "align": "center",
3816
+ "justify": "between",
3817
+ "type": "stack"
3801
3818
  },
3802
3819
  {
3803
3820
  "type": "divider"
3804
3821
  },
3805
3822
  {
3806
- "message": "Service is healthy. All requests are being processed.",
3807
3823
  "type": "alert",
3808
- "variant": "success"
3824
+ "variant": "success",
3825
+ "message": "Service is healthy. All requests are being processed."
3809
3826
  },
3810
3827
  {
3828
+ "type": "simple-grid",
3811
3829
  "cols": 2.0,
3812
3830
  "children": [
3813
3831
  {
@@ -3823,8 +3841,6 @@
3823
3841
  ]
3824
3842
  },
3825
3843
  {
3826
- "type": "stat-display",
3827
- "label": "Successes",
3828
3844
  "value": [
3829
3845
  "object/get",
3830
3846
  [
@@ -3832,10 +3848,11 @@
3832
3848
  "@entity"
3833
3849
  ],
3834
3850
  "successCount"
3835
- ]
3851
+ ],
3852
+ "type": "stat-display",
3853
+ "label": "Successes"
3836
3854
  }
3837
- ],
3838
- "type": "simple-grid"
3855
+ ]
3839
3856
  },
3840
3857
  {
3841
3858
  "max": [
@@ -3846,6 +3863,7 @@
3846
3863
  ],
3847
3864
  "threshold"
3848
3865
  ],
3866
+ "min": 0.0,
3849
3867
  "type": "meter",
3850
3868
  "value": [
3851
3869
  "object/get",
@@ -3854,29 +3872,11 @@
3854
3872
  "@entity"
3855
3873
  ],
3856
3874
  "failureCount"
3857
- ],
3858
- "min": 0.0
3875
+ ]
3859
3876
  }
3860
- ]
3861
- }
3862
- ],
3863
- "type": "dashboard-layout",
3864
- "appName": "IoT Dashboard",
3865
- "navItems": [
3866
- {
3867
- "href": "/sensors",
3868
- "label": "Sensors",
3869
- "icon": "layout-list"
3870
- },
3871
- {
3872
- "href": "/devices",
3873
- "icon": "cpu",
3874
- "label": "Devices"
3875
- },
3876
- {
3877
- "icon": "bell",
3878
- "label": "Alerts",
3879
- "href": "/alerts"
3877
+ ],
3878
+ "gap": "lg",
3879
+ "type": "stack"
3880
3880
  }
3881
3881
  ]
3882
3882
  }
@@ -3892,73 +3892,74 @@
3892
3892
  "render-ui",
3893
3893
  "main",
3894
3894
  {
3895
+ "type": "dashboard-layout",
3895
3896
  "navItems": [
3896
3897
  {
3897
- "href": "/sensors",
3898
3898
  "icon": "layout-list",
3899
- "label": "Sensors"
3899
+ "label": "Sensors",
3900
+ "href": "/sensors"
3900
3901
  },
3901
3902
  {
3903
+ "icon": "cpu",
3902
3904
  "href": "/devices",
3903
- "label": "Devices",
3904
- "icon": "cpu"
3905
+ "label": "Devices"
3905
3906
  },
3906
3907
  {
3908
+ "label": "Alerts",
3907
3909
  "href": "/alerts",
3908
- "icon": "bell",
3909
- "label": "Alerts"
3910
+ "icon": "bell"
3910
3911
  }
3911
3912
  ],
3912
- "type": "dashboard-layout",
3913
3913
  "appName": "IoT Dashboard",
3914
3914
  "children": [
3915
3915
  {
3916
- "type": "stack",
3917
- "direction": "vertical",
3918
3916
  "children": [
3919
3917
  {
3920
- "direction": "horizontal",
3921
- "type": "stack",
3922
3918
  "gap": "md",
3923
- "justify": "between",
3919
+ "direction": "horizontal",
3924
3920
  "align": "center",
3921
+ "justify": "between",
3925
3922
  "children": [
3926
3923
  {
3927
- "align": "center",
3928
- "direction": "horizontal",
3929
- "type": "stack",
3930
3924
  "children": [
3931
3925
  {
3932
3926
  "type": "icon",
3933
3927
  "name": "activity"
3934
3928
  },
3935
3929
  {
3936
- "variant": "h2",
3937
3930
  "type": "typography",
3931
+ "variant": "h2",
3938
3932
  "content": "DeviceAlert"
3939
3933
  }
3940
3934
  ],
3935
+ "align": "center",
3936
+ "type": "stack",
3937
+ "direction": "horizontal",
3941
3938
  "gap": "md"
3942
3939
  },
3943
3940
  {
3944
- "status": "warning",
3945
- "type": "status-dot",
3946
3941
  "pulse": true,
3942
+ "type": "status-dot",
3943
+ "status": "warning",
3947
3944
  "label": "Circuit Half-Open"
3948
3945
  }
3949
- ]
3946
+ ],
3947
+ "type": "stack"
3950
3948
  },
3951
3949
  {
3952
3950
  "type": "divider"
3953
3951
  },
3954
3952
  {
3955
- "variant": "warning",
3956
3953
  "message": "Testing recovery. Limited requests are being allowed through.",
3954
+ "variant": "warning",
3957
3955
  "type": "alert"
3958
3956
  },
3959
3957
  {
3958
+ "cols": 2.0,
3959
+ "type": "simple-grid",
3960
3960
  "children": [
3961
3961
  {
3962
+ "type": "stat-display",
3962
3963
  "label": "Failures",
3963
3964
  "value": [
3964
3965
  "object/get",
@@ -3967,10 +3968,10 @@
3967
3968
  "@entity"
3968
3969
  ],
3969
3970
  "failureCount"
3970
- ],
3971
- "type": "stat-display"
3971
+ ]
3972
3972
  },
3973
3973
  {
3974
+ "label": "Successes",
3974
3975
  "value": [
3975
3976
  "object/get",
3976
3977
  [
@@ -3979,15 +3980,14 @@
3979
3980
  ],
3980
3981
  "successCount"
3981
3982
  ],
3982
- "label": "Successes",
3983
3983
  "type": "stat-display"
3984
3984
  }
3985
- ],
3986
- "type": "simple-grid",
3987
- "cols": 2.0
3985
+ ]
3988
3986
  }
3989
3987
  ],
3990
- "gap": "lg"
3988
+ "type": "stack",
3989
+ "gap": "lg",
3990
+ "direction": "vertical"
3991
3991
  }
3992
3992
  ]
3993
3993
  }
@@ -4003,15 +4003,15 @@
4003
4003
  "render-ui",
4004
4004
  "main",
4005
4005
  {
4006
+ "type": "dashboard-layout",
4007
+ "appName": "IoT Dashboard",
4006
4008
  "children": [
4007
4009
  {
4008
- "gap": "lg",
4010
+ "direction": "vertical",
4011
+ "type": "stack",
4009
4012
  "children": [
4010
4013
  {
4011
4014
  "gap": "md",
4012
- "align": "center",
4013
- "type": "stack",
4014
- "direction": "horizontal",
4015
4015
  "children": [
4016
4016
  {
4017
4017
  "direction": "horizontal",
@@ -4031,12 +4031,15 @@
4031
4031
  "gap": "md"
4032
4032
  },
4033
4033
  {
4034
+ "type": "status-dot",
4034
4035
  "pulse": false,
4035
- "label": "Circuit Closed",
4036
4036
  "status": "online",
4037
- "type": "status-dot"
4037
+ "label": "Circuit Closed"
4038
4038
  }
4039
4039
  ],
4040
+ "type": "stack",
4041
+ "align": "center",
4042
+ "direction": "horizontal",
4040
4043
  "justify": "between"
4041
4044
  },
4042
4045
  {
@@ -4044,13 +4047,15 @@
4044
4047
  },
4045
4048
  {
4046
4049
  "message": "Service is healthy. All requests are being processed.",
4047
- "type": "alert",
4048
- "variant": "success"
4050
+ "variant": "success",
4051
+ "type": "alert"
4049
4052
  },
4050
4053
  {
4054
+ "type": "simple-grid",
4051
4055
  "children": [
4052
4056
  {
4053
4057
  "label": "Failures",
4058
+ "type": "stat-display",
4054
4059
  "value": [
4055
4060
  "object/get",
4056
4061
  [
@@ -4058,12 +4063,11 @@
4058
4063
  "@entity"
4059
4064
  ],
4060
4065
  "failureCount"
4061
- ],
4062
- "type": "stat-display"
4066
+ ]
4063
4067
  },
4064
4068
  {
4065
- "label": "Successes",
4066
4069
  "type": "stat-display",
4070
+ "label": "Successes",
4067
4071
  "value": [
4068
4072
  "object/get",
4069
4073
  [
@@ -4074,38 +4078,36 @@
4074
4078
  ]
4075
4079
  }
4076
4080
  ],
4077
- "type": "simple-grid",
4078
4081
  "cols": 2.0
4079
4082
  },
4080
4083
  {
4081
- "type": "meter",
4082
- "min": 0.0,
4083
- "max": [
4084
+ "value": [
4084
4085
  "object/get",
4085
4086
  [
4086
4087
  "array/first",
4087
4088
  "@entity"
4088
4089
  ],
4089
- "threshold"
4090
+ "failureCount"
4090
4091
  ],
4091
- "value": [
4092
+ "min": 0.0,
4093
+ "max": [
4092
4094
  "object/get",
4093
4095
  [
4094
4096
  "array/first",
4095
4097
  "@entity"
4096
4098
  ],
4097
- "failureCount"
4098
- ]
4099
+ "threshold"
4100
+ ],
4101
+ "type": "meter"
4099
4102
  }
4100
4103
  ],
4101
- "direction": "vertical",
4102
- "type": "stack"
4104
+ "gap": "lg"
4103
4105
  }
4104
4106
  ],
4105
4107
  "navItems": [
4106
4108
  {
4107
- "label": "Sensors",
4108
4109
  "href": "/sensors",
4110
+ "label": "Sensors",
4109
4111
  "icon": "layout-list"
4110
4112
  },
4111
4113
  {
@@ -4114,13 +4116,11 @@
4114
4116
  "label": "Devices"
4115
4117
  },
4116
4118
  {
4117
- "href": "/alerts",
4118
4119
  "label": "Alerts",
4119
- "icon": "bell"
4120
+ "icon": "bell",
4121
+ "href": "/alerts"
4120
4122
  }
4121
- ],
4122
- "type": "dashboard-layout",
4123
- "appName": "IoT Dashboard"
4123
+ ]
4124
4124
  }
4125
4125
  ]
4126
4126
  ]
@@ -4136,56 +4136,58 @@
4136
4136
  {
4137
4137
  "navItems": [
4138
4138
  {
4139
+ "icon": "layout-list",
4139
4140
  "href": "/sensors",
4140
- "label": "Sensors",
4141
- "icon": "layout-list"
4141
+ "label": "Sensors"
4142
4142
  },
4143
4143
  {
4144
- "label": "Devices",
4144
+ "href": "/devices",
4145
4145
  "icon": "cpu",
4146
- "href": "/devices"
4146
+ "label": "Devices"
4147
4147
  },
4148
4148
  {
4149
- "icon": "bell",
4150
4149
  "href": "/alerts",
4150
+ "icon": "bell",
4151
4151
  "label": "Alerts"
4152
4152
  }
4153
4153
  ],
4154
+ "type": "dashboard-layout",
4155
+ "appName": "IoT Dashboard",
4154
4156
  "children": [
4155
4157
  {
4156
- "gap": "lg",
4158
+ "direction": "vertical",
4157
4159
  "children": [
4158
4160
  {
4159
- "type": "stack",
4160
4161
  "align": "center",
4162
+ "gap": "md",
4163
+ "type": "stack",
4164
+ "justify": "between",
4161
4165
  "children": [
4162
4166
  {
4163
- "type": "stack",
4167
+ "align": "center",
4164
4168
  "direction": "horizontal",
4165
4169
  "gap": "md",
4166
- "align": "center",
4167
4170
  "children": [
4168
4171
  {
4169
4172
  "type": "icon",
4170
4173
  "name": "bell"
4171
4174
  },
4172
4175
  {
4173
- "content": "DeviceAlert",
4176
+ "type": "typography",
4174
4177
  "variant": "h2",
4175
- "type": "typography"
4178
+ "content": "DeviceAlert"
4176
4179
  }
4177
- ]
4180
+ ],
4181
+ "type": "stack"
4178
4182
  },
4179
4183
  {
4180
- "label": "Circuit Closed",
4181
- "type": "status-dot",
4182
4184
  "pulse": false,
4183
- "status": "online"
4185
+ "status": "online",
4186
+ "type": "status-dot",
4187
+ "label": "Circuit Closed"
4184
4188
  }
4185
4189
  ],
4186
- "direction": "horizontal",
4187
- "gap": "md",
4188
- "justify": "between"
4190
+ "direction": "horizontal"
4189
4191
  },
4190
4192
  {
4191
4193
  "type": "divider"
@@ -4199,6 +4201,7 @@
4199
4201
  "children": [
4200
4202
  {
4201
4203
  "label": "Failures",
4204
+ "type": "stat-display",
4202
4205
  "value": [
4203
4206
  "object/get",
4204
4207
  [
@@ -4206,8 +4209,7 @@
4206
4209
  "@entity"
4207
4210
  ],
4208
4211
  "failureCount"
4209
- ],
4210
- "type": "stat-display"
4212
+ ]
4211
4213
  },
4212
4214
  {
4213
4215
  "label": "Successes",
@@ -4226,32 +4228,30 @@
4226
4228
  "type": "simple-grid"
4227
4229
  },
4228
4230
  {
4229
- "value": [
4231
+ "min": 0.0,
4232
+ "max": [
4230
4233
  "object/get",
4231
4234
  [
4232
4235
  "array/first",
4233
4236
  "@entity"
4234
4237
  ],
4235
- "failureCount"
4238
+ "threshold"
4236
4239
  ],
4237
- "min": 0.0,
4238
- "max": [
4240
+ "value": [
4239
4241
  "object/get",
4240
4242
  [
4241
4243
  "array/first",
4242
4244
  "@entity"
4243
4245
  ],
4244
- "threshold"
4246
+ "failureCount"
4245
4247
  ],
4246
4248
  "type": "meter"
4247
4249
  }
4248
4250
  ],
4249
4251
  "type": "stack",
4250
- "direction": "vertical"
4252
+ "gap": "lg"
4251
4253
  }
4252
- ],
4253
- "appName": "IoT Dashboard",
4254
- "type": "dashboard-layout"
4254
+ ]
4255
4255
  }
4256
4256
  ]
4257
4257
  ]
@@ -4267,39 +4267,40 @@
4267
4267
  {
4268
4268
  "children": [
4269
4269
  {
4270
+ "direction": "vertical",
4270
4271
  "gap": "lg",
4271
4272
  "children": [
4272
4273
  {
4274
+ "align": "center",
4275
+ "justify": "between",
4273
4276
  "children": [
4274
4277
  {
4275
- "align": "center",
4276
4278
  "type": "stack",
4277
- "gap": "md",
4278
- "direction": "horizontal",
4279
4279
  "children": [
4280
4280
  {
4281
- "type": "icon",
4282
- "name": "alert-triangle"
4281
+ "name": "alert-triangle",
4282
+ "type": "icon"
4283
4283
  },
4284
4284
  {
4285
+ "variant": "h2",
4285
4286
  "type": "typography",
4286
- "content": "DeviceAlert",
4287
- "variant": "h2"
4287
+ "content": "DeviceAlert"
4288
4288
  }
4289
- ]
4289
+ ],
4290
+ "direction": "horizontal",
4291
+ "gap": "md",
4292
+ "align": "center"
4290
4293
  },
4291
4294
  {
4292
- "status": "critical",
4293
- "label": "Circuit Open",
4294
4295
  "pulse": true,
4295
- "type": "status-dot"
4296
+ "type": "status-dot",
4297
+ "label": "Circuit Open",
4298
+ "status": "critical"
4296
4299
  }
4297
4300
  ],
4298
- "type": "stack",
4299
4301
  "gap": "md",
4300
- "justify": "between",
4301
- "direction": "horizontal",
4302
- "align": "center"
4302
+ "type": "stack",
4303
+ "direction": "horizontal"
4303
4304
  },
4304
4305
  {
4305
4306
  "type": "divider"
@@ -4310,12 +4311,10 @@
4310
4311
  "variant": "error"
4311
4312
  },
4312
4313
  {
4313
- "type": "simple-grid",
4314
4314
  "cols": 2.0,
4315
4315
  "children": [
4316
4316
  {
4317
4317
  "label": "Failures",
4318
- "type": "stat-display",
4319
4318
  "value": [
4320
4319
  "object/get",
4321
4320
  [
@@ -4323,11 +4322,12 @@
4323
4322
  "@entity"
4324
4323
  ],
4325
4324
  "failureCount"
4326
- ]
4325
+ ],
4326
+ "type": "stat-display"
4327
4327
  },
4328
4328
  {
4329
- "label": "Successes",
4330
4329
  "type": "stat-display",
4330
+ "label": "Successes",
4331
4331
  "value": [
4332
4332
  "object/get",
4333
4333
  [
@@ -4337,9 +4337,12 @@
4337
4337
  "successCount"
4338
4338
  ]
4339
4339
  }
4340
- ]
4340
+ ],
4341
+ "type": "simple-grid"
4341
4342
  },
4342
4343
  {
4344
+ "type": "meter",
4345
+ "min": 0.0,
4343
4346
  "max": [
4344
4347
  "object/get",
4345
4348
  [
@@ -4348,7 +4351,6 @@
4348
4351
  ],
4349
4352
  "threshold"
4350
4353
  ],
4351
- "min": 0.0,
4352
4354
  "value": [
4353
4355
  "object/get",
4354
4356
  [
@@ -4356,23 +4358,21 @@
4356
4358
  "@entity"
4357
4359
  ],
4358
4360
  "failureCount"
4359
- ],
4360
- "type": "meter"
4361
+ ]
4361
4362
  },
4362
4363
  {
4363
4364
  "label": "Reset",
4364
- "type": "button",
4365
- "variant": "ghost",
4365
+ "action": "RESET",
4366
4366
  "icon": "rotate-ccw",
4367
- "action": "RESET"
4367
+ "variant": "ghost",
4368
+ "type": "button"
4368
4369
  }
4369
4370
  ],
4370
- "type": "stack",
4371
- "direction": "vertical"
4371
+ "type": "stack"
4372
4372
  }
4373
4373
  ],
4374
- "appName": "IoT Dashboard",
4375
4374
  "type": "dashboard-layout",
4375
+ "appName": "IoT Dashboard",
4376
4376
  "navItems": [
4377
4377
  {
4378
4378
  "label": "Sensors",
@@ -4380,9 +4380,9 @@
4380
4380
  "icon": "layout-list"
4381
4381
  },
4382
4382
  {
4383
- "href": "/devices",
4384
4383
  "icon": "cpu",
4385
- "label": "Devices"
4384
+ "label": "Devices",
4385
+ "href": "/devices"
4386
4386
  },
4387
4387
  {
4388
4388
  "href": "/alerts",
@@ -4403,6 +4403,8 @@
4403
4403
  "render-ui",
4404
4404
  "main",
4405
4405
  {
4406
+ "appName": "IoT Dashboard",
4407
+ "type": "dashboard-layout",
4406
4408
  "navItems": [
4407
4409
  {
4408
4410
  "href": "/sensors",
@@ -4410,8 +4412,8 @@
4410
4412
  "label": "Sensors"
4411
4413
  },
4412
4414
  {
4413
- "label": "Devices",
4414
4415
  "icon": "cpu",
4416
+ "label": "Devices",
4415
4417
  "href": "/devices"
4416
4418
  },
4417
4419
  {
@@ -4420,54 +4422,56 @@
4420
4422
  "icon": "bell"
4421
4423
  }
4422
4424
  ],
4423
- "appName": "IoT Dashboard",
4424
4425
  "children": [
4425
4426
  {
4426
4427
  "gap": "lg",
4428
+ "type": "stack",
4427
4429
  "children": [
4428
4430
  {
4429
- "type": "stack",
4431
+ "justify": "between",
4430
4432
  "gap": "md",
4433
+ "align": "center",
4434
+ "direction": "horizontal",
4431
4435
  "children": [
4432
4436
  {
4433
- "direction": "horizontal",
4434
4437
  "children": [
4435
4438
  {
4436
- "name": "bell",
4437
- "type": "icon"
4439
+ "type": "icon",
4440
+ "name": "bell"
4438
4441
  },
4439
4442
  {
4440
- "content": "DeviceAlert",
4443
+ "variant": "h2",
4441
4444
  "type": "typography",
4442
- "variant": "h2"
4445
+ "content": "DeviceAlert"
4443
4446
  }
4444
4447
  ],
4448
+ "direction": "horizontal",
4449
+ "align": "center",
4445
4450
  "type": "stack",
4446
- "gap": "md",
4447
- "align": "center"
4451
+ "gap": "md"
4448
4452
  },
4449
4453
  {
4450
- "label": "Circuit Closed",
4454
+ "type": "status-dot",
4451
4455
  "status": "online",
4452
- "pulse": false,
4453
- "type": "status-dot"
4456
+ "label": "Circuit Closed",
4457
+ "pulse": false
4454
4458
  }
4455
4459
  ],
4456
- "direction": "horizontal",
4457
- "align": "center",
4458
- "justify": "between"
4460
+ "type": "stack"
4459
4461
  },
4460
4462
  {
4461
4463
  "type": "divider"
4462
4464
  },
4463
4465
  {
4464
4466
  "type": "alert",
4465
- "message": "Service is healthy. All requests are being processed.",
4466
- "variant": "success"
4467
+ "variant": "success",
4468
+ "message": "Service is healthy. All requests are being processed."
4467
4469
  },
4468
4470
  {
4471
+ "type": "simple-grid",
4469
4472
  "children": [
4470
4473
  {
4474
+ "label": "Failures",
4471
4475
  "value": [
4472
4476
  "object/get",
4473
4477
  [
@@ -4476,12 +4480,10 @@
4476
4480
  ],
4477
4481
  "failureCount"
4478
4482
  ],
4479
- "type": "stat-display",
4480
- "label": "Failures"
4483
+ "type": "stat-display"
4481
4484
  },
4482
4485
  {
4483
4486
  "type": "stat-display",
4484
- "label": "Successes",
4485
4487
  "value": [
4486
4488
  "object/get",
4487
4489
  [
@@ -4489,14 +4491,13 @@
4489
4491
  "@entity"
4490
4492
  ],
4491
4493
  "successCount"
4492
- ]
4494
+ ],
4495
+ "label": "Successes"
4493
4496
  }
4494
4497
  ],
4495
- "type": "simple-grid",
4496
4498
  "cols": 2.0
4497
4499
  },
4498
4500
  {
4499
- "type": "meter",
4500
4501
  "value": [
4501
4502
  "object/get",
4502
4503
  [
@@ -4513,14 +4514,13 @@
4513
4514
  ],
4514
4515
  "threshold"
4515
4516
  ],
4517
+ "type": "meter",
4516
4518
  "min": 0.0
4517
4519
  }
4518
4520
  ],
4519
- "type": "stack",
4520
4521
  "direction": "vertical"
4521
4522
  }
4522
- ],
4523
- "type": "dashboard-layout"
4523
+ ]
4524
4524
  }
4525
4525
  ]
4526
4526
  ]