@alfadocs/ui-kit-debug 0.46.0 → 0.48.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 (368) hide show
  1. package/dist/_chunks/{agenda-card-CFyWSX7Z.js → agenda-card-BaSfVfrL.js} +25 -29
  2. package/dist/_chunks/agenda-card-BaSfVfrL.js.map +1 -0
  3. package/dist/_chunks/{agenda-tray-Dyj9ChHC.js → agenda-tray-DQayYmQ0.js} +50 -67
  4. package/dist/_chunks/agenda-tray-DQayYmQ0.js.map +1 -0
  5. package/dist/_chunks/ai-consent-banner-DO5ingMq.js +169 -0
  6. package/dist/_chunks/ai-consent-banner-DO5ingMq.js.map +1 -0
  7. package/dist/_chunks/ai-tools-rail-CxYG04cw.js +280 -0
  8. package/dist/_chunks/ai-tools-rail-CxYG04cw.js.map +1 -0
  9. package/dist/_chunks/alia-sidebar-DlvyXgVC.js +1126 -0
  10. package/dist/_chunks/alia-sidebar-DlvyXgVC.js.map +1 -0
  11. package/dist/_chunks/anamnesis-card-CmkBVAln.js +156 -0
  12. package/dist/_chunks/anamnesis-card-CmkBVAln.js.map +1 -0
  13. package/dist/_chunks/appointment-tray-BwDHhWWC.js +419 -0
  14. package/dist/_chunks/appointment-tray-BwDHhWWC.js.map +1 -0
  15. package/dist/_chunks/{audio-recorder-C1rhKhSN.js → audio-recorder-DC-v9YFW.js} +81 -91
  16. package/dist/_chunks/audio-recorder-DC-v9YFW.js.map +1 -0
  17. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
  18. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js.map → bmi-calculator-DdylQzT6.js.map} +1 -1
  19. package/dist/_chunks/{booking-DlDVuWMd.js → booking-WV2GSru5.js} +291 -303
  20. package/dist/_chunks/booking-WV2GSru5.js.map +1 -0
  21. package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
  22. package/dist/_chunks/{calculator-dialog-D-nfvteH.js.map → calculator-dialog-CFk4I91b.js.map} +1 -1
  23. package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
  24. package/dist/_chunks/calendar-days-C4BmpCZg.js.map +1 -0
  25. package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
  26. package/dist/_chunks/calendar-oYWOCrnf.js.map +1 -0
  27. package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
  28. package/dist/_chunks/care-plan-card-QmNpGggC.js.map +1 -0
  29. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
  30. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js.map +1 -0
  31. package/dist/_chunks/{chat-input-CQe7nR_v.js → chat-input-CFwc7JxL.js} +2 -1
  32. package/dist/_chunks/{chat-input-CQe7nR_v.js.map → chat-input-CFwc7JxL.js.map} +1 -1
  33. package/dist/_chunks/{chat-message-ASgGtj-L.js → chat-message-Dm8U2RY1.js} +81 -74
  34. package/dist/_chunks/chat-message-Dm8U2RY1.js.map +1 -0
  35. package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
  36. package/dist/_chunks/clinical-note-card-BYo437dU.js.map +1 -0
  37. package/dist/_chunks/code-block-HoddNOKJ.js +106 -0
  38. package/dist/_chunks/code-block-HoddNOKJ.js.map +1 -0
  39. package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
  40. package/dist/_chunks/contact-profile-card-DvvVfAA2.js.map +1 -0
  41. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js → cycle-calculator-DYvGm_m1.js} +2 -2
  42. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js.map → cycle-calculator-DYvGm_m1.js.map} +1 -1
  43. package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
  44. package/dist/_chunks/dialog-DMGnSelc.js.map +1 -0
  45. package/dist/_chunks/download-CDF1sbL9.js +16 -0
  46. package/dist/_chunks/download-CDF1sbL9.js.map +1 -0
  47. package/dist/_chunks/{due-date-calculator-mFxpHLml.js → due-date-calculator-BXd3ANj7.js} +2 -2
  48. package/dist/_chunks/{due-date-calculator-mFxpHLml.js.map → due-date-calculator-BXd3ANj7.js.map} +1 -1
  49. package/dist/_chunks/{editable-currency-cell-renderer-BEBUQl9P.js → editable-currency-cell-renderer-CLil9B29.js} +283 -293
  50. package/dist/_chunks/editable-currency-cell-renderer-CLil9B29.js.map +1 -0
  51. package/dist/_chunks/entity-card-COhmqHly.js +69 -0
  52. package/dist/_chunks/entity-card-COhmqHly.js.map +1 -0
  53. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js → gestational-age-calculator-Crj6FgZw.js} +2 -2
  54. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js.map → gestational-age-calculator-Crj6FgZw.js.map} +1 -1
  55. package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
  56. package/dist/_chunks/insert-result-DNdi_JYW.js.map +1 -0
  57. package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
  58. package/dist/_chunks/is-safe-url-DkETxeHz.js.map +1 -0
  59. package/dist/_chunks/languages-DsVf_WzT.js +19 -0
  60. package/dist/_chunks/languages-DsVf_WzT.js.map +1 -0
  61. package/dist/_chunks/layers-pzGcbLPj.js +34 -0
  62. package/dist/_chunks/layers-pzGcbLPj.js.map +1 -0
  63. package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
  64. package/dist/_chunks/message-card-Dvl1TgaN.js.map +1 -0
  65. package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
  66. package/dist/_chunks/{message-tray-hSQff9u4.js.map → message-tray-Dl6GQaaV.js.map} +1 -1
  67. package/dist/_chunks/mic-B4Gog3Gi.js +16 -0
  68. package/dist/_chunks/mic-B4Gog3Gi.js.map +1 -0
  69. package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
  70. package/dist/_chunks/operator-hero-CM8949Hd.js.map +1 -0
  71. package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
  72. package/dist/_chunks/patient-summary-card-BnTqxcTr.js.map +1 -0
  73. package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
  74. package/dist/_chunks/payment-request-card-B_lyobd0.js.map +1 -0
  75. package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-G8SU6Azw.js} +3 -3
  76. package/dist/_chunks/pdf-viewer-G8SU6Azw.js.map +1 -0
  77. package/dist/_chunks/pencil-CfQX-0Qc.js +21 -0
  78. package/dist/_chunks/pencil-CfQX-0Qc.js.map +1 -0
  79. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
  80. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js.map +1 -0
  81. package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
  82. package/dist/_chunks/phone-Bi5yUm4I.js.map +1 -0
  83. package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-BFL_mcDW.js} +3 -2
  84. package/dist/_chunks/{practice-results-DDi-kvaD.js.map → practice-results-BFL_mcDW.js.map} +1 -1
  85. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js → pregnancy-weight-gain-C7dK89jE.js} +2 -2
  86. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js.map → pregnancy-weight-gain-C7dK89jE.js.map} +1 -1
  87. package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
  88. package/dist/_chunks/scan-line-lGioFwLC.js.map +1 -0
  89. package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
  90. package/dist/_chunks/shield-check-BjCGH_Sr.js.map +1 -0
  91. package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-DPI2pY9V.js} +2 -2
  92. package/dist/_chunks/{sign-document-BCyLpFHJ.js.map → sign-document-DPI2pY9V.js.map} +1 -1
  93. package/dist/_chunks/{streaming-text-GH07yIYh.js → streaming-text-CfhDqtIT.js} +49 -45
  94. package/dist/_chunks/streaming-text-CfhDqtIT.js.map +1 -0
  95. package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
  96. package/dist/_chunks/{transaction-chip-B8ujzowA.js.map → transaction-chip-BZCa6XDn.js.map} +1 -1
  97. package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
  98. package/dist/_chunks/{unit-converter-u3CwNDpP.js.map → unit-converter-jWp3Z85y.js.map} +1 -1
  99. package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
  100. package/dist/_chunks/user-cog-BS_qc8nA.js.map +1 -0
  101. package/dist/_chunks/video-BAeICxCT.js +21 -0
  102. package/dist/_chunks/video-BAeICxCT.js.map +1 -0
  103. package/dist/_chunks/{workflow-map-BFNpzTiw.js → workflow-map-ZXw-zsZ8.js} +186 -219
  104. package/dist/_chunks/workflow-map-ZXw-zsZ8.js.map +1 -0
  105. package/dist/agent-catalog.json +324 -1
  106. package/dist/components/_shared/code-block.d.ts +39 -0
  107. package/dist/components/_shared/code-block.d.ts.map +1 -0
  108. package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
  109. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -0
  110. package/dist/components/_shared/entity-card/index.d.ts +3 -0
  111. package/dist/components/_shared/entity-card/index.d.ts.map +1 -0
  112. package/dist/components/_shared/index.d.ts +2 -0
  113. package/dist/components/_shared/index.d.ts.map +1 -1
  114. package/dist/components/_shared/is-safe-url.d.ts +13 -0
  115. package/dist/components/_shared/is-safe-url.d.ts.map +1 -0
  116. package/dist/components/agenda-card/agenda-card.d.ts +1 -2
  117. package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
  118. package/dist/components/agenda-card/index.d.ts +2 -1
  119. package/dist/components/agenda-card/index.d.ts.map +1 -1
  120. package/dist/components/agenda-card/index.js +6 -5
  121. package/dist/components/agenda-card/index.js.map +1 -1
  122. package/dist/components/agenda-tray/index.js +1 -1
  123. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
  124. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +1 -0
  125. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
  126. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +1 -0
  127. package/dist/components/ai-consent-banner/index.d.ts +4 -0
  128. package/dist/components/ai-consent-banner/index.d.ts.map +1 -0
  129. package/dist/components/ai-consent-banner/index.js +6 -0
  130. package/dist/components/ai-consent-banner/index.js.map +1 -0
  131. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
  132. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -0
  133. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
  134. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +1 -0
  135. package/dist/components/ai-tools-rail/index.d.ts +4 -0
  136. package/dist/components/ai-tools-rail/index.d.ts.map +1 -0
  137. package/dist/components/ai-tools-rail/index.js +6 -0
  138. package/dist/components/ai-tools-rail/index.js.map +1 -0
  139. package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
  140. package/dist/components/anamnesis-card/anamnesis-card.d.ts.map +1 -0
  141. package/dist/components/anamnesis-card/index.d.ts +3 -0
  142. package/dist/components/anamnesis-card/index.d.ts.map +1 -0
  143. package/dist/components/anamnesis-card/index.js +5 -0
  144. package/dist/components/anamnesis-card/index.js.map +1 -0
  145. package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
  146. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -0
  147. package/dist/components/appointment-card/appointment-card.d.ts +93 -0
  148. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -0
  149. package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
  150. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -0
  151. package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
  152. package/dist/components/appointment-card/appointment-tray.d.ts.map +1 -0
  153. package/dist/components/appointment-card/index.d.ts +8 -0
  154. package/dist/components/appointment-card/index.d.ts.map +1 -0
  155. package/dist/components/appointment-card/index.js +10 -0
  156. package/dist/components/appointment-card/index.js.map +1 -0
  157. package/dist/components/audio-recorder/index.js +1 -1
  158. package/dist/components/badge/badge.d.ts +1 -1
  159. package/dist/components/bmi-calculator/index.js +1 -1
  160. package/dist/components/booking/index.js +1 -1
  161. package/dist/components/calculator-dialog/index.js +1 -1
  162. package/dist/components/calendar/index.js +1 -1
  163. package/dist/components/card/card.d.ts +1 -1
  164. package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
  165. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -0
  166. package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
  167. package/dist/components/care-plan-card/care-plan-card.d.ts.map +1 -0
  168. package/dist/components/care-plan-card/index.d.ts +4 -0
  169. package/dist/components/care-plan-card/index.d.ts.map +1 -0
  170. package/dist/components/care-plan-card/index.js +6 -0
  171. package/dist/components/care-plan-card/index.js.map +1 -0
  172. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
  173. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -0
  174. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
  175. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts.map +1 -0
  176. package/dist/components/care-plan-entry-card/index.d.ts +4 -0
  177. package/dist/components/care-plan-entry-card/index.d.ts.map +1 -0
  178. package/dist/components/care-plan-entry-card/index.js +6 -0
  179. package/dist/components/care-plan-entry-card/index.js.map +1 -0
  180. package/dist/components/chat-input/index.js +1 -1
  181. package/dist/components/chat-message/chat-message.d.ts +13 -0
  182. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  183. package/dist/components/chat-message/index.js +1 -1
  184. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
  185. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts.map +1 -0
  186. package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
  187. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -0
  188. package/dist/components/clinical-note-card/index.d.ts +4 -0
  189. package/dist/components/clinical-note-card/index.d.ts.map +1 -0
  190. package/dist/components/clinical-note-card/index.js +6 -0
  191. package/dist/components/clinical-note-card/index.js.map +1 -0
  192. package/dist/components/contact-profile-card/index.js +1 -1
  193. package/dist/components/cycle-calculator/index.js +1 -1
  194. package/dist/components/data-table/index.js +1 -1
  195. package/dist/components/dialog/dialog.d.ts +7 -0
  196. package/dist/components/dialog/dialog.d.ts.map +1 -1
  197. package/dist/components/dialog/index.js +1 -1
  198. package/dist/components/due-date-calculator/index.js +1 -1
  199. package/dist/components/gestational-age-calculator/index.js +1 -1
  200. package/dist/components/index.d.ts +10 -0
  201. package/dist/components/index.d.ts.map +1 -1
  202. package/dist/components/message-card/index.js +5 -4
  203. package/dist/components/message-card/index.js.map +1 -1
  204. package/dist/components/message-card/message-card.d.ts +1 -2
  205. package/dist/components/message-card/message-card.d.ts.map +1 -1
  206. package/dist/components/message-tray/index.js +1 -1
  207. package/dist/components/operator-hero/index.js +1 -1
  208. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  209. package/dist/components/operator-hero/operator-hero.d.ts +9 -0
  210. package/dist/components/operator-hero/operator-hero.d.ts.map +1 -1
  211. package/dist/components/patient-summary-card/index.d.ts +4 -0
  212. package/dist/components/patient-summary-card/index.d.ts.map +1 -0
  213. package/dist/components/patient-summary-card/index.js +6 -0
  214. package/dist/components/patient-summary-card/index.js.map +1 -0
  215. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
  216. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -0
  217. package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
  218. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -0
  219. package/dist/components/payment-card/index.d.ts +7 -0
  220. package/dist/components/payment-card/index.d.ts.map +1 -0
  221. package/dist/components/payment-card/index.js +8 -0
  222. package/dist/components/payment-card/index.js.map +1 -0
  223. package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
  224. package/dist/components/payment-card/payment-card.agent.d.ts.map +1 -0
  225. package/dist/components/payment-card/payment-card.d.ts +71 -0
  226. package/dist/components/payment-card/payment-card.d.ts.map +1 -0
  227. package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
  228. package/dist/components/payment-card/payment-request-card.agent.d.ts.map +1 -0
  229. package/dist/components/payment-card/payment-request-card.d.ts +43 -0
  230. package/dist/components/payment-card/payment-request-card.d.ts.map +1 -0
  231. package/dist/components/pdf-viewer/index.js +1 -1
  232. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  233. package/dist/components/periodontal-chart-card/index.d.ts +4 -0
  234. package/dist/components/periodontal-chart-card/index.d.ts.map +1 -0
  235. package/dist/components/periodontal-chart-card/index.js +7 -0
  236. package/dist/components/periodontal-chart-card/index.js.map +1 -0
  237. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
  238. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts.map +1 -0
  239. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
  240. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts.map +1 -0
  241. package/dist/components/practice-results/index.js +1 -1
  242. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  243. package/dist/components/public-header/public-header.d.ts +1 -1
  244. package/dist/components/sign-document/index.js +1 -1
  245. package/dist/components/stat/stat.d.ts +1 -1
  246. package/dist/components/streaming-text/index.js +1 -1
  247. package/dist/components/streaming-text/streaming-text.d.ts.map +1 -1
  248. package/dist/components/transaction-chip/index.js +1 -1
  249. package/dist/components/unit-converter/index.js +1 -1
  250. package/dist/components/workflow/index.js +1 -1
  251. package/dist/i18n/locales/ar.d.ts +366 -0
  252. package/dist/i18n/locales/ar.d.ts.map +1 -1
  253. package/dist/i18n/locales/ar.js +367 -1
  254. package/dist/i18n/locales/ar.js.map +1 -1
  255. package/dist/i18n/locales/de.d.ts +366 -0
  256. package/dist/i18n/locales/de.d.ts.map +1 -1
  257. package/dist/i18n/locales/de.js +367 -1
  258. package/dist/i18n/locales/de.js.map +1 -1
  259. package/dist/i18n/locales/el.d.ts +366 -0
  260. package/dist/i18n/locales/el.d.ts.map +1 -1
  261. package/dist/i18n/locales/el.js +367 -1
  262. package/dist/i18n/locales/el.js.map +1 -1
  263. package/dist/i18n/locales/en.d.ts +366 -0
  264. package/dist/i18n/locales/en.d.ts.map +1 -1
  265. package/dist/i18n/locales/en.js +367 -1
  266. package/dist/i18n/locales/en.js.map +1 -1
  267. package/dist/i18n/locales/es.d.ts +366 -0
  268. package/dist/i18n/locales/es.d.ts.map +1 -1
  269. package/dist/i18n/locales/es.js +367 -1
  270. package/dist/i18n/locales/es.js.map +1 -1
  271. package/dist/i18n/locales/fr.d.ts +366 -0
  272. package/dist/i18n/locales/fr.d.ts.map +1 -1
  273. package/dist/i18n/locales/fr.js +367 -1
  274. package/dist/i18n/locales/fr.js.map +1 -1
  275. package/dist/i18n/locales/hi.d.ts +366 -0
  276. package/dist/i18n/locales/hi.d.ts.map +1 -1
  277. package/dist/i18n/locales/hi.js +367 -1
  278. package/dist/i18n/locales/hi.js.map +1 -1
  279. package/dist/i18n/locales/it.d.ts +366 -0
  280. package/dist/i18n/locales/it.d.ts.map +1 -1
  281. package/dist/i18n/locales/it.js +367 -1
  282. package/dist/i18n/locales/it.js.map +1 -1
  283. package/dist/i18n/locales/ja.d.ts +366 -0
  284. package/dist/i18n/locales/ja.d.ts.map +1 -1
  285. package/dist/i18n/locales/ja.js +367 -1
  286. package/dist/i18n/locales/ja.js.map +1 -1
  287. package/dist/i18n/locales/nl.d.ts +366 -0
  288. package/dist/i18n/locales/nl.d.ts.map +1 -1
  289. package/dist/i18n/locales/nl.js +367 -1
  290. package/dist/i18n/locales/nl.js.map +1 -1
  291. package/dist/i18n/locales/pl.d.ts +366 -0
  292. package/dist/i18n/locales/pl.d.ts.map +1 -1
  293. package/dist/i18n/locales/pl.js +367 -1
  294. package/dist/i18n/locales/pl.js.map +1 -1
  295. package/dist/i18n/locales/pt.d.ts +366 -0
  296. package/dist/i18n/locales/pt.d.ts.map +1 -1
  297. package/dist/i18n/locales/pt.js +367 -1
  298. package/dist/i18n/locales/pt.js.map +1 -1
  299. package/dist/i18n/locales/ro.d.ts +366 -0
  300. package/dist/i18n/locales/ro.d.ts.map +1 -1
  301. package/dist/i18n/locales/ro.js +367 -1
  302. package/dist/i18n/locales/ro.js.map +1 -1
  303. package/dist/i18n/locales/ru.d.ts +366 -0
  304. package/dist/i18n/locales/ru.d.ts.map +1 -1
  305. package/dist/i18n/locales/ru.js +367 -1
  306. package/dist/i18n/locales/ru.js.map +1 -1
  307. package/dist/i18n/locales/sq.d.ts +366 -0
  308. package/dist/i18n/locales/sq.d.ts.map +1 -1
  309. package/dist/i18n/locales/sq.js +367 -1
  310. package/dist/i18n/locales/sq.js.map +1 -1
  311. package/dist/i18n/locales/sv.d.ts +366 -0
  312. package/dist/i18n/locales/sv.d.ts.map +1 -1
  313. package/dist/i18n/locales/sv.js +367 -1
  314. package/dist/i18n/locales/sv.js.map +1 -1
  315. package/dist/i18n/locales/tr.d.ts +366 -0
  316. package/dist/i18n/locales/tr.d.ts.map +1 -1
  317. package/dist/i18n/locales/tr.js +367 -1
  318. package/dist/i18n/locales/tr.js.map +1 -1
  319. package/dist/i18n/locales/zh.d.ts +366 -0
  320. package/dist/i18n/locales/zh.d.ts.map +1 -1
  321. package/dist/i18n/locales/zh.js +367 -1
  322. package/dist/i18n/locales/zh.js.map +1 -1
  323. package/dist/index.js +527 -491
  324. package/dist/index.js.map +1 -1
  325. package/dist/locales/ar.json +367 -1
  326. package/dist/locales/de.json +367 -1
  327. package/dist/locales/el.json +367 -1
  328. package/dist/locales/en.json +367 -1
  329. package/dist/locales/es.json +367 -1
  330. package/dist/locales/fr.json +367 -1
  331. package/dist/locales/hi.json +367 -1
  332. package/dist/locales/it.json +367 -1
  333. package/dist/locales/ja.json +367 -1
  334. package/dist/locales/nl.json +367 -1
  335. package/dist/locales/pl.json +367 -1
  336. package/dist/locales/pt.json +367 -1
  337. package/dist/locales/ro.json +367 -1
  338. package/dist/locales/ru.json +367 -1
  339. package/dist/locales/sq.json +367 -1
  340. package/dist/locales/sv.json +367 -1
  341. package/dist/locales/tr.json +367 -1
  342. package/dist/locales/zh.json +367 -1
  343. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  344. package/dist/patterns/alia-assistant/alia-types.d.ts +76 -0
  345. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  346. package/dist/patterns/alia-assistant/index.js +1 -1
  347. package/dist/tokens.css +1 -1
  348. package/package.json +42 -1
  349. package/dist/_chunks/agenda-card-CFyWSX7Z.js.map +0 -1
  350. package/dist/_chunks/agenda-tray-Dyj9ChHC.js.map +0 -1
  351. package/dist/_chunks/alia-sidebar-Be8FhKYd.js +0 -837
  352. package/dist/_chunks/alia-sidebar-Be8FhKYd.js.map +0 -1
  353. package/dist/_chunks/audio-recorder-C1rhKhSN.js.map +0 -1
  354. package/dist/_chunks/booking-DlDVuWMd.js.map +0 -1
  355. package/dist/_chunks/calendar-YHFknAGv.js.map +0 -1
  356. package/dist/_chunks/chat-message-ASgGtj-L.js.map +0 -1
  357. package/dist/_chunks/contact-profile-card-DHyuAPXM.js.map +0 -1
  358. package/dist/_chunks/dialog-BTpZV6It.js.map +0 -1
  359. package/dist/_chunks/editable-currency-cell-renderer-BEBUQl9P.js.map +0 -1
  360. package/dist/_chunks/insert-result-C5ABnzDl.js.map +0 -1
  361. package/dist/_chunks/message-card-DSPw5ghw.js.map +0 -1
  362. package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
  363. package/dist/_chunks/operator-hero-7LiiP7zi.js.map +0 -1
  364. package/dist/_chunks/pdf-viewer-CWEXTlwq.js.map +0 -1
  365. package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
  366. package/dist/_chunks/shield-check-C73ma9Cs.js.map +0 -1
  367. package/dist/_chunks/streaming-text-GH07yIYh.js.map +0 -1
  368. package/dist/_chunks/workflow-map-BFNpzTiw.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clinical-note-card-BYo437dU.js","sources":["../../node_modules/lucide-react/dist/esm/icons/flag.js","../../node_modules/lucide-react/dist/esm/icons/pin.js","../../src/components/clinical-note-card/clinical-note-card.agent.ts","../../src/components/clinical-note-card/clinical-note-card.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.8.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.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\",\n key: \"1jaruq\"\n }\n ]\n];\nconst Flag = createLucideIcon(\"flag\", __iconNode);\n\nexport { __iconNode, Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-react v1.8.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.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 17v5\", key: \"bb1du9\" }],\n [\n \"path\",\n {\n d: \"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z\",\n key: \"1nkz8b\"\n }\n ]\n];\nconst Pin = createLucideIcon(\"pin\", __iconNode);\n\nexport { __iconNode, Pin as default };\n//# sourceMappingURL=pin.js.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — ClinicalNoteCard. */\n/* */\n/* Read-only presentation surface. Exposes the note's id + structural */\n/* flags (pinned / flagged / attachment kind) so a future MCP UI bridge */\n/* can locate and describe a rendered note. NEVER reads the note body or */\n/* any author identity — those are PHI and stay out of the agent layer. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ClinicalNoteCardHandle } from './clinical-note-card';\n\nexport const clinicalNoteCardAgent: AgentAdapter<ClinicalNoteCardHandle> = {\n id: 'clinical-note-card',\n capabilities: [],\n state: {\n noteId: {\n type: 'string | undefined',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.noteId',\n description: 'Stable identifier of the rendered note, when supplied.',\n read: (handle) => handle.getNoteId(),\n },\n pinned: {\n type: 'boolean',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.pinned',\n description: 'Whether the note is pinned to the top of the timeline.',\n read: (handle) => handle.isPinned(),\n },\n flagged: {\n type: 'boolean',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.flagged',\n description: 'Whether the note is flagged for follow-up.',\n read: (handle) => handle.isFlagged(),\n },\n attachmentKind: {\n type: \"'patient' | 'carePlan' | 'carePlanEntry' | 'phase' | 'xray' | undefined\",\n descriptionKey: 'ui.agent.clinicalNoteCard.state.attachmentKind',\n description:\n 'Structural kind the note is attached to. Never the attachment identity or content.',\n read: (handle) => handle.getAttachmentKind(),\n },\n },\n actions: {},\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'clinical-note-card',\n description:\n 'Marks the ClinicalNoteCard root. Also emits data-pinned / data-flagged / data-attached-to structural hooks.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop — addresses a specific note.',\n },\n },\n};\n","import {\n forwardRef,\n useId,\n useMemo,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Flag, Pin, FileText, Layers, ScanLine, User } from 'lucide-react';\nimport { Avatar } from '../avatar/avatar';\nimport { Badge } from '../badge/badge';\nimport { Card } from '../card/card';\nimport { Link } from '../link/link';\nimport { Timestamp } from '../timestamp';\nimport { SafeHtml } from '../_shared/safe-html';\nimport { isSafeEntityUrl } from '../_shared/is-safe-url';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { clinicalNoteCardAgent } from './clinical-note-card.agent';\n\n/* -------------------------------------------------------------------- */\n/* ClinicalNoteCard */\n/* */\n/* A single clinical note — the free-text annotation an operator writes */\n/* against a patient, care plan, treatment phase, or x-ray. Replaces the */\n/* bespoke \"nota clinica\" rows scattered across the platform patient */\n/* timeline. Composes Card + Avatar (author) + Timestamp + Badge/Tag */\n/* (clinical / pinned / flagged) + Link (attachment) and renders the */\n/* markdown body through the shared SafeHtml helper — the only sanctioned */\n/* carrier of dangerouslySetInnerHTML (constraint §8). */\n/* */\n/* All visible text flows through useTranslation('ui') against the */\n/* `clinicalNoteCard.*` namespace. No PHI is read by the agent adapter — */\n/* only the note id and structural flags are exposed. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\n/** Author identity — drives the avatar + visible byline. */\nexport interface ClinicalNoteAuthor {\n /** Display name. */\n name: string;\n /** Optional avatar image URL. */\n avatarUrl?: string;\n}\n\n/**\n * What the note is attached to. Discriminated by `kind`:\n * - `patient` — a free-standing note on the patient record.\n * - `carePlan` — attached to a care plan (estimate / treatment plan),\n * identified by its number, with an optional deep link.\n * - `carePlanEntry` — attached to one entry inside a care plan, naming the\n * care and (optionally) the listed elements.\n * - `phase` — attached to a treatment phase, labelled.\n * - `xray` — attached to an x-ray / radiograph, optionally labelled.\n */\nexport type NoteAttachment =\n | { kind: 'patient' }\n | { kind: 'carePlan'; number: string; url?: string }\n | { kind: 'carePlanEntry'; careName: string; elements?: string[] }\n | { kind: 'phase'; label: string }\n | { kind: 'xray'; label?: string };\n\n/** Imperative handle exposed to the agent runtime — identifiers / flags only. */\nexport interface ClinicalNoteCardHandle {\n /** The note's stable id, when supplied. */\n getNoteId: () => string | undefined;\n /** Whether the note is currently pinned. */\n isPinned: () => boolean;\n /** Whether the note is currently flagged. */\n isFlagged: () => boolean;\n /** The attachment kind the note is bound to. */\n getAttachmentKind: () => NoteAttachment['kind'] | undefined;\n}\n\nexport interface ClinicalNoteCardProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'aria-label' | 'children' | 'content' | 'title'\n> {\n /** Agent-readiness consumer id, surfaced as `data-component-id`. */\n id?: string;\n /**\n * ISO-8601 timestamp the note refers to (the clinical date). Drives the\n * primary `<Timestamp>`.\n */\n dateIso: string;\n /**\n * ISO-8601 timestamp the note was authored, when it differs from\n * `dateIso`. Rendered as a secondary \"added\" line.\n */\n createdAtIso?: string;\n /** Author identity — avatar + byline. Optional for system notes. */\n author?: ClinicalNoteAuthor;\n /**\n * Whether this is a clinical note (vs. an administrative one). When true a\n * \"Clinical\" badge is shown so the note's nature is unambiguous at a glance.\n */\n clinical?: boolean;\n /** What the note is attached to — drives a contextual chip + optional link. */\n attachedTo?: NoteAttachment;\n /**\n * The note body, authored in a small, safe subset of Markdown (bold,\n * italic, inline code, links, line breaks, simple lists). Rendered through\n * the shared `SafeHtml` helper with the `markdown` sanitiser profile —\n * raw HTML and unsafe link schemes are stripped.\n */\n content: string;\n /** Pin the note to the top of a timeline — shows a \"Pinned\" chip. */\n pinned?: boolean;\n /** Flag the note for follow-up / attention — shows a \"Flagged\" chip. */\n flagged?: boolean;\n /** Clamp the rendered body to a few lines. */\n truncate?: boolean;\n /**\n * `'elevated'` (default) wraps the note in `<Card variant=\"elevated\">`.\n * `'flat'` drops the chrome for use inside an existing Card / timeline rail.\n */\n surface?: 'flat' | 'elevated';\n /** Override the default region aria-label. */\n 'aria-label'?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA — root */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva('ds:w-full ds:text-[color:var(--foreground)]', {\n variants: {\n surface: { flat: '', elevated: '' },\n },\n defaultVariants: { surface: 'elevated' },\n});\n\n/* Body clamp — applied only when `truncate` is set. Logical-safe. */\nconst bodyVariants = cva(\n [\n 'type-body-sm ds:text-[color:var(--foreground)]',\n 'ds:break-words',\n '[&_a]:ds:underline [&_a]:ds:underline-offset-2',\n '[&_code]:ds:rounded-[var(--radius-sm)] [&_code]:ds:bg-muted/30 [&_code]:ds:ps-[var(--spacing-xs)] [&_code]:ds:pe-[var(--spacing-xs)] [&_code]:ds:font-[family-name:var(--font-mono)]',\n '[&_p]:ds:m-0 [&_p+p]:ds:mt-[var(--spacing-sm)]',\n '[&_ul]:ds:m-0 [&_ul]:ds:ps-[var(--spacing-md)] [&_ol]:ds:m-0 [&_ol]:ds:ps-[var(--spacing-md)]',\n ].join(' '),\n {\n variants: {\n truncate: {\n true: 'ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:4]',\n false: '',\n },\n },\n defaultVariants: { truncate: false },\n },\n);\n\n/* -------------------------------------------------------------------- */\n/* Markdown → safe HTML */\n/* */\n/* A dependency-free converter for the small Markdown subset the note */\n/* body supports. The output is then passed to `SafeHtml` (markdown */\n/* profile) which strips everything outside the allow-list — so even a */\n/* hostile note can only ever emit the sanitised tag set. We never call */\n/* dangerouslySetInnerHTML ourselves; SafeHtml is the single carrier. */\n/* -------------------------------------------------------------------- */\n\n/** HTML-escape a raw text run before re-inserting our own safe markup. */\nfunction escapeHtml(input: string): string {\n return input\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;');\n}\n\n/** Apply inline markdown (bold, italic, code, links) to an escaped run. */\nfunction renderInlineHtml(escaped: string): string {\n let out = escaped;\n // Inline code first so its contents aren't re-processed.\n out = out.replace(/`([^`]+)`/g, '<code>$1</code>');\n out = out.replace(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>');\n out = out.replace(/\\*([^*]+)\\*/g, '<em>$1</em>');\n // Links — the href is left as-authored; SafeHtml's markdown profile\n // rejects any scheme outside http(s)/mailto/tel at sanitise time.\n out = out.replace(\n /\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>',\n );\n return out;\n}\n\n/** Convert the supported Markdown subset into an HTML string. */\nfunction markdownToHtml(input: string): string {\n const blocks = input.split(/\\n{2,}/);\n return blocks\n .map((block) => {\n const lines = block.split('\\n');\n const isUnordered = lines.every((l) => /^\\s*[-*]\\s+/.test(l));\n const isOrdered = lines.every((l) => /^\\s*\\d+\\.\\s+/.test(l));\n if (isUnordered && lines.length > 0) {\n const items = lines\n .map((l) => l.replace(/^\\s*[-*]\\s+/, ''))\n .map((l) => `<li>${renderInlineHtml(escapeHtml(l))}</li>`)\n .join('');\n return `<ul>${items}</ul>`;\n }\n if (isOrdered && lines.length > 0) {\n const items = lines\n .map((l) => l.replace(/^\\s*\\d+\\.\\s+/, ''))\n .map((l) => `<li>${renderInlineHtml(escapeHtml(l))}</li>`)\n .join('');\n return `<ol>${items}</ol>`;\n }\n const paragraph = renderInlineHtml(escapeHtml(block)).replace(\n /\\n/g,\n '<br />',\n );\n return `<p>${paragraph}</p>`;\n })\n .join('');\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const ClinicalNoteCard = forwardRef<\n HTMLDivElement,\n ClinicalNoteCardProps\n>(\n (\n {\n id,\n dateIso,\n createdAtIso,\n author,\n clinical,\n attachedTo,\n content,\n pinned,\n flagged,\n truncate = false,\n surface = 'elevated',\n 'aria-label': ariaLabel,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const headingId = useId();\n\n const bodyHtml = useMemo(() => markdownToHtml(content), [content]);\n\n const resolvedAriaLabel = ariaLabel ?? t('clinicalNoteCard.regionLabel');\n\n useAgentRegistration(\n clinicalNoteCardAgent,\n {\n getNoteId: () => id,\n isPinned: () => !!pinned,\n isFlagged: () => !!flagged,\n getAttachmentKind: () => attachedTo?.kind,\n },\n id,\n );\n\n /* ----- Attachment chip / link ----- */\n let attachmentNode: ReactNode = null;\n if (attachedTo) {\n switch (attachedTo.kind) {\n case 'patient':\n attachmentNode = (\n <Badge\n variant=\"neutral\"\n size=\"sm\"\n leading={<User aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.attachment.patient')}\n </Badge>\n );\n break;\n case 'carePlan': {\n const label = t('clinicalNoteCard.attachment.carePlan', {\n number: attachedTo.number,\n });\n attachmentNode =\n attachedTo.url && isSafeEntityUrl(attachedTo.url) ? (\n <Link\n href={attachedTo.url}\n intent=\"default\"\n startIcon={<FileText aria-hidden=\"true\" />}\n >\n {label}\n </Link>\n ) : (\n <Badge\n variant=\"info\"\n size=\"sm\"\n leading={<FileText aria-hidden=\"true\" />}\n >\n {label}\n </Badge>\n );\n break;\n }\n case 'carePlanEntry': {\n const label =\n attachedTo.elements && attachedTo.elements.length > 0\n ? t('clinicalNoteCard.attachment.carePlanEntryWithElements', {\n care: attachedTo.careName,\n elements: attachedTo.elements.join(', '),\n })\n : t('clinicalNoteCard.attachment.carePlanEntry', {\n care: attachedTo.careName,\n });\n attachmentNode = (\n <Badge\n variant=\"info\"\n size=\"sm\"\n leading={<FileText aria-hidden=\"true\" />}\n >\n {label}\n </Badge>\n );\n break;\n }\n case 'phase':\n attachmentNode = (\n <Badge\n variant=\"neutral\"\n size=\"sm\"\n leading={<Layers aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.attachment.phase', {\n label: attachedTo.label,\n })}\n </Badge>\n );\n break;\n case 'xray':\n attachmentNode = (\n <Badge\n variant=\"neutral\"\n size=\"sm\"\n leading={<ScanLine aria-hidden=\"true\" />}\n >\n {attachedTo.label\n ? t('clinicalNoteCard.attachment.xrayWithLabel', {\n label: attachedTo.label,\n })\n : t('clinicalNoteCard.attachment.xray')}\n </Badge>\n );\n break;\n }\n }\n\n const inner = (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n {/* Header: author + date + status chips */}\n <div className=\"ds:flex ds:items-start ds:gap-[var(--spacing-sm)]\">\n {author ? (\n <Avatar\n name={author.name}\n src={author.avatarUrl}\n size=\"sm\"\n className=\"ds:shrink-0\"\n aria-hidden=\"true\"\n role=\"presentation\"\n aria-label={undefined}\n />\n ) : null}\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n {author ? (\n <span\n id={headingId}\n className=\"type-title-item ds:text-[color:var(--foreground)] ds:truncate\"\n >\n {author.name}\n </span>\n ) : (\n <span id={headingId} className=\"ds:sr-only\">\n {resolvedAriaLabel}\n </span>\n )}\n <span className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-x-[var(--spacing-xs)] ds:gap-y-[var(--spacing-2xs)]\">\n <Timestamp value={dateIso} shape=\"bare\" size=\"sm\" />\n {createdAtIso && createdAtIso !== dateIso ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)]\">\n {t('clinicalNoteCard.added')}{' '}\n <Timestamp value={createdAtIso} shape=\"bare\" size=\"sm\" />\n </span>\n ) : null}\n </span>\n </div>\n {pinned || flagged || clinical ? (\n <span className=\"ds:ms-auto ds:flex ds:shrink-0 ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-2xs)]\">\n {clinical ? (\n <Badge variant=\"brand\" size=\"sm\">\n {t('clinicalNoteCard.clinical')}\n </Badge>\n ) : null}\n {pinned ? (\n <Badge\n variant=\"accent\"\n size=\"sm\"\n leading={<Pin aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.pinned')}\n </Badge>\n ) : null}\n {flagged ? (\n <Badge\n variant=\"warning\"\n size=\"sm\"\n leading={<Flag aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.flagged')}\n </Badge>\n ) : null}\n </span>\n ) : null}\n </div>\n\n {/* Body — markdown rendered via the sanctioned SafeHtml carrier. */}\n <SafeHtml\n html={bodyHtml}\n profile=\"markdown\"\n className={bodyVariants({ truncate })}\n />\n\n {/* Attachment context */}\n {attachmentNode ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {attachmentNode}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <div\n ref={ref}\n role=\"article\"\n aria-label={resolvedAriaLabel}\n aria-labelledby={headingId}\n data-component=\"clinical-note-card\"\n data-component-id={id}\n data-pinned={pinned ? 'true' : undefined}\n data-flagged={flagged ? 'true' : undefined}\n data-attached-to={attachedTo?.kind}\n id={id}\n className={rootVariants({ surface, className })}\n {...rest}\n >\n {surface === 'elevated' ? (\n <Card variant=\"elevated\">\n <Card.Body>{inner}</Card.Body>\n </Card>\n ) : (\n inner\n )}\n </div>\n );\n },\n);\n\nClinicalNoteCard.displayName = 'ClinicalNoteCard';\n\n/** Re-export of the surface variant union for downstream typing. */\nexport type ClinicalNoteCardSurface = NonNullable<\n VariantProps<typeof rootVariants>['surface']\n>;\n"],"names":["__iconNode","Flag","createLucideIcon","Pin","clinicalNoteCardAgent","handle","rootVariants","cva","bodyVariants","escapeHtml","input","renderInlineHtml","escaped","out","markdownToHtml","block","lines","isUnordered","isOrdered","l","ClinicalNoteCard","forwardRef","id","dateIso","createdAtIso","author","clinical","attachedTo","content","pinned","flagged","truncate","surface","ariaLabel","className","rest","ref","t","useTranslation","headingId","useId","bodyHtml","useMemo","resolvedAriaLabel","useAgentRegistration","attachmentNode","jsx","Badge","User","label","isSafeEntityUrl","Link","FileText","Layers","ScanLine","inner","jsxs","Avatar","Timestamp","SafeHtml","Card"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,106 @@
1
+ import { jsxs as m, jsx as a } from "react/jsx-runtime";
2
+ import { forwardRef as u, useState as g, useCallback as x } from "react";
3
+ import { c as h } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as b } from "react-i18next";
5
+ import { I as y } from "./icon-button-CKEOrN37.js";
6
+ import { C } from "./check-DPdL_Sm7.js";
7
+ import { C as k } from "./copy-B00HK7tj.js";
8
+ function F(e) {
9
+ const s = [], t = /```([^\n`]*)\n([\s\S]*?)(?:\n?```|$)/g;
10
+ let o = 0, r;
11
+ for (; (r = t.exec(e)) !== null; )
12
+ r.index > o && s.push({ type: "text", value: e.slice(o, r.index) }), s.push({
13
+ type: "code",
14
+ lang: r[1].trim() || void 0,
15
+ value: r[2]
16
+ }), o = t.lastIndex;
17
+ return o < e.length && s.push({ type: "text", value: e.slice(o) }), s;
18
+ }
19
+ const w = h(
20
+ [
21
+ "ds:my-[var(--spacing-sm)] ds:overflow-hidden",
22
+ "ds:rounded-[var(--radius-md)] ds:border ds:border-[color:var(--border)]",
23
+ "ds:bg-[var(--muted)]"
24
+ ].join(" ")
25
+ ), B = u(
26
+ ({ code: e, language: s, showCopy: t = !0, className: o, ...r }, f) => {
27
+ var l;
28
+ const { t: d } = b(), [n, i] = g(!1), c = t && typeof navigator < "u" && typeof ((l = navigator.clipboard) == null ? void 0 : l.writeText) == "function", v = x(() => {
29
+ var p;
30
+ (p = navigator.clipboard) == null || p.writeText(e).then(() => {
31
+ i(!0), setTimeout(() => i(!1), 2e3);
32
+ }).catch(() => {
33
+ });
34
+ }, [e]);
35
+ return /* @__PURE__ */ m(
36
+ "div",
37
+ {
38
+ ref: f,
39
+ "data-component": "code-block",
40
+ className: [w(), o].filter(Boolean).join(" "),
41
+ ...r,
42
+ children: [
43
+ s || c ? /* @__PURE__ */ m(
44
+ "div",
45
+ {
46
+ className: [
47
+ "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]",
48
+ "ds:border-b ds:border-[color:var(--border)]",
49
+ "ds:bg-[color-mix(in_srgb,var(--muted-foreground)_8%,transparent)]",
50
+ "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-xs)]",
51
+ "ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]"
52
+ ].join(" "),
53
+ children: [
54
+ /* @__PURE__ */ a(
55
+ "span",
56
+ {
57
+ dir: "ltr",
58
+ className: "type-meta ds:text-[color:var(--muted-foreground)]",
59
+ children: s ?? ""
60
+ }
61
+ ),
62
+ c ? /* @__PURE__ */ a(
63
+ y,
64
+ {
65
+ icon: n ? /* @__PURE__ */ a(C, {}) : /* @__PURE__ */ a(k, {}),
66
+ "aria-label": d(n ? "codeBlock.copied" : "codeBlock.copy"),
67
+ intent: "ghost",
68
+ size: "sm",
69
+ onClick: v
70
+ }
71
+ ) : null
72
+ ]
73
+ }
74
+ ) : null,
75
+ /* @__PURE__ */ a(
76
+ "pre",
77
+ {
78
+ tabIndex: 0,
79
+ className: "ds:m-0 ds:overflow-x-auto ds:p-[var(--spacing-md)]",
80
+ children: /* @__PURE__ */ a(
81
+ "code",
82
+ {
83
+ dir: "ltr",
84
+ className: [
85
+ "ds:font-[family-name:var(--font-mono)]",
86
+ "ds:text-[length:var(--font-size-sm)] ds:leading-relaxed",
87
+ "ds:text-[color:var(--foreground)]",
88
+ "ds:whitespace-pre"
89
+ ].join(" "),
90
+ children: e
91
+ }
92
+ )
93
+ }
94
+ ),
95
+ /* @__PURE__ */ a("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: n ? d("codeBlock.copied") : "" })
96
+ ]
97
+ }
98
+ );
99
+ }
100
+ );
101
+ B.displayName = "CodeBlock";
102
+ export {
103
+ B as C,
104
+ F as s
105
+ };
106
+ //# sourceMappingURL=code-block-HoddNOKJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-HoddNOKJ.js","sources":["../../src/components/_shared/code-block.tsx"],"sourcesContent":["/**\n * Shared fenced-code-block renderer for the chat markdown path.\n *\n * `splitCodeFences` slices a markdown string into plain-text and fenced-code\n * segments so `ChatMessage` / `StreamingText` can keep their existing inline\n * tokenizers for the text runs and render `<CodeBlock>` for the code runs.\n * It tolerates an UNTERMINATED trailing fence — the streaming case, where the\n * closing ``` has not arrived yet — so a prompt renders as a code block as it\n * streams in.\n *\n * `CodeBlock` renders the code in a scrollable monospace surface with a Copy\n * affordance (clipboard + a brief \"Copied\" confirmation, graceful no-op when\n * the clipboard API is unavailable). No `dangerouslySetInnerHTML`.\n */\nimport { forwardRef, useCallback, useState, type HTMLAttributes } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Check, Copy } from 'lucide-react';\nimport { IconButton } from '../button';\n\n/* ------------------------------------------------------------------ */\n/* splitCodeFences */\n/* ------------------------------------------------------------------ */\n\nexport type MarkdownSegment =\n | { type: 'text'; value: string }\n | { type: 'code'; lang?: string; value: string };\n\n/**\n * Split markdown into text + fenced-code segments. Matches an opening\n * ` ```lang\\n `, lazy content, then either a closing ` \\n``` ` on its own line\n * or end-of-input (the unterminated streaming case).\n */\nexport function splitCodeFences(input: string): MarkdownSegment[] {\n const segments: MarkdownSegment[] = [];\n // `\\n?` before the closing fence so an EMPTY block (```ts\\n```) closes\n // correctly rather than swallowing its own closing backticks as content.\n const fence = /```([^\\n`]*)\\n([\\s\\S]*?)(?:\\n?```|$)/g;\n let last = 0;\n let m: RegExpExecArray | null;\n while ((m = fence.exec(input)) !== null) {\n if (m.index > last) {\n segments.push({ type: 'text', value: input.slice(last, m.index) });\n }\n segments.push({\n type: 'code',\n lang: m[1].trim() || undefined,\n value: m[2],\n });\n last = fence.lastIndex;\n }\n if (last < input.length) {\n segments.push({ type: 'text', value: input.slice(last) });\n }\n return segments;\n}\n\n/* ------------------------------------------------------------------ */\n/* CodeBlock */\n/* ------------------------------------------------------------------ */\n\nconst codeBlockVariants = cva(\n [\n 'ds:my-[var(--spacing-sm)] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[color:var(--border)]',\n 'ds:bg-[var(--muted)]',\n ].join(' '),\n);\n\nexport interface CodeBlockProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children'\n> {\n /** Raw code text. */\n code: string;\n /** Optional info string after the opening fence (e.g. `ts`, `bash`). */\n language?: string;\n /** Render the Copy affordance. Default `true`. */\n showCopy?: boolean;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, showCopy = true, className, ...rest }, ref) => {\n const { t } = useTranslation();\n const [copied, setCopied] = useState(false);\n\n const canCopy =\n showCopy &&\n typeof navigator !== 'undefined' &&\n typeof navigator.clipboard?.writeText === 'function';\n\n const handleCopy = useCallback(() => {\n navigator.clipboard\n ?.writeText(code)\n .then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n })\n .catch(() => {\n // Clipboard blocked (insecure context / permissions) — graceful no-op.\n });\n }, [code]);\n\n return (\n <div\n ref={ref}\n data-component=\"code-block\"\n className={[codeBlockVariants(), className].filter(Boolean).join(' ')}\n {...rest}\n >\n {language || canCopy ? (\n <div\n className={[\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]',\n 'ds:border-b ds:border-[color:var(--border)]',\n 'ds:bg-[color-mix(in_srgb,var(--muted-foreground)_8%,transparent)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-xs)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n ].join(' ')}\n >\n <span\n dir=\"ltr\"\n className=\"type-meta ds:text-[color:var(--muted-foreground)]\"\n >\n {language ?? ''}\n </span>\n {canCopy ? (\n <IconButton\n icon={copied ? <Check /> : <Copy />}\n aria-label={\n copied ? t('codeBlock.copied') : t('codeBlock.copy')\n }\n intent=\"ghost\"\n size=\"sm\"\n onClick={handleCopy}\n />\n ) : null}\n </div>\n ) : null}\n {/* eslint-disable jsx-a11y/no-noninteractive-tabindex --\n the scrollable <pre> must be keyboard-focusable so keyboard users\n can scroll the overflow (axe scrollable-region-focusable); the\n browser default focus ring satisfies WCAG 2.4.7. */}\n <pre\n tabIndex={0}\n className=\"ds:m-0 ds:overflow-x-auto ds:p-[var(--spacing-md)]\"\n >\n <code\n dir=\"ltr\"\n className={[\n 'ds:font-[family-name:var(--font-mono)]',\n 'ds:text-[length:var(--font-size-sm)] ds:leading-relaxed',\n 'ds:text-[color:var(--foreground)]',\n 'ds:whitespace-pre',\n ].join(' ')}\n >\n {code}\n </code>\n </pre>\n {/* eslint-enable jsx-a11y/no-noninteractive-tabindex */}\n {/* Polite status so AT confirms the copy without moving focus. */}\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {copied ? t('codeBlock.copied') : ''}\n </span>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = 'CodeBlock';\n"],"names":["splitCodeFences","input","segments","fence","last","m","codeBlockVariants","cva","CodeBlock","forwardRef","code","language","showCopy","className","rest","ref","t","useTranslation","copied","setCopied","useState","canCopy","_a","handleCopy","useCallback","jsxs","jsx","IconButton","Check","Copy"],"mappings":"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"}
@@ -1,19 +1,21 @@
1
- import { jsxs as u, jsx as e, Fragment as R } from "react/jsx-runtime";
2
- import { forwardRef as ce, useId as se, useMemo as de } from "react";
3
- import { c as pe } from "./index-D2ZczOXr.js";
4
- import { useTranslation as ue } from "react-i18next";
5
- import { B as S } from "./badge-zsf5i5bH.js";
1
+ import { jsxs as f, jsx as e, Fragment as S } from "react/jsx-runtime";
2
+ import { forwardRef as le, useId as ce, useMemo as se } from "react";
3
+ import { c as de } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as pe } from "react-i18next";
5
+ import { B as _ } from "./badge-zsf5i5bH.js";
6
6
  import { C as F } from "./card-DPmk26CL.js";
7
- import { K as fe, a as me } from "./key-value-pair-CkQIb9EG.js";
7
+ import { K as fe, a as ue } from "./key-value-pair-CkQIb9EG.js";
8
8
  import { L as d } from "./link-DrD_cRUg.js";
9
- import { u as he } from "./registry-nPAVE19X.js";
9
+ import { u as me } from "./registry-nPAVE19X.js";
10
10
  import { S as T } from "./stethoscope-DT5qCW8Y.js";
11
11
  import { H } from "./heart-C0faivFf.js";
12
- import { c as V } from "./createLucideIcon-CrFbzy84.js";
13
- import { S as z, L as O } from "./shield-check-C73ma9Cs.js";
14
- import { G as E } from "./globe-BkEFMNSg.js";
15
- import { M as K } from "./mail-C8irm52s.js";
16
- import { M as L } from "./message-circle-C23eicgb.js";
12
+ import { c as he } from "./createLucideIcon-CrFbzy84.js";
13
+ import { S as V } from "./shield-check-BjCGH_Sr.js";
14
+ import { L as z } from "./languages-DsVf_WzT.js";
15
+ import { G as O } from "./globe-BkEFMNSg.js";
16
+ import { M as E } from "./mail-C8irm52s.js";
17
+ import { M as K } from "./message-circle-C23eicgb.js";
18
+ import { P as L } from "./phone-Bi5yUm4I.js";
17
19
  import { M as U } from "./map-pin-B8STOPMJ.js";
18
20
  /**
19
21
  * @license lucide-react v1.8.0 - ISC
@@ -25,22 +27,7 @@ const ge = [
25
27
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
26
28
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
27
29
  ["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
28
- ], j = V("banknote", ge);
29
- /**
30
- * @license lucide-react v1.8.0 - ISC
31
- *
32
- * This source code is licensed under the ISC license.
33
- * See the LICENSE file in the root directory of this source tree.
34
- */
35
- const ve = [
36
- [
37
- "path",
38
- {
39
- d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
40
- key: "9njp5v"
41
- }
42
- ]
43
- ], B = V("phone", ve), xe = {
30
+ ], B = he("banknote", ge), ve = {
44
31
  id: "contact-profile-card",
45
32
  capabilities: ["view_change"],
46
33
  state: {
@@ -64,7 +51,7 @@ const ve = [
64
51
  description: "Sourced from the id prop."
65
52
  }
66
53
  }
67
- }, ye = pe(
54
+ }, xe = de(
68
55
  "ds:w-full ds:text-[color:var(--foreground)] ds:[--key-value-pair-icon-color:var(--accent)]",
69
56
  {
70
57
  variants: {
@@ -87,10 +74,10 @@ function be(t, r) {
87
74
  const a = `https://wa.me/${t}`;
88
75
  return r ? `${a}?text=${encodeURIComponent(r)}` : a;
89
76
  }
90
- function Pe(t) {
77
+ function ye(t) {
91
78
  return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(t.line)}`;
92
79
  }
93
- function ke(t, r, a) {
80
+ function Pe(t, r, a) {
94
81
  try {
95
82
  return new Intl.NumberFormat(a, {
96
83
  style: "currency",
@@ -100,17 +87,17 @@ function ke(t, r, a) {
100
87
  return (t / 100).toFixed(2);
101
88
  }
102
89
  }
103
- function we() {
90
+ function ke() {
104
91
  if (typeof document > "u") return "4945a3";
105
92
  const t = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), r = /^#?([0-9a-fA-F]{6})$/.exec(t);
106
93
  return r ? r[1] : "4945a3";
107
94
  }
108
- function Me({ apiKey: t, center: r, zoom: a, altText: c }) {
109
- const s = we(), f = `https://maps.googleapis.com/maps/api/staticmap?center=${r.lat},${r.lng}&zoom=${a}&size=640x192&scale=2&markers=color:0x${s}%7C${r.lat},${r.lng}&key=${encodeURIComponent(t)}`;
95
+ function we({ apiKey: t, center: r, zoom: a, altText: c }) {
96
+ const s = ke(), u = `https://maps.googleapis.com/maps/api/staticmap?center=${r.lat},${r.lng}&zoom=${a}&size=640x192&scale=2&markers=color:0x${s}%7C${r.lat},${r.lng}&key=${encodeURIComponent(t)}`;
110
97
  return /* @__PURE__ */ e(
111
98
  "img",
112
99
  {
113
- src: f,
100
+ src: u,
114
101
  alt: c,
115
102
  loading: "lazy",
116
103
  decoding: "async",
@@ -120,157 +107,157 @@ function Me({ apiKey: t, center: r, zoom: a, altText: c }) {
120
107
  }
121
108
  );
122
109
  }
123
- const $e = ce(
110
+ const Me = le(
124
111
  ({
125
112
  heading: t,
126
113
  description: r,
127
114
  address: a,
128
115
  phone: c,
129
116
  whatsappNumber: s,
130
- whatsappMessage: f,
117
+ whatsappMessage: u,
131
118
  email: m,
132
119
  website: h,
133
120
  languages: g,
134
121
  languageLabels: p,
135
122
  insurances: v,
136
123
  firstVisitPriceCents: x,
137
- currencyCode: b = "EUR",
138
- profession: y,
124
+ currencyCode: y = "EUR",
125
+ profession: C,
139
126
  specializedInFearPatients: G,
140
127
  googleMapsApiKey: P,
141
- mapZoom: q = 14,
142
- onPhoneClick: W,
143
- onWhatsAppClick: D,
144
- onMapClick: Y,
145
- onEmailClick: J,
146
- headerSlot: Q,
147
- footerSlot: X,
148
- mapSlot: Z,
128
+ mapZoom: j = 14,
129
+ onPhoneClick: q,
130
+ onWhatsAppClick: W,
131
+ onMapClick: D,
132
+ onEmailClick: Y,
133
+ headerSlot: J,
134
+ footerSlot: Q,
135
+ mapSlot: X,
149
136
  surface: k = "elevated",
150
- "aria-label": ee,
151
- id: C,
152
- className: ae,
153
- ...te
154
- }, re) => {
155
- const { t: n, i18n: w } = ue(), M = se(), $ = w.language ?? "en", A = t ?? n("contactProfileCard.heading"), ne = ee ?? A, N = de(() => {
137
+ "aria-label": Z,
138
+ id: b,
139
+ className: ee,
140
+ ...ae
141
+ }, te) => {
142
+ const { t: n, i18n: w } = pe(), M = ce(), $ = w.language ?? "en", N = t ?? n("contactProfileCard.heading"), re = Z ?? N, A = se(() => {
156
143
  if (x != null)
157
- return ke(x, b, $);
158
- }, [x, b, $]), o = [];
144
+ return Pe(x, y, $);
145
+ }, [x, y, $]), o = [];
159
146
  if (a && o.push({
160
147
  key: "address",
161
148
  icon: /* @__PURE__ */ e(U, { "aria-hidden": "true" }),
162
149
  label: n("contactProfileCard.label.address"),
163
- value: /* @__PURE__ */ u("span", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
150
+ value: /* @__PURE__ */ f("span", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
164
151
  /* @__PURE__ */ e("span", { children: a.line }),
165
152
  a.lat != null && a.lng != null ? /* @__PURE__ */ e(
166
153
  d,
167
154
  {
168
- href: Pe(a),
155
+ href: ye(a),
169
156
  external: !0,
170
157
  intent: "default",
171
- onClick: Y,
158
+ onClick: D,
172
159
  children: n("contactProfileCard.openInGoogleMaps")
173
160
  }
174
161
  ) : null
175
162
  ] })
176
163
  }), c && o.push({
177
164
  key: "phone",
178
- icon: /* @__PURE__ */ e(B, { "aria-hidden": "true" }),
165
+ icon: /* @__PURE__ */ e(L, { "aria-hidden": "true" }),
179
166
  label: n("contactProfileCard.label.phone"),
180
167
  value: /* @__PURE__ */ e(
181
168
  d,
182
169
  {
183
170
  href: `tel:${Ce(c)}`,
184
171
  intent: "default",
185
- onClick: W,
172
+ onClick: q,
186
173
  children: c
187
174
  }
188
175
  )
189
176
  }), s && o.push({
190
177
  key: "whatsapp",
191
- icon: /* @__PURE__ */ e(L, { "aria-hidden": "true" }),
178
+ icon: /* @__PURE__ */ e(K, { "aria-hidden": "true" }),
192
179
  label: n("contactProfileCard.label.whatsapp"),
193
180
  value: /* @__PURE__ */ e(
194
181
  d,
195
182
  {
196
- href: be(s, f),
183
+ href: be(s, u),
197
184
  external: !0,
198
185
  intent: "default",
199
- onClick: D,
186
+ onClick: W,
200
187
  children: s
201
188
  }
202
189
  )
203
190
  }), m && o.push({
204
191
  key: "email",
205
- icon: /* @__PURE__ */ e(K, { "aria-hidden": "true" }),
192
+ icon: /* @__PURE__ */ e(E, { "aria-hidden": "true" }),
206
193
  label: n("contactProfileCard.label.email"),
207
194
  value: /* @__PURE__ */ e(
208
195
  d,
209
196
  {
210
197
  href: `mailto:${m}`,
211
198
  intent: "default",
212
- onClick: J,
199
+ onClick: Y,
213
200
  children: m
214
201
  }
215
202
  )
216
203
  }), h && o.push({
217
204
  key: "website",
218
- icon: /* @__PURE__ */ e(E, { "aria-hidden": "true" }),
205
+ icon: /* @__PURE__ */ e(O, { "aria-hidden": "true" }),
219
206
  label: n("contactProfileCard.label.website"),
220
207
  value: /* @__PURE__ */ e(d, { href: h, external: !0, intent: "default", children: h })
221
208
  }), g && g.length > 0) {
222
209
  const i = (l) => {
223
210
  if (p != null && p[l]) return p[l];
224
- const I = `languages.${l}`;
225
- return w.exists(I) ? n(I) : l.toUpperCase();
211
+ const R = `languages.${l}`;
212
+ return w.exists(R) ? n(R) : l.toUpperCase();
226
213
  };
227
214
  o.push({
228
215
  key: "languages",
229
- icon: /* @__PURE__ */ e(O, { "aria-hidden": "true" }),
216
+ icon: /* @__PURE__ */ e(z, { "aria-hidden": "true" }),
230
217
  label: n("contactProfileCard.label.languages"),
231
- value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: g.map((l) => /* @__PURE__ */ e(S, { variant: "neutral", children: i(l) }, l)) })
218
+ value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: g.map((l) => /* @__PURE__ */ e(_, { variant: "neutral", children: i(l) }, l)) })
232
219
  });
233
220
  }
234
221
  v && v.length > 0 && o.push({
235
222
  key: "insurances",
236
- icon: /* @__PURE__ */ e(z, { "aria-hidden": "true" }),
223
+ icon: /* @__PURE__ */ e(V, { "aria-hidden": "true" }),
237
224
  label: n("contactProfileCard.label.insurances"),
238
- value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: v.map((i) => /* @__PURE__ */ e(S, { variant: "info", children: i }, i)) })
239
- }), N && o.push({
225
+ value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: v.map((i) => /* @__PURE__ */ e(_, { variant: "info", children: i }, i)) })
226
+ }), A && o.push({
240
227
  key: "firstVisitPrice",
241
- icon: /* @__PURE__ */ e(j, { "aria-hidden": "true" }),
228
+ icon: /* @__PURE__ */ e(B, { "aria-hidden": "true" }),
242
229
  label: n("contactProfileCard.label.firstVisitPrice"),
243
- value: N
230
+ value: A
244
231
  }), G && o.push({
245
232
  key: "expertForAnxiousPatients",
246
233
  icon: /* @__PURE__ */ e(H, { "aria-hidden": "true" }),
247
234
  label: n("contactProfileCard.label.expertForAnxiousPatients"),
248
235
  value: n("contactProfileCard.value.yesShort")
249
- }), y && o.push({
236
+ }), C && o.push({
250
237
  key: "profession",
251
238
  icon: /* @__PURE__ */ e(T, { "aria-hidden": "true" }),
252
239
  label: n("contactProfileCard.label.profession"),
253
- value: y
254
- }), he(
255
- xe,
256
- { getProfession: () => y },
257
- C
240
+ value: C
241
+ }), me(
242
+ ve,
243
+ { getProfession: () => C },
244
+ b
258
245
  );
259
- const oe = !!P && (a == null ? void 0 : a.lat) !== void 0 && (a == null ? void 0 : a.lng) !== void 0 ? /* @__PURE__ */ e(
260
- Me,
246
+ const ne = !!P && (a == null ? void 0 : a.lat) !== void 0 && (a == null ? void 0 : a.lng) !== void 0 ? /* @__PURE__ */ e(
247
+ we,
261
248
  {
262
249
  apiKey: P,
263
250
  center: { lat: a.lat, lng: a.lng },
264
- zoom: q,
251
+ zoom: j,
265
252
  altText: n("contactProfileCard.map.alt", {
266
253
  address: a.line,
267
254
  defaultValue: "Map showing {{address}}"
268
255
  })
269
256
  }
270
- ) : null, ie = Z ?? oe, le = /* @__PURE__ */ u(R, { children: [
257
+ ) : null, oe = X ?? ne, ie = /* @__PURE__ */ f(S, { children: [
271
258
  r ? /* @__PURE__ */ e("p", { className: "type-body-sm ds:m-0 ds:whitespace-pre-line", children: r }) : null,
272
259
  o.length > 0 ? /* @__PURE__ */ e(fe, { rowGap: "md", children: o.map((i) => /* @__PURE__ */ e(
273
- me,
260
+ ue,
274
261
  {
275
262
  icon: i.icon,
276
263
  label: i.label,
@@ -278,41 +265,41 @@ const $e = ce(
278
265
  },
279
266
  i.key
280
267
  )) }) : null,
281
- ie,
282
- X
283
- ] }), _ = /* @__PURE__ */ u(R, { children: [
284
- /* @__PURE__ */ u("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
285
- Q,
268
+ oe,
269
+ Q
270
+ ] }), I = /* @__PURE__ */ f(S, { children: [
271
+ /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
272
+ J,
286
273
  /* @__PURE__ */ e(
287
274
  "h2",
288
275
  {
289
276
  id: M,
290
277
  className: "type-title-card ds:m-0 ds:text-[color:var(--foreground)]",
291
- children: A
278
+ children: N
292
279
  }
293
280
  )
294
281
  ] }),
295
- le
282
+ ie
296
283
  ] });
297
284
  return /* @__PURE__ */ e(
298
285
  "div",
299
286
  {
300
- ref: re,
287
+ ref: te,
301
288
  role: "region",
302
- "aria-label": ne,
289
+ "aria-label": re,
303
290
  "aria-labelledby": M,
304
291
  "data-component": "contact-profile-card",
305
- "data-component-id": C,
306
- id: C,
307
- className: ye({ surface: k, className: ae }),
308
- ...te,
309
- children: k === "elevated" ? /* @__PURE__ */ e(F, { variant: "elevated", children: /* @__PURE__ */ e(F.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: _ }) }) : /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: _ })
292
+ "data-component-id": b,
293
+ id: b,
294
+ className: xe({ surface: k, className: ee }),
295
+ ...ae,
296
+ children: k === "elevated" ? /* @__PURE__ */ e(F, { variant: "elevated", children: /* @__PURE__ */ e(F.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: I }) }) : /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: I })
310
297
  }
311
298
  );
312
299
  }
313
300
  );
314
- $e.displayName = "ContactProfileCard";
315
- const Ge = [
301
+ Me.displayName = "ContactProfileCard";
302
+ const qe = [
316
303
  "address",
317
304
  "phone",
318
305
  "whatsapp",
@@ -323,22 +310,22 @@ const Ge = [
323
310
  "firstVisitPrice",
324
311
  "expertForAnxiousPatients",
325
312
  "profession"
326
- ], qe = {
313
+ ], We = {
327
314
  address: U,
328
- phone: B,
329
- whatsapp: L,
330
- email: K,
331
- website: E,
332
- languages: O,
333
- insurances: z,
334
- firstVisitPrice: j,
315
+ phone: L,
316
+ whatsapp: K,
317
+ email: E,
318
+ website: O,
319
+ languages: z,
320
+ insurances: V,
321
+ firstVisitPrice: B,
335
322
  expertForAnxiousPatients: H,
336
323
  profession: T
337
324
  };
338
325
  export {
339
- qe as C,
340
- Ge as a,
341
- $e as b,
342
- xe as c
326
+ We as C,
327
+ qe as a,
328
+ Me as b,
329
+ ve as c
343
330
  };
344
- //# sourceMappingURL=contact-profile-card-DHyuAPXM.js.map
331
+ //# sourceMappingURL=contact-profile-card-DvvVfAA2.js.map