@almadar/std 3.2.2 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/behaviors/exports/atoms/std-browse.orb +38 -45
  2. package/behaviors/exports/atoms/std-calendar.orb +770 -0
  3. package/behaviors/exports/atoms/std-display.orb +1175 -510
  4. package/behaviors/exports/atoms/std-drawer.orb +235 -133
  5. package/behaviors/exports/atoms/std-flip-card.orb +596 -0
  6. package/behaviors/exports/atoms/std-gallery.orb +382 -0
  7. package/behaviors/exports/atoms/std-loading.orb +131 -103
  8. package/behaviors/exports/atoms/std-modal.orb +5 -24
  9. package/behaviors/exports/atoms/std-notification.orb +71 -0
  10. package/behaviors/exports/atoms/std-pagination.orb +32 -40
  11. package/behaviors/exports/atoms/std-rating.orb +328 -0
  12. package/behaviors/exports/atoms/std-score.orb +41 -0
  13. package/behaviors/exports/atoms/std-search.orb +44 -30
  14. package/behaviors/exports/atoms/std-selection.orb +26 -34
  15. package/behaviors/exports/atoms/std-sort.orb +82 -60
  16. package/behaviors/exports/atoms/std-text-effects.orb +658 -0
  17. package/behaviors/exports/atoms/std-theme.orb +573 -0
  18. package/behaviors/exports/atoms/std-upload.orb +535 -0
  19. package/behaviors/exports/atoms/std-wizard.orb +664 -224
  20. package/behaviors/exports/molecules/std-builder-game.orb +43 -3
  21. package/behaviors/exports/molecules/std-cart.orb +319 -101
  22. package/behaviors/exports/molecules/std-classifier-game.orb +43 -3
  23. package/behaviors/exports/molecules/std-debugger-game.orb +43 -3
  24. package/behaviors/exports/molecules/std-detail.orb +46 -49
  25. package/behaviors/exports/molecules/std-event-handler-game.orb +43 -3
  26. package/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  27. package/behaviors/exports/molecules/std-geospatial.orb +48 -48
  28. package/behaviors/exports/molecules/std-inventory.orb +70 -50
  29. package/behaviors/exports/molecules/std-list.orb +174 -197
  30. package/behaviors/exports/molecules/std-messaging.orb +35 -50
  31. package/behaviors/exports/molecules/std-negotiator-game.orb +43 -3
  32. package/behaviors/exports/molecules/std-platformer-game.orb +18 -2
  33. package/behaviors/exports/molecules/std-puzzle-game.orb +32 -6
  34. package/behaviors/exports/molecules/std-quiz.orb +1045 -0
  35. package/behaviors/exports/molecules/std-sequencer-game.orb +43 -3
  36. package/behaviors/exports/molecules/std-simulator-game.orb +43 -3
  37. package/behaviors/exports/molecules/std-turn-based-battle.orb +26 -0
  38. package/behaviors/exports/organisms/std-api-gateway.orb +2326 -1320
  39. package/behaviors/exports/organisms/std-arcade-game.orb +377 -265
  40. package/behaviors/exports/organisms/std-booking-system.orb +3144 -1855
  41. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2107 -1122
  42. package/behaviors/exports/organisms/std-cms.orb +929 -822
  43. package/behaviors/exports/organisms/std-coding-academy.orb +1347 -458
  44. package/behaviors/exports/organisms/std-crm.orb +2302 -1282
  45. package/behaviors/exports/organisms/std-devops-dashboard.orb +3902 -2005
  46. package/behaviors/exports/organisms/std-ecommerce.orb +2432 -1630
  47. package/behaviors/exports/organisms/std-finance-tracker.orb +1674 -846
  48. package/behaviors/exports/organisms/std-healthcare.orb +3545 -1992
  49. package/behaviors/exports/organisms/std-helpdesk.orb +1853 -940
  50. package/behaviors/exports/organisms/std-hr-portal.orb +3249 -1939
  51. package/behaviors/exports/organisms/std-iot-dashboard.orb +2422 -1418
  52. package/behaviors/exports/organisms/std-lms.orb +2495 -1435
  53. package/behaviors/exports/organisms/std-logic-training.orb +220 -66
  54. package/behaviors/exports/organisms/std-platformer-app.orb +345 -214
  55. package/behaviors/exports/organisms/std-project-manager.orb +2217 -1190
  56. package/behaviors/exports/organisms/std-puzzle-app.orb +228 -103
  57. package/behaviors/exports/organisms/std-realtime-chat.orb +1887 -1051
  58. package/behaviors/exports/organisms/std-rpg-game.orb +1170 -948
  59. package/behaviors/exports/organisms/std-social-feed.orb +184 -172
  60. package/behaviors/exports/organisms/std-stem-lab.orb +1308 -482
  61. package/behaviors/exports/organisms/std-strategy-game.orb +1520 -696
  62. package/behaviors/exports/organisms/std-trading-dashboard.orb +1884 -904
  63. package/behaviors/exports/validation-report.json +0 -747
  64. package/dist/behaviors/exports/atoms/std-browse.orb +38 -45
  65. package/dist/behaviors/exports/atoms/std-calendar.orb +770 -0
  66. package/dist/behaviors/exports/atoms/std-display.orb +1175 -510
  67. package/dist/behaviors/exports/atoms/std-drawer.orb +235 -133
  68. package/dist/behaviors/exports/atoms/std-flip-card.orb +596 -0
  69. package/dist/behaviors/exports/atoms/std-gallery.orb +382 -0
  70. package/dist/behaviors/exports/atoms/std-loading.orb +131 -103
  71. package/dist/behaviors/exports/atoms/std-modal.orb +5 -24
  72. package/dist/behaviors/exports/atoms/std-notification.orb +71 -0
  73. package/dist/behaviors/exports/atoms/std-pagination.orb +32 -40
  74. package/dist/behaviors/exports/atoms/std-rating.orb +328 -0
  75. package/dist/behaviors/exports/atoms/std-score.orb +41 -0
  76. package/dist/behaviors/exports/atoms/std-search.orb +44 -30
  77. package/dist/behaviors/exports/atoms/std-selection.orb +26 -34
  78. package/dist/behaviors/exports/atoms/std-sort.orb +82 -60
  79. package/dist/behaviors/exports/atoms/std-text-effects.orb +658 -0
  80. package/dist/behaviors/exports/atoms/std-theme.orb +573 -0
  81. package/dist/behaviors/exports/atoms/std-upload.orb +535 -0
  82. package/dist/behaviors/exports/atoms/std-wizard.orb +664 -224
  83. package/dist/behaviors/exports/molecules/std-builder-game.orb +43 -3
  84. package/dist/behaviors/exports/molecules/std-cart.orb +319 -101
  85. package/dist/behaviors/exports/molecules/std-classifier-game.orb +43 -3
  86. package/dist/behaviors/exports/molecules/std-debugger-game.orb +43 -3
  87. package/dist/behaviors/exports/molecules/std-detail.orb +46 -49
  88. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +43 -3
  89. package/dist/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  90. package/dist/behaviors/exports/molecules/std-geospatial.orb +48 -48
  91. package/dist/behaviors/exports/molecules/std-inventory.orb +70 -50
  92. package/dist/behaviors/exports/molecules/std-list.orb +174 -197
  93. package/dist/behaviors/exports/molecules/std-messaging.orb +35 -50
  94. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +43 -3
  95. package/dist/behaviors/exports/molecules/std-platformer-game.orb +18 -2
  96. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +32 -6
  97. package/dist/behaviors/exports/molecules/std-quiz.orb +1045 -0
  98. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +43 -3
  99. package/dist/behaviors/exports/molecules/std-simulator-game.orb +43 -3
  100. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +26 -0
  101. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2326 -1320
  102. package/dist/behaviors/exports/organisms/std-arcade-game.orb +377 -265
  103. package/dist/behaviors/exports/organisms/std-booking-system.orb +3144 -1855
  104. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2107 -1122
  105. package/dist/behaviors/exports/organisms/std-cms.orb +929 -822
  106. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1347 -458
  107. package/dist/behaviors/exports/organisms/std-crm.orb +2302 -1282
  108. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3902 -2005
  109. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2432 -1630
  110. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +1674 -846
  111. package/dist/behaviors/exports/organisms/std-healthcare.orb +3545 -1992
  112. package/dist/behaviors/exports/organisms/std-helpdesk.orb +1853 -940
  113. package/dist/behaviors/exports/organisms/std-hr-portal.orb +3249 -1939
  114. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2422 -1418
  115. package/dist/behaviors/exports/organisms/std-lms.orb +2495 -1435
  116. package/dist/behaviors/exports/organisms/std-logic-training.orb +220 -66
  117. package/dist/behaviors/exports/organisms/std-platformer-app.orb +345 -214
  118. package/dist/behaviors/exports/organisms/std-project-manager.orb +2217 -1190
  119. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +228 -103
  120. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +1887 -1051
  121. package/dist/behaviors/exports/organisms/std-rpg-game.orb +1170 -948
  122. package/dist/behaviors/exports/organisms/std-social-feed.orb +184 -172
  123. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1308 -482
  124. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1520 -696
  125. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +1884 -904
  126. package/dist/behaviors/exports/validation-report.json +0 -747
  127. package/dist/behaviors/functions/index.d.ts +270 -1
  128. package/dist/behaviors/functions/index.js +3163 -807
  129. package/dist/behaviors/functions/index.js.map +1 -1
  130. package/dist/behaviors/index.d.ts +1 -1
  131. package/dist/behaviors/index.js +3164 -808
  132. package/dist/behaviors/index.js.map +1 -1
  133. package/dist/exports/atoms/std-browse.orb +38 -45
  134. package/dist/exports/atoms/std-calendar.orb +770 -0
  135. package/dist/exports/atoms/std-display.orb +1175 -510
  136. package/dist/exports/atoms/std-drawer.orb +235 -133
  137. package/dist/exports/atoms/std-flip-card.orb +596 -0
  138. package/dist/exports/atoms/std-gallery.orb +382 -0
  139. package/dist/exports/atoms/std-loading.orb +131 -103
  140. package/dist/exports/atoms/std-modal.orb +5 -24
  141. package/dist/exports/atoms/std-notification.orb +71 -0
  142. package/dist/exports/atoms/std-pagination.orb +32 -40
  143. package/dist/exports/atoms/std-rating.orb +328 -0
  144. package/dist/exports/atoms/std-score.orb +41 -0
  145. package/dist/exports/atoms/std-search.orb +44 -30
  146. package/dist/exports/atoms/std-selection.orb +26 -34
  147. package/dist/exports/atoms/std-sort.orb +82 -60
  148. package/dist/exports/atoms/std-text-effects.orb +658 -0
  149. package/dist/exports/atoms/std-theme.orb +573 -0
  150. package/dist/exports/atoms/std-upload.orb +535 -0
  151. package/dist/exports/atoms/std-wizard.orb +664 -224
  152. package/dist/exports/molecules/std-builder-game.orb +43 -3
  153. package/dist/exports/molecules/std-cart.orb +319 -101
  154. package/dist/exports/molecules/std-classifier-game.orb +43 -3
  155. package/dist/exports/molecules/std-debugger-game.orb +43 -3
  156. package/dist/exports/molecules/std-detail.orb +46 -49
  157. package/dist/exports/molecules/std-event-handler-game.orb +43 -3
  158. package/dist/exports/molecules/std-form-advanced.orb +654 -0
  159. package/dist/exports/molecules/std-geospatial.orb +48 -48
  160. package/dist/exports/molecules/std-inventory.orb +70 -50
  161. package/dist/exports/molecules/std-list.orb +174 -197
  162. package/dist/exports/molecules/std-messaging.orb +35 -50
  163. package/dist/exports/molecules/std-negotiator-game.orb +43 -3
  164. package/dist/exports/molecules/std-platformer-game.orb +18 -2
  165. package/dist/exports/molecules/std-puzzle-game.orb +32 -6
  166. package/dist/exports/molecules/std-quiz.orb +1045 -0
  167. package/dist/exports/molecules/std-sequencer-game.orb +43 -3
  168. package/dist/exports/molecules/std-simulator-game.orb +43 -3
  169. package/dist/exports/molecules/std-turn-based-battle.orb +26 -0
  170. package/dist/exports/organisms/std-api-gateway.orb +2326 -1320
  171. package/dist/exports/organisms/std-arcade-game.orb +377 -265
  172. package/dist/exports/organisms/std-booking-system.orb +3144 -1855
  173. package/dist/exports/organisms/std-cicd-pipeline.orb +2107 -1122
  174. package/dist/exports/organisms/std-cms.orb +929 -822
  175. package/dist/exports/organisms/std-coding-academy.orb +1347 -458
  176. package/dist/exports/organisms/std-crm.orb +2302 -1282
  177. package/dist/exports/organisms/std-devops-dashboard.orb +3902 -2005
  178. package/dist/exports/organisms/std-ecommerce.orb +2432 -1630
  179. package/dist/exports/organisms/std-finance-tracker.orb +1674 -846
  180. package/dist/exports/organisms/std-healthcare.orb +3545 -1992
  181. package/dist/exports/organisms/std-helpdesk.orb +1853 -940
  182. package/dist/exports/organisms/std-hr-portal.orb +3249 -1939
  183. package/dist/exports/organisms/std-iot-dashboard.orb +2422 -1418
  184. package/dist/exports/organisms/std-lms.orb +2495 -1435
  185. package/dist/exports/organisms/std-logic-training.orb +220 -66
  186. package/dist/exports/organisms/std-platformer-app.orb +345 -214
  187. package/dist/exports/organisms/std-project-manager.orb +2217 -1190
  188. package/dist/exports/organisms/std-puzzle-app.orb +228 -103
  189. package/dist/exports/organisms/std-realtime-chat.orb +1887 -1051
  190. package/dist/exports/organisms/std-rpg-game.orb +1170 -948
  191. package/dist/exports/organisms/std-social-feed.orb +184 -172
  192. package/dist/exports/organisms/std-stem-lab.orb +1308 -482
  193. package/dist/exports/organisms/std-strategy-game.orb +1520 -696
  194. package/dist/exports/organisms/std-trading-dashboard.orb +1884 -904
  195. package/dist/exports/validation-report.json +0 -747
  196. package/dist/index.d.ts +1 -1
  197. package/dist/index.js +3166 -810
  198. package/dist/index.js.map +1 -1
  199. package/package.json +1 -1
@@ -26,12 +26,24 @@
26
26
  {
27
27
  "name": "priority",
28
28
  "type": "string",
29
- "default": "medium"
29
+ "default": "medium",
30
+ "values": [
31
+ "low",
32
+ "medium",
33
+ "high",
34
+ "critical"
35
+ ]
30
36
  },
31
37
  {
32
38
  "name": "status",
33
39
  "type": "string",
34
- "default": "open"
40
+ "default": "open",
41
+ "values": [
42
+ "open",
43
+ "in-progress",
44
+ "resolved",
45
+ "closed"
46
+ ]
35
47
  },
36
48
  {
37
49
  "name": "assignee",
@@ -156,120 +168,145 @@
156
168
  "render-ui",
157
169
  "main",
158
170
  {
159
- "type": "stack",
160
- "direction": "vertical",
161
- "gap": "lg",
171
+ "type": "dashboard-layout",
172
+ "appName": "Helpdesk",
173
+ "navItems": [
174
+ {
175
+ "label": "Tickets",
176
+ "href": "/tickets",
177
+ "icon": "inbox"
178
+ },
179
+ {
180
+ "label": "Responses",
181
+ "href": "/responses",
182
+ "icon": "message-circle"
183
+ },
184
+ {
185
+ "label": "Metrics",
186
+ "href": "/metrics",
187
+ "icon": "layout-list"
188
+ }
189
+ ],
162
190
  "children": [
163
191
  {
164
192
  "type": "stack",
165
- "direction": "horizontal",
166
- "gap": "md",
167
- "justify": "space-between",
193
+ "direction": "vertical",
194
+ "gap": "lg",
195
+ "className": "max-w-5xl mx-auto w-full",
168
196
  "children": [
169
197
  {
170
198
  "type": "stack",
171
199
  "direction": "horizontal",
172
- "gap": "sm",
200
+ "gap": "md",
201
+ "justify": "space-between",
173
202
  "align": "center",
174
203
  "children": [
175
204
  {
176
- "type": "icon",
177
- "name": "inbox",
178
- "size": "lg"
205
+ "type": "stack",
206
+ "direction": "horizontal",
207
+ "gap": "sm",
208
+ "align": "center",
209
+ "children": [
210
+ {
211
+ "type": "icon",
212
+ "name": "inbox",
213
+ "size": "lg"
214
+ },
215
+ {
216
+ "type": "typography",
217
+ "content": "Tickets",
218
+ "variant": "h2"
219
+ }
220
+ ]
179
221
  },
180
222
  {
181
- "type": "typography",
182
- "content": "Tickets",
183
- "variant": "h2"
223
+ "type": "stack",
224
+ "direction": "horizontal",
225
+ "gap": "sm",
226
+ "children": [
227
+ {
228
+ "type": "button",
229
+ "label": "New Ticket",
230
+ "event": "CREATE",
231
+ "variant": "primary",
232
+ "icon": "plus"
233
+ }
234
+ ]
184
235
  }
185
236
  ]
186
237
  },
187
238
  {
188
- "type": "stack",
189
- "direction": "horizontal",
190
- "gap": "sm",
239
+ "type": "divider"
240
+ },
241
+ {
242
+ "type": "simple-grid",
243
+ "columns": 1,
191
244
  "children": [
192
245
  {
193
- "type": "button",
194
- "label": "New Ticket",
195
- "event": "CREATE",
196
- "variant": "primary",
197
- "icon": "plus"
246
+ "type": "stat-display",
247
+ "label": "Open Tickets",
248
+ "value": [
249
+ "array/len",
250
+ "@entity"
251
+ ],
252
+ "icon": "inbox"
198
253
  }
199
254
  ]
200
- }
201
- ]
202
- },
203
- {
204
- "type": "divider"
205
- },
206
- {
207
- "type": "data-grid",
208
- "entity": "Ticket",
209
- "emptyIcon": "inbox",
210
- "emptyTitle": "No tickets yet",
211
- "emptyDescription": "Create your first ticket to get started.",
212
- "itemActions": [
213
- {
214
- "label": "View",
215
- "event": "VIEW"
216
255
  },
217
256
  {
218
- "label": "Edit",
219
- "event": "EDIT"
257
+ "type": "divider"
220
258
  },
221
259
  {
222
- "label": "Delete",
223
- "event": "DELETE",
224
- "variant": "danger"
225
- }
226
- ],
227
- "className": "transition-shadow hover:shadow-md cursor-pointer",
228
- "renderItem": [
229
- "fn",
230
- "item",
231
- {
232
- "type": "stack",
233
- "direction": "vertical",
234
- "gap": "sm",
235
- "children": [
260
+ "type": "data-list",
261
+ "entity": "Ticket",
262
+ "emptyIcon": "inbox",
263
+ "emptyTitle": "No tickets filed",
264
+ "emptyDescription": "Your support queue is clear.",
265
+ "itemActions": [
236
266
  {
237
- "type": "stack",
238
- "direction": "horizontal",
239
- "justify": "space-between",
240
- "align": "center",
241
- "children": [
242
- {
243
- "type": "stack",
244
- "direction": "horizontal",
245
- "gap": "sm",
246
- "align": "center",
247
- "children": [
248
- {
249
- "type": "icon",
250
- "name": "inbox",
251
- "size": "sm"
252
- },
253
- {
254
- "type": "typography",
255
- "variant": "h4",
256
- "content": "@item.subject"
257
- }
258
- ]
259
- },
260
- {
261
- "type": "badge",
262
- "label": "@item.description"
263
- }
264
- ]
267
+ "label": "View",
268
+ "event": "VIEW",
269
+ "variant": "ghost",
270
+ "size": "sm"
265
271
  },
266
272
  {
267
- "type": "typography",
268
- "variant": "caption",
269
- "color": "muted",
270
- "content": "@item.priority"
273
+ "label": "Edit",
274
+ "event": "EDIT",
275
+ "variant": "ghost",
276
+ "size": "sm"
277
+ },
278
+ {
279
+ "label": "Delete",
280
+ "event": "DELETE",
281
+ "variant": "danger",
282
+ "size": "sm"
271
283
  }
272
- ]
284
+ ],
285
+ "columns": [
286
+ {
287
+ "name": "subject",
288
+ "variant": "h3",
289
+ "icon": "inbox"
290
+ },
291
+ {
292
+ "name": "priority",
293
+ "variant": "badge"
294
+ },
295
+ {
296
+ "name": "status",
297
+ "variant": "badge"
298
+ },
299
+ {
300
+ "name": "assignee",
301
+ "variant": "body"
302
+ },
303
+ {
304
+ "name": "description",
305
+ "variant": "caption"
306
+ }
307
+ ],
308
+ "variant": "card",
309
+ "gap": "sm"
273
310
  }
274
311
  ]
275
312
  }
@@ -393,120 +430,145 @@
393
430
  "render-ui",
394
431
  "main",
395
432
  {
396
- "type": "stack",
397
- "direction": "vertical",
398
- "gap": "lg",
433
+ "type": "dashboard-layout",
434
+ "appName": "Helpdesk",
435
+ "navItems": [
436
+ {
437
+ "label": "Tickets",
438
+ "href": "/tickets",
439
+ "icon": "inbox"
440
+ },
441
+ {
442
+ "label": "Responses",
443
+ "href": "/responses",
444
+ "icon": "message-circle"
445
+ },
446
+ {
447
+ "label": "Metrics",
448
+ "href": "/metrics",
449
+ "icon": "layout-list"
450
+ }
451
+ ],
399
452
  "children": [
400
453
  {
401
454
  "type": "stack",
402
- "direction": "horizontal",
403
- "gap": "md",
404
- "justify": "space-between",
455
+ "direction": "vertical",
456
+ "gap": "lg",
457
+ "className": "max-w-5xl mx-auto w-full",
405
458
  "children": [
406
459
  {
407
460
  "type": "stack",
408
461
  "direction": "horizontal",
409
- "gap": "sm",
462
+ "gap": "md",
463
+ "justify": "space-between",
410
464
  "align": "center",
411
465
  "children": [
412
466
  {
413
- "type": "icon",
414
- "name": "inbox",
415
- "size": "lg"
467
+ "type": "stack",
468
+ "direction": "horizontal",
469
+ "gap": "sm",
470
+ "align": "center",
471
+ "children": [
472
+ {
473
+ "type": "icon",
474
+ "name": "inbox",
475
+ "size": "lg"
476
+ },
477
+ {
478
+ "type": "typography",
479
+ "content": "Tickets",
480
+ "variant": "h2"
481
+ }
482
+ ]
416
483
  },
417
484
  {
418
- "type": "typography",
419
- "content": "Tickets",
420
- "variant": "h2"
485
+ "type": "stack",
486
+ "direction": "horizontal",
487
+ "gap": "sm",
488
+ "children": [
489
+ {
490
+ "type": "button",
491
+ "label": "New Ticket",
492
+ "event": "CREATE",
493
+ "variant": "primary",
494
+ "icon": "plus"
495
+ }
496
+ ]
421
497
  }
422
498
  ]
423
499
  },
424
500
  {
425
- "type": "stack",
426
- "direction": "horizontal",
427
- "gap": "sm",
501
+ "type": "divider"
502
+ },
503
+ {
504
+ "type": "simple-grid",
505
+ "columns": 1,
428
506
  "children": [
429
507
  {
430
- "type": "button",
431
- "label": "New Ticket",
432
- "event": "CREATE",
433
- "variant": "primary",
434
- "icon": "plus"
508
+ "type": "stat-display",
509
+ "label": "Open Tickets",
510
+ "value": [
511
+ "array/len",
512
+ "@entity"
513
+ ],
514
+ "icon": "inbox"
435
515
  }
436
516
  ]
437
- }
438
- ]
439
- },
440
- {
441
- "type": "divider"
442
- },
443
- {
444
- "type": "data-grid",
445
- "entity": "Ticket",
446
- "emptyIcon": "inbox",
447
- "emptyTitle": "No tickets yet",
448
- "emptyDescription": "Create your first ticket to get started.",
449
- "itemActions": [
450
- {
451
- "label": "View",
452
- "event": "VIEW"
453
517
  },
454
518
  {
455
- "label": "Edit",
456
- "event": "EDIT"
519
+ "type": "divider"
457
520
  },
458
521
  {
459
- "label": "Delete",
460
- "event": "DELETE",
461
- "variant": "danger"
462
- }
463
- ],
464
- "className": "transition-shadow hover:shadow-md cursor-pointer",
465
- "renderItem": [
466
- "fn",
467
- "item",
468
- {
469
- "type": "stack",
470
- "direction": "vertical",
471
- "gap": "sm",
472
- "children": [
522
+ "type": "data-list",
523
+ "entity": "Ticket",
524
+ "emptyIcon": "inbox",
525
+ "emptyTitle": "No tickets filed",
526
+ "emptyDescription": "Your support queue is clear.",
527
+ "itemActions": [
473
528
  {
474
- "type": "stack",
475
- "direction": "horizontal",
476
- "justify": "space-between",
477
- "align": "center",
478
- "children": [
479
- {
480
- "type": "stack",
481
- "direction": "horizontal",
482
- "gap": "sm",
483
- "align": "center",
484
- "children": [
485
- {
486
- "type": "icon",
487
- "name": "inbox",
488
- "size": "sm"
489
- },
490
- {
491
- "type": "typography",
492
- "variant": "h4",
493
- "content": "@item.subject"
494
- }
495
- ]
496
- },
497
- {
498
- "type": "badge",
499
- "label": "@item.description"
500
- }
501
- ]
529
+ "label": "View",
530
+ "event": "VIEW",
531
+ "variant": "ghost",
532
+ "size": "sm"
502
533
  },
503
534
  {
504
- "type": "typography",
505
- "variant": "caption",
506
- "color": "muted",
507
- "content": "@item.priority"
535
+ "label": "Edit",
536
+ "event": "EDIT",
537
+ "variant": "ghost",
538
+ "size": "sm"
539
+ },
540
+ {
541
+ "label": "Delete",
542
+ "event": "DELETE",
543
+ "variant": "danger",
544
+ "size": "sm"
508
545
  }
509
- ]
546
+ ],
547
+ "columns": [
548
+ {
549
+ "name": "subject",
550
+ "variant": "h3",
551
+ "icon": "inbox"
552
+ },
553
+ {
554
+ "name": "priority",
555
+ "variant": "badge"
556
+ },
557
+ {
558
+ "name": "status",
559
+ "variant": "badge"
560
+ },
561
+ {
562
+ "name": "assignee",
563
+ "variant": "body"
564
+ },
565
+ {
566
+ "name": "description",
567
+ "variant": "caption"
568
+ }
569
+ ],
570
+ "variant": "card",
571
+ "gap": "sm"
510
572
  }
511
573
  ]
512
574
  }
@@ -537,120 +599,145 @@
537
599
  "render-ui",
538
600
  "main",
539
601
  {
540
- "type": "stack",
541
- "direction": "vertical",
542
- "gap": "lg",
602
+ "type": "dashboard-layout",
603
+ "appName": "Helpdesk",
604
+ "navItems": [
605
+ {
606
+ "label": "Tickets",
607
+ "href": "/tickets",
608
+ "icon": "inbox"
609
+ },
610
+ {
611
+ "label": "Responses",
612
+ "href": "/responses",
613
+ "icon": "message-circle"
614
+ },
615
+ {
616
+ "label": "Metrics",
617
+ "href": "/metrics",
618
+ "icon": "layout-list"
619
+ }
620
+ ],
543
621
  "children": [
544
622
  {
545
623
  "type": "stack",
546
- "direction": "horizontal",
547
- "gap": "md",
548
- "justify": "space-between",
624
+ "direction": "vertical",
625
+ "gap": "lg",
626
+ "className": "max-w-5xl mx-auto w-full",
549
627
  "children": [
550
628
  {
551
629
  "type": "stack",
552
630
  "direction": "horizontal",
553
- "gap": "sm",
631
+ "gap": "md",
632
+ "justify": "space-between",
554
633
  "align": "center",
555
634
  "children": [
556
635
  {
557
- "type": "icon",
558
- "name": "inbox",
559
- "size": "lg"
636
+ "type": "stack",
637
+ "direction": "horizontal",
638
+ "gap": "sm",
639
+ "align": "center",
640
+ "children": [
641
+ {
642
+ "type": "icon",
643
+ "name": "inbox",
644
+ "size": "lg"
645
+ },
646
+ {
647
+ "type": "typography",
648
+ "content": "Tickets",
649
+ "variant": "h2"
650
+ }
651
+ ]
560
652
  },
561
653
  {
562
- "type": "typography",
563
- "content": "Tickets",
564
- "variant": "h2"
654
+ "type": "stack",
655
+ "direction": "horizontal",
656
+ "gap": "sm",
657
+ "children": [
658
+ {
659
+ "type": "button",
660
+ "label": "New Ticket",
661
+ "event": "CREATE",
662
+ "variant": "primary",
663
+ "icon": "plus"
664
+ }
665
+ ]
565
666
  }
566
667
  ]
567
668
  },
568
669
  {
569
- "type": "stack",
570
- "direction": "horizontal",
571
- "gap": "sm",
670
+ "type": "divider"
671
+ },
672
+ {
673
+ "type": "simple-grid",
674
+ "columns": 1,
572
675
  "children": [
573
676
  {
574
- "type": "button",
575
- "label": "New Ticket",
576
- "event": "CREATE",
577
- "variant": "primary",
578
- "icon": "plus"
677
+ "type": "stat-display",
678
+ "label": "Open Tickets",
679
+ "value": [
680
+ "array/len",
681
+ "@entity"
682
+ ],
683
+ "icon": "inbox"
579
684
  }
580
685
  ]
581
- }
582
- ]
583
- },
584
- {
585
- "type": "divider"
586
- },
587
- {
588
- "type": "data-grid",
589
- "entity": "Ticket",
590
- "emptyIcon": "inbox",
591
- "emptyTitle": "No tickets yet",
592
- "emptyDescription": "Create your first ticket to get started.",
593
- "itemActions": [
594
- {
595
- "label": "View",
596
- "event": "VIEW"
597
686
  },
598
687
  {
599
- "label": "Edit",
600
- "event": "EDIT"
688
+ "type": "divider"
601
689
  },
602
690
  {
603
- "label": "Delete",
604
- "event": "DELETE",
605
- "variant": "danger"
606
- }
607
- ],
608
- "className": "transition-shadow hover:shadow-md cursor-pointer",
609
- "renderItem": [
610
- "fn",
611
- "item",
612
- {
613
- "type": "stack",
614
- "direction": "vertical",
615
- "gap": "sm",
616
- "children": [
691
+ "type": "data-list",
692
+ "entity": "Ticket",
693
+ "emptyIcon": "inbox",
694
+ "emptyTitle": "No tickets filed",
695
+ "emptyDescription": "Your support queue is clear.",
696
+ "itemActions": [
617
697
  {
618
- "type": "stack",
619
- "direction": "horizontal",
620
- "justify": "space-between",
621
- "align": "center",
622
- "children": [
623
- {
624
- "type": "stack",
625
- "direction": "horizontal",
626
- "gap": "sm",
627
- "align": "center",
628
- "children": [
629
- {
630
- "type": "icon",
631
- "name": "inbox",
632
- "size": "sm"
633
- },
634
- {
635
- "type": "typography",
636
- "variant": "h4",
637
- "content": "@item.subject"
638
- }
639
- ]
640
- },
641
- {
642
- "type": "badge",
643
- "label": "@item.description"
644
- }
645
- ]
698
+ "label": "View",
699
+ "event": "VIEW",
700
+ "variant": "ghost",
701
+ "size": "sm"
646
702
  },
647
703
  {
648
- "type": "typography",
649
- "variant": "caption",
650
- "color": "muted",
651
- "content": "@item.priority"
704
+ "label": "Edit",
705
+ "event": "EDIT",
706
+ "variant": "ghost",
707
+ "size": "sm"
708
+ },
709
+ {
710
+ "label": "Delete",
711
+ "event": "DELETE",
712
+ "variant": "danger",
713
+ "size": "sm"
652
714
  }
653
- ]
715
+ ],
716
+ "columns": [
717
+ {
718
+ "name": "subject",
719
+ "variant": "h3",
720
+ "icon": "inbox"
721
+ },
722
+ {
723
+ "name": "priority",
724
+ "variant": "badge"
725
+ },
726
+ {
727
+ "name": "status",
728
+ "variant": "badge"
729
+ },
730
+ {
731
+ "name": "assignee",
732
+ "variant": "body"
733
+ },
734
+ {
735
+ "name": "description",
736
+ "variant": "caption"
737
+ }
738
+ ],
739
+ "variant": "card",
740
+ "gap": "sm"
654
741
  }
655
742
  ]
656
743
  }
@@ -677,120 +764,145 @@
677
764
  "render-ui",
678
765
  "main",
679
766
  {
680
- "type": "stack",
681
- "direction": "vertical",
682
- "gap": "lg",
767
+ "type": "dashboard-layout",
768
+ "appName": "Helpdesk",
769
+ "navItems": [
770
+ {
771
+ "label": "Tickets",
772
+ "href": "/tickets",
773
+ "icon": "inbox"
774
+ },
775
+ {
776
+ "label": "Responses",
777
+ "href": "/responses",
778
+ "icon": "message-circle"
779
+ },
780
+ {
781
+ "label": "Metrics",
782
+ "href": "/metrics",
783
+ "icon": "layout-list"
784
+ }
785
+ ],
683
786
  "children": [
684
787
  {
685
788
  "type": "stack",
686
- "direction": "horizontal",
687
- "gap": "md",
688
- "justify": "space-between",
789
+ "direction": "vertical",
790
+ "gap": "lg",
791
+ "className": "max-w-5xl mx-auto w-full",
689
792
  "children": [
690
793
  {
691
794
  "type": "stack",
692
795
  "direction": "horizontal",
693
- "gap": "sm",
796
+ "gap": "md",
797
+ "justify": "space-between",
694
798
  "align": "center",
695
799
  "children": [
696
800
  {
697
- "type": "icon",
698
- "name": "inbox",
699
- "size": "lg"
801
+ "type": "stack",
802
+ "direction": "horizontal",
803
+ "gap": "sm",
804
+ "align": "center",
805
+ "children": [
806
+ {
807
+ "type": "icon",
808
+ "name": "inbox",
809
+ "size": "lg"
810
+ },
811
+ {
812
+ "type": "typography",
813
+ "content": "Tickets",
814
+ "variant": "h2"
815
+ }
816
+ ]
700
817
  },
701
818
  {
702
- "type": "typography",
703
- "content": "Tickets",
704
- "variant": "h2"
819
+ "type": "stack",
820
+ "direction": "horizontal",
821
+ "gap": "sm",
822
+ "children": [
823
+ {
824
+ "type": "button",
825
+ "label": "New Ticket",
826
+ "event": "CREATE",
827
+ "variant": "primary",
828
+ "icon": "plus"
829
+ }
830
+ ]
705
831
  }
706
832
  ]
707
833
  },
708
834
  {
709
- "type": "stack",
710
- "direction": "horizontal",
711
- "gap": "sm",
835
+ "type": "divider"
836
+ },
837
+ {
838
+ "type": "simple-grid",
839
+ "columns": 1,
712
840
  "children": [
713
841
  {
714
- "type": "button",
715
- "label": "New Ticket",
716
- "event": "CREATE",
717
- "variant": "primary",
718
- "icon": "plus"
842
+ "type": "stat-display",
843
+ "label": "Open Tickets",
844
+ "value": [
845
+ "array/len",
846
+ "@entity"
847
+ ],
848
+ "icon": "inbox"
719
849
  }
720
850
  ]
721
- }
722
- ]
723
- },
724
- {
725
- "type": "divider"
726
- },
727
- {
728
- "type": "data-grid",
729
- "entity": "Ticket",
730
- "emptyIcon": "inbox",
731
- "emptyTitle": "No tickets yet",
732
- "emptyDescription": "Create your first ticket to get started.",
733
- "itemActions": [
734
- {
735
- "label": "View",
736
- "event": "VIEW"
737
851
  },
738
852
  {
739
- "label": "Edit",
740
- "event": "EDIT"
853
+ "type": "divider"
741
854
  },
742
855
  {
743
- "label": "Delete",
744
- "event": "DELETE",
745
- "variant": "danger"
746
- }
747
- ],
748
- "className": "transition-shadow hover:shadow-md cursor-pointer",
749
- "renderItem": [
750
- "fn",
751
- "item",
752
- {
753
- "type": "stack",
754
- "direction": "vertical",
755
- "gap": "sm",
756
- "children": [
856
+ "type": "data-list",
857
+ "entity": "Ticket",
858
+ "emptyIcon": "inbox",
859
+ "emptyTitle": "No tickets filed",
860
+ "emptyDescription": "Your support queue is clear.",
861
+ "itemActions": [
757
862
  {
758
- "type": "stack",
759
- "direction": "horizontal",
760
- "justify": "space-between",
761
- "align": "center",
762
- "children": [
763
- {
764
- "type": "stack",
765
- "direction": "horizontal",
766
- "gap": "sm",
767
- "align": "center",
768
- "children": [
769
- {
770
- "type": "icon",
771
- "name": "inbox",
772
- "size": "sm"
773
- },
774
- {
775
- "type": "typography",
776
- "variant": "h4",
777
- "content": "@item.subject"
778
- }
779
- ]
780
- },
781
- {
782
- "type": "badge",
783
- "label": "@item.description"
784
- }
785
- ]
863
+ "label": "View",
864
+ "event": "VIEW",
865
+ "variant": "ghost",
866
+ "size": "sm"
786
867
  },
787
868
  {
788
- "type": "typography",
789
- "variant": "caption",
790
- "color": "muted",
791
- "content": "@item.priority"
869
+ "label": "Edit",
870
+ "event": "EDIT",
871
+ "variant": "ghost",
872
+ "size": "sm"
873
+ },
874
+ {
875
+ "label": "Delete",
876
+ "event": "DELETE",
877
+ "variant": "danger",
878
+ "size": "sm"
792
879
  }
793
- ]
880
+ ],
881
+ "columns": [
882
+ {
883
+ "name": "subject",
884
+ "variant": "h3",
885
+ "icon": "inbox"
886
+ },
887
+ {
888
+ "name": "priority",
889
+ "variant": "badge"
890
+ },
891
+ {
892
+ "name": "status",
893
+ "variant": "badge"
894
+ },
895
+ {
896
+ "name": "assignee",
897
+ "variant": "body"
898
+ },
899
+ {
900
+ "name": "description",
901
+ "variant": "caption"
902
+ }
903
+ ],
904
+ "variant": "card",
905
+ "gap": "sm"
794
906
  }
795
907
  ]
796
908
  }
@@ -937,6 +1049,11 @@
937
1049
  "render-ui",
938
1050
  "modal",
939
1051
  null
1052
+ ],
1053
+ [
1054
+ "notify",
1055
+ "Cancelled",
1056
+ "info"
940
1057
  ]
941
1058
  ]
942
1059
  },
@@ -1103,6 +1220,11 @@
1103
1220
  "render-ui",
1104
1221
  "modal",
1105
1222
  null
1223
+ ],
1224
+ [
1225
+ "notify",
1226
+ "Cancelled",
1227
+ "info"
1106
1228
  ]
1107
1229
  ]
1108
1230
  },
@@ -1348,6 +1470,11 @@
1348
1470
  "render-ui",
1349
1471
  "modal",
1350
1472
  null
1473
+ ],
1474
+ [
1475
+ "notify",
1476
+ "Cancelled",
1477
+ "info"
1351
1478
  ]
1352
1479
  ]
1353
1480
  }
@@ -1405,7 +1532,7 @@
1405
1532
  },
1406
1533
  {
1407
1534
  "name": "createdAt",
1408
- "type": "string",
1535
+ "type": "date",
1409
1536
  "default": ""
1410
1537
  }
1411
1538
  ]
@@ -1479,111 +1606,108 @@
1479
1606
  "render-ui",
1480
1607
  "main",
1481
1608
  {
1482
- "type": "stack",
1483
- "direction": "vertical",
1484
- "gap": "lg",
1609
+ "type": "dashboard-layout",
1610
+ "appName": "Helpdesk",
1611
+ "navItems": [
1612
+ {
1613
+ "label": "Tickets",
1614
+ "href": "/tickets",
1615
+ "icon": "inbox"
1616
+ },
1617
+ {
1618
+ "label": "Responses",
1619
+ "href": "/responses",
1620
+ "icon": "message-circle"
1621
+ },
1622
+ {
1623
+ "label": "Metrics",
1624
+ "href": "/metrics",
1625
+ "icon": "layout-list"
1626
+ }
1627
+ ],
1485
1628
  "children": [
1486
1629
  {
1487
1630
  "type": "stack",
1488
- "direction": "horizontal",
1489
- "gap": "md",
1490
- "justify": "space-between",
1631
+ "direction": "vertical",
1632
+ "gap": "lg",
1633
+ "className": "max-w-5xl mx-auto w-full",
1491
1634
  "children": [
1492
1635
  {
1493
1636
  "type": "stack",
1494
1637
  "direction": "horizontal",
1495
- "gap": "sm",
1638
+ "gap": "md",
1639
+ "justify": "space-between",
1496
1640
  "align": "center",
1497
- "children": [
1498
- {
1499
- "type": "icon",
1500
- "name": "message-circle",
1501
- "size": "lg"
1502
- },
1503
- {
1504
- "type": "typography",
1505
- "content": "Responses",
1506
- "variant": "h2"
1507
- }
1508
- ]
1509
- },
1510
- {
1511
- "type": "stack",
1512
- "direction": "horizontal",
1513
- "gap": "sm",
1514
- "children": [
1515
- {
1516
- "type": "button",
1517
- "label": "Compose",
1518
- "event": "COMPOSE",
1519
- "variant": "primary",
1520
- "icon": "edit"
1521
- }
1522
- ]
1523
- }
1524
- ]
1525
- },
1526
- {
1527
- "type": "divider"
1528
- },
1529
- {
1530
- "type": "data-grid",
1531
- "entity": "Response",
1532
- "emptyIcon": "inbox",
1533
- "emptyTitle": "No messages yet",
1534
- "emptyDescription": "Start a new conversation.",
1535
- "itemActions": [
1536
- {
1537
- "label": "View",
1538
- "event": "VIEW"
1539
- }
1540
- ],
1541
- "className": "transition-shadow hover:shadow-md cursor-pointer",
1542
- "renderItem": [
1543
- "fn",
1544
- "item",
1545
- {
1546
- "type": "stack",
1547
- "direction": "vertical",
1548
- "gap": "sm",
1549
1641
  "children": [
1550
1642
  {
1551
1643
  "type": "stack",
1552
1644
  "direction": "horizontal",
1553
- "justify": "space-between",
1645
+ "gap": "sm",
1554
1646
  "align": "center",
1555
1647
  "children": [
1556
1648
  {
1557
- "type": "stack",
1558
- "direction": "horizontal",
1559
- "gap": "sm",
1560
- "align": "center",
1561
- "children": [
1562
- {
1563
- "type": "icon",
1564
- "name": "message-circle",
1565
- "size": "sm"
1566
- },
1567
- {
1568
- "type": "typography",
1569
- "variant": "h4",
1570
- "content": "@item.ticketId"
1571
- }
1572
- ]
1649
+ "type": "icon",
1650
+ "name": "message-circle",
1651
+ "size": "lg"
1573
1652
  },
1574
1653
  {
1575
- "type": "badge",
1576
- "label": "@item.body"
1654
+ "type": "typography",
1655
+ "content": "Responses",
1656
+ "variant": "h2"
1577
1657
  }
1578
1658
  ]
1579
1659
  },
1580
1660
  {
1581
- "type": "typography",
1582
- "variant": "caption",
1583
- "color": "muted",
1584
- "content": "@item.author"
1661
+ "type": "stack",
1662
+ "direction": "horizontal",
1663
+ "gap": "sm",
1664
+ "children": [
1665
+ {
1666
+ "type": "button",
1667
+ "label": "Compose",
1668
+ "event": "COMPOSE",
1669
+ "variant": "primary",
1670
+ "icon": "edit"
1671
+ }
1672
+ ]
1585
1673
  }
1586
1674
  ]
1675
+ },
1676
+ {
1677
+ "type": "divider"
1678
+ },
1679
+ {
1680
+ "type": "data-list",
1681
+ "entity": "Response",
1682
+ "emptyIcon": "inbox",
1683
+ "emptyTitle": "No messages yet",
1684
+ "emptyDescription": "Start a new conversation.",
1685
+ "itemActions": [
1686
+ {
1687
+ "label": "View",
1688
+ "event": "VIEW",
1689
+ "variant": "ghost",
1690
+ "size": "sm"
1691
+ }
1692
+ ],
1693
+ "columns": [
1694
+ {
1695
+ "name": "author",
1696
+ "variant": "h4",
1697
+ "icon": "message-circle"
1698
+ },
1699
+ {
1700
+ "name": "body",
1701
+ "variant": "body"
1702
+ },
1703
+ {
1704
+ "name": "createdAt",
1705
+ "variant": "caption",
1706
+ "format": "date"
1707
+ }
1708
+ ],
1709
+ "variant": "card",
1710
+ "gap": "sm"
1587
1711
  }
1588
1712
  ]
1589
1713
  }
@@ -1718,8 +1842,7 @@
1718
1842
  "fields": [
1719
1843
  "ticketId",
1720
1844
  "body",
1721
- "author",
1722
- "createdAt"
1845
+ "author"
1723
1846
  ]
1724
1847
  }
1725
1848
  ]
@@ -1736,6 +1859,11 @@
1736
1859
  "render-ui",
1737
1860
  "modal",
1738
1861
  null
1862
+ ],
1863
+ [
1864
+ "notify",
1865
+ "Cancelled",
1866
+ "info"
1739
1867
  ]
1740
1868
  ]
1741
1869
  },
@@ -1866,7 +1994,7 @@
1866
1994
  {
1867
1995
  "type": "typography",
1868
1996
  "variant": "caption",
1869
- "content": "TicketId"
1997
+ "content": "Ticket ID"
1870
1998
  },
1871
1999
  {
1872
2000
  "type": "typography",
@@ -1917,7 +2045,7 @@
1917
2045
  {
1918
2046
  "type": "typography",
1919
2047
  "variant": "caption",
1920
- "content": "CreatedAt"
2048
+ "content": "Created At"
1921
2049
  },
1922
2050
  {
1923
2051
  "type": "typography",
@@ -1957,6 +2085,11 @@
1957
2085
  "render-ui",
1958
2086
  "modal",
1959
2087
  null
2088
+ ],
2089
+ [
2090
+ "notify",
2091
+ "Cancelled",
2092
+ "info"
1960
2093
  ]
1961
2094
  ]
1962
2095
  }
@@ -2070,127 +2203,283 @@
2070
2203
  "render-ui",
2071
2204
  "main",
2072
2205
  {
2073
- "type": "stack",
2074
- "direction": "vertical",
2075
- "gap": "lg",
2076
- "children": [
2206
+ "type": "dashboard-layout",
2207
+ "appName": "Helpdesk",
2208
+ "navItems": [
2077
2209
  {
2078
- "type": "stack",
2079
- "direction": "horizontal",
2080
- "gap": "md",
2081
- "justify": "space-between",
2082
- "children": [
2083
- {
2084
- "type": "stack",
2085
- "direction": "horizontal",
2086
- "gap": "md",
2087
- "children": [
2088
- {
2089
- "type": "icon",
2090
- "name": "activity",
2091
- "size": "lg"
2092
- },
2093
- {
2094
- "type": "typography",
2095
- "content": "Support Metrics",
2096
- "variant": "h2"
2097
- }
2098
- ]
2099
- },
2100
- {
2101
- "type": "button",
2102
- "label": "Refresh",
2103
- "event": "REFRESH",
2104
- "variant": "secondary",
2105
- "icon": "refresh-cw"
2106
- }
2107
- ]
2210
+ "label": "Tickets",
2211
+ "href": "/tickets",
2212
+ "icon": "inbox"
2108
2213
  },
2109
2214
  {
2110
- "type": "divider"
2215
+ "label": "Responses",
2216
+ "href": "/responses",
2217
+ "icon": "message-circle"
2111
2218
  },
2112
2219
  {
2113
- "type": "simple-grid",
2114
- "columns": 3,
2220
+ "label": "Metrics",
2221
+ "href": "/metrics",
2222
+ "icon": "layout-list"
2223
+ }
2224
+ ],
2225
+ "children": [
2226
+ {
2227
+ "type": "scaled-diagram",
2115
2228
  "children": [
2116
2229
  {
2117
- "type": "stat-display",
2118
- "label": "OpenTickets",
2119
- "value": [
2120
- "object/get",
2121
- [
2122
- "array/first",
2123
- "@entity"
2124
- ],
2125
- "openTickets"
2126
- ]
2127
- },
2128
- {
2129
- "type": "stat-display",
2130
- "label": "ResolvedTickets",
2131
- "value": [
2132
- "object/get",
2133
- [
2134
- "array/first",
2135
- "@entity"
2136
- ],
2137
- "resolvedTickets"
2138
- ]
2139
- },
2140
- {
2141
- "type": "card",
2230
+ "type": "stack",
2231
+ "direction": "vertical",
2232
+ "gap": "lg",
2142
2233
  "children": [
2234
+ {
2235
+ "type": "breadcrumb",
2236
+ "items": [
2237
+ {
2238
+ "label": "Home",
2239
+ "href": "/"
2240
+ },
2241
+ {
2242
+ "label": "Support Metrics"
2243
+ }
2244
+ ]
2245
+ },
2143
2246
  {
2144
2247
  "type": "stack",
2145
- "direction": "vertical",
2146
- "gap": "sm",
2248
+ "direction": "horizontal",
2249
+ "gap": "md",
2250
+ "justify": "space-between",
2147
2251
  "children": [
2148
2252
  {
2149
- "type": "typography",
2150
- "variant": "caption",
2151
- "content": "AvgResponseTime"
2253
+ "type": "stack",
2254
+ "direction": "horizontal",
2255
+ "gap": "md",
2256
+ "children": [
2257
+ {
2258
+ "type": "icon",
2259
+ "name": "activity",
2260
+ "size": "lg"
2261
+ },
2262
+ {
2263
+ "type": "typography",
2264
+ "content": "Support Metrics",
2265
+ "variant": "h2"
2266
+ }
2267
+ ]
2152
2268
  },
2153
2269
  {
2154
- "type": "typography",
2155
- "variant": "h3",
2156
- "content": [
2157
- "object/get",
2158
- [
2159
- "array/first",
2160
- "@entity"
2161
- ],
2162
- "avgResponseTime"
2270
+ "type": "button",
2271
+ "label": "Refresh",
2272
+ "event": "REFRESH",
2273
+ "variant": "secondary",
2274
+ "icon": "refresh-cw"
2275
+ }
2276
+ ]
2277
+ },
2278
+ {
2279
+ "type": "divider"
2280
+ },
2281
+ {
2282
+ "type": "box",
2283
+ "padding": "md",
2284
+ "children": [
2285
+ {
2286
+ "type": "simple-grid",
2287
+ "columns": 3,
2288
+ "children": [
2289
+ {
2290
+ "type": "stat-display",
2291
+ "label": "OpenTickets",
2292
+ "value": [
2293
+ "object/get",
2294
+ [
2295
+ "array/first",
2296
+ "@entity"
2297
+ ],
2298
+ "openTickets"
2299
+ ]
2300
+ },
2301
+ {
2302
+ "type": "stat-display",
2303
+ "label": "ResolvedTickets",
2304
+ "value": [
2305
+ "object/get",
2306
+ [
2307
+ "array/first",
2308
+ "@entity"
2309
+ ],
2310
+ "resolvedTickets"
2311
+ ]
2312
+ },
2313
+ {
2314
+ "type": "card",
2315
+ "children": [
2316
+ {
2317
+ "type": "stack",
2318
+ "direction": "vertical",
2319
+ "gap": "sm",
2320
+ "children": [
2321
+ {
2322
+ "type": "typography",
2323
+ "variant": "caption",
2324
+ "content": "AvgResponseTime"
2325
+ },
2326
+ {
2327
+ "type": "typography",
2328
+ "variant": "h3",
2329
+ "content": [
2330
+ "object/get",
2331
+ [
2332
+ "array/first",
2333
+ "@entity"
2334
+ ],
2335
+ "avgResponseTime"
2336
+ ]
2337
+ }
2338
+ ]
2339
+ }
2340
+ ]
2341
+ },
2342
+ {
2343
+ "type": "stat-display",
2344
+ "label": "SatisfactionScore",
2345
+ "value": [
2346
+ "object/get",
2347
+ [
2348
+ "array/first",
2349
+ "@entity"
2350
+ ],
2351
+ "satisfactionScore"
2352
+ ]
2353
+ },
2354
+ {
2355
+ "type": "stat-display",
2356
+ "label": "ActiveAgents",
2357
+ "value": [
2358
+ "object/get",
2359
+ [
2360
+ "array/first",
2361
+ "@entity"
2362
+ ],
2363
+ "activeAgents"
2364
+ ]
2365
+ }
2163
2366
  ]
2164
2367
  }
2165
2368
  ]
2166
- }
2167
- ]
2168
- },
2169
- {
2170
- "type": "stat-display",
2171
- "label": "SatisfactionScore",
2172
- "value": [
2173
- "object/get",
2174
- [
2175
- "array/first",
2176
- "@entity"
2177
- ],
2178
- "satisfactionScore"
2179
- ]
2180
- },
2181
- {
2182
- "type": "stat-display",
2183
- "label": "ActiveAgents",
2184
- "value": [
2185
- "object/get",
2186
- [
2187
- "array/first",
2188
- "@entity"
2189
- ],
2190
- "activeAgents"
2191
- ]
2192
- }
2193
- ]
2369
+ },
2370
+ {
2371
+ "type": "divider"
2372
+ },
2373
+ {
2374
+ "type": "grid",
2375
+ "columns": 2,
2376
+ "gap": "md",
2377
+ "children": [
2378
+ {
2379
+ "type": "card",
2380
+ "children": [
2381
+ {
2382
+ "type": "typography",
2383
+ "variant": "caption",
2384
+ "content": "Chart View"
2385
+ }
2386
+ ]
2387
+ },
2388
+ {
2389
+ "type": "card",
2390
+ "children": [
2391
+ {
2392
+ "type": "typography",
2393
+ "variant": "caption",
2394
+ "content": "Graph View"
2395
+ }
2396
+ ]
2397
+ }
2398
+ ]
2399
+ },
2400
+ {
2401
+ "type": "line-chart",
2402
+ "data": [
2403
+ {
2404
+ "date": "Jan",
2405
+ "value": 12
2406
+ },
2407
+ {
2408
+ "date": "Feb",
2409
+ "value": 19
2410
+ },
2411
+ {
2412
+ "date": "Mar",
2413
+ "value": 15
2414
+ },
2415
+ {
2416
+ "date": "Apr",
2417
+ "value": 25
2418
+ },
2419
+ {
2420
+ "date": "May",
2421
+ "value": 22
2422
+ },
2423
+ {
2424
+ "date": "Jun",
2425
+ "value": 30
2426
+ }
2427
+ ],
2428
+ "xKey": "date",
2429
+ "yKey": "value",
2430
+ "title": "Trend"
2431
+ },
2432
+ {
2433
+ "type": "chart-legend",
2434
+ "items": [
2435
+ {
2436
+ "label": "Current",
2437
+ "color": "primary"
2438
+ },
2439
+ {
2440
+ "label": "Previous",
2441
+ "color": "muted"
2442
+ }
2443
+ ]
2444
+ },
2445
+ {
2446
+ "type": "graph-view",
2447
+ "nodes": [
2448
+ {
2449
+ "id": "a",
2450
+ "label": "Start",
2451
+ "x": 50,
2452
+ "y": 100
2453
+ },
2454
+ {
2455
+ "id": "b",
2456
+ "label": "Process",
2457
+ "x": 200,
2458
+ "y": 50
2459
+ },
2460
+ {
2461
+ "id": "c",
2462
+ "label": "End",
2463
+ "x": 350,
2464
+ "y": 100
2465
+ }
2466
+ ],
2467
+ "edges": [
2468
+ {
2469
+ "from": "a",
2470
+ "to": "b"
2471
+ },
2472
+ {
2473
+ "from": "b",
2474
+ "to": "c"
2475
+ }
2476
+ ],
2477
+ "width": 400,
2478
+ "height": 200
2479
+ }
2480
+ ]
2481
+ }
2482
+ ]
2194
2483
  }
2195
2484
  ]
2196
2485
  }
@@ -2210,125 +2499,281 @@
2210
2499
  "render-ui",
2211
2500
  "main",
2212
2501
  {
2213
- "type": "stack",
2214
- "direction": "vertical",
2215
- "gap": "lg",
2216
- "children": [
2502
+ "type": "dashboard-layout",
2503
+ "appName": "Helpdesk",
2504
+ "navItems": [
2217
2505
  {
2218
- "type": "stack",
2219
- "direction": "horizontal",
2220
- "gap": "md",
2221
- "justify": "space-between",
2222
- "children": [
2223
- {
2224
- "type": "stack",
2225
- "direction": "horizontal",
2226
- "gap": "md",
2227
- "children": [
2228
- {
2229
- "type": "icon",
2230
- "name": "activity",
2231
- "size": "lg"
2232
- },
2233
- {
2234
- "type": "typography",
2235
- "content": "Support Metrics",
2236
- "variant": "h2"
2237
- }
2238
- ]
2239
- },
2240
- {
2241
- "type": "button",
2242
- "label": "Refresh",
2243
- "event": "REFRESH",
2244
- "variant": "secondary",
2245
- "icon": "refresh-cw"
2246
- }
2247
- ]
2506
+ "label": "Tickets",
2507
+ "href": "/tickets",
2508
+ "icon": "inbox"
2248
2509
  },
2249
2510
  {
2250
- "type": "divider"
2511
+ "label": "Responses",
2512
+ "href": "/responses",
2513
+ "icon": "message-circle"
2251
2514
  },
2252
2515
  {
2253
- "type": "simple-grid",
2254
- "columns": 3,
2516
+ "label": "Metrics",
2517
+ "href": "/metrics",
2518
+ "icon": "layout-list"
2519
+ }
2520
+ ],
2521
+ "children": [
2522
+ {
2523
+ "type": "scaled-diagram",
2255
2524
  "children": [
2256
2525
  {
2257
- "type": "stat-display",
2258
- "label": "OpenTickets",
2259
- "value": [
2260
- "object/get",
2261
- [
2262
- "array/first",
2263
- "@entity"
2264
- ],
2265
- "openTickets"
2266
- ]
2267
- },
2268
- {
2269
- "type": "stat-display",
2270
- "label": "ResolvedTickets",
2271
- "value": [
2272
- "object/get",
2273
- [
2274
- "array/first",
2275
- "@entity"
2276
- ],
2277
- "resolvedTickets"
2278
- ]
2279
- },
2280
- {
2281
- "type": "card",
2526
+ "type": "stack",
2527
+ "direction": "vertical",
2528
+ "gap": "lg",
2282
2529
  "children": [
2530
+ {
2531
+ "type": "breadcrumb",
2532
+ "items": [
2533
+ {
2534
+ "label": "Home",
2535
+ "href": "/"
2536
+ },
2537
+ {
2538
+ "label": "Support Metrics"
2539
+ }
2540
+ ]
2541
+ },
2283
2542
  {
2284
2543
  "type": "stack",
2285
- "direction": "vertical",
2286
- "gap": "sm",
2544
+ "direction": "horizontal",
2545
+ "gap": "md",
2546
+ "justify": "space-between",
2287
2547
  "children": [
2288
2548
  {
2289
- "type": "typography",
2290
- "variant": "caption",
2291
- "content": "AvgResponseTime"
2549
+ "type": "stack",
2550
+ "direction": "horizontal",
2551
+ "gap": "md",
2552
+ "children": [
2553
+ {
2554
+ "type": "icon",
2555
+ "name": "activity",
2556
+ "size": "lg"
2557
+ },
2558
+ {
2559
+ "type": "typography",
2560
+ "content": "Support Metrics",
2561
+ "variant": "h2"
2562
+ }
2563
+ ]
2292
2564
  },
2293
2565
  {
2294
- "type": "typography",
2295
- "variant": "h3",
2296
- "content": [
2297
- "object/get",
2298
- [
2299
- "array/first",
2300
- "@entity"
2301
- ],
2302
- "avgResponseTime"
2566
+ "type": "button",
2567
+ "label": "Refresh",
2568
+ "event": "REFRESH",
2569
+ "variant": "secondary",
2570
+ "icon": "refresh-cw"
2571
+ }
2572
+ ]
2573
+ },
2574
+ {
2575
+ "type": "divider"
2576
+ },
2577
+ {
2578
+ "type": "box",
2579
+ "padding": "md",
2580
+ "children": [
2581
+ {
2582
+ "type": "simple-grid",
2583
+ "columns": 3,
2584
+ "children": [
2585
+ {
2586
+ "type": "stat-display",
2587
+ "label": "OpenTickets",
2588
+ "value": [
2589
+ "object/get",
2590
+ [
2591
+ "array/first",
2592
+ "@entity"
2593
+ ],
2594
+ "openTickets"
2595
+ ]
2596
+ },
2597
+ {
2598
+ "type": "stat-display",
2599
+ "label": "ResolvedTickets",
2600
+ "value": [
2601
+ "object/get",
2602
+ [
2603
+ "array/first",
2604
+ "@entity"
2605
+ ],
2606
+ "resolvedTickets"
2607
+ ]
2608
+ },
2609
+ {
2610
+ "type": "card",
2611
+ "children": [
2612
+ {
2613
+ "type": "stack",
2614
+ "direction": "vertical",
2615
+ "gap": "sm",
2616
+ "children": [
2617
+ {
2618
+ "type": "typography",
2619
+ "variant": "caption",
2620
+ "content": "AvgResponseTime"
2621
+ },
2622
+ {
2623
+ "type": "typography",
2624
+ "variant": "h3",
2625
+ "content": [
2626
+ "object/get",
2627
+ [
2628
+ "array/first",
2629
+ "@entity"
2630
+ ],
2631
+ "avgResponseTime"
2632
+ ]
2633
+ }
2634
+ ]
2635
+ }
2636
+ ]
2637
+ },
2638
+ {
2639
+ "type": "stat-display",
2640
+ "label": "SatisfactionScore",
2641
+ "value": [
2642
+ "object/get",
2643
+ [
2644
+ "array/first",
2645
+ "@entity"
2646
+ ],
2647
+ "satisfactionScore"
2648
+ ]
2649
+ },
2650
+ {
2651
+ "type": "stat-display",
2652
+ "label": "ActiveAgents",
2653
+ "value": [
2654
+ "object/get",
2655
+ [
2656
+ "array/first",
2657
+ "@entity"
2658
+ ],
2659
+ "activeAgents"
2660
+ ]
2661
+ }
2662
+ ]
2663
+ }
2664
+ ]
2665
+ },
2666
+ {
2667
+ "type": "divider"
2668
+ },
2669
+ {
2670
+ "type": "grid",
2671
+ "columns": 2,
2672
+ "gap": "md",
2673
+ "children": [
2674
+ {
2675
+ "type": "card",
2676
+ "children": [
2677
+ {
2678
+ "type": "typography",
2679
+ "variant": "caption",
2680
+ "content": "Chart View"
2681
+ }
2682
+ ]
2683
+ },
2684
+ {
2685
+ "type": "card",
2686
+ "children": [
2687
+ {
2688
+ "type": "typography",
2689
+ "variant": "caption",
2690
+ "content": "Graph View"
2691
+ }
2303
2692
  ]
2304
2693
  }
2305
2694
  ]
2695
+ },
2696
+ {
2697
+ "type": "line-chart",
2698
+ "data": [
2699
+ {
2700
+ "date": "Jan",
2701
+ "value": 12
2702
+ },
2703
+ {
2704
+ "date": "Feb",
2705
+ "value": 19
2706
+ },
2707
+ {
2708
+ "date": "Mar",
2709
+ "value": 15
2710
+ },
2711
+ {
2712
+ "date": "Apr",
2713
+ "value": 25
2714
+ },
2715
+ {
2716
+ "date": "May",
2717
+ "value": 22
2718
+ },
2719
+ {
2720
+ "date": "Jun",
2721
+ "value": 30
2722
+ }
2723
+ ],
2724
+ "xKey": "date",
2725
+ "yKey": "value",
2726
+ "title": "Trend"
2727
+ },
2728
+ {
2729
+ "type": "chart-legend",
2730
+ "items": [
2731
+ {
2732
+ "label": "Current",
2733
+ "color": "primary"
2734
+ },
2735
+ {
2736
+ "label": "Previous",
2737
+ "color": "muted"
2738
+ }
2739
+ ]
2740
+ },
2741
+ {
2742
+ "type": "graph-view",
2743
+ "nodes": [
2744
+ {
2745
+ "id": "a",
2746
+ "label": "Start",
2747
+ "x": 50,
2748
+ "y": 100
2749
+ },
2750
+ {
2751
+ "id": "b",
2752
+ "label": "Process",
2753
+ "x": 200,
2754
+ "y": 50
2755
+ },
2756
+ {
2757
+ "id": "c",
2758
+ "label": "End",
2759
+ "x": 350,
2760
+ "y": 100
2761
+ }
2762
+ ],
2763
+ "edges": [
2764
+ {
2765
+ "from": "a",
2766
+ "to": "b"
2767
+ },
2768
+ {
2769
+ "from": "b",
2770
+ "to": "c"
2771
+ }
2772
+ ],
2773
+ "width": 400,
2774
+ "height": 200
2306
2775
  }
2307
2776
  ]
2308
- },
2309
- {
2310
- "type": "stat-display",
2311
- "label": "SatisfactionScore",
2312
- "value": [
2313
- "object/get",
2314
- [
2315
- "array/first",
2316
- "@entity"
2317
- ],
2318
- "satisfactionScore"
2319
- ]
2320
- },
2321
- {
2322
- "type": "stat-display",
2323
- "label": "ActiveAgents",
2324
- "value": [
2325
- "object/get",
2326
- [
2327
- "array/first",
2328
- "@entity"
2329
- ],
2330
- "activeAgents"
2331
- ]
2332
2777
  }
2333
2778
  ]
2334
2779
  }
@@ -2350,125 +2795,281 @@
2350
2795
  "render-ui",
2351
2796
  "main",
2352
2797
  {
2353
- "type": "stack",
2354
- "direction": "vertical",
2355
- "gap": "lg",
2356
- "children": [
2798
+ "type": "dashboard-layout",
2799
+ "appName": "Helpdesk",
2800
+ "navItems": [
2357
2801
  {
2358
- "type": "stack",
2359
- "direction": "horizontal",
2360
- "gap": "md",
2361
- "justify": "space-between",
2362
- "children": [
2363
- {
2364
- "type": "stack",
2365
- "direction": "horizontal",
2366
- "gap": "md",
2367
- "children": [
2368
- {
2369
- "type": "icon",
2370
- "name": "activity",
2371
- "size": "lg"
2372
- },
2373
- {
2374
- "type": "typography",
2375
- "content": "Support Metrics",
2376
- "variant": "h2"
2377
- }
2378
- ]
2379
- },
2380
- {
2381
- "type": "button",
2382
- "label": "Refresh",
2383
- "event": "REFRESH",
2384
- "variant": "secondary",
2385
- "icon": "refresh-cw"
2386
- }
2387
- ]
2802
+ "label": "Tickets",
2803
+ "href": "/tickets",
2804
+ "icon": "inbox"
2388
2805
  },
2389
2806
  {
2390
- "type": "divider"
2807
+ "label": "Responses",
2808
+ "href": "/responses",
2809
+ "icon": "message-circle"
2391
2810
  },
2392
2811
  {
2393
- "type": "simple-grid",
2394
- "columns": 3,
2812
+ "label": "Metrics",
2813
+ "href": "/metrics",
2814
+ "icon": "layout-list"
2815
+ }
2816
+ ],
2817
+ "children": [
2818
+ {
2819
+ "type": "scaled-diagram",
2395
2820
  "children": [
2396
2821
  {
2397
- "type": "stat-display",
2398
- "label": "OpenTickets",
2399
- "value": [
2400
- "object/get",
2401
- [
2402
- "array/first",
2403
- "@entity"
2404
- ],
2405
- "openTickets"
2406
- ]
2407
- },
2408
- {
2409
- "type": "stat-display",
2410
- "label": "ResolvedTickets",
2411
- "value": [
2412
- "object/get",
2413
- [
2414
- "array/first",
2415
- "@entity"
2416
- ],
2417
- "resolvedTickets"
2418
- ]
2419
- },
2420
- {
2421
- "type": "card",
2822
+ "type": "stack",
2823
+ "direction": "vertical",
2824
+ "gap": "lg",
2422
2825
  "children": [
2826
+ {
2827
+ "type": "breadcrumb",
2828
+ "items": [
2829
+ {
2830
+ "label": "Home",
2831
+ "href": "/"
2832
+ },
2833
+ {
2834
+ "label": "Support Metrics"
2835
+ }
2836
+ ]
2837
+ },
2423
2838
  {
2424
2839
  "type": "stack",
2425
- "direction": "vertical",
2426
- "gap": "sm",
2840
+ "direction": "horizontal",
2841
+ "gap": "md",
2842
+ "justify": "space-between",
2427
2843
  "children": [
2428
2844
  {
2429
- "type": "typography",
2430
- "variant": "caption",
2431
- "content": "AvgResponseTime"
2845
+ "type": "stack",
2846
+ "direction": "horizontal",
2847
+ "gap": "md",
2848
+ "children": [
2849
+ {
2850
+ "type": "icon",
2851
+ "name": "activity",
2852
+ "size": "lg"
2853
+ },
2854
+ {
2855
+ "type": "typography",
2856
+ "content": "Support Metrics",
2857
+ "variant": "h2"
2858
+ }
2859
+ ]
2432
2860
  },
2433
2861
  {
2434
- "type": "typography",
2435
- "variant": "h3",
2436
- "content": [
2437
- "object/get",
2438
- [
2439
- "array/first",
2440
- "@entity"
2441
- ],
2442
- "avgResponseTime"
2443
- ]
2862
+ "type": "button",
2863
+ "label": "Refresh",
2864
+ "event": "REFRESH",
2865
+ "variant": "secondary",
2866
+ "icon": "refresh-cw"
2444
2867
  }
2445
2868
  ]
2446
- }
2447
- ]
2448
- },
2449
- {
2450
- "type": "stat-display",
2451
- "label": "SatisfactionScore",
2452
- "value": [
2453
- "object/get",
2454
- [
2455
- "array/first",
2456
- "@entity"
2457
- ],
2458
- "satisfactionScore"
2459
- ]
2460
- },
2461
- {
2462
- "type": "stat-display",
2463
- "label": "ActiveAgents",
2464
- "value": [
2465
- "object/get",
2466
- [
2467
- "array/first",
2468
- "@entity"
2469
- ],
2470
- "activeAgents"
2471
- ]
2869
+ },
2870
+ {
2871
+ "type": "divider"
2872
+ },
2873
+ {
2874
+ "type": "box",
2875
+ "padding": "md",
2876
+ "children": [
2877
+ {
2878
+ "type": "simple-grid",
2879
+ "columns": 3,
2880
+ "children": [
2881
+ {
2882
+ "type": "stat-display",
2883
+ "label": "OpenTickets",
2884
+ "value": [
2885
+ "object/get",
2886
+ [
2887
+ "array/first",
2888
+ "@entity"
2889
+ ],
2890
+ "openTickets"
2891
+ ]
2892
+ },
2893
+ {
2894
+ "type": "stat-display",
2895
+ "label": "ResolvedTickets",
2896
+ "value": [
2897
+ "object/get",
2898
+ [
2899
+ "array/first",
2900
+ "@entity"
2901
+ ],
2902
+ "resolvedTickets"
2903
+ ]
2904
+ },
2905
+ {
2906
+ "type": "card",
2907
+ "children": [
2908
+ {
2909
+ "type": "stack",
2910
+ "direction": "vertical",
2911
+ "gap": "sm",
2912
+ "children": [
2913
+ {
2914
+ "type": "typography",
2915
+ "variant": "caption",
2916
+ "content": "AvgResponseTime"
2917
+ },
2918
+ {
2919
+ "type": "typography",
2920
+ "variant": "h3",
2921
+ "content": [
2922
+ "object/get",
2923
+ [
2924
+ "array/first",
2925
+ "@entity"
2926
+ ],
2927
+ "avgResponseTime"
2928
+ ]
2929
+ }
2930
+ ]
2931
+ }
2932
+ ]
2933
+ },
2934
+ {
2935
+ "type": "stat-display",
2936
+ "label": "SatisfactionScore",
2937
+ "value": [
2938
+ "object/get",
2939
+ [
2940
+ "array/first",
2941
+ "@entity"
2942
+ ],
2943
+ "satisfactionScore"
2944
+ ]
2945
+ },
2946
+ {
2947
+ "type": "stat-display",
2948
+ "label": "ActiveAgents",
2949
+ "value": [
2950
+ "object/get",
2951
+ [
2952
+ "array/first",
2953
+ "@entity"
2954
+ ],
2955
+ "activeAgents"
2956
+ ]
2957
+ }
2958
+ ]
2959
+ }
2960
+ ]
2961
+ },
2962
+ {
2963
+ "type": "divider"
2964
+ },
2965
+ {
2966
+ "type": "grid",
2967
+ "columns": 2,
2968
+ "gap": "md",
2969
+ "children": [
2970
+ {
2971
+ "type": "card",
2972
+ "children": [
2973
+ {
2974
+ "type": "typography",
2975
+ "variant": "caption",
2976
+ "content": "Chart View"
2977
+ }
2978
+ ]
2979
+ },
2980
+ {
2981
+ "type": "card",
2982
+ "children": [
2983
+ {
2984
+ "type": "typography",
2985
+ "variant": "caption",
2986
+ "content": "Graph View"
2987
+ }
2988
+ ]
2989
+ }
2990
+ ]
2991
+ },
2992
+ {
2993
+ "type": "line-chart",
2994
+ "data": [
2995
+ {
2996
+ "date": "Jan",
2997
+ "value": 12
2998
+ },
2999
+ {
3000
+ "date": "Feb",
3001
+ "value": 19
3002
+ },
3003
+ {
3004
+ "date": "Mar",
3005
+ "value": 15
3006
+ },
3007
+ {
3008
+ "date": "Apr",
3009
+ "value": 25
3010
+ },
3011
+ {
3012
+ "date": "May",
3013
+ "value": 22
3014
+ },
3015
+ {
3016
+ "date": "Jun",
3017
+ "value": 30
3018
+ }
3019
+ ],
3020
+ "xKey": "date",
3021
+ "yKey": "value",
3022
+ "title": "Trend"
3023
+ },
3024
+ {
3025
+ "type": "chart-legend",
3026
+ "items": [
3027
+ {
3028
+ "label": "Current",
3029
+ "color": "primary"
3030
+ },
3031
+ {
3032
+ "label": "Previous",
3033
+ "color": "muted"
3034
+ }
3035
+ ]
3036
+ },
3037
+ {
3038
+ "type": "graph-view",
3039
+ "nodes": [
3040
+ {
3041
+ "id": "a",
3042
+ "label": "Start",
3043
+ "x": 50,
3044
+ "y": 100
3045
+ },
3046
+ {
3047
+ "id": "b",
3048
+ "label": "Process",
3049
+ "x": 200,
3050
+ "y": 50
3051
+ },
3052
+ {
3053
+ "id": "c",
3054
+ "label": "End",
3055
+ "x": 350,
3056
+ "y": 100
3057
+ }
3058
+ ],
3059
+ "edges": [
3060
+ {
3061
+ "from": "a",
3062
+ "to": "b"
3063
+ },
3064
+ {
3065
+ "from": "b",
3066
+ "to": "c"
3067
+ }
3068
+ ],
3069
+ "width": 400,
3070
+ "height": 200
3071
+ }
3072
+ ]
2472
3073
  }
2473
3074
  ]
2474
3075
  }
@@ -2490,125 +3091,281 @@
2490
3091
  "render-ui",
2491
3092
  "main",
2492
3093
  {
2493
- "type": "stack",
2494
- "direction": "vertical",
2495
- "gap": "lg",
2496
- "children": [
3094
+ "type": "dashboard-layout",
3095
+ "appName": "Helpdesk",
3096
+ "navItems": [
2497
3097
  {
2498
- "type": "stack",
2499
- "direction": "horizontal",
2500
- "gap": "md",
2501
- "justify": "space-between",
2502
- "children": [
2503
- {
2504
- "type": "stack",
2505
- "direction": "horizontal",
2506
- "gap": "md",
2507
- "children": [
2508
- {
2509
- "type": "icon",
2510
- "name": "activity",
2511
- "size": "lg"
2512
- },
2513
- {
2514
- "type": "typography",
2515
- "content": "Support Metrics",
2516
- "variant": "h2"
2517
- }
2518
- ]
2519
- },
2520
- {
2521
- "type": "button",
2522
- "label": "Refresh",
2523
- "event": "REFRESH",
2524
- "variant": "secondary",
2525
- "icon": "refresh-cw"
2526
- }
2527
- ]
3098
+ "label": "Tickets",
3099
+ "href": "/tickets",
3100
+ "icon": "inbox"
2528
3101
  },
2529
3102
  {
2530
- "type": "divider"
3103
+ "label": "Responses",
3104
+ "href": "/responses",
3105
+ "icon": "message-circle"
2531
3106
  },
2532
3107
  {
2533
- "type": "simple-grid",
2534
- "columns": 3,
3108
+ "label": "Metrics",
3109
+ "href": "/metrics",
3110
+ "icon": "layout-list"
3111
+ }
3112
+ ],
3113
+ "children": [
3114
+ {
3115
+ "type": "scaled-diagram",
2535
3116
  "children": [
2536
3117
  {
2537
- "type": "stat-display",
2538
- "label": "OpenTickets",
2539
- "value": [
2540
- "object/get",
2541
- [
2542
- "array/first",
2543
- "@entity"
2544
- ],
2545
- "openTickets"
2546
- ]
2547
- },
2548
- {
2549
- "type": "stat-display",
2550
- "label": "ResolvedTickets",
2551
- "value": [
2552
- "object/get",
2553
- [
2554
- "array/first",
2555
- "@entity"
2556
- ],
2557
- "resolvedTickets"
2558
- ]
2559
- },
2560
- {
2561
- "type": "card",
3118
+ "type": "stack",
3119
+ "direction": "vertical",
3120
+ "gap": "lg",
2562
3121
  "children": [
3122
+ {
3123
+ "type": "breadcrumb",
3124
+ "items": [
3125
+ {
3126
+ "label": "Home",
3127
+ "href": "/"
3128
+ },
3129
+ {
3130
+ "label": "Support Metrics"
3131
+ }
3132
+ ]
3133
+ },
2563
3134
  {
2564
3135
  "type": "stack",
2565
- "direction": "vertical",
2566
- "gap": "sm",
3136
+ "direction": "horizontal",
3137
+ "gap": "md",
3138
+ "justify": "space-between",
2567
3139
  "children": [
2568
3140
  {
2569
- "type": "typography",
2570
- "variant": "caption",
2571
- "content": "AvgResponseTime"
3141
+ "type": "stack",
3142
+ "direction": "horizontal",
3143
+ "gap": "md",
3144
+ "children": [
3145
+ {
3146
+ "type": "icon",
3147
+ "name": "activity",
3148
+ "size": "lg"
3149
+ },
3150
+ {
3151
+ "type": "typography",
3152
+ "content": "Support Metrics",
3153
+ "variant": "h2"
3154
+ }
3155
+ ]
2572
3156
  },
2573
3157
  {
2574
- "type": "typography",
2575
- "variant": "h3",
2576
- "content": [
2577
- "object/get",
2578
- [
2579
- "array/first",
2580
- "@entity"
2581
- ],
2582
- "avgResponseTime"
3158
+ "type": "button",
3159
+ "label": "Refresh",
3160
+ "event": "REFRESH",
3161
+ "variant": "secondary",
3162
+ "icon": "refresh-cw"
3163
+ }
3164
+ ]
3165
+ },
3166
+ {
3167
+ "type": "divider"
3168
+ },
3169
+ {
3170
+ "type": "box",
3171
+ "padding": "md",
3172
+ "children": [
3173
+ {
3174
+ "type": "simple-grid",
3175
+ "columns": 3,
3176
+ "children": [
3177
+ {
3178
+ "type": "stat-display",
3179
+ "label": "OpenTickets",
3180
+ "value": [
3181
+ "object/get",
3182
+ [
3183
+ "array/first",
3184
+ "@entity"
3185
+ ],
3186
+ "openTickets"
3187
+ ]
3188
+ },
3189
+ {
3190
+ "type": "stat-display",
3191
+ "label": "ResolvedTickets",
3192
+ "value": [
3193
+ "object/get",
3194
+ [
3195
+ "array/first",
3196
+ "@entity"
3197
+ ],
3198
+ "resolvedTickets"
3199
+ ]
3200
+ },
3201
+ {
3202
+ "type": "card",
3203
+ "children": [
3204
+ {
3205
+ "type": "stack",
3206
+ "direction": "vertical",
3207
+ "gap": "sm",
3208
+ "children": [
3209
+ {
3210
+ "type": "typography",
3211
+ "variant": "caption",
3212
+ "content": "AvgResponseTime"
3213
+ },
3214
+ {
3215
+ "type": "typography",
3216
+ "variant": "h3",
3217
+ "content": [
3218
+ "object/get",
3219
+ [
3220
+ "array/first",
3221
+ "@entity"
3222
+ ],
3223
+ "avgResponseTime"
3224
+ ]
3225
+ }
3226
+ ]
3227
+ }
3228
+ ]
3229
+ },
3230
+ {
3231
+ "type": "stat-display",
3232
+ "label": "SatisfactionScore",
3233
+ "value": [
3234
+ "object/get",
3235
+ [
3236
+ "array/first",
3237
+ "@entity"
3238
+ ],
3239
+ "satisfactionScore"
3240
+ ]
3241
+ },
3242
+ {
3243
+ "type": "stat-display",
3244
+ "label": "ActiveAgents",
3245
+ "value": [
3246
+ "object/get",
3247
+ [
3248
+ "array/first",
3249
+ "@entity"
3250
+ ],
3251
+ "activeAgents"
3252
+ ]
3253
+ }
2583
3254
  ]
2584
3255
  }
2585
3256
  ]
3257
+ },
3258
+ {
3259
+ "type": "divider"
3260
+ },
3261
+ {
3262
+ "type": "grid",
3263
+ "columns": 2,
3264
+ "gap": "md",
3265
+ "children": [
3266
+ {
3267
+ "type": "card",
3268
+ "children": [
3269
+ {
3270
+ "type": "typography",
3271
+ "variant": "caption",
3272
+ "content": "Chart View"
3273
+ }
3274
+ ]
3275
+ },
3276
+ {
3277
+ "type": "card",
3278
+ "children": [
3279
+ {
3280
+ "type": "typography",
3281
+ "variant": "caption",
3282
+ "content": "Graph View"
3283
+ }
3284
+ ]
3285
+ }
3286
+ ]
3287
+ },
3288
+ {
3289
+ "type": "line-chart",
3290
+ "data": [
3291
+ {
3292
+ "date": "Jan",
3293
+ "value": 12
3294
+ },
3295
+ {
3296
+ "date": "Feb",
3297
+ "value": 19
3298
+ },
3299
+ {
3300
+ "date": "Mar",
3301
+ "value": 15
3302
+ },
3303
+ {
3304
+ "date": "Apr",
3305
+ "value": 25
3306
+ },
3307
+ {
3308
+ "date": "May",
3309
+ "value": 22
3310
+ },
3311
+ {
3312
+ "date": "Jun",
3313
+ "value": 30
3314
+ }
3315
+ ],
3316
+ "xKey": "date",
3317
+ "yKey": "value",
3318
+ "title": "Trend"
3319
+ },
3320
+ {
3321
+ "type": "chart-legend",
3322
+ "items": [
3323
+ {
3324
+ "label": "Current",
3325
+ "color": "primary"
3326
+ },
3327
+ {
3328
+ "label": "Previous",
3329
+ "color": "muted"
3330
+ }
3331
+ ]
3332
+ },
3333
+ {
3334
+ "type": "graph-view",
3335
+ "nodes": [
3336
+ {
3337
+ "id": "a",
3338
+ "label": "Start",
3339
+ "x": 50,
3340
+ "y": 100
3341
+ },
3342
+ {
3343
+ "id": "b",
3344
+ "label": "Process",
3345
+ "x": 200,
3346
+ "y": 50
3347
+ },
3348
+ {
3349
+ "id": "c",
3350
+ "label": "End",
3351
+ "x": 350,
3352
+ "y": 100
3353
+ }
3354
+ ],
3355
+ "edges": [
3356
+ {
3357
+ "from": "a",
3358
+ "to": "b"
3359
+ },
3360
+ {
3361
+ "from": "b",
3362
+ "to": "c"
3363
+ }
3364
+ ],
3365
+ "width": 400,
3366
+ "height": 200
2586
3367
  }
2587
3368
  ]
2588
- },
2589
- {
2590
- "type": "stat-display",
2591
- "label": "SatisfactionScore",
2592
- "value": [
2593
- "object/get",
2594
- [
2595
- "array/first",
2596
- "@entity"
2597
- ],
2598
- "satisfactionScore"
2599
- ]
2600
- },
2601
- {
2602
- "type": "stat-display",
2603
- "label": "ActiveAgents",
2604
- "value": [
2605
- "object/get",
2606
- [
2607
- "array/first",
2608
- "@entity"
2609
- ],
2610
- "activeAgents"
2611
- ]
2612
3369
  }
2613
3370
  ]
2614
3371
  }
@@ -2630,125 +3387,281 @@
2630
3387
  "render-ui",
2631
3388
  "main",
2632
3389
  {
2633
- "type": "stack",
2634
- "direction": "vertical",
2635
- "gap": "lg",
2636
- "children": [
3390
+ "type": "dashboard-layout",
3391
+ "appName": "Helpdesk",
3392
+ "navItems": [
2637
3393
  {
2638
- "type": "stack",
2639
- "direction": "horizontal",
2640
- "gap": "md",
2641
- "justify": "space-between",
2642
- "children": [
2643
- {
2644
- "type": "stack",
2645
- "direction": "horizontal",
2646
- "gap": "md",
2647
- "children": [
2648
- {
2649
- "type": "icon",
2650
- "name": "activity",
2651
- "size": "lg"
2652
- },
2653
- {
2654
- "type": "typography",
2655
- "content": "Support Metrics",
2656
- "variant": "h2"
2657
- }
2658
- ]
2659
- },
2660
- {
2661
- "type": "button",
2662
- "label": "Refresh",
2663
- "event": "REFRESH",
2664
- "variant": "secondary",
2665
- "icon": "refresh-cw"
2666
- }
2667
- ]
3394
+ "label": "Tickets",
3395
+ "href": "/tickets",
3396
+ "icon": "inbox"
2668
3397
  },
2669
3398
  {
2670
- "type": "divider"
3399
+ "label": "Responses",
3400
+ "href": "/responses",
3401
+ "icon": "message-circle"
2671
3402
  },
2672
3403
  {
2673
- "type": "simple-grid",
2674
- "columns": 3,
3404
+ "label": "Metrics",
3405
+ "href": "/metrics",
3406
+ "icon": "layout-list"
3407
+ }
3408
+ ],
3409
+ "children": [
3410
+ {
3411
+ "type": "scaled-diagram",
2675
3412
  "children": [
2676
3413
  {
2677
- "type": "stat-display",
2678
- "label": "OpenTickets",
2679
- "value": [
2680
- "object/get",
2681
- [
2682
- "array/first",
2683
- "@entity"
2684
- ],
2685
- "openTickets"
2686
- ]
2687
- },
2688
- {
2689
- "type": "stat-display",
2690
- "label": "ResolvedTickets",
2691
- "value": [
2692
- "object/get",
2693
- [
2694
- "array/first",
2695
- "@entity"
2696
- ],
2697
- "resolvedTickets"
2698
- ]
2699
- },
2700
- {
2701
- "type": "card",
3414
+ "type": "stack",
3415
+ "direction": "vertical",
3416
+ "gap": "lg",
2702
3417
  "children": [
3418
+ {
3419
+ "type": "breadcrumb",
3420
+ "items": [
3421
+ {
3422
+ "label": "Home",
3423
+ "href": "/"
3424
+ },
3425
+ {
3426
+ "label": "Support Metrics"
3427
+ }
3428
+ ]
3429
+ },
2703
3430
  {
2704
3431
  "type": "stack",
2705
- "direction": "vertical",
2706
- "gap": "sm",
3432
+ "direction": "horizontal",
3433
+ "gap": "md",
3434
+ "justify": "space-between",
2707
3435
  "children": [
2708
3436
  {
2709
- "type": "typography",
2710
- "variant": "caption",
2711
- "content": "AvgResponseTime"
3437
+ "type": "stack",
3438
+ "direction": "horizontal",
3439
+ "gap": "md",
3440
+ "children": [
3441
+ {
3442
+ "type": "icon",
3443
+ "name": "activity",
3444
+ "size": "lg"
3445
+ },
3446
+ {
3447
+ "type": "typography",
3448
+ "content": "Support Metrics",
3449
+ "variant": "h2"
3450
+ }
3451
+ ]
2712
3452
  },
2713
3453
  {
2714
- "type": "typography",
2715
- "variant": "h3",
2716
- "content": [
2717
- "object/get",
2718
- [
2719
- "array/first",
2720
- "@entity"
2721
- ],
2722
- "avgResponseTime"
3454
+ "type": "button",
3455
+ "label": "Refresh",
3456
+ "event": "REFRESH",
3457
+ "variant": "secondary",
3458
+ "icon": "refresh-cw"
3459
+ }
3460
+ ]
3461
+ },
3462
+ {
3463
+ "type": "divider"
3464
+ },
3465
+ {
3466
+ "type": "box",
3467
+ "padding": "md",
3468
+ "children": [
3469
+ {
3470
+ "type": "simple-grid",
3471
+ "columns": 3,
3472
+ "children": [
3473
+ {
3474
+ "type": "stat-display",
3475
+ "label": "OpenTickets",
3476
+ "value": [
3477
+ "object/get",
3478
+ [
3479
+ "array/first",
3480
+ "@entity"
3481
+ ],
3482
+ "openTickets"
3483
+ ]
3484
+ },
3485
+ {
3486
+ "type": "stat-display",
3487
+ "label": "ResolvedTickets",
3488
+ "value": [
3489
+ "object/get",
3490
+ [
3491
+ "array/first",
3492
+ "@entity"
3493
+ ],
3494
+ "resolvedTickets"
3495
+ ]
3496
+ },
3497
+ {
3498
+ "type": "card",
3499
+ "children": [
3500
+ {
3501
+ "type": "stack",
3502
+ "direction": "vertical",
3503
+ "gap": "sm",
3504
+ "children": [
3505
+ {
3506
+ "type": "typography",
3507
+ "variant": "caption",
3508
+ "content": "AvgResponseTime"
3509
+ },
3510
+ {
3511
+ "type": "typography",
3512
+ "variant": "h3",
3513
+ "content": [
3514
+ "object/get",
3515
+ [
3516
+ "array/first",
3517
+ "@entity"
3518
+ ],
3519
+ "avgResponseTime"
3520
+ ]
3521
+ }
3522
+ ]
3523
+ }
3524
+ ]
3525
+ },
3526
+ {
3527
+ "type": "stat-display",
3528
+ "label": "SatisfactionScore",
3529
+ "value": [
3530
+ "object/get",
3531
+ [
3532
+ "array/first",
3533
+ "@entity"
3534
+ ],
3535
+ "satisfactionScore"
3536
+ ]
3537
+ },
3538
+ {
3539
+ "type": "stat-display",
3540
+ "label": "ActiveAgents",
3541
+ "value": [
3542
+ "object/get",
3543
+ [
3544
+ "array/first",
3545
+ "@entity"
3546
+ ],
3547
+ "activeAgents"
3548
+ ]
3549
+ }
2723
3550
  ]
2724
3551
  }
2725
3552
  ]
3553
+ },
3554
+ {
3555
+ "type": "divider"
3556
+ },
3557
+ {
3558
+ "type": "grid",
3559
+ "columns": 2,
3560
+ "gap": "md",
3561
+ "children": [
3562
+ {
3563
+ "type": "card",
3564
+ "children": [
3565
+ {
3566
+ "type": "typography",
3567
+ "variant": "caption",
3568
+ "content": "Chart View"
3569
+ }
3570
+ ]
3571
+ },
3572
+ {
3573
+ "type": "card",
3574
+ "children": [
3575
+ {
3576
+ "type": "typography",
3577
+ "variant": "caption",
3578
+ "content": "Graph View"
3579
+ }
3580
+ ]
3581
+ }
3582
+ ]
3583
+ },
3584
+ {
3585
+ "type": "line-chart",
3586
+ "data": [
3587
+ {
3588
+ "date": "Jan",
3589
+ "value": 12
3590
+ },
3591
+ {
3592
+ "date": "Feb",
3593
+ "value": 19
3594
+ },
3595
+ {
3596
+ "date": "Mar",
3597
+ "value": 15
3598
+ },
3599
+ {
3600
+ "date": "Apr",
3601
+ "value": 25
3602
+ },
3603
+ {
3604
+ "date": "May",
3605
+ "value": 22
3606
+ },
3607
+ {
3608
+ "date": "Jun",
3609
+ "value": 30
3610
+ }
3611
+ ],
3612
+ "xKey": "date",
3613
+ "yKey": "value",
3614
+ "title": "Trend"
3615
+ },
3616
+ {
3617
+ "type": "chart-legend",
3618
+ "items": [
3619
+ {
3620
+ "label": "Current",
3621
+ "color": "primary"
3622
+ },
3623
+ {
3624
+ "label": "Previous",
3625
+ "color": "muted"
3626
+ }
3627
+ ]
3628
+ },
3629
+ {
3630
+ "type": "graph-view",
3631
+ "nodes": [
3632
+ {
3633
+ "id": "a",
3634
+ "label": "Start",
3635
+ "x": 50,
3636
+ "y": 100
3637
+ },
3638
+ {
3639
+ "id": "b",
3640
+ "label": "Process",
3641
+ "x": 200,
3642
+ "y": 50
3643
+ },
3644
+ {
3645
+ "id": "c",
3646
+ "label": "End",
3647
+ "x": 350,
3648
+ "y": 100
3649
+ }
3650
+ ],
3651
+ "edges": [
3652
+ {
3653
+ "from": "a",
3654
+ "to": "b"
3655
+ },
3656
+ {
3657
+ "from": "b",
3658
+ "to": "c"
3659
+ }
3660
+ ],
3661
+ "width": 400,
3662
+ "height": 200
2726
3663
  }
2727
3664
  ]
2728
- },
2729
- {
2730
- "type": "stat-display",
2731
- "label": "SatisfactionScore",
2732
- "value": [
2733
- "object/get",
2734
- [
2735
- "array/first",
2736
- "@entity"
2737
- ],
2738
- "satisfactionScore"
2739
- ]
2740
- },
2741
- {
2742
- "type": "stat-display",
2743
- "label": "ActiveAgents",
2744
- "value": [
2745
- "object/get",
2746
- [
2747
- "array/first",
2748
- "@entity"
2749
- ],
2750
- "activeAgents"
2751
- ]
2752
3665
  }
2753
3666
  ]
2754
3667
  }