@almadar/std 5.0.0 → 5.2.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 (421) hide show
  1. package/behaviors/exports/atoms/std-agent-activity-log.orb +5 -45
  2. package/behaviors/exports/atoms/std-agent-chat-thread.orb +5 -55
  3. package/behaviors/exports/atoms/std-agent-classifier.orb +8 -8
  4. package/behaviors/exports/atoms/std-agent-completion.orb +8 -8
  5. package/behaviors/exports/atoms/std-agent-context-window.orb +5 -4
  6. package/behaviors/exports/atoms/std-agent-conversation.orb +5 -71
  7. package/behaviors/exports/atoms/std-agent-memory.orb +13 -127
  8. package/behaviors/exports/atoms/std-agent-provider.orb +8 -8
  9. package/behaviors/exports/atoms/std-agent-search.orb +6 -27
  10. package/behaviors/exports/atoms/std-agent-session.orb +11 -85
  11. package/behaviors/exports/atoms/std-agent-step-progress.orb +5 -4
  12. package/behaviors/exports/atoms/std-agent-token-gauge.orb +5 -4
  13. package/behaviors/exports/atoms/std-agent-tool-call.orb +8 -8
  14. package/behaviors/exports/atoms/std-async.orb +5 -8
  15. package/behaviors/exports/atoms/std-autoregressive.orb +4 -2
  16. package/behaviors/exports/atoms/std-browse.orb +5 -4
  17. package/behaviors/exports/atoms/std-cache-aside.orb +5 -8
  18. package/behaviors/exports/atoms/std-calendar.orb +5 -4
  19. package/behaviors/exports/atoms/std-circuit-breaker.orb +5 -4
  20. package/behaviors/exports/atoms/std-collision.orb +5 -4
  21. package/behaviors/exports/atoms/std-combat-log.orb +5 -4
  22. package/behaviors/exports/atoms/std-combat.orb +5 -4
  23. package/behaviors/exports/atoms/std-confirmation.orb +10 -4
  24. package/behaviors/exports/atoms/std-dialogue-box.orb +5 -4
  25. package/behaviors/exports/atoms/std-display.orb +5 -4
  26. package/behaviors/exports/atoms/std-drawer.orb +5 -4
  27. package/behaviors/exports/atoms/std-filter.orb +5 -4
  28. package/behaviors/exports/atoms/std-flip-card.orb +5 -4
  29. package/behaviors/exports/atoms/std-gallery.orb +5 -4
  30. package/behaviors/exports/atoms/std-game-audio.orb +5 -4
  31. package/behaviors/exports/atoms/std-game-canvas2d.orb +4 -2
  32. package/behaviors/exports/atoms/std-game-canvas3d.orb +4 -2
  33. package/behaviors/exports/atoms/std-game-hud.orb +5 -4
  34. package/behaviors/exports/atoms/std-game-menu.orb +5 -4
  35. package/behaviors/exports/atoms/std-game-over-screen.orb +5 -4
  36. package/behaviors/exports/atoms/std-gameflow.orb +5 -4
  37. package/behaviors/exports/atoms/std-input.orb +5 -4
  38. package/behaviors/exports/atoms/std-inventory-panel.orb +5 -8
  39. package/behaviors/exports/atoms/std-isometric-canvas.orb +5 -4
  40. package/behaviors/exports/atoms/std-loading.orb +5 -4
  41. package/behaviors/exports/atoms/std-modal.orb +89 -4
  42. package/behaviors/exports/atoms/std-movement.orb +5 -4
  43. package/behaviors/exports/atoms/std-notification.orb +5 -4
  44. package/behaviors/exports/atoms/std-overworld.orb +5 -4
  45. package/behaviors/exports/atoms/std-pagination.orb +5 -4
  46. package/behaviors/exports/atoms/std-physics2d.orb +5 -4
  47. package/behaviors/exports/atoms/std-platformer-canvas.orb +5 -4
  48. package/behaviors/exports/atoms/std-quest.orb +5 -8
  49. package/behaviors/exports/atoms/std-rate-limiter.orb +5 -4
  50. package/behaviors/exports/atoms/std-rating.orb +5 -4
  51. package/behaviors/exports/atoms/std-score-board.orb +5 -4
  52. package/behaviors/exports/atoms/std-score.orb +5 -4
  53. package/behaviors/exports/atoms/std-search.orb +5 -4
  54. package/behaviors/exports/atoms/std-selection.orb +5 -4
  55. package/behaviors/exports/atoms/std-service-custom-bearer.orb +5 -15
  56. package/behaviors/exports/atoms/std-service-custom-header.orb +5 -17
  57. package/behaviors/exports/atoms/std-service-custom-noauth.orb +5 -11
  58. package/behaviors/exports/atoms/std-service-custom-query.orb +5 -17
  59. package/behaviors/exports/atoms/std-service-email.orb +5 -4
  60. package/behaviors/exports/atoms/std-service-github.orb +5 -4
  61. package/behaviors/exports/atoms/std-service-llm.orb +5 -4
  62. package/behaviors/exports/atoms/std-service-oauth.orb +5 -4
  63. package/behaviors/exports/atoms/std-service-redis.orb +5 -4
  64. package/behaviors/exports/atoms/std-service-storage.orb +5 -4
  65. package/behaviors/exports/atoms/std-service-stripe.orb +5 -4
  66. package/behaviors/exports/atoms/std-service-twilio.orb +5 -4
  67. package/behaviors/exports/atoms/std-service-youtube.orb +5 -4
  68. package/behaviors/exports/atoms/std-simulation-canvas.orb +5 -4
  69. package/behaviors/exports/atoms/std-sort.orb +5 -4
  70. package/behaviors/exports/atoms/std-sprite.orb +5 -4
  71. package/behaviors/exports/atoms/std-tabs.orb +5 -4
  72. package/behaviors/exports/atoms/std-text-effects.orb +5 -4
  73. package/behaviors/exports/atoms/std-theme.orb +5 -4
  74. package/behaviors/exports/atoms/std-timer.orb +5 -4
  75. package/behaviors/exports/atoms/std-undo.orb +5 -4
  76. package/behaviors/exports/atoms/std-upload.orb +5 -4
  77. package/behaviors/exports/atoms/std-validate-on-save.orb +5 -32
  78. package/behaviors/exports/atoms/std-wizard.orb +5 -4
  79. package/behaviors/exports/molecules/std-agent-fix-loop.orb +1141 -1709
  80. package/behaviors/exports/molecules/std-agent-learner.orb +608 -938
  81. package/behaviors/exports/molecules/std-agent-planner.orb +613 -961
  82. package/behaviors/exports/molecules/std-agent-rag.orb +586 -915
  83. package/behaviors/exports/molecules/std-agent-tool-loop.orb +915 -2846
  84. package/behaviors/exports/molecules/std-builder-game.orb +5 -4
  85. package/behaviors/exports/molecules/std-cart.orb +196 -307
  86. package/behaviors/exports/molecules/std-classifier-game.orb +5 -4
  87. package/behaviors/exports/molecules/std-debugger-game.orb +5 -4
  88. package/behaviors/exports/molecules/std-detail.orb +309 -467
  89. package/behaviors/exports/molecules/std-event-handler-game.orb +5 -4
  90. package/behaviors/exports/molecules/std-form-advanced.orb +5 -8
  91. package/behaviors/exports/molecules/std-geospatial.orb +363 -539
  92. package/behaviors/exports/molecules/std-inventory.orb +390 -720
  93. package/behaviors/exports/molecules/std-list.orb +526 -1156
  94. package/behaviors/exports/molecules/std-messaging.orb +295 -452
  95. package/behaviors/exports/molecules/std-negotiator-game.orb +5 -4
  96. package/behaviors/exports/molecules/std-platformer-game.orb +5 -4
  97. package/behaviors/exports/molecules/std-puzzle-game.orb +5 -4
  98. package/behaviors/exports/molecules/std-quiz.orb +5 -4
  99. package/behaviors/exports/molecules/std-sequencer-game.orb +5 -4
  100. package/behaviors/exports/molecules/std-service-content-pipeline.orb +5 -4
  101. package/behaviors/exports/molecules/std-service-custom-api-tester.orb +5 -42
  102. package/behaviors/exports/molecules/std-service-devops-toolkit.orb +5 -4
  103. package/behaviors/exports/molecules/std-service-notification-hub.orb +5 -4
  104. package/behaviors/exports/molecules/std-service-payment-flow.orb +5 -4
  105. package/behaviors/exports/molecules/std-simulator-game.orb +5 -4
  106. package/behaviors/exports/molecules/std-turn-based-battle.orb +5 -4
  107. package/behaviors/exports/organisms/std-agent-assistant.orb +15 -143
  108. package/behaviors/exports/organisms/std-agent-builder.orb +814 -1476
  109. package/behaviors/exports/organisms/std-agent-pipeline.orb +785 -1567
  110. package/behaviors/exports/organisms/std-agent-reviewer.orb +299 -502
  111. package/behaviors/exports/organisms/std-agent-tutor.orb +306 -493
  112. package/behaviors/exports/organisms/std-api-gateway.orb +284 -626
  113. package/behaviors/exports/organisms/std-arcade-game.orb +4 -4
  114. package/behaviors/exports/organisms/std-booking-system.orb +1422 -2160
  115. package/behaviors/exports/organisms/std-cicd-pipeline.orb +274 -617
  116. package/behaviors/exports/organisms/std-cms.orb +1274 -1972
  117. package/behaviors/exports/organisms/std-coding-academy.orb +4 -4
  118. package/behaviors/exports/organisms/std-crm.orb +999 -1775
  119. package/behaviors/exports/organisms/std-devops-dashboard.orb +284 -638
  120. package/behaviors/exports/organisms/std-ecommerce.orb +1653 -2398
  121. package/behaviors/exports/organisms/std-finance-tracker.orb +340 -684
  122. package/behaviors/exports/organisms/std-healthcare.orb +984 -1838
  123. package/behaviors/exports/organisms/std-helpdesk.orb +340 -744
  124. package/behaviors/exports/organisms/std-hr-portal.orb +1401 -2151
  125. package/behaviors/exports/organisms/std-iot-dashboard.orb +284 -626
  126. package/behaviors/exports/organisms/std-lms.orb +284 -632
  127. package/behaviors/exports/organisms/std-logic-training.orb +4 -4
  128. package/behaviors/exports/organisms/std-platformer-app.orb +15 -98
  129. package/behaviors/exports/organisms/std-project-manager.orb +970 -1774
  130. package/behaviors/exports/organisms/std-puzzle-app.orb +4 -4
  131. package/behaviors/exports/organisms/std-realtime-chat.orb +364 -714
  132. package/behaviors/exports/organisms/std-rpg-game.orb +15 -102
  133. package/behaviors/exports/organisms/std-service-marketplace.orb +1589 -2361
  134. package/behaviors/exports/organisms/std-service-research-assistant.orb +4 -15
  135. package/behaviors/exports/organisms/std-social-feed.orb +62 -66
  136. package/behaviors/exports/organisms/std-stem-lab.orb +4 -4
  137. package/behaviors/exports/organisms/std-strategy-game.orb +4 -4
  138. package/behaviors/exports/organisms/std-trading-dashboard.orb +274 -620
  139. package/dist/behaviors/exports/atoms/std-agent-activity-log.orb +5 -45
  140. package/dist/behaviors/exports/atoms/std-agent-chat-thread.orb +5 -55
  141. package/dist/behaviors/exports/atoms/std-agent-classifier.orb +8 -8
  142. package/dist/behaviors/exports/atoms/std-agent-completion.orb +8 -8
  143. package/dist/behaviors/exports/atoms/std-agent-context-window.orb +5 -4
  144. package/dist/behaviors/exports/atoms/std-agent-conversation.orb +5 -71
  145. package/dist/behaviors/exports/atoms/std-agent-memory.orb +13 -127
  146. package/dist/behaviors/exports/atoms/std-agent-provider.orb +8 -8
  147. package/dist/behaviors/exports/atoms/std-agent-search.orb +6 -27
  148. package/dist/behaviors/exports/atoms/std-agent-session.orb +11 -85
  149. package/dist/behaviors/exports/atoms/std-agent-step-progress.orb +5 -4
  150. package/dist/behaviors/exports/atoms/std-agent-token-gauge.orb +5 -4
  151. package/dist/behaviors/exports/atoms/std-agent-tool-call.orb +8 -8
  152. package/dist/behaviors/exports/atoms/std-async.orb +5 -8
  153. package/dist/behaviors/exports/atoms/std-autoregressive.orb +4 -2
  154. package/dist/behaviors/exports/atoms/std-browse.orb +5 -4
  155. package/dist/behaviors/exports/atoms/std-cache-aside.orb +5 -8
  156. package/dist/behaviors/exports/atoms/std-calendar.orb +5 -4
  157. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +5 -4
  158. package/dist/behaviors/exports/atoms/std-collision.orb +5 -4
  159. package/dist/behaviors/exports/atoms/std-combat-log.orb +5 -4
  160. package/dist/behaviors/exports/atoms/std-combat.orb +5 -4
  161. package/dist/behaviors/exports/atoms/std-confirmation.orb +10 -4
  162. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +5 -4
  163. package/dist/behaviors/exports/atoms/std-display.orb +5 -4
  164. package/dist/behaviors/exports/atoms/std-drawer.orb +5 -4
  165. package/dist/behaviors/exports/atoms/std-filter.orb +5 -4
  166. package/dist/behaviors/exports/atoms/std-flip-card.orb +5 -4
  167. package/dist/behaviors/exports/atoms/std-gallery.orb +5 -4
  168. package/dist/behaviors/exports/atoms/std-game-audio.orb +5 -4
  169. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +4 -2
  170. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +4 -2
  171. package/dist/behaviors/exports/atoms/std-game-hud.orb +5 -4
  172. package/dist/behaviors/exports/atoms/std-game-menu.orb +5 -4
  173. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +5 -4
  174. package/dist/behaviors/exports/atoms/std-gameflow.orb +5 -4
  175. package/dist/behaviors/exports/atoms/std-input.orb +5 -4
  176. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +5 -8
  177. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +5 -4
  178. package/dist/behaviors/exports/atoms/std-loading.orb +5 -4
  179. package/dist/behaviors/exports/atoms/std-modal.orb +89 -4
  180. package/dist/behaviors/exports/atoms/std-movement.orb +5 -4
  181. package/dist/behaviors/exports/atoms/std-notification.orb +5 -4
  182. package/dist/behaviors/exports/atoms/std-overworld.orb +5 -4
  183. package/dist/behaviors/exports/atoms/std-pagination.orb +5 -4
  184. package/dist/behaviors/exports/atoms/std-physics2d.orb +5 -4
  185. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +5 -4
  186. package/dist/behaviors/exports/atoms/std-quest.orb +5 -8
  187. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +5 -4
  188. package/dist/behaviors/exports/atoms/std-rating.orb +5 -4
  189. package/dist/behaviors/exports/atoms/std-score-board.orb +5 -4
  190. package/dist/behaviors/exports/atoms/std-score.orb +5 -4
  191. package/dist/behaviors/exports/atoms/std-search.orb +5 -4
  192. package/dist/behaviors/exports/atoms/std-selection.orb +5 -4
  193. package/dist/behaviors/exports/atoms/std-service-custom-bearer.orb +5 -15
  194. package/dist/behaviors/exports/atoms/std-service-custom-header.orb +5 -17
  195. package/dist/behaviors/exports/atoms/std-service-custom-noauth.orb +5 -11
  196. package/dist/behaviors/exports/atoms/std-service-custom-query.orb +5 -17
  197. package/dist/behaviors/exports/atoms/std-service-email.orb +5 -4
  198. package/dist/behaviors/exports/atoms/std-service-github.orb +5 -4
  199. package/dist/behaviors/exports/atoms/std-service-llm.orb +5 -4
  200. package/dist/behaviors/exports/atoms/std-service-oauth.orb +5 -4
  201. package/dist/behaviors/exports/atoms/std-service-redis.orb +5 -4
  202. package/dist/behaviors/exports/atoms/std-service-storage.orb +5 -4
  203. package/dist/behaviors/exports/atoms/std-service-stripe.orb +5 -4
  204. package/dist/behaviors/exports/atoms/std-service-twilio.orb +5 -4
  205. package/dist/behaviors/exports/atoms/std-service-youtube.orb +5 -4
  206. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +5 -4
  207. package/dist/behaviors/exports/atoms/std-sort.orb +5 -4
  208. package/dist/behaviors/exports/atoms/std-sprite.orb +5 -4
  209. package/dist/behaviors/exports/atoms/std-tabs.orb +5 -4
  210. package/dist/behaviors/exports/atoms/std-text-effects.orb +5 -4
  211. package/dist/behaviors/exports/atoms/std-theme.orb +5 -4
  212. package/dist/behaviors/exports/atoms/std-timer.orb +5 -4
  213. package/dist/behaviors/exports/atoms/std-undo.orb +5 -4
  214. package/dist/behaviors/exports/atoms/std-upload.orb +5 -4
  215. package/dist/behaviors/exports/atoms/std-validate-on-save.orb +5 -32
  216. package/dist/behaviors/exports/atoms/std-wizard.orb +5 -4
  217. package/dist/behaviors/exports/molecules/std-agent-fix-loop.orb +1141 -1709
  218. package/dist/behaviors/exports/molecules/std-agent-learner.orb +608 -938
  219. package/dist/behaviors/exports/molecules/std-agent-planner.orb +613 -961
  220. package/dist/behaviors/exports/molecules/std-agent-rag.orb +586 -915
  221. package/dist/behaviors/exports/molecules/std-agent-tool-loop.orb +915 -2846
  222. package/dist/behaviors/exports/molecules/std-builder-game.orb +5 -4
  223. package/dist/behaviors/exports/molecules/std-cart.orb +196 -307
  224. package/dist/behaviors/exports/molecules/std-classifier-game.orb +5 -4
  225. package/dist/behaviors/exports/molecules/std-debugger-game.orb +5 -4
  226. package/dist/behaviors/exports/molecules/std-detail.orb +309 -467
  227. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +5 -4
  228. package/dist/behaviors/exports/molecules/std-form-advanced.orb +5 -8
  229. package/dist/behaviors/exports/molecules/std-geospatial.orb +363 -539
  230. package/dist/behaviors/exports/molecules/std-inventory.orb +390 -720
  231. package/dist/behaviors/exports/molecules/std-list.orb +526 -1156
  232. package/dist/behaviors/exports/molecules/std-messaging.orb +295 -452
  233. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +5 -4
  234. package/dist/behaviors/exports/molecules/std-platformer-game.orb +5 -4
  235. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +5 -4
  236. package/dist/behaviors/exports/molecules/std-quiz.orb +5 -4
  237. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +5 -4
  238. package/dist/behaviors/exports/molecules/std-service-content-pipeline.orb +5 -4
  239. package/dist/behaviors/exports/molecules/std-service-custom-api-tester.orb +5 -42
  240. package/dist/behaviors/exports/molecules/std-service-devops-toolkit.orb +5 -4
  241. package/dist/behaviors/exports/molecules/std-service-notification-hub.orb +5 -4
  242. package/dist/behaviors/exports/molecules/std-service-payment-flow.orb +5 -4
  243. package/dist/behaviors/exports/molecules/std-simulator-game.orb +5 -4
  244. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +5 -4
  245. package/dist/behaviors/exports/organisms/std-agent-assistant.orb +15 -143
  246. package/dist/behaviors/exports/organisms/std-agent-builder.orb +814 -1476
  247. package/dist/behaviors/exports/organisms/std-agent-pipeline.orb +785 -1567
  248. package/dist/behaviors/exports/organisms/std-agent-reviewer.orb +299 -502
  249. package/dist/behaviors/exports/organisms/std-agent-tutor.orb +306 -493
  250. package/dist/behaviors/exports/organisms/std-api-gateway.orb +284 -626
  251. package/dist/behaviors/exports/organisms/std-arcade-game.orb +4 -4
  252. package/dist/behaviors/exports/organisms/std-booking-system.orb +1422 -2160
  253. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +274 -617
  254. package/dist/behaviors/exports/organisms/std-cms.orb +1274 -1972
  255. package/dist/behaviors/exports/organisms/std-coding-academy.orb +4 -4
  256. package/dist/behaviors/exports/organisms/std-crm.orb +999 -1775
  257. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +284 -638
  258. package/dist/behaviors/exports/organisms/std-ecommerce.orb +1653 -2398
  259. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +340 -684
  260. package/dist/behaviors/exports/organisms/std-healthcare.orb +984 -1838
  261. package/dist/behaviors/exports/organisms/std-helpdesk.orb +340 -744
  262. package/dist/behaviors/exports/organisms/std-hr-portal.orb +1401 -2151
  263. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +284 -626
  264. package/dist/behaviors/exports/organisms/std-lms.orb +284 -632
  265. package/dist/behaviors/exports/organisms/std-logic-training.orb +4 -4
  266. package/dist/behaviors/exports/organisms/std-platformer-app.orb +15 -98
  267. package/dist/behaviors/exports/organisms/std-project-manager.orb +970 -1774
  268. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +4 -4
  269. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +364 -714
  270. package/dist/behaviors/exports/organisms/std-rpg-game.orb +15 -102
  271. package/dist/behaviors/exports/organisms/std-service-marketplace.orb +1589 -2361
  272. package/dist/behaviors/exports/organisms/std-service-research-assistant.orb +4 -15
  273. package/dist/behaviors/exports/organisms/std-social-feed.orb +62 -66
  274. package/dist/behaviors/exports/organisms/std-stem-lab.orb +4 -4
  275. package/dist/behaviors/exports/organisms/std-strategy-game.orb +4 -4
  276. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +274 -620
  277. package/dist/behaviors/exports-reader.js.map +1 -1
  278. package/dist/behaviors/functions/index.d.ts +2192 -0
  279. package/dist/behaviors/functions/index.js.map +1 -1
  280. package/dist/behaviors/index.js.map +1 -1
  281. package/dist/behaviors/query.js.map +1 -1
  282. package/dist/exports/atoms/std-agent-activity-log.orb +5 -45
  283. package/dist/exports/atoms/std-agent-chat-thread.orb +5 -55
  284. package/dist/exports/atoms/std-agent-classifier.orb +8 -8
  285. package/dist/exports/atoms/std-agent-completion.orb +8 -8
  286. package/dist/exports/atoms/std-agent-context-window.orb +5 -4
  287. package/dist/exports/atoms/std-agent-conversation.orb +5 -71
  288. package/dist/exports/atoms/std-agent-memory.orb +13 -127
  289. package/dist/exports/atoms/std-agent-provider.orb +8 -8
  290. package/dist/exports/atoms/std-agent-search.orb +6 -27
  291. package/dist/exports/atoms/std-agent-session.orb +11 -85
  292. package/dist/exports/atoms/std-agent-step-progress.orb +5 -4
  293. package/dist/exports/atoms/std-agent-token-gauge.orb +5 -4
  294. package/dist/exports/atoms/std-agent-tool-call.orb +8 -8
  295. package/dist/exports/atoms/std-async.orb +5 -8
  296. package/dist/exports/atoms/std-autoregressive.orb +4 -2
  297. package/dist/exports/atoms/std-browse.orb +5 -4
  298. package/dist/exports/atoms/std-cache-aside.orb +5 -8
  299. package/dist/exports/atoms/std-calendar.orb +5 -4
  300. package/dist/exports/atoms/std-circuit-breaker.orb +5 -4
  301. package/dist/exports/atoms/std-collision.orb +5 -4
  302. package/dist/exports/atoms/std-combat-log.orb +5 -4
  303. package/dist/exports/atoms/std-combat.orb +5 -4
  304. package/dist/exports/atoms/std-confirmation.orb +10 -4
  305. package/dist/exports/atoms/std-dialogue-box.orb +5 -4
  306. package/dist/exports/atoms/std-display.orb +5 -4
  307. package/dist/exports/atoms/std-drawer.orb +5 -4
  308. package/dist/exports/atoms/std-filter.orb +5 -4
  309. package/dist/exports/atoms/std-flip-card.orb +5 -4
  310. package/dist/exports/atoms/std-gallery.orb +5 -4
  311. package/dist/exports/atoms/std-game-audio.orb +5 -4
  312. package/dist/exports/atoms/std-game-canvas2d.orb +4 -2
  313. package/dist/exports/atoms/std-game-canvas3d.orb +4 -2
  314. package/dist/exports/atoms/std-game-hud.orb +5 -4
  315. package/dist/exports/atoms/std-game-menu.orb +5 -4
  316. package/dist/exports/atoms/std-game-over-screen.orb +5 -4
  317. package/dist/exports/atoms/std-gameflow.orb +5 -4
  318. package/dist/exports/atoms/std-input.orb +5 -4
  319. package/dist/exports/atoms/std-inventory-panel.orb +5 -8
  320. package/dist/exports/atoms/std-isometric-canvas.orb +5 -4
  321. package/dist/exports/atoms/std-loading.orb +5 -4
  322. package/dist/exports/atoms/std-modal.orb +89 -4
  323. package/dist/exports/atoms/std-movement.orb +5 -4
  324. package/dist/exports/atoms/std-notification.orb +5 -4
  325. package/dist/exports/atoms/std-overworld.orb +5 -4
  326. package/dist/exports/atoms/std-pagination.orb +5 -4
  327. package/dist/exports/atoms/std-physics2d.orb +5 -4
  328. package/dist/exports/atoms/std-platformer-canvas.orb +5 -4
  329. package/dist/exports/atoms/std-quest.orb +5 -8
  330. package/dist/exports/atoms/std-rate-limiter.orb +5 -4
  331. package/dist/exports/atoms/std-rating.orb +5 -4
  332. package/dist/exports/atoms/std-score-board.orb +5 -4
  333. package/dist/exports/atoms/std-score.orb +5 -4
  334. package/dist/exports/atoms/std-search.orb +5 -4
  335. package/dist/exports/atoms/std-selection.orb +5 -4
  336. package/dist/exports/atoms/std-service-custom-bearer.orb +5 -15
  337. package/dist/exports/atoms/std-service-custom-header.orb +5 -17
  338. package/dist/exports/atoms/std-service-custom-noauth.orb +5 -11
  339. package/dist/exports/atoms/std-service-custom-query.orb +5 -17
  340. package/dist/exports/atoms/std-service-email.orb +5 -4
  341. package/dist/exports/atoms/std-service-github.orb +5 -4
  342. package/dist/exports/atoms/std-service-llm.orb +5 -4
  343. package/dist/exports/atoms/std-service-oauth.orb +5 -4
  344. package/dist/exports/atoms/std-service-redis.orb +5 -4
  345. package/dist/exports/atoms/std-service-storage.orb +5 -4
  346. package/dist/exports/atoms/std-service-stripe.orb +5 -4
  347. package/dist/exports/atoms/std-service-twilio.orb +5 -4
  348. package/dist/exports/atoms/std-service-youtube.orb +5 -4
  349. package/dist/exports/atoms/std-simulation-canvas.orb +5 -4
  350. package/dist/exports/atoms/std-sort.orb +5 -4
  351. package/dist/exports/atoms/std-sprite.orb +5 -4
  352. package/dist/exports/atoms/std-tabs.orb +5 -4
  353. package/dist/exports/atoms/std-text-effects.orb +5 -4
  354. package/dist/exports/atoms/std-theme.orb +5 -4
  355. package/dist/exports/atoms/std-timer.orb +5 -4
  356. package/dist/exports/atoms/std-undo.orb +5 -4
  357. package/dist/exports/atoms/std-upload.orb +5 -4
  358. package/dist/exports/atoms/std-validate-on-save.orb +5 -32
  359. package/dist/exports/atoms/std-wizard.orb +5 -4
  360. package/dist/exports/molecules/std-agent-fix-loop.orb +1141 -1709
  361. package/dist/exports/molecules/std-agent-learner.orb +608 -938
  362. package/dist/exports/molecules/std-agent-planner.orb +613 -961
  363. package/dist/exports/molecules/std-agent-rag.orb +586 -915
  364. package/dist/exports/molecules/std-agent-tool-loop.orb +915 -2846
  365. package/dist/exports/molecules/std-builder-game.orb +5 -4
  366. package/dist/exports/molecules/std-cart.orb +196 -307
  367. package/dist/exports/molecules/std-classifier-game.orb +5 -4
  368. package/dist/exports/molecules/std-debugger-game.orb +5 -4
  369. package/dist/exports/molecules/std-detail.orb +309 -467
  370. package/dist/exports/molecules/std-event-handler-game.orb +5 -4
  371. package/dist/exports/molecules/std-form-advanced.orb +5 -8
  372. package/dist/exports/molecules/std-geospatial.orb +363 -539
  373. package/dist/exports/molecules/std-inventory.orb +390 -720
  374. package/dist/exports/molecules/std-list.orb +526 -1156
  375. package/dist/exports/molecules/std-messaging.orb +295 -452
  376. package/dist/exports/molecules/std-negotiator-game.orb +5 -4
  377. package/dist/exports/molecules/std-platformer-game.orb +5 -4
  378. package/dist/exports/molecules/std-puzzle-game.orb +5 -4
  379. package/dist/exports/molecules/std-quiz.orb +5 -4
  380. package/dist/exports/molecules/std-sequencer-game.orb +5 -4
  381. package/dist/exports/molecules/std-service-content-pipeline.orb +5 -4
  382. package/dist/exports/molecules/std-service-custom-api-tester.orb +5 -42
  383. package/dist/exports/molecules/std-service-devops-toolkit.orb +5 -4
  384. package/dist/exports/molecules/std-service-notification-hub.orb +5 -4
  385. package/dist/exports/molecules/std-service-payment-flow.orb +5 -4
  386. package/dist/exports/molecules/std-simulator-game.orb +5 -4
  387. package/dist/exports/molecules/std-turn-based-battle.orb +5 -4
  388. package/dist/exports/organisms/std-agent-assistant.orb +15 -143
  389. package/dist/exports/organisms/std-agent-builder.orb +814 -1476
  390. package/dist/exports/organisms/std-agent-pipeline.orb +785 -1567
  391. package/dist/exports/organisms/std-agent-reviewer.orb +299 -502
  392. package/dist/exports/organisms/std-agent-tutor.orb +306 -493
  393. package/dist/exports/organisms/std-api-gateway.orb +284 -626
  394. package/dist/exports/organisms/std-arcade-game.orb +4 -4
  395. package/dist/exports/organisms/std-booking-system.orb +1422 -2160
  396. package/dist/exports/organisms/std-cicd-pipeline.orb +274 -617
  397. package/dist/exports/organisms/std-cms.orb +1274 -1972
  398. package/dist/exports/organisms/std-coding-academy.orb +4 -4
  399. package/dist/exports/organisms/std-crm.orb +999 -1775
  400. package/dist/exports/organisms/std-devops-dashboard.orb +284 -638
  401. package/dist/exports/organisms/std-ecommerce.orb +1653 -2398
  402. package/dist/exports/organisms/std-finance-tracker.orb +340 -684
  403. package/dist/exports/organisms/std-healthcare.orb +984 -1838
  404. package/dist/exports/organisms/std-helpdesk.orb +340 -744
  405. package/dist/exports/organisms/std-hr-portal.orb +1401 -2151
  406. package/dist/exports/organisms/std-iot-dashboard.orb +284 -626
  407. package/dist/exports/organisms/std-lms.orb +284 -632
  408. package/dist/exports/organisms/std-logic-training.orb +4 -4
  409. package/dist/exports/organisms/std-platformer-app.orb +15 -98
  410. package/dist/exports/organisms/std-project-manager.orb +970 -1774
  411. package/dist/exports/organisms/std-puzzle-app.orb +4 -4
  412. package/dist/exports/organisms/std-realtime-chat.orb +364 -714
  413. package/dist/exports/organisms/std-rpg-game.orb +15 -102
  414. package/dist/exports/organisms/std-service-marketplace.orb +1589 -2361
  415. package/dist/exports/organisms/std-service-research-assistant.orb +4 -15
  416. package/dist/exports/organisms/std-social-feed.orb +62 -66
  417. package/dist/exports/organisms/std-stem-lab.orb +4 -4
  418. package/dist/exports/organisms/std-strategy-game.orb +4 -4
  419. package/dist/exports/organisms/std-trading-dashboard.orb +274 -620
  420. package/dist/index.js.map +1 -1
  421. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  {
2
- "name": "BookingSystemApp",
2
+ "name": "std-booking-system",
3
3
  "version": "1.0.0",
4
+ "description": "Booking system organism. Composes molecules via compose: - stdList(Provider): provider directory with CRUD - stdWizard(Booking): booking wizard - stdList(Appointment): appointment list with CRUD - stdDisplay(Schedule): schedule overview dashboard",
4
5
  "orbitals": [
5
6
  {
6
7
  "name": "ProviderOrbital",
@@ -52,11 +53,15 @@
52
53
  "listens": [
53
54
  {
54
55
  "event": "PROVIDER_CREATED",
55
- "triggers": "PROVIDER_CREATED"
56
+ "triggers": "INIT"
56
57
  },
57
58
  {
58
59
  "event": "PROVIDER_UPDATED",
59
- "triggers": "PROVIDER_UPDATED"
60
+ "triggers": "INIT"
61
+ },
62
+ {
63
+ "event": "PROVIDER_DELETED",
64
+ "triggers": "INIT"
60
65
  }
61
66
  ],
62
67
  "stateMachine": {
@@ -64,9 +69,6 @@
64
69
  {
65
70
  "name": "browsing",
66
71
  "isInitial": true
67
- },
68
- {
69
- "name": "deleting"
70
72
  }
71
73
  ],
72
74
  "events": [
@@ -122,40 +124,6 @@
122
124
  "type": "object"
123
125
  }
124
126
  ]
125
- },
126
- {
127
- "key": "PROVIDER_CREATED",
128
- "name": "PROVIDER_CREATED",
129
- "payload": [
130
- {
131
- "name": "data",
132
- "type": "object",
133
- "required": true
134
- }
135
- ]
136
- },
137
- {
138
- "key": "PROVIDER_UPDATED",
139
- "name": "PROVIDER_UPDATED",
140
- "payload": [
141
- {
142
- "name": "data",
143
- "type": "object",
144
- "required": true
145
- }
146
- ]
147
- },
148
- {
149
- "key": "CONFIRM_DELETE",
150
- "name": "Confirm Delete"
151
- },
152
- {
153
- "key": "CANCEL",
154
- "name": "Cancel"
155
- },
156
- {
157
- "key": "CLOSE",
158
- "name": "Close"
159
127
  }
160
128
  ],
161
129
  "transitions": [
@@ -306,22 +274,75 @@
306
274
  }
307
275
  ]
308
276
  ]
277
+ }
278
+ ]
279
+ },
280
+ "emits": [
281
+ {
282
+ "event": "BOOK",
283
+ "payload": [
284
+ {
285
+ "name": "id",
286
+ "type": "string",
287
+ "required": true
288
+ }
289
+ ],
290
+ "scope": "external"
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "name": "ProviderCreate",
296
+ "linkedEntity": "Provider",
297
+ "category": "interaction",
298
+ "emits": [
299
+ {
300
+ "event": "SAVE"
301
+ },
302
+ {
303
+ "event": "PROVIDER_CREATED"
304
+ }
305
+ ],
306
+ "stateMachine": {
307
+ "states": [
308
+ {
309
+ "name": "closed",
310
+ "isInitial": true
309
311
  },
310
312
  {
311
- "from": "browsing",
312
- "to": "browsing",
313
- "event": "PROVIDER_CREATED",
314
- "effects": [
315
- [
316
- "ref",
317
- "Provider"
318
- ]
319
- ]
313
+ "name": "open"
314
+ }
315
+ ],
316
+ "events": [
317
+ {
318
+ "key": "INIT",
319
+ "name": "Initialize"
320
320
  },
321
321
  {
322
- "from": "browsing",
323
- "to": "browsing",
324
- "event": "PROVIDER_UPDATED",
322
+ "key": "CREATE",
323
+ "name": "Open"
324
+ },
325
+ {
326
+ "key": "CLOSE",
327
+ "name": "Close"
328
+ },
329
+ {
330
+ "key": "SAVE",
331
+ "name": "Save",
332
+ "payload": [
333
+ {
334
+ "name": "data",
335
+ "type": "object",
336
+ "required": true
337
+ }
338
+ ]
339
+ }
340
+ ],
341
+ "transitions": [
342
+ {
343
+ "from": "closed",
344
+ "to": "closed",
345
+ "event": "INIT",
325
346
  "effects": [
326
347
  [
327
348
  "ref",
@@ -330,16 +351,13 @@
330
351
  ]
331
352
  },
332
353
  {
333
- "from": "browsing",
334
- "to": "deleting",
335
- "event": "DELETE",
354
+ "from": "closed",
355
+ "to": "open",
356
+ "event": "CREATE",
336
357
  "effects": [
337
358
  [
338
359
  "fetch",
339
- "Provider",
340
- {
341
- "id": "@payload.id"
342
- }
360
+ "Provider"
343
361
  ],
344
362
  [
345
363
  "render-ui",
@@ -356,12 +374,12 @@
356
374
  "children": [
357
375
  {
358
376
  "type": "icon",
359
- "name": "trash-2",
377
+ "name": "plus-circle",
360
378
  "size": "md"
361
379
  },
362
380
  {
363
381
  "type": "typography",
364
- "content": "Delete Provider",
382
+ "content": "Create Provider",
365
383
  "variant": "h3"
366
384
  }
367
385
  ]
@@ -370,34 +388,18 @@
370
388
  "type": "divider"
371
389
  },
372
390
  {
373
- "type": "typography",
374
- "content": "@entity.name",
375
- "variant": "h4"
376
- },
377
- {
378
- "type": "typography",
379
- "content": "This action cannot be undone.",
380
- "variant": "body"
381
- },
382
- {
383
- "type": "stack",
384
- "direction": "horizontal",
385
- "gap": "sm",
386
- "justify": "end",
387
- "children": [
388
- {
389
- "type": "button",
390
- "label": "Cancel",
391
- "event": "CANCEL",
392
- "variant": "ghost"
393
- },
394
- {
395
- "type": "button",
396
- "label": "Delete",
397
- "event": "CONFIRM_DELETE",
398
- "variant": "danger",
399
- "icon": "trash"
400
- }
391
+ "type": "form-section",
392
+ "entity": "Provider",
393
+ "mode": "create",
394
+ "submitEvent": "SAVE",
395
+ "cancelEvent": "CLOSE",
396
+ "fields": [
397
+ "name",
398
+ "specialty",
399
+ "location",
400
+ "phone",
401
+ "rating",
402
+ "available"
401
403
  ]
402
404
  }
403
405
  ]
@@ -406,15 +408,32 @@
406
408
  ]
407
409
  },
408
410
  {
409
- "from": "deleting",
410
- "to": "browsing",
411
- "event": "CONFIRM_DELETE",
411
+ "from": "open",
412
+ "to": "closed",
413
+ "event": "CLOSE",
414
+ "effects": [
415
+ [
416
+ "render-ui",
417
+ "modal",
418
+ null
419
+ ],
420
+ [
421
+ "notify",
422
+ "Cancelled",
423
+ "info"
424
+ ]
425
+ ]
426
+ },
427
+ {
428
+ "from": "open",
429
+ "to": "closed",
430
+ "event": "SAVE",
412
431
  "effects": [
413
432
  [
414
433
  "persist",
415
- "delete",
434
+ "create",
416
435
  "Provider",
417
- "@entity.id"
436
+ "@payload.data"
418
437
  ],
419
438
  [
420
439
  "render-ui",
@@ -422,152 +441,145 @@
422
441
  null
423
442
  ],
424
443
  [
425
- "render-ui",
426
- "main",
427
- {
428
- "type": "dashboard-layout",
429
- "appName": "BookingSystemApp",
430
- "navItems": [
431
- {
432
- "label": "Providers",
433
- "href": "/providers",
434
- "icon": "user-check"
435
- },
436
- {
437
- "label": "Book",
438
- "href": "/book",
439
- "icon": "calendar-plus"
440
- },
441
- {
442
- "label": "Appointments",
443
- "href": "/appointments",
444
- "icon": "calendar"
445
- },
446
- {
447
- "label": "Schedule",
448
- "href": "/schedule",
449
- "icon": "clock"
450
- }
451
- ],
452
- "children": [
453
- {
454
- "type": "stack",
455
- "direction": "vertical",
456
- "gap": "lg",
457
- "className": "max-w-5xl mx-auto w-full",
458
- "children": [
459
- {
460
- "type": "stack",
461
- "direction": "horizontal",
462
- "gap": "md",
463
- "justify": "space-between",
464
- "align": "center",
465
- "children": [
466
- {
467
- "type": "stack",
468
- "direction": "horizontal",
469
- "gap": "sm",
470
- "align": "center",
471
- "children": [
472
- {
473
- "type": "icon",
474
- "name": "briefcase",
475
- "size": "lg"
476
- },
477
- {
478
- "type": "typography",
479
- "content": "Providers",
480
- "variant": "h2"
481
- }
482
- ]
483
- },
484
- {
485
- "type": "stack",
486
- "direction": "horizontal",
487
- "gap": "sm",
488
- "children": [
489
- {
490
- "type": "button",
491
- "label": "Create Provider",
492
- "event": "CREATE",
493
- "variant": "primary",
494
- "icon": "plus"
495
- }
496
- ]
497
- }
498
- ]
499
- },
500
- {
501
- "type": "divider"
502
- },
444
+ "emit",
445
+ "PROVIDER_CREATED"
446
+ ]
447
+ ]
448
+ }
449
+ ]
450
+ }
451
+ },
452
+ {
453
+ "name": "ProviderEdit",
454
+ "linkedEntity": "Provider",
455
+ "category": "interaction",
456
+ "emits": [
457
+ {
458
+ "event": "SAVE"
459
+ },
460
+ {
461
+ "event": "PROVIDER_UPDATED"
462
+ }
463
+ ],
464
+ "stateMachine": {
465
+ "states": [
466
+ {
467
+ "name": "closed",
468
+ "isInitial": true
469
+ },
470
+ {
471
+ "name": "open"
472
+ }
473
+ ],
474
+ "events": [
475
+ {
476
+ "key": "INIT",
477
+ "name": "Initialize"
478
+ },
479
+ {
480
+ "key": "EDIT",
481
+ "name": "Open",
482
+ "payload": [
483
+ {
484
+ "name": "id",
485
+ "type": "string",
486
+ "required": true
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "key": "CLOSE",
492
+ "name": "Close"
493
+ },
494
+ {
495
+ "key": "SAVE",
496
+ "name": "Save",
497
+ "payload": [
498
+ {
499
+ "name": "data",
500
+ "type": "object",
501
+ "required": true
502
+ }
503
+ ]
504
+ }
505
+ ],
506
+ "transitions": [
507
+ {
508
+ "from": "closed",
509
+ "to": "closed",
510
+ "event": "INIT",
511
+ "effects": [
512
+ [
513
+ "ref",
514
+ "Provider"
515
+ ]
516
+ ]
517
+ },
518
+ {
519
+ "from": "closed",
520
+ "to": "open",
521
+ "event": "EDIT",
522
+ "effects": [
523
+ [
524
+ "fetch",
525
+ "Provider",
526
+ {
527
+ "id": "@payload.id"
528
+ }
529
+ ],
530
+ [
531
+ "render-ui",
532
+ "modal",
533
+ {
534
+ "type": "stack",
535
+ "direction": "vertical",
536
+ "gap": "md",
537
+ "children": [
538
+ {
539
+ "type": "stack",
540
+ "direction": "horizontal",
541
+ "gap": "sm",
542
+ "children": [
503
543
  {
504
- "type": "data-grid",
505
- "entity": "Provider",
506
- "emptyIcon": "inbox",
507
- "emptyTitle": "No providers listed",
508
- "emptyDescription": "Add service providers to enable bookings.",
509
- "itemActions": [
510
- {
511
- "label": "View",
512
- "event": "VIEW",
513
- "variant": "ghost",
514
- "size": "sm"
515
- },
516
- {
517
- "label": "Edit",
518
- "event": "EDIT",
519
- "variant": "ghost",
520
- "size": "sm"
521
- },
522
- {
523
- "label": "Delete",
524
- "event": "DELETE",
525
- "variant": "danger",
526
- "size": "sm"
527
- }
528
- ],
529
- "columns": [
530
- {
531
- "name": "name",
532
- "variant": "h3",
533
- "icon": "briefcase"
534
- },
535
- {
536
- "name": "specialty",
537
- "variant": "badge"
538
- },
539
- {
540
- "name": "rating",
541
- "variant": "body",
542
- "format": "number"
543
- },
544
- {
545
- "name": "location",
546
- "variant": "body"
547
- },
548
- {
549
- "name": "phone",
550
- "variant": "caption"
551
- }
552
- ],
553
- "cols": 2,
554
- "gap": "md"
544
+ "type": "icon",
545
+ "name": "edit",
546
+ "size": "md"
547
+ },
548
+ {
549
+ "type": "typography",
550
+ "content": "Edit Provider",
551
+ "variant": "h3"
555
552
  }
556
553
  ]
554
+ },
555
+ {
556
+ "type": "divider"
557
+ },
558
+ {
559
+ "type": "form-section",
560
+ "entity": "Provider",
561
+ "mode": "edit",
562
+ "submitEvent": "SAVE",
563
+ "cancelEvent": "CLOSE",
564
+ "fields": [
565
+ "name",
566
+ "specialty",
567
+ "location",
568
+ "phone",
569
+ "rating",
570
+ "available"
571
+ ],
572
+ "entityId": "@entity.id"
557
573
  }
558
574
  ]
559
575
  }
560
- ],
561
- [
562
- "notify",
563
- "Provider deleted successfully"
564
576
  ]
565
577
  ]
566
578
  },
567
579
  {
568
- "from": "deleting",
569
- "to": "browsing",
570
- "event": "CANCEL",
580
+ "from": "open",
581
+ "to": "closed",
582
+ "event": "CLOSE",
571
583
  "effects": [
572
584
  [
573
585
  "render-ui",
@@ -575,324 +587,44 @@
575
587
  null
576
588
  ],
577
589
  [
578
- "fetch",
579
- "Provider"
590
+ "notify",
591
+ "Cancelled",
592
+ "info"
593
+ ]
594
+ ]
595
+ },
596
+ {
597
+ "from": "open",
598
+ "to": "closed",
599
+ "event": "SAVE",
600
+ "effects": [
601
+ [
602
+ "persist",
603
+ "update",
604
+ "Provider",
605
+ "@payload.data"
580
606
  ],
581
- [
582
- "render-ui",
583
- "main",
584
- {
585
- "type": "dashboard-layout",
586
- "appName": "BookingSystemApp",
587
- "navItems": [
588
- {
589
- "label": "Providers",
590
- "href": "/providers",
591
- "icon": "user-check"
592
- },
593
- {
594
- "label": "Book",
595
- "href": "/book",
596
- "icon": "calendar-plus"
597
- },
598
- {
599
- "label": "Appointments",
600
- "href": "/appointments",
601
- "icon": "calendar"
602
- },
603
- {
604
- "label": "Schedule",
605
- "href": "/schedule",
606
- "icon": "clock"
607
- }
608
- ],
609
- "children": [
610
- {
611
- "type": "stack",
612
- "direction": "vertical",
613
- "gap": "lg",
614
- "className": "max-w-5xl mx-auto w-full",
615
- "children": [
616
- {
617
- "type": "stack",
618
- "direction": "horizontal",
619
- "gap": "md",
620
- "justify": "space-between",
621
- "align": "center",
622
- "children": [
623
- {
624
- "type": "stack",
625
- "direction": "horizontal",
626
- "gap": "sm",
627
- "align": "center",
628
- "children": [
629
- {
630
- "type": "icon",
631
- "name": "briefcase",
632
- "size": "lg"
633
- },
634
- {
635
- "type": "typography",
636
- "content": "Providers",
637
- "variant": "h2"
638
- }
639
- ]
640
- },
641
- {
642
- "type": "stack",
643
- "direction": "horizontal",
644
- "gap": "sm",
645
- "children": [
646
- {
647
- "type": "button",
648
- "label": "Create Provider",
649
- "event": "CREATE",
650
- "variant": "primary",
651
- "icon": "plus"
652
- }
653
- ]
654
- }
655
- ]
656
- },
657
- {
658
- "type": "divider"
659
- },
660
- {
661
- "type": "data-grid",
662
- "entity": "Provider",
663
- "emptyIcon": "inbox",
664
- "emptyTitle": "No providers listed",
665
- "emptyDescription": "Add service providers to enable bookings.",
666
- "itemActions": [
667
- {
668
- "label": "View",
669
- "event": "VIEW",
670
- "variant": "ghost",
671
- "size": "sm"
672
- },
673
- {
674
- "label": "Edit",
675
- "event": "EDIT",
676
- "variant": "ghost",
677
- "size": "sm"
678
- },
679
- {
680
- "label": "Delete",
681
- "event": "DELETE",
682
- "variant": "danger",
683
- "size": "sm"
684
- }
685
- ],
686
- "columns": [
687
- {
688
- "name": "name",
689
- "variant": "h3",
690
- "icon": "briefcase"
691
- },
692
- {
693
- "name": "specialty",
694
- "variant": "badge"
695
- },
696
- {
697
- "name": "rating",
698
- "variant": "body",
699
- "format": "number"
700
- },
701
- {
702
- "name": "location",
703
- "variant": "body"
704
- },
705
- {
706
- "name": "phone",
707
- "variant": "caption"
708
- }
709
- ],
710
- "cols": 2,
711
- "gap": "md"
712
- }
713
- ]
714
- }
715
- ]
716
- }
717
- ]
718
- ]
719
- },
720
- {
721
- "from": "deleting",
722
- "to": "browsing",
723
- "event": "CLOSE",
724
- "effects": [
725
607
  [
726
608
  "render-ui",
727
609
  "modal",
728
610
  null
729
611
  ],
730
612
  [
731
- "fetch",
732
- "Provider"
733
- ],
734
- [
735
- "render-ui",
736
- "main",
737
- {
738
- "type": "dashboard-layout",
739
- "appName": "BookingSystemApp",
740
- "navItems": [
741
- {
742
- "label": "Providers",
743
- "href": "/providers",
744
- "icon": "user-check"
745
- },
746
- {
747
- "label": "Book",
748
- "href": "/book",
749
- "icon": "calendar-plus"
750
- },
751
- {
752
- "label": "Appointments",
753
- "href": "/appointments",
754
- "icon": "calendar"
755
- },
756
- {
757
- "label": "Schedule",
758
- "href": "/schedule",
759
- "icon": "clock"
760
- }
761
- ],
762
- "children": [
763
- {
764
- "type": "stack",
765
- "direction": "vertical",
766
- "gap": "lg",
767
- "className": "max-w-5xl mx-auto w-full",
768
- "children": [
769
- {
770
- "type": "stack",
771
- "direction": "horizontal",
772
- "gap": "md",
773
- "justify": "space-between",
774
- "align": "center",
775
- "children": [
776
- {
777
- "type": "stack",
778
- "direction": "horizontal",
779
- "gap": "sm",
780
- "align": "center",
781
- "children": [
782
- {
783
- "type": "icon",
784
- "name": "briefcase",
785
- "size": "lg"
786
- },
787
- {
788
- "type": "typography",
789
- "content": "Providers",
790
- "variant": "h2"
791
- }
792
- ]
793
- },
794
- {
795
- "type": "stack",
796
- "direction": "horizontal",
797
- "gap": "sm",
798
- "children": [
799
- {
800
- "type": "button",
801
- "label": "Create Provider",
802
- "event": "CREATE",
803
- "variant": "primary",
804
- "icon": "plus"
805
- }
806
- ]
807
- }
808
- ]
809
- },
810
- {
811
- "type": "divider"
812
- },
813
- {
814
- "type": "data-grid",
815
- "entity": "Provider",
816
- "emptyIcon": "inbox",
817
- "emptyTitle": "No providers listed",
818
- "emptyDescription": "Add service providers to enable bookings.",
819
- "itemActions": [
820
- {
821
- "label": "View",
822
- "event": "VIEW",
823
- "variant": "ghost",
824
- "size": "sm"
825
- },
826
- {
827
- "label": "Edit",
828
- "event": "EDIT",
829
- "variant": "ghost",
830
- "size": "sm"
831
- },
832
- {
833
- "label": "Delete",
834
- "event": "DELETE",
835
- "variant": "danger",
836
- "size": "sm"
837
- }
838
- ],
839
- "columns": [
840
- {
841
- "name": "name",
842
- "variant": "h3",
843
- "icon": "briefcase"
844
- },
845
- {
846
- "name": "specialty",
847
- "variant": "badge"
848
- },
849
- {
850
- "name": "rating",
851
- "variant": "body",
852
- "format": "number"
853
- },
854
- {
855
- "name": "location",
856
- "variant": "body"
857
- },
858
- {
859
- "name": "phone",
860
- "variant": "caption"
861
- }
862
- ],
863
- "cols": 2,
864
- "gap": "md"
865
- }
866
- ]
867
- }
868
- ]
869
- }
613
+ "emit",
614
+ "PROVIDER_UPDATED"
870
615
  ]
871
616
  ]
872
617
  }
873
618
  ]
874
- },
875
- "emits": [
876
- {
877
- "event": "BOOK",
878
- "payload": [
879
- {
880
- "name": "id",
881
- "type": "string",
882
- "required": true
883
- }
884
- ],
885
- "scope": "external"
886
- }
887
- ]
619
+ }
888
620
  },
889
621
  {
890
- "name": "ProviderCreate",
622
+ "name": "ProviderView",
891
623
  "linkedEntity": "Provider",
892
624
  "category": "interaction",
893
625
  "emits": [
894
626
  {
895
- "event": "PROVIDER_CREATED"
627
+ "event": "SAVE"
896
628
  }
897
629
  ],
898
630
  "stateMachine": {
@@ -911,14 +643,21 @@
911
643
  "name": "Initialize"
912
644
  },
913
645
  {
914
- "key": "CREATE",
915
- "name": "Open"
916
- },
917
- {
918
- "key": "CLOSE",
919
- "name": "Close"
920
- },
921
- {
646
+ "key": "VIEW",
647
+ "name": "Open",
648
+ "payload": [
649
+ {
650
+ "name": "id",
651
+ "type": "string",
652
+ "required": true
653
+ }
654
+ ]
655
+ },
656
+ {
657
+ "key": "CLOSE",
658
+ "name": "Close"
659
+ },
660
+ {
922
661
  "key": "SAVE",
923
662
  "name": "Save",
924
663
  "payload": [
@@ -945,11 +684,14 @@
945
684
  {
946
685
  "from": "closed",
947
686
  "to": "open",
948
- "event": "CREATE",
687
+ "event": "VIEW",
949
688
  "effects": [
950
689
  [
951
690
  "fetch",
952
- "Provider"
691
+ "Provider",
692
+ {
693
+ "id": "@payload.id"
694
+ }
953
695
  ],
954
696
  [
955
697
  "render-ui",
@@ -963,16 +705,17 @@
963
705
  "type": "stack",
964
706
  "direction": "horizontal",
965
707
  "gap": "sm",
708
+ "align": "center",
966
709
  "children": [
967
710
  {
968
711
  "type": "icon",
969
- "name": "plus-circle",
712
+ "name": "eye",
970
713
  "size": "md"
971
714
  },
972
715
  {
973
716
  "type": "typography",
974
- "content": "Create Provider",
975
- "variant": "h3"
717
+ "variant": "h3",
718
+ "content": "@entity.name"
976
719
  }
977
720
  ]
978
721
  },
@@ -980,18 +723,129 @@
980
723
  "type": "divider"
981
724
  },
982
725
  {
983
- "type": "form-section",
984
- "entity": "Provider",
985
- "mode": "create",
986
- "submitEvent": "SAVE",
987
- "cancelEvent": "CLOSE",
988
- "fields": [
989
- "name",
990
- "specialty",
991
- "location",
992
- "phone",
993
- "rating",
994
- "available"
726
+ "type": "stack",
727
+ "direction": "horizontal",
728
+ "gap": "md",
729
+ "children": [
730
+ {
731
+ "type": "typography",
732
+ "variant": "caption",
733
+ "content": "Name"
734
+ },
735
+ {
736
+ "type": "typography",
737
+ "variant": "body",
738
+ "content": "@entity.name"
739
+ }
740
+ ]
741
+ },
742
+ {
743
+ "type": "stack",
744
+ "direction": "horizontal",
745
+ "gap": "md",
746
+ "children": [
747
+ {
748
+ "type": "typography",
749
+ "variant": "caption",
750
+ "content": "Specialty"
751
+ },
752
+ {
753
+ "type": "typography",
754
+ "variant": "body",
755
+ "content": "@entity.specialty"
756
+ }
757
+ ]
758
+ },
759
+ {
760
+ "type": "stack",
761
+ "direction": "horizontal",
762
+ "gap": "md",
763
+ "children": [
764
+ {
765
+ "type": "typography",
766
+ "variant": "caption",
767
+ "content": "Location"
768
+ },
769
+ {
770
+ "type": "typography",
771
+ "variant": "body",
772
+ "content": "@entity.location"
773
+ }
774
+ ]
775
+ },
776
+ {
777
+ "type": "stack",
778
+ "direction": "horizontal",
779
+ "gap": "md",
780
+ "children": [
781
+ {
782
+ "type": "typography",
783
+ "variant": "caption",
784
+ "content": "Phone"
785
+ },
786
+ {
787
+ "type": "typography",
788
+ "variant": "body",
789
+ "content": "@entity.phone"
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "type": "stack",
795
+ "direction": "horizontal",
796
+ "gap": "md",
797
+ "children": [
798
+ {
799
+ "type": "typography",
800
+ "variant": "caption",
801
+ "content": "Rating"
802
+ },
803
+ {
804
+ "type": "typography",
805
+ "variant": "body",
806
+ "content": "@entity.rating"
807
+ }
808
+ ]
809
+ },
810
+ {
811
+ "type": "stack",
812
+ "direction": "horizontal",
813
+ "gap": "md",
814
+ "children": [
815
+ {
816
+ "type": "typography",
817
+ "variant": "caption",
818
+ "content": "Available"
819
+ },
820
+ {
821
+ "type": "typography",
822
+ "variant": "body",
823
+ "content": "@entity.available"
824
+ }
825
+ ]
826
+ },
827
+ {
828
+ "type": "divider"
829
+ },
830
+ {
831
+ "type": "stack",
832
+ "direction": "horizontal",
833
+ "gap": "sm",
834
+ "justify": "end",
835
+ "children": [
836
+ {
837
+ "type": "button",
838
+ "label": "Edit",
839
+ "event": "EDIT",
840
+ "variant": "primary",
841
+ "icon": "edit"
842
+ },
843
+ {
844
+ "type": "button",
845
+ "label": "Close",
846
+ "event": "CLOSE",
847
+ "variant": "ghost"
848
+ }
995
849
  ]
996
850
  }
997
851
  ]
@@ -1021,24 +875,10 @@
1021
875
  "to": "closed",
1022
876
  "event": "SAVE",
1023
877
  "effects": [
1024
- [
1025
- "persist",
1026
- "create",
1027
- "Provider",
1028
- "@payload.data"
1029
- ],
1030
878
  [
1031
879
  "render-ui",
1032
880
  "modal",
1033
881
  null
1034
- ],
1035
- [
1036
- "emit",
1037
- "PROVIDER_CREATED"
1038
- ],
1039
- [
1040
- "notify",
1041
- "Provider created successfully"
1042
882
  ]
1043
883
  ]
1044
884
  }
@@ -1046,22 +886,25 @@
1046
886
  }
1047
887
  },
1048
888
  {
1049
- "name": "ProviderEdit",
889
+ "name": "ProviderDelete",
1050
890
  "linkedEntity": "Provider",
1051
891
  "category": "interaction",
1052
892
  "emits": [
1053
893
  {
1054
- "event": "PROVIDER_UPDATED"
894
+ "event": "CONFIRM_DELETE"
895
+ },
896
+ {
897
+ "event": "PROVIDER_DELETED"
1055
898
  }
1056
899
  ],
1057
900
  "stateMachine": {
1058
901
  "states": [
1059
902
  {
1060
- "name": "closed",
903
+ "name": "idle",
1061
904
  "isInitial": true
1062
905
  },
1063
906
  {
1064
- "name": "open"
907
+ "name": "confirming"
1065
908
  }
1066
909
  ],
1067
910
  "events": [
@@ -1070,8 +913,8 @@
1070
913
  "name": "Initialize"
1071
914
  },
1072
915
  {
1073
- "key": "EDIT",
1074
- "name": "Open",
916
+ "key": "DELETE",
917
+ "name": "Request Confirmation",
1075
918
  "payload": [
1076
919
  {
1077
920
  "name": "id",
@@ -1081,25 +924,22 @@
1081
924
  ]
1082
925
  },
1083
926
  {
1084
- "key": "CLOSE",
1085
- "name": "Close"
927
+ "key": "CONFIRM_DELETE",
928
+ "name": "Confirm"
1086
929
  },
1087
930
  {
1088
- "key": "SAVE",
1089
- "name": "Save",
1090
- "payload": [
1091
- {
1092
- "name": "data",
1093
- "type": "object",
1094
- "required": true
1095
- }
1096
- ]
931
+ "key": "CANCEL",
932
+ "name": "Cancel"
933
+ },
934
+ {
935
+ "key": "CLOSE",
936
+ "name": "Close"
1097
937
  }
1098
938
  ],
1099
939
  "transitions": [
1100
940
  {
1101
- "from": "closed",
1102
- "to": "closed",
941
+ "from": "idle",
942
+ "to": "idle",
1103
943
  "event": "INIT",
1104
944
  "effects": [
1105
945
  [
@@ -1109,10 +949,15 @@
1109
949
  ]
1110
950
  },
1111
951
  {
1112
- "from": "closed",
1113
- "to": "open",
1114
- "event": "EDIT",
952
+ "from": "idle",
953
+ "to": "confirming",
954
+ "event": "DELETE",
1115
955
  "effects": [
956
+ [
957
+ "set",
958
+ "@entity.pendingId",
959
+ "@payload.id"
960
+ ],
1116
961
  [
1117
962
  "fetch",
1118
963
  "Provider",
@@ -1132,15 +977,16 @@
1132
977
  "type": "stack",
1133
978
  "direction": "horizontal",
1134
979
  "gap": "sm",
980
+ "align": "center",
1135
981
  "children": [
1136
982
  {
1137
983
  "type": "icon",
1138
- "name": "edit",
984
+ "name": "alert-triangle",
1139
985
  "size": "md"
1140
986
  },
1141
987
  {
1142
988
  "type": "typography",
1143
- "content": "Edit Provider",
989
+ "content": "Delete Provider",
1144
990
  "variant": "h3"
1145
991
  }
1146
992
  ]
@@ -1149,20 +995,30 @@
1149
995
  "type": "divider"
1150
996
  },
1151
997
  {
1152
- "type": "form-section",
1153
- "entity": "Provider",
1154
- "mode": "edit",
1155
- "submitEvent": "SAVE",
1156
- "cancelEvent": "CLOSE",
1157
- "fields": [
1158
- "name",
1159
- "specialty",
1160
- "location",
1161
- "phone",
1162
- "rating",
1163
- "available"
1164
- ],
1165
- "entityId": "@entity.id"
998
+ "type": "alert",
999
+ "variant": "danger",
1000
+ "message": "This action cannot be undone."
1001
+ },
1002
+ {
1003
+ "type": "stack",
1004
+ "direction": "horizontal",
1005
+ "gap": "sm",
1006
+ "justify": "end",
1007
+ "children": [
1008
+ {
1009
+ "type": "button",
1010
+ "label": "Cancel",
1011
+ "event": "CANCEL",
1012
+ "variant": "ghost"
1013
+ },
1014
+ {
1015
+ "type": "button",
1016
+ "label": "Delete",
1017
+ "event": "CONFIRM_DELETE",
1018
+ "variant": "danger",
1019
+ "icon": "check"
1020
+ }
1021
+ ]
1166
1022
  }
1167
1023
  ]
1168
1024
  }
@@ -1170,273 +1026,50 @@
1170
1026
  ]
1171
1027
  },
1172
1028
  {
1173
- "from": "open",
1174
- "to": "closed",
1175
- "event": "CLOSE",
1176
- "effects": [
1177
- [
1178
- "render-ui",
1179
- "modal",
1180
- null
1181
- ],
1182
- [
1183
- "notify",
1184
- "Cancelled",
1185
- "info"
1186
- ]
1187
- ]
1188
- },
1189
- {
1190
- "from": "open",
1191
- "to": "closed",
1192
- "event": "SAVE",
1029
+ "from": "confirming",
1030
+ "to": "idle",
1031
+ "event": "CONFIRM_DELETE",
1193
1032
  "effects": [
1194
1033
  [
1195
1034
  "persist",
1196
- "update",
1035
+ "delete",
1197
1036
  "Provider",
1198
- "@payload.data"
1037
+ "@entity.pendingId"
1199
1038
  ],
1200
1039
  [
1201
1040
  "render-ui",
1202
1041
  "modal",
1203
1042
  null
1204
1043
  ],
1205
- [
1206
- "emit",
1207
- "PROVIDER_UPDATED"
1208
- ],
1209
- [
1210
- "notify",
1211
- "Provider updated successfully"
1212
- ]
1213
- ]
1214
- }
1215
- ]
1216
- }
1217
- },
1218
- {
1219
- "name": "ProviderView",
1220
- "linkedEntity": "Provider",
1221
- "category": "interaction",
1222
- "stateMachine": {
1223
- "states": [
1224
- {
1225
- "name": "closed",
1226
- "isInitial": true
1227
- },
1228
- {
1229
- "name": "open"
1230
- }
1231
- ],
1232
- "events": [
1233
- {
1234
- "key": "INIT",
1235
- "name": "Initialize"
1236
- },
1237
- {
1238
- "key": "VIEW",
1239
- "name": "Open",
1240
- "payload": [
1241
- {
1242
- "name": "id",
1243
- "type": "string",
1244
- "required": true
1245
- }
1246
- ]
1247
- },
1248
- {
1249
- "key": "CLOSE",
1250
- "name": "Close"
1251
- }
1252
- ],
1253
- "transitions": [
1254
- {
1255
- "from": "closed",
1256
- "to": "closed",
1257
- "event": "INIT",
1258
- "effects": [
1259
1044
  [
1260
1045
  "ref",
1261
1046
  "Provider"
1047
+ ],
1048
+ [
1049
+ "emit",
1050
+ "PROVIDER_DELETED"
1262
1051
  ]
1263
1052
  ]
1264
1053
  },
1265
1054
  {
1266
- "from": "closed",
1267
- "to": "open",
1268
- "event": "VIEW",
1055
+ "from": "confirming",
1056
+ "to": "idle",
1057
+ "event": "CANCEL",
1269
1058
  "effects": [
1270
- [
1271
- "fetch",
1272
- "Provider",
1273
- {
1274
- "id": "@payload.id"
1275
- }
1276
- ],
1277
1059
  [
1278
1060
  "render-ui",
1279
1061
  "modal",
1280
- {
1281
- "type": "stack",
1282
- "direction": "vertical",
1283
- "gap": "md",
1284
- "children": [
1285
- {
1286
- "type": "stack",
1287
- "direction": "horizontal",
1288
- "gap": "sm",
1289
- "align": "center",
1290
- "children": [
1291
- {
1292
- "type": "icon",
1293
- "name": "eye",
1294
- "size": "md"
1295
- },
1296
- {
1297
- "type": "typography",
1298
- "variant": "h3",
1299
- "content": "@entity.name"
1300
- }
1301
- ]
1302
- },
1303
- {
1304
- "type": "divider"
1305
- },
1306
- {
1307
- "type": "stack",
1308
- "direction": "horizontal",
1309
- "gap": "md",
1310
- "children": [
1311
- {
1312
- "type": "typography",
1313
- "variant": "caption",
1314
- "content": "Name"
1315
- },
1316
- {
1317
- "type": "typography",
1318
- "variant": "body",
1319
- "content": "@entity.name"
1320
- }
1321
- ]
1322
- },
1323
- {
1324
- "type": "stack",
1325
- "direction": "horizontal",
1326
- "gap": "md",
1327
- "children": [
1328
- {
1329
- "type": "typography",
1330
- "variant": "caption",
1331
- "content": "Specialty"
1332
- },
1333
- {
1334
- "type": "typography",
1335
- "variant": "body",
1336
- "content": "@entity.specialty"
1337
- }
1338
- ]
1339
- },
1340
- {
1341
- "type": "stack",
1342
- "direction": "horizontal",
1343
- "gap": "md",
1344
- "children": [
1345
- {
1346
- "type": "typography",
1347
- "variant": "caption",
1348
- "content": "Location"
1349
- },
1350
- {
1351
- "type": "typography",
1352
- "variant": "body",
1353
- "content": "@entity.location"
1354
- }
1355
- ]
1356
- },
1357
- {
1358
- "type": "stack",
1359
- "direction": "horizontal",
1360
- "gap": "md",
1361
- "children": [
1362
- {
1363
- "type": "typography",
1364
- "variant": "caption",
1365
- "content": "Phone"
1366
- },
1367
- {
1368
- "type": "typography",
1369
- "variant": "body",
1370
- "content": "@entity.phone"
1371
- }
1372
- ]
1373
- },
1374
- {
1375
- "type": "stack",
1376
- "direction": "horizontal",
1377
- "gap": "md",
1378
- "children": [
1379
- {
1380
- "type": "typography",
1381
- "variant": "caption",
1382
- "content": "Rating"
1383
- },
1384
- {
1385
- "type": "typography",
1386
- "variant": "body",
1387
- "content": "@entity.rating"
1388
- }
1389
- ]
1390
- },
1391
- {
1392
- "type": "stack",
1393
- "direction": "horizontal",
1394
- "gap": "md",
1395
- "children": [
1396
- {
1397
- "type": "typography",
1398
- "variant": "caption",
1399
- "content": "Available"
1400
- },
1401
- {
1402
- "type": "typography",
1403
- "variant": "body",
1404
- "content": "@entity.available"
1405
- }
1406
- ]
1407
- },
1408
- {
1409
- "type": "divider"
1410
- },
1411
- {
1412
- "type": "stack",
1413
- "direction": "horizontal",
1414
- "gap": "sm",
1415
- "justify": "end",
1416
- "children": [
1417
- {
1418
- "type": "button",
1419
- "label": "Edit",
1420
- "event": "EDIT",
1421
- "variant": "primary",
1422
- "icon": "edit"
1423
- },
1424
- {
1425
- "type": "button",
1426
- "label": "Close",
1427
- "event": "CLOSE",
1428
- "variant": "ghost"
1429
- }
1430
- ]
1431
- }
1432
- ]
1433
- }
1062
+ null
1063
+ ],
1064
+ [
1065
+ "ref",
1066
+ "Provider"
1434
1067
  ]
1435
1068
  ]
1436
1069
  },
1437
1070
  {
1438
- "from": "open",
1439
- "to": "closed",
1071
+ "from": "confirming",
1072
+ "to": "idle",
1440
1073
  "event": "CLOSE",
1441
1074
  "effects": [
1442
1075
  [
@@ -1445,9 +1078,8 @@
1445
1078
  null
1446
1079
  ],
1447
1080
  [
1448
- "notify",
1449
- "Cancelled",
1450
- "info"
1081
+ "ref",
1082
+ "Provider"
1451
1083
  ]
1452
1084
  ]
1453
1085
  }
@@ -1472,6 +1104,9 @@
1472
1104
  },
1473
1105
  {
1474
1106
  "ref": "ProviderView"
1107
+ },
1108
+ {
1109
+ "ref": "ProviderDelete"
1475
1110
  }
1476
1111
  ]
1477
1112
  }
@@ -1530,651 +1165,60 @@
1530
1165
  "name": "step1",
1531
1166
  "isInitial": true
1532
1167
  },
1533
- {
1534
- "name": "step2"
1535
- },
1536
- {
1537
- "name": "step3"
1538
- },
1539
- {
1540
- "name": "review"
1541
- },
1542
- {
1543
- "name": "complete"
1544
- }
1545
- ],
1546
- "events": [
1547
- {
1548
- "key": "INIT",
1549
- "name": "Initialize"
1550
- },
1551
- {
1552
- "key": "NEXT",
1553
- "name": "Next Step",
1554
- "payload": [
1555
- {
1556
- "name": "data",
1557
- "type": "object",
1558
- "required": true
1559
- }
1560
- ]
1561
- },
1562
- {
1563
- "key": "PREV",
1564
- "name": "Previous Step"
1565
- },
1566
- {
1567
- "key": "COMPLETE",
1568
- "name": "Complete Wizard",
1569
- "payload": [
1570
- {
1571
- "name": "data",
1572
- "type": "object",
1573
- "required": true
1574
- }
1575
- ]
1576
- },
1577
- {
1578
- "key": "RESTART",
1579
- "name": "Restart Wizard"
1580
- }
1581
- ],
1582
- "transitions": [
1583
- {
1584
- "from": "step1",
1585
- "to": "step1",
1586
- "event": "INIT",
1587
- "effects": [
1588
- [
1589
- "fetch",
1590
- "Booking"
1591
- ],
1592
- [
1593
- "render-ui",
1594
- "main",
1595
- {
1596
- "type": "dashboard-layout",
1597
- "appName": "BookingSystemApp",
1598
- "navItems": [
1599
- {
1600
- "label": "Providers",
1601
- "href": "/providers",
1602
- "icon": "user-check"
1603
- },
1604
- {
1605
- "label": "Book",
1606
- "href": "/book",
1607
- "icon": "calendar-plus"
1608
- },
1609
- {
1610
- "label": "Appointments",
1611
- "href": "/appointments",
1612
- "icon": "calendar"
1613
- },
1614
- {
1615
- "label": "Schedule",
1616
- "href": "/schedule",
1617
- "icon": "clock"
1618
- }
1619
- ],
1620
- "children": [
1621
- {
1622
- "type": "container",
1623
- "maxWidth": "lg",
1624
- "padding": "lg",
1625
- "children": [
1626
- {
1627
- "type": "stack",
1628
- "direction": "vertical",
1629
- "gap": "lg",
1630
- "children": [
1631
- {
1632
- "type": "stack",
1633
- "direction": "horizontal",
1634
- "gap": "sm",
1635
- "align": "center",
1636
- "children": [
1637
- {
1638
- "type": "icon",
1639
- "name": "calendar",
1640
- "size": "lg"
1641
- },
1642
- {
1643
- "type": "typography",
1644
- "content": "Book Appointment",
1645
- "variant": "h2"
1646
- }
1647
- ]
1648
- },
1649
- {
1650
- "type": "progress-dots",
1651
- "count": 3,
1652
- "currentIndex": 0
1653
- },
1654
- {
1655
- "type": "wizard-progress",
1656
- "steps": [
1657
- "Provider Selection",
1658
- "Your Details",
1659
- "Date and Time"
1660
- ],
1661
- "currentStep": 0
1662
- },
1663
- {
1664
- "type": "divider"
1665
- },
1666
- {
1667
- "type": "typography",
1668
- "content": "Provider Selection",
1669
- "variant": "h3"
1670
- },
1671
- {
1672
- "type": "form-section",
1673
- "entity": "Booking",
1674
- "mode": "create",
1675
- "submitEvent": "NEXT",
1676
- "cancelEvent": "INIT",
1677
- "fields": [
1678
- "providerName"
1679
- ]
1680
- },
1681
- {
1682
- "type": "stack",
1683
- "direction": "horizontal",
1684
- "gap": "sm",
1685
- "justify": "end",
1686
- "children": [
1687
- {
1688
- "type": "button",
1689
- "label": "Next",
1690
- "event": "NEXT",
1691
- "variant": "primary",
1692
- "icon": "arrow-right"
1693
- }
1694
- ]
1695
- }
1696
- ]
1697
- }
1698
- ]
1699
- }
1700
- ]
1701
- }
1702
- ]
1703
- ]
1704
- },
1705
- {
1706
- "from": "step1",
1707
- "to": "step2",
1708
- "event": "NEXT",
1709
- "effects": [
1710
- [
1711
- "fetch",
1712
- "Booking"
1713
- ],
1714
- [
1715
- "render-ui",
1716
- "main",
1717
- {
1718
- "type": "dashboard-layout",
1719
- "appName": "BookingSystemApp",
1720
- "navItems": [
1721
- {
1722
- "label": "Providers",
1723
- "href": "/providers",
1724
- "icon": "user-check"
1725
- },
1726
- {
1727
- "label": "Book",
1728
- "href": "/book",
1729
- "icon": "calendar-plus"
1730
- },
1731
- {
1732
- "label": "Appointments",
1733
- "href": "/appointments",
1734
- "icon": "calendar"
1735
- },
1736
- {
1737
- "label": "Schedule",
1738
- "href": "/schedule",
1739
- "icon": "clock"
1740
- }
1741
- ],
1742
- "children": [
1743
- {
1744
- "type": "container",
1745
- "maxWidth": "lg",
1746
- "padding": "lg",
1747
- "children": [
1748
- {
1749
- "type": "stack",
1750
- "direction": "vertical",
1751
- "gap": "lg",
1752
- "children": [
1753
- {
1754
- "type": "stack",
1755
- "direction": "horizontal",
1756
- "gap": "sm",
1757
- "align": "center",
1758
- "children": [
1759
- {
1760
- "type": "icon",
1761
- "name": "calendar",
1762
- "size": "lg"
1763
- },
1764
- {
1765
- "type": "typography",
1766
- "content": "Book Appointment",
1767
- "variant": "h2"
1768
- }
1769
- ]
1770
- },
1771
- {
1772
- "type": "progress-dots",
1773
- "count": 3,
1774
- "currentIndex": 1
1775
- },
1776
- {
1777
- "type": "wizard-progress",
1778
- "steps": [
1779
- "Provider Selection",
1780
- "Your Details",
1781
- "Date and Time"
1782
- ],
1783
- "currentStep": 1
1784
- },
1785
- {
1786
- "type": "divider"
1787
- },
1788
- {
1789
- "type": "typography",
1790
- "content": "Your Details",
1791
- "variant": "h3"
1792
- },
1793
- {
1794
- "type": "repeatable-form-section",
1795
- "entity": "Booking",
1796
- "mode": "create",
1797
- "submitEvent": "NEXT",
1798
- "cancelEvent": "PREV",
1799
- "fields": [
1800
- "customerName",
1801
- "customerEmail"
1802
- ]
1803
- },
1804
- {
1805
- "type": "stack",
1806
- "direction": "horizontal",
1807
- "gap": "sm",
1808
- "justify": "end",
1809
- "children": [
1810
- {
1811
- "type": "button",
1812
- "label": "Back",
1813
- "event": "PREV",
1814
- "variant": "ghost",
1815
- "icon": "arrow-left"
1816
- },
1817
- {
1818
- "type": "button",
1819
- "label": "Next",
1820
- "event": "NEXT",
1821
- "variant": "primary",
1822
- "icon": "arrow-right"
1823
- }
1824
- ]
1825
- }
1826
- ]
1827
- }
1828
- ]
1829
- }
1830
- ]
1831
- }
1832
- ]
1833
- ]
1834
- },
1835
- {
1836
- "from": "step2",
1837
- "to": "step3",
1838
- "event": "NEXT",
1839
- "effects": [
1840
- [
1841
- "fetch",
1842
- "Booking"
1843
- ],
1844
- [
1845
- "render-ui",
1846
- "main",
1847
- {
1848
- "type": "dashboard-layout",
1849
- "appName": "BookingSystemApp",
1850
- "navItems": [
1851
- {
1852
- "label": "Providers",
1853
- "href": "/providers",
1854
- "icon": "user-check"
1855
- },
1856
- {
1857
- "label": "Book",
1858
- "href": "/book",
1859
- "icon": "calendar-plus"
1860
- },
1861
- {
1862
- "label": "Appointments",
1863
- "href": "/appointments",
1864
- "icon": "calendar"
1865
- },
1866
- {
1867
- "label": "Schedule",
1868
- "href": "/schedule",
1869
- "icon": "clock"
1870
- }
1871
- ],
1872
- "children": [
1873
- {
1874
- "type": "container",
1875
- "maxWidth": "lg",
1876
- "padding": "lg",
1877
- "children": [
1878
- {
1879
- "type": "stack",
1880
- "direction": "vertical",
1881
- "gap": "lg",
1882
- "children": [
1883
- {
1884
- "type": "stack",
1885
- "direction": "horizontal",
1886
- "gap": "sm",
1887
- "align": "center",
1888
- "children": [
1889
- {
1890
- "type": "icon",
1891
- "name": "calendar",
1892
- "size": "lg"
1893
- },
1894
- {
1895
- "type": "typography",
1896
- "content": "Book Appointment",
1897
- "variant": "h2"
1898
- }
1899
- ]
1900
- },
1901
- {
1902
- "type": "progress-dots",
1903
- "count": 3,
1904
- "currentIndex": 2
1905
- },
1906
- {
1907
- "type": "wizard-progress",
1908
- "steps": [
1909
- "Provider Selection",
1910
- "Your Details",
1911
- "Date and Time"
1912
- ],
1913
- "currentStep": 2
1914
- },
1915
- {
1916
- "type": "divider"
1917
- },
1918
- {
1919
- "type": "typography",
1920
- "content": "Date and Time",
1921
- "variant": "h3"
1922
- },
1923
- {
1924
- "type": "repeatable-form-section",
1925
- "entity": "Booking",
1926
- "mode": "create",
1927
- "submitEvent": "NEXT",
1928
- "cancelEvent": "PREV",
1929
- "fields": [
1930
- "date",
1931
- "time",
1932
- "notes"
1933
- ]
1934
- },
1935
- {
1936
- "type": "stack",
1937
- "direction": "horizontal",
1938
- "gap": "sm",
1939
- "justify": "end",
1940
- "children": [
1941
- {
1942
- "type": "button",
1943
- "label": "Back",
1944
- "event": "PREV",
1945
- "variant": "ghost",
1946
- "icon": "arrow-left"
1947
- },
1948
- {
1949
- "type": "button",
1950
- "label": "Next",
1951
- "event": "NEXT",
1952
- "variant": "primary",
1953
- "icon": "arrow-right"
1954
- }
1955
- ]
1956
- }
1957
- ]
1958
- }
1959
- ]
1960
- }
1961
- ]
1962
- }
1963
- ]
1964
- ]
1965
- },
1966
- {
1967
- "from": "step3",
1968
- "to": "review",
1969
- "event": "NEXT",
1970
- "effects": [
1971
- [
1972
- "fetch",
1973
- "Booking"
1974
- ],
1975
- [
1976
- "render-ui",
1977
- "main",
1978
- {
1979
- "type": "dashboard-layout",
1980
- "appName": "BookingSystemApp",
1981
- "navItems": [
1982
- {
1983
- "label": "Providers",
1984
- "href": "/providers",
1985
- "icon": "user-check"
1986
- },
1987
- {
1988
- "label": "Book",
1989
- "href": "/book",
1990
- "icon": "calendar-plus"
1991
- },
1992
- {
1993
- "label": "Appointments",
1994
- "href": "/appointments",
1995
- "icon": "calendar"
1996
- },
1997
- {
1998
- "label": "Schedule",
1999
- "href": "/schedule",
2000
- "icon": "clock"
2001
- }
2002
- ],
2003
- "children": [
2004
- {
2005
- "type": "stack",
2006
- "direction": "vertical",
2007
- "gap": "lg",
2008
- "children": [
2009
- {
2010
- "type": "stack",
2011
- "direction": "horizontal",
2012
- "gap": "sm",
2013
- "align": "center",
2014
- "children": [
2015
- {
2016
- "type": "icon",
2017
- "name": "calendar",
2018
- "size": "lg"
2019
- },
2020
- {
2021
- "type": "typography",
2022
- "content": "Book Appointment",
2023
- "variant": "h2"
2024
- }
2025
- ]
2026
- },
2027
- {
2028
- "type": "badge",
2029
- "label": "Review"
2030
- },
2031
- {
2032
- "type": "wizard-progress",
2033
- "steps": [
2034
- "Provider Selection",
2035
- "Your Details",
2036
- "Date and Time"
2037
- ],
2038
- "currentStep": 3
2039
- },
2040
- {
2041
- "type": "divider"
2042
- },
2043
- {
2044
- "type": "stack",
2045
- "direction": "vertical",
2046
- "gap": "sm",
2047
- "entity": "Booking",
2048
- "children": [
2049
- {
2050
- "type": "stack",
2051
- "direction": "horizontal",
2052
- "gap": "md",
2053
- "justify": "space-between",
2054
- "children": [
2055
- {
2056
- "type": "typography",
2057
- "variant": "caption",
2058
- "content": "Provider Name"
2059
- },
2060
- {
2061
- "type": "typography",
2062
- "variant": "body",
2063
- "content": "@entity.providerName"
2064
- }
2065
- ]
2066
- },
2067
- {
2068
- "type": "stack",
2069
- "direction": "horizontal",
2070
- "gap": "md",
2071
- "justify": "space-between",
2072
- "children": [
2073
- {
2074
- "type": "typography",
2075
- "variant": "caption",
2076
- "content": "Customer Name"
2077
- },
2078
- {
2079
- "type": "typography",
2080
- "variant": "body",
2081
- "content": "@entity.customerName"
2082
- }
2083
- ]
2084
- },
2085
- {
2086
- "type": "stack",
2087
- "direction": "horizontal",
2088
- "gap": "md",
2089
- "justify": "space-between",
2090
- "children": [
2091
- {
2092
- "type": "typography",
2093
- "variant": "caption",
2094
- "content": "Customer Email"
2095
- },
2096
- {
2097
- "type": "typography",
2098
- "variant": "body",
2099
- "content": "@entity.customerEmail"
2100
- }
2101
- ]
2102
- },
2103
- {
2104
- "type": "stack",
2105
- "direction": "horizontal",
2106
- "gap": "md",
2107
- "justify": "space-between",
2108
- "children": [
2109
- {
2110
- "type": "typography",
2111
- "variant": "caption",
2112
- "content": "Date"
2113
- },
2114
- {
2115
- "type": "typography",
2116
- "variant": "body",
2117
- "content": "@entity.date"
2118
- }
2119
- ]
2120
- },
2121
- {
2122
- "type": "stack",
2123
- "direction": "horizontal",
2124
- "gap": "md",
2125
- "justify": "space-between",
2126
- "children": [
2127
- {
2128
- "type": "typography",
2129
- "variant": "caption",
2130
- "content": "Time"
2131
- },
2132
- {
2133
- "type": "typography",
2134
- "variant": "body",
2135
- "content": "@entity.time"
2136
- }
2137
- ]
2138
- },
2139
- {
2140
- "type": "stack",
2141
- "direction": "horizontal",
2142
- "gap": "md",
2143
- "justify": "space-between",
2144
- "children": [
2145
- {
2146
- "type": "typography",
2147
- "variant": "caption",
2148
- "content": "Notes"
2149
- },
2150
- {
2151
- "type": "typography",
2152
- "variant": "body",
2153
- "content": "@entity.notes"
2154
- }
2155
- ]
2156
- }
2157
- ]
2158
- },
2159
- {
2160
- "type": "wizard-navigation",
2161
- "currentStep": 3,
2162
- "totalSteps": 4,
2163
- "showBack": true,
2164
- "showComplete": true,
2165
- "showNext": false
2166
- }
2167
- ]
2168
- }
2169
- ]
2170
- }
2171
- ]
1168
+ {
1169
+ "name": "step2"
1170
+ },
1171
+ {
1172
+ "name": "step3"
1173
+ },
1174
+ {
1175
+ "name": "review"
1176
+ },
1177
+ {
1178
+ "name": "complete"
1179
+ }
1180
+ ],
1181
+ "events": [
1182
+ {
1183
+ "key": "INIT",
1184
+ "name": "Initialize"
1185
+ },
1186
+ {
1187
+ "key": "NEXT",
1188
+ "name": "Next Step",
1189
+ "payload": [
1190
+ {
1191
+ "name": "data",
1192
+ "type": "object",
1193
+ "required": true
1194
+ }
2172
1195
  ]
2173
1196
  },
2174
1197
  {
2175
- "from": "step2",
1198
+ "key": "PREV",
1199
+ "name": "Previous Step"
1200
+ },
1201
+ {
1202
+ "key": "COMPLETE",
1203
+ "name": "Complete Wizard",
1204
+ "payload": [
1205
+ {
1206
+ "name": "data",
1207
+ "type": "object",
1208
+ "required": true
1209
+ }
1210
+ ]
1211
+ },
1212
+ {
1213
+ "key": "RESTART",
1214
+ "name": "Restart Wizard"
1215
+ }
1216
+ ],
1217
+ "transitions": [
1218
+ {
1219
+ "from": "step1",
2176
1220
  "to": "step1",
2177
- "event": "PREV",
1221
+ "event": "INIT",
2178
1222
  "effects": [
2179
1223
  [
2180
1224
  "fetch",
@@ -2294,9 +1338,9 @@
2294
1338
  ]
2295
1339
  },
2296
1340
  {
2297
- "from": "step3",
1341
+ "from": "step1",
2298
1342
  "to": "step2",
2299
- "event": "PREV",
1343
+ "event": "NEXT",
2300
1344
  "effects": [
2301
1345
  [
2302
1346
  "fetch",
@@ -2424,9 +1468,9 @@
2424
1468
  ]
2425
1469
  },
2426
1470
  {
2427
- "from": "review",
1471
+ "from": "step2",
2428
1472
  "to": "step3",
2429
- "event": "PREV",
1473
+ "event": "NEXT",
2430
1474
  "effects": [
2431
1475
  [
2432
1476
  "fetch",
@@ -2555,20 +1599,13 @@
2555
1599
  ]
2556
1600
  },
2557
1601
  {
2558
- "from": "review",
2559
- "to": "complete",
2560
- "event": "COMPLETE",
1602
+ "from": "step3",
1603
+ "to": "review",
1604
+ "event": "NEXT",
2561
1605
  "effects": [
2562
1606
  [
2563
- "persist",
2564
- "create",
2565
- "Booking",
2566
- "@payload.data"
2567
- ],
2568
- [
2569
- "notify",
2570
- "success",
2571
- "Booking created successfully"
1607
+ "fetch",
1608
+ "Booking"
2572
1609
  ],
2573
1610
  [
2574
1611
  "render-ui",
@@ -2603,151 +1640,164 @@
2603
1640
  "type": "stack",
2604
1641
  "direction": "vertical",
2605
1642
  "gap": "lg",
2606
- "align": "center",
2607
1643
  "children": [
2608
1644
  {
2609
- "type": "icon",
2610
- "name": "check-circle",
2611
- "size": "lg"
1645
+ "type": "stack",
1646
+ "direction": "horizontal",
1647
+ "gap": "sm",
1648
+ "align": "center",
1649
+ "children": [
1650
+ {
1651
+ "type": "icon",
1652
+ "name": "calendar",
1653
+ "size": "lg"
1654
+ },
1655
+ {
1656
+ "type": "typography",
1657
+ "content": "Book Appointment",
1658
+ "variant": "h2"
1659
+ }
1660
+ ]
2612
1661
  },
2613
1662
  {
2614
- "type": "typography",
2615
- "content": "Booking Confirmed",
2616
- "variant": "h2"
1663
+ "type": "badge",
1664
+ "label": "Review"
2617
1665
  },
2618
1666
  {
2619
- "type": "typography",
2620
- "content": "Your appointment has been booked successfully.",
2621
- "variant": "body"
1667
+ "type": "wizard-progress",
1668
+ "steps": [
1669
+ "Provider Selection",
1670
+ "Your Details",
1671
+ "Date and Time"
1672
+ ],
1673
+ "currentStep": 3
2622
1674
  },
2623
1675
  {
2624
- "type": "button",
2625
- "label": "Start New",
2626
- "event": "RESTART",
2627
- "variant": "primary",
2628
- "icon": "refresh-cw"
2629
- }
2630
- ]
2631
- }
2632
- ]
2633
- }
2634
- ]
2635
- ]
2636
- },
2637
- {
2638
- "from": "complete",
2639
- "to": "step1",
2640
- "event": "RESTART",
2641
- "effects": [
2642
- [
2643
- "fetch",
2644
- "Booking"
2645
- ],
2646
- [
2647
- "render-ui",
2648
- "main",
2649
- {
2650
- "type": "dashboard-layout",
2651
- "appName": "BookingSystemApp",
2652
- "navItems": [
2653
- {
2654
- "label": "Providers",
2655
- "href": "/providers",
2656
- "icon": "user-check"
2657
- },
2658
- {
2659
- "label": "Book",
2660
- "href": "/book",
2661
- "icon": "calendar-plus"
2662
- },
2663
- {
2664
- "label": "Appointments",
2665
- "href": "/appointments",
2666
- "icon": "calendar"
2667
- },
2668
- {
2669
- "label": "Schedule",
2670
- "href": "/schedule",
2671
- "icon": "clock"
2672
- }
2673
- ],
2674
- "children": [
2675
- {
2676
- "type": "container",
2677
- "maxWidth": "lg",
2678
- "padding": "lg",
2679
- "children": [
1676
+ "type": "divider"
1677
+ },
2680
1678
  {
2681
1679
  "type": "stack",
2682
1680
  "direction": "vertical",
2683
- "gap": "lg",
1681
+ "gap": "sm",
1682
+ "entity": "Booking",
2684
1683
  "children": [
2685
1684
  {
2686
1685
  "type": "stack",
2687
1686
  "direction": "horizontal",
2688
- "gap": "sm",
2689
- "align": "center",
1687
+ "gap": "md",
1688
+ "justify": "space-between",
2690
1689
  "children": [
2691
1690
  {
2692
- "type": "icon",
2693
- "name": "calendar",
2694
- "size": "lg"
1691
+ "type": "typography",
1692
+ "variant": "caption",
1693
+ "content": "Provider Name"
2695
1694
  },
2696
1695
  {
2697
1696
  "type": "typography",
2698
- "content": "Book Appointment",
2699
- "variant": "h2"
1697
+ "variant": "body",
1698
+ "content": "@entity.providerName"
2700
1699
  }
2701
1700
  ]
2702
1701
  },
2703
1702
  {
2704
- "type": "progress-dots",
2705
- "count": 3,
2706
- "currentIndex": 0
2707
- },
2708
- {
2709
- "type": "wizard-progress",
2710
- "steps": [
2711
- "Provider Selection",
2712
- "Your Details",
2713
- "Date and Time"
2714
- ],
2715
- "currentStep": 0
2716
- },
2717
- {
2718
- "type": "divider"
1703
+ "type": "stack",
1704
+ "direction": "horizontal",
1705
+ "gap": "md",
1706
+ "justify": "space-between",
1707
+ "children": [
1708
+ {
1709
+ "type": "typography",
1710
+ "variant": "caption",
1711
+ "content": "Customer Name"
1712
+ },
1713
+ {
1714
+ "type": "typography",
1715
+ "variant": "body",
1716
+ "content": "@entity.customerName"
1717
+ }
1718
+ ]
2719
1719
  },
2720
1720
  {
2721
- "type": "typography",
2722
- "content": "Provider Selection",
2723
- "variant": "h3"
1721
+ "type": "stack",
1722
+ "direction": "horizontal",
1723
+ "gap": "md",
1724
+ "justify": "space-between",
1725
+ "children": [
1726
+ {
1727
+ "type": "typography",
1728
+ "variant": "caption",
1729
+ "content": "Customer Email"
1730
+ },
1731
+ {
1732
+ "type": "typography",
1733
+ "variant": "body",
1734
+ "content": "@entity.customerEmail"
1735
+ }
1736
+ ]
2724
1737
  },
2725
1738
  {
2726
- "type": "form-section",
2727
- "entity": "Booking",
2728
- "mode": "create",
2729
- "submitEvent": "NEXT",
2730
- "cancelEvent": "INIT",
2731
- "fields": [
2732
- "providerName"
1739
+ "type": "stack",
1740
+ "direction": "horizontal",
1741
+ "gap": "md",
1742
+ "justify": "space-between",
1743
+ "children": [
1744
+ {
1745
+ "type": "typography",
1746
+ "variant": "caption",
1747
+ "content": "Date"
1748
+ },
1749
+ {
1750
+ "type": "typography",
1751
+ "variant": "body",
1752
+ "content": "@entity.date"
1753
+ }
2733
1754
  ]
2734
1755
  },
2735
1756
  {
2736
1757
  "type": "stack",
2737
1758
  "direction": "horizontal",
2738
- "gap": "sm",
2739
- "justify": "end",
1759
+ "gap": "md",
1760
+ "justify": "space-between",
2740
1761
  "children": [
2741
1762
  {
2742
- "type": "button",
2743
- "label": "Next",
2744
- "event": "NEXT",
2745
- "variant": "primary",
2746
- "icon": "arrow-right"
1763
+ "type": "typography",
1764
+ "variant": "caption",
1765
+ "content": "Time"
1766
+ },
1767
+ {
1768
+ "type": "typography",
1769
+ "variant": "body",
1770
+ "content": "@entity.time"
1771
+ }
1772
+ ]
1773
+ },
1774
+ {
1775
+ "type": "stack",
1776
+ "direction": "horizontal",
1777
+ "gap": "md",
1778
+ "justify": "space-between",
1779
+ "children": [
1780
+ {
1781
+ "type": "typography",
1782
+ "variant": "caption",
1783
+ "content": "Notes"
1784
+ },
1785
+ {
1786
+ "type": "typography",
1787
+ "variant": "body",
1788
+ "content": "@entity.notes"
2747
1789
  }
2748
1790
  ]
2749
1791
  }
2750
1792
  ]
1793
+ },
1794
+ {
1795
+ "type": "wizard-navigation",
1796
+ "currentStep": 3,
1797
+ "totalSteps": 4,
1798
+ "showBack": true,
1799
+ "showComplete": true,
1800
+ "showNext": false
2751
1801
  }
2752
1802
  ]
2753
1803
  }
@@ -2757,9 +1807,9 @@
2757
1807
  ]
2758
1808
  },
2759
1809
  {
2760
- "from": "complete",
1810
+ "from": "step2",
2761
1811
  "to": "step1",
2762
- "event": "INIT",
1812
+ "event": "PREV",
2763
1813
  "effects": [
2764
1814
  [
2765
1815
  "fetch",
@@ -2854,243 +1904,38 @@
2854
1904
  "providerName"
2855
1905
  ]
2856
1906
  },
2857
- {
2858
- "type": "stack",
2859
- "direction": "horizontal",
2860
- "gap": "sm",
2861
- "justify": "end",
2862
- "children": [
2863
- {
2864
- "type": "button",
2865
- "label": "Next",
2866
- "event": "NEXT",
2867
- "variant": "primary",
2868
- "icon": "arrow-right"
2869
- }
2870
- ]
2871
- }
2872
- ]
2873
- }
2874
- ]
2875
- }
2876
- ]
2877
- }
2878
- ]
2879
- ]
2880
- }
2881
- ]
2882
- },
2883
- "listens": [
2884
- {
2885
- "event": "BOOK",
2886
- "triggers": "INIT",
2887
- "scope": "external"
2888
- }
2889
- ],
2890
- "emits": [
2891
- {
2892
- "event": "CONFIRM",
2893
- "payload": [
2894
- {
2895
- "name": "id",
2896
- "type": "string",
2897
- "required": true
2898
- }
2899
- ],
2900
- "scope": "external"
2901
- }
2902
- ]
2903
- }
2904
- ],
2905
- "pages": [
2906
- {
2907
- "name": "BookPage",
2908
- "path": "/book",
2909
- "traits": [
2910
- {
2911
- "ref": "BookingWizard"
2912
- }
2913
- ]
2914
- }
2915
- ]
2916
- },
2917
- {
2918
- "name": "AppointmentOrbital",
2919
- "entity": {
2920
- "name": "Appointment",
2921
- "persistence": "persistent",
2922
- "collection": "appointments",
2923
- "fields": [
2924
- {
2925
- "name": "id",
2926
- "type": "string",
2927
- "required": true
2928
- },
2929
- {
2930
- "name": "providerName",
2931
- "type": "string",
2932
- "required": true
2933
- },
2934
- {
2935
- "name": "customerName",
2936
- "type": "string",
2937
- "required": true
2938
- },
2939
- {
2940
- "name": "date",
2941
- "type": "date",
2942
- "required": true
2943
- },
2944
- {
2945
- "name": "time",
2946
- "type": "string",
2947
- "required": true
2948
- },
2949
- {
2950
- "name": "status",
2951
- "type": "string",
2952
- "default": "confirmed",
2953
- "values": [
2954
- "confirmed",
2955
- "pending",
2956
- "cancelled",
2957
- "completed"
2958
- ]
2959
- },
2960
- {
2961
- "name": "notes",
2962
- "type": "string"
2963
- }
2964
- ]
2965
- },
2966
- "traits": [
2967
- {
2968
- "name": "AppointmentBrowse",
2969
- "linkedEntity": "Appointment",
2970
- "category": "interaction",
2971
- "listens": [
2972
- {
2973
- "event": "APPOINTMENT_CREATED",
2974
- "triggers": "APPOINTMENT_CREATED"
2975
- },
2976
- {
2977
- "event": "APPOINTMENT_UPDATED",
2978
- "triggers": "APPOINTMENT_UPDATED"
2979
- },
2980
- {
2981
- "event": "CONFIRM",
2982
- "triggers": "INIT",
2983
- "scope": "external"
2984
- }
2985
- ],
2986
- "stateMachine": {
2987
- "states": [
2988
- {
2989
- "name": "browsing",
2990
- "isInitial": true
2991
- },
2992
- {
2993
- "name": "deleting"
2994
- }
2995
- ],
2996
- "events": [
2997
- {
2998
- "key": "INIT",
2999
- "name": "Initialize"
3000
- },
3001
- {
3002
- "key": "CREATE",
3003
- "name": "CREATE"
3004
- },
3005
- {
3006
- "key": "VIEW",
3007
- "name": "VIEW",
3008
- "payload": [
3009
- {
3010
- "name": "id",
3011
- "type": "string",
3012
- "required": true
3013
- },
3014
- {
3015
- "name": "row",
3016
- "type": "object"
3017
- }
3018
- ]
3019
- },
3020
- {
3021
- "key": "EDIT",
3022
- "name": "EDIT",
3023
- "payload": [
3024
- {
3025
- "name": "id",
3026
- "type": "string",
3027
- "required": true
3028
- },
3029
- {
3030
- "name": "row",
3031
- "type": "object"
3032
- }
3033
- ]
3034
- },
3035
- {
3036
- "key": "DELETE",
3037
- "name": "DELETE",
3038
- "payload": [
3039
- {
3040
- "name": "id",
3041
- "type": "string",
3042
- "required": true
3043
- },
3044
- {
3045
- "name": "row",
3046
- "type": "object"
3047
- }
3048
- ]
3049
- },
3050
- {
3051
- "key": "APPOINTMENT_CREATED",
3052
- "name": "APPOINTMENT_CREATED",
3053
- "payload": [
3054
- {
3055
- "name": "data",
3056
- "type": "object",
3057
- "required": true
3058
- }
3059
- ]
3060
- },
3061
- {
3062
- "key": "APPOINTMENT_UPDATED",
3063
- "name": "APPOINTMENT_UPDATED",
3064
- "payload": [
3065
- {
3066
- "name": "data",
3067
- "type": "object",
3068
- "required": true
3069
- }
1907
+ {
1908
+ "type": "stack",
1909
+ "direction": "horizontal",
1910
+ "gap": "sm",
1911
+ "justify": "end",
1912
+ "children": [
1913
+ {
1914
+ "type": "button",
1915
+ "label": "Next",
1916
+ "event": "NEXT",
1917
+ "variant": "primary",
1918
+ "icon": "arrow-right"
1919
+ }
1920
+ ]
1921
+ }
1922
+ ]
1923
+ }
1924
+ ]
1925
+ }
1926
+ ]
1927
+ }
1928
+ ]
3070
1929
  ]
3071
1930
  },
3072
1931
  {
3073
- "key": "CONFIRM_DELETE",
3074
- "name": "Confirm Delete"
3075
- },
3076
- {
3077
- "key": "CANCEL",
3078
- "name": "Cancel"
3079
- },
3080
- {
3081
- "key": "CLOSE",
3082
- "name": "Close"
3083
- }
3084
- ],
3085
- "transitions": [
3086
- {
3087
- "from": "browsing",
3088
- "to": "browsing",
3089
- "event": "INIT",
1932
+ "from": "step3",
1933
+ "to": "step2",
1934
+ "event": "PREV",
3090
1935
  "effects": [
3091
1936
  [
3092
- "ref",
3093
- "Appointment"
1937
+ "fetch",
1938
+ "Booking"
3094
1939
  ],
3095
1940
  [
3096
1941
  "render-ui",
@@ -3122,17 +1967,14 @@
3122
1967
  ],
3123
1968
  "children": [
3124
1969
  {
3125
- "type": "stack",
3126
- "direction": "vertical",
3127
- "gap": "lg",
3128
- "className": "max-w-5xl mx-auto w-full",
1970
+ "type": "container",
1971
+ "maxWidth": "lg",
1972
+ "padding": "lg",
3129
1973
  "children": [
3130
1974
  {
3131
1975
  "type": "stack",
3132
- "direction": "horizontal",
3133
- "gap": "md",
3134
- "justify": "space-between",
3135
- "align": "center",
1976
+ "direction": "vertical",
1977
+ "gap": "lg",
3136
1978
  "children": [
3137
1979
  {
3138
1980
  "type": "stack",
@@ -3142,89 +1984,203 @@
3142
1984
  "children": [
3143
1985
  {
3144
1986
  "type": "icon",
3145
- "name": "clock",
1987
+ "name": "calendar",
3146
1988
  "size": "lg"
3147
1989
  },
3148
1990
  {
3149
1991
  "type": "typography",
3150
- "content": "Appointments",
1992
+ "content": "Book Appointment",
3151
1993
  "variant": "h2"
3152
1994
  }
3153
1995
  ]
3154
1996
  },
1997
+ {
1998
+ "type": "progress-dots",
1999
+ "count": 3,
2000
+ "currentIndex": 1
2001
+ },
2002
+ {
2003
+ "type": "wizard-progress",
2004
+ "steps": [
2005
+ "Provider Selection",
2006
+ "Your Details",
2007
+ "Date and Time"
2008
+ ],
2009
+ "currentStep": 1
2010
+ },
2011
+ {
2012
+ "type": "divider"
2013
+ },
2014
+ {
2015
+ "type": "typography",
2016
+ "content": "Your Details",
2017
+ "variant": "h3"
2018
+ },
2019
+ {
2020
+ "type": "repeatable-form-section",
2021
+ "entity": "Booking",
2022
+ "mode": "create",
2023
+ "submitEvent": "NEXT",
2024
+ "cancelEvent": "PREV",
2025
+ "fields": [
2026
+ "customerName",
2027
+ "customerEmail"
2028
+ ]
2029
+ },
3155
2030
  {
3156
2031
  "type": "stack",
3157
2032
  "direction": "horizontal",
3158
2033
  "gap": "sm",
2034
+ "justify": "end",
3159
2035
  "children": [
3160
2036
  {
3161
2037
  "type": "button",
3162
- "label": "Create Appointment",
3163
- "event": "CREATE",
2038
+ "label": "Back",
2039
+ "event": "PREV",
2040
+ "variant": "ghost",
2041
+ "icon": "arrow-left"
2042
+ },
2043
+ {
2044
+ "type": "button",
2045
+ "label": "Next",
2046
+ "event": "NEXT",
3164
2047
  "variant": "primary",
3165
- "icon": "plus"
2048
+ "icon": "arrow-right"
3166
2049
  }
3167
2050
  ]
3168
2051
  }
3169
2052
  ]
3170
- },
3171
- {
3172
- "type": "divider"
3173
- },
2053
+ }
2054
+ ]
2055
+ }
2056
+ ]
2057
+ }
2058
+ ]
2059
+ ]
2060
+ },
2061
+ {
2062
+ "from": "review",
2063
+ "to": "step3",
2064
+ "event": "PREV",
2065
+ "effects": [
2066
+ [
2067
+ "fetch",
2068
+ "Booking"
2069
+ ],
2070
+ [
2071
+ "render-ui",
2072
+ "main",
2073
+ {
2074
+ "type": "dashboard-layout",
2075
+ "appName": "BookingSystemApp",
2076
+ "navItems": [
2077
+ {
2078
+ "label": "Providers",
2079
+ "href": "/providers",
2080
+ "icon": "user-check"
2081
+ },
2082
+ {
2083
+ "label": "Book",
2084
+ "href": "/book",
2085
+ "icon": "calendar-plus"
2086
+ },
2087
+ {
2088
+ "label": "Appointments",
2089
+ "href": "/appointments",
2090
+ "icon": "calendar"
2091
+ },
2092
+ {
2093
+ "label": "Schedule",
2094
+ "href": "/schedule",
2095
+ "icon": "clock"
2096
+ }
2097
+ ],
2098
+ "children": [
2099
+ {
2100
+ "type": "container",
2101
+ "maxWidth": "lg",
2102
+ "padding": "lg",
2103
+ "children": [
3174
2104
  {
3175
- "type": "data-list",
3176
- "entity": "Appointment",
3177
- "emptyIcon": "inbox",
3178
- "emptyTitle": "No appointments",
3179
- "emptyDescription": "Book an appointment to get started.",
3180
- "itemActions": [
2105
+ "type": "stack",
2106
+ "direction": "vertical",
2107
+ "gap": "lg",
2108
+ "children": [
3181
2109
  {
3182
- "label": "View",
3183
- "event": "VIEW",
3184
- "variant": "ghost",
3185
- "size": "sm"
2110
+ "type": "stack",
2111
+ "direction": "horizontal",
2112
+ "gap": "sm",
2113
+ "align": "center",
2114
+ "children": [
2115
+ {
2116
+ "type": "icon",
2117
+ "name": "calendar",
2118
+ "size": "lg"
2119
+ },
2120
+ {
2121
+ "type": "typography",
2122
+ "content": "Book Appointment",
2123
+ "variant": "h2"
2124
+ }
2125
+ ]
3186
2126
  },
3187
2127
  {
3188
- "label": "Edit",
3189
- "event": "EDIT",
3190
- "variant": "ghost",
3191
- "size": "sm"
2128
+ "type": "progress-dots",
2129
+ "count": 3,
2130
+ "currentIndex": 2
3192
2131
  },
3193
2132
  {
3194
- "label": "Delete",
3195
- "event": "DELETE",
3196
- "variant": "danger",
3197
- "size": "sm"
3198
- }
3199
- ],
3200
- "columns": [
3201
- {
3202
- "name": "customerName",
3203
- "label": "Customer",
3204
- "variant": "h3",
3205
- "icon": "clock"
2133
+ "type": "wizard-progress",
2134
+ "steps": [
2135
+ "Provider Selection",
2136
+ "Your Details",
2137
+ "Date and Time"
2138
+ ],
2139
+ "currentStep": 2
3206
2140
  },
3207
2141
  {
3208
- "name": "status",
3209
- "variant": "badge"
2142
+ "type": "divider"
3210
2143
  },
3211
2144
  {
3212
- "name": "providerName",
3213
- "label": "Provider",
3214
- "variant": "body"
2145
+ "type": "typography",
2146
+ "content": "Date and Time",
2147
+ "variant": "h3"
3215
2148
  },
3216
2149
  {
3217
- "name": "date",
3218
- "variant": "body",
3219
- "format": "date"
2150
+ "type": "repeatable-form-section",
2151
+ "entity": "Booking",
2152
+ "mode": "create",
2153
+ "submitEvent": "NEXT",
2154
+ "cancelEvent": "PREV",
2155
+ "fields": [
2156
+ "date",
2157
+ "time",
2158
+ "notes"
2159
+ ]
3220
2160
  },
3221
2161
  {
3222
- "name": "time",
3223
- "variant": "caption"
2162
+ "type": "stack",
2163
+ "direction": "horizontal",
2164
+ "gap": "sm",
2165
+ "justify": "end",
2166
+ "children": [
2167
+ {
2168
+ "type": "button",
2169
+ "label": "Back",
2170
+ "event": "PREV",
2171
+ "variant": "ghost",
2172
+ "icon": "arrow-left"
2173
+ },
2174
+ {
2175
+ "type": "button",
2176
+ "label": "Next",
2177
+ "event": "NEXT",
2178
+ "variant": "primary",
2179
+ "icon": "arrow-right"
2180
+ }
2181
+ ]
3224
2182
  }
3225
- ],
3226
- "variant": "card",
3227
- "gap": "sm"
2183
+ ]
3228
2184
  }
3229
2185
  ]
3230
2186
  }
@@ -3234,95 +2190,77 @@
3234
2190
  ]
3235
2191
  },
3236
2192
  {
3237
- "from": "browsing",
3238
- "to": "browsing",
3239
- "event": "APPOINTMENT_CREATED",
3240
- "effects": [
3241
- [
3242
- "ref",
3243
- "Appointment"
3244
- ]
3245
- ]
3246
- },
3247
- {
3248
- "from": "browsing",
3249
- "to": "browsing",
3250
- "event": "APPOINTMENT_UPDATED",
2193
+ "from": "review",
2194
+ "to": "complete",
2195
+ "event": "COMPLETE",
3251
2196
  "effects": [
3252
2197
  [
3253
- "ref",
3254
- "Appointment"
3255
- ]
3256
- ]
3257
- },
3258
- {
3259
- "from": "browsing",
3260
- "to": "deleting",
3261
- "event": "DELETE",
3262
- "effects": [
2198
+ "persist",
2199
+ "create",
2200
+ "Booking",
2201
+ "@payload.data"
2202
+ ],
3263
2203
  [
3264
- "fetch",
3265
- "Appointment",
3266
- {
3267
- "id": "@payload.id"
3268
- }
2204
+ "notify",
2205
+ "success",
2206
+ "Booking created successfully"
3269
2207
  ],
3270
2208
  [
3271
2209
  "render-ui",
3272
- "modal",
2210
+ "main",
3273
2211
  {
3274
- "type": "stack",
3275
- "direction": "vertical",
3276
- "gap": "md",
3277
- "children": [
2212
+ "type": "dashboard-layout",
2213
+ "appName": "BookingSystemApp",
2214
+ "navItems": [
3278
2215
  {
3279
- "type": "stack",
3280
- "direction": "horizontal",
3281
- "gap": "sm",
3282
- "children": [
3283
- {
3284
- "type": "icon",
3285
- "name": "trash-2",
3286
- "size": "md"
3287
- },
3288
- {
3289
- "type": "typography",
3290
- "content": "Delete Appointment",
3291
- "variant": "h3"
3292
- }
3293
- ]
2216
+ "label": "Providers",
2217
+ "href": "/providers",
2218
+ "icon": "user-check"
3294
2219
  },
3295
2220
  {
3296
- "type": "divider"
2221
+ "label": "Book",
2222
+ "href": "/book",
2223
+ "icon": "calendar-plus"
3297
2224
  },
3298
2225
  {
3299
- "type": "typography",
3300
- "content": "@entity.providerName",
3301
- "variant": "h4"
2226
+ "label": "Appointments",
2227
+ "href": "/appointments",
2228
+ "icon": "calendar"
3302
2229
  },
3303
2230
  {
3304
- "type": "typography",
3305
- "content": "This action cannot be undone.",
3306
- "variant": "body"
3307
- },
2231
+ "label": "Schedule",
2232
+ "href": "/schedule",
2233
+ "icon": "clock"
2234
+ }
2235
+ ],
2236
+ "children": [
3308
2237
  {
3309
2238
  "type": "stack",
3310
- "direction": "horizontal",
3311
- "gap": "sm",
3312
- "justify": "end",
2239
+ "direction": "vertical",
2240
+ "gap": "lg",
2241
+ "align": "center",
3313
2242
  "children": [
3314
2243
  {
3315
- "type": "button",
3316
- "label": "Cancel",
3317
- "event": "CANCEL",
3318
- "variant": "ghost"
2244
+ "type": "icon",
2245
+ "name": "check-circle",
2246
+ "size": "lg"
2247
+ },
2248
+ {
2249
+ "type": "typography",
2250
+ "content": "Booking Confirmed",
2251
+ "variant": "h2"
2252
+ },
2253
+ {
2254
+ "type": "typography",
2255
+ "content": "Your appointment has been booked successfully.",
2256
+ "variant": "body"
3319
2257
  },
3320
2258
  {
3321
2259
  "type": "button",
3322
- "label": "Delete",
3323
- "event": "CONFIRM_DELETE",
3324
- "variant": "danger",
3325
- "icon": "trash"
2260
+ "label": "Start New",
2261
+ "event": "RESTART",
2262
+ "variant": "primary",
2263
+ "icon": "refresh-cw"
3326
2264
  }
3327
2265
  ]
3328
2266
  }
@@ -3332,20 +2270,13 @@
3332
2270
  ]
3333
2271
  },
3334
2272
  {
3335
- "from": "deleting",
3336
- "to": "browsing",
3337
- "event": "CONFIRM_DELETE",
2273
+ "from": "complete",
2274
+ "to": "step1",
2275
+ "event": "RESTART",
3338
2276
  "effects": [
3339
2277
  [
3340
- "persist",
3341
- "delete",
3342
- "Appointment",
3343
- "@entity.id"
3344
- ],
3345
- [
3346
- "render-ui",
3347
- "modal",
3348
- null
2278
+ "fetch",
2279
+ "Booking"
3349
2280
  ],
3350
2281
  [
3351
2282
  "render-ui",
@@ -3377,17 +2308,14 @@
3377
2308
  ],
3378
2309
  "children": [
3379
2310
  {
3380
- "type": "stack",
3381
- "direction": "vertical",
3382
- "gap": "lg",
3383
- "className": "max-w-5xl mx-auto w-full",
2311
+ "type": "container",
2312
+ "maxWidth": "lg",
2313
+ "padding": "lg",
3384
2314
  "children": [
3385
2315
  {
3386
2316
  "type": "stack",
3387
- "direction": "horizontal",
3388
- "gap": "md",
3389
- "justify": "space-between",
3390
- "align": "center",
2317
+ "direction": "vertical",
2318
+ "gap": "lg",
3391
2319
  "children": [
3392
2320
  {
3393
2321
  "type": "stack",
@@ -3397,114 +2325,80 @@
3397
2325
  "children": [
3398
2326
  {
3399
2327
  "type": "icon",
3400
- "name": "clock",
2328
+ "name": "calendar",
3401
2329
  "size": "lg"
3402
2330
  },
3403
2331
  {
3404
2332
  "type": "typography",
3405
- "content": "Appointments",
2333
+ "content": "Book Appointment",
3406
2334
  "variant": "h2"
3407
2335
  }
3408
2336
  ]
3409
2337
  },
3410
2338
  {
3411
- "type": "stack",
3412
- "direction": "horizontal",
3413
- "gap": "sm",
3414
- "children": [
3415
- {
3416
- "type": "button",
3417
- "label": "Create Appointment",
3418
- "event": "CREATE",
3419
- "variant": "primary",
3420
- "icon": "plus"
3421
- }
3422
- ]
3423
- }
3424
- ]
3425
- },
3426
- {
3427
- "type": "divider"
3428
- },
3429
- {
3430
- "type": "data-list",
3431
- "entity": "Appointment",
3432
- "emptyIcon": "inbox",
3433
- "emptyTitle": "No appointments",
3434
- "emptyDescription": "Book an appointment to get started.",
3435
- "itemActions": [
3436
- {
3437
- "label": "View",
3438
- "event": "VIEW",
3439
- "variant": "ghost",
3440
- "size": "sm"
3441
- },
3442
- {
3443
- "label": "Edit",
3444
- "event": "EDIT",
3445
- "variant": "ghost",
3446
- "size": "sm"
2339
+ "type": "progress-dots",
2340
+ "count": 3,
2341
+ "currentIndex": 0
3447
2342
  },
3448
2343
  {
3449
- "label": "Delete",
3450
- "event": "DELETE",
3451
- "variant": "danger",
3452
- "size": "sm"
3453
- }
3454
- ],
3455
- "columns": [
3456
- {
3457
- "name": "customerName",
3458
- "label": "Customer",
3459
- "variant": "h3",
3460
- "icon": "clock"
2344
+ "type": "wizard-progress",
2345
+ "steps": [
2346
+ "Provider Selection",
2347
+ "Your Details",
2348
+ "Date and Time"
2349
+ ],
2350
+ "currentStep": 0
3461
2351
  },
3462
2352
  {
3463
- "name": "status",
3464
- "variant": "badge"
2353
+ "type": "divider"
3465
2354
  },
3466
2355
  {
3467
- "name": "providerName",
3468
- "label": "Provider",
3469
- "variant": "body"
2356
+ "type": "typography",
2357
+ "content": "Provider Selection",
2358
+ "variant": "h3"
3470
2359
  },
3471
2360
  {
3472
- "name": "date",
3473
- "variant": "body",
3474
- "format": "date"
2361
+ "type": "form-section",
2362
+ "entity": "Booking",
2363
+ "mode": "create",
2364
+ "submitEvent": "NEXT",
2365
+ "cancelEvent": "INIT",
2366
+ "fields": [
2367
+ "providerName"
2368
+ ]
3475
2369
  },
3476
2370
  {
3477
- "name": "time",
3478
- "variant": "caption"
2371
+ "type": "stack",
2372
+ "direction": "horizontal",
2373
+ "gap": "sm",
2374
+ "justify": "end",
2375
+ "children": [
2376
+ {
2377
+ "type": "button",
2378
+ "label": "Next",
2379
+ "event": "NEXT",
2380
+ "variant": "primary",
2381
+ "icon": "arrow-right"
2382
+ }
2383
+ ]
3479
2384
  }
3480
- ],
3481
- "variant": "card",
3482
- "gap": "sm"
2385
+ ]
3483
2386
  }
3484
2387
  ]
3485
2388
  }
3486
2389
  ]
3487
2390
  }
3488
- ],
3489
- [
3490
- "notify",
3491
- "Appointment deleted successfully"
3492
2391
  ]
3493
2392
  ]
3494
2393
  },
3495
2394
  {
3496
- "from": "deleting",
3497
- "to": "browsing",
3498
- "event": "CANCEL",
2395
+ "from": "complete",
2396
+ "to": "step1",
2397
+ "event": "INIT",
3499
2398
  "effects": [
3500
- [
3501
- "render-ui",
3502
- "modal",
3503
- null
3504
- ],
3505
2399
  [
3506
2400
  "fetch",
3507
- "Appointment"
2401
+ "Booking"
3508
2402
  ],
3509
2403
  [
3510
2404
  "render-ui",
@@ -3536,17 +2430,14 @@
3536
2430
  ],
3537
2431
  "children": [
3538
2432
  {
3539
- "type": "stack",
3540
- "direction": "vertical",
3541
- "gap": "lg",
3542
- "className": "max-w-5xl mx-auto w-full",
2433
+ "type": "container",
2434
+ "maxWidth": "lg",
2435
+ "padding": "lg",
3543
2436
  "children": [
3544
2437
  {
3545
2438
  "type": "stack",
3546
- "direction": "horizontal",
3547
- "gap": "md",
3548
- "justify": "space-between",
3549
- "align": "center",
2439
+ "direction": "vertical",
2440
+ "gap": "lg",
3550
2441
  "children": [
3551
2442
  {
3552
2443
  "type": "stack",
@@ -3556,89 +2447,64 @@
3556
2447
  "children": [
3557
2448
  {
3558
2449
  "type": "icon",
3559
- "name": "clock",
2450
+ "name": "calendar",
3560
2451
  "size": "lg"
3561
2452
  },
3562
2453
  {
3563
2454
  "type": "typography",
3564
- "content": "Appointments",
2455
+ "content": "Book Appointment",
3565
2456
  "variant": "h2"
3566
2457
  }
3567
2458
  ]
3568
2459
  },
3569
2460
  {
3570
- "type": "stack",
3571
- "direction": "horizontal",
3572
- "gap": "sm",
3573
- "children": [
3574
- {
3575
- "type": "button",
3576
- "label": "Create Appointment",
3577
- "event": "CREATE",
3578
- "variant": "primary",
3579
- "icon": "plus"
3580
- }
3581
- ]
3582
- }
3583
- ]
3584
- },
3585
- {
3586
- "type": "divider"
3587
- },
3588
- {
3589
- "type": "data-list",
3590
- "entity": "Appointment",
3591
- "emptyIcon": "inbox",
3592
- "emptyTitle": "No appointments",
3593
- "emptyDescription": "Book an appointment to get started.",
3594
- "itemActions": [
3595
- {
3596
- "label": "View",
3597
- "event": "VIEW",
3598
- "variant": "ghost",
3599
- "size": "sm"
3600
- },
3601
- {
3602
- "label": "Edit",
3603
- "event": "EDIT",
3604
- "variant": "ghost",
3605
- "size": "sm"
2461
+ "type": "progress-dots",
2462
+ "count": 3,
2463
+ "currentIndex": 0
3606
2464
  },
3607
2465
  {
3608
- "label": "Delete",
3609
- "event": "DELETE",
3610
- "variant": "danger",
3611
- "size": "sm"
3612
- }
3613
- ],
3614
- "columns": [
3615
- {
3616
- "name": "customerName",
3617
- "label": "Customer",
3618
- "variant": "h3",
3619
- "icon": "clock"
2466
+ "type": "wizard-progress",
2467
+ "steps": [
2468
+ "Provider Selection",
2469
+ "Your Details",
2470
+ "Date and Time"
2471
+ ],
2472
+ "currentStep": 0
3620
2473
  },
3621
2474
  {
3622
- "name": "status",
3623
- "variant": "badge"
2475
+ "type": "divider"
3624
2476
  },
3625
2477
  {
3626
- "name": "providerName",
3627
- "label": "Provider",
3628
- "variant": "body"
2478
+ "type": "typography",
2479
+ "content": "Provider Selection",
2480
+ "variant": "h3"
3629
2481
  },
3630
2482
  {
3631
- "name": "date",
3632
- "variant": "body",
3633
- "format": "date"
2483
+ "type": "form-section",
2484
+ "entity": "Booking",
2485
+ "mode": "create",
2486
+ "submitEvent": "NEXT",
2487
+ "cancelEvent": "INIT",
2488
+ "fields": [
2489
+ "providerName"
2490
+ ]
3634
2491
  },
3635
2492
  {
3636
- "name": "time",
3637
- "variant": "caption"
2493
+ "type": "stack",
2494
+ "direction": "horizontal",
2495
+ "gap": "sm",
2496
+ "justify": "end",
2497
+ "children": [
2498
+ {
2499
+ "type": "button",
2500
+ "label": "Next",
2501
+ "event": "NEXT",
2502
+ "variant": "primary",
2503
+ "icon": "arrow-right"
2504
+ }
2505
+ ]
3638
2506
  }
3639
- ],
3640
- "variant": "card",
3641
- "gap": "sm"
2507
+ ]
3642
2508
  }
3643
2509
  ]
3644
2510
  }
@@ -3646,19 +2512,186 @@
3646
2512
  }
3647
2513
  ]
3648
2514
  ]
2515
+ }
2516
+ ]
2517
+ },
2518
+ "listens": [
2519
+ {
2520
+ "event": "BOOK",
2521
+ "triggers": "INIT",
2522
+ "scope": "external"
2523
+ }
2524
+ ],
2525
+ "emits": [
2526
+ {
2527
+ "event": "CONFIRM",
2528
+ "payload": [
2529
+ {
2530
+ "name": "id",
2531
+ "type": "string",
2532
+ "required": true
2533
+ }
2534
+ ],
2535
+ "scope": "external"
2536
+ }
2537
+ ]
2538
+ }
2539
+ ],
2540
+ "pages": [
2541
+ {
2542
+ "name": "BookPage",
2543
+ "path": "/book",
2544
+ "traits": [
2545
+ {
2546
+ "ref": "BookingWizard"
2547
+ }
2548
+ ]
2549
+ }
2550
+ ]
2551
+ },
2552
+ {
2553
+ "name": "AppointmentOrbital",
2554
+ "entity": {
2555
+ "name": "Appointment",
2556
+ "persistence": "persistent",
2557
+ "collection": "appointments",
2558
+ "fields": [
2559
+ {
2560
+ "name": "id",
2561
+ "type": "string",
2562
+ "required": true
2563
+ },
2564
+ {
2565
+ "name": "providerName",
2566
+ "type": "string",
2567
+ "required": true
2568
+ },
2569
+ {
2570
+ "name": "customerName",
2571
+ "type": "string",
2572
+ "required": true
2573
+ },
2574
+ {
2575
+ "name": "date",
2576
+ "type": "date",
2577
+ "required": true
2578
+ },
2579
+ {
2580
+ "name": "time",
2581
+ "type": "string",
2582
+ "required": true
2583
+ },
2584
+ {
2585
+ "name": "status",
2586
+ "type": "string",
2587
+ "default": "confirmed",
2588
+ "values": [
2589
+ "confirmed",
2590
+ "pending",
2591
+ "cancelled",
2592
+ "completed"
2593
+ ]
2594
+ },
2595
+ {
2596
+ "name": "notes",
2597
+ "type": "string"
2598
+ }
2599
+ ]
2600
+ },
2601
+ "traits": [
2602
+ {
2603
+ "name": "AppointmentBrowse",
2604
+ "linkedEntity": "Appointment",
2605
+ "category": "interaction",
2606
+ "listens": [
2607
+ {
2608
+ "event": "APPOINTMENT_CREATED",
2609
+ "triggers": "INIT"
2610
+ },
2611
+ {
2612
+ "event": "APPOINTMENT_UPDATED",
2613
+ "triggers": "INIT"
2614
+ },
2615
+ {
2616
+ "event": "APPOINTMENT_DELETED",
2617
+ "triggers": "INIT"
2618
+ },
2619
+ {
2620
+ "event": "CONFIRM",
2621
+ "triggers": "INIT",
2622
+ "scope": "external"
2623
+ }
2624
+ ],
2625
+ "stateMachine": {
2626
+ "states": [
2627
+ {
2628
+ "name": "browsing",
2629
+ "isInitial": true
2630
+ }
2631
+ ],
2632
+ "events": [
2633
+ {
2634
+ "key": "INIT",
2635
+ "name": "Initialize"
2636
+ },
2637
+ {
2638
+ "key": "CREATE",
2639
+ "name": "CREATE"
2640
+ },
2641
+ {
2642
+ "key": "VIEW",
2643
+ "name": "VIEW",
2644
+ "payload": [
2645
+ {
2646
+ "name": "id",
2647
+ "type": "string",
2648
+ "required": true
2649
+ },
2650
+ {
2651
+ "name": "row",
2652
+ "type": "object"
2653
+ }
2654
+ ]
2655
+ },
2656
+ {
2657
+ "key": "EDIT",
2658
+ "name": "EDIT",
2659
+ "payload": [
2660
+ {
2661
+ "name": "id",
2662
+ "type": "string",
2663
+ "required": true
2664
+ },
2665
+ {
2666
+ "name": "row",
2667
+ "type": "object"
2668
+ }
2669
+ ]
3649
2670
  },
3650
2671
  {
3651
- "from": "deleting",
2672
+ "key": "DELETE",
2673
+ "name": "DELETE",
2674
+ "payload": [
2675
+ {
2676
+ "name": "id",
2677
+ "type": "string",
2678
+ "required": true
2679
+ },
2680
+ {
2681
+ "name": "row",
2682
+ "type": "object"
2683
+ }
2684
+ ]
2685
+ }
2686
+ ],
2687
+ "transitions": [
2688
+ {
2689
+ "from": "browsing",
3652
2690
  "to": "browsing",
3653
- "event": "CLOSE",
2691
+ "event": "INIT",
3654
2692
  "effects": [
3655
2693
  [
3656
- "render-ui",
3657
- "modal",
3658
- null
3659
- ],
3660
- [
3661
- "fetch",
2694
+ "ref",
3662
2695
  "Appointment"
3663
2696
  ],
3664
2697
  [
@@ -3810,6 +2843,9 @@
3810
2843
  "linkedEntity": "Appointment",
3811
2844
  "category": "interaction",
3812
2845
  "emits": [
2846
+ {
2847
+ "event": "SAVE"
2848
+ },
3813
2849
  {
3814
2850
  "event": "APPOINTMENT_CREATED"
3815
2851
  }
@@ -3954,10 +2990,6 @@
3954
2990
  [
3955
2991
  "emit",
3956
2992
  "APPOINTMENT_CREATED"
3957
- ],
3958
- [
3959
- "notify",
3960
- "Appointment created successfully"
3961
2993
  ]
3962
2994
  ]
3963
2995
  }
@@ -3969,6 +3001,9 @@
3969
3001
  "linkedEntity": "Appointment",
3970
3002
  "category": "interaction",
3971
3003
  "emits": [
3004
+ {
3005
+ "event": "SAVE"
3006
+ },
3972
3007
  {
3973
3008
  "event": "APPOINTMENT_UPDATED"
3974
3009
  }
@@ -4124,10 +3159,6 @@
4124
3159
  [
4125
3160
  "emit",
4126
3161
  "APPOINTMENT_UPDATED"
4127
- ],
4128
- [
4129
- "notify",
4130
- "Appointment updated successfully"
4131
3162
  ]
4132
3163
  ]
4133
3164
  }
@@ -4138,6 +3169,11 @@
4138
3169
  "name": "AppointmentView",
4139
3170
  "linkedEntity": "Appointment",
4140
3171
  "category": "interaction",
3172
+ "emits": [
3173
+ {
3174
+ "event": "SAVE"
3175
+ }
3176
+ ],
4141
3177
  "stateMachine": {
4142
3178
  "states": [
4143
3179
  {
@@ -4167,6 +3203,17 @@
4167
3203
  {
4168
3204
  "key": "CLOSE",
4169
3205
  "name": "Close"
3206
+ },
3207
+ {
3208
+ "key": "SAVE",
3209
+ "name": "Save",
3210
+ "payload": [
3211
+ {
3212
+ "name": "data",
3213
+ "type": "object",
3214
+ "required": true
3215
+ }
3216
+ ]
4170
3217
  }
4171
3218
  ],
4172
3219
  "transitions": [
@@ -4369,6 +3416,219 @@
4369
3416
  "info"
4370
3417
  ]
4371
3418
  ]
3419
+ },
3420
+ {
3421
+ "from": "open",
3422
+ "to": "closed",
3423
+ "event": "SAVE",
3424
+ "effects": [
3425
+ [
3426
+ "render-ui",
3427
+ "modal",
3428
+ null
3429
+ ]
3430
+ ]
3431
+ }
3432
+ ]
3433
+ }
3434
+ },
3435
+ {
3436
+ "name": "AppointmentDelete",
3437
+ "linkedEntity": "Appointment",
3438
+ "category": "interaction",
3439
+ "emits": [
3440
+ {
3441
+ "event": "CONFIRM_DELETE"
3442
+ },
3443
+ {
3444
+ "event": "APPOINTMENT_DELETED"
3445
+ }
3446
+ ],
3447
+ "stateMachine": {
3448
+ "states": [
3449
+ {
3450
+ "name": "idle",
3451
+ "isInitial": true
3452
+ },
3453
+ {
3454
+ "name": "confirming"
3455
+ }
3456
+ ],
3457
+ "events": [
3458
+ {
3459
+ "key": "INIT",
3460
+ "name": "Initialize"
3461
+ },
3462
+ {
3463
+ "key": "DELETE",
3464
+ "name": "Request Confirmation",
3465
+ "payload": [
3466
+ {
3467
+ "name": "id",
3468
+ "type": "string",
3469
+ "required": true
3470
+ }
3471
+ ]
3472
+ },
3473
+ {
3474
+ "key": "CONFIRM_DELETE",
3475
+ "name": "Confirm"
3476
+ },
3477
+ {
3478
+ "key": "CANCEL",
3479
+ "name": "Cancel"
3480
+ },
3481
+ {
3482
+ "key": "CLOSE",
3483
+ "name": "Close"
3484
+ }
3485
+ ],
3486
+ "transitions": [
3487
+ {
3488
+ "from": "idle",
3489
+ "to": "idle",
3490
+ "event": "INIT",
3491
+ "effects": [
3492
+ [
3493
+ "ref",
3494
+ "Appointment"
3495
+ ]
3496
+ ]
3497
+ },
3498
+ {
3499
+ "from": "idle",
3500
+ "to": "confirming",
3501
+ "event": "DELETE",
3502
+ "effects": [
3503
+ [
3504
+ "set",
3505
+ "@entity.pendingId",
3506
+ "@payload.id"
3507
+ ],
3508
+ [
3509
+ "fetch",
3510
+ "Appointment",
3511
+ {
3512
+ "id": "@payload.id"
3513
+ }
3514
+ ],
3515
+ [
3516
+ "render-ui",
3517
+ "modal",
3518
+ {
3519
+ "type": "stack",
3520
+ "direction": "vertical",
3521
+ "gap": "md",
3522
+ "children": [
3523
+ {
3524
+ "type": "stack",
3525
+ "direction": "horizontal",
3526
+ "gap": "sm",
3527
+ "align": "center",
3528
+ "children": [
3529
+ {
3530
+ "type": "icon",
3531
+ "name": "alert-triangle",
3532
+ "size": "md"
3533
+ },
3534
+ {
3535
+ "type": "typography",
3536
+ "content": "Delete Appointment",
3537
+ "variant": "h3"
3538
+ }
3539
+ ]
3540
+ },
3541
+ {
3542
+ "type": "divider"
3543
+ },
3544
+ {
3545
+ "type": "alert",
3546
+ "variant": "danger",
3547
+ "message": "This action cannot be undone."
3548
+ },
3549
+ {
3550
+ "type": "stack",
3551
+ "direction": "horizontal",
3552
+ "gap": "sm",
3553
+ "justify": "end",
3554
+ "children": [
3555
+ {
3556
+ "type": "button",
3557
+ "label": "Cancel",
3558
+ "event": "CANCEL",
3559
+ "variant": "ghost"
3560
+ },
3561
+ {
3562
+ "type": "button",
3563
+ "label": "Delete",
3564
+ "event": "CONFIRM_DELETE",
3565
+ "variant": "danger",
3566
+ "icon": "check"
3567
+ }
3568
+ ]
3569
+ }
3570
+ ]
3571
+ }
3572
+ ]
3573
+ ]
3574
+ },
3575
+ {
3576
+ "from": "confirming",
3577
+ "to": "idle",
3578
+ "event": "CONFIRM_DELETE",
3579
+ "effects": [
3580
+ [
3581
+ "persist",
3582
+ "delete",
3583
+ "Appointment",
3584
+ "@entity.pendingId"
3585
+ ],
3586
+ [
3587
+ "render-ui",
3588
+ "modal",
3589
+ null
3590
+ ],
3591
+ [
3592
+ "ref",
3593
+ "Appointment"
3594
+ ],
3595
+ [
3596
+ "emit",
3597
+ "APPOINTMENT_DELETED"
3598
+ ]
3599
+ ]
3600
+ },
3601
+ {
3602
+ "from": "confirming",
3603
+ "to": "idle",
3604
+ "event": "CANCEL",
3605
+ "effects": [
3606
+ [
3607
+ "render-ui",
3608
+ "modal",
3609
+ null
3610
+ ],
3611
+ [
3612
+ "ref",
3613
+ "Appointment"
3614
+ ]
3615
+ ]
3616
+ },
3617
+ {
3618
+ "from": "confirming",
3619
+ "to": "idle",
3620
+ "event": "CLOSE",
3621
+ "effects": [
3622
+ [
3623
+ "render-ui",
3624
+ "modal",
3625
+ null
3626
+ ],
3627
+ [
3628
+ "ref",
3629
+ "Appointment"
3630
+ ]
3631
+ ]
4372
3632
  }
4373
3633
  ]
4374
3634
  }
@@ -4390,6 +3650,9 @@
4390
3650
  },
4391
3651
  {
4392
3652
  "ref": "AppointmentView"
3653
+ },
3654
+ {
3655
+ "ref": "AppointmentDelete"
4393
3656
  }
4394
3657
  ]
4395
3658
  }
@@ -5841,6 +5104,5 @@
5841
5104
  }
5842
5105
  ]
5843
5106
  }
5844
- ],
5845
- "description": "Booking system organism. Composes molecules via compose: - stdList(Provider): provider directory with CRUD - stdWizard(Booking): booking wizard - stdList(Appointment): appointment list with CRUD - stdDisplay(Schedule): schedule overview dashboard Cross-orbital connections: - BOOK: ProviderBrowse -> BookingWizard - CONFIRM: BookingWizard -> AppointmentBrowse"
5846
- }
5107
+ ]
5108
+ }