@alfadocs/ui-kit-debug 1.127.2 → 1.129.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 (289) hide show
  1. package/dist/_chunks/{appointment-card-0PebvrOS.js → appointment-card-vbUsDh70.js} +49 -72
  2. package/dist/_chunks/appointment-card-vbUsDh70.js.map +1 -0
  3. package/dist/_chunks/{appointment-timeline-Czd4PBkF.js → appointment-timeline-B5pfBl-b.js} +2 -2
  4. package/dist/_chunks/{appointment-timeline-Czd4PBkF.js.map → appointment-timeline-B5pfBl-b.js.map} +1 -1
  5. package/dist/_chunks/{appointment-tray-B04zKY7g.js → appointment-tray-BhiXetjs.js} +2 -2
  6. package/dist/_chunks/{appointment-tray-B04zKY7g.js.map → appointment-tray-BhiXetjs.js.map} +1 -1
  7. package/dist/_chunks/{calendar-_sgjuH3L.js → calendar-DzR-vdJ5.js} +614 -563
  8. package/dist/_chunks/calendar-DzR-vdJ5.js.map +1 -0
  9. package/dist/_chunks/calendar-appointment-editor-dialog-DnPADcj9.js +13438 -0
  10. package/dist/_chunks/calendar-appointment-editor-dialog-DnPADcj9.js.map +1 -0
  11. package/dist/_chunks/{calendar-event-card-DXAYWH6k.js → calendar-event-card-BNEzkjm-.js} +142 -132
  12. package/dist/_chunks/calendar-event-card-BNEzkjm-.js.map +1 -0
  13. package/dist/_chunks/{care-plan-card-bGTIliXc.js → care-plan-card-CwgkImOD.js} +2 -2
  14. package/dist/_chunks/{care-plan-card-bGTIliXc.js.map → care-plan-card-CwgkImOD.js.map} +1 -1
  15. package/dist/_chunks/{care-plan-header-k8FslxsU.js → care-plan-header-Dx5OMkc9.js} +2 -2
  16. package/dist/_chunks/{care-plan-header-k8FslxsU.js.map → care-plan-header-Dx5OMkc9.js.map} +1 -1
  17. package/dist/_chunks/{clinical-note-card-DHn5W_bv.js → clinical-note-card-pPaeWWnu.js} +2 -2
  18. package/dist/_chunks/{clinical-note-card-DHn5W_bv.js.map → clinical-note-card-pPaeWWnu.js.map} +1 -1
  19. package/dist/_chunks/{contact-card-CGpbYuxl.js → contact-card-BSY2YpLZ.js} +2 -2
  20. package/dist/_chunks/{contact-card-CGpbYuxl.js.map → contact-card-BSY2YpLZ.js.map} +1 -1
  21. package/dist/_chunks/{contact-profile-card-CCgf0Ntt.js → contact-profile-card-CsZNMlws.js} +2 -2
  22. package/dist/_chunks/{contact-profile-card-CCgf0Ntt.js.map → contact-profile-card-CsZNMlws.js.map} +1 -1
  23. package/dist/_chunks/{default-tabs-DOuHEKI5.js → default-tabs-BnB6FUEW.js} +2 -2
  24. package/dist/_chunks/{default-tabs-DOuHEKI5.js.map → default-tabs-BnB6FUEW.js.map} +1 -1
  25. package/dist/_chunks/{entity-summary-BanguTa6.js → entity-summary-Dzk54yom.js} +2 -2
  26. package/dist/_chunks/{entity-summary-BanguTa6.js.map → entity-summary-Dzk54yom.js.map} +1 -1
  27. package/dist/_chunks/file-pen-line-k4uMBM3h.js +29 -0
  28. package/dist/_chunks/file-pen-line-k4uMBM3h.js.map +1 -0
  29. package/dist/_chunks/{info-tip-C-MPkShR.js → info-tip-B3cn3fY2.js} +2 -2
  30. package/dist/_chunks/{info-tip-C-MPkShR.js.map → info-tip-B3cn3fY2.js.map} +1 -1
  31. package/dist/_chunks/{link-DtCfnLnF.js → link-CeV7FoI6.js} +2 -2
  32. package/dist/_chunks/{link-DtCfnLnF.js.map → link-CeV7FoI6.js.map} +1 -1
  33. package/dist/_chunks/{nav-grid-D2xVcHTO.js → nav-grid-dEgDAri3.js} +2 -2
  34. package/dist/_chunks/{nav-grid-D2xVcHTO.js.map → nav-grid-dEgDAri3.js.map} +1 -1
  35. package/dist/_chunks/{note-attachment-cnj2JRrg.js → note-attachment-MNTIqdSz.js} +2 -2
  36. package/dist/_chunks/{note-attachment-cnj2JRrg.js.map → note-attachment-MNTIqdSz.js.map} +1 -1
  37. package/dist/_chunks/{note-timeline-BrjHBQfx.js → note-timeline-BQeW0VZY.js} +2 -2
  38. package/dist/_chunks/{note-timeline-BrjHBQfx.js.map → note-timeline-BQeW0VZY.js.map} +1 -1
  39. package/dist/_chunks/{notes-panel-BOwlTz2-.js → notes-panel-DIY7eNsq.js} +3 -3
  40. package/dist/_chunks/{notes-panel-BOwlTz2-.js.map → notes-panel-DIY7eNsq.js.map} +1 -1
  41. package/dist/_chunks/{patient-details-Cba9HQj_.js → patient-details-DBtEITfE.js} +2 -2
  42. package/dist/_chunks/{patient-details-Cba9HQj_.js.map → patient-details-DBtEITfE.js.map} +1 -1
  43. package/dist/_chunks/{patient-field-row-CtDihADs.js → patient-field-row-a5d4QijH.js} +2 -2
  44. package/dist/_chunks/{patient-field-row-CtDihADs.js.map → patient-field-row-a5d4QijH.js.map} +1 -1
  45. package/dist/_chunks/{patient-summary-card-DnLdbtsw.js → patient-summary-card-BUcZ-gaL.js} +3 -3
  46. package/dist/_chunks/{patient-summary-card-DnLdbtsw.js.map → patient-summary-card-BUcZ-gaL.js.map} +1 -1
  47. package/dist/_chunks/{payment-request-card-CEIalOtr.js → payment-request-card-Dv4WbRBe.js} +2 -2
  48. package/dist/_chunks/{payment-request-card-CEIalOtr.js.map → payment-request-card-Dv4WbRBe.js.map} +1 -1
  49. package/dist/_chunks/{product-hub-panel-CqRJlmb7.js → product-hub-panel-a8wdVOUt.js} +2 -2
  50. package/dist/_chunks/{product-hub-panel-CqRJlmb7.js.map → product-hub-panel-a8wdVOUt.js.map} +1 -1
  51. package/dist/_chunks/{public-footer-C8UIzqLJ.js → public-footer-D0cqScpz.js} +2 -2
  52. package/dist/_chunks/{public-footer-C8UIzqLJ.js.map → public-footer-D0cqScpz.js.map} +1 -1
  53. package/dist/_chunks/{rich-text-editor-BLEdXJ0l.js → rich-text-editor-TnX0SYdq.js} +1866 -1766
  54. package/dist/_chunks/rich-text-editor-TnX0SYdq.js.map +1 -0
  55. package/dist/_chunks/{signature-request-Dzs0jZsd.js → signature-request-DW2PSp66.js} +3 -3
  56. package/dist/_chunks/{signature-request-Dzs0jZsd.js.map → signature-request-DW2PSp66.js.map} +1 -1
  57. package/dist/_chunks/{signed-out-frame-fUf7tqs3.js → signed-out-frame-Oa2e1yps.js} +2 -2
  58. package/dist/_chunks/{signed-out-frame-fUf7tqs3.js.map → signed-out-frame-Oa2e1yps.js.map} +1 -1
  59. package/dist/_chunks/task-editor-CVRrDqpe.js +1256 -0
  60. package/dist/_chunks/task-editor-CVRrDqpe.js.map +1 -0
  61. package/dist/_chunks/{treatment-receipt-1VnuinhY.js → treatment-receipt-BZzwvsnY.js} +73 -56
  62. package/dist/_chunks/treatment-receipt-BZzwvsnY.js.map +1 -0
  63. package/dist/_chunks/use-appointment-details-read-n7kycxrm.js +2439 -0
  64. package/dist/_chunks/use-appointment-details-read-n7kycxrm.js.map +1 -0
  65. package/dist/_chunks/{whatsapp-button-DV9JFmtq.js → whatsapp-button-XbozeDl_.js} +32 -25
  66. package/dist/_chunks/whatsapp-button-XbozeDl_.js.map +1 -0
  67. package/dist/agent-catalog.json +49 -16
  68. package/dist/agent-i18n/en.json +5 -5
  69. package/dist/browser-support.js +1 -1
  70. package/dist/components/_shared/patient-picker.d.ts +10 -0
  71. package/dist/components/_shared/patient-picker.d.ts.map +1 -1
  72. package/dist/components/appointment-card/index.js +2 -2
  73. package/dist/components/appointment-details-panel/appointment-details-panel.d.ts +23 -1
  74. package/dist/components/appointment-details-panel/appointment-details-panel.d.ts.map +1 -1
  75. package/dist/components/appointment-details-panel/appointment-details-panel.links.d.ts +13 -0
  76. package/dist/components/appointment-details-panel/appointment-details-panel.links.d.ts.map +1 -0
  77. package/dist/components/appointment-details-panel/appointment-details-panel.recurrence.d.ts +9 -0
  78. package/dist/components/appointment-details-panel/appointment-details-panel.recurrence.d.ts.map +1 -0
  79. package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts +8 -3
  80. package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts.map +1 -1
  81. package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts +63 -1
  82. package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts.map +1 -1
  83. package/dist/components/appointment-details-panel/index.d.ts +2 -1
  84. package/dist/components/appointment-details-panel/index.d.ts.map +1 -1
  85. package/dist/components/appointment-details-panel/index.js +5 -4
  86. package/dist/components/appointment-timeline/index.js +1 -1
  87. package/dist/components/bill-table/index.js +1 -1
  88. package/dist/components/calendar/calendar.d.ts +22 -0
  89. package/dist/components/calendar/calendar.d.ts.map +1 -1
  90. package/dist/components/calendar/index.js +1 -1
  91. package/dist/components/calendar-event-card/calendar-event-card.d.ts +8 -0
  92. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
  93. package/dist/components/calendar-event-card/index.js +1 -1
  94. package/dist/components/care-plan-card/index.js +1 -1
  95. package/dist/components/care-plan-header/index.js +1 -1
  96. package/dist/components/clinical-note-card/index.js +1 -1
  97. package/dist/components/contact-card/index.js +1 -1
  98. package/dist/components/contact-profile-card/index.js +1 -1
  99. package/dist/components/entity-summary/index.js +1 -1
  100. package/dist/components/info-tip/index.js +1 -1
  101. package/dist/components/link/index.js +1 -1
  102. package/dist/components/nav-grid/index.js +1 -1
  103. package/dist/components/note-timeline/index.js +1 -1
  104. package/dist/components/notes-panel/index.js +1 -1
  105. package/dist/components/patient-details/index.js +1 -1
  106. package/dist/components/patient-summary-card/index.js +1 -1
  107. package/dist/components/payment-card/index.js +1 -1
  108. package/dist/components/product-hub-tray/index.js +1 -1
  109. package/dist/components/public-footer/index.js +1 -1
  110. package/dist/components/rich-text-editor/editor-toolbar.d.ts +1 -0
  111. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  112. package/dist/components/rich-text-editor/index.js +1 -1
  113. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  114. package/dist/components/task-editor/index.js +1 -1
  115. package/dist/components/treatment-receipt/index.d.ts +2 -2
  116. package/dist/components/treatment-receipt/index.d.ts.map +1 -1
  117. package/dist/components/treatment-receipt/index.js +2 -1
  118. package/dist/components/treatment-receipt/treatment-receipt.d.ts +11 -1
  119. package/dist/components/treatment-receipt/treatment-receipt.d.ts.map +1 -1
  120. package/dist/components/whatsapp-button/index.js +1 -1
  121. package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
  122. package/dist/core.css +1 -1
  123. package/dist/fullcalendar.css +5 -1
  124. package/dist/host-compat.css +4 -1
  125. package/dist/host-legacy.css +22 -0
  126. package/dist/i18n/locales/ar.d.ts +118 -4
  127. package/dist/i18n/locales/ar.d.ts.map +1 -1
  128. package/dist/i18n/locales/ar.js +129 -15
  129. package/dist/i18n/locales/ar.js.map +1 -1
  130. package/dist/i18n/locales/de.d.ts +118 -4
  131. package/dist/i18n/locales/de.d.ts.map +1 -1
  132. package/dist/i18n/locales/de.js +129 -15
  133. package/dist/i18n/locales/de.js.map +1 -1
  134. package/dist/i18n/locales/el.d.ts +118 -4
  135. package/dist/i18n/locales/el.d.ts.map +1 -1
  136. package/dist/i18n/locales/el.js +129 -15
  137. package/dist/i18n/locales/el.js.map +1 -1
  138. package/dist/i18n/locales/en.d.ts +118 -4
  139. package/dist/i18n/locales/en.d.ts.map +1 -1
  140. package/dist/i18n/locales/en.js +121 -10
  141. package/dist/i18n/locales/en.js.map +1 -1
  142. package/dist/i18n/locales/es.d.ts +118 -4
  143. package/dist/i18n/locales/es.d.ts.map +1 -1
  144. package/dist/i18n/locales/es.js +129 -15
  145. package/dist/i18n/locales/es.js.map +1 -1
  146. package/dist/i18n/locales/fr.d.ts +118 -4
  147. package/dist/i18n/locales/fr.d.ts.map +1 -1
  148. package/dist/i18n/locales/fr.js +129 -15
  149. package/dist/i18n/locales/fr.js.map +1 -1
  150. package/dist/i18n/locales/hi.d.ts +118 -4
  151. package/dist/i18n/locales/hi.d.ts.map +1 -1
  152. package/dist/i18n/locales/hi.js +129 -15
  153. package/dist/i18n/locales/hi.js.map +1 -1
  154. package/dist/i18n/locales/it.d.ts +118 -4
  155. package/dist/i18n/locales/it.d.ts.map +1 -1
  156. package/dist/i18n/locales/it.js +129 -15
  157. package/dist/i18n/locales/it.js.map +1 -1
  158. package/dist/i18n/locales/ja.d.ts +118 -4
  159. package/dist/i18n/locales/ja.d.ts.map +1 -1
  160. package/dist/i18n/locales/ja.js +129 -15
  161. package/dist/i18n/locales/ja.js.map +1 -1
  162. package/dist/i18n/locales/nl.d.ts +118 -4
  163. package/dist/i18n/locales/nl.d.ts.map +1 -1
  164. package/dist/i18n/locales/nl.js +129 -15
  165. package/dist/i18n/locales/nl.js.map +1 -1
  166. package/dist/i18n/locales/pl.d.ts +118 -4
  167. package/dist/i18n/locales/pl.d.ts.map +1 -1
  168. package/dist/i18n/locales/pl.js +129 -15
  169. package/dist/i18n/locales/pl.js.map +1 -1
  170. package/dist/i18n/locales/pt.d.ts +118 -4
  171. package/dist/i18n/locales/pt.d.ts.map +1 -1
  172. package/dist/i18n/locales/pt.js +129 -15
  173. package/dist/i18n/locales/pt.js.map +1 -1
  174. package/dist/i18n/locales/ro.d.ts +118 -4
  175. package/dist/i18n/locales/ro.d.ts.map +1 -1
  176. package/dist/i18n/locales/ro.js +129 -15
  177. package/dist/i18n/locales/ro.js.map +1 -1
  178. package/dist/i18n/locales/ru.d.ts +118 -4
  179. package/dist/i18n/locales/ru.d.ts.map +1 -1
  180. package/dist/i18n/locales/ru.js +129 -15
  181. package/dist/i18n/locales/ru.js.map +1 -1
  182. package/dist/i18n/locales/sq.d.ts +118 -4
  183. package/dist/i18n/locales/sq.d.ts.map +1 -1
  184. package/dist/i18n/locales/sq.js +129 -15
  185. package/dist/i18n/locales/sq.js.map +1 -1
  186. package/dist/i18n/locales/sv.d.ts +118 -4
  187. package/dist/i18n/locales/sv.d.ts.map +1 -1
  188. package/dist/i18n/locales/sv.js +129 -15
  189. package/dist/i18n/locales/sv.js.map +1 -1
  190. package/dist/i18n/locales/tr.d.ts +118 -4
  191. package/dist/i18n/locales/tr.d.ts.map +1 -1
  192. package/dist/i18n/locales/tr.js +129 -15
  193. package/dist/i18n/locales/tr.js.map +1 -1
  194. package/dist/i18n/locales/zh.d.ts +118 -4
  195. package/dist/i18n/locales/zh.d.ts.map +1 -1
  196. package/dist/i18n/locales/zh.js +129 -15
  197. package/dist/i18n/locales/zh.js.map +1 -1
  198. package/dist/index.js +1112 -1107
  199. package/dist/locales/ar.json +129 -15
  200. package/dist/locales/de.json +129 -15
  201. package/dist/locales/el.json +129 -15
  202. package/dist/locales/en.json +121 -7
  203. package/dist/locales/es.json +129 -15
  204. package/dist/locales/fr.json +129 -15
  205. package/dist/locales/hi.json +129 -15
  206. package/dist/locales/it.json +129 -15
  207. package/dist/locales/ja.json +129 -15
  208. package/dist/locales/nl.json +129 -15
  209. package/dist/locales/pl.json +129 -15
  210. package/dist/locales/pt.json +129 -15
  211. package/dist/locales/ro.json +129 -15
  212. package/dist/locales/ru.json +129 -15
  213. package/dist/locales/sq.json +129 -15
  214. package/dist/locales/sv.json +129 -15
  215. package/dist/locales/tr.json +129 -15
  216. package/dist/locales/zh.json +129 -15
  217. package/dist/patterns/calendar/calendar-appointment-details.d.ts +74 -2
  218. package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -1
  219. package/dist/patterns/calendar/calendar-archive.d.ts +12 -0
  220. package/dist/patterns/calendar/calendar-archive.d.ts.map +1 -0
  221. package/dist/patterns/calendar/calendar-bookings-panel.d.ts.map +1 -1
  222. package/dist/patterns/calendar/calendar-care-rules.d.ts +19 -23
  223. package/dist/patterns/calendar/calendar-care-rules.d.ts.map +1 -1
  224. package/dist/patterns/calendar/calendar-delete-confirm.d.ts +18 -0
  225. package/dist/patterns/calendar/calendar-delete-confirm.d.ts.map +1 -0
  226. package/dist/patterns/calendar/calendar-document-scope-confirm.d.ts +12 -0
  227. package/dist/patterns/calendar/calendar-document-scope-confirm.d.ts.map +1 -0
  228. package/dist/patterns/calendar/calendar-editor-guard.d.ts +12 -0
  229. package/dist/patterns/calendar/calendar-editor-guard.d.ts.map +1 -0
  230. package/dist/patterns/calendar/calendar-editor-hydration.d.ts +13 -2
  231. package/dist/patterns/calendar/calendar-editor-hydration.d.ts.map +1 -1
  232. package/dist/patterns/calendar/calendar-load-error.d.ts +11 -0
  233. package/dist/patterns/calendar/calendar-load-error.d.ts.map +1 -0
  234. package/dist/patterns/calendar/calendar-patient-locked.d.ts +13 -0
  235. package/dist/patterns/calendar/calendar-patient-locked.d.ts.map +1 -0
  236. package/dist/patterns/calendar/calendar-patient-picker.d.ts +6 -1
  237. package/dist/patterns/calendar/calendar-patient-picker.d.ts.map +1 -1
  238. package/dist/patterns/calendar/calendar-prompts.d.ts +11 -0
  239. package/dist/patterns/calendar/calendar-prompts.d.ts.map +1 -0
  240. package/dist/patterns/calendar/calendar-settings-ical.d.ts +11 -0
  241. package/dist/patterns/calendar/calendar-settings-ical.d.ts.map +1 -0
  242. package/dist/patterns/calendar/calendar-settings-overlay.d.ts +73 -0
  243. package/dist/patterns/calendar/calendar-settings-overlay.d.ts.map +1 -0
  244. package/dist/patterns/calendar/calendar-settings-panel.d.ts +62 -0
  245. package/dist/patterns/calendar/calendar-settings-panel.d.ts.map +1 -0
  246. package/dist/patterns/calendar/calendar-settings-practice.d.ts +20 -0
  247. package/dist/patterns/calendar/calendar-settings-practice.d.ts.map +1 -0
  248. package/dist/patterns/calendar/calendar-status-colours.d.ts +18 -0
  249. package/dist/patterns/calendar/calendar-status-colours.d.ts.map +1 -0
  250. package/dist/patterns/calendar/calendar-upcoming-panel.d.ts.map +1 -1
  251. package/dist/patterns/calendar/calendar-waiting-list-panel.d.ts +17 -2
  252. package/dist/patterns/calendar/calendar-waiting-list-panel.d.ts.map +1 -1
  253. package/dist/patterns/calendar/calendar-workspace.d.ts +258 -6
  254. package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
  255. package/dist/patterns/calendar/calendar-workspace.model.d.ts +98 -11
  256. package/dist/patterns/calendar/calendar-workspace.model.d.ts.map +1 -1
  257. package/dist/patterns/calendar/calendar.data.d.ts +9 -3
  258. package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
  259. package/dist/patterns/calendar/calendar.journey.d.ts +69 -5
  260. package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
  261. package/dist/patterns/calendar/calendar.model.d.ts +72 -14
  262. package/dist/patterns/calendar/calendar.model.d.ts.map +1 -1
  263. package/dist/patterns/calendar/calendar.preferences.d.ts +4 -0
  264. package/dist/patterns/calendar/calendar.preferences.d.ts.map +1 -1
  265. package/dist/patterns/calendar/calendar.sheets.d.ts +85 -17
  266. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
  267. package/dist/patterns/calendar/calendar.surface.d.ts +64 -6
  268. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
  269. package/dist/patterns/calendar/calendar.types.d.ts +223 -6
  270. package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
  271. package/dist/patterns/calendar/index.d.ts +9 -6
  272. package/dist/patterns/calendar/index.d.ts.map +1 -1
  273. package/dist/patterns/calendar/index.js +18 -15
  274. package/dist/patterns/signature-request/index.js +1 -1
  275. package/dist/patterns/signed-out-frame/index.js +1 -1
  276. package/dist/tokens.css +5 -1
  277. package/package.json +1 -1
  278. package/dist/_chunks/appointment-card-0PebvrOS.js.map +0 -1
  279. package/dist/_chunks/calendar-_sgjuH3L.js.map +0 -1
  280. package/dist/_chunks/calendar-appointment-editor-dialog-B-zYgCgH.js +0 -10974
  281. package/dist/_chunks/calendar-appointment-editor-dialog-B-zYgCgH.js.map +0 -1
  282. package/dist/_chunks/calendar-event-card-DXAYWH6k.js.map +0 -1
  283. package/dist/_chunks/rich-text-editor-BLEdXJ0l.js.map +0 -1
  284. package/dist/_chunks/task-editor-C05yx7JJ.js +0 -1218
  285. package/dist/_chunks/task-editor-C05yx7JJ.js.map +0 -1
  286. package/dist/_chunks/treatment-receipt-1VnuinhY.js.map +0 -1
  287. package/dist/_chunks/use-appointment-details-read-Bm408XzX.js +0 -2198
  288. package/dist/_chunks/use-appointment-details-read-Bm408XzX.js.map +0 -1
  289. package/dist/_chunks/whatsapp-button-DV9JFmtq.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-bookings-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-bookings-panel.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC;yDACyD;AACzD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAQrE;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,IAAI,CAIf;AAED;;;yDAGyD;AACzD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,CAU5D;AAmFD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;yEACqE;IACrE,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,6GA4XvB,CAAC;AAGF;4DAC4D;AAC5D,wBAAgB,oBAAoB,4CA6DnC"}
1
+ {"version":3,"file":"calendar-bookings-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-bookings-panel.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC;yDACyD;AACzD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAQrE;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,IAAI,CAIf;AAED;;;yDAGyD;AACzD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,CAU5D;AAmFD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;yEACqE;IACrE,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,6GA+XvB,CAAC;AAGF;4DAC4D;AAC5D,wBAAgB,oBAAoB,4CA6DnC"}
@@ -1,41 +1,37 @@
1
1
  /**
2
- * HTP-5059 — the operator/chair restriction a care (or a set of cares)
3
- * places on an appointment, shared between the editor's create-mode
4
- * Selects and the Find-free-slots finder so the two flows cannot drift.
2
+ * HTP-5059, P31 — the operator/chair restriction the cares of a NEW
3
+ * price-list appointment place on it, shared between the editor's
4
+ * create-mode Selects and the Find-free-slots finder so the two flows
5
+ * cannot drift.
5
6
  *
6
7
  * Platform rule (Settings → Care settings, `CalendarCare.operatorIds` /
7
- * `chairIds`): a care with an EMPTY list carries no restriction — every
8
- * operator/chair may perform it. A non-empty list is the closed set of
9
- * operators/chairs allowed to perform it. With several cares on one
10
- * appointment, the allowed set is the INTERSECTION of the cares that
11
- * carry a restriction; cares with no restriction never narrow it. If
12
- * that intersection is empty (the cares share no common resource), the
13
- * caller shows every resource and an inline conflict notice rather than
14
- * blocking the form.
8
+ * `chairIds`): a care with an EMPTY list carries no restriction, a
9
+ * non-empty list is the set of operators/chairs allowed to perform it.
10
+ * With several cares on one appointment the allowed set is the UNION: a
11
+ * resource is offered when at least one chosen care allows it, and one
12
+ * care with no restriction lifts the filter. The caller applies it on
13
+ * CREATE only and for PRICE-LIST appointments only; an edit and a
14
+ * care-plan appointment list every resource.
15
15
  */
16
16
  import type { CalendarCare } from './calendar.types';
17
17
  /** The result of narrowing a resource list by one or more cares'
18
- * restrictions. `list` is always what the Select should offer —
19
- * unrestricted and conflicting cases both fall back to every resource
20
- * passed in, so callers never need a separate branch for those. */
18
+ * restrictions. `list` is always what the Select should offer: an
19
+ * unrestricted set falls back to every resource passed in. */
21
20
  export interface CareResourceRestriction<T extends {
22
21
  id: string;
23
22
  }> {
24
- /** Resources to list, already narrowed when `restricted` and not
25
- * `conflict`; the full input list otherwise. */
23
+ /** Resources to list: narrowed when `restricted`, else the full input. */
26
24
  list: T[];
27
- /** At least one of the cares carries a restriction on this axis. */
25
+ /** Every chosen care carries a restriction on this axis. */
28
26
  restricted: boolean;
29
- /** The restricted cares share no common resource — `list` is the full
30
- * input set and the caller should surface the conflict notice. */
31
- conflict: boolean;
32
27
  }
33
- /** The operators a set of cares allows. Empty `cares` (nothing picked
34
- * yet) is unrestricted, same as a care with an empty `operatorIds`. */
28
+ /** The operators at least one of the cares allows. Empty `cares` (nothing
29
+ * picked yet) is unrestricted, as is any set holding a care with an empty
30
+ * `operatorIds`. */
35
31
  export declare function allowedOperatorsFor<T extends {
36
32
  id: string;
37
33
  }>(cares: readonly CalendarCare[], operators: readonly T[]): CareResourceRestriction<T>;
38
- /** The chairs a set of cares allows. Mirrors `allowedOperatorsFor`. */
34
+ /** The chairs at least one of the cares allows. Mirrors `allowedOperatorsFor`. */
39
35
  export declare function allowedChairsFor<T extends {
40
36
  id: string;
41
37
  }>(cares: readonly CalendarCare[], chairs: readonly T[]): CareResourceRestriction<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-care-rules.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-care-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;oEAGoE;AACpE,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC/D;qDACiD;IACjD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB;uEACmE;IACnE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAyBD;wEACwE;AACxE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,SAAS,EAAE,SAAS,CAAC,EAAE,GACtB,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED;;;sBAGsB;AACtB,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACtC,OAAO,CAET"}
1
+ {"version":3,"file":"calendar-care-rules.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-care-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;+DAE+D;AAC/D,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC/D,0EAA0E;IAC1E,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAmBD;;qBAEqB;AACrB,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,SAAS,EAAE,SAAS,CAAC,EAAE,GACtB,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED;;;sBAGsB;AACtB,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACtC,OAAO,CAET"}
@@ -0,0 +1,18 @@
1
+ import { type DeleteOptions, type RecurringScope } from './calendar-workspace.model';
2
+ export interface CalendarDeleteConfirmProps {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean) => void;
5
+ /** Series scopes in display order. Absent = not a series member. */
6
+ scopes?: readonly RecurringScope[];
7
+ /** Ask whether to remove the treatments from the care plan. */
8
+ offersCarePlanCleanup?: boolean;
9
+ /** The click that confirms. A synchronous handler closes the dialog at
10
+ * once. A promise keeps it open and the button busy until it settles:
11
+ * a rejection shows its message here and deletes nothing. */
12
+ onConfirm: (options: DeleteOptions) => void | Promise<void>;
13
+ /** Where focus lands when the dialog closes without a delete. Called
14
+ * with the close event: `preventDefault()` takes focus yourself. */
15
+ onCloseAutoFocus?: (event: Event) => void;
16
+ }
17
+ export declare function CalendarDeleteConfirm({ open, onOpenChange, scopes, offersCarePlanCleanup, onConfirm, onCloseAutoFocus, }: CalendarDeleteConfirmProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=calendar-delete-confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-delete-confirm.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-delete-confirm.tsx"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,+DAA+D;IAC/D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;kEAE8D;IAC9D,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;yEACqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAkGD,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,SAAS,EACT,gBAAgB,GACjB,EAAE,0BAA0B,2CA+B5B"}
@@ -0,0 +1,12 @@
1
+ /** Whether the document covers the visit it was opened from or every visit. */
2
+ export type CalendarDocumentScope = 'visit' | 'all';
3
+ export interface CalendarDocumentScopeConfirmProps {
4
+ open: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ /** The answer, once the user continues. */
7
+ onConfirm: (scope: CalendarDocumentScope) => void;
8
+ /** Where focus lands when the dialog closes. `preventDefault()` takes it. */
9
+ onCloseAutoFocus?: (event: Event) => void;
10
+ }
11
+ export declare function CalendarDocumentScopeConfirm({ open, onOpenChange, onConfirm, onCloseAutoFocus, }: CalendarDocumentScopeConfirmProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=calendar-document-scope-confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-document-scope-confirm.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-document-scope-confirm.tsx"],"names":[],"mappings":"AASA,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,2CAA2C;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAgDD,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,GACjB,EAAE,iCAAiC,2CAQnC"}
@@ -0,0 +1,12 @@
1
+ export interface CalendarEditorGuard {
2
+ /** Written by the open form: typed data a leave would lose. False once the
3
+ * form saved, is saving, or is gone. */
4
+ dirty: boolean;
5
+ /** Written by the workspace: run `proceed` now, or once the user confirms
6
+ * Discard. Cancel runs nothing and leaves the form as it was. */
7
+ ask: (proceed: () => void) => void;
8
+ }
9
+ export declare function createEditorGuard(): CalendarEditorGuard;
10
+ export declare const EditorGuardProvider: import("react").Provider<CalendarEditorGuard | null>;
11
+ export declare function useEditorGuard(): CalendarEditorGuard | null;
12
+ //# sourceMappingURL=calendar-editor-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-editor-guard.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-editor-guard.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,mBAAmB;IAClC;6CACyC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf;sEACkE;IAClE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CAEvD;AAID,eAAO,MAAM,mBAAmB,sDAA8B,CAAC;AAE/D,wBAAgB,cAAc,IAAI,mBAAmB,GAAG,IAAI,CAE3D"}
@@ -2,16 +2,27 @@ import { type ReactNode } from 'react';
2
2
  import type { CalendarEditorCapabilities, CalendarRow, EditorPrefill, RecurrenceFrequency } from './calendar.model';
3
3
  import { type RecurringScope } from './calendar-workspace.model';
4
4
  /** The host's recurring occurrence. Rows never carry `CalendarRow.series`
5
- * for such a host: the scope question is asked from this snapshot. */
5
+ * for such a host: the scope question is asked from this snapshot.
6
+ *
7
+ * An occurrence changed on its own: return `detached: true`. The editor
8
+ * then skips the scope question, saves for that appointment only and
9
+ * still offers `scopes` when the user deletes. It merges
10
+ * `capabilitiesByScope.this` over `capabilities`, as a save for "this"
11
+ * would. Return no `series` at all only when delete should not ask
12
+ * either. The kit never infers either. */
6
13
  export interface CalendarEditorSeries {
7
14
  /** The occurrence being edited, as a local Date on the host's wall clock. */
8
15
  occurrence: Date;
16
+ /** Changed on its own: no scope question on edit (its `this` capabilities
17
+ * apply), the scopes on delete. */
18
+ detached?: boolean;
9
19
  /** Scopes the host can honour, in display order. Non-empty; the kit
10
20
  * renders exactly this list and never adds a scope. */
11
21
  scopes: readonly RecurringScope[];
12
22
  /** Merged over snapshot.capabilities once a scope is chosen. */
13
23
  capabilitiesByScope?: Partial<Record<RecurringScope, CalendarEditorCapabilities>>;
14
- /** Offer the care-plan clean-up question in the delete dialog. */
24
+ /** Offer the care-plan clean-up question in the delete dialog: true for any
25
+ * occurrence of a price-list series, not only the first (decision P15). */
15
26
  offersCarePlanCleanup?: boolean;
16
27
  /** Reserved for summary lines; the editor does not require it. */
17
28
  summary?: {
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-editor-hydration.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-editor-hydration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC;sEACsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB;2DACuD;IACvD,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,CAC3B,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC,CACnD,CAAC;IACF,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,MAAM,iCAAiC,GACzC;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC7B,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,KAAK,aAAa,GAAG,OAAO,CAC1B,iCAAiC,EACjC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CACpB,CAAC;AAmCF,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC;CACnD,2UAoHA;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GAClB,WAAW,CAwBb"}
1
+ {"version":3,"file":"calendar-editor-hydration.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-editor-hydration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;0CAQ0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB;wCACoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;2DACuD;IACvD,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,CAC3B,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC,CACnD,CAAC;IACF;gFAC4E;IAC5E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,MAAM,iCAAiC,GACzC;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC7B,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,KAAK,aAAa,GAAG,OAAO,CAC1B,iCAAiC,EACjC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CACpB,CAAC;AAmCF,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC;CACnD,2UAoHA;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GAClB,WAAW,CAwBb"}
@@ -0,0 +1,11 @@
1
+ export interface CalendarLoadErrorProps {
2
+ /** Calls the host to load the visible range again. Without it the
3
+ * message still shows and the button is withheld: a Retry the host
4
+ * cannot back would do nothing. */
5
+ onRetry?: () => void;
6
+ }
7
+ /** Said above the grid when the host reports that loading appointments
8
+ * failed for the visible range. The failed days wear their own tint, so a
9
+ * day that failed never looks free; this explains it and offers Retry. */
10
+ export declare function CalendarLoadError({ onRetry }: CalendarLoadErrorProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=calendar-load-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-load-error.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-load-error.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC;;wCAEoC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;2EAE2E;AAC3E,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,sBAAsB,2CAoBpE"}
@@ -0,0 +1,13 @@
1
+ interface CalendarPatientLockedProps {
2
+ /** The stored patient id; the name is resolved from `CalendarData`. */
3
+ value: string;
4
+ /** Names `value` when `patientById` cannot. */
5
+ fallbackLabel: string;
6
+ }
7
+ /** The editor's Patient field when the host locks it
8
+ * (`capabilities.editPatient === false`): the name as plain text. No
9
+ * typeahead, no clear control, nothing to focus. Render it inside the
10
+ * patient `FormField`, which carries the label and the reason. */
11
+ export declare function CalendarPatientLocked({ value, fallbackLabel, }: CalendarPatientLockedProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=calendar-patient-locked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-patient-locked.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-patient-locked.tsx"],"names":[],"mappings":"AAGA,UAAU,0BAA0B;IAClC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;mEAGmE;AACnE,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAa,GACd,EAAE,0BAA0B,2CAe5B"}
@@ -1,12 +1,17 @@
1
+ import type { CalendarCreatePatient } from './calendar.types';
1
2
  interface CalendarPatientPickerProps {
2
3
  value: string;
3
4
  onValueChange: (value: string) => void;
4
5
  selectedLabel?: string;
5
6
  size?: 'sm' | 'md';
6
7
  disabled?: boolean;
8
+ /** The host's create-patient seam. Pass it only where the user may add a
9
+ * patient (the editor and the waiting-list entry form, never a filter,
10
+ * never read-only). Omitted, no "Create patient" action shows. */
11
+ onCreatePatient?: CalendarCreatePatient;
7
12
  }
8
13
  /** One id-valued patient control for the editor and waiting surfaces: the
9
14
  * shared PatientPicker fed from `CalendarData`. */
10
- export declare function CalendarPatientPicker(props: CalendarPatientPickerProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function CalendarPatientPicker({ onCreatePatient, ...props }: CalendarPatientPickerProps): import("react/jsx-runtime").JSX.Element;
11
16
  export {};
12
17
  //# sourceMappingURL=calendar-patient-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-patient-picker.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-patient-picker.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;oDACoD;AACpD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAgBtE"}
1
+ {"version":3,"file":"calendar-patient-picker.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-patient-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,kBAAkB,CAAC;AAE/E,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;uEAEmE;IACnE,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;oDACoD;AACpD,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,GAAG,KAAK,EACT,EAAE,0BAA0B,2CA+E5B"}
@@ -0,0 +1,11 @@
1
+ import type { CalendarPrompts } from './calendar.types';
2
+ /** The banner and the first-appointment alert, stacked above the grid. */
3
+ export declare function CalendarPromptAlerts({ prompts, restoreFocus, }: {
4
+ prompts?: CalendarPrompts;
5
+ /** Called as the banner is dismissed, before it unmounts: park focus on a
6
+ * stable element so the close button's focus is not lost to the body. */
7
+ restoreFocus?: () => void;
8
+ }): import("react/jsx-runtime").JSX.Element | null;
9
+ /** Only an https link is offered: the href comes from the host. */
10
+ export declare function safeAcademyHref(href: string | undefined): string | undefined;
11
+ //# sourceMappingURL=calendar-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-prompts.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-prompts.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiB9E,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,YAAY,GACb,EAAE;IACD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;8EAC0E;IAC1E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,kDAyCA;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE5E"}
@@ -0,0 +1,11 @@
1
+ import type { CalendarIcalLinks } from './calendar.types';
2
+ export interface CalendarSettingsIcalProps {
3
+ icalLinks: CalendarIcalLinks;
4
+ /** Prefix of every control's id (`${idPrefix}-ical-<feed id>`). */
5
+ idPrefix: string;
6
+ /** A revoke is in flight: the overlay must not close under it. Raised
7
+ * `false` again when the group unmounts. */
8
+ onBusyChange?: (busy: boolean) => void;
9
+ }
10
+ export declare function CalendarSettingsIcal({ icalLinks, idPrefix, onBusyChange, }: CalendarSettingsIcalProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=calendar-settings-ical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-settings-ical.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-settings-ical.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB;iDAC6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AASD,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,EACR,YAAY,GACb,EAAE,yBAAyB,2CAgL3B"}
@@ -0,0 +1,73 @@
1
+ import { type WorkspaceDisplaySettings } from './calendar-workspace.model';
2
+ import type { CalendarPracticeSettingsSeam } from './calendar.types';
3
+ /** The agent instance id of the settings panel. Each control carries
4
+ * `${id}-${setting}`, so an agent sets a row by its setting name. */
5
+ export declare const CALENDAR_SETTINGS_OVERLAY_ID = "calendar-display-settings";
6
+ /** A personal setting key as raised to `onChange`: a display field name,
7
+ * `hiddenDays`, or `reset`. */
8
+ export type CalendarPersonalSetting = keyof WorkspaceDisplaySettings | 'hiddenDays' | 'reset';
9
+ export interface CalendarSettingsOverlayProps {
10
+ open: boolean;
11
+ onOpenChange: (open: boolean) => void;
12
+ /** The user's current display settings. */
13
+ display: WorkspaceDisplaySettings;
14
+ /** One personal display setting changed. The host merges the patch. */
15
+ onChange: (setting: keyof WorkspaceDisplaySettings, patch: Partial<WorkspaceDisplaySettings>) => void;
16
+ /** The weekdays this user hides, 0 (Sunday) to 6 (Saturday). The overlay
17
+ * never lets the last shown day be hidden. */
18
+ hiddenDays: readonly number[];
19
+ onHiddenDaysChange: (hiddenDays: number[]) => void;
20
+ /** Return every display setting to the workspace defaults. */
21
+ onReset: () => void;
22
+ /** The practice's opening and closing hour, two digits each. */
23
+ practiceHours: {
24
+ from: string;
25
+ to: string;
26
+ };
27
+ /** The practice has operator groups. Without them the operator list
28
+ * setting is withheld, as there is nothing to group. */
29
+ hasOperatorGroups?: boolean;
30
+ /** The grid shows Month: day-and-week settings carry a note. */
31
+ isMonth?: boolean;
32
+ /** The Academy calendar tutorial: the host's https link. Absent = no
33
+ * link. Opens in a new tab. */
34
+ academyHref?: string;
35
+ /** Where focus goes when the overlay closes: the control that opened it. */
36
+ returnFocusRef?: React.RefObject<HTMLElement | null>;
37
+ /** The host's Practice section seam. Absent, or with no member, the
38
+ * section does not render. */
39
+ practiceSettings?: CalendarPracticeSettingsSeam;
40
+ /** One practice key was saved (PRD event calendar_setting_changed). */
41
+ onPracticeSettingChanged?: (setting: string) => void;
42
+ /** The hours link of the Practice section was followed (PRD event
43
+ * calendar_scheduler_opened). */
44
+ onHoursOpened?: () => void;
45
+ /** Filled with a close request that applies the same guard as Escape and
46
+ * Close (a save in flight waits, an unsaved Practice draft is asked
47
+ * about). For a host control outside the overlay that closes it. */
48
+ closeRequestRef?: React.MutableRefObject<(() => void) | null>;
49
+ }
50
+ /** What the sections need: the overlay's props that describe the settings
51
+ * themselves, without the Sheet's open state and focus plumbing. */
52
+ export interface CalendarSettingsSectionsProps extends Omit<CalendarSettingsOverlayProps, 'open' | 'onOpenChange' | 'onReset' | 'returnFocusRef' | 'closeRequestRef'> {
53
+ /** A Practice save started or ended (the host panel holds while true). */
54
+ onPracticeBusyChange?: (busy: boolean) => void;
55
+ /** The Practice draft has, or no longer has, unsaved changes. */
56
+ onPracticeDirtyChange?: (dirty: boolean) => void;
57
+ /** The id of the Month note, when a parent names it as its description. */
58
+ monthNoteId?: string;
59
+ }
60
+ /**
61
+ * The settings themselves: My calendar, then Practice when the host passes a
62
+ * member, then the Academy link. It is the body of the Settings panel in the
63
+ * tool rail (`CalendarSettingsPanel`) and of the deprecated
64
+ * `CalendarSettingsOverlay` Sheet. Props-driven: no state of its own, no API.
65
+ */
66
+ export declare function CalendarSettingsSections({ display, onChange, hiddenDays, onHiddenDaysChange, practiceHours, isMonth, hasOperatorGroups, academyHref, practiceSettings, onPracticeSettingChanged, onHoursOpened, onPracticeBusyChange, onPracticeDirtyChange, monthNoteId: monthNoteIdProp, }: CalendarSettingsSectionsProps): import("react/jsx-runtime").JSX.Element;
67
+ /**
68
+ * @deprecated The calendar workspace opens Settings as a rail panel
69
+ * (`CalendarSettingsPanel`, tool id `settings`). This Sheet stays for a host
70
+ * or demo that mounts the settings outside the workspace rail.
71
+ */
72
+ export declare function CalendarSettingsOverlay({ open, onOpenChange, display, onChange, hiddenDays, onHiddenDaysChange, onReset, practiceHours, isMonth, hasOperatorGroups, academyHref, returnFocusRef, practiceSettings, onPracticeSettingChanged, onHoursOpened, closeRequestRef, }: CalendarSettingsOverlayProps): import("react/jsx-runtime").JSX.Element;
73
+ //# sourceMappingURL=calendar-settings-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-settings-overlay.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-settings-overlay.tsx"],"names":[],"mappings":"AAgCA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAErE;sEACsE;AACtE,eAAO,MAAM,4BAA4B,8BAA8B,CAAC;AAExE;gCACgC;AAChC,MAAM,MAAM,uBAAuB,GAC/B,MAAM,wBAAwB,GAC9B,YAAY,GACZ,OAAO,CAAC;AAEZ,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,2CAA2C;IAC3C,OAAO,EAAE,wBAAwB,CAAC;IAClC,uEAAuE;IACvE,QAAQ,EAAE,CACR,OAAO,EAAE,MAAM,wBAAwB,EACvC,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KACrC,IAAI,CAAC;IACV;mDAC+C;IAC/C,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,8DAA8D;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C;6DACyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;oCACgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD;mCAC+B;IAC/B,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD,uEAAuE;IACvE,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD;sCACkC;IAClC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;yEAEqE;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CAC/D;AAED;qEACqE;AACrE,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CACzD,4BAA4B,EAC5B,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAC3E;IACC,0EAA0E;IAC1E,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,OAAe,EACf,iBAAyB,EACzB,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EAAE,eAAe,GAC7B,EAAE,6BAA6B,2CA4V/B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,OAAe,EACf,iBAAyB,EACzB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,eAAe,GAChB,EAAE,4BAA4B,2CA0H9B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The Settings panel: the calendar's settings as a tool in the workspace
3
+ * rail (decision P36, rule F1). The toolbar's Settings button opens it in
4
+ * place of whichever rail tool is open, the way the appointment editor takes
5
+ * the rail, so the grid stays visible beside it and a change applies at once.
6
+ *
7
+ * The surface owns the settings state and the toolbar button; the rail owns
8
+ * the panel. A small bridge joins them without lifting the state: the
9
+ * surface publishes the panel's props, the rail's panel slot reads the latest
10
+ * ones, and the panel reports back whether it holds unsaved Practice changes
11
+ * so the workspace can ask before the rail leaves it.
12
+ */
13
+ import { type RefObject } from 'react';
14
+ import { type CalendarSettingsSectionsProps } from './calendar-settings-overlay';
15
+ /** What the panel needs from the surface. */
16
+ export interface CalendarSettingsPanelProps extends Omit<CalendarSettingsSectionsProps, 'monthNoteId' | 'onPracticeBusyChange' | 'onPracticeDirtyChange'> {
17
+ /** Return every display setting to the workspace defaults. */
18
+ onReset: () => void;
19
+ }
20
+ /** What the panel tells the workspace before the rail may leave it. */
21
+ export interface CalendarSettingsGuard {
22
+ /** The Practice section holds changes that are not saved. */
23
+ dirty: boolean;
24
+ /** A Practice save is in flight: the panel holds the rail. */
25
+ busy: boolean;
26
+ /** Written by the open panel: moves focus to whatever is busy, so a
27
+ * refused leave is heard instead of ignored. */
28
+ holdFocus: (() => void) | null;
29
+ }
30
+ /** The link between the surface (button, state) and the rail (panel). */
31
+ export interface CalendarSettingsBridge {
32
+ /** The surface publishes the panel's latest props; `null` withdraws them. */
33
+ publish: (props: CalendarSettingsPanelProps | null) => void;
34
+ subscribe: (listener: () => void) => () => void;
35
+ getSnapshot: () => CalendarSettingsPanelProps | null;
36
+ /** Written by the open panel, read by the workspace. */
37
+ guard: CalendarSettingsGuard;
38
+ /** The toolbar's Settings button: focus returns here when the panel closes. */
39
+ buttonRef: RefObject<HTMLButtonElement | null>;
40
+ }
41
+ export declare function createSettingsBridge(): CalendarSettingsBridge;
42
+ /** The rail's panel body for the settings tool: a stable element that reads
43
+ * the surface's latest props, so the rail never re-registers per change. */
44
+ export declare function CalendarSettingsPanelSlot({ bridge, }: {
45
+ bridge: CalendarSettingsBridge;
46
+ }): import("react/jsx-runtime").JSX.Element | null;
47
+ export declare function CalendarSettingsPanel({ bridge, onReset, ...sections }: CalendarSettingsPanelProps & {
48
+ bridge: CalendarSettingsBridge;
49
+ }): import("react/jsx-runtime").JSX.Element;
50
+ /**
51
+ * The question before the rail leaves Settings with unsaved Practice changes:
52
+ * by Close, Escape or another rail tool (a strip click, the editor or the
53
+ * details docking from the grid). Keep editing stays; Discard leaves. The
54
+ * appointment editor asks the same question about its typed data (B18), with
55
+ * its own body.
56
+ */
57
+ export declare function CalendarSettingsDiscardDialog({ onKeep, onDiscard, scope, }: {
58
+ onKeep: () => void;
59
+ onDiscard: () => void;
60
+ scope?: 'settings' | 'editor';
61
+ }): import("react/jsx-runtime").JSX.Element;
62
+ //# sourceMappingURL=calendar-settings-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-settings-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-settings-panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMhF,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,6BAA6B,CAAC;AAGrC,6CAA6C;AAC7C,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CACtD,6BAA6B,EAC7B,aAAa,GAAG,sBAAsB,GAAG,uBAAuB,CACjE;IACC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,OAAO,CAAC;IACd;qDACiD;IACjD,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CAChC;AAED,yEAAyE;AACzE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,WAAW,EAAE,MAAM,0BAA0B,GAAG,IAAI,CAAC;IACrD,wDAAwD;IACxD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,+EAA+E;IAC/E,SAAS,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,oBAAoB,IAAI,sBAAsB,CAgB7D;AAED;6EAC6E;AAC7E,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,sBAAsB,CAAC;CAChC,kDAOA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,OAAO,EACP,GAAG,QAAQ,EACZ,EAAE,0BAA0B,GAAG;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,2CAwFjE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,MAAM,EACN,SAAS,EACT,KAAkB,GACnB,EAAE;IACD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC/B,2CA+BA"}
@@ -0,0 +1,20 @@
1
+ import type { CalendarPracticeSettingsSeam } from './calendar.types';
2
+ /** Whether the seam carries at least one member, so the section shows. */
3
+ export declare function hasPracticeMember(seam: CalendarPracticeSettingsSeam | undefined): seam is CalendarPracticeSettingsSeam;
4
+ export interface CalendarSettingsPracticeProps {
5
+ seam: CalendarPracticeSettingsSeam;
6
+ /** Prefix of every control's agent instance id (`${idPrefix}-<setting>`). */
7
+ idPrefix: string;
8
+ /** A save is in flight: the overlay must not close under it. Raised
9
+ * `false` again when the section unmounts. */
10
+ onBusyChange?: (busy: boolean) => void;
11
+ /** The draft differs from the saved value: the overlay asks before it
12
+ * closes. Raised `false` again when the section unmounts. */
13
+ onDirtyChange?: (dirty: boolean) => void;
14
+ /** The hours link was followed (PRD event calendar_scheduler_opened). */
15
+ onHoursOpened?: () => void;
16
+ /** One changed key was saved (PRD event calendar_setting_changed). */
17
+ onSettingChanged?: (setting: string) => void;
18
+ }
19
+ export declare function CalendarSettingsPractice({ seam, idPrefix, onBusyChange, onDirtyChange, onHoursOpened, onSettingChanged, }: CalendarSettingsPracticeProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=calendar-settings-practice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-settings-practice.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-settings-practice.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,4BAA4B,EAI7B,MAAM,kBAAkB,CAAC;AAgH1B,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAC7C,IAAI,IAAI,4BAA4B,CAOtC;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,4BAA4B,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;mDAC+C;IAC/C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;kEAC8D;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,EAAE,6BAA6B,2CA6X/B"}
@@ -0,0 +1,18 @@
1
+ import { type RefObject } from 'react';
2
+ import type { CalendarEventStatus } from '../../components/calendar';
3
+ export type StatusColours = Record<CalendarEventStatus, string>;
4
+ export declare const STATUS_COLOUR_TOKEN: StatusColours;
5
+ /** All six status colours as hex, or `null` when any one cannot be
6
+ * resolved: the grid then keeps the stored colour, never a half set. */
7
+ export declare function resolveStatusColours(anchor: HTMLElement | null): StatusColours | null;
8
+ /**
9
+ * The status colours for the theme `anchorRef` sits in, kept current:
10
+ * resolved once the anchor mounts and again when a class, theme attribute
11
+ * or inline style changes on it or any ancestor (where a theme root puts
12
+ * `theme-dark`), or when the OS colour scheme, contrast or forced-colours
13
+ * preference flips (a host may theme off those with no attribute change).
14
+ * `null` while off, before mount, or when tokens do not
15
+ * resolve (SSR, tests without the stylesheet).
16
+ */
17
+ export declare function useStatusColours(active: boolean, anchorRef: RefObject<HTMLElement | null>): StatusColours | null;
18
+ //# sourceMappingURL=calendar-status-colours.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-status-colours.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-status-colours.ts"],"names":[],"mappings":"AAQA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAKhE,eAAO,MAAM,mBAAmB,EAAE,aAOjC,CAAC;AAyBF;yEACyE;AACzE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,GAAG,IAAI,GACzB,aAAa,GAAG,IAAI,CAStB;AAaD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACvC,aAAa,GAAG,IAAI,CA6BtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-upcoming-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-upcoming-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAe,MAAM,cAAc,CAAC;AASlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA8GpD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf;iFAC6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACnB,OAAe,GAChB,EAAE,8BAA8B,2CAoPhC;AAED;0EAC0E;AAC1E,OAAO,EAAE,KAAK,IAAI,6BAA6B,EAAE,CAAC"}
1
+ {"version":3,"file":"calendar-upcoming-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-upcoming-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,EAAe,MAAM,cAAc,CAAC;AAc/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA8GpD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf;iFAC6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,yBAAyB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACnB,OAAe,GAChB,EAAE,8BAA8B,2CAgRhC;AAED;0EAC0E;AAC1E,OAAO,EAAE,KAAK,IAAI,6BAA6B,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type CalendarRow, type WaitingEntryDraft } from './calendar.model';
1
+ import { type CalendarRow, type WaitingEntryDraft, type WaitingQuickView } from './calendar.model';
2
2
  import { type WaitingListRowView } from './calendar-workspace.model';
3
- import { type CalendarPatient, type CalendarWaitingEntry } from './calendar.types';
3
+ import { type CalendarCreatePatient, type CalendarPatient, type CalendarWaitingEntry } from './calendar.types';
4
4
  export interface WaitingEntryCardProps {
5
5
  view: WaitingListRowView;
6
6
  locale: string;
@@ -13,6 +13,9 @@ export interface WaitingEntryCardProps {
13
13
  /** Unset = no entry form on this host: Edit and Assign are withheld. */
14
14
  onEdit?: (entry: CalendarWaitingEntry) => void;
15
15
  onRemove: (entry: CalendarWaitingEntry) => void;
16
+ /** The user clicked the WhatsApp link. Raised for a link only (an entry
17
+ * with a number), once per click, with the entry. */
18
+ onWhatsAppClick?: (entry: CalendarWaitingEntry) => void;
16
19
  onOpenPatient?: (patient: CalendarPatient) => void;
17
20
  onOpenAppointment: (eventId: string) => void;
18
21
  }
@@ -52,11 +55,23 @@ export interface WaitingListPanelProps {
52
55
  entry?: CalendarWaitingEntry;
53
56
  } | null;
54
57
  onSaveEntry?: (draft: WaitingEntryDraft) => void;
58
+ /** "Create patient" under the entry form's patient search (not the
59
+ * filter's). See `CalendarCreatePatient`. Omit it and it is withheld. */
60
+ onCreatePatient?: CalendarCreatePatient;
55
61
  onCancelEntry?: () => void;
56
62
  /** The patient-folder hop. Unset renders the name as plain text. */
57
63
  onOpenPatient?: (patient: CalendarPatient) => void;
58
64
  /** The platform's `focusAppointmentId` deep link — steer and ring. */
59
65
  onOpenAppointment: (eventId: string) => void;
66
+ /** The user picked a quick view that was not already chosen, or ran the
67
+ * detailed search (`advanced_search`). Ids and enums only. */
68
+ onFilterUsed?: (filter: WaitingQuickView | 'advanced_search') => void;
69
+ /** The user showed or hid the detailed filters. */
70
+ onAdvancedFilterToggled?: (action: 'show' | 'hide') => void;
71
+ /** The user clicked an entry's WhatsApp link. Raised once per click and
72
+ * never for an entry without a number or under privacy. Carries the
73
+ * entry only: the host reads the id, never a name or a number. */
74
+ onWhatsAppClick?: (entry: CalendarWaitingEntry) => void;
60
75
  }
61
76
  export declare const WaitingListPanel: import("react").ForwardRefExoticComponent<WaitingListPanelProps & import("react").RefAttributes<HTMLDivElement>>;
62
77
  //# sourceMappingURL=calendar-waiting-list-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-waiting-list-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-waiting-list-panel.tsx"],"names":[],"mappings":"AAwDA,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAUL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAmQ1B,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACpD,wEAAwE;IACxE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;uEACuE;AACvE,eAAO,MAAM,gBAAgB,+GAiX5B,CAAC;AAwEF,MAAM,WAAW,qBAAqB;IACpC;2EACuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,uEAAuE;IACvE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf;yEACqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;2EACuE;IACvE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,cAAc,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtD;uEACmE;IACnE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,wEAAwE;IACxE,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oEAAoE;IACpE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,sEAAsE;IACtE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,gBAAgB,kHA2Y5B,CAAC"}
1
+ {"version":3,"file":"calendar-waiting-list-panel.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-waiting-list-panel.tsx"],"names":[],"mappings":"AAwDA,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAUL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAqQ1B,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACpD,wEAAwE;IACxE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChD;0DACsD;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;uEACuE;AACvE,eAAO,MAAM,gBAAgB,+GAsX5B,CAAC;AAwEF,MAAM,WAAW,qBAAqB;IACpC;2EACuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,uEAAuE;IACvE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf;yEACqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;2EACuE;IACvE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,cAAc,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtD;uEACmE;IACnE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,wEAAwE;IACxE,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD;8EAC0E;IAC1E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oEAAoE;IACpE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,sEAAsE;IACtE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;mEAC+D;IAC/D,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,KAAK,IAAI,CAAC;IACtE,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5D;;uEAEmE;IACnE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,gBAAgB,kHAwZ5B,CAAC"}