@alfadocs/ui-kit 1.51.0 → 1.52.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 (564) hide show
  1. package/dist/_chunks/{actions-cell-renderer-DBI33cMp.js → actions-cell-renderer-DhmUGzRY.js} +4 -4
  2. package/dist/_chunks/{address-autocomplete-Dp5uMvKP.js → address-autocomplete-BVLoHU3E.js} +3 -3
  3. package/dist/_chunks/{address-fields-QfC-N3pw.js → address-fields-UiEXHxEX.js} +9 -9
  4. package/dist/_chunks/{agenda-card-CjjxlA9K.js → agenda-card-CakEvwnM.js} +4 -4
  5. package/dist/_chunks/{agenda-tray-CGhEEnFE.js → agenda-tray-C-_iu6Fo.js} +4 -4
  6. package/dist/_chunks/{ai-credits-notice-C9K_ley1.js → ai-credits-notice-Da0fJPXO.js} +4 -4
  7. package/dist/_chunks/{ai-permission-notice-DMG1o4Qa.js → ai-permission-notice-C5q_uHBA.js} +6 -6
  8. package/dist/_chunks/{ai-prompt-input-ucwO-z8g.js → ai-prompt-input-IObcUWqB.js} +4 -4
  9. package/dist/_chunks/{alert-CiQ5Pa3Q.js → alert-BhCstf2h.js} +3 -3
  10. package/dist/_chunks/{alia-sidebar-K3gaNH94.js → alia-sidebar-DyQMsyiz.js} +21 -21
  11. package/dist/_chunks/{anamnesis-card-CPjry4ur.js → anamnesis-card-D4RWzQXP.js} +5 -5
  12. package/dist/_chunks/{anamnesis-summary-card-DPyScUMM.js → anamnesis-summary-card-Bv0CZ-mk.js} +3 -3
  13. package/dist/_chunks/anamnesis-summary-rows-DaSoA80I.js +20926 -0
  14. package/dist/_chunks/{annotation-marker-CsUJGZjQ.js → annotation-marker-D-M7y4R1.js} +2 -2
  15. package/dist/_chunks/{antenatal-schedule-timeline-8fm3vPSV.js → antenatal-schedule-timeline-BZzgjfyd.js} +13 -13
  16. package/dist/_chunks/{app-frame-DIEMIC5V.js → app-frame-Cos-GSfw.js} +5 -5
  17. package/dist/_chunks/{appointment-card-DETaIfBb.js → appointment-card-CA2ynsmN.js} +8 -8
  18. package/dist/_chunks/{appointment-peek-B79v56Zc.js → appointment-peek-DpPzeYXm.js} +6 -6
  19. package/dist/_chunks/{appointment-timeline-tyJJPgVU.js → appointment-timeline-BZErHbD1.js} +6 -6
  20. package/dist/_chunks/{appointment-tray-Dq4zto_L.js → appointment-tray-DR_Zm4Gw.js} +9 -9
  21. package/dist/_chunks/{appointment-workflow-status-CS8ufF1f.js → appointment-workflow-status-DrWCNLbB.js} +2 -2
  22. package/dist/_chunks/{ar-BR1FGFP2.js → ar-pLopgMbL.js} +12 -12
  23. package/dist/_chunks/{audio-recorder-Ddlp5rVg.js → audio-recorder-BafA28cX.js} +5 -5
  24. package/dist/_chunks/{audio-visualiser-l6zPd0AG.js → audio-visualiser-CK2JyQW1.js} +2 -2
  25. package/dist/_chunks/{autocomplete-DSasZUf6.js → autocomplete-IfLaXwyb.js} +3 -3
  26. package/dist/_chunks/{avatar-BVvjKNTp.js → avatar-DYtwj1-R.js} +2 -2
  27. package/dist/_chunks/{badge-BAkd6_Pj.js → badge-hnBt8o7n.js} +6 -6
  28. package/dist/_chunks/{balance-badge-cell-BCEsdEOe.js → balance-badge-cell-CS-iKkLM.js} +8 -8
  29. package/dist/_chunks/{bishop-score-1NAiZh0K.js → bishop-score-BfDsm9HH.js} +6 -6
  30. package/dist/_chunks/{bmi-calculator-ZzzPZhhI.js → bmi-calculator-BNtmMzQy.js} +6 -6
  31. package/dist/_chunks/{booking-DmyX24Ls.js → booking-DP543-BT.js} +41 -40
  32. package/dist/_chunks/{breadcrumb-D3boYzD4.js → breadcrumb-xgVpPH2H.js} +4 -4
  33. package/dist/_chunks/{button-group-t9RrsCS6.js → button-group-DnSR6eN6.js} +29 -29
  34. package/dist/_chunks/{calculator-dialog-C0ixc3SU.js → calculator-dialog-BRjZMWuE.js} +2 -2
  35. package/dist/_chunks/{calendar-aqzmITxw.js → calendar-BwF5nQuW.js} +558 -502
  36. package/dist/_chunks/{calendar-event-card-DyFSIehr.js → calendar-event-card-DXAYWH6k.js} +2 -2
  37. package/dist/_chunks/{calendar-workspace-BqoPkCUp.js → calendar-workspace-B9MKJXER.js} +4406 -4395
  38. package/dist/_chunks/{care-plan-card-amX33mMF.js → care-plan-card-BanlKJZn.js} +8 -8
  39. package/dist/_chunks/{care-plan-entry-card-DNkEucjN.js → care-plan-entry-card-ByqT84_P.js} +9 -9
  40. package/dist/_chunks/{care-plan-header-CJi853Rf.js → care-plan-header-BwfUHMgM.js} +6 -6
  41. package/dist/_chunks/{carousel.agent-2EhJsAtl.js → carousel.agent-WKODAYVw.js} +5 -5
  42. package/dist/_chunks/{chart-B2HnwMP5.js → chart-CuE30cfr.js} +3 -3
  43. package/dist/_chunks/{chat-container-CYYego1W.js → chat-container-CAfyTxat.js} +3 -3
  44. package/dist/_chunks/{chat-input-CHUsUFOD.js → chat-input-DA10w969.js} +2 -2
  45. package/dist/_chunks/{chat-message-DTcRGhNo.js → chat-message-DoMjMa-M.js} +5 -5
  46. package/dist/_chunks/{checkbox-group-DomUzpkF.js → checkbox-group-C7czpHmJ.js} +2 -2
  47. package/dist/_chunks/{city-input-BGYc4lRV.js → city-input-CAnTVgBZ.js} +10 -10
  48. package/dist/_chunks/{clinical-note-card-B7s5BtEl.js → clinical-note-card-kvlUrmP-.js} +6 -6
  49. package/dist/_chunks/{code-block-BrwcZNPq.js → code-block-NtHjtagI.js} +5 -5
  50. package/dist/_chunks/{color-picker-Bl5f0iK1.js → color-picker-Yl99lHuF.js} +3 -3
  51. package/dist/_chunks/{combobox-B_rLwmSv.js → combobox-Iel8y3u6.js} +2 -2
  52. package/dist/_chunks/{command-palette-DhgGo7GJ.js → command-palette-D9TBzmOG.js} +4 -4
  53. package/dist/_chunks/{connection-status-DMheLE65.js → connection-status-Dz8o-Fui.js} +4 -4
  54. package/dist/_chunks/{contact-card-0hnFJwrz.js → contact-card-D2gXrxlL.js} +12 -12
  55. package/dist/_chunks/{contact-profile-card-zQLGGFKG.js → contact-profile-card-B7cXr8g5.js} +5 -5
  56. package/dist/_chunks/{control-room-rail-5iuM3jcm.js → control-room-rail-B446rHSL.js} +3 -3
  57. package/dist/_chunks/{copy-field-C-KvrgOG.js → copy-field-CiIuVbKe.js} +2 -2
  58. package/dist/_chunks/{country-select-C5jZjO8O.js → country-select-BYa4BrEi.js} +3 -3
  59. package/dist/_chunks/{cycle-calculator-DQMCeEzn.js → cycle-calculator-D_5f9VSN.js} +10 -10
  60. package/dist/_chunks/{dashboard-grid-H7uph3HO.js → dashboard-grid-DWNP02Ff.js} +3 -3
  61. package/dist/_chunks/data-table-DJvEwZZx.js +1989 -0
  62. package/dist/_chunks/{data-table-tabs-Dd_O1nPY.js → data-table-tabs-Dc6zvoI_.js} +5 -5
  63. package/dist/_chunks/{date-picker-6tFnKFty.js → date-picker-p9yz3pxc.js} +83 -80
  64. package/dist/_chunks/{date-picker-variants-B9NLAfUK.js → date-picker-variants-B3AFKDSu.js} +706 -658
  65. package/dist/_chunks/{date-range-picker-TpmECKRh.js → date-range-picker-DIy8gNY0.js} +153 -150
  66. package/dist/_chunks/{date-time-picker-DijEae25.js → date-time-picker-C3UVzqOm.js} +86 -77
  67. package/dist/_chunks/{de-3iM4rGqo.js → de-lVkJRPnh.js} +5 -5
  68. package/dist/_chunks/{dependent-selector-58hTg5rB.js → dependent-selector-CPiolWiw.js} +4 -4
  69. package/dist/_chunks/{description-list-DOPu69Jg.js → description-list-9rchqp5q.js} +2 -2
  70. package/dist/_chunks/{dialog-BJiLqhx6.js → dialog-D52AI4nF.js} +2 -2
  71. package/dist/_chunks/{document-preview-Dzh1YAz8.js → document-preview-1CZJg6CX.js} +6 -6
  72. package/dist/_chunks/{document-scanner-BSVwMR4V.js → document-scanner-T5jHiraQ.js} +4 -4
  73. package/dist/_chunks/{dropdown-menu-DIzxr_lp.js → dropdown-menu-B5mgV1kV.js} +2 -2
  74. package/dist/_chunks/{due-date-calculator-DUjw4w5O.js → due-date-calculator-iJXm6HOj.js} +11 -11
  75. package/dist/_chunks/{editable-currency-cell-renderer-Cch3RIJL.js → editable-currency-cell-renderer-DdMHme5y.js} +8 -8
  76. package/dist/_chunks/{editable-description-CRQib91p.js → editable-description-Cy3AZ5K2.js} +2 -2
  77. package/dist/_chunks/{editor-overlay-DsA7vR5C.js → editor-overlay-C0awV6ba.js} +2 -2
  78. package/dist/_chunks/{el-C96rGJvU.js → el-CHzxNWPj.js} +6 -6
  79. package/dist/_chunks/{email-input-Dpe63k0K.js → email-input-ebdovOmh.js} +3 -3
  80. package/dist/_chunks/{empty-state-Ck1wVWdN.js → empty-state-DActfjdn.js} +2 -2
  81. package/dist/_chunks/en-GB-CwxYmmhU.js +45 -0
  82. package/dist/_chunks/{entity-summary-Cvs21xPr.js → entity-summary-oW3_jFhU.js} +6 -6
  83. package/dist/_chunks/{error-boundary-C_HAzVLO.js → error-boundary--w5hYiQ-.js} +3 -3
  84. package/dist/_chunks/{es-Cxiqjx8r.js → es-Ck-oxbHW.js} +8 -8
  85. package/dist/_chunks/{face-scheme-DVZZTuXT.js → face-scheme-Dg7KcbW2.js} +9 -9
  86. package/dist/_chunks/{fetal-weight-B-lO-948.js → fetal-weight-BoIkl2t1.js} +6 -6
  87. package/dist/_chunks/{field-array-B3IDOct8.js → field-array-BF2nCmvt.js} +2 -2
  88. package/dist/_chunks/{file-manager-COUb-w8j.js → file-manager-BGHShxn_.js} +19 -19
  89. package/dist/_chunks/{file-upload-B242a_Y1.js → file-upload-OMlGHz70.js} +2 -2
  90. package/dist/_chunks/{finished-terminal-BrAWwfOw.js → finished-terminal-BguGAUdg.js} +2 -2
  91. package/dist/_chunks/{fiscal-code-input-CwUwhUZy.js → fiscal-code-input-CuuE8_dt.js} +2 -2
  92. package/dist/_chunks/{floating-action-button-pojvb9gG.js → floating-action-button-BesoUmO_.js} +6 -6
  93. package/dist/_chunks/{form-field-CahJzTxp.js → form-field-YUJl_U5l.js} +2 -2
  94. package/dist/_chunks/{format-4HNwNGrN.js → format-D-1gTdHF.js} +47 -43
  95. package/dist/_chunks/{fr-Bhr6SYKj.js → fr-fWRnDcSD.js} +13 -13
  96. package/dist/_chunks/{freemium-paywall-DiPJrL18.js → freemium-paywall-BhxKSEJD.js} +4 -4
  97. package/dist/_chunks/{gestational-age-calculator-BVPtrWKf.js → gestational-age-calculator-CjZ7v-8x.js} +13 -13
  98. package/dist/_chunks/{hcg-doubling-CPktiA3H.js → hcg-doubling-BYMogA0e.js} +15 -15
  99. package/dist/_chunks/{header-C8NbLgVq.js → header-CzJbtTGQ.js} +4 -4
  100. package/dist/_chunks/{header-settings-D0M3WNTS.js → header-settings-BqdBe4zk.js} +6 -6
  101. package/dist/_chunks/{help-me-write-templates-CYAKuXZ3.js → help-me-write-templates-CGCyhAVE.js} +15 -15
  102. package/dist/_chunks/{hi-BxXX26d_.js → hi-B5uX0h3V.js} +14 -14
  103. package/dist/_chunks/{hover-card-BM0vNmq4.js → hover-card-DEMPFs9M.js} +2 -2
  104. package/dist/_chunks/{iban-input-DXIA8Ln_.js → iban-input-D88HRGZo.js} +2 -2
  105. package/dist/_chunks/{icon-button-group-ud2BLmxe.js → icon-button-group-DHRz90jY.js} +3 -3
  106. package/dist/_chunks/{icon-picker-B1PwkUHy.js → icon-picker-C5Fhx1-3.js} +4 -4
  107. package/dist/_chunks/{image-cropper-DM6hpXUw.js → image-cropper-CNBGkG7P.js} +2 -2
  108. package/dist/_chunks/{info-tip-CywkQ1NX.js → info-tip-DfmEvyAF.js} +3 -3
  109. package/dist/_chunks/{insert-result-Fu9AHxR6.js → insert-result-BuWQl11Z.js} +2 -2
  110. package/dist/_chunks/intl-locale-CXM-B8EP.js +16 -0
  111. package/dist/_chunks/{isSameWeek-B73MagWB.js → isSameWeek-u81Z-J7h.js} +2 -2
  112. package/dist/_chunks/{it-Xmjomvyj.js → it-DBoNIelY.js} +17 -17
  113. package/dist/_chunks/{ja-mfZvt1ZV.js → ja-Du8gfg8p.js} +6 -6
  114. package/dist/_chunks/{kbd-D855ZXIW.js → kbd-BLovyx1R.js} +2 -2
  115. package/dist/_chunks/{key-value-pair-BL1J3_Km.js → key-value-pair-DZH8ESsc.js} +2 -2
  116. package/dist/_chunks/{kit-extensions-B9Qn6VIc.js → kit-extensions-CF5mDF_Z.js} +6 -6
  117. package/dist/_chunks/{link-CPb_pZPr.js → link-BlVUIKk1.js} +2 -2
  118. package/dist/_chunks/{link-cell-renderer-BcW3F1j9.js → link-cell-renderer-DvcbSHyp.js} +11 -11
  119. package/dist/_chunks/{list-DgE1xWBM.js → list-RRN2TJ_7.js} +2 -2
  120. package/dist/_chunks/{locale-picker-Z42P8T-i.js → locale-picker-DYDppQdZ.js} +6 -6
  121. package/dist/_chunks/{map-view-DxYPJjM9.js → map-view-CmNGS6Ok.js} +3 -3
  122. package/dist/_chunks/{marketplace-app-shell-rTTvWRrE.js → marketplace-app-shell-rd1bSSm4.js} +137 -128
  123. package/dist/_chunks/{message-card-CUBPPn4Z.js → message-card-Dub3790J.js} +4 -4
  124. package/dist/_chunks/{message-tray-uy3DAIbn.js → message-tray-CTd6CsnG.js} +4 -4
  125. package/dist/_chunks/{money-BXLBIRVO.js → money-GypsuFk2.js} +2 -2
  126. package/dist/_chunks/{multi-select-N4Smh-gj.js → multi-select-Bx0_cgPI.js} +2 -2
  127. package/dist/_chunks/{muscle-scheme-CH-vQ7Ch.js → muscle-scheme-X2bdmsQt.js} +4 -4
  128. package/dist/_chunks/{nav-grid-gRudLsPX.js → nav-grid-BnY0Ilet.js} +2 -2
  129. package/dist/_chunks/{navigation-menu-D3VndouD.js → navigation-menu-DbaSlvdO.js} +25 -25
  130. package/dist/_chunks/{nl-DDs-KEnD.js → nl-BCBwxYi8.js} +9 -9
  131. package/dist/_chunks/{note-attachment-CGjNTrAC.js → note-attachment-CpPRIfSn.js} +4 -4
  132. package/dist/_chunks/{note-timeline-CVnKL0p6.js → note-timeline-CZUmobcn.js} +3 -3
  133. package/dist/_chunks/{notes-panel-Dka4Z2M7.js → notes-panel-CPfxz-1j.js} +8 -8
  134. package/dist/_chunks/{notification-card-Hy8w3UWx.js → notification-card-B39g86vM.js} +11 -11
  135. package/dist/_chunks/{notification-tray-VuV3XXB8.js → notification-tray-WsP7c1jf.js} +4 -4
  136. package/dist/_chunks/{number-input-Cgu2TtA8.js → number-input-BLrx3utH.js} +2 -2
  137. package/dist/_chunks/{operator-hero-DyrNLoRO.js → operator-hero-BnBPxwOi.js} +10 -10
  138. package/dist/_chunks/{optical-prescription-C2n6d0HO.js → optical-prescription-x--Rpmmx.js} +6 -6
  139. package/dist/_chunks/{otp-input-DzBQ-CpE.js → otp-input-Dz8WMg4F.js} +2 -2
  140. package/dist/_chunks/{pagination-B0N2qGy_.js → pagination-CzEkpfti.js} +6 -6
  141. package/dist/_chunks/{parse-DPqj4JtD.js → parse-DeDYl04y.js} +32 -32
  142. package/dist/_chunks/{parseISO-fOGpHKXm.js → parseISO-y3LncvfO.js} +2 -2
  143. package/dist/_chunks/{patient-details-D9sAM3qh.js → patient-details-BSAMAd3I.js} +6 -6
  144. package/dist/_chunks/{patient-field-row-CT04C_lZ.js → patient-field-row-dUF2cW2G.js} +27 -27
  145. package/dist/_chunks/{patient-search-DkIukAMQ.js → patient-search-CXl0FNfN.js} +13 -13
  146. package/dist/_chunks/{patient-summary-card-DI0BH-Fe.js → patient-summary-card-DF-Mxcma.js} +9 -9
  147. package/dist/_chunks/{payment-automation-upsell-vQBIyUky.js → payment-automation-upsell-DNiraNhF.js} +5 -5
  148. package/dist/_chunks/{payment-form-DqJFiplX.js → payment-form-DxsjXYHJ.js} +6 -6
  149. package/dist/_chunks/{payment-request-card-BSaJzhxz.js → payment-request-card-BFsmHLtf.js} +8 -8
  150. package/dist/_chunks/{pdf-viewer-DUKdn5iq.js → pdf-viewer-hzfM5pZf.js} +6 -6
  151. package/dist/_chunks/{periodontal-chart-BcTcOc79.js → periodontal-chart-Bvii6uOg.js} +3 -3
  152. package/dist/_chunks/{periodontal-chart-card-NS_nToBf.js → periodontal-chart-card-DTbvFQO7.js} +4 -4
  153. package/dist/_chunks/{periodontal-diagnosis-B8WqI0eU.js → periodontal-diagnosis-BqEo0usu.js} +3 -3
  154. package/dist/_chunks/{periodontal-risk-chart-DsFRFFSz.js → periodontal-risk-chart-C1Y5f-md.js} +3 -3
  155. package/dist/_chunks/{permission-matrix-VdAXjjHU.js → permission-matrix-DHKECaNW.js} +3 -3
  156. package/dist/_chunks/{phone-input-sQj-zi59.js → phone-input-opMMHkyh.js} +2 -2
  157. package/dist/_chunks/{pl-BYYMnEWP.js → pl-HwLM6gPs.js} +7 -7
  158. package/dist/_chunks/{popover-SASSeAdY.js → popover-CGYPYIVi.js} +2 -2
  159. package/dist/_chunks/{position-grid-CcvqHaKN.js → position-grid-D2D5_Tze.js} +2 -2
  160. package/dist/_chunks/{postal-code-input-BznBxVxf.js → postal-code-input-Dv02t5MD.js} +3 -3
  161. package/dist/_chunks/{practice-profile-hero-B-WcJYNH.js → practice-profile-hero-Bc3AyBiM.js} +4 -4
  162. package/dist/_chunks/{practice-results-C3ifcObw.js → practice-results-DjhcggtZ.js} +28 -28
  163. package/dist/_chunks/{pregnancy-dating-CpJ3iYvD.js → pregnancy-dating-CcPxK3S3.js} +14 -14
  164. package/dist/_chunks/{pregnancy-weight-gain-kDOhA2vZ.js → pregnancy-weight-gain-tGbbravi.js} +6 -6
  165. package/dist/_chunks/{privacy-lock-CEyvNpC8.js → privacy-lock-Bh4O7Y7g.js} +15 -15
  166. package/dist/_chunks/{privacy-mask-TzMlEu3Q.js → privacy-mask-noG15O9q.js} +24 -24
  167. package/dist/_chunks/{product-hub-panel-b70i9Hi1.js → product-hub-panel-BmBzDba9.js} +23 -23
  168. package/dist/_chunks/{progress-CK8otcQ-.js → progress-TIAsNHQW.js} +4 -4
  169. package/dist/_chunks/{province-select-BiszMRRY.js → province-select-BZtM0RSR.js} +3 -3
  170. package/dist/_chunks/{pt-BSPnVrQ7.js → pt-BxhT5ZQH.js} +10 -10
  171. package/dist/_chunks/{public-footer.agent-BKkK3T3V.js → public-footer.agent-CVYmHY94.js} +4 -4
  172. package/dist/_chunks/{public-header.agent-D0ApOrmx.js → public-header.agent-1mcrQqIM.js} +3 -3
  173. package/dist/_chunks/{qr-code-DOJs4suh.js → qr-code-C3m9o7om.js} +2 -2
  174. package/dist/_chunks/{radiograph-panel.agent-jhwaIW8U.js → radiograph-panel.agent-BP71J_VB.js} +12 -12
  175. package/dist/_chunks/{rating-BYbUowdK.js → rating-C1Vrmpsi.js} +2 -2
  176. package/dist/_chunks/{recaptcha-widget-BC-4To9b.js → recaptcha-widget-BNAeSTCo.js} +2 -2
  177. package/dist/_chunks/{resizable-DVGcfOrk.js → resizable-BKkNmZCl.js} +2 -2
  178. package/dist/_chunks/{reviews-panel-B5QC4FIp.js → reviews-panel-DDb_t7vy.js} +7 -7
  179. package/dist/_chunks/{rich-text-editor-DoBXdwmx.js → rich-text-editor-C7N4Cem6.js} +1707 -1617
  180. package/dist/_chunks/{ro-BbiylGmG.js → ro-Do9W55ae.js} +2 -2
  181. package/dist/_chunks/{ru-BX_qsV67.js → ru-PDBX5gdf.js} +13 -13
  182. package/dist/_chunks/{search-bar-6bHatpYJ.js → search-bar-Blq_QeSe.js} +4 -4
  183. package/dist/_chunks/{search-input-B7GmlPIE.js → search-input-DfsAu3P2.js} +4 -4
  184. package/dist/_chunks/{select-upNAltly.js → select-Br88h070.js} +2 -2
  185. package/dist/_chunks/{session-countdown-26XB5u38.js → session-countdown-DWUVDDox.js} +3 -3
  186. package/dist/_chunks/{sheet-CwhNzxbr.js → sheet-BE6oi30q.js} +2 -2
  187. package/dist/_chunks/{sidebar-DbZXLl8h.js → sidebar-2GBc0ZUa.js} +7 -7
  188. package/dist/_chunks/{sign-document-CRQuAn4W.js → sign-document-Buw-zC_7.js} +4 -4
  189. package/dist/_chunks/{sign-in-with-alfadocs-button-jxbze77L.js → sign-in-with-alfadocs-button-Bd4VPGQh.js} +3 -3
  190. package/dist/_chunks/{signature-capture-D6ut9_IR.js → signature-capture-F6KViBF_.js} +2 -2
  191. package/dist/_chunks/{signature-field-0rFODJlW.js → signature-field-DBIGiY-J.js} +3 -3
  192. package/dist/_chunks/{signature-request-BorHf3CY.js → signature-request-DqZkn-iB.js} +154 -154
  193. package/dist/_chunks/{signature-status-chip-Dz6sS2oA.js → signature-status-chip-DP3qRijv.js} +3 -3
  194. package/dist/_chunks/{skip-link-BaSMtPwB.js → skip-link-BOQzBUVb.js} +2 -2
  195. package/dist/_chunks/{slider-DN1CWkKB.js → slider-BRq2lL-l.js} +2 -2
  196. package/dist/_chunks/{slot-grid-xgf2UKLS.js → slot-grid-Bkg9MVXP.js} +5 -5
  197. package/dist/_chunks/{smart-date-CsPlilQA.js → smart-date-pYK6WmM_.js} +2 -2
  198. package/dist/_chunks/{social-sign-in-button-dlpPI5l7.js → social-sign-in-button-Bb2UQpsA.js} +8 -8
  199. package/dist/_chunks/{sparkline-Dx_sxK3J.js → sparkline-ZOxMBU76.js} +3 -3
  200. package/dist/_chunks/{spinner-hbwuKwMf.js → spinner-DxjSZLD-.js} +2 -2
  201. package/dist/_chunks/{sq-i9UOk4P7.js → sq-DnvsgyIh.js} +6 -6
  202. package/dist/_chunks/{stat-Bs80Z6Yv.js → stat-Ce9ymEKm.js} +3 -3
  203. package/dist/_chunks/{stepper-accordion-jMR8NaOB.js → stepper-accordion-BPNS6J6B.js} +2 -2
  204. package/dist/_chunks/{stepper-progress-Bv0njx4g.js → stepper-progress-D6H8wQiV.js} +2 -2
  205. package/dist/_chunks/{streaming-text-Cos2fVTw.js → streaming-text-D0IJeRBg.js} +2 -2
  206. package/dist/_chunks/subDays-XBMBTVOO.js +8 -0
  207. package/dist/_chunks/{suggestion-chip-Bk4PmYTg.js → suggestion-chip-BNRWZL51.js} +2 -2
  208. package/dist/_chunks/{sv-CpTdtmDQ.js → sv-CpFSK8xS.js} +4 -4
  209. package/dist/_chunks/{switch-OILsBLWo.js → switch-DXGD2Drz.js} +2 -2
  210. package/dist/_chunks/{tab-bar-BrkMUW0c.js → tab-bar-DRKiomgj.js} +4 -4
  211. package/dist/_chunks/{tabs-tK22Mz7r.js → tabs-DLXVEDsa.js} +4 -4
  212. package/dist/_chunks/{tag-B65tLWvD.js → tag-CS5cXpfx.js} +2 -2
  213. package/dist/_chunks/{task-card-CLpHmqEY.js → task-card-CngF4Zee.js} +3 -3
  214. package/dist/_chunks/{task-editor-B4UGsU7l.js → task-editor-Dz93rRXg.js} +15 -15
  215. package/dist/_chunks/{task-tray-dsmYgjVb.js → task-tray-CB6_BvH9.js} +4 -4
  216. package/dist/_chunks/{tasks-panel-CwwVw491.js → tasks-panel-DHAoTQtR.js} +9 -9
  217. package/dist/_chunks/{text-area-Bt3p7Pt0.js → text-area-Cjtw7mna.js} +2 -2
  218. package/dist/_chunks/{text-input-CUvCb6ST.js → text-input-CLaItY93.js} +2 -2
  219. package/dist/_chunks/{theme-toggle-jyoyhbJL.js → theme-toggle-Byg0x2vB.js} +9 -9
  220. package/dist/_chunks/{time-picker-D0RS391l.js → time-picker-BG7G3ujX.js} +2 -2
  221. package/dist/_chunks/{timeline-ChY7iZrs.js → timeline-CVLjybJ3.js} +4 -4
  222. package/dist/_chunks/{timestamp-BV2lC-wV.js → timestamp-DPLDWdxA.js} +2 -2
  223. package/dist/_chunks/{toast-FijDyPnv.js → toast-6wbpghjF.js} +2 -2
  224. package/dist/_chunks/{token-insert-menu-Cjf99IdN.js → token-insert-menu-DgtBIbNu.js} +2 -2
  225. package/dist/_chunks/{tool-rail-DphMl1hX.js → tool-rail-CXcLzxPb.js} +3 -3
  226. package/dist/_chunks/{tooth-finding-palette-vqC-D2Ye.js → tooth-finding-palette-DNQ3G2Tz.js} +2 -2
  227. package/dist/_chunks/{tooth-scheme-BaCJnyg9.js → tooth-scheme-BLbwUVer.js} +5 -5
  228. package/dist/_chunks/{tr-DXG2QN1K.js → tr-DW4oQYHT.js} +5 -5
  229. package/dist/_chunks/{transaction-chip-CwgcJiqF.js → transaction-chip-CohY6sTA.js} +6 -6
  230. package/dist/_chunks/{transcript-panel-u2HHxZB6.js → transcript-panel-Dve7bsm7.js} +3 -3
  231. package/dist/_chunks/{treatment-receipt-C-gWZ6uv.js → treatment-receipt-DF2Slh-x.js} +5 -5
  232. package/dist/_chunks/{typing-indicator-DHeVN4ob.js → typing-indicator-BmwMQSxw.js} +9 -9
  233. package/dist/_chunks/{unit-converter-CGpOgarU.js → unit-converter-D8WnJbZm.js} +6 -6
  234. package/dist/_chunks/use-appointment-details-read-YsuJgYeB.js +2198 -0
  235. package/dist/_chunks/{use-edge-resize-BHesP0kg.js → use-edge-resize-DHbyQwu8.js} +15 -15
  236. package/dist/_chunks/use-locale-BExNy9Dl.js +16 -0
  237. package/dist/_chunks/{use-password-requirements-Bwtqx1qN.js → use-password-requirements-DK4hV1Ik.js} +4 -4
  238. package/dist/_chunks/{variables-menu-aJLKJ_cu.js → variables-menu-DQl8H4Gh.js} +2 -2
  239. package/dist/_chunks/{wallet-pay-button--dnR6NfJ.js → wallet-pay-button-C-GFl7RO.js} +3 -3
  240. package/dist/_chunks/{warning-stack-7Hffm7K1.js → warning-stack-CzKSeB5v.js} +3 -3
  241. package/dist/_chunks/{whatsapp-button-Ai4YAVkl.js → whatsapp-button-DV9JFmtq.js} +2 -2
  242. package/dist/_chunks/{widget-picker-CilQvcNL.js → widget-picker-b5NCHxFe.js} +28 -28
  243. package/dist/_chunks/{workflow-map-Jfe9L9Wt.js → workflow-map-C7fHKTXL.js} +15 -15
  244. package/dist/_chunks/{workflow-status-jHfsIDzi.js → workflow-status-DDnsIrLt.js} +4 -4
  245. package/dist/_chunks/{zh-CN-vPkPEK6H.js → zh-CN-QGEs29fQ.js} +7 -7
  246. package/dist/agent-catalog.json +1 -1
  247. package/dist/components/_shared/date-locale.d.ts +2 -2
  248. package/dist/components/_shared/day-picker-labels.d.ts +6 -0
  249. package/dist/components/_shared/intl-locale.d.ts +10 -0
  250. package/dist/components/address-autocomplete/index.js +1 -1
  251. package/dist/components/address-fields/index.js +1 -1
  252. package/dist/components/agenda-card/index.js +1 -1
  253. package/dist/components/agenda-tray/index.js +1 -1
  254. package/dist/components/ai-credits-notice/index.js +1 -1
  255. package/dist/components/ai-permission-notice/index.js +1 -1
  256. package/dist/components/ai-prompt-input/index.js +1 -1
  257. package/dist/components/alert/index.js +1 -1
  258. package/dist/components/anamnesis-card/index.js +1 -1
  259. package/dist/components/anamnesis-summary-card/index.js +1 -1
  260. package/dist/components/annotation-marker/index.js +1 -1
  261. package/dist/components/app-frame/index.js +1 -1
  262. package/dist/components/appointment-card/index.js +2 -2
  263. package/dist/components/appointment-details-panel/appointment-details-panel.d.ts +3 -0
  264. package/dist/components/appointment-details-panel/appointment-details-panel.history.d.ts +19 -5
  265. package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts +6 -2
  266. package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts +51 -1
  267. package/dist/components/appointment-details-panel/index.d.ts +1 -1
  268. package/dist/components/appointment-details-panel/index.js +1 -1
  269. package/dist/components/appointment-peek/index.js +1 -1
  270. package/dist/components/appointment-timeline/index.js +1 -1
  271. package/dist/components/audio-recorder/index.js +1 -1
  272. package/dist/components/audio-visualiser/index.js +1 -1
  273. package/dist/components/autocomplete/index.js +1 -1
  274. package/dist/components/avatar/index.js +1 -1
  275. package/dist/components/badge/index.js +1 -1
  276. package/dist/components/bishop-score/index.js +1 -1
  277. package/dist/components/bmi-calculator/index.js +1 -1
  278. package/dist/components/booking/index.js +1 -1
  279. package/dist/components/breadcrumb/index.js +1 -1
  280. package/dist/components/button-group/index.js +1 -1
  281. package/dist/components/calculator-dialog/index.js +1 -1
  282. package/dist/components/calendar/calendar-locale.d.ts +5 -0
  283. package/dist/components/calendar/calendar.d.ts +1 -1
  284. package/dist/components/calendar/index.js +1 -1
  285. package/dist/components/calendar-event-card/index.js +1 -1
  286. package/dist/components/care-plan-card/index.js +1 -1
  287. package/dist/components/care-plan-entry-card/index.js +1 -1
  288. package/dist/components/care-plan-header/index.js +1 -1
  289. package/dist/components/carousel/index.js +1 -1
  290. package/dist/components/chart/index.js +1 -1
  291. package/dist/components/chat-container/index.js +1 -1
  292. package/dist/components/chat-input/index.js +1 -1
  293. package/dist/components/chat-message/index.js +1 -1
  294. package/dist/components/checkbox-group/index.js +1 -1
  295. package/dist/components/city-input/index.js +1 -1
  296. package/dist/components/clinical-note-card/index.js +1 -1
  297. package/dist/components/color-picker/index.js +1 -1
  298. package/dist/components/combobox/index.js +1 -1
  299. package/dist/components/command-palette/index.js +1 -1
  300. package/dist/components/connection-status/index.js +1 -1
  301. package/dist/components/contact-card/index.js +1 -1
  302. package/dist/components/contact-profile-card/index.js +1 -1
  303. package/dist/components/control-room-rail/index.js +1 -1
  304. package/dist/components/copy-field/index.js +1 -1
  305. package/dist/components/country-select/index.js +1 -1
  306. package/dist/components/cycle-calculator/index.js +1 -1
  307. package/dist/components/dashboard-grid/index.js +1 -1
  308. package/dist/components/data-table/ag-grid-locale.d.ts +5 -0
  309. package/dist/components/data-table/index.js +4 -4
  310. package/dist/components/data-table-tabs/index.js +1 -1
  311. package/dist/components/date-picker/index.js +1 -1
  312. package/dist/components/date-range-picker/index.js +1 -1
  313. package/dist/components/date-time-picker/index.js +1 -1
  314. package/dist/components/dependent-selector/index.js +1 -1
  315. package/dist/components/description-list/index.js +1 -1
  316. package/dist/components/dialog/index.js +1 -1
  317. package/dist/components/document-preview/index.js +1 -1
  318. package/dist/components/document-scanner/index.js +1 -1
  319. package/dist/components/dropdown-menu/index.js +1 -1
  320. package/dist/components/due-date-calculator/index.js +2 -2
  321. package/dist/components/editable-description/index.js +1 -1
  322. package/dist/components/editor-overlay/index.js +1 -1
  323. package/dist/components/email-input/index.js +1 -1
  324. package/dist/components/empty-state/index.js +1 -1
  325. package/dist/components/entity-summary/index.js +1 -1
  326. package/dist/components/error-boundary/index.js +1 -1
  327. package/dist/components/face-scheme/index.js +1 -1
  328. package/dist/components/fetal-weight/index.js +1 -1
  329. package/dist/components/field-array/index.js +1 -1
  330. package/dist/components/file-manager/index.js +1 -1
  331. package/dist/components/file-upload/index.js +1 -1
  332. package/dist/components/finished-terminal/index.js +1 -1
  333. package/dist/components/fiscal-code-input/index.js +1 -1
  334. package/dist/components/floating-action-button/index.js +1 -1
  335. package/dist/components/form-field/index.js +1 -1
  336. package/dist/components/freemium-paywall/index.js +1 -1
  337. package/dist/components/gestational-age-calculator/index.js +1 -1
  338. package/dist/components/hcg-doubling/hcg.d.ts +1 -1
  339. package/dist/components/hcg-doubling/index.js +1 -1
  340. package/dist/components/header/index.js +1 -1
  341. package/dist/components/header-settings/index.js +1 -1
  342. package/dist/components/hover-card/index.js +1 -1
  343. package/dist/components/iban-input/index.js +1 -1
  344. package/dist/components/icon-button-group/index.js +1 -1
  345. package/dist/components/icon-picker/index.js +1 -1
  346. package/dist/components/image-cropper/index.js +1 -1
  347. package/dist/components/info-tip/index.js +1 -1
  348. package/dist/components/kbd/index.js +1 -1
  349. package/dist/components/key-value-pair/index.js +1 -1
  350. package/dist/components/link/index.js +1 -1
  351. package/dist/components/list/index.js +1 -1
  352. package/dist/components/locale-picker/index.js +1 -1
  353. package/dist/components/map-view/index.js +1 -1
  354. package/dist/components/message-card/index.js +1 -1
  355. package/dist/components/message-tray/index.js +1 -1
  356. package/dist/components/money/index.js +1 -1
  357. package/dist/components/multi-select/index.js +1 -1
  358. package/dist/components/muscle-scheme/index.js +1 -1
  359. package/dist/components/nav-grid/index.js +1 -1
  360. package/dist/components/navigation-menu/index.js +2 -2
  361. package/dist/components/note-timeline/index.js +1 -1
  362. package/dist/components/notes-panel/index.js +1 -1
  363. package/dist/components/notification-card/index.js +1 -1
  364. package/dist/components/notification-tray/index.js +1 -1
  365. package/dist/components/number-input/index.js +1 -1
  366. package/dist/components/operator-hero/index.js +1 -1
  367. package/dist/components/optical-prescription/index.js +1 -1
  368. package/dist/components/otp-input/index.js +1 -1
  369. package/dist/components/pagination/index.js +1 -1
  370. package/dist/components/password-input/index.js +1 -1
  371. package/dist/components/patient-details/index.js +1 -1
  372. package/dist/components/patient-search/index.js +1 -1
  373. package/dist/components/patient-summary-card/index.js +1 -1
  374. package/dist/components/patient-table/index.js +1 -1
  375. package/dist/components/payment-card/index.js +1 -1
  376. package/dist/components/payment-form/index.js +1 -1
  377. package/dist/components/pdf-viewer/index.js +1 -1
  378. package/dist/components/periodontal-chart/index.js +1 -1
  379. package/dist/components/periodontal-chart-card/index.js +1 -1
  380. package/dist/components/periodontal-diagnosis/index.js +1 -1
  381. package/dist/components/periodontal-risk-chart/index.js +1 -1
  382. package/dist/components/permission-matrix/index.js +1 -1
  383. package/dist/components/phone-input/index.js +1 -1
  384. package/dist/components/popover/index.js +1 -1
  385. package/dist/components/position-grid/index.js +1 -1
  386. package/dist/components/postal-code-input/index.js +1 -1
  387. package/dist/components/practice-profile-hero/index.js +1 -1
  388. package/dist/components/practice-results/index.js +1 -1
  389. package/dist/components/pregnancy-dating/index.js +1 -1
  390. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  391. package/dist/components/privacy-lock/index.js +1 -1
  392. package/dist/components/product-hub-tray/index.js +1 -1
  393. package/dist/components/progress/index.js +1 -1
  394. package/dist/components/province-select/index.js +1 -1
  395. package/dist/components/public-footer/index.js +1 -1
  396. package/dist/components/public-header/index.js +1 -1
  397. package/dist/components/qr-code/index.js +1 -1
  398. package/dist/components/radiograph-panel/index.js +1 -1
  399. package/dist/components/rating/index.js +1 -1
  400. package/dist/components/recaptcha-widget/index.js +1 -1
  401. package/dist/components/resizable/index.js +1 -1
  402. package/dist/components/reviews-panel/index.js +1 -1
  403. package/dist/components/rich-text-editor/index.js +2 -2
  404. package/dist/components/rich-text-editor/redactor-locale.d.ts +4 -0
  405. package/dist/components/rich-text-editor/rich-text-editor.d.ts +8 -3
  406. package/dist/components/search-bar/index.js +1 -1
  407. package/dist/components/search-input/index.js +1 -1
  408. package/dist/components/select/index.js +1 -1
  409. package/dist/components/session-countdown/index.js +1 -1
  410. package/dist/components/sheet/index.js +1 -1
  411. package/dist/components/sidebar/index.js +1 -1
  412. package/dist/components/sign-document/index.js +1 -1
  413. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  414. package/dist/components/signature-capture/index.js +1 -1
  415. package/dist/components/signature-field/index.js +1 -1
  416. package/dist/components/signature-status-chip/index.js +1 -1
  417. package/dist/components/skeleton-scheme/index.js +3 -3
  418. package/dist/components/skip-link/index.js +1 -1
  419. package/dist/components/skip-link/skip-link.d.ts +1 -1
  420. package/dist/components/slider/index.js +1 -1
  421. package/dist/components/slot-grid/index.js +1 -1
  422. package/dist/components/smart-date/index.js +1 -1
  423. package/dist/components/smart-date/smart-date.d.ts +1 -1
  424. package/dist/components/social-sign-in-button/index.js +1 -1
  425. package/dist/components/sparkline/index.js +1 -1
  426. package/dist/components/spinner/index.js +1 -1
  427. package/dist/components/stat/index.js +1 -1
  428. package/dist/components/stepper-accordion/index.js +1 -1
  429. package/dist/components/stepper-progress/index.js +1 -1
  430. package/dist/components/streaming-text/index.js +1 -1
  431. package/dist/components/suggestion-chip/index.js +1 -1
  432. package/dist/components/switch/index.js +1 -1
  433. package/dist/components/tab-bar/index.js +1 -1
  434. package/dist/components/tabs/index.js +1 -1
  435. package/dist/components/tag/index.js +1 -1
  436. package/dist/components/task-card/index.js +1 -1
  437. package/dist/components/task-editor/index.js +1 -1
  438. package/dist/components/task-tray/index.js +1 -1
  439. package/dist/components/tasks-panel/index.js +1 -1
  440. package/dist/components/text-area/index.js +1 -1
  441. package/dist/components/text-input/index.js +1 -1
  442. package/dist/components/theme-toggle/index.js +1 -1
  443. package/dist/components/time-picker/index.js +1 -1
  444. package/dist/components/timeline/index.js +1 -1
  445. package/dist/components/timestamp/index.js +1 -1
  446. package/dist/components/toast/index.js +1 -1
  447. package/dist/components/token-insert-menu/index.js +1 -1
  448. package/dist/components/tool-rail/index.js +1 -1
  449. package/dist/components/tooth-finding-palette/index.js +1 -1
  450. package/dist/components/tooth-scheme/index.js +1 -1
  451. package/dist/components/transaction-chip/index.js +1 -1
  452. package/dist/components/transcript-panel/index.js +1 -1
  453. package/dist/components/treatment-receipt/index.js +1 -1
  454. package/dist/components/typing-indicator/index.js +1 -1
  455. package/dist/components/unit-converter/index.js +1 -1
  456. package/dist/components/variables-menu/index.js +1 -1
  457. package/dist/components/wallet-pay-button/index.js +1 -1
  458. package/dist/components/warning-stack/index.js +1 -1
  459. package/dist/components/whatsapp-button/index.js +1 -1
  460. package/dist/components/widget-picker/index.js +1 -1
  461. package/dist/components/workflow/index.js +1 -1
  462. package/dist/components/workflow-status/index.js +2 -2
  463. package/dist/hooks/index.js +2 -2
  464. package/dist/hooks/use-locale.d.ts +2 -16
  465. package/dist/i18n/config.d.ts +17 -13
  466. package/dist/i18n/config.js +127 -62
  467. package/dist/i18n/locale-meta.d.ts +1 -1
  468. package/dist/i18n/locales/ar.d.ts +911 -661
  469. package/dist/i18n/locales/ar.js +912 -666
  470. package/dist/i18n/locales/de.d.ts +718 -480
  471. package/dist/i18n/locales/de.js +719 -485
  472. package/dist/i18n/locales/el.d.ts +960 -722
  473. package/dist/i18n/locales/el.js +960 -726
  474. package/dist/i18n/locales/en.d.ts +303 -65
  475. package/dist/i18n/locales/en.js +304 -70
  476. package/dist/i18n/locales/es.d.ts +782 -541
  477. package/dist/i18n/locales/es.js +783 -546
  478. package/dist/i18n/locales/fr.d.ts +725 -484
  479. package/dist/i18n/locales/fr.js +726 -489
  480. package/dist/i18n/locales/hi.d.ts +870 -632
  481. package/dist/i18n/locales/hi.js +871 -637
  482. package/dist/i18n/locales/it.d.ts +933 -692
  483. package/dist/i18n/locales/it.js +939 -697
  484. package/dist/i18n/locales/ja.d.ts +693 -455
  485. package/dist/i18n/locales/ja.js +694 -460
  486. package/dist/i18n/locales/nl.d.ts +718 -480
  487. package/dist/i18n/locales/nl.js +719 -485
  488. package/dist/i18n/locales/pl.d.ts +1014 -770
  489. package/dist/i18n/locales/pl.js +1014 -774
  490. package/dist/i18n/locales/pt.d.ts +806 -562
  491. package/dist/i18n/locales/pt.js +807 -567
  492. package/dist/i18n/locales/ro.d.ts +1055 -814
  493. package/dist/i18n/locales/ro.js +1056 -819
  494. package/dist/i18n/locales/ru.d.ts +1032 -788
  495. package/dist/i18n/locales/ru.js +1027 -787
  496. package/dist/i18n/locales/sq.d.ts +1284 -1046
  497. package/dist/i18n/locales/sq.js +1284 -1050
  498. package/dist/i18n/locales/sv.d.ts +804 -566
  499. package/dist/i18n/locales/sv.js +805 -571
  500. package/dist/i18n/locales/tr.d.ts +763 -525
  501. package/dist/i18n/locales/tr.js +764 -530
  502. package/dist/i18n/locales/zh.d.ts +752 -514
  503. package/dist/i18n/locales/zh.js +753 -519
  504. package/dist/i18n/registerUiBundle.d.ts +3 -2
  505. package/dist/i18n/resources.d.ts +2 -7
  506. package/dist/i18n/supported-locales.d.ts +8 -0
  507. package/dist/index.js +212 -212
  508. package/dist/locales/ar.json +916 -666
  509. package/dist/locales/de.json +723 -485
  510. package/dist/locales/el.json +965 -727
  511. package/dist/locales/en.json +308 -70
  512. package/dist/locales/es.json +787 -546
  513. package/dist/locales/fr.json +730 -489
  514. package/dist/locales/hi.json +875 -637
  515. package/dist/locales/it.json +938 -697
  516. package/dist/locales/ja.json +698 -460
  517. package/dist/locales/nl.json +723 -485
  518. package/dist/locales/pl.json +1019 -775
  519. package/dist/locales/pt.json +811 -567
  520. package/dist/locales/ro.json +1060 -819
  521. package/dist/locales/ru.json +1037 -793
  522. package/dist/locales/sq.json +1289 -1051
  523. package/dist/locales/sv.json +809 -571
  524. package/dist/locales/tr.json +768 -530
  525. package/dist/locales/zh.json +757 -519
  526. package/dist/patterns/alia-assistant/index.js +1 -1
  527. package/dist/patterns/anamnesis/anamnesis-format.d.ts +1 -1
  528. package/dist/patterns/anamnesis/anamnesis-i18n.d.ts +3 -2
  529. package/dist/patterns/anamnesis/index.js +1 -1
  530. package/dist/patterns/anamnesis/locales/ar.d.ts +776 -0
  531. package/dist/patterns/anamnesis/locales/de.d.ts +740 -0
  532. package/dist/patterns/anamnesis/locales/el.d.ts +740 -0
  533. package/dist/patterns/anamnesis/locales/en.d.ts +740 -0
  534. package/dist/patterns/anamnesis/locales/es.d.ts +749 -0
  535. package/dist/patterns/anamnesis/locales/fr.d.ts +749 -0
  536. package/dist/patterns/anamnesis/locales/hi.d.ts +740 -0
  537. package/dist/patterns/anamnesis/locales/it.d.ts +749 -0
  538. package/dist/patterns/anamnesis/locales/ja.d.ts +740 -0
  539. package/dist/patterns/anamnesis/locales/nl.d.ts +740 -0
  540. package/dist/patterns/anamnesis/locales/pl.d.ts +758 -0
  541. package/dist/patterns/anamnesis/locales/pt.d.ts +758 -0
  542. package/dist/patterns/anamnesis/locales/ro.d.ts +749 -0
  543. package/dist/patterns/anamnesis/locales/ru.d.ts +758 -0
  544. package/dist/patterns/anamnesis/locales/sq.d.ts +740 -0
  545. package/dist/patterns/anamnesis/locales/sv.d.ts +740 -0
  546. package/dist/patterns/anamnesis/locales/tr.d.ts +740 -0
  547. package/dist/patterns/anamnesis/locales/zh.d.ts +740 -0
  548. package/dist/patterns/calendar/calendar-appointment-details.d.ts +4 -1
  549. package/dist/patterns/calendar/calendar-workspace.d.ts +5 -0
  550. package/dist/patterns/calendar/calendar.sheets.d.ts +4 -1
  551. package/dist/patterns/calendar/calendar.types.d.ts +3 -1
  552. package/dist/patterns/calendar/index.d.ts +1 -1
  553. package/dist/patterns/calendar/index.js +1 -1
  554. package/dist/patterns/help-me-write-templates/index.js +1 -1
  555. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  556. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  557. package/dist/patterns/signature-request/index.js +1 -1
  558. package/dist/tokens.css +5 -2
  559. package/package.json +12 -2
  560. package/dist/_chunks/anamnesis-summary-rows-D9LZZHLw.js +0 -9416
  561. package/dist/_chunks/data-table-C4yPR89K.js +0 -1824
  562. package/dist/_chunks/subDays-HPvBuvq3.js +0 -8
  563. package/dist/_chunks/use-appointment-details-read-uEnJLVfA.js +0 -2045
  564. package/dist/_chunks/use-locale-BkCIHujH.js +0 -20
@@ -0,0 +1,2198 @@
1
+ import { jsx as e, jsxs as p, Fragment as Q } from "react/jsx-runtime";
2
+ import { c as st } from "./index-D2ZczOXr.js";
3
+ import { useId as Ye, useRef as M, forwardRef as Qt, useEffect as pe, useMemo as wt, useState as B, useCallback as Xt } from "react";
4
+ import { useTranslation as $ } from "react-i18next";
5
+ import { u as Jt } from "./registry-DvAUVLHh.js";
6
+ import { u as te } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
7
+ import { c as Zt } from "./compose-refs-C0k0tdqF.js";
8
+ import { h as Ue, g as Qe } from "./handled-rejection-6gqCf5vt.js";
9
+ import { a as en, b as xt } from "./privacy-mask-noG15O9q.js";
10
+ import { A as F } from "./alert-BhCstf2h.js";
11
+ import { B as _ } from "./button-CYPx2xFq.js";
12
+ import { I as Lt } from "./icon-button-JAXAkqWC.js";
13
+ import { B as tn } from "./button-group-DnSR6eN6.js";
14
+ import { D as _e } from "./dropdown-menu-B5mgV1kV.js";
15
+ import { E as zt } from "./editable-description-Cy3AZ5K2.js";
16
+ import { N as Xe } from "./note-timeline-CZUmobcn.js";
17
+ import { P as _t } from "./panel-header-D_mTdhUp.js";
18
+ import { P as Ge } from "./panel-subview-DAY-ToM3.js";
19
+ import { P as Ot } from "./patient-summary-card-DF-Mxcma.js";
20
+ import { S as ne } from "./section-card-XR2bW1Ie.js";
21
+ import { C as nn, S as ue } from "./skeleton-B1KTdJ4N.js";
22
+ import { T as an } from "./text-area-Cjtw7mna.js";
23
+ import { T as sn } from "./tooltip-Cp-PLePW.js";
24
+ import { T as Bt } from "./treatment-receipt-DF2Slh-x.js";
25
+ import { a as Nt } from "./whatsapp-button-DV9JFmtq.js";
26
+ import { a as Ft, W as on } from "./workflow-status-DDnsIrLt.js";
27
+ import { u as ot, a as At, i as rn } from "./appointment-workflow-status-DrWCNLbB.js";
28
+ import { E as dn } from "./empty-state-DActfjdn.js";
29
+ import { T as Ae } from "./timeline-CVLjybJ3.js";
30
+ import { C as rt } from "./calendar-clock-hbObjfGY.js";
31
+ import { T as $t } from "./trash-2-uumy3fy1.js";
32
+ import { A as Ve } from "./entity-card-D1Yrh9wf.js";
33
+ import { C as ln } from "./calendar-plus-BFrIRE4r.js";
34
+ import { P as me } from "./pencil-B1sKKyuT.js";
35
+ import { C as Je } from "./clock-Drd4Wtis.js";
36
+ import { c as Fe } from "./createLucideIcon-DhHxpK9K.js";
37
+ import { A as cn } from "./arrow-right-KsIrLdt0.js";
38
+ import { A as Ze } from "./avatar-DYtwj1-R.js";
39
+ import { B as $e } from "./badge-hnBt8o7n.js";
40
+ import { H as dt } from "./heart-pulse-BCppJyN2.js";
41
+ import { G as un } from "./globe-sHBW1JN5.js";
42
+ import { T as mn } from "./triangle-alert-CBnO6nq_.js";
43
+ import { E as pn } from "./euro-Dsuz4ixO.js";
44
+ import { V as lt } from "./video-BheNGvsu.js";
45
+ import { R as Ht } from "./repeat-CvQa5rZt.js";
46
+ import { C as hn } from "./counter-WsvRuum1.js";
47
+ import { D as Oe } from "./description-list-9rchqp5q.js";
48
+ import { T as St } from "./timestamp-DPLDWdxA.js";
49
+ import { T as fn } from "./transaction-chip-CohY6sTA.js";
50
+ import { H as he } from "./hover-card-DEMPFs9M.js";
51
+ import { S as gn } from "./smartphone-C0rFF2if.js";
52
+ import { P as vn } from "./phone-FceYcIFQ.js";
53
+ import { M as yn } from "./mail-BqXVF2zH.js";
54
+ import { M as bn } from "./map-pin-BaY37-Km.js";
55
+ import { C as kn } from "./calendar-days-BGWklvE-.js";
56
+ import { H as wn } from "./patient-field-row-dUF2cW2G.js";
57
+ import { A as It } from "./armchair-BaLDW6Hz.js";
58
+ import { B as xn } from "./building-2-D33bLCWL.js";
59
+ import { N as Nn } from "./notebook-pen-CO7HoM-W.js";
60
+ import { C as Wt } from "./clipboard-list-rSzfIYZB.js";
61
+ import { C as An } from "./copy-vRpqqHtY.js";
62
+ import { P as Sn } from "./plus-DzMQ_c6b.js";
63
+ import { S as In } from "./square-check-big-dj0o8yA3.js";
64
+ import { H as Tt } from "./history-CK2JaU2g.js";
65
+ import { C as Tn } from "./chevron-down-DWE7GSq9.js";
66
+ import { C as Dn } from "./camera-VSklPDCv.js";
67
+ import { F as Cn } from "./file-BuG1VMAy.js";
68
+ import { F as En } from "./file-text-5yv6r2ls.js";
69
+ import { F as Rn } from "./folder-BghC8_S2.js";
70
+ import { R as Pn } from "./receipt-euro-B1cLM_TN.js";
71
+ /**
72
+ * @license lucide-react v1.22.0 - ISC
73
+ *
74
+ * This source code is licensed under the ISC license.
75
+ * See the LICENSE file in the root directory of this source tree.
76
+ */
77
+ const Mn = [
78
+ ["path", { d: "M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8", key: "1w3rig" }],
79
+ ["path", { d: "M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1", key: "n2jgmb" }],
80
+ ["path", { d: "M2 21h20", key: "1nyx9w" }],
81
+ ["path", { d: "M7 8v3", key: "1qtyvj" }],
82
+ ["path", { d: "M12 8v3", key: "hwp4zt" }],
83
+ ["path", { d: "M17 8v3", key: "1i6e5u" }],
84
+ ["path", { d: "M7 4h.01", key: "1bh4kh" }],
85
+ ["path", { d: "M12 4h.01", key: "1ujb9j" }],
86
+ ["path", { d: "M17 4h.01", key: "1upcoc" }]
87
+ ], Ln = Fe("cake", Mn);
88
+ /**
89
+ * @license lucide-react v1.22.0 - ISC
90
+ *
91
+ * This source code is licensed under the ISC license.
92
+ * See the LICENSE file in the root directory of this source tree.
93
+ */
94
+ const zn = [
95
+ ["path", { d: "M11 14h10", key: "1w8e9d" }],
96
+ ["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344", key: "1e62lh" }],
97
+ ["path", { d: "m17 18 4-4-4-4", key: "z2g111" }],
98
+ ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113", key: "bjbb7m" }],
99
+ ["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
100
+ ], Dt = Fe("clipboard-paste", zn);
101
+ /**
102
+ * @license lucide-react v1.22.0 - ISC
103
+ *
104
+ * This source code is licensed under the ISC license.
105
+ * See the LICENSE file in the root directory of this source tree.
106
+ */
107
+ const _n = [
108
+ ["path", { d: "M16 10h2", key: "8sgtl7" }],
109
+ ["path", { d: "M16 14h2", key: "epxaof" }],
110
+ ["path", { d: "M6.17 15a3 3 0 0 1 5.66 0", key: "n6f512" }],
111
+ ["circle", { cx: "9", cy: "11", r: "2", key: "yxgjnd" }],
112
+ ["rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", key: "qneu4z" }]
113
+ ], On = Fe("id-card", _n);
114
+ /**
115
+ * @license lucide-react v1.22.0 - ISC
116
+ *
117
+ * This source code is licensed under the ISC license.
118
+ * See the LICENSE file in the root directory of this source tree.
119
+ */
120
+ const Bn = [
121
+ ["path", { d: "M12 2v20", key: "t6zp3m" }],
122
+ ["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
123
+ ["path", { d: "m19 9 3 3-3 3", key: "1mg7y2" }],
124
+ ["path", { d: "M2 12h20", key: "9i4pu4" }],
125
+ ["path", { d: "m5 9-3 3 3 3", key: "j64kie" }],
126
+ ["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
127
+ ], et = Fe("move", Bn), Fn = '[data-component="button-group"] [data-component="icon-button"][aria-haspopup="menu"]', $n = {
128
+ id: "appointment-details-panel",
129
+ // open and close back open_history and close_history; set_value backs
130
+ // set_status.
131
+ capabilities: ["open", "close", "set_value"],
132
+ state: {
133
+ eventId: {
134
+ type: "string | null",
135
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.eventId",
136
+ description: "The occurrence on screen or being read, as the host identifies it. After a failed or refused read, the occurrence it was for when the host says so. Null when there is none, or the host did not say.",
137
+ read: (t) => t.getEventId()
138
+ },
139
+ loadStatus: {
140
+ type: "'loading' | 'ready' | 'error' | 'refused'",
141
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.loadStatus",
142
+ description: "Where the read is: loading, ready, failed (with Retry) or refused. Actions need ready.",
143
+ read: (t) => t.getLoadStatus()
144
+ },
145
+ appointmentStatus: {
146
+ type: "'confirmed' | 'waiting' | 'in_care' | 'done' | 'cancelled' | 'absent' | null",
147
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.appointmentStatus",
148
+ description: "The appointment status as last saved here or read. Null when none is recorded or nothing is on screen.",
149
+ read: (t) => t.getAppointmentStatus()
150
+ },
151
+ allowedStatuses: {
152
+ type: "string[]",
153
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.allowedStatuses",
154
+ description: "The statuses set_status accepts now, in menu order. Empty when the status is read-only.",
155
+ read: (t) => t.getAllowedStatuses()
156
+ },
157
+ offeredActions: {
158
+ type: "string[]",
159
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.offeredActions",
160
+ description: "The footer actions on offer, as their data-action values (for example edit-appointment, delete-appointment), in footer order, including any folded into More.",
161
+ read: (t) => t.getOfferedActions()
162
+ },
163
+ historyOpen: {
164
+ type: "boolean",
165
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.historyOpen",
166
+ description: "Whether the History sub-view covers the details.",
167
+ read: (t) => t.isHistoryOpen()
168
+ },
169
+ privacy: {
170
+ type: "boolean",
171
+ descriptionKey: "ui.agent.appointmentDetailsPanel.state.privacy",
172
+ description: "Whether privacy mode is on. The patient identity and personal fields are then masked on screen.",
173
+ read: (t) => t.isPrivacy()
174
+ }
175
+ },
176
+ actions: {
177
+ open_history: {
178
+ safety: "read",
179
+ openWorld: !0,
180
+ idempotent: !0,
181
+ errors: ["No appointment is on screen, or History is not offered."],
182
+ descriptionKey: "ui.agent.appointmentDetailsPanel.actions.openHistory",
183
+ description: "Slide the appointment's history over the details, as its header button does; the host reads it then if it did not send it with the details. It lists who changed what, and when.",
184
+ invoke: (t) => t.openHistory()
185
+ },
186
+ close_history: {
187
+ safety: "read",
188
+ idempotent: !0,
189
+ descriptionKey: "ui.agent.appointmentDetailsPanel.actions.closeHistory",
190
+ description: "Return from History to the details.",
191
+ invoke: (t) => t.closeHistory()
192
+ },
193
+ set_status: {
194
+ safety: "phi",
195
+ openWorld: !0,
196
+ idempotent: !0,
197
+ argsType: "{ status: string }",
198
+ argsSchema: {
199
+ type: "object",
200
+ properties: {
201
+ status: {
202
+ type: "string",
203
+ enum: [
204
+ "confirmed",
205
+ "waiting",
206
+ "in_care",
207
+ "done",
208
+ "cancelled",
209
+ "absent"
210
+ ]
211
+ }
212
+ },
213
+ required: ["status"]
214
+ },
215
+ errors: [
216
+ "The status is read-only: no appointment on screen, no host save, readOnly, or no allowed statuses.",
217
+ "The status is not in allowedStatuses.",
218
+ "A status save is already in flight.",
219
+ "The host refused the change. The previous status stays and the panel shows the message."
220
+ ],
221
+ examples: [{ args: { status: "waiting" } }],
222
+ descriptionKey: "ui.agent.appointmentDetailsPanel.actions.setStatus",
223
+ description: "Save a new appointment status through the host, as the footer control does. Resolves once the host has saved it.",
224
+ invoke: (t, n) => t.setAppointmentStatus(
225
+ n.status
226
+ )
227
+ },
228
+ retry: {
229
+ safety: "read",
230
+ openWorld: !0,
231
+ errors: [
232
+ "Retry is not offered: the read has not failed or been refused as retryable, or the host offers no Retry."
233
+ ],
234
+ descriptionKey: "ui.agent.appointmentDetailsPanel.actions.retry",
235
+ description: "Ask the host to read the appointment again, after a failed read or a refusal it marked retryable.",
236
+ invoke: (t) => t.retry()
237
+ }
238
+ },
239
+ domHooks: {
240
+ root: {
241
+ attr: "data-component",
242
+ value: "appointment-details-panel",
243
+ description: `Marks the panel. It also carries data-event-id and data-status. Inside, cards carry data-card (patient, appointment, notes, treatments), footer actions data-action, and the History and description sub-views data-details-subview. An action in offeredActions with no data-action in the footer strip is folded into More: click the panel's ${Fn}, and its menu item carries the same data-action.`
244
+ },
245
+ instanceId: {
246
+ attr: "data-component-id",
247
+ sourceProp: "id",
248
+ description: "Sourced from the id prop, or generated."
249
+ }
250
+ }
251
+ };
252
+ function tt(t) {
253
+ const n = document.activeElement;
254
+ n && n !== document.body || t == null || t.focus({ preventScroll: !0 });
255
+ }
256
+ function Se(t) {
257
+ const n = document.getElementById(t);
258
+ n && !n.hasAttribute("tabindex") && (n.tabIndex = -1), tt(n);
259
+ }
260
+ function nt(t) {
261
+ return typeof t == "string" && /^\d{4}-\d{2}-\d{2}$/.test(t) ? /* @__PURE__ */ new Date(`${t}T00:00:00`) : new Date(t);
262
+ }
263
+ function Be(t, n) {
264
+ try {
265
+ return new Intl.DateTimeFormat(t, {
266
+ weekday: "long",
267
+ day: "numeric",
268
+ month: "long",
269
+ year: "numeric"
270
+ }).format(nt(n));
271
+ } catch {
272
+ return "";
273
+ }
274
+ }
275
+ function Hn(t, n, o) {
276
+ const r = new Date(n), i = o ? new Date(o) : r;
277
+ try {
278
+ const s = new Intl.DateTimeFormat(t, {
279
+ hour: "2-digit",
280
+ minute: "2-digit",
281
+ hour12: !1
282
+ });
283
+ return typeof s.formatRange == "function" ? s.formatRange(r, i) : `${s.format(r)} – ${s.format(i)}`;
284
+ } catch {
285
+ return "";
286
+ }
287
+ }
288
+ const at = {
289
+ weekday: "short",
290
+ day: "numeric",
291
+ month: "short",
292
+ hour: "2-digit",
293
+ minute: "2-digit"
294
+ };
295
+ function Wn(t, n) {
296
+ const o = nt(t), r = nt(n);
297
+ let i = r.getFullYear() - o.getFullYear();
298
+ const s = r.getMonth() - o.getMonth();
299
+ return (s < 0 || s === 0 && r.getDate() < o.getDate()) && (i -= 1), Math.max(0, i);
300
+ }
301
+ const jn = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/;
302
+ function qn(t) {
303
+ const n = typeof t == "string" ? jn.exec(t) : null;
304
+ if (!n) return;
305
+ const [o, r, i, s, l, b] = n.slice(1).map(Number), d = /* @__PURE__ */ new Date(0);
306
+ if (d.setFullYear(o, r, 0), r < 1 || r > 12 || i < 1 || i > d.getDate() || s > 23 || l > 59 || b > 59)
307
+ return;
308
+ const f = /* @__PURE__ */ new Date(0);
309
+ return f.setFullYear(o, r - 1, i), f.setHours(s, l, b, 0), f;
310
+ }
311
+ function Kn(t) {
312
+ return t.map((n) => {
313
+ const o = Date.parse(n.atIso);
314
+ return { entry: n, time: Number.isFinite(o) ? o : -1 / 0 };
315
+ }).sort((n, o) => n.time === o.time ? 0 : o.time - n.time).map(({ entry: n }) => n);
316
+ }
317
+ const Un = {
318
+ daily: "recurrenceDaily",
319
+ weekly: "recurrenceWeekly",
320
+ monthly: "recurrenceMonthly",
321
+ quarterly: "recurrenceQuarterly",
322
+ semiannual: "recurrenceSemiannual",
323
+ yearly: "recurrenceYearly"
324
+ };
325
+ function Gn(t) {
326
+ return t.phones ? t.phones : t.phone ? [{ label: "mobile", number: t.phone }] : [];
327
+ }
328
+ function jt(t) {
329
+ return [t.address, t.postalCode, t.city].filter((n) => !!n).join(", ");
330
+ }
331
+ function Vn(t) {
332
+ return [t.address, t.city].filter((n) => !!n).join(", ");
333
+ }
334
+ function Yn(t) {
335
+ const n = jt(t);
336
+ return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(n)}`;
337
+ }
338
+ const R = (t) => `calendarWorkspace.details.${t}`, Qn = /* @__PURE__ */ new Set(["patient", "care"]), Ct = /^#?(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i, Xn = (t) => {
339
+ switch (t.field) {
340
+ case "time":
341
+ return !!(t.fromIso || t.toIso);
342
+ case "duration":
343
+ return t.fromMin !== void 0 || t.toMin !== void 0;
344
+ default:
345
+ return !!(t.from || t.to);
346
+ }
347
+ };
348
+ function Jn(t) {
349
+ const n = t.kind === "moved" ? [{ field: "time", fromIso: t.fromIso, toIso: t.toIso }] : t.kind === "resized" ? [{ field: "duration", fromMin: t.fromMin, toMin: t.toMin }] : t.kind === "status" ? [{ field: "status", from: t.from, to: t.to }] : [], o = ("changes" in t ? t.changes ?? [] : []).filter(
350
+ Xn
351
+ ), r = new Set(n.map((i) => i.field));
352
+ return [
353
+ ...n,
354
+ ...o.filter((i) => r.has(i.field) ? !1 : (r.add(i.field), !0))
355
+ ];
356
+ }
357
+ const Zn = (t, n) => t.getFullYear() === n.getFullYear() && t.getMonth() === n.getMonth() && t.getDate() === n.getDate();
358
+ function ea({
359
+ history: t,
360
+ locale: n,
361
+ noteUnrecordedEdits: o = !1,
362
+ privacy: r = !1
363
+ }) {
364
+ const { t: i, i18n: s } = $("ui"), { optionFor: l } = ot(null), b = n ?? s.language, d = (a, u) => {
365
+ try {
366
+ return new Intl.DateTimeFormat(b, u).format(
367
+ new Date(a)
368
+ );
369
+ } catch {
370
+ return a;
371
+ }
372
+ }, f = (a) => d(a, at), c = i(R("history.notSet")), C = (a) => {
373
+ switch (a.field) {
374
+ case "status":
375
+ return {
376
+ from: a.from && l(a.from).label,
377
+ to: a.to && l(a.to).label
378
+ };
379
+ case "time": {
380
+ const u = a.fromIso && new Date(a.fromIso), k = a.toIso && new Date(a.toIso), h = u && k && Zn(u, k) ? d(a.toIso, {
381
+ hour: "2-digit",
382
+ minute: "2-digit"
383
+ }) : void 0;
384
+ return {
385
+ from: a.fromIso && f(a.fromIso),
386
+ to: h ?? (a.toIso && f(a.toIso))
387
+ };
388
+ }
389
+ case "duration":
390
+ return {
391
+ from: a.fromMin === void 0 ? void 0 : i(R("history.minutes"), { n: a.fromMin }),
392
+ to: a.toMin === void 0 ? void 0 : i(R("history.minutes"), { n: a.toMin })
393
+ };
394
+ default:
395
+ return { from: a.from || void 0, to: a.to || void 0 };
396
+ }
397
+ }, E = (a) => {
398
+ const u = i(R(`history.fields.${a.field}`)), { from: k, to: h } = C(a);
399
+ return a.field === "colour" && [k, h].some((N) => N && Ct.test(N)) ? i(R("history.changed.colour")) : k && !h ? i(R("history.changeCleared"), { field: u, from: k }) : !k && h ? i(R("history.changeSet"), { field: u, to: h }) : i(R("history.changeFromTo"), {
400
+ field: u,
401
+ from: k ?? c,
402
+ to: h ?? c
403
+ });
404
+ }, g = (a) => {
405
+ const u = (A, S) => A && a.field === "colour" && Ct.test(A) ? /* @__PURE__ */ e(
406
+ "span",
407
+ {
408
+ className: "ds:inline-block ds:size-4 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:border ds:border-[color:var(--border)] ds:[background-color:var(--history-swatch)] ds:forced-colors:[forced-color-adjust:none]",
409
+ style: {
410
+ "--history-swatch": A.startsWith("#") ? A : `#${A}`
411
+ }
412
+ }
413
+ ) : A ? /* @__PURE__ */ e(
414
+ "span",
415
+ {
416
+ className: S ? "ds:min-w-0 ds:font-[var(--font-weight-medium)] ds:text-[color:var(--foreground)]" : "ds:min-w-0 ds:text-[color:var(--muted-foreground)]",
417
+ children: A
418
+ }
419
+ ) : /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:text-[color:var(--muted-foreground)]", children: c }), k = (A) => A ? /* @__PURE__ */ e(
420
+ Ft,
421
+ {
422
+ value: A,
423
+ option: l(A),
424
+ size: "sm"
425
+ }
426
+ ) : u(void 0, !1), { from: h, to: N } = C(a);
427
+ return /* @__PURE__ */ p("div", { className: "ds:min-w-0", "data-history-change": a.field, children: [
428
+ /* @__PURE__ */ e("span", { className: "ds:sr-only", children: E(a) }),
429
+ /* @__PURE__ */ p(
430
+ "div",
431
+ {
432
+ "aria-hidden": "true",
433
+ className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
434
+ children: [
435
+ a.field === "status" ? k(a.from) : u(h, !1),
436
+ /* @__PURE__ */ e(
437
+ cn,
438
+ {
439
+ className: "ds:size-4 ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:rtl:rotate-180",
440
+ "aria-hidden": "true"
441
+ }
442
+ ),
443
+ a.field === "status" ? k(a.to) : u(N, !0)
444
+ ]
445
+ }
446
+ )
447
+ ] });
448
+ }, P = (a) => {
449
+ switch (a.kind) {
450
+ case "created":
451
+ return {
452
+ title: i(R("history.created")),
453
+ type: "success",
454
+ icon: /* @__PURE__ */ e(ln, { size: 16, "aria-hidden": "true" })
455
+ };
456
+ case "confirmedByPatient": {
457
+ const y = Ve.confirmed.Icon;
458
+ return {
459
+ title: i(R("history.confirmedByPatient")),
460
+ type: "success",
461
+ icon: /* @__PURE__ */ e(y, { size: 16, "aria-hidden": "true" })
462
+ };
463
+ }
464
+ case "deleted":
465
+ return {
466
+ title: i(R("history.deleted")),
467
+ type: "error",
468
+ icon: /* @__PURE__ */ e($t, { size: 16, "aria-hidden": "true" })
469
+ };
470
+ }
471
+ const u = Jn(a), k = r ? u.filter((y) => !Qn.has(y.field)) : u, h = new Set(k.map((y) => y.field)), N = [
472
+ ...a.kind === "edited" ? a.fields : [],
473
+ ...u.filter((y) => !h.has(y.field)).map((y) => y.field)
474
+ ].filter(
475
+ (y, v, L) => y !== "status" && !h.has(y) && L.indexOf(y) === v
476
+ ), A = N.length > 0 ? i(R("history.editedDetail"), {
477
+ fields: N.map((y) => i(R(`history.fields.${y}`))).join(", ")
478
+ }) : void 0, [S] = k;
479
+ if (k.length === 1 && S && !A)
480
+ switch (S.field) {
481
+ case "status": {
482
+ const { to: y } = S, v = y ? Ve[y].Icon : me;
483
+ return {
484
+ title: i(R("history.status")),
485
+ type: y === "cancelled" || y === "absent" ? "warning" : "neutral",
486
+ icon: /* @__PURE__ */ e(v, { size: 16, "aria-hidden": "true" }),
487
+ detail: g(S)
488
+ };
489
+ }
490
+ case "time":
491
+ return {
492
+ title: i(R("history.moved")),
493
+ type: "info",
494
+ icon: /* @__PURE__ */ e(et, { size: 16, "aria-hidden": "true" }),
495
+ detail: g(S)
496
+ };
497
+ case "duration":
498
+ return {
499
+ title: i(R("history.resized")),
500
+ type: "info",
501
+ icon: /* @__PURE__ */ e(Je, { size: 16, "aria-hidden": "true" }),
502
+ detail: g(S)
503
+ };
504
+ default:
505
+ return {
506
+ title: i(R(`history.changed.${S.field}`)),
507
+ type: "neutral",
508
+ icon: /* @__PURE__ */ e(me, { size: 16, "aria-hidden": "true" }),
509
+ detail: g(S)
510
+ };
511
+ }
512
+ if (k.length > 0) {
513
+ const y = a.kind === "moved" ? {
514
+ title: "history.moved",
515
+ icon: /* @__PURE__ */ e(et, { size: 16, "aria-hidden": "true" })
516
+ } : a.kind === "resized" ? {
517
+ title: "history.resized",
518
+ icon: /* @__PURE__ */ e(Je, { size: 16, "aria-hidden": "true" })
519
+ } : a.kind === "status" ? {
520
+ title: "history.status",
521
+ icon: (() => {
522
+ const v = Ve[a.to].Icon;
523
+ return /* @__PURE__ */ e(v, { size: 16, "aria-hidden": "true" });
524
+ })()
525
+ } : {
526
+ title: "history.edited",
527
+ icon: /* @__PURE__ */ e(me, { size: 16, "aria-hidden": "true" })
528
+ };
529
+ return {
530
+ title: i(R(y.title)),
531
+ type: a.kind === "moved" || a.kind === "resized" ? "info" : a.kind === "status" && (a.to === "cancelled" || a.to === "absent") ? "warning" : "neutral",
532
+ icon: y.icon,
533
+ detail: /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
534
+ /* @__PURE__ */ e(
535
+ "dl",
536
+ {
537
+ "aria-label": i(R("history.changesLabel")),
538
+ className: "ds:m-0 ds:grid ds:grid-cols-[auto_minmax(0,1fr)] ds:items-baseline ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)]",
539
+ children: k.map((v) => /* @__PURE__ */ p("div", { className: "ds:contents", children: [
540
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-[color:var(--muted-foreground)]", children: i(R(`history.fields.${v.field}`)) }),
541
+ /* @__PURE__ */ e("dd", { className: "ds:m-0 ds:min-w-0", children: g(v) })
542
+ ] }, v.field))
543
+ }
544
+ ),
545
+ A ? /* @__PURE__ */ e("p", { className: "ds:m-0", children: A }) : null
546
+ ] })
547
+ };
548
+ }
549
+ return {
550
+ title: i(R("history.edited")),
551
+ type: "neutral",
552
+ icon: /* @__PURE__ */ e(me, { size: 16, "aria-hidden": "true" }),
553
+ detail: A || (o ? /* @__PURE__ */ e("span", { className: "ds:text-[color:var(--muted-foreground)]", children: i(R("history.notRecorded")) }) : void 0)
554
+ };
555
+ };
556
+ return t.length === 0 ? /* @__PURE__ */ e(
557
+ dn,
558
+ {
559
+ variant: "first-use",
560
+ size: "sm",
561
+ title: i(R("historyEmpty"))
562
+ }
563
+ ) : /* @__PURE__ */ e(Ae, { order: "newest-first", "aria-label": i(R("historyTitle")), children: Kn(t).map((a) => {
564
+ const u = P(a);
565
+ return /* @__PURE__ */ p(
566
+ Ae.Event,
567
+ {
568
+ eventId: a.id,
569
+ type: u.type,
570
+ className: "ds:[column-gap:var(--spacing-sm)] ds:[padding-block-end:var(--spacing-lg)] ds:before:bg-[var(--primary)]",
571
+ children: [
572
+ /* @__PURE__ */ e(Ae.Dot, { icon: u.icon }),
573
+ /* @__PURE__ */ e(
574
+ Ae.Content,
575
+ {
576
+ title: u.title,
577
+ description: u.detail,
578
+ className: "ds:[padding-block-end:0] ds:[&>[data-component=card]]:border-[color:var(--card-border)] ds:[&>[data-component=card]]:shadow-[var(--shadow-card)]",
579
+ actor: a.actor.trim() ? { name: a.actor } : void 0,
580
+ children: /* @__PURE__ */ p("span", { className: "ds:mt-[var(--spacing-sm)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
581
+ /* @__PURE__ */ e(
582
+ rt,
583
+ {
584
+ "aria-hidden": "true",
585
+ className: "ds:size-4 ds:shrink-0 ds:text-[color:var(--muted-foreground)]"
586
+ }
587
+ ),
588
+ /* @__PURE__ */ e(
589
+ Ae.Timestamp,
590
+ {
591
+ date: a.atIso,
592
+ relative: !1,
593
+ locale: b
594
+ }
595
+ )
596
+ ] })
597
+ }
598
+ )
599
+ ]
600
+ },
601
+ a.id
602
+ );
603
+ }) });
604
+ }
605
+ const ta = {
606
+ confirmed: "success",
607
+ waiting: "info",
608
+ in_care: "accentSoft",
609
+ done: "success",
610
+ cancelled: "error",
611
+ absent: "warning"
612
+ };
613
+ function na({ event: t }) {
614
+ const { t: n } = $("ui"), o = (i) => `calendarWorkspace.details.indicators.${i}`, r = [];
615
+ return t.isBookedOnline && r.push({
616
+ id: "online",
617
+ icon: /* @__PURE__ */ e(un, { "aria-hidden": "true" }),
618
+ label: n(o("bookedOnline")),
619
+ variant: "info"
620
+ }), t.hasUnassignedPatient && r.push({
621
+ id: "unassigned",
622
+ icon: /* @__PURE__ */ e(mn, { "aria-hidden": "true" }),
623
+ label: n(o("unassignedPatient")),
624
+ variant: "warning"
625
+ }), t.hasHighlightedAnamnesis && r.push({
626
+ id: "anamnesis",
627
+ icon: /* @__PURE__ */ e(dt, { "aria-hidden": "true" }),
628
+ label: n(o("anamnesis")),
629
+ variant: "accentSoft"
630
+ }), t.hasBillableAmount && r.push({
631
+ id: "billable",
632
+ icon: /* @__PURE__ */ e(pn, { "aria-hidden": "true" }),
633
+ label: n(o("billable")),
634
+ variant: "warning"
635
+ }), t.isTelehealth && r.push({
636
+ id: "telehealth",
637
+ icon: /* @__PURE__ */ e(lt, { "aria-hidden": "true" }),
638
+ label: n(o("telehealth")),
639
+ variant: "info"
640
+ }), t.isRecurring && r.push({
641
+ id: "recurring",
642
+ icon: /* @__PURE__ */ e(Ht, { "aria-hidden": "true" }),
643
+ label: n(o("recurring")),
644
+ variant: "info"
645
+ }), r.length === 0 ? null : /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: r.map((i) => /* @__PURE__ */ e(
646
+ $e,
647
+ {
648
+ variant: i.variant,
649
+ size: "sm",
650
+ leading: i.icon,
651
+ children: i.label
652
+ },
653
+ i.id
654
+ )) });
655
+ }
656
+ function aa({
657
+ name: t,
658
+ avatarSrc: n,
659
+ unresolved: o = !1,
660
+ status: r,
661
+ flags: i,
662
+ age: s,
663
+ onOpenPatient: l,
664
+ highlightedAnamnesisCount: b = 0,
665
+ expiredAnamnesisCount: d = 0,
666
+ anamnesisAnswers: f = [],
667
+ locale: c
668
+ }) {
669
+ const { t: C, i18n: E } = $("ui"), g = (h) => `calendarWorkspace.details.${h}`, { optionFor: P } = ot(r), a = r ? P(r) : void 0, u = b, k = d;
670
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)] ds:pb-0", children: [
671
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
672
+ /* @__PURE__ */ e(Ze, { name: t, src: n }),
673
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:[min-inline-size:0]", children: [
674
+ /* @__PURE__ */ p("span", { className: "ds:flex ds:flex-wrap ds:items-baseline ds:gap-[var(--spacing-2xs)] ds:text-start", children: [
675
+ l ? /* @__PURE__ */ e(_, { size: "sm", intent: "link", onClick: () => l(), children: t }) : /* @__PURE__ */ e("span", { className: "ds:font-[var(--font-weight-semibold)] ds:truncate", children: t }),
676
+ s !== void 0 ? /* @__PURE__ */ e("span", { className: "type-body-sm ds:text-[color:var(--muted-foreground)]", children: C(g("patientAge"), { n: s }) }) : null
677
+ ] }),
678
+ o ? /* @__PURE__ */ e("span", { className: "type-body-sm ds:text-start ds:text-[color:var(--muted-foreground)]", children: C(g("patientNotLoaded")) }) : null,
679
+ r && a ? /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(
680
+ $e,
681
+ {
682
+ variant: ta[r],
683
+ size: "sm",
684
+ leading: a.icon,
685
+ children: a.label
686
+ }
687
+ ) }) : null,
688
+ /* @__PURE__ */ e(na, { event: i })
689
+ ] })
690
+ ] }),
691
+ u + k > 0 ? /* @__PURE__ */ p(
692
+ F,
693
+ {
694
+ variant: "warning",
695
+ announce: "off",
696
+ icon: /* @__PURE__ */ e(dt, { "aria-hidden": "true" }),
697
+ children: [
698
+ /* @__PURE__ */ e(F.Title, { as: "p", children: C(g("anamnesisTitle")) }),
699
+ /* @__PURE__ */ e(F.Description, { children: [
700
+ u > 0 ? C(g("anamnesisHighlighted"), { n: u }) : null,
701
+ k > 0 ? C(g("anamnesisExpired"), { n: k }) : null
702
+ ].filter((h) => h !== null).join(" · ") }),
703
+ f.length > 0 ? (
704
+ /* Question · yes or no · answer · interview date, as the
705
+ platform's details dialog lists them. A list, not a
706
+ Description, which renders a <p>. */
707
+ /* @__PURE__ */ e("ul", { className: "type-body-sm ds:m-0 ds:mt-[var(--spacing-xs)] ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-2xs)] ds:p-0", children: f.map((h) => /* @__PURE__ */ p("li", { className: "ds:text-start", children: [
708
+ /* @__PURE__ */ e("span", { className: "ds:font-[var(--font-weight-semibold)]", children: h.question }),
709
+ ` · ${C(g(h.yes ? "anamnesisYes" : "anamnesisNo"))}`,
710
+ h.answer ? ` · ${h.answer}` : "",
711
+ ` · ${Be(c ?? E.language, h.interviewIso)}`
712
+ ] }, h.question)) })
713
+ ) : null
714
+ ]
715
+ }
716
+ ) : null
717
+ ] });
718
+ }
719
+ function it({
720
+ eyebrow: t,
721
+ heading: n,
722
+ facts: o
723
+ }) {
724
+ return /* @__PURE__ */ p(Q, { children: [
725
+ /* @__PURE__ */ e(he.Eyebrow, { children: t }),
726
+ /* @__PURE__ */ e(he.Heading, { children: n }),
727
+ o && o.length > 0 ? /* @__PURE__ */ e(he.Body, { children: /* @__PURE__ */ e("ul", { className: "ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-2xs)] ds:p-0 type-body-sm", children: o.map((r, i) => /* @__PURE__ */ e(
728
+ "li",
729
+ {
730
+ className: r.muted ? "ds:text-[color:var(--muted-foreground)]" : void 0,
731
+ children: r.text
732
+ },
733
+ i
734
+ )) }) }) : null
735
+ ] });
736
+ }
737
+ const ia = "ds:inline-flex ds:cursor-pointer ds:rounded-[var(--radius-full)] ds:p-0 ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]";
738
+ function Et({
739
+ id: t,
740
+ eyebrow: n,
741
+ heading: o,
742
+ facts: r,
743
+ children: i
744
+ }) {
745
+ return /* @__PURE__ */ p(he, { children: [
746
+ /* @__PURE__ */ e(he.Trigger, { asChild: !0, children: /* @__PURE__ */ e("button", { type: "button", "data-chip-hover": t, className: ia, children: i }) }),
747
+ /* @__PURE__ */ e(he.Content, { side: "bottom", align: "start", size: "sm", children: /* @__PURE__ */ e(it, { eyebrow: n, heading: o, facts: r }) })
748
+ ] });
749
+ }
750
+ const m = (t) => `calendarWorkspace.details.${t}`, sa = "type-body-sm ds:text-[color:var(--muted-foreground)]", qt = (t) => /* @__PURE__ */ e("a", { href: `tel:${t.replace(/\s/g, "")}`, dir: "ltr", children: t }), Kt = (t) => /* @__PURE__ */ e("a", { href: `mailto:${t}`, dir: "ltr", children: t }), Ut = (t, n, o) => new Intl.NumberFormat(t, { style: "currency", currency: o }).format(n);
751
+ function Rt({ rows: t }) {
752
+ const n = t.filter((o) => !!o);
753
+ return n.length === 0 ? null : /* @__PURE__ */ e(Oe, { layout: "inline", density: "compact", children: n.map((o) => /* @__PURE__ */ p(
754
+ Oe.Row,
755
+ {
756
+ "data-row": o.id,
757
+ icon: o.icon,
758
+ children: [
759
+ /* @__PURE__ */ e(Oe.Term, { children: o.label }),
760
+ /* @__PURE__ */ e(Oe.Detail, { children: o.value })
761
+ ]
762
+ },
763
+ o.id
764
+ )) });
765
+ }
766
+ function oa({
767
+ details: t,
768
+ locale: n,
769
+ currency: o,
770
+ now: r,
771
+ mapsLink: i = !1
772
+ }) {
773
+ const { t: s } = $("ui"), { patient: l, signing: b, money: d, booking: f } = t;
774
+ if (!l) return null;
775
+ const c = b && b.required > 0 ? b : void 0, C = ((c == null ? void 0 : c.toComplete) ?? 0) > 0, E = c ? [
776
+ {
777
+ text: C ? c.requestedVia === "sms" ? s(m("signingRequestedSms")) : c.requestedVia === "email" ? s(m("signingRequestedEmail")) : s(m("signingNotRequested")) : s(m("signingAllSigned"))
778
+ },
779
+ ...c.aesSetUp ? [] : [{ text: s(m("aesMissing")), muted: !0 }]
780
+ ] : [], g = l.highlightedAnamnesisCount ?? 0, P = l.expiredAnamnesisCount ?? 0, a = (l.highlightedAnamnesisAnswers ?? []).map((v) => ({
781
+ text: [
782
+ v.question,
783
+ s(m(v.yes ? "anamnesisYes" : "anamnesisNo")),
784
+ v.answer,
785
+ Be(n, v.interviewIso)
786
+ ].filter(Boolean).join(" · ")
787
+ })), u = jt(l), k = Vn(l) || u, h = [
788
+ ...l.dobIso ? [
789
+ {
790
+ id: "dob",
791
+ label: s(m("dob")),
792
+ icon: /* @__PURE__ */ e(Ln, {}),
793
+ value: `${Be(n, l.dobIso)} ${s(
794
+ m("patientAge"),
795
+ {
796
+ n: Wn(l.dobIso, r)
797
+ }
798
+ )}`
799
+ }
800
+ ] : [],
801
+ ...Gn(l).map((v, L) => {
802
+ const K = v.label === "mobile" || v.label === "home" || v.label === "work";
803
+ return {
804
+ id: `phone-${L}`,
805
+ label: s(K ? `calendarWorkspace.print.phoneLabels.${v.label}` : m("phone")),
806
+ icon: v.label === "mobile" ? /* @__PURE__ */ e(gn, {}) : /* @__PURE__ */ e(vn, {}),
807
+ value: qt(v.number)
808
+ };
809
+ }),
810
+ ...l.email ? [
811
+ {
812
+ id: "email",
813
+ label: s(m("email")),
814
+ icon: /* @__PURE__ */ e(yn, {}),
815
+ value: Kt(l.email)
816
+ }
817
+ ] : [],
818
+ ...i ? [
819
+ {
820
+ id: "address",
821
+ label: s(m("address")),
822
+ icon: /* @__PURE__ */ e(bn, {}),
823
+ value: u ? /* @__PURE__ */ e(
824
+ "a",
825
+ {
826
+ href: Yn(l),
827
+ target: "_blank",
828
+ rel: "noopener noreferrer",
829
+ "aria-label": `${s(m("mapsLink"))}: ${k}`,
830
+ children: k
831
+ }
832
+ ) : /* @__PURE__ */ e("span", { className: sa, children: s(m("noAddress")) })
833
+ }
834
+ ] : []
835
+ ], N = (d == null ? void 0 : d.unpaidAmount) ?? 0, A = (d == null ? void 0 : d.billableAmount) ?? 0, S = (f == null ? void 0 : f.paidOnlineAmount) ?? 0, y = (v, L, K, ae, V, ie) => /* @__PURE__ */ e(
836
+ Et,
837
+ {
838
+ id: K,
839
+ eyebrow: s(m("hoverBilling")),
840
+ heading: s(m(ae), {
841
+ amount: Ut(n, L, o)
842
+ }),
843
+ facts: [{ text: s(m(V)) }],
844
+ children: /* @__PURE__ */ e(
845
+ fn,
846
+ {
847
+ "data-chip": K,
848
+ state: v,
849
+ amount: L,
850
+ currency: o,
851
+ locale: n,
852
+ size: "md",
853
+ showLabel: !0,
854
+ label: ie,
855
+ showIcon: !1
856
+ }
857
+ )
858
+ }
859
+ );
860
+ return /* @__PURE__ */ e(
861
+ Ot,
862
+ {
863
+ "data-card": "patient",
864
+ name: l.name,
865
+ avatarUrl: l.avatarSrc,
866
+ locale: n,
867
+ surface: "elevated",
868
+ density: "compact",
869
+ flags: {
870
+ unsignedDocumentsCount: (c == null ? void 0 : c.toComplete) ?? 0,
871
+ highlightedAnamnesisCount: g
872
+ },
873
+ flagHover: {
874
+ ...c ? {
875
+ unsignedDocuments: /* @__PURE__ */ e(
876
+ it,
877
+ {
878
+ eyebrow: s(m("sectionSigning")),
879
+ heading: c.toComplete === 1 ? s(m("signingToSignOne")) : s(m("signingToSignMany"), {
880
+ n: c.toComplete
881
+ }),
882
+ facts: E
883
+ }
884
+ )
885
+ } : {},
886
+ highlightedAnamnesis: /* @__PURE__ */ e(
887
+ it,
888
+ {
889
+ eyebrow: s(m("anamnesisTitle")),
890
+ heading: s(m("anamnesisHighlighted"), { n: g }),
891
+ facts: a
892
+ }
893
+ )
894
+ },
895
+ extraChips: N > 0 || A > 0 || S > 0 || P > 0 ? /* @__PURE__ */ p(Q, { children: [
896
+ /* @__PURE__ */ p("span", { className: "ds:inline-flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
897
+ N > 0 ? y(
898
+ "debt",
899
+ N,
900
+ "unpaid",
901
+ "hoverUnpaidHeading",
902
+ "hoverUnpaidFact"
903
+ ) : null,
904
+ A > 0 ? y(
905
+ "to-invoice",
906
+ A,
907
+ "billable",
908
+ "hoverBillableHeading",
909
+ "hoverBillableFact"
910
+ ) : null,
911
+ S > 0 ? y(
912
+ "settled",
913
+ S,
914
+ "paidOnline",
915
+ "hoverPaidOnlineHeading",
916
+ "hoverPaidOnlineFact",
917
+ /* A deposit is settled money, but "Settled" hides where
918
+ it came from: the chip says what its hover card says. */
919
+ s(m("paidOnline"))
920
+ ) : null
921
+ ] }),
922
+ P > 0 ? /* @__PURE__ */ e(
923
+ Et,
924
+ {
925
+ id: "anamnesisExpired",
926
+ eyebrow: s(m("anamnesisTitle")),
927
+ heading: s(m("anamnesisExpired"), { n: P }),
928
+ facts: [{ text: s(m("hoverAnamnesisExpiredFact")) }],
929
+ children: /* @__PURE__ */ e(
930
+ $e,
931
+ {
932
+ "data-chip": "anamnesisExpired",
933
+ variant: "warning",
934
+ size: "md",
935
+ leading: /* @__PURE__ */ e(dt, {}),
936
+ children: s(m("anamnesisExpired"), { n: P })
937
+ }
938
+ )
939
+ }
940
+ ) : null
941
+ ] }) : void 0,
942
+ visibleFieldOrder: h.map((v) => v.id),
943
+ sections: h.length > 0 ? [{ id: "contact", heading: s(m("sectionPatient")), fields: h }] : void 0
944
+ }
945
+ );
946
+ }
947
+ function ra({
948
+ details: t,
949
+ locale: n,
950
+ currency: o,
951
+ operator: r,
952
+ chair: i,
953
+ description: s,
954
+ privacy: l = !1,
955
+ history: b
956
+ }) {
957
+ const { t: d } = $("ui"), { appointment: f, booking: c, patient: C } = t, E = (v) => d(`calendarWorkspace.editor.${v}`), g = new Date(f.startIso), P = new Date(g.getTime() + f.durationMin * 6e4), a = Number.isFinite(g.getTime()), { recurrence: u } = f, k = u && Un[u.frequency], h = k ? d(`calendarWorkspace.editor.${k}`) : void 0, N = c ? [
958
+ c.bookedAtIso && {
959
+ id: "bookedAt",
960
+ label: d(m("bookedAt")),
961
+ value: /* @__PURE__ */ e(
962
+ St,
963
+ {
964
+ value: c.bookedAtIso,
965
+ format: "absolute",
966
+ shape: "bare",
967
+ locale: n,
968
+ absoluteFormat: at
969
+ }
970
+ )
971
+ },
972
+ c.typedName && {
973
+ id: "bookingName",
974
+ label: d(m("bookingName")),
975
+ value: c.typedName
976
+ },
977
+ c.phone && {
978
+ id: "bookingPhone",
979
+ label: d(m("bookingPhone")),
980
+ value: qt(c.phone)
981
+ },
982
+ c.email && {
983
+ id: "bookingEmail",
984
+ label: d(m("bookingEmail")),
985
+ value: Kt(c.email)
986
+ },
987
+ c.note && {
988
+ id: "bookingNote",
989
+ label: d(m("bookingNote")),
990
+ value: c.note
991
+ },
992
+ /* With a patient the amount is a chip on the patient card. */
993
+ !C && c.paidOnlineAmount !== void 0 && {
994
+ id: "paidOnline",
995
+ label: d(m("paidOnline")),
996
+ value: Ut(n, c.paidOnlineAmount, o)
997
+ }
998
+ ] : [], A = l ? N.filter((v) => v && v.id === "bookedAt") : N, S = A.some(Boolean), y = c || f.bookedOnline || b == null ? void 0 : b.filter(
999
+ (v) => v.kind === "created" && v.actor.trim() !== ""
1000
+ ).sort((v, L) => Date.parse(v.atIso) - Date.parse(L.atIso))[0];
1001
+ return /* @__PURE__ */ p(
1002
+ ne,
1003
+ {
1004
+ "data-card": "appointment",
1005
+ title: d(m("sectionAppointment")),
1006
+ headingLevel: 3,
1007
+ children: [
1008
+ s,
1009
+ /* @__PURE__ */ e(
1010
+ Rt,
1011
+ {
1012
+ rows: [
1013
+ a && {
1014
+ id: "date",
1015
+ label: E("date"),
1016
+ icon: /* @__PURE__ */ e(kn, {}),
1017
+ value: Be(n, g)
1018
+ },
1019
+ a && {
1020
+ id: "time",
1021
+ label: d(m("time")),
1022
+ icon: /* @__PURE__ */ e(Je, {}),
1023
+ value: f.allDay ? E("allDay") : Hn(n, g, P)
1024
+ },
1025
+ !f.allDay && {
1026
+ id: "duration",
1027
+ label: E("duration"),
1028
+ icon: /* @__PURE__ */ e(wn, {}),
1029
+ value: `${f.durationMin} ${E("durationUnit")}`
1030
+ },
1031
+ f.isTelehealth && {
1032
+ id: "type",
1033
+ label: E("type"),
1034
+ icon: /* @__PURE__ */ e(lt, {}),
1035
+ value: E("typeTelehealth")
1036
+ },
1037
+ r && {
1038
+ id: "operator",
1039
+ label: d(m("operator")),
1040
+ /* A person, as on the grid: the avatar fills the icon slot. */
1041
+ icon: /* @__PURE__ */ e(Ze, { name: r.name, src: r.avatarSrc, size: "xs" }),
1042
+ value: r.name
1043
+ },
1044
+ i && {
1045
+ id: "chair",
1046
+ label: d(m("chair")),
1047
+ icon: /* @__PURE__ */ e(It, {}),
1048
+ value: /* @__PURE__ */ e($e, { variant: "neutral", size: "sm", leading: /* @__PURE__ */ e(It, {}), children: i.name })
1049
+ },
1050
+ f.branchLabel && {
1051
+ id: "branch",
1052
+ label: E("branch"),
1053
+ icon: /* @__PURE__ */ e(xn, {}),
1054
+ value: f.branchLabel
1055
+ },
1056
+ y && {
1057
+ id: "createdBy",
1058
+ label: d(m("createdBy")),
1059
+ icon: /* @__PURE__ */ e(Ze, { name: y.actor, size: "xs" }),
1060
+ value: /* @__PURE__ */ p("span", { className: "ds:inline-flex ds:flex-wrap ds:items-baseline ds:gap-x-[var(--spacing-xs)]", children: [
1061
+ /* @__PURE__ */ e("span", { children: y.actor }),
1062
+ " ",
1063
+ /* @__PURE__ */ e("span", { className: "ds:text-[color:var(--muted-foreground)]", children: /* @__PURE__ */ e(
1064
+ St,
1065
+ {
1066
+ value: y.atIso,
1067
+ format: "absolute",
1068
+ shape: "bare",
1069
+ locale: n,
1070
+ absoluteFormat: at
1071
+ }
1072
+ ) })
1073
+ ] })
1074
+ },
1075
+ h && u && {
1076
+ id: "series",
1077
+ label: d(m("seriesLabel")),
1078
+ icon: /* @__PURE__ */ e(Ht, {}),
1079
+ value: u.count === void 0 ? h : d(m("seriesRule"), {
1080
+ frequency: h,
1081
+ count: u.count
1082
+ })
1083
+ }
1084
+ ]
1085
+ }
1086
+ ),
1087
+ S ? /* @__PURE__ */ p(
1088
+ "div",
1089
+ {
1090
+ "data-block": "booking",
1091
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]",
1092
+ children: [
1093
+ /* @__PURE__ */ e("h4", { className: "ds:m-0 type-label ds:text-[color:var(--muted-foreground)]", children: d(m("sectionBooking")) }),
1094
+ /* @__PURE__ */ e(Rt, { rows: A })
1095
+ ]
1096
+ }
1097
+ ) : null
1098
+ ]
1099
+ }
1100
+ );
1101
+ }
1102
+ function da({
1103
+ details: t,
1104
+ locale: n,
1105
+ currency: o,
1106
+ privacy: r = !1
1107
+ }) {
1108
+ const { t: i } = $("ui"), { care: s } = t, l = r || s == null ? void 0 : s.plan;
1109
+ return !s || !l && s.lines.length === 0 ? null : /* @__PURE__ */ p(
1110
+ ne,
1111
+ {
1112
+ "data-card": "treatments",
1113
+ title: i(m("sectionTreatments")),
1114
+ headingLevel: 3,
1115
+ children: [
1116
+ l ? /* @__PURE__ */ p("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-item", children: [
1117
+ /* @__PURE__ */ e(
1118
+ Wt,
1119
+ {
1120
+ "aria-hidden": "true",
1121
+ className: "ds:size-4 ds:shrink-0 ds:text-[color:var(--muted-foreground)]"
1122
+ }
1123
+ ),
1124
+ l.number ? i(m("planLine"), { number: l.number, name: l.name }) : l.name
1125
+ ] }) : null,
1126
+ s.lines.length > 0 ? /* @__PURE__ */ e(
1127
+ Bt,
1128
+ {
1129
+ lines: s.lines.map(({ entryId: b, careId: d, ...f }) => ({
1130
+ id: b,
1131
+ ...f
1132
+ })),
1133
+ locale: n,
1134
+ currency: o
1135
+ }
1136
+ ) : null
1137
+ ]
1138
+ }
1139
+ );
1140
+ }
1141
+ const Pt = 3;
1142
+ function la({
1143
+ preview: t,
1144
+ onOpenNotes: n,
1145
+ locale: o
1146
+ }) {
1147
+ const { t: r } = $("ui"), i = Ye(), s = t.status ?? "ready", l = M(!1);
1148
+ te(() => {
1149
+ l.current && (s !== "loading" && (l.current = !1), Se(i));
1150
+ }, [s, i]);
1151
+ const b = t.total ?? (s === "ready" ? t.notes.length : null), d = Math.max(0, (b ?? 0) - Pt), f = d > 0 ? r(m("notesMore"), { n: d }) : r(m("notesPreviewOpen"));
1152
+ return /* @__PURE__ */ p(
1153
+ ne,
1154
+ {
1155
+ "data-card": "notes",
1156
+ headingId: i,
1157
+ headingLevel: 3,
1158
+ title: b === null ? r("notesPanel.title") : r(m("notesPreviewTitle"), { count: b }),
1159
+ headerAction: n && (b ?? 0) > 0 ? /* @__PURE__ */ p("span", { className: "ds:relative ds:inline-flex", children: [
1160
+ /* @__PURE__ */ e(
1161
+ Lt,
1162
+ {
1163
+ icon: /* @__PURE__ */ e(Nn, { "aria-hidden": "true" }),
1164
+ intent: "outline",
1165
+ size: "sm",
1166
+ "data-action": "open-patient-notes",
1167
+ "aria-label": f,
1168
+ tooltip: f,
1169
+ onClick: () => n()
1170
+ }
1171
+ ),
1172
+ d > 0 ? (
1173
+ /* Decorative: the button's name already says the count. */
1174
+ /* @__PURE__ */ e(
1175
+ hn,
1176
+ {
1177
+ variant: "outline",
1178
+ size: "sm",
1179
+ background: "surface",
1180
+ count: d,
1181
+ "aria-hidden": "true",
1182
+ className: "ds:pointer-events-none ds:absolute ds:-top-[var(--spacing-2xs)] ds:-end-[var(--spacing-2xs)]"
1183
+ }
1184
+ )
1185
+ ) : null
1186
+ ] }) : void 0,
1187
+ children: [
1188
+ s === "error" ? /* @__PURE__ */ p(F, { variant: "error", children: [
1189
+ /* @__PURE__ */ e(F.Description, { children: r("notesPanel.loadError") }),
1190
+ t.onRetry ? /* @__PURE__ */ e(F.Action, { children: /* @__PURE__ */ e(
1191
+ _,
1192
+ {
1193
+ intent: "secondary",
1194
+ size: "sm",
1195
+ onClick: () => {
1196
+ var c;
1197
+ l.current = !0, (c = t.onRetry) == null || c.call(t);
1198
+ },
1199
+ children: r("notesPanel.retry")
1200
+ }
1201
+ ) }) : null
1202
+ ] }) : null,
1203
+ t.notes.length === 0 && s === "loading" ? /* @__PURE__ */ p(Q, { children: [
1204
+ /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: r("notesPanel.loading") }),
1205
+ /* @__PURE__ */ e(Xe, { notes: [], loading: !0, loadingRows: 2 })
1206
+ ] }) : s !== "error" || t.notes.length > 0 ? (
1207
+ /* A note click, or Enter or Space on it, goes straight to that note
1208
+ in the Notes tool; the header button opens the tool at the top. */
1209
+ /* @__PURE__ */ e(
1210
+ Xe,
1211
+ {
1212
+ notes: t.notes,
1213
+ maxItems: Pt,
1214
+ locale: o,
1215
+ "aria-labelledby": i,
1216
+ onNoteActivate: n,
1217
+ emptyState: /* @__PURE__ */ e("p", { className: "ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)]", children: r(m("notesPreviewEmpty")) })
1218
+ }
1219
+ )
1220
+ ) : null
1221
+ ]
1222
+ }
1223
+ );
1224
+ }
1225
+ const ca = st("ds:flex ds:h-full ds:min-h-0 ds:flex-col"), ua = st(
1226
+ "ds:flex ds:shrink-0 ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)] ds:border-t ds:border-[color:var(--border)] ds:p-[var(--spacing-sm)]"
1227
+ ), ma = st(
1228
+ "ds:shrink-0 ds:rounded-[var(--radius-md)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
1229
+ ), G = "ds:[.theme-accessible_&]:[min-block-size:var(--min-target-size)]", pa = "ds:[.theme-accessible_&>button]:[min-block-size:var(--min-target-size)]", ha = [
1230
+ "ds:[.theme-accessible_&_button:has(svg.lucide-ellipsis)]:[min-block-size:var(--min-target-size)]",
1231
+ "ds:[.theme-accessible_&_button:has(svg.lucide-ellipsis)]:[min-inline-size:var(--min-target-size)]"
1232
+ ].join(" "), Gt = ["40%", "33%", "50%", "25%"], fa = [
1233
+ "bill",
1234
+ "folder",
1235
+ "template",
1236
+ "empty",
1237
+ "identification",
1238
+ "webcam"
1239
+ ], ga = {
1240
+ bill: /* @__PURE__ */ e(Pn, { "aria-hidden": "true" }),
1241
+ folder: /* @__PURE__ */ e(Rn, { "aria-hidden": "true" }),
1242
+ template: /* @__PURE__ */ e(En, { "aria-hidden": "true" }),
1243
+ empty: /* @__PURE__ */ e(Cn, { "aria-hidden": "true" }),
1244
+ identification: /* @__PURE__ */ e(On, { "aria-hidden": "true" }),
1245
+ webcam: /* @__PURE__ */ e(Dn, { "aria-hidden": "true" })
1246
+ }, D = (t) => `calendarWorkspace.details.${t}`;
1247
+ function Mt({
1248
+ children: t,
1249
+ startIcon: n,
1250
+ overflowItems: o,
1251
+ "data-action": r,
1252
+ intent: i,
1253
+ background: s,
1254
+ size: l,
1255
+ hideLabel: b
1256
+ }) {
1257
+ return /* @__PURE__ */ p(_e.Root, { children: [
1258
+ /* @__PURE__ */ e(sn, { label: t, side: "top", children: /* @__PURE__ */ e(_e.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
1259
+ _,
1260
+ {
1261
+ intent: i,
1262
+ background: s,
1263
+ size: l,
1264
+ "data-action": r,
1265
+ className: G,
1266
+ startIcon: n,
1267
+ "aria-haspopup": "menu",
1268
+ endIcon: /* @__PURE__ */ e(Tn, { "aria-hidden": "true" }),
1269
+ children: b ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: t }) : t
1270
+ }
1271
+ ) }) }),
1272
+ /* @__PURE__ */ e(_e.Content, { align: "end", children: o.map((d) => /* @__PURE__ */ e(
1273
+ _e.Item,
1274
+ {
1275
+ "data-action": d.action,
1276
+ startIcon: d.icon,
1277
+ onSelect: d.onSelect,
1278
+ children: d.label
1279
+ },
1280
+ d.label
1281
+ )) })
1282
+ ] });
1283
+ }
1284
+ function va() {
1285
+ const { t } = $("ui");
1286
+ return /* @__PURE__ */ p(Q, { children: [
1287
+ /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: t("common.loading") }),
1288
+ /* @__PURE__ */ p(
1289
+ "div",
1290
+ {
1291
+ "aria-hidden": "true",
1292
+ className: "ds:flex ds:min-h-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)] ds:overflow-hidden ds:p-[var(--spacing-md)] ds:[&>*]:shrink-0",
1293
+ children: [
1294
+ /* @__PURE__ */ e(
1295
+ Ot,
1296
+ {
1297
+ name: "",
1298
+ loading: !0,
1299
+ surface: "elevated",
1300
+ density: "compact"
1301
+ }
1302
+ ),
1303
+ /* @__PURE__ */ p(ne, { title: t(D("sectionAppointment")), headingLevel: 3, children: [
1304
+ /* @__PURE__ */ e(zt, { loading: !0, maxLines: 2 }),
1305
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: Gt.map((n, o) => /* @__PURE__ */ p(
1306
+ "div",
1307
+ {
1308
+ className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
1309
+ children: [
1310
+ /* @__PURE__ */ e(
1311
+ ue,
1312
+ {
1313
+ variant: "rounded",
1314
+ stagger: o + 2,
1315
+ width: "var(--spacing-md)",
1316
+ height: "var(--spacing-md)",
1317
+ className: "ds:shrink-0"
1318
+ }
1319
+ ),
1320
+ /* @__PURE__ */ e(
1321
+ ue,
1322
+ {
1323
+ variant: "text",
1324
+ size: "sm",
1325
+ stagger: o + 2,
1326
+ width: n
1327
+ }
1328
+ )
1329
+ ]
1330
+ },
1331
+ n
1332
+ )) })
1333
+ ] }),
1334
+ /* @__PURE__ */ e(ne, { title: t("notesPanel.title"), headingLevel: 3, children: /* @__PURE__ */ e(Xe, { notes: [], loading: !0, loadingRows: 2 }) }),
1335
+ /* @__PURE__ */ e(ne, { title: t(D("sectionTreatments")), headingLevel: 3, children: /* @__PURE__ */ e(Bt, { lines: [], loading: !0 }) })
1336
+ ]
1337
+ }
1338
+ ),
1339
+ /* @__PURE__ */ p(
1340
+ "div",
1341
+ {
1342
+ "aria-hidden": "true",
1343
+ className: "ds:flex ds:shrink-0 ds:items-center ds:gap-[var(--spacing-sm)] ds:border-t ds:border-[color:var(--border)] ds:p-[var(--spacing-md)]",
1344
+ children: [
1345
+ /* @__PURE__ */ e(ue, { variant: "rounded", width: "33%", height: "var(--spacing-xl)" }),
1346
+ /* @__PURE__ */ e(
1347
+ ue,
1348
+ {
1349
+ variant: "rounded",
1350
+ stagger: 1,
1351
+ height: "var(--spacing-xl)",
1352
+ className: "ds:flex-1"
1353
+ }
1354
+ )
1355
+ ]
1356
+ }
1357
+ )
1358
+ ] });
1359
+ }
1360
+ function ya({
1361
+ history: t,
1362
+ locale: n,
1363
+ onRetry: o,
1364
+ noteUnrecordedEdits: r,
1365
+ privacy: i
1366
+ }) {
1367
+ var g;
1368
+ const { t: s } = $("ui"), l = t.status ?? (t.entries ? "ready" : "loading"), b = l === "error" ? void 0 : t.entries, d = l === "loading" || l !== "error" && !b, [f, c] = B(!1);
1369
+ pe(() => c(!0), []);
1370
+ let C = "";
1371
+ d ? C = s("common.loading") : b && (C = b.length === 0 ? s(D("historyEmpty")) : s(D("historyLoaded"), { n: b.length }));
1372
+ let E;
1373
+ return l === "error" ? E = /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1374
+ /* @__PURE__ */ e(F, { variant: "error", children: /* @__PURE__ */ e(F.Description, { children: ((g = t.message) == null ? void 0 : g.trim()) || s("emptyState.error.description") }) }),
1375
+ o ? /* @__PURE__ */ e(
1376
+ _,
1377
+ {
1378
+ intent: "outline",
1379
+ "data-action": "retry-history",
1380
+ onClick: () => o(),
1381
+ children: s("emptyState.error.cta")
1382
+ }
1383
+ ) : null
1384
+ ] }) : d || !b ? E = /* @__PURE__ */ e(
1385
+ "div",
1386
+ {
1387
+ "aria-hidden": "true",
1388
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
1389
+ children: Gt.slice(0, 3).map((P, a) => /* @__PURE__ */ p(
1390
+ "div",
1391
+ {
1392
+ className: "ds:flex ds:items-start ds:gap-[var(--spacing-sm)]",
1393
+ children: [
1394
+ /* @__PURE__ */ e(
1395
+ ue,
1396
+ {
1397
+ variant: "circular",
1398
+ stagger: a,
1399
+ width: "var(--spacing-xl)",
1400
+ height: "var(--spacing-xl)",
1401
+ className: "ds:shrink-0"
1402
+ }
1403
+ ),
1404
+ /* @__PURE__ */ e(
1405
+ ue,
1406
+ {
1407
+ variant: "rounded",
1408
+ stagger: a,
1409
+ width: P,
1410
+ height: "var(--spacing-2xl)"
1411
+ }
1412
+ )
1413
+ ]
1414
+ },
1415
+ P
1416
+ ))
1417
+ }
1418
+ ) : E = /* @__PURE__ */ e(
1419
+ ea,
1420
+ {
1421
+ history: b,
1422
+ locale: n,
1423
+ noteUnrecordedEdits: r,
1424
+ privacy: i
1425
+ }
1426
+ ), /* @__PURE__ */ p(Q, { children: [
1427
+ /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: f ? C : "" }),
1428
+ E
1429
+ ] });
1430
+ }
1431
+ function ba({
1432
+ read: t,
1433
+ refreshing: n,
1434
+ currency: o,
1435
+ now: r,
1436
+ locale: i,
1437
+ shownTitle: s,
1438
+ headingId: l,
1439
+ enter: b,
1440
+ live: d,
1441
+ statusControl: f,
1442
+ patientId: c = ((Ee) => (Ee = t.patient) == null ? void 0 : Ee.id)(),
1443
+ operator: C,
1444
+ chair: E,
1445
+ privacy: g = !1,
1446
+ privacyTitle: P,
1447
+ mapsLink: a,
1448
+ notesPreview: u,
1449
+ onOpenNotes: k,
1450
+ history: h,
1451
+ onOpenHistory: N,
1452
+ noteUnrecordedEdits: A = !1,
1453
+ readOnly: S = !1,
1454
+ onStatusChange: y,
1455
+ allowedStatuses: v = At,
1456
+ onDescriptionChange: L,
1457
+ onEdit: K,
1458
+ onMove: ae,
1459
+ onCopy: V,
1460
+ onDelete: ie,
1461
+ onJoinTelehealth: Ie,
1462
+ onWhatsApp: Te,
1463
+ whatsappUrl: De,
1464
+ createTaskUrl: Ce,
1465
+ documents: X
1466
+ }) {
1467
+ var yt, bt;
1468
+ const { t: w } = $("ui"), { eventId: z } = t, [He] = B(b), se = { details: t, locale: i, currency: o }, I = h ? h.eventId !== void 0 && h.eventId !== z ? { status: "loading" } : h : t.history ? { entries: t.history } : void 0, Re = (u == null ? void 0 : u.patientId) === void 0 || u.patientId === c, oe = u ? Re ? u : c ? { notes: [], status: "loading", total: null } : void 0 : void 0, J = !!L && !S && !g, [fe, Y] = B(!1), [ge, U] = B(!1), Z = fe && I !== void 0, Pe = ge && J, ve = () => {
1469
+ Z || !I || (Y(!0), N == null || N(z));
1470
+ }, Me = M({ history: !1, editor: !1 });
1471
+ te(() => {
1472
+ const x = Me.current;
1473
+ Me.current = { history: Z, editor: Pe };
1474
+ const ce = x.history && I === void 0, kt = x.editor && !J;
1475
+ ce && Y(!1), kt && U(!1), (ce || kt) && Se(l);
1476
+ });
1477
+ const re = M(null), O = M(!1), ye = (I == null ? void 0 : I.status) ?? (I != null && I.entries ? "ready" : "loading");
1478
+ te(() => {
1479
+ O.current && (ye !== "loading" && (O.current = !1), tt(re.current));
1480
+ }, [ye]);
1481
+ const [q, be] = B(t.appointment.name ?? "");
1482
+ pe(() => {
1483
+ be(t.appointment.name ?? "");
1484
+ }, [t.appointment.name]);
1485
+ const [ke, ee] = B(""), [de, we] = B(!1), [T, H] = B(), le = M(null);
1486
+ pe(() => {
1487
+ ge && (ee(q), H(void 0));
1488
+ }, [ge]);
1489
+ const Le = async () => {
1490
+ if (!L) return;
1491
+ const x = ke.trim();
1492
+ we(!0), H(void 0);
1493
+ try {
1494
+ await L(x, z), be(x), U(!1);
1495
+ } catch (ce) {
1496
+ H(
1497
+ Qe(ce, w(D("descriptionSaveFailed")))
1498
+ );
1499
+ } finally {
1500
+ we(!1);
1501
+ }
1502
+ }, [W, We] = B(t.appointment.status);
1503
+ pe(() => {
1504
+ We(t.appointment.status);
1505
+ }, [t.appointment.status]);
1506
+ const ct = M(n);
1507
+ te(() => {
1508
+ const x = ct.current && !n;
1509
+ ct.current = n, x && (We(t.appointment.status), be(t.appointment.name ?? ""));
1510
+ }, [n]);
1511
+ const ze = At.filter(
1512
+ (x) => v.includes(x)
1513
+ ), xe = ot(W, {
1514
+ statuses: ze,
1515
+ /* Shown so the control can say it, but not a choice. */
1516
+ disabledStatuses: W && !ze.includes(W) ? [W] : []
1517
+ }), Ne = !!y && !S && ze.some((x) => x !== W), Vt = async (x) => {
1518
+ if (!(!y || !rn(x))) {
1519
+ try {
1520
+ await y(x, z);
1521
+ } catch (ce) {
1522
+ throw new Error(Qe(ce, w(D("statusSaveFailed"))));
1523
+ }
1524
+ We(x);
1525
+ }
1526
+ }, ut = g ? void 0 : De, mt = fa.filter(
1527
+ (x) => X == null ? void 0 : X.kinds.includes(x)
1528
+ ), Yt = (((yt = t.care) == null ? void 0 : yt.lines.length) ?? 0) > 0, pt = c !== void 0 && c !== "", je = w(D("status")), ht = `${je}: ${xe.option.label}`, qe = M(null), ft = M(Ne);
1529
+ te(() => {
1530
+ const x = ft.current && !Ne;
1531
+ ft.current = Ne, x && (qe.current ? tt(qe.current) : Se(l));
1532
+ });
1533
+ const gt = Ne ? /* @__PURE__ */ e(
1534
+ on,
1535
+ {
1536
+ ref: f,
1537
+ value: xe.value,
1538
+ options: xe.options,
1539
+ size: "sm",
1540
+ workflowLabel: je,
1541
+ className: `ds:[&>button]:bg-[color:var(--background)] ${pa}`,
1542
+ "aria-label": ht,
1543
+ onValueChange: Vt
1544
+ }
1545
+ ) : W ? (
1546
+ /* Named as the control is, "Status: Confirmed": the small display
1547
+ prints the value alone. */
1548
+ /* @__PURE__ */ e(
1549
+ "div",
1550
+ {
1551
+ ref: qe,
1552
+ role: "group",
1553
+ "aria-label": ht,
1554
+ tabIndex: -1,
1555
+ "data-status-display": "",
1556
+ className: ma(),
1557
+ children: /* @__PURE__ */ e(
1558
+ Ft,
1559
+ {
1560
+ value: xe.value,
1561
+ size: "sm",
1562
+ workflowLabel: je,
1563
+ option: xe.option
1564
+ }
1565
+ )
1566
+ }
1567
+ )
1568
+ ) : null, j = [];
1569
+ Ie && j.push([
1570
+ "join-telehealth",
1571
+ /* @__PURE__ */ e(
1572
+ _,
1573
+ {
1574
+ intent: "primary",
1575
+ "data-action": "join-telehealth",
1576
+ className: G,
1577
+ startIcon: /* @__PURE__ */ e(lt, { "aria-hidden": "true" }),
1578
+ onClick: () => Ie(z),
1579
+ children: w(D("joinTelehealth"))
1580
+ },
1581
+ "join"
1582
+ )
1583
+ ]), !S && K && j.push([
1584
+ "edit-appointment",
1585
+ /* @__PURE__ */ e(
1586
+ _,
1587
+ {
1588
+ "data-action": "edit-appointment",
1589
+ className: G,
1590
+ startIcon: /* @__PURE__ */ e(me, { "aria-hidden": "true" }),
1591
+ onClick: () => K(z),
1592
+ children: w("calendarWorkspace.editor.editTitle")
1593
+ },
1594
+ "edit"
1595
+ )
1596
+ ]), !S && ae && j.push([
1597
+ "move-appointment",
1598
+ /* @__PURE__ */ e(
1599
+ _,
1600
+ {
1601
+ "data-action": "move-appointment",
1602
+ className: G,
1603
+ startIcon: /* @__PURE__ */ e(et, { "aria-hidden": "true" }),
1604
+ onClick: () => ae(z),
1605
+ children: w(D("move"))
1606
+ },
1607
+ "move"
1608
+ )
1609
+ ]), !S && V && j.push([
1610
+ "copy-appointment",
1611
+ Yt ? /* @__PURE__ */ e(
1612
+ Mt,
1613
+ {
1614
+ "data-action": "copy-appointment",
1615
+ "data-overflow-tip": !1,
1616
+ startIcon: /* @__PURE__ */ e(Dt, { "aria-hidden": "true" }),
1617
+ overflowItems: [
1618
+ {
1619
+ label: w("calendarWorkspace.editor.duplicateAppointmentOnly"),
1620
+ icon: /* @__PURE__ */ e(An, { "aria-hidden": "true" }),
1621
+ action: "copy-appointment-only",
1622
+ onSelect: () => V(!1, z)
1623
+ },
1624
+ {
1625
+ label: w("calendarWorkspace.editor.duplicateWithTreatments"),
1626
+ icon: /* @__PURE__ */ e(Wt, { "aria-hidden": "true" }),
1627
+ action: "copy-appointment-with-treatments",
1628
+ onSelect: () => V(!0, z)
1629
+ }
1630
+ ],
1631
+ children: w(D("copy"))
1632
+ },
1633
+ "copy"
1634
+ ) : /* @__PURE__ */ e(
1635
+ _,
1636
+ {
1637
+ "data-action": "copy-appointment",
1638
+ className: G,
1639
+ startIcon: /* @__PURE__ */ e(Dt, { "aria-hidden": "true" }),
1640
+ onClick: () => V(!1, z),
1641
+ children: w(D("copy"))
1642
+ },
1643
+ "copy"
1644
+ )
1645
+ ]), X && mt.length > 0 && j.push([
1646
+ "open-create-document",
1647
+ /* @__PURE__ */ e(
1648
+ Mt,
1649
+ {
1650
+ "data-action": "open-create-document",
1651
+ "data-overflow-tip": !1,
1652
+ startIcon: /* @__PURE__ */ e(Sn, { "aria-hidden": "true" }),
1653
+ overflowItems: mt.map((x) => ({
1654
+ label: w(D(`documents.${x}`)),
1655
+ icon: ga[x],
1656
+ action: `create-document-${x}`,
1657
+ onSelect: () => X.onCreate(x, z)
1658
+ })),
1659
+ children: w(D("documents.label"))
1660
+ },
1661
+ "documents"
1662
+ )
1663
+ ]), Te ? j.push([
1664
+ "open-whatsapp",
1665
+ /* @__PURE__ */ e(
1666
+ _,
1667
+ {
1668
+ "data-action": "open-whatsapp",
1669
+ className: G,
1670
+ startIcon: /* @__PURE__ */ e(Nt, { "aria-hidden": "true" }),
1671
+ onClick: () => Te(z),
1672
+ children: w(D("remindWhatsApp"))
1673
+ },
1674
+ "whatsapp"
1675
+ )
1676
+ ]) : ut && j.push([
1677
+ "open-whatsapp",
1678
+ /* @__PURE__ */ e(
1679
+ _,
1680
+ {
1681
+ asChild: !0,
1682
+ "data-action": "open-whatsapp",
1683
+ className: G,
1684
+ startIcon: /* @__PURE__ */ e(Nt, { "aria-hidden": "true" }),
1685
+ children: /* @__PURE__ */ e("a", { href: ut, target: "_blank", rel: "noopener noreferrer", children: w(D("remindWhatsApp")) })
1686
+ },
1687
+ "whatsapp"
1688
+ )
1689
+ ]), Ce && j.push([
1690
+ "create-task",
1691
+ /* @__PURE__ */ e(
1692
+ _,
1693
+ {
1694
+ asChild: !0,
1695
+ "data-action": "create-task",
1696
+ className: G,
1697
+ startIcon: /* @__PURE__ */ e(In, { "aria-hidden": "true" }),
1698
+ children: /* @__PURE__ */ e("a", { href: Ce, children: w(D("createTask")) })
1699
+ },
1700
+ "task"
1701
+ )
1702
+ ]), !S && ie && j.push([
1703
+ "delete-appointment",
1704
+ /* @__PURE__ */ e(
1705
+ _,
1706
+ {
1707
+ intent: "destructiveOutline",
1708
+ "data-action": "delete-appointment",
1709
+ className: G,
1710
+ startIcon: /* @__PURE__ */ e($t, { "aria-hidden": "true" }),
1711
+ onClick: () => ie(z),
1712
+ children: w("calendarWorkspace.editor.delete")
1713
+ },
1714
+ "delete"
1715
+ )
1716
+ ]);
1717
+ const Ke = j.map(([, x]) => x);
1718
+ d.current = {
1719
+ status: W ?? null,
1720
+ allowed: Ne ? ze : [],
1721
+ offered: j.map(([x]) => x),
1722
+ historyAvailable: I !== void 0,
1723
+ historyOpen: Z,
1724
+ openHistory: ve,
1725
+ closeHistory: () => Y(!1)
1726
+ };
1727
+ const vt = w(D("historyBack"));
1728
+ return /* @__PURE__ */ e(
1729
+ "div",
1730
+ {
1731
+ className: `ds:flex ds:min-h-0 ds:flex-1 ds:flex-col ${He ? nn : ""}`,
1732
+ children: /* @__PURE__ */ p(Ge.Host, { children: [
1733
+ /* @__PURE__ */ e(
1734
+ _t,
1735
+ {
1736
+ title: s,
1737
+ headingId: l,
1738
+ icon: /* @__PURE__ */ e(rt, { "aria-hidden": "true" }),
1739
+ sticky: !0,
1740
+ divider: !0,
1741
+ actions: I ? /* @__PURE__ */ e(
1742
+ Lt,
1743
+ {
1744
+ size: "sm",
1745
+ intent: "ghost",
1746
+ icon: /* @__PURE__ */ e(Tt, { "aria-hidden": "true" }),
1747
+ "aria-label": w(D("historyAction")),
1748
+ tooltip: w(D("historyAction")),
1749
+ "data-action": "open-history",
1750
+ onClick: ve
1751
+ }
1752
+ ) : void 0
1753
+ }
1754
+ ),
1755
+ /* @__PURE__ */ e(
1756
+ "div",
1757
+ {
1758
+ tabIndex: 0,
1759
+ "aria-busy": n || void 0,
1760
+ className: "ds:[min-block-size:0] ds:flex-1 ds:overflow-y-auto",
1761
+ children: /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]", children: [
1762
+ g ? /* @__PURE__ */ e(en, { mask: P }) : t.patient ? /* @__PURE__ */ e(oa, { ...se, now: r, mapsLink: a }) : (
1763
+ /* No patient card to carry the identity: a patient-less, an
1764
+ unassigned or an unresolved booking keeps the strip. */
1765
+ /* @__PURE__ */ e(
1766
+ aa,
1767
+ {
1768
+ name: t.appointment.title.trim() ? t.appointment.title : w(D("patientNotLoaded")),
1769
+ unresolved: pt,
1770
+ status: W,
1771
+ flags: {
1772
+ isTelehealth: t.appointment.isTelehealth,
1773
+ isBookedOnline: t.appointment.bookedOnline,
1774
+ isRecurring: t.appointment.recurrence !== void 0,
1775
+ hasUnassignedPatient: t.appointment.bookedOnline && !pt,
1776
+ hasHighlightedAnamnesis: !1,
1777
+ hasBillableAmount: (((bt = t.money) == null ? void 0 : bt.billableAmount) ?? 0) > 0
1778
+ },
1779
+ locale: i
1780
+ }
1781
+ )
1782
+ ),
1783
+ /* @__PURE__ */ e(
1784
+ ra,
1785
+ {
1786
+ ...se,
1787
+ operator: C,
1788
+ chair: E,
1789
+ privacy: g,
1790
+ history: (I == null ? void 0 : I.status) === "error" || I == null ? void 0 : I.entries,
1791
+ description: (
1792
+ /* Not keyed on the text: the pencil must survive a save,
1793
+ so the sub-view can hand focus back to it. An empty
1794
+ read-only description prints nothing. Privacy hides the
1795
+ text and the pencil. */
1796
+ g ? q ? /* @__PURE__ */ e(xt, { block: "description" }) : void 0 : q || L && !S ? /* @__PURE__ */ e(
1797
+ zt,
1798
+ {
1799
+ "data-block": "description",
1800
+ role: "group",
1801
+ "aria-label": w("calendarWorkspace.editor.description"),
1802
+ value: q,
1803
+ editLabel: w(D("editDescription")),
1804
+ onEdit: L && !S ? () => U(!0) : void 0
1805
+ }
1806
+ ) : void 0
1807
+ )
1808
+ }
1809
+ ),
1810
+ oe && g ? /* @__PURE__ */ e(
1811
+ ne,
1812
+ {
1813
+ "data-card": "notes",
1814
+ title: w("notesPanel.title"),
1815
+ headingLevel: 3,
1816
+ children: /* @__PURE__ */ e(xt, {})
1817
+ }
1818
+ ) : oe ? /* @__PURE__ */ e(
1819
+ la,
1820
+ {
1821
+ preview: oe,
1822
+ onOpenNotes: Re ? k : void 0,
1823
+ locale: i
1824
+ }
1825
+ ) : null,
1826
+ /* @__PURE__ */ e(da, { ...se, privacy: g })
1827
+ ] })
1828
+ }
1829
+ ),
1830
+ gt || Ke.length > 0 ? (
1831
+ /* The body scrolls; the status and the actions stay put. The
1832
+ status keeps its own segment and never folds. The actions fold
1833
+ to icons, then into More, never onto a second line. */
1834
+ /* @__PURE__ */ p("div", { className: ua(), children: [
1835
+ gt,
1836
+ Ke.length > 0 ? /* @__PURE__ */ e(
1837
+ tn,
1838
+ {
1839
+ label: w(D("actionsLabel")),
1840
+ overflow: "menu",
1841
+ collapseToIcons: !0,
1842
+ background: "surface",
1843
+ size: "sm",
1844
+ className: `ds:min-w-0 ds:flex-1 ds:text-end ${ha}`,
1845
+ children: Ke
1846
+ }
1847
+ ) : null
1848
+ ] })
1849
+ ) : null,
1850
+ I ? /* @__PURE__ */ e(
1851
+ Ge,
1852
+ {
1853
+ ref: re,
1854
+ open: Z,
1855
+ icon: /* @__PURE__ */ e(Tt, { "aria-hidden": "true" }),
1856
+ title: w(D("historyTitle")),
1857
+ backLabel: vt,
1858
+ headingLevel: 3,
1859
+ onBack: () => Y(!1),
1860
+ "data-details-subview": "history",
1861
+ children: /* @__PURE__ */ e("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ e(
1862
+ ya,
1863
+ {
1864
+ history: I,
1865
+ locale: i,
1866
+ noteUnrecordedEdits: A,
1867
+ privacy: g,
1868
+ onRetry: I.onRetry ? () => {
1869
+ var x;
1870
+ O.current = !0, (x = I.onRetry) == null || x.call(I);
1871
+ } : void 0
1872
+ }
1873
+ ) })
1874
+ }
1875
+ ) : null,
1876
+ J ? /* @__PURE__ */ e(
1877
+ Ge,
1878
+ {
1879
+ open: Pe,
1880
+ icon: /* @__PURE__ */ e(me, { "aria-hidden": "true" }),
1881
+ title: w(D("editDescription")),
1882
+ backLabel: vt,
1883
+ headingLevel: 3,
1884
+ initialFocusRef: le,
1885
+ onBack: () => {
1886
+ de || U(!1);
1887
+ },
1888
+ "data-details-subview": "description",
1889
+ footer: /* @__PURE__ */ p(Q, { children: [
1890
+ /* @__PURE__ */ e(
1891
+ _,
1892
+ {
1893
+ intent: "secondary",
1894
+ disabled: de,
1895
+ onClick: () => U(!1),
1896
+ children: w(D("noteCancel"))
1897
+ }
1898
+ ),
1899
+ /* @__PURE__ */ e(
1900
+ _,
1901
+ {
1902
+ intent: "primary",
1903
+ "data-action": "save-description",
1904
+ loading: de,
1905
+ onClick: () => void Le(),
1906
+ children: w(D("descriptionSave"))
1907
+ }
1908
+ )
1909
+ ] }),
1910
+ children: /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]", children: [
1911
+ T ? /* @__PURE__ */ e(F, { variant: "error", children: /* @__PURE__ */ e(F.Description, { children: T }) }) : null,
1912
+ /* @__PURE__ */ e(
1913
+ an,
1914
+ {
1915
+ ref: le,
1916
+ value: ke,
1917
+ minRows: 6,
1918
+ autoResize: !0,
1919
+ "aria-label": w("calendarWorkspace.editor.description"),
1920
+ onChange: (x) => ee(x.target.value)
1921
+ }
1922
+ )
1923
+ ] })
1924
+ }
1925
+ ) : null
1926
+ ] })
1927
+ }
1928
+ );
1929
+ }
1930
+ const ka = Qt(function({
1931
+ state: n,
1932
+ onRetry: o,
1933
+ patientId: r,
1934
+ operator: i,
1935
+ chair: s,
1936
+ currency: l = "EUR",
1937
+ now: b,
1938
+ locale: d,
1939
+ title: f,
1940
+ privacy: c = !1,
1941
+ privacyTitle: C,
1942
+ mapsLink: E,
1943
+ notesPreview: g,
1944
+ onOpenNotes: P,
1945
+ history: a,
1946
+ onOpenHistory: u,
1947
+ noteUnrecordedEdits: k,
1948
+ readOnly: h = !1,
1949
+ onStatusChange: N,
1950
+ allowedStatuses: A,
1951
+ onDescriptionChange: S,
1952
+ onEdit: y,
1953
+ onMove: v,
1954
+ onCopy: L,
1955
+ onDelete: K,
1956
+ onJoinTelehealth: ae,
1957
+ onWhatsApp: V,
1958
+ whatsappUrl: ie,
1959
+ createTaskUrl: Ie,
1960
+ documents: Te,
1961
+ id: De,
1962
+ className: Ce,
1963
+ ...X
1964
+ }, Ee) {
1965
+ var de, we;
1966
+ const { t: w, i18n: z } = $("ui"), He = Ye(), se = De ?? He, I = Ye(), Re = d ?? z.language, oe = !c && (f != null && f.trim()) ? f : w(D("region")), J = n.status === "ready" ? n.read : void 0, fe = n.status === "ready" ? n.read.eventId : n.eventId, Y = M(
1967
+ void 0
1968
+ ), ge = Y.current !== void 0 && Y.current !== "ready";
1969
+ pe(() => {
1970
+ Y.current = n.status;
1971
+ }, [n.status]);
1972
+ const U = !!o && (n.status === "error" || n.status === "refused" && n.retryable === !0), Z = M(null), Pe = wt(() => Zt(Ee, Z), [Ee]), ve = M(!1);
1973
+ typeof document < "u" && (ve.current = ((de = Z.current) == null ? void 0 : de.contains(document.activeElement)) ?? !1);
1974
+ const Me = J ? `ready:${J.eventId}` : n.status, re = M(!1);
1975
+ te(() => {
1976
+ re.current ? (n.status !== "loading" && (re.current = !1), Se(I)) : ve.current && Se(I);
1977
+ }, [Me, I]);
1978
+ const O = M(null);
1979
+ J || (O.current = null);
1980
+ const ye = M(null), q = M({ state: n, eventId: fe, privacy: c, retryOffered: U, onRetry: o });
1981
+ q.current = { state: n, eventId: fe, privacy: c, retryOffered: U, onRetry: o };
1982
+ const be = wt(
1983
+ () => ({
1984
+ getEventId: () => q.current.eventId ?? null,
1985
+ getLoadStatus: () => q.current.state.status,
1986
+ getAppointmentStatus: () => {
1987
+ var T;
1988
+ return ((T = O.current) == null ? void 0 : T.status) ?? null;
1989
+ },
1990
+ getAllowedStatuses: () => {
1991
+ var T;
1992
+ return [...((T = O.current) == null ? void 0 : T.allowed) ?? []];
1993
+ },
1994
+ getOfferedActions: () => {
1995
+ var T;
1996
+ return [...((T = O.current) == null ? void 0 : T.offered) ?? []];
1997
+ },
1998
+ isHistoryOpen: () => {
1999
+ var T;
2000
+ return ((T = O.current) == null ? void 0 : T.historyOpen) ?? !1;
2001
+ },
2002
+ isPrivacy: () => q.current.privacy,
2003
+ openHistory: () => {
2004
+ var T;
2005
+ if (!((T = O.current) != null && T.historyAvailable))
2006
+ throw new Error("AppointmentDetailsPanel: History is not offered.");
2007
+ O.current.openHistory();
2008
+ },
2009
+ closeHistory: () => {
2010
+ var T;
2011
+ (T = O.current) == null || T.closeHistory();
2012
+ },
2013
+ setAppointmentStatus: (T) => {
2014
+ const H = O.current, le = ye.current;
2015
+ if (!H || !le || H.allowed.length === 0)
2016
+ return Ue(
2017
+ new Error("AppointmentDetailsPanel: the status is read-only.")
2018
+ );
2019
+ if (T === H.status) return Promise.resolve();
2020
+ if (!H.allowed.includes(T))
2021
+ return Ue(
2022
+ new Error(`AppointmentDetailsPanel: "${T}" is not allowed.`)
2023
+ );
2024
+ const Le = () => Ue(
2025
+ new Error("AppointmentDetailsPanel: a status save is in flight.")
2026
+ );
2027
+ if (le.getIsSaving()) return Le();
2028
+ const W = le.setValue(T);
2029
+ return W === void 0 ? Le() : W;
2030
+ },
2031
+ retry: () => {
2032
+ const { retryOffered: T, onRetry: H } = q.current;
2033
+ if (!T || !H)
2034
+ throw new Error("AppointmentDetailsPanel: Retry is not offered.");
2035
+ H();
2036
+ }
2037
+ }),
2038
+ []
2039
+ );
2040
+ Jt($n, be, se);
2041
+ const ke = /* @__PURE__ */ e(
2042
+ _t,
2043
+ {
2044
+ title: oe,
2045
+ headingId: I,
2046
+ icon: /* @__PURE__ */ e(rt, { "aria-hidden": "true" }),
2047
+ sticky: !0,
2048
+ divider: !0
2049
+ }
2050
+ );
2051
+ let ee;
2052
+ return n.status === "ready" ? ee = /* @__PURE__ */ e(
2053
+ ba,
2054
+ {
2055
+ read: n.read,
2056
+ refreshing: n.refreshing === !0,
2057
+ currency: l,
2058
+ now: b ?? /* @__PURE__ */ new Date(),
2059
+ locale: Re,
2060
+ shownTitle: oe,
2061
+ headingId: I,
2062
+ enter: ge,
2063
+ live: O,
2064
+ statusControl: ye,
2065
+ patientId: r,
2066
+ operator: i,
2067
+ chair: s,
2068
+ privacy: c,
2069
+ privacyTitle: C,
2070
+ mapsLink: E,
2071
+ notesPreview: g,
2072
+ onOpenNotes: P,
2073
+ history: a,
2074
+ onOpenHistory: u,
2075
+ noteUnrecordedEdits: k,
2076
+ readOnly: h,
2077
+ onStatusChange: N,
2078
+ allowedStatuses: A,
2079
+ onDescriptionChange: S,
2080
+ onEdit: y,
2081
+ onMove: v,
2082
+ onCopy: L,
2083
+ onDelete: K,
2084
+ onJoinTelehealth: ae,
2085
+ onWhatsApp: V,
2086
+ whatsappUrl: ie,
2087
+ createTaskUrl: Ie,
2088
+ documents: Te
2089
+ },
2090
+ n.read.eventId
2091
+ ) : n.status === "loading" ? ee = /* @__PURE__ */ p(Q, { children: [
2092
+ ke,
2093
+ /* @__PURE__ */ e(va, {})
2094
+ ] }) : ee = /* @__PURE__ */ p(Q, { children: [
2095
+ ke,
2096
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]", children: [
2097
+ /* @__PURE__ */ e(F, { variant: n.status === "error" ? "error" : "warning", children: /* @__PURE__ */ e(F.Description, { children: n.status === "error" ? ((we = n.message) == null ? void 0 : we.trim()) || w("emptyState.error.description") : n.reason }) }),
2098
+ U ? /* @__PURE__ */ e(
2099
+ _,
2100
+ {
2101
+ intent: "outline",
2102
+ "data-action": "retry-load",
2103
+ onClick: () => {
2104
+ re.current = !0, o == null || o();
2105
+ },
2106
+ children: w("emptyState.error.cta")
2107
+ }
2108
+ ) : null
2109
+ ] })
2110
+ ] }), /* @__PURE__ */ e(
2111
+ "div",
2112
+ {
2113
+ ref: Pe,
2114
+ id: De,
2115
+ "data-component": "appointment-details-panel",
2116
+ "data-component-id": se,
2117
+ "data-event-id": fe,
2118
+ "data-status": n.status,
2119
+ "aria-busy": n.status === "loading" || void 0,
2120
+ className: ca({ className: Ce }),
2121
+ ...X,
2122
+ children: ee
2123
+ }
2124
+ );
2125
+ });
2126
+ ka.displayName = "AppointmentDetailsPanel";
2127
+ function Oi({
2128
+ eventId: t,
2129
+ load: n,
2130
+ reloadKey: o
2131
+ }) {
2132
+ const { t: r } = $("ui"), i = M("");
2133
+ i.current = r("emptyState.error.description");
2134
+ const s = M(n);
2135
+ te(() => {
2136
+ s.current = n;
2137
+ });
2138
+ const [l, b] = B(0), [d, f] = B(), c = JSON.stringify([o ?? null, l]), [C, E] = B({ eventId: t, count: 0 }), g = C.eventId === t ? C.count : C.count + 1;
2139
+ C.eventId !== t && E({ eventId: t, count: g }), pe(() => {
2140
+ if (t === null) {
2141
+ f(void 0);
2142
+ return;
2143
+ }
2144
+ const k = new AbortController(), h = (N) => {
2145
+ k.signal.aborted || f({ eventId: t, selection: g, request: c, value: N });
2146
+ };
2147
+ return Promise.resolve().then(() => s.current(t, { signal: k.signal })).then((N) => {
2148
+ var A, S;
2149
+ if (N.status !== "ready") {
2150
+ h({
2151
+ status: "refused",
2152
+ eventId: t,
2153
+ reason: N.reason,
2154
+ retryable: N.retryable
2155
+ });
2156
+ return;
2157
+ }
2158
+ if (((A = N.details) == null ? void 0 : A.eventId) !== t || !qn((S = N.details.appointment) == null ? void 0 : S.startIso))
2159
+ throw new Error(i.current);
2160
+ h({ status: "ready", read: N.details });
2161
+ }).catch((N) => {
2162
+ h({
2163
+ status: "error",
2164
+ eventId: t,
2165
+ message: Qe(N, i.current)
2166
+ });
2167
+ }), () => k.abort();
2168
+ }, [t, g, c]);
2169
+ const P = Xt(() => b((k) => k + 1), []);
2170
+ if (t === null) return { state: null, retry: P };
2171
+ const a = (d == null ? void 0 : d.eventId) === t && d.selection === g ? d : void 0;
2172
+ let u = { status: "loading", eventId: t };
2173
+ return (a == null ? void 0 : a.request) === c ? u = a.value : (a == null ? void 0 : a.value.status) === "ready" && (u = { status: "ready", read: a.value.read, refreshing: !0 }), { state: u, retry: P };
2174
+ }
2175
+ export {
2176
+ ka as A,
2177
+ Dt as C,
2178
+ at as D,
2179
+ na as I,
2180
+ et as M,
2181
+ Un as R,
2182
+ $n as a,
2183
+ nt as b,
2184
+ Wn as c,
2185
+ Gn as d,
2186
+ ta as e,
2187
+ Be as f,
2188
+ ea as g,
2189
+ jt as h,
2190
+ Vn as i,
2191
+ Yn as j,
2192
+ aa as k,
2193
+ Hn as l,
2194
+ qn as p,
2195
+ Kn as s,
2196
+ Oi as u
2197
+ };
2198
+ //# sourceMappingURL=use-appointment-details-read-YsuJgYeB.js.map