@almadar/std 8.5.1 → 9.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 +60 -60
  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 +60 -60
  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
@@ -61,7 +61,7 @@
61
61
  {
62
62
  "event": "CONVERT_LEAD",
63
63
  "scope": "external",
64
- "payload": [
64
+ "payloadSchema": [
65
65
  {
66
66
  "name": "id",
67
67
  "type": "string"
@@ -72,7 +72,7 @@
72
72
  "event": "ContactLoaded",
73
73
  "description": "Fired when Contact finishes loading",
74
74
  "scope": "internal",
75
- "payload": [
75
+ "payloadSchema": [
76
76
  {
77
77
  "name": "data",
78
78
  "type": "[Contact]"
@@ -83,7 +83,7 @@
83
83
  "event": "ContactLoadFailed",
84
84
  "description": "Fired when Contact fails to load",
85
85
  "scope": "internal",
86
- "payload": [
86
+ "payloadSchema": [
87
87
  {
88
88
  "name": "error",
89
89
  "type": "string"
@@ -97,7 +97,7 @@
97
97
  {
98
98
  "event": "ContactSaved",
99
99
  "scope": "internal",
100
- "payload": [
100
+ "payloadSchema": [
101
101
  {
102
102
  "name": "id",
103
103
  "type": "string"
@@ -107,7 +107,7 @@
107
107
  {
108
108
  "event": "ContactSaveFailed",
109
109
  "scope": "internal",
110
- "payload": [
110
+ "payloadSchema": [
111
111
  {
112
112
  "name": "error",
113
113
  "type": "string"
@@ -121,7 +121,7 @@
121
121
  {
122
122
  "event": "ContactUpdated",
123
123
  "scope": "internal",
124
- "payload": [
124
+ "payloadSchema": [
125
125
  {
126
126
  "name": "id",
127
127
  "type": "string"
@@ -131,7 +131,7 @@
131
131
  {
132
132
  "event": "ContactUpdateFailed",
133
133
  "scope": "internal",
134
- "payload": [
134
+ "payloadSchema": [
135
135
  {
136
136
  "name": "error",
137
137
  "type": "string"
@@ -145,7 +145,7 @@
145
145
  {
146
146
  "event": "ContactDeleted",
147
147
  "scope": "internal",
148
- "payload": [
148
+ "payloadSchema": [
149
149
  {
150
150
  "name": "id",
151
151
  "type": "string"
@@ -155,7 +155,7 @@
155
155
  {
156
156
  "event": "ContactDeleteFailed",
157
157
  "scope": "internal",
158
- "payload": [
158
+ "payloadSchema": [
159
159
  {
160
160
  "name": "error",
161
161
  "type": "string"
@@ -169,7 +169,7 @@
169
169
  {
170
170
  "event": "DealSaved",
171
171
  "scope": "internal",
172
- "payload": [
172
+ "payloadSchema": [
173
173
  {
174
174
  "name": "id",
175
175
  "type": "string"
@@ -179,7 +179,7 @@
179
179
  {
180
180
  "event": "DealSaveFailed",
181
181
  "scope": "internal",
182
- "payload": [
182
+ "payloadSchema": [
183
183
  {
184
184
  "name": "error",
185
185
  "type": "string"
@@ -193,7 +193,7 @@
193
193
  {
194
194
  "event": "DealUpdated",
195
195
  "scope": "internal",
196
- "payload": [
196
+ "payloadSchema": [
197
197
  {
198
198
  "name": "id",
199
199
  "type": "string"
@@ -203,7 +203,7 @@
203
203
  {
204
204
  "event": "DealUpdateFailed",
205
205
  "scope": "internal",
206
- "payload": [
206
+ "payloadSchema": [
207
207
  {
208
208
  "name": "error",
209
209
  "type": "string"
@@ -217,7 +217,7 @@
217
217
  {
218
218
  "event": "DealDeleted",
219
219
  "scope": "internal",
220
- "payload": [
220
+ "payloadSchema": [
221
221
  {
222
222
  "name": "id",
223
223
  "type": "string"
@@ -227,7 +227,7 @@
227
227
  {
228
228
  "event": "DealDeleteFailed",
229
229
  "scope": "internal",
230
- "payload": [
230
+ "payloadSchema": [
231
231
  {
232
232
  "name": "error",
233
233
  "type": "string"
@@ -241,7 +241,7 @@
241
241
  {
242
242
  "event": "NoteSaved",
243
243
  "scope": "internal",
244
- "payload": [
244
+ "payloadSchema": [
245
245
  {
246
246
  "name": "id",
247
247
  "type": "string"
@@ -251,7 +251,7 @@
251
251
  {
252
252
  "event": "NoteSaveFailed",
253
253
  "scope": "internal",
254
- "payload": [
254
+ "payloadSchema": [
255
255
  {
256
256
  "name": "error",
257
257
  "type": "string"
@@ -304,7 +304,7 @@
304
304
  {
305
305
  "key": "ContactLoaded",
306
306
  "name": "Contact loaded",
307
- "payload": [
307
+ "payloadSchema": [
308
308
  {
309
309
  "name": "data",
310
310
  "type": "[Contact]"
@@ -314,7 +314,7 @@
314
314
  {
315
315
  "key": "ContactLoadFailed",
316
316
  "name": "Contact load failed",
317
- "payload": [
317
+ "payloadSchema": [
318
318
  {
319
319
  "name": "error",
320
320
  "type": "string"
@@ -332,7 +332,7 @@
332
332
  {
333
333
  "key": "ContactSaved",
334
334
  "name": "Contact saved",
335
- "payload": [
335
+ "payloadSchema": [
336
336
  {
337
337
  "name": "id",
338
338
  "type": "string"
@@ -342,7 +342,7 @@
342
342
  {
343
343
  "key": "ContactSaveFailed",
344
344
  "name": "Contact save failed",
345
- "payload": [
345
+ "payloadSchema": [
346
346
  {
347
347
  "name": "error",
348
348
  "type": "string"
@@ -356,7 +356,7 @@
356
356
  {
357
357
  "key": "ContactUpdated",
358
358
  "name": "Contact updated",
359
- "payload": [
359
+ "payloadSchema": [
360
360
  {
361
361
  "name": "id",
362
362
  "type": "string"
@@ -366,7 +366,7 @@
366
366
  {
367
367
  "key": "ContactUpdateFailed",
368
368
  "name": "Contact update failed",
369
- "payload": [
369
+ "payloadSchema": [
370
370
  {
371
371
  "name": "error",
372
372
  "type": "string"
@@ -380,7 +380,7 @@
380
380
  {
381
381
  "key": "ContactDeleted",
382
382
  "name": "Contact deleted",
383
- "payload": [
383
+ "payloadSchema": [
384
384
  {
385
385
  "name": "id",
386
386
  "type": "string"
@@ -390,7 +390,7 @@
390
390
  {
391
391
  "key": "ContactDeleteFailed",
392
392
  "name": "Contact delete failed",
393
- "payload": [
393
+ "payloadSchema": [
394
394
  {
395
395
  "name": "error",
396
396
  "type": "string"
@@ -404,7 +404,7 @@
404
404
  {
405
405
  "key": "DealSaved",
406
406
  "name": "Deal saved",
407
- "payload": [
407
+ "payloadSchema": [
408
408
  {
409
409
  "name": "id",
410
410
  "type": "string"
@@ -414,7 +414,7 @@
414
414
  {
415
415
  "key": "DealSaveFailed",
416
416
  "name": "Deal save failed",
417
- "payload": [
417
+ "payloadSchema": [
418
418
  {
419
419
  "name": "error",
420
420
  "type": "string"
@@ -428,7 +428,7 @@
428
428
  {
429
429
  "key": "DealUpdated",
430
430
  "name": "Deal updated",
431
- "payload": [
431
+ "payloadSchema": [
432
432
  {
433
433
  "name": "id",
434
434
  "type": "string"
@@ -438,7 +438,7 @@
438
438
  {
439
439
  "key": "DealUpdateFailed",
440
440
  "name": "Deal update failed",
441
- "payload": [
441
+ "payloadSchema": [
442
442
  {
443
443
  "name": "error",
444
444
  "type": "string"
@@ -452,7 +452,7 @@
452
452
  {
453
453
  "key": "DealDeleted",
454
454
  "name": "Deal deleted",
455
- "payload": [
455
+ "payloadSchema": [
456
456
  {
457
457
  "name": "id",
458
458
  "type": "string"
@@ -462,7 +462,7 @@
462
462
  {
463
463
  "key": "DealDeleteFailed",
464
464
  "name": "Deal delete failed",
465
- "payload": [
465
+ "payloadSchema": [
466
466
  {
467
467
  "name": "error",
468
468
  "type": "string"
@@ -476,7 +476,7 @@
476
476
  {
477
477
  "key": "NoteSaved",
478
478
  "name": "Note saved",
479
- "payload": [
479
+ "payloadSchema": [
480
480
  {
481
481
  "name": "id",
482
482
  "type": "string"
@@ -486,7 +486,7 @@
486
486
  {
487
487
  "key": "NoteSaveFailed",
488
488
  "name": "Note save failed",
489
- "payload": [
489
+ "payloadSchema": [
490
490
  {
491
491
  "name": "error",
492
492
  "type": "string"
@@ -500,7 +500,7 @@
500
500
  {
501
501
  "key": "VIEW",
502
502
  "name": "View",
503
- "payload": [
503
+ "payloadSchema": [
504
504
  {
505
505
  "name": "id",
506
506
  "type": "string",
@@ -515,7 +515,7 @@
515
515
  {
516
516
  "key": "EDIT",
517
517
  "name": "Edit",
518
- "payload": [
518
+ "payloadSchema": [
519
519
  {
520
520
  "name": "id",
521
521
  "type": "string",
@@ -530,7 +530,7 @@
530
530
  {
531
531
  "key": "DELETE",
532
532
  "name": "Delete",
533
- "payload": [
533
+ "payloadSchema": [
534
534
  {
535
535
  "name": "id",
536
536
  "type": "string",
@@ -554,8 +554,8 @@
554
554
  "Contact",
555
555
  {
556
556
  "emit": {
557
- "failure": "ContactLoadFailed",
558
- "success": "ContactLoaded"
557
+ "success": "ContactLoaded",
558
+ "failure": "ContactLoadFailed"
559
559
  }
560
560
  }
561
561
  ],
@@ -563,22 +563,22 @@
563
563
  "render-ui",
564
564
  "main",
565
565
  {
566
+ "type": "stack",
566
567
  "direction": "vertical",
567
568
  "gap": "md",
569
+ "className": "py-12",
570
+ "align": "center",
568
571
  "children": [
569
572
  {
570
573
  "type": "spinner"
571
574
  },
572
575
  {
573
- "content": "Loading…",
574
- "type": "typography",
575
576
  "variant": "caption",
576
- "color": "muted"
577
+ "content": "Loading…",
578
+ "color": "muted",
579
+ "type": "typography"
577
580
  }
578
- ],
579
- "className": "py-12",
580
- "type": "stack",
581
- "align": "center"
581
+ ]
582
582
  }
583
583
  ]
584
584
  ]
@@ -592,50 +592,70 @@
592
592
  "render-ui",
593
593
  "main",
594
594
  {
595
+ "appName": "CRM",
596
+ "type": "dashboard-layout",
597
+ "navItems": [
598
+ {
599
+ "label": "Contacts",
600
+ "href": "/contacts",
601
+ "icon": "users"
602
+ },
603
+ {
604
+ "href": "/deals",
605
+ "icon": "briefcase",
606
+ "label": "Deals"
607
+ },
608
+ {
609
+ "icon": "bar-chart-2",
610
+ "label": "Pipeline",
611
+ "href": "/pipeline"
612
+ },
613
+ {
614
+ "label": "Notes",
615
+ "icon": "file-text",
616
+ "href": "/notes"
617
+ }
618
+ ],
595
619
  "children": [
596
620
  {
597
- "type": "stack",
598
- "direction": "vertical",
599
- "className": "max-w-5xl mx-auto w-full",
600
- "gap": "lg",
601
621
  "children": [
602
622
  {
603
- "gap": "md",
604
623
  "type": "stack",
605
624
  "direction": "horizontal",
625
+ "gap": "md",
606
626
  "justify": "between",
607
627
  "align": "center",
608
628
  "children": [
609
629
  {
630
+ "direction": "horizontal",
610
631
  "gap": "sm",
611
- "type": "stack",
612
- "align": "center",
613
632
  "children": [
614
633
  {
615
- "name": "users",
616
- "type": "icon"
634
+ "type": "icon",
635
+ "name": "users"
617
636
  },
618
637
  {
638
+ "content": "Contacts",
619
639
  "type": "typography",
620
- "variant": "h2",
621
- "content": "Contacts"
640
+ "variant": "h2"
622
641
  }
623
642
  ],
624
- "direction": "horizontal"
643
+ "align": "center",
644
+ "type": "stack"
625
645
  },
626
646
  {
627
- "gap": "sm",
628
647
  "type": "stack",
629
- "direction": "horizontal",
630
648
  "children": [
631
649
  {
632
- "variant": "primary",
633
- "type": "button",
634
650
  "action": "CREATE",
651
+ "variant": "primary",
652
+ "icon": "plus",
635
653
  "label": "Add Contact",
636
- "icon": "plus"
654
+ "type": "button"
637
655
  }
638
- ]
656
+ ],
657
+ "gap": "sm",
658
+ "direction": "horizontal"
639
659
  }
640
660
  ]
641
661
  },
@@ -644,93 +664,73 @@
644
664
  },
645
665
  {
646
666
  "cols": 1.0,
647
- "type": "simple-grid",
648
667
  "children": [
649
668
  {
650
- "label": "Total Contacts",
651
669
  "type": "stat-display",
670
+ "icon": "users",
652
671
  "value": "@entity",
653
- "icon": "users"
672
+ "label": "Total Contacts"
654
673
  }
655
- ]
674
+ ],
675
+ "type": "simple-grid"
656
676
  },
657
677
  {
658
678
  "type": "divider"
659
679
  },
660
680
  {
661
- "entity": "@payload.data",
662
- "type": "data-list",
663
- "itemActions": [
664
- {
665
- "variant": "ghost",
666
- "label": "View",
667
- "event": "VIEW"
668
- },
669
- {
670
- "event": "EDIT",
671
- "label": "Edit",
672
- "variant": "ghost"
673
- },
674
- {
675
- "variant": "danger",
676
- "event": "DELETE",
677
- "label": "Delete"
678
- }
679
- ],
680
681
  "columns": [
681
682
  {
682
- "name": "name",
683
+ "variant": "h3",
683
684
  "icon": "user",
684
- "variant": "h3"
685
+ "name": "name"
685
686
  },
686
687
  {
687
688
  "name": "status",
688
689
  "variant": "badge"
689
690
  },
690
691
  {
691
- "name": "company",
692
- "variant": "body"
692
+ "variant": "body",
693
+ "name": "company"
693
694
  },
694
695
  {
695
696
  "name": "email",
696
697
  "variant": "caption"
697
698
  },
698
699
  {
699
- "variant": "caption",
700
- "name": "phone"
700
+ "name": "phone",
701
+ "variant": "caption"
701
702
  }
702
703
  ],
703
- "variant": "card",
704
704
  "gap": "sm",
705
- "fields": []
705
+ "entity": "@payload.data",
706
+ "fields": [],
707
+ "itemActions": [
708
+ {
709
+ "variant": "ghost",
710
+ "label": "View",
711
+ "event": "VIEW"
712
+ },
713
+ {
714
+ "variant": "ghost",
715
+ "label": "Edit",
716
+ "event": "EDIT"
717
+ },
718
+ {
719
+ "event": "DELETE",
720
+ "label": "Delete",
721
+ "variant": "danger"
722
+ }
723
+ ],
724
+ "variant": "card",
725
+ "type": "data-list"
706
726
  }
707
- ]
708
- }
709
- ],
710
- "type": "dashboard-layout",
711
- "navItems": [
712
- {
713
- "label": "Contacts",
714
- "href": "/contacts",
715
- "icon": "users"
716
- },
717
- {
718
- "href": "/deals",
719
- "label": "Deals",
720
- "icon": "briefcase"
721
- },
722
- {
723
- "href": "/pipeline",
724
- "label": "Pipeline",
725
- "icon": "bar-chart-2"
726
- },
727
- {
728
- "icon": "file-text",
729
- "label": "Notes",
730
- "href": "/notes"
727
+ ],
728
+ "type": "stack",
729
+ "gap": "lg",
730
+ "className": "max-w-5xl mx-auto w-full",
731
+ "direction": "vertical"
731
732
  }
732
- ],
733
- "appName": "CRM"
733
+ ]
734
734
  }
735
735
  ]
736
736
  ]
@@ -745,10 +745,10 @@
745
745
  "main",
746
746
  {
747
747
  "gap": "md",
748
- "type": "stack",
749
- "align": "center",
750
748
  "className": "py-12",
751
749
  "direction": "vertical",
750
+ "align": "center",
751
+ "type": "stack",
752
752
  "children": [
753
753
  {
754
754
  "type": "icon",
@@ -756,22 +756,22 @@
756
756
  "color": "destructive"
757
757
  },
758
758
  {
759
- "type": "typography",
760
759
  "variant": "h3",
760
+ "type": "typography",
761
761
  "content": "Failed to load contact"
762
762
  },
763
763
  {
764
764
  "type": "typography",
765
- "content": "@payload.error",
765
+ "variant": "body",
766
766
  "color": "muted",
767
- "variant": "body"
767
+ "content": "@payload.error"
768
768
  },
769
769
  {
770
770
  "type": "button",
771
- "action": "INIT",
772
- "variant": "primary",
773
771
  "label": "Retry",
774
- "icon": "rotate-ccw"
772
+ "variant": "primary",
773
+ "icon": "rotate-ccw",
774
+ "action": "INIT"
775
775
  }
776
776
  ]
777
777
  }
@@ -790,7 +790,7 @@
790
790
  {
791
791
  "event": "CONTACT_CREATED",
792
792
  "scope": "external",
793
- "payload": [
793
+ "payloadSchema": [
794
794
  {
795
795
  "name": "id",
796
796
  "type": "string"
@@ -801,7 +801,7 @@
801
801
  "event": "ContactLoadFailed",
802
802
  "description": "Fired when Contact fails to load",
803
803
  "scope": "internal",
804
- "payload": [
804
+ "payloadSchema": [
805
805
  {
806
806
  "name": "error",
807
807
  "type": "string"
@@ -816,7 +816,7 @@
816
816
  "event": "ContactLoaded",
817
817
  "description": "Fired when Contact finishes loading",
818
818
  "scope": "internal",
819
- "payload": [
819
+ "payloadSchema": [
820
820
  {
821
821
  "name": "data",
822
822
  "type": "[Contact]"
@@ -826,7 +826,7 @@
826
826
  {
827
827
  "event": "ContactSaveFailed",
828
828
  "scope": "internal",
829
- "payload": [
829
+ "payloadSchema": [
830
830
  {
831
831
  "name": "error",
832
832
  "type": "string"
@@ -840,7 +840,7 @@
840
840
  {
841
841
  "event": "ContactSaved",
842
842
  "scope": "internal",
843
- "payload": [
843
+ "payloadSchema": [
844
844
  {
845
845
  "name": "id",
846
846
  "type": "string"
@@ -874,7 +874,7 @@
874
874
  {
875
875
  "key": "SAVE",
876
876
  "name": "Save",
877
- "payload": [
877
+ "payloadSchema": [
878
878
  {
879
879
  "name": "data",
880
880
  "type": "object",
@@ -889,7 +889,7 @@
889
889
  {
890
890
  "key": "ContactLoadFailed",
891
891
  "name": "Contact load failed",
892
- "payload": [
892
+ "payloadSchema": [
893
893
  {
894
894
  "name": "error",
895
895
  "type": "string"
@@ -903,7 +903,7 @@
903
903
  {
904
904
  "key": "ContactLoaded",
905
905
  "name": "Contact loaded",
906
- "payload": [
906
+ "payloadSchema": [
907
907
  {
908
908
  "name": "data",
909
909
  "type": "[Contact]"
@@ -913,7 +913,7 @@
913
913
  {
914
914
  "key": "ContactSaveFailed",
915
915
  "name": "Contact save failed",
916
- "payload": [
916
+ "payloadSchema": [
917
917
  {
918
918
  "name": "error",
919
919
  "type": "string"
@@ -927,7 +927,7 @@
927
927
  {
928
928
  "key": "ContactSaved",
929
929
  "name": "Contact saved",
930
- "payload": [
930
+ "payloadSchema": [
931
931
  {
932
932
  "name": "id",
933
933
  "type": "string"
@@ -968,22 +968,23 @@
968
968
  {
969
969
  "direction": "vertical",
970
970
  "gap": "md",
971
+ "type": "stack",
971
972
  "children": [
972
973
  {
973
974
  "gap": "sm",
975
+ "type": "stack",
976
+ "direction": "horizontal",
974
977
  "children": [
975
978
  {
976
979
  "type": "icon",
977
980
  "name": "plus-circle"
978
981
  },
979
982
  {
983
+ "content": "New Contact",
980
984
  "type": "typography",
981
- "variant": "h3",
982
- "content": "New Contact"
985
+ "variant": "h3"
983
986
  }
984
- ],
985
- "type": "stack",
986
- "direction": "horizontal"
987
+ ]
987
988
  },
988
989
  {
989
990
  "type": "divider"
@@ -996,13 +997,12 @@
996
997
  "phone",
997
998
  "status"
998
999
  ],
999
- "submitEvent": "SAVE",
1000
- "cancelEvent": "CLOSE",
1000
+ "mode": "create",
1001
1001
  "type": "form-section",
1002
- "mode": "create"
1002
+ "submitEvent": "SAVE",
1003
+ "cancelEvent": "CLOSE"
1003
1004
  }
1004
- ],
1005
- "type": "stack"
1005
+ ]
1006
1006
  }
1007
1007
  ]
1008
1008
  ]
@@ -1078,7 +1078,7 @@
1078
1078
  {
1079
1079
  "event": "CONTACT_UPDATED",
1080
1080
  "scope": "external",
1081
- "payload": [
1081
+ "payloadSchema": [
1082
1082
  {
1083
1083
  "name": "id",
1084
1084
  "type": "string"
@@ -1089,7 +1089,7 @@
1089
1089
  "event": "ContactLoadFailed",
1090
1090
  "description": "Fired when Contact fails to load",
1091
1091
  "scope": "internal",
1092
- "payload": [
1092
+ "payloadSchema": [
1093
1093
  {
1094
1094
  "name": "error",
1095
1095
  "type": "string"
@@ -1104,7 +1104,7 @@
1104
1104
  "event": "ContactLoaded",
1105
1105
  "description": "Fired when Contact finishes loading",
1106
1106
  "scope": "internal",
1107
- "payload": [
1107
+ "payloadSchema": [
1108
1108
  {
1109
1109
  "name": "data",
1110
1110
  "type": "[Contact]"
@@ -1114,7 +1114,7 @@
1114
1114
  {
1115
1115
  "event": "ContactUpdateFailed",
1116
1116
  "scope": "internal",
1117
- "payload": [
1117
+ "payloadSchema": [
1118
1118
  {
1119
1119
  "name": "error",
1120
1120
  "type": "string"
@@ -1128,7 +1128,7 @@
1128
1128
  {
1129
1129
  "event": "ContactUpdated",
1130
1130
  "scope": "internal",
1131
- "payload": [
1131
+ "payloadSchema": [
1132
1132
  {
1133
1133
  "name": "id",
1134
1134
  "type": "string"
@@ -1154,7 +1154,7 @@
1154
1154
  {
1155
1155
  "key": "EDIT",
1156
1156
  "name": "Edit",
1157
- "payload": [
1157
+ "payloadSchema": [
1158
1158
  {
1159
1159
  "name": "id",
1160
1160
  "type": "string",
@@ -1173,7 +1173,7 @@
1173
1173
  {
1174
1174
  "key": "SAVE",
1175
1175
  "name": "Save",
1176
- "payload": [
1176
+ "payloadSchema": [
1177
1177
  {
1178
1178
  "name": "data",
1179
1179
  "type": "object",
@@ -1188,7 +1188,7 @@
1188
1188
  {
1189
1189
  "key": "ContactLoadFailed",
1190
1190
  "name": "Contact load failed",
1191
- "payload": [
1191
+ "payloadSchema": [
1192
1192
  {
1193
1193
  "name": "error",
1194
1194
  "type": "string"
@@ -1202,7 +1202,7 @@
1202
1202
  {
1203
1203
  "key": "ContactLoaded",
1204
1204
  "name": "Contact loaded",
1205
- "payload": [
1205
+ "payloadSchema": [
1206
1206
  {
1207
1207
  "name": "data",
1208
1208
  "type": "[Contact]"
@@ -1212,7 +1212,7 @@
1212
1212
  {
1213
1213
  "key": "ContactUpdateFailed",
1214
1214
  "name": "Contact update failed",
1215
- "payload": [
1215
+ "payloadSchema": [
1216
1216
  {
1217
1217
  "name": "error",
1218
1218
  "type": "string"
@@ -1226,7 +1226,7 @@
1226
1226
  {
1227
1227
  "key": "ContactUpdated",
1228
1228
  "name": "Contact updated",
1229
- "payload": [
1229
+ "payloadSchema": [
1230
1230
  {
1231
1231
  "name": "id",
1232
1232
  "type": "string"
@@ -1255,11 +1255,11 @@
1255
1255
  "fetch",
1256
1256
  "Contact",
1257
1257
  {
1258
- "id": "@payload.id",
1259
1258
  "emit": {
1260
1259
  "success": "ContactLoaded",
1261
1260
  "failure": "ContactLoadFailed"
1262
- }
1261
+ },
1262
+ "id": "@payload.id"
1263
1263
  }
1264
1264
  ],
1265
1265
  [
@@ -1270,28 +1270,27 @@
1270
1270
  "children": [
1271
1271
  {
1272
1272
  "direction": "horizontal",
1273
+ "type": "stack",
1274
+ "gap": "sm",
1273
1275
  "children": [
1274
1276
  {
1275
- "name": "edit",
1276
- "type": "icon"
1277
+ "type": "icon",
1278
+ "name": "edit"
1277
1279
  },
1278
1280
  {
1279
1281
  "content": "Edit Contact",
1280
1282
  "type": "typography",
1281
1283
  "variant": "h3"
1282
1284
  }
1283
- ],
1284
- "type": "stack",
1285
- "gap": "sm"
1285
+ ]
1286
1286
  },
1287
1287
  {
1288
1288
  "type": "divider"
1289
1289
  },
1290
1290
  {
1291
+ "cancelEvent": "CLOSE",
1291
1292
  "mode": "edit",
1292
1293
  "submitEvent": "SAVE",
1293
- "type": "form-section",
1294
- "cancelEvent": "CLOSE",
1295
1294
  "entity": "@payload.row",
1296
1295
  "fields": [
1297
1296
  "name",
@@ -1299,7 +1298,8 @@
1299
1298
  "email",
1300
1299
  "phone",
1301
1300
  "status"
1302
- ]
1301
+ ],
1302
+ "type": "form-section"
1303
1303
  }
1304
1304
  ],
1305
1305
  "gap": "md",
@@ -1380,7 +1380,7 @@
1380
1380
  "event": "ContactLoaded",
1381
1381
  "description": "Fired when Contact finishes loading",
1382
1382
  "scope": "internal",
1383
- "payload": [
1383
+ "payloadSchema": [
1384
1384
  {
1385
1385
  "name": "data",
1386
1386
  "type": "[Contact]"
@@ -1391,7 +1391,7 @@
1391
1391
  "event": "ContactLoadFailed",
1392
1392
  "description": "Fired when Contact fails to load",
1393
1393
  "scope": "internal",
1394
- "payload": [
1394
+ "payloadSchema": [
1395
1395
  {
1396
1396
  "name": "error",
1397
1397
  "type": "string"
@@ -1421,7 +1421,7 @@
1421
1421
  {
1422
1422
  "key": "VIEW",
1423
1423
  "name": "View",
1424
- "payload": [
1424
+ "payloadSchema": [
1425
1425
  {
1426
1426
  "name": "id",
1427
1427
  "type": "string",
@@ -1436,7 +1436,7 @@
1436
1436
  {
1437
1437
  "key": "SAVE",
1438
1438
  "name": "Save",
1439
- "payload": [
1439
+ "payloadSchema": [
1440
1440
  {
1441
1441
  "name": "data",
1442
1442
  "type": "object",
@@ -1447,7 +1447,7 @@
1447
1447
  {
1448
1448
  "key": "ContactLoaded",
1449
1449
  "name": "Contact loaded",
1450
- "payload": [
1450
+ "payloadSchema": [
1451
1451
  {
1452
1452
  "name": "data",
1453
1453
  "type": "[Contact]"
@@ -1457,7 +1457,7 @@
1457
1457
  {
1458
1458
  "key": "ContactLoadFailed",
1459
1459
  "name": "Contact load failed",
1460
- "payload": [
1460
+ "payloadSchema": [
1461
1461
  {
1462
1462
  "name": "error",
1463
1463
  "type": "string"
@@ -1504,137 +1504,137 @@
1504
1504
  "gap": "md",
1505
1505
  "children": [
1506
1506
  {
1507
- "align": "center",
1508
- "direction": "horizontal",
1509
- "gap": "sm",
1510
- "type": "stack",
1511
1507
  "children": [
1512
1508
  {
1513
- "name": "eye",
1514
- "type": "icon"
1509
+ "type": "icon",
1510
+ "name": "eye"
1515
1511
  },
1516
1512
  {
1517
- "content": "@entity.name",
1513
+ "variant": "h3",
1518
1514
  "type": "typography",
1519
- "variant": "h3"
1515
+ "content": "@entity.name"
1520
1516
  }
1521
- ]
1517
+ ],
1518
+ "gap": "sm",
1519
+ "type": "stack",
1520
+ "align": "center",
1521
+ "direction": "horizontal"
1522
1522
  },
1523
1523
  {
1524
1524
  "type": "divider"
1525
1525
  },
1526
1526
  {
1527
+ "gap": "md",
1527
1528
  "direction": "horizontal",
1528
1529
  "children": [
1529
1530
  {
1530
1531
  "content": "Name",
1531
- "variant": "caption",
1532
- "type": "typography"
1532
+ "type": "typography",
1533
+ "variant": "caption"
1533
1534
  },
1534
1535
  {
1535
- "type": "typography",
1536
+ "content": "@entity.name",
1536
1537
  "variant": "body",
1537
- "content": "@entity.name"
1538
+ "type": "typography"
1538
1539
  }
1539
1540
  ],
1540
- "type": "stack",
1541
- "gap": "md"
1541
+ "type": "stack"
1542
1542
  },
1543
1543
  {
1544
+ "type": "stack",
1545
+ "direction": "horizontal",
1544
1546
  "children": [
1545
1547
  {
1546
- "content": "Company",
1548
+ "variant": "caption",
1547
1549
  "type": "typography",
1548
- "variant": "caption"
1550
+ "content": "Company"
1549
1551
  },
1550
1552
  {
1551
1553
  "content": "@entity.company",
1552
- "variant": "body",
1553
- "type": "typography"
1554
+ "type": "typography",
1555
+ "variant": "body"
1554
1556
  }
1555
1557
  ],
1556
- "direction": "horizontal",
1557
- "gap": "md",
1558
- "type": "stack"
1558
+ "gap": "md"
1559
1559
  },
1560
1560
  {
1561
+ "type": "stack",
1562
+ "direction": "horizontal",
1561
1563
  "gap": "md",
1562
1564
  "children": [
1563
1565
  {
1564
- "type": "typography",
1565
1566
  "variant": "caption",
1566
- "content": "Email"
1567
+ "content": "Email",
1568
+ "type": "typography"
1567
1569
  },
1568
1570
  {
1571
+ "type": "typography",
1569
1572
  "variant": "body",
1570
- "content": "@entity.email",
1571
- "type": "typography"
1573
+ "content": "@entity.email"
1572
1574
  }
1573
- ],
1574
- "type": "stack",
1575
- "direction": "horizontal"
1575
+ ]
1576
1576
  },
1577
1577
  {
1578
- "type": "stack",
1579
- "gap": "md",
1580
- "direction": "horizontal",
1581
1578
  "children": [
1582
1579
  {
1583
- "type": "typography",
1584
1580
  "content": "Phone",
1585
- "variant": "caption"
1581
+ "variant": "caption",
1582
+ "type": "typography"
1586
1583
  },
1587
1584
  {
1588
- "variant": "body",
1589
1585
  "content": "@entity.phone",
1590
- "type": "typography"
1586
+ "type": "typography",
1587
+ "variant": "body"
1591
1588
  }
1592
- ]
1589
+ ],
1590
+ "type": "stack",
1591
+ "direction": "horizontal",
1592
+ "gap": "md"
1593
1593
  },
1594
1594
  {
1595
1595
  "gap": "md",
1596
1596
  "children": [
1597
1597
  {
1598
- "type": "typography",
1598
+ "variant": "caption",
1599
1599
  "content": "Status",
1600
- "variant": "caption"
1600
+ "type": "typography"
1601
1601
  },
1602
1602
  {
1603
+ "content": "@entity.status",
1603
1604
  "type": "typography",
1604
- "variant": "body",
1605
- "content": "@entity.status"
1605
+ "variant": "body"
1606
1606
  }
1607
1607
  ],
1608
- "type": "stack",
1609
- "direction": "horizontal"
1608
+ "direction": "horizontal",
1609
+ "type": "stack"
1610
1610
  },
1611
1611
  {
1612
1612
  "type": "divider"
1613
1613
  },
1614
1614
  {
1615
- "direction": "horizontal",
1616
1615
  "type": "stack",
1617
- "gap": "sm",
1618
1616
  "justify": "end",
1619
1617
  "children": [
1620
1618
  {
1621
- "variant": "primary",
1619
+ "label": "Edit",
1622
1620
  "action": "EDIT",
1623
- "type": "button",
1624
1621
  "icon": "edit",
1625
- "label": "Edit"
1622
+ "type": "button",
1623
+ "variant": "primary"
1626
1624
  },
1627
1625
  {
1628
- "label": "Close",
1629
- "variant": "ghost",
1630
1626
  "type": "button",
1631
- "action": "CLOSE"
1627
+ "action": "CLOSE",
1628
+ "label": "Close",
1629
+ "variant": "ghost"
1632
1630
  }
1633
- ]
1631
+ ],
1632
+ "direction": "horizontal",
1633
+ "gap": "sm"
1634
1634
  }
1635
1635
  ],
1636
- "type": "stack",
1637
- "direction": "vertical"
1636
+ "direction": "vertical",
1637
+ "type": "stack"
1638
1638
  }
1639
1639
  ]
1640
1640
  ]
@@ -1694,7 +1694,7 @@
1694
1694
  {
1695
1695
  "event": "CONTACT_DELETED",
1696
1696
  "scope": "external",
1697
- "payload": [
1697
+ "payloadSchema": [
1698
1698
  {
1699
1699
  "name": "id",
1700
1700
  "type": "string"
@@ -1704,7 +1704,7 @@
1704
1704
  {
1705
1705
  "event": "ContactDeleteFailed",
1706
1706
  "scope": "internal",
1707
- "payload": [
1707
+ "payloadSchema": [
1708
1708
  {
1709
1709
  "name": "error",
1710
1710
  "type": "string"
@@ -1718,7 +1718,7 @@
1718
1718
  {
1719
1719
  "event": "ContactDeleted",
1720
1720
  "scope": "internal",
1721
- "payload": [
1721
+ "payloadSchema": [
1722
1722
  {
1723
1723
  "name": "id",
1724
1724
  "type": "string"
@@ -1729,7 +1729,7 @@
1729
1729
  "event": "ContactLoadFailed",
1730
1730
  "description": "Fired when Contact fails to load",
1731
1731
  "scope": "internal",
1732
- "payload": [
1732
+ "payloadSchema": [
1733
1733
  {
1734
1734
  "name": "error",
1735
1735
  "type": "string"
@@ -1744,7 +1744,7 @@
1744
1744
  "event": "ContactLoaded",
1745
1745
  "description": "Fired when Contact finishes loading",
1746
1746
  "scope": "internal",
1747
- "payload": [
1747
+ "payloadSchema": [
1748
1748
  {
1749
1749
  "name": "data",
1750
1750
  "type": "[Contact]"
@@ -1770,7 +1770,7 @@
1770
1770
  {
1771
1771
  "key": "DELETE",
1772
1772
  "name": "Delete",
1773
- "payload": [
1773
+ "payloadSchema": [
1774
1774
  {
1775
1775
  "name": "id",
1776
1776
  "type": "string",
@@ -1797,7 +1797,7 @@
1797
1797
  {
1798
1798
  "key": "ContactDeleteFailed",
1799
1799
  "name": "Contact delete failed",
1800
- "payload": [
1800
+ "payloadSchema": [
1801
1801
  {
1802
1802
  "name": "error",
1803
1803
  "type": "string"
@@ -1811,7 +1811,7 @@
1811
1811
  {
1812
1812
  "key": "ContactDeleted",
1813
1813
  "name": "Contact deleted",
1814
- "payload": [
1814
+ "payloadSchema": [
1815
1815
  {
1816
1816
  "name": "id",
1817
1817
  "type": "string"
@@ -1821,7 +1821,7 @@
1821
1821
  {
1822
1822
  "key": "ContactLoadFailed",
1823
1823
  "name": "Contact load failed",
1824
- "payload": [
1824
+ "payloadSchema": [
1825
1825
  {
1826
1826
  "name": "error",
1827
1827
  "type": "string"
@@ -1835,7 +1835,7 @@
1835
1835
  {
1836
1836
  "key": "ContactLoaded",
1837
1837
  "name": "Contact loaded",
1838
- "payload": [
1838
+ "payloadSchema": [
1839
1839
  {
1840
1840
  "name": "data",
1841
1841
  "type": "[Contact]"
@@ -1871,8 +1871,8 @@
1871
1871
  {
1872
1872
  "id": "@payload.id",
1873
1873
  "emit": {
1874
- "success": "ContactLoaded",
1875
- "failure": "ContactLoadFailed"
1874
+ "failure": "ContactLoadFailed",
1875
+ "success": "ContactLoaded"
1876
1876
  }
1877
1877
  }
1878
1878
  ],
@@ -1880,57 +1880,57 @@
1880
1880
  "render-ui",
1881
1881
  "modal",
1882
1882
  {
1883
+ "gap": "md",
1883
1884
  "type": "stack",
1885
+ "direction": "vertical",
1884
1886
  "children": [
1885
1887
  {
1888
+ "type": "stack",
1886
1889
  "direction": "horizontal",
1887
- "gap": "sm",
1888
1890
  "align": "center",
1889
- "type": "stack",
1890
1891
  "children": [
1891
1892
  {
1892
- "type": "icon",
1893
- "name": "alert-triangle"
1893
+ "name": "alert-triangle",
1894
+ "type": "icon"
1894
1895
  },
1895
1896
  {
1896
1897
  "variant": "h3",
1897
1898
  "type": "typography",
1898
1899
  "content": "Delete Contact"
1899
1900
  }
1900
- ]
1901
+ ],
1902
+ "gap": "sm"
1901
1903
  },
1902
1904
  {
1903
1905
  "type": "divider"
1904
1906
  },
1905
1907
  {
1908
+ "message": "This action cannot be undone.",
1906
1909
  "type": "alert",
1907
- "variant": "error",
1908
- "message": "This action cannot be undone."
1910
+ "variant": "error"
1909
1911
  },
1910
1912
  {
1911
- "direction": "horizontal",
1913
+ "justify": "end",
1912
1914
  "type": "stack",
1915
+ "direction": "horizontal",
1913
1916
  "gap": "sm",
1914
- "justify": "end",
1915
1917
  "children": [
1916
1918
  {
1917
- "label": "Cancel",
1918
- "action": "CANCEL",
1919
1919
  "variant": "ghost",
1920
+ "action": "CANCEL",
1921
+ "label": "Cancel",
1920
1922
  "type": "button"
1921
1923
  },
1922
1924
  {
1923
- "icon": "check",
1924
- "type": "button",
1925
1925
  "variant": "danger",
1926
+ "type": "button",
1927
+ "action": "CONFIRM_DELETE",
1926
1928
  "label": "Delete",
1927
- "action": "CONFIRM_DELETE"
1929
+ "icon": "check"
1928
1930
  }
1929
1931
  ]
1930
1932
  }
1931
- ],
1932
- "direction": "vertical",
1933
- "gap": "md"
1933
+ ]
1934
1934
  }
1935
1935
  ]
1936
1936
  ]
@@ -1947,8 +1947,8 @@
1947
1947
  "@entity.pendingId",
1948
1948
  {
1949
1949
  "emit": {
1950
- "failure": "ContactDeleteFailed",
1951
- "success": "ContactDeleted"
1950
+ "success": "ContactDeleted",
1951
+ "failure": "ContactDeleteFailed"
1952
1952
  }
1953
1953
  }
1954
1954
  ],
@@ -2096,7 +2096,7 @@
2096
2096
  {
2097
2097
  "event": "CLOSE_DEAL",
2098
2098
  "scope": "external",
2099
- "payload": [
2099
+ "payloadSchema": [
2100
2100
  {
2101
2101
  "name": "id",
2102
2102
  "type": "string"
@@ -2107,7 +2107,7 @@
2107
2107
  "event": "DealLoaded",
2108
2108
  "description": "Fired when Deal finishes loading",
2109
2109
  "scope": "internal",
2110
- "payload": [
2110
+ "payloadSchema": [
2111
2111
  {
2112
2112
  "name": "data",
2113
2113
  "type": "[Deal]"
@@ -2118,7 +2118,7 @@
2118
2118
  "event": "DealLoadFailed",
2119
2119
  "description": "Fired when Deal fails to load",
2120
2120
  "scope": "internal",
2121
- "payload": [
2121
+ "payloadSchema": [
2122
2122
  {
2123
2123
  "name": "error",
2124
2124
  "type": "string"
@@ -2178,7 +2178,7 @@
2178
2178
  {
2179
2179
  "key": "DealLoaded",
2180
2180
  "name": "Deal loaded",
2181
- "payload": [
2181
+ "payloadSchema": [
2182
2182
  {
2183
2183
  "name": "data",
2184
2184
  "type": "[Deal]"
@@ -2188,7 +2188,7 @@
2188
2188
  {
2189
2189
  "key": "DealLoadFailed",
2190
2190
  "name": "Deal load failed",
2191
- "payload": [
2191
+ "payloadSchema": [
2192
2192
  {
2193
2193
  "name": "error",
2194
2194
  "type": "string"
@@ -2215,8 +2215,8 @@
2215
2215
  "Deal",
2216
2216
  {
2217
2217
  "emit": {
2218
- "success": "DealLoaded",
2219
- "failure": "DealLoadFailed"
2218
+ "failure": "DealLoadFailed",
2219
+ "success": "DealLoaded"
2220
2220
  }
2221
2221
  }
2222
2222
  ],
@@ -2224,22 +2224,22 @@
2224
2224
  "render-ui",
2225
2225
  "main",
2226
2226
  {
2227
+ "className": "py-12",
2228
+ "direction": "vertical",
2227
2229
  "gap": "md",
2228
- "align": "center",
2229
- "type": "stack",
2230
2230
  "children": [
2231
2231
  {
2232
2232
  "type": "spinner"
2233
2233
  },
2234
2234
  {
2235
- "variant": "caption",
2236
- "type": "typography",
2237
2235
  "color": "muted",
2238
- "content": "Loading…"
2236
+ "type": "typography",
2237
+ "content": "Loading…",
2238
+ "variant": "caption"
2239
2239
  }
2240
2240
  ],
2241
- "direction": "vertical",
2242
- "className": "py-12"
2241
+ "align": "center",
2242
+ "type": "stack"
2243
2243
  }
2244
2244
  ]
2245
2245
  ]
@@ -2260,119 +2260,119 @@
2260
2260
  "href": "/contacts"
2261
2261
  },
2262
2262
  {
2263
- "icon": "briefcase",
2263
+ "href": "/deals",
2264
2264
  "label": "Deals",
2265
- "href": "/deals"
2265
+ "icon": "briefcase"
2266
2266
  },
2267
2267
  {
2268
- "icon": "bar-chart-2",
2269
2268
  "label": "Pipeline",
2270
- "href": "/pipeline"
2269
+ "href": "/pipeline",
2270
+ "icon": "bar-chart-2"
2271
2271
  },
2272
2272
  {
2273
+ "label": "Notes",
2273
2274
  "href": "/notes",
2274
- "icon": "file-text",
2275
- "label": "Notes"
2275
+ "icon": "file-text"
2276
2276
  }
2277
2277
  ],
2278
- "appName": "CRM",
2279
2278
  "type": "dashboard-layout",
2279
+ "appName": "CRM",
2280
2280
  "children": [
2281
2281
  {
2282
+ "type": "stack",
2283
+ "direction": "vertical",
2284
+ "className": "max-w-5xl mx-auto w-full",
2285
+ "gap": "lg",
2282
2286
  "children": [
2283
2287
  {
2284
- "direction": "horizontal",
2288
+ "gap": "md",
2285
2289
  "type": "stack",
2286
2290
  "justify": "between",
2287
- "align": "center",
2288
2291
  "children": [
2289
2292
  {
2290
2293
  "direction": "horizontal",
2291
- "type": "stack",
2292
- "align": "center",
2293
- "gap": "sm",
2294
2294
  "children": [
2295
2295
  {
2296
- "name": "briefcase",
2297
- "type": "icon"
2296
+ "type": "icon",
2297
+ "name": "briefcase"
2298
2298
  },
2299
2299
  {
2300
+ "content": "Deals",
2300
2301
  "variant": "h2",
2301
- "type": "typography",
2302
- "content": "Deals"
2302
+ "type": "typography"
2303
2303
  }
2304
- ]
2304
+ ],
2305
+ "type": "stack",
2306
+ "gap": "sm",
2307
+ "align": "center"
2305
2308
  },
2306
2309
  {
2307
- "type": "stack",
2308
2310
  "gap": "sm",
2311
+ "direction": "horizontal",
2309
2312
  "children": [
2310
2313
  {
2311
- "label": "New Deal",
2312
- "action": "CREATE",
2313
2314
  "type": "button",
2314
2315
  "variant": "primary",
2316
+ "label": "New Deal",
2317
+ "action": "CREATE",
2315
2318
  "icon": "plus"
2316
2319
  }
2317
2320
  ],
2318
- "direction": "horizontal"
2321
+ "type": "stack"
2319
2322
  }
2320
2323
  ],
2321
- "gap": "md"
2324
+ "align": "center",
2325
+ "direction": "horizontal"
2322
2326
  },
2323
2327
  {
2324
2328
  "type": "divider"
2325
2329
  },
2326
2330
  {
2331
+ "cols": 2.0,
2332
+ "gap": "md",
2327
2333
  "type": "data-grid",
2328
2334
  "itemActions": [
2329
2335
  {
2330
- "variant": "ghost",
2331
2336
  "event": "VIEW",
2337
+ "variant": "ghost",
2332
2338
  "label": "View"
2333
2339
  },
2334
2340
  {
2335
- "event": "EDIT",
2336
2341
  "variant": "ghost",
2342
+ "event": "EDIT",
2337
2343
  "label": "Edit"
2338
2344
  },
2339
2345
  {
2340
- "label": "Delete",
2346
+ "variant": "danger",
2341
2347
  "event": "DELETE",
2342
- "variant": "danger"
2348
+ "label": "Delete"
2343
2349
  }
2344
2350
  ],
2351
+ "fields": [],
2345
2352
  "columns": [
2346
2353
  {
2347
2354
  "icon": "briefcase",
2348
- "variant": "h3",
2349
- "name": "title"
2355
+ "name": "title",
2356
+ "variant": "h3"
2350
2357
  },
2351
2358
  {
2352
2359
  "variant": "badge",
2353
2360
  "name": "stage"
2354
2361
  },
2355
2362
  {
2356
- "format": "currency",
2357
2363
  "name": "value",
2358
- "variant": "h4"
2364
+ "variant": "h4",
2365
+ "format": "currency"
2359
2366
  },
2360
2367
  {
2361
- "label": "Contact",
2368
+ "name": "contactId",
2362
2369
  "variant": "caption",
2363
- "name": "contactId"
2370
+ "label": "Contact"
2364
2371
  }
2365
2372
  ],
2366
- "gap": "md",
2367
- "cols": 2.0,
2368
- "entity": "@payload.data",
2369
- "fields": []
2373
+ "entity": "@payload.data"
2370
2374
  }
2371
- ],
2372
- "type": "stack",
2373
- "className": "max-w-5xl mx-auto w-full",
2374
- "direction": "vertical",
2375
- "gap": "lg"
2375
+ ]
2376
2376
  }
2377
2377
  ]
2378
2378
  }
@@ -2388,12 +2388,16 @@
2388
2388
  "render-ui",
2389
2389
  "main",
2390
2390
  {
2391
+ "gap": "md",
2392
+ "className": "py-12",
2393
+ "direction": "vertical",
2391
2394
  "align": "center",
2395
+ "type": "stack",
2392
2396
  "children": [
2393
2397
  {
2398
+ "type": "icon",
2394
2399
  "name": "alert-triangle",
2395
- "color": "destructive",
2396
- "type": "icon"
2400
+ "color": "destructive"
2397
2401
  },
2398
2402
  {
2399
2403
  "type": "typography",
@@ -2401,23 +2405,19 @@
2401
2405
  "content": "Failed to load deal"
2402
2406
  },
2403
2407
  {
2404
- "type": "typography",
2408
+ "content": "@payload.error",
2405
2409
  "color": "muted",
2406
2410
  "variant": "body",
2407
- "content": "@payload.error"
2411
+ "type": "typography"
2408
2412
  },
2409
2413
  {
2414
+ "type": "button",
2410
2415
  "action": "INIT",
2411
2416
  "icon": "rotate-ccw",
2412
- "label": "Retry",
2413
2417
  "variant": "primary",
2414
- "type": "button"
2418
+ "label": "Retry"
2415
2419
  }
2416
- ],
2417
- "gap": "md",
2418
- "type": "stack",
2419
- "className": "py-12",
2420
- "direction": "vertical"
2420
+ ]
2421
2421
  }
2422
2422
  ]
2423
2423
  ]
@@ -2438,7 +2438,7 @@
2438
2438
  "event": "DealLoadFailed",
2439
2439
  "description": "Fired when Deal fails to load",
2440
2440
  "scope": "internal",
2441
- "payload": [
2441
+ "payloadSchema": [
2442
2442
  {
2443
2443
  "name": "error",
2444
2444
  "type": "string"
@@ -2453,7 +2453,7 @@
2453
2453
  "event": "DealLoaded",
2454
2454
  "description": "Fired when Deal finishes loading",
2455
2455
  "scope": "internal",
2456
- "payload": [
2456
+ "payloadSchema": [
2457
2457
  {
2458
2458
  "name": "data",
2459
2459
  "type": "[Deal]"
@@ -2463,7 +2463,7 @@
2463
2463
  {
2464
2464
  "event": "DealSaveFailed",
2465
2465
  "scope": "internal",
2466
- "payload": [
2466
+ "payloadSchema": [
2467
2467
  {
2468
2468
  "name": "error",
2469
2469
  "type": "string"
@@ -2477,7 +2477,7 @@
2477
2477
  {
2478
2478
  "event": "DealSaved",
2479
2479
  "scope": "internal",
2480
- "payload": [
2480
+ "payloadSchema": [
2481
2481
  {
2482
2482
  "name": "id",
2483
2483
  "type": "string"
@@ -2511,7 +2511,7 @@
2511
2511
  {
2512
2512
  "key": "SAVE",
2513
2513
  "name": "Save",
2514
- "payload": [
2514
+ "payloadSchema": [
2515
2515
  {
2516
2516
  "name": "data",
2517
2517
  "type": "string"
@@ -2525,7 +2525,7 @@
2525
2525
  {
2526
2526
  "key": "DealLoadFailed",
2527
2527
  "name": "Deal load failed",
2528
- "payload": [
2528
+ "payloadSchema": [
2529
2529
  {
2530
2530
  "name": "error",
2531
2531
  "type": "string"
@@ -2539,7 +2539,7 @@
2539
2539
  {
2540
2540
  "key": "DealLoaded",
2541
2541
  "name": "Deal loaded",
2542
- "payload": [
2542
+ "payloadSchema": [
2543
2543
  {
2544
2544
  "name": "data",
2545
2545
  "type": "[Deal]"
@@ -2549,7 +2549,7 @@
2549
2549
  {
2550
2550
  "key": "DealSaveFailed",
2551
2551
  "name": "Deal save failed",
2552
- "payload": [
2552
+ "payloadSchema": [
2553
2553
  {
2554
2554
  "name": "error",
2555
2555
  "type": "string"
@@ -2563,7 +2563,7 @@
2563
2563
  {
2564
2564
  "key": "DealSaved",
2565
2565
  "name": "Deal saved",
2566
- "payload": [
2566
+ "payloadSchema": [
2567
2567
  {
2568
2568
  "name": "id",
2569
2569
  "type": "string"
@@ -2593,8 +2593,8 @@
2593
2593
  "Deal",
2594
2594
  {
2595
2595
  "emit": {
2596
- "success": "DealLoaded",
2597
- "failure": "DealLoadFailed"
2596
+ "failure": "DealLoadFailed",
2597
+ "success": "DealLoaded"
2598
2598
  }
2599
2599
  }
2600
2600
  ],
@@ -2602,9 +2602,9 @@
2602
2602
  "render-ui",
2603
2603
  "modal",
2604
2604
  {
2605
- "gap": "md",
2606
- "type": "stack",
2607
2605
  "direction": "vertical",
2606
+ "type": "stack",
2607
+ "gap": "md",
2608
2608
  "children": [
2609
2609
  {
2610
2610
  "children": [
@@ -2614,29 +2614,29 @@
2614
2614
  },
2615
2615
  {
2616
2616
  "variant": "h3",
2617
- "type": "typography",
2618
- "content": "Create Deal"
2617
+ "content": "Create Deal",
2618
+ "type": "typography"
2619
2619
  }
2620
2620
  ],
2621
+ "type": "stack",
2621
2622
  "direction": "horizontal",
2622
- "gap": "sm",
2623
- "type": "stack"
2623
+ "gap": "sm"
2624
2624
  },
2625
2625
  {
2626
2626
  "type": "divider"
2627
2627
  },
2628
2628
  {
2629
2629
  "type": "form-section",
2630
+ "submitEvent": "SAVE",
2631
+ "cancelEvent": "CLOSE",
2632
+ "mode": "create",
2630
2633
  "fields": [
2631
2634
  "title",
2632
2635
  "contactId",
2633
2636
  "value",
2634
2637
  "stage",
2635
2638
  "closedAt"
2636
- ],
2637
- "mode": "create",
2638
- "cancelEvent": "CLOSE",
2639
- "submitEvent": "SAVE"
2639
+ ]
2640
2640
  }
2641
2641
  ]
2642
2642
  }
@@ -2718,7 +2718,7 @@
2718
2718
  "event": "DealLoadFailed",
2719
2719
  "description": "Fired when Deal fails to load",
2720
2720
  "scope": "internal",
2721
- "payload": [
2721
+ "payloadSchema": [
2722
2722
  {
2723
2723
  "name": "error",
2724
2724
  "type": "string"
@@ -2733,7 +2733,7 @@
2733
2733
  "event": "DealLoaded",
2734
2734
  "description": "Fired when Deal finishes loading",
2735
2735
  "scope": "internal",
2736
- "payload": [
2736
+ "payloadSchema": [
2737
2737
  {
2738
2738
  "name": "data",
2739
2739
  "type": "[Deal]"
@@ -2743,7 +2743,7 @@
2743
2743
  {
2744
2744
  "event": "DealUpdateFailed",
2745
2745
  "scope": "internal",
2746
- "payload": [
2746
+ "payloadSchema": [
2747
2747
  {
2748
2748
  "name": "error",
2749
2749
  "type": "string"
@@ -2757,7 +2757,7 @@
2757
2757
  {
2758
2758
  "event": "DealUpdated",
2759
2759
  "scope": "internal",
2760
- "payload": [
2760
+ "payloadSchema": [
2761
2761
  {
2762
2762
  "name": "id",
2763
2763
  "type": "string"
@@ -2783,7 +2783,7 @@
2783
2783
  {
2784
2784
  "key": "EDIT",
2785
2785
  "name": "Edit",
2786
- "payload": [
2786
+ "payloadSchema": [
2787
2787
  {
2788
2788
  "name": "id",
2789
2789
  "type": "string"
@@ -2801,7 +2801,7 @@
2801
2801
  {
2802
2802
  "key": "SAVE",
2803
2803
  "name": "Save",
2804
- "payload": [
2804
+ "payloadSchema": [
2805
2805
  {
2806
2806
  "name": "data",
2807
2807
  "type": "string"
@@ -2815,7 +2815,7 @@
2815
2815
  {
2816
2816
  "key": "DealLoadFailed",
2817
2817
  "name": "Deal load failed",
2818
- "payload": [
2818
+ "payloadSchema": [
2819
2819
  {
2820
2820
  "name": "error",
2821
2821
  "type": "string"
@@ -2829,7 +2829,7 @@
2829
2829
  {
2830
2830
  "key": "DealLoaded",
2831
2831
  "name": "Deal loaded",
2832
- "payload": [
2832
+ "payloadSchema": [
2833
2833
  {
2834
2834
  "name": "data",
2835
2835
  "type": "[Deal]"
@@ -2839,7 +2839,7 @@
2839
2839
  {
2840
2840
  "key": "DealUpdateFailed",
2841
2841
  "name": "Deal update failed",
2842
- "payload": [
2842
+ "payloadSchema": [
2843
2843
  {
2844
2844
  "name": "error",
2845
2845
  "type": "string"
@@ -2853,7 +2853,7 @@
2853
2853
  {
2854
2854
  "key": "DealUpdated",
2855
2855
  "name": "Deal updated",
2856
- "payload": [
2856
+ "payloadSchema": [
2857
2857
  {
2858
2858
  "name": "id",
2859
2859
  "type": "string"
@@ -2884,8 +2884,8 @@
2884
2884
  {
2885
2885
  "id": "@payload.id",
2886
2886
  "emit": {
2887
- "success": "DealLoaded",
2888
- "failure": "DealLoadFailed"
2887
+ "failure": "DealLoadFailed",
2888
+ "success": "DealLoaded"
2889
2889
  }
2890
2890
  }
2891
2891
  ],
@@ -2893,30 +2893,28 @@
2893
2893
  "render-ui",
2894
2894
  "modal",
2895
2895
  {
2896
+ "type": "stack",
2896
2897
  "children": [
2897
2898
  {
2898
- "gap": "sm",
2899
+ "direction": "horizontal",
2899
2900
  "children": [
2900
2901
  {
2901
2902
  "name": "edit",
2902
2903
  "type": "icon"
2903
2904
  },
2904
2905
  {
2905
- "variant": "h3",
2906
+ "type": "typography",
2906
2907
  "content": "Edit Deal",
2907
- "type": "typography"
2908
+ "variant": "h3"
2908
2909
  }
2909
2910
  ],
2910
- "type": "stack",
2911
- "direction": "horizontal"
2911
+ "gap": "sm",
2912
+ "type": "stack"
2912
2913
  },
2913
2914
  {
2914
2915
  "type": "divider"
2915
2916
  },
2916
2917
  {
2917
- "cancelEvent": "CLOSE",
2918
- "type": "form-section",
2919
- "submitEvent": "SAVE",
2920
2918
  "fields": [
2921
2919
  "title",
2922
2920
  "contactId",
@@ -2925,12 +2923,14 @@
2925
2923
  "closedAt"
2926
2924
  ],
2927
2925
  "entity": "@payload.row",
2928
- "mode": "edit"
2926
+ "submitEvent": "SAVE",
2927
+ "mode": "edit",
2928
+ "type": "form-section",
2929
+ "cancelEvent": "CLOSE"
2929
2930
  }
2930
2931
  ],
2931
- "direction": "vertical",
2932
2932
  "gap": "md",
2933
- "type": "stack"
2933
+ "direction": "vertical"
2934
2934
  }
2935
2935
  ]
2936
2936
  ]
@@ -3007,7 +3007,7 @@
3007
3007
  "event": "DealLoaded",
3008
3008
  "description": "Fired when Deal finishes loading",
3009
3009
  "scope": "internal",
3010
- "payload": [
3010
+ "payloadSchema": [
3011
3011
  {
3012
3012
  "name": "data",
3013
3013
  "type": "[Deal]"
@@ -3018,7 +3018,7 @@
3018
3018
  "event": "DealLoadFailed",
3019
3019
  "description": "Fired when Deal fails to load",
3020
3020
  "scope": "internal",
3021
- "payload": [
3021
+ "payloadSchema": [
3022
3022
  {
3023
3023
  "name": "error",
3024
3024
  "type": "string"
@@ -3048,7 +3048,7 @@
3048
3048
  {
3049
3049
  "key": "VIEW",
3050
3050
  "name": "View",
3051
- "payload": [
3051
+ "payloadSchema": [
3052
3052
  {
3053
3053
  "name": "id",
3054
3054
  "type": "string"
@@ -3066,7 +3066,7 @@
3066
3066
  {
3067
3067
  "key": "DealLoaded",
3068
3068
  "name": "Deal loaded",
3069
- "payload": [
3069
+ "payloadSchema": [
3070
3070
  {
3071
3071
  "name": "data",
3072
3072
  "type": "[Deal]"
@@ -3076,7 +3076,7 @@
3076
3076
  {
3077
3077
  "key": "DealLoadFailed",
3078
3078
  "name": "Deal load failed",
3079
- "payload": [
3079
+ "payloadSchema": [
3080
3080
  {
3081
3081
  "name": "error",
3082
3082
  "type": "string"
@@ -3109,47 +3109,49 @@
3109
3109
  "fetch",
3110
3110
  "Deal",
3111
3111
  {
3112
+ "id": "@payload.id",
3112
3113
  "emit": {
3113
- "failure": "DealLoadFailed",
3114
- "success": "DealLoaded"
3115
- },
3116
- "id": "@payload.id"
3114
+ "success": "DealLoaded",
3115
+ "failure": "DealLoadFailed"
3116
+ }
3117
3117
  }
3118
3118
  ],
3119
3119
  [
3120
3120
  "render-ui",
3121
3121
  "modal",
3122
3122
  {
3123
+ "direction": "vertical",
3124
+ "type": "stack",
3123
3125
  "children": [
3124
3126
  {
3127
+ "gap": "sm",
3128
+ "align": "center",
3125
3129
  "children": [
3126
3130
  {
3127
- "name": "eye",
3128
- "type": "icon"
3131
+ "type": "icon",
3132
+ "name": "eye"
3129
3133
  },
3130
3134
  {
3131
- "content": "@entity.title",
3135
+ "variant": "h3",
3132
3136
  "type": "typography",
3133
- "variant": "h3"
3137
+ "content": "@entity.title"
3134
3138
  }
3135
3139
  ],
3136
- "gap": "sm",
3137
- "align": "center",
3138
- "direction": "horizontal",
3139
- "type": "stack"
3140
+ "type": "stack",
3141
+ "direction": "horizontal"
3140
3142
  },
3141
3143
  {
3142
3144
  "type": "divider"
3143
3145
  },
3144
3146
  {
3147
+ "direction": "horizontal",
3145
3148
  "gap": "md",
3146
3149
  "type": "stack",
3147
- "direction": "horizontal",
3148
3150
  "children": [
3149
3151
  {
3150
3152
  "variant": "caption",
3151
- "content": "Title",
3152
- "type": "typography"
3153
+ "type": "typography",
3154
+ "content": "Title"
3153
3155
  },
3154
3156
  {
3155
3157
  "variant": "body",
@@ -3159,30 +3161,30 @@
3159
3161
  ]
3160
3162
  },
3161
3163
  {
3162
- "direction": "horizontal",
3163
- "type": "stack",
3164
- "gap": "md",
3165
3164
  "children": [
3166
3165
  {
3166
+ "content": "Contact ID",
3167
3167
  "type": "typography",
3168
- "variant": "caption",
3169
- "content": "Contact ID"
3168
+ "variant": "caption"
3170
3169
  },
3171
3170
  {
3172
- "variant": "body",
3173
3171
  "type": "typography",
3172
+ "variant": "body",
3174
3173
  "content": "@entity.contactId"
3175
3174
  }
3176
- ]
3175
+ ],
3176
+ "type": "stack",
3177
+ "direction": "horizontal",
3178
+ "gap": "md"
3177
3179
  },
3178
3180
  {
3181
+ "type": "stack",
3179
3182
  "direction": "horizontal",
3180
- "gap": "md",
3181
3183
  "children": [
3182
3184
  {
3183
- "content": "Value",
3184
3185
  "variant": "caption",
3185
- "type": "typography"
3186
+ "type": "typography",
3187
+ "content": "Value"
3186
3188
  },
3187
3189
  {
3188
3190
  "content": "@entity.value",
@@ -3190,50 +3192,50 @@
3190
3192
  "type": "typography"
3191
3193
  }
3192
3194
  ],
3193
- "type": "stack"
3195
+ "gap": "md"
3194
3196
  },
3195
3197
  {
3198
+ "gap": "md",
3196
3199
  "children": [
3197
3200
  {
3201
+ "content": "Stage",
3198
3202
  "type": "typography",
3199
- "variant": "caption",
3200
- "content": "Stage"
3203
+ "variant": "caption"
3201
3204
  },
3202
3205
  {
3203
3206
  "type": "typography",
3204
- "content": "@entity.stage",
3205
- "variant": "body"
3207
+ "variant": "body",
3208
+ "content": "@entity.stage"
3206
3209
  }
3207
3210
  ],
3208
- "gap": "md",
3209
3211
  "direction": "horizontal",
3210
3212
  "type": "stack"
3211
3213
  },
3212
3214
  {
3215
+ "type": "stack",
3213
3216
  "direction": "horizontal",
3214
3217
  "gap": "md",
3215
3218
  "children": [
3216
3219
  {
3217
- "variant": "caption",
3218
3220
  "type": "typography",
3219
- "content": "Closed At"
3221
+ "content": "Closed At",
3222
+ "variant": "caption"
3220
3223
  },
3221
3224
  {
3225
+ "variant": "body",
3222
3226
  "content": "@entity.closedAt",
3223
- "type": "typography",
3224
- "variant": "body"
3227
+ "type": "typography"
3225
3228
  }
3226
- ],
3227
- "type": "stack"
3229
+ ]
3228
3230
  },
3229
3231
  {
3230
3232
  "type": "divider"
3231
3233
  },
3232
3234
  {
3235
+ "justify": "end",
3233
3236
  "gap": "sm",
3234
3237
  "type": "stack",
3235
3238
  "direction": "horizontal",
3236
- "justify": "end",
3237
3239
  "children": [
3238
3240
  {
3239
3241
  "action": "EDIT",
@@ -3244,16 +3246,14 @@
3244
3246
  },
3245
3247
  {
3246
3248
  "type": "button",
3249
+ "action": "CLOSE",
3247
3250
  "label": "Close",
3248
- "variant": "ghost",
3249
- "action": "CLOSE"
3251
+ "variant": "ghost"
3250
3252
  }
3251
3253
  ]
3252
3254
  }
3253
3255
  ],
3254
- "direction": "vertical",
3255
- "gap": "md",
3256
- "type": "stack"
3256
+ "gap": "md"
3257
3257
  }
3258
3258
  ]
3259
3259
  ]
@@ -3316,7 +3316,7 @@
3316
3316
  {
3317
3317
  "event": "DealDeleteFailed",
3318
3318
  "scope": "internal",
3319
- "payload": [
3319
+ "payloadSchema": [
3320
3320
  {
3321
3321
  "name": "error",
3322
3322
  "type": "string"
@@ -3330,7 +3330,7 @@
3330
3330
  {
3331
3331
  "event": "DealDeleted",
3332
3332
  "scope": "internal",
3333
- "payload": [
3333
+ "payloadSchema": [
3334
3334
  {
3335
3335
  "name": "id",
3336
3336
  "type": "string"
@@ -3341,7 +3341,7 @@
3341
3341
  "event": "DealLoadFailed",
3342
3342
  "description": "Fired when Deal fails to load",
3343
3343
  "scope": "internal",
3344
- "payload": [
3344
+ "payloadSchema": [
3345
3345
  {
3346
3346
  "name": "error",
3347
3347
  "type": "string"
@@ -3356,7 +3356,7 @@
3356
3356
  "event": "DealLoaded",
3357
3357
  "description": "Fired when Deal finishes loading",
3358
3358
  "scope": "internal",
3359
- "payload": [
3359
+ "payloadSchema": [
3360
3360
  {
3361
3361
  "name": "data",
3362
3362
  "type": "[Deal]"
@@ -3382,7 +3382,7 @@
3382
3382
  {
3383
3383
  "key": "DELETE",
3384
3384
  "name": "Delete",
3385
- "payload": [
3385
+ "payloadSchema": [
3386
3386
  {
3387
3387
  "name": "id",
3388
3388
  "type": "string"
@@ -3408,7 +3408,7 @@
3408
3408
  {
3409
3409
  "key": "DealDeleteFailed",
3410
3410
  "name": "Deal delete failed",
3411
- "payload": [
3411
+ "payloadSchema": [
3412
3412
  {
3413
3413
  "name": "error",
3414
3414
  "type": "string"
@@ -3422,7 +3422,7 @@
3422
3422
  {
3423
3423
  "key": "DealDeleted",
3424
3424
  "name": "Deal deleted",
3425
- "payload": [
3425
+ "payloadSchema": [
3426
3426
  {
3427
3427
  "name": "id",
3428
3428
  "type": "string"
@@ -3432,7 +3432,7 @@
3432
3432
  {
3433
3433
  "key": "DealLoadFailed",
3434
3434
  "name": "Deal load failed",
3435
- "payload": [
3435
+ "payloadSchema": [
3436
3436
  {
3437
3437
  "name": "error",
3438
3438
  "type": "string"
@@ -3446,7 +3446,7 @@
3446
3446
  {
3447
3447
  "key": "DealLoaded",
3448
3448
  "name": "Deal loaded",
3449
- "payload": [
3449
+ "payloadSchema": [
3450
3450
  {
3451
3451
  "name": "data",
3452
3452
  "type": "[Deal]"
@@ -3493,19 +3493,19 @@
3493
3493
  {
3494
3494
  "children": [
3495
3495
  {
3496
+ "gap": "sm",
3496
3497
  "direction": "horizontal",
3497
- "align": "center",
3498
3498
  "type": "stack",
3499
- "gap": "sm",
3499
+ "align": "center",
3500
3500
  "children": [
3501
3501
  {
3502
3502
  "name": "alert-triangle",
3503
3503
  "type": "icon"
3504
3504
  },
3505
3505
  {
3506
- "type": "typography",
3506
+ "variant": "h3",
3507
3507
  "content": "Delete Deal",
3508
- "variant": "h3"
3508
+ "type": "typography"
3509
3509
  }
3510
3510
  ]
3511
3511
  },
@@ -3513,35 +3513,35 @@
3513
3513
  "type": "divider"
3514
3514
  },
3515
3515
  {
3516
- "type": "alert",
3516
+ "variant": "error",
3517
3517
  "message": "This action cannot be undone.",
3518
- "variant": "error"
3518
+ "type": "alert"
3519
3519
  },
3520
3520
  {
3521
3521
  "justify": "end",
3522
+ "type": "stack",
3523
+ "direction": "horizontal",
3522
3524
  "children": [
3523
3525
  {
3524
3526
  "variant": "ghost",
3525
3527
  "label": "Cancel",
3526
- "action": "CANCEL",
3527
- "type": "button"
3528
+ "type": "button",
3529
+ "action": "CANCEL"
3528
3530
  },
3529
3531
  {
3530
- "icon": "check",
3531
3532
  "variant": "danger",
3533
+ "action": "CONFIRM_DELETE",
3532
3534
  "label": "Delete",
3533
- "type": "button",
3534
- "action": "CONFIRM_DELETE"
3535
+ "icon": "check",
3536
+ "type": "button"
3535
3537
  }
3536
3538
  ],
3537
- "type": "stack",
3538
- "direction": "horizontal",
3539
3539
  "gap": "sm"
3540
3540
  }
3541
3541
  ],
3542
- "gap": "md",
3542
+ "type": "stack",
3543
3543
  "direction": "vertical",
3544
- "type": "stack"
3544
+ "gap": "md"
3545
3545
  }
3546
3546
  ]
3547
3547
  ]
@@ -3703,7 +3703,7 @@
3703
3703
  "event": "PipelineLoaded",
3704
3704
  "description": "Fired when Pipeline finishes loading",
3705
3705
  "scope": "internal",
3706
- "payload": [
3706
+ "payloadSchema": [
3707
3707
  {
3708
3708
  "name": "data",
3709
3709
  "type": "[Pipeline]"
@@ -3714,7 +3714,7 @@
3714
3714
  "event": "PipelineLoadFailed",
3715
3715
  "description": "Fired when Pipeline fails to load",
3716
3716
  "scope": "internal",
3717
- "payload": [
3717
+ "payloadSchema": [
3718
3718
  {
3719
3719
  "name": "error",
3720
3720
  "type": "string"
@@ -3768,7 +3768,7 @@
3768
3768
  {
3769
3769
  "key": "PipelineLoaded",
3770
3770
  "name": "Pipeline loaded",
3771
- "payload": [
3771
+ "payloadSchema": [
3772
3772
  {
3773
3773
  "name": "data",
3774
3774
  "type": "[Pipeline]"
@@ -3778,7 +3778,7 @@
3778
3778
  {
3779
3779
  "key": "PipelineLoadFailed",
3780
3780
  "name": "Pipeline load failed",
3781
- "payload": [
3781
+ "payloadSchema": [
3782
3782
  {
3783
3783
  "name": "error",
3784
3784
  "type": "string"
@@ -3801,8 +3801,8 @@
3801
3801
  "Pipeline",
3802
3802
  {
3803
3803
  "emit": {
3804
- "success": "PipelineLoaded",
3805
- "failure": "PipelineLoadFailed"
3804
+ "failure": "PipelineLoadFailed",
3805
+ "success": "PipelineLoaded"
3806
3806
  }
3807
3807
  }
3808
3808
  ],
@@ -3810,70 +3810,91 @@
3810
3810
  "render-ui",
3811
3811
  "main",
3812
3812
  {
3813
- "type": "dashboard-layout",
3814
3813
  "appName": "CRM",
3814
+ "type": "dashboard-layout",
3815
+ "navItems": [
3816
+ {
3817
+ "label": "Contacts",
3818
+ "href": "/contacts",
3819
+ "icon": "users"
3820
+ },
3821
+ {
3822
+ "href": "/deals",
3823
+ "icon": "briefcase",
3824
+ "label": "Deals"
3825
+ },
3826
+ {
3827
+ "href": "/pipeline",
3828
+ "label": "Pipeline",
3829
+ "icon": "bar-chart-2"
3830
+ },
3831
+ {
3832
+ "label": "Notes",
3833
+ "href": "/notes",
3834
+ "icon": "file-text"
3835
+ }
3836
+ ],
3815
3837
  "children": [
3816
3838
  {
3817
3839
  "children": [
3818
3840
  {
3819
- "gap": "lg",
3820
- "direction": "vertical",
3821
3841
  "children": [
3822
3842
  {
3843
+ "type": "breadcrumb",
3823
3844
  "items": [
3824
3845
  {
3825
- "href": "/",
3826
- "label": "Home"
3846
+ "label": "Home",
3847
+ "href": "/"
3827
3848
  },
3828
3849
  {
3829
3850
  "label": "Pipeline"
3830
3851
  }
3831
- ],
3832
- "type": "breadcrumb"
3852
+ ]
3833
3853
  },
3834
3854
  {
3835
- "justify": "between",
3836
3855
  "children": [
3837
3856
  {
3838
- "direction": "horizontal",
3839
3857
  "type": "stack",
3840
- "gap": "md",
3858
+ "direction": "horizontal",
3841
3859
  "children": [
3842
3860
  {
3843
3861
  "type": "icon",
3844
3862
  "name": "bar-chart-2"
3845
3863
  },
3846
3864
  {
3847
- "variant": "h2",
3865
+ "type": "typography",
3848
3866
  "content": "Pipeline",
3849
- "type": "typography"
3867
+ "variant": "h2"
3850
3868
  }
3851
- ]
3869
+ ],
3870
+ "gap": "md"
3852
3871
  },
3853
3872
  {
3873
+ "variant": "secondary",
3874
+ "type": "button",
3854
3875
  "label": "Refresh",
3855
3876
  "action": "REFRESH",
3856
- "type": "button",
3857
- "variant": "secondary",
3858
3877
  "icon": "refresh-cw"
3859
3878
  }
3860
3879
  ],
3861
- "direction": "horizontal",
3880
+ "gap": "md",
3862
3881
  "type": "stack",
3863
- "gap": "md"
3882
+ "direction": "horizontal",
3883
+ "justify": "between"
3864
3884
  },
3865
3885
  {
3866
3886
  "type": "divider"
3867
3887
  },
3868
3888
  {
3869
3889
  "padding": "md",
3890
+ "type": "box",
3870
3891
  "children": [
3871
3892
  {
3872
- "type": "simple-grid",
3893
+ "cols": 3.0,
3873
3894
  "children": [
3874
3895
  {
3875
- "label": "TotalDeals",
3876
3896
  "type": "stat-display",
3897
+ "label": "TotalDeals",
3877
3898
  "value": "@entity.totalDeals"
3878
3899
  },
3879
3900
  {
@@ -3887,20 +3908,19 @@
3887
3908
  "value": "@entity.wonDeals"
3888
3909
  },
3889
3910
  {
3890
- "value": "@entity.lostDeals",
3911
+ "type": "stat-display",
3891
3912
  "label": "LostDeals",
3892
- "type": "stat-display"
3913
+ "value": "@entity.lostDeals"
3893
3914
  },
3894
3915
  {
3895
3916
  "label": "ConversionRate",
3896
- "value": "@entity.conversionRate",
3897
- "type": "stat-display"
3917
+ "type": "stat-display",
3918
+ "value": "@entity.conversionRate"
3898
3919
  }
3899
3920
  ],
3900
- "cols": 3.0
3921
+ "type": "simple-grid"
3901
3922
  }
3902
- ],
3903
- "type": "box"
3923
+ ]
3904
3924
  },
3905
3925
  {
3906
3926
  "type": "divider"
@@ -3908,24 +3928,24 @@
3908
3928
  {
3909
3929
  "children": [
3910
3930
  {
3931
+ "type": "card",
3911
3932
  "children": [
3912
3933
  {
3913
3934
  "type": "typography",
3914
3935
  "variant": "caption",
3915
3936
  "content": "Chart View"
3916
3937
  }
3917
- ],
3918
- "type": "card"
3938
+ ]
3919
3939
  },
3920
3940
  {
3941
+ "type": "card",
3921
3942
  "children": [
3922
3943
  {
3944
+ "content": "Graph View",
3923
3945
  "type": "typography",
3924
- "variant": "caption",
3925
- "content": "Graph View"
3946
+ "variant": "caption"
3926
3947
  }
3927
- ],
3928
- "type": "card"
3948
+ ]
3929
3949
  }
3930
3950
  ],
3931
3951
  "type": "grid",
@@ -3933,7 +3953,6 @@
3933
3953
  "gap": "md"
3934
3954
  },
3935
3955
  {
3936
- "type": "line-chart",
3937
3956
  "data": [
3938
3957
  {
3939
3958
  "value": 12.0,
@@ -3948,24 +3967,25 @@
3948
3967
  "date": "Mar"
3949
3968
  },
3950
3969
  {
3951
- "date": "Apr",
3952
- "value": 25.0
3970
+ "value": 25.0,
3971
+ "date": "Apr"
3953
3972
  },
3954
3973
  {
3955
- "date": "May",
3956
- "value": 22.0
3974
+ "value": 22.0,
3975
+ "date": "May"
3957
3976
  },
3958
3977
  {
3959
- "value": 30.0,
3960
- "date": "Jun"
3978
+ "date": "Jun",
3979
+ "value": 30.0
3961
3980
  }
3962
- ]
3981
+ ],
3982
+ "type": "line-chart"
3963
3983
  },
3964
3984
  {
3965
3985
  "items": [
3966
3986
  {
3967
- "color": "primary",
3968
- "label": "Current"
3987
+ "label": "Current",
3988
+ "color": "primary"
3969
3989
  },
3970
3990
  {
3971
3991
  "label": "Previous",
@@ -3975,16 +3995,16 @@
3975
3995
  "type": "chart-legend"
3976
3996
  },
3977
3997
  {
3998
+ "width": 400.0,
3978
3999
  "type": "graph-view",
3979
- "height": 200.0,
3980
4000
  "edges": [
3981
4001
  {
3982
- "target": "b",
3983
- "source": "a"
4002
+ "source": "a",
4003
+ "target": "b"
3984
4004
  },
3985
4005
  {
3986
- "target": "c",
3987
- "source": "b"
4006
+ "source": "b",
4007
+ "target": "c"
3988
4008
  }
3989
4009
  ],
3990
4010
  "nodes": [
@@ -3993,44 +4013,24 @@
3993
4013
  "label": "Start"
3994
4014
  },
3995
4015
  {
3996
- "label": "Process",
3997
- "id": "b"
4016
+ "id": "b",
4017
+ "label": "Process"
3998
4018
  },
3999
4019
  {
4000
4020
  "id": "c",
4001
4021
  "label": "End"
4002
4022
  }
4003
4023
  ],
4004
- "width": 400.0
4024
+ "height": 200.0
4005
4025
  }
4006
4026
  ],
4027
+ "gap": "lg",
4028
+ "direction": "vertical",
4007
4029
  "type": "stack"
4008
4030
  }
4009
4031
  ],
4010
4032
  "type": "scaled-diagram"
4011
4033
  }
4012
- ],
4013
- "navItems": [
4014
- {
4015
- "icon": "users",
4016
- "label": "Contacts",
4017
- "href": "/contacts"
4018
- },
4019
- {
4020
- "href": "/deals",
4021
- "icon": "briefcase",
4022
- "label": "Deals"
4023
- },
4024
- {
4025
- "href": "/pipeline",
4026
- "icon": "bar-chart-2",
4027
- "label": "Pipeline"
4028
- },
4029
- {
4030
- "href": "/notes",
4031
- "icon": "file-text",
4032
- "label": "Notes"
4033
- }
4034
4034
  ]
4035
4035
  }
4036
4036
  ]
@@ -4062,6 +4062,7 @@
4062
4062
  {
4063
4063
  "type": "stack",
4064
4064
  "direction": "vertical",
4065
+ "gap": "lg",
4065
4066
  "children": [
4066
4067
  {
4067
4068
  "type": "breadcrumb",
@@ -4076,33 +4077,33 @@
4076
4077
  ]
4077
4078
  },
4078
4079
  {
4079
- "gap": "md",
4080
4080
  "type": "stack",
4081
4081
  "justify": "between",
4082
4082
  "direction": "horizontal",
4083
+ "gap": "md",
4083
4084
  "children": [
4084
4085
  {
4086
+ "gap": "md",
4085
4087
  "children": [
4086
4088
  {
4087
- "name": "bar-chart-2",
4088
- "type": "icon"
4089
+ "type": "icon",
4090
+ "name": "bar-chart-2"
4089
4091
  },
4090
4092
  {
4091
- "content": "Pipeline",
4092
4093
  "type": "typography",
4093
- "variant": "h2"
4094
+ "variant": "h2",
4095
+ "content": "Pipeline"
4094
4096
  }
4095
4097
  ],
4096
- "direction": "horizontal",
4097
- "gap": "md",
4098
- "type": "stack"
4098
+ "type": "stack",
4099
+ "direction": "horizontal"
4099
4100
  },
4100
4101
  {
4101
4102
  "label": "Refresh",
4102
- "icon": "refresh-cw",
4103
+ "action": "REFRESH",
4103
4104
  "type": "button",
4104
4105
  "variant": "secondary",
4105
- "action": "REFRESH"
4106
+ "icon": "refresh-cw"
4106
4107
  }
4107
4108
  ]
4108
4109
  },
@@ -4110,6 +4111,8 @@
4110
4111
  "type": "divider"
4111
4112
  },
4112
4113
  {
4114
+ "type": "box",
4115
+ "padding": "md",
4113
4116
  "children": [
4114
4117
  {
4115
4118
  "cols": 3.0,
@@ -4125,31 +4128,30 @@
4125
4128
  "type": "stat-display"
4126
4129
  },
4127
4130
  {
4128
- "value": "@entity.wonDeals",
4129
4131
  "type": "stat-display",
4130
- "label": "WonDeals"
4132
+ "label": "WonDeals",
4133
+ "value": "@entity.wonDeals"
4131
4134
  },
4132
4135
  {
4133
4136
  "value": "@entity.lostDeals",
4134
- "label": "LostDeals",
4135
- "type": "stat-display"
4137
+ "type": "stat-display",
4138
+ "label": "LostDeals"
4136
4139
  },
4137
4140
  {
4138
- "label": "ConversionRate",
4141
+ "value": "@entity.conversionRate",
4139
4142
  "type": "stat-display",
4140
- "value": "@entity.conversionRate"
4143
+ "label": "ConversionRate"
4141
4144
  }
4142
4145
  ],
4143
4146
  "type": "simple-grid"
4144
4147
  }
4145
- ],
4146
- "type": "box",
4147
- "padding": "md"
4148
+ ]
4148
4149
  },
4149
4150
  {
4150
4151
  "type": "divider"
4151
4152
  },
4152
4153
  {
4154
+ "cols": 2.0,
4153
4155
  "children": [
4154
4156
  {
4155
4157
  "children": [
@@ -4162,17 +4164,16 @@
4162
4164
  "type": "card"
4163
4165
  },
4164
4166
  {
4167
+ "type": "card",
4165
4168
  "children": [
4166
4169
  {
4167
- "type": "typography",
4168
4170
  "variant": "caption",
4169
- "content": "Graph View"
4171
+ "content": "Graph View",
4172
+ "type": "typography"
4170
4173
  }
4171
- ],
4172
- "type": "card"
4174
+ ]
4173
4175
  }
4174
4176
  ],
4175
- "cols": 2.0,
4176
4177
  "gap": "md",
4177
4178
  "type": "grid"
4178
4179
  },
@@ -4183,12 +4184,12 @@
4183
4184
  "date": "Jan"
4184
4185
  },
4185
4186
  {
4186
- "value": 19.0,
4187
- "date": "Feb"
4187
+ "date": "Feb",
4188
+ "value": 19.0
4188
4189
  },
4189
4190
  {
4190
- "value": 15.0,
4191
- "date": "Mar"
4191
+ "date": "Mar",
4192
+ "value": 15.0
4192
4193
  },
4193
4194
  {
4194
4195
  "date": "Apr",
@@ -4199,8 +4200,8 @@
4199
4200
  "value": 22.0
4200
4201
  },
4201
4202
  {
4202
- "value": 30.0,
4203
- "date": "Jun"
4203
+ "date": "Jun",
4204
+ "value": 30.0
4204
4205
  }
4205
4206
  ],
4206
4207
  "type": "line-chart"
@@ -4208,8 +4209,8 @@
4208
4209
  {
4209
4210
  "items": [
4210
4211
  {
4211
- "label": "Current",
4212
- "color": "primary"
4212
+ "color": "primary",
4213
+ "label": "Current"
4213
4214
  },
4214
4215
  {
4215
4216
  "label": "Previous",
@@ -4219,61 +4220,60 @@
4219
4220
  "type": "chart-legend"
4220
4221
  },
4221
4222
  {
4222
- "type": "graph-view",
4223
- "width": 400.0,
4224
- "edges": [
4223
+ "nodes": [
4225
4224
  {
4226
- "source": "a",
4227
- "target": "b"
4225
+ "id": "a",
4226
+ "label": "Start"
4228
4227
  },
4229
4228
  {
4230
- "source": "b",
4231
- "target": "c"
4229
+ "id": "b",
4230
+ "label": "Process"
4231
+ },
4232
+ {
4233
+ "label": "End",
4234
+ "id": "c"
4232
4235
  }
4233
4236
  ],
4234
4237
  "height": 200.0,
4235
- "nodes": [
4236
- {
4237
- "id": "a",
4238
- "label": "Start"
4239
- },
4238
+ "edges": [
4240
4239
  {
4241
- "id": "b",
4242
- "label": "Process"
4240
+ "source": "a",
4241
+ "target": "b"
4243
4242
  },
4244
4243
  {
4245
- "id": "c",
4246
- "label": "End"
4244
+ "source": "b",
4245
+ "target": "c"
4247
4246
  }
4248
- ]
4247
+ ],
4248
+ "type": "graph-view",
4249
+ "width": 400.0
4249
4250
  }
4250
- ],
4251
- "gap": "lg"
4251
+ ]
4252
4252
  }
4253
4253
  ]
4254
4254
  }
4255
4255
  ],
4256
- "appName": "CRM",
4257
4256
  "type": "dashboard-layout",
4257
+ "appName": "CRM",
4258
4258
  "navItems": [
4259
4259
  {
4260
4260
  "href": "/contacts",
4261
- "label": "Contacts",
4262
- "icon": "users"
4261
+ "icon": "users",
4262
+ "label": "Contacts"
4263
4263
  },
4264
4264
  {
4265
- "href": "/deals",
4266
4265
  "icon": "briefcase",
4267
- "label": "Deals"
4266
+ "label": "Deals",
4267
+ "href": "/deals"
4268
4268
  },
4269
4269
  {
4270
- "label": "Pipeline",
4271
4270
  "href": "/pipeline",
4272
- "icon": "bar-chart-2"
4271
+ "icon": "bar-chart-2",
4272
+ "label": "Pipeline"
4273
4273
  },
4274
4274
  {
4275
- "href": "/notes",
4276
4275
  "icon": "file-text",
4276
+ "href": "/notes",
4277
4277
  "label": "Notes"
4278
4278
  }
4279
4279
  ]
@@ -4291,8 +4291,8 @@
4291
4291
  "Pipeline",
4292
4292
  {
4293
4293
  "emit": {
4294
- "failure": "PipelineLoadFailed",
4295
- "success": "PipelineLoaded"
4294
+ "success": "PipelineLoaded",
4295
+ "failure": "PipelineLoadFailed"
4296
4296
  }
4297
4297
  }
4298
4298
  ],
@@ -4301,14 +4301,37 @@
4301
4301
  "main",
4302
4302
  {
4303
4303
  "type": "dashboard-layout",
4304
+ "appName": "CRM",
4305
+ "navItems": [
4306
+ {
4307
+ "href": "/contacts",
4308
+ "label": "Contacts",
4309
+ "icon": "users"
4310
+ },
4311
+ {
4312
+ "href": "/deals",
4313
+ "icon": "briefcase",
4314
+ "label": "Deals"
4315
+ },
4316
+ {
4317
+ "label": "Pipeline",
4318
+ "href": "/pipeline",
4319
+ "icon": "bar-chart-2"
4320
+ },
4321
+ {
4322
+ "href": "/notes",
4323
+ "label": "Notes",
4324
+ "icon": "file-text"
4325
+ }
4326
+ ],
4304
4327
  "children": [
4305
4328
  {
4306
4329
  "type": "scaled-diagram",
4307
4330
  "children": [
4308
4331
  {
4332
+ "gap": "lg",
4309
4333
  "children": [
4310
4334
  {
4311
- "type": "breadcrumb",
4312
4335
  "items": [
4313
4336
  {
4314
4337
  "label": "Home",
@@ -4317,14 +4340,16 @@
4317
4340
  {
4318
4341
  "label": "Pipeline"
4319
4342
  }
4320
- ]
4343
+ ],
4344
+ "type": "breadcrumb"
4321
4345
  },
4322
4346
  {
4323
- "gap": "md",
4324
- "direction": "horizontal",
4347
+ "type": "stack",
4325
4348
  "justify": "between",
4326
4349
  "children": [
4327
4350
  {
4351
+ "type": "stack",
4352
+ "gap": "md",
4328
4353
  "direction": "horizontal",
4329
4354
  "children": [
4330
4355
  {
@@ -4332,30 +4357,29 @@
4332
4357
  "name": "bar-chart-2"
4333
4358
  },
4334
4359
  {
4360
+ "type": "typography",
4335
4361
  "variant": "h2",
4336
- "content": "Pipeline",
4337
- "type": "typography"
4362
+ "content": "Pipeline"
4338
4363
  }
4339
- ],
4340
- "gap": "md",
4341
- "type": "stack"
4364
+ ]
4342
4365
  },
4343
4366
  {
4367
+ "label": "Refresh",
4368
+ "variant": "secondary",
4344
4369
  "type": "button",
4345
4370
  "action": "REFRESH",
4346
- "label": "Refresh",
4347
- "icon": "refresh-cw",
4348
- "variant": "secondary"
4371
+ "icon": "refresh-cw"
4349
4372
  }
4350
4373
  ],
4351
- "type": "stack"
4374
+ "direction": "horizontal",
4375
+ "gap": "md"
4352
4376
  },
4353
4377
  {
4354
4378
  "type": "divider"
4355
4379
  },
4356
4380
  {
4357
- "type": "box",
4358
4381
  "padding": "md",
4382
+ "type": "box",
4359
4383
  "children": [
4360
4384
  {
4361
4385
  "type": "simple-grid",
@@ -4363,28 +4387,28 @@
4363
4387
  "children": [
4364
4388
  {
4365
4389
  "type": "stat-display",
4366
- "value": "@entity.totalDeals",
4367
- "label": "TotalDeals"
4390
+ "label": "TotalDeals",
4391
+ "value": "@entity.totalDeals"
4368
4392
  },
4369
4393
  {
4370
- "type": "stat-display",
4371
4394
  "label": "TotalValue",
4372
- "value": "@entity.totalValue"
4395
+ "value": "@entity.totalValue",
4396
+ "type": "stat-display"
4373
4397
  },
4374
4398
  {
4375
- "value": "@entity.wonDeals",
4399
+ "label": "WonDeals",
4376
4400
  "type": "stat-display",
4377
- "label": "WonDeals"
4401
+ "value": "@entity.wonDeals"
4378
4402
  },
4379
4403
  {
4380
- "value": "@entity.lostDeals",
4381
4404
  "label": "LostDeals",
4382
- "type": "stat-display"
4405
+ "type": "stat-display",
4406
+ "value": "@entity.lostDeals"
4383
4407
  },
4384
4408
  {
4385
- "label": "ConversionRate",
4409
+ "type": "stat-display",
4386
4410
  "value": "@entity.conversionRate",
4387
- "type": "stat-display"
4411
+ "label": "ConversionRate"
4388
4412
  }
4389
4413
  ]
4390
4414
  }
@@ -4394,9 +4418,6 @@
4394
4418
  "type": "divider"
4395
4419
  },
4396
4420
  {
4397
- "gap": "md",
4398
- "cols": 2.0,
4399
- "type": "grid",
4400
4421
  "children": [
4401
4422
  {
4402
4423
  "children": [
@@ -4418,7 +4439,10 @@
4418
4439
  ],
4419
4440
  "type": "card"
4420
4441
  }
4421
- ]
4442
+ ],
4443
+ "cols": 2.0,
4444
+ "type": "grid",
4445
+ "gap": "md"
4422
4446
  },
4423
4447
  {
4424
4448
  "type": "line-chart",
@@ -4428,16 +4452,16 @@
4428
4452
  "value": 12.0
4429
4453
  },
4430
4454
  {
4431
- "date": "Feb",
4432
- "value": 19.0
4455
+ "value": 19.0,
4456
+ "date": "Feb"
4433
4457
  },
4434
4458
  {
4435
- "value": 15.0,
4436
- "date": "Mar"
4459
+ "date": "Mar",
4460
+ "value": 15.0
4437
4461
  },
4438
4462
  {
4439
- "value": 25.0,
4440
- "date": "Apr"
4463
+ "date": "Apr",
4464
+ "value": 25.0
4441
4465
  },
4442
4466
  {
4443
4467
  "date": "May",
@@ -4453,8 +4477,8 @@
4453
4477
  "type": "chart-legend",
4454
4478
  "items": [
4455
4479
  {
4456
- "label": "Current",
4457
- "color": "primary"
4480
+ "color": "primary",
4481
+ "label": "Current"
4458
4482
  },
4459
4483
  {
4460
4484
  "color": "muted",
@@ -4463,22 +4487,22 @@
4463
4487
  ]
4464
4488
  },
4465
4489
  {
4466
- "width": 400.0,
4467
4490
  "type": "graph-view",
4468
4491
  "edges": [
4469
4492
  {
4470
- "source": "a",
4471
- "target": "b"
4493
+ "target": "b",
4494
+ "source": "a"
4472
4495
  },
4473
4496
  {
4474
- "source": "b",
4475
- "target": "c"
4497
+ "target": "c",
4498
+ "source": "b"
4476
4499
  }
4477
4500
  ],
4501
+ "height": 200.0,
4478
4502
  "nodes": [
4479
4503
  {
4480
- "label": "Start",
4481
- "id": "a"
4504
+ "id": "a",
4505
+ "label": "Start"
4482
4506
  },
4483
4507
  {
4484
4508
  "label": "Process",
@@ -4489,39 +4513,15 @@
4489
4513
  "label": "End"
4490
4514
  }
4491
4515
  ],
4492
- "height": 200.0
4516
+ "width": 400.0
4493
4517
  }
4494
4518
  ],
4495
- "type": "stack",
4496
- "gap": "lg",
4497
- "direction": "vertical"
4519
+ "direction": "vertical",
4520
+ "type": "stack"
4498
4521
  }
4499
4522
  ]
4500
4523
  }
4501
- ],
4502
- "navItems": [
4503
- {
4504
- "label": "Contacts",
4505
- "icon": "users",
4506
- "href": "/contacts"
4507
- },
4508
- {
4509
- "href": "/deals",
4510
- "icon": "briefcase",
4511
- "label": "Deals"
4512
- },
4513
- {
4514
- "href": "/pipeline",
4515
- "icon": "bar-chart-2",
4516
- "label": "Pipeline"
4517
- },
4518
- {
4519
- "href": "/notes",
4520
- "icon": "file-text",
4521
- "label": "Notes"
4522
- }
4523
- ],
4524
- "appName": "CRM"
4524
+ ]
4525
4525
  }
4526
4526
  ]
4527
4527
  ]
@@ -4536,8 +4536,8 @@
4536
4536
  "Pipeline",
4537
4537
  {
4538
4538
  "emit": {
4539
- "success": "PipelineLoaded",
4540
- "failure": "PipelineLoadFailed"
4539
+ "failure": "PipelineLoadFailed",
4540
+ "success": "PipelineLoaded"
4541
4541
  }
4542
4542
  }
4543
4543
  ],
@@ -4545,29 +4545,6 @@
4545
4545
  "render-ui",
4546
4546
  "main",
4547
4547
  {
4548
- "type": "dashboard-layout",
4549
- "navItems": [
4550
- {
4551
- "label": "Contacts",
4552
- "href": "/contacts",
4553
- "icon": "users"
4554
- },
4555
- {
4556
- "label": "Deals",
4557
- "href": "/deals",
4558
- "icon": "briefcase"
4559
- },
4560
- {
4561
- "icon": "bar-chart-2",
4562
- "label": "Pipeline",
4563
- "href": "/pipeline"
4564
- },
4565
- {
4566
- "href": "/notes",
4567
- "icon": "file-text",
4568
- "label": "Notes"
4569
- }
4570
- ],
4571
4548
  "appName": "CRM",
4572
4549
  "children": [
4573
4550
  {
@@ -4575,14 +4552,13 @@
4575
4552
  "children": [
4576
4553
  {
4577
4554
  "type": "stack",
4578
- "direction": "vertical",
4579
4555
  "children": [
4580
4556
  {
4581
4557
  "type": "breadcrumb",
4582
4558
  "items": [
4583
4559
  {
4584
- "label": "Home",
4585
- "href": "/"
4560
+ "href": "/",
4561
+ "label": "Home"
4586
4562
  },
4587
4563
  {
4588
4564
  "label": "Pipeline"
@@ -4590,107 +4566,108 @@
4590
4566
  ]
4591
4567
  },
4592
4568
  {
4593
- "justify": "between",
4594
- "type": "stack",
4595
- "gap": "md",
4596
4569
  "children": [
4597
4570
  {
4598
- "type": "stack",
4599
- "direction": "horizontal",
4571
+ "gap": "md",
4600
4572
  "children": [
4601
4573
  {
4602
- "type": "icon",
4603
- "name": "bar-chart-2"
4574
+ "name": "bar-chart-2",
4575
+ "type": "icon"
4604
4576
  },
4605
4577
  {
4606
- "content": "Pipeline",
4607
4578
  "type": "typography",
4608
- "variant": "h2"
4579
+ "variant": "h2",
4580
+ "content": "Pipeline"
4609
4581
  }
4610
4582
  ],
4611
- "gap": "md"
4583
+ "direction": "horizontal",
4584
+ "type": "stack"
4612
4585
  },
4613
4586
  {
4614
- "action": "REFRESH",
4615
4587
  "icon": "refresh-cw",
4588
+ "action": "REFRESH",
4616
4589
  "type": "button",
4617
- "variant": "secondary",
4618
- "label": "Refresh"
4590
+ "label": "Refresh",
4591
+ "variant": "secondary"
4619
4592
  }
4620
4593
  ],
4621
- "direction": "horizontal"
4594
+ "gap": "md",
4595
+ "type": "stack",
4596
+ "direction": "horizontal",
4597
+ "justify": "between"
4622
4598
  },
4623
4599
  {
4624
4600
  "type": "divider"
4625
4601
  },
4626
4602
  {
4603
+ "padding": "md",
4604
+ "type": "box",
4627
4605
  "children": [
4628
4606
  {
4607
+ "type": "simple-grid",
4608
+ "cols": 3.0,
4629
4609
  "children": [
4630
4610
  {
4631
- "type": "stat-display",
4611
+ "value": "@entity.totalDeals",
4632
4612
  "label": "TotalDeals",
4633
- "value": "@entity.totalDeals"
4613
+ "type": "stat-display"
4634
4614
  },
4635
4615
  {
4636
- "type": "stat-display",
4616
+ "value": "@entity.totalValue",
4637
4617
  "label": "TotalValue",
4638
- "value": "@entity.totalValue"
4618
+ "type": "stat-display"
4639
4619
  },
4640
4620
  {
4641
- "value": "@entity.wonDeals",
4642
4621
  "label": "WonDeals",
4622
+ "value": "@entity.wonDeals",
4643
4623
  "type": "stat-display"
4644
4624
  },
4645
4625
  {
4646
- "type": "stat-display",
4647
4626
  "label": "LostDeals",
4627
+ "type": "stat-display",
4648
4628
  "value": "@entity.lostDeals"
4649
4629
  },
4650
4630
  {
4651
- "value": "@entity.conversionRate",
4631
+ "type": "stat-display",
4652
4632
  "label": "ConversionRate",
4653
- "type": "stat-display"
4633
+ "value": "@entity.conversionRate"
4654
4634
  }
4655
- ],
4656
- "type": "simple-grid",
4657
- "cols": 3.0
4635
+ ]
4658
4636
  }
4659
- ],
4660
- "type": "box",
4661
- "padding": "md"
4637
+ ]
4662
4638
  },
4663
4639
  {
4664
4640
  "type": "divider"
4665
4641
  },
4666
4642
  {
4643
+ "gap": "md",
4667
4644
  "children": [
4668
4645
  {
4646
+ "type": "card",
4669
4647
  "children": [
4670
4648
  {
4671
4649
  "variant": "caption",
4672
- "type": "typography",
4673
- "content": "Chart View"
4650
+ "content": "Chart View",
4651
+ "type": "typography"
4674
4652
  }
4675
- ],
4676
- "type": "card"
4653
+ ]
4677
4654
  },
4678
4655
  {
4679
- "type": "card",
4680
4656
  "children": [
4681
4657
  {
4658
+ "type": "typography",
4682
4659
  "variant": "caption",
4683
- "content": "Graph View",
4684
- "type": "typography"
4660
+ "content": "Graph View"
4685
4661
  }
4686
- ]
4662
+ ],
4663
+ "type": "card"
4687
4664
  }
4688
4665
  ],
4689
- "type": "grid",
4690
- "gap": "md",
4691
- "cols": 2.0
4666
+ "cols": 2.0,
4667
+ "type": "grid"
4692
4668
  },
4693
4669
  {
4670
+ "type": "line-chart",
4694
4671
  "data": [
4695
4672
  {
4696
4673
  "date": "Jan",
@@ -4701,8 +4678,8 @@
4701
4678
  "value": 19.0
4702
4679
  },
4703
4680
  {
4704
- "date": "Mar",
4705
- "value": 15.0
4681
+ "value": 15.0,
4682
+ "date": "Mar"
4706
4683
  },
4707
4684
  {
4708
4685
  "value": 25.0,
@@ -4713,59 +4690,82 @@
4713
4690
  "value": 22.0
4714
4691
  },
4715
4692
  {
4716
- "value": 30.0,
4717
- "date": "Jun"
4693
+ "date": "Jun",
4694
+ "value": 30.0
4718
4695
  }
4719
- ],
4720
- "type": "line-chart"
4696
+ ]
4721
4697
  },
4722
4698
  {
4723
- "type": "chart-legend",
4724
4699
  "items": [
4725
4700
  {
4726
- "color": "primary",
4727
- "label": "Current"
4701
+ "label": "Current",
4702
+ "color": "primary"
4728
4703
  },
4729
4704
  {
4730
4705
  "label": "Previous",
4731
4706
  "color": "muted"
4732
4707
  }
4733
- ]
4708
+ ],
4709
+ "type": "chart-legend"
4734
4710
  },
4735
4711
  {
4736
- "nodes": [
4737
- {
4738
- "id": "a",
4739
- "label": "Start"
4740
- },
4712
+ "width": 400.0,
4713
+ "edges": [
4741
4714
  {
4742
- "id": "b",
4743
- "label": "Process"
4715
+ "target": "b",
4716
+ "source": "a"
4744
4717
  },
4745
4718
  {
4746
- "id": "c",
4747
- "label": "End"
4719
+ "source": "b",
4720
+ "target": "c"
4748
4721
  }
4749
4722
  ],
4750
4723
  "type": "graph-view",
4751
- "width": 400.0,
4752
4724
  "height": 200.0,
4753
- "edges": [
4725
+ "nodes": [
4754
4726
  {
4755
- "target": "b",
4756
- "source": "a"
4727
+ "label": "Start",
4728
+ "id": "a"
4757
4729
  },
4758
4730
  {
4759
- "source": "b",
4760
- "target": "c"
4731
+ "label": "Process",
4732
+ "id": "b"
4733
+ },
4734
+ {
4735
+ "label": "End",
4736
+ "id": "c"
4761
4737
  }
4762
4738
  ]
4763
4739
  }
4764
4740
  ],
4765
- "gap": "lg"
4741
+ "gap": "lg",
4742
+ "direction": "vertical"
4766
4743
  }
4767
4744
  ]
4768
4745
  }
4746
+ ],
4747
+ "type": "dashboard-layout",
4748
+ "navItems": [
4749
+ {
4750
+ "href": "/contacts",
4751
+ "icon": "users",
4752
+ "label": "Contacts"
4753
+ },
4754
+ {
4755
+ "label": "Deals",
4756
+ "icon": "briefcase",
4757
+ "href": "/deals"
4758
+ },
4759
+ {
4760
+ "href": "/pipeline",
4761
+ "icon": "bar-chart-2",
4762
+ "label": "Pipeline"
4763
+ },
4764
+ {
4765
+ "label": "Notes",
4766
+ "href": "/notes",
4767
+ "icon": "file-text"
4768
+ }
4769
4769
  ]
4770
4770
  }
4771
4771
  ]
@@ -4781,8 +4781,8 @@
4781
4781
  "Pipeline",
4782
4782
  {
4783
4783
  "emit": {
4784
- "success": "PipelineLoaded",
4785
- "failure": "PipelineLoadFailed"
4784
+ "failure": "PipelineLoadFailed",
4785
+ "success": "PipelineLoaded"
4786
4786
  }
4787
4787
  }
4788
4788
  ],
@@ -4791,15 +4791,37 @@
4791
4791
  "main",
4792
4792
  {
4793
4793
  "appName": "CRM",
4794
+ "navItems": [
4795
+ {
4796
+ "href": "/contacts",
4797
+ "label": "Contacts",
4798
+ "icon": "users"
4799
+ },
4800
+ {
4801
+ "icon": "briefcase",
4802
+ "href": "/deals",
4803
+ "label": "Deals"
4804
+ },
4805
+ {
4806
+ "icon": "bar-chart-2",
4807
+ "href": "/pipeline",
4808
+ "label": "Pipeline"
4809
+ },
4810
+ {
4811
+ "href": "/notes",
4812
+ "icon": "file-text",
4813
+ "label": "Notes"
4814
+ }
4815
+ ],
4816
+ "type": "dashboard-layout",
4794
4817
  "children": [
4795
4818
  {
4819
+ "type": "scaled-diagram",
4796
4820
  "children": [
4797
4821
  {
4798
- "type": "stack",
4799
- "gap": "lg",
4800
- "direction": "vertical",
4801
4822
  "children": [
4802
4823
  {
4824
+ "type": "breadcrumb",
4803
4825
  "items": [
4804
4826
  {
4805
4827
  "label": "Home",
@@ -4808,13 +4830,14 @@
4808
4830
  {
4809
4831
  "label": "Pipeline"
4810
4832
  }
4811
- ],
4812
- "type": "breadcrumb"
4833
+ ]
4813
4834
  },
4814
4835
  {
4836
+ "justify": "between",
4837
+ "gap": "md",
4815
4838
  "children": [
4816
4839
  {
4817
- "direction": "horizontal",
4840
+ "gap": "md",
4818
4841
  "type": "stack",
4819
4842
  "children": [
4820
4843
  {
@@ -4822,25 +4845,23 @@
4822
4845
  "type": "icon"
4823
4846
  },
4824
4847
  {
4848
+ "type": "typography",
4825
4849
  "variant": "h2",
4826
- "content": "Pipeline",
4827
- "type": "typography"
4850
+ "content": "Pipeline"
4828
4851
  }
4829
4852
  ],
4830
- "gap": "md"
4853
+ "direction": "horizontal"
4831
4854
  },
4832
4855
  {
4833
- "type": "button",
4834
- "variant": "secondary",
4835
4856
  "label": "Refresh",
4857
+ "icon": "refresh-cw",
4836
4858
  "action": "REFRESH",
4837
- "icon": "refresh-cw"
4859
+ "variant": "secondary",
4860
+ "type": "button"
4838
4861
  }
4839
4862
  ],
4840
- "type": "stack",
4841
4863
  "direction": "horizontal",
4842
- "gap": "md",
4843
- "justify": "between"
4864
+ "type": "stack"
4844
4865
  },
4845
4866
  {
4846
4867
  "type": "divider"
@@ -4850,70 +4871,69 @@
4850
4871
  {
4851
4872
  "children": [
4852
4873
  {
4853
- "type": "stat-display",
4874
+ "label": "TotalDeals",
4854
4875
  "value": "@entity.totalDeals",
4855
- "label": "TotalDeals"
4876
+ "type": "stat-display"
4856
4877
  },
4857
4878
  {
4879
+ "label": "TotalValue",
4858
4880
  "type": "stat-display",
4859
- "value": "@entity.totalValue",
4860
- "label": "TotalValue"
4881
+ "value": "@entity.totalValue"
4861
4882
  },
4862
4883
  {
4884
+ "value": "@entity.wonDeals",
4863
4885
  "type": "stat-display",
4864
- "label": "WonDeals",
4865
- "value": "@entity.wonDeals"
4886
+ "label": "WonDeals"
4866
4887
  },
4867
4888
  {
4868
4889
  "label": "LostDeals",
4869
- "type": "stat-display",
4870
- "value": "@entity.lostDeals"
4890
+ "value": "@entity.lostDeals",
4891
+ "type": "stat-display"
4871
4892
  },
4872
4893
  {
4894
+ "value": "@entity.conversionRate",
4873
4895
  "type": "stat-display",
4874
- "label": "ConversionRate",
4875
- "value": "@entity.conversionRate"
4896
+ "label": "ConversionRate"
4876
4897
  }
4877
4898
  ],
4878
4899
  "cols": 3.0,
4879
4900
  "type": "simple-grid"
4880
4901
  }
4881
4902
  ],
4882
- "type": "box",
4883
- "padding": "md"
4903
+ "padding": "md",
4904
+ "type": "box"
4884
4905
  },
4885
4906
  {
4886
4907
  "type": "divider"
4887
4908
  },
4888
4909
  {
4889
4910
  "type": "grid",
4911
+ "gap": "md",
4890
4912
  "cols": 2.0,
4891
4913
  "children": [
4892
4914
  {
4915
+ "type": "card",
4893
4916
  "children": [
4894
4917
  {
4895
4918
  "type": "typography",
4896
- "variant": "caption",
4897
- "content": "Chart View"
4919
+ "content": "Chart View",
4920
+ "variant": "caption"
4898
4921
  }
4899
- ],
4900
- "type": "card"
4922
+ ]
4901
4923
  },
4902
4924
  {
4903
4925
  "type": "card",
4904
4926
  "children": [
4905
4927
  {
4906
- "content": "Graph View",
4907
4928
  "type": "typography",
4929
+ "content": "Graph View",
4908
4930
  "variant": "caption"
4909
4931
  }
4910
4932
  ]
4911
4933
  }
4912
- ],
4913
- "gap": "md"
4934
+ ]
4914
4935
  },
4915
4936
  {
4916
- "type": "line-chart",
4917
4937
  "data": [
4918
4938
  {
4919
4939
  "date": "Jan",
@@ -4932,46 +4952,35 @@
4932
4952
  "date": "Apr"
4933
4953
  },
4934
4954
  {
4935
- "date": "May",
4936
- "value": 22.0
4955
+ "value": 22.0,
4956
+ "date": "May"
4937
4957
  },
4938
4958
  {
4939
- "date": "Jun",
4940
- "value": 30.0
4959
+ "value": 30.0,
4960
+ "date": "Jun"
4941
4961
  }
4942
- ]
4962
+ ],
4963
+ "type": "line-chart"
4943
4964
  },
4944
4965
  {
4945
4966
  "type": "chart-legend",
4946
4967
  "items": [
4947
4968
  {
4948
4969
  "label": "Current",
4949
- "color": "primary"
4950
- },
4951
- {
4952
- "label": "Previous",
4953
- "color": "muted"
4954
- }
4955
- ]
4956
- },
4957
- {
4958
- "width": 400.0,
4959
- "height": 200.0,
4960
- "type": "graph-view",
4961
- "edges": [
4962
- {
4963
- "source": "a",
4964
- "target": "b"
4970
+ "color": "primary"
4965
4971
  },
4966
4972
  {
4967
- "source": "b",
4968
- "target": "c"
4973
+ "color": "muted",
4974
+ "label": "Previous"
4969
4975
  }
4970
- ],
4976
+ ]
4977
+ },
4978
+ {
4979
+ "type": "graph-view",
4971
4980
  "nodes": [
4972
4981
  {
4973
- "id": "a",
4974
- "label": "Start"
4982
+ "label": "Start",
4983
+ "id": "a"
4975
4984
  },
4976
4985
  {
4977
4986
  "id": "b",
@@ -4981,35 +4990,26 @@
4981
4990
  "id": "c",
4982
4991
  "label": "End"
4983
4992
  }
4984
- ]
4993
+ ],
4994
+ "edges": [
4995
+ {
4996
+ "source": "a",
4997
+ "target": "b"
4998
+ },
4999
+ {
5000
+ "source": "b",
5001
+ "target": "c"
5002
+ }
5003
+ ],
5004
+ "width": 400.0,
5005
+ "height": 200.0
4985
5006
  }
4986
- ]
5007
+ ],
5008
+ "gap": "lg",
5009
+ "type": "stack",
5010
+ "direction": "vertical"
4987
5011
  }
4988
- ],
4989
- "type": "scaled-diagram"
4990
- }
4991
- ],
4992
- "type": "dashboard-layout",
4993
- "navItems": [
4994
- {
4995
- "href": "/contacts",
4996
- "label": "Contacts",
4997
- "icon": "users"
4998
- },
4999
- {
5000
- "href": "/deals",
5001
- "icon": "briefcase",
5002
- "label": "Deals"
5003
- },
5004
- {
5005
- "href": "/pipeline",
5006
- "icon": "bar-chart-2",
5007
- "label": "Pipeline"
5008
- },
5009
- {
5010
- "href": "/notes",
5011
- "label": "Notes",
5012
- "icon": "file-text"
5012
+ ]
5013
5013
  }
5014
5014
  ]
5015
5015
  }
@@ -5072,7 +5072,7 @@
5072
5072
  "event": "NoteLoaded",
5073
5073
  "description": "Fired when Note finishes loading",
5074
5074
  "scope": "internal",
5075
- "payload": [
5075
+ "payloadSchema": [
5076
5076
  {
5077
5077
  "name": "data",
5078
5078
  "type": "[Note]"
@@ -5083,7 +5083,7 @@
5083
5083
  "event": "NoteLoadFailed",
5084
5084
  "description": "Fired when Note fails to load",
5085
5085
  "scope": "internal",
5086
- "payload": [
5086
+ "payloadSchema": [
5087
5087
  {
5088
5088
  "name": "error",
5089
5089
  "type": "string"
@@ -5120,7 +5120,7 @@
5120
5120
  {
5121
5121
  "key": "NoteLoaded",
5122
5122
  "name": "Note loaded",
5123
- "payload": [
5123
+ "payloadSchema": [
5124
5124
  {
5125
5125
  "name": "data",
5126
5126
  "type": "[Note]"
@@ -5130,7 +5130,7 @@
5130
5130
  {
5131
5131
  "key": "NoteLoadFailed",
5132
5132
  "name": "Note load failed",
5133
- "payload": [
5133
+ "payloadSchema": [
5134
5134
  {
5135
5135
  "name": "error",
5136
5136
  "type": "string"
@@ -5162,22 +5162,22 @@
5162
5162
  "render-ui",
5163
5163
  "main",
5164
5164
  {
5165
- "direction": "vertical",
5165
+ "gap": "md",
5166
+ "type": "stack",
5166
5167
  "align": "center",
5167
5168
  "className": "py-12",
5169
+ "direction": "vertical",
5168
5170
  "children": [
5169
5171
  {
5170
5172
  "type": "spinner"
5171
5173
  },
5172
5174
  {
5173
- "type": "typography",
5174
5175
  "variant": "caption",
5176
+ "type": "typography",
5175
5177
  "color": "muted",
5176
5178
  "content": "Loading…"
5177
5179
  }
5178
- ],
5179
- "type": "stack",
5180
- "gap": "md"
5180
+ ]
5181
5181
  }
5182
5182
  ]
5183
5183
  ]
@@ -5191,21 +5191,43 @@
5191
5191
  "render-ui",
5192
5192
  "main",
5193
5193
  {
5194
+ "navItems": [
5195
+ {
5196
+ "href": "/contacts",
5197
+ "icon": "users",
5198
+ "label": "Contacts"
5199
+ },
5200
+ {
5201
+ "label": "Deals",
5202
+ "icon": "briefcase",
5203
+ "href": "/deals"
5204
+ },
5205
+ {
5206
+ "label": "Pipeline",
5207
+ "href": "/pipeline",
5208
+ "icon": "bar-chart-2"
5209
+ },
5210
+ {
5211
+ "label": "Notes",
5212
+ "href": "/notes",
5213
+ "icon": "file-text"
5214
+ }
5215
+ ],
5194
5216
  "appName": "CRM",
5195
5217
  "type": "dashboard-layout",
5196
5218
  "children": [
5197
5219
  {
5198
- "type": "stack",
5199
- "direction": "vertical",
5200
5220
  "gap": "lg",
5201
5221
  "className": "max-w-5xl mx-auto w-full",
5202
5222
  "children": [
5203
5223
  {
5204
5224
  "align": "center",
5205
- "type": "stack",
5206
- "gap": "md",
5207
5225
  "children": [
5208
5226
  {
5227
+ "gap": "sm",
5228
+ "type": "stack",
5229
+ "direction": "horizontal",
5230
+ "align": "center",
5209
5231
  "children": [
5210
5232
  {
5211
5233
  "name": "file-text",
@@ -5216,20 +5238,16 @@
5216
5238
  "variant": "h2",
5217
5239
  "type": "typography"
5218
5240
  }
5219
- ],
5220
- "align": "center",
5221
- "gap": "sm",
5222
- "direction": "horizontal",
5223
- "type": "stack"
5241
+ ]
5224
5242
  },
5225
5243
  {
5226
5244
  "children": [
5227
5245
  {
5246
+ "label": "Compose",
5228
5247
  "icon": "edit",
5229
5248
  "variant": "primary",
5230
- "type": "button",
5231
5249
  "action": "COMPOSE",
5232
- "label": "Compose"
5250
+ "type": "button"
5233
5251
  }
5234
5252
  ],
5235
5253
  "type": "stack",
@@ -5237,65 +5255,47 @@
5237
5255
  "gap": "sm"
5238
5256
  }
5239
5257
  ],
5240
- "direction": "horizontal",
5241
- "justify": "between"
5258
+ "gap": "md",
5259
+ "justify": "between",
5260
+ "type": "stack",
5261
+ "direction": "horizontal"
5242
5262
  },
5243
5263
  {
5244
5264
  "type": "divider"
5245
5265
  },
5246
5266
  {
5267
+ "type": "data-list",
5268
+ "entity": "@payload.data",
5269
+ "fields": [],
5270
+ "variant": "card",
5271
+ "gap": "sm",
5247
5272
  "columns": [
5248
5273
  {
5249
- "name": "subject",
5250
5274
  "variant": "h4",
5251
- "icon": "file-text"
5275
+ "icon": "file-text",
5276
+ "name": "subject"
5252
5277
  },
5253
5278
  {
5254
5279
  "variant": "caption",
5255
5280
  "name": "author"
5256
5281
  },
5257
5282
  {
5258
- "variant": "caption",
5259
5283
  "name": "createdAt",
5284
+ "variant": "caption",
5260
5285
  "format": "date"
5261
5286
  }
5262
5287
  ],
5263
- "type": "data-list",
5264
- "gap": "sm",
5265
- "variant": "card",
5266
- "fields": [],
5267
5288
  "itemActions": [
5268
5289
  {
5269
- "label": "View",
5270
5290
  "event": "VIEW",
5271
- "variant": "ghost"
5291
+ "variant": "ghost",
5292
+ "label": "View"
5272
5293
  }
5273
- ],
5274
- "entity": "@payload.data"
5294
+ ]
5275
5295
  }
5276
- ]
5277
- }
5278
- ],
5279
- "navItems": [
5280
- {
5281
- "label": "Contacts",
5282
- "href": "/contacts",
5283
- "icon": "users"
5284
- },
5285
- {
5286
- "href": "/deals",
5287
- "icon": "briefcase",
5288
- "label": "Deals"
5289
- },
5290
- {
5291
- "icon": "bar-chart-2",
5292
- "href": "/pipeline",
5293
- "label": "Pipeline"
5294
- },
5295
- {
5296
- "href": "/notes",
5297
- "label": "Notes",
5298
- "icon": "file-text"
5296
+ ],
5297
+ "direction": "vertical",
5298
+ "type": "stack"
5299
5299
  }
5300
5300
  ]
5301
5301
  }
@@ -5311,36 +5311,36 @@
5311
5311
  "render-ui",
5312
5312
  "main",
5313
5313
  {
5314
- "direction": "vertical",
5315
5314
  "children": [
5316
5315
  {
5317
5316
  "type": "icon",
5318
- "color": "destructive",
5319
- "name": "alert-triangle"
5317
+ "name": "alert-triangle",
5318
+ "color": "destructive"
5320
5319
  },
5321
5320
  {
5322
5321
  "content": "Failed to load note",
5323
- "type": "typography",
5324
- "variant": "h3"
5322
+ "variant": "h3",
5323
+ "type": "typography"
5325
5324
  },
5326
5325
  {
5327
- "color": "muted",
5328
5326
  "type": "typography",
5329
5327
  "variant": "body",
5328
+ "color": "muted",
5330
5329
  "content": "@payload.error"
5331
5330
  },
5332
5331
  {
5332
+ "label": "Retry",
5333
5333
  "icon": "rotate-ccw",
5334
5334
  "variant": "primary",
5335
5335
  "type": "button",
5336
- "label": "Retry",
5337
5336
  "action": "INIT"
5338
5337
  }
5339
5338
  ],
5340
- "align": "center",
5339
+ "type": "stack",
5341
5340
  "gap": "md",
5341
+ "align": "center",
5342
5342
  "className": "py-12",
5343
- "type": "stack"
5343
+ "direction": "vertical"
5344
5344
  }
5345
5345
  ]
5346
5346
  ]
@@ -5361,7 +5361,7 @@
5361
5361
  "event": "NoteLoadFailed",
5362
5362
  "description": "Fired when Note fails to load",
5363
5363
  "scope": "internal",
5364
- "payload": [
5364
+ "payloadSchema": [
5365
5365
  {
5366
5366
  "name": "error",
5367
5367
  "type": "string"
@@ -5376,7 +5376,7 @@
5376
5376
  "event": "NoteLoaded",
5377
5377
  "description": "Fired when Note finishes loading",
5378
5378
  "scope": "internal",
5379
- "payload": [
5379
+ "payloadSchema": [
5380
5380
  {
5381
5381
  "name": "data",
5382
5382
  "type": "[Note]"
@@ -5386,7 +5386,7 @@
5386
5386
  {
5387
5387
  "event": "NoteSaveFailed",
5388
5388
  "scope": "internal",
5389
- "payload": [
5389
+ "payloadSchema": [
5390
5390
  {
5391
5391
  "name": "error",
5392
5392
  "type": "string"
@@ -5400,7 +5400,7 @@
5400
5400
  {
5401
5401
  "event": "NoteSaved",
5402
5402
  "scope": "internal",
5403
- "payload": [
5403
+ "payloadSchema": [
5404
5404
  {
5405
5405
  "name": "id",
5406
5406
  "type": "string"
@@ -5434,7 +5434,7 @@
5434
5434
  {
5435
5435
  "key": "SEND",
5436
5436
  "name": "Send",
5437
- "payload": [
5437
+ "payloadSchema": [
5438
5438
  {
5439
5439
  "name": "data",
5440
5440
  "type": "string"
@@ -5444,7 +5444,7 @@
5444
5444
  {
5445
5445
  "key": "NoteLoadFailed",
5446
5446
  "name": "Note load failed",
5447
- "payload": [
5447
+ "payloadSchema": [
5448
5448
  {
5449
5449
  "name": "error",
5450
5450
  "type": "string"
@@ -5458,7 +5458,7 @@
5458
5458
  {
5459
5459
  "key": "NoteLoaded",
5460
5460
  "name": "Note loaded",
5461
- "payload": [
5461
+ "payloadSchema": [
5462
5462
  {
5463
5463
  "name": "data",
5464
5464
  "type": "[Note]"
@@ -5468,7 +5468,7 @@
5468
5468
  {
5469
5469
  "key": "NoteSaveFailed",
5470
5470
  "name": "Note save failed",
5471
- "payload": [
5471
+ "payloadSchema": [
5472
5472
  {
5473
5473
  "name": "error",
5474
5474
  "type": "string"
@@ -5482,7 +5482,7 @@
5482
5482
  {
5483
5483
  "key": "NoteSaved",
5484
5484
  "name": "Note saved",
5485
- "payload": [
5485
+ "payloadSchema": [
5486
5486
  {
5487
5487
  "name": "id",
5488
5488
  "type": "string"
@@ -5512,10 +5512,9 @@
5512
5512
  "modal",
5513
5513
  {
5514
5514
  "gap": "md",
5515
+ "direction": "vertical",
5515
5516
  "children": [
5516
5517
  {
5517
- "type": "stack",
5518
- "direction": "horizontal",
5519
5518
  "gap": "sm",
5520
5519
  "children": [
5521
5520
  {
@@ -5523,29 +5522,30 @@
5523
5522
  "type": "icon"
5524
5523
  },
5525
5524
  {
5526
- "variant": "h3",
5527
5525
  "type": "typography",
5528
- "content": "New Note"
5526
+ "content": "New Note",
5527
+ "variant": "h3"
5529
5528
  }
5530
- ]
5529
+ ],
5530
+ "direction": "horizontal",
5531
+ "type": "stack"
5531
5532
  },
5532
5533
  {
5533
5534
  "type": "divider"
5534
5535
  },
5535
5536
  {
5536
5537
  "mode": "create",
5538
+ "cancelEvent": "CLOSE",
5539
+ "submitEvent": "SEND",
5540
+ "type": "form-section",
5537
5541
  "fields": [
5538
5542
  "subject",
5539
5543
  "body",
5540
5544
  "author"
5541
- ],
5542
- "type": "form-section",
5543
- "submitEvent": "SEND",
5544
- "cancelEvent": "CLOSE"
5545
+ ]
5545
5546
  }
5546
5547
  ],
5547
- "type": "stack",
5548
- "direction": "vertical"
5548
+ "type": "stack"
5549
5549
  }
5550
5550
  ]
5551
5551
  ]
@@ -5618,7 +5618,7 @@
5618
5618
  "event": "NoteLoaded",
5619
5619
  "description": "Fired when Note finishes loading",
5620
5620
  "scope": "internal",
5621
- "payload": [
5621
+ "payloadSchema": [
5622
5622
  {
5623
5623
  "name": "data",
5624
5624
  "type": "[Note]"
@@ -5629,7 +5629,7 @@
5629
5629
  "event": "NoteLoadFailed",
5630
5630
  "description": "Fired when Note fails to load",
5631
5631
  "scope": "internal",
5632
- "payload": [
5632
+ "payloadSchema": [
5633
5633
  {
5634
5634
  "name": "error",
5635
5635
  "type": "string"
@@ -5659,7 +5659,7 @@
5659
5659
  {
5660
5660
  "key": "VIEW",
5661
5661
  "name": "View",
5662
- "payload": [
5662
+ "payloadSchema": [
5663
5663
  {
5664
5664
  "name": "id",
5665
5665
  "type": "string"
@@ -5677,7 +5677,7 @@
5677
5677
  {
5678
5678
  "key": "NoteLoaded",
5679
5679
  "name": "Note loaded",
5680
- "payload": [
5680
+ "payloadSchema": [
5681
5681
  {
5682
5682
  "name": "data",
5683
5683
  "type": "[Note]"
@@ -5687,7 +5687,7 @@
5687
5687
  {
5688
5688
  "key": "NoteLoadFailed",
5689
5689
  "name": "Note load failed",
5690
- "payload": [
5690
+ "payloadSchema": [
5691
5691
  {
5692
5692
  "name": "error",
5693
5693
  "type": "string"
@@ -5722,8 +5722,8 @@
5722
5722
  {
5723
5723
  "id": "@payload.id",
5724
5724
  "emit": {
5725
- "failure": "NoteLoadFailed",
5726
- "success": "NoteLoaded"
5725
+ "success": "NoteLoaded",
5726
+ "failure": "NoteLoadFailed"
5727
5727
  }
5728
5728
  }
5729
5729
  ],
@@ -5731,70 +5731,69 @@
5731
5731
  "render-ui",
5732
5732
  "modal",
5733
5733
  {
5734
- "direction": "vertical",
5735
5734
  "children": [
5736
5735
  {
5737
- "direction": "horizontal",
5738
- "type": "stack",
5739
- "gap": "sm",
5740
- "align": "center",
5741
5736
  "children": [
5742
5737
  {
5743
- "type": "icon",
5744
- "name": "eye"
5738
+ "name": "eye",
5739
+ "type": "icon"
5745
5740
  },
5746
5741
  {
5747
5742
  "variant": "h3",
5748
- "content": "@entity.subject",
5749
- "type": "typography"
5743
+ "type": "typography",
5744
+ "content": "@entity.subject"
5750
5745
  }
5751
- ]
5746
+ ],
5747
+ "direction": "horizontal",
5748
+ "gap": "sm",
5749
+ "align": "center",
5750
+ "type": "stack"
5752
5751
  },
5753
5752
  {
5754
5753
  "type": "divider"
5755
5754
  },
5756
5755
  {
5757
5756
  "direction": "horizontal",
5758
- "gap": "md",
5759
5757
  "children": [
5760
5758
  {
5761
5759
  "type": "typography",
5762
- "variant": "caption",
5763
- "content": "Subject"
5760
+ "content": "Subject",
5761
+ "variant": "caption"
5764
5762
  },
5765
5763
  {
5766
5764
  "type": "typography",
5767
- "variant": "body",
5768
- "content": "@entity.subject"
5765
+ "content": "@entity.subject",
5766
+ "variant": "body"
5769
5767
  }
5770
5768
  ],
5771
- "type": "stack"
5769
+ "type": "stack",
5770
+ "gap": "md"
5772
5771
  },
5773
5772
  {
5773
+ "type": "stack",
5774
+ "gap": "md",
5775
+ "direction": "horizontal",
5774
5776
  "children": [
5775
5777
  {
5776
- "content": "Body",
5777
5778
  "variant": "caption",
5779
+ "content": "Body",
5778
5780
  "type": "typography"
5779
5781
  },
5780
5782
  {
5781
- "content": "@entity.body",
5783
+ "type": "typography",
5782
5784
  "variant": "body",
5783
- "type": "typography"
5785
+ "content": "@entity.body"
5784
5786
  }
5785
- ],
5786
- "type": "stack",
5787
- "direction": "horizontal",
5788
- "gap": "md"
5787
+ ]
5789
5788
  },
5790
5789
  {
5791
- "direction": "horizontal",
5792
5790
  "gap": "md",
5793
5791
  "type": "stack",
5792
+ "direction": "horizontal",
5794
5793
  "children": [
5795
5794
  {
5796
- "variant": "caption",
5797
5795
  "type": "typography",
5796
+ "variant": "caption",
5798
5797
  "content": "Author"
5799
5798
  },
5800
5799
  {
@@ -5805,40 +5804,41 @@
5805
5804
  ]
5806
5805
  },
5807
5806
  {
5807
+ "direction": "horizontal",
5808
+ "type": "stack",
5809
+ "gap": "md",
5808
5810
  "children": [
5809
5811
  {
5810
- "type": "typography",
5811
5812
  "variant": "caption",
5812
- "content": "Created At"
5813
+ "content": "Created At",
5814
+ "type": "typography"
5813
5815
  },
5814
5816
  {
5815
5817
  "variant": "body",
5816
- "content": "@entity.createdAt",
5817
- "type": "typography"
5818
+ "type": "typography",
5819
+ "content": "@entity.createdAt"
5818
5820
  }
5819
- ],
5820
- "type": "stack",
5821
- "gap": "md",
5822
- "direction": "horizontal"
5821
+ ]
5823
5822
  },
5824
5823
  {
5825
5824
  "type": "divider"
5826
5825
  },
5827
5826
  {
5828
- "gap": "sm",
5829
- "direction": "horizontal",
5830
5827
  "type": "stack",
5831
5828
  "justify": "end",
5829
+ "direction": "horizontal",
5830
+ "gap": "sm",
5832
5831
  "children": [
5833
5832
  {
5834
- "action": "CLOSE",
5835
- "label": "Close",
5833
+ "type": "button",
5836
5834
  "variant": "ghost",
5837
- "type": "button"
5835
+ "label": "Close",
5836
+ "action": "CLOSE"
5838
5837
  }
5839
5838
  ]
5840
5839
  }
5841
5840
  ],
5841
+ "direction": "vertical",
5842
5842
  "gap": "md",
5843
5843
  "type": "stack"
5844
5844
  }
@@ -5912,4 +5912,4 @@
5912
5912
  ]
5913
5913
  }
5914
5914
  ]
5915
- }
5915
+ }