@alfadocs/ui-kit-debug 1.13.0 → 1.15.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 (194) hide show
  1. package/dist/_chunks/actions-cell-renderer-yy03OgRL.js +137 -0
  2. package/dist/_chunks/actions-cell-renderer-yy03OgRL.js.map +1 -0
  3. package/dist/_chunks/{balance-badge-cell--iQ_gtmi.js → balance-badge-cell-CgkxYO96.js} +7 -6
  4. package/dist/_chunks/{balance-badge-cell--iQ_gtmi.js.map → balance-badge-cell-CgkxYO96.js.map} +1 -1
  5. package/dist/_chunks/{calendar-B4Gnyu1C.js → calendar-CHT9Rm3M.js} +2 -2
  6. package/dist/_chunks/{calendar-B4Gnyu1C.js.map → calendar-CHT9Rm3M.js.map} +1 -1
  7. package/dist/_chunks/{calendar-event-card-Bjdbik8G.js → calendar-event-card-BjdHZaqz.js} +18 -14
  8. package/dist/_chunks/{calendar-event-card-Bjdbik8G.js.map → calendar-event-card-BjdHZaqz.js.map} +1 -1
  9. package/dist/_chunks/calendar-plus-BFrIRE4r.js +19 -0
  10. package/dist/_chunks/calendar-plus-BFrIRE4r.js.map +1 -0
  11. package/dist/_chunks/calendar-workspace-CGuY4kmv.js +7480 -0
  12. package/dist/_chunks/calendar-workspace-CGuY4kmv.js.map +1 -0
  13. package/dist/_chunks/clipboard-list-rSzfIYZB.js +25 -0
  14. package/dist/_chunks/clipboard-list-rSzfIYZB.js.map +1 -0
  15. package/dist/_chunks/{color-picker-oZ6zYks8.js → color-picker-CU303VjY.js} +4 -2
  16. package/dist/_chunks/{color-picker-oZ6zYks8.js.map → color-picker-CU303VjY.js.map} +1 -1
  17. package/dist/_chunks/data-table-DC5rO3Ty.js +1817 -0
  18. package/dist/_chunks/data-table-DC5rO3Ty.js.map +1 -0
  19. package/dist/_chunks/{field-value-DG8zaZvo.js → field-value-D-vkX9uL.js} +120 -140
  20. package/dist/_chunks/field-value-D-vkX9uL.js.map +1 -0
  21. package/dist/_chunks/{file-manager-UsD8e_AB.js → file-manager-DJMeB3V8.js} +138 -153
  22. package/dist/_chunks/file-manager-DJMeB3V8.js.map +1 -0
  23. package/dist/_chunks/folder-plus-CutOs4DP.js +22 -0
  24. package/dist/_chunks/folder-plus-CutOs4DP.js.map +1 -0
  25. package/dist/_chunks/hourglass-BEAzW1wE.js +26 -0
  26. package/dist/_chunks/hourglass-BEAzW1wE.js.map +1 -0
  27. package/dist/_chunks/{notes-panel-CymneXtl.js → notes-panel-DYAtlq_i.js} +2 -2
  28. package/dist/_chunks/{notes-panel-CymneXtl.js.map → notes-panel-DYAtlq_i.js.map} +1 -1
  29. package/dist/_chunks/{patient-details-BQaUzPqp.js → patient-details-BfzvFnxQ.js} +73 -92
  30. package/dist/_chunks/patient-details-BfzvFnxQ.js.map +1 -0
  31. package/dist/_chunks/{patient-summary-card-CvDxhbBR.js → patient-summary-card-D5Vfa321.js} +2 -2
  32. package/dist/_chunks/{patient-summary-card-CvDxhbBR.js.map → patient-summary-card-D5Vfa321.js.map} +1 -1
  33. package/dist/_chunks/{practice-results-D7ygCj_W.js → practice-results-DL_ExLYE.js} +159 -172
  34. package/dist/_chunks/practice-results-DL_ExLYE.js.map +1 -0
  35. package/dist/_chunks/{rich-text-editor-BDfFtK4H.js → rich-text-editor-DtbcA6s1.js} +2 -2
  36. package/dist/_chunks/{rich-text-editor-BDfFtK4H.js.map → rich-text-editor-DtbcA6s1.js.map} +1 -1
  37. package/dist/_chunks/signature-CpFNpsVK.js +21 -0
  38. package/dist/_chunks/signature-CpFNpsVK.js.map +1 -0
  39. package/dist/_chunks/{signature-field-0rFODJlW.js → signature-field-CEiPe-vX.js} +19 -34
  40. package/dist/_chunks/signature-field-CEiPe-vX.js.map +1 -0
  41. package/dist/_chunks/smartphone-C0rFF2if.js +15 -0
  42. package/dist/_chunks/smartphone-C0rFF2if.js.map +1 -0
  43. package/dist/_chunks/{toast.agent-D1tdg6DS.js → toast-YZz2sBzB.js} +160 -212
  44. package/dist/_chunks/toast-YZz2sBzB.js.map +1 -0
  45. package/dist/_chunks/toast.agent-DNQ0JYGv.js +56 -0
  46. package/dist/_chunks/toast.agent-DNQ0JYGv.js.map +1 -0
  47. package/dist/_chunks/{workflow-map-wcw3t6g4.js → workflow-map-dNzJjBWG.js} +103 -112
  48. package/dist/_chunks/workflow-map-dNzJjBWG.js.map +1 -0
  49. package/dist/agent-catalog.json +867 -1
  50. package/dist/agent-i18n/en.json +27 -0
  51. package/dist/components/calendar/index.js +1 -1
  52. package/dist/components/calendar-event-card/index.js +1 -1
  53. package/dist/components/color-picker/index.js +1 -1
  54. package/dist/components/data-table/index.js +39 -38
  55. package/dist/components/data-table/index.js.map +1 -1
  56. package/dist/components/file-manager/index.js +1 -1
  57. package/dist/components/index.d.ts +1 -0
  58. package/dist/components/index.d.ts.map +1 -1
  59. package/dist/components/notes-panel/index.js +1 -1
  60. package/dist/components/patient-details/index.js +1 -1
  61. package/dist/components/patient-summary-card/index.js +1 -1
  62. package/dist/components/patient-table/index.js +1 -1
  63. package/dist/components/practice-results/index.js +1 -1
  64. package/dist/components/rich-text-editor/index.js +1 -1
  65. package/dist/components/signature-field/index.js +1 -1
  66. package/dist/components/toast/index.js +7 -6
  67. package/dist/components/toast/index.js.map +1 -1
  68. package/dist/components/workflow/index.js +1 -1
  69. package/dist/i18n/locales/ar.d.ts +680 -0
  70. package/dist/i18n/locales/ar.d.ts.map +1 -1
  71. package/dist/i18n/locales/ar.js +680 -0
  72. package/dist/i18n/locales/ar.js.map +1 -1
  73. package/dist/i18n/locales/de.d.ts +680 -0
  74. package/dist/i18n/locales/de.d.ts.map +1 -1
  75. package/dist/i18n/locales/de.js +680 -0
  76. package/dist/i18n/locales/de.js.map +1 -1
  77. package/dist/i18n/locales/el.d.ts +680 -0
  78. package/dist/i18n/locales/el.d.ts.map +1 -1
  79. package/dist/i18n/locales/el.js +680 -0
  80. package/dist/i18n/locales/el.js.map +1 -1
  81. package/dist/i18n/locales/en.d.ts +680 -0
  82. package/dist/i18n/locales/en.d.ts.map +1 -1
  83. package/dist/i18n/locales/en.js +680 -0
  84. package/dist/i18n/locales/en.js.map +1 -1
  85. package/dist/i18n/locales/es.d.ts +680 -0
  86. package/dist/i18n/locales/es.d.ts.map +1 -1
  87. package/dist/i18n/locales/es.js +680 -0
  88. package/dist/i18n/locales/es.js.map +1 -1
  89. package/dist/i18n/locales/fr.d.ts +680 -0
  90. package/dist/i18n/locales/fr.d.ts.map +1 -1
  91. package/dist/i18n/locales/fr.js +680 -0
  92. package/dist/i18n/locales/fr.js.map +1 -1
  93. package/dist/i18n/locales/hi.d.ts +680 -0
  94. package/dist/i18n/locales/hi.d.ts.map +1 -1
  95. package/dist/i18n/locales/hi.js +680 -0
  96. package/dist/i18n/locales/hi.js.map +1 -1
  97. package/dist/i18n/locales/it.d.ts +680 -0
  98. package/dist/i18n/locales/it.d.ts.map +1 -1
  99. package/dist/i18n/locales/it.js +680 -0
  100. package/dist/i18n/locales/it.js.map +1 -1
  101. package/dist/i18n/locales/ja.d.ts +680 -0
  102. package/dist/i18n/locales/ja.d.ts.map +1 -1
  103. package/dist/i18n/locales/ja.js +680 -0
  104. package/dist/i18n/locales/ja.js.map +1 -1
  105. package/dist/i18n/locales/nl.d.ts +680 -0
  106. package/dist/i18n/locales/nl.d.ts.map +1 -1
  107. package/dist/i18n/locales/nl.js +680 -0
  108. package/dist/i18n/locales/nl.js.map +1 -1
  109. package/dist/i18n/locales/pl.d.ts +680 -0
  110. package/dist/i18n/locales/pl.d.ts.map +1 -1
  111. package/dist/i18n/locales/pl.js +680 -0
  112. package/dist/i18n/locales/pl.js.map +1 -1
  113. package/dist/i18n/locales/pt.d.ts +680 -0
  114. package/dist/i18n/locales/pt.d.ts.map +1 -1
  115. package/dist/i18n/locales/pt.js +680 -0
  116. package/dist/i18n/locales/pt.js.map +1 -1
  117. package/dist/i18n/locales/ro.d.ts +680 -0
  118. package/dist/i18n/locales/ro.d.ts.map +1 -1
  119. package/dist/i18n/locales/ro.js +680 -0
  120. package/dist/i18n/locales/ro.js.map +1 -1
  121. package/dist/i18n/locales/ru.d.ts +680 -0
  122. package/dist/i18n/locales/ru.d.ts.map +1 -1
  123. package/dist/i18n/locales/ru.js +680 -0
  124. package/dist/i18n/locales/ru.js.map +1 -1
  125. package/dist/i18n/locales/sq.d.ts +680 -0
  126. package/dist/i18n/locales/sq.d.ts.map +1 -1
  127. package/dist/i18n/locales/sq.js +680 -0
  128. package/dist/i18n/locales/sq.js.map +1 -1
  129. package/dist/i18n/locales/sv.d.ts +680 -0
  130. package/dist/i18n/locales/sv.d.ts.map +1 -1
  131. package/dist/i18n/locales/sv.js +680 -0
  132. package/dist/i18n/locales/sv.js.map +1 -1
  133. package/dist/i18n/locales/tr.d.ts +680 -0
  134. package/dist/i18n/locales/tr.d.ts.map +1 -1
  135. package/dist/i18n/locales/tr.js +680 -0
  136. package/dist/i18n/locales/tr.js.map +1 -1
  137. package/dist/i18n/locales/zh.d.ts +680 -0
  138. package/dist/i18n/locales/zh.d.ts.map +1 -1
  139. package/dist/i18n/locales/zh.js +680 -0
  140. package/dist/i18n/locales/zh.js.map +1 -1
  141. package/dist/index.js +821 -803
  142. package/dist/index.js.map +1 -1
  143. package/dist/locales/ar.json +680 -0
  144. package/dist/locales/de.json +680 -0
  145. package/dist/locales/el.json +680 -0
  146. package/dist/locales/en.json +680 -0
  147. package/dist/locales/es.json +680 -0
  148. package/dist/locales/fr.json +680 -0
  149. package/dist/locales/hi.json +680 -0
  150. package/dist/locales/it.json +680 -0
  151. package/dist/locales/ja.json +680 -0
  152. package/dist/locales/nl.json +680 -0
  153. package/dist/locales/pl.json +680 -0
  154. package/dist/locales/pt.json +680 -0
  155. package/dist/locales/ro.json +680 -0
  156. package/dist/locales/ru.json +680 -0
  157. package/dist/locales/sq.json +680 -0
  158. package/dist/locales/sv.json +680 -0
  159. package/dist/locales/tr.json +680 -0
  160. package/dist/locales/zh.json +680 -0
  161. package/dist/patterns/calendar/calendar-workspace.d.ts +82 -0
  162. package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -0
  163. package/dist/patterns/calendar/calendar-workspace.model.d.ts +380 -0
  164. package/dist/patterns/calendar/calendar-workspace.model.d.ts.map +1 -0
  165. package/dist/patterns/calendar/calendar.data.d.ts +122 -0
  166. package/dist/patterns/calendar/calendar.data.d.ts.map +1 -0
  167. package/dist/patterns/calendar/calendar.host.d.ts +10 -0
  168. package/dist/patterns/calendar/calendar.host.d.ts.map +1 -0
  169. package/dist/patterns/calendar/calendar.journey.d.ts +119 -0
  170. package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -0
  171. package/dist/patterns/calendar/calendar.model.d.ts +684 -0
  172. package/dist/patterns/calendar/calendar.model.d.ts.map +1 -0
  173. package/dist/patterns/calendar/calendar.preferences.d.ts +74 -0
  174. package/dist/patterns/calendar/calendar.preferences.d.ts.map +1 -0
  175. package/dist/patterns/calendar/calendar.sheets.d.ts +398 -0
  176. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -0
  177. package/dist/patterns/calendar/calendar.surface.d.ts +85 -0
  178. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -0
  179. package/dist/patterns/calendar/calendar.types.d.ts +413 -0
  180. package/dist/patterns/calendar/calendar.types.d.ts.map +1 -0
  181. package/dist/patterns/calendar/index.d.ts +13 -0
  182. package/dist/patterns/calendar/index.d.ts.map +1 -0
  183. package/dist/patterns/calendar/index.js +19 -0
  184. package/dist/patterns/calendar/index.js.map +1 -0
  185. package/package.json +5 -1
  186. package/dist/_chunks/actions-cell-renderer-ReurEy5i.js +0 -1945
  187. package/dist/_chunks/actions-cell-renderer-ReurEy5i.js.map +0 -1
  188. package/dist/_chunks/field-value-DG8zaZvo.js.map +0 -1
  189. package/dist/_chunks/file-manager-UsD8e_AB.js.map +0 -1
  190. package/dist/_chunks/patient-details-BQaUzPqp.js.map +0 -1
  191. package/dist/_chunks/practice-results-D7ygCj_W.js.map +0 -1
  192. package/dist/_chunks/signature-field-0rFODJlW.js.map +0 -1
  193. package/dist/_chunks/toast.agent-D1tdg6DS.js.map +0 -1
  194. package/dist/_chunks/workflow-map-wcw3t6g4.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.13.0",
3
+ "packageVersion": "1.15.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -16572,6 +16572,872 @@
16572
16572
  }
16573
16573
  ]
16574
16574
  },
16575
+ {
16576
+ "kind": "pattern",
16577
+ "id": "calendar",
16578
+ "composes": [
16579
+ {
16580
+ "component": "calendar",
16581
+ "as": "agenda",
16582
+ "entity": "appointment"
16583
+ },
16584
+ {
16585
+ "component": "card",
16586
+ "as": "page"
16587
+ },
16588
+ {
16589
+ "component": "scroll-area",
16590
+ "as": "surfaceScroller"
16591
+ },
16592
+ {
16593
+ "component": "visually-hidden",
16594
+ "as": "dockAnnouncement"
16595
+ },
16596
+ {
16597
+ "component": "control-room-rail",
16598
+ "as": "toolRail"
16599
+ },
16600
+ {
16601
+ "component": "button",
16602
+ "as": "newAppointment"
16603
+ },
16604
+ {
16605
+ "component": "button-group",
16606
+ "as": "waitingListSplit"
16607
+ },
16608
+ {
16609
+ "component": "button",
16610
+ "as": "onlineBookings"
16611
+ },
16612
+ {
16613
+ "component": "button",
16614
+ "as": "findFreeSlots"
16615
+ },
16616
+ {
16617
+ "component": "popover",
16618
+ "as": "chairFilter"
16619
+ },
16620
+ {
16621
+ "component": "checkbox",
16622
+ "as": "chairChoice",
16623
+ "entity": "chair"
16624
+ },
16625
+ {
16626
+ "component": "popover",
16627
+ "as": "operatorFilter"
16628
+ },
16629
+ {
16630
+ "component": "checkbox",
16631
+ "as": "operatorChoice",
16632
+ "entity": "operator"
16633
+ },
16634
+ {
16635
+ "component": "avatar",
16636
+ "as": "operatorFace",
16637
+ "entity": "operator"
16638
+ },
16639
+ {
16640
+ "component": "tag",
16641
+ "as": "disabledOperatorMarker",
16642
+ "entity": "operator"
16643
+ },
16644
+ {
16645
+ "component": "switch",
16646
+ "as": "availableOperatorsOnly"
16647
+ },
16648
+ {
16649
+ "component": "switch",
16650
+ "as": "showDisabledOperators"
16651
+ },
16652
+ {
16653
+ "component": "badge",
16654
+ "as": "filterCount"
16655
+ },
16656
+ {
16657
+ "component": "button",
16658
+ "as": "resetFilters"
16659
+ },
16660
+ {
16661
+ "component": "icon-button",
16662
+ "as": "toolbarIcon"
16663
+ },
16664
+ {
16665
+ "component": "popover",
16666
+ "as": "displaySettings"
16667
+ },
16668
+ {
16669
+ "component": "select",
16670
+ "as": "displayChoice"
16671
+ },
16672
+ {
16673
+ "component": "switch",
16674
+ "as": "displayToggle"
16675
+ },
16676
+ {
16677
+ "component": "number-input",
16678
+ "as": "defaultDuration"
16679
+ },
16680
+ {
16681
+ "component": "date-picker",
16682
+ "as": "jumpToDate"
16683
+ },
16684
+ {
16685
+ "component": "dropdown-menu",
16686
+ "as": "viewMenu"
16687
+ },
16688
+ {
16689
+ "component": "kbd",
16690
+ "as": "rangeShortcutHint"
16691
+ },
16692
+ {
16693
+ "component": "button-group",
16694
+ "as": "rangeNav"
16695
+ },
16696
+ {
16697
+ "component": "popover",
16698
+ "as": "hoverPeek",
16699
+ "entity": "appointment"
16700
+ },
16701
+ {
16702
+ "component": "key-value-pair",
16703
+ "as": "peekFact"
16704
+ },
16705
+ {
16706
+ "component": "timestamp",
16707
+ "as": "peekTime"
16708
+ },
16709
+ {
16710
+ "component": "dialog",
16711
+ "as": "moveConfirm"
16712
+ },
16713
+ {
16714
+ "component": "checkbox",
16715
+ "as": "notifyChannel"
16716
+ },
16717
+ {
16718
+ "component": "radio-group",
16719
+ "as": "moveScope"
16720
+ },
16721
+ {
16722
+ "component": "radio",
16723
+ "as": "scopeOption"
16724
+ },
16725
+ {
16726
+ "component": "dialog",
16727
+ "as": "printDayPicker"
16728
+ },
16729
+ {
16730
+ "component": "data-table",
16731
+ "as": "callSheet",
16732
+ "entity": "appointment"
16733
+ },
16734
+ {
16735
+ "component": "toast",
16736
+ "as": "feedback"
16737
+ },
16738
+ {
16739
+ "component": "appointment-timeline",
16740
+ "as": "upcoming",
16741
+ "entity": "appointment"
16742
+ },
16743
+ {
16744
+ "component": "panel-header",
16745
+ "as": "panelHeader"
16746
+ },
16747
+ {
16748
+ "component": "empty-state",
16749
+ "as": "emptyPanel"
16750
+ },
16751
+ {
16752
+ "component": "form-field",
16753
+ "as": "formRow"
16754
+ },
16755
+ {
16756
+ "component": "radio-group",
16757
+ "as": "appointmentType"
16758
+ },
16759
+ {
16760
+ "component": "combobox",
16761
+ "as": "patientPicker",
16762
+ "entity": "patient"
16763
+ },
16764
+ {
16765
+ "component": "combobox",
16766
+ "as": "carePicker",
16767
+ "entity": "care"
16768
+ },
16769
+ {
16770
+ "component": "combobox",
16771
+ "as": "durationPicker"
16772
+ },
16773
+ {
16774
+ "component": "select",
16775
+ "as": "operatorSelect",
16776
+ "entity": "operator"
16777
+ },
16778
+ {
16779
+ "component": "select",
16780
+ "as": "chairSelect",
16781
+ "entity": "chair"
16782
+ },
16783
+ {
16784
+ "component": "select",
16785
+ "as": "branchSelect",
16786
+ "entity": "branch"
16787
+ },
16788
+ {
16789
+ "component": "select",
16790
+ "as": "statusSelect"
16791
+ },
16792
+ {
16793
+ "component": "date-picker",
16794
+ "as": "appointmentDate"
16795
+ },
16796
+ {
16797
+ "component": "time-picker",
16798
+ "as": "startTime"
16799
+ },
16800
+ {
16801
+ "component": "color-picker",
16802
+ "as": "appointmentColour"
16803
+ },
16804
+ {
16805
+ "component": "text-input",
16806
+ "as": "appointmentDescription"
16807
+ },
16808
+ {
16809
+ "component": "text-area",
16810
+ "as": "appointmentNotes"
16811
+ },
16812
+ {
16813
+ "component": "number-input",
16814
+ "as": "repetitionCount"
16815
+ },
16816
+ {
16817
+ "component": "checkbox",
16818
+ "as": "reminderChannel"
16819
+ },
16820
+ {
16821
+ "component": "radio-group",
16822
+ "as": "requiredDocsSignMode"
16823
+ },
16824
+ {
16825
+ "component": "alert",
16826
+ "as": "editorAdvisory"
16827
+ },
16828
+ {
16829
+ "component": "tag",
16830
+ "as": "careRowMarker",
16831
+ "entity": "care"
16832
+ },
16833
+ {
16834
+ "component": "icon-button-group",
16835
+ "as": "panelToolbar"
16836
+ },
16837
+ {
16838
+ "component": "icon-button",
16839
+ "as": "panelAction"
16840
+ },
16841
+ {
16842
+ "component": "timeline",
16843
+ "as": "modificationHistory"
16844
+ },
16845
+ {
16846
+ "component": "notes-panel",
16847
+ "as": "patientNotes",
16848
+ "entity": "note"
16849
+ },
16850
+ {
16851
+ "component": "dialog",
16852
+ "as": "noteEditor"
16853
+ },
16854
+ {
16855
+ "component": "dialog",
16856
+ "as": "noteDeleteConfirm"
16857
+ },
16858
+ {
16859
+ "component": "dialog",
16860
+ "as": "deleteConfirm"
16861
+ },
16862
+ {
16863
+ "component": "radio-group",
16864
+ "as": "deleteScope"
16865
+ },
16866
+ {
16867
+ "component": "dialog",
16868
+ "as": "createBillConfirm"
16869
+ },
16870
+ {
16871
+ "component": "dropdown-menu",
16872
+ "as": "signatureMenu"
16873
+ },
16874
+ {
16875
+ "component": "dropdown-menu",
16876
+ "as": "documentsMenu"
16877
+ },
16878
+ {
16879
+ "component": "signature-status-chip",
16880
+ "as": "signatureStatus"
16881
+ },
16882
+ {
16883
+ "component": "key-value-pair",
16884
+ "as": "readOnlyFact"
16885
+ },
16886
+ {
16887
+ "component": "select",
16888
+ "as": "waitingQuickView"
16889
+ },
16890
+ {
16891
+ "component": "button",
16892
+ "as": "advancedFilterToggle"
16893
+ },
16894
+ {
16895
+ "component": "badge",
16896
+ "as": "waitingFilterCount"
16897
+ },
16898
+ {
16899
+ "component": "avatar",
16900
+ "as": "waitingPatientFace",
16901
+ "entity": "patient"
16902
+ },
16903
+ {
16904
+ "component": "whatsapp-button",
16905
+ "as": "whatsAppBridge",
16906
+ "entity": "patient"
16907
+ },
16908
+ {
16909
+ "component": "icon-button",
16910
+ "as": "waitingRowAction",
16911
+ "entity": "waitingEntry"
16912
+ },
16913
+ {
16914
+ "component": "appointment-card",
16915
+ "as": "bookingRow",
16916
+ "entity": "appointment"
16917
+ },
16918
+ {
16919
+ "component": "collapsible",
16920
+ "as": "finderFilters"
16921
+ },
16922
+ {
16923
+ "component": "popover",
16924
+ "as": "finderScope"
16925
+ },
16926
+ {
16927
+ "component": "checkbox",
16928
+ "as": "finderScopeChoice"
16929
+ },
16930
+ {
16931
+ "component": "switch",
16932
+ "as": "finderToggle"
16933
+ },
16934
+ {
16935
+ "component": "select",
16936
+ "as": "medicalDeviceSelect"
16937
+ },
16938
+ {
16939
+ "component": "alert",
16940
+ "as": "finderAdvisory"
16941
+ }
16942
+ ],
16943
+ "workflows": [
16944
+ {
16945
+ "name": "browse_agenda",
16946
+ "safety": "read",
16947
+ "description": "Navigate the agenda: today, previous / next range, jump to a date through the navigation row's date picker, or change what the grid shows from the one view menu — a range (day, three days, week, month, also reachable as the bare keys D · X · W · M) and a column axis (plain, chairs, operators), plus a remembered \"Show weekends\" item that hides Saturday and Sunday in every range. Each range change hands the new window to the host, which fetches the appointments for it.",
16948
+ "descriptionKey": "ui.agent.calendar.workflows.browseAgenda",
16949
+ "uiActions": [
16950
+ "calendar.today",
16951
+ "calendar.prev",
16952
+ "calendar.next",
16953
+ "calendar.goto_date",
16954
+ "calendar.change_view",
16955
+ "date-picker.set_date",
16956
+ "dropdown-menu.open",
16957
+ "dropdown-menu.close"
16958
+ ],
16959
+ "stateReads": [
16960
+ "calendar.currentView",
16961
+ "calendar.currentDate",
16962
+ "calendar.currentTitle",
16963
+ "date-picker.value",
16964
+ "dropdown-menu.isOpen"
16965
+ ],
16966
+ "apiActions": [
16967
+ "appointment.list"
16968
+ ]
16969
+ },
16970
+ {
16971
+ "name": "filter_columns",
16972
+ "safety": "read",
16973
+ "description": "Narrow the grid to particular chairs or operators from the two filter popovers, with the platform's semantics: nothing ticked shows everyone and ticking narrows. Operators list under their groups with a tri-state row per group; \"Only available operators\" is on by default in the operator views, and a session-local \"Show disabled operators\" switch reveals the operators the practice has disabled. A count badge rides each filter button while it narrows, and the \"Reset filters\" chip beside them clears both selections and restores both switches without ever changing the view. Selection only — no appointment is touched.",
16974
+ "descriptionKey": "ui.agent.calendar.workflows.filterColumns",
16975
+ "uiActions": [
16976
+ "popover.open",
16977
+ "popover.close",
16978
+ "checkbox.set_checked",
16979
+ "checkbox.toggle",
16980
+ "switch.set_checked",
16981
+ "switch.toggle"
16982
+ ],
16983
+ "stateReads": [
16984
+ "popover.isOpen",
16985
+ "checkbox.checked",
16986
+ "switch.checked"
16987
+ ],
16988
+ "apiActions": []
16989
+ },
16990
+ {
16991
+ "name": "mask_patient_names",
16992
+ "safety": "read",
16993
+ "description": "Turn privacy mode on or off from the toolbar. While on, patient names are masked on the cards, in the hover peek, in the Appointments panel and on the printed call sheet, so the page can stay open beside a waiting patient. It is a display mask, not a permission: it is not persisted and it changes no record.",
16994
+ "descriptionKey": "ui.agent.calendar.workflows.maskPatientNames",
16995
+ "uiActions": [],
16996
+ "apiActions": []
16997
+ },
16998
+ {
16999
+ "name": "configure_display",
17000
+ "safety": "write",
17001
+ "description": "Set the per-user display knobs in the cog popover — layout, zebra rows, show times, slot precision, the day window, the care-description mode, what the cards are coloured by, the default duration of a new appointment (5–240 minutes), whether operators read as an initials disc or a dot plus full name, whether chairs read as a full name or a short code, and whether the details panel offers the map link. The choices are remembered per user through the host's preferences adapter under `calendarWorkspace.*` keys, so they persist beyond the page load; they change presentation only and touch no patient record.",
17002
+ "descriptionKey": "ui.agent.calendar.workflows.configureDisplay",
17003
+ "uiActions": [
17004
+ "popover.open",
17005
+ "popover.close",
17006
+ "select.set_value",
17007
+ "switch.set_checked",
17008
+ "switch.toggle",
17009
+ "number-input.set_value"
17010
+ ],
17011
+ "stateReads": [
17012
+ "popover.isOpen",
17013
+ "select.value",
17014
+ "switch.checked",
17015
+ "number-input.value"
17016
+ ],
17017
+ "apiActions": [
17018
+ "calendarPreference.update"
17019
+ ]
17020
+ },
17021
+ {
17022
+ "name": "dock_tool",
17023
+ "safety": "read",
17024
+ "description": "Open one of the rail's tools — Appointments, the appointment editor / details panel, the waiting list, the online bookings or the free-slot finder — or read which one is docked. A host declares which of the five it can back with real data, so read the strip rather than assuming all five: a tool the host withheld is absent, and anything routed at it docks Appointments instead. Closing returns to the Appointments panel rather than collapsing the rail, so no path leaves an empty dock. Docking moves no focus; a polite live region announces the panel that arrived.",
17025
+ "descriptionKey": "ui.agent.calendar.workflows.dockTool",
17026
+ "uiActions": [
17027
+ "control-room-rail.open",
17028
+ "control-room-rail.close",
17029
+ "control-room-rail.select_tool"
17030
+ ],
17031
+ "stateReads": [
17032
+ "control-room-rail.activeToolId"
17033
+ ],
17034
+ "apiActions": []
17035
+ },
17036
+ {
17037
+ "name": "review_upcoming",
17038
+ "safety": "read",
17039
+ "description": "Read the rail's resting panel: the practice's upcoming appointments — now to the end of the seventh day, cancelled excluded, earliest first — each row led by the patient. The preset row, the jump-to-date picker and the edge loaders widen the derived window up to ±180 days. Activating a row selects that appointment on the grid, which docks its details. Read-only; the rows carry ids and lifecycle state, never patient identity.",
17040
+ "descriptionKey": "ui.agent.calendar.workflows.reviewUpcoming",
17041
+ "uiActions": [
17042
+ "appointment-timeline.select_item",
17043
+ "appointment-timeline.jump_to_today",
17044
+ "date-picker.set_date",
17045
+ "calendar.focus_event"
17046
+ ],
17047
+ "stateReads": [
17048
+ "appointment-timeline.items",
17049
+ "date-picker.value"
17050
+ ],
17051
+ "apiActions": [
17052
+ "appointment.list"
17053
+ ]
17054
+ },
17055
+ {
17056
+ "name": "create_appointment",
17057
+ "safety": "phi",
17058
+ "description": "Book a new appointment in the editor panel, docked from the New appointment button, from a click on an empty slot (prefilled with the slot, the clicked column and the cog's default duration) or from an online booking being processed. Set the patient, the linked care or care-plan lines, the date, start time and duration, the operator, chair, branch and colour, the description (255 characters at most — a longer one blocks the save), and, once a patient is chosen, the SMS and e-mail reminders, the first-visit question and — where the patient has unsigned required documents — how they are asked to sign. Busy chair, busy operator and operator-away warnings are advisory and do not hold the save; only a practice closure does. Enter submits from any text field. Writes patient-identifiable data.",
17059
+ "descriptionKey": "ui.agent.calendar.workflows.createAppointment",
17060
+ "uiActions": [
17061
+ "combobox.set_value",
17062
+ "combobox.apply_filter",
17063
+ "select.set_value",
17064
+ "date-picker.set_date",
17065
+ "time-picker.set_time",
17066
+ "color-picker.set_value",
17067
+ "text-input.set_value",
17068
+ "text-area.set_value",
17069
+ "number-input.set_value",
17070
+ "checkbox.set_checked",
17071
+ "radio-group.set_value",
17072
+ "control-room-rail.open"
17073
+ ],
17074
+ "stateReads": [
17075
+ "combobox.value",
17076
+ "select.value",
17077
+ "date-picker.value",
17078
+ "time-picker.value",
17079
+ "checkbox.checked",
17080
+ "radio-group.value",
17081
+ "control-room-rail.activeToolId"
17082
+ ],
17083
+ "apiActions": [
17084
+ "appointment.create"
17085
+ ]
17086
+ },
17087
+ {
17088
+ "name": "edit_appointment",
17089
+ "safety": "phi",
17090
+ "description": "Amend an existing appointment. Clicking its card docks the SAME panel in details mode — the identity strip, the prefilled form, the read-only extras and the History sub-view — so there is one editing paradigm and no separate Edit jump. Change any field and save; for a member of a repeating series the save asks how far it reaches. On save the rail returns to the Appointments panel and a toast names the day, carrying a \"Go to\" action when that day is off screen, on a hidden weekend or filtered out. Writes patient-identifiable data.",
17091
+ "descriptionKey": "ui.agent.calendar.workflows.editAppointment",
17092
+ "uiActions": [
17093
+ "calendar.focus_event",
17094
+ "combobox.set_value",
17095
+ "select.set_value",
17096
+ "date-picker.set_date",
17097
+ "time-picker.set_time",
17098
+ "color-picker.set_value",
17099
+ "text-input.set_value",
17100
+ "text-area.set_value",
17101
+ "radio-group.set_value"
17102
+ ],
17103
+ "stateReads": [
17104
+ "combobox.value",
17105
+ "select.value",
17106
+ "date-picker.value",
17107
+ "time-picker.value",
17108
+ "radio-group.value",
17109
+ "calendar.currentDate"
17110
+ ],
17111
+ "apiActions": [
17112
+ "appointment.update",
17113
+ "appointmentSeries.applyScope"
17114
+ ]
17115
+ },
17116
+ {
17117
+ "name": "change_appointment_status",
17118
+ "safety": "phi",
17119
+ "description": "Set an appointment's attendance status from the Status select in the details panel. The status is patient-identifiable attendance data.",
17120
+ "descriptionKey": "ui.agent.calendar.workflows.changeAppointmentStatus",
17121
+ "uiActions": [
17122
+ "calendar.focus_event",
17123
+ "select.set_value"
17124
+ ],
17125
+ "stateReads": [
17126
+ "select.value"
17127
+ ],
17128
+ "apiActions": [
17129
+ "appointment.setStatus"
17130
+ ]
17131
+ },
17132
+ {
17133
+ "name": "move_appointment",
17134
+ "safety": "phi",
17135
+ "description": "Reschedule an appointment either by dragging its card to a new slot or by arming \"Move…\" in the details panel and then clicking the target slot — the panel stays docked and a banner tinted with the appointment's own colour names what is being placed. Either route ends in the confirmation dialog, which offers the SMS and e-mail notify channels (kept even when the appointment recurs, where the platform drops them) and, for a series member, the recurring scope. Cancelling reverts the card and commits nothing. Writes patient-identifiable data.",
17136
+ "descriptionKey": "ui.agent.calendar.workflows.moveAppointment",
17137
+ "uiActions": [
17138
+ "calendar.focus_event",
17139
+ "calendar.goto_date",
17140
+ "dialog.open",
17141
+ "dialog.close",
17142
+ "dialog.dismiss",
17143
+ "checkbox.set_checked",
17144
+ "radio-group.set_value"
17145
+ ],
17146
+ "stateReads": [
17147
+ "dialog.isOpen",
17148
+ "checkbox.checked",
17149
+ "radio-group.value",
17150
+ "calendar.currentDate"
17151
+ ],
17152
+ "apiActions": [
17153
+ "appointment.reschedule",
17154
+ "patient.notifyAppointmentChange"
17155
+ ]
17156
+ },
17157
+ {
17158
+ "name": "resize_appointment",
17159
+ "safety": "phi",
17160
+ "description": "Change an appointment's duration by dragging its card edge. Unlike a move this SAVES AT ONCE with no confirmation, exactly as the platform does; the toast that follows carries an Undo that restores the previous duration and logs both changes on the appointment's history. Writes patient-identifiable data.",
17161
+ "descriptionKey": "ui.agent.calendar.workflows.resizeAppointment",
17162
+ "uiActions": [
17163
+ "calendar.focus_event",
17164
+ "toast.dismiss"
17165
+ ],
17166
+ "stateReads": [
17167
+ "toast.visibleToasts"
17168
+ ],
17169
+ "apiActions": [
17170
+ "appointment.update"
17171
+ ]
17172
+ },
17173
+ {
17174
+ "name": "copy_appointment",
17175
+ "safety": "phi",
17176
+ "description": "Duplicate an appointment onto another slot: arm \"Copy…\" in the details panel, then click the target. The copy lands immediately with no confirmation, and its toast carries an Undo. A plan-linked appointment first asks whether to copy the appointment only or the appointment and its treatments. Writes patient-identifiable data.",
17177
+ "descriptionKey": "ui.agent.calendar.workflows.copyAppointment",
17178
+ "uiActions": [
17179
+ "calendar.focus_event",
17180
+ "calendar.goto_date",
17181
+ "toast.dismiss",
17182
+ "radio-group.set_value"
17183
+ ],
17184
+ "stateReads": [
17185
+ "calendar.currentDate",
17186
+ "toast.visibleToasts",
17187
+ "radio-group.value"
17188
+ ],
17189
+ "apiActions": [
17190
+ "appointment.duplicate"
17191
+ ]
17192
+ },
17193
+ {
17194
+ "name": "delete_appointment",
17195
+ "safety": "destructive",
17196
+ "description": "Remove an appointment from the details panel behind an alert dialog. The dialog asks for the recurring scope when the appointment belongs to a series, and for the care-plan cleanup when it is the parent of a price-list recurrence — so confirming can drop far more than the one card. Irreversible from this surface.",
17197
+ "descriptionKey": "ui.agent.calendar.workflows.deleteAppointment",
17198
+ "uiActions": [
17199
+ "calendar.focus_event",
17200
+ "dialog.open",
17201
+ "dialog.close",
17202
+ "dialog.dismiss",
17203
+ "radio-group.set_value"
17204
+ ],
17205
+ "stateReads": [
17206
+ "dialog.isOpen",
17207
+ "radio-group.value"
17208
+ ],
17209
+ "apiActions": [
17210
+ "appointment.delete",
17211
+ "appointmentSeries.applyScope"
17212
+ ]
17213
+ },
17214
+ {
17215
+ "name": "manage_patient_notes",
17216
+ "safety": "phi",
17217
+ "description": "Read and write the patient's notes from the Notes sub-view beside History: add a note through the composer, pin one, edit one in a dialog or delete one behind an alert dialog. Every write goes to the host, which stamps the note's id, time and author — the kit attributes nothing to a clinical note. With no host seam, or without the edit permission, the sub-view is a read-only timeline. The rows carry ids and pin / flag / clinical markers only; the body and the author are never exposed as state. Writes patient-identifiable clinical data.",
17218
+ "descriptionKey": "ui.agent.calendar.workflows.managePatientNotes",
17219
+ "uiActions": [
17220
+ "notes-panel.add_note",
17221
+ "notes-panel.toggle_pin",
17222
+ "dialog.open",
17223
+ "dialog.close",
17224
+ "dialog.dismiss",
17225
+ "text-area.set_value"
17226
+ ],
17227
+ "stateReads": [
17228
+ "notes-panel.notes",
17229
+ "notes-panel.canAddClinical",
17230
+ "notes-panel.currentNoteId",
17231
+ "dialog.isOpen"
17232
+ ],
17233
+ "apiActions": [
17234
+ "patientNote.create",
17235
+ "patientNote.update",
17236
+ "patientNote.delete",
17237
+ "patientNote.pin"
17238
+ ]
17239
+ },
17240
+ {
17241
+ "name": "read_modification_history",
17242
+ "safety": "read",
17243
+ "description": "Open the History sub-view of the details panel and read the appointment's modification ledger, newest first — what changed, from what to what, and when. No mutation.",
17244
+ "descriptionKey": "ui.agent.calendar.workflows.readModificationHistory",
17245
+ "uiActions": [
17246
+ "timeline.select_event"
17247
+ ],
17248
+ "stateReads": [
17249
+ "timeline.selectedEvent"
17250
+ ],
17251
+ "apiActions": [
17252
+ "appointment.listHistory"
17253
+ ]
17254
+ },
17255
+ {
17256
+ "name": "request_signature",
17257
+ "safety": "phi",
17258
+ "description": "Ask the patient to sign the appointment's documents from the details panel: by SMS or e-mail through the kit menu, or \"On this device…\", which hands off to the host's own e-signature surface. The chip beside it reports the channel a request has already gone out on. Sends a patient-identifiable request.",
17259
+ "descriptionKey": "ui.agent.calendar.workflows.requestSignature",
17260
+ "uiActions": [
17261
+ "dropdown-menu.open",
17262
+ "dropdown-menu.close"
17263
+ ],
17264
+ "stateReads": [
17265
+ "dropdown-menu.isOpen"
17266
+ ],
17267
+ "apiActions": [
17268
+ "signature.request"
17269
+ ]
17270
+ },
17271
+ {
17272
+ "name": "create_bill",
17273
+ "safety": "phi",
17274
+ "description": "Raise a bill for the appointment from the details panel's Documents menu, behind a confirmation dialog. Refused while the appointment has no operator. Creates a patient-identifiable financial document.",
17275
+ "descriptionKey": "ui.agent.calendar.workflows.createBill",
17276
+ "uiActions": [
17277
+ "dropdown-menu.open",
17278
+ "dropdown-menu.close",
17279
+ "dialog.open",
17280
+ "dialog.close",
17281
+ "dialog.dismiss"
17282
+ ],
17283
+ "stateReads": [
17284
+ "dropdown-menu.isOpen",
17285
+ "dialog.isOpen"
17286
+ ],
17287
+ "apiActions": [
17288
+ "bill.create"
17289
+ ]
17290
+ },
17291
+ {
17292
+ "name": "open_patient_folder",
17293
+ "safety": "read",
17294
+ "description": "Hand off from an appointment or a waiting-list row to its patient: the name in the details panel's identity strip and in the waiting queue is a link the host resolves to the patient folder. Navigation only.",
17295
+ "descriptionKey": "ui.agent.calendar.workflows.openPatientFolder",
17296
+ "uiActions": [
17297
+ "calendar.focus_event"
17298
+ ],
17299
+ "apiActions": [
17300
+ "patient.get"
17301
+ ]
17302
+ },
17303
+ {
17304
+ "name": "message_patient_whatsapp",
17305
+ "safety": "phi",
17306
+ "description": "Reach the patient over WhatsApp from the details panel or a waiting-list row. The kit only raises the bridge — the host mounts the legacy Snippets surface that composes and sends. The affordance is disabled, and names its reason in its accessible name, when the entry carries no SMS-capable number. Hands a patient's contact detail to an outbound channel.",
17307
+ "descriptionKey": "ui.agent.calendar.workflows.messagePatientWhatsapp",
17308
+ "uiActions": [],
17309
+ "apiActions": [
17310
+ "patient.openWhatsAppSnippets"
17311
+ ]
17312
+ },
17313
+ {
17314
+ "name": "filter_waiting_list",
17315
+ "safety": "read",
17316
+ "description": "Narrow the waiting queue: the four quick views (all, patients without an appointment, appointment scheduled over 30 days ago, on the list over 30 days) and, behind \"Show advanced filters\", the platform's nine optional client-side inputs — patient, patient assigned, operator, appointment scheduled, appointment scheduled from / to, on the waiting list from / to and description — applied only when \"Filter list\" is pressed. The toggle carries a count badge while any input is set, and changing the quick view drops the form. Selection only.",
17317
+ "descriptionKey": "ui.agent.calendar.workflows.filterWaitingList",
17318
+ "uiActions": [
17319
+ "select.set_value",
17320
+ "combobox.set_value",
17321
+ "date-picker.set_date",
17322
+ "text-area.set_value"
17323
+ ],
17324
+ "stateReads": [
17325
+ "select.value",
17326
+ "combobox.value",
17327
+ "date-picker.value",
17328
+ "text-area.value"
17329
+ ],
17330
+ "apiActions": []
17331
+ },
17332
+ {
17333
+ "name": "manage_waiting_list_entry",
17334
+ "safety": "phi",
17335
+ "description": "Add, amend or remove a waiting-list entry. The four-field form opens as a rail SUB-VIEW — from the toolbar split button's plus segment, from Add entry, or from a row's pencil — with a back arrow to the queue. Editing is refused on a row already linked to an appointment, because those fields belong to the appointment; the pencil stays focusable and names that reason. Remove deletes at once with no confirmation, platform parity, and its toast carries an Undo that puts the entry back. Writes patient-identifiable data.",
17336
+ "descriptionKey": "ui.agent.calendar.workflows.manageWaitingListEntry",
17337
+ "uiActions": [
17338
+ "combobox.set_value",
17339
+ "select.set_value",
17340
+ "color-picker.set_value",
17341
+ "text-area.set_value",
17342
+ "toast.dismiss"
17343
+ ],
17344
+ "stateReads": [
17345
+ "combobox.value",
17346
+ "select.value",
17347
+ "text-area.value",
17348
+ "toast.visibleToasts"
17349
+ ],
17350
+ "apiActions": [
17351
+ "waitingListEntry.create",
17352
+ "waitingListEntry.update",
17353
+ "waitingListEntry.delete"
17354
+ ]
17355
+ },
17356
+ {
17357
+ "name": "schedule_waiting_patient",
17358
+ "safety": "phi",
17359
+ "description": "Give a waiting patient a slot. \"Schedule\" on an unlinked row hands off to the free-slot finder seeded from the entry — operator, chair, duration, patient, care and colour already filled in — and booking a slot opens the editor carrying the entry, so saving books the appointment and takes the entry off the list. A row already linked to an appointment reads \"Reschedule\" and seeds the same finder, but booking there MOVES the existing appointment rather than creating a second one. Writes patient-identifiable data.",
17360
+ "descriptionKey": "ui.agent.calendar.workflows.scheduleWaitingPatient",
17361
+ "uiActions": [
17362
+ "control-room-rail.open",
17363
+ "calendar.goto_date",
17364
+ "date-picker.set_date",
17365
+ "time-picker.set_time"
17366
+ ],
17367
+ "stateReads": [
17368
+ "control-room-rail.activeToolId",
17369
+ "calendar.currentDate"
17370
+ ],
17371
+ "apiActions": [
17372
+ "waitingListEntry.schedule",
17373
+ "appointment.create",
17374
+ "appointment.reschedule"
17375
+ ]
17376
+ },
17377
+ {
17378
+ "name": "find_free_slot",
17379
+ "safety": "read",
17380
+ "description": "Search the practice for bookable time in the finder panel. Operator and chair scope are grouped checklists behind a popover per axis — a select-all row first, operators sectioned under their groups, nothing ticked searching every eligible resource — beside the care, the duration, the date range and, for a care that needs one, a medical-device select. The results list groups the slots under a day heading; a click steers the grid to that day and docks the editor prefilled with the date, time, duration, chair, operator and any seeded patient or care. The 185-day range warning is advisory (the search still runs), \"Show more slots\" pushes the To date out by 30 days and re-searches, and an alert links to the scheduler when the practice or its operators hold no business hours. Read-only until a slot is booked.",
17381
+ "descriptionKey": "ui.agent.calendar.workflows.findFreeSlot",
17382
+ "uiActions": [
17383
+ "collapsible.toggle",
17384
+ "popover.open",
17385
+ "popover.close",
17386
+ "checkbox.set_checked",
17387
+ "combobox.set_value",
17388
+ "select.set_value",
17389
+ "date-picker.set_date",
17390
+ "switch.set_checked"
17391
+ ],
17392
+ "stateReads": [
17393
+ "collapsible.isOpen",
17394
+ "popover.isOpen",
17395
+ "checkbox.checked",
17396
+ "combobox.value",
17397
+ "select.value",
17398
+ "date-picker.value",
17399
+ "switch.checked"
17400
+ ],
17401
+ "apiActions": [
17402
+ "availability.search"
17403
+ ]
17404
+ },
17405
+ {
17406
+ "name": "triage_online_booking",
17407
+ "safety": "phi",
17408
+ "description": "Work the online-bookings panel — the platform's bookings page hosted in the rail, badged with the bookings of the last thirty days still missing a patient or an operator. A row can be shown on the grid, which selects it and docks its details, or completed, which docks the editor prefilled with what the person typed on the booking site so the missing patient or operator can be filled in and saved. Completing writes patient-identifiable data.",
17409
+ "descriptionKey": "ui.agent.calendar.workflows.triageOnlineBooking",
17410
+ "uiActions": [
17411
+ "calendar.focus_event",
17412
+ "control-room-rail.open"
17413
+ ],
17414
+ "stateReads": [
17415
+ "control-room-rail.activeToolId"
17416
+ ],
17417
+ "apiActions": [
17418
+ "onlineBooking.list",
17419
+ "onlineBooking.process"
17420
+ ]
17421
+ },
17422
+ {
17423
+ "name": "print_day_sheet",
17424
+ "safety": "phi",
17425
+ "description": "Print the front-desk call sheet. The toolbar's printer icon opens a dialog asking which day — one day, never the visible range — and Print renders that day's appointments through the browser, scoped by the filters in force and masked when privacy mode is on. Nothing is sent to a server, but the sheet itself is a patient-identifiable document.",
17426
+ "descriptionKey": "ui.agent.calendar.workflows.printDaySheet",
17427
+ "uiActions": [
17428
+ "dialog.open",
17429
+ "dialog.close",
17430
+ "dialog.dismiss",
17431
+ "date-picker.set_date"
17432
+ ],
17433
+ "stateReads": [
17434
+ "dialog.isOpen",
17435
+ "date-picker.value"
17436
+ ],
17437
+ "apiActions": []
17438
+ }
17439
+ ]
17440
+ },
16575
17441
  {
16576
17442
  "kind": "pattern",
16577
17443
  "id": "care-plan-editor",