@almadar/std 3.2.1 → 3.2.2

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 (262) hide show
  1. package/behaviors/exports/atoms/std-async.orb +41 -24
  2. package/behaviors/exports/atoms/std-browse.orb +12 -5
  3. package/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  5. package/behaviors/exports/atoms/std-collision.orb +278 -206
  6. package/behaviors/exports/atoms/std-combat-log.orb +6 -1
  7. package/behaviors/exports/atoms/std-combat.orb +6 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +212 -7
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  10. package/behaviors/exports/atoms/std-display.orb +166 -21
  11. package/behaviors/exports/atoms/std-drawer.orb +208 -104
  12. package/behaviors/exports/atoms/std-filter.orb +211 -18
  13. package/behaviors/exports/atoms/std-game-audio.orb +6 -1
  14. package/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  15. package/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  16. package/behaviors/exports/atoms/std-game-hud.orb +6 -1
  17. package/behaviors/exports/atoms/std-game-menu.orb +6 -1
  18. package/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  19. package/behaviors/exports/atoms/std-gameflow.orb +100 -5
  20. package/behaviors/exports/atoms/std-input.orb +142 -137
  21. package/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  22. package/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  23. package/behaviors/exports/atoms/std-loading.orb +27 -76
  24. package/behaviors/exports/atoms/std-modal.orb +177 -93
  25. package/behaviors/exports/atoms/std-movement.orb +401 -31
  26. package/behaviors/exports/atoms/std-notification.orb +46 -95
  27. package/behaviors/exports/atoms/std-overworld.orb +44 -16
  28. package/behaviors/exports/atoms/std-pagination.orb +26 -89
  29. package/behaviors/exports/atoms/std-physics2d.orb +6 -1
  30. package/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  31. package/behaviors/exports/atoms/std-quest.orb +309 -34
  32. package/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  33. package/behaviors/exports/atoms/std-score-board.orb +6 -1
  34. package/behaviors/exports/atoms/std-score.orb +211 -11
  35. package/behaviors/exports/atoms/std-search.orb +28 -27
  36. package/behaviors/exports/atoms/std-selection.orb +160 -121
  37. package/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  38. package/behaviors/exports/atoms/std-sort.orb +134 -24
  39. package/behaviors/exports/atoms/std-sprite.orb +6 -1
  40. package/behaviors/exports/atoms/std-tabs.orb +25 -15
  41. package/behaviors/exports/atoms/std-timer.orb +483 -91
  42. package/behaviors/exports/atoms/std-undo.orb +211 -81
  43. package/behaviors/exports/atoms/std-wizard.orb +31 -34
  44. package/behaviors/exports/molecules/std-builder-game.orb +6 -1
  45. package/behaviors/exports/molecules/std-cart.orb +6 -1
  46. package/behaviors/exports/molecules/std-classifier-game.orb +6 -1
  47. package/behaviors/exports/molecules/std-debugger-game.orb +6 -1
  48. package/behaviors/exports/molecules/std-detail.orb +12 -5
  49. package/behaviors/exports/molecules/std-event-handler-game.orb +6 -1
  50. package/behaviors/exports/molecules/std-geospatial.orb +28 -9
  51. package/behaviors/exports/molecules/std-inventory.orb +28 -9
  52. package/behaviors/exports/molecules/std-list.orb +392 -5
  53. package/behaviors/exports/molecules/std-messaging.orb +12 -5
  54. package/behaviors/exports/molecules/std-negotiator-game.orb +6 -1
  55. package/behaviors/exports/molecules/std-platformer-game.orb +40 -1
  56. package/behaviors/exports/molecules/std-puzzle-game.orb +26 -1
  57. package/behaviors/exports/molecules/std-sequencer-game.orb +6 -1
  58. package/behaviors/exports/molecules/std-simulator-game.orb +6 -1
  59. package/behaviors/exports/molecules/std-turn-based-battle.orb +40 -1
  60. package/behaviors/exports/organisms/std-api-gateway.orb +1145 -403
  61. package/behaviors/exports/organisms/std-arcade-game.orb +94 -4
  62. package/behaviors/exports/organisms/std-booking-system.orb +2165 -1605
  63. package/behaviors/exports/organisms/std-cicd-pipeline.orb +581 -47
  64. package/behaviors/exports/organisms/std-cms.orb +1713 -947
  65. package/behaviors/exports/organisms/std-coding-academy.orb +180 -380
  66. package/behaviors/exports/organisms/std-crm.orb +1669 -1153
  67. package/behaviors/exports/organisms/std-devops-dashboard.orb +1430 -378
  68. package/behaviors/exports/organisms/std-ecommerce.orb +2361 -1601
  69. package/behaviors/exports/organisms/std-finance-tracker.orb +622 -438
  70. package/behaviors/exports/organisms/std-healthcare.orb +1687 -1125
  71. package/behaviors/exports/organisms/std-helpdesk.orb +626 -407
  72. package/behaviors/exports/organisms/std-hr-portal.orb +1309 -714
  73. package/behaviors/exports/organisms/std-iot-dashboard.orb +1247 -335
  74. package/behaviors/exports/organisms/std-lms.orb +658 -362
  75. package/behaviors/exports/organisms/std-platformer-app.orb +56 -8
  76. package/behaviors/exports/organisms/std-project-manager.orb +1697 -1183
  77. package/behaviors/exports/organisms/std-puzzle-app.orb +20 -0
  78. package/behaviors/exports/organisms/std-realtime-chat.orb +552 -28
  79. package/behaviors/exports/organisms/std-rpg-game.orb +397 -56
  80. package/behaviors/exports/organisms/std-social-feed.orb +12 -8
  81. package/behaviors/exports/organisms/std-stem-lab.orb +175 -290
  82. package/behaviors/exports/organisms/std-strategy-game.orb +252 -395
  83. package/behaviors/exports/organisms/std-trading-dashboard.orb +718 -524
  84. package/behaviors/exports/validation-report.json +252 -252
  85. package/behaviors/exports/verify-results.json +13 -0
  86. package/dist/behaviors/exports/atoms/std-async.orb +41 -24
  87. package/dist/behaviors/exports/atoms/std-browse.orb +12 -5
  88. package/dist/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  89. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  90. package/dist/behaviors/exports/atoms/std-collision.orb +278 -206
  91. package/dist/behaviors/exports/atoms/std-combat-log.orb +6 -1
  92. package/dist/behaviors/exports/atoms/std-combat.orb +6 -1
  93. package/dist/behaviors/exports/atoms/std-confirmation.orb +212 -7
  94. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  95. package/dist/behaviors/exports/atoms/std-display.orb +166 -21
  96. package/dist/behaviors/exports/atoms/std-drawer.orb +208 -104
  97. package/dist/behaviors/exports/atoms/std-filter.orb +211 -18
  98. package/dist/behaviors/exports/atoms/std-game-audio.orb +6 -1
  99. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  100. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  101. package/dist/behaviors/exports/atoms/std-game-hud.orb +6 -1
  102. package/dist/behaviors/exports/atoms/std-game-menu.orb +6 -1
  103. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  104. package/dist/behaviors/exports/atoms/std-gameflow.orb +100 -5
  105. package/dist/behaviors/exports/atoms/std-input.orb +142 -137
  106. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  107. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  108. package/dist/behaviors/exports/atoms/std-loading.orb +27 -76
  109. package/dist/behaviors/exports/atoms/std-modal.orb +177 -93
  110. package/dist/behaviors/exports/atoms/std-movement.orb +401 -31
  111. package/dist/behaviors/exports/atoms/std-notification.orb +46 -95
  112. package/dist/behaviors/exports/atoms/std-overworld.orb +44 -16
  113. package/dist/behaviors/exports/atoms/std-pagination.orb +26 -89
  114. package/dist/behaviors/exports/atoms/std-physics2d.orb +6 -1
  115. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  116. package/dist/behaviors/exports/atoms/std-quest.orb +309 -34
  117. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  118. package/dist/behaviors/exports/atoms/std-score-board.orb +6 -1
  119. package/dist/behaviors/exports/atoms/std-score.orb +211 -11
  120. package/dist/behaviors/exports/atoms/std-search.orb +28 -27
  121. package/dist/behaviors/exports/atoms/std-selection.orb +160 -121
  122. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  123. package/dist/behaviors/exports/atoms/std-sort.orb +134 -24
  124. package/dist/behaviors/exports/atoms/std-sprite.orb +6 -1
  125. package/dist/behaviors/exports/atoms/std-tabs.orb +25 -15
  126. package/dist/behaviors/exports/atoms/std-timer.orb +483 -91
  127. package/dist/behaviors/exports/atoms/std-undo.orb +211 -81
  128. package/dist/behaviors/exports/atoms/std-wizard.orb +31 -34
  129. package/dist/behaviors/exports/molecules/std-builder-game.orb +6 -1
  130. package/dist/behaviors/exports/molecules/std-cart.orb +6 -1
  131. package/dist/behaviors/exports/molecules/std-classifier-game.orb +6 -1
  132. package/dist/behaviors/exports/molecules/std-debugger-game.orb +6 -1
  133. package/dist/behaviors/exports/molecules/std-detail.orb +12 -5
  134. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +6 -1
  135. package/dist/behaviors/exports/molecules/std-geospatial.orb +28 -9
  136. package/dist/behaviors/exports/molecules/std-inventory.orb +28 -9
  137. package/dist/behaviors/exports/molecules/std-list.orb +392 -5
  138. package/dist/behaviors/exports/molecules/std-messaging.orb +12 -5
  139. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +6 -1
  140. package/dist/behaviors/exports/molecules/std-platformer-game.orb +40 -1
  141. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +26 -1
  142. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +6 -1
  143. package/dist/behaviors/exports/molecules/std-simulator-game.orb +6 -1
  144. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +40 -1
  145. package/dist/behaviors/exports/organisms/std-api-gateway.orb +1145 -403
  146. package/dist/behaviors/exports/organisms/std-arcade-game.orb +94 -4
  147. package/dist/behaviors/exports/organisms/std-booking-system.orb +2165 -1605
  148. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +581 -47
  149. package/dist/behaviors/exports/organisms/std-cms.orb +1713 -947
  150. package/dist/behaviors/exports/organisms/std-coding-academy.orb +180 -380
  151. package/dist/behaviors/exports/organisms/std-crm.orb +1669 -1153
  152. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +1430 -378
  153. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2361 -1601
  154. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +622 -438
  155. package/dist/behaviors/exports/organisms/std-healthcare.orb +1687 -1125
  156. package/dist/behaviors/exports/organisms/std-helpdesk.orb +626 -407
  157. package/dist/behaviors/exports/organisms/std-hr-portal.orb +1309 -714
  158. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +1247 -335
  159. package/dist/behaviors/exports/organisms/std-lms.orb +658 -362
  160. package/dist/behaviors/exports/organisms/std-platformer-app.orb +56 -8
  161. package/dist/behaviors/exports/organisms/std-project-manager.orb +1697 -1183
  162. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +20 -0
  163. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +552 -28
  164. package/dist/behaviors/exports/organisms/std-rpg-game.orb +397 -56
  165. package/dist/behaviors/exports/organisms/std-social-feed.orb +12 -8
  166. package/dist/behaviors/exports/organisms/std-stem-lab.orb +175 -290
  167. package/dist/behaviors/exports/organisms/std-strategy-game.orb +252 -395
  168. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +718 -524
  169. package/dist/behaviors/exports/validation-report.json +252 -252
  170. package/dist/behaviors/exports/verify-results.json +13 -0
  171. package/dist/behaviors/functions/index.js +715 -593
  172. package/dist/behaviors/functions/index.js.map +1 -1
  173. package/dist/behaviors/index.js +715 -593
  174. package/dist/behaviors/index.js.map +1 -1
  175. package/dist/exports/atoms/std-async.orb +41 -24
  176. package/dist/exports/atoms/std-browse.orb +12 -5
  177. package/dist/exports/atoms/std-cache-aside.orb +256 -42
  178. package/dist/exports/atoms/std-circuit-breaker.orb +577 -97
  179. package/dist/exports/atoms/std-collision.orb +278 -206
  180. package/dist/exports/atoms/std-combat-log.orb +6 -1
  181. package/dist/exports/atoms/std-combat.orb +6 -1
  182. package/dist/exports/atoms/std-confirmation.orb +212 -7
  183. package/dist/exports/atoms/std-dialogue-box.orb +6 -1
  184. package/dist/exports/atoms/std-display.orb +166 -21
  185. package/dist/exports/atoms/std-drawer.orb +208 -104
  186. package/dist/exports/atoms/std-filter.orb +211 -18
  187. package/dist/exports/atoms/std-game-audio.orb +6 -1
  188. package/dist/exports/atoms/std-game-canvas2d.orb +6 -1
  189. package/dist/exports/atoms/std-game-canvas3d.orb +6 -1
  190. package/dist/exports/atoms/std-game-hud.orb +6 -1
  191. package/dist/exports/atoms/std-game-menu.orb +6 -1
  192. package/dist/exports/atoms/std-game-over-screen.orb +6 -1
  193. package/dist/exports/atoms/std-gameflow.orb +100 -5
  194. package/dist/exports/atoms/std-input.orb +142 -137
  195. package/dist/exports/atoms/std-inventory-panel.orb +6 -1
  196. package/dist/exports/atoms/std-isometric-canvas.orb +6 -1
  197. package/dist/exports/atoms/std-loading.orb +27 -76
  198. package/dist/exports/atoms/std-modal.orb +177 -93
  199. package/dist/exports/atoms/std-movement.orb +401 -31
  200. package/dist/exports/atoms/std-notification.orb +46 -95
  201. package/dist/exports/atoms/std-overworld.orb +44 -16
  202. package/dist/exports/atoms/std-pagination.orb +26 -89
  203. package/dist/exports/atoms/std-physics2d.orb +6 -1
  204. package/dist/exports/atoms/std-platformer-canvas.orb +6 -1
  205. package/dist/exports/atoms/std-quest.orb +309 -34
  206. package/dist/exports/atoms/std-rate-limiter.orb +410 -157
  207. package/dist/exports/atoms/std-score-board.orb +6 -1
  208. package/dist/exports/atoms/std-score.orb +211 -11
  209. package/dist/exports/atoms/std-search.orb +28 -27
  210. package/dist/exports/atoms/std-selection.orb +160 -121
  211. package/dist/exports/atoms/std-simulation-canvas.orb +6 -1
  212. package/dist/exports/atoms/std-sort.orb +134 -24
  213. package/dist/exports/atoms/std-sprite.orb +6 -1
  214. package/dist/exports/atoms/std-tabs.orb +25 -15
  215. package/dist/exports/atoms/std-timer.orb +483 -91
  216. package/dist/exports/atoms/std-undo.orb +211 -81
  217. package/dist/exports/atoms/std-wizard.orb +31 -34
  218. package/dist/exports/molecules/std-builder-game.orb +6 -1
  219. package/dist/exports/molecules/std-cart.orb +6 -1
  220. package/dist/exports/molecules/std-classifier-game.orb +6 -1
  221. package/dist/exports/molecules/std-debugger-game.orb +6 -1
  222. package/dist/exports/molecules/std-detail.orb +12 -5
  223. package/dist/exports/molecules/std-event-handler-game.orb +6 -1
  224. package/dist/exports/molecules/std-geospatial.orb +28 -9
  225. package/dist/exports/molecules/std-inventory.orb +28 -9
  226. package/dist/exports/molecules/std-list.orb +392 -5
  227. package/dist/exports/molecules/std-messaging.orb +12 -5
  228. package/dist/exports/molecules/std-negotiator-game.orb +6 -1
  229. package/dist/exports/molecules/std-platformer-game.orb +40 -1
  230. package/dist/exports/molecules/std-puzzle-game.orb +26 -1
  231. package/dist/exports/molecules/std-sequencer-game.orb +6 -1
  232. package/dist/exports/molecules/std-simulator-game.orb +6 -1
  233. package/dist/exports/molecules/std-turn-based-battle.orb +40 -1
  234. package/dist/exports/organisms/std-api-gateway.orb +1145 -403
  235. package/dist/exports/organisms/std-arcade-game.orb +94 -4
  236. package/dist/exports/organisms/std-booking-system.orb +2165 -1605
  237. package/dist/exports/organisms/std-cicd-pipeline.orb +581 -47
  238. package/dist/exports/organisms/std-cms.orb +1713 -947
  239. package/dist/exports/organisms/std-coding-academy.orb +180 -380
  240. package/dist/exports/organisms/std-crm.orb +1669 -1153
  241. package/dist/exports/organisms/std-devops-dashboard.orb +1430 -378
  242. package/dist/exports/organisms/std-ecommerce.orb +2361 -1601
  243. package/dist/exports/organisms/std-finance-tracker.orb +622 -438
  244. package/dist/exports/organisms/std-healthcare.orb +1687 -1125
  245. package/dist/exports/organisms/std-helpdesk.orb +626 -407
  246. package/dist/exports/organisms/std-hr-portal.orb +1309 -714
  247. package/dist/exports/organisms/std-iot-dashboard.orb +1247 -335
  248. package/dist/exports/organisms/std-lms.orb +658 -362
  249. package/dist/exports/organisms/std-platformer-app.orb +56 -8
  250. package/dist/exports/organisms/std-project-manager.orb +1697 -1183
  251. package/dist/exports/organisms/std-puzzle-app.orb +20 -0
  252. package/dist/exports/organisms/std-realtime-chat.orb +552 -28
  253. package/dist/exports/organisms/std-rpg-game.orb +397 -56
  254. package/dist/exports/organisms/std-social-feed.orb +12 -8
  255. package/dist/exports/organisms/std-stem-lab.orb +175 -290
  256. package/dist/exports/organisms/std-strategy-game.orb +252 -395
  257. package/dist/exports/organisms/std-trading-dashboard.orb +718 -524
  258. package/dist/exports/validation-report.json +252 -252
  259. package/dist/exports/verify-results.json +13 -0
  260. package/dist/index.js +715 -593
  261. package/dist/index.js.map +1 -1
  262. package/package.json +1 -1
@@ -225,7 +225,9 @@
225
225
  }
226
226
  ],
227
227
  "className": "transition-shadow hover:shadow-md cursor-pointer",
228
- "children": [
228
+ "renderItem": [
229
+ "fn",
230
+ "item",
229
231
  {
230
232
  "type": "stack",
231
233
  "direction": "vertical",
@@ -251,13 +253,13 @@
251
253
  {
252
254
  "type": "typography",
253
255
  "variant": "h4",
254
- "content": "@entity.name"
256
+ "content": "@item.name"
255
257
  }
256
258
  ]
257
259
  },
258
260
  {
259
261
  "type": "badge",
260
- "label": "@entity.company"
262
+ "label": "@item.company"
261
263
  }
262
264
  ]
263
265
  },
@@ -265,7 +267,7 @@
265
267
  "type": "typography",
266
268
  "variant": "caption",
267
269
  "color": "muted",
268
- "content": "@entity.email"
270
+ "content": "@item.email"
269
271
  }
270
272
  ]
271
273
  }
@@ -383,144 +385,55 @@
383
385
  "modal",
384
386
  null
385
387
  ],
386
- [
387
- "fetch",
388
- "Contact"
389
- ],
390
- [
391
- "notify",
392
- "Contact deleted successfully"
393
- ]
394
- ]
395
- },
396
- {
397
- "from": "deleting",
398
- "to": "browsing",
399
- "event": "CANCEL",
400
- "effects": [
401
- [
402
- "render-ui",
403
- "modal",
404
- null
405
- ]
406
- ]
407
- },
408
- {
409
- "from": "deleting",
410
- "to": "browsing",
411
- "event": "CLOSE",
412
- "effects": [
413
- [
414
- "render-ui",
415
- "modal",
416
- null
417
- ]
418
- ]
419
- }
420
- ]
421
- },
422
- "emits": [
423
- {
424
- "event": "CONVERT_LEAD",
425
- "description": "Convert contact lead to a deal",
426
- "payload": [
427
- {
428
- "name": "id",
429
- "type": "string",
430
- "required": true
431
- }
432
- ],
433
- "scope": "external"
434
- }
435
- ]
436
- },
437
- {
438
- "name": "ContactCreate",
439
- "linkedEntity": "Contact",
440
- "category": "interaction",
441
- "emits": [
442
- {
443
- "event": "CONTACT_CREATED"
444
- }
445
- ],
446
- "stateMachine": {
447
- "states": [
448
- {
449
- "name": "closed",
450
- "isInitial": true
451
- },
452
- {
453
- "name": "open"
454
- }
455
- ],
456
- "events": [
457
- {
458
- "key": "INIT",
459
- "name": "Initialize"
460
- },
461
- {
462
- "key": "CREATE",
463
- "name": "Open"
464
- },
465
- {
466
- "key": "CLOSE",
467
- "name": "Close"
468
- },
469
- {
470
- "key": "SAVE",
471
- "name": "Save",
472
- "payload": [
473
- {
474
- "name": "data",
475
- "type": "object",
476
- "required": true
477
- }
478
- ]
479
- }
480
- ],
481
- "transitions": [
482
- {
483
- "from": "closed",
484
- "to": "closed",
485
- "event": "INIT",
486
- "effects": [
487
- [
488
- "fetch",
489
- "Contact"
490
- ]
491
- ]
492
- },
493
- {
494
- "from": "closed",
495
- "to": "open",
496
- "event": "CREATE",
497
- "effects": [
498
388
  [
499
389
  "fetch",
500
390
  "Contact"
501
391
  ],
502
392
  [
503
393
  "render-ui",
504
- "modal",
394
+ "main",
505
395
  {
506
396
  "type": "stack",
507
397
  "direction": "vertical",
508
- "gap": "md",
398
+ "gap": "lg",
509
399
  "children": [
510
400
  {
511
401
  "type": "stack",
512
402
  "direction": "horizontal",
513
- "gap": "sm",
403
+ "gap": "md",
404
+ "justify": "space-between",
514
405
  "children": [
515
406
  {
516
- "type": "icon",
517
- "name": "plus-circle",
518
- "size": "md"
407
+ "type": "stack",
408
+ "direction": "horizontal",
409
+ "gap": "sm",
410
+ "align": "center",
411
+ "children": [
412
+ {
413
+ "type": "icon",
414
+ "name": "users",
415
+ "size": "lg"
416
+ },
417
+ {
418
+ "type": "typography",
419
+ "content": "Contacts",
420
+ "variant": "h2"
421
+ }
422
+ ]
519
423
  },
520
424
  {
521
- "type": "typography",
522
- "content": "New Contact",
523
- "variant": "h3"
425
+ "type": "stack",
426
+ "direction": "horizontal",
427
+ "gap": "sm",
428
+ "children": [
429
+ {
430
+ "type": "button",
431
+ "label": "Add Contact",
432
+ "event": "CREATE",
433
+ "variant": "primary",
434
+ "icon": "plus"
435
+ }
436
+ ]
524
437
  }
525
438
  ]
526
439
  },
@@ -528,46 +441,93 @@
528
441
  "type": "divider"
529
442
  },
530
443
  {
531
- "type": "form-section",
444
+ "type": "data-grid",
532
445
  "entity": "Contact",
533
- "mode": "create",
534
- "submitEvent": "SAVE",
535
- "cancelEvent": "CLOSE",
536
- "fields": [
537
- "name",
538
- "company",
539
- "email",
540
- "phone",
541
- "status"
446
+ "emptyIcon": "inbox",
447
+ "emptyTitle": "No contacts yet",
448
+ "emptyDescription": "Create your first contact to get started.",
449
+ "itemActions": [
450
+ {
451
+ "label": "View",
452
+ "event": "VIEW"
453
+ },
454
+ {
455
+ "label": "Edit",
456
+ "event": "EDIT"
457
+ },
458
+ {
459
+ "label": "Delete",
460
+ "event": "DELETE",
461
+ "variant": "danger"
462
+ }
463
+ ],
464
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
465
+ "renderItem": [
466
+ "fn",
467
+ "item",
468
+ {
469
+ "type": "stack",
470
+ "direction": "vertical",
471
+ "gap": "sm",
472
+ "children": [
473
+ {
474
+ "type": "stack",
475
+ "direction": "horizontal",
476
+ "justify": "space-between",
477
+ "align": "center",
478
+ "children": [
479
+ {
480
+ "type": "stack",
481
+ "direction": "horizontal",
482
+ "gap": "sm",
483
+ "align": "center",
484
+ "children": [
485
+ {
486
+ "type": "icon",
487
+ "name": "users",
488
+ "size": "sm"
489
+ },
490
+ {
491
+ "type": "typography",
492
+ "variant": "h4",
493
+ "content": "@item.name"
494
+ }
495
+ ]
496
+ },
497
+ {
498
+ "type": "badge",
499
+ "label": "@item.company"
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ "type": "typography",
505
+ "variant": "caption",
506
+ "color": "muted",
507
+ "content": "@item.email"
508
+ }
509
+ ]
510
+ }
542
511
  ]
543
512
  }
544
513
  ]
545
514
  }
515
+ ],
516
+ [
517
+ "notify",
518
+ "Contact deleted successfully"
546
519
  ]
547
520
  ]
548
521
  },
549
522
  {
550
- "from": "open",
551
- "to": "closed",
552
- "event": "CLOSE",
523
+ "from": "deleting",
524
+ "to": "browsing",
525
+ "event": "CANCEL",
553
526
  "effects": [
554
527
  [
555
528
  "render-ui",
556
529
  "modal",
557
530
  null
558
- ]
559
- ]
560
- },
561
- {
562
- "from": "open",
563
- "to": "closed",
564
- "event": "SAVE",
565
- "effects": [
566
- [
567
- "persist",
568
- "create",
569
- "Contact",
570
- "@payload.data"
571
531
  ],
572
532
  [
573
533
  "fetch",
@@ -575,117 +535,49 @@
575
535
  ],
576
536
  [
577
537
  "render-ui",
578
- "modal",
579
- null
580
- ],
581
- [
582
- "emit",
583
- "CONTACT_CREATED"
584
- ],
585
- [
586
- "notify",
587
- "Contact created successfully"
588
- ]
589
- ]
590
- }
591
- ]
592
- }
593
- },
594
- {
595
- "name": "ContactEdit",
596
- "linkedEntity": "Contact",
597
- "category": "interaction",
598
- "emits": [
599
- {
600
- "event": "CONTACT_UPDATED"
601
- }
602
- ],
603
- "stateMachine": {
604
- "states": [
605
- {
606
- "name": "closed",
607
- "isInitial": true
608
- },
609
- {
610
- "name": "open"
611
- }
612
- ],
613
- "events": [
614
- {
615
- "key": "INIT",
616
- "name": "Initialize"
617
- },
618
- {
619
- "key": "EDIT",
620
- "name": "Open",
621
- "payload": [
622
- {
623
- "name": "id",
624
- "type": "string",
625
- "required": true
626
- }
627
- ]
628
- },
629
- {
630
- "key": "CLOSE",
631
- "name": "Close"
632
- },
633
- {
634
- "key": "SAVE",
635
- "name": "Save",
636
- "payload": [
637
- {
638
- "name": "data",
639
- "type": "object",
640
- "required": true
641
- }
642
- ]
643
- }
644
- ],
645
- "transitions": [
646
- {
647
- "from": "closed",
648
- "to": "closed",
649
- "event": "INIT",
650
- "effects": [
651
- [
652
- "fetch",
653
- "Contact"
654
- ]
655
- ]
656
- },
657
- {
658
- "from": "closed",
659
- "to": "open",
660
- "event": "EDIT",
661
- "effects": [
662
- [
663
- "fetch",
664
- "Contact",
665
- "@payload.id"
666
- ],
667
- [
668
- "render-ui",
669
- "modal",
538
+ "main",
670
539
  {
671
540
  "type": "stack",
672
541
  "direction": "vertical",
673
- "gap": "md",
542
+ "gap": "lg",
674
543
  "children": [
675
544
  {
676
545
  "type": "stack",
677
546
  "direction": "horizontal",
678
- "gap": "sm",
547
+ "gap": "md",
548
+ "justify": "space-between",
679
549
  "children": [
680
550
  {
681
- "type": "icon",
682
- "name": "edit",
683
- "size": "md"
551
+ "type": "stack",
552
+ "direction": "horizontal",
553
+ "gap": "sm",
554
+ "align": "center",
555
+ "children": [
556
+ {
557
+ "type": "icon",
558
+ "name": "users",
559
+ "size": "lg"
560
+ },
561
+ {
562
+ "type": "typography",
563
+ "content": "Contacts",
564
+ "variant": "h2"
565
+ }
566
+ ]
684
567
  },
685
568
  {
686
- "type": "typography",
687
- "content": "Edit Contact",
688
- "variant": "h3"
569
+ "type": "stack",
570
+ "direction": "horizontal",
571
+ "gap": "sm",
572
+ "children": [
573
+ {
574
+ "type": "button",
575
+ "label": "Add Contact",
576
+ "event": "CREATE",
577
+ "variant": "primary",
578
+ "icon": "plus"
579
+ }
580
+ ]
689
581
  }
690
582
  ]
691
583
  },
@@ -693,19 +585,74 @@
693
585
  "type": "divider"
694
586
  },
695
587
  {
696
- "type": "form-section",
588
+ "type": "data-grid",
697
589
  "entity": "Contact",
698
- "mode": "edit",
699
- "submitEvent": "SAVE",
700
- "cancelEvent": "CLOSE",
701
- "fields": [
702
- "name",
703
- "company",
704
- "email",
705
- "phone",
706
- "status"
590
+ "emptyIcon": "inbox",
591
+ "emptyTitle": "No contacts yet",
592
+ "emptyDescription": "Create your first contact to get started.",
593
+ "itemActions": [
594
+ {
595
+ "label": "View",
596
+ "event": "VIEW"
597
+ },
598
+ {
599
+ "label": "Edit",
600
+ "event": "EDIT"
601
+ },
602
+ {
603
+ "label": "Delete",
604
+ "event": "DELETE",
605
+ "variant": "danger"
606
+ }
707
607
  ],
708
- "entityId": "@entity.id"
608
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
609
+ "renderItem": [
610
+ "fn",
611
+ "item",
612
+ {
613
+ "type": "stack",
614
+ "direction": "vertical",
615
+ "gap": "sm",
616
+ "children": [
617
+ {
618
+ "type": "stack",
619
+ "direction": "horizontal",
620
+ "justify": "space-between",
621
+ "align": "center",
622
+ "children": [
623
+ {
624
+ "type": "stack",
625
+ "direction": "horizontal",
626
+ "gap": "sm",
627
+ "align": "center",
628
+ "children": [
629
+ {
630
+ "type": "icon",
631
+ "name": "users",
632
+ "size": "sm"
633
+ },
634
+ {
635
+ "type": "typography",
636
+ "variant": "h4",
637
+ "content": "@item.name"
638
+ }
639
+ ]
640
+ },
641
+ {
642
+ "type": "badge",
643
+ "label": "@item.company"
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "type": "typography",
649
+ "variant": "caption",
650
+ "color": "muted",
651
+ "content": "@item.email"
652
+ }
653
+ ]
654
+ }
655
+ ]
709
656
  }
710
657
  ]
711
658
  }
@@ -713,27 +660,14 @@
713
660
  ]
714
661
  },
715
662
  {
716
- "from": "open",
717
- "to": "closed",
663
+ "from": "deleting",
664
+ "to": "browsing",
718
665
  "event": "CLOSE",
719
666
  "effects": [
720
667
  [
721
668
  "render-ui",
722
669
  "modal",
723
670
  null
724
- ]
725
- ]
726
- },
727
- {
728
- "from": "open",
729
- "to": "closed",
730
- "event": "SAVE",
731
- "effects": [
732
- [
733
- "persist",
734
- "update",
735
- "Contact",
736
- "@payload.data"
737
671
  ],
738
672
  [
739
673
  "fetch",
@@ -741,55 +675,189 @@
741
675
  ],
742
676
  [
743
677
  "render-ui",
744
- "modal",
745
- null
746
- ],
747
- [
748
- "emit",
749
- "CONTACT_UPDATED"
750
- ],
751
- [
752
- "notify",
753
- "Contact updated successfully"
754
- ]
755
- ]
756
- }
757
- ]
758
- }
759
- },
760
- {
761
- "name": "ContactView",
762
- "linkedEntity": "Contact",
763
- "category": "interaction",
764
- "stateMachine": {
765
- "states": [
766
- {
767
- "name": "closed",
768
- "isInitial": true
769
- },
770
- {
771
- "name": "open"
772
- }
773
- ],
774
- "events": [
775
- {
776
- "key": "INIT",
777
- "name": "Initialize"
778
- },
779
- {
780
- "key": "VIEW",
781
- "name": "Open",
782
- "payload": [
783
- {
784
- "name": "id",
785
- "type": "string",
786
- "required": true
787
- }
788
- ]
678
+ "main",
679
+ {
680
+ "type": "stack",
681
+ "direction": "vertical",
682
+ "gap": "lg",
683
+ "children": [
684
+ {
685
+ "type": "stack",
686
+ "direction": "horizontal",
687
+ "gap": "md",
688
+ "justify": "space-between",
689
+ "children": [
690
+ {
691
+ "type": "stack",
692
+ "direction": "horizontal",
693
+ "gap": "sm",
694
+ "align": "center",
695
+ "children": [
696
+ {
697
+ "type": "icon",
698
+ "name": "users",
699
+ "size": "lg"
700
+ },
701
+ {
702
+ "type": "typography",
703
+ "content": "Contacts",
704
+ "variant": "h2"
705
+ }
706
+ ]
707
+ },
708
+ {
709
+ "type": "stack",
710
+ "direction": "horizontal",
711
+ "gap": "sm",
712
+ "children": [
713
+ {
714
+ "type": "button",
715
+ "label": "Add Contact",
716
+ "event": "CREATE",
717
+ "variant": "primary",
718
+ "icon": "plus"
719
+ }
720
+ ]
721
+ }
722
+ ]
723
+ },
724
+ {
725
+ "type": "divider"
726
+ },
727
+ {
728
+ "type": "data-grid",
729
+ "entity": "Contact",
730
+ "emptyIcon": "inbox",
731
+ "emptyTitle": "No contacts yet",
732
+ "emptyDescription": "Create your first contact to get started.",
733
+ "itemActions": [
734
+ {
735
+ "label": "View",
736
+ "event": "VIEW"
737
+ },
738
+ {
739
+ "label": "Edit",
740
+ "event": "EDIT"
741
+ },
742
+ {
743
+ "label": "Delete",
744
+ "event": "DELETE",
745
+ "variant": "danger"
746
+ }
747
+ ],
748
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
749
+ "renderItem": [
750
+ "fn",
751
+ "item",
752
+ {
753
+ "type": "stack",
754
+ "direction": "vertical",
755
+ "gap": "sm",
756
+ "children": [
757
+ {
758
+ "type": "stack",
759
+ "direction": "horizontal",
760
+ "justify": "space-between",
761
+ "align": "center",
762
+ "children": [
763
+ {
764
+ "type": "stack",
765
+ "direction": "horizontal",
766
+ "gap": "sm",
767
+ "align": "center",
768
+ "children": [
769
+ {
770
+ "type": "icon",
771
+ "name": "users",
772
+ "size": "sm"
773
+ },
774
+ {
775
+ "type": "typography",
776
+ "variant": "h4",
777
+ "content": "@item.name"
778
+ }
779
+ ]
780
+ },
781
+ {
782
+ "type": "badge",
783
+ "label": "@item.company"
784
+ }
785
+ ]
786
+ },
787
+ {
788
+ "type": "typography",
789
+ "variant": "caption",
790
+ "color": "muted",
791
+ "content": "@item.email"
792
+ }
793
+ ]
794
+ }
795
+ ]
796
+ }
797
+ ]
798
+ }
799
+ ]
800
+ ]
801
+ }
802
+ ]
803
+ },
804
+ "emits": [
805
+ {
806
+ "event": "CONVERT_LEAD",
807
+ "description": "Convert contact lead to a deal",
808
+ "payload": [
809
+ {
810
+ "name": "id",
811
+ "type": "string",
812
+ "required": true
813
+ }
814
+ ],
815
+ "scope": "external"
816
+ }
817
+ ]
818
+ },
819
+ {
820
+ "name": "ContactCreate",
821
+ "linkedEntity": "Contact",
822
+ "category": "interaction",
823
+ "emits": [
824
+ {
825
+ "event": "CONTACT_CREATED"
826
+ }
827
+ ],
828
+ "stateMachine": {
829
+ "states": [
830
+ {
831
+ "name": "closed",
832
+ "isInitial": true
833
+ },
834
+ {
835
+ "name": "open"
836
+ }
837
+ ],
838
+ "events": [
839
+ {
840
+ "key": "INIT",
841
+ "name": "Initialize"
842
+ },
843
+ {
844
+ "key": "CREATE",
845
+ "name": "Open"
789
846
  },
790
847
  {
791
848
  "key": "CLOSE",
792
849
  "name": "Close"
850
+ },
851
+ {
852
+ "key": "SAVE",
853
+ "name": "Save",
854
+ "payload": [
855
+ {
856
+ "name": "data",
857
+ "type": "object",
858
+ "required": true
859
+ }
860
+ ]
793
861
  }
794
862
  ],
795
863
  "transitions": [
@@ -807,12 +875,11 @@
807
875
  {
808
876
  "from": "closed",
809
877
  "to": "open",
810
- "event": "VIEW",
878
+ "event": "CREATE",
811
879
  "effects": [
812
880
  [
813
881
  "fetch",
814
- "Contact",
815
- "@payload.id"
882
+ "Contact"
816
883
  ],
817
884
  [
818
885
  "render-ui",
@@ -826,17 +893,16 @@
826
893
  "type": "stack",
827
894
  "direction": "horizontal",
828
895
  "gap": "sm",
829
- "align": "center",
830
896
  "children": [
831
897
  {
832
898
  "type": "icon",
833
- "name": "eye",
899
+ "name": "plus-circle",
834
900
  "size": "md"
835
901
  },
836
902
  {
837
903
  "type": "typography",
838
- "variant": "h3",
839
- "content": "@entity.name"
904
+ "content": "New Contact",
905
+ "variant": "h3"
840
906
  }
841
907
  ]
842
908
  },
@@ -844,112 +910,17 @@
844
910
  "type": "divider"
845
911
  },
846
912
  {
847
- "type": "stack",
848
- "direction": "horizontal",
849
- "gap": "md",
850
- "children": [
851
- {
852
- "type": "typography",
853
- "variant": "caption",
854
- "content": "Name"
855
- },
856
- {
857
- "type": "typography",
858
- "variant": "body",
859
- "content": "@entity.name"
860
- }
861
- ]
862
- },
863
- {
864
- "type": "stack",
865
- "direction": "horizontal",
866
- "gap": "md",
867
- "children": [
868
- {
869
- "type": "typography",
870
- "variant": "caption",
871
- "content": "Company"
872
- },
873
- {
874
- "type": "typography",
875
- "variant": "body",
876
- "content": "@entity.company"
877
- }
878
- ]
879
- },
880
- {
881
- "type": "stack",
882
- "direction": "horizontal",
883
- "gap": "md",
884
- "children": [
885
- {
886
- "type": "typography",
887
- "variant": "caption",
888
- "content": "Email"
889
- },
890
- {
891
- "type": "typography",
892
- "variant": "body",
893
- "content": "@entity.email"
894
- }
895
- ]
896
- },
897
- {
898
- "type": "stack",
899
- "direction": "horizontal",
900
- "gap": "md",
901
- "children": [
902
- {
903
- "type": "typography",
904
- "variant": "caption",
905
- "content": "Phone"
906
- },
907
- {
908
- "type": "typography",
909
- "variant": "body",
910
- "content": "@entity.phone"
911
- }
912
- ]
913
- },
914
- {
915
- "type": "stack",
916
- "direction": "horizontal",
917
- "gap": "md",
918
- "children": [
919
- {
920
- "type": "typography",
921
- "variant": "caption",
922
- "content": "Status"
923
- },
924
- {
925
- "type": "typography",
926
- "variant": "body",
927
- "content": "@entity.status"
928
- }
929
- ]
930
- },
931
- {
932
- "type": "divider"
933
- },
934
- {
935
- "type": "stack",
936
- "direction": "horizontal",
937
- "gap": "sm",
938
- "justify": "end",
939
- "children": [
940
- {
941
- "type": "button",
942
- "label": "Edit",
943
- "event": "EDIT",
944
- "variant": "primary",
945
- "icon": "edit"
946
- },
947
- {
948
- "type": "button",
949
- "label": "Close",
950
- "event": "CLOSE",
951
- "variant": "ghost"
952
- }
913
+ "type": "form-section",
914
+ "entity": "Contact",
915
+ "mode": "create",
916
+ "submitEvent": "SAVE",
917
+ "cancelEvent": "CLOSE",
918
+ "fields": [
919
+ "name",
920
+ "company",
921
+ "email",
922
+ "phone",
923
+ "status"
953
924
  ]
954
925
  }
955
926
  ]
@@ -968,99 +939,57 @@
968
939
  null
969
940
  ]
970
941
  ]
942
+ },
943
+ {
944
+ "from": "open",
945
+ "to": "closed",
946
+ "event": "SAVE",
947
+ "effects": [
948
+ [
949
+ "persist",
950
+ "create",
951
+ "Contact",
952
+ "@payload.data"
953
+ ],
954
+ [
955
+ "fetch",
956
+ "Contact"
957
+ ],
958
+ [
959
+ "render-ui",
960
+ "modal",
961
+ null
962
+ ],
963
+ [
964
+ "emit",
965
+ "CONTACT_CREATED"
966
+ ],
967
+ [
968
+ "notify",
969
+ "Contact created successfully"
970
+ ]
971
+ ]
971
972
  }
972
973
  ]
973
974
  }
974
- }
975
- ],
976
- "pages": [
977
- {
978
- "name": "ContactsPage",
979
- "path": "/contacts",
980
- "isInitial": true,
981
- "traits": [
982
- {
983
- "ref": "ContactBrowse"
984
- },
985
- {
986
- "ref": "ContactCreate"
987
- },
988
- {
989
- "ref": "ContactEdit"
990
- },
991
- {
992
- "ref": "ContactView"
993
- }
994
- ]
995
- }
996
- ]
997
- },
998
- {
999
- "name": "DealOrbital",
1000
- "entity": {
1001
- "name": "Deal",
1002
- "persistence": "runtime",
1003
- "fields": [
1004
- {
1005
- "name": "id",
1006
- "type": "string",
1007
- "required": true
1008
- },
1009
- {
1010
- "name": "title",
1011
- "type": "string",
1012
- "default": ""
1013
- },
1014
- {
1015
- "name": "contactId",
1016
- "type": "string",
1017
- "default": ""
1018
- },
1019
- {
1020
- "name": "value",
1021
- "type": "number",
1022
- "default": 0
1023
- },
1024
- {
1025
- "name": "stage",
1026
- "type": "string",
1027
- "default": "prospecting"
1028
- },
1029
- {
1030
- "name": "closedAt",
1031
- "type": "string",
1032
- "default": ""
1033
- }
1034
- ]
1035
- },
1036
- "traits": [
975
+ },
1037
976
  {
1038
- "name": "DealBrowse",
1039
- "linkedEntity": "Deal",
977
+ "name": "ContactEdit",
978
+ "linkedEntity": "Contact",
1040
979
  "category": "interaction",
1041
- "listens": [
1042
- {
1043
- "event": "DEAL_CREATED",
1044
- "triggers": "DEAL_CREATED"
1045
- },
1046
- {
1047
- "event": "DEAL_UPDATED",
1048
- "triggers": "DEAL_UPDATED"
1049
- },
980
+ "emits": [
1050
981
  {
1051
- "event": "CONVERT_LEAD",
1052
- "triggers": "INIT",
1053
- "scope": "external"
982
+ "event": "CONTACT_UPDATED"
1054
983
  }
1055
984
  ],
1056
985
  "stateMachine": {
1057
986
  "states": [
1058
987
  {
1059
- "name": "browsing",
988
+ "name": "closed",
1060
989
  "isInitial": true
1061
990
  },
1062
991
  {
1063
- "name": "deleting"
992
+ "name": "open"
1064
993
  }
1065
994
  ],
1066
995
  "events": [
@@ -1068,24 +997,9 @@
1068
997
  "key": "INIT",
1069
998
  "name": "Initialize"
1070
999
  },
1071
- {
1072
- "key": "CREATE",
1073
- "name": "CREATE"
1074
- },
1075
- {
1076
- "key": "VIEW",
1077
- "name": "VIEW",
1078
- "payload": [
1079
- {
1080
- "name": "id",
1081
- "type": "string",
1082
- "required": true
1083
- }
1084
- ]
1085
- },
1086
1000
  {
1087
1001
  "key": "EDIT",
1088
- "name": "EDIT",
1002
+ "name": "Open",
1089
1003
  "payload": [
1090
1004
  {
1091
1005
  "name": "id",
@@ -1095,19 +1009,12 @@
1095
1009
  ]
1096
1010
  },
1097
1011
  {
1098
- "key": "DELETE",
1099
- "name": "DELETE",
1100
- "payload": [
1101
- {
1102
- "name": "id",
1103
- "type": "string",
1104
- "required": true
1105
- }
1106
- ]
1012
+ "key": "CLOSE",
1013
+ "name": "Close"
1107
1014
  },
1108
1015
  {
1109
- "key": "DEAL_CREATED",
1110
- "name": "DEAL_CREATED",
1016
+ "key": "SAVE",
1017
+ "name": "Save",
1111
1018
  "payload": [
1112
1019
  {
1113
1020
  "name": "data",
@@ -1115,37 +1022,893 @@
1115
1022
  "required": true
1116
1023
  }
1117
1024
  ]
1025
+ }
1026
+ ],
1027
+ "transitions": [
1028
+ {
1029
+ "from": "closed",
1030
+ "to": "closed",
1031
+ "event": "INIT",
1032
+ "effects": [
1033
+ [
1034
+ "fetch",
1035
+ "Contact"
1036
+ ]
1037
+ ]
1118
1038
  },
1119
1039
  {
1120
- "key": "DEAL_UPDATED",
1121
- "name": "DEAL_UPDATED",
1122
- "payload": [
1123
- {
1124
- "name": "data",
1125
- "type": "object",
1126
- "required": true
1127
- }
1040
+ "from": "closed",
1041
+ "to": "open",
1042
+ "event": "EDIT",
1043
+ "effects": [
1044
+ [
1045
+ "fetch",
1046
+ "Contact",
1047
+ "@payload.id"
1048
+ ],
1049
+ [
1050
+ "render-ui",
1051
+ "modal",
1052
+ {
1053
+ "type": "stack",
1054
+ "direction": "vertical",
1055
+ "gap": "md",
1056
+ "children": [
1057
+ {
1058
+ "type": "stack",
1059
+ "direction": "horizontal",
1060
+ "gap": "sm",
1061
+ "children": [
1062
+ {
1063
+ "type": "icon",
1064
+ "name": "edit",
1065
+ "size": "md"
1066
+ },
1067
+ {
1068
+ "type": "typography",
1069
+ "content": "Edit Contact",
1070
+ "variant": "h3"
1071
+ }
1072
+ ]
1073
+ },
1074
+ {
1075
+ "type": "divider"
1076
+ },
1077
+ {
1078
+ "type": "form-section",
1079
+ "entity": "Contact",
1080
+ "mode": "edit",
1081
+ "submitEvent": "SAVE",
1082
+ "cancelEvent": "CLOSE",
1083
+ "fields": [
1084
+ "name",
1085
+ "company",
1086
+ "email",
1087
+ "phone",
1088
+ "status"
1089
+ ],
1090
+ "entityId": "@entity.id"
1091
+ }
1092
+ ]
1093
+ }
1094
+ ]
1095
+ ]
1096
+ },
1097
+ {
1098
+ "from": "open",
1099
+ "to": "closed",
1100
+ "event": "CLOSE",
1101
+ "effects": [
1102
+ [
1103
+ "render-ui",
1104
+ "modal",
1105
+ null
1106
+ ]
1107
+ ]
1108
+ },
1109
+ {
1110
+ "from": "open",
1111
+ "to": "closed",
1112
+ "event": "SAVE",
1113
+ "effects": [
1114
+ [
1115
+ "persist",
1116
+ "update",
1117
+ "Contact",
1118
+ "@payload.data"
1119
+ ],
1120
+ [
1121
+ "fetch",
1122
+ "Contact"
1123
+ ],
1124
+ [
1125
+ "render-ui",
1126
+ "modal",
1127
+ null
1128
+ ],
1129
+ [
1130
+ "emit",
1131
+ "CONTACT_UPDATED"
1132
+ ],
1133
+ [
1134
+ "notify",
1135
+ "Contact updated successfully"
1136
+ ]
1137
+ ]
1138
+ }
1139
+ ]
1140
+ }
1141
+ },
1142
+ {
1143
+ "name": "ContactView",
1144
+ "linkedEntity": "Contact",
1145
+ "category": "interaction",
1146
+ "stateMachine": {
1147
+ "states": [
1148
+ {
1149
+ "name": "closed",
1150
+ "isInitial": true
1151
+ },
1152
+ {
1153
+ "name": "open"
1154
+ }
1155
+ ],
1156
+ "events": [
1157
+ {
1158
+ "key": "INIT",
1159
+ "name": "Initialize"
1160
+ },
1161
+ {
1162
+ "key": "VIEW",
1163
+ "name": "Open",
1164
+ "payload": [
1165
+ {
1166
+ "name": "id",
1167
+ "type": "string",
1168
+ "required": true
1169
+ }
1170
+ ]
1171
+ },
1172
+ {
1173
+ "key": "CLOSE",
1174
+ "name": "Close"
1175
+ }
1176
+ ],
1177
+ "transitions": [
1178
+ {
1179
+ "from": "closed",
1180
+ "to": "closed",
1181
+ "event": "INIT",
1182
+ "effects": [
1183
+ [
1184
+ "fetch",
1185
+ "Contact"
1186
+ ]
1187
+ ]
1188
+ },
1189
+ {
1190
+ "from": "closed",
1191
+ "to": "open",
1192
+ "event": "VIEW",
1193
+ "effects": [
1194
+ [
1195
+ "fetch",
1196
+ "Contact",
1197
+ "@payload.id"
1198
+ ],
1199
+ [
1200
+ "render-ui",
1201
+ "modal",
1202
+ {
1203
+ "type": "stack",
1204
+ "direction": "vertical",
1205
+ "gap": "md",
1206
+ "children": [
1207
+ {
1208
+ "type": "stack",
1209
+ "direction": "horizontal",
1210
+ "gap": "sm",
1211
+ "align": "center",
1212
+ "children": [
1213
+ {
1214
+ "type": "icon",
1215
+ "name": "eye",
1216
+ "size": "md"
1217
+ },
1218
+ {
1219
+ "type": "typography",
1220
+ "variant": "h3",
1221
+ "content": "@entity.name"
1222
+ }
1223
+ ]
1224
+ },
1225
+ {
1226
+ "type": "divider"
1227
+ },
1228
+ {
1229
+ "type": "stack",
1230
+ "direction": "horizontal",
1231
+ "gap": "md",
1232
+ "children": [
1233
+ {
1234
+ "type": "typography",
1235
+ "variant": "caption",
1236
+ "content": "Name"
1237
+ },
1238
+ {
1239
+ "type": "typography",
1240
+ "variant": "body",
1241
+ "content": "@entity.name"
1242
+ }
1243
+ ]
1244
+ },
1245
+ {
1246
+ "type": "stack",
1247
+ "direction": "horizontal",
1248
+ "gap": "md",
1249
+ "children": [
1250
+ {
1251
+ "type": "typography",
1252
+ "variant": "caption",
1253
+ "content": "Company"
1254
+ },
1255
+ {
1256
+ "type": "typography",
1257
+ "variant": "body",
1258
+ "content": "@entity.company"
1259
+ }
1260
+ ]
1261
+ },
1262
+ {
1263
+ "type": "stack",
1264
+ "direction": "horizontal",
1265
+ "gap": "md",
1266
+ "children": [
1267
+ {
1268
+ "type": "typography",
1269
+ "variant": "caption",
1270
+ "content": "Email"
1271
+ },
1272
+ {
1273
+ "type": "typography",
1274
+ "variant": "body",
1275
+ "content": "@entity.email"
1276
+ }
1277
+ ]
1278
+ },
1279
+ {
1280
+ "type": "stack",
1281
+ "direction": "horizontal",
1282
+ "gap": "md",
1283
+ "children": [
1284
+ {
1285
+ "type": "typography",
1286
+ "variant": "caption",
1287
+ "content": "Phone"
1288
+ },
1289
+ {
1290
+ "type": "typography",
1291
+ "variant": "body",
1292
+ "content": "@entity.phone"
1293
+ }
1294
+ ]
1295
+ },
1296
+ {
1297
+ "type": "stack",
1298
+ "direction": "horizontal",
1299
+ "gap": "md",
1300
+ "children": [
1301
+ {
1302
+ "type": "typography",
1303
+ "variant": "caption",
1304
+ "content": "Status"
1305
+ },
1306
+ {
1307
+ "type": "typography",
1308
+ "variant": "body",
1309
+ "content": "@entity.status"
1310
+ }
1311
+ ]
1312
+ },
1313
+ {
1314
+ "type": "divider"
1315
+ },
1316
+ {
1317
+ "type": "stack",
1318
+ "direction": "horizontal",
1319
+ "gap": "sm",
1320
+ "justify": "end",
1321
+ "children": [
1322
+ {
1323
+ "type": "button",
1324
+ "label": "Edit",
1325
+ "event": "EDIT",
1326
+ "variant": "primary",
1327
+ "icon": "edit"
1328
+ },
1329
+ {
1330
+ "type": "button",
1331
+ "label": "Close",
1332
+ "event": "CLOSE",
1333
+ "variant": "ghost"
1334
+ }
1335
+ ]
1336
+ }
1337
+ ]
1338
+ }
1339
+ ]
1340
+ ]
1341
+ },
1342
+ {
1343
+ "from": "open",
1344
+ "to": "closed",
1345
+ "event": "CLOSE",
1346
+ "effects": [
1347
+ [
1348
+ "render-ui",
1349
+ "modal",
1350
+ null
1351
+ ]
1352
+ ]
1353
+ }
1354
+ ]
1355
+ }
1356
+ }
1357
+ ],
1358
+ "pages": [
1359
+ {
1360
+ "name": "ContactsPage",
1361
+ "path": "/contacts",
1362
+ "isInitial": true,
1363
+ "traits": [
1364
+ {
1365
+ "ref": "ContactBrowse"
1366
+ },
1367
+ {
1368
+ "ref": "ContactCreate"
1369
+ },
1370
+ {
1371
+ "ref": "ContactEdit"
1372
+ },
1373
+ {
1374
+ "ref": "ContactView"
1375
+ }
1376
+ ]
1377
+ }
1378
+ ]
1379
+ },
1380
+ {
1381
+ "name": "DealOrbital",
1382
+ "entity": {
1383
+ "name": "Deal",
1384
+ "persistence": "runtime",
1385
+ "fields": [
1386
+ {
1387
+ "name": "id",
1388
+ "type": "string",
1389
+ "required": true
1390
+ },
1391
+ {
1392
+ "name": "title",
1393
+ "type": "string",
1394
+ "default": ""
1395
+ },
1396
+ {
1397
+ "name": "contactId",
1398
+ "type": "string",
1399
+ "default": ""
1400
+ },
1401
+ {
1402
+ "name": "value",
1403
+ "type": "number",
1404
+ "default": 0
1405
+ },
1406
+ {
1407
+ "name": "stage",
1408
+ "type": "string",
1409
+ "default": "prospecting"
1410
+ },
1411
+ {
1412
+ "name": "closedAt",
1413
+ "type": "string",
1414
+ "default": ""
1415
+ }
1416
+ ]
1417
+ },
1418
+ "traits": [
1419
+ {
1420
+ "name": "DealBrowse",
1421
+ "linkedEntity": "Deal",
1422
+ "category": "interaction",
1423
+ "listens": [
1424
+ {
1425
+ "event": "DEAL_CREATED",
1426
+ "triggers": "DEAL_CREATED"
1427
+ },
1428
+ {
1429
+ "event": "DEAL_UPDATED",
1430
+ "triggers": "DEAL_UPDATED"
1431
+ },
1432
+ {
1433
+ "event": "CONVERT_LEAD",
1434
+ "triggers": "INIT",
1435
+ "scope": "external"
1436
+ }
1437
+ ],
1438
+ "stateMachine": {
1439
+ "states": [
1440
+ {
1441
+ "name": "browsing",
1442
+ "isInitial": true
1443
+ },
1444
+ {
1445
+ "name": "deleting"
1446
+ }
1447
+ ],
1448
+ "events": [
1449
+ {
1450
+ "key": "INIT",
1451
+ "name": "Initialize"
1452
+ },
1453
+ {
1454
+ "key": "CREATE",
1455
+ "name": "CREATE"
1456
+ },
1457
+ {
1458
+ "key": "VIEW",
1459
+ "name": "VIEW",
1460
+ "payload": [
1461
+ {
1462
+ "name": "id",
1463
+ "type": "string",
1464
+ "required": true
1465
+ }
1466
+ ]
1467
+ },
1468
+ {
1469
+ "key": "EDIT",
1470
+ "name": "EDIT",
1471
+ "payload": [
1472
+ {
1473
+ "name": "id",
1474
+ "type": "string",
1475
+ "required": true
1476
+ }
1477
+ ]
1478
+ },
1479
+ {
1480
+ "key": "DELETE",
1481
+ "name": "DELETE",
1482
+ "payload": [
1483
+ {
1484
+ "name": "id",
1485
+ "type": "string",
1486
+ "required": true
1487
+ }
1488
+ ]
1489
+ },
1490
+ {
1491
+ "key": "DEAL_CREATED",
1492
+ "name": "DEAL_CREATED",
1493
+ "payload": [
1494
+ {
1495
+ "name": "data",
1496
+ "type": "object",
1497
+ "required": true
1498
+ }
1499
+ ]
1500
+ },
1501
+ {
1502
+ "key": "DEAL_UPDATED",
1503
+ "name": "DEAL_UPDATED",
1504
+ "payload": [
1505
+ {
1506
+ "name": "data",
1507
+ "type": "object",
1508
+ "required": true
1509
+ }
1510
+ ]
1511
+ },
1512
+ {
1513
+ "key": "CONFIRM_DELETE",
1514
+ "name": "Confirm Delete"
1515
+ },
1516
+ {
1517
+ "key": "CANCEL",
1518
+ "name": "Cancel"
1519
+ },
1520
+ {
1521
+ "key": "CLOSE",
1522
+ "name": "Close"
1523
+ }
1524
+ ],
1525
+ "transitions": [
1526
+ {
1527
+ "from": "browsing",
1528
+ "to": "browsing",
1529
+ "event": "INIT",
1530
+ "effects": [
1531
+ [
1532
+ "fetch",
1533
+ "Deal"
1534
+ ],
1535
+ [
1536
+ "render-ui",
1537
+ "main",
1538
+ {
1539
+ "type": "stack",
1540
+ "direction": "vertical",
1541
+ "gap": "lg",
1542
+ "children": [
1543
+ {
1544
+ "type": "stack",
1545
+ "direction": "horizontal",
1546
+ "gap": "md",
1547
+ "justify": "space-between",
1548
+ "children": [
1549
+ {
1550
+ "type": "stack",
1551
+ "direction": "horizontal",
1552
+ "gap": "sm",
1553
+ "align": "center",
1554
+ "children": [
1555
+ {
1556
+ "type": "icon",
1557
+ "name": "briefcase",
1558
+ "size": "lg"
1559
+ },
1560
+ {
1561
+ "type": "typography",
1562
+ "content": "Deals",
1563
+ "variant": "h2"
1564
+ }
1565
+ ]
1566
+ },
1567
+ {
1568
+ "type": "stack",
1569
+ "direction": "horizontal",
1570
+ "gap": "sm",
1571
+ "children": [
1572
+ {
1573
+ "type": "button",
1574
+ "label": "New Deal",
1575
+ "event": "CREATE",
1576
+ "variant": "primary",
1577
+ "icon": "plus"
1578
+ }
1579
+ ]
1580
+ }
1581
+ ]
1582
+ },
1583
+ {
1584
+ "type": "divider"
1585
+ },
1586
+ {
1587
+ "type": "data-grid",
1588
+ "entity": "Deal",
1589
+ "emptyIcon": "inbox",
1590
+ "emptyTitle": "No deals yet",
1591
+ "emptyDescription": "Create your first deal to get started.",
1592
+ "itemActions": [
1593
+ {
1594
+ "label": "View",
1595
+ "event": "VIEW"
1596
+ },
1597
+ {
1598
+ "label": "Edit",
1599
+ "event": "EDIT"
1600
+ },
1601
+ {
1602
+ "label": "Delete",
1603
+ "event": "DELETE",
1604
+ "variant": "danger"
1605
+ }
1606
+ ],
1607
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
1608
+ "renderItem": [
1609
+ "fn",
1610
+ "item",
1611
+ {
1612
+ "type": "stack",
1613
+ "direction": "vertical",
1614
+ "gap": "sm",
1615
+ "children": [
1616
+ {
1617
+ "type": "stack",
1618
+ "direction": "horizontal",
1619
+ "justify": "space-between",
1620
+ "align": "center",
1621
+ "children": [
1622
+ {
1623
+ "type": "stack",
1624
+ "direction": "horizontal",
1625
+ "gap": "sm",
1626
+ "align": "center",
1627
+ "children": [
1628
+ {
1629
+ "type": "icon",
1630
+ "name": "briefcase",
1631
+ "size": "sm"
1632
+ },
1633
+ {
1634
+ "type": "typography",
1635
+ "variant": "h4",
1636
+ "content": "@item.title"
1637
+ }
1638
+ ]
1639
+ },
1640
+ {
1641
+ "type": "badge",
1642
+ "label": "@item.contactId"
1643
+ }
1644
+ ]
1645
+ },
1646
+ {
1647
+ "type": "typography",
1648
+ "variant": "caption",
1649
+ "color": "muted",
1650
+ "content": "@item.value"
1651
+ }
1652
+ ]
1653
+ }
1654
+ ]
1655
+ }
1656
+ ]
1657
+ }
1658
+ ]
1659
+ ]
1660
+ },
1661
+ {
1662
+ "from": "browsing",
1663
+ "to": "browsing",
1664
+ "event": "DEAL_CREATED",
1665
+ "effects": [
1666
+ [
1667
+ "fetch",
1668
+ "Deal"
1669
+ ]
1670
+ ]
1671
+ },
1672
+ {
1673
+ "from": "browsing",
1674
+ "to": "browsing",
1675
+ "event": "DEAL_UPDATED",
1676
+ "effects": [
1677
+ [
1678
+ "fetch",
1679
+ "Deal"
1680
+ ]
1681
+ ]
1682
+ },
1683
+ {
1684
+ "from": "browsing",
1685
+ "to": "deleting",
1686
+ "event": "DELETE",
1687
+ "effects": [
1688
+ [
1689
+ "fetch",
1690
+ "Deal",
1691
+ "@payload.id"
1692
+ ],
1693
+ [
1694
+ "render-ui",
1695
+ "modal",
1696
+ {
1697
+ "type": "stack",
1698
+ "direction": "vertical",
1699
+ "gap": "md",
1700
+ "children": [
1701
+ {
1702
+ "type": "stack",
1703
+ "direction": "horizontal",
1704
+ "gap": "sm",
1705
+ "children": [
1706
+ {
1707
+ "type": "icon",
1708
+ "name": "trash-2",
1709
+ "size": "md"
1710
+ },
1711
+ {
1712
+ "type": "typography",
1713
+ "content": "Delete Deal",
1714
+ "variant": "h3"
1715
+ }
1716
+ ]
1717
+ },
1718
+ {
1719
+ "type": "divider"
1720
+ },
1721
+ {
1722
+ "type": "typography",
1723
+ "content": "Are you sure you want to delete this deal?",
1724
+ "variant": "body"
1725
+ },
1726
+ {
1727
+ "type": "stack",
1728
+ "direction": "horizontal",
1729
+ "gap": "sm",
1730
+ "justify": "end",
1731
+ "children": [
1732
+ {
1733
+ "type": "button",
1734
+ "label": "Cancel",
1735
+ "event": "CANCEL",
1736
+ "variant": "ghost"
1737
+ },
1738
+ {
1739
+ "type": "button",
1740
+ "label": "Delete",
1741
+ "event": "CONFIRM_DELETE",
1742
+ "variant": "danger",
1743
+ "icon": "trash"
1744
+ }
1745
+ ]
1746
+ }
1747
+ ]
1748
+ }
1749
+ ]
1750
+ ]
1751
+ },
1752
+ {
1753
+ "from": "deleting",
1754
+ "to": "browsing",
1755
+ "event": "CONFIRM_DELETE",
1756
+ "effects": [
1757
+ [
1758
+ "persist",
1759
+ "delete",
1760
+ "Deal",
1761
+ "@entity.id"
1762
+ ],
1763
+ [
1764
+ "render-ui",
1765
+ "modal",
1766
+ null
1767
+ ],
1768
+ [
1769
+ "fetch",
1770
+ "Deal"
1771
+ ],
1772
+ [
1773
+ "render-ui",
1774
+ "main",
1775
+ {
1776
+ "type": "stack",
1777
+ "direction": "vertical",
1778
+ "gap": "lg",
1779
+ "children": [
1780
+ {
1781
+ "type": "stack",
1782
+ "direction": "horizontal",
1783
+ "gap": "md",
1784
+ "justify": "space-between",
1785
+ "children": [
1786
+ {
1787
+ "type": "stack",
1788
+ "direction": "horizontal",
1789
+ "gap": "sm",
1790
+ "align": "center",
1791
+ "children": [
1792
+ {
1793
+ "type": "icon",
1794
+ "name": "briefcase",
1795
+ "size": "lg"
1796
+ },
1797
+ {
1798
+ "type": "typography",
1799
+ "content": "Deals",
1800
+ "variant": "h2"
1801
+ }
1802
+ ]
1803
+ },
1804
+ {
1805
+ "type": "stack",
1806
+ "direction": "horizontal",
1807
+ "gap": "sm",
1808
+ "children": [
1809
+ {
1810
+ "type": "button",
1811
+ "label": "New Deal",
1812
+ "event": "CREATE",
1813
+ "variant": "primary",
1814
+ "icon": "plus"
1815
+ }
1816
+ ]
1817
+ }
1818
+ ]
1819
+ },
1820
+ {
1821
+ "type": "divider"
1822
+ },
1823
+ {
1824
+ "type": "data-grid",
1825
+ "entity": "Deal",
1826
+ "emptyIcon": "inbox",
1827
+ "emptyTitle": "No deals yet",
1828
+ "emptyDescription": "Create your first deal to get started.",
1829
+ "itemActions": [
1830
+ {
1831
+ "label": "View",
1832
+ "event": "VIEW"
1833
+ },
1834
+ {
1835
+ "label": "Edit",
1836
+ "event": "EDIT"
1837
+ },
1838
+ {
1839
+ "label": "Delete",
1840
+ "event": "DELETE",
1841
+ "variant": "danger"
1842
+ }
1843
+ ],
1844
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
1845
+ "renderItem": [
1846
+ "fn",
1847
+ "item",
1848
+ {
1849
+ "type": "stack",
1850
+ "direction": "vertical",
1851
+ "gap": "sm",
1852
+ "children": [
1853
+ {
1854
+ "type": "stack",
1855
+ "direction": "horizontal",
1856
+ "justify": "space-between",
1857
+ "align": "center",
1858
+ "children": [
1859
+ {
1860
+ "type": "stack",
1861
+ "direction": "horizontal",
1862
+ "gap": "sm",
1863
+ "align": "center",
1864
+ "children": [
1865
+ {
1866
+ "type": "icon",
1867
+ "name": "briefcase",
1868
+ "size": "sm"
1869
+ },
1870
+ {
1871
+ "type": "typography",
1872
+ "variant": "h4",
1873
+ "content": "@item.title"
1874
+ }
1875
+ ]
1876
+ },
1877
+ {
1878
+ "type": "badge",
1879
+ "label": "@item.contactId"
1880
+ }
1881
+ ]
1882
+ },
1883
+ {
1884
+ "type": "typography",
1885
+ "variant": "caption",
1886
+ "color": "muted",
1887
+ "content": "@item.value"
1888
+ }
1889
+ ]
1890
+ }
1891
+ ]
1892
+ }
1893
+ ]
1894
+ }
1895
+ ],
1896
+ [
1897
+ "notify",
1898
+ "Deal deleted successfully"
1899
+ ]
1128
1900
  ]
1129
1901
  },
1130
1902
  {
1131
- "key": "CONFIRM_DELETE",
1132
- "name": "Confirm Delete"
1133
- },
1134
- {
1135
- "key": "CANCEL",
1136
- "name": "Cancel"
1137
- },
1138
- {
1139
- "key": "CLOSE",
1140
- "name": "Close"
1141
- }
1142
- ],
1143
- "transitions": [
1144
- {
1145
- "from": "browsing",
1903
+ "from": "deleting",
1146
1904
  "to": "browsing",
1147
- "event": "INIT",
1905
+ "event": "CANCEL",
1148
1906
  "effects": [
1907
+ [
1908
+ "render-ui",
1909
+ "modal",
1910
+ null
1911
+ ],
1149
1912
  [
1150
1913
  "fetch",
1151
1914
  "Deal"
@@ -1223,7 +1986,9 @@
1223
1986
  }
1224
1987
  ],
1225
1988
  "className": "transition-shadow hover:shadow-md cursor-pointer",
1226
- "children": [
1989
+ "renderItem": [
1990
+ "fn",
1991
+ "item",
1227
1992
  {
1228
1993
  "type": "stack",
1229
1994
  "direction": "vertical",
@@ -1249,13 +2014,13 @@
1249
2014
  {
1250
2015
  "type": "typography",
1251
2016
  "variant": "h4",
1252
- "content": "@entity.title"
2017
+ "content": "@item.title"
1253
2018
  }
1254
2019
  ]
1255
2020
  },
1256
2021
  {
1257
2022
  "type": "badge",
1258
- "label": "@entity.contactId"
2023
+ "label": "@item.contactId"
1259
2024
  }
1260
2025
  ]
1261
2026
  },
@@ -1263,7 +2028,7 @@
1263
2028
  "type": "typography",
1264
2029
  "variant": "caption",
1265
2030
  "color": "muted",
1266
- "content": "@entity.value"
2031
+ "content": "@item.value"
1267
2032
  }
1268
2033
  ]
1269
2034
  }
@@ -1275,59 +2040,64 @@
1275
2040
  ]
1276
2041
  },
1277
2042
  {
1278
- "from": "browsing",
2043
+ "from": "deleting",
1279
2044
  "to": "browsing",
1280
- "event": "DEAL_CREATED",
2045
+ "event": "CLOSE",
1281
2046
  "effects": [
1282
2047
  [
1283
- "fetch",
1284
- "Deal"
1285
- ]
1286
- ]
1287
- },
1288
- {
1289
- "from": "browsing",
1290
- "to": "browsing",
1291
- "event": "DEAL_UPDATED",
1292
- "effects": [
2048
+ "render-ui",
2049
+ "modal",
2050
+ null
2051
+ ],
1293
2052
  [
1294
2053
  "fetch",
1295
2054
  "Deal"
1296
- ]
1297
- ]
1298
- },
1299
- {
1300
- "from": "browsing",
1301
- "to": "deleting",
1302
- "event": "DELETE",
1303
- "effects": [
1304
- [
1305
- "fetch",
1306
- "Deal",
1307
- "@payload.id"
1308
2055
  ],
1309
2056
  [
1310
2057
  "render-ui",
1311
- "modal",
2058
+ "main",
1312
2059
  {
1313
2060
  "type": "stack",
1314
2061
  "direction": "vertical",
1315
- "gap": "md",
2062
+ "gap": "lg",
1316
2063
  "children": [
1317
2064
  {
1318
2065
  "type": "stack",
1319
2066
  "direction": "horizontal",
1320
- "gap": "sm",
2067
+ "gap": "md",
2068
+ "justify": "space-between",
1321
2069
  "children": [
1322
2070
  {
1323
- "type": "icon",
1324
- "name": "trash-2",
1325
- "size": "md"
2071
+ "type": "stack",
2072
+ "direction": "horizontal",
2073
+ "gap": "sm",
2074
+ "align": "center",
2075
+ "children": [
2076
+ {
2077
+ "type": "icon",
2078
+ "name": "briefcase",
2079
+ "size": "lg"
2080
+ },
2081
+ {
2082
+ "type": "typography",
2083
+ "content": "Deals",
2084
+ "variant": "h2"
2085
+ }
2086
+ ]
1326
2087
  },
1327
2088
  {
1328
- "type": "typography",
1329
- "content": "Delete Deal",
1330
- "variant": "h3"
2089
+ "type": "stack",
2090
+ "direction": "horizontal",
2091
+ "gap": "sm",
2092
+ "children": [
2093
+ {
2094
+ "type": "button",
2095
+ "label": "New Deal",
2096
+ "event": "CREATE",
2097
+ "variant": "primary",
2098
+ "icon": "plus"
2099
+ }
2100
+ ]
1331
2101
  }
1332
2102
  ]
1333
2103
  },
@@ -1335,83 +2105,77 @@
1335
2105
  "type": "divider"
1336
2106
  },
1337
2107
  {
1338
- "type": "typography",
1339
- "content": "Are you sure you want to delete this deal?",
1340
- "variant": "body"
1341
- },
1342
- {
1343
- "type": "stack",
1344
- "direction": "horizontal",
1345
- "gap": "sm",
1346
- "justify": "end",
1347
- "children": [
2108
+ "type": "data-grid",
2109
+ "entity": "Deal",
2110
+ "emptyIcon": "inbox",
2111
+ "emptyTitle": "No deals yet",
2112
+ "emptyDescription": "Create your first deal to get started.",
2113
+ "itemActions": [
1348
2114
  {
1349
- "type": "button",
1350
- "label": "Cancel",
1351
- "event": "CANCEL",
1352
- "variant": "ghost"
2115
+ "label": "View",
2116
+ "event": "VIEW"
2117
+ },
2118
+ {
2119
+ "label": "Edit",
2120
+ "event": "EDIT"
1353
2121
  },
1354
2122
  {
1355
- "type": "button",
1356
2123
  "label": "Delete",
1357
- "event": "CONFIRM_DELETE",
1358
- "variant": "danger",
1359
- "icon": "trash"
2124
+ "event": "DELETE",
2125
+ "variant": "danger"
1360
2126
  }
1361
- ]
1362
- }
1363
- ]
1364
- }
1365
- ]
1366
- ]
1367
- },
1368
- {
1369
- "from": "deleting",
1370
- "to": "browsing",
1371
- "event": "CONFIRM_DELETE",
1372
- "effects": [
1373
- [
1374
- "persist",
1375
- "delete",
1376
- "Deal",
1377
- "@entity.id"
1378
- ],
1379
- [
1380
- "render-ui",
1381
- "modal",
1382
- null
1383
- ],
1384
- [
1385
- "fetch",
1386
- "Deal"
1387
- ],
1388
- [
1389
- "notify",
1390
- "Deal deleted successfully"
1391
- ]
1392
- ]
1393
- },
1394
- {
1395
- "from": "deleting",
1396
- "to": "browsing",
1397
- "event": "CANCEL",
1398
- "effects": [
1399
- [
1400
- "render-ui",
1401
- "modal",
1402
- null
1403
- ]
1404
- ]
1405
- },
1406
- {
1407
- "from": "deleting",
1408
- "to": "browsing",
1409
- "event": "CLOSE",
1410
- "effects": [
1411
- [
1412
- "render-ui",
1413
- "modal",
1414
- null
2127
+ ],
2128
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
2129
+ "renderItem": [
2130
+ "fn",
2131
+ "item",
2132
+ {
2133
+ "type": "stack",
2134
+ "direction": "vertical",
2135
+ "gap": "sm",
2136
+ "children": [
2137
+ {
2138
+ "type": "stack",
2139
+ "direction": "horizontal",
2140
+ "justify": "space-between",
2141
+ "align": "center",
2142
+ "children": [
2143
+ {
2144
+ "type": "stack",
2145
+ "direction": "horizontal",
2146
+ "gap": "sm",
2147
+ "align": "center",
2148
+ "children": [
2149
+ {
2150
+ "type": "icon",
2151
+ "name": "briefcase",
2152
+ "size": "sm"
2153
+ },
2154
+ {
2155
+ "type": "typography",
2156
+ "variant": "h4",
2157
+ "content": "@item.title"
2158
+ }
2159
+ ]
2160
+ },
2161
+ {
2162
+ "type": "badge",
2163
+ "label": "@item.contactId"
2164
+ }
2165
+ ]
2166
+ },
2167
+ {
2168
+ "type": "typography",
2169
+ "variant": "caption",
2170
+ "color": "muted",
2171
+ "content": "@item.value"
2172
+ }
2173
+ ]
2174
+ }
2175
+ ]
2176
+ }
2177
+ ]
2178
+ }
1415
2179
  ]
1416
2180
  ]
1417
2181
  }
@@ -2124,113 +2888,63 @@
2124
2888
  "columns": 3,
2125
2889
  "children": [
2126
2890
  {
2127
- "type": "card",
2128
- "children": [
2129
- {
2130
- "type": "stack",
2131
- "direction": "vertical",
2132
- "gap": "sm",
2133
- "children": [
2134
- {
2135
- "type": "typography",
2136
- "variant": "caption",
2137
- "content": "TotalDeals"
2138
- },
2139
- {
2140
- "type": "typography",
2141
- "variant": "h3",
2142
- "content": "@entity.totalDeals"
2143
- }
2144
- ]
2145
- }
2891
+ "type": "stat-display",
2892
+ "label": "TotalDeals",
2893
+ "value": [
2894
+ "object/get",
2895
+ [
2896
+ "array/first",
2897
+ "@entity"
2898
+ ],
2899
+ "totalDeals"
2146
2900
  ]
2147
2901
  },
2148
2902
  {
2149
- "type": "card",
2150
- "children": [
2151
- {
2152
- "type": "stack",
2153
- "direction": "vertical",
2154
- "gap": "sm",
2155
- "children": [
2156
- {
2157
- "type": "typography",
2158
- "variant": "caption",
2159
- "content": "TotalValue"
2160
- },
2161
- {
2162
- "type": "typography",
2163
- "variant": "h3",
2164
- "content": "@entity.totalValue"
2165
- }
2166
- ]
2167
- }
2903
+ "type": "stat-display",
2904
+ "label": "TotalValue",
2905
+ "value": [
2906
+ "object/get",
2907
+ [
2908
+ "array/first",
2909
+ "@entity"
2910
+ ],
2911
+ "totalValue"
2168
2912
  ]
2169
2913
  },
2170
2914
  {
2171
- "type": "card",
2172
- "children": [
2173
- {
2174
- "type": "stack",
2175
- "direction": "vertical",
2176
- "gap": "sm",
2177
- "children": [
2178
- {
2179
- "type": "typography",
2180
- "variant": "caption",
2181
- "content": "WonDeals"
2182
- },
2183
- {
2184
- "type": "typography",
2185
- "variant": "h3",
2186
- "content": "@entity.wonDeals"
2187
- }
2188
- ]
2189
- }
2915
+ "type": "stat-display",
2916
+ "label": "WonDeals",
2917
+ "value": [
2918
+ "object/get",
2919
+ [
2920
+ "array/first",
2921
+ "@entity"
2922
+ ],
2923
+ "wonDeals"
2190
2924
  ]
2191
2925
  },
2192
2926
  {
2193
- "type": "card",
2194
- "children": [
2195
- {
2196
- "type": "stack",
2197
- "direction": "vertical",
2198
- "gap": "sm",
2199
- "children": [
2200
- {
2201
- "type": "typography",
2202
- "variant": "caption",
2203
- "content": "LostDeals"
2204
- },
2205
- {
2206
- "type": "typography",
2207
- "variant": "h3",
2208
- "content": "@entity.lostDeals"
2209
- }
2210
- ]
2211
- }
2927
+ "type": "stat-display",
2928
+ "label": "LostDeals",
2929
+ "value": [
2930
+ "object/get",
2931
+ [
2932
+ "array/first",
2933
+ "@entity"
2934
+ ],
2935
+ "lostDeals"
2212
2936
  ]
2213
2937
  },
2214
2938
  {
2215
- "type": "card",
2216
- "children": [
2217
- {
2218
- "type": "stack",
2219
- "direction": "vertical",
2220
- "gap": "sm",
2221
- "children": [
2222
- {
2223
- "type": "typography",
2224
- "variant": "caption",
2225
- "content": "ConversionRate"
2226
- },
2227
- {
2228
- "type": "typography",
2229
- "variant": "h3",
2230
- "content": "@entity.conversionRate"
2231
- }
2232
- ]
2233
- }
2939
+ "type": "stat-display",
2940
+ "label": "ConversionRate",
2941
+ "value": [
2942
+ "object/get",
2943
+ [
2944
+ "array/first",
2945
+ "@entity"
2946
+ ],
2947
+ "conversionRate"
2234
2948
  ]
2235
2949
  }
2236
2950
  ]
@@ -2297,113 +3011,63 @@
2297
3011
  "columns": 3,
2298
3012
  "children": [
2299
3013
  {
2300
- "type": "card",
2301
- "children": [
2302
- {
2303
- "type": "stack",
2304
- "direction": "vertical",
2305
- "gap": "sm",
2306
- "children": [
2307
- {
2308
- "type": "typography",
2309
- "variant": "caption",
2310
- "content": "TotalDeals"
2311
- },
2312
- {
2313
- "type": "typography",
2314
- "variant": "h3",
2315
- "content": "@entity.totalDeals"
2316
- }
2317
- ]
2318
- }
3014
+ "type": "stat-display",
3015
+ "label": "TotalDeals",
3016
+ "value": [
3017
+ "object/get",
3018
+ [
3019
+ "array/first",
3020
+ "@entity"
3021
+ ],
3022
+ "totalDeals"
2319
3023
  ]
2320
3024
  },
2321
3025
  {
2322
- "type": "card",
2323
- "children": [
2324
- {
2325
- "type": "stack",
2326
- "direction": "vertical",
2327
- "gap": "sm",
2328
- "children": [
2329
- {
2330
- "type": "typography",
2331
- "variant": "caption",
2332
- "content": "TotalValue"
2333
- },
2334
- {
2335
- "type": "typography",
2336
- "variant": "h3",
2337
- "content": "@entity.totalValue"
2338
- }
2339
- ]
2340
- }
3026
+ "type": "stat-display",
3027
+ "label": "TotalValue",
3028
+ "value": [
3029
+ "object/get",
3030
+ [
3031
+ "array/first",
3032
+ "@entity"
3033
+ ],
3034
+ "totalValue"
2341
3035
  ]
2342
3036
  },
2343
3037
  {
2344
- "type": "card",
2345
- "children": [
2346
- {
2347
- "type": "stack",
2348
- "direction": "vertical",
2349
- "gap": "sm",
2350
- "children": [
2351
- {
2352
- "type": "typography",
2353
- "variant": "caption",
2354
- "content": "WonDeals"
2355
- },
2356
- {
2357
- "type": "typography",
2358
- "variant": "h3",
2359
- "content": "@entity.wonDeals"
2360
- }
2361
- ]
2362
- }
3038
+ "type": "stat-display",
3039
+ "label": "WonDeals",
3040
+ "value": [
3041
+ "object/get",
3042
+ [
3043
+ "array/first",
3044
+ "@entity"
3045
+ ],
3046
+ "wonDeals"
2363
3047
  ]
2364
3048
  },
2365
3049
  {
2366
- "type": "card",
2367
- "children": [
2368
- {
2369
- "type": "stack",
2370
- "direction": "vertical",
2371
- "gap": "sm",
2372
- "children": [
2373
- {
2374
- "type": "typography",
2375
- "variant": "caption",
2376
- "content": "LostDeals"
2377
- },
2378
- {
2379
- "type": "typography",
2380
- "variant": "h3",
2381
- "content": "@entity.lostDeals"
2382
- }
2383
- ]
2384
- }
3050
+ "type": "stat-display",
3051
+ "label": "LostDeals",
3052
+ "value": [
3053
+ "object/get",
3054
+ [
3055
+ "array/first",
3056
+ "@entity"
3057
+ ],
3058
+ "lostDeals"
2385
3059
  ]
2386
3060
  },
2387
3061
  {
2388
- "type": "card",
2389
- "children": [
2390
- {
2391
- "type": "stack",
2392
- "direction": "vertical",
2393
- "gap": "sm",
2394
- "children": [
2395
- {
2396
- "type": "typography",
2397
- "variant": "caption",
2398
- "content": "ConversionRate"
2399
- },
2400
- {
2401
- "type": "typography",
2402
- "variant": "h3",
2403
- "content": "@entity.conversionRate"
2404
- }
2405
- ]
2406
- }
3062
+ "type": "stat-display",
3063
+ "label": "ConversionRate",
3064
+ "value": [
3065
+ "object/get",
3066
+ [
3067
+ "array/first",
3068
+ "@entity"
3069
+ ],
3070
+ "conversionRate"
2407
3071
  ]
2408
3072
  }
2409
3073
  ]
@@ -2470,113 +3134,63 @@
2470
3134
  "columns": 3,
2471
3135
  "children": [
2472
3136
  {
2473
- "type": "card",
2474
- "children": [
2475
- {
2476
- "type": "stack",
2477
- "direction": "vertical",
2478
- "gap": "sm",
2479
- "children": [
2480
- {
2481
- "type": "typography",
2482
- "variant": "caption",
2483
- "content": "TotalDeals"
2484
- },
2485
- {
2486
- "type": "typography",
2487
- "variant": "h3",
2488
- "content": "@entity.totalDeals"
2489
- }
2490
- ]
2491
- }
3137
+ "type": "stat-display",
3138
+ "label": "TotalDeals",
3139
+ "value": [
3140
+ "object/get",
3141
+ [
3142
+ "array/first",
3143
+ "@entity"
3144
+ ],
3145
+ "totalDeals"
2492
3146
  ]
2493
3147
  },
2494
3148
  {
2495
- "type": "card",
2496
- "children": [
2497
- {
2498
- "type": "stack",
2499
- "direction": "vertical",
2500
- "gap": "sm",
2501
- "children": [
2502
- {
2503
- "type": "typography",
2504
- "variant": "caption",
2505
- "content": "TotalValue"
2506
- },
2507
- {
2508
- "type": "typography",
2509
- "variant": "h3",
2510
- "content": "@entity.totalValue"
2511
- }
2512
- ]
2513
- }
3149
+ "type": "stat-display",
3150
+ "label": "TotalValue",
3151
+ "value": [
3152
+ "object/get",
3153
+ [
3154
+ "array/first",
3155
+ "@entity"
3156
+ ],
3157
+ "totalValue"
2514
3158
  ]
2515
3159
  },
2516
3160
  {
2517
- "type": "card",
2518
- "children": [
2519
- {
2520
- "type": "stack",
2521
- "direction": "vertical",
2522
- "gap": "sm",
2523
- "children": [
2524
- {
2525
- "type": "typography",
2526
- "variant": "caption",
2527
- "content": "WonDeals"
2528
- },
2529
- {
2530
- "type": "typography",
2531
- "variant": "h3",
2532
- "content": "@entity.wonDeals"
2533
- }
2534
- ]
2535
- }
3161
+ "type": "stat-display",
3162
+ "label": "WonDeals",
3163
+ "value": [
3164
+ "object/get",
3165
+ [
3166
+ "array/first",
3167
+ "@entity"
3168
+ ],
3169
+ "wonDeals"
2536
3170
  ]
2537
3171
  },
2538
3172
  {
2539
- "type": "card",
2540
- "children": [
2541
- {
2542
- "type": "stack",
2543
- "direction": "vertical",
2544
- "gap": "sm",
2545
- "children": [
2546
- {
2547
- "type": "typography",
2548
- "variant": "caption",
2549
- "content": "LostDeals"
2550
- },
2551
- {
2552
- "type": "typography",
2553
- "variant": "h3",
2554
- "content": "@entity.lostDeals"
2555
- }
2556
- ]
2557
- }
3173
+ "type": "stat-display",
3174
+ "label": "LostDeals",
3175
+ "value": [
3176
+ "object/get",
3177
+ [
3178
+ "array/first",
3179
+ "@entity"
3180
+ ],
3181
+ "lostDeals"
2558
3182
  ]
2559
3183
  },
2560
3184
  {
2561
- "type": "card",
2562
- "children": [
2563
- {
2564
- "type": "stack",
2565
- "direction": "vertical",
2566
- "gap": "sm",
2567
- "children": [
2568
- {
2569
- "type": "typography",
2570
- "variant": "caption",
2571
- "content": "ConversionRate"
2572
- },
2573
- {
2574
- "type": "typography",
2575
- "variant": "h3",
2576
- "content": "@entity.conversionRate"
2577
- }
2578
- ]
2579
- }
3185
+ "type": "stat-display",
3186
+ "label": "ConversionRate",
3187
+ "value": [
3188
+ "object/get",
3189
+ [
3190
+ "array/first",
3191
+ "@entity"
3192
+ ],
3193
+ "conversionRate"
2580
3194
  ]
2581
3195
  }
2582
3196
  ]
@@ -2643,113 +3257,63 @@
2643
3257
  "columns": 3,
2644
3258
  "children": [
2645
3259
  {
2646
- "type": "card",
2647
- "children": [
2648
- {
2649
- "type": "stack",
2650
- "direction": "vertical",
2651
- "gap": "sm",
2652
- "children": [
2653
- {
2654
- "type": "typography",
2655
- "variant": "caption",
2656
- "content": "TotalDeals"
2657
- },
2658
- {
2659
- "type": "typography",
2660
- "variant": "h3",
2661
- "content": "@entity.totalDeals"
2662
- }
2663
- ]
2664
- }
3260
+ "type": "stat-display",
3261
+ "label": "TotalDeals",
3262
+ "value": [
3263
+ "object/get",
3264
+ [
3265
+ "array/first",
3266
+ "@entity"
3267
+ ],
3268
+ "totalDeals"
2665
3269
  ]
2666
3270
  },
2667
3271
  {
2668
- "type": "card",
2669
- "children": [
2670
- {
2671
- "type": "stack",
2672
- "direction": "vertical",
2673
- "gap": "sm",
2674
- "children": [
2675
- {
2676
- "type": "typography",
2677
- "variant": "caption",
2678
- "content": "TotalValue"
2679
- },
2680
- {
2681
- "type": "typography",
2682
- "variant": "h3",
2683
- "content": "@entity.totalValue"
2684
- }
2685
- ]
2686
- }
3272
+ "type": "stat-display",
3273
+ "label": "TotalValue",
3274
+ "value": [
3275
+ "object/get",
3276
+ [
3277
+ "array/first",
3278
+ "@entity"
3279
+ ],
3280
+ "totalValue"
2687
3281
  ]
2688
3282
  },
2689
3283
  {
2690
- "type": "card",
2691
- "children": [
2692
- {
2693
- "type": "stack",
2694
- "direction": "vertical",
2695
- "gap": "sm",
2696
- "children": [
2697
- {
2698
- "type": "typography",
2699
- "variant": "caption",
2700
- "content": "WonDeals"
2701
- },
2702
- {
2703
- "type": "typography",
2704
- "variant": "h3",
2705
- "content": "@entity.wonDeals"
2706
- }
2707
- ]
2708
- }
3284
+ "type": "stat-display",
3285
+ "label": "WonDeals",
3286
+ "value": [
3287
+ "object/get",
3288
+ [
3289
+ "array/first",
3290
+ "@entity"
3291
+ ],
3292
+ "wonDeals"
2709
3293
  ]
2710
3294
  },
2711
3295
  {
2712
- "type": "card",
2713
- "children": [
2714
- {
2715
- "type": "stack",
2716
- "direction": "vertical",
2717
- "gap": "sm",
2718
- "children": [
2719
- {
2720
- "type": "typography",
2721
- "variant": "caption",
2722
- "content": "LostDeals"
2723
- },
2724
- {
2725
- "type": "typography",
2726
- "variant": "h3",
2727
- "content": "@entity.lostDeals"
2728
- }
2729
- ]
2730
- }
3296
+ "type": "stat-display",
3297
+ "label": "LostDeals",
3298
+ "value": [
3299
+ "object/get",
3300
+ [
3301
+ "array/first",
3302
+ "@entity"
3303
+ ],
3304
+ "lostDeals"
2731
3305
  ]
2732
3306
  },
2733
3307
  {
2734
- "type": "card",
2735
- "children": [
2736
- {
2737
- "type": "stack",
2738
- "direction": "vertical",
2739
- "gap": "sm",
2740
- "children": [
2741
- {
2742
- "type": "typography",
2743
- "variant": "caption",
2744
- "content": "ConversionRate"
2745
- },
2746
- {
2747
- "type": "typography",
2748
- "variant": "h3",
2749
- "content": "@entity.conversionRate"
2750
- }
2751
- ]
2752
- }
3308
+ "type": "stat-display",
3309
+ "label": "ConversionRate",
3310
+ "value": [
3311
+ "object/get",
3312
+ [
3313
+ "array/first",
3314
+ "@entity"
3315
+ ],
3316
+ "conversionRate"
2753
3317
  ]
2754
3318
  }
2755
3319
  ]
@@ -2816,113 +3380,63 @@
2816
3380
  "columns": 3,
2817
3381
  "children": [
2818
3382
  {
2819
- "type": "card",
2820
- "children": [
2821
- {
2822
- "type": "stack",
2823
- "direction": "vertical",
2824
- "gap": "sm",
2825
- "children": [
2826
- {
2827
- "type": "typography",
2828
- "variant": "caption",
2829
- "content": "TotalDeals"
2830
- },
2831
- {
2832
- "type": "typography",
2833
- "variant": "h3",
2834
- "content": "@entity.totalDeals"
2835
- }
2836
- ]
2837
- }
3383
+ "type": "stat-display",
3384
+ "label": "TotalDeals",
3385
+ "value": [
3386
+ "object/get",
3387
+ [
3388
+ "array/first",
3389
+ "@entity"
3390
+ ],
3391
+ "totalDeals"
2838
3392
  ]
2839
3393
  },
2840
3394
  {
2841
- "type": "card",
2842
- "children": [
2843
- {
2844
- "type": "stack",
2845
- "direction": "vertical",
2846
- "gap": "sm",
2847
- "children": [
2848
- {
2849
- "type": "typography",
2850
- "variant": "caption",
2851
- "content": "TotalValue"
2852
- },
2853
- {
2854
- "type": "typography",
2855
- "variant": "h3",
2856
- "content": "@entity.totalValue"
2857
- }
2858
- ]
2859
- }
3395
+ "type": "stat-display",
3396
+ "label": "TotalValue",
3397
+ "value": [
3398
+ "object/get",
3399
+ [
3400
+ "array/first",
3401
+ "@entity"
3402
+ ],
3403
+ "totalValue"
2860
3404
  ]
2861
3405
  },
2862
3406
  {
2863
- "type": "card",
2864
- "children": [
2865
- {
2866
- "type": "stack",
2867
- "direction": "vertical",
2868
- "gap": "sm",
2869
- "children": [
2870
- {
2871
- "type": "typography",
2872
- "variant": "caption",
2873
- "content": "WonDeals"
2874
- },
2875
- {
2876
- "type": "typography",
2877
- "variant": "h3",
2878
- "content": "@entity.wonDeals"
2879
- }
2880
- ]
2881
- }
3407
+ "type": "stat-display",
3408
+ "label": "WonDeals",
3409
+ "value": [
3410
+ "object/get",
3411
+ [
3412
+ "array/first",
3413
+ "@entity"
3414
+ ],
3415
+ "wonDeals"
2882
3416
  ]
2883
3417
  },
2884
3418
  {
2885
- "type": "card",
2886
- "children": [
2887
- {
2888
- "type": "stack",
2889
- "direction": "vertical",
2890
- "gap": "sm",
2891
- "children": [
2892
- {
2893
- "type": "typography",
2894
- "variant": "caption",
2895
- "content": "LostDeals"
2896
- },
2897
- {
2898
- "type": "typography",
2899
- "variant": "h3",
2900
- "content": "@entity.lostDeals"
2901
- }
2902
- ]
2903
- }
3419
+ "type": "stat-display",
3420
+ "label": "LostDeals",
3421
+ "value": [
3422
+ "object/get",
3423
+ [
3424
+ "array/first",
3425
+ "@entity"
3426
+ ],
3427
+ "lostDeals"
2904
3428
  ]
2905
3429
  },
2906
3430
  {
2907
- "type": "card",
2908
- "children": [
2909
- {
2910
- "type": "stack",
2911
- "direction": "vertical",
2912
- "gap": "sm",
2913
- "children": [
2914
- {
2915
- "type": "typography",
2916
- "variant": "caption",
2917
- "content": "ConversionRate"
2918
- },
2919
- {
2920
- "type": "typography",
2921
- "variant": "h3",
2922
- "content": "@entity.conversionRate"
2923
- }
2924
- ]
2925
- }
3431
+ "type": "stat-display",
3432
+ "label": "ConversionRate",
3433
+ "value": [
3434
+ "object/get",
3435
+ [
3436
+ "array/first",
3437
+ "@entity"
3438
+ ],
3439
+ "conversionRate"
2926
3440
  ]
2927
3441
  }
2928
3442
  ]
@@ -3112,7 +3626,9 @@
3112
3626
  }
3113
3627
  ],
3114
3628
  "className": "transition-shadow hover:shadow-md cursor-pointer",
3115
- "children": [
3629
+ "renderItem": [
3630
+ "fn",
3631
+ "item",
3116
3632
  {
3117
3633
  "type": "stack",
3118
3634
  "direction": "vertical",
@@ -3138,13 +3654,13 @@
3138
3654
  {
3139
3655
  "type": "typography",
3140
3656
  "variant": "h4",
3141
- "content": "@entity.subject"
3657
+ "content": "@item.subject"
3142
3658
  }
3143
3659
  ]
3144
3660
  },
3145
3661
  {
3146
3662
  "type": "badge",
3147
- "label": "@entity.body"
3663
+ "label": "@item.body"
3148
3664
  }
3149
3665
  ]
3150
3666
  },
@@ -3152,7 +3668,7 @@
3152
3668
  "type": "typography",
3153
3669
  "variant": "caption",
3154
3670
  "color": "muted",
3155
- "content": "@entity.author"
3671
+ "content": "@item.author"
3156
3672
  }
3157
3673
  ]
3158
3674
  }