@almadar/std 8.5.1 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  2. package/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  3. package/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  4. package/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  5. package/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  6. package/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  8. package/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  9. package/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  10. package/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  11. package/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  12. package/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  14. package/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  15. package/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  16. package/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  17. package/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  18. package/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  19. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1219 -1219
  20. package/behaviors/registry/agent/organisms/std-agent-builder.orb +2995 -2995
  21. package/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2285 -2285
  22. package/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1063 -1063
  23. package/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  24. package/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  25. package/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  26. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  27. package/behaviors/registry/app/organisms/std-cms.orb +587 -587
  28. package/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  29. package/behaviors/registry/app/organisms/std-crm.orb +966 -966
  30. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  31. package/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  32. package/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  33. package/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  34. package/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  35. package/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  36. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  37. package/behaviors/registry/app/organisms/std-lms.orb +876 -876
  38. package/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  39. package/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  40. package/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  41. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  42. package/behaviors/registry/core/atoms/std-browse.orb +67 -67
  43. package/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  44. package/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  45. package/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  46. package/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  47. package/behaviors/registry/core/atoms/std-display.orb +370 -370
  48. package/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  49. package/behaviors/registry/core/atoms/std-filter.orb +63 -63
  50. package/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  51. package/behaviors/registry/core/atoms/std-modal.orb +19 -19
  52. package/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  53. package/behaviors/registry/core/atoms/std-push.orb +49 -49
  54. package/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  55. package/behaviors/registry/core/atoms/std-related.orb +39 -39
  56. package/behaviors/registry/core/atoms/std-search.orb +73 -73
  57. package/behaviors/registry/core/atoms/std-selection.orb +110 -110
  58. package/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  59. package/behaviors/registry/core/molecules/std-cart.orb +68 -72
  60. package/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  61. package/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  62. package/behaviors/registry/core/molecules/std-list.orb +68 -68
  63. package/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  64. package/behaviors/registry/game/atoms/std-collision.orb +140 -140
  65. package/behaviors/registry/game/atoms/std-combat.orb +76 -76
  66. package/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  67. package/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  68. package/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  69. package/behaviors/registry/game/atoms/std-movement.orb +276 -276
  70. package/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  71. package/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  72. package/behaviors/registry/game/atoms/std-quest.orb +129 -129
  73. package/behaviors/registry/game/atoms/std-timer.orb +285 -285
  74. package/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  75. package/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  76. package/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  77. package/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  78. package/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  79. package/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  80. package/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  81. package/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  82. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  83. package/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  84. package/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  85. package/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  86. package/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  87. package/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  88. package/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  89. package/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  90. package/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  91. package/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  92. package/behaviors/registry/service/organisms/std-service-marketplace.orb +1092 -1092
  93. package/behaviors/registry/service/organisms/std-service-research-assistant.orb +978 -978
  94. package/dist/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  95. package/dist/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  96. package/dist/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  97. package/dist/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  98. package/dist/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  99. package/dist/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  100. package/dist/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  101. package/dist/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  102. package/dist/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  103. package/dist/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  104. package/dist/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  105. package/dist/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  106. package/dist/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  107. package/dist/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  108. package/dist/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  109. package/dist/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  110. package/dist/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  111. package/dist/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  112. package/dist/behaviors/registry/agent/organisms/std-agent-assistant.orb +1219 -1219
  113. package/dist/behaviors/registry/agent/organisms/std-agent-builder.orb +2995 -2995
  114. package/dist/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2285 -2285
  115. package/dist/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1063 -1063
  116. package/dist/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  117. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  118. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  119. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  120. package/dist/behaviors/registry/app/organisms/std-cms.orb +587 -587
  121. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  122. package/dist/behaviors/registry/app/organisms/std-crm.orb +966 -966
  123. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  124. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  125. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  126. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  127. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  128. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  129. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  130. package/dist/behaviors/registry/app/organisms/std-lms.orb +876 -876
  131. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  132. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  133. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  134. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  135. package/dist/behaviors/registry/core/atoms/std-browse.orb +67 -67
  136. package/dist/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  137. package/dist/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  138. package/dist/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  139. package/dist/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  140. package/dist/behaviors/registry/core/atoms/std-display.orb +370 -370
  141. package/dist/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  142. package/dist/behaviors/registry/core/atoms/std-filter.orb +63 -63
  143. package/dist/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  144. package/dist/behaviors/registry/core/atoms/std-modal.orb +19 -19
  145. package/dist/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  146. package/dist/behaviors/registry/core/atoms/std-push.orb +49 -49
  147. package/dist/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  148. package/dist/behaviors/registry/core/atoms/std-related.orb +39 -39
  149. package/dist/behaviors/registry/core/atoms/std-search.orb +73 -73
  150. package/dist/behaviors/registry/core/atoms/std-selection.orb +110 -110
  151. package/dist/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  152. package/dist/behaviors/registry/core/molecules/std-cart.orb +68 -72
  153. package/dist/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  154. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  155. package/dist/behaviors/registry/core/molecules/std-list.orb +68 -68
  156. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  157. package/dist/behaviors/registry/game/atoms/std-collision.orb +140 -140
  158. package/dist/behaviors/registry/game/atoms/std-combat.orb +76 -76
  159. package/dist/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  160. package/dist/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  161. package/dist/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  162. package/dist/behaviors/registry/game/atoms/std-movement.orb +276 -276
  163. package/dist/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  164. package/dist/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  165. package/dist/behaviors/registry/game/atoms/std-quest.orb +129 -129
  166. package/dist/behaviors/registry/game/atoms/std-timer.orb +285 -285
  167. package/dist/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  168. package/dist/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  169. package/dist/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  170. package/dist/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  171. package/dist/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  172. package/dist/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  173. package/dist/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  174. package/dist/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  175. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  176. package/dist/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  177. package/dist/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  178. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  179. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  180. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  181. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  182. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  183. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  184. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  185. package/dist/behaviors/registry/service/organisms/std-service-marketplace.orb +1092 -1092
  186. package/dist/behaviors/registry/service/organisms/std-service-research-assistant.orb +978 -978
  187. package/package.json +1 -1
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "event": "ASSIGN",
69
69
  "scope": "external",
70
- "payload": [
70
+ "payloadSchema": [
71
71
  {
72
72
  "name": "id",
73
73
  "type": "string"
@@ -78,7 +78,7 @@
78
78
  "event": "TicketLoaded",
79
79
  "description": "Fired when Ticket finishes loading",
80
80
  "scope": "internal",
81
- "payload": [
81
+ "payloadSchema": [
82
82
  {
83
83
  "name": "data",
84
84
  "type": "[Ticket]"
@@ -89,7 +89,7 @@
89
89
  "event": "TicketLoadFailed",
90
90
  "description": "Fired when Ticket fails to load",
91
91
  "scope": "internal",
92
- "payload": [
92
+ "payloadSchema": [
93
93
  {
94
94
  "name": "error",
95
95
  "type": "string"
@@ -103,7 +103,7 @@
103
103
  {
104
104
  "event": "TicketSaved",
105
105
  "scope": "internal",
106
- "payload": [
106
+ "payloadSchema": [
107
107
  {
108
108
  "name": "id",
109
109
  "type": "string"
@@ -113,7 +113,7 @@
113
113
  {
114
114
  "event": "TicketSaveFailed",
115
115
  "scope": "internal",
116
- "payload": [
116
+ "payloadSchema": [
117
117
  {
118
118
  "name": "error",
119
119
  "type": "string"
@@ -127,7 +127,7 @@
127
127
  {
128
128
  "event": "TicketUpdated",
129
129
  "scope": "internal",
130
- "payload": [
130
+ "payloadSchema": [
131
131
  {
132
132
  "name": "id",
133
133
  "type": "string"
@@ -137,7 +137,7 @@
137
137
  {
138
138
  "event": "TicketUpdateFailed",
139
139
  "scope": "internal",
140
- "payload": [
140
+ "payloadSchema": [
141
141
  {
142
142
  "name": "error",
143
143
  "type": "string"
@@ -151,7 +151,7 @@
151
151
  {
152
152
  "event": "TicketDeleted",
153
153
  "scope": "internal",
154
- "payload": [
154
+ "payloadSchema": [
155
155
  {
156
156
  "name": "id",
157
157
  "type": "string"
@@ -161,7 +161,7 @@
161
161
  {
162
162
  "event": "TicketDeleteFailed",
163
163
  "scope": "internal",
164
- "payload": [
164
+ "payloadSchema": [
165
165
  {
166
166
  "name": "error",
167
167
  "type": "string"
@@ -175,7 +175,7 @@
175
175
  {
176
176
  "event": "ResponseSaved",
177
177
  "scope": "internal",
178
- "payload": [
178
+ "payloadSchema": [
179
179
  {
180
180
  "name": "id",
181
181
  "type": "string"
@@ -185,7 +185,7 @@
185
185
  {
186
186
  "event": "ResponseSaveFailed",
187
187
  "scope": "internal",
188
- "payload": [
188
+ "payloadSchema": [
189
189
  {
190
190
  "name": "error",
191
191
  "type": "string"
@@ -238,7 +238,7 @@
238
238
  {
239
239
  "key": "TicketLoaded",
240
240
  "name": "Ticket loaded",
241
- "payload": [
241
+ "payloadSchema": [
242
242
  {
243
243
  "name": "data",
244
244
  "type": "[Ticket]"
@@ -248,7 +248,7 @@
248
248
  {
249
249
  "key": "TicketLoadFailed",
250
250
  "name": "Ticket load failed",
251
- "payload": [
251
+ "payloadSchema": [
252
252
  {
253
253
  "name": "error",
254
254
  "type": "string"
@@ -266,7 +266,7 @@
266
266
  {
267
267
  "key": "TicketSaved",
268
268
  "name": "Ticket saved",
269
- "payload": [
269
+ "payloadSchema": [
270
270
  {
271
271
  "name": "id",
272
272
  "type": "string"
@@ -276,7 +276,7 @@
276
276
  {
277
277
  "key": "TicketSaveFailed",
278
278
  "name": "Ticket save failed",
279
- "payload": [
279
+ "payloadSchema": [
280
280
  {
281
281
  "name": "error",
282
282
  "type": "string"
@@ -290,7 +290,7 @@
290
290
  {
291
291
  "key": "TicketUpdated",
292
292
  "name": "Ticket updated",
293
- "payload": [
293
+ "payloadSchema": [
294
294
  {
295
295
  "name": "id",
296
296
  "type": "string"
@@ -300,7 +300,7 @@
300
300
  {
301
301
  "key": "TicketUpdateFailed",
302
302
  "name": "Ticket update failed",
303
- "payload": [
303
+ "payloadSchema": [
304
304
  {
305
305
  "name": "error",
306
306
  "type": "string"
@@ -314,7 +314,7 @@
314
314
  {
315
315
  "key": "TicketDeleted",
316
316
  "name": "Ticket deleted",
317
- "payload": [
317
+ "payloadSchema": [
318
318
  {
319
319
  "name": "id",
320
320
  "type": "string"
@@ -324,7 +324,7 @@
324
324
  {
325
325
  "key": "TicketDeleteFailed",
326
326
  "name": "Ticket delete failed",
327
- "payload": [
327
+ "payloadSchema": [
328
328
  {
329
329
  "name": "error",
330
330
  "type": "string"
@@ -338,7 +338,7 @@
338
338
  {
339
339
  "key": "ResponseSaved",
340
340
  "name": "Response saved",
341
- "payload": [
341
+ "payloadSchema": [
342
342
  {
343
343
  "name": "id",
344
344
  "type": "string"
@@ -348,7 +348,7 @@
348
348
  {
349
349
  "key": "ResponseSaveFailed",
350
350
  "name": "Response save failed",
351
- "payload": [
351
+ "payloadSchema": [
352
352
  {
353
353
  "name": "error",
354
354
  "type": "string"
@@ -362,7 +362,7 @@
362
362
  {
363
363
  "key": "VIEW",
364
364
  "name": "View",
365
- "payload": [
365
+ "payloadSchema": [
366
366
  {
367
367
  "name": "id",
368
368
  "type": "string",
@@ -377,7 +377,7 @@
377
377
  {
378
378
  "key": "EDIT",
379
379
  "name": "Edit",
380
- "payload": [
380
+ "payloadSchema": [
381
381
  {
382
382
  "name": "id",
383
383
  "type": "string",
@@ -392,7 +392,7 @@
392
392
  {
393
393
  "key": "DELETE",
394
394
  "name": "Delete",
395
- "payload": [
395
+ "payloadSchema": [
396
396
  {
397
397
  "name": "id",
398
398
  "type": "string",
@@ -416,8 +416,8 @@
416
416
  "Ticket",
417
417
  {
418
418
  "emit": {
419
- "success": "TicketLoaded",
420
- "failure": "TicketLoadFailed"
419
+ "failure": "TicketLoadFailed",
420
+ "success": "TicketLoaded"
421
421
  }
422
422
  }
423
423
  ],
@@ -425,22 +425,22 @@
425
425
  "render-ui",
426
426
  "main",
427
427
  {
428
- "className": "py-12",
429
428
  "direction": "vertical",
429
+ "type": "stack",
430
+ "gap": "md",
431
+ "align": "center",
432
+ "className": "py-12",
430
433
  "children": [
431
434
  {
432
435
  "type": "spinner"
433
436
  },
434
437
  {
435
438
  "type": "typography",
439
+ "content": "Loading…",
436
440
  "variant": "caption",
437
- "color": "muted",
438
- "content": "Loading…"
441
+ "color": "muted"
439
442
  }
440
- ],
441
- "gap": "md",
442
- "type": "stack",
443
- "align": "center"
443
+ ]
444
444
  }
445
445
  ]
446
446
  ]
@@ -454,17 +454,19 @@
454
454
  "render-ui",
455
455
  "main",
456
456
  {
457
+ "appName": "Helpdesk",
457
458
  "children": [
458
459
  {
460
+ "direction": "vertical",
461
+ "type": "stack",
459
462
  "gap": "lg",
460
463
  "children": [
461
464
  {
462
- "justify": "between",
463
- "direction": "horizontal",
464
465
  "children": [
465
466
  {
467
+ "align": "center",
468
+ "direction": "horizontal",
466
469
  "gap": "sm",
467
- "type": "stack",
468
470
  "children": [
469
471
  {
470
472
  "type": "icon",
@@ -472,30 +474,31 @@
472
474
  },
473
475
  {
474
476
  "content": "Tickets",
475
- "variant": "h2",
476
- "type": "typography"
477
+ "type": "typography",
478
+ "variant": "h2"
477
479
  }
478
480
  ],
479
- "align": "center",
480
- "direction": "horizontal"
481
+ "type": "stack"
481
482
  },
482
483
  {
483
- "type": "stack",
484
- "gap": "sm",
485
484
  "children": [
486
485
  {
487
- "variant": "primary",
488
- "action": "CREATE",
489
486
  "type": "button",
490
487
  "label": "New Ticket",
488
+ "action": "CREATE",
489
+ "variant": "primary",
491
490
  "icon": "plus"
492
491
  }
493
492
  ],
493
+ "type": "stack",
494
+ "gap": "sm",
494
495
  "direction": "horizontal"
495
496
  }
496
497
  ],
497
- "type": "stack",
498
+ "direction": "horizontal",
499
+ "justify": "between",
498
500
  "gap": "md",
501
+ "type": "stack",
499
502
  "align": "center"
500
503
  },
501
504
  {
@@ -506,10 +509,10 @@
506
509
  "cols": 1.0,
507
510
  "children": [
508
511
  {
509
- "icon": "inbox",
510
512
  "label": "Open Tickets",
511
- "value": "@entity",
512
- "type": "stat-display"
513
+ "type": "stat-display",
514
+ "icon": "inbox",
515
+ "value": "@entity"
513
516
  }
514
517
  ]
515
518
  },
@@ -517,65 +520,61 @@
517
520
  "type": "divider"
518
521
  },
519
522
  {
523
+ "type": "data-list",
524
+ "entity": "@payload.data",
525
+ "fields": [],
520
526
  "itemActions": [
521
527
  {
528
+ "variant": "ghost",
522
529
  "label": "View",
523
- "event": "VIEW",
524
- "variant": "ghost"
530
+ "event": "VIEW"
525
531
  },
526
532
  {
533
+ "variant": "ghost",
527
534
  "label": "Edit",
528
- "event": "EDIT",
529
- "variant": "ghost"
535
+ "event": "EDIT"
530
536
  },
531
537
  {
532
538
  "label": "Delete",
533
- "variant": "danger",
534
- "event": "DELETE"
539
+ "event": "DELETE",
540
+ "variant": "danger"
535
541
  }
536
542
  ],
537
- "entity": "@payload.data",
543
+ "gap": "sm",
538
544
  "columns": [
539
545
  {
540
- "icon": "inbox",
546
+ "name": "subject",
541
547
  "variant": "h3",
542
- "name": "subject"
548
+ "icon": "inbox"
543
549
  },
544
550
  {
545
- "variant": "badge",
546
- "name": "priority"
551
+ "name": "priority",
552
+ "variant": "badge"
547
553
  },
548
554
  {
549
- "name": "status",
550
- "variant": "badge"
555
+ "variant": "badge",
556
+ "name": "status"
551
557
  },
552
558
  {
553
- "variant": "body",
554
- "name": "assignee"
559
+ "name": "assignee",
560
+ "variant": "body"
555
561
  },
556
562
  {
557
563
  "name": "description",
558
564
  "variant": "caption"
559
565
  }
560
566
  ],
561
- "fields": [],
562
- "variant": "card",
563
- "gap": "sm",
564
- "type": "data-list"
567
+ "variant": "card"
565
568
  }
566
569
  ],
567
- "type": "stack",
568
- "className": "max-w-5xl mx-auto w-full",
569
- "direction": "vertical"
570
+ "className": "max-w-5xl mx-auto w-full"
570
571
  }
571
572
  ],
572
- "type": "dashboard-layout",
573
- "appName": "Helpdesk",
574
573
  "navItems": [
575
574
  {
576
575
  "icon": "inbox",
577
- "href": "/tickets",
578
- "label": "Tickets"
576
+ "label": "Tickets",
577
+ "href": "/tickets"
579
578
  },
580
579
  {
581
580
  "href": "/responses",
@@ -584,10 +583,11 @@
584
583
  },
585
584
  {
586
585
  "label": "Metrics",
587
- "icon": "layout-list",
588
- "href": "/metrics"
586
+ "href": "/metrics",
587
+ "icon": "layout-list"
589
588
  }
590
- ]
589
+ ],
590
+ "type": "dashboard-layout"
591
591
  }
592
592
  ]
593
593
  ]
@@ -601,36 +601,36 @@
601
601
  "render-ui",
602
602
  "main",
603
603
  {
604
- "type": "stack",
605
- "direction": "vertical",
606
604
  "gap": "md",
607
- "className": "py-12",
608
605
  "align": "center",
609
606
  "children": [
610
607
  {
611
608
  "type": "icon",
612
- "name": "alert-triangle",
613
- "color": "destructive"
609
+ "color": "destructive",
610
+ "name": "alert-triangle"
614
611
  },
615
612
  {
613
+ "content": "Failed to load ticket",
616
614
  "type": "typography",
617
- "variant": "h3",
618
- "content": "Failed to load ticket"
615
+ "variant": "h3"
619
616
  },
620
617
  {
618
+ "type": "typography",
621
619
  "content": "@payload.error",
622
620
  "variant": "body",
623
- "type": "typography",
624
621
  "color": "muted"
625
622
  },
626
623
  {
624
+ "icon": "rotate-ccw",
625
+ "variant": "primary",
627
626
  "type": "button",
628
627
  "action": "INIT",
629
- "icon": "rotate-ccw",
630
- "label": "Retry",
631
- "variant": "primary"
628
+ "label": "Retry"
632
629
  }
633
- ]
630
+ ],
631
+ "type": "stack",
632
+ "className": "py-12",
633
+ "direction": "vertical"
634
634
  }
635
635
  ]
636
636
  ]
@@ -647,7 +647,7 @@
647
647
  {
648
648
  "event": "TICKET_CREATED",
649
649
  "scope": "external",
650
- "payload": [
650
+ "payloadSchema": [
651
651
  {
652
652
  "name": "id",
653
653
  "type": "string"
@@ -658,7 +658,7 @@
658
658
  "event": "TicketLoadFailed",
659
659
  "description": "Fired when Ticket fails to load",
660
660
  "scope": "internal",
661
- "payload": [
661
+ "payloadSchema": [
662
662
  {
663
663
  "name": "error",
664
664
  "type": "string"
@@ -673,7 +673,7 @@
673
673
  "event": "TicketLoaded",
674
674
  "description": "Fired when Ticket finishes loading",
675
675
  "scope": "internal",
676
- "payload": [
676
+ "payloadSchema": [
677
677
  {
678
678
  "name": "data",
679
679
  "type": "[Ticket]"
@@ -683,7 +683,7 @@
683
683
  {
684
684
  "event": "TicketSaveFailed",
685
685
  "scope": "internal",
686
- "payload": [
686
+ "payloadSchema": [
687
687
  {
688
688
  "name": "error",
689
689
  "type": "string"
@@ -697,7 +697,7 @@
697
697
  {
698
698
  "event": "TicketSaved",
699
699
  "scope": "internal",
700
- "payload": [
700
+ "payloadSchema": [
701
701
  {
702
702
  "name": "id",
703
703
  "type": "string"
@@ -731,7 +731,7 @@
731
731
  {
732
732
  "key": "SAVE",
733
733
  "name": "Save",
734
- "payload": [
734
+ "payloadSchema": [
735
735
  {
736
736
  "name": "data",
737
737
  "type": "object",
@@ -746,7 +746,7 @@
746
746
  {
747
747
  "key": "TicketLoadFailed",
748
748
  "name": "Ticket load failed",
749
- "payload": [
749
+ "payloadSchema": [
750
750
  {
751
751
  "name": "error",
752
752
  "type": "string"
@@ -760,7 +760,7 @@
760
760
  {
761
761
  "key": "TicketLoaded",
762
762
  "name": "Ticket loaded",
763
- "payload": [
763
+ "payloadSchema": [
764
764
  {
765
765
  "name": "data",
766
766
  "type": "[Ticket]"
@@ -770,7 +770,7 @@
770
770
  {
771
771
  "key": "TicketSaveFailed",
772
772
  "name": "Ticket save failed",
773
- "payload": [
773
+ "payloadSchema": [
774
774
  {
775
775
  "name": "error",
776
776
  "type": "string"
@@ -784,7 +784,7 @@
784
784
  {
785
785
  "key": "TicketSaved",
786
786
  "name": "Ticket saved",
787
- "payload": [
787
+ "payloadSchema": [
788
788
  {
789
789
  "name": "id",
790
790
  "type": "string"
@@ -823,6 +823,8 @@
823
823
  "render-ui",
824
824
  "modal",
825
825
  {
826
+ "direction": "vertical",
827
+ "gap": "md",
826
828
  "type": "stack",
827
829
  "children": [
828
830
  {
@@ -835,9 +837,9 @@
835
837
  "type": "icon"
836
838
  },
837
839
  {
838
- "type": "typography",
840
+ "variant": "h3",
839
841
  "content": "Create Ticket",
840
- "variant": "h3"
842
+ "type": "typography"
841
843
  }
842
844
  ]
843
845
  },
@@ -845,21 +847,19 @@
845
847
  "type": "divider"
846
848
  },
847
849
  {
850
+ "type": "form-section",
848
851
  "submitEvent": "SAVE",
852
+ "mode": "create",
853
+ "cancelEvent": "CLOSE",
849
854
  "fields": [
850
855
  "subject",
851
856
  "description",
852
857
  "priority",
853
858
  "status",
854
859
  "assignee"
855
- ],
856
- "cancelEvent": "CLOSE",
857
- "mode": "create",
858
- "type": "form-section"
860
+ ]
859
861
  }
860
- ],
861
- "direction": "vertical",
862
- "gap": "md"
862
+ ]
863
863
  }
864
864
  ]
865
865
  ]
@@ -900,8 +900,8 @@
900
900
  "@payload.data",
901
901
  {
902
902
  "emit": {
903
- "success": "TicketSaved",
904
- "failure": "TicketSaveFailed"
903
+ "failure": "TicketSaveFailed",
904
+ "success": "TicketSaved"
905
905
  }
906
906
  }
907
907
  ],
@@ -935,7 +935,7 @@
935
935
  {
936
936
  "event": "TICKET_UPDATED",
937
937
  "scope": "external",
938
- "payload": [
938
+ "payloadSchema": [
939
939
  {
940
940
  "name": "id",
941
941
  "type": "string"
@@ -946,7 +946,7 @@
946
946
  "event": "TicketLoadFailed",
947
947
  "description": "Fired when Ticket fails to load",
948
948
  "scope": "internal",
949
- "payload": [
949
+ "payloadSchema": [
950
950
  {
951
951
  "name": "error",
952
952
  "type": "string"
@@ -961,7 +961,7 @@
961
961
  "event": "TicketLoaded",
962
962
  "description": "Fired when Ticket finishes loading",
963
963
  "scope": "internal",
964
- "payload": [
964
+ "payloadSchema": [
965
965
  {
966
966
  "name": "data",
967
967
  "type": "[Ticket]"
@@ -971,7 +971,7 @@
971
971
  {
972
972
  "event": "TicketUpdateFailed",
973
973
  "scope": "internal",
974
- "payload": [
974
+ "payloadSchema": [
975
975
  {
976
976
  "name": "error",
977
977
  "type": "string"
@@ -985,7 +985,7 @@
985
985
  {
986
986
  "event": "TicketUpdated",
987
987
  "scope": "internal",
988
- "payload": [
988
+ "payloadSchema": [
989
989
  {
990
990
  "name": "id",
991
991
  "type": "string"
@@ -1011,7 +1011,7 @@
1011
1011
  {
1012
1012
  "key": "EDIT",
1013
1013
  "name": "Edit",
1014
- "payload": [
1014
+ "payloadSchema": [
1015
1015
  {
1016
1016
  "name": "id",
1017
1017
  "type": "string",
@@ -1030,7 +1030,7 @@
1030
1030
  {
1031
1031
  "key": "SAVE",
1032
1032
  "name": "Save",
1033
- "payload": [
1033
+ "payloadSchema": [
1034
1034
  {
1035
1035
  "name": "data",
1036
1036
  "type": "object",
@@ -1045,7 +1045,7 @@
1045
1045
  {
1046
1046
  "key": "TicketLoadFailed",
1047
1047
  "name": "Ticket load failed",
1048
- "payload": [
1048
+ "payloadSchema": [
1049
1049
  {
1050
1050
  "name": "error",
1051
1051
  "type": "string"
@@ -1059,7 +1059,7 @@
1059
1059
  {
1060
1060
  "key": "TicketLoaded",
1061
1061
  "name": "Ticket loaded",
1062
- "payload": [
1062
+ "payloadSchema": [
1063
1063
  {
1064
1064
  "name": "data",
1065
1065
  "type": "[Ticket]"
@@ -1069,7 +1069,7 @@
1069
1069
  {
1070
1070
  "key": "TicketUpdateFailed",
1071
1071
  "name": "Ticket update failed",
1072
- "payload": [
1072
+ "payloadSchema": [
1073
1073
  {
1074
1074
  "name": "error",
1075
1075
  "type": "string"
@@ -1083,7 +1083,7 @@
1083
1083
  {
1084
1084
  "key": "TicketUpdated",
1085
1085
  "name": "Ticket updated",
1086
- "payload": [
1086
+ "payloadSchema": [
1087
1087
  {
1088
1088
  "name": "id",
1089
1089
  "type": "string"
@@ -1112,41 +1112,42 @@
1112
1112
  "fetch",
1113
1113
  "Ticket",
1114
1114
  {
1115
- "id": "@payload.id",
1116
1115
  "emit": {
1117
1116
  "success": "TicketLoaded",
1118
1117
  "failure": "TicketLoadFailed"
1119
- }
1118
+ },
1119
+ "id": "@payload.id"
1120
1120
  }
1121
1121
  ],
1122
1122
  [
1123
1123
  "render-ui",
1124
1124
  "modal",
1125
1125
  {
1126
- "type": "stack",
1126
+ "direction": "vertical",
1127
+ "gap": "md",
1127
1128
  "children": [
1128
1129
  {
1129
- "direction": "horizontal",
1130
- "type": "stack",
1131
1130
  "gap": "sm",
1131
+ "direction": "horizontal",
1132
1132
  "children": [
1133
1133
  {
1134
- "name": "edit",
1135
- "type": "icon"
1134
+ "type": "icon",
1135
+ "name": "edit"
1136
1136
  },
1137
1137
  {
1138
- "variant": "h3",
1138
+ "type": "typography",
1139
1139
  "content": "Edit Ticket",
1140
- "type": "typography"
1140
+ "variant": "h3"
1141
1141
  }
1142
- ]
1142
+ ],
1143
+ "type": "stack"
1143
1144
  },
1144
1145
  {
1145
1146
  "type": "divider"
1146
1147
  },
1147
1148
  {
1148
- "type": "form-section",
1149
- "submitEvent": "SAVE",
1149
+ "cancelEvent": "CLOSE",
1150
+ "entity": "@payload.row",
1150
1151
  "fields": [
1151
1152
  "subject",
1152
1153
  "description",
@@ -1154,13 +1155,12 @@
1154
1155
  "status",
1155
1156
  "assignee"
1156
1157
  ],
1157
- "cancelEvent": "CLOSE",
1158
- "entity": "@payload.row",
1159
- "mode": "edit"
1158
+ "mode": "edit",
1159
+ "submitEvent": "SAVE",
1160
+ "type": "form-section"
1160
1161
  }
1161
1162
  ],
1162
- "gap": "md",
1163
- "direction": "vertical"
1163
+ "type": "stack"
1164
1164
  }
1165
1165
  ]
1166
1166
  ]
@@ -1237,7 +1237,7 @@
1237
1237
  "event": "TicketLoaded",
1238
1238
  "description": "Fired when Ticket finishes loading",
1239
1239
  "scope": "internal",
1240
- "payload": [
1240
+ "payloadSchema": [
1241
1241
  {
1242
1242
  "name": "data",
1243
1243
  "type": "[Ticket]"
@@ -1248,7 +1248,7 @@
1248
1248
  "event": "TicketLoadFailed",
1249
1249
  "description": "Fired when Ticket fails to load",
1250
1250
  "scope": "internal",
1251
- "payload": [
1251
+ "payloadSchema": [
1252
1252
  {
1253
1253
  "name": "error",
1254
1254
  "type": "string"
@@ -1278,7 +1278,7 @@
1278
1278
  {
1279
1279
  "key": "VIEW",
1280
1280
  "name": "View",
1281
- "payload": [
1281
+ "payloadSchema": [
1282
1282
  {
1283
1283
  "name": "id",
1284
1284
  "type": "string",
@@ -1293,7 +1293,7 @@
1293
1293
  {
1294
1294
  "key": "SAVE",
1295
1295
  "name": "Save",
1296
- "payload": [
1296
+ "payloadSchema": [
1297
1297
  {
1298
1298
  "name": "data",
1299
1299
  "type": "object",
@@ -1304,7 +1304,7 @@
1304
1304
  {
1305
1305
  "key": "TicketLoaded",
1306
1306
  "name": "Ticket loaded",
1307
- "payload": [
1307
+ "payloadSchema": [
1308
1308
  {
1309
1309
  "name": "data",
1310
1310
  "type": "[Ticket]"
@@ -1314,7 +1314,7 @@
1314
1314
  {
1315
1315
  "key": "TicketLoadFailed",
1316
1316
  "name": "Ticket load failed",
1317
- "payload": [
1317
+ "payloadSchema": [
1318
1318
  {
1319
1319
  "name": "error",
1320
1320
  "type": "string"
@@ -1349,8 +1349,8 @@
1349
1349
  {
1350
1350
  "id": "@payload.id",
1351
1351
  "emit": {
1352
- "success": "TicketLoaded",
1353
- "failure": "TicketLoadFailed"
1352
+ "failure": "TicketLoadFailed",
1353
+ "success": "TicketLoaded"
1354
1354
  }
1355
1355
  }
1356
1356
  ],
@@ -1358,48 +1358,49 @@
1358
1358
  "render-ui",
1359
1359
  "modal",
1360
1360
  {
1361
+ "type": "stack",
1362
+ "direction": "vertical",
1361
1363
  "children": [
1362
1364
  {
1365
+ "type": "stack",
1366
+ "direction": "horizontal",
1363
1367
  "gap": "sm",
1364
1368
  "align": "center",
1365
- "type": "stack",
1366
1369
  "children": [
1367
1370
  {
1368
- "name": "eye",
1369
- "type": "icon"
1371
+ "type": "icon",
1372
+ "name": "eye"
1370
1373
  },
1371
1374
  {
1372
- "variant": "h3",
1375
+ "type": "typography",
1373
1376
  "content": "@entity.subject",
1374
- "type": "typography"
1377
+ "variant": "h3"
1375
1378
  }
1376
- ],
1377
- "direction": "horizontal"
1379
+ ]
1378
1380
  },
1379
1381
  {
1380
1382
  "type": "divider"
1381
1383
  },
1382
1384
  {
1383
- "direction": "horizontal",
1384
1385
  "children": [
1385
1386
  {
1387
+ "type": "typography",
1386
1388
  "variant": "caption",
1387
- "content": "Subject",
1388
- "type": "typography"
1389
+ "content": "Subject"
1389
1390
  },
1390
1391
  {
1391
- "content": "@entity.subject",
1392
+ "variant": "body",
1392
1393
  "type": "typography",
1393
- "variant": "body"
1394
+ "content": "@entity.subject"
1394
1395
  }
1395
1396
  ],
1396
1397
  "type": "stack",
1398
+ "direction": "horizontal",
1397
1399
  "gap": "md"
1398
1400
  },
1399
1401
  {
1400
- "type": "stack",
1401
1402
  "gap": "md",
1402
- "direction": "horizontal",
1403
+ "type": "stack",
1403
1404
  "children": [
1404
1405
  {
1405
1406
  "variant": "caption",
@@ -1407,91 +1408,90 @@
1407
1408
  "type": "typography"
1408
1409
  },
1409
1410
  {
1410
- "variant": "body",
1411
1411
  "content": "@entity.description",
1412
- "type": "typography"
1412
+ "type": "typography",
1413
+ "variant": "body"
1413
1414
  }
1414
- ]
1415
+ ],
1416
+ "direction": "horizontal"
1415
1417
  },
1416
1418
  {
1417
- "direction": "horizontal",
1418
1419
  "type": "stack",
1420
+ "direction": "horizontal",
1419
1421
  "children": [
1420
1422
  {
1421
1423
  "type": "typography",
1422
- "variant": "caption",
1423
- "content": "Priority"
1424
+ "content": "Priority",
1425
+ "variant": "caption"
1424
1426
  },
1425
1427
  {
1426
- "content": "@entity.priority",
1427
1428
  "variant": "body",
1429
+ "content": "@entity.priority",
1428
1430
  "type": "typography"
1429
1431
  }
1430
1432
  ],
1431
1433
  "gap": "md"
1432
1434
  },
1433
1435
  {
1434
- "direction": "horizontal",
1435
- "type": "stack",
1436
1436
  "gap": "md",
1437
1437
  "children": [
1438
1438
  {
1439
- "variant": "caption",
1440
1439
  "type": "typography",
1440
+ "variant": "caption",
1441
1441
  "content": "Status"
1442
1442
  },
1443
1443
  {
1444
- "content": "@entity.status",
1444
+ "variant": "body",
1445
1445
  "type": "typography",
1446
- "variant": "body"
1446
+ "content": "@entity.status"
1447
1447
  }
1448
- ]
1448
+ ],
1449
+ "direction": "horizontal",
1450
+ "type": "stack"
1449
1451
  },
1450
1452
  {
1451
- "type": "stack",
1452
- "direction": "horizontal",
1453
1453
  "gap": "md",
1454
1454
  "children": [
1455
1455
  {
1456
- "variant": "caption",
1457
1456
  "content": "Assignee",
1458
- "type": "typography"
1457
+ "type": "typography",
1458
+ "variant": "caption"
1459
1459
  },
1460
1460
  {
1461
1461
  "content": "@entity.assignee",
1462
- "type": "typography",
1463
- "variant": "body"
1462
+ "variant": "body",
1463
+ "type": "typography"
1464
1464
  }
1465
- ]
1465
+ ],
1466
+ "type": "stack",
1467
+ "direction": "horizontal"
1466
1468
  },
1467
1469
  {
1468
1470
  "type": "divider"
1469
1471
  },
1470
1472
  {
1471
- "direction": "horizontal",
1472
- "gap": "sm",
1473
- "justify": "end",
1474
1473
  "children": [
1475
1474
  {
1476
- "type": "button",
1475
+ "icon": "edit",
1476
+ "action": "EDIT",
1477
1477
  "label": "Edit",
1478
1478
  "variant": "primary",
1479
- "action": "EDIT",
1480
- "icon": "edit"
1479
+ "type": "button"
1481
1480
  },
1482
1481
  {
1483
- "variant": "ghost",
1484
1482
  "label": "Close",
1483
+ "action": "CLOSE",
1485
1484
  "type": "button",
1486
- "action": "CLOSE"
1485
+ "variant": "ghost"
1487
1486
  }
1488
1487
  ],
1489
- "type": "stack"
1488
+ "direction": "horizontal",
1489
+ "gap": "sm",
1490
+ "type": "stack",
1491
+ "justify": "end"
1490
1492
  }
1491
1493
  ],
1492
- "gap": "md",
1493
- "type": "stack",
1494
- "direction": "vertical"
1494
+ "gap": "md"
1495
1495
  }
1496
1496
  ]
1497
1497
  ]
@@ -1551,7 +1551,7 @@
1551
1551
  {
1552
1552
  "event": "TICKET_DELETED",
1553
1553
  "scope": "external",
1554
- "payload": [
1554
+ "payloadSchema": [
1555
1555
  {
1556
1556
  "name": "id",
1557
1557
  "type": "string"
@@ -1561,7 +1561,7 @@
1561
1561
  {
1562
1562
  "event": "TicketDeleteFailed",
1563
1563
  "scope": "internal",
1564
- "payload": [
1564
+ "payloadSchema": [
1565
1565
  {
1566
1566
  "name": "error",
1567
1567
  "type": "string"
@@ -1575,7 +1575,7 @@
1575
1575
  {
1576
1576
  "event": "TicketDeleted",
1577
1577
  "scope": "internal",
1578
- "payload": [
1578
+ "payloadSchema": [
1579
1579
  {
1580
1580
  "name": "id",
1581
1581
  "type": "string"
@@ -1586,7 +1586,7 @@
1586
1586
  "event": "TicketLoadFailed",
1587
1587
  "description": "Fired when Ticket fails to load",
1588
1588
  "scope": "internal",
1589
- "payload": [
1589
+ "payloadSchema": [
1590
1590
  {
1591
1591
  "name": "error",
1592
1592
  "type": "string"
@@ -1601,7 +1601,7 @@
1601
1601
  "event": "TicketLoaded",
1602
1602
  "description": "Fired when Ticket finishes loading",
1603
1603
  "scope": "internal",
1604
- "payload": [
1604
+ "payloadSchema": [
1605
1605
  {
1606
1606
  "name": "data",
1607
1607
  "type": "[Ticket]"
@@ -1627,7 +1627,7 @@
1627
1627
  {
1628
1628
  "key": "DELETE",
1629
1629
  "name": "Delete",
1630
- "payload": [
1630
+ "payloadSchema": [
1631
1631
  {
1632
1632
  "name": "id",
1633
1633
  "type": "string",
@@ -1654,7 +1654,7 @@
1654
1654
  {
1655
1655
  "key": "TicketDeleteFailed",
1656
1656
  "name": "Ticket delete failed",
1657
- "payload": [
1657
+ "payloadSchema": [
1658
1658
  {
1659
1659
  "name": "error",
1660
1660
  "type": "string"
@@ -1668,7 +1668,7 @@
1668
1668
  {
1669
1669
  "key": "TicketDeleted",
1670
1670
  "name": "Ticket deleted",
1671
- "payload": [
1671
+ "payloadSchema": [
1672
1672
  {
1673
1673
  "name": "id",
1674
1674
  "type": "string"
@@ -1678,7 +1678,7 @@
1678
1678
  {
1679
1679
  "key": "TicketLoadFailed",
1680
1680
  "name": "Ticket load failed",
1681
- "payload": [
1681
+ "payloadSchema": [
1682
1682
  {
1683
1683
  "name": "error",
1684
1684
  "type": "string"
@@ -1692,7 +1692,7 @@
1692
1692
  {
1693
1693
  "key": "TicketLoaded",
1694
1694
  "name": "Ticket loaded",
1695
- "payload": [
1695
+ "payloadSchema": [
1696
1696
  {
1697
1697
  "name": "data",
1698
1698
  "type": "[Ticket]"
@@ -1737,35 +1737,37 @@
1737
1737
  "render-ui",
1738
1738
  "modal",
1739
1739
  {
1740
+ "type": "stack",
1741
+ "gap": "md",
1742
+ "direction": "vertical",
1740
1743
  "children": [
1741
1744
  {
1745
+ "align": "center",
1746
+ "type": "stack",
1742
1747
  "direction": "horizontal",
1743
1748
  "children": [
1744
1749
  {
1745
- "type": "icon",
1746
- "name": "alert-triangle"
1750
+ "name": "alert-triangle",
1751
+ "type": "icon"
1747
1752
  },
1748
1753
  {
1749
- "content": "Delete Ticket",
1750
1754
  "variant": "h3",
1751
- "type": "typography"
1755
+ "type": "typography",
1756
+ "content": "Delete Ticket"
1752
1757
  }
1753
1758
  ],
1754
- "gap": "sm",
1755
- "align": "center",
1756
- "type": "stack"
1759
+ "gap": "sm"
1757
1760
  },
1758
1761
  {
1759
1762
  "type": "divider"
1760
1763
  },
1761
1764
  {
1762
- "message": "This action cannot be undone.",
1763
1765
  "type": "alert",
1766
+ "message": "This action cannot be undone.",
1764
1767
  "variant": "error"
1765
1768
  },
1766
1769
  {
1767
1770
  "gap": "sm",
1768
- "type": "stack",
1769
1771
  "justify": "end",
1770
1772
  "children": [
1771
1773
  {
@@ -1775,19 +1777,17 @@
1775
1777
  "variant": "ghost"
1776
1778
  },
1777
1779
  {
1778
- "label": "Delete",
1779
- "action": "CONFIRM_DELETE",
1780
1780
  "type": "button",
1781
+ "variant": "danger",
1781
1782
  "icon": "check",
1782
- "variant": "danger"
1783
+ "label": "Delete",
1784
+ "action": "CONFIRM_DELETE"
1783
1785
  }
1784
1786
  ],
1785
- "direction": "horizontal"
1787
+ "direction": "horizontal",
1788
+ "type": "stack"
1786
1789
  }
1787
- ],
1788
- "gap": "md",
1789
- "type": "stack",
1790
- "direction": "vertical"
1790
+ ]
1791
1791
  }
1792
1792
  ]
1793
1793
  ]
@@ -1944,7 +1944,7 @@
1944
1944
  {
1945
1945
  "event": "RESOLVE",
1946
1946
  "scope": "external",
1947
- "payload": [
1947
+ "payloadSchema": [
1948
1948
  {
1949
1949
  "name": "id",
1950
1950
  "type": "string"
@@ -1955,7 +1955,7 @@
1955
1955
  "event": "ResponseLoaded",
1956
1956
  "description": "Fired when Response finishes loading",
1957
1957
  "scope": "internal",
1958
- "payload": [
1958
+ "payloadSchema": [
1959
1959
  {
1960
1960
  "name": "data",
1961
1961
  "type": "[Response]"
@@ -1966,7 +1966,7 @@
1966
1966
  "event": "ResponseLoadFailed",
1967
1967
  "description": "Fired when Response fails to load",
1968
1968
  "scope": "internal",
1969
- "payload": [
1969
+ "payloadSchema": [
1970
1970
  {
1971
1971
  "name": "error",
1972
1972
  "type": "string"
@@ -2010,7 +2010,7 @@
2010
2010
  {
2011
2011
  "key": "ResponseLoaded",
2012
2012
  "name": "Response loaded",
2013
- "payload": [
2013
+ "payloadSchema": [
2014
2014
  {
2015
2015
  "name": "data",
2016
2016
  "type": "[Response]"
@@ -2020,7 +2020,7 @@
2020
2020
  {
2021
2021
  "key": "ResponseLoadFailed",
2022
2022
  "name": "Response load failed",
2023
- "payload": [
2023
+ "payloadSchema": [
2024
2024
  {
2025
2025
  "name": "error",
2026
2026
  "type": "string"
@@ -2047,8 +2047,8 @@
2047
2047
  "Response",
2048
2048
  {
2049
2049
  "emit": {
2050
- "failure": "ResponseLoadFailed",
2051
- "success": "ResponseLoaded"
2050
+ "success": "ResponseLoaded",
2051
+ "failure": "ResponseLoadFailed"
2052
2052
  }
2053
2053
  }
2054
2054
  ],
@@ -2056,22 +2056,22 @@
2056
2056
  "render-ui",
2057
2057
  "main",
2058
2058
  {
2059
- "gap": "md",
2060
- "direction": "vertical",
2061
2059
  "className": "py-12",
2062
2060
  "children": [
2063
2061
  {
2064
2062
  "type": "spinner"
2065
2063
  },
2066
2064
  {
2067
- "color": "muted",
2065
+ "type": "typography",
2068
2066
  "content": "Loading…",
2069
2067
  "variant": "caption",
2070
- "type": "typography"
2068
+ "color": "muted"
2071
2069
  }
2072
2070
  ],
2073
2071
  "type": "stack",
2074
- "align": "center"
2072
+ "align": "center",
2073
+ "gap": "md",
2074
+ "direction": "vertical"
2075
2075
  }
2076
2076
  ]
2077
2077
  ]
@@ -2085,46 +2085,49 @@
2085
2085
  "render-ui",
2086
2086
  "main",
2087
2087
  {
2088
+ "type": "dashboard-layout",
2089
+ "appName": "Helpdesk",
2088
2090
  "navItems": [
2089
2091
  {
2090
- "label": "Tickets",
2091
2092
  "href": "/tickets",
2093
+ "label": "Tickets",
2092
2094
  "icon": "inbox"
2093
2095
  },
2094
2096
  {
2095
2097
  "href": "/responses",
2096
- "icon": "message-circle",
2097
- "label": "Responses"
2098
+ "label": "Responses",
2099
+ "icon": "message-circle"
2098
2100
  },
2099
2101
  {
2102
+ "href": "/metrics",
2100
2103
  "label": "Metrics",
2101
- "icon": "layout-list",
2102
- "href": "/metrics"
2104
+ "icon": "layout-list"
2103
2105
  }
2104
2106
  ],
2105
- "type": "dashboard-layout",
2106
2107
  "children": [
2107
2108
  {
2109
+ "gap": "lg",
2108
2110
  "type": "stack",
2109
2111
  "children": [
2110
2112
  {
2111
- "align": "center",
2112
- "gap": "md",
2113
2113
  "justify": "between",
2114
+ "gap": "md",
2115
+ "type": "stack",
2116
+ "align": "center",
2114
2117
  "children": [
2115
2118
  {
2116
- "align": "center",
2117
- "direction": "horizontal",
2118
2119
  "type": "stack",
2120
+ "direction": "horizontal",
2119
2121
  "gap": "sm",
2122
+ "align": "center",
2120
2123
  "children": [
2121
2124
  {
2122
2125
  "type": "icon",
2123
2126
  "name": "message-circle"
2124
2127
  },
2125
2128
  {
2126
- "type": "typography",
2127
2129
  "content": "Responses",
2130
+ "type": "typography",
2128
2131
  "variant": "h2"
2129
2132
  }
2130
2133
  ]
@@ -2132,39 +2135,44 @@
2132
2135
  {
2133
2136
  "children": [
2134
2137
  {
2135
- "type": "button",
2138
+ "variant": "primary",
2136
2139
  "icon": "edit",
2137
2140
  "label": "Compose",
2138
- "variant": "primary",
2139
- "action": "COMPOSE"
2141
+ "action": "COMPOSE",
2142
+ "type": "button"
2140
2143
  }
2141
2144
  ],
2142
- "direction": "horizontal",
2143
2145
  "type": "stack",
2146
+ "direction": "horizontal",
2144
2147
  "gap": "sm"
2145
2148
  }
2146
2149
  ],
2147
- "direction": "horizontal",
2148
- "type": "stack"
2150
+ "direction": "horizontal"
2149
2151
  },
2150
2152
  {
2151
2153
  "type": "divider"
2152
2154
  },
2153
2155
  {
2156
+ "variant": "card",
2154
2157
  "gap": "sm",
2158
+ "itemActions": [
2159
+ {
2160
+ "label": "View",
2161
+ "event": "VIEW",
2162
+ "variant": "ghost"
2163
+ }
2164
+ ],
2155
2165
  "type": "data-list",
2156
- "entity": "@payload.data",
2157
- "variant": "card",
2158
2166
  "fields": [],
2159
2167
  "columns": [
2160
2168
  {
2161
- "name": "author",
2162
2169
  "icon": "message-circle",
2163
- "variant": "h4"
2170
+ "variant": "h4",
2171
+ "name": "author"
2164
2172
  },
2165
2173
  {
2166
- "name": "body",
2167
- "variant": "body"
2174
+ "variant": "body",
2175
+ "name": "body"
2168
2176
  },
2169
2177
  {
2170
2178
  "format": "date",
@@ -2172,21 +2180,13 @@
2172
2180
  "name": "createdAt"
2173
2181
  }
2174
2182
  ],
2175
- "itemActions": [
2176
- {
2177
- "event": "VIEW",
2178
- "label": "View",
2179
- "variant": "ghost"
2180
- }
2181
- ]
2183
+ "entity": "@payload.data"
2182
2184
  }
2183
2185
  ],
2184
2186
  "direction": "vertical",
2185
- "className": "max-w-5xl mx-auto w-full",
2186
- "gap": "lg"
2187
+ "className": "max-w-5xl mx-auto w-full"
2187
2188
  }
2188
- ],
2189
- "appName": "Helpdesk"
2189
+ ]
2190
2190
  }
2191
2191
  ]
2192
2192
  ]
@@ -2204,32 +2204,32 @@
2204
2204
  "children": [
2205
2205
  {
2206
2206
  "name": "alert-triangle",
2207
- "type": "icon",
2208
- "color": "destructive"
2207
+ "color": "destructive",
2208
+ "type": "icon"
2209
2209
  },
2210
2210
  {
2211
+ "content": "Failed to load response",
2211
2212
  "variant": "h3",
2212
- "type": "typography",
2213
- "content": "Failed to load response"
2213
+ "type": "typography"
2214
2214
  },
2215
2215
  {
2216
2216
  "variant": "body",
2217
- "type": "typography",
2218
2217
  "content": "@payload.error",
2219
- "color": "muted"
2218
+ "color": "muted",
2219
+ "type": "typography"
2220
2220
  },
2221
2221
  {
2222
- "action": "INIT",
2223
2222
  "label": "Retry",
2223
+ "action": "INIT",
2224
2224
  "icon": "rotate-ccw",
2225
- "variant": "primary",
2226
- "type": "button"
2225
+ "type": "button",
2226
+ "variant": "primary"
2227
2227
  }
2228
2228
  ],
2229
2229
  "align": "center",
2230
- "direction": "vertical",
2230
+ "className": "py-12",
2231
2231
  "type": "stack",
2232
- "className": "py-12"
2232
+ "direction": "vertical"
2233
2233
  }
2234
2234
  ]
2235
2235
  ]
@@ -2250,7 +2250,7 @@
2250
2250
  "event": "ResponseLoadFailed",
2251
2251
  "description": "Fired when Response fails to load",
2252
2252
  "scope": "internal",
2253
- "payload": [
2253
+ "payloadSchema": [
2254
2254
  {
2255
2255
  "name": "error",
2256
2256
  "type": "string"
@@ -2265,7 +2265,7 @@
2265
2265
  "event": "ResponseLoaded",
2266
2266
  "description": "Fired when Response finishes loading",
2267
2267
  "scope": "internal",
2268
- "payload": [
2268
+ "payloadSchema": [
2269
2269
  {
2270
2270
  "name": "data",
2271
2271
  "type": "[Response]"
@@ -2275,7 +2275,7 @@
2275
2275
  {
2276
2276
  "event": "ResponseSaveFailed",
2277
2277
  "scope": "internal",
2278
- "payload": [
2278
+ "payloadSchema": [
2279
2279
  {
2280
2280
  "name": "error",
2281
2281
  "type": "string"
@@ -2289,7 +2289,7 @@
2289
2289
  {
2290
2290
  "event": "ResponseSaved",
2291
2291
  "scope": "internal",
2292
- "payload": [
2292
+ "payloadSchema": [
2293
2293
  {
2294
2294
  "name": "id",
2295
2295
  "type": "string"
@@ -2323,7 +2323,7 @@
2323
2323
  {
2324
2324
  "key": "SEND",
2325
2325
  "name": "Send",
2326
- "payload": [
2326
+ "payloadSchema": [
2327
2327
  {
2328
2328
  "name": "data",
2329
2329
  "type": "string"
@@ -2333,7 +2333,7 @@
2333
2333
  {
2334
2334
  "key": "ResponseLoadFailed",
2335
2335
  "name": "Response load failed",
2336
- "payload": [
2336
+ "payloadSchema": [
2337
2337
  {
2338
2338
  "name": "error",
2339
2339
  "type": "string"
@@ -2347,7 +2347,7 @@
2347
2347
  {
2348
2348
  "key": "ResponseLoaded",
2349
2349
  "name": "Response loaded",
2350
- "payload": [
2350
+ "payloadSchema": [
2351
2351
  {
2352
2352
  "name": "data",
2353
2353
  "type": "[Response]"
@@ -2357,7 +2357,7 @@
2357
2357
  {
2358
2358
  "key": "ResponseSaveFailed",
2359
2359
  "name": "Response save failed",
2360
- "payload": [
2360
+ "payloadSchema": [
2361
2361
  {
2362
2362
  "name": "error",
2363
2363
  "type": "string"
@@ -2371,7 +2371,7 @@
2371
2371
  {
2372
2372
  "key": "ResponseSaved",
2373
2373
  "name": "Response saved",
2374
- "payload": [
2374
+ "payloadSchema": [
2375
2375
  {
2376
2376
  "name": "id",
2377
2377
  "type": "string"
@@ -2403,7 +2403,6 @@
2403
2403
  "type": "stack",
2404
2404
  "children": [
2405
2405
  {
2406
- "gap": "sm",
2407
2406
  "children": [
2408
2407
  {
2409
2408
  "type": "icon",
@@ -2416,21 +2415,22 @@
2416
2415
  }
2417
2416
  ],
2418
2417
  "type": "stack",
2419
- "direction": "horizontal"
2418
+ "direction": "horizontal",
2419
+ "gap": "sm"
2420
2420
  },
2421
2421
  {
2422
2422
  "type": "divider"
2423
2423
  },
2424
2424
  {
2425
- "mode": "create",
2426
2425
  "cancelEvent": "CLOSE",
2427
2426
  "submitEvent": "SEND",
2427
+ "type": "form-section",
2428
+ "mode": "create",
2428
2429
  "fields": [
2429
2430
  "ticketId",
2430
2431
  "body",
2431
2432
  "author"
2432
- ],
2433
- "type": "form-section"
2433
+ ]
2434
2434
  }
2435
2435
  ],
2436
2436
  "gap": "md",
@@ -2475,8 +2475,8 @@
2475
2475
  "@payload.data",
2476
2476
  {
2477
2477
  "emit": {
2478
- "success": "ResponseSaved",
2479
- "failure": "ResponseSaveFailed"
2478
+ "failure": "ResponseSaveFailed",
2479
+ "success": "ResponseSaved"
2480
2480
  }
2481
2481
  }
2482
2482
  ],
@@ -2507,7 +2507,7 @@
2507
2507
  "event": "ResponseLoaded",
2508
2508
  "description": "Fired when Response finishes loading",
2509
2509
  "scope": "internal",
2510
- "payload": [
2510
+ "payloadSchema": [
2511
2511
  {
2512
2512
  "name": "data",
2513
2513
  "type": "[Response]"
@@ -2518,7 +2518,7 @@
2518
2518
  "event": "ResponseLoadFailed",
2519
2519
  "description": "Fired when Response fails to load",
2520
2520
  "scope": "internal",
2521
- "payload": [
2521
+ "payloadSchema": [
2522
2522
  {
2523
2523
  "name": "error",
2524
2524
  "type": "string"
@@ -2548,7 +2548,7 @@
2548
2548
  {
2549
2549
  "key": "VIEW",
2550
2550
  "name": "View",
2551
- "payload": [
2551
+ "payloadSchema": [
2552
2552
  {
2553
2553
  "name": "id",
2554
2554
  "type": "string"
@@ -2566,7 +2566,7 @@
2566
2566
  {
2567
2567
  "key": "ResponseLoaded",
2568
2568
  "name": "Response loaded",
2569
- "payload": [
2569
+ "payloadSchema": [
2570
2570
  {
2571
2571
  "name": "data",
2572
2572
  "type": "[Response]"
@@ -2576,7 +2576,7 @@
2576
2576
  {
2577
2577
  "key": "ResponseLoadFailed",
2578
2578
  "name": "Response load failed",
2579
- "payload": [
2579
+ "payloadSchema": [
2580
2580
  {
2581
2581
  "name": "error",
2582
2582
  "type": "string"
@@ -2611,8 +2611,8 @@
2611
2611
  {
2612
2612
  "id": "@payload.id",
2613
2613
  "emit": {
2614
- "failure": "ResponseLoadFailed",
2615
- "success": "ResponseLoaded"
2614
+ "success": "ResponseLoaded",
2615
+ "failure": "ResponseLoadFailed"
2616
2616
  }
2617
2617
  }
2618
2618
  ],
@@ -2620,11 +2620,14 @@
2620
2620
  "render-ui",
2621
2621
  "modal",
2622
2622
  {
2623
+ "direction": "vertical",
2623
2624
  "type": "stack",
2625
+ "gap": "md",
2624
2626
  "children": [
2625
2627
  {
2626
2628
  "type": "stack",
2627
2629
  "align": "center",
2630
+ "gap": "sm",
2628
2631
  "children": [
2629
2632
  {
2630
2633
  "type": "icon",
@@ -2632,104 +2635,101 @@
2632
2635
  },
2633
2636
  {
2634
2637
  "type": "typography",
2635
- "content": "@entity.ticketId",
2636
- "variant": "h3"
2638
+ "variant": "h3",
2639
+ "content": "@entity.ticketId"
2637
2640
  }
2638
2641
  ],
2639
- "gap": "sm",
2640
2642
  "direction": "horizontal"
2641
2643
  },
2642
2644
  {
2643
2645
  "type": "divider"
2644
2646
  },
2645
2647
  {
2648
+ "direction": "horizontal",
2646
2649
  "type": "stack",
2650
+ "gap": "md",
2647
2651
  "children": [
2648
2652
  {
2653
+ "type": "typography",
2649
2654
  "variant": "caption",
2650
- "content": "Ticket ID",
2651
- "type": "typography"
2655
+ "content": "Ticket ID"
2652
2656
  },
2653
2657
  {
2654
- "variant": "body",
2658
+ "type": "typography",
2655
2659
  "content": "@entity.ticketId",
2656
- "type": "typography"
2660
+ "variant": "body"
2657
2661
  }
2658
- ],
2659
- "gap": "md",
2660
- "direction": "horizontal"
2662
+ ]
2661
2663
  },
2662
2664
  {
2663
2665
  "children": [
2664
2666
  {
2665
- "variant": "caption",
2666
2667
  "type": "typography",
2668
+ "variant": "caption",
2667
2669
  "content": "Body"
2668
2670
  },
2669
2671
  {
2670
- "content": "@entity.body",
2671
2672
  "type": "typography",
2672
- "variant": "body"
2673
+ "variant": "body",
2674
+ "content": "@entity.body"
2673
2675
  }
2674
2676
  ],
2675
- "direction": "horizontal",
2676
2677
  "type": "stack",
2677
- "gap": "md"
2678
+ "gap": "md",
2679
+ "direction": "horizontal"
2678
2680
  },
2679
2681
  {
2682
+ "type": "stack",
2680
2683
  "direction": "horizontal",
2681
2684
  "gap": "md",
2682
2685
  "children": [
2683
2686
  {
2684
- "content": "Author",
2687
+ "type": "typography",
2685
2688
  "variant": "caption",
2686
- "type": "typography"
2689
+ "content": "Author"
2687
2690
  },
2688
2691
  {
2689
- "variant": "body",
2690
2692
  "type": "typography",
2693
+ "variant": "body",
2691
2694
  "content": "@entity.author"
2692
2695
  }
2693
- ],
2694
- "type": "stack"
2696
+ ]
2695
2697
  },
2696
2698
  {
2697
- "type": "stack",
2698
- "direction": "horizontal",
2699
- "gap": "md",
2700
2699
  "children": [
2701
2700
  {
2702
- "type": "typography",
2703
2701
  "variant": "caption",
2704
- "content": "Created At"
2702
+ "content": "Created At",
2703
+ "type": "typography"
2705
2704
  },
2706
2705
  {
2707
2706
  "content": "@entity.createdAt",
2708
- "variant": "body",
2709
- "type": "typography"
2707
+ "type": "typography",
2708
+ "variant": "body"
2710
2709
  }
2711
- ]
2710
+ ],
2711
+ "type": "stack",
2712
+ "direction": "horizontal",
2713
+ "gap": "md"
2712
2714
  },
2713
2715
  {
2714
2716
  "type": "divider"
2715
2717
  },
2716
2718
  {
2719
+ "gap": "sm",
2720
+ "direction": "horizontal",
2721
+ "type": "stack",
2722
+ "justify": "end",
2717
2723
  "children": [
2718
2724
  {
2719
- "action": "CLOSE",
2720
- "variant": "ghost",
2721
2725
  "type": "button",
2726
+ "variant": "ghost",
2727
+ "action": "CLOSE",
2722
2728
  "label": "Close"
2723
2729
  }
2724
- ],
2725
- "gap": "sm",
2726
- "justify": "end",
2727
- "type": "stack",
2728
- "direction": "horizontal"
2730
+ ]
2729
2731
  }
2730
- ],
2731
- "gap": "md",
2732
- "direction": "vertical"
2732
+ ]
2733
2733
  }
2734
2734
  ]
2735
2735
  ]
@@ -2843,7 +2843,7 @@
2843
2843
  "event": "SupportMetricsLoaded",
2844
2844
  "description": "Fired when SupportMetrics finishes loading",
2845
2845
  "scope": "internal",
2846
- "payload": [
2846
+ "payloadSchema": [
2847
2847
  {
2848
2848
  "name": "data",
2849
2849
  "type": "[SupportMetrics]"
@@ -2854,7 +2854,7 @@
2854
2854
  "event": "SupportMetricsLoadFailed",
2855
2855
  "description": "Fired when SupportMetrics fails to load",
2856
2856
  "scope": "internal",
2857
- "payload": [
2857
+ "payloadSchema": [
2858
2858
  {
2859
2859
  "name": "error",
2860
2860
  "type": "string"
@@ -2908,7 +2908,7 @@
2908
2908
  {
2909
2909
  "key": "SupportMetricsLoaded",
2910
2910
  "name": "SupportMetrics loaded",
2911
- "payload": [
2911
+ "payloadSchema": [
2912
2912
  {
2913
2913
  "name": "data",
2914
2914
  "type": "[SupportMetrics]"
@@ -2918,7 +2918,7 @@
2918
2918
  {
2919
2919
  "key": "SupportMetricsLoadFailed",
2920
2920
  "name": "SupportMetrics load failed",
2921
- "payload": [
2921
+ "payloadSchema": [
2922
2922
  {
2923
2923
  "name": "error",
2924
2924
  "type": "string"
@@ -2941,8 +2941,8 @@
2941
2941
  "SupportMetrics",
2942
2942
  {
2943
2943
  "emit": {
2944
- "success": "SupportMetricsLoaded",
2945
- "failure": "SupportMetricsLoadFailed"
2944
+ "failure": "SupportMetricsLoadFailed",
2945
+ "success": "SupportMetricsLoaded"
2946
2946
  }
2947
2947
  }
2948
2948
  ],
@@ -2952,96 +2952,90 @@
2952
2952
  {
2953
2953
  "navItems": [
2954
2954
  {
2955
+ "icon": "inbox",
2955
2956
  "href": "/tickets",
2956
- "label": "Tickets",
2957
- "icon": "inbox"
2957
+ "label": "Tickets"
2958
2958
  },
2959
2959
  {
2960
- "href": "/responses",
2961
2960
  "label": "Responses",
2962
- "icon": "message-circle"
2961
+ "icon": "message-circle",
2962
+ "href": "/responses"
2963
2963
  },
2964
2964
  {
2965
2965
  "href": "/metrics",
2966
- "icon": "layout-list",
2967
- "label": "Metrics"
2966
+ "label": "Metrics",
2967
+ "icon": "layout-list"
2968
2968
  }
2969
2969
  ],
2970
- "type": "dashboard-layout",
2971
- "appName": "Helpdesk",
2972
2970
  "children": [
2973
2971
  {
2974
2972
  "children": [
2975
2973
  {
2976
- "gap": "lg",
2977
- "direction": "vertical",
2978
2974
  "children": [
2979
2975
  {
2976
+ "type": "breadcrumb",
2980
2977
  "items": [
2981
2978
  {
2982
- "label": "Home",
2983
- "href": "/"
2979
+ "href": "/",
2980
+ "label": "Home"
2984
2981
  },
2985
2982
  {
2986
2983
  "label": "Support Metrics"
2987
2984
  }
2988
- ],
2989
- "type": "breadcrumb"
2985
+ ]
2990
2986
  },
2991
2987
  {
2988
+ "direction": "horizontal",
2989
+ "type": "stack",
2990
+ "gap": "md",
2992
2991
  "justify": "between",
2993
2992
  "children": [
2994
2993
  {
2995
- "gap": "md",
2996
- "direction": "horizontal",
2997
2994
  "type": "stack",
2995
+ "gap": "md",
2998
2996
  "children": [
2999
2997
  {
3000
- "type": "icon",
3001
- "name": "activity"
2998
+ "name": "activity",
2999
+ "type": "icon"
3002
3000
  },
3003
3001
  {
3002
+ "variant": "h2",
3004
3003
  "type": "typography",
3005
- "content": "Support Metrics",
3006
- "variant": "h2"
3004
+ "content": "Support Metrics"
3007
3005
  }
3008
- ]
3006
+ ],
3007
+ "direction": "horizontal"
3009
3008
  },
3010
3009
  {
3011
- "variant": "secondary",
3012
- "type": "button",
3013
3010
  "icon": "refresh-cw",
3011
+ "variant": "secondary",
3014
3012
  "label": "Refresh",
3013
+ "type": "button",
3015
3014
  "action": "REFRESH"
3016
3015
  }
3017
- ],
3018
- "type": "stack",
3019
- "direction": "horizontal",
3020
- "gap": "md"
3016
+ ]
3021
3017
  },
3022
3018
  {
3023
3019
  "type": "divider"
3024
3020
  },
3025
3021
  {
3026
- "type": "box",
3027
- "padding": "md",
3028
3022
  "children": [
3029
3023
  {
3030
3024
  "children": [
3031
3025
  {
3026
+ "value": "@entity.openTickets",
3032
3027
  "type": "stat-display",
3033
- "label": "OpenTickets",
3034
- "value": "@entity.openTickets"
3028
+ "label": "OpenTickets"
3035
3029
  },
3036
3030
  {
3037
- "type": "stat-display",
3038
3031
  "label": "ResolvedTickets",
3039
- "value": "@entity.resolvedTickets"
3032
+ "value": "@entity.resolvedTickets",
3033
+ "type": "stat-display"
3040
3034
  },
3041
3035
  {
3042
- "type": "card",
3043
3036
  "children": [
3044
3037
  {
3038
+ "gap": "sm",
3045
3039
  "direction": "vertical",
3046
3040
  "type": "stack",
3047
3041
  "children": [
@@ -3051,42 +3045,47 @@
3051
3045
  "content": "AvgResponseTime"
3052
3046
  },
3053
3047
  {
3054
- "type": "typography",
3055
3048
  "variant": "h3",
3049
+ "type": "typography",
3056
3050
  "content": "@entity.avgResponseTime"
3057
3051
  }
3058
- ],
3059
- "gap": "sm"
3052
+ ]
3060
3053
  }
3061
- ]
3054
+ ],
3055
+ "type": "card"
3062
3056
  },
3063
3057
  {
3064
- "label": "SatisfactionScore",
3065
3058
  "type": "stat-display",
3059
+ "label": "SatisfactionScore",
3066
3060
  "value": "@entity.satisfactionScore"
3067
3061
  },
3068
3062
  {
3069
- "type": "stat-display",
3070
3063
  "value": "@entity.activeAgents",
3064
+ "type": "stat-display",
3071
3065
  "label": "ActiveAgents"
3072
3066
  }
3073
3067
  ],
3074
- "type": "simple-grid",
3075
- "cols": 3.0
3068
+ "cols": 3.0,
3069
+ "type": "simple-grid"
3076
3070
  }
3077
- ]
3071
+ ],
3072
+ "type": "box",
3073
+ "padding": "md"
3078
3074
  },
3079
3075
  {
3080
3076
  "type": "divider"
3081
3077
  },
3082
3078
  {
3079
+ "cols": 2.0,
3080
+ "type": "grid",
3081
+ "gap": "md",
3083
3082
  "children": [
3084
3083
  {
3085
3084
  "type": "card",
3086
3085
  "children": [
3087
3086
  {
3088
- "type": "typography",
3089
3087
  "variant": "caption",
3088
+ "type": "typography",
3090
3089
  "content": "Chart View"
3091
3090
  }
3092
3091
  ]
@@ -3094,17 +3093,14 @@
3094
3093
  {
3095
3094
  "children": [
3096
3095
  {
3097
- "type": "typography",
3098
3096
  "content": "Graph View",
3097
+ "type": "typography",
3099
3098
  "variant": "caption"
3100
3099
  }
3101
3100
  ],
3102
3101
  "type": "card"
3103
3102
  }
3104
- ],
3105
- "cols": 2.0,
3106
- "type": "grid",
3107
- "gap": "md"
3103
+ ]
3108
3104
  },
3109
3105
  {
3110
3106
  "data": [
@@ -3121,16 +3117,16 @@
3121
3117
  "value": 15.0
3122
3118
  },
3123
3119
  {
3124
- "value": 25.0,
3125
- "date": "Apr"
3120
+ "date": "Apr",
3121
+ "value": 25.0
3126
3122
  },
3127
3123
  {
3128
- "date": "May",
3129
- "value": 22.0
3124
+ "value": 22.0,
3125
+ "date": "May"
3130
3126
  },
3131
3127
  {
3132
- "date": "Jun",
3133
- "value": 30.0
3128
+ "value": 30.0,
3129
+ "date": "Jun"
3134
3130
  }
3135
3131
  ],
3136
3132
  "type": "line-chart"
@@ -3149,41 +3145,45 @@
3149
3145
  ]
3150
3146
  },
3151
3147
  {
3148
+ "width": 400.0,
3149
+ "height": 200.0,
3152
3150
  "nodes": [
3153
3151
  {
3154
3152
  "label": "Start",
3155
3153
  "id": "a"
3156
3154
  },
3157
3155
  {
3158
- "id": "b",
3159
- "label": "Process"
3156
+ "label": "Process",
3157
+ "id": "b"
3160
3158
  },
3161
3159
  {
3162
- "id": "c",
3163
- "label": "End"
3160
+ "label": "End",
3161
+ "id": "c"
3164
3162
  }
3165
3163
  ],
3166
- "width": 400.0,
3164
+ "type": "graph-view",
3167
3165
  "edges": [
3168
3166
  {
3169
- "source": "a",
3170
- "target": "b"
3167
+ "target": "b",
3168
+ "source": "a"
3171
3169
  },
3172
3170
  {
3173
3171
  "source": "b",
3174
3172
  "target": "c"
3175
3173
  }
3176
- ],
3177
- "type": "graph-view",
3178
- "height": 200.0
3174
+ ]
3179
3175
  }
3180
3176
  ],
3177
+ "direction": "vertical",
3178
+ "gap": "lg",
3181
3179
  "type": "stack"
3182
3180
  }
3183
3181
  ],
3184
3182
  "type": "scaled-diagram"
3185
3183
  }
3186
- ]
3184
+ ],
3185
+ "type": "dashboard-layout",
3186
+ "appName": "Helpdesk"
3187
3187
  }
3188
3188
  ]
3189
3189
  ]
@@ -3198,8 +3198,8 @@
3198
3198
  "SupportMetrics",
3199
3199
  {
3200
3200
  "emit": {
3201
- "success": "SupportMetricsLoaded",
3202
- "failure": "SupportMetricsLoadFailed"
3201
+ "failure": "SupportMetricsLoadFailed",
3202
+ "success": "SupportMetricsLoaded"
3203
3203
  }
3204
3204
  }
3205
3205
  ],
@@ -3212,10 +3212,10 @@
3212
3212
  "type": "scaled-diagram",
3213
3213
  "children": [
3214
3214
  {
3215
+ "type": "stack",
3215
3216
  "direction": "vertical",
3216
3217
  "children": [
3217
3218
  {
3218
- "type": "breadcrumb",
3219
3219
  "items": [
3220
3220
  {
3221
3221
  "href": "/",
@@ -3224,14 +3224,16 @@
3224
3224
  {
3225
3225
  "label": "Support Metrics"
3226
3226
  }
3227
- ]
3227
+ ],
3228
+ "type": "breadcrumb"
3228
3229
  },
3229
3230
  {
3230
- "direction": "horizontal",
3231
3231
  "type": "stack",
3232
- "justify": "between",
3232
+ "gap": "md",
3233
3233
  "children": [
3234
3234
  {
3235
+ "type": "stack",
3236
+ "direction": "horizontal",
3235
3237
  "gap": "md",
3236
3238
  "children": [
3237
3239
  {
@@ -3239,23 +3241,22 @@
3239
3241
  "name": "activity"
3240
3242
  },
3241
3243
  {
3242
- "variant": "h2",
3243
3244
  "type": "typography",
3244
- "content": "Support Metrics"
3245
+ "content": "Support Metrics",
3246
+ "variant": "h2"
3245
3247
  }
3246
- ],
3247
- "direction": "horizontal",
3248
- "type": "stack"
3248
+ ]
3249
3249
  },
3250
3250
  {
3251
- "type": "button",
3252
3251
  "icon": "refresh-cw",
3253
- "action": "REFRESH",
3252
+ "label": "Refresh",
3254
3253
  "variant": "secondary",
3255
- "label": "Refresh"
3254
+ "action": "REFRESH",
3255
+ "type": "button"
3256
3256
  }
3257
3257
  ],
3258
- "gap": "md"
3258
+ "justify": "between",
3259
+ "direction": "horizontal"
3259
3260
  },
3260
3261
  {
3261
3262
  "type": "divider"
@@ -3264,12 +3265,13 @@
3264
3265
  "padding": "md",
3265
3266
  "children": [
3266
3267
  {
3268
+ "type": "simple-grid",
3267
3269
  "cols": 3.0,
3268
3270
  "children": [
3269
3271
  {
3270
- "type": "stat-display",
3271
3272
  "value": "@entity.openTickets",
3272
- "label": "OpenTickets"
3273
+ "label": "OpenTickets",
3274
+ "type": "stat-display"
3273
3275
  },
3274
3276
  {
3275
3277
  "type": "stat-display",
@@ -3277,11 +3279,9 @@
3277
3279
  "value": "@entity.resolvedTickets"
3278
3280
  },
3279
3281
  {
3280
- "type": "card",
3281
3282
  "children": [
3282
3283
  {
3283
3284
  "gap": "sm",
3284
- "type": "stack",
3285
3285
  "direction": "vertical",
3286
3286
  "children": [
3287
3287
  {
@@ -3290,26 +3290,27 @@
3290
3290
  "content": "AvgResponseTime"
3291
3291
  },
3292
3292
  {
3293
- "content": "@entity.avgResponseTime",
3294
3293
  "type": "typography",
3295
- "variant": "h3"
3294
+ "variant": "h3",
3295
+ "content": "@entity.avgResponseTime"
3296
3296
  }
3297
- ]
3297
+ ],
3298
+ "type": "stack"
3298
3299
  }
3299
- ]
3300
+ ],
3301
+ "type": "card"
3300
3302
  },
3301
3303
  {
3302
- "label": "SatisfactionScore",
3303
3304
  "value": "@entity.satisfactionScore",
3304
- "type": "stat-display"
3305
+ "type": "stat-display",
3306
+ "label": "SatisfactionScore"
3305
3307
  },
3306
3308
  {
3307
- "type": "stat-display",
3309
+ "value": "@entity.activeAgents",
3308
3310
  "label": "ActiveAgents",
3309
- "value": "@entity.activeAgents"
3311
+ "type": "stat-display"
3310
3312
  }
3311
- ],
3312
- "type": "simple-grid"
3313
+ ]
3313
3314
  }
3314
3315
  ],
3315
3316
  "type": "box"
@@ -3319,30 +3320,30 @@
3319
3320
  },
3320
3321
  {
3321
3322
  "type": "grid",
3322
- "cols": 2.0,
3323
- "gap": "md",
3324
3323
  "children": [
3325
3324
  {
3326
3325
  "type": "card",
3327
3326
  "children": [
3328
3327
  {
3328
+ "type": "typography",
3329
3329
  "variant": "caption",
3330
- "content": "Chart View",
3331
- "type": "typography"
3330
+ "content": "Chart View"
3332
3331
  }
3333
3332
  ]
3334
3333
  },
3335
3334
  {
3336
3335
  "children": [
3337
3336
  {
3338
- "content": "Graph View",
3339
3337
  "variant": "caption",
3340
- "type": "typography"
3338
+ "type": "typography",
3339
+ "content": "Graph View"
3341
3340
  }
3342
3341
  ],
3343
3342
  "type": "card"
3344
3343
  }
3345
- ]
3344
+ ],
3345
+ "gap": "md",
3346
+ "cols": 2.0
3346
3347
  },
3347
3348
  {
3348
3349
  "type": "line-chart",
@@ -3356,16 +3357,16 @@
3356
3357
  "date": "Feb"
3357
3358
  },
3358
3359
  {
3359
- "value": 15.0,
3360
- "date": "Mar"
3360
+ "date": "Mar",
3361
+ "value": 15.0
3361
3362
  },
3362
3363
  {
3363
3364
  "date": "Apr",
3364
3365
  "value": 25.0
3365
3366
  },
3366
3367
  {
3367
- "value": 22.0,
3368
- "date": "May"
3368
+ "date": "May",
3369
+ "value": 22.0
3369
3370
  },
3370
3371
  {
3371
3372
  "date": "Jun",
@@ -3374,24 +3375,23 @@
3374
3375
  ]
3375
3376
  },
3376
3377
  {
3377
- "type": "chart-legend",
3378
3378
  "items": [
3379
3379
  {
3380
- "label": "Current",
3381
- "color": "primary"
3380
+ "color": "primary",
3381
+ "label": "Current"
3382
3382
  },
3383
3383
  {
3384
3384
  "label": "Previous",
3385
3385
  "color": "muted"
3386
3386
  }
3387
- ]
3387
+ ],
3388
+ "type": "chart-legend"
3388
3389
  },
3389
3390
  {
3390
- "height": 200.0,
3391
3391
  "nodes": [
3392
3392
  {
3393
- "id": "a",
3394
- "label": "Start"
3393
+ "label": "Start",
3394
+ "id": "a"
3395
3395
  },
3396
3396
  {
3397
3397
  "label": "Process",
@@ -3402,32 +3402,32 @@
3402
3402
  "label": "End"
3403
3403
  }
3404
3404
  ],
3405
- "width": 400.0,
3406
3405
  "edges": [
3407
3406
  {
3408
- "source": "a",
3409
- "target": "b"
3407
+ "target": "b",
3408
+ "source": "a"
3410
3409
  },
3411
3410
  {
3412
- "target": "c",
3413
- "source": "b"
3411
+ "source": "b",
3412
+ "target": "c"
3414
3413
  }
3415
3414
  ],
3416
- "type": "graph-view"
3415
+ "height": 200.0,
3416
+ "type": "graph-view",
3417
+ "width": 400.0
3417
3418
  }
3418
3419
  ],
3419
- "type": "stack",
3420
3420
  "gap": "lg"
3421
3421
  }
3422
3422
  ]
3423
3423
  }
3424
3424
  ],
3425
- "appName": "Helpdesk",
3426
3425
  "type": "dashboard-layout",
3426
+ "appName": "Helpdesk",
3427
3427
  "navItems": [
3428
3428
  {
3429
- "icon": "inbox",
3430
3429
  "label": "Tickets",
3430
+ "icon": "inbox",
3431
3431
  "href": "/tickets"
3432
3432
  },
3433
3433
  {
@@ -3455,8 +3455,8 @@
3455
3455
  "SupportMetrics",
3456
3456
  {
3457
3457
  "emit": {
3458
- "failure": "SupportMetricsLoadFailed",
3459
- "success": "SupportMetricsLoaded"
3458
+ "success": "SupportMetricsLoaded",
3459
+ "failure": "SupportMetricsLoadFailed"
3460
3460
  }
3461
3461
  }
3462
3462
  ],
@@ -3464,29 +3464,12 @@
3464
3464
  "render-ui",
3465
3465
  "main",
3466
3466
  {
3467
- "navItems": [
3468
- {
3469
- "icon": "inbox",
3470
- "label": "Tickets",
3471
- "href": "/tickets"
3472
- },
3473
- {
3474
- "href": "/responses",
3475
- "icon": "message-circle",
3476
- "label": "Responses"
3477
- },
3478
- {
3479
- "label": "Metrics",
3480
- "icon": "layout-list",
3481
- "href": "/metrics"
3482
- }
3483
- ],
3484
- "appName": "Helpdesk",
3485
3467
  "children": [
3486
3468
  {
3487
3469
  "type": "scaled-diagram",
3488
3470
  "children": [
3489
3471
  {
3472
+ "type": "stack",
3490
3473
  "gap": "lg",
3491
3474
  "direction": "vertical",
3492
3475
  "children": [
@@ -3504,71 +3487,75 @@
3504
3487
  },
3505
3488
  {
3506
3489
  "justify": "between",
3507
- "type": "stack",
3508
- "direction": "horizontal",
3509
- "gap": "md",
3510
3490
  "children": [
3511
3491
  {
3512
- "direction": "horizontal",
3513
- "gap": "md",
3492
+ "type": "stack",
3514
3493
  "children": [
3515
3494
  {
3516
- "name": "activity",
3517
- "type": "icon"
3495
+ "type": "icon",
3496
+ "name": "activity"
3518
3497
  },
3519
3498
  {
3499
+ "content": "Support Metrics",
3520
3500
  "variant": "h2",
3521
- "type": "typography",
3522
- "content": "Support Metrics"
3501
+ "type": "typography"
3523
3502
  }
3524
3503
  ],
3525
- "type": "stack"
3504
+ "direction": "horizontal",
3505
+ "gap": "md"
3526
3506
  },
3527
3507
  {
3528
- "action": "REFRESH",
3529
- "label": "Refresh",
3508
+ "variant": "secondary",
3530
3509
  "type": "button",
3531
3510
  "icon": "refresh-cw",
3532
- "variant": "secondary"
3511
+ "label": "Refresh",
3512
+ "action": "REFRESH"
3533
3513
  }
3534
- ]
3514
+ ],
3515
+ "gap": "md",
3516
+ "direction": "horizontal",
3517
+ "type": "stack"
3535
3518
  },
3536
3519
  {
3537
3520
  "type": "divider"
3538
3521
  },
3539
3522
  {
3523
+ "type": "box",
3524
+ "padding": "md",
3540
3525
  "children": [
3541
3526
  {
3527
+ "type": "simple-grid",
3528
+ "cols": 3.0,
3542
3529
  "children": [
3543
3530
  {
3531
+ "value": "@entity.openTickets",
3544
3532
  "type": "stat-display",
3545
- "label": "OpenTickets",
3546
- "value": "@entity.openTickets"
3533
+ "label": "OpenTickets"
3547
3534
  },
3548
3535
  {
3549
- "type": "stat-display",
3536
+ "value": "@entity.resolvedTickets",
3550
3537
  "label": "ResolvedTickets",
3551
- "value": "@entity.resolvedTickets"
3538
+ "type": "stat-display"
3552
3539
  },
3553
3540
  {
3554
3541
  "type": "card",
3555
3542
  "children": [
3556
3543
  {
3557
- "gap": "sm",
3558
- "direction": "vertical",
3559
3544
  "children": [
3560
3545
  {
3561
- "type": "typography",
3562
3546
  "variant": "caption",
3563
- "content": "AvgResponseTime"
3547
+ "content": "AvgResponseTime",
3548
+ "type": "typography"
3564
3549
  },
3565
3550
  {
3551
+ "content": "@entity.avgResponseTime",
3566
3552
  "variant": "h3",
3567
- "type": "typography",
3568
- "content": "@entity.avgResponseTime"
3553
+ "type": "typography"
3569
3554
  }
3570
3555
  ],
3571
- "type": "stack"
3556
+ "direction": "vertical",
3557
+ "type": "stack",
3558
+ "gap": "sm"
3572
3559
  }
3573
3560
  ]
3574
3561
  },
@@ -3579,52 +3566,49 @@
3579
3566
  },
3580
3567
  {
3581
3568
  "label": "ActiveAgents",
3582
- "type": "stat-display",
3583
- "value": "@entity.activeAgents"
3569
+ "value": "@entity.activeAgents",
3570
+ "type": "stat-display"
3584
3571
  }
3585
- ],
3586
- "type": "simple-grid",
3587
- "cols": 3.0
3572
+ ]
3588
3573
  }
3589
- ],
3590
- "type": "box",
3591
- "padding": "md"
3574
+ ]
3592
3575
  },
3593
3576
  {
3594
3577
  "type": "divider"
3595
3578
  },
3596
3579
  {
3597
- "type": "grid",
3598
3580
  "cols": 2.0,
3599
- "gap": "md",
3600
3581
  "children": [
3601
3582
  {
3602
- "type": "card",
3603
3583
  "children": [
3604
3584
  {
3605
- "type": "typography",
3585
+ "content": "Chart View",
3606
3586
  "variant": "caption",
3607
- "content": "Chart View"
3587
+ "type": "typography"
3608
3588
  }
3609
- ]
3589
+ ],
3590
+ "type": "card"
3610
3591
  },
3611
3592
  {
3612
- "type": "card",
3613
3593
  "children": [
3614
3594
  {
3615
- "type": "typography",
3616
3595
  "variant": "caption",
3617
- "content": "Graph View"
3596
+ "content": "Graph View",
3597
+ "type": "typography"
3618
3598
  }
3619
- ]
3599
+ ],
3600
+ "type": "card"
3620
3601
  }
3621
- ]
3602
+ ],
3603
+ "type": "grid",
3604
+ "gap": "md"
3622
3605
  },
3623
3606
  {
3607
+ "type": "line-chart",
3624
3608
  "data": [
3625
3609
  {
3626
- "value": 12.0,
3627
- "date": "Jan"
3610
+ "date": "Jan",
3611
+ "value": 12.0
3628
3612
  },
3629
3613
  {
3630
3614
  "date": "Feb",
@@ -3639,36 +3623,33 @@
3639
3623
  "value": 25.0
3640
3624
  },
3641
3625
  {
3642
- "value": 22.0,
3643
- "date": "May"
3626
+ "date": "May",
3627
+ "value": 22.0
3644
3628
  },
3645
3629
  {
3646
- "value": 30.0,
3647
- "date": "Jun"
3630
+ "date": "Jun",
3631
+ "value": 30.0
3648
3632
  }
3649
- ],
3650
- "type": "line-chart"
3633
+ ]
3651
3634
  },
3652
3635
  {
3636
+ "type": "chart-legend",
3653
3637
  "items": [
3654
3638
  {
3655
3639
  "label": "Current",
3656
3640
  "color": "primary"
3657
3641
  },
3658
3642
  {
3659
- "label": "Previous",
3660
- "color": "muted"
3643
+ "color": "muted",
3644
+ "label": "Previous"
3661
3645
  }
3662
- ],
3663
- "type": "chart-legend"
3646
+ ]
3664
3647
  },
3665
3648
  {
3666
- "height": 200.0,
3667
- "width": 400.0,
3668
3649
  "edges": [
3669
3650
  {
3670
- "source": "a",
3671
- "target": "b"
3651
+ "target": "b",
3652
+ "source": "a"
3672
3653
  },
3673
3654
  {
3674
3655
  "source": "b",
@@ -3686,17 +3667,36 @@
3686
3667
  "id": "b"
3687
3668
  },
3688
3669
  {
3689
- "id": "c",
3690
- "label": "End"
3670
+ "label": "End",
3671
+ "id": "c"
3691
3672
  }
3692
- ]
3673
+ ],
3674
+ "height": 200.0,
3675
+ "width": 400.0
3693
3676
  }
3694
- ],
3695
- "type": "stack"
3677
+ ]
3696
3678
  }
3697
3679
  ]
3698
3680
  }
3699
3681
  ],
3682
+ "navItems": [
3683
+ {
3684
+ "label": "Tickets",
3685
+ "href": "/tickets",
3686
+ "icon": "inbox"
3687
+ },
3688
+ {
3689
+ "href": "/responses",
3690
+ "label": "Responses",
3691
+ "icon": "message-circle"
3692
+ },
3693
+ {
3694
+ "href": "/metrics",
3695
+ "icon": "layout-list",
3696
+ "label": "Metrics"
3697
+ }
3698
+ ],
3699
+ "appName": "Helpdesk",
3700
3700
  "type": "dashboard-layout"
3701
3701
  }
3702
3702
  ]
@@ -3712,8 +3712,8 @@
3712
3712
  "SupportMetrics",
3713
3713
  {
3714
3714
  "emit": {
3715
- "success": "SupportMetricsLoaded",
3716
- "failure": "SupportMetricsLoadFailed"
3715
+ "failure": "SupportMetricsLoadFailed",
3716
+ "success": "SupportMetricsLoaded"
3717
3717
  }
3718
3718
  }
3719
3719
  ],
@@ -3721,21 +3721,17 @@
3721
3721
  "render-ui",
3722
3722
  "main",
3723
3723
  {
3724
- "type": "dashboard-layout",
3725
3724
  "children": [
3726
3725
  {
3727
3726
  "children": [
3728
3727
  {
3729
- "direction": "vertical",
3730
- "gap": "lg",
3731
- "type": "stack",
3732
3728
  "children": [
3733
3729
  {
3734
3730
  "type": "breadcrumb",
3735
3731
  "items": [
3736
3732
  {
3737
- "href": "/",
3738
- "label": "Home"
3733
+ "label": "Home",
3734
+ "href": "/"
3739
3735
  },
3740
3736
  {
3741
3737
  "label": "Support Metrics"
@@ -3743,45 +3739,43 @@
3743
3739
  ]
3744
3740
  },
3745
3741
  {
3746
- "type": "stack",
3747
- "direction": "horizontal",
3748
- "gap": "md",
3749
3742
  "children": [
3750
3743
  {
3751
- "gap": "md",
3752
3744
  "direction": "horizontal",
3745
+ "gap": "md",
3746
+ "type": "stack",
3753
3747
  "children": [
3754
3748
  {
3755
3749
  "name": "activity",
3756
3750
  "type": "icon"
3757
3751
  },
3758
3752
  {
3753
+ "type": "typography",
3759
3754
  "content": "Support Metrics",
3760
- "variant": "h2",
3761
- "type": "typography"
3755
+ "variant": "h2"
3762
3756
  }
3763
- ],
3764
- "type": "stack"
3757
+ ]
3765
3758
  },
3766
3759
  {
3767
3760
  "type": "button",
3768
- "action": "REFRESH",
3769
- "label": "Refresh",
3761
+ "variant": "secondary",
3770
3762
  "icon": "refresh-cw",
3771
- "variant": "secondary"
3763
+ "action": "REFRESH",
3764
+ "label": "Refresh"
3772
3765
  }
3773
3766
  ],
3767
+ "type": "stack",
3768
+ "gap": "md",
3769
+ "direction": "horizontal",
3774
3770
  "justify": "between"
3775
3771
  },
3776
3772
  {
3777
3773
  "type": "divider"
3778
3774
  },
3779
3775
  {
3780
- "padding": "md",
3781
3776
  "children": [
3782
3777
  {
3783
3778
  "cols": 3.0,
3784
- "type": "simple-grid",
3785
3779
  "children": [
3786
3780
  {
3787
3781
  "label": "OpenTickets",
@@ -3790,77 +3784,80 @@
3790
3784
  },
3791
3785
  {
3792
3786
  "type": "stat-display",
3793
- "value": "@entity.resolvedTickets",
3794
- "label": "ResolvedTickets"
3787
+ "label": "ResolvedTickets",
3788
+ "value": "@entity.resolvedTickets"
3795
3789
  },
3796
3790
  {
3797
3791
  "type": "card",
3798
3792
  "children": [
3799
3793
  {
3800
- "direction": "vertical",
3801
3794
  "children": [
3802
3795
  {
3803
- "content": "AvgResponseTime",
3796
+ "variant": "caption",
3804
3797
  "type": "typography",
3805
- "variant": "caption"
3798
+ "content": "AvgResponseTime"
3806
3799
  },
3807
3800
  {
3808
- "content": "@entity.avgResponseTime",
3801
+ "variant": "h3",
3809
3802
  "type": "typography",
3810
- "variant": "h3"
3803
+ "content": "@entity.avgResponseTime"
3811
3804
  }
3812
3805
  ],
3813
- "gap": "sm",
3814
- "type": "stack"
3806
+ "type": "stack",
3807
+ "direction": "vertical",
3808
+ "gap": "sm"
3815
3809
  }
3816
3810
  ]
3817
3811
  },
3818
3812
  {
3819
- "value": "@entity.satisfactionScore",
3820
3813
  "label": "SatisfactionScore",
3821
- "type": "stat-display"
3814
+ "type": "stat-display",
3815
+ "value": "@entity.satisfactionScore"
3822
3816
  },
3823
3817
  {
3824
3818
  "type": "stat-display",
3825
3819
  "label": "ActiveAgents",
3826
3820
  "value": "@entity.activeAgents"
3827
3821
  }
3828
- ]
3822
+ ],
3823
+ "type": "simple-grid"
3829
3824
  }
3830
3825
  ],
3831
- "type": "box"
3826
+ "type": "box",
3827
+ "padding": "md"
3832
3828
  },
3833
3829
  {
3834
3830
  "type": "divider"
3835
3831
  },
3836
3832
  {
3837
- "type": "grid",
3838
- "gap": "md",
3833
+ "cols": 2.0,
3839
3834
  "children": [
3840
3835
  {
3836
+ "type": "card",
3841
3837
  "children": [
3842
3838
  {
3843
- "content": "Chart View",
3844
3839
  "variant": "caption",
3845
- "type": "typography"
3840
+ "type": "typography",
3841
+ "content": "Chart View"
3846
3842
  }
3847
- ],
3848
- "type": "card"
3843
+ ]
3849
3844
  },
3850
3845
  {
3851
- "type": "card",
3852
3846
  "children": [
3853
3847
  {
3854
3848
  "type": "typography",
3855
- "content": "Graph View",
3856
- "variant": "caption"
3849
+ "variant": "caption",
3850
+ "content": "Graph View"
3857
3851
  }
3858
- ]
3852
+ ],
3853
+ "type": "card"
3859
3854
  }
3860
3855
  ],
3861
- "cols": 2.0
3856
+ "type": "grid",
3857
+ "gap": "md"
3862
3858
  },
3863
3859
  {
3860
+ "type": "line-chart",
3864
3861
  "data": [
3865
3862
  {
3866
3863
  "value": 12.0,
@@ -3875,8 +3872,8 @@
3875
3872
  "date": "Mar"
3876
3873
  },
3877
3874
  {
3878
- "value": 25.0,
3879
- "date": "Apr"
3875
+ "date": "Apr",
3876
+ "value": 25.0
3880
3877
  },
3881
3878
  {
3882
3879
  "value": 22.0,
@@ -3886,8 +3883,7 @@
3886
3883
  "date": "Jun",
3887
3884
  "value": 30.0
3888
3885
  }
3889
- ],
3890
- "type": "line-chart"
3886
+ ]
3891
3887
  },
3892
3888
  {
3893
3889
  "type": "chart-legend",
@@ -3904,11 +3900,22 @@
3904
3900
  },
3905
3901
  {
3906
3902
  "height": 200.0,
3903
+ "edges": [
3904
+ {
3905
+ "source": "a",
3906
+ "target": "b"
3907
+ },
3908
+ {
3909
+ "target": "c",
3910
+ "source": "b"
3911
+ }
3912
+ ],
3913
+ "width": 400.0,
3907
3914
  "type": "graph-view",
3908
3915
  "nodes": [
3909
3916
  {
3910
- "label": "Start",
3911
- "id": "a"
3917
+ "id": "a",
3918
+ "label": "Start"
3912
3919
  },
3913
3920
  {
3914
3921
  "label": "Process",
@@ -3918,20 +3925,12 @@
3918
3925
  "id": "c",
3919
3926
  "label": "End"
3920
3927
  }
3921
- ],
3922
- "width": 400.0,
3923
- "edges": [
3924
- {
3925
- "source": "a",
3926
- "target": "b"
3927
- },
3928
- {
3929
- "source": "b",
3930
- "target": "c"
3931
- }
3932
3928
  ]
3933
3929
  }
3934
- ]
3930
+ ],
3931
+ "gap": "lg",
3932
+ "direction": "vertical",
3933
+ "type": "stack"
3935
3934
  }
3936
3935
  ],
3937
3936
  "type": "scaled-diagram"
@@ -3940,21 +3939,22 @@
3940
3939
  "appName": "Helpdesk",
3941
3940
  "navItems": [
3942
3941
  {
3943
- "icon": "inbox",
3944
3942
  "label": "Tickets",
3945
- "href": "/tickets"
3943
+ "href": "/tickets",
3944
+ "icon": "inbox"
3946
3945
  },
3947
3946
  {
3948
3947
  "icon": "message-circle",
3949
- "href": "/responses",
3950
- "label": "Responses"
3948
+ "label": "Responses",
3949
+ "href": "/responses"
3951
3950
  },
3952
3951
  {
3953
3952
  "href": "/metrics",
3954
- "label": "Metrics",
3955
- "icon": "layout-list"
3953
+ "icon": "layout-list",
3954
+ "label": "Metrics"
3956
3955
  }
3957
- ]
3956
+ ],
3957
+ "type": "dashboard-layout"
3958
3958
  }
3959
3959
  ]
3960
3960
  ]
@@ -3969,8 +3969,8 @@
3969
3969
  "SupportMetrics",
3970
3970
  {
3971
3971
  "emit": {
3972
- "failure": "SupportMetricsLoadFailed",
3973
- "success": "SupportMetricsLoaded"
3972
+ "success": "SupportMetricsLoaded",
3973
+ "failure": "SupportMetricsLoadFailed"
3974
3974
  }
3975
3975
  }
3976
3976
  ],
@@ -3978,15 +3978,14 @@
3978
3978
  "render-ui",
3979
3979
  "main",
3980
3980
  {
3981
- "type": "dashboard-layout",
3982
3981
  "appName": "Helpdesk",
3983
3982
  "children": [
3984
3983
  {
3984
+ "type": "scaled-diagram",
3985
3985
  "children": [
3986
3986
  {
3987
- "gap": "lg",
3988
- "direction": "vertical",
3989
3987
  "type": "stack",
3988
+ "direction": "vertical",
3990
3989
  "children": [
3991
3990
  {
3992
3991
  "type": "breadcrumb",
@@ -4001,43 +4000,45 @@
4001
4000
  ]
4002
4001
  },
4003
4002
  {
4003
+ "gap": "md",
4004
+ "justify": "between",
4004
4005
  "children": [
4005
4006
  {
4007
+ "direction": "horizontal",
4006
4008
  "children": [
4007
4009
  {
4008
- "name": "activity",
4009
- "type": "icon"
4010
+ "type": "icon",
4011
+ "name": "activity"
4010
4012
  },
4011
4013
  {
4012
- "variant": "h2",
4013
4014
  "type": "typography",
4015
+ "variant": "h2",
4014
4016
  "content": "Support Metrics"
4015
4017
  }
4016
4018
  ],
4017
4019
  "gap": "md",
4018
- "direction": "horizontal",
4019
4020
  "type": "stack"
4020
4021
  },
4021
4022
  {
4022
- "type": "button",
4023
- "icon": "refresh-cw",
4024
- "variant": "secondary",
4025
4023
  "action": "REFRESH",
4026
- "label": "Refresh"
4024
+ "icon": "refresh-cw",
4025
+ "label": "Refresh",
4026
+ "type": "button",
4027
+ "variant": "secondary"
4027
4028
  }
4028
4029
  ],
4029
4030
  "type": "stack",
4030
- "justify": "between",
4031
- "direction": "horizontal",
4032
- "gap": "md"
4031
+ "direction": "horizontal"
4033
4032
  },
4034
4033
  {
4035
4034
  "type": "divider"
4036
4035
  },
4037
4036
  {
4037
+ "type": "box",
4038
+ "padding": "md",
4038
4039
  "children": [
4039
4040
  {
4040
- "cols": 3.0,
4041
+ "type": "simple-grid",
4041
4042
  "children": [
4042
4043
  {
4043
4044
  "type": "stat-display",
@@ -4045,78 +4046,76 @@
4045
4046
  "value": "@entity.openTickets"
4046
4047
  },
4047
4048
  {
4049
+ "value": "@entity.resolvedTickets",
4048
4050
  "type": "stat-display",
4049
- "label": "ResolvedTickets",
4050
- "value": "@entity.resolvedTickets"
4051
+ "label": "ResolvedTickets"
4051
4052
  },
4052
4053
  {
4053
4054
  "type": "card",
4054
4055
  "children": [
4055
4056
  {
4056
- "gap": "sm",
4057
- "type": "stack",
4058
- "direction": "vertical",
4059
4057
  "children": [
4060
4058
  {
4061
4059
  "type": "typography",
4062
- "variant": "caption",
4063
- "content": "AvgResponseTime"
4060
+ "content": "AvgResponseTime",
4061
+ "variant": "caption"
4064
4062
  },
4065
4063
  {
4066
- "type": "typography",
4067
4064
  "content": "@entity.avgResponseTime",
4065
+ "type": "typography",
4068
4066
  "variant": "h3"
4069
4067
  }
4070
- ]
4068
+ ],
4069
+ "direction": "vertical",
4070
+ "gap": "sm",
4071
+ "type": "stack"
4071
4072
  }
4072
4073
  ]
4073
4074
  },
4074
4075
  {
4075
- "type": "stat-display",
4076
4076
  "label": "SatisfactionScore",
4077
- "value": "@entity.satisfactionScore"
4077
+ "value": "@entity.satisfactionScore",
4078
+ "type": "stat-display"
4078
4079
  },
4079
4080
  {
4080
- "type": "stat-display",
4081
4081
  "label": "ActiveAgents",
4082
- "value": "@entity.activeAgents"
4082
+ "value": "@entity.activeAgents",
4083
+ "type": "stat-display"
4083
4084
  }
4084
4085
  ],
4085
- "type": "simple-grid"
4086
+ "cols": 3.0
4086
4087
  }
4087
- ],
4088
- "type": "box",
4089
- "padding": "md"
4088
+ ]
4090
4089
  },
4091
4090
  {
4092
4091
  "type": "divider"
4093
4092
  },
4094
4093
  {
4094
+ "cols": 2.0,
4095
4095
  "children": [
4096
4096
  {
4097
+ "type": "card",
4097
4098
  "children": [
4098
4099
  {
4099
- "variant": "caption",
4100
+ "type": "typography",
4100
4101
  "content": "Chart View",
4101
- "type": "typography"
4102
+ "variant": "caption"
4102
4103
  }
4103
- ],
4104
- "type": "card"
4104
+ ]
4105
4105
  },
4106
4106
  {
4107
4107
  "children": [
4108
4108
  {
4109
- "type": "typography",
4109
+ "content": "Graph View",
4110
4110
  "variant": "caption",
4111
- "content": "Graph View"
4111
+ "type": "typography"
4112
4112
  }
4113
4113
  ],
4114
4114
  "type": "card"
4115
4115
  }
4116
4116
  ],
4117
4117
  "gap": "md",
4118
- "type": "grid",
4119
- "cols": 2.0
4118
+ "type": "grid"
4120
4119
  },
4121
4120
  {
4122
4121
  "data": [
@@ -4125,16 +4124,16 @@
4125
4124
  "date": "Jan"
4126
4125
  },
4127
4126
  {
4128
- "date": "Feb",
4129
- "value": 19.0
4127
+ "value": 19.0,
4128
+ "date": "Feb"
4130
4129
  },
4131
4130
  {
4132
- "value": 15.0,
4133
- "date": "Mar"
4131
+ "date": "Mar",
4132
+ "value": 15.0
4134
4133
  },
4135
4134
  {
4136
- "value": 25.0,
4137
- "date": "Apr"
4135
+ "date": "Apr",
4136
+ "value": 25.0
4138
4137
  },
4139
4138
  {
4140
4139
  "date": "May",
@@ -4148,58 +4147,58 @@
4148
4147
  "type": "line-chart"
4149
4148
  },
4150
4149
  {
4151
- "type": "chart-legend",
4152
4150
  "items": [
4153
4151
  {
4154
- "label": "Current",
4155
- "color": "primary"
4152
+ "color": "primary",
4153
+ "label": "Current"
4156
4154
  },
4157
4155
  {
4158
4156
  "color": "muted",
4159
4157
  "label": "Previous"
4160
4158
  }
4161
- ]
4159
+ ],
4160
+ "type": "chart-legend"
4162
4161
  },
4163
4162
  {
4164
4163
  "edges": [
4165
4164
  {
4166
- "target": "b",
4167
- "source": "a"
4165
+ "source": "a",
4166
+ "target": "b"
4168
4167
  },
4169
4168
  {
4170
4169
  "source": "b",
4171
4170
  "target": "c"
4172
4171
  }
4173
4172
  ],
4173
+ "height": 200.0,
4174
+ "type": "graph-view",
4175
+ "width": 400.0,
4174
4176
  "nodes": [
4175
4177
  {
4176
- "id": "a",
4177
- "label": "Start"
4178
+ "label": "Start",
4179
+ "id": "a"
4178
4180
  },
4179
4181
  {
4180
- "label": "Process",
4181
- "id": "b"
4182
+ "id": "b",
4183
+ "label": "Process"
4182
4184
  },
4183
4185
  {
4184
- "label": "End",
4185
- "id": "c"
4186
+ "id": "c",
4187
+ "label": "End"
4186
4188
  }
4187
- ],
4188
- "width": 400.0,
4189
- "height": 200.0,
4190
- "type": "graph-view"
4189
+ ]
4191
4190
  }
4192
- ]
4191
+ ],
4192
+ "gap": "lg"
4193
4193
  }
4194
- ],
4195
- "type": "scaled-diagram"
4194
+ ]
4196
4195
  }
4197
4196
  ],
4198
4197
  "navItems": [
4199
4198
  {
4200
- "icon": "inbox",
4199
+ "href": "/tickets",
4201
4200
  "label": "Tickets",
4202
- "href": "/tickets"
4201
+ "icon": "inbox"
4203
4202
  },
4204
4203
  {
4205
4204
  "href": "/responses",
@@ -4207,11 +4206,12 @@
4207
4206
  "icon": "message-circle"
4208
4207
  },
4209
4208
  {
4210
- "href": "/metrics",
4211
4209
  "label": "Metrics",
4212
- "icon": "layout-list"
4210
+ "icon": "layout-list",
4211
+ "href": "/metrics"
4213
4212
  }
4214
- ]
4213
+ ],
4214
+ "type": "dashboard-layout"
4215
4215
  }
4216
4216
  ]
4217
4217
  ]
@@ -4234,4 +4234,4 @@
4234
4234
  ]
4235
4235
  }
4236
4236
  ]
4237
- }
4237
+ }