@almadar/std 14.25.0 → 14.26.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 (431) hide show
  1. package/behaviors/registry/agent/atoms/std-agent-activity-log.orb +82 -82
  2. package/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +110 -110
  3. package/behaviors/registry/agent/atoms/std-agent-classifier.orb +112 -112
  4. package/behaviors/registry/agent/atoms/std-agent-completion.orb +90 -90
  5. package/behaviors/registry/agent/atoms/std-agent-context-window.orb +406 -406
  6. package/behaviors/registry/agent/atoms/std-agent-conversation.orb +94 -94
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +83 -83
  8. package/behaviors/registry/agent/atoms/std-agent-provider.orb +122 -122
  9. package/behaviors/registry/agent/atoms/std-agent-search.orb +51 -51
  10. package/behaviors/registry/agent/atoms/std-agent-session.orb +122 -122
  11. package/behaviors/registry/agent/atoms/std-agent-step-progress.orb +214 -214
  12. package/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +329 -329
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +67 -67
  14. package/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +202 -202
  15. package/behaviors/registry/agent/molecules/std-agent-learner.orb +185 -185
  16. package/behaviors/registry/agent/molecules/std-agent-planner.orb +122 -122
  17. package/behaviors/registry/agent/molecules/std-agent-rag.orb +114 -114
  18. package/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +209 -209
  19. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1039 -1039
  20. package/behaviors/registry/agent/organisms/std-agent-builder.orb +2977 -2977
  21. package/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2090 -2090
  22. package/behaviors/registry/agent/organisms/std-agent-reviewer.orb +935 -935
  23. package/behaviors/registry/agent/organisms/std-agent-tutor.orb +760 -760
  24. package/behaviors/registry/app/atoms/std-ap-bill.orb +62 -62
  25. package/behaviors/registry/app/atoms/std-applicant.orb +35 -35
  26. package/behaviors/registry/app/atoms/std-approval-request.orb +152 -166
  27. package/behaviors/registry/app/atoms/std-campaign-goal.orb +120 -125
  28. package/behaviors/registry/app/atoms/std-change-order.orb +65 -65
  29. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +58 -58
  30. package/behaviors/registry/app/atoms/std-checkin.orb +57 -57
  31. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +458 -260
  32. package/behaviors/registry/app/atoms/std-class-roster.orb +46 -46
  33. package/behaviors/registry/app/atoms/std-class-session.orb +63 -57
  34. package/behaviors/registry/app/atoms/std-court-deadline.orb +60 -60
  35. package/behaviors/registry/app/atoms/std-customer-account.orb +49 -49
  36. package/behaviors/registry/app/atoms/std-donation-receipt.orb +40 -40
  37. package/behaviors/registry/app/atoms/std-donor.orb +52 -75
  38. package/behaviors/registry/app/atoms/std-drip-sequence.orb +46 -46
  39. package/behaviors/registry/app/atoms/std-driver.orb +101 -101
  40. package/behaviors/registry/app/atoms/std-dunning.orb +89 -100
  41. package/behaviors/registry/app/atoms/std-email-broadcast.orb +29 -29
  42. package/behaviors/registry/app/atoms/std-event.orb +59 -59
  43. package/behaviors/registry/app/atoms/std-health-score.orb +134 -196
  44. package/behaviors/registry/app/atoms/std-help-article.orb +110 -135
  45. package/behaviors/registry/app/atoms/std-help-category.orb +79 -86
  46. package/behaviors/registry/app/atoms/std-interview-slot.orb +34 -34
  47. package/behaviors/registry/app/atoms/std-invoice.orb +111 -129
  48. package/behaviors/registry/app/atoms/std-kitchen-display.orb +56 -56
  49. package/behaviors/registry/app/atoms/std-lease.orb +95 -87
  50. package/behaviors/registry/app/atoms/std-ledger-entry.orb +103 -108
  51. package/behaviors/registry/app/atoms/std-maintenance-request.orb +97 -97
  52. package/behaviors/registry/app/atoms/std-matter.orb +139 -161
  53. package/behaviors/registry/app/atoms/std-membership.orb +73 -75
  54. package/behaviors/registry/app/atoms/std-menu.orb +63 -63
  55. package/behaviors/registry/app/atoms/std-modifier-group.orb +52 -52
  56. package/behaviors/registry/app/atoms/std-nps-survey.orb +85 -85
  57. package/behaviors/registry/app/atoms/std-offer-letter.orb +41 -41
  58. package/behaviors/registry/app/atoms/std-payout-ledger.orb +63 -63
  59. package/behaviors/registry/app/atoms/std-question-bank.orb +51 -51
  60. package/behaviors/registry/app/atoms/std-receipt.orb +46 -46
  61. package/behaviors/registry/app/atoms/std-recurring-charge.orb +108 -118
  62. package/behaviors/registry/app/atoms/std-renewal-risk.orb +99 -111
  63. package/behaviors/registry/app/atoms/std-rent-charge.orb +27 -27
  64. package/behaviors/registry/app/atoms/std-reorder-rule.orb +53 -53
  65. package/behaviors/registry/app/atoms/std-response-collector.orb +45 -45
  66. package/behaviors/registry/app/atoms/std-rfi.orb +84 -84
  67. package/behaviors/registry/app/atoms/std-route-optimize.orb +43 -43
  68. package/behaviors/registry/app/atoms/std-segment.orb +43 -51
  69. package/behaviors/registry/app/atoms/std-stock-level.orb +58 -58
  70. package/behaviors/registry/app/atoms/std-submittal.orb +173 -157
  71. package/behaviors/registry/app/atoms/std-table-map.orb +43 -43
  72. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +37 -37
  73. package/behaviors/registry/app/atoms/std-telematics-event.orb +64 -64
  74. package/behaviors/registry/app/atoms/std-template-editor.orb +65 -65
  75. package/behaviors/registry/app/atoms/std-tenant.orb +38 -38
  76. package/behaviors/registry/app/atoms/std-ticket-tier.orb +63 -63
  77. package/behaviors/registry/app/atoms/std-time-entry.orb +114 -114
  78. package/behaviors/registry/app/atoms/std-timesheet.orb +79 -102
  79. package/behaviors/registry/app/atoms/std-trial.orb +78 -85
  80. package/behaviors/registry/app/atoms/std-vehicle.orb +149 -149
  81. package/behaviors/registry/app/atoms/std-waitlist.orb +49 -49
  82. package/behaviors/registry/app/atoms/std-warehouse.orb +125 -130
  83. package/behaviors/registry/app/atoms/std-work-order.orb +71 -71
  84. package/behaviors/registry/app/molecules/std-applicant-form.orb +52 -52
  85. package/behaviors/registry/app/molecules/std-application.orb +152 -152
  86. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +91 -108
  87. package/behaviors/registry/app/molecules/std-cart.orb +62 -62
  88. package/behaviors/registry/app/molecules/std-form-builder.orb +102 -102
  89. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +67 -118
  90. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +73 -73
  91. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +269 -269
  92. package/behaviors/registry/app/organisms/std-accounting.orb +120 -120
  93. package/behaviors/registry/app/organisms/std-api-gateway.orb +214 -214
  94. package/behaviors/registry/app/organisms/std-ats-recruiting.orb +143 -143
  95. package/behaviors/registry/app/organisms/std-booking-system.orb +698 -698
  96. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +282 -282
  97. package/behaviors/registry/app/organisms/std-cms.orb +315 -315
  98. package/behaviors/registry/app/organisms/std-coding-academy.orb +226 -226
  99. package/behaviors/registry/app/organisms/std-construction-pm.orb +159 -159
  100. package/behaviors/registry/app/organisms/std-crm.orb +265 -265
  101. package/behaviors/registry/app/organisms/std-customer-success.orb +106 -106
  102. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +384 -384
  103. package/behaviors/registry/app/organisms/std-document-mgmt.orb +101 -101
  104. package/behaviors/registry/app/organisms/std-ecommerce.orb +735 -735
  105. package/behaviors/registry/app/organisms/std-event-ticketing.orb +207 -207
  106. package/behaviors/registry/app/organisms/std-field-service.orb +181 -181
  107. package/behaviors/registry/app/organisms/std-finance-tracker.orb +227 -227
  108. package/behaviors/registry/app/organisms/std-fitness-studio.orb +145 -145
  109. package/behaviors/registry/app/organisms/std-fleet-mgmt.orb +149 -149
  110. package/behaviors/registry/app/organisms/std-forum.orb +150 -150
  111. package/behaviors/registry/app/organisms/std-healthcare.orb +531 -531
  112. package/behaviors/registry/app/organisms/std-helpdesk.orb +161 -161
  113. package/behaviors/registry/app/organisms/std-hr-portal.orb +455 -455
  114. package/behaviors/registry/app/organisms/std-inventory.orb +162 -162
  115. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +353 -353
  116. package/behaviors/registry/app/organisms/std-legal-case.orb +164 -164
  117. package/behaviors/registry/app/organisms/std-listings.orb +147 -147
  118. package/behaviors/registry/app/organisms/std-lms.orb +409 -409
  119. package/behaviors/registry/app/organisms/std-marketing-campaign.orb +123 -123
  120. package/behaviors/registry/app/organisms/std-marketplace.orb +251 -251
  121. package/behaviors/registry/app/organisms/std-nonprofit-donations.orb +105 -105
  122. package/behaviors/registry/app/organisms/std-notes.orb +112 -112
  123. package/behaviors/registry/app/organisms/std-project-manager.orb +200 -200
  124. package/behaviors/registry/app/organisms/std-property-mgmt.orb +178 -178
  125. package/behaviors/registry/app/organisms/std-public-help-center.orb +133 -133
  126. package/behaviors/registry/app/organisms/std-realtime-chat.orb +245 -245
  127. package/behaviors/registry/app/organisms/std-restaurant-pos.orb +131 -131
  128. package/behaviors/registry/app/organisms/std-retail-pos.orb +129 -129
  129. package/behaviors/registry/app/organisms/std-social-feed.orb +159 -159
  130. package/behaviors/registry/app/organisms/std-subscription-billing.orb +187 -187
  131. package/behaviors/registry/app/organisms/std-survey.orb +129 -129
  132. package/behaviors/registry/app/organisms/std-time-tracking.orb +167 -167
  133. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +263 -263
  134. package/behaviors/registry/app/organisms/std-wiki.orb +139 -139
  135. package/behaviors/registry/core/atoms/std-billable-hour.orb +65 -65
  136. package/behaviors/registry/core/atoms/std-branching-logic.orb +62 -62
  137. package/behaviors/registry/core/atoms/std-browse.orb +58 -58
  138. package/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  139. package/behaviors/registry/core/atoms/std-calendar.orb +50 -50
  140. package/behaviors/registry/core/atoms/std-circuit-breaker.orb +184 -184
  141. package/behaviors/registry/core/atoms/std-confirmation.orb +25 -25
  142. package/behaviors/registry/core/atoms/std-display.orb +1 -1
  143. package/behaviors/registry/core/atoms/std-drawer.orb +14 -14
  144. package/behaviors/registry/core/atoms/std-esign-request.orb +29 -29
  145. package/behaviors/registry/core/atoms/std-file-store.orb +91 -79
  146. package/behaviors/registry/core/atoms/std-filter.orb +12 -12
  147. package/behaviors/registry/core/atoms/std-flag.orb +95 -95
  148. package/behaviors/registry/core/atoms/std-gallery.orb +48 -48
  149. package/behaviors/registry/core/atoms/std-geosearch.orb +26 -26
  150. package/behaviors/registry/core/atoms/std-graphs.orb +37 -37
  151. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +56 -56
  152. package/behaviors/registry/core/atoms/std-mod-queue.orb +56 -56
  153. package/behaviors/registry/core/atoms/std-modal.orb +20 -20
  154. package/behaviors/registry/core/atoms/std-page-tree.orb +88 -64
  155. package/behaviors/registry/core/atoms/std-pagination.orb +17 -17
  156. package/behaviors/registry/core/atoms/std-push.orb +38 -38
  157. package/behaviors/registry/core/atoms/std-rate-limiter.orb +168 -168
  158. package/behaviors/registry/core/atoms/std-rating-review.orb +68 -68
  159. package/behaviors/registry/core/atoms/std-related.orb +34 -34
  160. package/behaviors/registry/core/atoms/std-rich-editor.orb +101 -108
  161. package/behaviors/registry/core/atoms/std-saved-search.orb +55 -55
  162. package/behaviors/registry/core/atoms/std-search.orb +9 -9
  163. package/behaviors/registry/core/atoms/std-selection.orb +77 -77
  164. package/behaviors/registry/core/atoms/std-signature-capture.orb +89 -89
  165. package/behaviors/registry/core/atoms/std-stats.orb +104 -104
  166. package/behaviors/registry/core/atoms/std-tabs.orb +27 -27
  167. package/behaviors/registry/core/atoms/std-tag-taxonomy.orb +69 -69
  168. package/behaviors/registry/core/atoms/std-thread.orb +56 -56
  169. package/behaviors/registry/core/atoms/std-version-history.orb +81 -81
  170. package/behaviors/registry/core/atoms/std-vote.orb +39 -39
  171. package/behaviors/registry/core/molecules/std-app-layout.orb +21 -21
  172. package/behaviors/registry/core/molecules/std-dashboard-grid-layout.orb +11 -11
  173. package/behaviors/registry/core/molecules/std-dashboard.orb +52 -52
  174. package/behaviors/registry/core/molecules/std-esign-flow.orb +86 -104
  175. package/behaviors/registry/core/molecules/std-filtered-list.orb +22 -22
  176. package/behaviors/registry/core/molecules/std-form-advanced.orb +133 -133
  177. package/behaviors/registry/core/molecules/std-list.orb +71 -71
  178. package/behaviors/registry/core/molecules/std-master-detail-layout.orb +13 -13
  179. package/behaviors/registry/core/molecules/std-stack-layout.orb +12 -12
  180. package/behaviors/registry/core/molecules/std-tabs-layout.orb +11 -11
  181. package/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  182. package/behaviors/registry/core/organisms/std-generic-app.orb +544 -544
  183. package/behaviors/registry/game/atoms/std-collision.orb +0 -595
  184. package/behaviors/registry/game/atoms/std-combat.orb +0 -524
  185. package/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  186. package/behaviors/registry/game/atoms/std-game-canvas2d.orb +40 -40
  187. package/behaviors/registry/game/atoms/std-gameflow.orb +0 -456
  188. package/behaviors/registry/game/atoms/std-movement.orb +0 -1279
  189. package/behaviors/registry/game/atoms/std-overworld.orb +56 -56
  190. package/behaviors/registry/game/atoms/std-physics2d.orb +78 -78
  191. package/behaviors/registry/game/atoms/std-quest.orb +122 -122
  192. package/behaviors/registry/game/atoms/std-timer.orb +266 -266
  193. package/behaviors/registry/game/organisms/std-arcade-game.orb +0 -1446
  194. package/behaviors/registry/game/organisms/std-logic-training.orb +0 -1037
  195. package/behaviors/registry/game/organisms/std-platformer-app.orb +0 -2567
  196. package/behaviors/registry/game/organisms/std-puzzle-app.orb +0 -1197
  197. package/behaviors/registry/game/organisms/std-rpg-game.orb +0 -3509
  198. package/behaviors/registry/game/organisms/std-stem-lab.orb +0 -2003
  199. package/behaviors/registry/game/organisms/std-strategy-game.orb +0 -2686
  200. package/behaviors/registry/probes/molecules/std-source-scope-probe.orb +32 -32
  201. package/behaviors/registry/service/atoms/std-service-calendar-ical.orb +51 -51
  202. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +69 -69
  203. package/behaviors/registry/service/atoms/std-service-email.orb +55 -55
  204. package/behaviors/registry/service/atoms/std-service-github.orb +70 -70
  205. package/behaviors/registry/service/atoms/std-service-llm.orb +70 -70
  206. package/behaviors/registry/service/atoms/std-service-maps.orb +83 -83
  207. package/behaviors/registry/service/atoms/std-service-oauth.orb +51 -51
  208. package/behaviors/registry/service/atoms/std-service-print.orb +114 -114
  209. package/behaviors/registry/service/atoms/std-service-redis.orb +61 -61
  210. package/behaviors/registry/service/atoms/std-service-storage.orb +51 -51
  211. package/behaviors/registry/service/atoms/std-service-stripe.orb +111 -111
  212. package/behaviors/registry/service/atoms/std-service-twilio.orb +48 -48
  213. package/behaviors/registry/service/atoms/std-service-youtube.orb +45 -45
  214. package/behaviors/registry/service/organisms/std-service-marketplace.orb +911 -911
  215. package/behaviors/registry/service/organisms/std-service-research-assistant.orb +883 -883
  216. package/dist/behaviors/registry/agent/atoms/std-agent-activity-log.orb +82 -82
  217. package/dist/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +110 -110
  218. package/dist/behaviors/registry/agent/atoms/std-agent-classifier.orb +112 -112
  219. package/dist/behaviors/registry/agent/atoms/std-agent-completion.orb +90 -90
  220. package/dist/behaviors/registry/agent/atoms/std-agent-context-window.orb +406 -406
  221. package/dist/behaviors/registry/agent/atoms/std-agent-conversation.orb +94 -94
  222. package/dist/behaviors/registry/agent/atoms/std-agent-memory.orb +83 -83
  223. package/dist/behaviors/registry/agent/atoms/std-agent-provider.orb +122 -122
  224. package/dist/behaviors/registry/agent/atoms/std-agent-search.orb +51 -51
  225. package/dist/behaviors/registry/agent/atoms/std-agent-session.orb +122 -122
  226. package/dist/behaviors/registry/agent/atoms/std-agent-step-progress.orb +214 -214
  227. package/dist/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +329 -329
  228. package/dist/behaviors/registry/agent/atoms/std-agent-tool-call.orb +67 -67
  229. package/dist/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +202 -202
  230. package/dist/behaviors/registry/agent/molecules/std-agent-learner.orb +185 -185
  231. package/dist/behaviors/registry/agent/molecules/std-agent-planner.orb +122 -122
  232. package/dist/behaviors/registry/agent/molecules/std-agent-rag.orb +114 -114
  233. package/dist/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +209 -209
  234. package/dist/behaviors/registry/agent/organisms/std-agent-assistant.orb +1039 -1039
  235. package/dist/behaviors/registry/agent/organisms/std-agent-builder.orb +2977 -2977
  236. package/dist/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2090 -2090
  237. package/dist/behaviors/registry/agent/organisms/std-agent-reviewer.orb +935 -935
  238. package/dist/behaviors/registry/agent/organisms/std-agent-tutor.orb +760 -760
  239. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +62 -62
  240. package/dist/behaviors/registry/app/atoms/std-applicant.orb +35 -35
  241. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +152 -166
  242. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +120 -125
  243. package/dist/behaviors/registry/app/atoms/std-change-order.orb +65 -65
  244. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +58 -58
  245. package/dist/behaviors/registry/app/atoms/std-checkin.orb +57 -57
  246. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +458 -260
  247. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +46 -46
  248. package/dist/behaviors/registry/app/atoms/std-class-session.orb +63 -57
  249. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +60 -60
  250. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +49 -49
  251. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +40 -40
  252. package/dist/behaviors/registry/app/atoms/std-donor.orb +52 -75
  253. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +46 -46
  254. package/dist/behaviors/registry/app/atoms/std-driver.orb +101 -101
  255. package/dist/behaviors/registry/app/atoms/std-dunning.orb +89 -100
  256. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +29 -29
  257. package/dist/behaviors/registry/app/atoms/std-event.orb +59 -59
  258. package/dist/behaviors/registry/app/atoms/std-health-score.orb +134 -196
  259. package/dist/behaviors/registry/app/atoms/std-help-article.orb +110 -135
  260. package/dist/behaviors/registry/app/atoms/std-help-category.orb +79 -86
  261. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +34 -34
  262. package/dist/behaviors/registry/app/atoms/std-invoice.orb +111 -129
  263. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +56 -56
  264. package/dist/behaviors/registry/app/atoms/std-lease.orb +95 -87
  265. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +103 -108
  266. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +97 -97
  267. package/dist/behaviors/registry/app/atoms/std-matter.orb +139 -161
  268. package/dist/behaviors/registry/app/atoms/std-membership.orb +73 -75
  269. package/dist/behaviors/registry/app/atoms/std-menu.orb +63 -63
  270. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +52 -52
  271. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +85 -85
  272. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +41 -41
  273. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +63 -63
  274. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +51 -51
  275. package/dist/behaviors/registry/app/atoms/std-receipt.orb +46 -46
  276. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +108 -118
  277. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +99 -111
  278. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +27 -27
  279. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +53 -53
  280. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +45 -45
  281. package/dist/behaviors/registry/app/atoms/std-rfi.orb +84 -84
  282. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +43 -43
  283. package/dist/behaviors/registry/app/atoms/std-segment.orb +43 -51
  284. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +58 -58
  285. package/dist/behaviors/registry/app/atoms/std-submittal.orb +173 -157
  286. package/dist/behaviors/registry/app/atoms/std-table-map.orb +43 -43
  287. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +37 -37
  288. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +64 -64
  289. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +65 -65
  290. package/dist/behaviors/registry/app/atoms/std-tenant.orb +38 -38
  291. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +63 -63
  292. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +114 -114
  293. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +79 -102
  294. package/dist/behaviors/registry/app/atoms/std-trial.orb +78 -85
  295. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +149 -149
  296. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +49 -49
  297. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +125 -130
  298. package/dist/behaviors/registry/app/atoms/std-work-order.orb +71 -71
  299. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +52 -52
  300. package/dist/behaviors/registry/app/molecules/std-application.orb +152 -152
  301. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +91 -108
  302. package/dist/behaviors/registry/app/molecules/std-cart.orb +62 -62
  303. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +102 -102
  304. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +67 -118
  305. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +73 -73
  306. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +269 -269
  307. package/dist/behaviors/registry/app/organisms/std-accounting.orb +120 -120
  308. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +214 -214
  309. package/dist/behaviors/registry/app/organisms/std-ats-recruiting.orb +143 -143
  310. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +698 -698
  311. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +282 -282
  312. package/dist/behaviors/registry/app/organisms/std-cms.orb +315 -315
  313. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +226 -226
  314. package/dist/behaviors/registry/app/organisms/std-construction-pm.orb +159 -159
  315. package/dist/behaviors/registry/app/organisms/std-crm.orb +265 -265
  316. package/dist/behaviors/registry/app/organisms/std-customer-success.orb +106 -106
  317. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +384 -384
  318. package/dist/behaviors/registry/app/organisms/std-document-mgmt.orb +101 -101
  319. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +735 -735
  320. package/dist/behaviors/registry/app/organisms/std-event-ticketing.orb +207 -207
  321. package/dist/behaviors/registry/app/organisms/std-field-service.orb +181 -181
  322. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +227 -227
  323. package/dist/behaviors/registry/app/organisms/std-fitness-studio.orb +145 -145
  324. package/dist/behaviors/registry/app/organisms/std-fleet-mgmt.orb +149 -149
  325. package/dist/behaviors/registry/app/organisms/std-forum.orb +150 -150
  326. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +531 -531
  327. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +161 -161
  328. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +455 -455
  329. package/dist/behaviors/registry/app/organisms/std-inventory.orb +162 -162
  330. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +353 -353
  331. package/dist/behaviors/registry/app/organisms/std-legal-case.orb +164 -164
  332. package/dist/behaviors/registry/app/organisms/std-listings.orb +147 -147
  333. package/dist/behaviors/registry/app/organisms/std-lms.orb +409 -409
  334. package/dist/behaviors/registry/app/organisms/std-marketing-campaign.orb +123 -123
  335. package/dist/behaviors/registry/app/organisms/std-marketplace.orb +251 -251
  336. package/dist/behaviors/registry/app/organisms/std-nonprofit-donations.orb +105 -105
  337. package/dist/behaviors/registry/app/organisms/std-notes.orb +112 -112
  338. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +200 -200
  339. package/dist/behaviors/registry/app/organisms/std-property-mgmt.orb +178 -178
  340. package/dist/behaviors/registry/app/organisms/std-public-help-center.orb +133 -133
  341. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +245 -245
  342. package/dist/behaviors/registry/app/organisms/std-restaurant-pos.orb +131 -131
  343. package/dist/behaviors/registry/app/organisms/std-retail-pos.orb +129 -129
  344. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +159 -159
  345. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +187 -187
  346. package/dist/behaviors/registry/app/organisms/std-survey.orb +129 -129
  347. package/dist/behaviors/registry/app/organisms/std-time-tracking.orb +167 -167
  348. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +263 -263
  349. package/dist/behaviors/registry/app/organisms/std-wiki.orb +139 -139
  350. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +65 -65
  351. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +62 -62
  352. package/dist/behaviors/registry/core/atoms/std-browse.orb +58 -58
  353. package/dist/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  354. package/dist/behaviors/registry/core/atoms/std-calendar.orb +50 -50
  355. package/dist/behaviors/registry/core/atoms/std-circuit-breaker.orb +184 -184
  356. package/dist/behaviors/registry/core/atoms/std-confirmation.orb +25 -25
  357. package/dist/behaviors/registry/core/atoms/std-display.orb +1 -1
  358. package/dist/behaviors/registry/core/atoms/std-drawer.orb +14 -14
  359. package/dist/behaviors/registry/core/atoms/std-esign-request.orb +29 -29
  360. package/dist/behaviors/registry/core/atoms/std-file-store.orb +91 -79
  361. package/dist/behaviors/registry/core/atoms/std-filter.orb +12 -12
  362. package/dist/behaviors/registry/core/atoms/std-flag.orb +95 -95
  363. package/dist/behaviors/registry/core/atoms/std-gallery.orb +48 -48
  364. package/dist/behaviors/registry/core/atoms/std-geosearch.orb +26 -26
  365. package/dist/behaviors/registry/core/atoms/std-graphs.orb +37 -37
  366. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +56 -56
  367. package/dist/behaviors/registry/core/atoms/std-mod-queue.orb +56 -56
  368. package/dist/behaviors/registry/core/atoms/std-modal.orb +20 -20
  369. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +88 -64
  370. package/dist/behaviors/registry/core/atoms/std-pagination.orb +17 -17
  371. package/dist/behaviors/registry/core/atoms/std-push.orb +38 -38
  372. package/dist/behaviors/registry/core/atoms/std-rate-limiter.orb +168 -168
  373. package/dist/behaviors/registry/core/atoms/std-rating-review.orb +68 -68
  374. package/dist/behaviors/registry/core/atoms/std-related.orb +34 -34
  375. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +101 -108
  376. package/dist/behaviors/registry/core/atoms/std-saved-search.orb +55 -55
  377. package/dist/behaviors/registry/core/atoms/std-search.orb +9 -9
  378. package/dist/behaviors/registry/core/atoms/std-selection.orb +77 -77
  379. package/dist/behaviors/registry/core/atoms/std-signature-capture.orb +89 -89
  380. package/dist/behaviors/registry/core/atoms/std-stats.orb +104 -104
  381. package/dist/behaviors/registry/core/atoms/std-tabs.orb +27 -27
  382. package/dist/behaviors/registry/core/atoms/std-tag-taxonomy.orb +69 -69
  383. package/dist/behaviors/registry/core/atoms/std-thread.orb +56 -56
  384. package/dist/behaviors/registry/core/atoms/std-version-history.orb +81 -81
  385. package/dist/behaviors/registry/core/atoms/std-vote.orb +39 -39
  386. package/dist/behaviors/registry/core/molecules/std-app-layout.orb +21 -21
  387. package/dist/behaviors/registry/core/molecules/std-dashboard-grid-layout.orb +11 -11
  388. package/dist/behaviors/registry/core/molecules/std-dashboard.orb +52 -52
  389. package/dist/behaviors/registry/core/molecules/std-esign-flow.orb +86 -104
  390. package/dist/behaviors/registry/core/molecules/std-filtered-list.orb +22 -22
  391. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +133 -133
  392. package/dist/behaviors/registry/core/molecules/std-list.orb +71 -71
  393. package/dist/behaviors/registry/core/molecules/std-master-detail-layout.orb +13 -13
  394. package/dist/behaviors/registry/core/molecules/std-stack-layout.orb +12 -12
  395. package/dist/behaviors/registry/core/molecules/std-tabs-layout.orb +11 -11
  396. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  397. package/dist/behaviors/registry/core/organisms/std-generic-app.orb +544 -544
  398. package/dist/behaviors/registry/game/atoms/std-collision.orb +0 -595
  399. package/dist/behaviors/registry/game/atoms/std-combat.orb +0 -524
  400. package/dist/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  401. package/dist/behaviors/registry/game/atoms/std-game-canvas2d.orb +40 -40
  402. package/dist/behaviors/registry/game/atoms/std-gameflow.orb +0 -456
  403. package/dist/behaviors/registry/game/atoms/std-movement.orb +0 -1279
  404. package/dist/behaviors/registry/game/atoms/std-overworld.orb +56 -56
  405. package/dist/behaviors/registry/game/atoms/std-physics2d.orb +78 -78
  406. package/dist/behaviors/registry/game/atoms/std-quest.orb +122 -122
  407. package/dist/behaviors/registry/game/atoms/std-timer.orb +266 -266
  408. package/dist/behaviors/registry/game/organisms/std-arcade-game.orb +0 -1446
  409. package/dist/behaviors/registry/game/organisms/std-logic-training.orb +0 -1037
  410. package/dist/behaviors/registry/game/organisms/std-platformer-app.orb +0 -2567
  411. package/dist/behaviors/registry/game/organisms/std-puzzle-app.orb +0 -1197
  412. package/dist/behaviors/registry/game/organisms/std-rpg-game.orb +0 -3509
  413. package/dist/behaviors/registry/game/organisms/std-stem-lab.orb +0 -2003
  414. package/dist/behaviors/registry/game/organisms/std-strategy-game.orb +0 -2686
  415. package/dist/behaviors/registry/probes/molecules/std-source-scope-probe.orb +32 -32
  416. package/dist/behaviors/registry/service/atoms/std-service-calendar-ical.orb +51 -51
  417. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +69 -69
  418. package/dist/behaviors/registry/service/atoms/std-service-email.orb +55 -55
  419. package/dist/behaviors/registry/service/atoms/std-service-github.orb +70 -70
  420. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +70 -70
  421. package/dist/behaviors/registry/service/atoms/std-service-maps.orb +83 -83
  422. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +51 -51
  423. package/dist/behaviors/registry/service/atoms/std-service-print.orb +114 -114
  424. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +61 -61
  425. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +51 -51
  426. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +111 -111
  427. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +48 -48
  428. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +45 -45
  429. package/dist/behaviors/registry/service/organisms/std-service-marketplace.orb +911 -911
  430. package/dist/behaviors/registry/service/organisms/std-service-research-assistant.orb +883 -883
  431. package/package.json +1 -1
@@ -86,33 +86,33 @@
86
86
  "ref": "AppShell.traits.AppLayout",
87
87
  "name": "BookingProviderAppLayout",
88
88
  "config": {
89
- "contentTrait": "@trait.ProviderCatalog",
90
- "notificationClickEvent": "BOOKING_NOTIFICATIONS_OPEN",
91
- "notifications": [],
92
- "searchEvent": "BOOKING_SEARCH",
93
- "appName": "BookingSystemApp",
94
89
  "navItems": [
95
90
  {
96
- "label": "Providers",
97
91
  "href": "/providers",
98
- "icon": "user-check"
92
+ "icon": "user-check",
93
+ "label": "Providers"
99
94
  },
100
95
  {
101
- "href": "/book",
96
+ "icon": "calendar-plus",
102
97
  "label": "Book",
103
- "icon": "calendar-plus"
98
+ "href": "/book"
104
99
  },
105
100
  {
106
- "label": "Appointments",
107
101
  "href": "/appointments",
102
+ "label": "Appointments",
108
103
  "icon": "calendar"
109
104
  },
110
105
  {
111
- "href": "/schedule",
112
106
  "icon": "clock",
113
- "label": "Schedule"
107
+ "label": "Schedule",
108
+ "href": "/schedule"
114
109
  }
115
- ]
110
+ ],
111
+ "appName": "BookingSystemApp",
112
+ "notificationClickEvent": "BOOKING_NOTIFICATIONS_OPEN",
113
+ "notifications": [],
114
+ "searchEvent": "BOOKING_SEARCH",
115
+ "contentTrait": "@trait.ProviderCatalog"
116
116
  },
117
117
  "events": {
118
118
  "SEARCH": "BOOKING_SEARCH",
@@ -199,55 +199,56 @@
199
199
  "render-ui",
200
200
  "main",
201
201
  {
202
+ "type": "stack",
202
203
  "children": [
203
204
  {
205
+ "type": "stack",
204
206
  "justify": "between",
205
- "align": "center",
206
207
  "direction": "horizontal",
207
208
  "children": [
208
209
  {
210
+ "direction": "horizontal",
211
+ "gap": "sm",
209
212
  "align": "center",
213
+ "type": "stack",
210
214
  "children": [
211
215
  {
212
- "name": "user",
213
- "type": "icon"
216
+ "type": "icon",
217
+ "name": "user"
214
218
  },
215
219
  {
216
220
  "type": "typography",
217
221
  "content": "Providers",
218
222
  "variant": "h2"
219
223
  }
220
- ],
221
- "direction": "horizontal",
222
- "gap": "sm",
223
- "type": "stack"
224
+ ]
224
225
  },
225
226
  {
226
227
  "type": "stack",
227
- "gap": "sm",
228
228
  "direction": "horizontal",
229
+ "gap": "sm",
229
230
  "children": [
230
231
  {
231
- "type": "button",
232
- "variant": "primary",
232
+ "label": "Add Provider",
233
233
  "icon": "plus",
234
+ "variant": "primary",
234
235
  "action": "CREATE",
235
- "label": "Add Provider"
236
+ "type": "button"
236
237
  }
237
238
  ]
238
239
  }
239
240
  ],
240
241
  "gap": "md",
241
- "type": "stack"
242
+ "align": "center"
242
243
  },
243
244
  {
244
245
  "children": [
245
246
  "@trait.ProviderSearch",
246
247
  "@trait.ProviderFilter"
247
248
  ],
248
- "gap": "md",
249
- "direction": "horizontal",
250
249
  "type": "stack",
250
+ "direction": "horizontal",
251
+ "gap": "md",
251
252
  "align": "center"
252
253
  },
253
254
  {
@@ -260,9 +261,8 @@
260
261
  },
261
262
  "@trait.ProviderBrowseList"
262
263
  ],
263
- "gap": "lg",
264
264
  "direction": "vertical",
265
- "type": "stack"
265
+ "gap": "lg"
266
266
  }
267
267
  ]
268
268
  ]
@@ -281,6 +281,8 @@
281
281
  "render-ui",
282
282
  "main",
283
283
  {
284
+ "type": "stack",
285
+ "align": "center",
284
286
  "className": "py-8",
285
287
  "children": [
286
288
  {
@@ -288,27 +290,25 @@
288
290
  "type": "icon"
289
291
  },
290
292
  {
291
- "variant": "h3",
292
293
  "content": "No notifications",
293
- "type": "typography"
294
+ "type": "typography",
295
+ "variant": "h3"
294
296
  },
295
297
  {
296
- "variant": "caption",
297
298
  "type": "typography",
299
+ "variant": "caption",
298
300
  "content": "You're all caught up.",
299
301
  "color": "muted"
300
302
  },
301
303
  {
302
- "action": "INIT",
303
- "type": "button",
304
304
  "label": "Back to providers",
305
+ "type": "button",
306
+ "action": "INIT",
305
307
  "variant": "ghost"
306
308
  }
307
309
  ],
308
- "gap": "md",
309
- "align": "center",
310
- "type": "stack",
311
- "direction": "vertical"
310
+ "direction": "vertical",
311
+ "gap": "md"
312
312
  }
313
313
  ]
314
314
  ]
@@ -333,22 +333,22 @@
333
333
  "filters": [
334
334
  {
335
335
  "field": "specialty",
336
- "label": "Specialty",
337
- "filterType": "select",
338
336
  "options": [
339
337
  "general",
340
338
  "dental",
341
339
  "dermatology",
342
340
  "cardiology",
343
341
  "psychiatry"
344
- ]
342
+ ],
343
+ "filterType": "select",
344
+ "label": "Specialty"
345
345
  },
346
346
  {
347
- "min": 0.0,
348
347
  "label": "Rating",
348
+ "filterType": "range",
349
+ "min": 0.0,
349
350
  "field": "rating",
350
- "max": 5.0,
351
- "filterType": "range"
351
+ "max": 5.0
352
352
  }
353
353
  ]
354
354
  }
@@ -357,42 +357,42 @@
357
357
  "ref": "Stats.traits.StatsItemStats",
358
358
  "name": "ProviderStats",
359
359
  "config": {
360
+ "title": "Provider Overview",
360
361
  "metrics": [
361
362
  {
362
- "aggregation": "count",
363
- "icon": "users",
364
- "format": "number",
363
+ "variant": "primary",
365
364
  "label": "Total Providers",
366
- "variant": "primary"
365
+ "format": "number",
366
+ "aggregation": "count",
367
+ "icon": "users"
367
368
  },
368
369
  {
370
+ "variant": "success",
371
+ "label": "Active",
372
+ "aggregation": "count",
373
+ "format": "number",
369
374
  "filter": {
370
375
  "available": true
371
376
  },
372
- "label": "Active",
373
- "format": "number",
374
- "aggregation": "count",
375
- "icon": "check-circle",
376
- "variant": "success"
377
+ "icon": "check-circle"
377
378
  },
378
379
  {
379
- "field": "rating",
380
- "label": "Avg Rating",
381
- "aggregation": "avg",
382
380
  "variant": "info",
381
+ "aggregation": "avg",
382
+ "field": "rating",
383
383
  "icon": "star",
384
+ "label": "Avg Rating",
384
385
  "format": "number"
385
386
  },
386
387
  {
387
- "label": "Avg Hourly Rate",
388
- "icon": "dollar-sign",
388
+ "aggregation": "avg",
389
+ "format": "currency",
389
390
  "field": "hourlyRate",
390
391
  "variant": "info",
391
- "aggregation": "avg",
392
- "format": "currency"
392
+ "label": "Avg Hourly Rate",
393
+ "icon": "dollar-sign"
393
394
  }
394
- ],
395
- "title": "Provider Overview"
395
+ ]
396
396
  },
397
397
  "listens": [
398
398
  {
@@ -409,11 +409,11 @@
409
409
  "ref": "Graphs.traits.GraphItemGraph",
410
410
  "name": "ProviderGraphs",
411
411
  "config": {
412
- "chartType": "pie",
413
412
  "categoryField": "specialty",
414
- "subtitle": "Distribution across specialties",
415
413
  "aggregation": "count",
416
- "title": "Providers by Specialty"
414
+ "title": "Providers by Specialty",
415
+ "subtitle": "Distribution across specialties",
416
+ "chartType": "pie"
417
417
  },
418
418
  "listens": [
419
419
  {
@@ -433,8 +433,8 @@
433
433
  "config": {
434
434
  "fields": [
435
435
  {
436
- "icon": "user",
437
436
  "name": "name",
437
+ "icon": "user",
438
438
  "variant": "h3"
439
439
  },
440
440
  {
@@ -442,42 +442,42 @@
442
442
  "variant": "badge"
443
443
  },
444
444
  {
445
+ "name": "rating",
445
446
  "variant": "body",
446
- "format": "number",
447
- "name": "rating"
447
+ "format": "number"
448
448
  },
449
449
  {
450
450
  "name": "hourlyRate",
451
- "label": "Hourly Rate",
452
451
  "variant": "h4",
453
- "format": "currency"
452
+ "format": "currency",
453
+ "label": "Hourly Rate"
454
454
  },
455
455
  {
456
+ "name": "available",
456
457
  "label": "Availability",
457
458
  "variant": "body",
458
- "name": "available",
459
459
  "format": "boolean"
460
460
  }
461
461
  ],
462
+ "gap": "md",
463
+ "cols": 2.0,
462
464
  "itemActions": [
463
465
  {
464
- "label": "View",
465
466
  "event": "VIEW",
467
+ "label": "View",
466
468
  "variant": "ghost"
467
469
  },
468
470
  {
469
- "event": "EDIT",
470
471
  "label": "Edit",
472
+ "event": "EDIT",
471
473
  "variant": "ghost"
472
474
  },
473
475
  {
474
- "variant": "danger",
475
476
  "label": "Delete",
477
+ "variant": "danger",
476
478
  "event": "DELETE"
477
479
  }
478
- ],
479
- "gap": "md",
480
- "cols": 2.0
480
+ ]
481
481
  },
482
482
  "listens": [
483
483
  {
@@ -696,8 +696,8 @@
696
696
  "Provider",
697
697
  {
698
698
  "emit": {
699
- "failure": "ProviderLoadFailed",
700
- "success": "ProviderLoaded"
699
+ "success": "ProviderLoaded",
700
+ "failure": "ProviderLoadFailed"
701
701
  }
702
702
  }
703
703
  ]
@@ -725,20 +725,20 @@
725
725
  "type": "stack",
726
726
  "children": [
727
727
  {
728
- "type": "stack",
729
728
  "children": [
730
729
  {
731
- "name": "plus-circle",
732
- "type": "icon"
730
+ "type": "icon",
731
+ "name": "plus-circle"
733
732
  },
734
733
  {
735
- "content": "Add Provider",
736
734
  "type": "typography",
735
+ "content": "Add Provider",
737
736
  "variant": "h3"
738
737
  }
739
738
  ],
740
- "gap": "sm",
741
- "direction": "horizontal"
739
+ "direction": "horizontal",
740
+ "type": "stack",
741
+ "gap": "sm"
742
742
  },
743
743
  {
744
744
  "type": "divider"
@@ -753,14 +753,14 @@
753
753
  "hourlyRate",
754
754
  "available"
755
755
  ],
756
- "submitEvent": "SAVE",
757
756
  "type": "form-section",
758
- "cancelEvent": "CLOSE",
759
- "mode": "create"
757
+ "submitEvent": "SAVE",
758
+ "mode": "create",
759
+ "cancelEvent": "CLOSE"
760
760
  }
761
761
  ],
762
- "direction": "vertical",
763
- "gap": "md"
762
+ "gap": "md",
763
+ "direction": "vertical"
764
764
  }
765
765
  ]
766
766
  ]
@@ -801,8 +801,8 @@
801
801
  "@payload.data",
802
802
  {
803
803
  "emit": {
804
- "failure": "ProviderSaveFailed",
805
- "success": "ProviderSaved"
804
+ "success": "ProviderSaved",
805
+ "failure": "ProviderSaveFailed"
806
806
  }
807
807
  }
808
808
  ],
@@ -1021,8 +1021,8 @@
1021
1021
  "Provider",
1022
1022
  {
1023
1023
  "emit": {
1024
- "success": "ProviderLoaded",
1025
- "failure": "ProviderLoadFailed"
1024
+ "failure": "ProviderLoadFailed",
1025
+ "success": "ProviderLoaded"
1026
1026
  }
1027
1027
  }
1028
1028
  ]
@@ -1038,8 +1038,8 @@
1038
1038
  "Provider",
1039
1039
  {
1040
1040
  "emit": {
1041
- "success": "ProviderLoaded",
1042
- "failure": "ProviderLoadFailed"
1041
+ "failure": "ProviderLoadFailed",
1042
+ "success": "ProviderLoaded"
1043
1043
  },
1044
1044
  "id": "@payload.id"
1045
1045
  }
@@ -1052,27 +1052,25 @@
1052
1052
  {
1053
1053
  "gap": "sm",
1054
1054
  "type": "stack",
1055
+ "direction": "horizontal",
1055
1056
  "children": [
1056
1057
  {
1057
- "name": "edit",
1058
- "type": "icon"
1058
+ "type": "icon",
1059
+ "name": "edit"
1059
1060
  },
1060
1061
  {
1061
1062
  "type": "typography",
1062
1063
  "content": "Edit Provider",
1063
1064
  "variant": "h3"
1064
1065
  }
1065
- ],
1066
- "direction": "horizontal"
1066
+ ]
1067
1067
  },
1068
1068
  {
1069
1069
  "type": "divider"
1070
1070
  },
1071
1071
  {
1072
- "mode": "edit",
1072
+ "submitEvent": "SAVE",
1073
1073
  "type": "form-section",
1074
- "entity": "@payload.row",
1075
- "cancelEvent": "CLOSE",
1076
1074
  "fields": [
1077
1075
  "name",
1078
1076
  "specialty",
@@ -1082,12 +1080,14 @@
1082
1080
  "hourlyRate",
1083
1081
  "available"
1084
1082
  ],
1085
- "submitEvent": "SAVE"
1083
+ "entity": "@payload.row",
1084
+ "mode": "edit",
1085
+ "cancelEvent": "CLOSE"
1086
1086
  }
1087
1087
  ],
1088
- "type": "stack",
1088
+ "direction": "vertical",
1089
1089
  "gap": "md",
1090
- "direction": "vertical"
1090
+ "type": "stack"
1091
1091
  }
1092
1092
  ]
1093
1093
  ]
@@ -1349,10 +1349,14 @@
1349
1349
  "render-ui",
1350
1350
  "modal",
1351
1351
  {
1352
- "gap": "md",
1353
1352
  "type": "stack",
1353
+ "direction": "vertical",
1354
+ "gap": "md",
1354
1355
  "children": [
1355
1356
  {
1357
+ "direction": "horizontal",
1358
+ "gap": "sm",
1359
+ "type": "stack",
1356
1360
  "align": "center",
1357
1361
  "children": [
1358
1362
  {
@@ -1360,163 +1364,159 @@
1360
1364
  "name": "eye"
1361
1365
  },
1362
1366
  {
1363
- "variant": "h3",
1364
1367
  "type": "typography",
1365
- "content": "@entity.name"
1368
+ "content": "@entity.name",
1369
+ "variant": "h3"
1366
1370
  }
1367
- ],
1368
- "type": "stack",
1369
- "direction": "horizontal",
1370
- "gap": "sm"
1371
+ ]
1371
1372
  },
1372
1373
  {
1373
1374
  "type": "divider"
1374
1375
  },
1375
1376
  {
1377
+ "direction": "horizontal",
1376
1378
  "type": "stack",
1379
+ "gap": "md",
1377
1380
  "children": [
1378
1381
  {
1379
- "type": "typography",
1380
1382
  "variant": "caption",
1383
+ "type": "typography",
1381
1384
  "content": "Name"
1382
1385
  },
1383
1386
  {
1384
1387
  "variant": "body",
1385
- "content": "@entity.name",
1386
- "type": "typography"
1388
+ "type": "typography",
1389
+ "content": "@entity.name"
1387
1390
  }
1388
- ],
1389
- "direction": "horizontal",
1390
- "gap": "md"
1391
+ ]
1391
1392
  },
1392
1393
  {
1394
+ "gap": "md",
1395
+ "type": "stack",
1393
1396
  "children": [
1394
1397
  {
1395
- "type": "typography",
1396
1398
  "content": "Specialty",
1399
+ "type": "typography",
1397
1400
  "variant": "caption"
1398
1401
  },
1399
1402
  {
1400
- "content": "@entity.specialty",
1401
1403
  "type": "typography",
1404
+ "content": "@entity.specialty",
1402
1405
  "variant": "body"
1403
1406
  }
1404
1407
  ],
1405
- "gap": "md",
1406
- "direction": "horizontal",
1407
- "type": "stack"
1408
+ "direction": "horizontal"
1408
1409
  },
1409
1410
  {
1410
- "gap": "md",
1411
1411
  "type": "stack",
1412
+ "direction": "horizontal",
1412
1413
  "children": [
1413
1414
  {
1414
- "content": "Location",
1415
+ "type": "typography",
1415
1416
  "variant": "caption",
1416
- "type": "typography"
1417
+ "content": "Location"
1417
1418
  },
1418
1419
  {
1419
1420
  "type": "typography",
1420
- "variant": "body",
1421
- "content": "@entity.location"
1421
+ "content": "@entity.location",
1422
+ "variant": "body"
1422
1423
  }
1423
1424
  ],
1424
- "direction": "horizontal"
1425
+ "gap": "md"
1425
1426
  },
1426
1427
  {
1428
+ "gap": "md",
1427
1429
  "type": "stack",
1428
1430
  "direction": "horizontal",
1429
- "gap": "md",
1430
1431
  "children": [
1431
1432
  {
1432
- "content": "Phone",
1433
+ "variant": "caption",
1433
1434
  "type": "typography",
1434
- "variant": "caption"
1435
+ "content": "Phone"
1435
1436
  },
1436
1437
  {
1437
- "content": "@entity.phone",
1438
1438
  "type": "typography",
1439
- "variant": "body"
1439
+ "variant": "body",
1440
+ "content": "@entity.phone"
1440
1441
  }
1441
1442
  ]
1442
1443
  },
1443
1444
  {
1444
- "gap": "md",
1445
1445
  "type": "stack",
1446
+ "direction": "horizontal",
1447
+ "gap": "md",
1446
1448
  "children": [
1447
1449
  {
1450
+ "variant": "caption",
1448
1451
  "content": "Rating",
1449
- "type": "typography",
1450
- "variant": "caption"
1452
+ "type": "typography"
1451
1453
  },
1452
1454
  {
1453
1455
  "type": "typography",
1454
1456
  "content": "@entity.rating",
1455
1457
  "variant": "body"
1456
1458
  }
1457
- ],
1458
- "direction": "horizontal"
1459
+ ]
1459
1460
  },
1460
1461
  {
1461
- "gap": "md",
1462
- "direction": "horizontal",
1462
+ "type": "stack",
1463
1463
  "children": [
1464
1464
  {
1465
1465
  "content": "Hourly Rate",
1466
- "variant": "caption",
1467
- "type": "typography"
1466
+ "type": "typography",
1467
+ "variant": "caption"
1468
1468
  },
1469
1469
  {
1470
1470
  "variant": "body",
1471
- "content": "@entity.hourlyRate",
1472
- "type": "typography"
1471
+ "type": "typography",
1472
+ "content": "@entity.hourlyRate"
1473
1473
  }
1474
1474
  ],
1475
- "type": "stack"
1475
+ "direction": "horizontal",
1476
+ "gap": "md"
1476
1477
  },
1477
1478
  {
1479
+ "type": "stack",
1480
+ "gap": "md",
1481
+ "direction": "horizontal",
1478
1482
  "children": [
1479
1483
  {
1480
- "type": "typography",
1484
+ "variant": "caption",
1481
1485
  "content": "Available",
1482
- "variant": "caption"
1486
+ "type": "typography"
1483
1487
  },
1484
1488
  {
1489
+ "content": "@entity.available",
1485
1490
  "variant": "body",
1486
- "type": "typography",
1487
- "content": "@entity.available"
1491
+ "type": "typography"
1488
1492
  }
1489
- ],
1490
- "type": "stack",
1491
- "gap": "md",
1492
- "direction": "horizontal"
1493
+ ]
1493
1494
  },
1494
1495
  {
1495
1496
  "type": "divider"
1496
1497
  },
1497
1498
  {
1498
- "gap": "sm",
1499
1499
  "type": "stack",
1500
- "children": [
1500
+ "direction": "horizontal",
1501
+ "gap": "sm",
1502
+ "justify": "end",
1503
+ "children": [
1501
1504
  {
1502
- "variant": "primary",
1503
- "label": "Edit",
1504
1505
  "action": "EDIT",
1505
1506
  "type": "button",
1507
+ "label": "Edit",
1508
+ "variant": "primary",
1506
1509
  "icon": "edit"
1507
1510
  },
1508
1511
  {
1509
1512
  "label": "Close",
1513
+ "action": "CLOSE",
1510
1514
  "type": "button",
1511
- "variant": "ghost",
1512
- "action": "CLOSE"
1515
+ "variant": "ghost"
1513
1516
  }
1514
- ],
1515
- "justify": "end",
1516
- "direction": "horizontal"
1517
+ ]
1517
1518
  }
1518
- ],
1519
- "direction": "vertical"
1519
+ ]
1520
1520
  }
1521
1521
  ]
1522
1522
  ]
@@ -1746,8 +1746,8 @@
1746
1746
  "Provider",
1747
1747
  {
1748
1748
  "emit": {
1749
- "success": "ProviderLoaded",
1750
- "failure": "ProviderLoadFailed"
1749
+ "failure": "ProviderLoadFailed",
1750
+ "success": "ProviderLoaded"
1751
1751
  }
1752
1752
  }
1753
1753
  ]
@@ -1768,8 +1768,8 @@
1768
1768
  "Provider",
1769
1769
  {
1770
1770
  "emit": {
1771
- "success": "ProviderLoaded",
1772
- "failure": "ProviderLoadFailed"
1771
+ "failure": "ProviderLoadFailed",
1772
+ "success": "ProviderLoaded"
1773
1773
  },
1774
1774
  "id": "@payload.id"
1775
1775
  }
@@ -1779,24 +1779,25 @@
1779
1779
  "modal",
1780
1780
  {
1781
1781
  "direction": "vertical",
1782
+ "type": "stack",
1782
1783
  "gap": "md",
1783
1784
  "children": [
1784
1785
  {
1786
+ "align": "center",
1787
+ "type": "stack",
1788
+ "direction": "horizontal",
1789
+ "gap": "sm",
1785
1790
  "children": [
1786
1791
  {
1787
1792
  "type": "icon",
1788
1793
  "name": "alert-triangle"
1789
1794
  },
1790
1795
  {
1791
- "content": "Delete Provider",
1792
1796
  "type": "typography",
1797
+ "content": "Delete Provider",
1793
1798
  "variant": "h3"
1794
1799
  }
1795
- ],
1796
- "direction": "horizontal",
1797
- "type": "stack",
1798
- "align": "center",
1799
- "gap": "sm"
1800
+ ]
1800
1801
  },
1801
1802
  {
1802
1803
  "type": "divider"
@@ -1807,28 +1808,27 @@
1807
1808
  "variant": "error"
1808
1809
  },
1809
1810
  {
1811
+ "type": "stack",
1812
+ "gap": "sm",
1813
+ "direction": "horizontal",
1814
+ "justify": "end",
1810
1815
  "children": [
1811
1816
  {
1812
- "action": "CANCEL",
1813
- "label": "Cancel",
1817
+ "type": "button",
1814
1818
  "variant": "ghost",
1815
- "type": "button"
1819
+ "label": "Cancel",
1820
+ "action": "CANCEL"
1816
1821
  },
1817
1822
  {
1818
- "icon": "check",
1819
1823
  "variant": "danger",
1820
- "type": "button",
1824
+ "icon": "check",
1821
1825
  "action": "CONFIRM_DELETE",
1826
+ "type": "button",
1822
1827
  "label": "Delete"
1823
1828
  }
1824
- ],
1825
- "direction": "horizontal",
1826
- "justify": "end",
1827
- "gap": "sm",
1828
- "type": "stack"
1829
+ ]
1829
1830
  }
1830
- ],
1831
- "type": "stack"
1831
+ ]
1832
1832
  }
1833
1833
  ]
1834
1834
  ]
@@ -1867,8 +1867,8 @@
1867
1867
  "Provider",
1868
1868
  {
1869
1869
  "emit": {
1870
- "failure": "ProviderLoadFailed",
1871
- "success": "ProviderLoaded"
1870
+ "success": "ProviderLoaded",
1871
+ "failure": "ProviderLoadFailed"
1872
1872
  }
1873
1873
  }
1874
1874
  ],
@@ -1900,8 +1900,8 @@
1900
1900
  "Provider",
1901
1901
  {
1902
1902
  "emit": {
1903
- "failure": "ProviderLoadFailed",
1904
- "success": "ProviderLoaded"
1903
+ "success": "ProviderLoaded",
1904
+ "failure": "ProviderLoadFailed"
1905
1905
  }
1906
1906
  }
1907
1907
  ]
@@ -1929,8 +1929,8 @@
1929
1929
  "Provider",
1930
1930
  {
1931
1931
  "emit": {
1932
- "failure": "ProviderLoadFailed",
1933
- "success": "ProviderLoaded"
1932
+ "success": "ProviderLoaded",
1933
+ "failure": "ProviderLoadFailed"
1934
1934
  }
1935
1935
  }
1936
1936
  ]
@@ -2051,34 +2051,34 @@
2051
2051
  "name": "BookingAppLayout",
2052
2052
  "linkedEntity": "Booking",
2053
2053
  "config": {
2054
- "contentTrait": "@trait.BookingWizard",
2055
- "appName": "BookingSystemApp",
2054
+ "notificationClickEvent": "BOOKING_NOTIFICATIONS_OPEN",
2056
2055
  "searchEvent": "BOOKING_SEARCH",
2057
2056
  "topBarActions": [],
2058
- "notifications": [],
2059
- "notificationClickEvent": "BOOKING_NOTIFICATIONS_OPEN",
2057
+ "contentTrait": "@trait.BookingWizard",
2058
+ "appName": "BookingSystemApp",
2060
2059
  "navItems": [
2061
2060
  {
2062
2061
  "href": "/providers",
2063
- "icon": "user-check",
2064
- "label": "Providers"
2062
+ "label": "Providers",
2063
+ "icon": "user-check"
2065
2064
  },
2066
2065
  {
2067
- "icon": "calendar-plus",
2066
+ "label": "Book",
2068
2067
  "href": "/book",
2069
- "label": "Book"
2068
+ "icon": "calendar-plus"
2070
2069
  },
2071
2070
  {
2072
- "href": "/appointments",
2073
2071
  "icon": "calendar",
2072
+ "href": "/appointments",
2074
2073
  "label": "Appointments"
2075
2074
  },
2076
2075
  {
2077
- "href": "/schedule",
2078
2076
  "label": "Schedule",
2079
- "icon": "clock"
2077
+ "icon": "clock",
2078
+ "href": "/schedule"
2080
2079
  }
2081
- ]
2080
+ ],
2081
+ "notifications": []
2082
2082
  },
2083
2083
  "events": {
2084
2084
  "SEARCH": "BOOKING_SEARCH",
@@ -2089,10 +2089,10 @@
2089
2089
  "ref": "Stripe.traits.ServiceStripeStripe",
2090
2090
  "name": "BookingPayment",
2091
2091
  "config": {
2092
- "currency": "usd",
2093
- "amount": 0.0,
2092
+ "metadata": {},
2094
2093
  "uiTrait": "@trait.BookingPaymentForm",
2095
- "metadata": {}
2094
+ "amount": 0.0,
2095
+ "currency": "usd"
2096
2096
  },
2097
2097
  "listens": [
2098
2098
  {
@@ -2147,9 +2147,8 @@
2147
2147
  "render-ui",
2148
2148
  "main",
2149
2149
  {
2150
- "gap": "md",
2151
- "direction": "vertical",
2152
2150
  "type": "stack",
2151
+ "direction": "vertical",
2153
2152
  "children": [
2154
2153
  {
2155
2154
  "type": "alert",
@@ -2162,8 +2161,8 @@
2162
2161
  "placeholder": "Card number"
2163
2162
  },
2164
2163
  {
2164
+ "type": "stack",
2165
2165
  "gap": "sm",
2166
- "direction": "horizontal",
2167
2166
  "children": [
2168
2167
  {
2169
2168
  "type": "input",
@@ -2176,16 +2175,17 @@
2176
2175
  "placeholder": "CVC"
2177
2176
  }
2178
2177
  ],
2179
- "type": "stack"
2178
+ "direction": "horizontal"
2180
2179
  },
2181
2180
  {
2182
- "type": "button",
2183
- "label": "Pay deposit",
2184
2181
  "variant": "primary",
2182
+ "label": "Pay deposit",
2183
+ "icon": "credit-card",
2185
2184
  "action": "CREATE_PAYMENT",
2186
- "icon": "credit-card"
2185
+ "type": "button"
2187
2186
  }
2188
- ]
2187
+ ],
2188
+ "gap": "md"
2189
2189
  }
2190
2190
  ]
2191
2191
  ]
@@ -2540,47 +2540,47 @@
2540
2540
  "render-ui",
2541
2541
  "main",
2542
2542
  {
2543
- "gap": "lg",
2544
2543
  "className": "max-w-xl mx-auto w-full",
2545
2544
  "type": "stack",
2545
+ "gap": "lg",
2546
2546
  "children": [
2547
2547
  {
2548
- "type": "typography",
2549
2548
  "content": "Book Appointment",
2550
- "variant": "h2"
2549
+ "variant": "h2",
2550
+ "type": "typography"
2551
2551
  },
2552
2552
  {
2553
- "type": "wizard-progress",
2554
- "currentStep": 0.0,
2555
2553
  "steps": [
2556
2554
  "Select Provider",
2557
2555
  "Select Time",
2558
2556
  "Your Details",
2559
2557
  "Payment",
2560
2558
  "Confirmation"
2561
- ]
2559
+ ],
2560
+ "type": "wizard-progress",
2561
+ "currentStep": 0.0
2562
2562
  },
2563
2563
  {
2564
2564
  "type": "divider"
2565
2565
  },
2566
2566
  {
2567
- "variant": "h3",
2568
2567
  "type": "typography",
2568
+ "variant": "h3",
2569
2569
  "content": "Select Provider"
2570
2570
  },
2571
2571
  {
2572
- "mode": "create",
2573
- "showCancel": false,
2574
- "submitEvent": "NEXT",
2575
2572
  "type": "form-section",
2576
2573
  "submitLabel": "Continue",
2574
+ "showCancel": false,
2575
+ "submitEvent": "NEXT",
2577
2576
  "fields": [
2578
2577
  {
2579
- "required": true,
2580
2578
  "min": 2.0,
2579
+ "required": true,
2581
2580
  "name": "providerName"
2582
2581
  }
2583
- ]
2582
+ ],
2583
+ "mode": "create"
2584
2584
  }
2585
2585
  ],
2586
2586
  "direction": "vertical"
@@ -2603,8 +2603,9 @@
2603
2603
  "render-ui",
2604
2604
  "main",
2605
2605
  {
2606
- "gap": "lg",
2607
2606
  "type": "stack",
2607
+ "direction": "vertical",
2608
+ "gap": "lg",
2608
2609
  "className": "max-w-xl mx-auto w-full",
2609
2610
  "children": [
2610
2611
  {
@@ -2613,41 +2614,40 @@
2613
2614
  "content": "Book Appointment"
2614
2615
  },
2615
2616
  {
2616
- "type": "wizard-progress",
2617
- "currentStep": 1.0,
2618
2617
  "steps": [
2619
2618
  "Select Provider",
2620
2619
  "Select Time",
2621
2620
  "Your Details",
2622
2621
  "Payment",
2623
2622
  "Confirmation"
2624
- ]
2623
+ ],
2624
+ "type": "wizard-progress",
2625
+ "currentStep": 1.0
2625
2626
  },
2626
2627
  {
2627
2628
  "type": "divider"
2628
2629
  },
2629
2630
  {
2630
- "content": "Select Time",
2631
+ "type": "typography",
2631
2632
  "variant": "h3",
2632
- "type": "typography"
2633
+ "content": "Select Time"
2633
2634
  },
2634
2635
  {
2635
- "submitLabel": "Continue",
2636
- "submitEvent": "NEXT",
2636
+ "cancelLabel": "Back",
2637
+ "cancelEvent": "PREV",
2637
2638
  "mode": "edit",
2638
- "entity": "@entity",
2639
+ "submitLabel": "Continue",
2639
2640
  "fields": [
2640
2641
  {
2641
- "name": "scheduledAt",
2642
- "required": true
2642
+ "required": true,
2643
+ "name": "scheduledAt"
2643
2644
  }
2644
2645
  ],
2645
- "cancelEvent": "PREV",
2646
- "cancelLabel": "Back",
2646
+ "submitEvent": "NEXT",
2647
+ "entity": "@entity",
2647
2648
  "type": "form-section"
2648
2649
  }
2649
- ],
2650
- "direction": "vertical"
2650
+ ]
2651
2651
  }
2652
2652
  ]
2653
2653
  ]
@@ -2672,16 +2672,17 @@
2672
2672
  "main",
2673
2673
  {
2674
2674
  "gap": "lg",
2675
- "direction": "vertical",
2676
2675
  "type": "stack",
2676
+ "direction": "vertical",
2677
+ "className": "max-w-xl mx-auto w-full",
2677
2678
  "children": [
2678
2679
  {
2680
+ "variant": "h2",
2679
2681
  "type": "typography",
2680
- "content": "Book Appointment",
2681
- "variant": "h2"
2682
+ "content": "Book Appointment"
2682
2683
  },
2683
2684
  {
2684
- "currentStep": 2.0,
2685
+ "type": "wizard-progress",
2685
2686
  "steps": [
2686
2687
  "Select Provider",
2687
2688
  "Select Time",
@@ -2689,46 +2690,45 @@
2689
2690
  "Payment",
2690
2691
  "Confirmation"
2691
2692
  ],
2692
- "type": "wizard-progress"
2693
+ "currentStep": 2.0
2693
2694
  },
2694
2695
  {
2695
2696
  "type": "divider"
2696
2697
  },
2697
2698
  {
2699
+ "variant": "h3",
2698
2700
  "content": "Your Details",
2699
- "type": "typography",
2700
- "variant": "h3"
2701
+ "type": "typography"
2701
2702
  },
2702
2703
  {
2703
- "type": "form-section",
2704
- "submitEvent": "NEXT",
2705
- "cancelEvent": "PREV",
2704
+ "submitLabel": "Continue",
2705
+ "cancelLabel": "Back",
2706
2706
  "fields": [
2707
2707
  {
2708
- "name": "customerName",
2708
+ "min": 2.0,
2709
2709
  "required": true,
2710
- "min": 2.0
2710
+ "name": "customerName"
2711
2711
  },
2712
2712
  {
2713
- "name": "email",
2714
2713
  "type": "email",
2715
- "required": true
2714
+ "required": true,
2715
+ "name": "email"
2716
2716
  },
2717
2717
  {
2718
- "name": "phone",
2719
- "required": true
2718
+ "required": true,
2719
+ "name": "phone"
2720
2720
  },
2721
2721
  {
2722
2722
  "name": "notes"
2723
2723
  }
2724
2724
  ],
2725
- "submitLabel": "Continue",
2726
- "cancelLabel": "Back",
2725
+ "cancelEvent": "PREV",
2727
2726
  "entity": "@entity",
2728
- "mode": "edit"
2727
+ "submitEvent": "NEXT",
2728
+ "mode": "edit",
2729
+ "type": "form-section"
2729
2730
  }
2730
- ],
2731
- "className": "max-w-xl mx-auto w-full"
2731
+ ]
2732
2732
  }
2733
2733
  ]
2734
2734
  ]
@@ -2743,7 +2743,6 @@
2743
2743
  "main",
2744
2744
  {
2745
2745
  "gap": "lg",
2746
- "className": "max-w-xl mx-auto w-full",
2747
2746
  "children": [
2748
2747
  {
2749
2748
  "type": "typography",
@@ -2751,42 +2750,43 @@
2751
2750
  "content": "Book Appointment"
2752
2751
  },
2753
2752
  {
2754
- "currentStep": 0.0,
2755
- "type": "wizard-progress",
2756
2753
  "steps": [
2757
2754
  "Select Provider",
2758
2755
  "Select Time",
2759
2756
  "Your Details",
2760
2757
  "Payment",
2761
2758
  "Confirmation"
2762
- ]
2759
+ ],
2760
+ "currentStep": 0.0,
2761
+ "type": "wizard-progress"
2763
2762
  },
2764
2763
  {
2765
2764
  "type": "divider"
2766
2765
  },
2767
2766
  {
2768
- "variant": "h3",
2767
+ "type": "typography",
2769
2768
  "content": "Select Provider",
2770
- "type": "typography"
2769
+ "variant": "h3"
2771
2770
  },
2772
2771
  {
2773
- "submitLabel": "Continue",
2772
+ "mode": "edit",
2773
+ "showCancel": false,
2774
2774
  "type": "form-section",
2775
+ "submitLabel": "Continue",
2776
+ "entity": "@entity",
2777
+ "submitEvent": "NEXT",
2775
2778
  "fields": [
2776
2779
  {
2777
- "name": "providerName",
2778
2780
  "required": true,
2779
- "min": 2.0
2781
+ "min": 2.0,
2782
+ "name": "providerName"
2780
2783
  }
2781
- ],
2782
- "submitEvent": "NEXT",
2783
- "entity": "@entity",
2784
- "showCancel": false,
2785
- "mode": "edit"
2784
+ ]
2786
2785
  }
2787
2786
  ],
2788
- "direction": "vertical",
2789
- "type": "stack"
2787
+ "className": "max-w-xl mx-auto w-full",
2788
+ "type": "stack",
2789
+ "direction": "vertical"
2790
2790
  }
2791
2791
  ]
2792
2792
  ]
@@ -2827,16 +2827,15 @@
2827
2827
  "main",
2828
2828
  {
2829
2829
  "direction": "vertical",
2830
- "className": "max-w-xl mx-auto w-full",
2831
2830
  "gap": "lg",
2832
- "type": "stack",
2833
2831
  "children": [
2834
2832
  {
2833
+ "type": "typography",
2835
2834
  "variant": "h2",
2836
- "content": "Book Appointment",
2837
- "type": "typography"
2835
+ "content": "Book Appointment"
2838
2836
  },
2839
2837
  {
2838
+ "type": "wizard-progress",
2840
2839
  "steps": [
2841
2840
  "Select Provider",
2842
2841
  "Select Time",
@@ -2844,34 +2843,35 @@
2844
2843
  "Payment",
2845
2844
  "Confirmation"
2846
2845
  ],
2847
- "currentStep": 3.0,
2848
- "type": "wizard-progress"
2846
+ "currentStep": 3.0
2849
2847
  },
2850
2848
  {
2851
2849
  "type": "divider"
2852
2850
  },
2853
2851
  {
2854
- "type": "typography",
2852
+ "variant": "h3",
2855
2853
  "content": "Pay Deposit",
2856
- "variant": "h3"
2854
+ "type": "typography"
2857
2855
  },
2858
2856
  "@trait.BookingPayment",
2859
2857
  {
2860
- "type": "stack",
2861
- "direction": "horizontal",
2858
+ "justify": "start",
2862
2859
  "children": [
2863
2860
  {
2864
- "label": "Back",
2865
2861
  "type": "button",
2862
+ "action": "PREV",
2863
+ "label": "Back",
2866
2864
  "variant": "ghost",
2867
- "icon": "arrow-left",
2868
- "action": "PREV"
2865
+ "icon": "arrow-left"
2869
2866
  }
2870
2867
  ],
2871
- "justify": "start",
2868
+ "type": "stack",
2869
+ "direction": "horizontal",
2872
2870
  "gap": "sm"
2873
2871
  }
2874
- ]
2872
+ ],
2873
+ "type": "stack",
2874
+ "className": "max-w-xl mx-auto w-full"
2875
2875
  }
2876
2876
  ]
2877
2877
  ]
@@ -2885,49 +2885,49 @@
2885
2885
  "render-ui",
2886
2886
  "main",
2887
2887
  {
2888
+ "direction": "vertical",
2889
+ "gap": "lg",
2888
2890
  "type": "stack",
2889
2891
  "className": "max-w-xl mx-auto w-full",
2890
- "gap": "lg",
2891
- "direction": "vertical",
2892
2892
  "children": [
2893
2893
  {
2894
2894
  "type": "typography",
2895
- "content": "Book Appointment",
2896
- "variant": "h2"
2895
+ "variant": "h2",
2896
+ "content": "Book Appointment"
2897
2897
  },
2898
2898
  {
2899
+ "currentStep": 1.0,
2900
+ "type": "wizard-progress",
2899
2901
  "steps": [
2900
2902
  "Select Provider",
2901
2903
  "Select Time",
2902
2904
  "Your Details",
2903
2905
  "Payment",
2904
2906
  "Confirmation"
2905
- ],
2906
- "currentStep": 1.0,
2907
- "type": "wizard-progress"
2907
+ ]
2908
2908
  },
2909
2909
  {
2910
2910
  "type": "divider"
2911
2911
  },
2912
2912
  {
2913
+ "variant": "h3",
2913
2914
  "content": "Select Time",
2914
- "type": "typography",
2915
- "variant": "h3"
2915
+ "type": "typography"
2916
2916
  },
2917
2917
  {
2918
- "type": "form-section",
2918
+ "cancelLabel": "Back",
2919
2919
  "submitLabel": "Continue",
2920
2920
  "mode": "edit",
2921
- "cancelLabel": "Back",
2922
- "submitEvent": "NEXT",
2923
- "cancelEvent": "PREV",
2921
+ "type": "form-section",
2924
2922
  "fields": [
2925
2923
  {
2926
2924
  "name": "scheduledAt",
2927
2925
  "required": true
2928
2926
  }
2929
2927
  ],
2930
- "entity": "@entity"
2928
+ "entity": "@entity",
2929
+ "cancelEvent": "PREV",
2930
+ "submitEvent": "NEXT"
2931
2931
  }
2932
2932
  ]
2933
2933
  }
@@ -2951,33 +2951,32 @@
2951
2951
  "render-ui",
2952
2952
  "main",
2953
2953
  {
2954
- "className": "max-w-xl mx-auto w-full",
2955
2954
  "children": [
2956
2955
  {
2957
2956
  "variant": "h2",
2958
- "content": "Review your booking",
2959
- "type": "typography"
2957
+ "type": "typography",
2958
+ "content": "Review your booking"
2960
2959
  },
2961
2960
  {
2962
2961
  "type": "wizard-progress",
2963
- "currentStep": 4.0,
2964
2962
  "steps": [
2965
2963
  "Select Provider",
2966
2964
  "Select Time",
2967
2965
  "Your Details",
2968
2966
  "Payment",
2969
2967
  "Confirmation"
2970
- ]
2968
+ ],
2969
+ "currentStep": 4.0
2971
2970
  },
2972
2971
  {
2973
2972
  "type": "divider"
2974
2973
  },
2975
2974
  {
2976
- "direction": "vertical",
2977
- "type": "stack",
2978
2975
  "gap": "sm",
2979
2976
  "children": [
2980
2977
  {
2978
+ "type": "stack",
2979
+ "gap": "md",
2981
2980
  "children": [
2982
2981
  {
2983
2982
  "type": "typography",
@@ -2985,69 +2984,67 @@
2985
2984
  "content": "Provider"
2986
2985
  },
2987
2986
  {
2988
- "type": "typography",
2989
2987
  "variant": "body",
2988
+ "type": "typography",
2990
2989
  "content": "@entity.providerName"
2991
2990
  }
2992
2991
  ],
2993
2992
  "direction": "horizontal",
2994
- "type": "stack",
2995
- "justify": "between",
2996
- "gap": "md"
2993
+ "justify": "between"
2997
2994
  },
2998
2995
  {
2999
- "justify": "between",
3000
2996
  "type": "stack",
3001
- "direction": "horizontal",
3002
2997
  "children": [
3003
2998
  {
2999
+ "variant": "caption",
3004
3000
  "type": "typography",
3005
- "content": "When",
3006
- "variant": "caption"
3001
+ "content": "When"
3007
3002
  },
3008
3003
  {
3009
- "type": "typography",
3010
3004
  "variant": "body",
3011
- "content": "@entity.scheduledAt"
3005
+ "content": "@entity.scheduledAt",
3006
+ "type": "typography"
3012
3007
  }
3013
3008
  ],
3014
- "gap": "md"
3009
+ "gap": "md",
3010
+ "justify": "between",
3011
+ "direction": "horizontal"
3015
3012
  },
3016
3013
  {
3017
- "type": "stack",
3018
3014
  "direction": "horizontal",
3019
3015
  "gap": "md",
3020
3016
  "children": [
3021
3017
  {
3022
- "variant": "caption",
3023
3018
  "content": "Customer",
3024
- "type": "typography"
3019
+ "type": "typography",
3020
+ "variant": "caption"
3025
3021
  },
3026
3022
  {
3027
- "variant": "body",
3028
3023
  "type": "typography",
3029
- "content": "@entity.customerName"
3024
+ "content": "@entity.customerName",
3025
+ "variant": "body"
3030
3026
  }
3031
3027
  ],
3028
+ "type": "stack",
3032
3029
  "justify": "between"
3033
3030
  },
3034
3031
  {
3035
- "justify": "between",
3036
- "direction": "horizontal",
3037
- "gap": "md",
3038
- "type": "stack",
3039
3032
  "children": [
3040
3033
  {
3041
3034
  "type": "typography",
3042
- "content": "Email",
3043
- "variant": "caption"
3035
+ "variant": "caption",
3036
+ "content": "Email"
3044
3037
  },
3045
3038
  {
3046
- "type": "typography",
3039
+ "variant": "body",
3047
3040
  "content": "@entity.email",
3048
- "variant": "body"
3041
+ "type": "typography"
3049
3042
  }
3050
- ]
3043
+ ],
3044
+ "justify": "between",
3045
+ "gap": "md",
3046
+ "type": "stack",
3047
+ "direction": "horizontal"
3051
3048
  },
3052
3049
  {
3053
3050
  "direction": "horizontal",
@@ -3058,64 +3055,67 @@
3058
3055
  "content": "Phone"
3059
3056
  },
3060
3057
  {
3058
+ "variant": "body",
3061
3059
  "content": "@entity.phone",
3062
- "type": "typography",
3063
- "variant": "body"
3060
+ "type": "typography"
3064
3061
  }
3065
3062
  ],
3066
- "justify": "between",
3067
3063
  "type": "stack",
3068
- "gap": "md"
3064
+ "gap": "md",
3065
+ "justify": "between"
3069
3066
  },
3070
3067
  {
3071
3068
  "justify": "between",
3069
+ "direction": "horizontal",
3070
+ "gap": "md",
3071
+ "type": "stack",
3072
3072
  "children": [
3073
3073
  {
3074
- "variant": "caption",
3074
+ "content": "Deposit Paid",
3075
3075
  "type": "typography",
3076
- "content": "Deposit Paid"
3076
+ "variant": "caption"
3077
3077
  },
3078
3078
  {
3079
+ "content": "@entity.depositAmount",
3079
3080
  "type": "typography",
3080
- "variant": "body",
3081
- "content": "@entity.depositAmount"
3081
+ "variant": "body"
3082
3082
  }
3083
- ],
3084
- "type": "stack",
3085
- "direction": "horizontal",
3086
- "gap": "md"
3083
+ ]
3087
3084
  }
3088
- ]
3085
+ ],
3086
+ "direction": "vertical",
3087
+ "type": "stack"
3089
3088
  },
3090
3089
  {
3091
3090
  "type": "divider"
3092
3091
  },
3093
3092
  {
3093
+ "type": "stack",
3094
+ "gap": "sm",
3094
3095
  "justify": "between",
3095
3096
  "children": [
3096
3097
  {
3097
- "action": "PREV",
3098
- "label": "Back",
3099
- "type": "button",
3100
3098
  "variant": "ghost",
3101
- "icon": "arrow-left"
3099
+ "icon": "arrow-left",
3100
+ "type": "button",
3101
+ "label": "Back",
3102
+ "action": "PREV"
3102
3103
  },
3103
3104
  {
3104
- "action": "COMPLETE",
3105
- "label": "Confirm booking",
3105
+ "type": "button",
3106
3106
  "variant": "primary",
3107
3107
  "icon": "check",
3108
- "type": "button"
3108
+ "action": "COMPLETE",
3109
+ "label": "Confirm booking"
3109
3110
  }
3110
3111
  ],
3111
- "direction": "horizontal",
3112
- "type": "stack",
3113
- "gap": "sm"
3112
+ "direction": "horizontal"
3114
3113
  }
3115
3114
  ],
3115
+ "direction": "vertical",
3116
+ "className": "max-w-xl mx-auto w-full",
3116
3117
  "type": "stack",
3117
- "gap": "lg",
3118
- "direction": "vertical"
3118
+ "gap": "lg"
3119
3119
  }
3120
3120
  ]
3121
3121
  ]
@@ -3129,15 +3129,14 @@
3129
3129
  "render-ui",
3130
3130
  "main",
3131
3131
  {
3132
- "className": "max-w-xl mx-auto w-full",
3133
- "type": "stack",
3134
3132
  "children": [
3135
3133
  {
3136
- "type": "typography",
3137
3134
  "variant": "h2",
3135
+ "type": "typography",
3138
3136
  "content": "Book Appointment"
3139
3137
  },
3140
3138
  {
3139
+ "type": "wizard-progress",
3141
3140
  "currentStep": 2.0,
3142
3141
  "steps": [
3143
3142
  "Select Provider",
@@ -3145,26 +3144,28 @@
3145
3144
  "Your Details",
3146
3145
  "Payment",
3147
3146
  "Confirmation"
3148
- ],
3149
- "type": "wizard-progress"
3147
+ ]
3150
3148
  },
3151
3149
  {
3152
3150
  "type": "divider"
3153
3151
  },
3154
3152
  {
3155
- "content": "Your Details",
3156
3153
  "variant": "h3",
3154
+ "content": "Your Details",
3157
3155
  "type": "typography"
3158
3156
  },
3159
3157
  {
3158
+ "submitEvent": "NEXT",
3159
+ "cancelLabel": "Back",
3160
+ "submitLabel": "Continue",
3161
+ "mode": "edit",
3160
3162
  "cancelEvent": "PREV",
3161
- "type": "form-section",
3162
3163
  "entity": "@entity",
3163
3164
  "fields": [
3164
3165
  {
3165
- "min": 2.0,
3166
+ "required": true,
3166
3167
  "name": "customerName",
3167
- "required": true
3168
+ "min": 2.0
3168
3169
  },
3169
3170
  {
3170
3171
  "name": "email",
@@ -3172,20 +3173,19 @@
3172
3173
  "required": true
3173
3174
  },
3174
3175
  {
3175
- "name": "phone",
3176
- "required": true
3176
+ "required": true,
3177
+ "name": "phone"
3177
3178
  },
3178
3179
  {
3179
3180
  "name": "notes"
3180
3181
  }
3181
3182
  ],
3182
- "cancelLabel": "Back",
3183
- "mode": "edit",
3184
- "submitEvent": "NEXT",
3185
- "submitLabel": "Continue"
3183
+ "type": "form-section"
3186
3184
  }
3187
3185
  ],
3188
3186
  "gap": "lg",
3187
+ "type": "stack",
3188
+ "className": "max-w-xl mx-auto w-full",
3189
3189
  "direction": "vertical"
3190
3190
  }
3191
3191
  ]
@@ -3226,15 +3226,15 @@
3226
3226
  "email",
3227
3227
  "send",
3228
3228
  {
3229
- "sender": "noreply@bookings.example",
3230
- "subject": "Booking Confirmed",
3231
3229
  "body": "Your booking is confirmed.",
3232
- "recipient": "@entity.email"
3230
+ "subject": "Booking Confirmed",
3231
+ "recipient": "@entity.email",
3232
+ "sender": "noreply@bookings.example"
3233
3233
  },
3234
3234
  {
3235
3235
  "emit": {
3236
- "success": "BookingEmailSent",
3237
- "failure": "BookingEmailFailed"
3236
+ "failure": "BookingEmailFailed",
3237
+ "success": "BookingEmailSent"
3238
3238
  }
3239
3239
  }
3240
3240
  ],
@@ -3243,9 +3243,9 @@
3243
3243
  "twilio",
3244
3244
  "sendSMS",
3245
3245
  {
3246
+ "body": "Booking confirmed for @entity.scheduledAt",
3246
3247
  "recipient": "@entity.phone",
3247
- "sender": "+15551234567",
3248
- "body": "Booking confirmed for @entity.scheduledAt"
3248
+ "sender": "+15551234567"
3249
3249
  },
3250
3250
  {
3251
3251
  "emit": {
@@ -3270,35 +3270,35 @@
3270
3270
  "render-ui",
3271
3271
  "main",
3272
3272
  {
3273
+ "type": "stack",
3274
+ "className": "max-w-xl mx-auto w-full py-12",
3275
+ "gap": "lg",
3276
+ "align": "center",
3277
+ "direction": "vertical",
3273
3278
  "children": [
3274
3279
  {
3275
3280
  "type": "icon",
3276
3281
  "name": "check-circle"
3277
3282
  },
3278
3283
  {
3279
- "content": "Booking confirmed",
3280
3284
  "type": "typography",
3281
- "variant": "h2"
3285
+ "variant": "h2",
3286
+ "content": "Booking confirmed"
3282
3287
  },
3283
3288
  {
3284
- "content": "We have emailed and SMS-confirmed your appointment.",
3285
- "color": "muted",
3286
3289
  "type": "typography",
3290
+ "color": "muted",
3291
+ "content": "We have emailed and SMS-confirmed your appointment.",
3287
3292
  "variant": "body"
3288
3293
  },
3289
3294
  {
3290
- "variant": "ghost",
3291
- "label": "Book another",
3292
- "icon": "rotate-ccw",
3293
3295
  "action": "RESTART",
3294
- "type": "button"
3296
+ "type": "button",
3297
+ "label": "Book another",
3298
+ "variant": "ghost",
3299
+ "icon": "rotate-ccw"
3295
3300
  }
3296
- ],
3297
- "type": "stack",
3298
- "direction": "vertical",
3299
- "align": "center",
3300
- "className": "max-w-xl mx-auto w-full py-12",
3301
- "gap": "lg"
3301
+ ]
3302
3302
  }
3303
3303
  ]
3304
3304
  ]
@@ -3315,13 +3315,15 @@
3315
3315
  "direction": "vertical",
3316
3316
  "gap": "lg",
3317
3317
  "className": "max-w-xl mx-auto w-full",
3318
+ "type": "stack",
3318
3319
  "children": [
3319
3320
  {
3320
- "content": "Book Appointment",
3321
3321
  "type": "typography",
3322
- "variant": "h2"
3322
+ "variant": "h2",
3323
+ "content": "Book Appointment"
3323
3324
  },
3324
3325
  {
3326
+ "type": "wizard-progress",
3325
3327
  "steps": [
3326
3328
  "Select Provider",
3327
3329
  "Select Time",
@@ -3329,35 +3331,33 @@
3329
3331
  "Payment",
3330
3332
  "Confirmation"
3331
3333
  ],
3332
- "currentStep": 3.0,
3333
- "type": "wizard-progress"
3334
+ "currentStep": 3.0
3334
3335
  },
3335
3336
  {
3336
3337
  "type": "divider"
3337
3338
  },
3338
3339
  {
3339
3340
  "content": "Pay Deposit",
3340
- "variant": "h3",
3341
- "type": "typography"
3341
+ "type": "typography",
3342
+ "variant": "h3"
3342
3343
  },
3343
3344
  "@trait.BookingPayment",
3344
3345
  {
3346
+ "gap": "sm",
3347
+ "justify": "start",
3348
+ "type": "stack",
3349
+ "direction": "horizontal",
3345
3350
  "children": [
3346
3351
  {
3347
3352
  "type": "button",
3348
- "icon": "arrow-left",
3349
3353
  "action": "PREV",
3350
- "label": "Back",
3351
- "variant": "ghost"
3354
+ "variant": "ghost",
3355
+ "icon": "arrow-left",
3356
+ "label": "Back"
3352
3357
  }
3353
- ],
3354
- "type": "stack",
3355
- "justify": "start",
3356
- "direction": "horizontal",
3357
- "gap": "sm"
3358
+ ]
3358
3359
  }
3359
- ],
3360
- "type": "stack"
3360
+ ]
3361
3361
  }
3362
3362
  ]
3363
3363
  ]
@@ -3411,16 +3411,18 @@
3411
3411
  "render-ui",
3412
3412
  "main",
3413
3413
  {
3414
+ "gap": "lg",
3415
+ "type": "stack",
3414
3416
  "direction": "vertical",
3415
3417
  "className": "max-w-xl mx-auto w-full",
3416
- "gap": "lg",
3417
3418
  "children": [
3418
3419
  {
3419
- "type": "typography",
3420
3420
  "variant": "h2",
3421
- "content": "Book Appointment"
3421
+ "content": "Book Appointment",
3422
+ "type": "typography"
3422
3423
  },
3423
3424
  {
3425
+ "type": "wizard-progress",
3424
3426
  "steps": [
3425
3427
  "Select Provider",
3426
3428
  "Select Time",
@@ -3428,33 +3430,31 @@
3428
3430
  "Payment",
3429
3431
  "Confirmation"
3430
3432
  ],
3431
- "currentStep": 0.0,
3432
- "type": "wizard-progress"
3433
+ "currentStep": 0.0
3433
3434
  },
3434
3435
  {
3435
3436
  "type": "divider"
3436
3437
  },
3437
3438
  {
3438
- "variant": "h3",
3439
3439
  "content": "Select Provider",
3440
- "type": "typography"
3440
+ "type": "typography",
3441
+ "variant": "h3"
3441
3442
  },
3442
3443
  {
3443
3444
  "type": "form-section",
3444
- "showCancel": false,
3445
- "submitLabel": "Continue",
3446
3445
  "submitEvent": "NEXT",
3447
3446
  "mode": "create",
3447
+ "submitLabel": "Continue",
3448
3448
  "fields": [
3449
3449
  {
3450
+ "min": 2.0,
3450
3451
  "name": "providerName",
3451
- "required": true,
3452
- "min": 2.0
3452
+ "required": true
3453
3453
  }
3454
- ]
3454
+ ],
3455
+ "showCancel": false
3455
3456
  }
3456
- ],
3457
- "type": "stack"
3457
+ ]
3458
3458
  }
3459
3459
  ]
3460
3460
  ]
@@ -3559,37 +3559,37 @@
3559
3559
  "linkedEntity": "Appointment",
3560
3560
  "config": {
3561
3561
  "appName": "BookingSystemApp",
3562
- "notifications": [],
3563
- "notificationClickEvent": "APPOINTMENT_NOTIFICATIONS_OPEN",
3564
- "searchEvent": "APPOINTMENT_SEARCH",
3565
3562
  "navItems": [
3566
3563
  {
3567
- "href": "/providers",
3568
3564
  "icon": "user-check",
3569
- "label": "Providers"
3565
+ "label": "Providers",
3566
+ "href": "/providers"
3570
3567
  },
3571
3568
  {
3572
- "label": "Book",
3569
+ "icon": "calendar-plus",
3573
3570
  "href": "/book",
3574
- "icon": "calendar-plus"
3571
+ "label": "Book"
3575
3572
  },
3576
3573
  {
3577
- "href": "/appointments",
3574
+ "icon": "calendar",
3578
3575
  "label": "Appointments",
3579
- "icon": "calendar"
3576
+ "href": "/appointments"
3580
3577
  },
3581
3578
  {
3582
- "label": "Schedule",
3583
3579
  "icon": "clock",
3580
+ "label": "Schedule",
3584
3581
  "href": "/schedule"
3585
3582
  }
3586
3583
  ],
3584
+ "searchEvent": "APPOINTMENT_SEARCH",
3585
+ "notifications": [],
3587
3586
  "topBarActions": [],
3588
- "contentTrait": "@trait.AppointmentDashboard"
3587
+ "contentTrait": "@trait.AppointmentDashboard",
3588
+ "notificationClickEvent": "APPOINTMENT_NOTIFICATIONS_OPEN"
3589
3589
  },
3590
3590
  "events": {
3591
- "SEARCH": "APPOINTMENT_SEARCH",
3592
- "NOTIFY_CLICK": "APPOINTMENT_NOTIFICATIONS_OPEN"
3591
+ "NOTIFY_CLICK": "APPOINTMENT_NOTIFICATIONS_OPEN",
3592
+ "SEARCH": "APPOINTMENT_SEARCH"
3593
3593
  }
3594
3594
  },
3595
3595
  {
@@ -3634,17 +3634,18 @@
3634
3634
  "render-ui",
3635
3635
  "main",
3636
3636
  {
3637
- "type": "stack",
3638
3637
  "gap": "lg",
3639
3638
  "direction": "vertical",
3639
+ "type": "stack",
3640
3640
  "children": [
3641
3641
  {
3642
- "align": "center",
3642
+ "gap": "md",
3643
+ "justify": "between",
3643
3644
  "children": [
3644
3645
  {
3645
- "direction": "horizontal",
3646
- "align": "center",
3647
3646
  "type": "stack",
3647
+ "gap": "sm",
3648
+ "align": "center",
3648
3649
  "children": [
3649
3650
  {
3650
3651
  "type": "icon",
@@ -3652,31 +3653,30 @@
3652
3653
  },
3653
3654
  {
3654
3655
  "type": "typography",
3655
- "content": "Appointments",
3656
- "variant": "h2"
3656
+ "variant": "h2",
3657
+ "content": "Appointments"
3657
3658
  }
3658
3659
  ],
3659
- "gap": "sm"
3660
+ "direction": "horizontal"
3660
3661
  },
3661
3662
  {
3662
- "direction": "horizontal",
3663
- "type": "stack",
3664
3663
  "children": [
3665
3664
  {
3665
+ "label": "Create Appointment",
3666
3666
  "variant": "primary",
3667
- "type": "button",
3668
- "action": "CREATE",
3669
3667
  "icon": "plus",
3670
- "label": "Create Appointment"
3668
+ "type": "button",
3669
+ "action": "CREATE"
3671
3670
  }
3672
3671
  ],
3673
- "gap": "sm"
3672
+ "type": "stack",
3673
+ "gap": "sm",
3674
+ "direction": "horizontal"
3674
3675
  }
3675
3676
  ],
3676
- "direction": "horizontal",
3677
- "gap": "md",
3678
3677
  "type": "stack",
3679
- "justify": "between"
3678
+ "align": "center",
3679
+ "direction": "horizontal"
3680
3680
  },
3681
3681
  {
3682
3682
  "type": "divider"
@@ -3700,9 +3700,9 @@
3700
3700
  "name": "AppointmentCalendar",
3701
3701
  "linkedEntity": "Appointment",
3702
3702
  "config": {
3703
- "dateField": "scheduledAt",
3704
3703
  "colorField": "status",
3705
- "titleField": "summary"
3704
+ "titleField": "summary",
3705
+ "dateField": "scheduledAt"
3706
3706
  },
3707
3707
  "listens": [
3708
3708
  {
@@ -3745,25 +3745,25 @@
3745
3745
  "name": "AppointmentBrowseList",
3746
3746
  "linkedEntity": "Appointment",
3747
3747
  "config": {
3748
- "gap": "sm",
3749
3748
  "itemActions": [
3750
3749
  {
3751
- "label": "View",
3752
3750
  "variant": "ghost",
3751
+ "label": "View",
3753
3752
  "event": "VIEW"
3754
3753
  },
3755
3754
  {
3756
- "label": "Edit",
3755
+ "event": "EDIT",
3757
3756
  "variant": "ghost",
3758
- "event": "EDIT"
3757
+ "label": "Edit"
3759
3758
  },
3760
3759
  {
3760
+ "event": "DELETE",
3761
3761
  "variant": "danger",
3762
- "label": "Delete",
3763
- "event": "DELETE"
3762
+ "label": "Delete"
3764
3763
  }
3765
3764
  ],
3766
3765
  "cols": 1.0,
3766
+ "gap": "sm",
3767
3767
  "fields": [
3768
3768
  {
3769
3769
  "name": "summary",
@@ -3777,23 +3777,23 @@
3777
3777
  "label": "Provider"
3778
3778
  },
3779
3779
  {
3780
+ "name": "customerName",
3780
3781
  "label": "Customer",
3781
- "variant": "body",
3782
- "name": "customerName"
3782
+ "variant": "body"
3783
3783
  },
3784
3784
  {
3785
3785
  "label": "When",
3786
- "variant": "body",
3786
+ "format": "date",
3787
3787
  "name": "scheduledAt",
3788
- "format": "date"
3788
+ "variant": "body"
3789
3789
  },
3790
3790
  {
3791
- "variant": "caption",
3792
- "name": "time"
3791
+ "name": "time",
3792
+ "variant": "caption"
3793
3793
  },
3794
3794
  {
3795
- "name": "status",
3796
- "variant": "badge"
3795
+ "variant": "badge",
3796
+ "name": "status"
3797
3797
  }
3798
3798
  ]
3799
3799
  },
@@ -4016,8 +4016,8 @@
4016
4016
  "Appointment",
4017
4017
  {
4018
4018
  "emit": {
4019
- "success": "AppointmentLoaded",
4020
- "failure": "AppointmentLoadFailed"
4019
+ "failure": "AppointmentLoadFailed",
4020
+ "success": "AppointmentLoaded"
4021
4021
  }
4022
4022
  }
4023
4023
  ],
@@ -4025,31 +4025,29 @@
4025
4025
  "render-ui",
4026
4026
  "modal",
4027
4027
  {
4028
- "type": "stack",
4029
4028
  "gap": "md",
4030
- "direction": "vertical",
4031
4029
  "children": [
4032
4030
  {
4033
4031
  "children": [
4034
4032
  {
4035
- "type": "icon",
4036
- "name": "plus-circle"
4033
+ "name": "plus-circle",
4034
+ "type": "icon"
4037
4035
  },
4038
4036
  {
4039
- "content": "Create Appointment",
4040
4037
  "type": "typography",
4041
- "variant": "h3"
4038
+ "variant": "h3",
4039
+ "content": "Create Appointment"
4042
4040
  }
4043
4041
  ],
4044
4042
  "gap": "sm",
4045
- "type": "stack",
4046
- "direction": "horizontal"
4043
+ "direction": "horizontal",
4044
+ "type": "stack"
4047
4045
  },
4048
4046
  {
4049
4047
  "type": "divider"
4050
4048
  },
4051
4049
  {
4052
- "mode": "create",
4050
+ "type": "form-section",
4053
4051
  "fields": [
4054
4052
  "providerName",
4055
4053
  "customerName",
@@ -4059,11 +4057,13 @@
4059
4057
  "status",
4060
4058
  "notes"
4061
4059
  ],
4062
- "submitEvent": "SAVE",
4063
- "type": "form-section",
4064
- "cancelEvent": "CLOSE"
4060
+ "mode": "create",
4061
+ "cancelEvent": "CLOSE",
4062
+ "submitEvent": "SAVE"
4065
4063
  }
4066
- ]
4064
+ ],
4065
+ "type": "stack",
4066
+ "direction": "vertical"
4067
4067
  }
4068
4068
  ]
4069
4069
  ]
@@ -4315,8 +4315,8 @@
4315
4315
  "Appointment",
4316
4316
  {
4317
4317
  "emit": {
4318
- "success": "AppointmentLoaded",
4319
- "failure": "AppointmentLoadFailed"
4318
+ "failure": "AppointmentLoadFailed",
4319
+ "success": "AppointmentLoaded"
4320
4320
  }
4321
4321
  }
4322
4322
  ]
@@ -4342,14 +4342,15 @@
4342
4342
  "render-ui",
4343
4343
  "modal",
4344
4344
  {
4345
+ "gap": "md",
4345
4346
  "direction": "vertical",
4346
- "type": "stack",
4347
4347
  "children": [
4348
4348
  {
4349
+ "gap": "sm",
4349
4350
  "children": [
4350
4351
  {
4351
- "type": "icon",
4352
- "name": "edit"
4352
+ "name": "edit",
4353
+ "type": "icon"
4353
4354
  },
4354
4355
  {
4355
4356
  "content": "Edit Appointment",
@@ -4357,17 +4358,13 @@
4357
4358
  "variant": "h3"
4358
4359
  }
4359
4360
  ],
4360
- "type": "stack",
4361
4361
  "direction": "horizontal",
4362
- "gap": "sm"
4362
+ "type": "stack"
4363
4363
  },
4364
4364
  {
4365
4365
  "type": "divider"
4366
4366
  },
4367
4367
  {
4368
- "type": "form-section",
4369
- "entity": "@payload.row",
4370
- "mode": "edit",
4371
4368
  "submitEvent": "SAVE",
4372
4369
  "cancelEvent": "CLOSE",
4373
4370
  "fields": [
@@ -4378,10 +4375,13 @@
4378
4375
  "time",
4379
4376
  "status",
4380
4377
  "notes"
4381
- ]
4378
+ ],
4379
+ "type": "form-section",
4380
+ "entity": "@payload.row",
4381
+ "mode": "edit"
4382
4382
  }
4383
4383
  ],
4384
- "gap": "md"
4384
+ "type": "stack"
4385
4385
  }
4386
4386
  ]
4387
4387
  ]
@@ -4422,8 +4422,8 @@
4422
4422
  "@payload.data",
4423
4423
  {
4424
4424
  "emit": {
4425
- "success": "AppointmentUpdated",
4426
- "failure": "AppointmentUpdateFailed"
4425
+ "failure": "AppointmentUpdateFailed",
4426
+ "success": "AppointmentUpdated"
4427
4427
  }
4428
4428
  }
4429
4429
  ],
@@ -4624,19 +4624,26 @@
4624
4624
  "fetch",
4625
4625
  "Appointment",
4626
4626
  {
4627
- "id": "@payload.id",
4628
4627
  "emit": {
4629
- "failure": "AppointmentLoadFailed",
4630
- "success": "AppointmentLoaded"
4631
- }
4628
+ "success": "AppointmentLoaded",
4629
+ "failure": "AppointmentLoadFailed"
4630
+ },
4631
+ "id": "@payload.id"
4632
4632
  }
4633
4633
  ],
4634
4634
  [
4635
4635
  "render-ui",
4636
4636
  "modal",
4637
4637
  {
4638
+ "gap": "md",
4639
+ "direction": "vertical",
4640
+ "type": "stack",
4638
4641
  "children": [
4639
4642
  {
4643
+ "type": "stack",
4644
+ "gap": "sm",
4645
+ "direction": "horizontal",
4646
+ "align": "center",
4640
4647
  "children": [
4641
4648
  {
4642
4649
  "type": "icon",
@@ -4647,145 +4654,138 @@
4647
4654
  "variant": "h3",
4648
4655
  "content": "@entity.summary"
4649
4656
  }
4650
- ],
4651
- "type": "stack",
4652
- "direction": "horizontal",
4653
- "gap": "sm",
4654
- "align": "center"
4657
+ ]
4655
4658
  },
4656
4659
  {
4657
4660
  "type": "divider"
4658
4661
  },
4659
4662
  {
4660
- "direction": "horizontal",
4661
4663
  "type": "stack",
4664
+ "gap": "md",
4665
+ "direction": "horizontal",
4662
4666
  "children": [
4663
4667
  {
4668
+ "variant": "caption",
4664
4669
  "content": "Provider",
4665
- "type": "typography",
4666
- "variant": "caption"
4670
+ "type": "typography"
4667
4671
  },
4668
4672
  {
4669
4673
  "content": "@entity.providerName",
4670
4674
  "type": "typography",
4671
4675
  "variant": "body"
4672
4676
  }
4673
- ],
4674
- "gap": "md"
4677
+ ]
4675
4678
  },
4676
4679
  {
4680
+ "type": "stack",
4681
+ "gap": "md",
4677
4682
  "children": [
4678
4683
  {
4679
- "content": "Customer",
4680
4684
  "variant": "caption",
4685
+ "content": "Customer",
4681
4686
  "type": "typography"
4682
4687
  },
4683
4688
  {
4684
- "type": "typography",
4685
4689
  "variant": "body",
4686
- "content": "@entity.customerName"
4690
+ "content": "@entity.customerName",
4691
+ "type": "typography"
4687
4692
  }
4688
4693
  ],
4689
- "type": "stack",
4690
- "gap": "md",
4691
4694
  "direction": "horizontal"
4692
4695
  },
4693
4696
  {
4694
- "direction": "horizontal",
4697
+ "type": "stack",
4695
4698
  "children": [
4696
4699
  {
4700
+ "content": "When",
4697
4701
  "type": "typography",
4698
- "variant": "caption",
4699
- "content": "When"
4702
+ "variant": "caption"
4700
4703
  },
4701
4704
  {
4705
+ "type": "typography",
4702
4706
  "variant": "body",
4703
- "content": "@entity.scheduledAt",
4704
- "type": "typography"
4707
+ "content": "@entity.scheduledAt"
4705
4708
  }
4706
4709
  ],
4707
4710
  "gap": "md",
4708
- "type": "stack"
4711
+ "direction": "horizontal"
4709
4712
  },
4710
4713
  {
4714
+ "gap": "md",
4711
4715
  "direction": "horizontal",
4712
4716
  "type": "stack",
4713
- "gap": "md",
4714
4717
  "children": [
4715
4718
  {
4716
- "variant": "caption",
4717
4719
  "content": "Time",
4718
- "type": "typography"
4720
+ "type": "typography",
4721
+ "variant": "caption"
4719
4722
  },
4720
4723
  {
4721
- "type": "typography",
4722
4724
  "variant": "body",
4723
- "content": "@entity.time"
4725
+ "content": "@entity.time",
4726
+ "type": "typography"
4724
4727
  }
4725
4728
  ]
4726
4729
  },
4727
4730
  {
4728
4731
  "direction": "horizontal",
4729
- "type": "stack",
4730
4732
  "gap": "md",
4731
4733
  "children": [
4732
4734
  {
4733
4735
  "variant": "caption",
4734
- "type": "typography",
4735
- "content": "Status"
4736
+ "content": "Status",
4737
+ "type": "typography"
4736
4738
  },
4737
4739
  {
4738
4740
  "variant": "body",
4739
- "type": "typography",
4740
- "content": "@entity.status"
4741
+ "content": "@entity.status",
4742
+ "type": "typography"
4741
4743
  }
4742
- ]
4744
+ ],
4745
+ "type": "stack"
4743
4746
  },
4744
4747
  {
4745
4748
  "type": "stack",
4749
+ "direction": "horizontal",
4750
+ "gap": "md",
4746
4751
  "children": [
4747
4752
  {
4748
- "type": "typography",
4749
4753
  "variant": "caption",
4750
- "content": "Notes"
4754
+ "content": "Notes",
4755
+ "type": "typography"
4751
4756
  },
4752
4757
  {
4753
- "variant": "body",
4758
+ "content": "@entity.notes",
4754
4759
  "type": "typography",
4755
- "content": "@entity.notes"
4760
+ "variant": "body"
4756
4761
  }
4757
- ],
4758
- "gap": "md",
4759
- "direction": "horizontal"
4762
+ ]
4760
4763
  },
4761
4764
  {
4762
4765
  "type": "divider"
4763
4766
  },
4764
4767
  {
4765
- "justify": "end",
4766
- "type": "stack",
4767
4768
  "children": [
4768
4769
  {
4769
4770
  "action": "EDIT",
4770
- "type": "button",
4771
- "variant": "primary",
4772
4771
  "icon": "edit",
4773
- "label": "Edit"
4772
+ "label": "Edit",
4773
+ "type": "button",
4774
+ "variant": "primary"
4774
4775
  },
4775
4776
  {
4776
- "variant": "ghost",
4777
- "action": "CLOSE",
4778
4777
  "type": "button",
4779
- "label": "Close"
4778
+ "action": "CLOSE",
4779
+ "label": "Close",
4780
+ "variant": "ghost"
4780
4781
  }
4781
4782
  ],
4783
+ "justify": "end",
4784
+ "type": "stack",
4782
4785
  "direction": "horizontal",
4783
4786
  "gap": "sm"
4784
4787
  }
4785
- ],
4786
- "type": "stack",
4787
- "direction": "vertical",
4788
- "gap": "md"
4788
+ ]
4789
4789
  }
4790
4790
  ]
4791
4791
  ]
@@ -5007,8 +5007,8 @@
5007
5007
  "Appointment",
5008
5008
  {
5009
5009
  "emit": {
5010
- "failure": "AppointmentLoadFailed",
5011
- "success": "AppointmentLoaded"
5010
+ "success": "AppointmentLoaded",
5011
+ "failure": "AppointmentLoadFailed"
5012
5012
  }
5013
5013
  }
5014
5014
  ]
@@ -5028,11 +5028,11 @@
5028
5028
  "fetch",
5029
5029
  "Appointment",
5030
5030
  {
5031
+ "id": "@payload.id",
5031
5032
  "emit": {
5032
- "success": "AppointmentLoaded",
5033
- "failure": "AppointmentLoadFailed"
5034
- },
5035
- "id": "@payload.id"
5033
+ "failure": "AppointmentLoadFailed",
5034
+ "success": "AppointmentLoaded"
5035
+ }
5036
5036
  }
5037
5037
  ],
5038
5038
  [
@@ -5040,25 +5040,24 @@
5040
5040
  "modal",
5041
5041
  {
5042
5042
  "type": "stack",
5043
- "direction": "vertical",
5044
5043
  "gap": "md",
5045
5044
  "children": [
5046
5045
  {
5046
+ "gap": "sm",
5047
+ "align": "center",
5047
5048
  "children": [
5048
5049
  {
5049
5050
  "type": "icon",
5050
5051
  "name": "alert-triangle"
5051
5052
  },
5052
5053
  {
5053
- "variant": "h3",
5054
5054
  "type": "typography",
5055
+ "variant": "h3",
5055
5056
  "content": "Delete Appointment"
5056
5057
  }
5057
5058
  ],
5058
- "align": "center",
5059
- "gap": "sm",
5060
- "direction": "horizontal",
5061
- "type": "stack"
5059
+ "type": "stack",
5060
+ "direction": "horizontal"
5062
5061
  },
5063
5062
  {
5064
5063
  "type": "divider"
@@ -5069,27 +5068,28 @@
5069
5068
  "variant": "error"
5070
5069
  },
5071
5070
  {
5072
- "justify": "end",
5073
- "type": "stack",
5074
5071
  "direction": "horizontal",
5075
5072
  "gap": "sm",
5076
5073
  "children": [
5077
5074
  {
5078
- "action": "CANCEL",
5079
- "label": "Cancel",
5080
5075
  "type": "button",
5081
- "variant": "ghost"
5076
+ "label": "Cancel",
5077
+ "variant": "ghost",
5078
+ "action": "CANCEL"
5082
5079
  },
5083
5080
  {
5084
- "action": "CONFIRM_DELETE",
5085
5081
  "label": "Delete",
5086
- "variant": "danger",
5087
5082
  "type": "button",
5088
- "icon": "check"
5083
+ "icon": "check",
5084
+ "variant": "danger",
5085
+ "action": "CONFIRM_DELETE"
5089
5086
  }
5090
- ]
5087
+ ],
5088
+ "type": "stack",
5089
+ "justify": "end"
5091
5090
  }
5092
- ]
5091
+ ],
5092
+ "direction": "vertical"
5093
5093
  }
5094
5094
  ]
5095
5095
  ]
@@ -5106,8 +5106,8 @@
5106
5106
  "@entity.pendingId",
5107
5107
  {
5108
5108
  "emit": {
5109
- "success": "AppointmentDeleted",
5110
- "failure": "AppointmentDeleteFailed"
5109
+ "failure": "AppointmentDeleteFailed",
5110
+ "success": "AppointmentDeleted"
5111
5111
  }
5112
5112
  }
5113
5113
  ],
@@ -5128,8 +5128,8 @@
5128
5128
  "Appointment",
5129
5129
  {
5130
5130
  "emit": {
5131
- "success": "AppointmentLoaded",
5132
- "failure": "AppointmentLoadFailed"
5131
+ "failure": "AppointmentLoadFailed",
5132
+ "success": "AppointmentLoaded"
5133
5133
  }
5134
5134
  }
5135
5135
  ],
@@ -5280,22 +5280,17 @@
5280
5280
  "name": "ScheduleAppLayout",
5281
5281
  "linkedEntity": "Schedule",
5282
5282
  "config": {
5283
- "notificationClickEvent": "SCHEDULE_NOTIFICATIONS_OPEN",
5284
- "notifications": [],
5285
- "appName": "BookingSystemApp",
5286
- "searchEvent": "SCHEDULE_SEARCH",
5287
- "contentTrait": "@trait.ScheduleDisplay",
5288
5283
  "topBarActions": [],
5289
5284
  "navItems": [
5290
5285
  {
5291
- "href": "/providers",
5292
5286
  "label": "Providers",
5287
+ "href": "/providers",
5293
5288
  "icon": "user-check"
5294
5289
  },
5295
5290
  {
5296
- "href": "/book",
5297
5291
  "icon": "calendar-plus",
5298
- "label": "Book"
5292
+ "label": "Book",
5293
+ "href": "/book"
5299
5294
  },
5300
5295
  {
5301
5296
  "href": "/appointments",
@@ -5303,11 +5298,16 @@
5303
5298
  "label": "Appointments"
5304
5299
  },
5305
5300
  {
5306
- "label": "Schedule",
5301
+ "href": "/schedule",
5307
5302
  "icon": "clock",
5308
- "href": "/schedule"
5303
+ "label": "Schedule"
5309
5304
  }
5310
- ]
5305
+ ],
5306
+ "contentTrait": "@trait.ScheduleDisplay",
5307
+ "notificationClickEvent": "SCHEDULE_NOTIFICATIONS_OPEN",
5308
+ "appName": "BookingSystemApp",
5309
+ "notifications": [],
5310
+ "searchEvent": "SCHEDULE_SEARCH"
5311
5311
  },
5312
5312
  "events": {
5313
5313
  "NOTIFY_CLICK": "SCHEDULE_NOTIFICATIONS_OPEN",
@@ -5435,8 +5435,8 @@
5435
5435
  "Schedule",
5436
5436
  {
5437
5437
  "emit": {
5438
- "failure": "ScheduleLoadFailed",
5439
- "success": "ScheduleLoaded"
5438
+ "success": "ScheduleLoaded",
5439
+ "failure": "ScheduleLoadFailed"
5440
5440
  }
5441
5441
  }
5442
5442
  ],
@@ -5446,20 +5446,13 @@
5446
5446
  {
5447
5447
  "type": "stack",
5448
5448
  "gap": "lg",
5449
- "direction": "vertical",
5450
5449
  "children": [
5451
5450
  {
5452
- "justify": "between",
5453
- "type": "stack",
5454
5451
  "gap": "md",
5455
- "direction": "horizontal",
5456
- "align": "center",
5457
5452
  "children": [
5458
5453
  {
5459
- "type": "stack",
5460
5454
  "align": "center",
5461
- "direction": "horizontal",
5462
- "gap": "sm",
5455
+ "type": "stack",
5463
5456
  "children": [
5464
5457
  {
5465
5458
  "type": "icon",
@@ -5470,46 +5463,52 @@
5470
5463
  "type": "typography",
5471
5464
  "content": "Schedule Overview"
5472
5465
  }
5473
- ]
5466
+ ],
5467
+ "gap": "sm",
5468
+ "direction": "horizontal"
5474
5469
  },
5475
5470
  {
5476
- "label": "Refresh",
5477
- "variant": "secondary",
5478
- "icon": "refresh-cw",
5479
5471
  "type": "button",
5480
- "action": "REFRESH"
5472
+ "icon": "refresh-cw",
5473
+ "label": "Refresh",
5474
+ "action": "REFRESH",
5475
+ "variant": "secondary"
5481
5476
  }
5482
- ]
5477
+ ],
5478
+ "align": "center",
5479
+ "direction": "horizontal",
5480
+ "justify": "between",
5481
+ "type": "stack"
5483
5482
  },
5484
5483
  {
5485
5484
  "type": "divider"
5486
5485
  },
5487
5486
  {
5488
- "cols": 4.0,
5489
5487
  "type": "simple-grid",
5488
+ "cols": 4.0,
5490
5489
  "children": [
5491
5490
  {
5492
- "type": "stat-display",
5493
5491
  "label": "Total Bookings",
5494
- "icon": "calendar",
5495
- "value": "@entity.totalBookings"
5492
+ "type": "stat-display",
5493
+ "value": "@entity.totalBookings",
5494
+ "icon": "calendar"
5496
5495
  },
5497
5496
  {
5498
5497
  "value": "@entity.confirmedToday",
5499
- "type": "stat-display",
5500
5498
  "label": "Confirmed Today",
5501
- "icon": "check-circle"
5499
+ "icon": "check-circle",
5500
+ "type": "stat-display"
5502
5501
  },
5503
5502
  {
5504
- "icon": "clock",
5503
+ "type": "stat-display",
5505
5504
  "label": "Pending",
5506
5505
  "value": "@entity.pendingBookings",
5507
- "type": "stat-display"
5506
+ "icon": "clock"
5508
5507
  },
5509
5508
  {
5510
- "type": "stat-display",
5511
- "label": "Available Slots",
5512
5509
  "value": "@entity.availableSlots",
5510
+ "label": "Available Slots",
5511
+ "type": "stat-display",
5513
5512
  "icon": "calendar-plus"
5514
5513
  }
5515
5514
  ]
@@ -5520,7 +5519,8 @@
5520
5519
  {
5521
5520
  "type": "calendar-grid"
5522
5521
  }
5523
- ]
5522
+ ],
5523
+ "direction": "vertical"
5524
5524
  }
5525
5525
  ]
5526
5526
  ]
@@ -5535,8 +5535,8 @@
5535
5535
  "Schedule",
5536
5536
  {
5537
5537
  "emit": {
5538
- "success": "ScheduleLoaded",
5539
- "failure": "ScheduleLoadFailed"
5538
+ "failure": "ScheduleLoadFailed",
5539
+ "success": "ScheduleLoaded"
5540
5540
  }
5541
5541
  }
5542
5542
  ],
@@ -5545,21 +5545,21 @@
5545
5545
  "main",
5546
5546
  {
5547
5547
  "direction": "vertical",
5548
- "align": "center",
5549
- "type": "stack",
5550
- "className": "py-12",
5551
- "gap": "md",
5552
5548
  "children": [
5553
5549
  {
5554
5550
  "type": "spinner"
5555
5551
  },
5556
5552
  {
5553
+ "color": "muted",
5557
5554
  "variant": "caption",
5558
5555
  "type": "typography",
5559
- "content": "Refreshing…",
5560
- "color": "muted"
5556
+ "content": "Refreshing…"
5561
5557
  }
5562
- ]
5558
+ ],
5559
+ "type": "stack",
5560
+ "align": "center",
5561
+ "gap": "md",
5562
+ "className": "py-12"
5563
5563
  }
5564
5564
  ]
5565
5565
  ]
@@ -5575,16 +5575,9 @@
5575
5575
  {
5576
5576
  "children": [
5577
5577
  {
5578
- "type": "stack",
5579
- "justify": "between",
5580
- "align": "center",
5581
- "direction": "horizontal",
5582
- "gap": "md",
5583
5578
  "children": [
5584
5579
  {
5585
- "gap": "sm",
5586
5580
  "type": "stack",
5587
- "direction": "horizontal",
5588
5581
  "align": "center",
5589
5582
  "children": [
5590
5583
  {
@@ -5593,50 +5586,57 @@
5593
5586
  },
5594
5587
  {
5595
5588
  "type": "typography",
5596
- "variant": "h2",
5597
- "content": "Schedule Overview"
5589
+ "content": "Schedule Overview",
5590
+ "variant": "h2"
5598
5591
  }
5599
- ]
5592
+ ],
5593
+ "direction": "horizontal",
5594
+ "gap": "sm"
5600
5595
  },
5601
5596
  {
5602
- "label": "Refresh",
5603
- "variant": "secondary",
5604
5597
  "icon": "refresh-cw",
5605
5598
  "action": "REFRESH",
5606
- "type": "button"
5599
+ "type": "button",
5600
+ "label": "Refresh",
5601
+ "variant": "secondary"
5607
5602
  }
5608
- ]
5603
+ ],
5604
+ "type": "stack",
5605
+ "direction": "horizontal",
5606
+ "gap": "md",
5607
+ "justify": "between",
5608
+ "align": "center"
5609
5609
  },
5610
5610
  {
5611
5611
  "type": "divider"
5612
5612
  },
5613
5613
  {
5614
- "type": "simple-grid",
5615
5614
  "cols": 4.0,
5615
+ "type": "simple-grid",
5616
5616
  "children": [
5617
5617
  {
5618
- "value": "@entity.totalBookings",
5619
5618
  "label": "Total Bookings",
5620
5619
  "type": "stat-display",
5620
+ "value": "@entity.totalBookings",
5621
5621
  "icon": "calendar"
5622
5622
  },
5623
5623
  {
5624
5624
  "icon": "check-circle",
5625
+ "value": "@entity.confirmedToday",
5625
5626
  "label": "Confirmed Today",
5626
- "type": "stat-display",
5627
- "value": "@entity.confirmedToday"
5627
+ "type": "stat-display"
5628
5628
  },
5629
5629
  {
5630
- "value": "@entity.pendingBookings",
5631
- "icon": "clock",
5630
+ "label": "Pending",
5632
5631
  "type": "stat-display",
5633
- "label": "Pending"
5632
+ "value": "@entity.pendingBookings",
5633
+ "icon": "clock"
5634
5634
  },
5635
5635
  {
5636
- "value": "@entity.availableSlots",
5637
- "type": "stat-display",
5638
5636
  "icon": "calendar-plus",
5639
- "label": "Available Slots"
5637
+ "label": "Available Slots",
5638
+ "value": "@entity.availableSlots",
5639
+ "type": "stat-display"
5640
5640
  }
5641
5641
  ]
5642
5642
  },
@@ -5648,8 +5648,8 @@
5648
5648
  }
5649
5649
  ],
5650
5650
  "direction": "vertical",
5651
- "gap": "lg",
5652
- "type": "stack"
5651
+ "type": "stack",
5652
+ "gap": "lg"
5653
5653
  }
5654
5654
  ]
5655
5655
  ]
@@ -5664,72 +5664,73 @@
5664
5664
  "main",
5665
5665
  {
5666
5666
  "gap": "lg",
5667
+ "type": "stack",
5667
5668
  "children": [
5668
5669
  {
5669
- "direction": "horizontal",
5670
- "align": "center",
5670
+ "gap": "md",
5671
5671
  "justify": "between",
5672
+ "align": "center",
5673
+ "type": "stack",
5674
+ "direction": "horizontal",
5672
5675
  "children": [
5673
5676
  {
5674
- "align": "center",
5675
- "direction": "horizontal",
5676
- "gap": "sm",
5677
- "type": "stack",
5678
5677
  "children": [
5679
5678
  {
5680
- "type": "icon",
5681
- "name": "clock"
5679
+ "name": "clock",
5680
+ "type": "icon"
5682
5681
  },
5683
5682
  {
5684
- "variant": "h2",
5685
5683
  "type": "typography",
5686
- "content": "Schedule Overview"
5684
+ "content": "Schedule Overview",
5685
+ "variant": "h2"
5687
5686
  }
5688
- ]
5687
+ ],
5688
+ "gap": "sm",
5689
+ "align": "center",
5690
+ "type": "stack",
5691
+ "direction": "horizontal"
5689
5692
  },
5690
5693
  {
5694
+ "type": "button",
5691
5695
  "variant": "secondary",
5692
- "icon": "refresh-cw",
5696
+ "label": "Refresh",
5693
5697
  "action": "REFRESH",
5694
- "type": "button",
5695
- "label": "Refresh"
5698
+ "icon": "refresh-cw"
5696
5699
  }
5697
- ],
5698
- "type": "stack",
5699
- "gap": "md"
5700
+ ]
5700
5701
  },
5701
5702
  {
5702
5703
  "type": "divider"
5703
5704
  },
5704
5705
  {
5706
+ "cols": 4.0,
5705
5707
  "type": "simple-grid",
5706
5708
  "children": [
5707
5709
  {
5708
- "value": "@entity.totalBookings",
5709
5710
  "label": "Total Bookings",
5711
+ "value": "@entity.totalBookings",
5710
5712
  "icon": "calendar",
5711
5713
  "type": "stat-display"
5712
5714
  },
5713
5715
  {
5714
- "type": "stat-display",
5716
+ "label": "Confirmed Today",
5715
5717
  "icon": "check-circle",
5716
- "value": "@entity.confirmedToday",
5717
- "label": "Confirmed Today"
5718
+ "type": "stat-display",
5719
+ "value": "@entity.confirmedToday"
5718
5720
  },
5719
5721
  {
5720
- "icon": "clock",
5722
+ "label": "Pending",
5721
5723
  "type": "stat-display",
5722
5724
  "value": "@entity.pendingBookings",
5723
- "label": "Pending"
5725
+ "icon": "clock"
5724
5726
  },
5725
5727
  {
5728
+ "icon": "calendar-plus",
5726
5729
  "type": "stat-display",
5727
5730
  "label": "Available Slots",
5728
- "icon": "calendar-plus",
5729
5731
  "value": "@entity.availableSlots"
5730
5732
  }
5731
- ],
5732
- "cols": 4.0
5733
+ ]
5733
5734
  },
5734
5735
  {
5735
5736
  "type": "divider"
@@ -5738,7 +5739,6 @@
5738
5739
  "type": "calendar-grid"
5739
5740
  }
5740
5741
  ],
5741
- "type": "stack",
5742
5742
  "direction": "vertical"
5743
5743
  }
5744
5744
  ]
@@ -5753,16 +5753,13 @@
5753
5753
  "render-ui",
5754
5754
  "main",
5755
5755
  {
5756
- "type": "stack",
5757
5756
  "align": "center",
5758
5757
  "className": "py-12",
5759
- "gap": "md",
5760
- "direction": "vertical",
5761
5758
  "children": [
5762
5759
  {
5763
- "type": "icon",
5764
5760
  "name": "alert-triangle",
5765
- "color": "destructive"
5761
+ "color": "destructive",
5762
+ "type": "icon"
5766
5763
  },
5767
5764
  {
5768
5765
  "variant": "h3",
@@ -5776,13 +5773,16 @@
5776
5773
  "variant": "body"
5777
5774
  },
5778
5775
  {
5779
- "icon": "rotate-ccw",
5780
- "label": "Retry",
5781
5776
  "variant": "primary",
5782
5777
  "action": "REFRESH",
5783
- "type": "button"
5778
+ "type": "button",
5779
+ "icon": "rotate-ccw",
5780
+ "label": "Retry"
5784
5781
  }
5785
- ]
5782
+ ],
5783
+ "gap": "md",
5784
+ "type": "stack",
5785
+ "direction": "vertical"
5786
5786
  }
5787
5787
  ]
5788
5788
  ]
@@ -5808,4 +5808,4 @@
5808
5808
  ]
5809
5809
  }
5810
5810
  ]
5811
- }
5811
+ }