@almadar/std 9.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/behaviors/registry/agent/atoms/std-agent-activity-log.orb +80 -80
  2. package/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +103 -103
  3. package/behaviors/registry/agent/atoms/std-agent-classifier.orb +131 -113
  4. package/behaviors/registry/agent/atoms/std-agent-completion.orb +116 -98
  5. package/behaviors/registry/agent/atoms/std-agent-context-window.orb +384 -384
  6. package/behaviors/registry/agent/atoms/std-agent-conversation.orb +106 -106
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +75 -75
  8. package/behaviors/registry/agent/atoms/std-agent-provider.orb +163 -139
  9. package/behaviors/registry/agent/atoms/std-agent-search.orb +64 -64
  10. package/behaviors/registry/agent/atoms/std-agent-session.orb +130 -130
  11. package/behaviors/registry/agent/atoms/std-agent-step-progress.orb +185 -185
  12. package/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +344 -344
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +81 -63
  14. package/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +189 -189
  15. package/behaviors/registry/agent/molecules/std-agent-learner.orb +163 -163
  16. package/behaviors/registry/agent/molecules/std-agent-planner.orb +120 -120
  17. package/behaviors/registry/agent/molecules/std-agent-rag.orb +108 -108
  18. package/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  19. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1097 -1072
  20. package/behaviors/registry/agent/organisms/std-agent-builder.orb +3183 -3043
  21. package/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2309 -2217
  22. package/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1083 -1029
  23. package/behaviors/registry/agent/organisms/std-agent-tutor.orb +793 -768
  24. package/behaviors/registry/app/organisms/std-api-gateway.orb +929 -887
  25. package/behaviors/registry/app/organisms/std-booking-system.orb +1247 -1163
  26. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +822 -780
  27. package/behaviors/registry/app/organisms/std-cms.orb +608 -512
  28. package/behaviors/registry/app/organisms/std-coding-academy.orb +393 -393
  29. package/behaviors/registry/app/organisms/std-crm.orb +887 -791
  30. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1408 -1366
  31. package/behaviors/registry/app/organisms/std-ecommerce.orb +1147 -1021
  32. package/behaviors/registry/app/organisms/std-finance-tracker.orb +670 -616
  33. package/behaviors/registry/app/organisms/std-healthcare.orb +1447 -1351
  34. package/behaviors/registry/app/organisms/std-helpdesk.orb +720 -666
  35. package/behaviors/registry/app/organisms/std-hr-portal.orb +1286 -1202
  36. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +925 -883
  37. package/behaviors/registry/app/organisms/std-lms.orb +935 -893
  38. package/behaviors/registry/app/organisms/std-project-manager.orb +834 -750
  39. package/behaviors/registry/app/organisms/std-realtime-chat.orb +735 -681
  40. package/behaviors/registry/app/organisms/std-social-feed.orb +235 -211
  41. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +730 -688
  42. package/behaviors/registry/core/atoms/std-browse.orb +56 -56
  43. package/behaviors/registry/core/atoms/std-cache-aside.orb +95 -95
  44. package/behaviors/registry/core/atoms/std-calendar.orb +54 -54
  45. package/behaviors/registry/core/atoms/std-circuit-breaker.orb +180 -180
  46. package/behaviors/registry/core/atoms/std-confirmation.orb +25 -25
  47. package/behaviors/registry/core/atoms/std-display.orb +388 -388
  48. package/behaviors/registry/core/atoms/std-drawer.orb +54 -54
  49. package/behaviors/registry/core/atoms/std-filter.orb +47 -47
  50. package/behaviors/registry/core/atoms/std-gallery.orb +51 -51
  51. package/behaviors/registry/core/atoms/std-modal.orb +12 -12
  52. package/behaviors/registry/core/atoms/std-pagination.orb +42 -42
  53. package/behaviors/registry/core/atoms/std-push.orb +43 -43
  54. package/behaviors/registry/core/atoms/std-rate-limiter.orb +194 -194
  55. package/behaviors/registry/core/atoms/std-related.orb +37 -37
  56. package/behaviors/registry/core/atoms/std-search.orb +68 -68
  57. package/behaviors/registry/core/atoms/std-selection.orb +90 -90
  58. package/behaviors/registry/core/atoms/std-tabs.orb +44 -44
  59. package/behaviors/registry/core/molecules/std-cart.orb +55 -59
  60. package/behaviors/registry/core/molecules/std-filtered-list.orb +6 -6
  61. package/behaviors/registry/core/molecules/std-form-advanced.orb +132 -132
  62. package/behaviors/registry/core/molecules/std-list.orb +79 -85
  63. package/behaviors/registry/core/molecules/std-wizard-form.orb +146 -146
  64. package/behaviors/registry/game/atoms/std-collision.orb +122 -122
  65. package/behaviors/registry/game/atoms/std-combat.orb +66 -66
  66. package/behaviors/registry/game/atoms/std-dialogue-box.orb +25 -25
  67. package/behaviors/registry/game/atoms/std-game-canvas2d.orb +43 -43
  68. package/behaviors/registry/game/atoms/std-gameflow.orb +37 -37
  69. package/behaviors/registry/game/atoms/std-movement.orb +291 -291
  70. package/behaviors/registry/game/atoms/std-overworld.orb +69 -69
  71. package/behaviors/registry/game/atoms/std-physics2d.orb +77 -77
  72. package/behaviors/registry/game/atoms/std-quest.orb +133 -133
  73. package/behaviors/registry/game/atoms/std-timer.orb +291 -291
  74. package/behaviors/registry/game/organisms/std-arcade-game.orb +139 -139
  75. package/behaviors/registry/game/organisms/std-logic-training.orb +81 -81
  76. package/behaviors/registry/game/organisms/std-platformer-app.orb +273 -237
  77. package/behaviors/registry/game/organisms/std-puzzle-app.orb +98 -98
  78. package/behaviors/registry/game/organisms/std-rpg-game.orb +407 -371
  79. package/behaviors/registry/game/organisms/std-stem-lab.orb +378 -378
  80. package/behaviors/registry/game/organisms/std-strategy-game.orb +557 -557
  81. package/behaviors/registry/probes/molecules/std-source-scope-probe.orb +282 -20
  82. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +84 -84
  83. package/behaviors/registry/service/atoms/std-service-email.orb +88 -88
  84. package/behaviors/registry/service/atoms/std-service-github.orb +88 -88
  85. package/behaviors/registry/service/atoms/std-service-llm.orb +119 -119
  86. package/behaviors/registry/service/atoms/std-service-oauth.orb +122 -122
  87. package/behaviors/registry/service/atoms/std-service-redis.orb +99 -99
  88. package/behaviors/registry/service/atoms/std-service-storage.orb +109 -109
  89. package/behaviors/registry/service/atoms/std-service-stripe.orb +105 -105
  90. package/behaviors/registry/service/atoms/std-service-twilio.orb +112 -112
  91. package/behaviors/registry/service/atoms/std-service-youtube.orb +111 -111
  92. package/behaviors/registry/service/organisms/std-service-marketplace.orb +1098 -1014
  93. package/behaviors/registry/service/organisms/std-service-research-assistant.orb +956 -956
  94. package/dist/behaviors/registry/agent/atoms/std-agent-activity-log.orb +80 -80
  95. package/dist/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +103 -103
  96. package/dist/behaviors/registry/agent/atoms/std-agent-classifier.orb +131 -113
  97. package/dist/behaviors/registry/agent/atoms/std-agent-completion.orb +116 -98
  98. package/dist/behaviors/registry/agent/atoms/std-agent-context-window.orb +384 -384
  99. package/dist/behaviors/registry/agent/atoms/std-agent-conversation.orb +106 -106
  100. package/dist/behaviors/registry/agent/atoms/std-agent-memory.orb +75 -75
  101. package/dist/behaviors/registry/agent/atoms/std-agent-provider.orb +163 -139
  102. package/dist/behaviors/registry/agent/atoms/std-agent-search.orb +64 -64
  103. package/dist/behaviors/registry/agent/atoms/std-agent-session.orb +130 -130
  104. package/dist/behaviors/registry/agent/atoms/std-agent-step-progress.orb +185 -185
  105. package/dist/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +344 -344
  106. package/dist/behaviors/registry/agent/atoms/std-agent-tool-call.orb +81 -63
  107. package/dist/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +189 -189
  108. package/dist/behaviors/registry/agent/molecules/std-agent-learner.orb +163 -163
  109. package/dist/behaviors/registry/agent/molecules/std-agent-planner.orb +120 -120
  110. package/dist/behaviors/registry/agent/molecules/std-agent-rag.orb +108 -108
  111. package/dist/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  112. package/dist/behaviors/registry/agent/organisms/std-agent-assistant.orb +1097 -1072
  113. package/dist/behaviors/registry/agent/organisms/std-agent-builder.orb +3183 -3043
  114. package/dist/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2309 -2217
  115. package/dist/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1083 -1029
  116. package/dist/behaviors/registry/agent/organisms/std-agent-tutor.orb +793 -768
  117. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +929 -887
  118. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1247 -1163
  119. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +822 -780
  120. package/dist/behaviors/registry/app/organisms/std-cms.orb +608 -512
  121. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +393 -393
  122. package/dist/behaviors/registry/app/organisms/std-crm.orb +887 -791
  123. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1408 -1366
  124. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1147 -1021
  125. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +670 -616
  126. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1447 -1351
  127. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +720 -666
  128. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1286 -1202
  129. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +925 -883
  130. package/dist/behaviors/registry/app/organisms/std-lms.orb +935 -893
  131. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +834 -750
  132. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +735 -681
  133. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +235 -211
  134. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +730 -688
  135. package/dist/behaviors/registry/core/atoms/std-browse.orb +56 -56
  136. package/dist/behaviors/registry/core/atoms/std-cache-aside.orb +95 -95
  137. package/dist/behaviors/registry/core/atoms/std-calendar.orb +54 -54
  138. package/dist/behaviors/registry/core/atoms/std-circuit-breaker.orb +180 -180
  139. package/dist/behaviors/registry/core/atoms/std-confirmation.orb +25 -25
  140. package/dist/behaviors/registry/core/atoms/std-display.orb +388 -388
  141. package/dist/behaviors/registry/core/atoms/std-drawer.orb +54 -54
  142. package/dist/behaviors/registry/core/atoms/std-filter.orb +47 -47
  143. package/dist/behaviors/registry/core/atoms/std-gallery.orb +51 -51
  144. package/dist/behaviors/registry/core/atoms/std-modal.orb +12 -12
  145. package/dist/behaviors/registry/core/atoms/std-pagination.orb +42 -42
  146. package/dist/behaviors/registry/core/atoms/std-push.orb +43 -43
  147. package/dist/behaviors/registry/core/atoms/std-rate-limiter.orb +194 -194
  148. package/dist/behaviors/registry/core/atoms/std-related.orb +37 -37
  149. package/dist/behaviors/registry/core/atoms/std-search.orb +68 -68
  150. package/dist/behaviors/registry/core/atoms/std-selection.orb +90 -90
  151. package/dist/behaviors/registry/core/atoms/std-tabs.orb +44 -44
  152. package/dist/behaviors/registry/core/molecules/std-cart.orb +55 -59
  153. package/dist/behaviors/registry/core/molecules/std-filtered-list.orb +6 -6
  154. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +132 -132
  155. package/dist/behaviors/registry/core/molecules/std-list.orb +79 -85
  156. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +146 -146
  157. package/dist/behaviors/registry/game/atoms/std-collision.orb +122 -122
  158. package/dist/behaviors/registry/game/atoms/std-combat.orb +66 -66
  159. package/dist/behaviors/registry/game/atoms/std-dialogue-box.orb +25 -25
  160. package/dist/behaviors/registry/game/atoms/std-game-canvas2d.orb +43 -43
  161. package/dist/behaviors/registry/game/atoms/std-gameflow.orb +37 -37
  162. package/dist/behaviors/registry/game/atoms/std-movement.orb +291 -291
  163. package/dist/behaviors/registry/game/atoms/std-overworld.orb +69 -69
  164. package/dist/behaviors/registry/game/atoms/std-physics2d.orb +77 -77
  165. package/dist/behaviors/registry/game/atoms/std-quest.orb +133 -133
  166. package/dist/behaviors/registry/game/atoms/std-timer.orb +291 -291
  167. package/dist/behaviors/registry/game/organisms/std-arcade-game.orb +139 -139
  168. package/dist/behaviors/registry/game/organisms/std-logic-training.orb +81 -81
  169. package/dist/behaviors/registry/game/organisms/std-platformer-app.orb +273 -237
  170. package/dist/behaviors/registry/game/organisms/std-puzzle-app.orb +98 -98
  171. package/dist/behaviors/registry/game/organisms/std-rpg-game.orb +407 -371
  172. package/dist/behaviors/registry/game/organisms/std-stem-lab.orb +378 -378
  173. package/dist/behaviors/registry/game/organisms/std-strategy-game.orb +557 -557
  174. package/dist/behaviors/registry/probes/molecules/std-source-scope-probe.orb +282 -20
  175. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +84 -84
  176. package/dist/behaviors/registry/service/atoms/std-service-email.orb +88 -88
  177. package/dist/behaviors/registry/service/atoms/std-service-github.orb +88 -88
  178. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +119 -119
  179. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +122 -122
  180. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +99 -99
  181. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +109 -109
  182. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +105 -105
  183. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +112 -112
  184. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +111 -111
  185. package/dist/behaviors/registry/service/organisms/std-service-marketplace.orb +1098 -1014
  186. package/dist/behaviors/registry/service/organisms/std-service-research-assistant.orb +956 -956
  187. package/package.json +1 -1
@@ -552,8 +552,8 @@
552
552
  "Provider",
553
553
  {
554
554
  "emit": {
555
- "success": "ProviderLoaded",
556
- "failure": "ProviderLoadFailed"
555
+ "failure": "ProviderLoadFailed",
556
+ "success": "ProviderLoaded"
557
557
  }
558
558
  }
559
559
  ],
@@ -561,22 +561,22 @@
561
561
  "render-ui",
562
562
  "main",
563
563
  {
564
- "align": "center",
564
+ "type": "stack",
565
+ "className": "py-12",
565
566
  "children": [
566
567
  {
567
568
  "type": "spinner"
568
569
  },
569
570
  {
570
- "variant": "caption",
571
- "content": "Loading…",
572
571
  "color": "muted",
573
- "type": "typography"
572
+ "variant": "caption",
573
+ "type": "typography",
574
+ "content": "Loading…"
574
575
  }
575
576
  ],
577
+ "direction": "vertical",
576
578
  "gap": "md",
577
- "type": "stack",
578
- "className": "py-12",
579
- "direction": "vertical"
579
+ "align": "center"
580
580
  }
581
581
  ]
582
582
  ]
@@ -590,22 +590,23 @@
590
590
  "render-ui",
591
591
  "main",
592
592
  {
593
+ "appName": "BookingSystemApp",
593
594
  "type": "dashboard-layout",
594
595
  "navItems": [
595
596
  {
596
- "label": "Providers",
597
597
  "icon": "user-check",
598
- "href": "/providers"
598
+ "href": "/providers",
599
+ "label": "Providers"
599
600
  },
600
601
  {
601
- "label": "Book",
602
602
  "href": "/book",
603
- "icon": "calendar-plus"
603
+ "icon": "calendar-plus",
604
+ "label": "Book"
604
605
  },
605
606
  {
606
607
  "label": "Appointments",
607
- "icon": "calendar",
608
- "href": "/appointments"
608
+ "href": "/appointments",
609
+ "icon": "calendar"
609
610
  },
610
611
  {
611
612
  "href": "/schedule",
@@ -615,30 +616,32 @@
615
616
  ],
616
617
  "children": [
617
618
  {
619
+ "type": "stack",
620
+ "direction": "vertical",
621
+ "gap": "lg",
622
+ "className": "max-w-5xl mx-auto w-full",
618
623
  "children": [
619
624
  {
620
- "type": "stack",
625
+ "gap": "md",
621
626
  "children": [
622
627
  {
628
+ "direction": "horizontal",
629
+ "type": "stack",
630
+ "gap": "sm",
623
631
  "children": [
624
632
  {
625
- "name": "briefcase",
626
- "type": "icon"
633
+ "type": "icon",
634
+ "name": "briefcase"
627
635
  },
628
636
  {
637
+ "type": "typography",
629
638
  "variant": "h2",
630
- "content": "Providers",
631
- "type": "typography"
639
+ "content": "Providers"
632
640
  }
633
641
  ],
634
- "direction": "horizontal",
635
- "align": "center",
636
- "gap": "sm",
637
- "type": "stack"
642
+ "align": "center"
638
643
  },
639
644
  {
640
- "gap": "sm",
641
- "type": "stack",
642
645
  "children": [
643
646
  {
644
647
  "label": "Create Provider",
@@ -648,10 +651,12 @@
648
651
  "action": "CREATE"
649
652
  }
650
653
  ],
651
- "direction": "horizontal"
654
+ "gap": "sm",
655
+ "direction": "horizontal",
656
+ "type": "stack"
652
657
  }
653
658
  ],
654
- "gap": "md",
659
+ "type": "stack",
655
660
  "justify": "between",
656
661
  "direction": "horizontal",
657
662
  "align": "center"
@@ -660,61 +665,56 @@
660
665
  "type": "divider"
661
666
  },
662
667
  {
663
- "gap": "md",
664
- "fields": [],
665
- "type": "data-grid",
666
- "entity": "@payload.data",
667
- "columns": [
668
+ "itemActions": [
668
669
  {
669
- "variant": "h3",
670
- "icon": "briefcase",
671
- "name": "name"
670
+ "label": "View",
671
+ "event": "VIEW",
672
+ "variant": "ghost"
672
673
  },
673
674
  {
674
- "name": "specialty",
675
- "variant": "badge"
675
+ "label": "Edit",
676
+ "event": "EDIT",
677
+ "variant": "ghost"
676
678
  },
677
679
  {
678
- "variant": "body",
679
- "format": "number",
680
- "name": "rating"
681
- },
680
+ "event": "DELETE",
681
+ "label": "Delete",
682
+ "variant": "danger"
683
+ }
684
+ ],
685
+ "cols": 2.0,
686
+ "columns": [
682
687
  {
683
- "name": "location",
684
- "variant": "body"
688
+ "icon": "briefcase",
689
+ "name": "name",
690
+ "variant": "h3"
685
691
  },
686
692
  {
687
- "name": "phone",
688
- "variant": "caption"
689
- }
690
- ],
691
- "itemActions": [
693
+ "variant": "badge",
694
+ "name": "specialty"
695
+ },
692
696
  {
693
- "variant": "ghost",
694
- "event": "VIEW",
695
- "label": "View"
697
+ "format": "number",
698
+ "variant": "body",
699
+ "name": "rating"
696
700
  },
697
701
  {
698
- "event": "EDIT",
699
- "variant": "ghost",
700
- "label": "Edit"
702
+ "variant": "body",
703
+ "name": "location"
701
704
  },
702
705
  {
703
- "event": "DELETE",
704
- "label": "Delete",
705
- "variant": "danger"
706
+ "variant": "caption",
707
+ "name": "phone"
706
708
  }
707
709
  ],
708
- "cols": 2.0
710
+ "gap": "md",
711
+ "entity": "@payload.data",
712
+ "fields": [],
713
+ "type": "data-grid"
709
714
  }
710
- ],
711
- "direction": "vertical",
712
- "gap": "lg",
713
- "className": "max-w-5xl mx-auto w-full",
714
- "type": "stack"
715
+ ]
715
716
  }
716
- ],
717
- "appName": "BookingSystemApp"
717
+ ]
718
718
  }
719
719
  ]
720
720
  ]
@@ -728,11 +728,8 @@
728
728
  "render-ui",
729
729
  "main",
730
730
  {
731
- "type": "stack",
732
- "direction": "vertical",
733
- "gap": "md",
734
- "align": "center",
735
731
  "className": "py-12",
732
+ "align": "center",
736
733
  "children": [
737
734
  {
738
735
  "color": "destructive",
@@ -741,23 +738,26 @@
741
738
  },
742
739
  {
743
740
  "variant": "h3",
744
- "content": "Failed to load provider",
745
- "type": "typography"
741
+ "type": "typography",
742
+ "content": "Failed to load provider"
746
743
  },
747
744
  {
748
745
  "variant": "body",
749
- "type": "typography",
750
746
  "content": "@payload.error",
747
+ "type": "typography",
751
748
  "color": "muted"
752
749
  },
753
750
  {
754
- "action": "INIT",
755
- "icon": "rotate-ccw",
756
751
  "label": "Retry",
752
+ "action": "INIT",
757
753
  "type": "button",
758
- "variant": "primary"
754
+ "variant": "primary",
755
+ "icon": "rotate-ccw"
759
756
  }
760
- ]
757
+ ],
758
+ "type": "stack",
759
+ "direction": "vertical",
760
+ "gap": "md"
761
761
  }
762
762
  ]
763
763
  ]
@@ -926,8 +926,14 @@
926
926
  "event": "INIT",
927
927
  "effects": [
928
928
  [
929
- "ref",
930
- "Provider"
929
+ "fetch",
930
+ "Provider",
931
+ {
932
+ "emit": {
933
+ "failure": "ProviderLoadFailed",
934
+ "success": "ProviderLoaded"
935
+ }
936
+ }
931
937
  ]
932
938
  ]
933
939
  },
@@ -951,31 +957,30 @@
951
957
  "modal",
952
958
  {
953
959
  "type": "stack",
960
+ "gap": "md",
954
961
  "children": [
955
962
  {
956
- "direction": "horizontal",
957
963
  "children": [
958
964
  {
959
- "name": "plus-circle",
960
- "type": "icon"
965
+ "type": "icon",
966
+ "name": "plus-circle"
961
967
  },
962
968
  {
963
- "variant": "h3",
964
969
  "type": "typography",
970
+ "variant": "h3",
965
971
  "content": "Create Provider"
966
972
  }
967
973
  ],
968
974
  "gap": "sm",
969
- "type": "stack"
975
+ "type": "stack",
976
+ "direction": "horizontal"
970
977
  },
971
978
  {
972
979
  "type": "divider"
973
980
  },
974
981
  {
975
982
  "mode": "create",
976
- "cancelEvent": "CLOSE",
977
983
  "type": "form-section",
978
- "submitEvent": "SAVE",
979
984
  "fields": [
980
985
  "name",
981
986
  "specialty",
@@ -983,10 +988,11 @@
983
988
  "phone",
984
989
  "rating",
985
990
  "available"
986
- ]
991
+ ],
992
+ "submitEvent": "SAVE",
993
+ "cancelEvent": "CLOSE"
987
994
  }
988
995
  ],
989
- "gap": "md",
990
996
  "direction": "vertical"
991
997
  }
992
998
  ]
@@ -1226,8 +1232,14 @@
1226
1232
  "event": "INIT",
1227
1233
  "effects": [
1228
1234
  [
1229
- "ref",
1230
- "Provider"
1235
+ "fetch",
1236
+ "Provider",
1237
+ {
1238
+ "emit": {
1239
+ "success": "ProviderLoaded",
1240
+ "failure": "ProviderLoadFailed"
1241
+ }
1242
+ }
1231
1243
  ]
1232
1244
  ]
1233
1245
  },
@@ -1240,44 +1252,45 @@
1240
1252
  "fetch",
1241
1253
  "Provider",
1242
1254
  {
1243
- "id": "@payload.id",
1244
1255
  "emit": {
1245
- "failure": "ProviderLoadFailed",
1246
- "success": "ProviderLoaded"
1247
- }
1256
+ "success": "ProviderLoaded",
1257
+ "failure": "ProviderLoadFailed"
1258
+ },
1259
+ "id": "@payload.id"
1248
1260
  }
1249
1261
  ],
1250
1262
  [
1251
1263
  "render-ui",
1252
1264
  "modal",
1253
1265
  {
1254
- "type": "stack",
1255
1266
  "direction": "vertical",
1267
+ "type": "stack",
1256
1268
  "gap": "md",
1257
1269
  "children": [
1258
1270
  {
1271
+ "gap": "sm",
1259
1272
  "children": [
1260
1273
  {
1261
1274
  "type": "icon",
1262
1275
  "name": "edit"
1263
1276
  },
1264
1277
  {
1265
- "variant": "h3",
1266
1278
  "type": "typography",
1267
- "content": "Edit Provider"
1279
+ "content": "Edit Provider",
1280
+ "variant": "h3"
1268
1281
  }
1269
1282
  ],
1270
1283
  "type": "stack",
1271
- "gap": "sm",
1272
1284
  "direction": "horizontal"
1273
1285
  },
1274
1286
  {
1275
1287
  "type": "divider"
1276
1288
  },
1277
1289
  {
1278
- "submitEvent": "SAVE",
1279
- "cancelEvent": "CLOSE",
1290
+ "entity": "@payload.row",
1280
1291
  "type": "form-section",
1292
+ "cancelEvent": "CLOSE",
1293
+ "submitEvent": "SAVE",
1281
1294
  "fields": [
1282
1295
  "name",
1283
1296
  "specialty",
@@ -1286,7 +1299,6 @@
1286
1299
  "rating",
1287
1300
  "available"
1288
1301
  ],
1289
- "entity": "@payload.row",
1290
1302
  "mode": "edit"
1291
1303
  }
1292
1304
  ]
@@ -1330,8 +1342,8 @@
1330
1342
  "@payload.data",
1331
1343
  {
1332
1344
  "emit": {
1333
- "failure": "ProviderUpdateFailed",
1334
- "success": "ProviderUpdated"
1345
+ "success": "ProviderUpdated",
1346
+ "failure": "ProviderUpdateFailed"
1335
1347
  }
1336
1348
  }
1337
1349
  ],
@@ -1462,8 +1474,14 @@
1462
1474
  "event": "INIT",
1463
1475
  "effects": [
1464
1476
  [
1465
- "ref",
1466
- "Provider"
1477
+ "fetch",
1478
+ "Provider",
1479
+ {
1480
+ "emit": {
1481
+ "success": "ProviderLoaded",
1482
+ "failure": "ProviderLoadFailed"
1483
+ }
1484
+ }
1467
1485
  ]
1468
1486
  ]
1469
1487
  },
@@ -1488,28 +1506,30 @@
1488
1506
  "modal",
1489
1507
  {
1490
1508
  "direction": "vertical",
1509
+ "type": "stack",
1491
1510
  "children": [
1492
1511
  {
1493
1512
  "type": "stack",
1494
1513
  "direction": "horizontal",
1495
- "align": "center",
1496
1514
  "children": [
1497
1515
  {
1498
1516
  "name": "eye",
1499
1517
  "type": "icon"
1500
1518
  },
1501
1519
  {
1502
- "variant": "h3",
1503
1520
  "content": "@entity.name",
1504
- "type": "typography"
1521
+ "type": "typography",
1522
+ "variant": "h3"
1505
1523
  }
1506
1524
  ],
1507
- "gap": "sm"
1525
+ "gap": "sm",
1526
+ "align": "center"
1508
1527
  },
1509
1528
  {
1510
1529
  "type": "divider"
1511
1530
  },
1512
1531
  {
1532
+ "gap": "md",
1513
1533
  "type": "stack",
1514
1534
  "children": [
1515
1535
  {
@@ -1518,21 +1538,21 @@
1518
1538
  "content": "Name"
1519
1539
  },
1520
1540
  {
1521
- "variant": "body",
1541
+ "type": "typography",
1522
1542
  "content": "@entity.name",
1523
- "type": "typography"
1543
+ "variant": "body"
1524
1544
  }
1525
1545
  ],
1526
- "gap": "md",
1527
1546
  "direction": "horizontal"
1528
1547
  },
1529
1548
  {
1530
1549
  "direction": "horizontal",
1550
+ "gap": "md",
1531
1551
  "children": [
1532
1552
  {
1533
- "type": "typography",
1553
+ "variant": "caption",
1534
1554
  "content": "Specialty",
1535
- "variant": "caption"
1555
+ "type": "typography"
1536
1556
  },
1537
1557
  {
1538
1558
  "content": "@entity.specialty",
@@ -1540,103 +1560,101 @@
1540
1560
  "variant": "body"
1541
1561
  }
1542
1562
  ],
1543
- "gap": "md",
1544
1563
  "type": "stack"
1545
1564
  },
1546
1565
  {
1547
- "direction": "horizontal",
1548
1566
  "type": "stack",
1567
+ "direction": "horizontal",
1568
+ "gap": "md",
1549
1569
  "children": [
1550
1570
  {
1551
- "content": "Location",
1571
+ "variant": "caption",
1552
1572
  "type": "typography",
1553
- "variant": "caption"
1573
+ "content": "Location"
1554
1574
  },
1555
1575
  {
1556
- "variant": "body",
1557
1576
  "content": "@entity.location",
1558
- "type": "typography"
1577
+ "type": "typography",
1578
+ "variant": "body"
1559
1579
  }
1560
- ],
1561
- "gap": "md"
1580
+ ]
1562
1581
  },
1563
1582
  {
1583
+ "gap": "md",
1584
+ "type": "stack",
1564
1585
  "direction": "horizontal",
1565
1586
  "children": [
1566
1587
  {
1588
+ "content": "Phone",
1567
1589
  "type": "typography",
1568
- "variant": "caption",
1569
- "content": "Phone"
1590
+ "variant": "caption"
1570
1591
  },
1571
1592
  {
1572
- "content": "@entity.phone",
1573
1593
  "type": "typography",
1574
- "variant": "body"
1594
+ "variant": "body",
1595
+ "content": "@entity.phone"
1575
1596
  }
1576
- ],
1577
- "type": "stack",
1578
- "gap": "md"
1597
+ ]
1579
1598
  },
1580
1599
  {
1581
- "type": "stack",
1582
- "gap": "md",
1583
- "direction": "horizontal",
1584
1600
  "children": [
1585
1601
  {
1586
- "type": "typography",
1587
1602
  "variant": "caption",
1603
+ "type": "typography",
1588
1604
  "content": "Rating"
1589
1605
  },
1590
1606
  {
1591
1607
  "variant": "body",
1592
- "content": "@entity.rating",
1593
- "type": "typography"
1608
+ "type": "typography",
1609
+ "content": "@entity.rating"
1594
1610
  }
1595
- ]
1611
+ ],
1612
+ "type": "stack",
1613
+ "gap": "md",
1614
+ "direction": "horizontal"
1596
1615
  },
1597
1616
  {
1598
1617
  "type": "stack",
1618
+ "gap": "md",
1599
1619
  "children": [
1600
1620
  {
1601
1621
  "content": "Available",
1602
- "variant": "caption",
1603
- "type": "typography"
1622
+ "type": "typography",
1623
+ "variant": "caption"
1604
1624
  },
1605
1625
  {
1626
+ "type": "typography",
1606
1627
  "content": "@entity.available",
1607
- "variant": "body",
1608
- "type": "typography"
1628
+ "variant": "body"
1609
1629
  }
1610
1630
  ],
1611
- "direction": "horizontal",
1612
- "gap": "md"
1631
+ "direction": "horizontal"
1613
1632
  },
1614
1633
  {
1615
1634
  "type": "divider"
1616
1635
  },
1617
1636
  {
1637
+ "type": "stack",
1638
+ "direction": "horizontal",
1618
1639
  "children": [
1619
1640
  {
1620
- "type": "button",
1621
1641
  "action": "EDIT",
1642
+ "label": "Edit",
1622
1643
  "variant": "primary",
1623
- "icon": "edit",
1624
- "label": "Edit"
1644
+ "type": "button",
1645
+ "icon": "edit"
1625
1646
  },
1626
1647
  {
1627
- "variant": "ghost",
1628
- "action": "CLOSE",
1629
1648
  "label": "Close",
1630
- "type": "button"
1649
+ "variant": "ghost",
1650
+ "type": "button",
1651
+ "action": "CLOSE"
1631
1652
  }
1632
1653
  ],
1633
- "direction": "horizontal",
1634
- "type": "stack",
1635
1654
  "gap": "sm",
1636
1655
  "justify": "end"
1637
1656
  }
1638
1657
  ],
1639
- "type": "stack",
1640
1658
  "gap": "md"
1641
1659
  }
1642
1660
  ]
@@ -1853,8 +1871,14 @@
1853
1871
  "event": "INIT",
1854
1872
  "effects": [
1855
1873
  [
1856
- "ref",
1857
- "Provider"
1874
+ "fetch",
1875
+ "Provider",
1876
+ {
1877
+ "emit": {
1878
+ "failure": "ProviderLoadFailed",
1879
+ "success": "ProviderLoaded"
1880
+ }
1881
+ }
1858
1882
  ]
1859
1883
  ]
1860
1884
  },
@@ -1872,19 +1896,17 @@
1872
1896
  "fetch",
1873
1897
  "Provider",
1874
1898
  {
1875
- "id": "@payload.id",
1876
1899
  "emit": {
1877
1900
  "success": "ProviderLoaded",
1878
1901
  "failure": "ProviderLoadFailed"
1879
- }
1902
+ },
1903
+ "id": "@payload.id"
1880
1904
  }
1881
1905
  ],
1882
1906
  [
1883
1907
  "render-ui",
1884
1908
  "modal",
1885
1909
  {
1886
- "type": "stack",
1887
- "direction": "vertical",
1888
1910
  "children": [
1889
1911
  {
1890
1912
  "direction": "horizontal",
@@ -1897,9 +1919,9 @@
1897
1919
  "name": "alert-triangle"
1898
1920
  },
1899
1921
  {
1900
- "content": "Delete Provider",
1922
+ "type": "typography",
1901
1923
  "variant": "h3",
1902
- "type": "typography"
1924
+ "content": "Delete Provider"
1903
1925
  }
1904
1926
  ]
1905
1927
  },
@@ -1915,24 +1937,26 @@
1915
1937
  "type": "stack",
1916
1938
  "direction": "horizontal",
1917
1939
  "justify": "end",
1918
- "gap": "sm",
1919
1940
  "children": [
1920
1941
  {
1921
- "action": "CANCEL",
1922
1942
  "label": "Cancel",
1943
+ "variant": "ghost",
1923
1944
  "type": "button",
1924
- "variant": "ghost"
1945
+ "action": "CANCEL"
1925
1946
  },
1926
1947
  {
1927
- "icon": "check",
1948
+ "action": "CONFIRM_DELETE",
1949
+ "type": "button",
1928
1950
  "label": "Delete",
1929
1951
  "variant": "danger",
1930
- "type": "button",
1931
- "action": "CONFIRM_DELETE"
1952
+ "icon": "check"
1932
1953
  }
1933
- ]
1954
+ ],
1955
+ "gap": "sm"
1934
1956
  }
1935
1957
  ],
1958
+ "direction": "vertical",
1959
+ "type": "stack",
1936
1960
  "gap": "md"
1937
1961
  }
1938
1962
  ]
@@ -1968,8 +1992,14 @@
1968
1992
  }
1969
1993
  ],
1970
1994
  [
1971
- "ref",
1972
- "Provider"
1995
+ "fetch",
1996
+ "Provider",
1997
+ {
1998
+ "emit": {
1999
+ "failure": "ProviderLoadFailed",
2000
+ "success": "ProviderLoaded"
2001
+ }
2002
+ }
1973
2003
  ],
1974
2004
  [
1975
2005
  "emit",
@@ -1995,8 +2025,14 @@
1995
2025
  }
1996
2026
  ],
1997
2027
  [
1998
- "ref",
1999
- "Provider"
2028
+ "fetch",
2029
+ "Provider",
2030
+ {
2031
+ "emit": {
2032
+ "success": "ProviderLoaded",
2033
+ "failure": "ProviderLoadFailed"
2034
+ }
2035
+ }
2000
2036
  ]
2001
2037
  ]
2002
2038
  },
@@ -2018,8 +2054,14 @@
2018
2054
  }
2019
2055
  ],
2020
2056
  [
2021
- "ref",
2022
- "Provider"
2057
+ "fetch",
2058
+ "Provider",
2059
+ {
2060
+ "emit": {
2061
+ "success": "ProviderLoaded",
2062
+ "failure": "ProviderLoadFailed"
2063
+ }
2064
+ }
2023
2065
  ]
2024
2066
  ]
2025
2067
  }
@@ -2266,8 +2308,8 @@
2266
2308
  "Booking",
2267
2309
  {
2268
2310
  "emit": {
2269
- "failure": "BookingLoadFailed",
2270
- "success": "BookingLoaded"
2311
+ "success": "BookingLoaded",
2312
+ "failure": "BookingLoadFailed"
2271
2313
  }
2272
2314
  }
2273
2315
  ],
@@ -2275,91 +2317,92 @@
2275
2317
  "render-ui",
2276
2318
  "main",
2277
2319
  {
2320
+ "type": "dashboard-layout",
2321
+ "appName": "BookingSystemApp",
2278
2322
  "children": [
2279
2323
  {
2324
+ "padding": "lg",
2280
2325
  "maxWidth": "lg",
2281
2326
  "type": "container",
2282
2327
  "children": [
2283
2328
  {
2284
- "type": "stack",
2285
- "direction": "vertical",
2286
2329
  "children": [
2287
2330
  {
2288
- "align": "center",
2331
+ "type": "stack",
2332
+ "gap": "sm",
2289
2333
  "children": [
2290
2334
  {
2291
2335
  "type": "icon",
2292
2336
  "name": "calendar"
2293
2337
  },
2294
2338
  {
2339
+ "variant": "h2",
2295
2340
  "type": "typography",
2296
- "content": "Book Appointment",
2297
- "variant": "h2"
2341
+ "content": "Book Appointment"
2298
2342
  }
2299
2343
  ],
2300
- "type": "stack",
2301
2344
  "direction": "horizontal",
2302
- "gap": "sm"
2345
+ "align": "center"
2303
2346
  },
2304
2347
  {
2348
+ "count": 3.0,
2305
2349
  "currentIndex": 0.0,
2306
- "type": "progress-dots",
2307
- "count": 3.0
2350
+ "type": "progress-dots"
2308
2351
  },
2309
2352
  {
2353
+ "currentStep": 0.0,
2354
+ "type": "wizard-progress",
2310
2355
  "steps": [
2311
2356
  "Provider Selection",
2312
2357
  "Your Details",
2313
2358
  "Date and Time"
2314
- ],
2315
- "currentStep": 0.0,
2316
- "type": "wizard-progress"
2359
+ ]
2317
2360
  },
2318
2361
  {
2319
2362
  "type": "divider"
2320
2363
  },
2321
2364
  {
2322
2365
  "content": "Provider Selection",
2323
- "variant": "h3",
2324
- "type": "typography"
2366
+ "type": "typography",
2367
+ "variant": "h3"
2325
2368
  },
2326
2369
  {
2327
2370
  "type": "form-section",
2371
+ "submitEvent": "NEXT",
2328
2372
  "fields": [
2329
2373
  "providerName"
2330
2374
  ],
2331
- "cancelEvent": "INIT",
2332
2375
  "mode": "create",
2333
- "submitEvent": "NEXT"
2376
+ "cancelEvent": "INIT"
2334
2377
  },
2335
2378
  {
2336
- "direction": "horizontal",
2337
- "gap": "sm",
2338
2379
  "children": [
2339
2380
  {
2381
+ "action": "NEXT",
2340
2382
  "variant": "primary",
2341
- "type": "button",
2342
2383
  "label": "Next",
2343
- "action": "NEXT",
2344
- "icon": "arrow-right"
2384
+ "icon": "arrow-right",
2385
+ "type": "button"
2345
2386
  }
2346
2387
  ],
2347
2388
  "type": "stack",
2389
+ "direction": "horizontal",
2390
+ "gap": "sm",
2348
2391
  "justify": "end"
2349
2392
  }
2350
2393
  ],
2394
+ "direction": "vertical",
2395
+ "type": "stack",
2351
2396
  "gap": "lg"
2352
2397
  }
2353
- ],
2354
- "padding": "lg"
2398
+ ]
2355
2399
  }
2356
2400
  ],
2357
- "type": "dashboard-layout",
2358
2401
  "navItems": [
2359
2402
  {
2360
- "href": "/providers",
2403
+ "label": "Providers",
2361
2404
  "icon": "user-check",
2362
- "label": "Providers"
2405
+ "href": "/providers"
2363
2406
  },
2364
2407
  {
2365
2408
  "href": "/book",
@@ -2367,17 +2410,16 @@
2367
2410
  "label": "Book"
2368
2411
  },
2369
2412
  {
2370
- "icon": "calendar",
2371
2413
  "label": "Appointments",
2372
- "href": "/appointments"
2414
+ "href": "/appointments",
2415
+ "icon": "calendar"
2373
2416
  },
2374
2417
  {
2375
2418
  "href": "/schedule",
2376
2419
  "icon": "clock",
2377
2420
  "label": "Schedule"
2378
2421
  }
2379
- ],
2380
- "appName": "BookingSystemApp"
2422
+ ]
2381
2423
  }
2382
2424
  ]
2383
2425
  ]
@@ -2392,8 +2434,8 @@
2392
2434
  "Booking",
2393
2435
  {
2394
2436
  "emit": {
2395
- "failure": "BookingLoadFailed",
2396
- "success": "BookingLoaded"
2437
+ "success": "BookingLoaded",
2438
+ "failure": "BookingLoadFailed"
2397
2439
  }
2398
2440
  }
2399
2441
  ],
@@ -2401,41 +2443,17 @@
2401
2443
  "render-ui",
2402
2444
  "main",
2403
2445
  {
2404
- "appName": "BookingSystemApp",
2405
- "navItems": [
2406
- {
2407
- "href": "/providers",
2408
- "label": "Providers",
2409
- "icon": "user-check"
2410
- },
2411
- {
2412
- "icon": "calendar-plus",
2413
- "label": "Book",
2414
- "href": "/book"
2415
- },
2416
- {
2417
- "href": "/appointments",
2418
- "label": "Appointments",
2419
- "icon": "calendar"
2420
- },
2421
- {
2422
- "label": "Schedule",
2423
- "icon": "clock",
2424
- "href": "/schedule"
2425
- }
2426
- ],
2427
- "type": "dashboard-layout",
2428
2446
  "children": [
2429
2447
  {
2430
2448
  "padding": "lg",
2449
+ "type": "container",
2450
+ "maxWidth": "lg",
2431
2451
  "children": [
2432
2452
  {
2433
- "type": "stack",
2434
- "gap": "lg",
2435
2453
  "direction": "vertical",
2454
+ "type": "stack",
2436
2455
  "children": [
2437
2456
  {
2438
- "type": "stack",
2439
2457
  "children": [
2440
2458
  {
2441
2459
  "type": "icon",
@@ -2443,27 +2461,28 @@
2443
2461
  },
2444
2462
  {
2445
2463
  "content": "Book Appointment",
2446
- "type": "typography",
2447
- "variant": "h2"
2464
+ "variant": "h2",
2465
+ "type": "typography"
2448
2466
  }
2449
2467
  ],
2450
2468
  "direction": "horizontal",
2451
2469
  "gap": "sm",
2470
+ "type": "stack",
2452
2471
  "align": "center"
2453
2472
  },
2454
2473
  {
2455
- "currentIndex": 1.0,
2474
+ "count": 3.0,
2456
2475
  "type": "progress-dots",
2457
- "count": 3.0
2476
+ "currentIndex": 1.0
2458
2477
  },
2459
2478
  {
2479
+ "currentStep": 1.0,
2480
+ "type": "wizard-progress",
2460
2481
  "steps": [
2461
2482
  "Provider Selection",
2462
2483
  "Your Details",
2463
2484
  "Date and Time"
2464
- ],
2465
- "currentStep": 1.0,
2466
- "type": "wizard-progress"
2485
+ ]
2467
2486
  },
2468
2487
  {
2469
2488
  "type": "divider"
@@ -2474,42 +2493,65 @@
2474
2493
  "variant": "h3"
2475
2494
  },
2476
2495
  {
2496
+ "mode": "create",
2477
2497
  "cancelEvent": "PREV",
2478
2498
  "fields": [
2479
2499
  "customerName",
2480
2500
  "customerEmail"
2481
2501
  ],
2482
- "type": "form-section",
2483
- "mode": "create",
2484
- "submitEvent": "NEXT"
2502
+ "submitEvent": "NEXT",
2503
+ "type": "form-section"
2485
2504
  },
2486
2505
  {
2487
- "gap": "sm",
2488
2506
  "direction": "horizontal",
2489
- "justify": "end",
2490
2507
  "children": [
2491
2508
  {
2509
+ "label": "Back",
2492
2510
  "icon": "arrow-left",
2493
- "action": "PREV",
2511
+ "variant": "ghost",
2494
2512
  "type": "button",
2495
- "label": "Back",
2496
- "variant": "ghost"
2513
+ "action": "PREV"
2497
2514
  },
2498
2515
  {
2499
- "variant": "primary",
2500
2516
  "icon": "arrow-right",
2501
2517
  "type": "button",
2502
2518
  "label": "Next",
2519
+ "variant": "primary",
2503
2520
  "action": "NEXT"
2504
2521
  }
2505
2522
  ],
2506
- "type": "stack"
2523
+ "gap": "sm",
2524
+ "type": "stack",
2525
+ "justify": "end"
2507
2526
  }
2508
- ]
2527
+ ],
2528
+ "gap": "lg"
2509
2529
  }
2510
- ],
2511
- "maxWidth": "lg",
2512
- "type": "container"
2530
+ ]
2531
+ }
2532
+ ],
2533
+ "type": "dashboard-layout",
2534
+ "appName": "BookingSystemApp",
2535
+ "navItems": [
2536
+ {
2537
+ "href": "/providers",
2538
+ "icon": "user-check",
2539
+ "label": "Providers"
2540
+ },
2541
+ {
2542
+ "href": "/book",
2543
+ "label": "Book",
2544
+ "icon": "calendar-plus"
2545
+ },
2546
+ {
2547
+ "icon": "calendar",
2548
+ "href": "/appointments",
2549
+ "label": "Appointments"
2550
+ },
2551
+ {
2552
+ "href": "/schedule",
2553
+ "icon": "clock",
2554
+ "label": "Schedule"
2513
2555
  }
2514
2556
  ]
2515
2557
  }
@@ -2526,8 +2568,8 @@
2526
2568
  "Booking",
2527
2569
  {
2528
2570
  "emit": {
2529
- "failure": "BookingLoadFailed",
2530
- "success": "BookingLoaded"
2571
+ "success": "BookingLoaded",
2572
+ "failure": "BookingLoadFailed"
2531
2573
  }
2532
2574
  }
2533
2575
  ],
@@ -2535,38 +2577,65 @@
2535
2577
  "render-ui",
2536
2578
  "main",
2537
2579
  {
2580
+ "appName": "BookingSystemApp",
2581
+ "navItems": [
2582
+ {
2583
+ "label": "Providers",
2584
+ "icon": "user-check",
2585
+ "href": "/providers"
2586
+ },
2587
+ {
2588
+ "icon": "calendar-plus",
2589
+ "href": "/book",
2590
+ "label": "Book"
2591
+ },
2592
+ {
2593
+ "label": "Appointments",
2594
+ "href": "/appointments",
2595
+ "icon": "calendar"
2596
+ },
2597
+ {
2598
+ "href": "/schedule",
2599
+ "icon": "clock",
2600
+ "label": "Schedule"
2601
+ }
2602
+ ],
2538
2603
  "children": [
2539
2604
  {
2540
2605
  "type": "container",
2541
2606
  "maxWidth": "lg",
2607
+ "padding": "lg",
2542
2608
  "children": [
2543
2609
  {
2610
+ "type": "stack",
2611
+ "gap": "lg",
2612
+ "direction": "vertical",
2544
2613
  "children": [
2545
2614
  {
2615
+ "type": "stack",
2546
2616
  "children": [
2547
2617
  {
2548
2618
  "name": "calendar",
2549
2619
  "type": "icon"
2550
2620
  },
2551
2621
  {
2622
+ "content": "Book Appointment",
2552
2623
  "variant": "h2",
2553
- "type": "typography",
2554
- "content": "Book Appointment"
2624
+ "type": "typography"
2555
2625
  }
2556
2626
  ],
2557
- "type": "stack",
2558
- "align": "center",
2627
+ "direction": "horizontal",
2559
2628
  "gap": "sm",
2560
- "direction": "horizontal"
2629
+ "align": "center"
2561
2630
  },
2562
2631
  {
2563
2632
  "count": 3.0,
2564
- "currentIndex": 2.0,
2565
- "type": "progress-dots"
2633
+ "type": "progress-dots",
2634
+ "currentIndex": 2.0
2566
2635
  },
2567
2636
  {
2568
- "currentStep": 2.0,
2569
2637
  "type": "wizard-progress",
2638
+ "currentStep": 2.0,
2570
2639
  "steps": [
2571
2640
  "Provider Selection",
2572
2641
  "Your Details",
@@ -2577,76 +2646,49 @@
2577
2646
  "type": "divider"
2578
2647
  },
2579
2648
  {
2580
- "variant": "h3",
2649
+ "content": "Date and Time",
2581
2650
  "type": "typography",
2582
- "content": "Date and Time"
2651
+ "variant": "h3"
2583
2652
  },
2584
2653
  {
2585
- "mode": "create",
2586
- "cancelEvent": "PREV",
2587
- "type": "form-section",
2588
2654
  "fields": [
2589
2655
  "date",
2590
2656
  "time",
2591
2657
  "notes"
2592
2658
  ],
2593
- "submitEvent": "NEXT"
2659
+ "cancelEvent": "PREV",
2660
+ "mode": "create",
2661
+ "submitEvent": "NEXT",
2662
+ "type": "form-section"
2594
2663
  },
2595
2664
  {
2596
- "gap": "sm",
2597
2665
  "type": "stack",
2598
- "direction": "horizontal",
2599
- "justify": "end",
2600
2666
  "children": [
2601
2667
  {
2602
- "type": "button",
2603
- "action": "PREV",
2604
2668
  "label": "Back",
2669
+ "type": "button",
2670
+ "variant": "ghost",
2605
2671
  "icon": "arrow-left",
2606
- "variant": "ghost"
2672
+ "action": "PREV"
2607
2673
  },
2608
2674
  {
2609
- "label": "Next",
2610
- "type": "button",
2611
2675
  "variant": "primary",
2612
2676
  "icon": "arrow-right",
2613
- "action": "NEXT"
2677
+ "label": "Next",
2678
+ "action": "NEXT",
2679
+ "type": "button"
2614
2680
  }
2615
- ]
2681
+ ],
2682
+ "gap": "sm",
2683
+ "direction": "horizontal",
2684
+ "justify": "end"
2616
2685
  }
2617
- ],
2618
- "gap": "lg",
2619
- "direction": "vertical",
2620
- "type": "stack"
2686
+ ]
2621
2687
  }
2622
- ],
2623
- "padding": "lg"
2688
+ ]
2624
2689
  }
2625
2690
  ],
2626
- "appName": "BookingSystemApp",
2627
- "type": "dashboard-layout",
2628
- "navItems": [
2629
- {
2630
- "label": "Providers",
2631
- "href": "/providers",
2632
- "icon": "user-check"
2633
- },
2634
- {
2635
- "label": "Book",
2636
- "icon": "calendar-plus",
2637
- "href": "/book"
2638
- },
2639
- {
2640
- "href": "/appointments",
2641
- "icon": "calendar",
2642
- "label": "Appointments"
2643
- },
2644
- {
2645
- "icon": "clock",
2646
- "label": "Schedule",
2647
- "href": "/schedule"
2648
- }
2649
- ]
2691
+ "type": "dashboard-layout"
2650
2692
  }
2651
2693
  ]
2652
2694
  ]
@@ -2661,8 +2703,8 @@
2661
2703
  "Booking",
2662
2704
  {
2663
2705
  "emit": {
2664
- "failure": "BookingLoadFailed",
2665
- "success": "BookingLoaded"
2706
+ "success": "BookingLoaded",
2707
+ "failure": "BookingLoadFailed"
2666
2708
  }
2667
2709
  }
2668
2710
  ],
@@ -2673,106 +2715,106 @@
2673
2715
  "navItems": [
2674
2716
  {
2675
2717
  "icon": "user-check",
2676
- "label": "Providers",
2677
- "href": "/providers"
2718
+ "href": "/providers",
2719
+ "label": "Providers"
2678
2720
  },
2679
2721
  {
2722
+ "label": "Book",
2680
2723
  "href": "/book",
2681
- "icon": "calendar-plus",
2682
- "label": "Book"
2724
+ "icon": "calendar-plus"
2683
2725
  },
2684
2726
  {
2685
2727
  "label": "Appointments",
2686
- "href": "/appointments",
2687
- "icon": "calendar"
2728
+ "icon": "calendar",
2729
+ "href": "/appointments"
2688
2730
  },
2689
2731
  {
2690
- "icon": "clock",
2691
2732
  "label": "Schedule",
2692
- "href": "/schedule"
2733
+ "href": "/schedule",
2734
+ "icon": "clock"
2693
2735
  }
2694
2736
  ],
2695
2737
  "type": "dashboard-layout",
2696
- "appName": "BookingSystemApp",
2697
2738
  "children": [
2698
2739
  {
2699
2740
  "padding": "lg",
2700
- "type": "container",
2701
- "maxWidth": "lg",
2702
2741
  "children": [
2703
2742
  {
2704
2743
  "direction": "vertical",
2744
+ "type": "stack",
2705
2745
  "children": [
2706
2746
  {
2707
2747
  "gap": "sm",
2748
+ "type": "stack",
2708
2749
  "children": [
2709
2750
  {
2710
2751
  "type": "icon",
2711
2752
  "name": "calendar"
2712
2753
  },
2713
2754
  {
2714
- "type": "typography",
2715
2755
  "content": "Book Appointment",
2716
- "variant": "h2"
2756
+ "variant": "h2",
2757
+ "type": "typography"
2717
2758
  }
2718
2759
  ],
2719
2760
  "align": "center",
2720
- "direction": "horizontal",
2721
- "type": "stack"
2761
+ "direction": "horizontal"
2722
2762
  },
2723
2763
  {
2724
2764
  "count": 3.0,
2725
- "type": "progress-dots",
2726
- "currentIndex": 0.0
2765
+ "currentIndex": 0.0,
2766
+ "type": "progress-dots"
2727
2767
  },
2728
2768
  {
2729
- "type": "wizard-progress",
2730
2769
  "steps": [
2731
2770
  "Provider Selection",
2732
2771
  "Your Details",
2733
2772
  "Date and Time"
2734
2773
  ],
2774
+ "type": "wizard-progress",
2735
2775
  "currentStep": 0.0
2736
2776
  },
2737
2777
  {
2738
2778
  "type": "divider"
2739
2779
  },
2740
2780
  {
2741
- "variant": "h3",
2781
+ "type": "typography",
2742
2782
  "content": "Provider Selection",
2743
- "type": "typography"
2783
+ "variant": "h3"
2744
2784
  },
2745
2785
  {
2786
+ "fields": [
2787
+ "providerName"
2788
+ ],
2746
2789
  "type": "form-section",
2747
- "mode": "create",
2748
2790
  "submitEvent": "NEXT",
2749
2791
  "cancelEvent": "INIT",
2750
- "fields": [
2751
- "providerName"
2752
- ]
2792
+ "mode": "create"
2753
2793
  },
2754
2794
  {
2755
- "gap": "sm",
2756
- "justify": "end",
2757
- "type": "stack",
2758
2795
  "direction": "horizontal",
2796
+ "gap": "sm",
2759
2797
  "children": [
2760
2798
  {
2761
- "variant": "primary",
2762
- "label": "Next",
2763
2799
  "type": "button",
2800
+ "action": "NEXT",
2801
+ "variant": "primary",
2764
2802
  "icon": "arrow-right",
2765
- "action": "NEXT"
2803
+ "label": "Next"
2766
2804
  }
2767
- ]
2805
+ ],
2806
+ "type": "stack",
2807
+ "justify": "end"
2768
2808
  }
2769
2809
  ],
2770
- "gap": "lg",
2771
- "type": "stack"
2810
+ "gap": "lg"
2772
2811
  }
2773
- ]
2812
+ ],
2813
+ "type": "container",
2814
+ "maxWidth": "lg"
2774
2815
  }
2775
- ]
2816
+ ],
2817
+ "appName": "BookingSystemApp"
2776
2818
  }
2777
2819
  ]
2778
2820
  ]
@@ -2787,8 +2829,8 @@
2787
2829
  "Booking",
2788
2830
  {
2789
2831
  "emit": {
2790
- "success": "BookingLoaded",
2791
- "failure": "BookingLoadFailed"
2832
+ "failure": "BookingLoadFailed",
2833
+ "success": "BookingLoaded"
2792
2834
  }
2793
2835
  }
2794
2836
  ],
@@ -2796,112 +2838,134 @@
2796
2838
  "render-ui",
2797
2839
  "main",
2798
2840
  {
2799
- "appName": "BookingSystemApp",
2841
+ "navItems": [
2842
+ {
2843
+ "icon": "user-check",
2844
+ "href": "/providers",
2845
+ "label": "Providers"
2846
+ },
2847
+ {
2848
+ "icon": "calendar-plus",
2849
+ "label": "Book",
2850
+ "href": "/book"
2851
+ },
2852
+ {
2853
+ "label": "Appointments",
2854
+ "href": "/appointments",
2855
+ "icon": "calendar"
2856
+ },
2857
+ {
2858
+ "href": "/schedule",
2859
+ "icon": "clock",
2860
+ "label": "Schedule"
2861
+ }
2862
+ ],
2800
2863
  "children": [
2801
2864
  {
2865
+ "direction": "vertical",
2866
+ "gap": "lg",
2802
2867
  "type": "stack",
2803
2868
  "children": [
2804
2869
  {
2805
- "type": "stack",
2806
- "direction": "horizontal",
2807
2870
  "align": "center",
2871
+ "direction": "horizontal",
2872
+ "gap": "sm",
2808
2873
  "children": [
2809
2874
  {
2810
2875
  "type": "icon",
2811
2876
  "name": "calendar"
2812
2877
  },
2813
2878
  {
2814
- "type": "typography",
2815
2879
  "content": "Book Appointment",
2816
- "variant": "h2"
2880
+ "variant": "h2",
2881
+ "type": "typography"
2817
2882
  }
2818
2883
  ],
2819
- "gap": "sm"
2884
+ "type": "stack"
2820
2885
  },
2821
2886
  {
2822
- "label": "Review",
2823
- "type": "badge"
2887
+ "type": "badge",
2888
+ "label": "Review"
2824
2889
  },
2825
2890
  {
2891
+ "type": "wizard-progress",
2892
+ "currentStep": 3.0,
2826
2893
  "steps": [
2827
2894
  "Provider Selection",
2828
2895
  "Your Details",
2829
2896
  "Date and Time"
2830
- ],
2831
- "type": "wizard-progress",
2832
- "currentStep": 3.0
2897
+ ]
2833
2898
  },
2834
2899
  {
2835
2900
  "type": "divider"
2836
2901
  },
2837
2902
  {
2838
- "type": "stack",
2839
- "gap": "sm",
2840
2903
  "direction": "vertical",
2904
+ "gap": "sm",
2841
2905
  "children": [
2842
2906
  {
2843
- "justify": "between",
2844
- "type": "stack",
2845
- "direction": "horizontal",
2846
2907
  "children": [
2847
2908
  {
2848
- "content": "Provider Name",
2909
+ "variant": "caption",
2849
2910
  "type": "typography",
2850
- "variant": "caption"
2911
+ "content": "Provider Name"
2851
2912
  },
2852
2913
  {
2853
2914
  "variant": "body",
2854
- "content": "@entity.providerName",
2855
- "type": "typography"
2915
+ "type": "typography",
2916
+ "content": "@entity.providerName"
2856
2917
  }
2857
2918
  ],
2858
- "gap": "md"
2919
+ "gap": "md",
2920
+ "type": "stack",
2921
+ "direction": "horizontal",
2922
+ "justify": "between"
2859
2923
  },
2860
2924
  {
2925
+ "justify": "between",
2861
2926
  "type": "stack",
2862
2927
  "direction": "horizontal",
2863
- "gap": "md",
2864
- "justify": "between",
2865
2928
  "children": [
2866
2929
  {
2930
+ "content": "Customer Name",
2867
2931
  "type": "typography",
2868
- "variant": "caption",
2869
- "content": "Customer Name"
2932
+ "variant": "caption"
2870
2933
  },
2871
2934
  {
2872
2935
  "variant": "body",
2873
2936
  "content": "@entity.customerName",
2874
2937
  "type": "typography"
2875
2938
  }
2876
- ]
2939
+ ],
2940
+ "gap": "md"
2877
2941
  },
2878
2942
  {
2879
- "justify": "between",
2880
2943
  "gap": "md",
2881
- "type": "stack",
2882
2944
  "children": [
2883
2945
  {
2884
- "variant": "caption",
2946
+ "content": "Customer Email",
2885
2947
  "type": "typography",
2886
- "content": "Customer Email"
2948
+ "variant": "caption"
2887
2949
  },
2888
2950
  {
2889
2951
  "type": "typography",
2890
- "variant": "body",
2891
- "content": "@entity.customerEmail"
2952
+ "content": "@entity.customerEmail",
2953
+ "variant": "body"
2892
2954
  }
2893
2955
  ],
2894
- "direction": "horizontal"
2956
+ "direction": "horizontal",
2957
+ "type": "stack",
2958
+ "justify": "between"
2895
2959
  },
2896
2960
  {
2897
2961
  "type": "stack",
2898
- "justify": "between",
2899
2962
  "direction": "horizontal",
2963
+ "justify": "between",
2900
2964
  "children": [
2901
2965
  {
2902
- "variant": "caption",
2903
2966
  "type": "typography",
2904
- "content": "Date"
2967
+ "content": "Date",
2968
+ "variant": "caption"
2905
2969
  },
2906
2970
  {
2907
2971
  "variant": "body",
@@ -2912,79 +2976,57 @@
2912
2976
  "gap": "md"
2913
2977
  },
2914
2978
  {
2979
+ "type": "stack",
2980
+ "direction": "horizontal",
2981
+ "gap": "md",
2915
2982
  "children": [
2916
2983
  {
2917
2984
  "type": "typography",
2918
- "content": "Time",
2919
- "variant": "caption"
2985
+ "variant": "caption",
2986
+ "content": "Time"
2920
2987
  },
2921
2988
  {
2922
- "type": "typography",
2923
2989
  "content": "@entity.time",
2990
+ "type": "typography",
2924
2991
  "variant": "body"
2925
2992
  }
2926
2993
  ],
2927
- "type": "stack",
2928
- "direction": "horizontal",
2929
- "justify": "between",
2930
- "gap": "md"
2994
+ "justify": "between"
2931
2995
  },
2932
2996
  {
2933
- "type": "stack",
2934
- "gap": "md",
2935
- "justify": "between",
2936
2997
  "direction": "horizontal",
2998
+ "gap": "md",
2937
2999
  "children": [
2938
3000
  {
2939
- "type": "typography",
2940
3001
  "content": "Notes",
2941
- "variant": "caption"
3002
+ "variant": "caption",
3003
+ "type": "typography"
2942
3004
  },
2943
3005
  {
2944
- "type": "typography",
3006
+ "content": "@entity.notes",
2945
3007
  "variant": "body",
2946
- "content": "@entity.notes"
3008
+ "type": "typography"
2947
3009
  }
2948
- ]
3010
+ ],
3011
+ "justify": "between",
3012
+ "type": "stack"
2949
3013
  }
2950
- ]
3014
+ ],
3015
+ "type": "stack"
2951
3016
  },
2952
3017
  {
2953
- "totalSteps": 4.0,
2954
- "currentStep": 3.0,
2955
- "type": "wizard-navigation",
3018
+ "showComplete": true,
2956
3019
  "showBack": true,
2957
3020
  "showNext": false,
2958
- "showComplete": true
3021
+ "currentStep": 3.0,
3022
+ "type": "wizard-navigation",
3023
+ "totalSteps": 4.0
2959
3024
  }
2960
- ],
2961
- "gap": "lg",
2962
- "direction": "vertical"
2963
- }
2964
- ],
2965
- "navItems": [
2966
- {
2967
- "icon": "user-check",
2968
- "label": "Providers",
2969
- "href": "/providers"
2970
- },
2971
- {
2972
- "label": "Book",
2973
- "href": "/book",
2974
- "icon": "calendar-plus"
2975
- },
2976
- {
2977
- "href": "/appointments",
2978
- "icon": "calendar",
2979
- "label": "Appointments"
2980
- },
2981
- {
2982
- "icon": "clock",
2983
- "label": "Schedule",
2984
- "href": "/schedule"
3025
+ ]
2985
3026
  }
2986
3027
  ],
2987
- "type": "dashboard-layout"
3028
+ "type": "dashboard-layout",
3029
+ "appName": "BookingSystemApp"
2988
3030
  }
2989
3031
  ]
2990
3032
  ]
@@ -2999,8 +3041,8 @@
2999
3041
  "Booking",
3000
3042
  {
3001
3043
  "emit": {
3002
- "failure": "BookingLoadFailed",
3003
- "success": "BookingLoaded"
3044
+ "success": "BookingLoaded",
3045
+ "failure": "BookingLoadFailed"
3004
3046
  }
3005
3047
  }
3006
3048
  ],
@@ -3009,15 +3051,12 @@
3009
3051
  "main",
3010
3052
  {
3011
3053
  "appName": "BookingSystemApp",
3012
- "type": "dashboard-layout",
3013
3054
  "children": [
3014
3055
  {
3015
3056
  "maxWidth": "lg",
3016
- "type": "container",
3057
+ "padding": "lg",
3017
3058
  "children": [
3018
3059
  {
3019
- "direction": "vertical",
3020
- "type": "stack",
3021
3060
  "gap": "lg",
3022
3061
  "children": [
3023
3062
  {
@@ -3032,15 +3071,15 @@
3032
3071
  },
3033
3072
  {
3034
3073
  "type": "typography",
3035
- "variant": "h2",
3036
- "content": "Book Appointment"
3074
+ "content": "Book Appointment",
3075
+ "variant": "h2"
3037
3076
  }
3038
3077
  ]
3039
3078
  },
3040
3079
  {
3041
- "currentIndex": 1.0,
3080
+ "type": "progress-dots",
3042
3081
  "count": 3.0,
3043
- "type": "progress-dots"
3082
+ "currentIndex": 1.0
3044
3083
  },
3045
3084
  {
3046
3085
  "steps": [
@@ -3055,68 +3094,71 @@
3055
3094
  "type": "divider"
3056
3095
  },
3057
3096
  {
3058
- "type": "typography",
3059
3097
  "variant": "h3",
3098
+ "type": "typography",
3060
3099
  "content": "Your Details"
3061
3100
  },
3062
3101
  {
3063
- "submitEvent": "NEXT",
3064
3102
  "fields": [
3065
3103
  "customerName",
3066
3104
  "customerEmail"
3067
3105
  ],
3106
+ "submitEvent": "NEXT",
3107
+ "cancelEvent": "PREV",
3068
3108
  "mode": "create",
3069
- "type": "form-section",
3070
- "cancelEvent": "PREV"
3109
+ "type": "form-section"
3071
3110
  },
3072
3111
  {
3112
+ "type": "stack",
3113
+ "gap": "sm",
3114
+ "justify": "end",
3115
+ "direction": "horizontal",
3073
3116
  "children": [
3074
3117
  {
3075
- "icon": "arrow-left",
3076
3118
  "type": "button",
3077
- "variant": "ghost",
3078
3119
  "label": "Back",
3120
+ "icon": "arrow-left",
3121
+ "variant": "ghost",
3079
3122
  "action": "PREV"
3080
3123
  },
3081
3124
  {
3082
- "type": "button",
3083
3125
  "icon": "arrow-right",
3084
- "label": "Next",
3085
3126
  "action": "NEXT",
3127
+ "type": "button",
3128
+ "label": "Next",
3086
3129
  "variant": "primary"
3087
3130
  }
3088
- ],
3089
- "gap": "sm",
3090
- "justify": "end",
3091
- "direction": "horizontal",
3092
- "type": "stack"
3131
+ ]
3093
3132
  }
3094
- ]
3133
+ ],
3134
+ "type": "stack",
3135
+ "direction": "vertical"
3095
3136
  }
3096
3137
  ],
3097
- "padding": "lg"
3138
+ "type": "container"
3098
3139
  }
3099
3140
  ],
3141
+ "type": "dashboard-layout",
3100
3142
  "navItems": [
3101
3143
  {
3102
3144
  "href": "/providers",
3103
- "label": "Providers",
3104
- "icon": "user-check"
3145
+ "icon": "user-check",
3146
+ "label": "Providers"
3105
3147
  },
3106
3148
  {
3107
- "icon": "calendar-plus",
3108
3149
  "label": "Book",
3109
- "href": "/book"
3150
+ "href": "/book",
3151
+ "icon": "calendar-plus"
3110
3152
  },
3111
3153
  {
3112
3154
  "href": "/appointments",
3113
- "label": "Appointments",
3114
- "icon": "calendar"
3155
+ "icon": "calendar",
3156
+ "label": "Appointments"
3115
3157
  },
3116
3158
  {
3117
- "href": "/schedule",
3159
+ "label": "Schedule",
3118
3160
  "icon": "clock",
3119
- "label": "Schedule"
3161
+ "href": "/schedule"
3120
3162
  }
3121
3163
  ]
3122
3164
  }
@@ -3133,8 +3175,8 @@
3133
3175
  "Booking",
3134
3176
  {
3135
3177
  "emit": {
3136
- "failure": "BookingLoadFailed",
3137
- "success": "BookingLoaded"
3178
+ "success": "BookingLoaded",
3179
+ "failure": "BookingLoadFailed"
3138
3180
  }
3139
3181
  }
3140
3182
  ],
@@ -3142,35 +3184,13 @@
3142
3184
  "render-ui",
3143
3185
  "main",
3144
3186
  {
3145
- "type": "dashboard-layout",
3146
- "navItems": [
3147
- {
3148
- "icon": "user-check",
3149
- "label": "Providers",
3150
- "href": "/providers"
3151
- },
3152
- {
3153
- "href": "/book",
3154
- "label": "Book",
3155
- "icon": "calendar-plus"
3156
- },
3157
- {
3158
- "label": "Appointments",
3159
- "icon": "calendar",
3160
- "href": "/appointments"
3161
- },
3162
- {
3163
- "icon": "clock",
3164
- "label": "Schedule",
3165
- "href": "/schedule"
3166
- }
3167
- ],
3168
3187
  "children": [
3169
3188
  {
3189
+ "padding": "lg",
3170
3190
  "maxWidth": "lg",
3171
- "type": "container",
3172
3191
  "children": [
3173
3192
  {
3193
+ "type": "stack",
3174
3194
  "children": [
3175
3195
  {
3176
3196
  "direction": "horizontal",
@@ -3178,13 +3198,13 @@
3178
3198
  "align": "center",
3179
3199
  "children": [
3180
3200
  {
3181
- "type": "icon",
3182
- "name": "calendar"
3201
+ "name": "calendar",
3202
+ "type": "icon"
3183
3203
  },
3184
3204
  {
3185
- "variant": "h2",
3205
+ "type": "typography",
3186
3206
  "content": "Book Appointment",
3187
- "type": "typography"
3207
+ "variant": "h2"
3188
3208
  }
3189
3209
  ],
3190
3210
  "gap": "sm"
@@ -3200,60 +3220,82 @@
3200
3220
  "Your Details",
3201
3221
  "Date and Time"
3202
3222
  ],
3203
- "type": "wizard-progress",
3204
- "currentStep": 2.0
3223
+ "currentStep": 2.0,
3224
+ "type": "wizard-progress"
3205
3225
  },
3206
3226
  {
3207
3227
  "type": "divider"
3208
3228
  },
3209
3229
  {
3230
+ "variant": "h3",
3210
3231
  "type": "typography",
3211
- "content": "Date and Time",
3212
- "variant": "h3"
3232
+ "content": "Date and Time"
3213
3233
  },
3214
3234
  {
3215
- "mode": "create",
3216
- "submitEvent": "NEXT",
3217
3235
  "fields": [
3218
3236
  "date",
3219
3237
  "time",
3220
3238
  "notes"
3221
3239
  ],
3240
+ "mode": "create",
3241
+ "submitEvent": "NEXT",
3222
3242
  "type": "form-section",
3223
3243
  "cancelEvent": "PREV"
3224
3244
  },
3225
3245
  {
3226
- "justify": "end",
3246
+ "direction": "horizontal",
3227
3247
  "type": "stack",
3248
+ "justify": "end",
3228
3249
  "gap": "sm",
3229
3250
  "children": [
3230
3251
  {
3231
- "action": "PREV",
3232
3252
  "label": "Back",
3253
+ "icon": "arrow-left",
3233
3254
  "type": "button",
3234
- "variant": "ghost",
3235
- "icon": "arrow-left"
3255
+ "action": "PREV",
3256
+ "variant": "ghost"
3236
3257
  },
3237
3258
  {
3238
3259
  "icon": "arrow-right",
3239
- "label": "Next",
3240
- "action": "NEXT",
3241
3260
  "type": "button",
3261
+ "action": "NEXT",
3262
+ "label": "Next",
3242
3263
  "variant": "primary"
3243
3264
  }
3244
- ],
3245
- "direction": "horizontal"
3265
+ ]
3246
3266
  }
3247
3267
  ],
3248
3268
  "gap": "lg",
3249
- "type": "stack",
3250
3269
  "direction": "vertical"
3251
3270
  }
3252
3271
  ],
3253
- "padding": "lg"
3272
+ "type": "container"
3254
3273
  }
3255
3274
  ],
3256
- "appName": "BookingSystemApp"
3275
+ "navItems": [
3276
+ {
3277
+ "label": "Providers",
3278
+ "href": "/providers",
3279
+ "icon": "user-check"
3280
+ },
3281
+ {
3282
+ "icon": "calendar-plus",
3283
+ "label": "Book",
3284
+ "href": "/book"
3285
+ },
3286
+ {
3287
+ "label": "Appointments",
3288
+ "href": "/appointments",
3289
+ "icon": "calendar"
3290
+ },
3291
+ {
3292
+ "label": "Schedule",
3293
+ "href": "/schedule",
3294
+ "icon": "clock"
3295
+ }
3296
+ ],
3297
+ "appName": "BookingSystemApp",
3298
+ "type": "dashboard-layout"
3257
3299
  }
3258
3300
  ]
3259
3301
  ]
@@ -3270,8 +3312,8 @@
3270
3312
  "@payload.data",
3271
3313
  {
3272
3314
  "emit": {
3273
- "failure": "BookingSaveFailed",
3274
- "success": "BookingSaved"
3315
+ "success": "BookingSaved",
3316
+ "failure": "BookingSaveFailed"
3275
3317
  }
3276
3318
  }
3277
3319
  ],
@@ -3284,23 +3326,42 @@
3284
3326
  "render-ui",
3285
3327
  "main",
3286
3328
  {
3287
- "type": "dashboard-layout",
3329
+ "navItems": [
3330
+ {
3331
+ "label": "Providers",
3332
+ "href": "/providers",
3333
+ "icon": "user-check"
3334
+ },
3335
+ {
3336
+ "icon": "calendar-plus",
3337
+ "label": "Book",
3338
+ "href": "/book"
3339
+ },
3340
+ {
3341
+ "icon": "calendar",
3342
+ "href": "/appointments",
3343
+ "label": "Appointments"
3344
+ },
3345
+ {
3346
+ "href": "/schedule",
3347
+ "icon": "clock",
3348
+ "label": "Schedule"
3349
+ }
3350
+ ],
3288
3351
  "appName": "BookingSystemApp",
3352
+ "type": "dashboard-layout",
3289
3353
  "children": [
3290
3354
  {
3291
- "direction": "vertical",
3292
- "type": "stack",
3293
3355
  "gap": "lg",
3294
- "align": "center",
3295
3356
  "children": [
3296
3357
  {
3297
3358
  "type": "icon",
3298
3359
  "name": "check-circle"
3299
3360
  },
3300
3361
  {
3301
- "variant": "h2",
3362
+ "type": "typography",
3302
3363
  "content": "Booking Confirmed",
3303
- "type": "typography"
3364
+ "variant": "h2"
3304
3365
  },
3305
3366
  {
3306
3367
  "variant": "body",
@@ -3308,35 +3369,16 @@
3308
3369
  "content": "Your appointment has been booked successfully."
3309
3370
  },
3310
3371
  {
3311
- "label": "Start New",
3312
3372
  "action": "RESTART",
3313
3373
  "icon": "refresh-cw",
3314
- "type": "button",
3315
- "variant": "primary"
3374
+ "variant": "primary",
3375
+ "label": "Start New",
3376
+ "type": "button"
3316
3377
  }
3317
- ]
3318
- }
3319
- ],
3320
- "navItems": [
3321
- {
3322
- "label": "Providers",
3323
- "href": "/providers",
3324
- "icon": "user-check"
3325
- },
3326
- {
3327
- "icon": "calendar-plus",
3328
- "href": "/book",
3329
- "label": "Book"
3330
- },
3331
- {
3332
- "icon": "calendar",
3333
- "label": "Appointments",
3334
- "href": "/appointments"
3335
- },
3336
- {
3337
- "icon": "clock",
3338
- "label": "Schedule",
3339
- "href": "/schedule"
3378
+ ],
3379
+ "align": "center",
3380
+ "direction": "vertical",
3381
+ "type": "stack"
3340
3382
  }
3341
3383
  ]
3342
3384
  }
@@ -3353,8 +3395,8 @@
3353
3395
  "Booking",
3354
3396
  {
3355
3397
  "emit": {
3356
- "success": "BookingLoaded",
3357
- "failure": "BookingLoadFailed"
3398
+ "failure": "BookingLoadFailed",
3399
+ "success": "BookingLoaded"
3358
3400
  }
3359
3401
  }
3360
3402
  ],
@@ -3362,45 +3404,23 @@
3362
3404
  "render-ui",
3363
3405
  "main",
3364
3406
  {
3365
- "appName": "BookingSystemApp",
3366
- "navItems": [
3367
- {
3368
- "href": "/providers",
3369
- "icon": "user-check",
3370
- "label": "Providers"
3371
- },
3372
- {
3373
- "href": "/book",
3374
- "icon": "calendar-plus",
3375
- "label": "Book"
3376
- },
3377
- {
3378
- "icon": "calendar",
3379
- "label": "Appointments",
3380
- "href": "/appointments"
3381
- },
3382
- {
3383
- "icon": "clock",
3384
- "label": "Schedule",
3385
- "href": "/schedule"
3386
- }
3387
- ],
3388
3407
  "children": [
3389
3408
  {
3390
3409
  "maxWidth": "lg",
3391
- "type": "container",
3392
3410
  "padding": "lg",
3411
+ "type": "container",
3393
3412
  "children": [
3394
3413
  {
3414
+ "direction": "vertical",
3415
+ "type": "stack",
3395
3416
  "gap": "lg",
3396
3417
  "children": [
3397
3418
  {
3398
- "gap": "sm",
3399
3419
  "type": "stack",
3400
3420
  "children": [
3401
3421
  {
3402
- "name": "calendar",
3403
- "type": "icon"
3422
+ "type": "icon",
3423
+ "name": "calendar"
3404
3424
  },
3405
3425
  {
3406
3426
  "content": "Book Appointment",
@@ -3409,33 +3429,34 @@
3409
3429
  }
3410
3430
  ],
3411
3431
  "direction": "horizontal",
3432
+ "gap": "sm",
3412
3433
  "align": "center"
3413
3434
  },
3414
3435
  {
3415
- "count": 3.0,
3416
3436
  "currentIndex": 0.0,
3437
+ "count": 3.0,
3417
3438
  "type": "progress-dots"
3418
3439
  },
3419
3440
  {
3420
- "currentStep": 0.0,
3441
+ "type": "wizard-progress",
3421
3442
  "steps": [
3422
3443
  "Provider Selection",
3423
3444
  "Your Details",
3424
3445
  "Date and Time"
3425
3446
  ],
3426
- "type": "wizard-progress"
3447
+ "currentStep": 0.0
3427
3448
  },
3428
3449
  {
3429
3450
  "type": "divider"
3430
3451
  },
3431
3452
  {
3432
- "variant": "h3",
3433
3453
  "type": "typography",
3434
- "content": "Provider Selection"
3454
+ "content": "Provider Selection",
3455
+ "variant": "h3"
3435
3456
  },
3436
3457
  {
3437
- "cancelEvent": "INIT",
3438
3458
  "submitEvent": "NEXT",
3459
+ "cancelEvent": "INIT",
3439
3460
  "type": "form-section",
3440
3461
  "fields": [
3441
3462
  "providerName"
@@ -3443,27 +3464,48 @@
3443
3464
  "mode": "create"
3444
3465
  },
3445
3466
  {
3446
- "type": "stack",
3447
- "gap": "sm",
3448
- "direction": "horizontal",
3449
3467
  "children": [
3450
3468
  {
3451
- "label": "Next",
3452
- "action": "NEXT",
3453
3469
  "type": "button",
3470
+ "action": "NEXT",
3454
3471
  "variant": "primary",
3455
- "icon": "arrow-right"
3472
+ "icon": "arrow-right",
3473
+ "label": "Next"
3456
3474
  }
3457
3475
  ],
3476
+ "gap": "sm",
3477
+ "direction": "horizontal",
3478
+ "type": "stack",
3458
3479
  "justify": "end"
3459
3480
  }
3460
- ],
3461
- "type": "stack",
3462
- "direction": "vertical"
3481
+ ]
3463
3482
  }
3464
3483
  ]
3465
3484
  }
3466
3485
  ],
3486
+ "appName": "BookingSystemApp",
3487
+ "navItems": [
3488
+ {
3489
+ "label": "Providers",
3490
+ "href": "/providers",
3491
+ "icon": "user-check"
3492
+ },
3493
+ {
3494
+ "href": "/book",
3495
+ "label": "Book",
3496
+ "icon": "calendar-plus"
3497
+ },
3498
+ {
3499
+ "label": "Appointments",
3500
+ "href": "/appointments",
3501
+ "icon": "calendar"
3502
+ },
3503
+ {
3504
+ "href": "/schedule",
3505
+ "label": "Schedule",
3506
+ "icon": "clock"
3507
+ }
3508
+ ],
3467
3509
  "type": "dashboard-layout"
3468
3510
  }
3469
3511
  ]
@@ -3489,108 +3531,108 @@
3489
3531
  "main",
3490
3532
  {
3491
3533
  "appName": "BookingSystemApp",
3492
- "type": "dashboard-layout",
3493
- "navItems": [
3494
- {
3495
- "href": "/providers",
3496
- "icon": "user-check",
3497
- "label": "Providers"
3498
- },
3499
- {
3500
- "href": "/book",
3501
- "icon": "calendar-plus",
3502
- "label": "Book"
3503
- },
3504
- {
3505
- "icon": "calendar",
3506
- "label": "Appointments",
3507
- "href": "/appointments"
3508
- },
3509
- {
3510
- "label": "Schedule",
3511
- "href": "/schedule",
3512
- "icon": "clock"
3513
- }
3514
- ],
3515
3534
  "children": [
3516
3535
  {
3517
3536
  "maxWidth": "lg",
3518
- "padding": "lg",
3537
+ "type": "container",
3519
3538
  "children": [
3520
3539
  {
3540
+ "gap": "lg",
3541
+ "type": "stack",
3542
+ "direction": "vertical",
3521
3543
  "children": [
3522
3544
  {
3523
- "gap": "sm",
3524
- "direction": "horizontal",
3525
- "type": "stack",
3526
- "align": "center",
3527
3545
  "children": [
3528
3546
  {
3529
3547
  "type": "icon",
3530
3548
  "name": "calendar"
3531
3549
  },
3532
3550
  {
3533
- "content": "Book Appointment",
3551
+ "variant": "h2",
3534
3552
  "type": "typography",
3535
- "variant": "h2"
3553
+ "content": "Book Appointment"
3536
3554
  }
3537
- ]
3555
+ ],
3556
+ "align": "center",
3557
+ "type": "stack",
3558
+ "direction": "horizontal",
3559
+ "gap": "sm"
3538
3560
  },
3539
3561
  {
3540
- "currentIndex": 0.0,
3541
3562
  "type": "progress-dots",
3542
- "count": 3.0
3563
+ "count": 3.0,
3564
+ "currentIndex": 0.0
3543
3565
  },
3544
3566
  {
3545
- "currentStep": 0.0,
3546
- "type": "wizard-progress",
3547
3567
  "steps": [
3548
3568
  "Provider Selection",
3549
3569
  "Your Details",
3550
3570
  "Date and Time"
3551
- ]
3571
+ ],
3572
+ "type": "wizard-progress",
3573
+ "currentStep": 0.0
3552
3574
  },
3553
3575
  {
3554
3576
  "type": "divider"
3555
3577
  },
3556
3578
  {
3557
3579
  "type": "typography",
3558
- "content": "Provider Selection",
3559
- "variant": "h3"
3580
+ "variant": "h3",
3581
+ "content": "Provider Selection"
3560
3582
  },
3561
3583
  {
3562
- "cancelEvent": "INIT",
3563
3584
  "submitEvent": "NEXT",
3585
+ "cancelEvent": "INIT",
3586
+ "type": "form-section",
3564
3587
  "fields": [
3565
3588
  "providerName"
3566
3589
  ],
3567
- "mode": "create",
3568
- "type": "form-section"
3590
+ "mode": "create"
3569
3591
  },
3570
3592
  {
3571
3593
  "children": [
3572
3594
  {
3573
- "type": "button",
3595
+ "label": "Next",
3574
3596
  "variant": "primary",
3597
+ "type": "button",
3575
3598
  "icon": "arrow-right",
3576
- "action": "NEXT",
3577
- "label": "Next"
3599
+ "action": "NEXT"
3578
3600
  }
3579
3601
  ],
3580
3602
  "type": "stack",
3581
3603
  "direction": "horizontal",
3582
- "gap": "sm",
3583
- "justify": "end"
3604
+ "justify": "end",
3605
+ "gap": "sm"
3584
3606
  }
3585
- ],
3586
- "direction": "vertical",
3587
- "gap": "lg",
3588
- "type": "stack"
3607
+ ]
3589
3608
  }
3590
3609
  ],
3591
- "type": "container"
3610
+ "padding": "lg"
3592
3611
  }
3593
- ]
3612
+ ],
3613
+ "navItems": [
3614
+ {
3615
+ "href": "/providers",
3616
+ "label": "Providers",
3617
+ "icon": "user-check"
3618
+ },
3619
+ {
3620
+ "icon": "calendar-plus",
3621
+ "label": "Book",
3622
+ "href": "/book"
3623
+ },
3624
+ {
3625
+ "href": "/appointments",
3626
+ "icon": "calendar",
3627
+ "label": "Appointments"
3628
+ },
3629
+ {
3630
+ "href": "/schedule",
3631
+ "label": "Schedule",
3632
+ "icon": "clock"
3633
+ }
3634
+ ],
3635
+ "type": "dashboard-layout"
3594
3636
  }
3595
3637
  ]
3596
3638
  ]
@@ -3775,22 +3817,22 @@
3775
3817
  "render-ui",
3776
3818
  "main",
3777
3819
  {
3778
- "align": "center",
3820
+ "className": "py-12",
3779
3821
  "direction": "vertical",
3780
- "gap": "md",
3781
3822
  "type": "stack",
3823
+ "align": "center",
3824
+ "gap": "md",
3782
3825
  "children": [
3783
3826
  {
3784
3827
  "type": "spinner"
3785
3828
  },
3786
3829
  {
3830
+ "color": "muted",
3787
3831
  "variant": "caption",
3788
3832
  "content": "Loading…",
3789
- "color": "muted",
3790
3833
  "type": "typography"
3791
3834
  }
3792
- ],
3793
- "className": "py-12"
3835
+ ]
3794
3836
  }
3795
3837
  ]
3796
3838
  ]
@@ -3805,130 +3847,130 @@
3805
3847
  "main",
3806
3848
  {
3807
3849
  "appName": "BookingSystemApp",
3808
- "navItems": [
3809
- {
3810
- "icon": "user-check",
3811
- "label": "Providers",
3812
- "href": "/providers"
3813
- },
3814
- {
3815
- "icon": "calendar-plus",
3816
- "href": "/book",
3817
- "label": "Book"
3818
- },
3819
- {
3820
- "label": "Appointments",
3821
- "icon": "calendar",
3822
- "href": "/appointments"
3823
- },
3824
- {
3825
- "label": "Schedule",
3826
- "href": "/schedule",
3827
- "icon": "clock"
3828
- }
3829
- ],
3830
3850
  "type": "dashboard-layout",
3831
3851
  "children": [
3832
3852
  {
3853
+ "type": "stack",
3833
3854
  "children": [
3834
3855
  {
3835
- "align": "center",
3836
- "gap": "md",
3837
- "type": "stack",
3838
- "justify": "between",
3839
3856
  "direction": "horizontal",
3840
3857
  "children": [
3841
3858
  {
3842
- "direction": "horizontal",
3859
+ "gap": "sm",
3860
+ "type": "stack",
3843
3861
  "align": "center",
3862
+ "direction": "horizontal",
3844
3863
  "children": [
3845
3864
  {
3846
3865
  "type": "icon",
3847
3866
  "name": "clock"
3848
3867
  },
3849
3868
  {
3850
- "variant": "h2",
3869
+ "type": "typography",
3851
3870
  "content": "Appointments",
3852
- "type": "typography"
3871
+ "variant": "h2"
3853
3872
  }
3854
- ],
3855
- "type": "stack",
3856
- "gap": "sm"
3873
+ ]
3857
3874
  },
3858
3875
  {
3859
3876
  "children": [
3860
3877
  {
3878
+ "icon": "plus",
3861
3879
  "variant": "primary",
3862
- "action": "CREATE",
3863
3880
  "type": "button",
3864
- "icon": "plus",
3865
- "label": "Create Appointment"
3881
+ "label": "Create Appointment",
3882
+ "action": "CREATE"
3866
3883
  }
3867
3884
  ],
3868
3885
  "direction": "horizontal",
3869
3886
  "gap": "sm",
3870
3887
  "type": "stack"
3871
3888
  }
3872
- ]
3889
+ ],
3890
+ "justify": "between",
3891
+ "align": "center",
3892
+ "gap": "md",
3893
+ "type": "stack"
3873
3894
  },
3874
3895
  {
3875
3896
  "type": "divider"
3876
3897
  },
3877
3898
  {
3878
- "itemActions": [
3879
- {
3880
- "variant": "ghost",
3881
- "label": "View",
3882
- "event": "VIEW"
3883
- },
3884
- {
3885
- "variant": "ghost",
3886
- "label": "Edit",
3887
- "event": "EDIT"
3888
- },
3889
- {
3890
- "event": "DELETE",
3891
- "variant": "danger",
3892
- "label": "Delete"
3893
- }
3894
- ],
3895
- "type": "data-list",
3899
+ "variant": "card",
3896
3900
  "entity": "@payload.data",
3897
- "fields": [],
3898
3901
  "columns": [
3899
3902
  {
3900
- "label": "Customer",
3901
3903
  "variant": "h3",
3902
- "icon": "clock",
3903
- "name": "customerName"
3904
+ "name": "customerName",
3905
+ "label": "Customer",
3906
+ "icon": "clock"
3904
3907
  },
3905
3908
  {
3906
- "variant": "badge",
3907
- "name": "status"
3909
+ "name": "status",
3910
+ "variant": "badge"
3908
3911
  },
3909
3912
  {
3910
- "variant": "body",
3913
+ "label": "Provider",
3911
3914
  "name": "providerName",
3912
- "label": "Provider"
3915
+ "variant": "body"
3913
3916
  },
3914
3917
  {
3918
+ "variant": "body",
3915
3919
  "format": "date",
3916
- "name": "date",
3917
- "variant": "body"
3920
+ "name": "date"
3918
3921
  },
3919
3922
  {
3920
3923
  "name": "time",
3921
3924
  "variant": "caption"
3922
3925
  }
3923
3926
  ],
3924
- "variant": "card",
3927
+ "fields": [],
3928
+ "itemActions": [
3929
+ {
3930
+ "event": "VIEW",
3931
+ "variant": "ghost",
3932
+ "label": "View"
3933
+ },
3934
+ {
3935
+ "label": "Edit",
3936
+ "event": "EDIT",
3937
+ "variant": "ghost"
3938
+ },
3939
+ {
3940
+ "label": "Delete",
3941
+ "event": "DELETE",
3942
+ "variant": "danger"
3943
+ }
3944
+ ],
3945
+ "type": "data-list",
3925
3946
  "gap": "sm"
3926
3947
  }
3927
3948
  ],
3928
3949
  "direction": "vertical",
3929
- "className": "max-w-5xl mx-auto w-full",
3930
- "type": "stack",
3931
- "gap": "lg"
3950
+ "gap": "lg",
3951
+ "className": "max-w-5xl mx-auto w-full"
3952
+ }
3953
+ ],
3954
+ "navItems": [
3955
+ {
3956
+ "href": "/providers",
3957
+ "icon": "user-check",
3958
+ "label": "Providers"
3959
+ },
3960
+ {
3961
+ "icon": "calendar-plus",
3962
+ "href": "/book",
3963
+ "label": "Book"
3964
+ },
3965
+ {
3966
+ "icon": "calendar",
3967
+ "href": "/appointments",
3968
+ "label": "Appointments"
3969
+ },
3970
+ {
3971
+ "label": "Schedule",
3972
+ "href": "/schedule",
3973
+ "icon": "clock"
3932
3974
  }
3933
3975
  ]
3934
3976
  }
@@ -3944,14 +3986,13 @@
3944
3986
  "render-ui",
3945
3987
  "main",
3946
3988
  {
3947
- "align": "center",
3948
3989
  "direction": "vertical",
3949
- "gap": "md",
3950
3990
  "className": "py-12",
3991
+ "gap": "md",
3951
3992
  "children": [
3952
3993
  {
3953
- "type": "icon",
3954
3994
  "color": "destructive",
3995
+ "type": "icon",
3955
3996
  "name": "alert-triangle"
3956
3997
  },
3957
3998
  {
@@ -3961,18 +4002,19 @@
3961
4002
  },
3962
4003
  {
3963
4004
  "variant": "body",
3964
- "type": "typography",
4005
+ "color": "muted",
3965
4006
  "content": "@payload.error",
3966
- "color": "muted"
4007
+ "type": "typography"
3967
4008
  },
3968
4009
  {
3969
4010
  "type": "button",
3970
- "action": "INIT",
3971
4011
  "icon": "rotate-ccw",
3972
- "variant": "primary",
3973
- "label": "Retry"
4012
+ "label": "Retry",
4013
+ "action": "INIT",
4014
+ "variant": "primary"
3974
4015
  }
3975
4016
  ],
4017
+ "align": "center",
3976
4018
  "type": "stack"
3977
4019
  }
3978
4020
  ]
@@ -4134,8 +4176,14 @@
4134
4176
  "event": "INIT",
4135
4177
  "effects": [
4136
4178
  [
4137
- "ref",
4138
- "Appointment"
4179
+ "fetch",
4180
+ "Appointment",
4181
+ {
4182
+ "emit": {
4183
+ "success": "AppointmentLoaded",
4184
+ "failure": "AppointmentLoadFailed"
4185
+ }
4186
+ }
4139
4187
  ]
4140
4188
  ]
4141
4189
  },
@@ -4159,32 +4207,30 @@
4159
4207
  "modal",
4160
4208
  {
4161
4209
  "direction": "vertical",
4162
- "type": "stack",
4163
4210
  "gap": "md",
4211
+ "type": "stack",
4164
4212
  "children": [
4165
4213
  {
4166
- "type": "stack",
4167
- "direction": "horizontal",
4168
- "gap": "sm",
4169
4214
  "children": [
4170
4215
  {
4171
- "type": "icon",
4172
- "name": "plus-circle"
4216
+ "name": "plus-circle",
4217
+ "type": "icon"
4173
4218
  },
4174
4219
  {
4175
4220
  "variant": "h3",
4176
- "content": "Create Appointment",
4177
- "type": "typography"
4221
+ "type": "typography",
4222
+ "content": "Create Appointment"
4178
4223
  }
4179
- ]
4224
+ ],
4225
+ "type": "stack",
4226
+ "gap": "sm",
4227
+ "direction": "horizontal"
4180
4228
  },
4181
4229
  {
4182
4230
  "type": "divider"
4183
4231
  },
4184
4232
  {
4185
- "mode": "create",
4186
4233
  "cancelEvent": "CLOSE",
4187
- "type": "form-section",
4188
4234
  "fields": [
4189
4235
  "providerName",
4190
4236
  "customerName",
@@ -4193,6 +4239,8 @@
4193
4239
  "status",
4194
4240
  "notes"
4195
4241
  ],
4242
+ "mode": "create",
4243
+ "type": "form-section",
4196
4244
  "submitEvent": "SAVE"
4197
4245
  }
4198
4246
  ]
@@ -4425,8 +4473,14 @@
4425
4473
  "event": "INIT",
4426
4474
  "effects": [
4427
4475
  [
4428
- "ref",
4429
- "Appointment"
4476
+ "fetch",
4477
+ "Appointment",
4478
+ {
4479
+ "emit": {
4480
+ "success": "AppointmentLoaded",
4481
+ "failure": "AppointmentLoadFailed"
4482
+ }
4483
+ }
4430
4484
  ]
4431
4485
  ]
4432
4486
  },
@@ -4439,41 +4493,42 @@
4439
4493
  "fetch",
4440
4494
  "Appointment",
4441
4495
  {
4442
- "id": "@payload.id",
4443
4496
  "emit": {
4444
- "failure": "AppointmentLoadFailed",
4445
- "success": "AppointmentLoaded"
4446
- }
4497
+ "success": "AppointmentLoaded",
4498
+ "failure": "AppointmentLoadFailed"
4499
+ },
4500
+ "id": "@payload.id"
4447
4501
  }
4448
4502
  ],
4449
4503
  [
4450
4504
  "render-ui",
4451
4505
  "modal",
4452
4506
  {
4453
- "type": "stack",
4507
+ "direction": "vertical",
4454
4508
  "children": [
4455
4509
  {
4456
4510
  "direction": "horizontal",
4457
- "type": "stack",
4458
4511
  "gap": "sm",
4459
4512
  "children": [
4460
4513
  {
4461
- "name": "edit",
4462
- "type": "icon"
4514
+ "type": "icon",
4515
+ "name": "edit"
4463
4516
  },
4464
4517
  {
4465
- "variant": "h3",
4466
4518
  "type": "typography",
4467
- "content": "Edit Appointment"
4519
+ "content": "Edit Appointment",
4520
+ "variant": "h3"
4468
4521
  }
4469
- ]
4522
+ ],
4523
+ "type": "stack"
4470
4524
  },
4471
4525
  {
4472
4526
  "type": "divider"
4473
4527
  },
4474
4528
  {
4475
- "cancelEvent": "CLOSE",
4476
4529
  "type": "form-section",
4530
+ "cancelEvent": "CLOSE",
4531
+ "mode": "edit",
4477
4532
  "fields": [
4478
4533
  "providerName",
4479
4534
  "customerName",
@@ -4482,13 +4537,12 @@
4482
4537
  "status",
4483
4538
  "notes"
4484
4539
  ],
4485
- "submitEvent": "SAVE",
4486
- "mode": "edit",
4487
- "entity": "@payload.row"
4540
+ "entity": "@payload.row",
4541
+ "submitEvent": "SAVE"
4488
4542
  }
4489
4543
  ],
4490
4544
  "gap": "md",
4491
- "direction": "vertical"
4545
+ "type": "stack"
4492
4546
  }
4493
4547
  ]
4494
4548
  ]
@@ -4529,8 +4583,8 @@
4529
4583
  "@payload.data",
4530
4584
  {
4531
4585
  "emit": {
4532
- "success": "AppointmentUpdated",
4533
- "failure": "AppointmentUpdateFailed"
4586
+ "failure": "AppointmentUpdateFailed",
4587
+ "success": "AppointmentUpdated"
4534
4588
  }
4535
4589
  }
4536
4590
  ],
@@ -4653,8 +4707,14 @@
4653
4707
  "event": "INIT",
4654
4708
  "effects": [
4655
4709
  [
4656
- "ref",
4657
- "Appointment"
4710
+ "fetch",
4711
+ "Appointment",
4712
+ {
4713
+ "emit": {
4714
+ "failure": "AppointmentLoadFailed",
4715
+ "success": "AppointmentLoaded"
4716
+ }
4717
+ }
4658
4718
  ]
4659
4719
  ]
4660
4720
  },
@@ -4678,14 +4738,11 @@
4678
4738
  "render-ui",
4679
4739
  "modal",
4680
4740
  {
4681
- "gap": "md",
4682
- "type": "stack",
4683
4741
  "children": [
4684
4742
  {
4685
- "direction": "horizontal",
4686
- "type": "stack",
4687
4743
  "align": "center",
4688
4744
  "gap": "sm",
4745
+ "direction": "horizontal",
4689
4746
  "children": [
4690
4747
  {
4691
4748
  "type": "icon",
@@ -4696,7 +4753,8 @@
4696
4753
  "variant": "h3",
4697
4754
  "content": "@entity.providerName"
4698
4755
  }
4699
- ]
4756
+ ],
4757
+ "type": "stack"
4700
4758
  },
4701
4759
  {
4702
4760
  "type": "divider"
@@ -4704,72 +4762,74 @@
4704
4762
  {
4705
4763
  "type": "stack",
4706
4764
  "gap": "md",
4765
+ "direction": "horizontal",
4707
4766
  "children": [
4708
4767
  {
4709
- "variant": "caption",
4710
4768
  "content": "Provider Name",
4711
- "type": "typography"
4769
+ "type": "typography",
4770
+ "variant": "caption"
4712
4771
  },
4713
4772
  {
4773
+ "variant": "body",
4714
4774
  "content": "@entity.providerName",
4715
- "type": "typography",
4716
- "variant": "body"
4775
+ "type": "typography"
4717
4776
  }
4718
- ],
4719
- "direction": "horizontal"
4777
+ ]
4720
4778
  },
4721
4779
  {
4722
4780
  "type": "stack",
4723
4781
  "children": [
4724
4782
  {
4725
- "content": "Customer Name",
4726
4783
  "type": "typography",
4727
- "variant": "caption"
4784
+ "variant": "caption",
4785
+ "content": "Customer Name"
4728
4786
  },
4729
4787
  {
4788
+ "content": "@entity.customerName",
4730
4789
  "type": "typography",
4731
- "variant": "body",
4732
- "content": "@entity.customerName"
4790
+ "variant": "body"
4733
4791
  }
4734
4792
  ],
4735
4793
  "gap": "md",
4736
4794
  "direction": "horizontal"
4737
4795
  },
4738
4796
  {
4739
- "gap": "md",
4740
4797
  "direction": "horizontal",
4741
4798
  "children": [
4742
4799
  {
4743
4800
  "type": "typography",
4744
- "content": "Date",
4745
- "variant": "caption"
4801
+ "variant": "caption",
4802
+ "content": "Date"
4746
4803
  },
4747
4804
  {
4748
- "content": "@entity.date",
4805
+ "type": "typography",
4749
4806
  "variant": "body",
4750
- "type": "typography"
4807
+ "content": "@entity.date"
4751
4808
  }
4752
4809
  ],
4753
- "type": "stack"
4810
+ "type": "stack",
4811
+ "gap": "md"
4754
4812
  },
4755
4813
  {
4756
- "type": "stack",
4814
+ "direction": "horizontal",
4757
4815
  "children": [
4758
4816
  {
4759
- "content": "Time",
4817
+ "variant": "caption",
4760
4818
  "type": "typography",
4761
- "variant": "caption"
4819
+ "content": "Time"
4762
4820
  },
4763
4821
  {
4822
+ "content": "@entity.time",
4764
4823
  "type": "typography",
4765
- "variant": "body",
4766
- "content": "@entity.time"
4824
+ "variant": "body"
4767
4825
  }
4768
4826
  ],
4769
- "gap": "md",
4770
- "direction": "horizontal"
4827
+ "type": "stack",
4828
+ "gap": "md"
4771
4829
  },
4772
4830
  {
4831
+ "type": "stack",
4832
+ "direction": "horizontal",
4773
4833
  "gap": "md",
4774
4834
  "children": [
4775
4835
  {
@@ -4778,56 +4838,56 @@
4778
4838
  "variant": "caption"
4779
4839
  },
4780
4840
  {
4781
- "type": "typography",
4782
4841
  "variant": "body",
4842
+ "type": "typography",
4783
4843
  "content": "@entity.status"
4784
4844
  }
4785
- ],
4786
- "type": "stack",
4787
- "direction": "horizontal"
4845
+ ]
4788
4846
  },
4789
4847
  {
4848
+ "direction": "horizontal",
4849
+ "gap": "md",
4850
+ "type": "stack",
4790
4851
  "children": [
4791
4852
  {
4792
- "type": "typography",
4793
4853
  "variant": "caption",
4854
+ "type": "typography",
4794
4855
  "content": "Notes"
4795
4856
  },
4796
4857
  {
4797
4858
  "variant": "body",
4798
- "type": "typography",
4799
- "content": "@entity.notes"
4859
+ "content": "@entity.notes",
4860
+ "type": "typography"
4800
4861
  }
4801
- ],
4802
- "gap": "md",
4803
- "direction": "horizontal",
4804
- "type": "stack"
4862
+ ]
4805
4863
  },
4806
4864
  {
4807
4865
  "type": "divider"
4808
4866
  },
4809
4867
  {
4810
- "gap": "sm",
4811
4868
  "children": [
4812
4869
  {
4813
- "variant": "primary",
4814
4870
  "label": "Edit",
4815
- "icon": "edit",
4871
+ "type": "button",
4816
4872
  "action": "EDIT",
4817
- "type": "button"
4873
+ "icon": "edit",
4874
+ "variant": "primary"
4818
4875
  },
4819
4876
  {
4820
- "action": "CLOSE",
4821
4877
  "label": "Close",
4878
+ "action": "CLOSE",
4822
4879
  "variant": "ghost",
4823
4880
  "type": "button"
4824
4881
  }
4825
4882
  ],
4826
4883
  "type": "stack",
4827
4884
  "direction": "horizontal",
4828
- "justify": "end"
4885
+ "justify": "end",
4886
+ "gap": "sm"
4829
4887
  }
4830
4888
  ],
4889
+ "gap": "md",
4890
+ "type": "stack",
4831
4891
  "direction": "vertical"
4832
4892
  }
4833
4893
  ]
@@ -5036,8 +5096,14 @@
5036
5096
  "event": "INIT",
5037
5097
  "effects": [
5038
5098
  [
5039
- "ref",
5040
- "Appointment"
5099
+ "fetch",
5100
+ "Appointment",
5101
+ {
5102
+ "emit": {
5103
+ "success": "AppointmentLoaded",
5104
+ "failure": "AppointmentLoadFailed"
5105
+ }
5106
+ }
5041
5107
  ]
5042
5108
  ]
5043
5109
  },
@@ -5066,56 +5132,56 @@
5066
5132
  "render-ui",
5067
5133
  "modal",
5068
5134
  {
5069
- "gap": "md",
5070
5135
  "type": "stack",
5071
5136
  "children": [
5072
5137
  {
5073
- "gap": "sm",
5074
- "direction": "horizontal",
5075
5138
  "children": [
5076
5139
  {
5077
- "name": "alert-triangle",
5078
- "type": "icon"
5140
+ "type": "icon",
5141
+ "name": "alert-triangle"
5079
5142
  },
5080
5143
  {
5144
+ "type": "typography",
5081
5145
  "content": "Delete Appointment",
5082
- "variant": "h3",
5083
- "type": "typography"
5146
+ "variant": "h3"
5084
5147
  }
5085
5148
  ],
5086
- "align": "center",
5087
- "type": "stack"
5149
+ "gap": "sm",
5150
+ "type": "stack",
5151
+ "direction": "horizontal",
5152
+ "align": "center"
5088
5153
  },
5089
5154
  {
5090
5155
  "type": "divider"
5091
5156
  },
5092
5157
  {
5093
- "type": "alert",
5158
+ "message": "This action cannot be undone.",
5094
5159
  "variant": "error",
5095
- "message": "This action cannot be undone."
5160
+ "type": "alert"
5096
5161
  },
5097
5162
  {
5098
- "gap": "sm",
5099
5163
  "direction": "horizontal",
5100
- "justify": "end",
5101
5164
  "children": [
5102
5165
  {
5103
- "action": "CANCEL",
5104
5166
  "type": "button",
5105
- "label": "Cancel",
5106
- "variant": "ghost"
5167
+ "action": "CANCEL",
5168
+ "variant": "ghost",
5169
+ "label": "Cancel"
5107
5170
  },
5108
5171
  {
5109
- "type": "button",
5110
- "icon": "check",
5111
5172
  "action": "CONFIRM_DELETE",
5173
+ "type": "button",
5112
5174
  "variant": "danger",
5113
- "label": "Delete"
5175
+ "label": "Delete",
5176
+ "icon": "check"
5114
5177
  }
5115
5178
  ],
5179
+ "gap": "sm",
5180
+ "justify": "end",
5116
5181
  "type": "stack"
5117
5182
  }
5118
5183
  ],
5184
+ "gap": "md",
5119
5185
  "direction": "vertical"
5120
5186
  }
5121
5187
  ]
@@ -5133,8 +5199,8 @@
5133
5199
  "@entity.pendingId",
5134
5200
  {
5135
5201
  "emit": {
5136
- "failure": "AppointmentDeleteFailed",
5137
- "success": "AppointmentDeleted"
5202
+ "success": "AppointmentDeleted",
5203
+ "failure": "AppointmentDeleteFailed"
5138
5204
  }
5139
5205
  }
5140
5206
  ],
@@ -5151,8 +5217,14 @@
5151
5217
  }
5152
5218
  ],
5153
5219
  [
5154
- "ref",
5155
- "Appointment"
5220
+ "fetch",
5221
+ "Appointment",
5222
+ {
5223
+ "emit": {
5224
+ "success": "AppointmentLoaded",
5225
+ "failure": "AppointmentLoadFailed"
5226
+ }
5227
+ }
5156
5228
  ],
5157
5229
  [
5158
5230
  "emit",
@@ -5178,8 +5250,14 @@
5178
5250
  }
5179
5251
  ],
5180
5252
  [
5181
- "ref",
5182
- "Appointment"
5253
+ "fetch",
5254
+ "Appointment",
5255
+ {
5256
+ "emit": {
5257
+ "success": "AppointmentLoaded",
5258
+ "failure": "AppointmentLoadFailed"
5259
+ }
5260
+ }
5183
5261
  ]
5184
5262
  ]
5185
5263
  },
@@ -5201,8 +5279,14 @@
5201
5279
  }
5202
5280
  ],
5203
5281
  [
5204
- "ref",
5205
- "Appointment"
5282
+ "fetch",
5283
+ "Appointment",
5284
+ {
5285
+ "emit": {
5286
+ "success": "AppointmentLoaded",
5287
+ "failure": "AppointmentLoadFailed"
5288
+ }
5289
+ }
5206
5290
  ]
5207
5291
  ]
5208
5292
  }
@@ -5372,138 +5456,115 @@
5372
5456
  "render-ui",
5373
5457
  "main",
5374
5458
  {
5375
- "type": "dashboard-layout",
5376
- "navItems": [
5377
- {
5378
- "label": "Providers",
5379
- "href": "/providers",
5380
- "icon": "user-check"
5381
- },
5382
- {
5383
- "href": "/book",
5384
- "icon": "calendar-plus",
5385
- "label": "Book"
5386
- },
5387
- {
5388
- "href": "/appointments",
5389
- "label": "Appointments",
5390
- "icon": "calendar"
5391
- },
5392
- {
5393
- "href": "/schedule",
5394
- "icon": "clock",
5395
- "label": "Schedule"
5396
- }
5397
- ],
5398
5459
  "children": [
5399
5460
  {
5461
+ "type": "scaled-diagram",
5400
5462
  "children": [
5401
5463
  {
5402
5464
  "direction": "vertical",
5403
- "type": "stack",
5404
5465
  "children": [
5405
5466
  {
5406
- "type": "breadcrumb",
5407
5467
  "items": [
5408
5468
  {
5409
- "label": "Home",
5410
- "href": "/"
5469
+ "href": "/",
5470
+ "label": "Home"
5411
5471
  },
5412
5472
  {
5413
5473
  "label": "Schedule Overview"
5414
5474
  }
5415
- ]
5475
+ ],
5476
+ "type": "breadcrumb"
5416
5477
  },
5417
5478
  {
5479
+ "gap": "md",
5480
+ "type": "stack",
5481
+ "justify": "between",
5482
+ "direction": "horizontal",
5418
5483
  "children": [
5419
5484
  {
5420
- "type": "stack",
5421
- "gap": "md",
5422
- "direction": "horizontal",
5423
5485
  "children": [
5424
5486
  {
5425
- "type": "icon",
5426
- "name": "bar-chart-2"
5487
+ "name": "bar-chart-2",
5488
+ "type": "icon"
5427
5489
  },
5428
5490
  {
5429
5491
  "content": "Schedule Overview",
5430
5492
  "variant": "h2",
5431
5493
  "type": "typography"
5432
5494
  }
5433
- ]
5495
+ ],
5496
+ "gap": "md",
5497
+ "type": "stack",
5498
+ "direction": "horizontal"
5434
5499
  },
5435
5500
  {
5501
+ "type": "button",
5502
+ "action": "REFRESH",
5436
5503
  "variant": "secondary",
5437
5504
  "label": "Refresh",
5438
- "type": "button",
5439
- "icon": "refresh-cw",
5440
- "action": "REFRESH"
5505
+ "icon": "refresh-cw"
5441
5506
  }
5442
- ],
5443
- "direction": "horizontal",
5444
- "type": "stack",
5445
- "gap": "md",
5446
- "justify": "between"
5507
+ ]
5447
5508
  },
5448
5509
  {
5449
5510
  "type": "divider"
5450
5511
  },
5451
5512
  {
5513
+ "type": "box",
5514
+ "padding": "md",
5452
5515
  "children": [
5453
5516
  {
5454
- "type": "simple-grid",
5455
5517
  "children": [
5456
5518
  {
5457
- "label": "TotalBookings",
5458
5519
  "value": "@entity.totalBookings",
5459
- "type": "stat-display"
5520
+ "type": "stat-display",
5521
+ "label": "TotalBookings"
5460
5522
  },
5461
5523
  {
5462
- "type": "stat-display",
5524
+ "value": "@entity.confirmedToday",
5463
5525
  "label": "ConfirmedToday",
5464
- "value": "@entity.confirmedToday"
5526
+ "type": "stat-display"
5465
5527
  },
5466
5528
  {
5467
- "type": "stat-display",
5468
5529
  "value": "@entity.pendingBookings",
5530
+ "type": "stat-display",
5469
5531
  "label": "PendingBookings"
5470
5532
  },
5471
5533
  {
5534
+ "type": "stat-display",
5472
5535
  "label": "AvailableSlots",
5473
- "value": "@entity.availableSlots",
5474
- "type": "stat-display"
5536
+ "value": "@entity.availableSlots"
5475
5537
  }
5476
5538
  ],
5477
- "cols": 4.0
5539
+ "cols": 4.0,
5540
+ "type": "simple-grid"
5478
5541
  }
5479
- ],
5480
- "padding": "md",
5481
- "type": "box"
5542
+ ]
5482
5543
  },
5483
5544
  {
5484
5545
  "type": "divider"
5485
5546
  },
5486
5547
  {
5487
- "type": "grid",
5488
5548
  "cols": 2.0,
5489
5549
  "gap": "md",
5550
+ "type": "grid",
5490
5551
  "children": [
5491
5552
  {
5553
+ "type": "card",
5492
5554
  "children": [
5493
5555
  {
5494
- "content": "Chart View",
5495
5556
  "type": "typography",
5496
- "variant": "caption"
5557
+ "variant": "caption",
5558
+ "content": "Chart View"
5497
5559
  }
5498
- ],
5499
- "type": "card"
5560
+ ]
5500
5561
  },
5501
5562
  {
5502
5563
  "children": [
5503
5564
  {
5504
- "type": "typography",
5565
+ "variant": "caption",
5505
5566
  "content": "Graph View",
5506
- "variant": "caption"
5567
+ "type": "typography"
5507
5568
  }
5508
5569
  ],
5509
5570
  "type": "card"
@@ -5511,35 +5572,36 @@
5511
5572
  ]
5512
5573
  },
5513
5574
  {
5575
+ "type": "line-chart",
5514
5576
  "data": [
5515
5577
  {
5516
5578
  "date": "Jan",
5517
5579
  "value": 12.0
5518
5580
  },
5519
5581
  {
5520
- "value": 19.0,
5521
- "date": "Feb"
5582
+ "date": "Feb",
5583
+ "value": 19.0
5522
5584
  },
5523
5585
  {
5524
- "date": "Mar",
5525
- "value": 15.0
5586
+ "value": 15.0,
5587
+ "date": "Mar"
5526
5588
  },
5527
5589
  {
5528
- "value": 25.0,
5529
- "date": "Apr"
5590
+ "date": "Apr",
5591
+ "value": 25.0
5530
5592
  },
5531
5593
  {
5532
- "value": 22.0,
5533
- "date": "May"
5594
+ "date": "May",
5595
+ "value": 22.0
5534
5596
  },
5535
5597
  {
5536
- "value": 30.0,
5537
- "date": "Jun"
5598
+ "date": "Jun",
5599
+ "value": 30.0
5538
5600
  }
5539
- ],
5540
- "type": "line-chart"
5601
+ ]
5541
5602
  },
5542
5603
  {
5604
+ "type": "chart-legend",
5543
5605
  "items": [
5544
5606
  {
5545
5607
  "label": "Current",
@@ -5549,21 +5611,22 @@
5549
5611
  "label": "Previous",
5550
5612
  "color": "muted"
5551
5613
  }
5552
- ],
5553
- "type": "chart-legend"
5614
+ ]
5554
5615
  },
5555
5616
  {
5617
+ "height": 200.0,
5556
5618
  "type": "graph-view",
5557
5619
  "edges": [
5558
5620
  {
5559
- "source": "a",
5560
- "target": "b"
5621
+ "target": "b",
5622
+ "source": "a"
5561
5623
  },
5562
5624
  {
5563
- "source": "b",
5564
- "target": "c"
5625
+ "target": "c",
5626
+ "source": "b"
5565
5627
  }
5566
5628
  ],
5629
+ "width": 400.0,
5567
5630
  "nodes": [
5568
5631
  {
5569
5632
  "label": "Start",
@@ -5574,21 +5637,42 @@
5574
5637
  "id": "b"
5575
5638
  },
5576
5639
  {
5577
- "id": "c",
5578
- "label": "End"
5640
+ "label": "End",
5641
+ "id": "c"
5579
5642
  }
5580
- ],
5581
- "height": 200.0,
5582
- "width": 400.0
5643
+ ]
5583
5644
  }
5584
5645
  ],
5646
+ "type": "stack",
5585
5647
  "gap": "lg"
5586
5648
  }
5587
- ],
5588
- "type": "scaled-diagram"
5649
+ ]
5589
5650
  }
5590
5651
  ],
5591
- "appName": "BookingSystemApp"
5652
+ "type": "dashboard-layout",
5653
+ "appName": "BookingSystemApp",
5654
+ "navItems": [
5655
+ {
5656
+ "icon": "user-check",
5657
+ "label": "Providers",
5658
+ "href": "/providers"
5659
+ },
5660
+ {
5661
+ "label": "Book",
5662
+ "href": "/book",
5663
+ "icon": "calendar-plus"
5664
+ },
5665
+ {
5666
+ "href": "/appointments",
5667
+ "label": "Appointments",
5668
+ "icon": "calendar"
5669
+ },
5670
+ {
5671
+ "icon": "clock",
5672
+ "label": "Schedule",
5673
+ "href": "/schedule"
5674
+ }
5675
+ ]
5592
5676
  }
5593
5677
  ]
5594
5678
  ]
@@ -5614,53 +5698,48 @@
5614
5698
  {
5615
5699
  "navItems": [
5616
5700
  {
5617
- "href": "/providers",
5701
+ "icon": "user-check",
5618
5702
  "label": "Providers",
5619
- "icon": "user-check"
5703
+ "href": "/providers"
5620
5704
  },
5621
5705
  {
5622
- "icon": "calendar-plus",
5706
+ "label": "Book",
5623
5707
  "href": "/book",
5624
- "label": "Book"
5708
+ "icon": "calendar-plus"
5625
5709
  },
5626
5710
  {
5627
- "label": "Appointments",
5628
5711
  "href": "/appointments",
5629
- "icon": "calendar"
5712
+ "icon": "calendar",
5713
+ "label": "Appointments"
5630
5714
  },
5631
5715
  {
5632
- "icon": "clock",
5633
5716
  "label": "Schedule",
5717
+ "icon": "clock",
5634
5718
  "href": "/schedule"
5635
5719
  }
5636
5720
  ],
5637
- "appName": "BookingSystemApp",
5638
5721
  "type": "dashboard-layout",
5722
+ "appName": "BookingSystemApp",
5639
5723
  "children": [
5640
5724
  {
5641
5725
  "type": "scaled-diagram",
5642
5726
  "children": [
5643
5727
  {
5644
5728
  "type": "stack",
5645
- "gap": "lg",
5646
- "direction": "vertical",
5647
5729
  "children": [
5648
5730
  {
5649
- "type": "breadcrumb",
5650
5731
  "items": [
5651
5732
  {
5652
- "label": "Home",
5653
- "href": "/"
5733
+ "href": "/",
5734
+ "label": "Home"
5654
5735
  },
5655
5736
  {
5656
5737
  "label": "Schedule Overview"
5657
5738
  }
5658
- ]
5739
+ ],
5740
+ "type": "breadcrumb"
5659
5741
  },
5660
5742
  {
5661
- "type": "stack",
5662
- "gap": "md",
5663
- "justify": "between",
5664
5743
  "children": [
5665
5744
  {
5666
5745
  "children": [
@@ -5669,23 +5748,26 @@
5669
5748
  "name": "bar-chart-2"
5670
5749
  },
5671
5750
  {
5672
- "content": "Schedule Overview",
5673
5751
  "variant": "h2",
5674
- "type": "typography"
5752
+ "type": "typography",
5753
+ "content": "Schedule Overview"
5675
5754
  }
5676
5755
  ],
5677
- "direction": "horizontal",
5756
+ "gap": "md",
5678
5757
  "type": "stack",
5679
- "gap": "md"
5758
+ "direction": "horizontal"
5680
5759
  },
5681
5760
  {
5682
- "label": "Refresh",
5683
- "icon": "refresh-cw",
5684
5761
  "type": "button",
5762
+ "action": "REFRESH",
5763
+ "label": "Refresh",
5685
5764
  "variant": "secondary",
5686
- "action": "REFRESH"
5765
+ "icon": "refresh-cw"
5687
5766
  }
5688
5767
  ],
5768
+ "gap": "md",
5769
+ "type": "stack",
5770
+ "justify": "between",
5689
5771
  "direction": "horizontal"
5690
5772
  },
5691
5773
  {
@@ -5698,9 +5780,9 @@
5698
5780
  {
5699
5781
  "children": [
5700
5782
  {
5701
- "label": "TotalBookings",
5783
+ "value": "@entity.totalBookings",
5702
5784
  "type": "stat-display",
5703
- "value": "@entity.totalBookings"
5785
+ "label": "TotalBookings"
5704
5786
  },
5705
5787
  {
5706
5788
  "value": "@entity.confirmedToday",
@@ -5714,12 +5796,12 @@
5714
5796
  },
5715
5797
  {
5716
5798
  "type": "stat-display",
5717
- "value": "@entity.availableSlots",
5718
- "label": "AvailableSlots"
5799
+ "label": "AvailableSlots",
5800
+ "value": "@entity.availableSlots"
5719
5801
  }
5720
5802
  ],
5721
- "type": "simple-grid",
5722
- "cols": 4.0
5803
+ "cols": 4.0,
5804
+ "type": "simple-grid"
5723
5805
  }
5724
5806
  ]
5725
5807
  },
@@ -5728,16 +5810,15 @@
5728
5810
  },
5729
5811
  {
5730
5812
  "gap": "md",
5731
- "type": "grid",
5732
5813
  "cols": 2.0,
5733
5814
  "children": [
5734
5815
  {
5735
5816
  "type": "card",
5736
5817
  "children": [
5737
5818
  {
5738
- "type": "typography",
5819
+ "content": "Chart View",
5739
5820
  "variant": "caption",
5740
- "content": "Chart View"
5821
+ "type": "typography"
5741
5822
  }
5742
5823
  ]
5743
5824
  },
@@ -5751,10 +5832,10 @@
5751
5832
  }
5752
5833
  ]
5753
5834
  }
5754
- ]
5835
+ ],
5836
+ "type": "grid"
5755
5837
  },
5756
5838
  {
5757
- "type": "line-chart",
5758
5839
  "data": [
5759
5840
  {
5760
5841
  "date": "Jan",
@@ -5780,51 +5861,54 @@
5780
5861
  "value": 30.0,
5781
5862
  "date": "Jun"
5782
5863
  }
5783
- ]
5864
+ ],
5865
+ "type": "line-chart"
5784
5866
  },
5785
5867
  {
5786
- "type": "chart-legend",
5787
5868
  "items": [
5788
5869
  {
5789
- "color": "primary",
5790
- "label": "Current"
5870
+ "label": "Current",
5871
+ "color": "primary"
5791
5872
  },
5792
5873
  {
5793
- "label": "Previous",
5794
- "color": "muted"
5874
+ "color": "muted",
5875
+ "label": "Previous"
5795
5876
  }
5796
- ]
5877
+ ],
5878
+ "type": "chart-legend"
5797
5879
  },
5798
5880
  {
5799
5881
  "edges": [
5800
5882
  {
5801
- "target": "b",
5802
- "source": "a"
5883
+ "source": "a",
5884
+ "target": "b"
5803
5885
  },
5804
5886
  {
5805
- "source": "b",
5806
- "target": "c"
5887
+ "target": "c",
5888
+ "source": "b"
5807
5889
  }
5808
5890
  ],
5809
- "type": "graph-view",
5810
- "height": 200.0,
5811
5891
  "nodes": [
5812
5892
  {
5813
- "label": "Start",
5814
- "id": "a"
5893
+ "id": "a",
5894
+ "label": "Start"
5815
5895
  },
5816
5896
  {
5817
- "id": "b",
5818
- "label": "Process"
5897
+ "label": "Process",
5898
+ "id": "b"
5819
5899
  },
5820
5900
  {
5821
- "id": "c",
5822
- "label": "End"
5901
+ "label": "End",
5902
+ "id": "c"
5823
5903
  }
5824
5904
  ],
5825
- "width": 400.0
5905
+ "type": "graph-view",
5906
+ "width": 400.0,
5907
+ "height": 200.0
5826
5908
  }
5827
- ]
5909
+ ],
5910
+ "gap": "lg",
5911
+ "direction": "vertical"
5828
5912
  }
5829
5913
  ]
5830
5914
  }
@@ -5843,8 +5927,8 @@
5843
5927
  "Schedule",
5844
5928
  {
5845
5929
  "emit": {
5846
- "success": "ScheduleLoaded",
5847
- "failure": "ScheduleLoadFailed"
5930
+ "failure": "ScheduleLoadFailed",
5931
+ "success": "ScheduleLoaded"
5848
5932
  }
5849
5933
  }
5850
5934
  ],
@@ -5852,11 +5936,13 @@
5852
5936
  "render-ui",
5853
5937
  "main",
5854
5938
  {
5939
+ "type": "dashboard-layout",
5940
+ "appName": "BookingSystemApp",
5855
5941
  "navItems": [
5856
5942
  {
5857
- "href": "/providers",
5943
+ "label": "Providers",
5858
5944
  "icon": "user-check",
5859
- "label": "Providers"
5945
+ "href": "/providers"
5860
5946
  },
5861
5947
  {
5862
5948
  "icon": "calendar-plus",
@@ -5864,9 +5950,9 @@
5864
5950
  "href": "/book"
5865
5951
  },
5866
5952
  {
5953
+ "href": "/appointments",
5867
5954
  "icon": "calendar",
5868
- "label": "Appointments",
5869
- "href": "/appointments"
5955
+ "label": "Appointments"
5870
5956
  },
5871
5957
  {
5872
5958
  "label": "Schedule",
@@ -5874,79 +5960,76 @@
5874
5960
  "icon": "clock"
5875
5961
  }
5876
5962
  ],
5877
- "appName": "BookingSystemApp",
5878
5963
  "children": [
5879
5964
  {
5965
+ "type": "scaled-diagram",
5880
5966
  "children": [
5881
5967
  {
5882
5968
  "children": [
5883
5969
  {
5970
+ "type": "breadcrumb",
5884
5971
  "items": [
5885
5972
  {
5886
- "href": "/",
5887
- "label": "Home"
5973
+ "label": "Home",
5974
+ "href": "/"
5888
5975
  },
5889
5976
  {
5890
5977
  "label": "Schedule Overview"
5891
5978
  }
5892
- ],
5893
- "type": "breadcrumb"
5979
+ ]
5894
5980
  },
5895
5981
  {
5896
- "justify": "between",
5982
+ "type": "stack",
5983
+ "direction": "horizontal",
5897
5984
  "children": [
5898
5985
  {
5899
5986
  "gap": "md",
5987
+ "type": "stack",
5900
5988
  "children": [
5901
5989
  {
5902
5990
  "type": "icon",
5903
5991
  "name": "bar-chart-2"
5904
5992
  },
5905
5993
  {
5906
- "content": "Schedule Overview",
5907
5994
  "variant": "h2",
5908
- "type": "typography"
5995
+ "type": "typography",
5996
+ "content": "Schedule Overview"
5909
5997
  }
5910
5998
  ],
5911
- "type": "stack",
5912
5999
  "direction": "horizontal"
5913
6000
  },
5914
6001
  {
5915
- "icon": "refresh-cw",
5916
6002
  "label": "Refresh",
5917
- "variant": "secondary",
6003
+ "type": "button",
5918
6004
  "action": "REFRESH",
5919
- "type": "button"
6005
+ "variant": "secondary",
6006
+ "icon": "refresh-cw"
5920
6007
  }
5921
6008
  ],
5922
6009
  "gap": "md",
5923
- "type": "stack",
5924
- "direction": "horizontal"
6010
+ "justify": "between"
5925
6011
  },
5926
6012
  {
5927
6013
  "type": "divider"
5928
6014
  },
5929
6015
  {
5930
- "type": "box",
5931
- "padding": "md",
5932
6016
  "children": [
5933
6017
  {
5934
- "type": "simple-grid",
5935
6018
  "children": [
5936
6019
  {
5937
- "value": "@entity.totalBookings",
5938
6020
  "label": "TotalBookings",
6021
+ "value": "@entity.totalBookings",
5939
6022
  "type": "stat-display"
5940
6023
  },
5941
6024
  {
6025
+ "type": "stat-display",
5942
6026
  "label": "ConfirmedToday",
5943
- "value": "@entity.confirmedToday",
5944
- "type": "stat-display"
6027
+ "value": "@entity.confirmedToday"
5945
6028
  },
5946
6029
  {
5947
6030
  "value": "@entity.pendingBookings",
5948
- "label": "PendingBookings",
5949
- "type": "stat-display"
6031
+ "type": "stat-display",
6032
+ "label": "PendingBookings"
5950
6033
  },
5951
6034
  {
5952
6035
  "type": "stat-display",
@@ -5954,53 +6037,57 @@
5954
6037
  "value": "@entity.availableSlots"
5955
6038
  }
5956
6039
  ],
6040
+ "type": "simple-grid",
5957
6041
  "cols": 4.0
5958
6042
  }
5959
- ]
6043
+ ],
6044
+ "type": "box",
6045
+ "padding": "md"
5960
6046
  },
5961
6047
  {
5962
6048
  "type": "divider"
5963
6049
  },
5964
6050
  {
5965
- "type": "grid",
6051
+ "cols": 2.0,
5966
6052
  "gap": "md",
6053
+ "type": "grid",
5967
6054
  "children": [
5968
6055
  {
5969
6056
  "children": [
5970
6057
  {
6058
+ "content": "Chart View",
5971
6059
  "type": "typography",
5972
- "variant": "caption",
5973
- "content": "Chart View"
6060
+ "variant": "caption"
5974
6061
  }
5975
6062
  ],
5976
6063
  "type": "card"
5977
6064
  },
5978
6065
  {
6066
+ "type": "card",
5979
6067
  "children": [
5980
6068
  {
5981
6069
  "variant": "caption",
5982
- "content": "Graph View",
5983
- "type": "typography"
6070
+ "type": "typography",
6071
+ "content": "Graph View"
5984
6072
  }
5985
- ],
5986
- "type": "card"
6073
+ ]
5987
6074
  }
5988
- ],
5989
- "cols": 2.0
6075
+ ]
5990
6076
  },
5991
6077
  {
6078
+ "type": "line-chart",
5992
6079
  "data": [
5993
6080
  {
5994
- "value": 12.0,
5995
- "date": "Jan"
6081
+ "date": "Jan",
6082
+ "value": 12.0
5996
6083
  },
5997
6084
  {
5998
- "date": "Feb",
5999
- "value": 19.0
6085
+ "value": 19.0,
6086
+ "date": "Feb"
6000
6087
  },
6001
6088
  {
6002
- "value": 15.0,
6003
- "date": "Mar"
6089
+ "date": "Mar",
6090
+ "value": 15.0
6004
6091
  },
6005
6092
  {
6006
6093
  "value": 25.0,
@@ -6014,15 +6101,14 @@
6014
6101
  "date": "Jun",
6015
6102
  "value": 30.0
6016
6103
  }
6017
- ],
6018
- "type": "line-chart"
6104
+ ]
6019
6105
  },
6020
6106
  {
6021
6107
  "type": "chart-legend",
6022
6108
  "items": [
6023
6109
  {
6024
- "label": "Current",
6025
- "color": "primary"
6110
+ "color": "primary",
6111
+ "label": "Current"
6026
6112
  },
6027
6113
  {
6028
6114
  "label": "Previous",
@@ -6031,15 +6117,14 @@
6031
6117
  ]
6032
6118
  },
6033
6119
  {
6034
- "height": 200.0,
6035
6120
  "nodes": [
6036
6121
  {
6037
6122
  "id": "a",
6038
6123
  "label": "Start"
6039
6124
  },
6040
6125
  {
6041
- "label": "Process",
6042
- "id": "b"
6126
+ "id": "b",
6127
+ "label": "Process"
6043
6128
  },
6044
6129
  {
6045
6130
  "id": "c",
@@ -6047,14 +6132,15 @@
6047
6132
  }
6048
6133
  ],
6049
6134
  "type": "graph-view",
6135
+ "height": 200.0,
6050
6136
  "edges": [
6051
6137
  {
6052
6138
  "source": "a",
6053
6139
  "target": "b"
6054
6140
  },
6055
6141
  {
6056
- "source": "b",
6057
- "target": "c"
6142
+ "target": "c",
6143
+ "source": "b"
6058
6144
  }
6059
6145
  ],
6060
6146
  "width": 400.0
@@ -6064,11 +6150,9 @@
6064
6150
  "direction": "vertical",
6065
6151
  "gap": "lg"
6066
6152
  }
6067
- ],
6068
- "type": "scaled-diagram"
6153
+ ]
6069
6154
  }
6070
- ],
6071
- "type": "dashboard-layout"
6155
+ ]
6072
6156
  }
6073
6157
  ]
6074
6158
  ]
@@ -6083,8 +6167,8 @@
6083
6167
  "Schedule",
6084
6168
  {
6085
6169
  "emit": {
6086
- "failure": "ScheduleLoadFailed",
6087
- "success": "ScheduleLoaded"
6170
+ "success": "ScheduleLoaded",
6171
+ "failure": "ScheduleLoadFailed"
6088
6172
  }
6089
6173
  }
6090
6174
  ],
@@ -6092,122 +6176,121 @@
6092
6176
  "render-ui",
6093
6177
  "main",
6094
6178
  {
6095
- "type": "dashboard-layout",
6096
6179
  "children": [
6097
6180
  {
6181
+ "type": "scaled-diagram",
6098
6182
  "children": [
6099
6183
  {
6100
6184
  "type": "stack",
6101
- "direction": "vertical",
6102
6185
  "gap": "lg",
6103
6186
  "children": [
6104
6187
  {
6105
- "type": "breadcrumb",
6106
6188
  "items": [
6107
6189
  {
6108
- "href": "/",
6109
- "label": "Home"
6190
+ "label": "Home",
6191
+ "href": "/"
6110
6192
  },
6111
6193
  {
6112
6194
  "label": "Schedule Overview"
6113
6195
  }
6114
- ]
6196
+ ],
6197
+ "type": "breadcrumb"
6115
6198
  },
6116
6199
  {
6200
+ "direction": "horizontal",
6117
6201
  "justify": "between",
6202
+ "type": "stack",
6118
6203
  "children": [
6119
6204
  {
6120
- "type": "stack",
6205
+ "direction": "horizontal",
6121
6206
  "gap": "md",
6207
+ "type": "stack",
6122
6208
  "children": [
6123
6209
  {
6124
- "type": "icon",
6125
- "name": "bar-chart-2"
6210
+ "name": "bar-chart-2",
6211
+ "type": "icon"
6126
6212
  },
6127
6213
  {
6128
- "variant": "h2",
6129
6214
  "content": "Schedule Overview",
6215
+ "variant": "h2",
6130
6216
  "type": "typography"
6131
6217
  }
6132
- ],
6133
- "direction": "horizontal"
6218
+ ]
6134
6219
  },
6135
6220
  {
6221
+ "type": "button",
6136
6222
  "variant": "secondary",
6137
6223
  "icon": "refresh-cw",
6138
- "type": "button",
6139
6224
  "action": "REFRESH",
6140
6225
  "label": "Refresh"
6141
6226
  }
6142
6227
  ],
6143
- "gap": "md",
6144
- "direction": "horizontal",
6145
- "type": "stack"
6228
+ "gap": "md"
6146
6229
  },
6147
6230
  {
6148
6231
  "type": "divider"
6149
6232
  },
6150
6233
  {
6151
6234
  "padding": "md",
6235
+ "type": "box",
6152
6236
  "children": [
6153
6237
  {
6154
- "type": "simple-grid",
6155
6238
  "cols": 4.0,
6239
+ "type": "simple-grid",
6156
6240
  "children": [
6157
6241
  {
6242
+ "type": "stat-display",
6158
6243
  "label": "TotalBookings",
6159
- "value": "@entity.totalBookings",
6160
- "type": "stat-display"
6244
+ "value": "@entity.totalBookings"
6161
6245
  },
6162
6246
  {
6163
- "value": "@entity.confirmedToday",
6164
6247
  "type": "stat-display",
6165
- "label": "ConfirmedToday"
6248
+ "label": "ConfirmedToday",
6249
+ "value": "@entity.confirmedToday"
6166
6250
  },
6167
6251
  {
6252
+ "label": "PendingBookings",
6168
6253
  "type": "stat-display",
6169
- "value": "@entity.pendingBookings",
6170
- "label": "PendingBookings"
6254
+ "value": "@entity.pendingBookings"
6171
6255
  },
6172
6256
  {
6173
6257
  "type": "stat-display",
6174
- "value": "@entity.availableSlots",
6175
- "label": "AvailableSlots"
6258
+ "label": "AvailableSlots",
6259
+ "value": "@entity.availableSlots"
6176
6260
  }
6177
6261
  ]
6178
6262
  }
6179
- ],
6180
- "type": "box"
6263
+ ]
6181
6264
  },
6182
6265
  {
6183
6266
  "type": "divider"
6184
6267
  },
6185
6268
  {
6269
+ "gap": "md",
6270
+ "type": "grid",
6271
+ "cols": 2.0,
6186
6272
  "children": [
6187
6273
  {
6188
- "type": "card",
6189
6274
  "children": [
6190
6275
  {
6276
+ "content": "Chart View",
6191
6277
  "variant": "caption",
6192
- "type": "typography",
6193
- "content": "Chart View"
6278
+ "type": "typography"
6194
6279
  }
6195
- ]
6280
+ ],
6281
+ "type": "card"
6196
6282
  },
6197
6283
  {
6198
- "type": "card",
6199
6284
  "children": [
6200
6285
  {
6201
6286
  "type": "typography",
6202
6287
  "variant": "caption",
6203
6288
  "content": "Graph View"
6204
6289
  }
6205
- ]
6290
+ ],
6291
+ "type": "card"
6206
6292
  }
6207
- ],
6208
- "type": "grid",
6209
- "cols": 2.0,
6210
- "gap": "md"
6293
+ ]
6211
6294
  },
6212
6295
  {
6213
6296
  "type": "line-chart",
@@ -6229,30 +6312,29 @@
6229
6312
  "date": "Apr"
6230
6313
  },
6231
6314
  {
6232
- "value": 22.0,
6233
- "date": "May"
6315
+ "date": "May",
6316
+ "value": 22.0
6234
6317
  },
6235
6318
  {
6236
- "date": "Jun",
6237
- "value": 30.0
6319
+ "value": 30.0,
6320
+ "date": "Jun"
6238
6321
  }
6239
6322
  ]
6240
6323
  },
6241
6324
  {
6242
6325
  "items": [
6243
6326
  {
6244
- "label": "Current",
6245
- "color": "primary"
6327
+ "color": "primary",
6328
+ "label": "Current"
6246
6329
  },
6247
6330
  {
6248
- "color": "muted",
6249
- "label": "Previous"
6331
+ "label": "Previous",
6332
+ "color": "muted"
6250
6333
  }
6251
6334
  ],
6252
6335
  "type": "chart-legend"
6253
6336
  },
6254
6337
  {
6255
- "height": 200.0,
6256
6338
  "edges": [
6257
6339
  {
6258
6340
  "source": "a",
@@ -6263,52 +6345,54 @@
6263
6345
  "source": "b"
6264
6346
  }
6265
6347
  ],
6266
- "width": 400.0,
6267
- "type": "graph-view",
6268
6348
  "nodes": [
6269
6349
  {
6270
- "label": "Start",
6271
- "id": "a"
6350
+ "id": "a",
6351
+ "label": "Start"
6272
6352
  },
6273
6353
  {
6274
- "id": "b",
6275
- "label": "Process"
6354
+ "label": "Process",
6355
+ "id": "b"
6276
6356
  },
6277
6357
  {
6278
- "label": "End",
6279
- "id": "c"
6358
+ "id": "c",
6359
+ "label": "End"
6280
6360
  }
6281
- ]
6361
+ ],
6362
+ "width": 400.0,
6363
+ "type": "graph-view",
6364
+ "height": 200.0
6282
6365
  }
6283
- ]
6366
+ ],
6367
+ "direction": "vertical"
6284
6368
  }
6285
- ],
6286
- "type": "scaled-diagram"
6369
+ ]
6287
6370
  }
6288
6371
  ],
6372
+ "appName": "BookingSystemApp",
6373
+ "type": "dashboard-layout",
6289
6374
  "navItems": [
6290
6375
  {
6376
+ "href": "/providers",
6291
6377
  "label": "Providers",
6292
- "icon": "user-check",
6293
- "href": "/providers"
6378
+ "icon": "user-check"
6294
6379
  },
6295
6380
  {
6296
- "icon": "calendar-plus",
6381
+ "href": "/book",
6297
6382
  "label": "Book",
6298
- "href": "/book"
6383
+ "icon": "calendar-plus"
6299
6384
  },
6300
6385
  {
6301
6386
  "href": "/appointments",
6302
- "label": "Appointments",
6303
- "icon": "calendar"
6387
+ "icon": "calendar",
6388
+ "label": "Appointments"
6304
6389
  },
6305
6390
  {
6306
6391
  "label": "Schedule",
6307
6392
  "href": "/schedule",
6308
6393
  "icon": "clock"
6309
6394
  }
6310
- ],
6311
- "appName": "BookingSystemApp"
6395
+ ]
6312
6396
  }
6313
6397
  ]
6314
6398
  ]
@@ -6333,21 +6417,20 @@
6333
6417
  "main",
6334
6418
  {
6335
6419
  "type": "dashboard-layout",
6336
- "appName": "BookingSystemApp",
6337
6420
  "navItems": [
6338
6421
  {
6339
6422
  "href": "/providers",
6340
- "label": "Providers",
6341
- "icon": "user-check"
6423
+ "icon": "user-check",
6424
+ "label": "Providers"
6342
6425
  },
6343
6426
  {
6427
+ "icon": "calendar-plus",
6344
6428
  "href": "/book",
6345
- "label": "Book",
6346
- "icon": "calendar-plus"
6429
+ "label": "Book"
6347
6430
  },
6348
6431
  {
6349
- "href": "/appointments",
6350
6432
  "icon": "calendar",
6433
+ "href": "/appointments",
6351
6434
  "label": "Appointments"
6352
6435
  },
6353
6436
  {
@@ -6360,10 +6443,12 @@
6360
6443
  {
6361
6444
  "children": [
6362
6445
  {
6363
- "gap": "lg",
6364
6446
  "type": "stack",
6447
+ "direction": "vertical",
6448
+ "gap": "lg",
6365
6449
  "children": [
6366
6450
  {
6451
+ "type": "breadcrumb",
6367
6452
  "items": [
6368
6453
  {
6369
6454
  "label": "Home",
@@ -6372,89 +6457,89 @@
6372
6457
  {
6373
6458
  "label": "Schedule Overview"
6374
6459
  }
6375
- ],
6376
- "type": "breadcrumb"
6460
+ ]
6377
6461
  },
6378
6462
  {
6379
- "type": "stack",
6380
- "justify": "between",
6381
6463
  "children": [
6382
6464
  {
6383
- "type": "stack",
6384
6465
  "gap": "md",
6466
+ "type": "stack",
6467
+ "direction": "horizontal",
6385
6468
  "children": [
6386
6469
  {
6387
6470
  "name": "bar-chart-2",
6388
6471
  "type": "icon"
6389
6472
  },
6390
6473
  {
6474
+ "variant": "h2",
6391
6475
  "type": "typography",
6392
- "content": "Schedule Overview",
6393
- "variant": "h2"
6476
+ "content": "Schedule Overview"
6394
6477
  }
6395
- ],
6396
- "direction": "horizontal"
6478
+ ]
6397
6479
  },
6398
6480
  {
6399
- "label": "Refresh",
6400
- "type": "button",
6401
- "action": "REFRESH",
6402
6481
  "variant": "secondary",
6403
- "icon": "refresh-cw"
6482
+ "icon": "refresh-cw",
6483
+ "action": "REFRESH",
6484
+ "label": "Refresh",
6485
+ "type": "button"
6404
6486
  }
6405
6487
  ],
6488
+ "type": "stack",
6406
6489
  "gap": "md",
6490
+ "justify": "between",
6407
6491
  "direction": "horizontal"
6408
6492
  },
6409
6493
  {
6410
6494
  "type": "divider"
6411
6495
  },
6412
6496
  {
6413
- "type": "box",
6414
- "padding": "md",
6415
6497
  "children": [
6416
6498
  {
6417
- "cols": 4.0,
6418
6499
  "children": [
6419
6500
  {
6501
+ "label": "TotalBookings",
6420
6502
  "value": "@entity.totalBookings",
6421
- "type": "stat-display",
6422
- "label": "TotalBookings"
6503
+ "type": "stat-display"
6423
6504
  },
6424
6505
  {
6425
- "label": "ConfirmedToday",
6426
6506
  "value": "@entity.confirmedToday",
6427
- "type": "stat-display"
6507
+ "type": "stat-display",
6508
+ "label": "ConfirmedToday"
6428
6509
  },
6429
6510
  {
6430
6511
  "value": "@entity.pendingBookings",
6431
- "type": "stat-display",
6432
- "label": "PendingBookings"
6512
+ "label": "PendingBookings",
6513
+ "type": "stat-display"
6433
6514
  },
6434
6515
  {
6435
- "value": "@entity.availableSlots",
6436
6516
  "type": "stat-display",
6437
- "label": "AvailableSlots"
6517
+ "label": "AvailableSlots",
6518
+ "value": "@entity.availableSlots"
6438
6519
  }
6439
6520
  ],
6440
- "type": "simple-grid"
6521
+ "type": "simple-grid",
6522
+ "cols": 4.0
6441
6523
  }
6442
- ]
6524
+ ],
6525
+ "padding": "md",
6526
+ "type": "box"
6443
6527
  },
6444
6528
  {
6445
6529
  "type": "divider"
6446
6530
  },
6447
6531
  {
6532
+ "type": "grid",
6448
6533
  "children": [
6449
6534
  {
6535
+ "type": "card",
6450
6536
  "children": [
6451
6537
  {
6452
6538
  "type": "typography",
6453
6539
  "variant": "caption",
6454
6540
  "content": "Chart View"
6455
6541
  }
6456
- ],
6457
- "type": "card"
6542
+ ]
6458
6543
  },
6459
6544
  {
6460
6545
  "type": "card",
@@ -6467,9 +6552,8 @@
6467
6552
  ]
6468
6553
  }
6469
6554
  ],
6470
- "cols": 2.0,
6471
- "type": "grid",
6472
- "gap": "md"
6555
+ "gap": "md",
6556
+ "cols": 2.0
6473
6557
  },
6474
6558
  {
6475
6559
  "data": [
@@ -6478,16 +6562,16 @@
6478
6562
  "date": "Jan"
6479
6563
  },
6480
6564
  {
6481
- "date": "Feb",
6482
- "value": 19.0
6565
+ "value": 19.0,
6566
+ "date": "Feb"
6483
6567
  },
6484
6568
  {
6485
- "date": "Mar",
6486
- "value": 15.0
6569
+ "value": 15.0,
6570
+ "date": "Mar"
6487
6571
  },
6488
6572
  {
6489
- "date": "Apr",
6490
- "value": 25.0
6573
+ "value": 25.0,
6574
+ "date": "Apr"
6491
6575
  },
6492
6576
  {
6493
6577
  "date": "May",
@@ -6514,41 +6598,41 @@
6514
6598
  "type": "chart-legend"
6515
6599
  },
6516
6600
  {
6517
- "edges": [
6518
- {
6519
- "target": "b",
6520
- "source": "a"
6521
- },
6522
- {
6523
- "source": "b",
6524
- "target": "c"
6525
- }
6526
- ],
6527
- "height": 200.0,
6601
+ "type": "graph-view",
6602
+ "width": 400.0,
6528
6603
  "nodes": [
6529
6604
  {
6530
- "id": "a",
6531
- "label": "Start"
6605
+ "label": "Start",
6606
+ "id": "a"
6532
6607
  },
6533
6608
  {
6534
- "id": "b",
6535
- "label": "Process"
6609
+ "label": "Process",
6610
+ "id": "b"
6536
6611
  },
6537
6612
  {
6538
6613
  "id": "c",
6539
6614
  "label": "End"
6540
6615
  }
6541
6616
  ],
6542
- "type": "graph-view",
6543
- "width": 400.0
6617
+ "edges": [
6618
+ {
6619
+ "source": "a",
6620
+ "target": "b"
6621
+ },
6622
+ {
6623
+ "source": "b",
6624
+ "target": "c"
6625
+ }
6626
+ ],
6627
+ "height": 200.0
6544
6628
  }
6545
- ],
6546
- "direction": "vertical"
6629
+ ]
6547
6630
  }
6548
6631
  ],
6549
6632
  "type": "scaled-diagram"
6550
6633
  }
6551
- ]
6634
+ ],
6635
+ "appName": "BookingSystemApp"
6552
6636
  }
6553
6637
  ]
6554
6638
  ]