@almadar/std 14.3.0 → 14.4.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 (33) hide show
  1. package/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  4. package/behaviors/registry/app/organisms/std-crm.orb +950 -817
  5. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  6. package/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  7. package/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  8. package/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  9. package/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  10. package/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  11. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  12. package/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  13. package/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  14. package/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  15. package/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  16. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  17. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  18. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  19. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  20. package/dist/behaviors/registry/app/organisms/std-crm.orb +950 -817
  21. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  22. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  23. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  24. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  25. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  26. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  27. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  28. package/dist/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  29. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  30. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  31. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  32. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  33. package/package.json +1 -1
@@ -5,6 +5,12 @@
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ProviderOrbital",
8
+ "uses": [
9
+ {
10
+ "from": "std/behaviors/std-app-layout",
11
+ "as": "AppShell"
12
+ }
13
+ ],
8
14
  "entity": {
9
15
  "name": "Provider",
10
16
  "collection": "providers",
@@ -51,6 +57,43 @@
51
57
  ]
52
58
  },
53
59
  "traits": [
60
+ {
61
+ "ref": "AppShell.traits.AppLayout",
62
+ "name": "BookingProviderAppLayout",
63
+ "config": {
64
+ "notificationClickEvent": "BOOKING_NOTIFICATIONS_OPEN",
65
+ "appName": "BookingSystemApp",
66
+ "contentTrait": "@trait.ProviderBrowse",
67
+ "navItems": [
68
+ {
69
+ "href": "/providers",
70
+ "icon": "user-check",
71
+ "label": "Providers"
72
+ },
73
+ {
74
+ "label": "Book",
75
+ "href": "/book",
76
+ "icon": "calendar-plus"
77
+ },
78
+ {
79
+ "label": "Appointments",
80
+ "href": "/appointments",
81
+ "icon": "calendar"
82
+ },
83
+ {
84
+ "label": "Schedule",
85
+ "href": "/schedule",
86
+ "icon": "clock"
87
+ }
88
+ ],
89
+ "notifications": [],
90
+ "searchEvent": "BOOKING_SEARCH"
91
+ },
92
+ "events": {
93
+ "SEARCH": "BOOKING_SEARCH",
94
+ "NOTIFY_CLICK": "BOOKING_NOTIFICATIONS_OPEN"
95
+ }
96
+ },
54
97
  {
55
98
  "name": "ProviderBrowse",
56
99
  "category": "interaction",
@@ -423,6 +466,22 @@
423
466
  "kind": "trait",
424
467
  "trait": "ProviderDelete"
425
468
  }
469
+ },
470
+ {
471
+ "event": "BOOKING_SEARCH",
472
+ "triggers": "BOOKING_SEARCH",
473
+ "source": {
474
+ "kind": "trait",
475
+ "trait": "BookingProviderAppLayout"
476
+ }
477
+ },
478
+ {
479
+ "event": "BOOKING_NOTIFICATIONS_OPEN",
480
+ "triggers": "BOOKING_NOTIFICATIONS_OPEN",
481
+ "source": {
482
+ "kind": "trait",
483
+ "trait": "BookingProviderAppLayout"
484
+ }
426
485
  }
427
486
  ],
428
487
  "stateMachine": {
@@ -437,6 +496,26 @@
437
496
  "key": "INIT",
438
497
  "name": "Initialize"
439
498
  },
499
+ {
500
+ "key": "BOOKING_SEARCH",
501
+ "name": "Booking Search",
502
+ "payloadSchema": [
503
+ {
504
+ "name": "value",
505
+ "type": "string"
506
+ }
507
+ ]
508
+ },
509
+ {
510
+ "key": "BOOKING_NOTIFICATIONS_OPEN",
511
+ "name": "Booking Notifications Open",
512
+ "payloadSchema": [
513
+ {
514
+ "name": "id",
515
+ "type": "string"
516
+ }
517
+ ]
518
+ },
440
519
  {
441
520
  "key": "ProviderLoaded",
442
521
  "name": "Provider loaded",
@@ -705,6 +784,7 @@
705
784
  {
706
785
  "align": "center",
707
786
  "type": "stack",
787
+ "direction": "vertical",
708
788
  "gap": "md",
709
789
  "className": "py-12",
710
790
  "children": [
@@ -712,10 +792,48 @@
712
792
  "type": "spinner"
713
793
  },
714
794
  {
715
- "type": "typography",
716
795
  "color": "muted",
796
+ "variant": "caption",
717
797
  "content": "Loading…",
718
- "variant": "caption"
798
+ "type": "typography"
799
+ }
800
+ ]
801
+ }
802
+ ]
803
+ ]
804
+ },
805
+ {
806
+ "from": "browsing",
807
+ "to": "browsing",
808
+ "event": "BOOKING_SEARCH",
809
+ "effects": [
810
+ [
811
+ "fetch",
812
+ "Provider",
813
+ {
814
+ "emit": {
815
+ "failure": "ProviderLoadFailed",
816
+ "success": "ProviderLoaded"
817
+ }
818
+ }
819
+ ],
820
+ [
821
+ "render-ui",
822
+ "main",
823
+ {
824
+ "gap": "md",
825
+ "align": "center",
826
+ "className": "py-12",
827
+ "type": "stack",
828
+ "children": [
829
+ {
830
+ "type": "spinner"
831
+ },
832
+ {
833
+ "color": "muted",
834
+ "variant": "caption",
835
+ "type": "typography",
836
+ "content": "Searching…"
719
837
  }
720
838
  ],
721
839
  "direction": "vertical"
@@ -723,6 +841,47 @@
723
841
  ]
724
842
  ]
725
843
  },
844
+ {
845
+ "from": "browsing",
846
+ "to": "browsing",
847
+ "event": "BOOKING_NOTIFICATIONS_OPEN",
848
+ "effects": [
849
+ [
850
+ "render-ui",
851
+ "main",
852
+ {
853
+ "children": [
854
+ {
855
+ "type": "icon",
856
+ "name": "bell"
857
+ },
858
+ {
859
+ "type": "typography",
860
+ "variant": "h3",
861
+ "content": "No notifications"
862
+ },
863
+ {
864
+ "variant": "caption",
865
+ "content": "You're all caught up.",
866
+ "type": "typography",
867
+ "color": "muted"
868
+ },
869
+ {
870
+ "type": "button",
871
+ "variant": "ghost",
872
+ "label": "Back to providers",
873
+ "action": "INIT"
874
+ }
875
+ ],
876
+ "type": "stack",
877
+ "align": "center",
878
+ "direction": "vertical",
879
+ "gap": "md",
880
+ "className": "py-8"
881
+ }
882
+ ]
883
+ ]
884
+ },
726
885
  {
727
886
  "from": "browsing",
728
887
  "to": "browsing",
@@ -734,128 +893,99 @@
734
893
  {
735
894
  "children": [
736
895
  {
737
- "direction": "vertical",
738
- "className": "max-w-5xl mx-auto w-full",
896
+ "gap": "md",
897
+ "type": "stack",
898
+ "direction": "horizontal",
899
+ "justify": "between",
900
+ "align": "center",
739
901
  "children": [
740
902
  {
741
- "gap": "md",
742
- "justify": "between",
903
+ "type": "stack",
904
+ "direction": "horizontal",
743
905
  "align": "center",
906
+ "gap": "sm",
744
907
  "children": [
745
908
  {
746
- "direction": "horizontal",
747
- "gap": "sm",
748
- "align": "center",
749
- "children": [
750
- {
751
- "name": "briefcase",
752
- "type": "icon"
753
- },
754
- {
755
- "variant": "h2",
756
- "type": "typography",
757
- "content": "Providers"
758
- }
759
- ],
760
- "type": "stack"
909
+ "name": "briefcase",
910
+ "type": "icon"
761
911
  },
762
912
  {
763
- "direction": "horizontal",
764
- "type": "stack",
765
- "gap": "sm",
766
- "children": [
767
- {
768
- "icon": "plus",
769
- "label": "Create Provider",
770
- "type": "button",
771
- "action": "CREATE",
772
- "variant": "primary"
773
- }
774
- ]
913
+ "variant": "h2",
914
+ "content": "Providers",
915
+ "type": "typography"
775
916
  }
776
- ],
777
- "type": "stack",
778
- "direction": "horizontal"
779
- },
780
- {
781
- "type": "divider"
917
+ ]
782
918
  },
783
919
  {
784
- "itemActions": [
785
- {
786
- "variant": "ghost",
787
- "label": "View",
788
- "event": "VIEW"
789
- },
790
- {
791
- "event": "EDIT",
792
- "label": "Edit",
793
- "variant": "ghost"
794
- },
795
- {
796
- "event": "DELETE",
797
- "label": "Delete",
798
- "variant": "danger"
799
- }
800
- ],
801
- "type": "data-grid",
802
- "entity": "@payload.data",
803
- "fields": [
804
- {
805
- "variant": "h3",
806
- "icon": "briefcase",
807
- "name": "name"
808
- },
809
- {
810
- "name": "specialty",
811
- "variant": "badge"
812
- },
813
- {
814
- "name": "rating",
815
- "format": "number",
816
- "variant": "body"
817
- },
818
- {
819
- "variant": "body",
820
- "name": "location"
821
- },
920
+ "type": "stack",
921
+ "direction": "horizontal",
922
+ "children": [
822
923
  {
823
- "name": "phone",
824
- "variant": "caption"
924
+ "variant": "primary",
925
+ "label": "Create Provider",
926
+ "action": "CREATE",
927
+ "type": "button",
928
+ "icon": "plus"
825
929
  }
826
930
  ],
827
- "cols": 2.0,
828
- "gap": "md"
931
+ "gap": "sm"
829
932
  }
830
- ],
831
- "type": "stack",
832
- "gap": "lg"
833
- }
834
- ],
835
- "navItems": [
836
- {
837
- "icon": "user-check",
838
- "label": "Providers",
839
- "href": "/providers"
840
- },
841
- {
842
- "label": "Book",
843
- "icon": "calendar-plus",
844
- "href": "/book"
933
+ ]
845
934
  },
846
935
  {
847
- "icon": "calendar",
848
- "href": "/appointments",
849
- "label": "Appointments"
936
+ "type": "divider"
850
937
  },
851
938
  {
852
- "label": "Schedule",
853
- "href": "/schedule",
854
- "icon": "clock"
939
+ "type": "data-grid",
940
+ "cols": 2.0,
941
+ "gap": "md",
942
+ "entity": "@payload.data",
943
+ "fields": [
944
+ {
945
+ "variant": "h3",
946
+ "name": "name",
947
+ "icon": "briefcase"
948
+ },
949
+ {
950
+ "variant": "badge",
951
+ "name": "specialty"
952
+ },
953
+ {
954
+ "variant": "body",
955
+ "name": "rating",
956
+ "format": "number"
957
+ },
958
+ {
959
+ "name": "location",
960
+ "variant": "body"
961
+ },
962
+ {
963
+ "name": "phone",
964
+ "variant": "caption"
965
+ }
966
+ ],
967
+ "itemActions": [
968
+ {
969
+ "event": "VIEW",
970
+ "variant": "ghost",
971
+ "label": "View"
972
+ },
973
+ {
974
+ "event": "EDIT",
975
+ "variant": "ghost",
976
+ "label": "Edit"
977
+ },
978
+ {
979
+ "label": "Delete",
980
+ "event": "DELETE",
981
+ "variant": "danger"
982
+ }
983
+ ]
855
984
  }
856
985
  ],
857
- "type": "dashboard-layout",
858
- "appName": "BookingSystemApp"
986
+ "direction": "vertical",
987
+ "gap": "lg",
988
+ "type": "stack"
859
989
  }
860
990
  ]
861
991
  ]
@@ -869,9 +999,7 @@
869
999
  "render-ui",
870
1000
  "main",
871
1001
  {
872
- "align": "center",
873
1002
  "gap": "md",
874
- "direction": "vertical",
875
1003
  "className": "py-12",
876
1004
  "type": "stack",
877
1005
  "children": [
@@ -882,23 +1010,25 @@
882
1010
  },
883
1011
  {
884
1012
  "variant": "h3",
885
- "type": "typography",
886
- "content": "Failed to load provider"
1013
+ "content": "Failed to load provider",
1014
+ "type": "typography"
887
1015
  },
888
1016
  {
889
1017
  "type": "typography",
890
1018
  "variant": "body",
891
- "color": "muted",
892
- "content": "@payload.error"
1019
+ "content": "@payload.error",
1020
+ "color": "muted"
893
1021
  },
894
1022
  {
895
- "action": "INIT",
896
- "variant": "primary",
897
1023
  "type": "button",
898
1024
  "label": "Retry",
899
- "icon": "rotate-ccw"
1025
+ "variant": "primary",
1026
+ "icon": "rotate-ccw",
1027
+ "action": "INIT"
900
1028
  }
901
- ]
1029
+ ],
1030
+ "align": "center",
1031
+ "direction": "vertical"
902
1032
  }
903
1033
  ]
904
1034
  ]
@@ -1081,8 +1211,8 @@
1081
1211
  "Provider",
1082
1212
  {
1083
1213
  "emit": {
1084
- "success": "ProviderLoaded",
1085
- "failure": "ProviderLoadFailed"
1214
+ "failure": "ProviderLoadFailed",
1215
+ "success": "ProviderLoaded"
1086
1216
  }
1087
1217
  }
1088
1218
  ]
@@ -1107,30 +1237,28 @@
1107
1237
  "render-ui",
1108
1238
  "modal",
1109
1239
  {
1240
+ "type": "stack",
1110
1241
  "children": [
1111
1242
  {
1112
- "direction": "horizontal",
1113
1243
  "children": [
1114
1244
  {
1115
1245
  "type": "icon",
1116
1246
  "name": "plus-circle"
1117
1247
  },
1118
1248
  {
1249
+ "content": "Create Provider",
1119
1250
  "variant": "h3",
1120
- "type": "typography",
1121
- "content": "Create Provider"
1251
+ "type": "typography"
1122
1252
  }
1123
1253
  ],
1124
- "gap": "sm",
1125
- "type": "stack"
1254
+ "type": "stack",
1255
+ "direction": "horizontal",
1256
+ "gap": "sm"
1126
1257
  },
1127
1258
  {
1128
1259
  "type": "divider"
1129
1260
  },
1130
1261
  {
1131
- "submitEvent": "SAVE",
1132
- "cancelEvent": "CLOSE",
1133
- "type": "form-section",
1134
1262
  "fields": [
1135
1263
  "name",
1136
1264
  "specialty",
@@ -1139,12 +1267,14 @@
1139
1267
  "rating",
1140
1268
  "available"
1141
1269
  ],
1142
- "mode": "create"
1270
+ "cancelEvent": "CLOSE",
1271
+ "mode": "create",
1272
+ "submitEvent": "SAVE",
1273
+ "type": "form-section"
1143
1274
  }
1144
1275
  ],
1145
- "type": "stack",
1146
- "gap": "md",
1147
- "direction": "vertical"
1276
+ "direction": "vertical",
1277
+ "gap": "md"
1148
1278
  }
1149
1279
  ]
1150
1280
  ]
@@ -1405,8 +1535,8 @@
1405
1535
  "Provider",
1406
1536
  {
1407
1537
  "emit": {
1408
- "success": "ProviderLoaded",
1409
- "failure": "ProviderLoadFailed"
1538
+ "failure": "ProviderLoadFailed",
1539
+ "success": "ProviderLoaded"
1410
1540
  }
1411
1541
  }
1412
1542
  ]
@@ -1421,46 +1551,43 @@
1421
1551
  "fetch",
1422
1552
  "Provider",
1423
1553
  {
1554
+ "id": "@payload.id",
1424
1555
  "emit": {
1425
- "failure": "ProviderLoadFailed",
1426
- "success": "ProviderLoaded"
1427
- },
1428
- "id": "@payload.id"
1556
+ "success": "ProviderLoaded",
1557
+ "failure": "ProviderLoadFailed"
1558
+ }
1429
1559
  }
1430
1560
  ],
1431
1561
  [
1432
1562
  "render-ui",
1433
1563
  "modal",
1434
1564
  {
1435
- "gap": "md",
1436
1565
  "type": "stack",
1437
- "direction": "vertical",
1566
+ "gap": "md",
1438
1567
  "children": [
1439
1568
  {
1440
- "type": "stack",
1441
1569
  "direction": "horizontal",
1570
+ "gap": "sm",
1442
1571
  "children": [
1443
1572
  {
1444
1573
  "name": "edit",
1445
1574
  "type": "icon"
1446
1575
  },
1447
1576
  {
1577
+ "content": "Edit Provider",
1448
1578
  "type": "typography",
1449
- "variant": "h3",
1450
- "content": "Edit Provider"
1579
+ "variant": "h3"
1451
1580
  }
1452
1581
  ],
1453
- "gap": "sm"
1582
+ "type": "stack"
1454
1583
  },
1455
1584
  {
1456
1585
  "type": "divider"
1457
1586
  },
1458
1587
  {
1459
- "entity": "@payload.row",
1588
+ "mode": "edit",
1460
1589
  "submitEvent": "SAVE",
1461
- "cancelEvent": "CLOSE",
1462
1590
  "type": "form-section",
1463
- "mode": "edit",
1464
1591
  "fields": [
1465
1592
  "name",
1466
1593
  "specialty",
@@ -1468,9 +1595,12 @@
1468
1595
  "phone",
1469
1596
  "rating",
1470
1597
  "available"
1471
- ]
1598
+ ],
1599
+ "cancelEvent": "CLOSE",
1600
+ "entity": "@payload.row"
1472
1601
  }
1473
- ]
1602
+ ],
1603
+ "direction": "vertical"
1474
1604
  }
1475
1605
  ]
1476
1606
  ]
@@ -1511,8 +1641,8 @@
1511
1641
  "@payload.data",
1512
1642
  {
1513
1643
  "emit": {
1514
- "failure": "ProviderUpdateFailed",
1515
- "success": "ProviderUpdated"
1644
+ "success": "ProviderUpdated",
1645
+ "failure": "ProviderUpdateFailed"
1516
1646
  }
1517
1647
  }
1518
1648
  ],
@@ -1716,58 +1846,61 @@
1716
1846
  "fetch",
1717
1847
  "Provider",
1718
1848
  {
1719
- "id": "@payload.id",
1720
1849
  "emit": {
1721
- "success": "ProviderLoaded",
1722
- "failure": "ProviderLoadFailed"
1723
- }
1850
+ "failure": "ProviderLoadFailed",
1851
+ "success": "ProviderLoaded"
1852
+ },
1853
+ "id": "@payload.id"
1724
1854
  }
1725
1855
  ],
1726
1856
  [
1727
1857
  "render-ui",
1728
1858
  "modal",
1729
1859
  {
1730
- "type": "stack",
1731
1860
  "gap": "md",
1861
+ "direction": "vertical",
1862
+ "type": "stack",
1732
1863
  "children": [
1733
1864
  {
1734
1865
  "type": "stack",
1735
- "align": "center",
1866
+ "gap": "sm",
1736
1867
  "children": [
1737
1868
  {
1738
- "type": "icon",
1739
- "name": "eye"
1869
+ "name": "eye",
1870
+ "type": "icon"
1740
1871
  },
1741
1872
  {
1742
- "type": "typography",
1743
1873
  "variant": "h3",
1744
- "content": "@entity.name"
1874
+ "content": "@entity.name",
1875
+ "type": "typography"
1745
1876
  }
1746
1877
  ],
1747
1878
  "direction": "horizontal",
1748
- "gap": "sm"
1879
+ "align": "center"
1749
1880
  },
1750
1881
  {
1751
1882
  "type": "divider"
1752
1883
  },
1753
1884
  {
1754
- "direction": "horizontal",
1755
1885
  "gap": "md",
1886
+ "direction": "horizontal",
1887
+ "type": "stack",
1756
1888
  "children": [
1757
1889
  {
1758
- "type": "typography",
1890
+ "variant": "caption",
1759
1891
  "content": "Name",
1760
- "variant": "caption"
1892
+ "type": "typography"
1761
1893
  },
1762
1894
  {
1763
1895
  "content": "@entity.name",
1764
- "variant": "body",
1765
- "type": "typography"
1896
+ "type": "typography",
1897
+ "variant": "body"
1766
1898
  }
1767
- ],
1768
- "type": "stack"
1899
+ ]
1769
1900
  },
1770
1901
  {
1902
+ "direction": "horizontal",
1903
+ "gap": "md",
1771
1904
  "children": [
1772
1905
  {
1773
1906
  "content": "Specialty",
@@ -1775,39 +1908,38 @@
1775
1908
  "variant": "caption"
1776
1909
  },
1777
1910
  {
1778
- "variant": "body",
1779
1911
  "content": "@entity.specialty",
1780
- "type": "typography"
1912
+ "type": "typography",
1913
+ "variant": "body"
1781
1914
  }
1782
1915
  ],
1783
- "direction": "horizontal",
1784
- "gap": "md",
1785
1916
  "type": "stack"
1786
1917
  },
1787
1918
  {
1788
1919
  "children": [
1789
1920
  {
1790
- "variant": "caption",
1791
1921
  "content": "Location",
1792
- "type": "typography"
1922
+ "type": "typography",
1923
+ "variant": "caption"
1793
1924
  },
1794
1925
  {
1926
+ "content": "@entity.location",
1795
1927
  "type": "typography",
1796
- "variant": "body",
1797
- "content": "@entity.location"
1928
+ "variant": "body"
1798
1929
  }
1799
1930
  ],
1800
1931
  "type": "stack",
1801
- "direction": "horizontal",
1802
- "gap": "md"
1932
+ "gap": "md",
1933
+ "direction": "horizontal"
1803
1934
  },
1804
1935
  {
1805
1936
  "direction": "horizontal",
1937
+ "gap": "md",
1806
1938
  "children": [
1807
1939
  {
1808
1940
  "content": "Phone",
1809
- "type": "typography",
1810
- "variant": "caption"
1941
+ "variant": "caption",
1942
+ "type": "typography"
1811
1943
  },
1812
1944
  {
1813
1945
  "content": "@entity.phone",
@@ -1815,30 +1947,27 @@
1815
1947
  "variant": "body"
1816
1948
  }
1817
1949
  ],
1818
- "gap": "md",
1819
1950
  "type": "stack"
1820
1951
  },
1821
1952
  {
1822
- "direction": "horizontal",
1953
+ "type": "stack",
1823
1954
  "children": [
1824
1955
  {
1956
+ "variant": "caption",
1825
1957
  "content": "Rating",
1826
- "type": "typography",
1827
- "variant": "caption"
1958
+ "type": "typography"
1828
1959
  },
1829
1960
  {
1830
1961
  "variant": "body",
1831
- "type": "typography",
1832
- "content": "@entity.rating"
1962
+ "content": "@entity.rating",
1963
+ "type": "typography"
1833
1964
  }
1834
1965
  ],
1835
- "type": "stack",
1966
+ "direction": "horizontal",
1836
1967
  "gap": "md"
1837
1968
  },
1838
1969
  {
1839
- "type": "stack",
1840
1970
  "gap": "md",
1841
- "direction": "horizontal",
1842
1971
  "children": [
1843
1972
  {
1844
1973
  "type": "typography",
@@ -1846,38 +1975,39 @@
1846
1975
  "content": "Available"
1847
1976
  },
1848
1977
  {
1849
- "content": "@entity.available",
1850
1978
  "type": "typography",
1851
- "variant": "body"
1979
+ "variant": "body",
1980
+ "content": "@entity.available"
1852
1981
  }
1853
- ]
1982
+ ],
1983
+ "type": "stack",
1984
+ "direction": "horizontal"
1854
1985
  },
1855
1986
  {
1856
1987
  "type": "divider"
1857
1988
  },
1858
1989
  {
1859
- "direction": "horizontal",
1990
+ "type": "stack",
1991
+ "gap": "sm",
1860
1992
  "children": [
1861
1993
  {
1862
- "variant": "primary",
1863
1994
  "label": "Edit",
1864
1995
  "action": "EDIT",
1996
+ "variant": "primary",
1865
1997
  "type": "button",
1866
1998
  "icon": "edit"
1867
1999
  },
1868
2000
  {
1869
- "action": "CLOSE",
1870
- "variant": "ghost",
2001
+ "label": "Close",
1871
2002
  "type": "button",
1872
- "label": "Close"
2003
+ "variant": "ghost",
2004
+ "action": "CLOSE"
1873
2005
  }
1874
2006
  ],
1875
- "type": "stack",
1876
2007
  "justify": "end",
1877
- "gap": "sm"
2008
+ "direction": "horizontal"
1878
2009
  }
1879
- ],
1880
- "direction": "vertical"
2010
+ ]
1881
2011
  }
1882
2012
  ]
1883
2013
  ]
@@ -2107,8 +2237,8 @@
2107
2237
  "Provider",
2108
2238
  {
2109
2239
  "emit": {
2110
- "failure": "ProviderLoadFailed",
2111
- "success": "ProviderLoaded"
2240
+ "success": "ProviderLoaded",
2241
+ "failure": "ProviderLoadFailed"
2112
2242
  }
2113
2243
  }
2114
2244
  ]
@@ -2130,8 +2260,8 @@
2130
2260
  {
2131
2261
  "id": "@payload.id",
2132
2262
  "emit": {
2133
- "failure": "ProviderLoadFailed",
2134
- "success": "ProviderLoaded"
2263
+ "success": "ProviderLoaded",
2264
+ "failure": "ProviderLoadFailed"
2135
2265
  }
2136
2266
  }
2137
2267
  ],
@@ -2139,13 +2269,14 @@
2139
2269
  "render-ui",
2140
2270
  "modal",
2141
2271
  {
2272
+ "gap": "md",
2273
+ "direction": "vertical",
2142
2274
  "type": "stack",
2143
2275
  "children": [
2144
2276
  {
2145
2277
  "direction": "horizontal",
2146
- "align": "center",
2147
- "type": "stack",
2148
2278
  "gap": "sm",
2279
+ "align": "center",
2149
2280
  "children": [
2150
2281
  {
2151
2282
  "type": "icon",
@@ -2156,40 +2287,39 @@
2156
2287
  "content": "Delete Provider",
2157
2288
  "variant": "h3"
2158
2289
  }
2159
- ]
2290
+ ],
2291
+ "type": "stack"
2160
2292
  },
2161
2293
  {
2162
2294
  "type": "divider"
2163
2295
  },
2164
2296
  {
2165
- "variant": "error",
2166
2297
  "message": "This action cannot be undone.",
2167
- "type": "alert"
2298
+ "type": "alert",
2299
+ "variant": "error"
2168
2300
  },
2169
2301
  {
2170
- "justify": "end",
2171
- "gap": "sm",
2172
- "type": "stack",
2173
2302
  "children": [
2174
2303
  {
2175
- "variant": "ghost",
2176
- "action": "CANCEL",
2304
+ "label": "Cancel",
2177
2305
  "type": "button",
2178
- "label": "Cancel"
2306
+ "action": "CANCEL",
2307
+ "variant": "ghost"
2179
2308
  },
2180
2309
  {
2310
+ "action": "CONFIRM_DELETE",
2311
+ "label": "Delete",
2181
2312
  "variant": "danger",
2182
2313
  "type": "button",
2183
- "label": "Delete",
2184
- "action": "CONFIRM_DELETE",
2185
2314
  "icon": "check"
2186
2315
  }
2187
2316
  ],
2188
- "direction": "horizontal"
2317
+ "gap": "sm",
2318
+ "direction": "horizontal",
2319
+ "type": "stack",
2320
+ "justify": "end"
2189
2321
  }
2190
- ],
2191
- "direction": "vertical",
2192
- "gap": "md"
2322
+ ]
2193
2323
  }
2194
2324
  ]
2195
2325
  ]
@@ -2206,8 +2336,8 @@
2206
2336
  "@entity.pendingId",
2207
2337
  {
2208
2338
  "emit": {
2209
- "failure": "ProviderDeleteFailed",
2210
- "success": "ProviderDeleted"
2339
+ "success": "ProviderDeleted",
2340
+ "failure": "ProviderDeleteFailed"
2211
2341
  }
2212
2342
  }
2213
2343
  ],
@@ -2261,8 +2391,8 @@
2261
2391
  "Provider",
2262
2392
  {
2263
2393
  "emit": {
2264
- "failure": "ProviderLoadFailed",
2265
- "success": "ProviderLoaded"
2394
+ "success": "ProviderLoaded",
2395
+ "failure": "ProviderLoadFailed"
2266
2396
  }
2267
2397
  }
2268
2398
  ]
@@ -2290,8 +2420,8 @@
2290
2420
  "Provider",
2291
2421
  {
2292
2422
  "emit": {
2293
- "success": "ProviderLoaded",
2294
- "failure": "ProviderLoadFailed"
2423
+ "failure": "ProviderLoadFailed",
2424
+ "success": "ProviderLoaded"
2295
2425
  }
2296
2426
  }
2297
2427
  ]
@@ -2307,6 +2437,9 @@
2307
2437
  "name": "ProvidersPage",
2308
2438
  "path": "/providers",
2309
2439
  "traits": [
2440
+ {
2441
+ "ref": "BookingProviderAppLayout"
2442
+ },
2310
2443
  {
2311
2444
  "ref": "ProviderBrowse"
2312
2445
  },
@@ -2581,30 +2714,6 @@
2581
2714
  "render-ui",
2582
2715
  "main",
2583
2716
  {
2584
- "type": "dashboard-layout",
2585
- "appName": "BookingSystemApp",
2586
- "navItems": [
2587
- {
2588
- "icon": "user-check",
2589
- "label": "Providers",
2590
- "href": "/providers"
2591
- },
2592
- {
2593
- "label": "Book",
2594
- "icon": "calendar-plus",
2595
- "href": "/book"
2596
- },
2597
- {
2598
- "icon": "calendar",
2599
- "href": "/appointments",
2600
- "label": "Appointments"
2601
- },
2602
- {
2603
- "label": "Schedule",
2604
- "href": "/schedule",
2605
- "icon": "clock"
2606
- }
2607
- ],
2608
2717
  "children": [
2609
2718
  {
2610
2719
  "type": "container",
@@ -2612,16 +2721,13 @@
2612
2721
  "maxWidth": "lg",
2613
2722
  "children": [
2614
2723
  {
2615
- "direction": "vertical",
2616
- "type": "stack",
2617
2724
  "children": [
2618
2725
  {
2619
- "align": "center",
2620
- "type": "stack",
2726
+ "gap": "sm",
2621
2727
  "children": [
2622
2728
  {
2623
- "type": "icon",
2624
- "name": "calendar"
2729
+ "name": "calendar",
2730
+ "type": "icon"
2625
2731
  },
2626
2732
  {
2627
2733
  "content": "Book Appointment",
@@ -2629,22 +2735,23 @@
2629
2735
  "variant": "h2"
2630
2736
  }
2631
2737
  ],
2632
- "gap": "sm",
2738
+ "align": "center",
2739
+ "type": "stack",
2633
2740
  "direction": "horizontal"
2634
2741
  },
2635
2742
  {
2636
- "currentIndex": 0.0,
2637
2743
  "type": "progress-dots",
2638
- "count": 3.0
2744
+ "count": 3.0,
2745
+ "currentIndex": 0.0
2639
2746
  },
2640
2747
  {
2748
+ "type": "wizard-progress",
2641
2749
  "steps": [
2642
2750
  "Provider Selection",
2643
2751
  "Your Details",
2644
2752
  "Date and Time"
2645
2753
  ],
2646
- "currentStep": 0.0,
2647
- "type": "wizard-progress"
2754
+ "currentStep": 0.0
2648
2755
  },
2649
2756
  {
2650
2757
  "type": "divider"
@@ -2656,36 +2763,62 @@
2656
2763
  },
2657
2764
  {
2658
2765
  "type": "form-section",
2659
- "mode": "create",
2660
- "submitEvent": "NEXT",
2661
2766
  "cancelEvent": "INIT",
2662
2767
  "fields": [
2663
2768
  "providerName"
2664
- ]
2769
+ ],
2770
+ "submitEvent": "NEXT",
2771
+ "mode": "create"
2665
2772
  },
2666
2773
  {
2667
2774
  "justify": "end",
2668
- "type": "stack",
2669
2775
  "gap": "sm",
2776
+ "type": "stack",
2777
+ "direction": "horizontal",
2670
2778
  "children": [
2671
2779
  {
2672
- "type": "button",
2673
2780
  "variant": "primary",
2674
- "icon": "arrow-right",
2675
2781
  "action": "NEXT",
2676
- "label": "Next"
2782
+ "label": "Next",
2783
+ "type": "button",
2784
+ "icon": "arrow-right"
2677
2785
  }
2678
- ],
2679
- "direction": "horizontal"
2786
+ ]
2680
2787
  }
2681
2788
  ],
2789
+ "type": "stack",
2790
+ "direction": "vertical",
2682
2791
  "gap": "lg"
2683
2792
  }
2684
2793
  ]
2685
2794
  }
2686
- ]
2687
- }
2688
- ]
2795
+ ],
2796
+ "navItems": [
2797
+ {
2798
+ "label": "Providers",
2799
+ "href": "/providers",
2800
+ "icon": "user-check"
2801
+ },
2802
+ {
2803
+ "icon": "calendar-plus",
2804
+ "href": "/book",
2805
+ "label": "Book"
2806
+ },
2807
+ {
2808
+ "href": "/appointments",
2809
+ "icon": "calendar",
2810
+ "label": "Appointments"
2811
+ },
2812
+ {
2813
+ "href": "/schedule",
2814
+ "label": "Schedule",
2815
+ "icon": "clock"
2816
+ }
2817
+ ],
2818
+ "type": "dashboard-layout",
2819
+ "appName": "BookingSystemApp"
2820
+ }
2821
+ ]
2689
2822
  ]
2690
2823
  },
2691
2824
  {
@@ -2698,8 +2831,8 @@
2698
2831
  "Booking",
2699
2832
  {
2700
2833
  "emit": {
2701
- "failure": "BookingLoadFailed",
2702
- "success": "BookingLoaded"
2834
+ "success": "BookingLoaded",
2835
+ "failure": "BookingLoadFailed"
2703
2836
  }
2704
2837
  }
2705
2838
  ],
@@ -2707,70 +2840,68 @@
2707
2840
  "render-ui",
2708
2841
  "main",
2709
2842
  {
2710
- "appName": "BookingSystemApp",
2711
2843
  "navItems": [
2712
2844
  {
2713
2845
  "label": "Providers",
2714
- "href": "/providers",
2715
- "icon": "user-check"
2846
+ "icon": "user-check",
2847
+ "href": "/providers"
2716
2848
  },
2717
2849
  {
2718
- "icon": "calendar-plus",
2719
2850
  "href": "/book",
2720
- "label": "Book"
2851
+ "label": "Book",
2852
+ "icon": "calendar-plus"
2721
2853
  },
2722
2854
  {
2855
+ "icon": "calendar",
2723
2856
  "label": "Appointments",
2724
- "href": "/appointments",
2725
- "icon": "calendar"
2857
+ "href": "/appointments"
2726
2858
  },
2727
2859
  {
2728
- "href": "/schedule",
2729
2860
  "label": "Schedule",
2861
+ "href": "/schedule",
2730
2862
  "icon": "clock"
2731
2863
  }
2732
2864
  ],
2865
+ "type": "dashboard-layout",
2866
+ "appName": "BookingSystemApp",
2733
2867
  "children": [
2734
2868
  {
2735
- "type": "container",
2736
- "padding": "lg",
2737
2869
  "maxWidth": "lg",
2870
+ "type": "container",
2738
2871
  "children": [
2739
2872
  {
2740
- "type": "stack",
2741
- "direction": "vertical",
2742
2873
  "gap": "lg",
2743
2874
  "children": [
2744
2875
  {
2745
- "direction": "horizontal",
2746
- "type": "stack",
2747
2876
  "gap": "sm",
2877
+ "type": "stack",
2878
+ "align": "center",
2748
2879
  "children": [
2749
2880
  {
2750
2881
  "type": "icon",
2751
2882
  "name": "calendar"
2752
2883
  },
2753
2884
  {
2754
- "variant": "h2",
2755
2885
  "type": "typography",
2756
- "content": "Book Appointment"
2886
+ "content": "Book Appointment",
2887
+ "variant": "h2"
2757
2888
  }
2758
2889
  ],
2759
- "align": "center"
2890
+ "direction": "horizontal"
2760
2891
  },
2761
2892
  {
2762
- "currentIndex": 1.0,
2763
2893
  "type": "progress-dots",
2764
- "count": 3.0
2894
+ "count": 3.0,
2895
+ "currentIndex": 1.0
2765
2896
  },
2766
2897
  {
2898
+ "currentStep": 1.0,
2767
2899
  "type": "wizard-progress",
2768
2900
  "steps": [
2769
2901
  "Provider Selection",
2770
2902
  "Your Details",
2771
2903
  "Date and Time"
2772
- ],
2773
- "currentStep": 1.0
2904
+ ]
2774
2905
  },
2775
2906
  {
2776
2907
  "type": "divider"
@@ -2781,43 +2912,45 @@
2781
2912
  "type": "typography"
2782
2913
  },
2783
2914
  {
2784
- "type": "form-section",
2785
- "submitEvent": "NEXT",
2786
- "mode": "create",
2787
- "cancelEvent": "PREV",
2788
2915
  "fields": [
2789
2916
  "customerName",
2790
2917
  "customerEmail"
2791
- ]
2918
+ ],
2919
+ "mode": "create",
2920
+ "submitEvent": "NEXT",
2921
+ "type": "form-section",
2922
+ "cancelEvent": "PREV"
2792
2923
  },
2793
2924
  {
2925
+ "type": "stack",
2794
2926
  "direction": "horizontal",
2927
+ "justify": "end",
2795
2928
  "gap": "sm",
2796
2929
  "children": [
2797
2930
  {
2931
+ "icon": "arrow-left",
2798
2932
  "label": "Back",
2799
- "variant": "ghost",
2800
2933
  "action": "PREV",
2801
- "icon": "arrow-left",
2802
- "type": "button"
2934
+ "type": "button",
2935
+ "variant": "ghost"
2803
2936
  },
2804
2937
  {
2805
- "label": "Next",
2806
- "icon": "arrow-right",
2807
2938
  "variant": "primary",
2808
2939
  "action": "NEXT",
2809
- "type": "button"
2940
+ "icon": "arrow-right",
2941
+ "type": "button",
2942
+ "label": "Next"
2810
2943
  }
2811
- ],
2812
- "justify": "end",
2813
- "type": "stack"
2944
+ ]
2814
2945
  }
2815
- ]
2946
+ ],
2947
+ "type": "stack",
2948
+ "direction": "vertical"
2816
2949
  }
2817
- ]
2950
+ ],
2951
+ "padding": "lg"
2818
2952
  }
2819
- ],
2820
- "type": "dashboard-layout"
2953
+ ]
2821
2954
  }
2822
2955
  ]
2823
2956
  ]
@@ -2832,8 +2965,8 @@
2832
2965
  "Booking",
2833
2966
  {
2834
2967
  "emit": {
2835
- "failure": "BookingLoadFailed",
2836
- "success": "BookingLoaded"
2968
+ "success": "BookingLoaded",
2969
+ "failure": "BookingLoadFailed"
2837
2970
  }
2838
2971
  }
2839
2972
  ],
@@ -2841,58 +2974,36 @@
2841
2974
  "render-ui",
2842
2975
  "main",
2843
2976
  {
2844
- "type": "dashboard-layout",
2845
- "navItems": [
2846
- {
2847
- "label": "Providers",
2848
- "href": "/providers",
2849
- "icon": "user-check"
2850
- },
2851
- {
2852
- "label": "Book",
2853
- "href": "/book",
2854
- "icon": "calendar-plus"
2855
- },
2856
- {
2857
- "href": "/appointments",
2858
- "icon": "calendar",
2859
- "label": "Appointments"
2860
- },
2861
- {
2862
- "icon": "clock",
2863
- "label": "Schedule",
2864
- "href": "/schedule"
2865
- }
2866
- ],
2867
2977
  "children": [
2868
2978
  {
2869
- "padding": "lg",
2870
- "type": "container",
2871
2979
  "maxWidth": "lg",
2980
+ "padding": "lg",
2872
2981
  "children": [
2873
2982
  {
2874
2983
  "type": "stack",
2984
+ "gap": "lg",
2985
+ "direction": "vertical",
2875
2986
  "children": [
2876
2987
  {
2988
+ "direction": "horizontal",
2877
2989
  "type": "stack",
2990
+ "gap": "sm",
2991
+ "align": "center",
2878
2992
  "children": [
2879
2993
  {
2880
- "name": "calendar",
2881
- "type": "icon"
2994
+ "type": "icon",
2995
+ "name": "calendar"
2882
2996
  },
2883
2997
  {
2998
+ "variant": "h2",
2884
2999
  "type": "typography",
2885
- "content": "Book Appointment",
2886
- "variant": "h2"
3000
+ "content": "Book Appointment"
2887
3001
  }
2888
- ],
2889
- "align": "center",
2890
- "gap": "sm",
2891
- "direction": "horizontal"
3002
+ ]
2892
3003
  },
2893
3004
  {
2894
- "currentIndex": 2.0,
2895
3005
  "type": "progress-dots",
3006
+ "currentIndex": 2.0,
2896
3007
  "count": 3.0
2897
3008
  },
2898
3009
  {
@@ -2901,55 +3012,77 @@
2901
3012
  "Your Details",
2902
3013
  "Date and Time"
2903
3014
  ],
2904
- "currentStep": 2.0,
2905
- "type": "wizard-progress"
3015
+ "type": "wizard-progress",
3016
+ "currentStep": 2.0
2906
3017
  },
2907
3018
  {
2908
3019
  "type": "divider"
2909
3020
  },
2910
3021
  {
2911
- "variant": "h3",
2912
3022
  "type": "typography",
3023
+ "variant": "h3",
2913
3024
  "content": "Date and Time"
2914
3025
  },
2915
3026
  {
3027
+ "type": "form-section",
2916
3028
  "fields": [
2917
3029
  "date",
2918
3030
  "time",
2919
3031
  "notes"
2920
3032
  ],
2921
3033
  "submitEvent": "NEXT",
2922
- "type": "form-section",
2923
3034
  "mode": "create",
2924
3035
  "cancelEvent": "PREV"
2925
3036
  },
2926
3037
  {
2927
- "type": "stack",
2928
- "gap": "sm",
2929
3038
  "children": [
2930
3039
  {
2931
- "icon": "arrow-left",
2932
- "action": "PREV",
2933
3040
  "type": "button",
3041
+ "action": "PREV",
2934
3042
  "variant": "ghost",
2935
- "label": "Back"
3043
+ "label": "Back",
3044
+ "icon": "arrow-left"
2936
3045
  },
2937
3046
  {
2938
- "action": "NEXT",
2939
- "label": "Next",
2940
- "variant": "primary",
2941
3047
  "icon": "arrow-right",
3048
+ "variant": "primary",
3049
+ "label": "Next",
3050
+ "action": "NEXT",
2942
3051
  "type": "button"
2943
3052
  }
2944
3053
  ],
2945
3054
  "justify": "end",
3055
+ "type": "stack",
3056
+ "gap": "sm",
2946
3057
  "direction": "horizontal"
2947
3058
  }
2948
- ],
2949
- "gap": "lg",
2950
- "direction": "vertical"
3059
+ ]
2951
3060
  }
2952
- ]
3061
+ ],
3062
+ "type": "container"
3063
+ }
3064
+ ],
3065
+ "type": "dashboard-layout",
3066
+ "navItems": [
3067
+ {
3068
+ "href": "/providers",
3069
+ "label": "Providers",
3070
+ "icon": "user-check"
3071
+ },
3072
+ {
3073
+ "href": "/book",
3074
+ "label": "Book",
3075
+ "icon": "calendar-plus"
3076
+ },
3077
+ {
3078
+ "label": "Appointments",
3079
+ "icon": "calendar",
3080
+ "href": "/appointments"
3081
+ },
3082
+ {
3083
+ "icon": "clock",
3084
+ "label": "Schedule",
3085
+ "href": "/schedule"
2953
3086
  }
2954
3087
  ],
2955
3088
  "appName": "BookingSystemApp"
@@ -2976,11 +3109,33 @@
2976
3109
  "render-ui",
2977
3110
  "main",
2978
3111
  {
2979
- "type": "dashboard-layout",
3112
+ "navItems": [
3113
+ {
3114
+ "href": "/providers",
3115
+ "icon": "user-check",
3116
+ "label": "Providers"
3117
+ },
3118
+ {
3119
+ "icon": "calendar-plus",
3120
+ "href": "/book",
3121
+ "label": "Book"
3122
+ },
3123
+ {
3124
+ "label": "Appointments",
3125
+ "icon": "calendar",
3126
+ "href": "/appointments"
3127
+ },
3128
+ {
3129
+ "label": "Schedule",
3130
+ "href": "/schedule",
3131
+ "icon": "clock"
3132
+ }
3133
+ ],
3134
+ "appName": "BookingSystemApp",
2980
3135
  "children": [
2981
3136
  {
2982
- "padding": "lg",
2983
3137
  "type": "container",
3138
+ "maxWidth": "lg",
2984
3139
  "children": [
2985
3140
  {
2986
3141
  "type": "stack",
@@ -2990,8 +3145,6 @@
2990
3145
  {
2991
3146
  "type": "stack",
2992
3147
  "direction": "horizontal",
2993
- "align": "center",
2994
- "gap": "sm",
2995
3148
  "children": [
2996
3149
  {
2997
3150
  "name": "calendar",
@@ -2999,24 +3152,26 @@
2999
3152
  },
3000
3153
  {
3001
3154
  "type": "typography",
3002
- "variant": "h2",
3003
- "content": "Book Appointment"
3155
+ "content": "Book Appointment",
3156
+ "variant": "h2"
3004
3157
  }
3005
- ]
3158
+ ],
3159
+ "align": "center",
3160
+ "gap": "sm"
3006
3161
  },
3007
3162
  {
3008
- "type": "progress-dots",
3163
+ "currentIndex": 0.0,
3009
3164
  "count": 3.0,
3010
- "currentIndex": 0.0
3165
+ "type": "progress-dots"
3011
3166
  },
3012
3167
  {
3013
3168
  "currentStep": 0.0,
3169
+ "type": "wizard-progress",
3014
3170
  "steps": [
3015
3171
  "Provider Selection",
3016
3172
  "Your Details",
3017
3173
  "Date and Time"
3018
- ],
3019
- "type": "wizard-progress"
3174
+ ]
3020
3175
  },
3021
3176
  {
3022
3177
  "type": "divider"
@@ -3027,10 +3182,10 @@
3027
3182
  "content": "Provider Selection"
3028
3183
  },
3029
3184
  {
3185
+ "mode": "create",
3186
+ "type": "form-section",
3030
3187
  "cancelEvent": "INIT",
3031
3188
  "submitEvent": "NEXT",
3032
- "type": "form-section",
3033
- "mode": "create",
3034
3189
  "fields": [
3035
3190
  "providerName"
3036
3191
  ]
@@ -3039,10 +3194,10 @@
3039
3194
  "justify": "end",
3040
3195
  "children": [
3041
3196
  {
3042
- "variant": "primary",
3043
- "label": "Next",
3044
3197
  "type": "button",
3198
+ "label": "Next",
3045
3199
  "action": "NEXT",
3200
+ "variant": "primary",
3046
3201
  "icon": "arrow-right"
3047
3202
  }
3048
3203
  ],
@@ -3053,32 +3208,10 @@
3053
3208
  ]
3054
3209
  }
3055
3210
  ],
3056
- "maxWidth": "lg"
3211
+ "padding": "lg"
3057
3212
  }
3058
3213
  ],
3059
- "appName": "BookingSystemApp",
3060
- "navItems": [
3061
- {
3062
- "label": "Providers",
3063
- "icon": "user-check",
3064
- "href": "/providers"
3065
- },
3066
- {
3067
- "href": "/book",
3068
- "label": "Book",
3069
- "icon": "calendar-plus"
3070
- },
3071
- {
3072
- "label": "Appointments",
3073
- "icon": "calendar",
3074
- "href": "/appointments"
3075
- },
3076
- {
3077
- "label": "Schedule",
3078
- "href": "/schedule",
3079
- "icon": "clock"
3080
- }
3081
- ]
3214
+ "type": "dashboard-layout"
3082
3215
  }
3083
3216
  ]
3084
3217
  ]
@@ -3105,14 +3238,14 @@
3105
3238
  "type": "dashboard-layout",
3106
3239
  "navItems": [
3107
3240
  {
3241
+ "icon": "user-check",
3108
3242
  "label": "Providers",
3109
- "href": "/providers",
3110
- "icon": "user-check"
3243
+ "href": "/providers"
3111
3244
  },
3112
3245
  {
3113
- "href": "/book",
3246
+ "label": "Book",
3114
3247
  "icon": "calendar-plus",
3115
- "label": "Book"
3248
+ "href": "/book"
3116
3249
  },
3117
3250
  {
3118
3251
  "label": "Appointments",
@@ -3120,98 +3253,98 @@
3120
3253
  "icon": "calendar"
3121
3254
  },
3122
3255
  {
3123
- "label": "Schedule",
3124
3256
  "href": "/schedule",
3125
- "icon": "clock"
3257
+ "icon": "clock",
3258
+ "label": "Schedule"
3126
3259
  }
3127
3260
  ],
3128
3261
  "appName": "BookingSystemApp",
3129
3262
  "children": [
3130
3263
  {
3131
- "type": "stack",
3132
3264
  "children": [
3133
3265
  {
3134
- "direction": "horizontal",
3135
3266
  "align": "center",
3136
3267
  "type": "stack",
3137
- "gap": "sm",
3268
+ "direction": "horizontal",
3138
3269
  "children": [
3139
3270
  {
3140
- "type": "icon",
3141
- "name": "calendar"
3271
+ "name": "calendar",
3272
+ "type": "icon"
3142
3273
  },
3143
3274
  {
3144
3275
  "variant": "h2",
3145
3276
  "type": "typography",
3146
3277
  "content": "Book Appointment"
3147
3278
  }
3148
- ]
3279
+ ],
3280
+ "gap": "sm"
3149
3281
  },
3150
3282
  {
3151
- "label": "Review",
3152
- "type": "badge"
3283
+ "type": "badge",
3284
+ "label": "Review"
3153
3285
  },
3154
3286
  {
3155
- "type": "wizard-progress",
3156
- "currentStep": 3.0,
3157
3287
  "steps": [
3158
3288
  "Provider Selection",
3159
3289
  "Your Details",
3160
3290
  "Date and Time"
3161
- ]
3291
+ ],
3292
+ "type": "wizard-progress",
3293
+ "currentStep": 3.0
3162
3294
  },
3163
3295
  {
3164
3296
  "type": "divider"
3165
3297
  },
3166
3298
  {
3299
+ "gap": "sm",
3167
3300
  "children": [
3168
3301
  {
3169
- "justify": "between",
3170
- "gap": "md",
3171
- "type": "stack",
3172
3302
  "children": [
3173
3303
  {
3174
3304
  "variant": "caption",
3175
- "type": "typography",
3176
- "content": "Provider Name"
3305
+ "content": "Provider Name",
3306
+ "type": "typography"
3177
3307
  },
3178
3308
  {
3179
3309
  "type": "typography",
3180
- "variant": "body",
3181
- "content": "@entity.providerName"
3310
+ "content": "@entity.providerName",
3311
+ "variant": "body"
3182
3312
  }
3183
3313
  ],
3184
- "direction": "horizontal"
3185
- },
3186
- {
3187
3314
  "type": "stack",
3188
- "gap": "md",
3189
3315
  "justify": "between",
3190
3316
  "direction": "horizontal",
3317
+ "gap": "md"
3318
+ },
3319
+ {
3320
+ "gap": "md",
3321
+ "type": "stack",
3191
3322
  "children": [
3192
3323
  {
3193
- "content": "Customer Name",
3324
+ "variant": "caption",
3194
3325
  "type": "typography",
3195
- "variant": "caption"
3326
+ "content": "Customer Name"
3196
3327
  },
3197
3328
  {
3329
+ "type": "typography",
3198
3330
  "variant": "body",
3199
- "content": "@entity.customerName",
3200
- "type": "typography"
3331
+ "content": "@entity.customerName"
3201
3332
  }
3202
- ]
3333
+ ],
3334
+ "direction": "horizontal",
3335
+ "justify": "between"
3203
3336
  },
3204
3337
  {
3205
3338
  "children": [
3206
3339
  {
3207
- "type": "typography",
3208
3340
  "content": "Customer Email",
3209
- "variant": "caption"
3341
+ "variant": "caption",
3342
+ "type": "typography"
3210
3343
  },
3211
3344
  {
3345
+ "content": "@entity.customerEmail",
3212
3346
  "type": "typography",
3213
- "variant": "body",
3214
- "content": "@entity.customerEmail"
3347
+ "variant": "body"
3215
3348
  }
3216
3349
  ],
3217
3350
  "gap": "md",
@@ -3223,42 +3356,42 @@
3223
3356
  "justify": "between",
3224
3357
  "direction": "horizontal",
3225
3358
  "type": "stack",
3226
- "gap": "md",
3227
3359
  "children": [
3228
3360
  {
3229
- "variant": "caption",
3230
3361
  "content": "Date",
3231
- "type": "typography"
3362
+ "type": "typography",
3363
+ "variant": "caption"
3232
3364
  },
3233
3365
  {
3234
3366
  "type": "typography",
3235
- "content": "@entity.date",
3236
- "variant": "body"
3367
+ "variant": "body",
3368
+ "content": "@entity.date"
3237
3369
  }
3238
- ]
3370
+ ],
3371
+ "gap": "md"
3239
3372
  },
3240
3373
  {
3241
3374
  "direction": "horizontal",
3242
3375
  "type": "stack",
3243
- "gap": "md",
3244
- "justify": "between",
3245
3376
  "children": [
3246
3377
  {
3247
3378
  "variant": "caption",
3248
- "type": "typography",
3249
- "content": "Time"
3379
+ "content": "Time",
3380
+ "type": "typography"
3250
3381
  },
3251
3382
  {
3252
- "content": "@entity.time",
3253
3383
  "type": "typography",
3384
+ "content": "@entity.time",
3254
3385
  "variant": "body"
3255
3386
  }
3256
- ]
3387
+ ],
3388
+ "gap": "md",
3389
+ "justify": "between"
3257
3390
  },
3258
3391
  {
3392
+ "justify": "between",
3259
3393
  "gap": "md",
3260
3394
  "type": "stack",
3261
- "justify": "between",
3262
3395
  "children": [
3263
3396
  {
3264
3397
  "variant": "caption",
@@ -3274,21 +3407,21 @@
3274
3407
  "direction": "horizontal"
3275
3408
  }
3276
3409
  ],
3277
- "type": "stack",
3278
3410
  "direction": "vertical",
3279
- "gap": "sm"
3280
- },
3281
- {
3282
- "currentStep": 3.0,
3283
- "showNext": false,
3284
- "showComplete": true,
3411
+ "type": "stack"
3412
+ },
3413
+ {
3285
3414
  "totalSteps": 4.0,
3286
3415
  "showBack": true,
3416
+ "showComplete": true,
3417
+ "showNext": false,
3418
+ "currentStep": 3.0,
3287
3419
  "type": "wizard-navigation"
3288
3420
  }
3289
3421
  ],
3422
+ "direction": "vertical",
3290
3423
  "gap": "lg",
3291
- "direction": "vertical"
3424
+ "type": "stack"
3292
3425
  }
3293
3426
  ]
3294
3427
  }
@@ -3314,115 +3447,115 @@
3314
3447
  "render-ui",
3315
3448
  "main",
3316
3449
  {
3450
+ "type": "dashboard-layout",
3317
3451
  "appName": "BookingSystemApp",
3318
3452
  "navItems": [
3319
3453
  {
3320
- "href": "/providers",
3321
3454
  "icon": "user-check",
3322
- "label": "Providers"
3455
+ "label": "Providers",
3456
+ "href": "/providers"
3323
3457
  },
3324
3458
  {
3325
- "icon": "calendar-plus",
3459
+ "label": "Book",
3326
3460
  "href": "/book",
3327
- "label": "Book"
3461
+ "icon": "calendar-plus"
3328
3462
  },
3329
3463
  {
3464
+ "label": "Appointments",
3330
3465
  "href": "/appointments",
3331
- "icon": "calendar",
3332
- "label": "Appointments"
3466
+ "icon": "calendar"
3333
3467
  },
3334
3468
  {
3335
3469
  "href": "/schedule",
3336
- "label": "Schedule",
3337
- "icon": "clock"
3470
+ "icon": "clock",
3471
+ "label": "Schedule"
3338
3472
  }
3339
3473
  ],
3340
- "type": "dashboard-layout",
3341
3474
  "children": [
3342
3475
  {
3343
- "padding": "lg",
3344
3476
  "type": "container",
3477
+ "maxWidth": "lg",
3478
+ "padding": "lg",
3345
3479
  "children": [
3346
3480
  {
3347
- "type": "stack",
3481
+ "gap": "lg",
3348
3482
  "direction": "vertical",
3349
3483
  "children": [
3350
3484
  {
3351
- "gap": "sm",
3352
3485
  "type": "stack",
3353
3486
  "direction": "horizontal",
3354
- "align": "center",
3355
3487
  "children": [
3356
3488
  {
3357
- "name": "calendar",
3358
- "type": "icon"
3489
+ "type": "icon",
3490
+ "name": "calendar"
3359
3491
  },
3360
3492
  {
3493
+ "type": "typography",
3361
3494
  "content": "Book Appointment",
3362
- "variant": "h2",
3363
- "type": "typography"
3495
+ "variant": "h2"
3364
3496
  }
3365
- ]
3497
+ ],
3498
+ "align": "center",
3499
+ "gap": "sm"
3366
3500
  },
3367
3501
  {
3368
- "type": "progress-dots",
3369
3502
  "count": 3.0,
3370
- "currentIndex": 1.0
3503
+ "currentIndex": 1.0,
3504
+ "type": "progress-dots"
3371
3505
  },
3372
3506
  {
3507
+ "currentStep": 1.0,
3373
3508
  "type": "wizard-progress",
3374
3509
  "steps": [
3375
3510
  "Provider Selection",
3376
3511
  "Your Details",
3377
3512
  "Date and Time"
3378
- ],
3379
- "currentStep": 1.0
3513
+ ]
3380
3514
  },
3381
3515
  {
3382
3516
  "type": "divider"
3383
3517
  },
3384
3518
  {
3385
- "type": "typography",
3386
3519
  "variant": "h3",
3520
+ "type": "typography",
3387
3521
  "content": "Your Details"
3388
3522
  },
3389
3523
  {
3390
- "mode": "create",
3391
3524
  "submitEvent": "NEXT",
3525
+ "type": "form-section",
3526
+ "mode": "create",
3392
3527
  "fields": [
3393
3528
  "customerName",
3394
3529
  "customerEmail"
3395
3530
  ],
3396
- "type": "form-section",
3397
3531
  "cancelEvent": "PREV"
3398
3532
  },
3399
3533
  {
3400
- "gap": "sm",
3401
3534
  "direction": "horizontal",
3402
- "type": "stack",
3535
+ "gap": "sm",
3403
3536
  "justify": "end",
3537
+ "type": "stack",
3404
3538
  "children": [
3405
3539
  {
3406
- "label": "Back",
3407
- "action": "PREV",
3408
- "type": "button",
3409
3540
  "variant": "ghost",
3410
- "icon": "arrow-left"
3541
+ "type": "button",
3542
+ "label": "Back",
3543
+ "icon": "arrow-left",
3544
+ "action": "PREV"
3411
3545
  },
3412
3546
  {
3413
- "action": "NEXT",
3414
- "label": "Next",
3415
3547
  "type": "button",
3416
- "variant": "primary",
3417
- "icon": "arrow-right"
3548
+ "label": "Next",
3549
+ "action": "NEXT",
3550
+ "icon": "arrow-right",
3551
+ "variant": "primary"
3418
3552
  }
3419
3553
  ]
3420
3554
  }
3421
3555
  ],
3422
- "gap": "lg"
3556
+ "type": "stack"
3423
3557
  }
3424
- ],
3425
- "maxWidth": "lg"
3558
+ ]
3426
3559
  }
3427
3560
  ]
3428
3561
  }
@@ -3450,18 +3583,18 @@
3450
3583
  {
3451
3584
  "navItems": [
3452
3585
  {
3453
- "icon": "user-check",
3454
3586
  "label": "Providers",
3455
- "href": "/providers"
3587
+ "href": "/providers",
3588
+ "icon": "user-check"
3456
3589
  },
3457
3590
  {
3458
- "href": "/book",
3459
3591
  "icon": "calendar-plus",
3460
- "label": "Book"
3592
+ "label": "Book",
3593
+ "href": "/book"
3461
3594
  },
3462
3595
  {
3463
- "label": "Appointments",
3464
3596
  "icon": "calendar",
3597
+ "label": "Appointments",
3465
3598
  "href": "/appointments"
3466
3599
  },
3467
3600
  {
@@ -3470,17 +3603,13 @@
3470
3603
  "href": "/schedule"
3471
3604
  }
3472
3605
  ],
3473
- "appName": "BookingSystemApp",
3474
- "type": "dashboard-layout",
3475
3606
  "children": [
3476
3607
  {
3608
+ "maxWidth": "lg",
3477
3609
  "type": "container",
3478
3610
  "padding": "lg",
3479
3611
  "children": [
3480
3612
  {
3481
- "direction": "vertical",
3482
- "type": "stack",
3483
- "gap": "lg",
3484
3613
  "children": [
3485
3614
  {
3486
3615
  "children": [
@@ -3495,9 +3624,9 @@
3495
3624
  }
3496
3625
  ],
3497
3626
  "gap": "sm",
3498
- "align": "center",
3499
3627
  "direction": "horizontal",
3500
- "type": "stack"
3628
+ "type": "stack",
3629
+ "align": "center"
3501
3630
  },
3502
3631
  {
3503
3632
  "count": 3.0,
@@ -3505,13 +3634,13 @@
3505
3634
  "type": "progress-dots"
3506
3635
  },
3507
3636
  {
3637
+ "currentStep": 2.0,
3508
3638
  "type": "wizard-progress",
3509
3639
  "steps": [
3510
3640
  "Provider Selection",
3511
3641
  "Your Details",
3512
3642
  "Date and Time"
3513
- ],
3514
- "currentStep": 2.0
3643
+ ]
3515
3644
  },
3516
3645
  {
3517
3646
  "type": "divider"
@@ -3522,44 +3651,48 @@
3522
3651
  "type": "typography"
3523
3652
  },
3524
3653
  {
3525
- "type": "form-section",
3526
3654
  "mode": "create",
3527
- "cancelEvent": "PREV",
3528
3655
  "submitEvent": "NEXT",
3529
3656
  "fields": [
3530
3657
  "date",
3531
3658
  "time",
3532
3659
  "notes"
3533
- ]
3660
+ ],
3661
+ "cancelEvent": "PREV",
3662
+ "type": "form-section"
3534
3663
  },
3535
3664
  {
3536
3665
  "gap": "sm",
3537
- "direction": "horizontal",
3538
3666
  "type": "stack",
3667
+ "direction": "horizontal",
3539
3668
  "justify": "end",
3540
3669
  "children": [
3541
3670
  {
3542
- "action": "PREV",
3543
- "variant": "ghost",
3544
3671
  "type": "button",
3672
+ "variant": "ghost",
3673
+ "action": "PREV",
3545
3674
  "label": "Back",
3546
3675
  "icon": "arrow-left"
3547
3676
  },
3548
3677
  {
3549
- "action": "NEXT",
3550
- "icon": "arrow-right",
3551
3678
  "variant": "primary",
3679
+ "action": "NEXT",
3680
+ "label": "Next",
3552
3681
  "type": "button",
3553
- "label": "Next"
3682
+ "icon": "arrow-right"
3554
3683
  }
3555
3684
  ]
3556
3685
  }
3557
- ]
3686
+ ],
3687
+ "type": "stack",
3688
+ "gap": "lg",
3689
+ "direction": "vertical"
3558
3690
  }
3559
- ],
3560
- "maxWidth": "lg"
3691
+ ]
3561
3692
  }
3562
- ]
3693
+ ],
3694
+ "appName": "BookingSystemApp",
3695
+ "type": "dashboard-layout"
3563
3696
  }
3564
3697
  ]
3565
3698
  ]
@@ -3590,21 +3723,21 @@
3590
3723
  "render-ui",
3591
3724
  "main",
3592
3725
  {
3593
- "appName": "BookingSystemApp",
3594
- "type": "dashboard-layout",
3595
3726
  "children": [
3596
3727
  {
3597
3728
  "type": "stack",
3729
+ "direction": "vertical",
3598
3730
  "align": "center",
3731
+ "gap": "lg",
3599
3732
  "children": [
3600
3733
  {
3601
- "name": "check-circle",
3602
- "type": "icon"
3734
+ "type": "icon",
3735
+ "name": "check-circle"
3603
3736
  },
3604
3737
  {
3605
- "content": "Booking Confirmed",
3738
+ "type": "typography",
3606
3739
  "variant": "h2",
3607
- "type": "typography"
3740
+ "content": "Booking Confirmed"
3608
3741
  },
3609
3742
  {
3610
3743
  "content": "Your appointment has been booked successfully.",
@@ -3612,36 +3745,36 @@
3612
3745
  "variant": "body"
3613
3746
  },
3614
3747
  {
3615
- "variant": "primary",
3748
+ "type": "button",
3749
+ "label": "Start New",
3616
3750
  "action": "RESTART",
3617
3751
  "icon": "refresh-cw",
3618
- "label": "Start New",
3619
- "type": "button"
3752
+ "variant": "primary"
3620
3753
  }
3621
- ],
3622
- "direction": "vertical",
3623
- "gap": "lg"
3754
+ ]
3624
3755
  }
3625
3756
  ],
3757
+ "appName": "BookingSystemApp",
3758
+ "type": "dashboard-layout",
3626
3759
  "navItems": [
3627
3760
  {
3628
3761
  "icon": "user-check",
3629
- "href": "/providers",
3630
- "label": "Providers"
3762
+ "label": "Providers",
3763
+ "href": "/providers"
3631
3764
  },
3632
3765
  {
3633
- "icon": "calendar-plus",
3634
3766
  "label": "Book",
3635
- "href": "/book"
3767
+ "href": "/book",
3768
+ "icon": "calendar-plus"
3636
3769
  },
3637
3770
  {
3638
- "icon": "calendar",
3639
3771
  "href": "/appointments",
3772
+ "icon": "calendar",
3640
3773
  "label": "Appointments"
3641
3774
  },
3642
3775
  {
3643
- "label": "Schedule",
3644
3776
  "icon": "clock",
3777
+ "label": "Schedule",
3645
3778
  "href": "/schedule"
3646
3779
  }
3647
3780
  ]
@@ -3659,8 +3792,8 @@
3659
3792
  "Booking",
3660
3793
  {
3661
3794
  "emit": {
3662
- "failure": "BookingLoadFailed",
3663
- "success": "BookingLoaded"
3795
+ "success": "BookingLoaded",
3796
+ "failure": "BookingLoadFailed"
3664
3797
  }
3665
3798
  }
3666
3799
  ],
@@ -3668,6 +3801,8 @@
3668
3801
  "render-ui",
3669
3802
  "main",
3670
3803
  {
3804
+ "type": "dashboard-layout",
3805
+ "appName": "BookingSystemApp",
3671
3806
  "navItems": [
3672
3807
  {
3673
3808
  "label": "Providers",
@@ -3680,50 +3815,45 @@
3680
3815
  "icon": "calendar-plus"
3681
3816
  },
3682
3817
  {
3683
- "href": "/appointments",
3684
3818
  "label": "Appointments",
3819
+ "href": "/appointments",
3685
3820
  "icon": "calendar"
3686
3821
  },
3687
3822
  {
3688
- "label": "Schedule",
3689
3823
  "icon": "clock",
3690
- "href": "/schedule"
3824
+ "href": "/schedule",
3825
+ "label": "Schedule"
3691
3826
  }
3692
3827
  ],
3693
- "appName": "BookingSystemApp",
3694
- "type": "dashboard-layout",
3695
3828
  "children": [
3696
3829
  {
3697
3830
  "type": "container",
3698
- "padding": "lg",
3699
- "maxWidth": "lg",
3700
3831
  "children": [
3701
3832
  {
3702
3833
  "type": "stack",
3703
3834
  "gap": "lg",
3704
- "direction": "vertical",
3705
3835
  "children": [
3706
3836
  {
3837
+ "align": "center",
3707
3838
  "children": [
3708
3839
  {
3709
- "type": "icon",
3710
- "name": "calendar"
3840
+ "name": "calendar",
3841
+ "type": "icon"
3711
3842
  },
3712
3843
  {
3844
+ "variant": "h2",
3713
3845
  "type": "typography",
3714
- "content": "Book Appointment",
3715
- "variant": "h2"
3846
+ "content": "Book Appointment"
3716
3847
  }
3717
3848
  ],
3718
- "direction": "horizontal",
3719
- "align": "center",
3720
3849
  "gap": "sm",
3850
+ "direction": "horizontal",
3721
3851
  "type": "stack"
3722
3852
  },
3723
3853
  {
3854
+ "currentIndex": 0.0,
3724
3855
  "type": "progress-dots",
3725
- "count": 3.0,
3726
- "currentIndex": 0.0
3856
+ "count": 3.0
3727
3857
  },
3728
3858
  {
3729
3859
  "currentStep": 0.0,
@@ -3738,37 +3868,40 @@
3738
3868
  "type": "divider"
3739
3869
  },
3740
3870
  {
3741
- "type": "typography",
3742
3871
  "variant": "h3",
3743
- "content": "Provider Selection"
3872
+ "content": "Provider Selection",
3873
+ "type": "typography"
3744
3874
  },
3745
3875
  {
3746
- "submitEvent": "NEXT",
3876
+ "cancelEvent": "INIT",
3747
3877
  "mode": "create",
3878
+ "submitEvent": "NEXT",
3748
3879
  "type": "form-section",
3749
- "cancelEvent": "INIT",
3750
3880
  "fields": [
3751
3881
  "providerName"
3752
3882
  ]
3753
3883
  },
3754
3884
  {
3755
- "justify": "end",
3756
3885
  "type": "stack",
3886
+ "direction": "horizontal",
3757
3887
  "gap": "sm",
3888
+ "justify": "end",
3758
3889
  "children": [
3759
3890
  {
3760
- "type": "button",
3761
- "icon": "arrow-right",
3762
- "label": "Next",
3763
3891
  "action": "NEXT",
3764
- "variant": "primary"
3892
+ "label": "Next",
3893
+ "icon": "arrow-right",
3894
+ "variant": "primary",
3895
+ "type": "button"
3765
3896
  }
3766
- ],
3767
- "direction": "horizontal"
3897
+ ]
3768
3898
  }
3769
- ]
3899
+ ],
3900
+ "direction": "vertical"
3770
3901
  }
3771
- ]
3902
+ ],
3903
+ "maxWidth": "lg",
3904
+ "padding": "lg"
3772
3905
  }
3773
3906
  ]
3774
3907
  }
@@ -3794,109 +3927,109 @@
3794
3927
  "render-ui",
3795
3928
  "main",
3796
3929
  {
3930
+ "appName": "BookingSystemApp",
3931
+ "navItems": [
3932
+ {
3933
+ "icon": "user-check",
3934
+ "label": "Providers",
3935
+ "href": "/providers"
3936
+ },
3937
+ {
3938
+ "icon": "calendar-plus",
3939
+ "label": "Book",
3940
+ "href": "/book"
3941
+ },
3942
+ {
3943
+ "icon": "calendar",
3944
+ "href": "/appointments",
3945
+ "label": "Appointments"
3946
+ },
3947
+ {
3948
+ "href": "/schedule",
3949
+ "icon": "clock",
3950
+ "label": "Schedule"
3951
+ }
3952
+ ],
3797
3953
  "children": [
3798
3954
  {
3799
- "padding": "lg",
3800
3955
  "maxWidth": "lg",
3801
- "type": "container",
3956
+ "padding": "lg",
3802
3957
  "children": [
3803
3958
  {
3959
+ "direction": "vertical",
3960
+ "gap": "lg",
3804
3961
  "children": [
3805
3962
  {
3806
- "gap": "sm",
3963
+ "type": "stack",
3964
+ "align": "center",
3807
3965
  "children": [
3808
3966
  {
3809
3967
  "type": "icon",
3810
3968
  "name": "calendar"
3811
3969
  },
3812
3970
  {
3813
- "variant": "h2",
3814
3971
  "content": "Book Appointment",
3815
- "type": "typography"
3972
+ "type": "typography",
3973
+ "variant": "h2"
3816
3974
  }
3817
3975
  ],
3818
- "direction": "horizontal",
3819
- "type": "stack",
3820
- "align": "center"
3976
+ "gap": "sm",
3977
+ "direction": "horizontal"
3821
3978
  },
3822
3979
  {
3823
- "currentIndex": 0.0,
3980
+ "count": 3.0,
3824
3981
  "type": "progress-dots",
3825
- "count": 3.0
3982
+ "currentIndex": 0.0
3826
3983
  },
3827
3984
  {
3828
3985
  "currentStep": 0.0,
3829
- "type": "wizard-progress",
3830
3986
  "steps": [
3831
3987
  "Provider Selection",
3832
3988
  "Your Details",
3833
3989
  "Date and Time"
3834
- ]
3990
+ ],
3991
+ "type": "wizard-progress"
3835
3992
  },
3836
3993
  {
3837
3994
  "type": "divider"
3838
3995
  },
3839
3996
  {
3840
- "type": "typography",
3841
3997
  "content": "Provider Selection",
3842
- "variant": "h3"
3998
+ "variant": "h3",
3999
+ "type": "typography"
3843
4000
  },
3844
4001
  {
3845
- "type": "form-section",
4002
+ "submitEvent": "NEXT",
3846
4003
  "cancelEvent": "INIT",
3847
4004
  "fields": [
3848
4005
  "providerName"
3849
4006
  ],
3850
- "submitEvent": "NEXT",
4007
+ "type": "form-section",
3851
4008
  "mode": "create"
3852
4009
  },
3853
4010
  {
3854
- "gap": "sm",
4011
+ "type": "stack",
3855
4012
  "direction": "horizontal",
4013
+ "gap": "sm",
3856
4014
  "justify": "end",
3857
4015
  "children": [
3858
4016
  {
3859
- "type": "button",
3860
- "action": "NEXT",
3861
4017
  "variant": "primary",
4018
+ "type": "button",
3862
4019
  "label": "Next",
4020
+ "action": "NEXT",
3863
4021
  "icon": "arrow-right"
3864
4022
  }
3865
- ],
3866
- "type": "stack"
4023
+ ]
3867
4024
  }
3868
4025
  ],
3869
- "type": "stack",
3870
- "gap": "lg",
3871
- "direction": "vertical"
4026
+ "type": "stack"
3872
4027
  }
3873
- ]
3874
- }
3875
- ],
3876
- "type": "dashboard-layout",
3877
- "navItems": [
3878
- {
3879
- "label": "Providers",
3880
- "href": "/providers",
3881
- "icon": "user-check"
3882
- },
3883
- {
3884
- "label": "Book",
3885
- "href": "/book",
3886
- "icon": "calendar-plus"
3887
- },
3888
- {
3889
- "icon": "calendar",
3890
- "href": "/appointments",
3891
- "label": "Appointments"
3892
- },
3893
- {
3894
- "label": "Schedule",
3895
- "icon": "clock",
3896
- "href": "/schedule"
4028
+ ],
4029
+ "type": "container"
3897
4030
  }
3898
4031
  ],
3899
- "appName": "BookingSystemApp"
4032
+ "type": "dashboard-layout"
3900
4033
  }
3901
4034
  ]
3902
4035
  ]
@@ -4242,21 +4375,21 @@
4242
4375
  "main",
4243
4376
  {
4244
4377
  "className": "py-12",
4378
+ "gap": "md",
4379
+ "type": "stack",
4380
+ "direction": "vertical",
4381
+ "align": "center",
4245
4382
  "children": [
4246
4383
  {
4247
4384
  "type": "spinner"
4248
4385
  },
4249
4386
  {
4250
- "type": "typography",
4387
+ "color": "muted",
4251
4388
  "variant": "caption",
4252
- "content": "Loading…",
4253
- "color": "muted"
4389
+ "type": "typography",
4390
+ "content": "Loading…"
4254
4391
  }
4255
- ],
4256
- "direction": "vertical",
4257
- "gap": "md",
4258
- "align": "center",
4259
- "type": "stack"
4392
+ ]
4260
4393
  }
4261
4394
  ]
4262
4395
  ]
@@ -4270,94 +4403,71 @@
4270
4403
  "render-ui",
4271
4404
  "main",
4272
4405
  {
4273
- "navItems": [
4274
- {
4275
- "href": "/providers",
4276
- "icon": "user-check",
4277
- "label": "Providers"
4278
- },
4279
- {
4280
- "label": "Book",
4281
- "href": "/book",
4282
- "icon": "calendar-plus"
4283
- },
4284
- {
4285
- "href": "/appointments",
4286
- "icon": "calendar",
4287
- "label": "Appointments"
4288
- },
4289
- {
4290
- "label": "Schedule",
4291
- "href": "/schedule",
4292
- "icon": "clock"
4293
- }
4294
- ],
4295
4406
  "children": [
4296
4407
  {
4297
- "className": "max-w-5xl mx-auto w-full",
4298
4408
  "direction": "vertical",
4299
4409
  "gap": "lg",
4300
- "type": "stack",
4301
4410
  "children": [
4302
4411
  {
4303
- "type": "stack",
4412
+ "gap": "md",
4413
+ "justify": "between",
4414
+ "align": "center",
4304
4415
  "children": [
4305
4416
  {
4417
+ "type": "stack",
4306
4418
  "children": [
4307
4419
  {
4308
4420
  "type": "icon",
4309
4421
  "name": "clock"
4310
4422
  },
4311
4423
  {
4312
- "content": "Appointments",
4313
4424
  "type": "typography",
4425
+ "content": "Appointments",
4314
4426
  "variant": "h2"
4315
4427
  }
4316
4428
  ],
4317
- "gap": "sm",
4318
4429
  "align": "center",
4319
- "type": "stack",
4430
+ "gap": "sm",
4320
4431
  "direction": "horizontal"
4321
4432
  },
4322
4433
  {
4434
+ "type": "stack",
4435
+ "direction": "horizontal",
4436
+ "gap": "sm",
4323
4437
  "children": [
4324
4438
  {
4325
- "action": "CREATE",
4326
4439
  "type": "button",
4327
- "label": "Create Appointment",
4328
4440
  "variant": "primary",
4329
- "icon": "plus"
4441
+ "icon": "plus",
4442
+ "label": "Create Appointment",
4443
+ "action": "CREATE"
4330
4444
  }
4331
- ],
4332
- "type": "stack",
4333
- "gap": "sm",
4334
- "direction": "horizontal"
4445
+ ]
4335
4446
  }
4336
4447
  ],
4337
- "justify": "between",
4338
- "gap": "md",
4339
- "align": "center",
4340
- "direction": "horizontal"
4448
+ "direction": "horizontal",
4449
+ "type": "stack"
4341
4450
  },
4342
4451
  {
4343
4452
  "type": "divider"
4344
4453
  },
4345
4454
  {
4455
+ "type": "data-list",
4346
4456
  "fields": [
4347
4457
  {
4348
- "icon": "clock",
4349
- "variant": "h3",
4458
+ "name": "customerName",
4350
4459
  "label": "Customer",
4351
- "name": "customerName"
4460
+ "variant": "h3",
4461
+ "icon": "clock"
4352
4462
  },
4353
4463
  {
4354
4464
  "name": "status",
4355
4465
  "variant": "badge"
4356
4466
  },
4357
4467
  {
4358
- "label": "Provider",
4359
4468
  "variant": "body",
4360
- "name": "providerName"
4469
+ "name": "providerName",
4470
+ "label": "Provider"
4361
4471
  },
4362
4472
  {
4363
4473
  "name": "date",
@@ -4365,10 +4475,11 @@
4365
4475
  "variant": "body"
4366
4476
  },
4367
4477
  {
4368
- "name": "time",
4369
- "variant": "caption"
4478
+ "variant": "caption",
4479
+ "name": "time"
4370
4480
  }
4371
4481
  ],
4482
+ "gap": "sm",
4372
4483
  "itemActions": [
4373
4484
  {
4374
4485
  "variant": "ghost",
@@ -4376,26 +4487,48 @@
4376
4487
  "event": "VIEW"
4377
4488
  },
4378
4489
  {
4490
+ "event": "EDIT",
4379
4491
  "variant": "ghost",
4380
- "label": "Edit",
4381
- "event": "EDIT"
4492
+ "label": "Edit"
4382
4493
  },
4383
4494
  {
4495
+ "label": "Delete",
4384
4496
  "event": "DELETE",
4385
- "variant": "danger",
4386
- "label": "Delete"
4497
+ "variant": "danger"
4387
4498
  }
4388
4499
  ],
4389
4500
  "variant": "card",
4390
- "gap": "sm",
4391
- "entity": "@payload.data",
4392
- "type": "data-list"
4501
+ "entity": "@payload.data"
4393
4502
  }
4394
- ]
4503
+ ],
4504
+ "className": "max-w-5xl mx-auto w-full",
4505
+ "type": "stack"
4395
4506
  }
4396
4507
  ],
4508
+ "type": "dashboard-layout",
4397
4509
  "appName": "BookingSystemApp",
4398
- "type": "dashboard-layout"
4510
+ "navItems": [
4511
+ {
4512
+ "icon": "user-check",
4513
+ "label": "Providers",
4514
+ "href": "/providers"
4515
+ },
4516
+ {
4517
+ "label": "Book",
4518
+ "href": "/book",
4519
+ "icon": "calendar-plus"
4520
+ },
4521
+ {
4522
+ "label": "Appointments",
4523
+ "href": "/appointments",
4524
+ "icon": "calendar"
4525
+ },
4526
+ {
4527
+ "label": "Schedule",
4528
+ "href": "/schedule",
4529
+ "icon": "clock"
4530
+ }
4531
+ ]
4399
4532
  }
4400
4533
  ]
4401
4534
  ]
@@ -4409,36 +4542,36 @@
4409
4542
  "render-ui",
4410
4543
  "main",
4411
4544
  {
4545
+ "direction": "vertical",
4412
4546
  "children": [
4413
4547
  {
4414
- "name": "alert-triangle",
4415
4548
  "type": "icon",
4549
+ "name": "alert-triangle",
4416
4550
  "color": "destructive"
4417
4551
  },
4418
4552
  {
4419
4553
  "content": "Failed to load appointment",
4420
- "variant": "h3",
4421
- "type": "typography"
4554
+ "type": "typography",
4555
+ "variant": "h3"
4422
4556
  },
4423
4557
  {
4558
+ "color": "muted",
4424
4559
  "content": "@payload.error",
4425
4560
  "type": "typography",
4426
- "color": "muted",
4427
4561
  "variant": "body"
4428
4562
  },
4429
4563
  {
4564
+ "icon": "rotate-ccw",
4565
+ "label": "Retry",
4430
4566
  "type": "button",
4431
- "action": "INIT",
4432
4567
  "variant": "primary",
4433
- "label": "Retry",
4434
- "icon": "rotate-ccw"
4568
+ "action": "INIT"
4435
4569
  }
4436
4570
  ],
4437
- "align": "center",
4438
- "className": "py-12",
4439
4571
  "gap": "md",
4572
+ "align": "center",
4440
4573
  "type": "stack",
4441
- "direction": "vertical"
4574
+ "className": "py-12"
4442
4575
  }
4443
4576
  ]
4444
4577
  ]
@@ -4639,12 +4772,14 @@
4639
4772
  "render-ui",
4640
4773
  "modal",
4641
4774
  {
4642
- "direction": "vertical",
4643
4775
  "type": "stack",
4776
+ "direction": "vertical",
4777
+ "gap": "md",
4644
4778
  "children": [
4645
4779
  {
4646
- "direction": "horizontal",
4647
4780
  "gap": "sm",
4781
+ "direction": "horizontal",
4782
+ "type": "stack",
4648
4783
  "children": [
4649
4784
  {
4650
4785
  "type": "icon",
@@ -4652,20 +4787,19 @@
4652
4787
  },
4653
4788
  {
4654
4789
  "type": "typography",
4655
- "content": "Create Appointment",
4656
- "variant": "h3"
4790
+ "variant": "h3",
4791
+ "content": "Create Appointment"
4657
4792
  }
4658
- ],
4659
- "type": "stack"
4793
+ ]
4660
4794
  },
4661
4795
  {
4662
4796
  "type": "divider"
4663
4797
  },
4664
4798
  {
4665
4799
  "submitEvent": "SAVE",
4666
- "type": "form-section",
4667
4800
  "mode": "create",
4668
4801
  "cancelEvent": "CLOSE",
4802
+ "type": "form-section",
4669
4803
  "fields": [
4670
4804
  "providerName",
4671
4805
  "customerName",
@@ -4675,8 +4809,7 @@
4675
4809
  "notes"
4676
4810
  ]
4677
4811
  }
4678
- ],
4679
- "gap": "md"
4812
+ ]
4680
4813
  }
4681
4814
  ]
4682
4815
  ]
@@ -4955,31 +5088,30 @@
4955
5088
  "render-ui",
4956
5089
  "modal",
4957
5090
  {
5091
+ "type": "stack",
5092
+ "gap": "md",
4958
5093
  "children": [
4959
5094
  {
5095
+ "gap": "sm",
4960
5096
  "direction": "horizontal",
5097
+ "type": "stack",
4961
5098
  "children": [
4962
5099
  {
4963
5100
  "type": "icon",
4964
5101
  "name": "edit"
4965
5102
  },
4966
5103
  {
4967
- "type": "typography",
4968
5104
  "variant": "h3",
4969
- "content": "Edit Appointment"
5105
+ "content": "Edit Appointment",
5106
+ "type": "typography"
4970
5107
  }
4971
- ],
4972
- "type": "stack",
4973
- "gap": "sm"
5108
+ ]
4974
5109
  },
4975
5110
  {
4976
5111
  "type": "divider"
4977
5112
  },
4978
5113
  {
4979
- "submitEvent": "SAVE",
4980
- "entity": "@payload.row",
4981
- "cancelEvent": "CLOSE",
4982
- "type": "form-section",
5114
+ "mode": "edit",
4983
5115
  "fields": [
4984
5116
  "providerName",
4985
5117
  "customerName",
@@ -4988,12 +5120,13 @@
4988
5120
  "status",
4989
5121
  "notes"
4990
5122
  ],
4991
- "mode": "edit"
5123
+ "entity": "@payload.row",
5124
+ "type": "form-section",
5125
+ "submitEvent": "SAVE",
5126
+ "cancelEvent": "CLOSE"
4992
5127
  }
4993
5128
  ],
4994
- "direction": "vertical",
4995
- "type": "stack",
4996
- "gap": "md"
5129
+ "direction": "vertical"
4997
5130
  }
4998
5131
  ]
4999
5132
  ]
@@ -5034,8 +5167,8 @@
5034
5167
  "@payload.data",
5035
5168
  {
5036
5169
  "emit": {
5037
- "success": "AppointmentUpdated",
5038
- "failure": "AppointmentUpdateFailed"
5170
+ "failure": "AppointmentUpdateFailed",
5171
+ "success": "AppointmentUpdated"
5039
5172
  }
5040
5173
  }
5041
5174
  ],
@@ -5233,8 +5366,8 @@
5233
5366
  {
5234
5367
  "id": "@payload.id",
5235
5368
  "emit": {
5236
- "success": "AppointmentLoaded",
5237
- "failure": "AppointmentLoadFailed"
5369
+ "failure": "AppointmentLoadFailed",
5370
+ "success": "AppointmentLoaded"
5238
5371
  }
5239
5372
  }
5240
5373
  ],
@@ -5242,53 +5375,53 @@
5242
5375
  "render-ui",
5243
5376
  "modal",
5244
5377
  {
5245
- "direction": "vertical",
5378
+ "type": "stack",
5246
5379
  "gap": "md",
5380
+ "direction": "vertical",
5247
5381
  "children": [
5248
5382
  {
5249
- "align": "center",
5250
- "direction": "horizontal",
5251
- "type": "stack",
5252
- "gap": "sm",
5253
5383
  "children": [
5254
5384
  {
5255
- "name": "eye",
5256
- "type": "icon"
5385
+ "type": "icon",
5386
+ "name": "eye"
5257
5387
  },
5258
5388
  {
5259
- "type": "typography",
5260
5389
  "variant": "h3",
5261
- "content": "@entity.providerName"
5390
+ "content": "@entity.providerName",
5391
+ "type": "typography"
5262
5392
  }
5263
- ]
5393
+ ],
5394
+ "align": "center",
5395
+ "direction": "horizontal",
5396
+ "type": "stack",
5397
+ "gap": "sm"
5264
5398
  },
5265
5399
  {
5266
5400
  "type": "divider"
5267
5401
  },
5268
5402
  {
5269
5403
  "gap": "md",
5270
- "type": "stack",
5271
- "direction": "horizontal",
5272
5404
  "children": [
5273
5405
  {
5406
+ "content": "Provider Name",
5274
5407
  "type": "typography",
5275
- "variant": "caption",
5276
- "content": "Provider Name"
5408
+ "variant": "caption"
5277
5409
  },
5278
5410
  {
5279
- "content": "@entity.providerName",
5280
5411
  "type": "typography",
5281
- "variant": "body"
5412
+ "variant": "body",
5413
+ "content": "@entity.providerName"
5282
5414
  }
5283
- ]
5415
+ ],
5416
+ "direction": "horizontal",
5417
+ "type": "stack"
5284
5418
  },
5285
5419
  {
5286
- "type": "stack",
5287
5420
  "children": [
5288
5421
  {
5289
5422
  "type": "typography",
5290
- "content": "Customer Name",
5291
- "variant": "caption"
5423
+ "variant": "caption",
5424
+ "content": "Customer Name"
5292
5425
  },
5293
5426
  {
5294
5427
  "type": "typography",
@@ -5296,29 +5429,31 @@
5296
5429
  "content": "@entity.customerName"
5297
5430
  }
5298
5431
  ],
5299
- "direction": "horizontal",
5300
- "gap": "md"
5432
+ "gap": "md",
5433
+ "type": "stack",
5434
+ "direction": "horizontal"
5301
5435
  },
5302
5436
  {
5303
5437
  "type": "stack",
5304
- "direction": "horizontal",
5305
5438
  "gap": "md",
5439
+ "direction": "horizontal",
5306
5440
  "children": [
5307
5441
  {
5442
+ "type": "typography",
5308
5443
  "content": "Date",
5309
- "variant": "caption",
5310
- "type": "typography"
5444
+ "variant": "caption"
5311
5445
  },
5312
5446
  {
5313
- "type": "typography",
5447
+ "variant": "body",
5314
5448
  "content": "@entity.date",
5315
- "variant": "body"
5449
+ "type": "typography"
5316
5450
  }
5317
5451
  ]
5318
5452
  },
5319
5453
  {
5320
5454
  "gap": "md",
5321
5455
  "type": "stack",
5456
+ "direction": "horizontal",
5322
5457
  "children": [
5323
5458
  {
5324
5459
  "variant": "caption",
@@ -5326,46 +5461,45 @@
5326
5461
  "type": "typography"
5327
5462
  },
5328
5463
  {
5329
- "content": "@entity.time",
5330
5464
  "variant": "body",
5331
- "type": "typography"
5465
+ "type": "typography",
5466
+ "content": "@entity.time"
5332
5467
  }
5333
- ],
5334
- "direction": "horizontal"
5468
+ ]
5335
5469
  },
5336
5470
  {
5337
- "gap": "md",
5471
+ "direction": "horizontal",
5338
5472
  "children": [
5339
5473
  {
5340
- "type": "typography",
5341
5474
  "variant": "caption",
5475
+ "type": "typography",
5342
5476
  "content": "Status"
5343
5477
  },
5344
5478
  {
5479
+ "variant": "body",
5345
5480
  "content": "@entity.status",
5346
- "type": "typography",
5347
- "variant": "body"
5481
+ "type": "typography"
5348
5482
  }
5349
5483
  ],
5350
- "type": "stack",
5351
- "direction": "horizontal"
5484
+ "gap": "md",
5485
+ "type": "stack"
5352
5486
  },
5353
5487
  {
5354
- "gap": "md",
5355
5488
  "type": "stack",
5356
5489
  "children": [
5357
5490
  {
5358
- "type": "typography",
5491
+ "content": "Notes",
5359
5492
  "variant": "caption",
5360
- "content": "Notes"
5493
+ "type": "typography"
5361
5494
  },
5362
5495
  {
5363
- "content": "@entity.notes",
5364
5496
  "type": "typography",
5497
+ "content": "@entity.notes",
5365
5498
  "variant": "body"
5366
5499
  }
5367
5500
  ],
5368
- "direction": "horizontal"
5501
+ "direction": "horizontal",
5502
+ "gap": "md"
5369
5503
  },
5370
5504
  {
5371
5505
  "type": "divider"
@@ -5377,22 +5511,21 @@
5377
5511
  "justify": "end",
5378
5512
  "children": [
5379
5513
  {
5514
+ "type": "button",
5515
+ "icon": "edit",
5380
5516
  "action": "EDIT",
5381
5517
  "label": "Edit",
5382
- "icon": "edit",
5383
- "variant": "primary",
5384
- "type": "button"
5518
+ "variant": "primary"
5385
5519
  },
5386
5520
  {
5387
- "label": "Close",
5521
+ "variant": "ghost",
5388
5522
  "type": "button",
5389
- "action": "CLOSE",
5390
- "variant": "ghost"
5523
+ "label": "Close",
5524
+ "action": "CLOSE"
5391
5525
  }
5392
5526
  ]
5393
5527
  }
5394
- ],
5395
- "type": "stack"
5528
+ ]
5396
5529
  }
5397
5530
  ]
5398
5531
  ]
@@ -5614,8 +5747,8 @@
5614
5747
  "Appointment",
5615
5748
  {
5616
5749
  "emit": {
5617
- "failure": "AppointmentLoadFailed",
5618
- "success": "AppointmentLoaded"
5750
+ "success": "AppointmentLoaded",
5751
+ "failure": "AppointmentLoadFailed"
5619
5752
  }
5620
5753
  }
5621
5754
  ]
@@ -5635,68 +5768,68 @@
5635
5768
  "fetch",
5636
5769
  "Appointment",
5637
5770
  {
5771
+ "id": "@payload.id",
5638
5772
  "emit": {
5639
5773
  "failure": "AppointmentLoadFailed",
5640
5774
  "success": "AppointmentLoaded"
5641
- },
5642
- "id": "@payload.id"
5775
+ }
5643
5776
  }
5644
5777
  ],
5645
5778
  [
5646
5779
  "render-ui",
5647
5780
  "modal",
5648
5781
  {
5649
- "type": "stack",
5782
+ "direction": "vertical",
5650
5783
  "gap": "md",
5784
+ "type": "stack",
5651
5785
  "children": [
5652
5786
  {
5653
- "align": "center",
5787
+ "type": "stack",
5654
5788
  "children": [
5655
5789
  {
5656
5790
  "name": "alert-triangle",
5657
5791
  "type": "icon"
5658
5792
  },
5659
5793
  {
5660
- "type": "typography",
5661
5794
  "content": "Delete Appointment",
5662
- "variant": "h3"
5795
+ "variant": "h3",
5796
+ "type": "typography"
5663
5797
  }
5664
5798
  ],
5799
+ "align": "center",
5665
5800
  "direction": "horizontal",
5666
- "type": "stack",
5667
5801
  "gap": "sm"
5668
5802
  },
5669
5803
  {
5670
5804
  "type": "divider"
5671
5805
  },
5672
5806
  {
5673
- "variant": "error",
5674
5807
  "message": "This action cannot be undone.",
5675
- "type": "alert"
5808
+ "type": "alert",
5809
+ "variant": "error"
5676
5810
  },
5677
5811
  {
5678
5812
  "justify": "end",
5679
- "direction": "horizontal",
5813
+ "gap": "sm",
5680
5814
  "type": "stack",
5815
+ "direction": "horizontal",
5681
5816
  "children": [
5682
5817
  {
5683
- "variant": "ghost",
5684
5818
  "action": "CANCEL",
5685
5819
  "type": "button",
5820
+ "variant": "ghost",
5686
5821
  "label": "Cancel"
5687
5822
  },
5688
5823
  {
5824
+ "icon": "check",
5689
5825
  "variant": "danger",
5690
- "type": "button",
5691
5826
  "action": "CONFIRM_DELETE",
5692
- "icon": "check",
5827
+ "type": "button",
5693
5828
  "label": "Delete"
5694
5829
  }
5695
- ],
5696
- "gap": "sm"
5830
+ ]
5697
5831
  }
5698
- ],
5699
- "direction": "vertical"
5832
+ ]
5700
5833
  }
5701
5834
  ]
5702
5835
  ]
@@ -5735,8 +5868,8 @@
5735
5868
  "Appointment",
5736
5869
  {
5737
5870
  "emit": {
5738
- "success": "AppointmentLoaded",
5739
- "failure": "AppointmentLoadFailed"
5871
+ "failure": "AppointmentLoadFailed",
5872
+ "success": "AppointmentLoaded"
5740
5873
  }
5741
5874
  }
5742
5875
  ],
@@ -5981,8 +6114,8 @@
5981
6114
  "Schedule",
5982
6115
  {
5983
6116
  "emit": {
5984
- "success": "ScheduleLoaded",
5985
- "failure": "ScheduleLoadFailed"
6117
+ "failure": "ScheduleLoadFailed",
6118
+ "success": "ScheduleLoaded"
5986
6119
  }
5987
6120
  }
5988
6121
  ],
@@ -5990,38 +6123,10 @@
5990
6123
  "render-ui",
5991
6124
  "main",
5992
6125
  {
5993
- "navItems": [
5994
- {
5995
- "label": "Providers",
5996
- "href": "/providers",
5997
- "icon": "user-check"
5998
- },
5999
- {
6000
- "icon": "calendar-plus",
6001
- "label": "Book",
6002
- "href": "/book"
6003
- },
6004
- {
6005
- "label": "Appointments",
6006
- "href": "/appointments",
6007
- "icon": "calendar"
6008
- },
6009
- {
6010
- "icon": "clock",
6011
- "href": "/schedule",
6012
- "label": "Schedule"
6013
- }
6014
- ],
6015
- "type": "dashboard-layout",
6016
- "appName": "BookingSystemApp",
6017
6126
  "children": [
6018
6127
  {
6019
- "type": "scaled-diagram",
6020
6128
  "children": [
6021
6129
  {
6022
- "type": "stack",
6023
- "direction": "vertical",
6024
- "gap": "lg",
6025
6130
  "children": [
6026
6131
  {
6027
6132
  "type": "breadcrumb",
@@ -6037,40 +6142,39 @@
6037
6142
  },
6038
6143
  {
6039
6144
  "type": "stack",
6145
+ "gap": "md",
6040
6146
  "justify": "between",
6147
+ "direction": "horizontal",
6041
6148
  "children": [
6042
6149
  {
6150
+ "type": "stack",
6043
6151
  "direction": "horizontal",
6152
+ "gap": "md",
6044
6153
  "children": [
6045
6154
  {
6046
6155
  "type": "icon",
6047
6156
  "name": "bar-chart-2"
6048
6157
  },
6049
6158
  {
6050
- "content": "Schedule Overview",
6051
6159
  "type": "typography",
6052
- "variant": "h2"
6160
+ "variant": "h2",
6161
+ "content": "Schedule Overview"
6053
6162
  }
6054
- ],
6055
- "gap": "md",
6056
- "type": "stack"
6163
+ ]
6057
6164
  },
6058
6165
  {
6166
+ "action": "REFRESH",
6059
6167
  "label": "Refresh",
6060
- "variant": "secondary",
6061
6168
  "type": "button",
6062
- "icon": "refresh-cw",
6063
- "action": "REFRESH"
6169
+ "variant": "secondary",
6170
+ "icon": "refresh-cw"
6064
6171
  }
6065
- ],
6066
- "direction": "horizontal",
6067
- "gap": "md"
6172
+ ]
6068
6173
  },
6069
6174
  {
6070
6175
  "type": "divider"
6071
6176
  },
6072
6177
  {
6073
- "type": "box",
6074
6178
  "padding": "md",
6075
6179
  "children": [
6076
6180
  {
@@ -6078,35 +6182,34 @@
6078
6182
  "cols": 4.0,
6079
6183
  "children": [
6080
6184
  {
6081
- "type": "stat-display",
6185
+ "value": "@entity.totalBookings",
6082
6186
  "label": "TotalBookings",
6083
- "value": "@entity.totalBookings"
6187
+ "type": "stat-display"
6084
6188
  },
6085
6189
  {
6190
+ "label": "ConfirmedToday",
6086
6191
  "value": "@entity.confirmedToday",
6087
- "type": "stat-display",
6088
- "label": "ConfirmedToday"
6192
+ "type": "stat-display"
6089
6193
  },
6090
6194
  {
6091
- "type": "stat-display",
6092
6195
  "label": "PendingBookings",
6093
- "value": "@entity.pendingBookings"
6196
+ "value": "@entity.pendingBookings",
6197
+ "type": "stat-display"
6094
6198
  },
6095
6199
  {
6096
- "type": "stat-display",
6097
6200
  "label": "AvailableSlots",
6201
+ "type": "stat-display",
6098
6202
  "value": "@entity.availableSlots"
6099
6203
  }
6100
6204
  ]
6101
6205
  }
6102
- ]
6206
+ ],
6207
+ "type": "box"
6103
6208
  },
6104
6209
  {
6105
6210
  "type": "divider"
6106
6211
  },
6107
6212
  {
6108
- "cols": 2.0,
6109
- "type": "grid",
6110
6213
  "children": [
6111
6214
  {
6112
6215
  "type": "card",
@@ -6119,31 +6222,34 @@
6119
6222
  ]
6120
6223
  },
6121
6224
  {
6122
- "type": "card",
6123
6225
  "children": [
6124
6226
  {
6125
- "type": "typography",
6126
6227
  "content": "Graph View",
6228
+ "type": "typography",
6127
6229
  "variant": "caption"
6128
6230
  }
6129
- ]
6231
+ ],
6232
+ "type": "card"
6130
6233
  }
6131
6234
  ],
6235
+ "cols": 2.0,
6236
+ "type": "grid",
6132
6237
  "gap": "md"
6133
6238
  },
6134
6239
  {
6240
+ "type": "line-chart",
6135
6241
  "data": [
6136
6242
  {
6137
6243
  "value": 12.0,
6138
6244
  "date": "Jan"
6139
6245
  },
6140
6246
  {
6141
- "value": 19.0,
6142
- "date": "Feb"
6247
+ "date": "Feb",
6248
+ "value": 19.0
6143
6249
  },
6144
6250
  {
6145
- "date": "Mar",
6146
- "value": 15.0
6251
+ "value": 15.0,
6252
+ "date": "Mar"
6147
6253
  },
6148
6254
  {
6149
6255
  "date": "Apr",
@@ -6154,11 +6260,10 @@
6154
6260
  "value": 22.0
6155
6261
  },
6156
6262
  {
6157
- "date": "Jun",
6158
- "value": 30.0
6263
+ "value": 30.0,
6264
+ "date": "Jun"
6159
6265
  }
6160
- ],
6161
- "type": "line-chart"
6266
+ ]
6162
6267
  },
6163
6268
  {
6164
6269
  "items": [
@@ -6174,22 +6279,10 @@
6174
6279
  "type": "chart-legend"
6175
6280
  },
6176
6281
  {
6177
- "edges": [
6178
- {
6179
- "target": "b",
6180
- "source": "a"
6181
- },
6182
- {
6183
- "target": "c",
6184
- "source": "b"
6185
- }
6186
- ],
6187
- "height": 200.0,
6188
- "type": "graph-view",
6189
6282
  "nodes": [
6190
6283
  {
6191
- "id": "a",
6192
- "label": "Start"
6284
+ "label": "Start",
6285
+ "id": "a"
6193
6286
  },
6194
6287
  {
6195
6288
  "id": "b",
@@ -6200,13 +6293,53 @@
6200
6293
  "label": "End"
6201
6294
  }
6202
6295
  ],
6203
- "width": 400.0
6296
+ "width": 400.0,
6297
+ "height": 200.0,
6298
+ "type": "graph-view",
6299
+ "edges": [
6300
+ {
6301
+ "source": "a",
6302
+ "target": "b"
6303
+ },
6304
+ {
6305
+ "target": "c",
6306
+ "source": "b"
6307
+ }
6308
+ ]
6204
6309
  }
6205
- ]
6310
+ ],
6311
+ "gap": "lg",
6312
+ "type": "stack",
6313
+ "direction": "vertical"
6206
6314
  }
6207
- ]
6315
+ ],
6316
+ "type": "scaled-diagram"
6208
6317
  }
6209
- ]
6318
+ ],
6319
+ "type": "dashboard-layout",
6320
+ "navItems": [
6321
+ {
6322
+ "icon": "user-check",
6323
+ "label": "Providers",
6324
+ "href": "/providers"
6325
+ },
6326
+ {
6327
+ "label": "Book",
6328
+ "icon": "calendar-plus",
6329
+ "href": "/book"
6330
+ },
6331
+ {
6332
+ "href": "/appointments",
6333
+ "label": "Appointments",
6334
+ "icon": "calendar"
6335
+ },
6336
+ {
6337
+ "label": "Schedule",
6338
+ "href": "/schedule",
6339
+ "icon": "clock"
6340
+ }
6341
+ ],
6342
+ "appName": "BookingSystemApp"
6210
6343
  }
6211
6344
  ]
6212
6345
  ]
@@ -6221,8 +6354,8 @@
6221
6354
  "Schedule",
6222
6355
  {
6223
6356
  "emit": {
6224
- "failure": "ScheduleLoadFailed",
6225
- "success": "ScheduleLoaded"
6357
+ "success": "ScheduleLoaded",
6358
+ "failure": "ScheduleLoadFailed"
6226
6359
  }
6227
6360
  }
6228
6361
  ],
@@ -6230,42 +6363,41 @@
6230
6363
  "render-ui",
6231
6364
  "main",
6232
6365
  {
6366
+ "type": "dashboard-layout",
6233
6367
  "navItems": [
6234
6368
  {
6235
- "icon": "user-check",
6236
6369
  "label": "Providers",
6237
- "href": "/providers"
6370
+ "href": "/providers",
6371
+ "icon": "user-check"
6238
6372
  },
6239
6373
  {
6240
- "label": "Book",
6241
- "href": "/book",
6242
- "icon": "calendar-plus"
6374
+ "label": "Book",
6375
+ "icon": "calendar-plus",
6376
+ "href": "/book"
6243
6377
  },
6244
6378
  {
6379
+ "label": "Appointments",
6245
6380
  "icon": "calendar",
6246
- "href": "/appointments",
6247
- "label": "Appointments"
6381
+ "href": "/appointments"
6248
6382
  },
6249
6383
  {
6250
6384
  "label": "Schedule",
6251
- "href": "/schedule",
6252
- "icon": "clock"
6385
+ "icon": "clock",
6386
+ "href": "/schedule"
6253
6387
  }
6254
6388
  ],
6255
- "type": "dashboard-layout",
6256
6389
  "children": [
6257
6390
  {
6258
6391
  "children": [
6259
6392
  {
6260
- "gap": "lg",
6261
- "type": "stack",
6262
6393
  "direction": "vertical",
6394
+ "type": "stack",
6263
6395
  "children": [
6264
6396
  {
6265
6397
  "items": [
6266
6398
  {
6267
- "label": "Home",
6268
- "href": "/"
6399
+ "href": "/",
6400
+ "label": "Home"
6269
6401
  },
6270
6402
  {
6271
6403
  "label": "Schedule Overview"
@@ -6274,43 +6406,44 @@
6274
6406
  "type": "breadcrumb"
6275
6407
  },
6276
6408
  {
6277
- "type": "stack",
6278
- "gap": "md",
6279
6409
  "children": [
6280
6410
  {
6281
6411
  "type": "stack",
6282
6412
  "children": [
6283
6413
  {
6284
- "name": "bar-chart-2",
6285
- "type": "icon"
6414
+ "type": "icon",
6415
+ "name": "bar-chart-2"
6286
6416
  },
6287
6417
  {
6418
+ "content": "Schedule Overview",
6288
6419
  "variant": "h2",
6289
- "type": "typography",
6290
- "content": "Schedule Overview"
6420
+ "type": "typography"
6291
6421
  }
6292
6422
  ],
6293
- "gap": "md",
6294
- "direction": "horizontal"
6423
+ "direction": "horizontal",
6424
+ "gap": "md"
6295
6425
  },
6296
6426
  {
6297
- "label": "Refresh",
6298
- "icon": "refresh-cw",
6299
- "type": "button",
6300
6427
  "variant": "secondary",
6428
+ "type": "button",
6429
+ "icon": "refresh-cw",
6430
+ "label": "Refresh",
6301
6431
  "action": "REFRESH"
6302
6432
  }
6303
6433
  ],
6304
6434
  "direction": "horizontal",
6305
- "justify": "between"
6435
+ "gap": "md",
6436
+ "justify": "between",
6437
+ "type": "stack"
6306
6438
  },
6307
6439
  {
6308
6440
  "type": "divider"
6309
6441
  },
6310
6442
  {
6443
+ "padding": "md",
6444
+ "type": "box",
6311
6445
  "children": [
6312
6446
  {
6313
- "type": "simple-grid",
6314
6447
  "cols": 4.0,
6315
6448
  "children": [
6316
6449
  {
@@ -6324,20 +6457,19 @@
6324
6457
  "type": "stat-display"
6325
6458
  },
6326
6459
  {
6327
- "type": "stat-display",
6460
+ "value": "@entity.pendingBookings",
6328
6461
  "label": "PendingBookings",
6329
- "value": "@entity.pendingBookings"
6462
+ "type": "stat-display"
6330
6463
  },
6331
6464
  {
6332
- "value": "@entity.availableSlots",
6465
+ "type": "stat-display",
6333
6466
  "label": "AvailableSlots",
6334
- "type": "stat-display"
6467
+ "value": "@entity.availableSlots"
6335
6468
  }
6336
- ]
6469
+ ],
6470
+ "type": "simple-grid"
6337
6471
  }
6338
- ],
6339
- "type": "box",
6340
- "padding": "md"
6472
+ ]
6341
6473
  },
6342
6474
  {
6343
6475
  "type": "divider"
@@ -6348,36 +6480,37 @@
6348
6480
  "gap": "md",
6349
6481
  "children": [
6350
6482
  {
6483
+ "type": "card",
6351
6484
  "children": [
6352
6485
  {
6353
- "content": "Chart View",
6354
6486
  "variant": "caption",
6355
- "type": "typography"
6487
+ "type": "typography",
6488
+ "content": "Chart View"
6356
6489
  }
6357
- ],
6358
- "type": "card"
6490
+ ]
6359
6491
  },
6360
6492
  {
6493
+ "type": "card",
6361
6494
  "children": [
6362
6495
  {
6363
- "content": "Graph View",
6496
+ "variant": "caption",
6364
6497
  "type": "typography",
6365
- "variant": "caption"
6498
+ "content": "Graph View"
6366
6499
  }
6367
- ],
6368
- "type": "card"
6500
+ ]
6369
6501
  }
6370
6502
  ]
6371
6503
  },
6372
6504
  {
6505
+ "type": "line-chart",
6373
6506
  "data": [
6374
6507
  {
6375
- "value": 12.0,
6376
- "date": "Jan"
6508
+ "date": "Jan",
6509
+ "value": 12.0
6377
6510
  },
6378
6511
  {
6379
- "date": "Feb",
6380
- "value": 19.0
6512
+ "value": 19.0,
6513
+ "date": "Feb"
6381
6514
  },
6382
6515
  {
6383
6516
  "date": "Mar",
@@ -6392,18 +6525,17 @@
6392
6525
  "value": 22.0
6393
6526
  },
6394
6527
  {
6395
- "date": "Jun",
6396
- "value": 30.0
6528
+ "value": 30.0,
6529
+ "date": "Jun"
6397
6530
  }
6398
- ],
6399
- "type": "line-chart"
6531
+ ]
6400
6532
  },
6401
6533
  {
6402
6534
  "type": "chart-legend",
6403
6535
  "items": [
6404
6536
  {
6405
- "color": "primary",
6406
- "label": "Current"
6537
+ "label": "Current",
6538
+ "color": "primary"
6407
6539
  },
6408
6540
  {
6409
6541
  "label": "Previous",
@@ -6412,16 +6544,7 @@
6412
6544
  ]
6413
6545
  },
6414
6546
  {
6415
- "edges": [
6416
- {
6417
- "target": "b",
6418
- "source": "a"
6419
- },
6420
- {
6421
- "source": "b",
6422
- "target": "c"
6423
- }
6424
- ],
6547
+ "type": "graph-view",
6425
6548
  "nodes": [
6426
6549
  {
6427
6550
  "label": "Start",
@@ -6432,15 +6555,25 @@
6432
6555
  "id": "b"
6433
6556
  },
6434
6557
  {
6435
- "label": "End",
6436
- "id": "c"
6558
+ "id": "c",
6559
+ "label": "End"
6437
6560
  }
6438
6561
  ],
6439
- "width": 400.0,
6440
6562
  "height": 200.0,
6441
- "type": "graph-view"
6563
+ "width": 400.0,
6564
+ "edges": [
6565
+ {
6566
+ "target": "b",
6567
+ "source": "a"
6568
+ },
6569
+ {
6570
+ "source": "b",
6571
+ "target": "c"
6572
+ }
6573
+ ]
6442
6574
  }
6443
- ]
6575
+ ],
6576
+ "gap": "lg"
6444
6577
  }
6445
6578
  ],
6446
6579
  "type": "scaled-diagram"
@@ -6461,8 +6594,8 @@
6461
6594
  "Schedule",
6462
6595
  {
6463
6596
  "emit": {
6464
- "success": "ScheduleLoaded",
6465
- "failure": "ScheduleLoadFailed"
6597
+ "failure": "ScheduleLoadFailed",
6598
+ "success": "ScheduleLoaded"
6466
6599
  }
6467
6600
  }
6468
6601
  ],
@@ -6470,79 +6603,73 @@
6470
6603
  "render-ui",
6471
6604
  "main",
6472
6605
  {
6473
- "type": "dashboard-layout",
6474
6606
  "children": [
6475
6607
  {
6476
6608
  "type": "scaled-diagram",
6477
6609
  "children": [
6478
6610
  {
6479
- "type": "stack",
6480
- "gap": "lg",
6481
- "direction": "vertical",
6482
6611
  "children": [
6483
6612
  {
6613
+ "type": "breadcrumb",
6484
6614
  "items": [
6485
6615
  {
6486
- "label": "Home",
6487
- "href": "/"
6616
+ "href": "/",
6617
+ "label": "Home"
6488
6618
  },
6489
6619
  {
6490
6620
  "label": "Schedule Overview"
6491
6621
  }
6492
- ],
6493
- "type": "breadcrumb"
6622
+ ]
6494
6623
  },
6495
6624
  {
6496
6625
  "justify": "between",
6497
- "type": "stack",
6498
- "direction": "horizontal",
6499
- "gap": "md",
6500
6626
  "children": [
6501
6627
  {
6628
+ "type": "stack",
6629
+ "direction": "horizontal",
6630
+ "gap": "md",
6502
6631
  "children": [
6503
6632
  {
6504
- "name": "bar-chart-2",
6505
- "type": "icon"
6633
+ "type": "icon",
6634
+ "name": "bar-chart-2"
6506
6635
  },
6507
6636
  {
6637
+ "variant": "h2",
6508
6638
  "type": "typography",
6509
- "content": "Schedule Overview",
6510
- "variant": "h2"
6639
+ "content": "Schedule Overview"
6511
6640
  }
6512
- ],
6513
- "direction": "horizontal",
6514
- "type": "stack",
6515
- "gap": "md"
6641
+ ]
6516
6642
  },
6517
6643
  {
6518
- "icon": "refresh-cw",
6644
+ "action": "REFRESH",
6519
6645
  "type": "button",
6520
6646
  "variant": "secondary",
6521
- "label": "Refresh",
6522
- "action": "REFRESH"
6647
+ "icon": "refresh-cw",
6648
+ "label": "Refresh"
6523
6649
  }
6524
- ]
6650
+ ],
6651
+ "direction": "horizontal",
6652
+ "gap": "md",
6653
+ "type": "stack"
6525
6654
  },
6526
6655
  {
6527
6656
  "type": "divider"
6528
6657
  },
6529
6658
  {
6530
- "type": "box",
6531
6659
  "padding": "md",
6532
6660
  "children": [
6533
6661
  {
6534
- "cols": 4.0,
6535
6662
  "type": "simple-grid",
6536
6663
  "children": [
6537
6664
  {
6538
- "value": "@entity.totalBookings",
6539
6665
  "type": "stat-display",
6540
- "label": "TotalBookings"
6666
+ "label": "TotalBookings",
6667
+ "value": "@entity.totalBookings"
6541
6668
  },
6542
6669
  {
6543
- "type": "stat-display",
6670
+ "label": "ConfirmedToday",
6544
6671
  "value": "@entity.confirmedToday",
6545
- "label": "ConfirmedToday"
6672
+ "type": "stat-display"
6546
6673
  },
6547
6674
  {
6548
6675
  "type": "stat-display",
@@ -6550,13 +6677,15 @@
6550
6677
  "value": "@entity.pendingBookings"
6551
6678
  },
6552
6679
  {
6553
- "value": "@entity.availableSlots",
6554
6680
  "type": "stat-display",
6681
+ "value": "@entity.availableSlots",
6555
6682
  "label": "AvailableSlots"
6556
6683
  }
6557
- ]
6684
+ ],
6685
+ "cols": 4.0
6558
6686
  }
6559
- ]
6687
+ ],
6688
+ "type": "box"
6560
6689
  },
6561
6690
  {
6562
6691
  "type": "divider"
@@ -6580,9 +6709,9 @@
6580
6709
  "type": "card",
6581
6710
  "children": [
6582
6711
  {
6583
- "variant": "caption",
6712
+ "type": "typography",
6584
6713
  "content": "Graph View",
6585
- "type": "typography"
6714
+ "variant": "caption"
6586
6715
  }
6587
6716
  ]
6588
6717
  }
@@ -6595,24 +6724,24 @@
6595
6724
  "value": 12.0
6596
6725
  },
6597
6726
  {
6598
- "date": "Feb",
6599
- "value": 19.0
6727
+ "value": 19.0,
6728
+ "date": "Feb"
6600
6729
  },
6601
6730
  {
6602
6731
  "value": 15.0,
6603
6732
  "date": "Mar"
6604
6733
  },
6605
6734
  {
6606
- "value": 25.0,
6607
- "date": "Apr"
6735
+ "date": "Apr",
6736
+ "value": 25.0
6608
6737
  },
6609
6738
  {
6610
- "date": "May",
6611
- "value": 22.0
6739
+ "value": 22.0,
6740
+ "date": "May"
6612
6741
  },
6613
6742
  {
6614
- "date": "Jun",
6615
- "value": 30.0
6743
+ "value": 30.0,
6744
+ "date": "Jun"
6616
6745
  }
6617
6746
  ],
6618
6747
  "type": "line-chart"
@@ -6621,8 +6750,8 @@
6621
6750
  "type": "chart-legend",
6622
6751
  "items": [
6623
6752
  {
6624
- "color": "primary",
6625
- "label": "Current"
6753
+ "label": "Current",
6754
+ "color": "primary"
6626
6755
  },
6627
6756
  {
6628
6757
  "color": "muted",
@@ -6631,6 +6760,9 @@
6631
6760
  ]
6632
6761
  },
6633
6762
  {
6763
+ "height": 200.0,
6764
+ "width": 400.0,
6765
+ "type": "graph-view",
6634
6766
  "nodes": [
6635
6767
  {
6636
6768
  "id": "a",
@@ -6641,29 +6773,30 @@
6641
6773
  "label": "Process"
6642
6774
  },
6643
6775
  {
6644
- "id": "c",
6645
- "label": "End"
6776
+ "label": "End",
6777
+ "id": "c"
6646
6778
  }
6647
6779
  ],
6648
- "type": "graph-view",
6649
- "height": 200.0,
6650
6780
  "edges": [
6651
6781
  {
6652
- "target": "b",
6653
- "source": "a"
6782
+ "source": "a",
6783
+ "target": "b"
6654
6784
  },
6655
6785
  {
6656
- "target": "c",
6657
- "source": "b"
6786
+ "source": "b",
6787
+ "target": "c"
6658
6788
  }
6659
- ],
6660
- "width": 400.0
6789
+ ]
6661
6790
  }
6662
- ]
6791
+ ],
6792
+ "type": "stack",
6793
+ "direction": "vertical",
6794
+ "gap": "lg"
6663
6795
  }
6664
6796
  ]
6665
6797
  }
6666
6798
  ],
6799
+ "appName": "BookingSystemApp",
6667
6800
  "navItems": [
6668
6801
  {
6669
6802
  "href": "/providers",
@@ -6672,21 +6805,21 @@
6672
6805
  },
6673
6806
  {
6674
6807
  "label": "Book",
6675
- "href": "/book",
6676
- "icon": "calendar-plus"
6808
+ "icon": "calendar-plus",
6809
+ "href": "/book"
6677
6810
  },
6678
6811
  {
6679
- "href": "/appointments",
6680
6812
  "icon": "calendar",
6813
+ "href": "/appointments",
6681
6814
  "label": "Appointments"
6682
6815
  },
6683
6816
  {
6684
- "label": "Schedule",
6817
+ "href": "/schedule",
6685
6818
  "icon": "clock",
6686
- "href": "/schedule"
6819
+ "label": "Schedule"
6687
6820
  }
6688
6821
  ],
6689
- "appName": "BookingSystemApp"
6822
+ "type": "dashboard-layout"
6690
6823
  }
6691
6824
  ]
6692
6825
  ]
@@ -6701,8 +6834,8 @@
6701
6834
  "Schedule",
6702
6835
  {
6703
6836
  "emit": {
6704
- "failure": "ScheduleLoadFailed",
6705
- "success": "ScheduleLoaded"
6837
+ "success": "ScheduleLoaded",
6838
+ "failure": "ScheduleLoadFailed"
6706
6839
  }
6707
6840
  }
6708
6841
  ],
@@ -6710,15 +6843,16 @@
6710
6843
  "render-ui",
6711
6844
  "main",
6712
6845
  {
6846
+ "type": "dashboard-layout",
6713
6847
  "children": [
6714
6848
  {
6849
+ "type": "scaled-diagram",
6715
6850
  "children": [
6716
6851
  {
6717
- "gap": "lg",
6852
+ "type": "stack",
6718
6853
  "direction": "vertical",
6719
6854
  "children": [
6720
6855
  {
6721
- "type": "breadcrumb",
6722
6856
  "items": [
6723
6857
  {
6724
6858
  "href": "/",
@@ -6727,7 +6861,8 @@
6727
6861
  {
6728
6862
  "label": "Schedule Overview"
6729
6863
  }
6730
- ]
6864
+ ],
6865
+ "type": "breadcrumb"
6731
6866
  },
6732
6867
  {
6733
6868
  "type": "stack",
@@ -6736,8 +6871,8 @@
6736
6871
  "gap": "md",
6737
6872
  "children": [
6738
6873
  {
6739
- "type": "stack",
6740
6874
  "direction": "horizontal",
6875
+ "type": "stack",
6741
6876
  "gap": "md",
6742
6877
  "children": [
6743
6878
  {
@@ -6745,18 +6880,18 @@
6745
6880
  "type": "icon"
6746
6881
  },
6747
6882
  {
6883
+ "variant": "h2",
6748
6884
  "type": "typography",
6749
- "content": "Schedule Overview",
6750
- "variant": "h2"
6885
+ "content": "Schedule Overview"
6751
6886
  }
6752
6887
  ]
6753
6888
  },
6754
6889
  {
6755
- "icon": "refresh-cw",
6756
6890
  "label": "Refresh",
6757
- "action": "REFRESH",
6891
+ "type": "button",
6758
6892
  "variant": "secondary",
6759
- "type": "button"
6893
+ "icon": "refresh-cw",
6894
+ "action": "REFRESH"
6760
6895
  }
6761
6896
  ]
6762
6897
  },
@@ -6765,16 +6900,13 @@
6765
6900
  },
6766
6901
  {
6767
6902
  "padding": "md",
6768
- "type": "box",
6769
6903
  "children": [
6770
6904
  {
6771
- "cols": 4.0,
6772
- "type": "simple-grid",
6773
6905
  "children": [
6774
6906
  {
6775
6907
  "type": "stat-display",
6776
- "label": "TotalBookings",
6777
- "value": "@entity.totalBookings"
6908
+ "value": "@entity.totalBookings",
6909
+ "label": "TotalBookings"
6778
6910
  },
6779
6911
  {
6780
6912
  "label": "ConfirmedToday",
@@ -6787,43 +6919,46 @@
6787
6919
  "value": "@entity.pendingBookings"
6788
6920
  },
6789
6921
  {
6790
- "label": "AvailableSlots",
6922
+ "value": "@entity.availableSlots",
6791
6923
  "type": "stat-display",
6792
- "value": "@entity.availableSlots"
6924
+ "label": "AvailableSlots"
6793
6925
  }
6794
- ]
6926
+ ],
6927
+ "cols": 4.0,
6928
+ "type": "simple-grid"
6795
6929
  }
6796
- ]
6930
+ ],
6931
+ "type": "box"
6797
6932
  },
6798
6933
  {
6799
6934
  "type": "divider"
6800
6935
  },
6801
6936
  {
6802
- "type": "grid",
6937
+ "gap": "md",
6803
6938
  "cols": 2.0,
6939
+ "type": "grid",
6804
6940
  "children": [
6805
6941
  {
6806
6942
  "type": "card",
6807
6943
  "children": [
6808
6944
  {
6809
- "type": "typography",
6945
+ "variant": "caption",
6810
6946
  "content": "Chart View",
6811
- "variant": "caption"
6947
+ "type": "typography"
6812
6948
  }
6813
6949
  ]
6814
6950
  },
6815
6951
  {
6816
6952
  "children": [
6817
6953
  {
6818
- "variant": "caption",
6819
6954
  "content": "Graph View",
6820
- "type": "typography"
6955
+ "type": "typography",
6956
+ "variant": "caption"
6821
6957
  }
6822
6958
  ],
6823
6959
  "type": "card"
6824
6960
  }
6825
- ],
6826
- "gap": "md"
6961
+ ]
6827
6962
  },
6828
6963
  {
6829
6964
  "data": [
@@ -6832,30 +6967,29 @@
6832
6967
  "value": 12.0
6833
6968
  },
6834
6969
  {
6835
- "value": 19.0,
6836
- "date": "Feb"
6970
+ "date": "Feb",
6971
+ "value": 19.0
6837
6972
  },
6838
6973
  {
6839
- "value": 15.0,
6840
- "date": "Mar"
6974
+ "date": "Mar",
6975
+ "value": 15.0
6841
6976
  },
6842
6977
  {
6843
- "date": "Apr",
6844
- "value": 25.0
6978
+ "value": 25.0,
6979
+ "date": "Apr"
6845
6980
  },
6846
6981
  {
6847
6982
  "value": 22.0,
6848
6983
  "date": "May"
6849
6984
  },
6850
6985
  {
6851
- "date": "Jun",
6852
- "value": 30.0
6986
+ "value": 30.0,
6987
+ "date": "Jun"
6853
6988
  }
6854
6989
  ],
6855
6990
  "type": "line-chart"
6856
6991
  },
6857
6992
  {
6858
- "type": "chart-legend",
6859
6993
  "items": [
6860
6994
  {
6861
6995
  "color": "primary",
@@ -6865,29 +6999,30 @@
6865
6999
  "label": "Previous",
6866
7000
  "color": "muted"
6867
7001
  }
6868
- ]
7002
+ ],
7003
+ "type": "chart-legend"
6869
7004
  },
6870
7005
  {
6871
7006
  "height": 200.0,
7007
+ "type": "graph-view",
6872
7008
  "nodes": [
6873
7009
  {
6874
7010
  "id": "a",
6875
7011
  "label": "Start"
6876
7012
  },
6877
7013
  {
6878
- "id": "b",
6879
- "label": "Process"
7014
+ "label": "Process",
7015
+ "id": "b"
6880
7016
  },
6881
7017
  {
6882
7018
  "id": "c",
6883
7019
  "label": "End"
6884
7020
  }
6885
7021
  ],
6886
- "type": "graph-view",
6887
7022
  "edges": [
6888
7023
  {
6889
- "source": "a",
6890
- "target": "b"
7024
+ "target": "b",
7025
+ "source": "a"
6891
7026
  },
6892
7027
  {
6893
7028
  "source": "b",
@@ -6897,27 +7032,26 @@
6897
7032
  "width": 400.0
6898
7033
  }
6899
7034
  ],
6900
- "type": "stack"
7035
+ "gap": "lg"
6901
7036
  }
6902
- ],
6903
- "type": "scaled-diagram"
7037
+ ]
6904
7038
  }
6905
7039
  ],
6906
7040
  "navItems": [
6907
7041
  {
6908
7042
  "icon": "user-check",
6909
- "href": "/providers",
6910
- "label": "Providers"
7043
+ "label": "Providers",
7044
+ "href": "/providers"
6911
7045
  },
6912
7046
  {
6913
7047
  "label": "Book",
6914
- "href": "/book",
6915
- "icon": "calendar-plus"
7048
+ "icon": "calendar-plus",
7049
+ "href": "/book"
6916
7050
  },
6917
7051
  {
7052
+ "label": "Appointments",
6918
7053
  "href": "/appointments",
6919
- "icon": "calendar",
6920
- "label": "Appointments"
7054
+ "icon": "calendar"
6921
7055
  },
6922
7056
  {
6923
7057
  "icon": "clock",
@@ -6925,7 +7059,6 @@
6925
7059
  "href": "/schedule"
6926
7060
  }
6927
7061
  ],
6928
- "type": "dashboard-layout",
6929
7062
  "appName": "BookingSystemApp"
6930
7063
  }
6931
7064
  ]
@@ -6941,8 +7074,8 @@
6941
7074
  "Schedule",
6942
7075
  {
6943
7076
  "emit": {
6944
- "success": "ScheduleLoaded",
6945
- "failure": "ScheduleLoadFailed"
7077
+ "failure": "ScheduleLoadFailed",
7078
+ "success": "ScheduleLoaded"
6946
7079
  }
6947
7080
  }
6948
7081
  ],
@@ -6950,6 +7083,30 @@
6950
7083
  "render-ui",
6951
7084
  "main",
6952
7085
  {
7086
+ "type": "dashboard-layout",
7087
+ "appName": "BookingSystemApp",
7088
+ "navItems": [
7089
+ {
7090
+ "label": "Providers",
7091
+ "href": "/providers",
7092
+ "icon": "user-check"
7093
+ },
7094
+ {
7095
+ "label": "Book",
7096
+ "href": "/book",
7097
+ "icon": "calendar-plus"
7098
+ },
7099
+ {
7100
+ "label": "Appointments",
7101
+ "icon": "calendar",
7102
+ "href": "/appointments"
7103
+ },
7104
+ {
7105
+ "icon": "clock",
7106
+ "label": "Schedule",
7107
+ "href": "/schedule"
7108
+ }
7109
+ ],
6953
7110
  "children": [
6954
7111
  {
6955
7112
  "type": "scaled-diagram",
@@ -6957,6 +7114,7 @@
6957
7114
  {
6958
7115
  "type": "stack",
6959
7116
  "gap": "lg",
7117
+ "direction": "vertical",
6960
7118
  "children": [
6961
7119
  {
6962
7120
  "type": "breadcrumb",
@@ -6971,35 +7129,35 @@
6971
7129
  ]
6972
7130
  },
6973
7131
  {
6974
- "direction": "horizontal",
6975
7132
  "type": "stack",
7133
+ "gap": "md",
7134
+ "direction": "horizontal",
6976
7135
  "justify": "between",
6977
7136
  "children": [
6978
7137
  {
6979
- "gap": "md",
6980
- "direction": "horizontal",
6981
7138
  "children": [
6982
7139
  {
6983
- "type": "icon",
6984
- "name": "bar-chart-2"
7140
+ "name": "bar-chart-2",
7141
+ "type": "icon"
6985
7142
  },
6986
7143
  {
7144
+ "variant": "h2",
6987
7145
  "type": "typography",
6988
- "content": "Schedule Overview",
6989
- "variant": "h2"
7146
+ "content": "Schedule Overview"
6990
7147
  }
6991
7148
  ],
6992
- "type": "stack"
7149
+ "direction": "horizontal",
7150
+ "type": "stack",
7151
+ "gap": "md"
6993
7152
  },
6994
7153
  {
6995
- "action": "REFRESH",
6996
- "type": "button",
6997
7154
  "icon": "refresh-cw",
7155
+ "type": "button",
7156
+ "action": "REFRESH",
6998
7157
  "variant": "secondary",
6999
7158
  "label": "Refresh"
7000
7159
  }
7001
- ],
7002
- "gap": "md"
7160
+ ]
7003
7161
  },
7004
7162
  {
7005
7163
  "type": "divider"
@@ -7009,29 +7167,29 @@
7009
7167
  "children": [
7010
7168
  {
7011
7169
  "cols": 4.0,
7170
+ "type": "simple-grid",
7012
7171
  "children": [
7013
7172
  {
7014
- "type": "stat-display",
7015
7173
  "label": "TotalBookings",
7016
- "value": "@entity.totalBookings"
7174
+ "value": "@entity.totalBookings",
7175
+ "type": "stat-display"
7017
7176
  },
7018
7177
  {
7019
- "type": "stat-display",
7020
7178
  "value": "@entity.confirmedToday",
7179
+ "type": "stat-display",
7021
7180
  "label": "ConfirmedToday"
7022
7181
  },
7023
7182
  {
7024
- "type": "stat-display",
7025
7183
  "label": "PendingBookings",
7026
- "value": "@entity.pendingBookings"
7184
+ "value": "@entity.pendingBookings",
7185
+ "type": "stat-display"
7027
7186
  },
7028
7187
  {
7029
- "label": "AvailableSlots",
7188
+ "value": "@entity.availableSlots",
7030
7189
  "type": "stat-display",
7031
- "value": "@entity.availableSlots"
7190
+ "label": "AvailableSlots"
7032
7191
  }
7033
- ],
7034
- "type": "simple-grid"
7192
+ ]
7035
7193
  }
7036
7194
  ],
7037
7195
  "type": "box"
@@ -7040,9 +7198,6 @@
7040
7198
  "type": "divider"
7041
7199
  },
7042
7200
  {
7043
- "type": "grid",
7044
- "gap": "md",
7045
- "cols": 2.0,
7046
7201
  "children": [
7047
7202
  {
7048
7203
  "children": [
@@ -7058,73 +7213,61 @@
7058
7213
  "type": "card",
7059
7214
  "children": [
7060
7215
  {
7061
- "type": "typography",
7062
7216
  "content": "Graph View",
7063
- "variant": "caption"
7217
+ "variant": "caption",
7218
+ "type": "typography"
7064
7219
  }
7065
7220
  ]
7066
7221
  }
7067
- ]
7222
+ ],
7223
+ "type": "grid",
7224
+ "cols": 2.0,
7225
+ "gap": "md"
7068
7226
  },
7069
7227
  {
7228
+ "type": "line-chart",
7070
7229
  "data": [
7071
7230
  {
7072
- "date": "Jan",
7073
- "value": 12.0
7231
+ "value": 12.0,
7232
+ "date": "Jan"
7074
7233
  },
7075
7234
  {
7076
- "value": 19.0,
7077
- "date": "Feb"
7235
+ "date": "Feb",
7236
+ "value": 19.0
7078
7237
  },
7079
7238
  {
7080
7239
  "value": 15.0,
7081
7240
  "date": "Mar"
7082
7241
  },
7083
7242
  {
7084
- "date": "Apr",
7085
- "value": 25.0
7243
+ "value": 25.0,
7244
+ "date": "Apr"
7086
7245
  },
7087
7246
  {
7088
7247
  "date": "May",
7089
7248
  "value": 22.0
7090
7249
  },
7091
7250
  {
7092
- "value": 30.0,
7093
- "date": "Jun"
7251
+ "date": "Jun",
7252
+ "value": 30.0
7094
7253
  }
7095
- ],
7096
- "type": "line-chart"
7254
+ ]
7097
7255
  },
7098
7256
  {
7257
+ "type": "chart-legend",
7099
7258
  "items": [
7100
7259
  {
7101
- "color": "primary",
7102
- "label": "Current"
7260
+ "label": "Current",
7261
+ "color": "primary"
7103
7262
  },
7104
7263
  {
7105
7264
  "color": "muted",
7106
7265
  "label": "Previous"
7107
7266
  }
7108
- ],
7109
- "type": "chart-legend"
7267
+ ]
7110
7268
  },
7111
7269
  {
7112
- "width": 400.0,
7113
- "nodes": [
7114
- {
7115
- "id": "a",
7116
- "label": "Start"
7117
- },
7118
- {
7119
- "id": "b",
7120
- "label": "Process"
7121
- },
7122
- {
7123
- "id": "c",
7124
- "label": "End"
7125
- }
7126
- ],
7127
- "height": 200.0,
7270
+ "type": "graph-view",
7128
7271
  "edges": [
7129
7272
  {
7130
7273
  "target": "b",
@@ -7135,38 +7278,28 @@
7135
7278
  "target": "c"
7136
7279
  }
7137
7280
  ],
7138
- "type": "graph-view"
7281
+ "width": 400.0,
7282
+ "height": 200.0,
7283
+ "nodes": [
7284
+ {
7285
+ "label": "Start",
7286
+ "id": "a"
7287
+ },
7288
+ {
7289
+ "label": "Process",
7290
+ "id": "b"
7291
+ },
7292
+ {
7293
+ "id": "c",
7294
+ "label": "End"
7295
+ }
7296
+ ]
7139
7297
  }
7140
- ],
7141
- "direction": "vertical"
7298
+ ]
7142
7299
  }
7143
7300
  ]
7144
7301
  }
7145
- ],
7146
- "appName": "BookingSystemApp",
7147
- "navItems": [
7148
- {
7149
- "label": "Providers",
7150
- "href": "/providers",
7151
- "icon": "user-check"
7152
- },
7153
- {
7154
- "label": "Book",
7155
- "href": "/book",
7156
- "icon": "calendar-plus"
7157
- },
7158
- {
7159
- "href": "/appointments",
7160
- "label": "Appointments",
7161
- "icon": "calendar"
7162
- },
7163
- {
7164
- "icon": "clock",
7165
- "label": "Schedule",
7166
- "href": "/schedule"
7167
- }
7168
- ],
7169
- "type": "dashboard-layout"
7302
+ ]
7170
7303
  }
7171
7304
  ]
7172
7305
  ]