@alfadocs/ui-kit-debug 0.70.0 → 0.72.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 (1434) hide show
  1. package/dist/_chunks/accordion-C11v9ouP.js +250 -0
  2. package/dist/_chunks/accordion-C11v9ouP.js.map +1 -0
  3. package/dist/_chunks/address-autocomplete-Bq-1n1UX.js +496 -0
  4. package/dist/_chunks/address-autocomplete-Bq-1n1UX.js.map +1 -0
  5. package/dist/_chunks/address-fields-COyjgqxA.js +246 -0
  6. package/dist/_chunks/address-fields-COyjgqxA.js.map +1 -0
  7. package/dist/_chunks/agenda-card-BCGaQazD.js +147 -0
  8. package/dist/_chunks/agenda-card-BCGaQazD.js.map +1 -0
  9. package/dist/_chunks/agenda-tray-loL2A3Cx.js +215 -0
  10. package/dist/_chunks/agenda-tray-loL2A3Cx.js.map +1 -0
  11. package/dist/_chunks/ai-consent-banner-Bke9m8VS.js +170 -0
  12. package/dist/_chunks/ai-consent-banner-Bke9m8VS.js.map +1 -0
  13. package/dist/_chunks/ai-prompt-input-TVI95hJD.js +500 -0
  14. package/dist/_chunks/ai-prompt-input-TVI95hJD.js.map +1 -0
  15. package/dist/_chunks/alert-KJbsPYkI.js +314 -0
  16. package/dist/_chunks/alert-KJbsPYkI.js.map +1 -0
  17. package/dist/_chunks/alia-sidebar-BV5lBSFR.js +1183 -0
  18. package/dist/_chunks/alia-sidebar-BV5lBSFR.js.map +1 -0
  19. package/dist/_chunks/anamnesis-card-CWO4Ui9c.js +156 -0
  20. package/dist/_chunks/anamnesis-card-CWO4Ui9c.js.map +1 -0
  21. package/dist/_chunks/annotation-marker-qt5R9WZX.js.map +1 -1
  22. package/dist/_chunks/antenatal-schedule-timeline-CY-VsLok.js +413 -0
  23. package/dist/_chunks/antenatal-schedule-timeline-CY-VsLok.js.map +1 -0
  24. package/dist/_chunks/app-frame-DIEMIC5V.js +132 -0
  25. package/dist/_chunks/app-frame-DIEMIC5V.js.map +1 -0
  26. package/dist/_chunks/appointment-card-Cy4FOkGP.js +311 -0
  27. package/dist/_chunks/appointment-card-Cy4FOkGP.js.map +1 -0
  28. package/dist/_chunks/appointment-timeline-BWAPPk8F.js +388 -0
  29. package/dist/_chunks/appointment-timeline-BWAPPk8F.js.map +1 -0
  30. package/dist/_chunks/appointment-tray-D3mk04TT.js +193 -0
  31. package/dist/_chunks/appointment-tray-D3mk04TT.js.map +1 -0
  32. package/dist/_chunks/ar-BOqyIfoY.js +399 -0
  33. package/dist/_chunks/ar-BOqyIfoY.js.map +1 -0
  34. package/dist/_chunks/astroid-BN4f5VXU.js +20 -0
  35. package/dist/_chunks/astroid-BN4f5VXU.js.map +1 -0
  36. package/dist/_chunks/audio-recorder-BbjG55dP.js +450 -0
  37. package/dist/_chunks/audio-recorder-BbjG55dP.js.map +1 -0
  38. package/dist/_chunks/autocomplete-BrONKN8l.js +516 -0
  39. package/dist/_chunks/autocomplete-BrONKN8l.js.map +1 -0
  40. package/dist/_chunks/bishop-score-C6eoak_j.js +304 -0
  41. package/dist/_chunks/bishop-score-C6eoak_j.js.map +1 -0
  42. package/dist/_chunks/bmi-calculator-BmQfoEGP.js +434 -0
  43. package/dist/_chunks/bmi-calculator-BmQfoEGP.js.map +1 -0
  44. package/dist/_chunks/booking-B62CMY5k.js +2695 -0
  45. package/dist/_chunks/booking-B62CMY5k.js.map +1 -0
  46. package/dist/_chunks/breadcrumb-agut0PwN.js +393 -0
  47. package/dist/_chunks/breadcrumb-agut0PwN.js.map +1 -0
  48. package/dist/_chunks/button-group-CvEnVzY7.js +119 -0
  49. package/dist/_chunks/button-group-CvEnVzY7.js.map +1 -0
  50. package/dist/_chunks/calculator-dialog-DuXMQSdm.js +40 -0
  51. package/dist/_chunks/calculator-dialog-DuXMQSdm.js.map +1 -0
  52. package/dist/_chunks/calendar-DeAlFPsF.js +1050 -0
  53. package/dist/_chunks/calendar-DeAlFPsF.js.map +1 -0
  54. package/dist/_chunks/calendar-clock-hbObjfGY.js +19 -0
  55. package/dist/_chunks/calendar-clock-hbObjfGY.js.map +1 -0
  56. package/dist/_chunks/calendar-days-BGWklvE-.js +23 -0
  57. package/dist/_chunks/calendar-days-BGWklvE-.js.map +1 -0
  58. package/dist/_chunks/care-plan-card-DhXbfGzE.js +256 -0
  59. package/dist/_chunks/care-plan-card-DhXbfGzE.js.map +1 -0
  60. package/dist/_chunks/care-plan-entry-card-D3YGD6rj.js +322 -0
  61. package/dist/_chunks/care-plan-entry-card-D3YGD6rj.js.map +1 -0
  62. package/dist/_chunks/care-plan-header-DtQxyfOb.js +198 -0
  63. package/dist/_chunks/care-plan-header-DtQxyfOb.js.map +1 -0
  64. package/dist/_chunks/carousel.agent-j7hWxJWr.js +1754 -0
  65. package/dist/_chunks/carousel.agent-j7hWxJWr.js.map +1 -0
  66. package/dist/_chunks/chat-container-BVCoN06N.js +234 -0
  67. package/dist/_chunks/chat-container-BVCoN06N.js.map +1 -0
  68. package/dist/_chunks/chat-input-Btq_uuMZ.js +368 -0
  69. package/dist/_chunks/chat-input-Btq_uuMZ.js.map +1 -0
  70. package/dist/_chunks/chat-message-DXjjM8z9.js +239 -0
  71. package/dist/_chunks/chat-message-DXjjM8z9.js.map +1 -0
  72. package/dist/_chunks/check-DrFSN__t.js +12 -0
  73. package/dist/_chunks/check-DrFSN__t.js.map +1 -0
  74. package/dist/_chunks/checkbox-group-CfqMv57d.js +213 -0
  75. package/dist/_chunks/checkbox-group-CfqMv57d.js.map +1 -0
  76. package/dist/_chunks/chevron-down-DWE7GSq9.js +12 -0
  77. package/dist/_chunks/chevron-down-DWE7GSq9.js.map +1 -0
  78. package/dist/_chunks/chevron-left-B8cOyH-V.js +12 -0
  79. package/dist/_chunks/chevron-left-B8cOyH-V.js.map +1 -0
  80. package/dist/_chunks/chevron-right-I9AeSxH2.js +12 -0
  81. package/dist/_chunks/chevron-right-I9AeSxH2.js.map +1 -0
  82. package/dist/_chunks/chevron-up-umRGgtJA.js +12 -0
  83. package/dist/_chunks/chevron-up-umRGgtJA.js.map +1 -0
  84. package/dist/_chunks/chevrons-right-DIHg7Xqi.js +26 -0
  85. package/dist/_chunks/chevrons-right-DIHg7Xqi.js.map +1 -0
  86. package/dist/_chunks/circle-alert-rGDZ73Wh.js +16 -0
  87. package/dist/_chunks/circle-alert-rGDZ73Wh.js.map +1 -0
  88. package/dist/_chunks/circle-check-BN6rz4NV.js +15 -0
  89. package/dist/_chunks/circle-check-BN6rz4NV.js.map +1 -0
  90. package/dist/_chunks/circle-j7oZoouK.js +12 -0
  91. package/dist/_chunks/circle-j7oZoouK.js.map +1 -0
  92. package/dist/_chunks/circle-x-W8Enq3i4.js +16 -0
  93. package/dist/_chunks/circle-x-W8Enq3i4.js.map +1 -0
  94. package/dist/_chunks/city-input-towzBenY.js +169 -0
  95. package/dist/_chunks/city-input-towzBenY.js.map +1 -0
  96. package/dist/_chunks/clinical-note-card-C7F_24IC.js +436 -0
  97. package/dist/_chunks/clinical-note-card-C7F_24IC.js.map +1 -0
  98. package/dist/_chunks/clipboard-check-BeAGxDVT.js +22 -0
  99. package/dist/_chunks/clipboard-check-BeAGxDVT.js.map +1 -0
  100. package/dist/_chunks/clock-Drd4Wtis.js +15 -0
  101. package/dist/_chunks/clock-Drd4Wtis.js.map +1 -0
  102. package/dist/_chunks/code-block-Cwi7e3HM.js +106 -0
  103. package/dist/_chunks/code-block-Cwi7e3HM.js.map +1 -0
  104. package/dist/_chunks/color-picker-D-tUwxxT.js +718 -0
  105. package/dist/_chunks/color-picker-D-tUwxxT.js.map +1 -0
  106. package/dist/_chunks/columns-2-8lq4-b8e.js +15 -0
  107. package/dist/_chunks/columns-2-8lq4-b8e.js.map +1 -0
  108. package/dist/_chunks/combobox-DiMLItyu.js +513 -0
  109. package/dist/_chunks/combobox-DiMLItyu.js.map +1 -0
  110. package/dist/_chunks/command-palette-DQl_SNEv.js +473 -0
  111. package/dist/_chunks/command-palette-DQl_SNEv.js.map +1 -0
  112. package/dist/_chunks/connection-status-0HajXMXM.js +108 -0
  113. package/dist/_chunks/connection-status-0HajXMXM.js.map +1 -0
  114. package/dist/_chunks/contact-card-0hnFJwrz.js +121 -0
  115. package/dist/_chunks/contact-card-0hnFJwrz.js.map +1 -0
  116. package/dist/_chunks/contact-profile-card-IggiUVpN.js +333 -0
  117. package/dist/_chunks/contact-profile-card-IggiUVpN.js.map +1 -0
  118. package/dist/_chunks/control-room-rail-DaGcsdZ6.js +333 -0
  119. package/dist/_chunks/control-room-rail-DaGcsdZ6.js.map +1 -0
  120. package/dist/_chunks/copy-field-PAp0-Wr5.js +268 -0
  121. package/dist/_chunks/copy-field-PAp0-Wr5.js.map +1 -0
  122. package/dist/_chunks/copy-vRpqqHtY.js +15 -0
  123. package/dist/_chunks/copy-vRpqqHtY.js.map +1 -0
  124. package/dist/_chunks/country-select-DYHDLEjG.js +709 -0
  125. package/dist/_chunks/country-select-DYHDLEjG.js.map +1 -0
  126. package/dist/_chunks/createLucideIcon-DhHxpK9K.js +117 -0
  127. package/dist/_chunks/createLucideIcon-DhHxpK9K.js.map +1 -0
  128. package/dist/_chunks/cycle-calculator-BNILyVas.js +252 -0
  129. package/dist/_chunks/cycle-calculator-BNILyVas.js.map +1 -0
  130. package/dist/_chunks/date-picker-CVkD_lOi.js +1845 -0
  131. package/dist/_chunks/date-picker-CVkD_lOi.js.map +1 -0
  132. package/dist/_chunks/date-picker-variants-DLg-ZrIo.js +3224 -0
  133. package/dist/_chunks/date-picker-variants-DLg-ZrIo.js.map +1 -0
  134. package/dist/_chunks/date-range-picker-Dw12DgV8.js +324 -0
  135. package/dist/_chunks/date-range-picker-Dw12DgV8.js.map +1 -0
  136. package/dist/_chunks/date-time-picker-Cd_OJtOy.js +336 -0
  137. package/dist/_chunks/date-time-picker-Cd_OJtOy.js.map +1 -0
  138. package/dist/_chunks/de-DFLsUxeV.js +477 -0
  139. package/dist/_chunks/de-DFLsUxeV.js.map +1 -0
  140. package/dist/_chunks/dependent-selector-DyFpdzZV.js +338 -0
  141. package/dist/_chunks/dependent-selector-DyFpdzZV.js.map +1 -0
  142. package/dist/_chunks/description-list-CmBVxIF5.js +319 -0
  143. package/dist/_chunks/description-list-CmBVxIF5.js.map +1 -0
  144. package/dist/_chunks/dialog-UbKJCi1X.js +230 -0
  145. package/dist/_chunks/dialog-UbKJCi1X.js.map +1 -0
  146. package/dist/_chunks/document-scanner-B23j4w7X.js +711 -0
  147. package/dist/_chunks/document-scanner-B23j4w7X.js.map +1 -0
  148. package/dist/_chunks/download-CfYKJO_j.js +16 -0
  149. package/dist/_chunks/download-CfYKJO_j.js.map +1 -0
  150. package/dist/_chunks/dropdown-menu-DU-Hrf33.js +355 -0
  151. package/dist/_chunks/dropdown-menu-DU-Hrf33.js.map +1 -0
  152. package/dist/_chunks/due-date-calculator-CmdAl_JO.js +256 -0
  153. package/dist/_chunks/due-date-calculator-CmdAl_JO.js.map +1 -0
  154. package/dist/_chunks/editable-currency-cell-renderer-z9fJFw6Z.js +410 -0
  155. package/dist/_chunks/editable-currency-cell-renderer-z9fJFw6Z.js.map +1 -0
  156. package/dist/_chunks/editor-overlay-BIOzr8v7.js +88 -0
  157. package/dist/_chunks/editor-overlay-BIOzr8v7.js.map +1 -0
  158. package/dist/_chunks/el-OVjBKytp.js +373 -0
  159. package/dist/_chunks/el-OVjBKytp.js.map +1 -0
  160. package/dist/_chunks/ellipsis-dRo9ouSU.js +16 -0
  161. package/dist/_chunks/ellipsis-dRo9ouSU.js.map +1 -0
  162. package/dist/_chunks/email-input-Dpe63k0K.js +397 -0
  163. package/dist/_chunks/email-input-Dpe63k0K.js.map +1 -0
  164. package/dist/_chunks/entity-summary-DpGziDv5.js +277 -0
  165. package/dist/_chunks/entity-summary-DpGziDv5.js.map +1 -0
  166. package/dist/_chunks/es-DKDNrHXG.js +373 -0
  167. package/dist/_chunks/es-DKDNrHXG.js.map +1 -0
  168. package/dist/_chunks/external-link-CY6zAXXU.js +16 -0
  169. package/dist/_chunks/external-link-CY6zAXXU.js.map +1 -0
  170. package/dist/_chunks/eye-BjhN2nYf.js +21 -0
  171. package/dist/_chunks/eye-BjhN2nYf.js.map +1 -0
  172. package/dist/_chunks/eye-off-C_4xkbRP.js +29 -0
  173. package/dist/_chunks/eye-off-C_4xkbRP.js.map +1 -0
  174. package/dist/_chunks/face-scheme-DOZO3M_c.js +1450 -0
  175. package/dist/_chunks/face-scheme-DOZO3M_c.js.map +1 -0
  176. package/dist/_chunks/face_detection_yunet_2023mar-BnsRs4bD.js +5 -0
  177. package/dist/_chunks/face_detection_yunet_2023mar-BnsRs4bD.js.map +1 -0
  178. package/dist/_chunks/fetal-weight-CVAH8sJ3.js +122 -0
  179. package/dist/_chunks/fetal-weight-CVAH8sJ3.js.map +1 -0
  180. package/dist/_chunks/field-array-CDzc3hTM.js +146 -0
  181. package/dist/_chunks/field-array-CDzc3hTM.js.map +1 -0
  182. package/dist/_chunks/field-value-Dj3i52H2.js +415 -0
  183. package/dist/_chunks/field-value-Dj3i52H2.js.map +1 -0
  184. package/dist/_chunks/file-spreadsheet-DmwyfV4O.js +25 -0
  185. package/dist/_chunks/file-spreadsheet-DmwyfV4O.js.map +1 -0
  186. package/dist/_chunks/file-text-5yv6r2ls.js +24 -0
  187. package/dist/_chunks/file-text-5yv6r2ls.js.map +1 -0
  188. package/dist/_chunks/file-upload-Kw1rdvFw.js +819 -0
  189. package/dist/_chunks/file-upload-Kw1rdvFw.js.map +1 -0
  190. package/dist/_chunks/finished-terminal-Di4gtZ50.js +122 -0
  191. package/dist/_chunks/finished-terminal-Di4gtZ50.js.map +1 -0
  192. package/dist/_chunks/fiscal-code-input-DKNXFXs3.js +553 -0
  193. package/dist/_chunks/fiscal-code-input-DKNXFXs3.js.map +1 -0
  194. package/dist/_chunks/form-field-M5UpX65Z.js +123 -0
  195. package/dist/_chunks/form-field-M5UpX65Z.js.map +1 -0
  196. package/dist/_chunks/fr-BfMvQh-v.js +338 -0
  197. package/dist/_chunks/fr-BfMvQh-v.js.map +1 -0
  198. package/dist/_chunks/freemium-paywall-DFoeedwh.js +275 -0
  199. package/dist/_chunks/freemium-paywall-DFoeedwh.js.map +1 -0
  200. package/dist/_chunks/gestational-age-calculator-BwCBPAGX.js +311 -0
  201. package/dist/_chunks/gestational-age-calculator-BwCBPAGX.js.map +1 -0
  202. package/dist/_chunks/globe-sHBW1JN5.js +16 -0
  203. package/dist/_chunks/globe-sHBW1JN5.js.map +1 -0
  204. package/dist/_chunks/grip-vertical-onSb1JXO.js +19 -0
  205. package/dist/_chunks/grip-vertical-onSb1JXO.js.map +1 -0
  206. package/dist/_chunks/hash-CSQ9SChR.js +17 -0
  207. package/dist/_chunks/hash-CSQ9SChR.js.map +1 -0
  208. package/dist/_chunks/hcg-doubling-CSsWxEJc.js +170 -0
  209. package/dist/_chunks/hcg-doubling-CSsWxEJc.js.map +1 -0
  210. package/dist/_chunks/header-DaXWDw0M.js +297 -0
  211. package/dist/_chunks/header-DaXWDw0M.js.map +1 -0
  212. package/dist/_chunks/header-settings-B0G_u-wV.js +284 -0
  213. package/dist/_chunks/header-settings-B0G_u-wV.js.map +1 -0
  214. package/dist/_chunks/heart--qCA4ffe.js +20 -0
  215. package/dist/_chunks/heart--qCA4ffe.js.map +1 -0
  216. package/dist/_chunks/heart-pulse-BCppJyN2.js +21 -0
  217. package/dist/_chunks/heart-pulse-BCppJyN2.js.map +1 -0
  218. package/dist/_chunks/hi-C0GEMwlD.js +433 -0
  219. package/dist/_chunks/hi-C0GEMwlD.js.map +1 -0
  220. package/dist/_chunks/iban-input-DXIA8Ln_.js +436 -0
  221. package/dist/_chunks/iban-input-DXIA8Ln_.js.map +1 -0
  222. package/dist/_chunks/icon-picker-Di6uYDG-.js +272 -0
  223. package/dist/_chunks/icon-picker-Di6uYDG-.js.map +1 -0
  224. package/dist/_chunks/image-B_5MNK0x.js +16 -0
  225. package/dist/_chunks/image-B_5MNK0x.js.map +1 -0
  226. package/dist/_chunks/image-cropper-CdmWFrMC.js +367 -0
  227. package/dist/_chunks/image-cropper-CdmWFrMC.js.map +1 -0
  228. package/dist/_chunks/info-CGn22peZ.js +16 -0
  229. package/dist/_chunks/info-CGn22peZ.js.map +1 -0
  230. package/dist/_chunks/insert-result-C7xSDb8q.js +742 -0
  231. package/dist/_chunks/insert-result-C7xSDb8q.js.map +1 -0
  232. package/dist/_chunks/isSameWeek-HddDAyJG.js +14 -0
  233. package/dist/_chunks/isSameWeek-HddDAyJG.js.map +1 -0
  234. package/dist/_chunks/it-5f4hiT2e.js +401 -0
  235. package/dist/_chunks/it-5f4hiT2e.js.map +1 -0
  236. package/dist/_chunks/ja-U0_2inl_.js +366 -0
  237. package/dist/_chunks/ja-U0_2inl_.js.map +1 -0
  238. package/dist/_chunks/key-value-pair-Byyyc_9J.js +144 -0
  239. package/dist/_chunks/key-value-pair-Byyyc_9J.js.map +1 -0
  240. package/dist/_chunks/languages-CGLX6Qpe.js +19 -0
  241. package/dist/_chunks/languages-CGLX6Qpe.js.map +1 -0
  242. package/dist/_chunks/layers-DcAENmsZ.js +34 -0
  243. package/dist/_chunks/layers-DcAENmsZ.js.map +1 -0
  244. package/dist/_chunks/link-CPb_pZPr.js +129 -0
  245. package/dist/_chunks/link-CPb_pZPr.js.map +1 -0
  246. package/dist/_chunks/link-cell-renderer-BCppbMec.js +2185 -0
  247. package/dist/_chunks/link-cell-renderer-BCppbMec.js.map +1 -0
  248. package/dist/_chunks/locale-picker-DzF7Q5Y8.js +739 -0
  249. package/dist/_chunks/locale-picker-DzF7Q5Y8.js.map +1 -0
  250. package/dist/_chunks/lock-ClAFG1gy.js +15 -0
  251. package/dist/_chunks/lock-ClAFG1gy.js.map +1 -0
  252. package/dist/_chunks/log-out-oDS6zO5d.js +16 -0
  253. package/dist/_chunks/log-out-oDS6zO5d.js.map +1 -0
  254. package/dist/_chunks/mail-BqXVF2zH.js +15 -0
  255. package/dist/_chunks/mail-BqXVF2zH.js.map +1 -0
  256. package/dist/_chunks/map-pin-BaY37-Km.js +21 -0
  257. package/dist/_chunks/map-pin-BaY37-Km.js.map +1 -0
  258. package/dist/_chunks/map-view-ByPvWG_9.js +378 -0
  259. package/dist/_chunks/map-view-ByPvWG_9.js.map +1 -0
  260. package/dist/_chunks/marketplace-app-shell-BCYiOvKZ.js +513 -0
  261. package/dist/_chunks/marketplace-app-shell-BCYiOvKZ.js.map +1 -0
  262. package/dist/_chunks/maximize-2-BYd2Kti7.js +17 -0
  263. package/dist/_chunks/maximize-2-BYd2Kti7.js.map +1 -0
  264. package/dist/_chunks/menu-Op71AWIC.js +16 -0
  265. package/dist/_chunks/menu-Op71AWIC.js.map +1 -0
  266. package/dist/_chunks/message-card-BZnnffyB.js +319 -0
  267. package/dist/_chunks/message-card-BZnnffyB.js.map +1 -0
  268. package/dist/_chunks/message-circle-Bepl9JT5.js +20 -0
  269. package/dist/_chunks/message-circle-Bepl9JT5.js.map +1 -0
  270. package/dist/_chunks/message-tray-cUHOCdU0.js +494 -0
  271. package/dist/_chunks/message-tray-cUHOCdU0.js.map +1 -0
  272. package/dist/_chunks/mic-CUklMZGF.js +16 -0
  273. package/dist/_chunks/mic-CUklMZGF.js.map +1 -0
  274. package/dist/_chunks/monitor-xXSrufmP.js +16 -0
  275. package/dist/_chunks/monitor-xXSrufmP.js.map +1 -0
  276. package/dist/_chunks/multi-select-D5QLBJM1.js +614 -0
  277. package/dist/_chunks/multi-select-D5QLBJM1.js.map +1 -0
  278. package/dist/_chunks/muscle-scheme-B9MIkuj0.js +1714 -0
  279. package/dist/_chunks/muscle-scheme-B9MIkuj0.js.map +1 -0
  280. package/dist/_chunks/nav-grid-gRudLsPX.js +169 -0
  281. package/dist/_chunks/nav-grid-gRudLsPX.js.map +1 -0
  282. package/dist/_chunks/navigation-menu-D3VndouD.js +310 -0
  283. package/dist/_chunks/navigation-menu-D3VndouD.js.map +1 -0
  284. package/dist/_chunks/nl-CDVnnx1U.js +326 -0
  285. package/dist/_chunks/nl-CDVnnx1U.js.map +1 -0
  286. package/dist/_chunks/notes-panel-CMyjUXD4.js +324 -0
  287. package/dist/_chunks/notes-panel-CMyjUXD4.js.map +1 -0
  288. package/dist/_chunks/notification-card-BHJ07FkH.js +290 -0
  289. package/dist/_chunks/notification-card-BHJ07FkH.js.map +1 -0
  290. package/dist/_chunks/notification-tray-Dzm1c3Wy.js +499 -0
  291. package/dist/_chunks/notification-tray-Dzm1c3Wy.js.map +1 -0
  292. package/dist/_chunks/number-input-DjWzmlEY.js +350 -0
  293. package/dist/_chunks/number-input-DjWzmlEY.js.map +1 -0
  294. package/dist/_chunks/operator-hero-DVy0RGoD.js +202 -0
  295. package/dist/_chunks/operator-hero-DVy0RGoD.js.map +1 -0
  296. package/dist/_chunks/optical-prescription-Bmlbuopi.js +653 -0
  297. package/dist/_chunks/optical-prescription-Bmlbuopi.js.map +1 -0
  298. package/dist/_chunks/pagination-EkD5SiCK.js +486 -0
  299. package/dist/_chunks/pagination-EkD5SiCK.js.map +1 -0
  300. package/dist/_chunks/panel-header-D313n_9-.js +105 -0
  301. package/dist/_chunks/panel-header-D313n_9-.js.map +1 -0
  302. package/dist/_chunks/patient-details-pU_E5xM2.js +778 -0
  303. package/dist/_chunks/patient-details-pU_E5xM2.js.map +1 -0
  304. package/dist/_chunks/patient-search-X9SUZGpy.js +1167 -0
  305. package/dist/_chunks/patient-search-X9SUZGpy.js.map +1 -0
  306. package/dist/_chunks/patient-shell-oiIRqEAl.js +162 -0
  307. package/dist/_chunks/patient-shell-oiIRqEAl.js.map +1 -0
  308. package/dist/_chunks/patient-summary-card--t3BjTdU.js +452 -0
  309. package/dist/_chunks/patient-summary-card--t3BjTdU.js.map +1 -0
  310. package/dist/_chunks/patient-table-BgWgNIMf.js +1110 -0
  311. package/dist/_chunks/patient-table-BgWgNIMf.js.map +1 -0
  312. package/dist/_chunks/payment-form-DL9xk9BA.js +690 -0
  313. package/dist/_chunks/payment-form-DL9xk9BA.js.map +1 -0
  314. package/dist/_chunks/payment-request-card-2ts7ITxd.js +467 -0
  315. package/dist/_chunks/payment-request-card-2ts7ITxd.js.map +1 -0
  316. package/dist/_chunks/pdf-viewer-DF3VMaPo.js +1005 -0
  317. package/dist/_chunks/pdf-viewer-DF3VMaPo.js.map +1 -0
  318. package/dist/_chunks/pencil-B1sKKyuT.js +21 -0
  319. package/dist/_chunks/pencil-B1sKKyuT.js.map +1 -0
  320. package/dist/_chunks/periodontal-chart-card-6c6Lt4ws.js +455 -0
  321. package/dist/_chunks/periodontal-chart-card-6c6Lt4ws.js.map +1 -0
  322. package/dist/_chunks/permission-matrix-BIJrGEmz.js +174 -0
  323. package/dist/_chunks/permission-matrix-BIJrGEmz.js.map +1 -0
  324. package/dist/_chunks/phone-FceYcIFQ.js +20 -0
  325. package/dist/_chunks/phone-FceYcIFQ.js.map +1 -0
  326. package/dist/_chunks/phone-input-dtnrvnZf.js +580 -0
  327. package/dist/_chunks/phone-input-dtnrvnZf.js.map +1 -0
  328. package/dist/_chunks/pl-BWNumNrg.js +514 -0
  329. package/dist/_chunks/pl-BWNumNrg.js.map +1 -0
  330. package/dist/_chunks/plus-DzMQ_c6b.js +15 -0
  331. package/dist/_chunks/plus-DzMQ_c6b.js.map +1 -0
  332. package/dist/_chunks/popover-uJ6BvEU3.js +302 -0
  333. package/dist/_chunks/popover-uJ6BvEU3.js.map +1 -0
  334. package/dist/_chunks/position-grid-CcvqHaKN.js +169 -0
  335. package/dist/_chunks/position-grid-CcvqHaKN.js.map +1 -0
  336. package/dist/_chunks/postal-code-input-BznBxVxf.js +192 -0
  337. package/dist/_chunks/postal-code-input-BznBxVxf.js.map +1 -0
  338. package/dist/_chunks/practice-results-CSEHTH2V.js +1609 -0
  339. package/dist/_chunks/practice-results-CSEHTH2V.js.map +1 -0
  340. package/dist/_chunks/pregnancy-dating-CxVAA6_4.js +421 -0
  341. package/dist/_chunks/pregnancy-dating-CxVAA6_4.js.map +1 -0
  342. package/dist/_chunks/pregnancy-weight-gain-C7zyrwow.js +322 -0
  343. package/dist/_chunks/pregnancy-weight-gain-C7zyrwow.js.map +1 -0
  344. package/dist/_chunks/printer-rkK0T1gi.js +22 -0
  345. package/dist/_chunks/printer-rkK0T1gi.js.map +1 -0
  346. package/dist/_chunks/privacy-lock-DrRmK8C7.js +197 -0
  347. package/dist/_chunks/privacy-lock-DrRmK8C7.js.map +1 -0
  348. package/dist/_chunks/product-hub-panel-CaZqttvm.js +678 -0
  349. package/dist/_chunks/product-hub-panel-CaZqttvm.js.map +1 -0
  350. package/dist/_chunks/province-select-BDywtmL-.js +261 -0
  351. package/dist/_chunks/province-select-BDywtmL-.js.map +1 -0
  352. package/dist/_chunks/pt-zqdQuryr.js +370 -0
  353. package/dist/_chunks/pt-zqdQuryr.js.map +1 -0
  354. package/dist/_chunks/public-footer.agent-BKkK3T3V.js +596 -0
  355. package/dist/_chunks/public-footer.agent-BKkK3T3V.js.map +1 -0
  356. package/dist/_chunks/public-header.agent-C-opZaOw.js +597 -0
  357. package/dist/_chunks/public-header.agent-C-opZaOw.js.map +1 -0
  358. package/dist/_chunks/radio-group-CI-6SmSw.js +167 -0
  359. package/dist/_chunks/radio-group-CI-6SmSw.js.map +1 -0
  360. package/dist/_chunks/radiograph-panel.agent-D1x33moc.js +553 -0
  361. package/dist/_chunks/radiograph-panel.agent-D1x33moc.js.map +1 -0
  362. package/dist/_chunks/rating-BYbUowdK.js +171 -0
  363. package/dist/_chunks/rating-BYbUowdK.js.map +1 -0
  364. package/dist/_chunks/refresh-cw-DnI0cLFC.js +17 -0
  365. package/dist/_chunks/refresh-cw-DnI0cLFC.js.map +1 -0
  366. package/dist/_chunks/reviews-panel-liUj6OPX.js +559 -0
  367. package/dist/_chunks/reviews-panel-liUj6OPX.js.map +1 -0
  368. package/dist/_chunks/rich-text-editor-DUgznqOf.js +2621 -0
  369. package/dist/_chunks/rich-text-editor-DUgznqOf.js.map +1 -0
  370. package/dist/_chunks/ro-CornQr64.js +361 -0
  371. package/dist/_chunks/ro-CornQr64.js.map +1 -0
  372. package/dist/_chunks/rotate-ccw-BBQnIVTr.js +15 -0
  373. package/dist/_chunks/rotate-ccw-BBQnIVTr.js.map +1 -0
  374. package/dist/_chunks/ru-CKAXNYVD.js +561 -0
  375. package/dist/_chunks/ru-CKAXNYVD.js.map +1 -0
  376. package/dist/_chunks/scan-line-CNseIHQ0.js +18 -0
  377. package/dist/_chunks/scan-line-CNseIHQ0.js.map +1 -0
  378. package/dist/_chunks/scroll-area-BZOvUhwQ.js +169 -0
  379. package/dist/_chunks/scroll-area-BZOvUhwQ.js.map +1 -0
  380. package/dist/_chunks/search-QbWPlY5f.js +15 -0
  381. package/dist/_chunks/search-QbWPlY5f.js.map +1 -0
  382. package/dist/_chunks/search-bar-CJj6sI9m.js +612 -0
  383. package/dist/_chunks/search-bar-CJj6sI9m.js.map +1 -0
  384. package/dist/_chunks/search-input-B7GmlPIE.js +237 -0
  385. package/dist/_chunks/search-input-B7GmlPIE.js.map +1 -0
  386. package/dist/_chunks/select-BmCbJMJS.js +442 -0
  387. package/dist/_chunks/select-BmCbJMJS.js.map +1 -0
  388. package/dist/_chunks/send-C5kDJ-Mz.js +21 -0
  389. package/dist/_chunks/send-C5kDJ-Mz.js.map +1 -0
  390. package/dist/_chunks/session-countdown-qr8EO5QY.js +214 -0
  391. package/dist/_chunks/session-countdown-qr8EO5QY.js.map +1 -0
  392. package/dist/_chunks/settings-d25ju_6L.js +21 -0
  393. package/dist/_chunks/settings-d25ju_6L.js.map +1 -0
  394. package/dist/_chunks/sheet-B_X54aZo.js +296 -0
  395. package/dist/_chunks/sheet-B_X54aZo.js.map +1 -0
  396. package/dist/_chunks/shield-check-DCJALLVh.js +21 -0
  397. package/dist/_chunks/shield-check-DCJALLVh.js.map +1 -0
  398. package/dist/_chunks/sidebar-B0OBmJrC.js +1311 -0
  399. package/dist/_chunks/sidebar-B0OBmJrC.js.map +1 -0
  400. package/dist/_chunks/sign-document-nK03S73h.js +370 -0
  401. package/dist/_chunks/sign-document-nK03S73h.js.map +1 -0
  402. package/dist/_chunks/signature-field-jgwYgUhO.js +197 -0
  403. package/dist/_chunks/signature-field-jgwYgUhO.js.map +1 -0
  404. package/dist/_chunks/smart-date-CsPlilQA.js +114 -0
  405. package/dist/_chunks/smart-date-CsPlilQA.js.map +1 -0
  406. package/dist/_chunks/sq-CIIvqXZv.js +355 -0
  407. package/dist/_chunks/sq-CIIvqXZv.js.map +1 -0
  408. package/dist/_chunks/square-DASBRZ0U.js +14 -0
  409. package/dist/_chunks/square-DASBRZ0U.js.map +1 -0
  410. package/dist/_chunks/square-check-big-dj0o8yA3.js +18 -0
  411. package/dist/_chunks/square-check-big-dj0o8yA3.js.map +1 -0
  412. package/dist/_chunks/star-Bf9L2Uot.js +20 -0
  413. package/dist/_chunks/star-Bf9L2Uot.js.map +1 -0
  414. package/dist/_chunks/stepper-accordion-BeVMZPuG.js +247 -0
  415. package/dist/_chunks/stepper-accordion-BeVMZPuG.js.map +1 -0
  416. package/dist/_chunks/stethoscope-sZXGC43m.js +18 -0
  417. package/dist/_chunks/stethoscope-sZXGC43m.js.map +1 -0
  418. package/dist/_chunks/streaming-text-Cedc05ya.js +131 -0
  419. package/dist/_chunks/streaming-text-Cedc05ya.js.map +1 -0
  420. package/dist/_chunks/subDays-DGSOp9d9.js +8 -0
  421. package/dist/_chunks/subDays-DGSOp9d9.js.map +1 -0
  422. package/dist/_chunks/sun-Bj9Mr553.js +38 -0
  423. package/dist/_chunks/sun-Bj9Mr553.js.map +1 -0
  424. package/dist/_chunks/sv-Kpk1pzjz.js +376 -0
  425. package/dist/_chunks/sv-Kpk1pzjz.js.map +1 -0
  426. package/dist/_chunks/tab-bar-Axhk6xzx.js +262 -0
  427. package/dist/_chunks/tab-bar-Axhk6xzx.js.map +1 -0
  428. package/dist/_chunks/tabs-DVQ941Sj.js +408 -0
  429. package/dist/_chunks/tabs-DVQ941Sj.js.map +1 -0
  430. package/dist/_chunks/tag-3wgkwwDB.js +258 -0
  431. package/dist/_chunks/tag-3wgkwwDB.js.map +1 -0
  432. package/dist/_chunks/task-card-BUgK6yZT.js +189 -0
  433. package/dist/_chunks/task-card-BUgK6yZT.js.map +1 -0
  434. package/dist/_chunks/task-tray-DP5A3Qnc.js +251 -0
  435. package/dist/_chunks/task-tray-DP5A3Qnc.js.map +1 -0
  436. package/dist/_chunks/tasks-panel-BuxaYtEF.js +757 -0
  437. package/dist/_chunks/tasks-panel-BuxaYtEF.js.map +1 -0
  438. package/dist/_chunks/text-input-CUvCb6ST.js +283 -0
  439. package/dist/_chunks/text-input-CUvCb6ST.js.map +1 -0
  440. package/dist/_chunks/theme-toggle-dtdy5EaL.js +367 -0
  441. package/dist/_chunks/theme-toggle-dtdy5EaL.js.map +1 -0
  442. package/dist/_chunks/timeline-r-8IUoBS.js +294 -0
  443. package/dist/_chunks/timeline-r-8IUoBS.js.map +1 -0
  444. package/dist/_chunks/toast.agent-BSxl057x.js +1005 -0
  445. package/dist/_chunks/toast.agent-BSxl057x.js.map +1 -0
  446. package/dist/_chunks/token-insert-menu-Pok4nExI.js +147 -0
  447. package/dist/_chunks/token-insert-menu-Pok4nExI.js.map +1 -0
  448. package/dist/_chunks/tool-rail-BZx0-yIr.js +524 -0
  449. package/dist/_chunks/tool-rail-BZx0-yIr.js.map +1 -0
  450. package/dist/_chunks/tooth-scheme-D_rso4uu.js +2133 -0
  451. package/dist/_chunks/tooth-scheme-D_rso4uu.js.map +1 -0
  452. package/dist/_chunks/tr-DHaeLFxG.js +378 -0
  453. package/dist/_chunks/tr-DHaeLFxG.js.map +1 -0
  454. package/dist/_chunks/transaction-chip-B6iWoVmU.js +225 -0
  455. package/dist/_chunks/transaction-chip-B6iWoVmU.js.map +1 -0
  456. package/dist/_chunks/transcript-panel-BGkEhvHO.js +374 -0
  457. package/dist/_chunks/transcript-panel-BGkEhvHO.js.map +1 -0
  458. package/dist/_chunks/trash-2-uumy3fy1.js +18 -0
  459. package/dist/_chunks/trash-2-uumy3fy1.js.map +1 -0
  460. package/dist/_chunks/triangle-alert-CBnO6nq_.js +22 -0
  461. package/dist/_chunks/triangle-alert-CBnO6nq_.js.map +1 -0
  462. package/dist/_chunks/unit-converter-fEqluT8b.js +337 -0
  463. package/dist/_chunks/unit-converter-fEqluT8b.js.map +1 -0
  464. package/dist/_chunks/use-edge-resize-ZnGG7gyO.js.map +1 -1
  465. package/dist/_chunks/use-password-requirements-Bwtqx1qN.js +453 -0
  466. package/dist/_chunks/use-password-requirements-Bwtqx1qN.js.map +1 -0
  467. package/dist/_chunks/user-B12p7bVF.js +15 -0
  468. package/dist/_chunks/user-B12p7bVF.js.map +1 -0
  469. package/dist/_chunks/user-cog-BTn98Arm.js +24 -0
  470. package/dist/_chunks/user-cog-BTn98Arm.js.map +1 -0
  471. package/dist/_chunks/users-BjS_Gg1E.js +17 -0
  472. package/dist/_chunks/users-BjS_Gg1E.js.map +1 -0
  473. package/dist/_chunks/video-BheNGvsu.js +21 -0
  474. package/dist/_chunks/video-BheNGvsu.js.map +1 -0
  475. package/dist/_chunks/warning-stack-BaMI7-n7.js +268 -0
  476. package/dist/_chunks/warning-stack-BaMI7-n7.js.map +1 -0
  477. package/dist/_chunks/workflow-map-qWsgCldq.js +1356 -0
  478. package/dist/_chunks/workflow-map-qWsgCldq.js.map +1 -0
  479. package/dist/_chunks/x-B5YnXwCz.js +15 -0
  480. package/dist/_chunks/x-B5YnXwCz.js.map +1 -0
  481. package/dist/_chunks/zh-CN-BncsTBwM.js +388 -0
  482. package/dist/_chunks/zh-CN-BncsTBwM.js.map +1 -0
  483. package/dist/_chunks/zoom-out-Dnif4kJx.js +29 -0
  484. package/dist/_chunks/zoom-out-Dnif4kJx.js.map +1 -0
  485. package/dist/agent-catalog.json +6621 -3629
  486. package/dist/agent-i18n/en.json +313 -23
  487. package/dist/components/_shared/option.d.ts +2 -0
  488. package/dist/components/_shared/option.d.ts.map +1 -1
  489. package/dist/components/_shared/patient-fields.d.ts +1 -1
  490. package/dist/components/_shared/patient-fields.d.ts.map +1 -1
  491. package/dist/components/accordion/index.js +1 -1
  492. package/dist/components/address-autocomplete/index.js +1 -1
  493. package/dist/components/address-fields/address-fields.agent.d.ts +9 -0
  494. package/dist/components/address-fields/address-fields.agent.d.ts.map +1 -0
  495. package/dist/components/address-fields/address-fields.d.ts +29 -0
  496. package/dist/components/address-fields/address-fields.d.ts.map +1 -0
  497. package/dist/components/address-fields/index.d.ts +5 -0
  498. package/dist/components/address-fields/index.d.ts.map +1 -0
  499. package/dist/components/address-fields/index.js +6 -0
  500. package/dist/components/agenda-card/index.js +1 -1
  501. package/dist/components/agenda-tray/index.js +1 -1
  502. package/dist/components/ai-consent-banner/index.js +1 -1
  503. package/dist/components/ai-prompt-input/index.js +1 -1
  504. package/dist/components/alert/index.js +1 -1
  505. package/dist/components/anamnesis-card/index.js +1 -1
  506. package/dist/components/annotation-marker/annotation-marker.d.ts +1 -1
  507. package/dist/components/app-frame/app-frame.d.ts +2 -2
  508. package/dist/components/app-frame/app-frame.d.ts.map +1 -1
  509. package/dist/components/app-frame/index.js +1 -1
  510. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  511. package/dist/components/appointment-card/index.js +2 -2
  512. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -1
  513. package/dist/components/appointment-timeline/index.js +1 -1
  514. package/dist/components/audio-recorder/index.js +1 -1
  515. package/dist/components/autocomplete/autocomplete.d.ts +10 -0
  516. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  517. package/dist/components/autocomplete/index.js +1 -1
  518. package/dist/components/bishop-score/index.js +1 -1
  519. package/dist/components/bmi-calculator/index.js +1 -1
  520. package/dist/components/booking/index.js +1 -1
  521. package/dist/components/breadcrumb/index.js +1 -1
  522. package/dist/components/button-group/button-group.d.ts.map +1 -1
  523. package/dist/components/button-group/index.js +1 -1
  524. package/dist/components/calculator-dialog/index.js +1 -1
  525. package/dist/components/calendar/index.js +1 -1
  526. package/dist/components/care-plan-card/index.js +1 -1
  527. package/dist/components/care-plan-entry-card/index.js +1 -1
  528. package/dist/components/care-plan-header/care-plan-header.d.ts +16 -5
  529. package/dist/components/care-plan-header/care-plan-header.d.ts.map +1 -1
  530. package/dist/components/care-plan-header/index.js +1 -1
  531. package/dist/components/carousel/index.js +1 -1
  532. package/dist/components/chat-container/index.js +1 -1
  533. package/dist/components/chat-input/index.js +1 -1
  534. package/dist/components/chat-message/chat-message.d.ts +1 -1
  535. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  536. package/dist/components/chat-message/index.js +1 -1
  537. package/dist/components/checkbox-group/index.js +1 -1
  538. package/dist/components/city-input/city-input.agent.d.ts +8 -0
  539. package/dist/components/city-input/city-input.agent.d.ts.map +1 -0
  540. package/dist/components/city-input/city-input.d.ts +57 -0
  541. package/dist/components/city-input/city-input.d.ts.map +1 -0
  542. package/dist/components/city-input/index.d.ts +5 -0
  543. package/dist/components/city-input/index.d.ts.map +1 -0
  544. package/dist/components/city-input/index.js +6 -0
  545. package/dist/components/clinical-note-card/index.js +1 -1
  546. package/dist/components/color-picker/index.js +1 -1
  547. package/dist/components/combobox/combobox.d.ts +17 -0
  548. package/dist/components/combobox/combobox.d.ts.map +1 -1
  549. package/dist/components/combobox/index.js +1 -1
  550. package/dist/components/command-palette/index.js +1 -1
  551. package/dist/components/connection-status/connection-status.agent.d.ts +4 -0
  552. package/dist/components/connection-status/connection-status.agent.d.ts.map +1 -0
  553. package/dist/components/connection-status/connection-status.d.ts +36 -0
  554. package/dist/components/connection-status/connection-status.d.ts.map +1 -0
  555. package/dist/components/connection-status/index.d.ts +4 -0
  556. package/dist/components/connection-status/index.d.ts.map +1 -0
  557. package/dist/components/connection-status/index.js +6 -0
  558. package/dist/components/connection-status/index.js.map +1 -0
  559. package/dist/components/contact-card/index.js +1 -1
  560. package/dist/components/contact-profile-card/index.js +1 -1
  561. package/dist/components/control-room-rail/control-room-context.d.ts +5 -5
  562. package/dist/components/control-room-rail/control-room-context.d.ts.map +1 -1
  563. package/dist/components/control-room-rail/control-room-rail.agent.d.ts +4 -0
  564. package/dist/components/control-room-rail/control-room-rail.agent.d.ts.map +1 -0
  565. package/dist/components/control-room-rail/control-room-rail.d.ts +5 -5
  566. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -1
  567. package/dist/components/control-room-rail/index.d.ts +1 -0
  568. package/dist/components/control-room-rail/index.d.ts.map +1 -1
  569. package/dist/components/control-room-rail/index.js +4 -3
  570. package/dist/components/copy-field/index.js +1 -1
  571. package/dist/components/counter/counter.d.ts +1 -1
  572. package/dist/components/country-select/country-select.agent.d.ts +8 -0
  573. package/dist/components/country-select/country-select.agent.d.ts.map +1 -0
  574. package/dist/components/country-select/country-select.d.ts +51 -0
  575. package/dist/components/country-select/country-select.d.ts.map +1 -0
  576. package/dist/components/country-select/index.d.ts +6 -0
  577. package/dist/components/country-select/index.d.ts.map +1 -0
  578. package/dist/components/country-select/index.js +9 -0
  579. package/dist/components/country-select/index.js.map +1 -0
  580. package/dist/components/country-select/iso-3166.d.ts +15 -0
  581. package/dist/components/country-select/iso-3166.d.ts.map +1 -0
  582. package/dist/components/cycle-calculator/index.js +1 -1
  583. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts +34 -0
  584. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts.map +1 -0
  585. package/dist/components/data-table/filters/select-filter.d.ts.map +1 -1
  586. package/dist/components/data-table/index.d.ts +2 -0
  587. package/dist/components/data-table/index.d.ts.map +1 -1
  588. package/dist/components/data-table/index.js +13 -11
  589. package/dist/components/date-picker/index.js +1 -1
  590. package/dist/components/date-range-picker/index.js +1 -1
  591. package/dist/components/date-time-picker/index.js +1 -1
  592. package/dist/components/dependent-selector/index.js +1 -1
  593. package/dist/components/description-list/index.js +1 -1
  594. package/dist/components/dialog/index.js +1 -1
  595. package/dist/components/document-scanner/index.js +1 -1
  596. package/dist/components/dropdown-menu/index.js +1 -1
  597. package/dist/components/due-date-calculator/index.js +2 -2
  598. package/dist/components/editor-overlay/index.js +1 -1
  599. package/dist/components/email-input/index.js +1 -1
  600. package/dist/components/entity-summary/entity-summary.agent.d.ts +4 -0
  601. package/dist/components/entity-summary/entity-summary.agent.d.ts.map +1 -0
  602. package/dist/components/entity-summary/entity-summary.d.ts +53 -4
  603. package/dist/components/entity-summary/entity-summary.d.ts.map +1 -1
  604. package/dist/components/entity-summary/index.js +1 -1
  605. package/dist/components/face-scheme/detect-face-landmarks.d.ts +26 -0
  606. package/dist/components/face-scheme/detect-face-landmarks.d.ts.map +1 -0
  607. package/dist/components/face-scheme/detect-face-yunet.d.ts +28 -0
  608. package/dist/components/face-scheme/detect-face-yunet.d.ts.map +1 -0
  609. package/dist/components/face-scheme/face-scheme-data.d.ts +113 -0
  610. package/dist/components/face-scheme/face-scheme-data.d.ts.map +1 -0
  611. package/dist/components/face-scheme/face-scheme-zones.d.ts +11 -0
  612. package/dist/components/face-scheme/face-scheme-zones.d.ts.map +1 -0
  613. package/dist/components/face-scheme/face-scheme.agent.d.ts +4 -0
  614. package/dist/components/face-scheme/face-scheme.agent.d.ts.map +1 -0
  615. package/dist/components/face-scheme/face-scheme.d.ts +144 -0
  616. package/dist/components/face-scheme/face-scheme.d.ts.map +1 -0
  617. package/dist/components/face-scheme/index.d.ts +7 -0
  618. package/dist/components/face-scheme/index.d.ts.map +1 -0
  619. package/dist/components/face-scheme/index.js +17 -0
  620. package/dist/components/face-scheme/index.js.map +1 -0
  621. package/dist/components/fetal-weight/index.js +1 -1
  622. package/dist/components/field-array/field-array.agent.d.ts +4 -0
  623. package/dist/components/field-array/field-array.agent.d.ts.map +1 -0
  624. package/dist/components/field-array/field-array.d.ts +45 -0
  625. package/dist/components/field-array/field-array.d.ts.map +1 -0
  626. package/dist/components/field-array/index.d.ts +4 -0
  627. package/dist/components/field-array/index.d.ts.map +1 -0
  628. package/dist/components/field-array/index.js +6 -0
  629. package/dist/components/field-array/index.js.map +1 -0
  630. package/dist/components/file-upload/index.js +1 -1
  631. package/dist/components/finished-terminal/index.js +1 -1
  632. package/dist/components/fiscal-code-input/index.js +1 -1
  633. package/dist/components/form-field/index.js +1 -1
  634. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  635. package/dist/components/freemium-paywall/index.js +1 -1
  636. package/dist/components/gestational-age-calculator/index.js +1 -1
  637. package/dist/components/hcg-doubling/index.js +1 -1
  638. package/dist/components/header/index.js +1 -1
  639. package/dist/components/header-settings/index.js +1 -1
  640. package/dist/components/iban-input/iban-input.agent.d.ts +4 -0
  641. package/dist/components/iban-input/iban-input.agent.d.ts.map +1 -0
  642. package/dist/components/iban-input/iban-input.d.ts +51 -0
  643. package/dist/components/iban-input/iban-input.d.ts.map +1 -0
  644. package/dist/components/iban-input/index.d.ts +5 -0
  645. package/dist/components/iban-input/index.d.ts.map +1 -0
  646. package/dist/components/iban-input/index.js +13 -0
  647. package/dist/components/iban-input/index.js.map +1 -0
  648. package/dist/components/iban-input/is-valid-iban.d.ts +31 -0
  649. package/dist/components/iban-input/is-valid-iban.d.ts.map +1 -0
  650. package/dist/components/icon-picker/icon-picker.agent.d.ts +4 -0
  651. package/dist/components/icon-picker/icon-picker.agent.d.ts.map +1 -0
  652. package/dist/components/icon-picker/icon-picker.d.ts +41 -0
  653. package/dist/components/icon-picker/icon-picker.d.ts.map +1 -0
  654. package/dist/components/icon-picker/index.d.ts +4 -0
  655. package/dist/components/icon-picker/index.d.ts.map +1 -0
  656. package/dist/components/icon-picker/index.js +6 -0
  657. package/dist/components/icon-picker/index.js.map +1 -0
  658. package/dist/components/image-cropper/crop-geometry.d.ts +30 -0
  659. package/dist/components/image-cropper/crop-geometry.d.ts.map +1 -0
  660. package/dist/components/image-cropper/image-cropper.agent.d.ts +4 -0
  661. package/dist/components/image-cropper/image-cropper.agent.d.ts.map +1 -0
  662. package/dist/components/image-cropper/image-cropper.d.ts +32 -0
  663. package/dist/components/image-cropper/image-cropper.d.ts.map +1 -0
  664. package/dist/components/image-cropper/index.d.ts +5 -0
  665. package/dist/components/image-cropper/index.d.ts.map +1 -0
  666. package/dist/components/image-cropper/index.js +11 -0
  667. package/dist/components/image-cropper/index.js.map +1 -0
  668. package/dist/components/index.d.ts +19 -2
  669. package/dist/components/index.d.ts.map +1 -1
  670. package/dist/components/key-value-pair/index.js +1 -1
  671. package/dist/components/link/index.js +1 -1
  672. package/dist/components/locale-picker/index.js +1 -1
  673. package/dist/components/map-view/index.js +1 -1
  674. package/dist/components/message-card/index.js +1 -1
  675. package/dist/components/message-card/message-card.d.ts +14 -0
  676. package/dist/components/message-card/message-card.d.ts.map +1 -1
  677. package/dist/components/message-tray/index.js +1 -1
  678. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  679. package/dist/components/message-tray/message-tray.d.ts +4 -0
  680. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  681. package/dist/components/multi-select/index.js +1 -1
  682. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  683. package/dist/components/muscle-scheme/index.d.ts +6 -0
  684. package/dist/components/muscle-scheme/index.d.ts.map +1 -0
  685. package/dist/components/muscle-scheme/index.js +16 -0
  686. package/dist/components/muscle-scheme/index.js.map +1 -0
  687. package/dist/components/muscle-scheme/muscle-paths.d.ts +22 -0
  688. package/dist/components/muscle-scheme/muscle-paths.d.ts.map +1 -0
  689. package/dist/components/muscle-scheme/muscle-scheme-data.d.ts +107 -0
  690. package/dist/components/muscle-scheme/muscle-scheme-data.d.ts.map +1 -0
  691. package/dist/components/muscle-scheme/muscle-scheme.agent.d.ts +6 -0
  692. package/dist/components/muscle-scheme/muscle-scheme.agent.d.ts.map +1 -0
  693. package/dist/components/muscle-scheme/muscle-scheme.d.ts +66 -0
  694. package/dist/components/muscle-scheme/muscle-scheme.d.ts.map +1 -0
  695. package/dist/components/nav-grid/index.d.ts +4 -0
  696. package/dist/components/nav-grid/index.d.ts.map +1 -0
  697. package/dist/components/nav-grid/index.js +7 -0
  698. package/dist/components/nav-grid/index.js.map +1 -0
  699. package/dist/components/nav-grid/nav-grid.agent.d.ts +4 -0
  700. package/dist/components/nav-grid/nav-grid.agent.d.ts.map +1 -0
  701. package/dist/components/nav-grid/nav-grid.d.ts +41 -0
  702. package/dist/components/nav-grid/nav-grid.d.ts.map +1 -0
  703. package/dist/components/navigation-menu/index.js +1 -1
  704. package/dist/components/notes-panel/index.js +1 -1
  705. package/dist/components/notes-panel/notes-panel.agent.d.ts +4 -0
  706. package/dist/components/notes-panel/notes-panel.agent.d.ts.map +1 -0
  707. package/dist/components/notes-panel/notes-panel.d.ts +30 -0
  708. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
  709. package/dist/components/notification-card/index.js +1 -1
  710. package/dist/components/notification-card/notification-card.d.ts +15 -0
  711. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  712. package/dist/components/notification-tray/index.js +1 -1
  713. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  714. package/dist/components/notification-tray/notification-tray.d.ts +4 -0
  715. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  716. package/dist/components/number-input/index.js +1 -1
  717. package/dist/components/operator-hero/index.js +1 -1
  718. package/dist/components/optical-prescription/index.d.ts +6 -0
  719. package/dist/components/optical-prescription/index.d.ts.map +1 -0
  720. package/dist/components/optical-prescription/index.js +38 -0
  721. package/dist/components/optical-prescription/index.js.map +1 -0
  722. package/dist/components/optical-prescription/optical-prescription-data.d.ts +106 -0
  723. package/dist/components/optical-prescription/optical-prescription-data.d.ts.map +1 -0
  724. package/dist/components/optical-prescription/optical-prescription.agent.d.ts +6 -0
  725. package/dist/components/optical-prescription/optical-prescription.agent.d.ts.map +1 -0
  726. package/dist/components/optical-prescription/optical-prescription.d.ts +43 -0
  727. package/dist/components/optical-prescription/optical-prescription.d.ts.map +1 -0
  728. package/dist/components/pagination/index.js +1 -1
  729. package/dist/components/panel-header/index.d.ts +3 -0
  730. package/dist/components/panel-header/index.d.ts.map +1 -0
  731. package/dist/components/panel-header/index.js +7 -0
  732. package/dist/components/panel-header/index.js.map +1 -0
  733. package/dist/components/panel-header/panel-header.d.ts +41 -0
  734. package/dist/components/panel-header/panel-header.d.ts.map +1 -0
  735. package/dist/components/password-input/index.js +1 -1
  736. package/dist/components/patient-details/index.js +1 -1
  737. package/dist/components/patient-details/patient-details.d.ts.map +1 -1
  738. package/dist/components/patient-search/index.js +1 -1
  739. package/dist/components/patient-summary-card/index.js +1 -1
  740. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  741. package/dist/components/patient-table/index.js +1 -1
  742. package/dist/components/payment-card/index.js +1 -1
  743. package/dist/components/payment-form/index.js +1 -1
  744. package/dist/components/pdf-viewer/index.js +1 -1
  745. package/dist/components/periodontal-chart-card/index.js +1 -1
  746. package/dist/components/permission-matrix/index.d.ts +4 -0
  747. package/dist/components/permission-matrix/index.d.ts.map +1 -0
  748. package/dist/components/permission-matrix/index.js +7 -0
  749. package/dist/components/permission-matrix/index.js.map +1 -0
  750. package/dist/components/permission-matrix/permission-matrix.agent.d.ts +4 -0
  751. package/dist/components/permission-matrix/permission-matrix.agent.d.ts.map +1 -0
  752. package/dist/components/permission-matrix/permission-matrix.d.ts +47 -0
  753. package/dist/components/permission-matrix/permission-matrix.d.ts.map +1 -0
  754. package/dist/components/phone-input/index.js +1 -1
  755. package/dist/components/popover/index.js +1 -1
  756. package/dist/components/position-grid/index.d.ts +4 -0
  757. package/dist/components/position-grid/index.d.ts.map +1 -0
  758. package/dist/components/position-grid/index.js +7 -0
  759. package/dist/components/position-grid/index.js.map +1 -0
  760. package/dist/components/position-grid/position-grid.agent.d.ts +4 -0
  761. package/dist/components/position-grid/position-grid.agent.d.ts.map +1 -0
  762. package/dist/components/position-grid/position-grid.d.ts +39 -0
  763. package/dist/components/position-grid/position-grid.d.ts.map +1 -0
  764. package/dist/components/postal-code-input/index.d.ts +5 -0
  765. package/dist/components/postal-code-input/index.d.ts.map +1 -0
  766. package/dist/components/postal-code-input/index.js +6 -0
  767. package/dist/components/postal-code-input/index.js.map +1 -0
  768. package/dist/components/postal-code-input/postal-code-input.agent.d.ts +8 -0
  769. package/dist/components/postal-code-input/postal-code-input.agent.d.ts.map +1 -0
  770. package/dist/components/postal-code-input/postal-code-input.d.ts +27 -0
  771. package/dist/components/postal-code-input/postal-code-input.d.ts.map +1 -0
  772. package/dist/components/practice-results/index.js +1 -1
  773. package/dist/components/pregnancy-dating/index.js +1 -1
  774. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  775. package/dist/components/privacy-lock/index.js +1 -1
  776. package/dist/components/product-hub-tray/index.js +1 -1
  777. package/dist/components/product-hub-tray/product-hub-tray.d.ts +13 -1
  778. package/dist/components/product-hub-tray/product-hub-tray.d.ts.map +1 -1
  779. package/dist/components/province-select/index.d.ts +6 -0
  780. package/dist/components/province-select/index.d.ts.map +1 -0
  781. package/dist/components/province-select/index.js +7 -0
  782. package/dist/components/province-select/index.js.map +1 -0
  783. package/dist/components/province-select/it-provinces.d.ts +8 -0
  784. package/dist/components/province-select/it-provinces.d.ts.map +1 -0
  785. package/dist/components/province-select/province-select.agent.d.ts +8 -0
  786. package/dist/components/province-select/province-select.agent.d.ts.map +1 -0
  787. package/dist/components/province-select/province-select.d.ts +38 -0
  788. package/dist/components/province-select/province-select.d.ts.map +1 -0
  789. package/dist/components/public-footer/index.js +1 -1
  790. package/dist/components/public-footer/public-footer.d.ts +1 -1
  791. package/dist/components/public-header/index.js +1 -1
  792. package/dist/components/radio-group/index.js +1 -1
  793. package/dist/components/radiograph-panel/index.js +1 -1
  794. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -1
  795. package/dist/components/rating/index.js +1 -1
  796. package/dist/components/reviews-panel/index.js +1 -1
  797. package/dist/components/reviews-panel/reviews-panel.d.ts.map +1 -1
  798. package/dist/components/rich-text-editor/editor-toolbar.d.ts +17 -0
  799. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  800. package/dist/components/rich-text-editor/index.js +1 -1
  801. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  802. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  803. package/dist/components/scroll-area/index.js +1 -1
  804. package/dist/components/search-bar/index.js +1 -1
  805. package/dist/components/search-input/index.js +1 -1
  806. package/dist/components/select/index.js +1 -1
  807. package/dist/components/select/select.d.ts +8 -2
  808. package/dist/components/select/select.d.ts.map +1 -1
  809. package/dist/components/session-countdown/index.js +1 -1
  810. package/dist/components/sheet/index.js +1 -1
  811. package/dist/components/sheet/sheet.d.ts.map +1 -1
  812. package/dist/components/sidebar/index.js +1 -1
  813. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  814. package/dist/components/sign-document/index.js +1 -1
  815. package/dist/components/signature-field/index.js +1 -1
  816. package/dist/components/skeleton/skeleton.d.ts +1 -1
  817. package/dist/components/smart-date/index.js +1 -1
  818. package/dist/components/stepper-accordion/index.js +1 -1
  819. package/dist/components/streaming-text/index.js +1 -1
  820. package/dist/components/tab-bar/index.js +1 -1
  821. package/dist/components/tabs/index.js +1 -1
  822. package/dist/components/tag/index.js +1 -1
  823. package/dist/components/task-card/index.js +1 -1
  824. package/dist/components/task-card/task-card.d.ts +14 -6
  825. package/dist/components/task-card/task-card.d.ts.map +1 -1
  826. package/dist/components/task-tray/index.js +1 -1
  827. package/dist/components/tasks-panel/index.d.ts +4 -0
  828. package/dist/components/tasks-panel/index.d.ts.map +1 -0
  829. package/dist/components/tasks-panel/index.js +6 -0
  830. package/dist/components/tasks-panel/index.js.map +1 -0
  831. package/dist/components/tasks-panel/tasks-panel.agent.d.ts +4 -0
  832. package/dist/components/tasks-panel/tasks-panel.agent.d.ts.map +1 -0
  833. package/dist/components/tasks-panel/tasks-panel.d.ts +152 -0
  834. package/dist/components/tasks-panel/tasks-panel.d.ts.map +1 -0
  835. package/dist/components/text-input/index.js +1 -1
  836. package/dist/components/theme-toggle/index.js +1 -1
  837. package/dist/components/timeline/index.js +1 -1
  838. package/dist/components/toast/index.js +1 -1
  839. package/dist/components/token-insert-menu/index.d.ts +4 -0
  840. package/dist/components/token-insert-menu/index.d.ts.map +1 -0
  841. package/dist/components/token-insert-menu/index.js +6 -0
  842. package/dist/components/token-insert-menu/index.js.map +1 -0
  843. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts +4 -0
  844. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts.map +1 -0
  845. package/dist/components/token-insert-menu/token-insert-menu.d.ts +33 -0
  846. package/dist/components/token-insert-menu/token-insert-menu.d.ts.map +1 -0
  847. package/dist/components/tool-rail/index.d.ts +4 -0
  848. package/dist/components/tool-rail/index.d.ts.map +1 -0
  849. package/dist/components/tool-rail/index.js +6 -0
  850. package/dist/components/tool-rail/index.js.map +1 -0
  851. package/dist/components/tool-rail/tool-rail.agent.d.ts +4 -0
  852. package/dist/components/tool-rail/tool-rail.agent.d.ts.map +1 -0
  853. package/dist/components/tool-rail/tool-rail.d.ts +160 -0
  854. package/dist/components/tool-rail/tool-rail.d.ts.map +1 -0
  855. package/dist/components/tooth-scheme/index.js +1 -1
  856. package/dist/components/tooth-scheme/tooth-scheme.d.ts +9 -0
  857. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  858. package/dist/components/transaction-chip/index.js +1 -1
  859. package/dist/components/transcript-panel/index.js +1 -1
  860. package/dist/components/transcript-panel/transcript-panel.d.ts +2 -2
  861. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
  862. package/dist/components/unit-converter/index.js +1 -1
  863. package/dist/components/warning-stack/index.js +1 -1
  864. package/dist/components/workflow/index.js +1 -1
  865. package/dist/hooks/use-edge-resize.d.ts +2 -2
  866. package/dist/i18n/locales/ar.d.ts +306 -100
  867. package/dist/i18n/locales/ar.d.ts.map +1 -1
  868. package/dist/i18n/locales/ar.js +298 -112
  869. package/dist/i18n/locales/ar.js.map +1 -1
  870. package/dist/i18n/locales/de.d.ts +306 -100
  871. package/dist/i18n/locales/de.d.ts.map +1 -1
  872. package/dist/i18n/locales/de.js +300 -112
  873. package/dist/i18n/locales/de.js.map +1 -1
  874. package/dist/i18n/locales/el.d.ts +306 -100
  875. package/dist/i18n/locales/el.d.ts.map +1 -1
  876. package/dist/i18n/locales/el.js +305 -112
  877. package/dist/i18n/locales/el.js.map +1 -1
  878. package/dist/i18n/locales/en.d.ts +306 -100
  879. package/dist/i18n/locales/en.d.ts.map +1 -1
  880. package/dist/i18n/locales/en.js +311 -112
  881. package/dist/i18n/locales/en.js.map +1 -1
  882. package/dist/i18n/locales/es.d.ts +306 -100
  883. package/dist/i18n/locales/es.d.ts.map +1 -1
  884. package/dist/i18n/locales/es.js +297 -112
  885. package/dist/i18n/locales/es.js.map +1 -1
  886. package/dist/i18n/locales/fr.d.ts +306 -100
  887. package/dist/i18n/locales/fr.d.ts.map +1 -1
  888. package/dist/i18n/locales/fr.js +300 -112
  889. package/dist/i18n/locales/fr.js.map +1 -1
  890. package/dist/i18n/locales/hi.d.ts +306 -100
  891. package/dist/i18n/locales/hi.d.ts.map +1 -1
  892. package/dist/i18n/locales/hi.js +296 -112
  893. package/dist/i18n/locales/hi.js.map +1 -1
  894. package/dist/i18n/locales/it.d.ts +306 -100
  895. package/dist/i18n/locales/it.d.ts.map +1 -1
  896. package/dist/i18n/locales/it.js +300 -112
  897. package/dist/i18n/locales/it.js.map +1 -1
  898. package/dist/i18n/locales/ja.d.ts +306 -100
  899. package/dist/i18n/locales/ja.d.ts.map +1 -1
  900. package/dist/i18n/locales/ja.js +301 -112
  901. package/dist/i18n/locales/ja.js.map +1 -1
  902. package/dist/i18n/locales/nl.d.ts +306 -100
  903. package/dist/i18n/locales/nl.d.ts.map +1 -1
  904. package/dist/i18n/locales/nl.js +293 -112
  905. package/dist/i18n/locales/nl.js.map +1 -1
  906. package/dist/i18n/locales/pl.d.ts +306 -100
  907. package/dist/i18n/locales/pl.d.ts.map +1 -1
  908. package/dist/i18n/locales/pl.js +301 -112
  909. package/dist/i18n/locales/pl.js.map +1 -1
  910. package/dist/i18n/locales/pt.d.ts +306 -100
  911. package/dist/i18n/locales/pt.d.ts.map +1 -1
  912. package/dist/i18n/locales/pt.js +305 -112
  913. package/dist/i18n/locales/pt.js.map +1 -1
  914. package/dist/i18n/locales/ro.d.ts +306 -100
  915. package/dist/i18n/locales/ro.d.ts.map +1 -1
  916. package/dist/i18n/locales/ro.js +305 -112
  917. package/dist/i18n/locales/ro.js.map +1 -1
  918. package/dist/i18n/locales/ru.d.ts +306 -100
  919. package/dist/i18n/locales/ru.d.ts.map +1 -1
  920. package/dist/i18n/locales/ru.js +298 -112
  921. package/dist/i18n/locales/ru.js.map +1 -1
  922. package/dist/i18n/locales/sq.d.ts +306 -100
  923. package/dist/i18n/locales/sq.d.ts.map +1 -1
  924. package/dist/i18n/locales/sq.js +302 -112
  925. package/dist/i18n/locales/sq.js.map +1 -1
  926. package/dist/i18n/locales/sv.d.ts +306 -100
  927. package/dist/i18n/locales/sv.d.ts.map +1 -1
  928. package/dist/i18n/locales/sv.js +300 -112
  929. package/dist/i18n/locales/sv.js.map +1 -1
  930. package/dist/i18n/locales/tr.d.ts +306 -100
  931. package/dist/i18n/locales/tr.d.ts.map +1 -1
  932. package/dist/i18n/locales/tr.js +298 -112
  933. package/dist/i18n/locales/tr.js.map +1 -1
  934. package/dist/i18n/locales/zh.d.ts +306 -100
  935. package/dist/i18n/locales/zh.d.ts.map +1 -1
  936. package/dist/i18n/locales/zh.js +293 -112
  937. package/dist/i18n/locales/zh.js.map +1 -1
  938. package/dist/index.js +881 -765
  939. package/dist/index.js.map +1 -1
  940. package/dist/locales/ar.json +311 -105
  941. package/dist/locales/de.json +311 -105
  942. package/dist/locales/el.json +311 -105
  943. package/dist/locales/en.json +311 -105
  944. package/dist/locales/es.json +311 -105
  945. package/dist/locales/fr.json +311 -105
  946. package/dist/locales/hi.json +311 -105
  947. package/dist/locales/it.json +311 -105
  948. package/dist/locales/ja.json +311 -105
  949. package/dist/locales/nl.json +311 -105
  950. package/dist/locales/pl.json +311 -105
  951. package/dist/locales/pt.json +311 -105
  952. package/dist/locales/ro.json +311 -105
  953. package/dist/locales/ru.json +311 -105
  954. package/dist/locales/sq.json +311 -105
  955. package/dist/locales/sv.json +311 -105
  956. package/dist/locales/tr.json +311 -105
  957. package/dist/locales/zh.json +311 -105
  958. package/dist/patterns/alia-assistant/alia-asteroid-icon.d.ts +18 -0
  959. package/dist/patterns/alia-assistant/alia-asteroid-icon.d.ts.map +1 -0
  960. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  961. package/dist/patterns/alia-assistant/alia-sidebar.d.ts.map +1 -1
  962. package/dist/patterns/alia-assistant/alia-types.d.ts +9 -0
  963. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  964. package/dist/patterns/alia-assistant/index.js +1 -1
  965. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  966. package/dist/patterns/patient-shell/index.js +1 -1
  967. package/dist/tokens.css +15 -1
  968. package/package.json +77 -9
  969. package/dist/_chunks/accordion-DnIa7OHX.js +0 -250
  970. package/dist/_chunks/accordion-DnIa7OHX.js.map +0 -1
  971. package/dist/_chunks/address-autocomplete-BEX9PXty.js +0 -496
  972. package/dist/_chunks/address-autocomplete-BEX9PXty.js.map +0 -1
  973. package/dist/_chunks/agenda-card-BQ-IKAru.js +0 -147
  974. package/dist/_chunks/agenda-card-BQ-IKAru.js.map +0 -1
  975. package/dist/_chunks/agenda-tray-CGXRk58j.js +0 -215
  976. package/dist/_chunks/agenda-tray-CGXRk58j.js.map +0 -1
  977. package/dist/_chunks/ai-consent-banner-Be-h9mRI.js +0 -170
  978. package/dist/_chunks/ai-consent-banner-Be-h9mRI.js.map +0 -1
  979. package/dist/_chunks/ai-prompt-input-CuhTo9mh.js +0 -500
  980. package/dist/_chunks/ai-prompt-input-CuhTo9mh.js.map +0 -1
  981. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +0 -511
  982. package/dist/_chunks/ai-tools-rail-B5NEghsp.js.map +0 -1
  983. package/dist/_chunks/alert-CHYZ96tR.js +0 -314
  984. package/dist/_chunks/alert-CHYZ96tR.js.map +0 -1
  985. package/dist/_chunks/alia-sidebar-B47qRQb5.js +0 -1126
  986. package/dist/_chunks/alia-sidebar-B47qRQb5.js.map +0 -1
  987. package/dist/_chunks/anamnesis-card-DvYCa16e.js +0 -156
  988. package/dist/_chunks/anamnesis-card-DvYCa16e.js.map +0 -1
  989. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +0 -2445
  990. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js.map +0 -1
  991. package/dist/_chunks/antenatal-schedule-timeline-CwXrQRm1.js +0 -413
  992. package/dist/_chunks/antenatal-schedule-timeline-CwXrQRm1.js.map +0 -1
  993. package/dist/_chunks/app-frame-BYx1gcV7.js +0 -121
  994. package/dist/_chunks/app-frame-BYx1gcV7.js.map +0 -1
  995. package/dist/_chunks/appointment-card-C06aZqA7.js +0 -310
  996. package/dist/_chunks/appointment-card-C06aZqA7.js.map +0 -1
  997. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +0 -386
  998. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js.map +0 -1
  999. package/dist/_chunks/appointment-tray-DRRw5ROi.js +0 -193
  1000. package/dist/_chunks/appointment-tray-DRRw5ROi.js.map +0 -1
  1001. package/dist/_chunks/ar-Cn5Fq48Z.js +0 -399
  1002. package/dist/_chunks/ar-Cn5Fq48Z.js.map +0 -1
  1003. package/dist/_chunks/audio-recorder-Cpdk5qpQ.js +0 -450
  1004. package/dist/_chunks/audio-recorder-Cpdk5qpQ.js.map +0 -1
  1005. package/dist/_chunks/autocomplete-DOeGouCL.js +0 -494
  1006. package/dist/_chunks/autocomplete-DOeGouCL.js.map +0 -1
  1007. package/dist/_chunks/bishop-score-DnYWtZa_.js +0 -304
  1008. package/dist/_chunks/bishop-score-DnYWtZa_.js.map +0 -1
  1009. package/dist/_chunks/bmi-calculator-zjeY4E7J.js +0 -434
  1010. package/dist/_chunks/bmi-calculator-zjeY4E7J.js.map +0 -1
  1011. package/dist/_chunks/booking-DUBI0oqt.js +0 -2711
  1012. package/dist/_chunks/booking-DUBI0oqt.js.map +0 -1
  1013. package/dist/_chunks/breadcrumb-CchdeG7d.js +0 -393
  1014. package/dist/_chunks/breadcrumb-CchdeG7d.js.map +0 -1
  1015. package/dist/_chunks/button-group-Ciq6J4IW.js +0 -122
  1016. package/dist/_chunks/button-group-Ciq6J4IW.js.map +0 -1
  1017. package/dist/_chunks/calculator-dialog-BR5iU0kf.js +0 -40
  1018. package/dist/_chunks/calculator-dialog-BR5iU0kf.js.map +0 -1
  1019. package/dist/_chunks/calendar-B6soK1Yb.js +0 -17
  1020. package/dist/_chunks/calendar-B6soK1Yb.js.map +0 -1
  1021. package/dist/_chunks/calendar-CZUjL8SZ.js +0 -1050
  1022. package/dist/_chunks/calendar-CZUjL8SZ.js.map +0 -1
  1023. package/dist/_chunks/calendar-clock-CYkcqdwl.js +0 -19
  1024. package/dist/_chunks/calendar-clock-CYkcqdwl.js.map +0 -1
  1025. package/dist/_chunks/calendar-days-C4BmpCZg.js +0 -23
  1026. package/dist/_chunks/calendar-days-C4BmpCZg.js.map +0 -1
  1027. package/dist/_chunks/care-plan-card-C5sTfY9G.js +0 -256
  1028. package/dist/_chunks/care-plan-card-C5sTfY9G.js.map +0 -1
  1029. package/dist/_chunks/care-plan-entry-card-CXnxGCWA.js +0 -322
  1030. package/dist/_chunks/care-plan-entry-card-CXnxGCWA.js.map +0 -1
  1031. package/dist/_chunks/care-plan-header-BUwqDTtz.js +0 -206
  1032. package/dist/_chunks/care-plan-header-BUwqDTtz.js.map +0 -1
  1033. package/dist/_chunks/carousel.agent-4v8Emr9E.js +0 -1754
  1034. package/dist/_chunks/carousel.agent-4v8Emr9E.js.map +0 -1
  1035. package/dist/_chunks/chat-container-DWho5hPR.js +0 -234
  1036. package/dist/_chunks/chat-container-DWho5hPR.js.map +0 -1
  1037. package/dist/_chunks/chat-input-BcXTetgM.js +0 -368
  1038. package/dist/_chunks/chat-input-BcXTetgM.js.map +0 -1
  1039. package/dist/_chunks/chat-message-3V54YipB.js +0 -237
  1040. package/dist/_chunks/chat-message-3V54YipB.js.map +0 -1
  1041. package/dist/_chunks/check-DPdL_Sm7.js +0 -12
  1042. package/dist/_chunks/check-DPdL_Sm7.js.map +0 -1
  1043. package/dist/_chunks/checkbox-group-PqNmQ-cE.js +0 -213
  1044. package/dist/_chunks/checkbox-group-PqNmQ-cE.js.map +0 -1
  1045. package/dist/_chunks/chevron-down-BX_NP2Yh.js +0 -12
  1046. package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +0 -1
  1047. package/dist/_chunks/chevron-left-CX1jqD2M.js +0 -12
  1048. package/dist/_chunks/chevron-left-CX1jqD2M.js.map +0 -1
  1049. package/dist/_chunks/chevron-right-BrpYejk0.js +0 -12
  1050. package/dist/_chunks/chevron-right-BrpYejk0.js.map +0 -1
  1051. package/dist/_chunks/chevron-up-zOEDrmBB.js +0 -12
  1052. package/dist/_chunks/chevron-up-zOEDrmBB.js.map +0 -1
  1053. package/dist/_chunks/chevrons-right-d9MwesPG.js +0 -26
  1054. package/dist/_chunks/chevrons-right-d9MwesPG.js.map +0 -1
  1055. package/dist/_chunks/circle-BkqTgYmt.js +0 -12
  1056. package/dist/_chunks/circle-BkqTgYmt.js.map +0 -1
  1057. package/dist/_chunks/circle-alert-ChA9opNA.js +0 -16
  1058. package/dist/_chunks/circle-alert-ChA9opNA.js.map +0 -1
  1059. package/dist/_chunks/circle-check-9AeSgJD_.js +0 -15
  1060. package/dist/_chunks/circle-check-9AeSgJD_.js.map +0 -1
  1061. package/dist/_chunks/circle-x-Du2CmjaU.js +0 -16
  1062. package/dist/_chunks/circle-x-Du2CmjaU.js.map +0 -1
  1063. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +0 -436
  1064. package/dist/_chunks/clinical-note-card-BUvNMNGL.js.map +0 -1
  1065. package/dist/_chunks/clock-21AGPWJ5.js +0 -15
  1066. package/dist/_chunks/clock-21AGPWJ5.js.map +0 -1
  1067. package/dist/_chunks/code-block-BBWHhIc8.js +0 -106
  1068. package/dist/_chunks/code-block-BBWHhIc8.js.map +0 -1
  1069. package/dist/_chunks/color-picker-C_fZl6sA.js +0 -718
  1070. package/dist/_chunks/color-picker-C_fZl6sA.js.map +0 -1
  1071. package/dist/_chunks/columns-2-BTOBZbep.js +0 -15
  1072. package/dist/_chunks/columns-2-BTOBZbep.js.map +0 -1
  1073. package/dist/_chunks/combobox-Clum7gJ1.js +0 -496
  1074. package/dist/_chunks/combobox-Clum7gJ1.js.map +0 -1
  1075. package/dist/_chunks/command-palette-CJzmc5pC.js +0 -473
  1076. package/dist/_chunks/command-palette-CJzmc5pC.js.map +0 -1
  1077. package/dist/_chunks/contact-card-Cf8Ktyt3.js +0 -121
  1078. package/dist/_chunks/contact-card-Cf8Ktyt3.js.map +0 -1
  1079. package/dist/_chunks/contact-profile-card-DDPwRFiP.js +0 -333
  1080. package/dist/_chunks/contact-profile-card-DDPwRFiP.js.map +0 -1
  1081. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +0 -229
  1082. package/dist/_chunks/control-room-rail-Y8ryLYsP.js.map +0 -1
  1083. package/dist/_chunks/copy-B00HK7tj.js +0 -15
  1084. package/dist/_chunks/copy-B00HK7tj.js.map +0 -1
  1085. package/dist/_chunks/copy-field-Bjw9u2cV.js +0 -268
  1086. package/dist/_chunks/copy-field-Bjw9u2cV.js.map +0 -1
  1087. package/dist/_chunks/createLucideIcon-CrFbzy84.js +0 -117
  1088. package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +0 -1
  1089. package/dist/_chunks/cycle-calculator-CCmPwcBl.js +0 -252
  1090. package/dist/_chunks/cycle-calculator-CCmPwcBl.js.map +0 -1
  1091. package/dist/_chunks/date-picker-Dl9RKxaV.js +0 -1845
  1092. package/dist/_chunks/date-picker-Dl9RKxaV.js.map +0 -1
  1093. package/dist/_chunks/date-picker-variants-DAcSLTua.js +0 -3224
  1094. package/dist/_chunks/date-picker-variants-DAcSLTua.js.map +0 -1
  1095. package/dist/_chunks/date-range-picker-CTUeR6Bj.js +0 -324
  1096. package/dist/_chunks/date-range-picker-CTUeR6Bj.js.map +0 -1
  1097. package/dist/_chunks/date-time-picker-BhoogS5Q.js +0 -336
  1098. package/dist/_chunks/date-time-picker-BhoogS5Q.js.map +0 -1
  1099. package/dist/_chunks/de-CrJs4ZsX.js +0 -477
  1100. package/dist/_chunks/de-CrJs4ZsX.js.map +0 -1
  1101. package/dist/_chunks/dependent-selector-DUV4thxX.js +0 -338
  1102. package/dist/_chunks/dependent-selector-DUV4thxX.js.map +0 -1
  1103. package/dist/_chunks/description-list-gkNGWk5G.js +0 -319
  1104. package/dist/_chunks/description-list-gkNGWk5G.js.map +0 -1
  1105. package/dist/_chunks/dialog-ZNuboNmy.js +0 -230
  1106. package/dist/_chunks/dialog-ZNuboNmy.js.map +0 -1
  1107. package/dist/_chunks/document-scanner-C_AxLooF.js +0 -711
  1108. package/dist/_chunks/document-scanner-C_AxLooF.js.map +0 -1
  1109. package/dist/_chunks/download-CDF1sbL9.js +0 -16
  1110. package/dist/_chunks/download-CDF1sbL9.js.map +0 -1
  1111. package/dist/_chunks/dropdown-menu-qrxjymfw.js +0 -355
  1112. package/dist/_chunks/dropdown-menu-qrxjymfw.js.map +0 -1
  1113. package/dist/_chunks/due-date-calculator-Brdj-euS.js +0 -256
  1114. package/dist/_chunks/due-date-calculator-Brdj-euS.js.map +0 -1
  1115. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +0 -328
  1116. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js.map +0 -1
  1117. package/dist/_chunks/editor-overlay-wYm22wZK.js +0 -88
  1118. package/dist/_chunks/editor-overlay-wYm22wZK.js.map +0 -1
  1119. package/dist/_chunks/el-DHdMOIhL.js +0 -373
  1120. package/dist/_chunks/el-DHdMOIhL.js.map +0 -1
  1121. package/dist/_chunks/ellipsis-rgGdiK_9.js +0 -16
  1122. package/dist/_chunks/ellipsis-rgGdiK_9.js.map +0 -1
  1123. package/dist/_chunks/email-input-DJ7EXklP.js +0 -397
  1124. package/dist/_chunks/email-input-DJ7EXklP.js.map +0 -1
  1125. package/dist/_chunks/entity-summary-BxRjFh_4.js +0 -138
  1126. package/dist/_chunks/entity-summary-BxRjFh_4.js.map +0 -1
  1127. package/dist/_chunks/es-DCATCfqo.js +0 -373
  1128. package/dist/_chunks/es-DCATCfqo.js.map +0 -1
  1129. package/dist/_chunks/external-link-C6F25E6k.js +0 -16
  1130. package/dist/_chunks/external-link-C6F25E6k.js.map +0 -1
  1131. package/dist/_chunks/eye-LHlSU38h.js +0 -21
  1132. package/dist/_chunks/eye-LHlSU38h.js.map +0 -1
  1133. package/dist/_chunks/eye-off-xEXDAh5z.js +0 -29
  1134. package/dist/_chunks/eye-off-xEXDAh5z.js.map +0 -1
  1135. package/dist/_chunks/fetal-weight-DNCkyeVo.js +0 -122
  1136. package/dist/_chunks/fetal-weight-DNCkyeVo.js.map +0 -1
  1137. package/dist/_chunks/field-value-NXYczdpO.js +0 -415
  1138. package/dist/_chunks/field-value-NXYczdpO.js.map +0 -1
  1139. package/dist/_chunks/file-spreadsheet-zUkY8rJ2.js +0 -25
  1140. package/dist/_chunks/file-spreadsheet-zUkY8rJ2.js.map +0 -1
  1141. package/dist/_chunks/file-text-DSNuv2B8.js +0 -24
  1142. package/dist/_chunks/file-text-DSNuv2B8.js.map +0 -1
  1143. package/dist/_chunks/file-upload-DwZcAK8D.js +0 -819
  1144. package/dist/_chunks/file-upload-DwZcAK8D.js.map +0 -1
  1145. package/dist/_chunks/finished-terminal-VjZ_-eDD.js +0 -122
  1146. package/dist/_chunks/finished-terminal-VjZ_-eDD.js.map +0 -1
  1147. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js +0 -553
  1148. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js.map +0 -1
  1149. package/dist/_chunks/form-field-BOm9hK35.js +0 -123
  1150. package/dist/_chunks/form-field-BOm9hK35.js.map +0 -1
  1151. package/dist/_chunks/fr-BfGEMshF.js +0 -338
  1152. package/dist/_chunks/fr-BfGEMshF.js.map +0 -1
  1153. package/dist/_chunks/freemium-paywall-WYlNO7yT.js +0 -275
  1154. package/dist/_chunks/freemium-paywall-WYlNO7yT.js.map +0 -1
  1155. package/dist/_chunks/gestational-age-calculator-CF2ISaYQ.js +0 -311
  1156. package/dist/_chunks/gestational-age-calculator-CF2ISaYQ.js.map +0 -1
  1157. package/dist/_chunks/globe-BkEFMNSg.js +0 -16
  1158. package/dist/_chunks/globe-BkEFMNSg.js.map +0 -1
  1159. package/dist/_chunks/grip-vertical-Dlg0_k5C.js +0 -19
  1160. package/dist/_chunks/grip-vertical-Dlg0_k5C.js.map +0 -1
  1161. package/dist/_chunks/hash-CysBBS_N.js +0 -17
  1162. package/dist/_chunks/hash-CysBBS_N.js.map +0 -1
  1163. package/dist/_chunks/hcg-doubling-C7bmuaU3.js +0 -170
  1164. package/dist/_chunks/hcg-doubling-C7bmuaU3.js.map +0 -1
  1165. package/dist/_chunks/header-CNszv2WQ.js +0 -297
  1166. package/dist/_chunks/header-CNszv2WQ.js.map +0 -1
  1167. package/dist/_chunks/header-settings-DJqoAl5m.js +0 -284
  1168. package/dist/_chunks/header-settings-DJqoAl5m.js.map +0 -1
  1169. package/dist/_chunks/heart-C0faivFf.js +0 -20
  1170. package/dist/_chunks/heart-C0faivFf.js.map +0 -1
  1171. package/dist/_chunks/heart-pulse-CvuyFKHB.js +0 -21
  1172. package/dist/_chunks/heart-pulse-CvuyFKHB.js.map +0 -1
  1173. package/dist/_chunks/hi-CBFRXEIm.js +0 -433
  1174. package/dist/_chunks/hi-CBFRXEIm.js.map +0 -1
  1175. package/dist/_chunks/image-C6RM5hfF.js +0 -16
  1176. package/dist/_chunks/image-C6RM5hfF.js.map +0 -1
  1177. package/dist/_chunks/info-B9XNKn05.js +0 -16
  1178. package/dist/_chunks/info-B9XNKn05.js.map +0 -1
  1179. package/dist/_chunks/insert-result-njqBthzT.js +0 -742
  1180. package/dist/_chunks/insert-result-njqBthzT.js.map +0 -1
  1181. package/dist/_chunks/isSameWeek-I3DfXUp1.js +0 -14
  1182. package/dist/_chunks/isSameWeek-I3DfXUp1.js.map +0 -1
  1183. package/dist/_chunks/it-nz6vAKwG.js +0 -401
  1184. package/dist/_chunks/it-nz6vAKwG.js.map +0 -1
  1185. package/dist/_chunks/ja-DQcqdAEJ.js +0 -366
  1186. package/dist/_chunks/ja-DQcqdAEJ.js.map +0 -1
  1187. package/dist/_chunks/key-value-pair-BrgbMfbF.js +0 -144
  1188. package/dist/_chunks/key-value-pair-BrgbMfbF.js.map +0 -1
  1189. package/dist/_chunks/languages-DsVf_WzT.js +0 -19
  1190. package/dist/_chunks/languages-DsVf_WzT.js.map +0 -1
  1191. package/dist/_chunks/layers-pzGcbLPj.js +0 -34
  1192. package/dist/_chunks/layers-pzGcbLPj.js.map +0 -1
  1193. package/dist/_chunks/link-DrD_cRUg.js +0 -129
  1194. package/dist/_chunks/link-DrD_cRUg.js.map +0 -1
  1195. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js +0 -2184
  1196. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js.map +0 -1
  1197. package/dist/_chunks/locale-picker-ChYYSX2N.js +0 -739
  1198. package/dist/_chunks/locale-picker-ChYYSX2N.js.map +0 -1
  1199. package/dist/_chunks/lock-CKOIn0IK.js +0 -15
  1200. package/dist/_chunks/lock-CKOIn0IK.js.map +0 -1
  1201. package/dist/_chunks/log-out-616hnn2-.js +0 -16
  1202. package/dist/_chunks/log-out-616hnn2-.js.map +0 -1
  1203. package/dist/_chunks/mail-C8irm52s.js +0 -15
  1204. package/dist/_chunks/mail-C8irm52s.js.map +0 -1
  1205. package/dist/_chunks/map-pin-B8STOPMJ.js +0 -21
  1206. package/dist/_chunks/map-pin-B8STOPMJ.js.map +0 -1
  1207. package/dist/_chunks/map-view-BkOoGoX2.js +0 -378
  1208. package/dist/_chunks/map-view-BkOoGoX2.js.map +0 -1
  1209. package/dist/_chunks/marketplace-app-shell-Skhfp6vK.js +0 -513
  1210. package/dist/_chunks/marketplace-app-shell-Skhfp6vK.js.map +0 -1
  1211. package/dist/_chunks/maximize-2-Cm9OUQ2m.js +0 -17
  1212. package/dist/_chunks/maximize-2-Cm9OUQ2m.js.map +0 -1
  1213. package/dist/_chunks/menu-XRhW3_99.js +0 -16
  1214. package/dist/_chunks/menu-XRhW3_99.js.map +0 -1
  1215. package/dist/_chunks/message-card-Bx4GmLvf.js +0 -277
  1216. package/dist/_chunks/message-card-Bx4GmLvf.js.map +0 -1
  1217. package/dist/_chunks/message-circle-C23eicgb.js +0 -20
  1218. package/dist/_chunks/message-circle-C23eicgb.js.map +0 -1
  1219. package/dist/_chunks/message-tray-DwrBLJlf.js +0 -457
  1220. package/dist/_chunks/message-tray-DwrBLJlf.js.map +0 -1
  1221. package/dist/_chunks/mic-B4Gog3Gi.js +0 -16
  1222. package/dist/_chunks/mic-B4Gog3Gi.js.map +0 -1
  1223. package/dist/_chunks/monitor-D-SFdbrU.js +0 -16
  1224. package/dist/_chunks/monitor-D-SFdbrU.js.map +0 -1
  1225. package/dist/_chunks/multi-select-BdHHDrRN.js +0 -602
  1226. package/dist/_chunks/multi-select-BdHHDrRN.js.map +0 -1
  1227. package/dist/_chunks/navigation-menu-DRUi6sSj.js +0 -310
  1228. package/dist/_chunks/navigation-menu-DRUi6sSj.js.map +0 -1
  1229. package/dist/_chunks/nl-L5SuDjyl.js +0 -326
  1230. package/dist/_chunks/nl-L5SuDjyl.js.map +0 -1
  1231. package/dist/_chunks/notes-panel-ay8_lPrA.js +0 -158
  1232. package/dist/_chunks/notes-panel-ay8_lPrA.js.map +0 -1
  1233. package/dist/_chunks/notification-card-D2jiKSJJ.js +0 -259
  1234. package/dist/_chunks/notification-card-D2jiKSJJ.js.map +0 -1
  1235. package/dist/_chunks/notification-tray-AEun6DN2.js +0 -464
  1236. package/dist/_chunks/notification-tray-AEun6DN2.js.map +0 -1
  1237. package/dist/_chunks/number-input-DxphVG_A.js +0 -350
  1238. package/dist/_chunks/number-input-DxphVG_A.js.map +0 -1
  1239. package/dist/_chunks/operator-hero-CR0Rqh4-.js +0 -202
  1240. package/dist/_chunks/operator-hero-CR0Rqh4-.js.map +0 -1
  1241. package/dist/_chunks/pagination-D58kglCr.js +0 -486
  1242. package/dist/_chunks/pagination-D58kglCr.js.map +0 -1
  1243. package/dist/_chunks/patient-details-Dlhqb5ig.js +0 -675
  1244. package/dist/_chunks/patient-details-Dlhqb5ig.js.map +0 -1
  1245. package/dist/_chunks/patient-search-Be6cLrHR.js +0 -1167
  1246. package/dist/_chunks/patient-search-Be6cLrHR.js.map +0 -1
  1247. package/dist/_chunks/patient-shell-DV3XEtIB.js +0 -162
  1248. package/dist/_chunks/patient-shell-DV3XEtIB.js.map +0 -1
  1249. package/dist/_chunks/patient-summary-card-WySCMwwA.js +0 -437
  1250. package/dist/_chunks/patient-summary-card-WySCMwwA.js.map +0 -1
  1251. package/dist/_chunks/patient-table-CHxf3Oqk.js +0 -1110
  1252. package/dist/_chunks/patient-table-CHxf3Oqk.js.map +0 -1
  1253. package/dist/_chunks/payment-form-CxqIXqw7.js +0 -690
  1254. package/dist/_chunks/payment-form-CxqIXqw7.js.map +0 -1
  1255. package/dist/_chunks/payment-request-card-BcZJwu9z.js +0 -467
  1256. package/dist/_chunks/payment-request-card-BcZJwu9z.js.map +0 -1
  1257. package/dist/_chunks/pdf-viewer-QfebdLOd.js +0 -1005
  1258. package/dist/_chunks/pdf-viewer-QfebdLOd.js.map +0 -1
  1259. package/dist/_chunks/pencil-CfQX-0Qc.js +0 -21
  1260. package/dist/_chunks/pencil-CfQX-0Qc.js.map +0 -1
  1261. package/dist/_chunks/periodontal-chart-card-hRRJY1NN.js +0 -455
  1262. package/dist/_chunks/periodontal-chart-card-hRRJY1NN.js.map +0 -1
  1263. package/dist/_chunks/phone-Bi5yUm4I.js +0 -20
  1264. package/dist/_chunks/phone-Bi5yUm4I.js.map +0 -1
  1265. package/dist/_chunks/phone-input-DjU-XmO_.js +0 -580
  1266. package/dist/_chunks/phone-input-DjU-XmO_.js.map +0 -1
  1267. package/dist/_chunks/pl-YAn5z2wR.js +0 -514
  1268. package/dist/_chunks/pl-YAn5z2wR.js.map +0 -1
  1269. package/dist/_chunks/plus-CYKNmfuA.js +0 -15
  1270. package/dist/_chunks/plus-CYKNmfuA.js.map +0 -1
  1271. package/dist/_chunks/popover-B2qCDhJC.js +0 -302
  1272. package/dist/_chunks/popover-B2qCDhJC.js.map +0 -1
  1273. package/dist/_chunks/practice-results-C6qDfxos.js +0 -1609
  1274. package/dist/_chunks/practice-results-C6qDfxos.js.map +0 -1
  1275. package/dist/_chunks/pregnancy-dating-CRVWswD-.js +0 -421
  1276. package/dist/_chunks/pregnancy-dating-CRVWswD-.js.map +0 -1
  1277. package/dist/_chunks/pregnancy-weight-gain-BUNpTsH-.js +0 -322
  1278. package/dist/_chunks/pregnancy-weight-gain-BUNpTsH-.js.map +0 -1
  1279. package/dist/_chunks/printer-CeVEWfQq.js +0 -22
  1280. package/dist/_chunks/printer-CeVEWfQq.js.map +0 -1
  1281. package/dist/_chunks/privacy-lock-BzMLQu-j.js +0 -197
  1282. package/dist/_chunks/privacy-lock-BzMLQu-j.js.map +0 -1
  1283. package/dist/_chunks/product-hub-panel-e6pW220e.js +0 -638
  1284. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +0 -1
  1285. package/dist/_chunks/pt-D9xdT5KQ.js +0 -370
  1286. package/dist/_chunks/pt-D9xdT5KQ.js.map +0 -1
  1287. package/dist/_chunks/public-footer.agent-D0cFbjWl.js +0 -596
  1288. package/dist/_chunks/public-footer.agent-D0cFbjWl.js.map +0 -1
  1289. package/dist/_chunks/public-header.agent-DqkqA-ca.js +0 -597
  1290. package/dist/_chunks/public-header.agent-DqkqA-ca.js.map +0 -1
  1291. package/dist/_chunks/radio-group-BPt7pKZW.js +0 -167
  1292. package/dist/_chunks/radio-group-BPt7pKZW.js.map +0 -1
  1293. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +0 -558
  1294. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js.map +0 -1
  1295. package/dist/_chunks/rating-BRD7O74e.js +0 -171
  1296. package/dist/_chunks/rating-BRD7O74e.js.map +0 -1
  1297. package/dist/_chunks/refresh-cw-CC8jSKMr.js +0 -17
  1298. package/dist/_chunks/refresh-cw-CC8jSKMr.js.map +0 -1
  1299. package/dist/_chunks/reviews-panel-Dq7LMDcH.js +0 -555
  1300. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +0 -1
  1301. package/dist/_chunks/rich-text-editor-DlCqPixb.js +0 -2158
  1302. package/dist/_chunks/rich-text-editor-DlCqPixb.js.map +0 -1
  1303. package/dist/_chunks/ro-Cp--52bT.js +0 -361
  1304. package/dist/_chunks/ro-Cp--52bT.js.map +0 -1
  1305. package/dist/_chunks/rotate-ccw-BWANpitO.js +0 -15
  1306. package/dist/_chunks/rotate-ccw-BWANpitO.js.map +0 -1
  1307. package/dist/_chunks/ru-BM8eX_Zz.js +0 -561
  1308. package/dist/_chunks/ru-BM8eX_Zz.js.map +0 -1
  1309. package/dist/_chunks/scan-line-lGioFwLC.js +0 -18
  1310. package/dist/_chunks/scan-line-lGioFwLC.js.map +0 -1
  1311. package/dist/_chunks/scroll-area-5wNK0Cyz.js +0 -169
  1312. package/dist/_chunks/scroll-area-5wNK0Cyz.js.map +0 -1
  1313. package/dist/_chunks/search-BonnQsHv.js +0 -15
  1314. package/dist/_chunks/search-BonnQsHv.js.map +0 -1
  1315. package/dist/_chunks/search-bar-C_T3pBJn.js +0 -612
  1316. package/dist/_chunks/search-bar-C_T3pBJn.js.map +0 -1
  1317. package/dist/_chunks/search-input-DQvGxR74.js +0 -237
  1318. package/dist/_chunks/search-input-DQvGxR74.js.map +0 -1
  1319. package/dist/_chunks/select-DMLG44F5.js +0 -430
  1320. package/dist/_chunks/select-DMLG44F5.js.map +0 -1
  1321. package/dist/_chunks/send-CySZIRPJ.js +0 -21
  1322. package/dist/_chunks/send-CySZIRPJ.js.map +0 -1
  1323. package/dist/_chunks/session-countdown-X1Ki6i0M.js +0 -214
  1324. package/dist/_chunks/session-countdown-X1Ki6i0M.js.map +0 -1
  1325. package/dist/_chunks/settings-ca2Yi9R8.js +0 -21
  1326. package/dist/_chunks/settings-ca2Yi9R8.js.map +0 -1
  1327. package/dist/_chunks/sheet-BxsE7eQm.js +0 -285
  1328. package/dist/_chunks/sheet-BxsE7eQm.js.map +0 -1
  1329. package/dist/_chunks/shield-check-BjCGH_Sr.js +0 -21
  1330. package/dist/_chunks/shield-check-BjCGH_Sr.js.map +0 -1
  1331. package/dist/_chunks/sidebar-DY9jGjgt.js +0 -1299
  1332. package/dist/_chunks/sidebar-DY9jGjgt.js.map +0 -1
  1333. package/dist/_chunks/sign-document-By6hMOra.js +0 -370
  1334. package/dist/_chunks/sign-document-By6hMOra.js.map +0 -1
  1335. package/dist/_chunks/signature-field-Dy1JRjzE.js +0 -197
  1336. package/dist/_chunks/signature-field-Dy1JRjzE.js.map +0 -1
  1337. package/dist/_chunks/smart-date-CWikAqZx.js +0 -114
  1338. package/dist/_chunks/smart-date-CWikAqZx.js.map +0 -1
  1339. package/dist/_chunks/sparkles-CuYXqQLg.js +0 -23
  1340. package/dist/_chunks/sparkles-CuYXqQLg.js.map +0 -1
  1341. package/dist/_chunks/sq-XRpr0r49.js +0 -355
  1342. package/dist/_chunks/sq-XRpr0r49.js.map +0 -1
  1343. package/dist/_chunks/square-CZoGU14v.js +0 -14
  1344. package/dist/_chunks/square-CZoGU14v.js.map +0 -1
  1345. package/dist/_chunks/square-check-big-Jr-0202D.js +0 -18
  1346. package/dist/_chunks/square-check-big-Jr-0202D.js.map +0 -1
  1347. package/dist/_chunks/star-vav0SJ9e.js +0 -20
  1348. package/dist/_chunks/star-vav0SJ9e.js.map +0 -1
  1349. package/dist/_chunks/stepper-accordion-DC-H-8v4.js +0 -247
  1350. package/dist/_chunks/stepper-accordion-DC-H-8v4.js.map +0 -1
  1351. package/dist/_chunks/stethoscope-DT5qCW8Y.js +0 -18
  1352. package/dist/_chunks/stethoscope-DT5qCW8Y.js.map +0 -1
  1353. package/dist/_chunks/streaming-text-BB9mvK4m.js +0 -131
  1354. package/dist/_chunks/streaming-text-BB9mvK4m.js.map +0 -1
  1355. package/dist/_chunks/subDays-BcYv1Lxi.js +0 -8
  1356. package/dist/_chunks/subDays-BcYv1Lxi.js.map +0 -1
  1357. package/dist/_chunks/sun-BuXE0xUS.js +0 -38
  1358. package/dist/_chunks/sun-BuXE0xUS.js.map +0 -1
  1359. package/dist/_chunks/sv-Z3APomE8.js +0 -376
  1360. package/dist/_chunks/sv-Z3APomE8.js.map +0 -1
  1361. package/dist/_chunks/tab-bar-Bv9nGNdO.js +0 -262
  1362. package/dist/_chunks/tab-bar-Bv9nGNdO.js.map +0 -1
  1363. package/dist/_chunks/tabs-BxcOziCo.js +0 -408
  1364. package/dist/_chunks/tabs-BxcOziCo.js.map +0 -1
  1365. package/dist/_chunks/tag-BQXwuJq1.js +0 -258
  1366. package/dist/_chunks/tag-BQXwuJq1.js.map +0 -1
  1367. package/dist/_chunks/task-card-BwY9jaV1.js +0 -124
  1368. package/dist/_chunks/task-card-BwY9jaV1.js.map +0 -1
  1369. package/dist/_chunks/task-tray-qOEQflu4.js +0 -251
  1370. package/dist/_chunks/task-tray-qOEQflu4.js.map +0 -1
  1371. package/dist/_chunks/text-input-B-OWQ1Je.js +0 -283
  1372. package/dist/_chunks/text-input-B-OWQ1Je.js.map +0 -1
  1373. package/dist/_chunks/theme-toggle-XB6o_lgs.js +0 -367
  1374. package/dist/_chunks/theme-toggle-XB6o_lgs.js.map +0 -1
  1375. package/dist/_chunks/timeline-CqA4nKTI.js +0 -294
  1376. package/dist/_chunks/timeline-CqA4nKTI.js.map +0 -1
  1377. package/dist/_chunks/toast.agent-57UzyR9U.js +0 -1005
  1378. package/dist/_chunks/toast.agent-57UzyR9U.js.map +0 -1
  1379. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +0 -2131
  1380. package/dist/_chunks/tooth-scheme-BhQoPNBD.js.map +0 -1
  1381. package/dist/_chunks/tr-e0-P4FON.js +0 -378
  1382. package/dist/_chunks/tr-e0-P4FON.js.map +0 -1
  1383. package/dist/_chunks/transaction-chip-CscoQbxF.js +0 -225
  1384. package/dist/_chunks/transaction-chip-CscoQbxF.js.map +0 -1
  1385. package/dist/_chunks/transcript-panel-3THQX6nJ.js +0 -362
  1386. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +0 -1
  1387. package/dist/_chunks/trash-2-rPAKaRgB.js +0 -18
  1388. package/dist/_chunks/trash-2-rPAKaRgB.js.map +0 -1
  1389. package/dist/_chunks/triangle-alert-CBPUIzQo.js +0 -22
  1390. package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +0 -1
  1391. package/dist/_chunks/unit-converter-YEpD9evj.js +0 -337
  1392. package/dist/_chunks/unit-converter-YEpD9evj.js.map +0 -1
  1393. package/dist/_chunks/use-password-requirements-BXvS2MBS.js +0 -453
  1394. package/dist/_chunks/use-password-requirements-BXvS2MBS.js.map +0 -1
  1395. package/dist/_chunks/user-CPxpqFjJ.js +0 -15
  1396. package/dist/_chunks/user-CPxpqFjJ.js.map +0 -1
  1397. package/dist/_chunks/user-cog-BS_qc8nA.js +0 -24
  1398. package/dist/_chunks/user-cog-BS_qc8nA.js.map +0 -1
  1399. package/dist/_chunks/users-MBVtUzwd.js +0 -17
  1400. package/dist/_chunks/users-MBVtUzwd.js.map +0 -1
  1401. package/dist/_chunks/video-BAeICxCT.js +0 -21
  1402. package/dist/_chunks/video-BAeICxCT.js.map +0 -1
  1403. package/dist/_chunks/warning-stack--sTrrBDA.js +0 -268
  1404. package/dist/_chunks/warning-stack--sTrrBDA.js.map +0 -1
  1405. package/dist/_chunks/workflow-map-Dy8mLCqF.js +0 -1368
  1406. package/dist/_chunks/workflow-map-Dy8mLCqF.js.map +0 -1
  1407. package/dist/_chunks/x-CCcI3eJp.js +0 -15
  1408. package/dist/_chunks/x-CCcI3eJp.js.map +0 -1
  1409. package/dist/_chunks/zh-CN-B-igM5gY.js +0 -388
  1410. package/dist/_chunks/zh-CN-B-igM5gY.js.map +0 -1
  1411. package/dist/_chunks/zoom-out-CgVtf2Wx.js +0 -29
  1412. package/dist/_chunks/zoom-out-CgVtf2Wx.js.map +0 -1
  1413. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +0 -4
  1414. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +0 -1
  1415. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +0 -143
  1416. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +0 -1
  1417. package/dist/components/ai-tools-rail/index.d.ts +0 -4
  1418. package/dist/components/ai-tools-rail/index.d.ts.map +0 -1
  1419. package/dist/components/ai-tools-rail/index.js +0 -6
  1420. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +0 -15
  1421. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts.map +0 -1
  1422. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +0 -20
  1423. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts.map +0 -1
  1424. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +0 -121
  1425. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts.map +0 -1
  1426. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +0 -6
  1427. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts.map +0 -1
  1428. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +0 -69
  1429. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts.map +0 -1
  1430. package/dist/components/anatomy-scheme/index.d.ts +0 -6
  1431. package/dist/components/anatomy-scheme/index.d.ts.map +0 -1
  1432. package/dist/components/anatomy-scheme/index.js +0 -17
  1433. /package/dist/components/{ai-tools-rail → address-fields}/index.js.map +0 -0
  1434. /package/dist/components/{anatomy-scheme → city-input}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-search-X9SUZGpy.js","sources":["../../node_modules/lucide-react/dist/esm/icons/locate-fixed.mjs","../../src/components/patient-search/patient-search.agent.ts","../../src/components/patient-search/patient-search.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"line\", { x1: \"2\", x2: \"5\", y1: \"12\", y2: \"12\", key: \"bvdh0s\" }],\n [\"line\", { x1: \"19\", x2: \"22\", y1: \"12\", y2: \"12\", key: \"1tbv5k\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"2\", y2: \"5\", key: \"11lu5j\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"19\", y2: \"22\", key: \"x3vr5v\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"7\", key: \"fim9np\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst LocateFixed = createLucideIcon(\"locate-fixed\", __iconNode);\n\nexport { __iconNode, LocateFixed as default };\n//# sourceMappingURL=locate-fixed.mjs.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — PatientSearch. */\n/* */\n/* PatientSearch is a top-of-funnel widget with four variants that vary */\n/* which search dimensions are exposed. The adapter surfaces the active */\n/* variant + lightweight actions (`reset`, `focus_primary`) so an agent */\n/* can drive the form across surfaces without knowing which variant is */\n/* in play. The selection state itself is owned by the consumer via the */\n/* `value` / `onChange` contract — never read here. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { PatientSearchHandle } from './patient-search';\n\nexport const patientSearchAgent: AgentAdapter<PatientSearchHandle> = {\n id: 'patient-search',\n // `filter` is the conceptual capability of this search widget. Building the\n // actual query (WHO/WHERE/WHEN/facets/geo) is host-delegated: selection is\n // owned by the consumer via the `value` / `onChange` contract, so the agent\n // surface here is limited to clearing the query (`reset`) and focusing the\n // primary field. The previous `navigate` / `view_change` capabilities were\n // spurious — the variant is fixed by props (not agent-settable) and no\n // action navigates.\n capabilities: ['filter'],\n state: {\n variant: {\n type: 'string',\n descriptionKey: 'ui.agent.patientSearch.state.variant',\n description:\n 'Active variant — one of `who-where`, `who-where-when`, `faceted`, `discovery`.',\n read: (handle) => handle.getVariant(),\n },\n },\n actions: {\n reset: {\n safety: 'write',\n idempotent: true,\n descriptionKey: 'ui.agent.patientSearch.actions.reset',\n description:\n 'Clear the current search query (WHO, WHERE, WHEN, facets, geo) via the consumer-owned onChange.',\n invoke: (handle) => {\n handle.reset();\n },\n },\n focus_primary: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.patientSearch.actions.focusPrimary',\n description:\n 'Move keyboard focus to the most-relevant search field for the current variant.',\n invoke: (handle) => {\n handle.focusPrimary();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'patient-search',\n description: 'Marks the PatientSearch root region.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n ChevronDown,\n LocateFixed,\n MapPin,\n Search as SearchIcon,\n Stethoscope,\n X,\n} from 'lucide-react';\nimport { Autocomplete } from '../autocomplete/autocomplete';\nimport { Button } from '../button/button';\nimport { Card } from '../card/card';\nimport { Slider } from '../slider/slider';\nimport { Alert } from '../alert/alert';\nimport { DropdownMenu } from '../dropdown-menu/dropdown-menu';\nimport type { OptionShape } from '../_shared/option';\nimport { useAgentRegistration } from '../../agent';\nimport { patientSearchAgent } from './patient-search.agent';\n\n/* -------------------------------------------------------------------- */\n/* PatientSearch */\n/* */\n/* Top-of-funnel search primitive with four A/B-testable variants. Each */\n/* variant exposes a different combination of patient decision-making */\n/* dimensions (WHO, WHERE, WHEN, INSURANCE/LANGUAGE, DISCOVERY) so */\n/* consumers can run PostHog-driven funnel experiments without having to */\n/* re-implement the form per surface. */\n/* */\n/* Every variant's WHERE input bakes in a \"use my location\" affordance — */\n/* a `LocateFixed` crosshair button on the inline-end of the field, with */\n/* a radius slider that appears beneath on grant. Geolocation isn't a */\n/* variant of its own; it's a universal WHERE behaviour the kit always */\n/* offers. */\n/* */\n/* Consumers own the data loaders (`loadObjects`, `loadPlaces`, */\n/* `reverseGeocode`, `discoveryCards`) + the routing logic in */\n/* `onSubmit` / `onObjectSelect` / `onPlaceSelect`. The kit owns layout, */\n/* variant gating, accessibility, telemetry, and the shared `SearchValue`*/\n/* contract that every variant feeds into. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\nexport type PatientSearchVariant =\n | 'who-where'\n | 'who-where-when'\n | 'faceted'\n | 'discovery';\n\nexport type WhenFilter = 'today' | 'tomorrow' | 'this_week' | 'anytime';\n\n/** Result from `loadObjects` — a profession, specialty, operator, or practice. */\nexport interface PatientSearchObject {\n /** Stable opaque key, e.g. `\"profession:dentista\"` or `\"operator:mario-rossi-9001\"`. */\n value: string;\n label: string;\n description?: string;\n /** Opaque consumer payload — used in `onObjectSelect` to route. */\n __payload?: unknown;\n}\n\n/** Result from `loadPlaces` — a Google-Places-style place prediction. */\nexport interface PatientSearchPlace {\n /** Place ID or stable text. */\n value: string;\n /** Display label, e.g. `\"Milano, Italia\"`. */\n label: string;\n lat?: number;\n lng?: number;\n}\n\n/** Curated card for the `discovery` variant. */\nexport interface DiscoveryCard {\n id: string;\n label: string;\n description?: string;\n href: string;\n icon?: ReactNode;\n /**\n * Accent token. `auto` rotates through the brand palette by row index.\n * Defaults to `auto`.\n */\n accent?: 'violet' | 'purple' | 'magenta' | 'blue' | 'auto';\n badge?: string;\n}\n\nexport interface FacetOption {\n value: string;\n label: string;\n}\n\nexport interface FacetGroup {\n /** Stable key — e.g. `\"insurance\"`, `\"language\"`. */\n key: string;\n /** Display label, e.g. `\"Convenzione\"`. */\n label: string;\n /** Empty array = boolean toggle chip. Non-empty = dropdown chip. */\n options: FacetOption[];\n /** Whether multiple options can be selected. Default false. */\n multi?: boolean;\n}\n\nexport interface SearchValue {\n object?: PatientSearchObject;\n place?: PatientSearchPlace;\n when?: WhenFilter;\n facets?: Record<string, string[]>;\n geo?: {\n lat: number;\n lng: number;\n radiusKm: number;\n label?: string;\n };\n}\n\n/** Curated imperative handle — used by the agent adapter. */\nexport interface PatientSearchHandle {\n getVariant: () => PatientSearchVariant;\n reset: () => void;\n /** Move focus to the most-relevant field for the current variant. */\n focusPrimary: () => void;\n}\n\n/* -------------------------------------------------------------------- */\n/* Telemetry */\n/* */\n/* Mirrors the booking-website convention (`window.track?.(event, p)`). */\n/* Soft-fails outside the browser and when no host has wired `track`. */\n/* -------------------------------------------------------------------- */\n\ninterface TrackFn {\n (event: string, payload?: Record<string, unknown>): void;\n}\n\nfunction track(event: string, payload?: Record<string, unknown>): void {\n if (typeof window === 'undefined') return;\n const fn = (window as unknown as { track?: TrackFn }).track;\n try {\n fn?.(event, payload);\n } catch {\n // Telemetry must never throw into the UI. Swallow.\n }\n}\n\n/* -------------------------------------------------------------------- */\n/* Constants */\n/* -------------------------------------------------------------------- */\n\nconst WHEN_OPTIONS: readonly WhenFilter[] = [\n 'today',\n 'tomorrow',\n 'this_week',\n 'anytime',\n] as const;\n\n/** Discrete radius presets per spec (1 / 5 / 10 / 25 / 50 km). */\nconst RADIUS_PRESETS: readonly number[] = [1, 5, 10, 25, 50] as const;\n\nconst DEFAULT_RADIUS_KM = 5;\n\nconst AUTOCOMPLETE_DEBOUNCE_MS = 200;\n\n/** Maps `defaultRadiusKm` to the nearest preset index. */\nfunction radiusToStepIndex(km: number): number {\n let best = 0;\n let bestDelta = Number.POSITIVE_INFINITY;\n RADIUS_PRESETS.forEach((preset, index) => {\n const delta = Math.abs(preset - km);\n if (delta < bestDelta) {\n bestDelta = delta;\n best = index;\n }\n });\n return best;\n}\n\n/* -------------------------------------------------------------------- */\n/* Root variants */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n 'ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)]',\n {\n variants: {\n variant: {\n 'who-where': 'ds:gap-[var(--spacing-md)]',\n 'who-where-when': 'ds:gap-[var(--spacing-md)]',\n faceted: 'ds:gap-[var(--spacing-md)]',\n discovery: 'ds:gap-[var(--spacing-lg)]',\n },\n },\n defaultVariants: { variant: 'who-where' },\n },\n);\n\n/* -------------------------------------------------------------------- */\n/* Public props */\n/* -------------------------------------------------------------------- */\n\nexport interface PatientSearchProps\n extends\n Omit<\n ComponentPropsWithoutRef<'div'>,\n 'aria-label' | 'onChange' | 'onSubmit'\n >,\n VariantProps<typeof rootVariants> {\n variant: PatientSearchVariant;\n\n // Data loaders — consumer-injected; kit calls them debounced.\n loadObjects: (\n query: string,\n ctx: { signal: AbortSignal },\n ) => Promise<PatientSearchObject[]>;\n loadPlaces: (\n query: string,\n ctx: { signal: AbortSignal },\n ) => Promise<PatientSearchPlace[]>;\n\n // Selection callbacks — the consumer decides whether to route.\n onObjectSelect?: (option: PatientSearchObject) => void;\n onPlaceSelect?: (place: PatientSearchPlace) => void;\n\n // Facet config — used by the `faceted` variant; ignored by others.\n facets?: FacetGroup[];\n\n // Geo config — applies to every variant's WHERE input. The crosshair\n // overlay on the inline-end of the input triggers geolocation on click;\n // on success the input fills with the reverse-geocoded label and a\n // radius slider appears beneath. Consumer-supplied `reverseGeocode` is\n // optional — when omitted, `value.geo.label` falls back to the localised\n // \"Vicino a me\" string.\n /** Default radius in km when geolocation is granted. Snaps to the nearest preset. */\n defaultRadiusKm?: number;\n /** Reverse-geocode lat/lng → human label. Optional. */\n reverseGeocode?: (lat: number, lng: number) => Promise<string>;\n\n // Discovery cards — used by the `discovery` variant.\n discoveryCards?: DiscoveryCard[];\n\n /** Forwarded to the consumer's loaders if they want to constrain by country. */\n countryCode?: 'it' | 'de' | string;\n\n // State — controlled.\n value: SearchValue;\n onChange: (next: SearchValue) => void;\n onSubmit: (value: SearchValue) => void | Promise<void>;\n\n // UX\n submitting?: boolean;\n /** Custom CTA label override; defaults to `ui.patientSearch.submit.cta`. */\n submitLabel?: string;\n /**\n * @default false\n * By default the kit disables the submit button until at least one\n * search dimension is set (object, place, geo, non-anytime when, or\n * a facet). Set to `true` to allow an empty submit — useful for\n * \"browse all\" patterns where the consumer wants to show all results\n * with no initial filter.\n */\n allowEmptySubmit?: boolean;\n\n // a11y\n 'aria-label'?: string;\n /** Agent-readiness instance id. */\n id?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* WhoField — Autocomplete over union(profession, specialty, operator, */\n/* practice). */\n/* -------------------------------------------------------------------- */\n\ninterface WhoFieldProps {\n value: SearchValue;\n onChange: (next: SearchValue) => void;\n loadObjects: PatientSearchProps['loadObjects'];\n onObjectSelect?: PatientSearchProps['onObjectSelect'];\n inputRef?: React.Ref<HTMLInputElement>;\n}\n\nfunction WhoField({\n value,\n onChange,\n loadObjects,\n onObjectSelect,\n inputRef,\n}: WhoFieldProps) {\n const { t } = useTranslation();\n\n // The Autocomplete owns its own visible text; the kit only intercepts\n // selection events to update `value.object`. We mirror external resets\n // (consumer clears `value.object` programmatically) into the visible text\n // via the controlled `value` prop, but otherwise let typed input flow\n // through Autocomplete's internal state. The local `query` state breaks\n // the controlled-input cycle: typing fires onChange(next), we store\n // `next` locally, the next render passes that exact string back as\n // `value` — no flicker, no truncation.\n const [query, setQuery] = useState<string>(value.object?.label ?? '');\n const selectedValueRef = useRef<string | undefined>(value.object?.value);\n\n useEffect(() => {\n // Sync external selection changes (e.g. consumer-driven reset) into the\n // visible text. We watch `value.object?.value` rather than `label` so an\n // identity update with the same label doesn't clobber a fresh query.\n if (value.object?.value !== selectedValueRef.current) {\n selectedValueRef.current = value.object?.value;\n setQuery(value.object?.label ?? '');\n }\n }, [value.object?.value, value.object?.label]);\n\n // Adapt consumer's `loadObjects` to Autocomplete's `loadOptions` signature.\n // PatientSearchObject is structurally a superset of OptionShape, so the\n // returned array is safe to pass through as `OptionShape<string>[]`.\n const loadOptions = useCallback(\n async (q: string, { signal }: { signal: AbortSignal; locale: string }) =>\n (await loadObjects(q, { signal })) as OptionShape<string>[],\n [loadObjects],\n );\n\n const handleSelect = (option: OptionShape<string>) => {\n const next: PatientSearchObject = {\n value: option.value,\n label: option.label,\n description: option.description,\n __payload: (option as PatientSearchObject).__payload,\n };\n setQuery(next.label);\n selectedValueRef.current = next.value;\n onChange({ ...value, object: next });\n track('patient_search_object_selected', {\n value: next.value,\n type:\n next.__payload && typeof next.__payload === 'object'\n ? (next.__payload as { type?: string }).type\n : undefined,\n });\n onObjectSelect?.(next);\n };\n\n // Autocomplete's public props don't include `onFocus`, so we capture focus\n // on a wrapping <div> via the bubbling event from the embedded input.\n // `data-component=\"patient-search-field-who\"` lets agents target the\n // wrapper for instrumentation hooks without depending on Autocomplete's\n // internal structure.\n const focusTrackedRef = useRef(false);\n return (\n <div\n data-component=\"patient-search-field\"\n data-field=\"who\"\n onFocus={() => {\n if (focusTrackedRef.current) return;\n focusTrackedRef.current = true;\n track('patient_search_object_focused');\n }}\n onBlur={(e) => {\n // Reset the once-per-mount focus flag only when focus leaves the\n // wrapper entirely (no relatedTarget inside our subtree).\n if (\n e.currentTarget &&\n !e.currentTarget.contains(e.relatedTarget as Node | null)\n ) {\n focusTrackedRef.current = false;\n }\n }}\n >\n <Autocomplete\n ref={inputRef}\n value={query}\n onChange={(next) => {\n setQuery(next);\n // User edited the input after selection — drop the structured\n // selection so submit can't reuse stale data.\n if (value.object && next !== value.object.label) {\n selectedValueRef.current = undefined;\n onChange({ ...value, object: undefined });\n }\n }}\n onSelect={handleSelect}\n loadOptions={loadOptions}\n debounceMs={AUTOCOMPLETE_DEBOUNCE_MS}\n placeholder={t('patientSearch.who.placeholder')}\n aria-label={t('patientSearch.who.label')}\n startAdornment={<SearchIcon aria-hidden=\"true\" />}\n />\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* WhereField — Autocomplete over the consumer's places provider. */\n/* -------------------------------------------------------------------- */\n\ninterface WhereFieldProps {\n value: SearchValue;\n onChange: (next: SearchValue) => void;\n loadPlaces: PatientSearchProps['loadPlaces'];\n onPlaceSelect?: PatientSearchProps['onPlaceSelect'];\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Default radius (km) applied on a successful geolocate. Snaps to the\n * nearest preset (1 / 5 / 10 / 25 / 50). Defaults to 5 km.\n */\n defaultRadiusKm?: number;\n /** Reverse-geocode lat/lng → human label. Optional. */\n reverseGeocode?: PatientSearchProps['reverseGeocode'];\n}\n\ntype GeoStatus = 'pristine' | 'requesting' | 'granted' | 'denied';\n\nconst geoTriggerClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:size-8 ds:rounded-[var(--radius-sm)]',\n 'ds:text-[color:var(--muted-foreground)] ds:hover:text-[color:var(--primary)]',\n 'ds:hover:bg-[color-mix(in_srgb,var(--primary)_8%,transparent)]',\n 'ds:aria-pressed:text-[color:var(--primary)]',\n 'ds:aria-pressed:bg-[color-mix(in_srgb,var(--primary)_12%,transparent)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n].join(' ');\n\n/**\n * Unified WHERE input — every variant uses it.\n *\n * Layout per state:\n * - pristine: `[MapPin] City... [LocateFixed]`\n * - granted : `[MapPin] Milano, Italia [X] [LocateFixed]` + radius slider beneath\n * - denied : `[MapPin] City... ` + Alert beneath\n *\n * The MapPin on the inline-start is the conventional \"this is a location\n * field\" marker. The LocateFixed crosshair on the inline-end is the\n * geolocate trigger — these are deliberately different glyphs (Doctolib /\n * Google Maps / Booking pattern) so users don't conflate the field marker\n * with the action.\n */\nfunction WhereField({\n value,\n onChange,\n loadPlaces,\n onPlaceSelect,\n inputRef,\n defaultRadiusKm = DEFAULT_RADIUS_KM,\n reverseGeocode,\n}: WhereFieldProps) {\n const { t } = useTranslation();\n const [query, setQuery] = useState<string>(value.place?.label ?? '');\n const selectedValueRef = useRef<string | undefined>(value.place?.value);\n const initialStatus: GeoStatus = value.geo ? 'granted' : 'pristine';\n const [status, setStatus] = useState<GeoStatus>(initialStatus);\n\n useEffect(() => {\n if (value.place?.value !== selectedValueRef.current) {\n selectedValueRef.current = value.place?.value;\n setQuery(value.place?.label ?? '');\n }\n }, [value.place?.value, value.place?.label]);\n\n const loadOptions = useCallback(\n async (q: string, { signal }: { signal: AbortSignal; locale: string }) =>\n (await loadPlaces(q, { signal })) as OptionShape<string>[],\n [loadPlaces],\n );\n\n const handleSelect = (option: OptionShape<string>) => {\n const place: PatientSearchPlace = {\n value: option.value,\n label: option.label,\n lat: (option as PatientSearchPlace).lat,\n lng: (option as PatientSearchPlace).lng,\n };\n setQuery(place.label);\n selectedValueRef.current = place.value;\n // Typing or selecting a city through the autocomplete cancels any\n // active geolocate — the consumer's search API should now run plain\n // text search rather than lat/lng-radius.\n onChange({ ...value, place, geo: undefined });\n if (status === 'granted') setStatus('pristine');\n track('patient_search_place_selected', { value: place.value });\n onPlaceSelect?.(place);\n };\n\n const requestLocation = () => {\n if (typeof window === 'undefined' || !navigator?.geolocation) {\n setStatus('denied');\n track('patient_search_geo_denied', { reason: 'unsupported' });\n return;\n }\n setStatus('requesting');\n track('patient_search_place_focused');\n navigator.geolocation.getCurrentPosition(\n async (position) => {\n const { latitude, longitude } = position.coords;\n let label: string | undefined;\n try {\n label = await reverseGeocode?.(latitude, longitude);\n } catch {\n label = undefined;\n }\n const km = defaultRadiusKm;\n const resolvedLabel = label ?? t('patientSearch.geo.fallbackLabel');\n // Mirror the geo label into `value.place` so the visible input\n // shows the reverse-geocoded text. `value.geo` carries the\n // structured lat/lng/radius the consumer's search API actually\n // needs. The synthetic place carries a `geo:` value prefix so\n // the consumer can distinguish a geo-derived place from a\n // user-selected Google Places entry.\n const syntheticPlace: PatientSearchPlace = {\n value: `geo:${latitude.toFixed(4)},${longitude.toFixed(4)}`,\n label: resolvedLabel,\n lat: latitude,\n lng: longitude,\n };\n onChange({\n ...value,\n place: syntheticPlace,\n geo: {\n lat: latitude,\n lng: longitude,\n radiusKm: km,\n label: resolvedLabel,\n },\n });\n setStatus('granted');\n track('patient_search_geo_granted', { radiusKm: km });\n },\n () => {\n setStatus('denied');\n track('patient_search_geo_denied', { reason: 'user' });\n },\n { enableHighAccuracy: false, maximumAge: 60_000, timeout: 10_000 },\n );\n };\n\n const clearGeo = () => {\n onChange({ ...value, geo: undefined, place: undefined });\n setQuery('');\n selectedValueRef.current = undefined;\n setStatus('pristine');\n };\n\n const isGranted = status === 'granted' && Boolean(value.geo);\n const isRequesting = status === 'requesting';\n const isDenied = status === 'denied';\n\n const focusTrackedRef = useRef(false);\n // Overlay button(s) that sit visually inside the inline-end of the\n // input. Rendered as siblings of the Autocomplete (not inside the\n // `endAdornment` slot, which the kit wraps in `aria-hidden` and so\n // cannot host an interactive trigger). The decorative spacer in\n // `endAdornment` carves out room so typed text doesn't run under\n // the overlay.\n // Gate the geo-assist UI on the consumer wiring `reverseGeocode`.\n // Without it, clicking \"Vicino a me\" would set value.geo to lat/lng\n // coordinates the kit can't translate into a human-readable label —\n // the patient sees coordinates or nothing. Presence of the dep\n // implies intent.\n const geoEnabled = Boolean(reverseGeocode);\n const overlay =\n isDenied || !geoEnabled ? null : (\n <span className=\"ds:absolute ds:end-[var(--spacing-xs)] ds:top-1/2 ds:-translate-y-1/2 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {isGranted ? (\n <button\n type=\"button\"\n aria-label={t('patientSearch.geo.clear')}\n onClick={clearGeo}\n className={geoTriggerClasses}\n >\n <X aria-hidden=\"true\" className=\"ds:size-4\" />\n </button>\n ) : null}\n <button\n type=\"button\"\n aria-label={t('patientSearch.geo.cta')}\n aria-pressed={isGranted || undefined}\n disabled={isRequesting}\n onClick={isGranted ? clearGeo : requestLocation}\n className={geoTriggerClasses}\n >\n {/*\n The geo trigger uses `LocateFixed` (target-with-dot crosshair)\n rather than `MapPin`. The WHERE input's start-adornment is the\n `MapPin` (\"this is a location field\"); reusing the pin glyph\n here would visually conflate the field marker with the action.\n Crosshair = \"centre on me\" — Doctolib / Google Maps / Booking\n all use this distinction.\n */}\n <LocateFixed aria-hidden=\"true\" className=\"ds:size-4\" />\n </button>\n </span>\n );\n\n return (\n <div\n data-component=\"patient-search-field\"\n data-field=\"where\"\n onFocus={() => {\n if (focusTrackedRef.current) return;\n focusTrackedRef.current = true;\n track('patient_search_place_focused');\n }}\n onBlur={(e) => {\n if (\n e.currentTarget &&\n !e.currentTarget.contains(e.relatedTarget as Node | null)\n ) {\n focusTrackedRef.current = false;\n }\n }}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n <div className=\"ds:relative\">\n <Autocomplete\n ref={inputRef}\n value={query}\n onChange={(next) => {\n setQuery(next);\n if (value.place && next !== value.place.label) {\n selectedValueRef.current = undefined;\n // Manual edit cancels any active geolocate too — the typed\n // text owns the field now.\n onChange({ ...value, place: undefined, geo: undefined });\n if (status === 'granted') setStatus('pristine');\n }\n }}\n onSelect={handleSelect}\n loadOptions={loadOptions}\n debounceMs={AUTOCOMPLETE_DEBOUNCE_MS}\n placeholder={t('patientSearch.where.placeholder')}\n aria-label={t('patientSearch.where.label')}\n startAdornment={<MapPin aria-hidden=\"true\" />}\n endAdornment={\n isDenied ? undefined : (\n // Decorative spacer — reserves inline-end room so the typed\n // text doesn't run under the absolutely-positioned overlay.\n // Autocomplete wraps endAdornment in `aria-hidden`, which is\n // correct for this empty span. Granted-state shows an extra\n // clear-X chip, so the spacer doubles in width when granted.\n <span\n aria-hidden=\"true\"\n className={\n isGranted\n ? 'ds:inline-block ds:size-[4.5rem]'\n : 'ds:inline-block ds:size-8'\n }\n />\n )\n }\n />\n {overlay}\n </div>\n {isDenied ? (\n // Alert defaults to `role=\"status\"` + `aria-live=\"polite\"` for the\n // `info` variant — the user hears why the field reverted to plain\n // text when their browser blocked the geolocation prompt.\n <Alert variant=\"info\">\n <Alert.Description>{t('patientSearch.geo.denied')}</Alert.Description>\n </Alert>\n ) : null}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* GeoRadiusBar — full-width radius slider rendered beneath the top */\n/* row when geo-assist is active. Lifted out of `WhereField` so the */\n/* WHO/WHERE/Submit row stays at single-row height when the slider is */\n/* visible (release notes 0.30.2 — see `ds-kit-followup-from-0.30.0`). */\n/* -------------------------------------------------------------------- */\n\ninterface GeoRadiusBarProps {\n value: SearchValue;\n onChange: (next: SearchValue) => void;\n defaultRadiusKm?: number;\n}\n\nfunction GeoRadiusBar({\n value,\n onChange,\n defaultRadiusKm = DEFAULT_RADIUS_KM,\n}: GeoRadiusBarProps) {\n const { t } = useTranslation();\n const [radiusIndex, setRadiusIndex] = useState<number>(() =>\n radiusToStepIndex(value.geo?.radiusKm ?? defaultRadiusKm),\n );\n if (!value.geo) return null;\n const commitRadius = (index: number) => {\n const km = RADIUS_PRESETS[index] ?? defaultRadiusKm;\n onChange({ ...value, geo: { ...value.geo!, radiusKm: km } });\n track('patient_search_radius_changed', { radiusKm: km });\n };\n const formatRadius = (n: number) => {\n const km = RADIUS_PRESETS[Math.round(n)] ?? defaultRadiusKm;\n return t('patientSearch.geo.radiusFormat', { km });\n };\n return (\n <div\n data-component=\"patient-search-geo-radius-bar\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pb-[var(--spacing-md)]\"\n >\n <span\n id=\"patient-search-radius-label\"\n className=\"type-meta ds:text-[color:var(--muted-foreground)]\"\n >\n {t('patientSearch.geo.radius')}\n </span>\n <Slider\n value={[radiusIndex]}\n min={0}\n max={RADIUS_PRESETS.length - 1}\n step={1}\n marks={RADIUS_PRESETS.map((km, index) => ({\n value: index,\n label: `${km}`,\n }))}\n formatValue={formatRadius}\n alwaysShowValue\n aria-labelledby=\"patient-search-radius-label\"\n onValueChange={(next) => setRadiusIndex(next[0] ?? 0)}\n onValueCommit={(next) => commitRadius(next[0] ?? 0)}\n />\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* WhenChipStrip — radiogroup of {today, tomorrow, this_week, anytime} */\n/* */\n/* Hand-rolled radiogroup: `role=\"radiogroup\"` on the container, button */\n/* children carry `role=\"radio\"` + `aria-checked`, arrow-key navigation */\n/* moves focus + selection. Visually presents as suggestion-style chips. */\n/* -------------------------------------------------------------------- */\n\nconst whenChipVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-full)]',\n 'type-label ds:font-[var(--font-weight-medium)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' '),\n {\n variants: {\n state: {\n idle: 'ds:bg-[var(--secondary)] ds:text-[var(--foreground)] ds:border ds:border-[color:var(--border)] ds:hover:bg-[color-mix(in_srgb,var(--primary)_8%,var(--secondary))]',\n selected:\n 'ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)] ds:border ds:border-transparent ds:font-[var(--font-weight-semibold)]',\n },\n },\n defaultVariants: { state: 'idle' },\n },\n);\n\ninterface WhenChipStripProps {\n value?: WhenFilter;\n onChange: (next: WhenFilter) => void;\n}\n\nfunction WhenChipStrip({ value, onChange }: WhenChipStripProps) {\n const { t, i18n } = useTranslation();\n const groupId = useId();\n const isRTL = i18n.dir() === 'rtl';\n\n const buttonRefs = useRef<Map<WhenFilter, HTMLButtonElement>>(new Map());\n\n const focusAt = useCallback((opt: WhenFilter) => {\n buttonRefs.current.get(opt)?.focus();\n }, []);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>, current: WhenFilter) => {\n const idx = WHEN_OPTIONS.indexOf(current);\n const total = WHEN_OPTIONS.length;\n const forwardKey = isRTL ? 'ArrowLeft' : 'ArrowRight';\n const backwardKey = isRTL ? 'ArrowRight' : 'ArrowLeft';\n switch (event.key) {\n case forwardKey:\n case 'ArrowDown': {\n event.preventDefault();\n const next = WHEN_OPTIONS[(idx + 1) % total];\n onChange(next);\n track('patient_search_when_selected', { when: next });\n focusAt(next);\n break;\n }\n case backwardKey:\n case 'ArrowUp': {\n event.preventDefault();\n const next = WHEN_OPTIONS[(idx - 1 + total) % total];\n onChange(next);\n track('patient_search_when_selected', { when: next });\n focusAt(next);\n break;\n }\n case 'Home': {\n event.preventDefault();\n const next = WHEN_OPTIONS[0];\n onChange(next);\n track('patient_search_when_selected', { when: next });\n focusAt(next);\n break;\n }\n case 'End': {\n event.preventDefault();\n const next = WHEN_OPTIONS[total - 1];\n onChange(next);\n track('patient_search_when_selected', { when: next });\n focusAt(next);\n break;\n }\n default:\n break;\n }\n },\n [focusAt, isRTL, onChange],\n );\n\n // Roving tabindex — the selected option (or `anytime` fallback) is the only\n // tab stop. Matches the WAI-ARIA radiogroup pattern.\n const rovingOption: WhenFilter = value ?? 'anytime';\n\n const labelKeyFor: Record<WhenFilter, string> = {\n today: 'patientSearch.when.today',\n tomorrow: 'patientSearch.when.tomorrow',\n this_week: 'patientSearch.when.thisWeek',\n anytime: 'patientSearch.when.anytime',\n };\n\n return (\n <div\n role=\"radiogroup\"\n aria-label={t('patientSearch.when.label')}\n id={groupId}\n className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\"\n >\n {WHEN_OPTIONS.map((opt) => {\n const isSelected = value === opt;\n const isRoving = rovingOption === opt;\n const label = t(labelKeyFor[opt]);\n return (\n <button\n key={opt}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={label}\n tabIndex={isRoving ? 0 : -1}\n ref={(node) => {\n if (node) buttonRefs.current.set(opt, node);\n else buttonRefs.current.delete(opt);\n }}\n onClick={() => {\n onChange(opt);\n track('patient_search_when_selected', { when: opt });\n }}\n onKeyDown={(e) => handleKeyDown(e, opt)}\n className={whenChipVariants({\n state: isSelected ? 'selected' : 'idle',\n })}\n >\n {label}\n </button>\n );\n })}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* FacetChipRow — faceted variant. One chip per FacetGroup. */\n/* -------------------------------------------------------------------- */\n\nconst facetChipVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-full)]',\n 'type-label',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' '),\n {\n variants: {\n // Matches the WHEN chip strip's `selected` look — solid primary fill,\n // primary-foreground text, transparent border. The earlier\n // `color-mix(primary 12% / secondary)` tint read as a washed-out\n // colour over the grey input row and didn't visually signal \"this\n // filter is active\" with enough weight. Solid fill matches the kit's\n // toggle-button precedent (SuggestionChip's `suggestion` intent + the\n // ServiceGrid radio's selected state in Booking).\n state: {\n idle: 'ds:bg-[var(--secondary)] ds:text-[var(--foreground)] ds:border ds:border-[color:var(--border)] ds:hover:bg-[color-mix(in_srgb,var(--primary)_8%,var(--secondary))]',\n active:\n 'ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)] ds:border ds:border-transparent ds:font-[var(--font-weight-semibold)]',\n },\n },\n defaultVariants: { state: 'idle' },\n },\n);\n\ninterface FacetChipRowProps {\n facets: FacetGroup[];\n value: SearchValue['facets'];\n onChange: (next: Record<string, string[]>) => void;\n}\n\nfunction FacetChipRow({ facets, value, onChange }: FacetChipRowProps) {\n const { t } = useTranslation();\n // `selections` is memoised because `value ?? {}` allocates a fresh `{}`\n // whenever the consumer passes `undefined`, which would otherwise invalidate\n // every downstream useMemo / useCallback that depends on it.\n const selections = useMemo(() => value ?? {}, [value]);\n\n const hasAnyActive = useMemo(\n () => Object.values(selections).some((arr) => arr && arr.length > 0),\n [selections],\n );\n\n const updateFacet = (key: string, values: string[]) => {\n const next = { ...selections };\n if (values.length === 0) delete next[key];\n else next[key] = values;\n onChange(next);\n track('patient_search_facet_changed', { key, values });\n };\n\n const toggleBoolean = (key: string) => {\n const isActive = (selections[key]?.length ?? 0) > 0;\n updateFacet(key, isActive ? [] : ['true']);\n };\n\n const toggleOption = (group: FacetGroup, option: string) => {\n const current = selections[group.key] ?? [];\n const active = current.includes(option);\n let next: string[];\n if (group.multi) {\n next = active\n ? current.filter((v) => v !== option)\n : [...current, option];\n } else {\n next = active ? [] : [option];\n }\n updateFacet(group.key, next);\n };\n\n return (\n <div\n role=\"group\"\n aria-label={t('patientSearch.facets.label')}\n className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\"\n >\n {facets.map((group) => {\n const isBoolean = group.options.length === 0;\n const current = selections[group.key] ?? [];\n const isActive = current.length > 0;\n\n if (isBoolean) {\n return (\n <button\n key={group.key}\n type=\"button\"\n aria-pressed={isActive}\n aria-label={group.label}\n onClick={() => toggleBoolean(group.key)}\n className={facetChipVariants({\n state: isActive ? 'active' : 'idle',\n })}\n >\n <span>{group.label}</span>\n </button>\n );\n }\n\n const countSuffix = isActive ? ` (${current.length})` : '';\n\n return (\n <DropdownMenu.Root key={group.key}>\n <DropdownMenu.Trigger asChild>\n <button\n type=\"button\"\n aria-label={`${group.label}${countSuffix}`}\n className={facetChipVariants({\n state: isActive ? 'active' : 'idle',\n })}\n >\n <span>\n {group.label}\n {countSuffix}\n </span>\n <ChevronDown\n aria-hidden=\"true\"\n className=\"ds:size-3.5 ds:shrink-0\"\n />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content sideOffset={8} align=\"start\">\n {group.options.map((option) => (\n <DropdownMenu.CheckboxItem\n key={option.value}\n checked={current.includes(option.value)}\n onSelect={(event) => {\n // Keep the menu open for multi-select facets so the user\n // can tick multiple boxes without re-opening.\n if (group.multi) event.preventDefault();\n toggleOption(group, option.value);\n }}\n >\n {option.label}\n </DropdownMenu.CheckboxItem>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n );\n })}\n {hasAnyActive ? (\n <button\n type=\"button\"\n onClick={() => {\n onChange({});\n track('patient_search_facet_changed', { key: '*', values: [] });\n }}\n className={[\n 'ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n 'type-label ds:text-[color:var(--muted-foreground)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:hover:text-[color:var(--foreground)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n ].join(' ')}\n >\n <X aria-hidden=\"true\" className=\"ds:size-3.5\" />\n {t('patientSearch.facets.clear')}\n </button>\n ) : null}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* DiscoveryGrid — responsive grid of curated cards. */\n/* -------------------------------------------------------------------- */\n\nconst WHEEL_ACCENTS = ['violet', 'purple', 'magenta', 'blue'] as const;\ntype WheelAccent = (typeof WHEEL_ACCENTS)[number];\n\nconst discoveryCardVariants = cva(\n [\n 'ds:relative ds:flex ds:h-full ds:flex-col ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-lg)] ds:overflow-hidden',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n 'ds:bg-[var(--card)] ds:text-[var(--card-foreground)]',\n 'ds:border ds:border-[color:var(--card-border)]',\n 'ds:shadow-[var(--shadow-sm)]',\n 'ds:transition-[transform,box-shadow] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:motion-safe:hover:-translate-y-0.5',\n 'ds:hover:shadow-[var(--shadow-md)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:no-underline',\n ].join(' '),\n);\n\nconst accentStripVariants = cva(\n 'ds:absolute ds:inset-inline-0 ds:top-0 ds:h-[3px] ds:pointer-events-none',\n {\n variants: {\n accent: {\n violet: 'ds:bg-[var(--color-violet-500)]',\n purple: 'ds:bg-[var(--color-purple-500)]',\n magenta: 'ds:bg-[var(--color-magenta-500)]',\n blue: 'ds:bg-[var(--color-blue-500)]',\n },\n },\n defaultVariants: { accent: 'violet' },\n },\n);\n\nconst iconChipVariants = cva(\n 'ds:inline-flex ds:size-9 ds:items-center ds:justify-center ds:rounded-[var(--radius-md)]',\n {\n variants: {\n accent: {\n violet:\n 'ds:bg-[color-mix(in_srgb,var(--color-violet-500)_12%,var(--background))] ds:text-[var(--color-violet-700)]',\n purple:\n 'ds:bg-[color-mix(in_srgb,var(--color-purple-500)_12%,var(--background))] ds:text-[var(--color-purple-700)]',\n magenta:\n 'ds:bg-[color-mix(in_srgb,var(--color-magenta-500)_12%,var(--background))] ds:text-[var(--color-magenta-700)]',\n blue: 'ds:bg-[color-mix(in_srgb,var(--color-blue-500)_12%,var(--background))] ds:text-[var(--color-blue-700)]',\n },\n },\n defaultVariants: { accent: 'violet' },\n },\n);\n\nfunction resolveAccent(\n cardAccent: DiscoveryCard['accent'] | undefined,\n index: number,\n): WheelAccent {\n if (cardAccent && cardAccent !== 'auto') return cardAccent;\n return WHEEL_ACCENTS[index % WHEEL_ACCENTS.length];\n}\n\ninterface DiscoveryGridProps {\n cards: DiscoveryCard[];\n}\n\nfunction DiscoveryGrid({ cards }: DiscoveryGridProps) {\n const { t } = useTranslation();\n\n if (cards.length === 0) {\n return (\n <p className=\"type-body-sm ds:text-[color:var(--muted-foreground)] ds:m-0\">\n {t('patientSearch.discovery.empty')}\n </p>\n );\n }\n\n return (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <h3 className=\"type-title-card ds:text-[var(--foreground)] ds:m-0\">\n {t('patientSearch.discovery.heading')}\n </h3>\n <ul\n className={[\n 'ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)]',\n 'ds:md:grid-cols-2 ds:lg:grid-cols-3',\n 'ds:m-0 ds:p-0 ds:list-none',\n ].join(' ')}\n >\n {cards.map((card, index) => {\n const accent = resolveAccent(card.accent, index);\n return (\n <li key={card.id}>\n <a\n href={card.href}\n data-component=\"patient-search-card\"\n data-card-id={card.id}\n aria-label={\n card.description\n ? `${card.label} — ${card.description}`\n : card.label\n }\n onClick={() =>\n track('patient_search_discovery_card_clicked', {\n cardId: card.id,\n })\n }\n className={discoveryCardVariants()}\n >\n <span\n aria-hidden=\"true\"\n className={accentStripVariants({ accent })}\n />\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n className={iconChipVariants({ accent })}\n >\n {card.icon ?? (\n <Stethoscope className=\"ds:size-4\" aria-hidden=\"true\" />\n )}\n </span>\n {card.badge ? (\n // The badge sits inside a softly-tinted accent bubble\n // (15% accent + 85% background). The text colour must\n // contrast with that mix, not with the accent's canonical\n // foreground — `--accent-foreground` is calibrated against\n // the 100% accent surface and fails AA on the 15% tint.\n // Use `--foreground` which contrasts with the\n // mostly-background mix in both light and dark themes.\n <span className=\"type-meta ds:ms-auto ds:inline-flex ds:items-center ds:rounded-[var(--radius-full)] ds:border ds:border-[color:var(--foreground)] ds:bg-[color-mix(in_srgb,var(--accent)_15%,var(--background))] ds:text-[color:var(--foreground)] ds:font-[var(--font-weight-semibold)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]\">\n {card.badge}\n </span>\n ) : null}\n </span>\n <span className=\"type-label ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)]\">\n {card.label}\n </span>\n {card.description ? (\n <span className=\"type-body-sm ds:text-[color:var(--muted-foreground)]\">\n {card.description}\n </span>\n ) : null}\n </a>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* SubmitButton — shared CTA. Disabled only when every dimension is unset. */\n/* -------------------------------------------------------------------- */\n\ninterface SubmitButtonProps {\n value: SearchValue;\n variant: PatientSearchVariant;\n submitting?: boolean;\n submitLabel?: string;\n allowEmptySubmit?: boolean;\n onSubmit: (value: SearchValue) => void | Promise<void>;\n}\n\nfunction hasAnyDimension(value: SearchValue): boolean {\n if (value.object) return true;\n if (value.place) return true;\n if (value.geo) return true;\n if (value.when && value.when !== 'anytime') return true;\n if (value.facets) {\n for (const arr of Object.values(value.facets)) {\n if (arr && arr.length > 0) return true;\n }\n }\n return false;\n}\n\nfunction SubmitButton({\n value,\n variant,\n submitting,\n submitLabel,\n allowEmptySubmit,\n onSubmit,\n}: SubmitButtonProps) {\n const { t } = useTranslation();\n const disabled = submitting || (!allowEmptySubmit && !hasAnyDimension(value));\n const label = submitLabel ?? t('patientSearch.submit.cta');\n return (\n <Button\n type=\"button\"\n intent=\"primary\"\n size=\"lg\"\n startIcon={<SearchIcon aria-hidden=\"true\" />}\n loading={submitting}\n disabled={disabled}\n onClick={() => {\n track('patient_search_submitted', {\n variant,\n hasObject: Boolean(value.object),\n hasPlace: Boolean(value.place),\n hasGeo: Boolean(value.geo),\n when: value.when,\n facetKeys: value.facets ? Object.keys(value.facets) : [],\n });\n void onSubmit(value);\n }}\n >\n {label}\n </Button>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* Variant body props */\n/* -------------------------------------------------------------------- */\n\ninterface VariantBodyProps {\n variant: PatientSearchVariant;\n value: SearchValue;\n onChange: (next: SearchValue) => void;\n onSubmit: PatientSearchProps['onSubmit'];\n loadObjects: PatientSearchProps['loadObjects'];\n loadPlaces: PatientSearchProps['loadPlaces'];\n onObjectSelect?: PatientSearchProps['onObjectSelect'];\n onPlaceSelect?: PatientSearchProps['onPlaceSelect'];\n facets?: FacetGroup[];\n defaultRadiusKm: number;\n reverseGeocode?: PatientSearchProps['reverseGeocode'];\n discoveryCards: DiscoveryCard[];\n submitting?: boolean;\n submitLabel?: string;\n allowEmptySubmit?: boolean;\n whoRef: React.RefObject<HTMLInputElement | null>;\n whereRef: React.RefObject<HTMLInputElement | null>;\n /**\n * Accessible name applied to the inner `<Card>` so its underlying\n * `<article>` landmark isn't unnamed when nested inside the\n * `role=\"region\"` root. Without this every variant produces an\n * unnamed article — a `landmark-unique` axe hazard once a consumer\n * page renders adjacent articles. Resolved once at the root with\n * `t('patientSearch.regionLabel')` and threaded through so the\n * variant bodies don't each have to call `useTranslation()`.\n */\n cardLabel: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* WhoWhereBody — baseline variant. WHO + WHERE + submit. */\n/* -------------------------------------------------------------------- */\n\nfunction WhoWhereBody(props: VariantBodyProps) {\n const {\n variant,\n value,\n onChange,\n onSubmit,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n submitting,\n submitLabel,\n allowEmptySubmit,\n whoRef,\n whereRef,\n defaultRadiusKm,\n reverseGeocode,\n cardLabel,\n } = props;\n return (\n <Card variant=\"elevated\" aria-label={cardLabel}>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start\">\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhoField\n value={value}\n onChange={onChange}\n loadObjects={loadObjects}\n onObjectSelect={onObjectSelect}\n inputRef={whoRef}\n />\n </div>\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhereField\n value={value}\n onChange={onChange}\n loadPlaces={loadPlaces}\n onPlaceSelect={onPlaceSelect}\n defaultRadiusKm={defaultRadiusKm}\n reverseGeocode={reverseGeocode}\n inputRef={whereRef}\n />\n </div>\n <SubmitButton\n value={value}\n variant={variant}\n submitting={submitting}\n submitLabel={submitLabel}\n allowEmptySubmit={allowEmptySubmit}\n onSubmit={onSubmit}\n />\n </div>\n <GeoRadiusBar\n value={value}\n onChange={onChange}\n defaultRadiusKm={defaultRadiusKm}\n />\n </div>\n </Card>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* WhoWhereWhenBody — WHO + WHERE + submit + WHEN chip strip below. */\n/* -------------------------------------------------------------------- */\n\nfunction WhoWhereWhenBody(props: VariantBodyProps) {\n const {\n variant,\n value,\n onChange,\n onSubmit,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n submitting,\n submitLabel,\n allowEmptySubmit,\n whoRef,\n whereRef,\n defaultRadiusKm,\n reverseGeocode,\n cardLabel,\n } = props;\n return (\n <Card variant=\"elevated\" aria-label={cardLabel}>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start\">\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhoField\n value={value}\n onChange={onChange}\n loadObjects={loadObjects}\n onObjectSelect={onObjectSelect}\n inputRef={whoRef}\n />\n </div>\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhereField\n value={value}\n onChange={onChange}\n loadPlaces={loadPlaces}\n onPlaceSelect={onPlaceSelect}\n defaultRadiusKm={defaultRadiusKm}\n reverseGeocode={reverseGeocode}\n inputRef={whereRef}\n />\n </div>\n <SubmitButton\n value={value}\n variant={variant}\n submitting={submitting}\n submitLabel={submitLabel}\n allowEmptySubmit={allowEmptySubmit}\n onSubmit={onSubmit}\n />\n </div>\n <GeoRadiusBar\n value={value}\n onChange={onChange}\n defaultRadiusKm={defaultRadiusKm}\n />\n <WhenChipStrip\n value={value.when}\n onChange={(next) => onChange({ ...value, when: next })}\n />\n </div>\n </Card>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* FacetedBody — WHO + WHERE + submit + facet chip row below. */\n/* -------------------------------------------------------------------- */\n\nfunction FacetedBody(props: VariantBodyProps) {\n const {\n variant,\n value,\n onChange,\n onSubmit,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n facets,\n submitting,\n submitLabel,\n allowEmptySubmit,\n whoRef,\n whereRef,\n defaultRadiusKm,\n reverseGeocode,\n cardLabel,\n } = props;\n return (\n <Card variant=\"elevated\" aria-label={cardLabel}>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start\">\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhoField\n value={value}\n onChange={onChange}\n loadObjects={loadObjects}\n onObjectSelect={onObjectSelect}\n inputRef={whoRef}\n />\n </div>\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhereField\n value={value}\n onChange={onChange}\n loadPlaces={loadPlaces}\n onPlaceSelect={onPlaceSelect}\n defaultRadiusKm={defaultRadiusKm}\n reverseGeocode={reverseGeocode}\n inputRef={whereRef}\n />\n </div>\n <SubmitButton\n value={value}\n variant={variant}\n submitting={submitting}\n submitLabel={submitLabel}\n allowEmptySubmit={allowEmptySubmit}\n onSubmit={onSubmit}\n />\n </div>\n <GeoRadiusBar\n value={value}\n onChange={onChange}\n defaultRadiusKm={defaultRadiusKm}\n />\n {facets && facets.length > 0 ? (\n <FacetChipRow\n facets={facets}\n value={value.facets}\n onChange={(next) => onChange({ ...value, facets: next })}\n />\n ) : null}\n </div>\n </Card>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* DiscoveryBody — hero search + card grid. */\n/* -------------------------------------------------------------------- */\n\nfunction DiscoveryBody(props: VariantBodyProps) {\n const {\n variant,\n value,\n onChange,\n onSubmit,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n discoveryCards,\n submitting,\n submitLabel,\n allowEmptySubmit,\n whoRef,\n whereRef,\n defaultRadiusKm,\n reverseGeocode,\n cardLabel,\n } = props;\n return (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]\">\n <Card variant=\"elevated\" aria-label={cardLabel}>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)] ds:md:flex-row ds:md:items-stretch\">\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhoField\n value={value}\n onChange={onChange}\n loadObjects={loadObjects}\n onObjectSelect={onObjectSelect}\n inputRef={whoRef}\n />\n </div>\n <div className=\"ds:flex-1 ds:min-w-0\">\n <WhereField\n value={value}\n onChange={onChange}\n loadPlaces={loadPlaces}\n onPlaceSelect={onPlaceSelect}\n defaultRadiusKm={defaultRadiusKm}\n reverseGeocode={reverseGeocode}\n inputRef={whereRef}\n />\n </div>\n <SubmitButton\n value={value}\n variant={variant}\n submitting={submitting}\n submitLabel={submitLabel}\n allowEmptySubmit={allowEmptySubmit}\n onSubmit={onSubmit}\n />\n </div>\n <GeoRadiusBar\n value={value}\n onChange={onChange}\n defaultRadiusKm={defaultRadiusKm}\n />\n </Card>\n <DiscoveryGrid cards={discoveryCards} />\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* PatientSearch */\n/* -------------------------------------------------------------------- */\n\nexport const PatientSearch = forwardRef<\n PatientSearchHandle,\n PatientSearchProps\n>(function PatientSearch(\n {\n variant,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n facets,\n defaultRadiusKm = DEFAULT_RADIUS_KM,\n reverseGeocode,\n discoveryCards,\n countryCode,\n value,\n onChange,\n onSubmit,\n submitting,\n submitLabel,\n allowEmptySubmit,\n 'aria-label': ariaLabel,\n id,\n className,\n ...rest\n },\n ref,\n) {\n const { t } = useTranslation();\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n // Primary-field refs — `focusPrimary` jumps to whichever input the variant\n // emphasises (WHO in most variants; no auto-focus on `discovery`).\n const whoRef = useRef<HTMLInputElement>(null);\n const whereRef = useRef<HTMLInputElement>(null);\n\n // Apply `when: anytime` default once on mount, but only for the variant\n // that actually renders the WHEN chip strip (`who-where-when`). The\n // `faceted` variant exposes facets, not WHEN — seeding `when: 'anytime'`\n // for it would silently pollute the consumer's value with a field the\n // form never displays.\n const seededWhenRef = useRef(false);\n useEffect(() => {\n if (seededWhenRef.current) return;\n if (variant !== 'who-where-when') return;\n if (value.when !== undefined) {\n seededWhenRef.current = true;\n return;\n }\n seededWhenRef.current = true;\n onChange({ ...value, when: 'anytime' });\n // We intentionally seed only on first render — the consumer can clear\n // back to `undefined` if they want, and we won't re-seed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variant]);\n\n // Apply `facets: {}` default once on mount for the faceted variant so\n // the chip row treats undefined and empty consistently.\n const seededFacetsRef = useRef(false);\n useEffect(() => {\n if (seededFacetsRef.current) return;\n if (variant !== 'faceted') return;\n if (value.facets !== undefined) {\n seededFacetsRef.current = true;\n return;\n }\n seededFacetsRef.current = true;\n onChange({ ...value, facets: {} });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variant]);\n\n // Exposure event — fired once per variant assignment so PostHog can\n // record A/B assignment even for users who bounce before submitting.\n const exposedRef = useRef<PatientSearchVariant | null>(null);\n useEffect(() => {\n if (exposedRef.current === variant) return;\n exposedRef.current = variant;\n track('patient_search_variant_exposed', { variant, country: countryCode });\n }, [variant, countryCode]);\n\n // Imperative handle — minimal surface (`getVariant`, `reset`,\n // `focusPrimary`). The `value` reset goes through the consumer-owned\n // `onChange` so the parent's state stays the source of truth.\n //\n // The same handle is surfaced two ways: through the React `ref` (for\n // consumers driving the kit directly) and through `useAgentRegistration`\n // (for the future agent / MCP runtime). Both reach the same object so a\n // direct `ref.current?.reset()` and an `agentRegistry.invoke('reset')`\n // do the same thing.\n const handle = useMemo<PatientSearchHandle>(\n () => ({\n getVariant: () => variant,\n reset: () => {\n onChange({});\n },\n focusPrimary: () => {\n // Discovery deliberately doesn't auto-focus the search field on\n // mount; agents hitting `focus_primary` still get pulled into WHO\n // since that's the natural starting point for any keyboard-driven\n // flow once the user opts in.\n requestAnimationFrame(() => {\n whoRef.current?.focus();\n });\n },\n }),\n [variant, onChange],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(patientSearchAgent, handle, id);\n\n const resolvedAriaLabel = ariaLabel ?? t('patientSearch.regionLabel');\n\n const bodyProps: VariantBodyProps = {\n variant,\n value,\n onChange,\n onSubmit,\n loadObjects,\n loadPlaces,\n onObjectSelect,\n onPlaceSelect,\n facets,\n defaultRadiusKm,\n reverseGeocode,\n discoveryCards: discoveryCards ?? [],\n submitting,\n submitLabel,\n allowEmptySubmit,\n whoRef,\n whereRef,\n cardLabel: resolvedAriaLabel,\n };\n\n const body = (() => {\n switch (variant) {\n case 'who-where':\n return <WhoWhereBody {...bodyProps} />;\n case 'who-where-when':\n return <WhoWhereWhenBody {...bodyProps} />;\n case 'faceted':\n return <FacetedBody {...bodyProps} />;\n case 'discovery':\n return <DiscoveryBody {...bodyProps} />;\n /* c8 ignore next 2 */\n default:\n return null;\n }\n })();\n\n return (\n <div\n ref={rootRef}\n role=\"region\"\n aria-label={resolvedAriaLabel}\n id={id}\n data-component=\"patient-search\"\n data-component-id={id}\n data-variant={variant}\n className={rootVariants({ variant, className })}\n {...rest}\n >\n {body}\n </div>\n );\n});\n\nPatientSearch.displayName = 'PatientSearch';\n"],"names":["__iconNode","LocateFixed","createLucideIcon","patientSearchAgent","handle","track","event","payload","fn","WHEN_OPTIONS","RADIUS_PRESETS","DEFAULT_RADIUS_KM","AUTOCOMPLETE_DEBOUNCE_MS","radiusToStepIndex","km","best","bestDelta","preset","index","delta","rootVariants","cva","WhoField","value","onChange","loadObjects","onObjectSelect","inputRef","t","useTranslation","query","setQuery","useState","_a","selectedValueRef","useRef","_b","useEffect","_c","_d","loadOptions","useCallback","q","signal","handleSelect","option","next","focusTrackedRef","jsx","e","Autocomplete","SearchIcon","geoTriggerClasses","WhereField","loadPlaces","onPlaceSelect","defaultRadiusKm","reverseGeocode","initialStatus","status","setStatus","place","requestLocation","position","latitude","longitude","label","resolvedLabel","syntheticPlace","clearGeo","isGranted","isRequesting","isDenied","overlay","jsxs","X","MapPin","Alert","GeoRadiusBar","radiusIndex","setRadiusIndex","commitRadius","formatRadius","n","Slider","whenChipVariants","WhenChipStrip","i18n","groupId","useId","isRTL","buttonRefs","focusAt","opt","handleKeyDown","current","idx","total","forwardKey","backwardKey","rovingOption","labelKeyFor","isSelected","isRoving","node","facetChipVariants","FacetChipRow","facets","selections","useMemo","hasAnyActive","arr","updateFacet","key","values","toggleBoolean","isActive","toggleOption","group","active","v","isBoolean","countSuffix","DropdownMenu","ChevronDown","WHEEL_ACCENTS","discoveryCardVariants","accentStripVariants","iconChipVariants","resolveAccent","cardAccent","DiscoveryGrid","cards","card","accent","Stethoscope","hasAnyDimension","SubmitButton","variant","submitting","submitLabel","allowEmptySubmit","onSubmit","disabled","Button","WhoWhereBody","props","whoRef","whereRef","cardLabel","Card","WhoWhereWhenBody","FacetedBody","DiscoveryBody","discoveryCards","PatientSearch","forwardRef","countryCode","ariaLabel","id","className","rest","ref","rootRef","seededWhenRef","seededFacetsRef","exposedRef","useImperativeHandle","useAgentRegistration","resolvedAriaLabel","bodyProps","body"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,162 @@
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { forwardRef as w, useState as C } from "react";
3
+ import { useTranslation as m } from "react-i18next";
4
+ import { A as y } from "./app-frame-DIEMIC5V.js";
5
+ import { I as H } from "./icon-button-LqoiKcUN.js";
6
+ import { D as n } from "./dropdown-menu-DU-Hrf33.js";
7
+ import { H as B, g as N, f as T, e as k, a as x, c as M, d as O } from "./header-DaXWDw0M.js";
8
+ import { L as P } from "./logo-1FuSGx0n.js";
9
+ import { S as W, a as R, h as j, j as z, k as D, i as E } from "./sidebar-B0OBmJrC.js";
10
+ import { T as _ } from "./theme-root-BOO73p5t.js";
11
+ import { a as F } from "./tooltip-DvmfrNvB.js";
12
+ import { u as U } from "./use-theme-CAuo6EYT.js";
13
+ import { S as q } from "./settings-d25ju_6L.js";
14
+ import { M as G } from "./maximize-2-BYd2Kti7.js";
15
+ import { L as J } from "./log-out-oDS6zO5d.js";
16
+ function K(r) {
17
+ return r > 99 ? "99+" : String(r);
18
+ }
19
+ function Q(r) {
20
+ if (r.startsWith("/") || r.startsWith("#") || r.startsWith("?"))
21
+ return !0;
22
+ try {
23
+ const t = new URL(r, window.location.origin);
24
+ return t.protocol === "http:" || t.protocol === "https:";
25
+ } catch {
26
+ return !1;
27
+ }
28
+ }
29
+ function V({
30
+ logoutHref: r,
31
+ onToggleFullscreen: t
32
+ }) {
33
+ const { t: a } = m();
34
+ return /* @__PURE__ */ i(n.Root, { children: [
35
+ /* @__PURE__ */ e(n.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
36
+ H,
37
+ {
38
+ icon: /* @__PURE__ */ e(q, { "aria-hidden": "true" }),
39
+ "aria-label": a("patientShell.settings.triggerAria"),
40
+ tooltip: a("patientShell.settings.triggerAria"),
41
+ "data-testid": "patient-shell-settings-trigger"
42
+ }
43
+ ) }),
44
+ /* @__PURE__ */ i(n.Content, { align: "end", children: [
45
+ /* @__PURE__ */ e(
46
+ n.Item,
47
+ {
48
+ startIcon: /* @__PURE__ */ e(G, { "aria-hidden": "true" }),
49
+ onSelect: t,
50
+ "data-testid": "patient-shell-fullscreen",
51
+ children: a("patientShell.settings.fullscreen")
52
+ }
53
+ ),
54
+ /* @__PURE__ */ e(n.Separator, {}),
55
+ /* @__PURE__ */ e(
56
+ n.Item,
57
+ {
58
+ startIcon: /* @__PURE__ */ e(J, { "aria-hidden": "true" }),
59
+ onSelect: () => {
60
+ typeof window > "u" || Q(r) && window.location.assign(r);
61
+ },
62
+ "data-testid": "patient-shell-logout",
63
+ children: a("patientShell.settings.logout")
64
+ }
65
+ )
66
+ ] })
67
+ ] });
68
+ }
69
+ function X({ menuItems: r }) {
70
+ return /* @__PURE__ */ e(R, { children: r.map((t) => {
71
+ const a = typeof t.badgeCount == "number" && t.badgeCount > 0 ? t.badgeCount : void 0;
72
+ return /* @__PURE__ */ i(
73
+ j,
74
+ {
75
+ href: t.href,
76
+ "aria-label": t.label,
77
+ isActive: t.isActive,
78
+ children: [
79
+ t.icon ? /* @__PURE__ */ e(z, { children: t.icon }) : null,
80
+ /* @__PURE__ */ e(D, { children: t.label }),
81
+ a !== void 0 ? /* @__PURE__ */ e(E, { children: K(a) }) : null
82
+ ]
83
+ },
84
+ t.id
85
+ );
86
+ }) });
87
+ }
88
+ const Y = w(
89
+ ({
90
+ menuItems: r,
91
+ logoutHref: t,
92
+ onToggleFullscreen: a,
93
+ brandLogo: p,
94
+ brandHref: u = "/",
95
+ mainAriaLabel: f,
96
+ sidebarState: o,
97
+ children: g,
98
+ // `userName` and `userAvatarSrc` are declared on the public API
99
+ // for forward-compatibility (future profile-pill work) — they are
100
+ // intentionally unused today because the legacy patient chrome
101
+ // carries no profile pill.
102
+ userName: Z,
103
+ userAvatarSrc: $
104
+ }, s) => {
105
+ const { t: l } = m(), { theme: b, accessibility: S, resolvedTheme: d } = U(), v = b !== "system" || S !== "system", I = d.startsWith("dark") ? "dark" : "light", L = d.endsWith("-accessible"), [A, c] = C(!1), h = /* @__PURE__ */ e(F, { children: /* @__PURE__ */ e(
106
+ y,
107
+ {
108
+ mainAriaLabel: f,
109
+ mainClassName: "ds:bg-[color:var(--app-shell-background)]",
110
+ header: /* @__PURE__ */ i(B, { children: [
111
+ /* @__PURE__ */ i(N, { children: [
112
+ /* @__PURE__ */ e(T, { href: "#main-content" }),
113
+ /* @__PURE__ */ e(k, { onMenuOpen: () => c(!0) }),
114
+ /* @__PURE__ */ e(
115
+ x,
116
+ {
117
+ logo: p ?? /* @__PURE__ */ e(P, { variant: "monochrome", size: "md", decorative: !0 }),
118
+ href: u,
119
+ "aria-label": l("patientShell.brand.homeAria")
120
+ }
121
+ )
122
+ ] }),
123
+ /* @__PURE__ */ e(M, {}),
124
+ /* @__PURE__ */ e(O, { children: /* @__PURE__ */ e(
125
+ V,
126
+ {
127
+ logoutHref: t,
128
+ onToggleFullscreen: a
129
+ }
130
+ ) })
131
+ ] }),
132
+ sidebar: /* @__PURE__ */ e(
133
+ W,
134
+ {
135
+ ...o !== void 0 ? { state: o } : { defaultState: "expanded" },
136
+ open: A,
137
+ onOpenChange: c,
138
+ "aria-label": l("patientShell.sidebar.panelLabel"),
139
+ "data-testid": "patient-shell-sidebar",
140
+ children: /* @__PURE__ */ e(X, { menuItems: r })
141
+ }
142
+ ),
143
+ children: g
144
+ }
145
+ ) });
146
+ return v ? /* @__PURE__ */ e(
147
+ _,
148
+ {
149
+ ref: s,
150
+ theme: I,
151
+ accessible: L,
152
+ className: "ds:contents",
153
+ children: h
154
+ }
155
+ ) : /* @__PURE__ */ e("div", { ref: s, className: "ds:contents", children: h });
156
+ }
157
+ );
158
+ Y.displayName = "PatientShell";
159
+ export {
160
+ Y as P
161
+ };
162
+ //# sourceMappingURL=patient-shell-oiIRqEAl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-shell-oiIRqEAl.js","sources":["../../src/patterns/patient-shell/patient-shell.tsx"],"sourcesContent":["/**\n * Patient Shell — the chrome for AlfaDocs's patient-facing users\n * (patients managing their own appointments and records).\n *\n * Deliberately flatter than the clinician `AppFrame` composition: no\n * command palette, no favourites, no practice/chain affordances, no\n * Alia, no privacy lock. Mirrors the legacy `_header.html.twig`\n * `app.user.type == 'patient'` branch and the `knp_menu_render('pcp')`\n * flat nav menu.\n *\n * Unlike most patterns in this folder, PatientShell exports a runtime\n * component because the consuming patient-portal app mounts it in\n * production — the exports are surfaced via `src/patterns/index.ts`\n * and included in the library bundle.\n */\nimport { forwardRef, useState, type ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LogOut, Maximize2, Settings as SettingsIcon } from 'lucide-react';\n\nimport { AppFrame } from '../../components/app-frame';\nimport { IconButton } from '../../components/button';\nimport { DropdownMenu } from '../../components/dropdown-menu';\nimport {\n Header,\n HeaderBrand,\n HeaderCenter,\n HeaderEnd,\n HeaderMenuButton,\n HeaderSkipLink,\n HeaderStart,\n} from '../../components/header';\nimport { Logo } from '../../components/logo';\nimport {\n Sidebar,\n SidebarBody,\n SidebarItem,\n SidebarItemBadge,\n SidebarItemIcon,\n SidebarItemLabel,\n type SidebarMode,\n} from '../../components/sidebar';\nimport { ThemeRoot } from '../../components/theme-root';\nimport { TooltipProvider } from '../../components/tooltip';\nimport { useTheme } from '../../hooks/use-theme';\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* ------------------------------------------------------------------ */\n\nexport interface PatientNavItem {\n id: string;\n /** Pre-translated label — patients' nav labels are emitted already\n * translated by the consuming app's backend (legacy `knp_menu`). */\n label: string;\n href: string;\n /** Optional leading icon. Pass a lucide-react or equivalent element. */\n icon?: ReactNode;\n /** Optional unseen-item count rendered as a pill badge. */\n badgeCount?: number;\n /** Mark the item as the current page (`aria-current='page'`). */\n isActive?: boolean;\n}\n\nexport interface PatientShellProps {\n /** Patient's display name. Used as the avatar fallback by consumers\n * that read the name through a slot; not rendered inside this shell\n * today because the legacy patient chrome carries no profile pill. */\n userName: string;\n /** Optional avatar URL. Reserved for future profile-pill surfaces;\n * no visible effect today. */\n userAvatarSrc?: string;\n /** Flat nav items rendered in the sidebar, in order. */\n menuItems: PatientNavItem[];\n /** URL the \"Logout\" action navigates to — typically `/logout`. */\n logoutHref: string;\n /** Fires when the user toggles fullscreen from the settings menu. */\n onToggleFullscreen?: () => void;\n /** Optional brand logo. Defaults to\n * `<Logo variant=\"monochrome\" size=\"md\" decorative />`. */\n brandLogo?: ReactNode;\n /** Link target for the brand — typically the patient dashboard. */\n brandHref?: string;\n /** Override the accessible name of the `<main>` landmark. */\n mainAriaLabel?: string;\n /**\n * Force the sidebar into a specific mode. Consuming apps typically\n * flip to `'overlay'` on narrow viewports and leave this undefined\n * elsewhere (the sidebar then defaults to `'expanded'`).\n */\n sidebarState?: SidebarMode;\n /** Children render inside the main content region. */\n children: ReactNode;\n}\n\n/* ------------------------------------------------------------------ */\n/* Internals */\n/* ------------------------------------------------------------------ */\n\nfunction formatBadgeCount(count: number): string {\n return count > 99 ? '99+' : String(count);\n}\n\n/**\n * Guard against `javascript:` and other non-navigation schemes before\n * handing the URL to `window.location.assign`. A consuming app that lets\n * attacker-controlled input reach `logoutHref` would otherwise execute\n * script. Allow only relative paths, hash fragments, and `http(s)` URLs.\n */\nfunction isSafeLogoutHref(href: string): boolean {\n if (href.startsWith('/') || href.startsWith('#') || href.startsWith('?')) {\n return true;\n }\n try {\n const url = new URL(href, window.location.origin);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction SettingsMenu({\n logoutHref,\n onToggleFullscreen,\n}: {\n logoutHref: string;\n onToggleFullscreen?: () => void;\n}) {\n const { t } = useTranslation();\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={<SettingsIcon aria-hidden=\"true\" />}\n aria-label={t('patientShell.settings.triggerAria')}\n tooltip={t('patientShell.settings.triggerAria')}\n data-testid=\"patient-shell-settings-trigger\"\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n <DropdownMenu.Item\n startIcon={<Maximize2 aria-hidden=\"true\" />}\n onSelect={onToggleFullscreen}\n data-testid=\"patient-shell-fullscreen\"\n >\n {t('patientShell.settings.fullscreen')}\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item\n startIcon={<LogOut aria-hidden=\"true\" />}\n onSelect={() => {\n if (typeof window === 'undefined') return;\n if (!isSafeLogoutHref(logoutHref)) return;\n window.location.assign(logoutHref);\n }}\n data-testid=\"patient-shell-logout\"\n >\n {t('patientShell.settings.logout')}\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n );\n}\n\nfunction PatientSidebarNav({ menuItems }: { menuItems: PatientNavItem[] }) {\n return (\n <SidebarBody>\n {menuItems.map((item) => {\n const badge =\n typeof item.badgeCount === 'number' && item.badgeCount > 0\n ? item.badgeCount\n : undefined;\n return (\n <SidebarItem\n key={item.id}\n href={item.href}\n aria-label={item.label}\n isActive={item.isActive}\n >\n {item.icon ? <SidebarItemIcon>{item.icon}</SidebarItemIcon> : null}\n <SidebarItemLabel>{item.label}</SidebarItemLabel>\n {badge !== undefined ? (\n <SidebarItemBadge>{formatBadgeCount(badge)}</SidebarItemBadge>\n ) : null}\n </SidebarItem>\n );\n })}\n </SidebarBody>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nexport const PatientShell = forwardRef<HTMLDivElement, PatientShellProps>(\n (\n {\n menuItems,\n logoutHref,\n onToggleFullscreen,\n brandLogo,\n brandHref = '/',\n mainAriaLabel,\n sidebarState,\n children,\n // `userName` and `userAvatarSrc` are declared on the public API\n // for forward-compatibility (future profile-pill work) — they are\n // intentionally unused today because the legacy patient chrome\n // carries no profile pill.\n userName: _userName,\n userAvatarSrc: _userAvatarSrc,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n // Only wrap children in a nested <ThemeRoot> when the user has\n // explicitly chosen a theme via the hook (e.g., through an in-app\n // toggle). Otherwise we let the outer cascade win — wrapping with\n // the hook's default `resolvedTheme = 'light'` would clobber a\n // consuming app's `<html>` theme class (or Storybook's decorator)\n // for every child rendered inside the shell.\n const { theme: themePref, accessibility, resolvedTheme } = useTheme();\n const hasExplicitOverride =\n themePref !== 'system' || accessibility !== 'system';\n const themeBase = resolvedTheme.startsWith('dark') ? 'dark' : 'light';\n const themeAccessible = resolvedTheme.endsWith('-accessible');\n\n // Narrow-viewport overlay: `HeaderMenuButton` only renders below the\n // `md` breakpoint, and toggling opens the Sidebar's overlay Dialog.\n const [sidebarOpen, setSidebarOpen] = useState(false);\n\n const resolvedLogo = brandLogo ?? (\n <Logo variant=\"monochrome\" size=\"md\" decorative />\n );\n\n const shell = (\n <TooltipProvider>\n <AppFrame\n mainAriaLabel={mainAriaLabel}\n mainClassName=\"ds:bg-[color:var(--app-shell-background)]\"\n header={\n <Header>\n <HeaderStart>\n <HeaderSkipLink href=\"#main-content\" />\n <HeaderMenuButton onMenuOpen={() => setSidebarOpen(true)} />\n <HeaderBrand\n logo={resolvedLogo}\n href={brandHref}\n aria-label={t('patientShell.brand.homeAria')}\n />\n </HeaderStart>\n <HeaderCenter />\n <HeaderEnd>\n <SettingsMenu\n logoutHref={logoutHref}\n onToggleFullscreen={onToggleFullscreen}\n />\n </HeaderEnd>\n </Header>\n }\n sidebar={\n <Sidebar\n {...(sidebarState !== undefined\n ? { state: sidebarState }\n : { defaultState: 'expanded' as const })}\n open={sidebarOpen}\n onOpenChange={setSidebarOpen}\n aria-label={t('patientShell.sidebar.panelLabel')}\n data-testid=\"patient-shell-sidebar\"\n >\n <PatientSidebarNav menuItems={menuItems} />\n </Sidebar>\n }\n >\n {children}\n </AppFrame>\n </TooltipProvider>\n );\n\n if (!hasExplicitOverride) {\n // Pass-through wrapper preserves the ref contract without altering\n // the token cascade.\n return (\n <div ref={ref} className=\"ds:contents\">\n {shell}\n </div>\n );\n }\n\n return (\n <ThemeRoot\n ref={ref}\n theme={themeBase}\n accessible={themeAccessible}\n className=\"ds:contents\"\n >\n {shell}\n </ThemeRoot>\n );\n },\n);\n\nPatientShell.displayName = 'PatientShell';\n"],"names":["formatBadgeCount","count","isSafeLogoutHref","href","url","SettingsMenu","logoutHref","onToggleFullscreen","t","useTranslation","jsxs","DropdownMenu","jsx","IconButton","SettingsIcon","Maximize2","LogOut","PatientSidebarNav","menuItems","SidebarBody","item","badge","SidebarItem","SidebarItemIcon","SidebarItemLabel","SidebarItemBadge","PatientShell","forwardRef","brandLogo","brandHref","mainAriaLabel","sidebarState","children","_userName","_userAvatarSrc","ref","themePref","accessibility","resolvedTheme","useTheme","hasExplicitOverride","themeBase","themeAccessible","sidebarOpen","setSidebarOpen","useState","shell","TooltipProvider","AppFrame","Header","HeaderStart","HeaderSkipLink","HeaderMenuButton","HeaderBrand","Logo","HeaderCenter","HeaderEnd","Sidebar","ThemeRoot"],"mappings":"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"}