@alfadocs/ui-kit-debug 0.47.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 (341) 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-CVIPrdc9.js → alia-sidebar-DlvyXgVC.js} +3 -2
  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/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
  16. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js.map → bmi-calculator-DdylQzT6.js.map} +1 -1
  17. package/dist/_chunks/{booking-DlDVuWMd.js → booking-WV2GSru5.js} +291 -303
  18. package/dist/_chunks/booking-WV2GSru5.js.map +1 -0
  19. package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
  20. package/dist/_chunks/{calculator-dialog-D-nfvteH.js.map → calculator-dialog-CFk4I91b.js.map} +1 -1
  21. package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
  22. package/dist/_chunks/calendar-days-C4BmpCZg.js.map +1 -0
  23. package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
  24. package/dist/_chunks/calendar-oYWOCrnf.js.map +1 -0
  25. package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
  26. package/dist/_chunks/care-plan-card-QmNpGggC.js.map +1 -0
  27. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
  28. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js.map +1 -0
  29. package/dist/_chunks/{chat-message-B5JpFj0F.js → chat-message-Dm8U2RY1.js} +36 -35
  30. package/dist/_chunks/chat-message-Dm8U2RY1.js.map +1 -0
  31. package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
  32. package/dist/_chunks/clinical-note-card-BYo437dU.js.map +1 -0
  33. package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
  34. package/dist/_chunks/contact-profile-card-DvvVfAA2.js.map +1 -0
  35. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js → cycle-calculator-DYvGm_m1.js} +2 -2
  36. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js.map → cycle-calculator-DYvGm_m1.js.map} +1 -1
  37. package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
  38. package/dist/_chunks/dialog-DMGnSelc.js.map +1 -0
  39. package/dist/_chunks/{due-date-calculator-mFxpHLml.js → due-date-calculator-BXd3ANj7.js} +2 -2
  40. package/dist/_chunks/{due-date-calculator-mFxpHLml.js.map → due-date-calculator-BXd3ANj7.js.map} +1 -1
  41. package/dist/_chunks/entity-card-COhmqHly.js +69 -0
  42. package/dist/_chunks/entity-card-COhmqHly.js.map +1 -0
  43. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js → gestational-age-calculator-Crj6FgZw.js} +2 -2
  44. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js.map → gestational-age-calculator-Crj6FgZw.js.map} +1 -1
  45. package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
  46. package/dist/_chunks/insert-result-DNdi_JYW.js.map +1 -0
  47. package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
  48. package/dist/_chunks/is-safe-url-DkETxeHz.js.map +1 -0
  49. package/dist/_chunks/languages-DsVf_WzT.js +19 -0
  50. package/dist/_chunks/languages-DsVf_WzT.js.map +1 -0
  51. package/dist/_chunks/layers-pzGcbLPj.js +34 -0
  52. package/dist/_chunks/layers-pzGcbLPj.js.map +1 -0
  53. package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
  54. package/dist/_chunks/message-card-Dvl1TgaN.js.map +1 -0
  55. package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
  56. package/dist/_chunks/{message-tray-hSQff9u4.js.map → message-tray-Dl6GQaaV.js.map} +1 -1
  57. package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
  58. package/dist/_chunks/operator-hero-CM8949Hd.js.map +1 -0
  59. package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
  60. package/dist/_chunks/patient-summary-card-BnTqxcTr.js.map +1 -0
  61. package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
  62. package/dist/_chunks/payment-request-card-B_lyobd0.js.map +1 -0
  63. package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-G8SU6Azw.js} +3 -3
  64. package/dist/_chunks/pdf-viewer-G8SU6Azw.js.map +1 -0
  65. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
  66. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js.map +1 -0
  67. package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
  68. package/dist/_chunks/phone-Bi5yUm4I.js.map +1 -0
  69. package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-BFL_mcDW.js} +3 -2
  70. package/dist/_chunks/{practice-results-DDi-kvaD.js.map → practice-results-BFL_mcDW.js.map} +1 -1
  71. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js → pregnancy-weight-gain-C7dK89jE.js} +2 -2
  72. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js.map → pregnancy-weight-gain-C7dK89jE.js.map} +1 -1
  73. package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
  74. package/dist/_chunks/scan-line-lGioFwLC.js.map +1 -0
  75. package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
  76. package/dist/_chunks/shield-check-BjCGH_Sr.js.map +1 -0
  77. package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-DPI2pY9V.js} +2 -2
  78. package/dist/_chunks/{sign-document-BCyLpFHJ.js.map → sign-document-DPI2pY9V.js.map} +1 -1
  79. package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
  80. package/dist/_chunks/{transaction-chip-B8ujzowA.js.map → transaction-chip-BZCa6XDn.js.map} +1 -1
  81. package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
  82. package/dist/_chunks/{unit-converter-u3CwNDpP.js.map → unit-converter-jWp3Z85y.js.map} +1 -1
  83. package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
  84. package/dist/_chunks/user-cog-BS_qc8nA.js.map +1 -0
  85. package/dist/_chunks/video-BAeICxCT.js +21 -0
  86. package/dist/_chunks/video-BAeICxCT.js.map +1 -0
  87. package/dist/_chunks/{workflow-map-Djn1QMJc.js → workflow-map-ZXw-zsZ8.js} +138 -156
  88. package/dist/_chunks/workflow-map-ZXw-zsZ8.js.map +1 -0
  89. package/dist/agent-catalog.json +324 -1
  90. package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
  91. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -0
  92. package/dist/components/_shared/entity-card/index.d.ts +3 -0
  93. package/dist/components/_shared/entity-card/index.d.ts.map +1 -0
  94. package/dist/components/_shared/index.d.ts +2 -0
  95. package/dist/components/_shared/index.d.ts.map +1 -1
  96. package/dist/components/_shared/is-safe-url.d.ts +13 -0
  97. package/dist/components/_shared/is-safe-url.d.ts.map +1 -0
  98. package/dist/components/agenda-card/agenda-card.d.ts +1 -2
  99. package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
  100. package/dist/components/agenda-card/index.d.ts +2 -1
  101. package/dist/components/agenda-card/index.d.ts.map +1 -1
  102. package/dist/components/agenda-card/index.js +6 -5
  103. package/dist/components/agenda-card/index.js.map +1 -1
  104. package/dist/components/agenda-tray/index.js +1 -1
  105. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
  106. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +1 -0
  107. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
  108. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +1 -0
  109. package/dist/components/ai-consent-banner/index.d.ts +4 -0
  110. package/dist/components/ai-consent-banner/index.d.ts.map +1 -0
  111. package/dist/components/ai-consent-banner/index.js +6 -0
  112. package/dist/components/ai-consent-banner/index.js.map +1 -0
  113. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
  114. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -0
  115. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
  116. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +1 -0
  117. package/dist/components/ai-tools-rail/index.d.ts +4 -0
  118. package/dist/components/ai-tools-rail/index.d.ts.map +1 -0
  119. package/dist/components/ai-tools-rail/index.js +6 -0
  120. package/dist/components/ai-tools-rail/index.js.map +1 -0
  121. package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
  122. package/dist/components/anamnesis-card/anamnesis-card.d.ts.map +1 -0
  123. package/dist/components/anamnesis-card/index.d.ts +3 -0
  124. package/dist/components/anamnesis-card/index.d.ts.map +1 -0
  125. package/dist/components/anamnesis-card/index.js +5 -0
  126. package/dist/components/anamnesis-card/index.js.map +1 -0
  127. package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
  128. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -0
  129. package/dist/components/appointment-card/appointment-card.d.ts +93 -0
  130. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -0
  131. package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
  132. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -0
  133. package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
  134. package/dist/components/appointment-card/appointment-tray.d.ts.map +1 -0
  135. package/dist/components/appointment-card/index.d.ts +8 -0
  136. package/dist/components/appointment-card/index.d.ts.map +1 -0
  137. package/dist/components/appointment-card/index.js +10 -0
  138. package/dist/components/appointment-card/index.js.map +1 -0
  139. package/dist/components/badge/badge.d.ts +1 -1
  140. package/dist/components/bmi-calculator/index.js +1 -1
  141. package/dist/components/booking/index.js +1 -1
  142. package/dist/components/calculator-dialog/index.js +1 -1
  143. package/dist/components/calendar/index.js +1 -1
  144. package/dist/components/card/card.d.ts +1 -1
  145. package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
  146. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -0
  147. package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
  148. package/dist/components/care-plan-card/care-plan-card.d.ts.map +1 -0
  149. package/dist/components/care-plan-card/index.d.ts +4 -0
  150. package/dist/components/care-plan-card/index.d.ts.map +1 -0
  151. package/dist/components/care-plan-card/index.js +6 -0
  152. package/dist/components/care-plan-card/index.js.map +1 -0
  153. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
  154. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -0
  155. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
  156. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts.map +1 -0
  157. package/dist/components/care-plan-entry-card/index.d.ts +4 -0
  158. package/dist/components/care-plan-entry-card/index.d.ts.map +1 -0
  159. package/dist/components/care-plan-entry-card/index.js +6 -0
  160. package/dist/components/care-plan-entry-card/index.js.map +1 -0
  161. package/dist/components/chat-message/chat-message.d.ts +7 -0
  162. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  163. package/dist/components/chat-message/index.js +1 -1
  164. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
  165. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts.map +1 -0
  166. package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
  167. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -0
  168. package/dist/components/clinical-note-card/index.d.ts +4 -0
  169. package/dist/components/clinical-note-card/index.d.ts.map +1 -0
  170. package/dist/components/clinical-note-card/index.js +6 -0
  171. package/dist/components/clinical-note-card/index.js.map +1 -0
  172. package/dist/components/contact-profile-card/index.js +1 -1
  173. package/dist/components/cycle-calculator/index.js +1 -1
  174. package/dist/components/dialog/dialog.d.ts +7 -0
  175. package/dist/components/dialog/dialog.d.ts.map +1 -1
  176. package/dist/components/dialog/index.js +1 -1
  177. package/dist/components/due-date-calculator/index.js +1 -1
  178. package/dist/components/gestational-age-calculator/index.js +1 -1
  179. package/dist/components/index.d.ts +10 -0
  180. package/dist/components/index.d.ts.map +1 -1
  181. package/dist/components/message-card/index.js +5 -4
  182. package/dist/components/message-card/index.js.map +1 -1
  183. package/dist/components/message-card/message-card.d.ts +1 -2
  184. package/dist/components/message-card/message-card.d.ts.map +1 -1
  185. package/dist/components/message-tray/index.js +1 -1
  186. package/dist/components/operator-hero/index.js +1 -1
  187. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  188. package/dist/components/operator-hero/operator-hero.d.ts +9 -0
  189. package/dist/components/operator-hero/operator-hero.d.ts.map +1 -1
  190. package/dist/components/patient-summary-card/index.d.ts +4 -0
  191. package/dist/components/patient-summary-card/index.d.ts.map +1 -0
  192. package/dist/components/patient-summary-card/index.js +6 -0
  193. package/dist/components/patient-summary-card/index.js.map +1 -0
  194. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
  195. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -0
  196. package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
  197. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -0
  198. package/dist/components/payment-card/index.d.ts +7 -0
  199. package/dist/components/payment-card/index.d.ts.map +1 -0
  200. package/dist/components/payment-card/index.js +8 -0
  201. package/dist/components/payment-card/index.js.map +1 -0
  202. package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
  203. package/dist/components/payment-card/payment-card.agent.d.ts.map +1 -0
  204. package/dist/components/payment-card/payment-card.d.ts +71 -0
  205. package/dist/components/payment-card/payment-card.d.ts.map +1 -0
  206. package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
  207. package/dist/components/payment-card/payment-request-card.agent.d.ts.map +1 -0
  208. package/dist/components/payment-card/payment-request-card.d.ts +43 -0
  209. package/dist/components/payment-card/payment-request-card.d.ts.map +1 -0
  210. package/dist/components/pdf-viewer/index.js +1 -1
  211. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  212. package/dist/components/periodontal-chart-card/index.d.ts +4 -0
  213. package/dist/components/periodontal-chart-card/index.d.ts.map +1 -0
  214. package/dist/components/periodontal-chart-card/index.js +7 -0
  215. package/dist/components/periodontal-chart-card/index.js.map +1 -0
  216. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
  217. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts.map +1 -0
  218. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
  219. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts.map +1 -0
  220. package/dist/components/practice-results/index.js +1 -1
  221. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  222. package/dist/components/public-header/public-header.d.ts +1 -1
  223. package/dist/components/sign-document/index.js +1 -1
  224. package/dist/components/stat/stat.d.ts +1 -1
  225. package/dist/components/transaction-chip/index.js +1 -1
  226. package/dist/components/unit-converter/index.js +1 -1
  227. package/dist/components/workflow/index.js +1 -1
  228. package/dist/i18n/locales/ar.d.ts +351 -0
  229. package/dist/i18n/locales/ar.d.ts.map +1 -1
  230. package/dist/i18n/locales/ar.js +351 -0
  231. package/dist/i18n/locales/ar.js.map +1 -1
  232. package/dist/i18n/locales/de.d.ts +351 -0
  233. package/dist/i18n/locales/de.d.ts.map +1 -1
  234. package/dist/i18n/locales/de.js +351 -0
  235. package/dist/i18n/locales/de.js.map +1 -1
  236. package/dist/i18n/locales/el.d.ts +351 -0
  237. package/dist/i18n/locales/el.d.ts.map +1 -1
  238. package/dist/i18n/locales/el.js +351 -0
  239. package/dist/i18n/locales/el.js.map +1 -1
  240. package/dist/i18n/locales/en.d.ts +351 -0
  241. package/dist/i18n/locales/en.d.ts.map +1 -1
  242. package/dist/i18n/locales/en.js +351 -0
  243. package/dist/i18n/locales/en.js.map +1 -1
  244. package/dist/i18n/locales/es.d.ts +351 -0
  245. package/dist/i18n/locales/es.d.ts.map +1 -1
  246. package/dist/i18n/locales/es.js +351 -0
  247. package/dist/i18n/locales/es.js.map +1 -1
  248. package/dist/i18n/locales/fr.d.ts +351 -0
  249. package/dist/i18n/locales/fr.d.ts.map +1 -1
  250. package/dist/i18n/locales/fr.js +351 -0
  251. package/dist/i18n/locales/fr.js.map +1 -1
  252. package/dist/i18n/locales/hi.d.ts +351 -0
  253. package/dist/i18n/locales/hi.d.ts.map +1 -1
  254. package/dist/i18n/locales/hi.js +351 -0
  255. package/dist/i18n/locales/hi.js.map +1 -1
  256. package/dist/i18n/locales/it.d.ts +351 -0
  257. package/dist/i18n/locales/it.d.ts.map +1 -1
  258. package/dist/i18n/locales/it.js +351 -0
  259. package/dist/i18n/locales/it.js.map +1 -1
  260. package/dist/i18n/locales/ja.d.ts +351 -0
  261. package/dist/i18n/locales/ja.d.ts.map +1 -1
  262. package/dist/i18n/locales/ja.js +351 -0
  263. package/dist/i18n/locales/ja.js.map +1 -1
  264. package/dist/i18n/locales/nl.d.ts +351 -0
  265. package/dist/i18n/locales/nl.d.ts.map +1 -1
  266. package/dist/i18n/locales/nl.js +351 -0
  267. package/dist/i18n/locales/nl.js.map +1 -1
  268. package/dist/i18n/locales/pl.d.ts +351 -0
  269. package/dist/i18n/locales/pl.d.ts.map +1 -1
  270. package/dist/i18n/locales/pl.js +351 -0
  271. package/dist/i18n/locales/pl.js.map +1 -1
  272. package/dist/i18n/locales/pt.d.ts +351 -0
  273. package/dist/i18n/locales/pt.d.ts.map +1 -1
  274. package/dist/i18n/locales/pt.js +351 -0
  275. package/dist/i18n/locales/pt.js.map +1 -1
  276. package/dist/i18n/locales/ro.d.ts +351 -0
  277. package/dist/i18n/locales/ro.d.ts.map +1 -1
  278. package/dist/i18n/locales/ro.js +351 -0
  279. package/dist/i18n/locales/ro.js.map +1 -1
  280. package/dist/i18n/locales/ru.d.ts +351 -0
  281. package/dist/i18n/locales/ru.d.ts.map +1 -1
  282. package/dist/i18n/locales/ru.js +351 -0
  283. package/dist/i18n/locales/ru.js.map +1 -1
  284. package/dist/i18n/locales/sq.d.ts +351 -0
  285. package/dist/i18n/locales/sq.d.ts.map +1 -1
  286. package/dist/i18n/locales/sq.js +351 -0
  287. package/dist/i18n/locales/sq.js.map +1 -1
  288. package/dist/i18n/locales/sv.d.ts +351 -0
  289. package/dist/i18n/locales/sv.d.ts.map +1 -1
  290. package/dist/i18n/locales/sv.js +351 -0
  291. package/dist/i18n/locales/sv.js.map +1 -1
  292. package/dist/i18n/locales/tr.d.ts +351 -0
  293. package/dist/i18n/locales/tr.d.ts.map +1 -1
  294. package/dist/i18n/locales/tr.js +351 -0
  295. package/dist/i18n/locales/tr.js.map +1 -1
  296. package/dist/i18n/locales/zh.d.ts +351 -0
  297. package/dist/i18n/locales/zh.d.ts.map +1 -1
  298. package/dist/i18n/locales/zh.js +351 -0
  299. package/dist/i18n/locales/zh.js.map +1 -1
  300. package/dist/index.js +527 -491
  301. package/dist/index.js.map +1 -1
  302. package/dist/locales/ar.json +351 -0
  303. package/dist/locales/de.json +351 -0
  304. package/dist/locales/el.json +351 -0
  305. package/dist/locales/en.json +351 -0
  306. package/dist/locales/es.json +351 -0
  307. package/dist/locales/fr.json +351 -0
  308. package/dist/locales/hi.json +351 -0
  309. package/dist/locales/it.json +351 -0
  310. package/dist/locales/ja.json +351 -0
  311. package/dist/locales/nl.json +351 -0
  312. package/dist/locales/pl.json +351 -0
  313. package/dist/locales/pt.json +351 -0
  314. package/dist/locales/ro.json +351 -0
  315. package/dist/locales/ru.json +351 -0
  316. package/dist/locales/sq.json +351 -0
  317. package/dist/locales/sv.json +351 -0
  318. package/dist/locales/tr.json +351 -0
  319. package/dist/locales/zh.json +351 -0
  320. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  321. package/dist/patterns/alia-assistant/alia-types.d.ts +15 -0
  322. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  323. package/dist/patterns/alia-assistant/index.js +1 -1
  324. package/dist/tokens.css +1 -1
  325. package/package.json +42 -1
  326. package/dist/_chunks/agenda-card-CFyWSX7Z.js.map +0 -1
  327. package/dist/_chunks/agenda-tray-Dyj9ChHC.js.map +0 -1
  328. package/dist/_chunks/alia-sidebar-CVIPrdc9.js.map +0 -1
  329. package/dist/_chunks/booking-DlDVuWMd.js.map +0 -1
  330. package/dist/_chunks/calendar-YHFknAGv.js.map +0 -1
  331. package/dist/_chunks/chat-message-B5JpFj0F.js.map +0 -1
  332. package/dist/_chunks/contact-profile-card-DHyuAPXM.js.map +0 -1
  333. package/dist/_chunks/dialog-BTpZV6It.js.map +0 -1
  334. package/dist/_chunks/insert-result-C5ABnzDl.js.map +0 -1
  335. package/dist/_chunks/message-card-DSPw5ghw.js.map +0 -1
  336. package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
  337. package/dist/_chunks/operator-hero-7LiiP7zi.js.map +0 -1
  338. package/dist/_chunks/pdf-viewer-CWEXTlwq.js.map +0 -1
  339. package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
  340. package/dist/_chunks/shield-check-C73ma9Cs.js.map +0 -1
  341. package/dist/_chunks/workflow-map-Djn1QMJc.js.map +0 -1
@@ -0,0 +1,443 @@
1
+ import { jsx as a, jsxs as n } from "react/jsx-runtime";
2
+ import { forwardRef as va, useId as ba, useMemo as xa } from "react";
3
+ import { c as Sa } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as Ca } from "react-i18next";
5
+ import { A as H } from "./avatar-BNQNhoyL.js";
6
+ import { B as w } from "./badge-zsf5i5bH.js";
7
+ import { C as O } from "./card-DPmk26CL.js";
8
+ import { K as Na, a as Aa } from "./key-value-pair-CkQIb9EG.js";
9
+ import { L as S } from "./link-DrD_cRUg.js";
10
+ import { S as C } from "./skeleton-CZbwyJAA.js";
11
+ import { T as W } from "./tag-CdA0s_VV.js";
12
+ import { T as ka } from "./transaction-chip-BZCa6XDn.js";
13
+ import { i as J } from "./is-safe-url-DkETxeHz.js";
14
+ import { u as Va } from "./registry-nPAVE19X.js";
15
+ import { M as Ma } from "./mail-C8irm52s.js";
16
+ import { P as La } from "./phone-Bi5yUm4I.js";
17
+ import { M as Pa } from "./map-pin-B8STOPMJ.js";
18
+ import { S as wa } from "./shield-check-BjCGH_Sr.js";
19
+ import { S as $a } from "./sparkles-CuYXqQLg.js";
20
+ import { c as $ } from "./createLucideIcon-CrFbzy84.js";
21
+ /**
22
+ * @license lucide-react v1.8.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */
27
+ const Ea = [
28
+ [
29
+ "path",
30
+ {
31
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
32
+ key: "1oefj6"
33
+ }
34
+ ],
35
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
36
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
37
+ ], _a = $("file-exclamation-point", Ea);
38
+ /**
39
+ * @license lucide-react v1.8.0 - ISC
40
+ *
41
+ * This source code is licensed under the ISC license.
42
+ * See the LICENSE file in the root directory of this source tree.
43
+ */
44
+ const Da = [
45
+ [
46
+ "path",
47
+ {
48
+ d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
49
+ key: "18887p"
50
+ }
51
+ ],
52
+ ["path", { d: "M12 15h.01", key: "q59x07" }],
53
+ ["path", { d: "M12 7v4", key: "xawao1" }]
54
+ ], Ta = $("message-square-warning", Da);
55
+ /**
56
+ * @license lucide-react v1.8.0 - ISC
57
+ *
58
+ * This source code is licensed under the ISC license.
59
+ * See the LICENSE file in the root directory of this source tree.
60
+ */
61
+ const Ga = [
62
+ ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
63
+ ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
64
+ ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
65
+ ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
66
+ ], Fa = $("users", Ga), za = {
67
+ id: "patient-summary-card",
68
+ capabilities: ["view_change"],
69
+ state: {
70
+ summary: {
71
+ type: "{ id?: string; hasUnpaid: boolean; unsignedDocumentsCount: number; highlightedAnamnesisCount: number; aiConsentGranted: boolean }",
72
+ descriptionKey: "ui.agent.patientSummaryCard.state.summary",
73
+ description: "Structural summary of the patient card — identifiers, counts, and consent flags only. Never patient identity or clinical content.",
74
+ read: (r) => r.getSummary()
75
+ }
76
+ },
77
+ actions: {},
78
+ domHooks: {
79
+ root: {
80
+ attr: "data-component",
81
+ value: "patient-summary-card",
82
+ description: "Marks the PatientSummaryCard root region."
83
+ },
84
+ instanceId: {
85
+ attr: "data-component-id",
86
+ sourceProp: "id",
87
+ description: "Sourced from the id prop."
88
+ }
89
+ }
90
+ }, Ba = Sa("ds:w-full ds:text-[color:var(--foreground)]", {
91
+ variants: {
92
+ // Matches the kit's other `surface` props (ContactProfileCard,
93
+ // OperatorHero). `'elevated'` wraps the content in `<Card>`.
94
+ surface: {
95
+ flat: "",
96
+ elevated: ""
97
+ },
98
+ // Density tunes the avatar size + body padding. `comfortable` reads
99
+ // as a page header; `compact` fits an embedded sidebar / aside.
100
+ density: {
101
+ comfortable: "",
102
+ compact: ""
103
+ }
104
+ },
105
+ defaultVariants: {
106
+ surface: "elevated",
107
+ density: "comfortable"
108
+ }
109
+ });
110
+ function Ia(r) {
111
+ return r.replace(/[^\d+]/g, "");
112
+ }
113
+ const Ua = {
114
+ highlightedAnamnesis: Ta,
115
+ unsignedDocuments: _a
116
+ }, ja = {
117
+ highlightedAnamnesis: "warning",
118
+ unsignedDocuments: "error"
119
+ }, Ra = {
120
+ highlightedAnamnesis: "{{count}} highlighted anamnesis answers",
121
+ unsignedDocuments: "{{count}} unsigned documents"
122
+ }, Ka = {
123
+ yes: "Yes",
124
+ no: "No",
125
+ not_specified: "Not specified"
126
+ }, qa = va(
127
+ ({
128
+ name: r,
129
+ title: N,
130
+ ageYears: E,
131
+ dateOfBirth: _,
132
+ gender: A,
133
+ avatarUrl: Q,
134
+ patientUrl: k,
135
+ email: p,
136
+ emailEnabled: X = !1,
137
+ phone: d,
138
+ cityProvince: D,
139
+ marketingConsent: o,
140
+ aiConsent: l,
141
+ flags: s,
142
+ familyRelations: V,
143
+ assignedTo: h,
144
+ currency: Y = "EUR",
145
+ locale: Z,
146
+ loading: f = !1,
147
+ actionSlot: T,
148
+ onActivate: G,
149
+ surface: F = "elevated",
150
+ density: c = "comfortable",
151
+ "aria-label": z,
152
+ id: m,
153
+ className: aa,
154
+ ...ea
155
+ }, ta) => {
156
+ const { t: e, i18n: na } = Ca(), M = ba(), sa = Z ?? na.language ?? "en", L = s == null ? void 0 : s.unpaidAmountCents, y = (s == null ? void 0 : s.unsignedDocumentsCount) ?? 0, g = (s == null ? void 0 : s.highlightedAnamnesisCount) ?? 0, v = L != null && L > 0, ia = xa(
157
+ () => ({
158
+ getSummary: () => ({
159
+ id: m,
160
+ hasUnpaid: v,
161
+ unsignedDocumentsCount: y,
162
+ highlightedAnamnesisCount: g,
163
+ aiConsentGranted: l != null
164
+ })
165
+ }),
166
+ [
167
+ m,
168
+ v,
169
+ y,
170
+ g,
171
+ l
172
+ ]
173
+ );
174
+ Va(za, ia, m);
175
+ const ra = z ?? e("patientSummaryCard.regionLabel", { defaultValue: "Patient overview" }), la = {
176
+ mr: "Mr.",
177
+ ms: "Ms."
178
+ }, B = N ? e(`patientSummaryCard.title.${N}`, {
179
+ defaultValue: la[N]
180
+ }) : void 0, I = B ? `${B} ${r}` : r, da = {
181
+ m: "Male",
182
+ f: "Female"
183
+ }, b = [];
184
+ A && b.push(
185
+ e(`patientSummaryCard.gender.${A}`, {
186
+ defaultValue: da[A]
187
+ })
188
+ ), E != null && b.push(
189
+ e("patientSummaryCard.identity.age", {
190
+ count: E,
191
+ defaultValue: "{{count}} yrs"
192
+ })
193
+ ), _ && b.push(
194
+ e("patientSummaryCard.identity.bornOn", {
195
+ date: _,
196
+ defaultValue: "Born {{date}}"
197
+ })
198
+ );
199
+ const U = b.join(
200
+ e("patientSummaryCard.identity.separator", { defaultValue: " · " })
201
+ ), oa = !!k && J(k), ca = c === "comfortable" ? "xl" : "lg", j = c === "comfortable" ? "type-title-card" : "type-title-item", R = c === "comfortable" ? "ds:gap-[var(--spacing-md)]" : "ds:gap-[var(--spacing-sm)]", i = [];
202
+ p && i.push({
203
+ key: "email",
204
+ icon: /* @__PURE__ */ a(Ma, { "aria-hidden": "true" }),
205
+ label: e("patientSummaryCard.label.email", { defaultValue: "Email" }),
206
+ value: X ? /* @__PURE__ */ a(S, { href: `mailto:${p}`, intent: "default", onClick: G, children: p }) : /* @__PURE__ */ a("span", { className: "ds:text-[color:var(--muted-foreground)]", children: p })
207
+ }), d && i.push({
208
+ key: "phone",
209
+ icon: /* @__PURE__ */ a(La, { "aria-hidden": "true" }),
210
+ label: d.label ?? e("patientSummaryCard.label.phone", { defaultValue: "Phone" }),
211
+ value: /* @__PURE__ */ n("span", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
212
+ /* @__PURE__ */ a(
213
+ S,
214
+ {
215
+ href: `tel:${Ia(d.prefixAndNumber)}`,
216
+ intent: "default",
217
+ children: d.prefixAndNumber
218
+ }
219
+ ),
220
+ d.smsEnabled ? /* @__PURE__ */ a(w, { variant: "success", size: "sm", children: e("patientSummaryCard.value.smsEnabled", {
221
+ defaultValue: "SMS"
222
+ }) }) : null
223
+ ] })
224
+ }), D && i.push({
225
+ key: "cityProvince",
226
+ icon: /* @__PURE__ */ a(Pa, { "aria-hidden": "true" }),
227
+ label: e("patientSummaryCard.label.cityProvince", {
228
+ defaultValue: "City / province"
229
+ }),
230
+ value: D
231
+ }), o && i.push({
232
+ key: "marketingConsent",
233
+ icon: /* @__PURE__ */ a(wa, { "aria-hidden": "true" }),
234
+ label: e("patientSummaryCard.label.marketingConsent", {
235
+ defaultValue: "Marketing consent"
236
+ }),
237
+ value: /* @__PURE__ */ a(
238
+ w,
239
+ {
240
+ variant: o === "yes" ? "success" : o === "no" ? "error" : "neutral",
241
+ size: "sm",
242
+ withDot: !0,
243
+ children: e(`patientSummaryCard.marketingConsent.${o}`, {
244
+ defaultValue: Ka[o]
245
+ })
246
+ }
247
+ )
248
+ }), l && i.push({
249
+ key: "aiConsent",
250
+ icon: /* @__PURE__ */ a($a, { "aria-hidden": "true" }),
251
+ label: e("patientSummaryCard.label.aiConsent", {
252
+ defaultValue: "AI consent"
253
+ }),
254
+ value: l.grantedBy ? e("patientSummaryCard.value.aiConsentGrantedBy", {
255
+ date: l.grantedAt,
256
+ by: l.grantedBy,
257
+ defaultValue: "Granted {{date}} by {{by}}"
258
+ }) : e("patientSummaryCard.value.aiConsentGrantedAt", {
259
+ date: l.grantedAt,
260
+ defaultValue: "Granted {{date}}"
261
+ })
262
+ }), h && i.push({
263
+ key: "assignedTo",
264
+ icon: /* @__PURE__ */ a(Fa, { "aria-hidden": "true" }),
265
+ label: e("patientSummaryCard.label.assignedTo", {
266
+ defaultValue: "Assigned to"
267
+ }),
268
+ value: /* @__PURE__ */ n("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
269
+ /* @__PURE__ */ a(
270
+ H,
271
+ {
272
+ size: "xs",
273
+ name: h.name,
274
+ src: h.avatarUrl
275
+ }
276
+ ),
277
+ /* @__PURE__ */ a("span", { children: h.name })
278
+ ] })
279
+ });
280
+ const x = [];
281
+ g > 0 && x.push({
282
+ key: "highlightedAnamnesis",
283
+ count: g
284
+ }), y > 0 && x.push({
285
+ key: "unsignedDocuments",
286
+ count: y
287
+ });
288
+ const ma = v || x.length > 0, ua = /* @__PURE__ */ n("div", { className: `ds:flex ds:flex-col ${R}`, children: [
289
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-md)]", children: [
290
+ /* @__PURE__ */ a(C, { variant: "circular", size: "lg" }),
291
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
292
+ /* @__PURE__ */ a(C, { variant: "text", width: "60%" }),
293
+ /* @__PURE__ */ a(C, { variant: "text", width: "40%" })
294
+ ] })
295
+ ] }),
296
+ /* @__PURE__ */ a(C, { variant: "text", lines: 3 })
297
+ ] }), pa = oa ? /* @__PURE__ */ a(
298
+ S,
299
+ {
300
+ href: k,
301
+ intent: "default",
302
+ weight: "strong",
303
+ onClick: G,
304
+ className: `${j} ds:no-underline`,
305
+ children: /* @__PURE__ */ a("span", { id: M, children: I })
306
+ }
307
+ ) : /* @__PURE__ */ a(
308
+ "span",
309
+ {
310
+ id: M,
311
+ className: `${j} ds:text-[color:var(--foreground)]`,
312
+ children: I
313
+ }
314
+ ), ha = /* @__PURE__ */ n("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
315
+ /* @__PURE__ */ a(
316
+ H,
317
+ {
318
+ size: ca,
319
+ name: r,
320
+ src: Q,
321
+ className: "ds:shrink-0"
322
+ }
323
+ ),
324
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
325
+ pa,
326
+ U ? /* @__PURE__ */ a("p", { className: "type-body-sm ds:m-0 ds:text-[color:var(--muted-foreground)]", children: U }) : null
327
+ ] }),
328
+ T ? /* @__PURE__ */ a("div", { className: "ds:ms-auto ds:flex ds:shrink-0 ds:items-center ds:gap-[var(--spacing-xs)]", children: T }) : null
329
+ ] }), fa = ma ? /* @__PURE__ */ n(
330
+ "div",
331
+ {
332
+ role: "list",
333
+ "aria-label": e("patientSummaryCard.flagsLabel", {
334
+ defaultValue: "Patient attention flags"
335
+ }),
336
+ className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
337
+ children: [
338
+ v ? /* @__PURE__ */ a("span", { role: "listitem", children: /* @__PURE__ */ a(
339
+ ka,
340
+ {
341
+ state: "debt",
342
+ amount: L / 100,
343
+ currency: Y,
344
+ locale: sa,
345
+ size: "sm",
346
+ showLabel: !0
347
+ }
348
+ ) }) : null,
349
+ x.map(({ key: t, count: u }) => {
350
+ const P = Ua[t];
351
+ return /* @__PURE__ */ a(
352
+ "span",
353
+ {
354
+ role: "listitem",
355
+ "aria-label": e(`patientSummaryCard.flag.${t}`, {
356
+ count: u,
357
+ defaultValue: Ra[t]
358
+ }),
359
+ className: "ds:inline-flex",
360
+ children: /* @__PURE__ */ a(
361
+ w,
362
+ {
363
+ "aria-hidden": "true",
364
+ variant: ja[t],
365
+ size: "md",
366
+ withDot: !0,
367
+ leading: /* @__PURE__ */ a(P, { "aria-hidden": "true" }),
368
+ children: u
369
+ }
370
+ )
371
+ },
372
+ t
373
+ );
374
+ })
375
+ ]
376
+ }
377
+ ) : null, ya = V && V.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
378
+ /* @__PURE__ */ a("span", { className: "type-label ds:text-[color:var(--muted-foreground)]", children: e("patientSummaryCard.label.familyRelations", {
379
+ defaultValue: "Family relations"
380
+ }) }),
381
+ /* @__PURE__ */ a("div", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: V.map((t, u) => {
382
+ const P = !!t.relatedPatient.url && J(t.relatedPatient.url), q = e("patientSummaryCard.value.familyRelation", {
383
+ relation: t.relation,
384
+ name: t.relatedPatient.name,
385
+ defaultValue: "{{relation}}: {{name}}"
386
+ });
387
+ return P ? /* @__PURE__ */ a(
388
+ S,
389
+ {
390
+ href: t.relatedPatient.url,
391
+ intent: "default",
392
+ className: "ds:no-underline",
393
+ children: /* @__PURE__ */ a(W, { label: q, variant: "neutral" })
394
+ },
395
+ `${t.relation}-${u}`
396
+ ) : /* @__PURE__ */ a(
397
+ W,
398
+ {
399
+ label: q,
400
+ variant: "neutral"
401
+ },
402
+ `${t.relation}-${u}`
403
+ );
404
+ }) })
405
+ ] }) : null, ga = /* @__PURE__ */ n("div", { className: `ds:flex ds:flex-col ${R}`, children: [
406
+ ha,
407
+ fa,
408
+ i.length > 0 ? /* @__PURE__ */ a(Na, { rowGap: "sm", children: i.map((t) => /* @__PURE__ */ a(
409
+ Aa,
410
+ {
411
+ icon: t.icon,
412
+ label: t.label,
413
+ value: t.value
414
+ },
415
+ t.key
416
+ )) }) : null,
417
+ ya
418
+ ] }), K = f ? ua : ga;
419
+ return /* @__PURE__ */ a(
420
+ "div",
421
+ {
422
+ ref: ta,
423
+ role: "region",
424
+ "aria-label": f || z ? ra : void 0,
425
+ "aria-labelledby": f ? void 0 : M,
426
+ "aria-busy": f || void 0,
427
+ "data-component": "patient-summary-card",
428
+ "data-component-id": m,
429
+ "data-density": c,
430
+ id: m,
431
+ className: Ba({ surface: F, density: c, className: aa }),
432
+ ...ea,
433
+ children: F === "elevated" ? /* @__PURE__ */ a(O, { variant: "elevated", children: /* @__PURE__ */ a(O.Body, { children: K }) }) : K
434
+ }
435
+ );
436
+ }
437
+ );
438
+ qa.displayName = "PatientSummaryCard";
439
+ export {
440
+ qa as P,
441
+ za as p
442
+ };
443
+ //# sourceMappingURL=patient-summary-card-BnTqxcTr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-summary-card-BnTqxcTr.js","sources":["../../node_modules/lucide-react/dist/esm/icons/file-exclamation-point.js","../../node_modules/lucide-react/dist/esm/icons/message-square-warning.js","../../node_modules/lucide-react/dist/esm/icons/users.js","../../src/components/patient-summary-card/patient-summary-card.agent.ts","../../src/components/patient-summary-card/patient-summary-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: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst FileExclamationPoint = createLucideIcon(\"file-exclamation-point\", __iconNode);\n\nexport { __iconNode, FileExclamationPoint as default };\n//# sourceMappingURL=file-exclamation-point.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 [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\",\n key: \"18887p\"\n }\n ],\n [\"path\", { d: \"M12 15h.01\", key: \"q59x07\" }],\n [\"path\", { d: \"M12 7v4\", key: \"xawao1\" }]\n];\nconst MessageSquareWarning = createLucideIcon(\"message-square-warning\", __iconNode);\n\nexport { __iconNode, MessageSquareWarning as default };\n//# sourceMappingURL=message-square-warning.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: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\", key: \"1yyitq\" }],\n [\"path\", { d: \"M16 3.128a4 4 0 0 1 0 7.744\", key: \"16gr8j\" }],\n [\"path\", { d: \"M22 21v-2a4 4 0 0 0-3-3.87\", key: \"kshegd\" }],\n [\"circle\", { cx: \"9\", cy: \"7\", r: \"4\", key: \"nufk8\" }]\n];\nconst Users = createLucideIcon(\"users\", __iconNode);\n\nexport { __iconNode, Users as default };\n//# sourceMappingURL=users.js.map\n","import type { AgentAdapter } from '../../agent/types';\nimport type { PatientSummaryCardHandle } from './patient-summary-card';\n\n/* -------------------------------------------------------------------- */\n/* Agent adapter — PatientSummaryCard */\n/* */\n/* Read-only adapter. Surfaces a STRUCTURAL snapshot of the patient */\n/* overview — counts, flags, and the consumer id only. Never the patient */\n/* name, age, contact details, or any clinical content, so an agent / */\n/* MCP runtime can answer \"does this patient have unpaid balances / */\n/* unsigned documents / AI consent?\" without re-parsing the DOM and */\n/* without leaking PHI (PRS §Security). */\n/* -------------------------------------------------------------------- */\n\nexport const patientSummaryCardAgent: AgentAdapter<PatientSummaryCardHandle> = {\n id: 'patient-summary-card',\n capabilities: ['view_change'],\n state: {\n summary: {\n type: '{ id?: string; hasUnpaid: boolean; unsignedDocumentsCount: number; highlightedAnamnesisCount: number; aiConsentGranted: boolean }',\n descriptionKey: 'ui.agent.patientSummaryCard.state.summary',\n description:\n 'Structural summary of the patient card — identifiers, counts, and consent flags only. Never patient identity or clinical content.',\n read: (handle) => handle.getSummary(),\n },\n },\n actions: {},\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'patient-summary-card',\n description: 'Marks the PatientSummaryCard 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 useId,\n useMemo,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n FileWarning,\n Mail,\n MapPin,\n MessageSquareWarning,\n Phone,\n ShieldCheck,\n Sparkles,\n Users,\n type LucideIcon,\n} from 'lucide-react';\nimport { Avatar } from '../avatar/avatar';\nimport { Badge } from '../badge/badge';\nimport { Card } from '../card/card';\nimport { KeyValueList, KeyValuePair } from '../key-value-pair/key-value-pair';\nimport { Link } from '../link/link';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { Tag } from '../tag/tag';\nimport { TransactionChip } from '../transaction-chip/transaction-chip';\nimport { isSafeEntityUrl } from '../_shared/is-safe-url';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { patientSummaryCardAgent } from './patient-summary-card.agent';\n\n/* -------------------------------------------------------------------- */\n/* PatientSummaryCard */\n/* */\n/* The patient-overview profile card every AlfaDocs in-app surface */\n/* composes by hand today (platform patient header, alfascribe patient */\n/* sidebar, check-in landing). Templated on ContactProfileCard: composes */\n/* Card + Avatar + KeyValueList + KeyValuePair + Badge + Tag + */\n/* TransactionChip + Link so the contact rows share a column and every */\n/* row uses the same lucide icon family. */\n/* */\n/* The kit owns the ORDER, ICONS, and LABELS — consumers pass data. No */\n/* free-text clinical content (anamnesis notes, diagnoses) ever lives */\n/* here: only counts/flags/relations are surfaced, so the card stays */\n/* PHI-light and the agent state can be derived without leaking patient */\n/* identity. */\n/* */\n/* All visible text flows through `useTranslation('ui')` against the */\n/* `patientSummaryCard.*` namespace. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* CVA — root */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva('ds:w-full ds:text-[color:var(--foreground)]', {\n variants: {\n // Matches the kit's other `surface` props (ContactProfileCard,\n // OperatorHero). `'elevated'` wraps the content in `<Card>`.\n surface: {\n flat: '',\n elevated: '',\n },\n // Density tunes the avatar size + body padding. `comfortable` reads\n // as a page header; `compact` fits an embedded sidebar / aside.\n density: {\n comfortable: '',\n compact: '',\n },\n },\n defaultVariants: {\n surface: 'elevated',\n density: 'comfortable',\n },\n});\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\n/** Patient phone number — already formatted for display by the consumer. */\nexport interface PatientSummaryCardPhone {\n /** Display string, e.g. `\"+39 055 123 4567\"`. Compiled into a `tel:` link. */\n prefixAndNumber: string;\n /** Optional label that distinguishes this number (e.g. \"Mobile\"). */\n label?: string;\n /** Whether SMS is enabled for this number — shows a small \"SMS\" chip. */\n smsEnabled?: boolean;\n}\n\n/** A family relation row — links one patient to another. */\nexport interface PatientSummaryCardFamilyRelation {\n /** Localised relation label, consumer-supplied (e.g. \"Mother\", \"Child\"). */\n relation: string;\n /** The related patient — name + optional in-app profile URL. */\n relatedPatient: {\n name: string;\n url?: string;\n };\n}\n\n/** Operator the patient is assigned to. */\nexport interface PatientSummaryCardAssignee {\n name: string;\n avatarUrl?: string;\n}\n\n/** AI-consent grant metadata — structural only, never the consented content. */\nexport interface PatientSummaryCardAiConsent {\n /** ISO-8601 / display string of when consent was granted. */\n grantedAt: string;\n /** Optional name of who recorded the grant. */\n grantedBy?: string;\n}\n\n/** Status flags rendered as glyph badges (counts / amounts only — no PHI). */\nexport interface PatientSummaryCardFlags {\n /** Number of anamnesis answers highlighted for clinical attention. */\n highlightedAnamnesisCount?: number;\n /** Outstanding balance in the smallest currency unit (cents). */\n unpaidAmountCents?: number;\n /** Number of documents awaiting the patient's signature. */\n unsignedDocumentsCount?: number;\n}\n\n/** Marketing-consent tri-state. */\nexport type PatientSummaryCardMarketingConsent = 'no' | 'yes' | 'not_specified';\n\nexport interface PatientSummaryCardHandle {\n /** Structural snapshot — identifiers and counts only, never patient identity. */\n getSummary: () => {\n id?: string;\n hasUnpaid: boolean;\n unsignedDocumentsCount: number;\n highlightedAnamnesisCount: number;\n aiConsentGranted: boolean;\n };\n}\n\nexport interface PatientSummaryCardProps extends Omit<\n ComponentPropsWithoutRef<'div'>,\n 'aria-label' | 'children'\n> {\n /** Patient display name. Rendered as the heading. */\n name: string;\n /** Honorific — `'mr'` / `'ms'`. Prepended to the name in the heading. */\n title?: 'mr' | 'ms';\n /** Patient age in whole years — rendered in the identity line. */\n ageYears?: number;\n /** Date of birth — already formatted for display by the consumer. */\n dateOfBirth?: string;\n /** Biological sex marker — `'m'` / `'f'`. Drives the identity-line glyph copy. */\n gender?: 'm' | 'f';\n /** Optional avatar / photo URL. Falls back to initials. */\n avatarUrl?: string;\n /**\n * In-app patient profile URL. When safe, the heading becomes a link.\n * Guarded by the shared `isSafeEntityUrl` allow-list — unsafe URLs are\n * dropped and the heading renders as plain text.\n */\n patientUrl?: string;\n\n /* ----- Contact rows ----- */\n\n /** Patient email. Compiled into a `mailto:` link when `emailEnabled`. */\n email?: string;\n /** Whether email contact is enabled — gates the `mailto:` link. */\n emailEnabled?: boolean;\n /** Phone number block. Compiled into a `tel:` link. */\n phone?: PatientSummaryCardPhone;\n /** City / province display string. */\n cityProvince?: string;\n\n /* ----- Consent ----- */\n\n /** Marketing-consent tri-state. */\n marketingConsent?: PatientSummaryCardMarketingConsent;\n /** AI-consent grant metadata. When present, an \"AI consent\" row renders. */\n aiConsent?: PatientSummaryCardAiConsent;\n\n /* ----- Status flags ----- */\n\n /** Counts / amounts surfaced as glyph badges. */\n flags?: PatientSummaryCardFlags;\n\n /* ----- Relations & assignment ----- */\n\n /** Family relations — rendered as `<Tag>` chips, optionally linked. */\n familyRelations?: PatientSummaryCardFamilyRelation[];\n /** Operator the patient is assigned to. */\n assignedTo?: PatientSummaryCardAssignee;\n\n /* ----- Formatting ----- */\n\n /** ISO-4217 currency code for the unpaid-amount chip. Defaults to `EUR`. */\n currency?: string;\n /** BCP-47 locale override. Defaults to the active i18next language. */\n locale?: string;\n\n /* ----- States ----- */\n\n /** Render the skeleton loading placeholder. */\n loading?: boolean;\n\n /* ----- Slots & callbacks ----- */\n\n /** Rendered at the inline-end of the heading row (e.g. an action menu). */\n actionSlot?: ReactNode;\n /** Fires when the whole card / heading is activated. */\n onActivate?: () => void;\n\n /* ----- Styling ----- */\n\n /** `'elevated'` (default) wraps in `<Card>`; `'flat'` drops the chrome. */\n surface?: 'flat' | 'elevated';\n /** `'comfortable'` (default) reads as a header; `'compact'` for asides. */\n density?: 'comfortable' | 'compact';\n\n /* ----- a11y ----- */\n\n /** Override the default region aria-label. */\n 'aria-label'?: string;\n /** Agent-readiness consumer id, surfaced as `data-component-id`. */\n id?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------- */\n\n/** Strip everything except digits + leading `+` for `tel:` URLs. */\nfunction normalisePhone(raw: string): string {\n return raw.replace(/[^\\d+]/g, '');\n}\n\n/* -------------------------------------------------------------------- */\n/* Flag glyphs — the closed set of status indicators */\n/* -------------------------------------------------------------------- */\n\n/** The closed set of status-flag keys (icon + tonal variant defined below). */\ntype FlagKey = 'highlightedAnamnesis' | 'unsignedDocuments';\n\nconst FLAG_ICON: Record<FlagKey, LucideIcon> = {\n highlightedAnamnesis: MessageSquareWarning,\n unsignedDocuments: FileWarning,\n};\n\nconst FLAG_VARIANT: Record<FlagKey, 'warning' | 'error'> = {\n highlightedAnamnesis: 'warning',\n unsignedDocuments: 'error',\n};\n\n/** English fallbacks for the flag badge accessible names (count-interpolated). */\nconst FLAG_LABEL_DEFAULTS: Record<FlagKey, string> = {\n highlightedAnamnesis: '{{count}} highlighted anamnesis answers',\n unsignedDocuments: '{{count}} unsigned documents',\n};\n\n/** English fallbacks for the marketing-consent tri-state chip. */\nconst MARKETING_CONSENT_DEFAULTS: Record<\n PatientSummaryCardMarketingConsent,\n string\n> = {\n yes: 'Yes',\n no: 'No',\n not_specified: 'Not specified',\n};\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const PatientSummaryCard = forwardRef<\n HTMLDivElement,\n PatientSummaryCardProps\n>(\n (\n {\n name,\n title,\n ageYears,\n dateOfBirth,\n gender,\n avatarUrl,\n patientUrl,\n email,\n emailEnabled = false,\n phone,\n cityProvince,\n marketingConsent,\n aiConsent,\n flags,\n familyRelations,\n assignedTo,\n currency = 'EUR',\n locale,\n loading = false,\n actionSlot,\n onActivate,\n surface = 'elevated',\n density = 'comfortable',\n 'aria-label': ariaLabel,\n id,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const headingId = useId();\n const activeLocale = locale ?? i18n.language ?? 'en';\n\n const unpaidAmountCents = flags?.unpaidAmountCents;\n const unsignedDocumentsCount = flags?.unsignedDocumentsCount ?? 0;\n const highlightedAnamnesisCount = flags?.highlightedAnamnesisCount ?? 0;\n const hasUnpaid = unpaidAmountCents != null && unpaidAmountCents > 0;\n\n // Imperative handle — structural snapshot only (counts/flags/ids),\n // never the patient name or any clinical content.\n const handle = useMemo<PatientSummaryCardHandle>(\n () => ({\n getSummary: () => ({\n id,\n hasUnpaid,\n unsignedDocumentsCount,\n highlightedAnamnesisCount,\n aiConsentGranted: aiConsent != null,\n }),\n }),\n [\n id,\n hasUnpaid,\n unsignedDocumentsCount,\n highlightedAnamnesisCount,\n aiConsent,\n ],\n );\n useAgentRegistration(patientSummaryCardAgent, handle, id);\n\n const resolvedAriaLabel =\n ariaLabel ??\n t('patientSummaryCard.regionLabel', { defaultValue: 'Patient overview' });\n\n // Heading text: optional honorific prefix + name.\n const TITLE_DEFAULTS: Record<'mr' | 'ms', string> = {\n mr: 'Mr.',\n ms: 'Ms.',\n };\n const honorific = title\n ? t(`patientSummaryCard.title.${title}`, {\n defaultValue: TITLE_DEFAULTS[title],\n })\n : undefined;\n const headingText = honorific ? `${honorific} ${name}` : name;\n\n // Identity line: a localised, comma-joined summary of the structured\n // fields below the name. Each segment is added only when present.\n const GENDER_DEFAULTS: Record<'m' | 'f', string> = {\n m: 'Male',\n f: 'Female',\n };\n const identitySegments: string[] = [];\n if (gender) {\n identitySegments.push(\n t(`patientSummaryCard.gender.${gender}`, {\n defaultValue: GENDER_DEFAULTS[gender],\n }),\n );\n }\n if (ageYears != null) {\n identitySegments.push(\n t('patientSummaryCard.identity.age', {\n count: ageYears,\n defaultValue: '{{count}} yrs',\n }),\n );\n }\n if (dateOfBirth) {\n identitySegments.push(\n t('patientSummaryCard.identity.bornOn', {\n date: dateOfBirth,\n defaultValue: 'Born {{date}}',\n }),\n );\n }\n const identityLine = identitySegments.join(\n t('patientSummaryCard.identity.separator', { defaultValue: ' · ' }),\n );\n\n const isUrlSafe = !!patientUrl && isSafeEntityUrl(patientUrl);\n\n const avatarSize = density === 'comfortable' ? 'xl' : 'lg';\n const headingClass =\n density === 'comfortable' ? 'type-title-card' : 'type-title-item';\n const bodyGapClass =\n density === 'comfortable'\n ? 'ds:gap-[var(--spacing-md)]'\n : 'ds:gap-[var(--spacing-sm)]';\n\n /* ---------------------------------------------------------------- */\n /* Contact rows */\n /* ---------------------------------------------------------------- */\n\n const rows: Array<{\n key: string;\n icon: ReactElement;\n label: string;\n value: ReactNode;\n }> = [];\n\n if (email) {\n rows.push({\n key: 'email',\n icon: <Mail aria-hidden=\"true\" />,\n label: t('patientSummaryCard.label.email', { defaultValue: 'Email' }),\n value: emailEnabled ? (\n <Link href={`mailto:${email}`} intent=\"default\" onClick={onActivate}>\n {email}\n </Link>\n ) : (\n <span className=\"ds:text-[color:var(--muted-foreground)]\">\n {email}\n </span>\n ),\n });\n }\n\n if (phone) {\n rows.push({\n key: 'phone',\n icon: <Phone aria-hidden=\"true\" />,\n label:\n phone.label ??\n t('patientSummaryCard.label.phone', { defaultValue: 'Phone' }),\n value: (\n <span className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-2xs)]\">\n <Link\n href={`tel:${normalisePhone(phone.prefixAndNumber)}`}\n intent=\"default\"\n >\n {phone.prefixAndNumber}\n </Link>\n {phone.smsEnabled ? (\n <Badge variant=\"success\" size=\"sm\">\n {t('patientSummaryCard.value.smsEnabled', {\n defaultValue: 'SMS',\n })}\n </Badge>\n ) : null}\n </span>\n ),\n });\n }\n\n if (cityProvince) {\n rows.push({\n key: 'cityProvince',\n icon: <MapPin aria-hidden=\"true\" />,\n label: t('patientSummaryCard.label.cityProvince', {\n defaultValue: 'City / province',\n }),\n value: cityProvince,\n });\n }\n\n if (marketingConsent) {\n rows.push({\n key: 'marketingConsent',\n icon: <ShieldCheck aria-hidden=\"true\" />,\n label: t('patientSummaryCard.label.marketingConsent', {\n defaultValue: 'Marketing consent',\n }),\n value: (\n <Badge\n variant={\n marketingConsent === 'yes'\n ? 'success'\n : marketingConsent === 'no'\n ? 'error'\n : 'neutral'\n }\n size=\"sm\"\n withDot\n >\n {t(`patientSummaryCard.marketingConsent.${marketingConsent}`, {\n defaultValue: MARKETING_CONSENT_DEFAULTS[marketingConsent],\n })}\n </Badge>\n ),\n });\n }\n\n if (aiConsent) {\n rows.push({\n key: 'aiConsent',\n icon: <Sparkles aria-hidden=\"true\" />,\n label: t('patientSummaryCard.label.aiConsent', {\n defaultValue: 'AI consent',\n }),\n value: aiConsent.grantedBy\n ? t('patientSummaryCard.value.aiConsentGrantedBy', {\n date: aiConsent.grantedAt,\n by: aiConsent.grantedBy,\n defaultValue: 'Granted {{date}} by {{by}}',\n })\n : t('patientSummaryCard.value.aiConsentGrantedAt', {\n date: aiConsent.grantedAt,\n defaultValue: 'Granted {{date}}',\n }),\n });\n }\n\n if (assignedTo) {\n rows.push({\n key: 'assignedTo',\n icon: <Users aria-hidden=\"true\" />,\n label: t('patientSummaryCard.label.assignedTo', {\n defaultValue: 'Assigned to',\n }),\n value: (\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <Avatar\n size=\"xs\"\n name={assignedTo.name}\n src={assignedTo.avatarUrl}\n />\n <span>{assignedTo.name}</span>\n </span>\n ),\n });\n }\n\n /* ---------------------------------------------------------------- */\n /* Status-flag badges (counts only) */\n /* ---------------------------------------------------------------- */\n\n const flagBadges: Array<{ key: FlagKey; count: number }> = [];\n if (highlightedAnamnesisCount > 0) {\n flagBadges.push({\n key: 'highlightedAnamnesis',\n count: highlightedAnamnesisCount,\n });\n }\n if (unsignedDocumentsCount > 0) {\n flagBadges.push({\n key: 'unsignedDocuments',\n count: unsignedDocumentsCount,\n });\n }\n\n const showFlagStrip = hasUnpaid || flagBadges.length > 0;\n\n /* ---------------------------------------------------------------- */\n /* Loading skeleton */\n /* ---------------------------------------------------------------- */\n\n const skeletonBody = (\n <div className={`ds:flex ds:flex-col ${bodyGapClass}`}>\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-md)]\">\n <Skeleton variant=\"circular\" size=\"lg\" />\n <div className=\"ds:flex ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <Skeleton variant=\"text\" width=\"60%\" />\n <Skeleton variant=\"text\" width=\"40%\" />\n </div>\n </div>\n <Skeleton variant=\"text\" lines={3} />\n </div>\n );\n\n /* ---------------------------------------------------------------- */\n /* Header */\n /* ---------------------------------------------------------------- */\n\n const heading = isUrlSafe ? (\n <Link\n href={patientUrl as string}\n intent=\"default\"\n weight=\"strong\"\n onClick={onActivate}\n className={`${headingClass} ds:no-underline`}\n >\n <span id={headingId}>{headingText}</span>\n </Link>\n ) : (\n <span\n id={headingId}\n className={`${headingClass} ds:text-[color:var(--foreground)]`}\n >\n {headingText}\n </span>\n );\n\n const header = (\n <div className=\"ds:flex ds:items-start ds:gap-[var(--spacing-md)]\">\n <Avatar\n size={avatarSize}\n name={name}\n src={avatarUrl}\n className=\"ds:shrink-0\"\n />\n <div className=\"ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n {heading}\n {identityLine ? (\n <p className=\"type-body-sm ds:m-0 ds:text-[color:var(--muted-foreground)]\">\n {identityLine}\n </p>\n ) : null}\n </div>\n {actionSlot ? (\n <div className=\"ds:ms-auto ds:flex ds:shrink-0 ds:items-center ds:gap-[var(--spacing-xs)]\">\n {actionSlot}\n </div>\n ) : null}\n </div>\n );\n\n /* ---------------------------------------------------------------- */\n /* Flag strip */\n /* ---------------------------------------------------------------- */\n\n const flagStrip = showFlagStrip ? (\n <div\n role=\"list\"\n aria-label={t('patientSummaryCard.flagsLabel', {\n defaultValue: 'Patient attention flags',\n })}\n className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\"\n >\n {hasUnpaid ? (\n <span role=\"listitem\">\n <TransactionChip\n state=\"debt\"\n amount={(unpaidAmountCents as number) / 100}\n currency={currency}\n locale={activeLocale}\n size=\"sm\"\n showLabel\n />\n </span>\n ) : null}\n {flagBadges.map(({ key, count }) => {\n const FlagIcon = FLAG_ICON[key];\n // The Badge shows the visible icon + count; the descriptive,\n // count-interpolated accessible name lives on the wrapping\n // listitem (role=\"img\") so screen readers announce e.g.\n // \"3 unsigned documents\" rather than just the bare number.\n return (\n <span\n key={key}\n role=\"listitem\"\n aria-label={t(`patientSummaryCard.flag.${key}`, {\n count,\n defaultValue: FLAG_LABEL_DEFAULTS[key],\n })}\n className=\"ds:inline-flex\"\n >\n <Badge\n aria-hidden=\"true\"\n variant={FLAG_VARIANT[key]}\n size=\"md\"\n withDot\n leading={<FlagIcon aria-hidden=\"true\" />}\n >\n {count}\n </Badge>\n </span>\n );\n })}\n </div>\n ) : null;\n\n /* ---------------------------------------------------------------- */\n /* Family relations */\n /* ---------------------------------------------------------------- */\n\n const familyBlock =\n familyRelations && familyRelations.length > 0 ? (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <span className=\"type-label ds:text-[color:var(--muted-foreground)]\">\n {t('patientSummaryCard.label.familyRelations', {\n defaultValue: 'Family relations',\n })}\n </span>\n <div className=\"ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]\">\n {familyRelations.map((rel, index) => {\n const safeUrl =\n !!rel.relatedPatient.url &&\n isSafeEntityUrl(rel.relatedPatient.url);\n const tagLabel = t('patientSummaryCard.value.familyRelation', {\n relation: rel.relation,\n name: rel.relatedPatient.name,\n defaultValue: '{{relation}}: {{name}}',\n });\n return safeUrl ? (\n <Link\n key={`${rel.relation}-${index}`}\n href={rel.relatedPatient.url as string}\n intent=\"default\"\n className=\"ds:no-underline\"\n >\n <Tag label={tagLabel} variant=\"neutral\" />\n </Link>\n ) : (\n <Tag\n key={`${rel.relation}-${index}`}\n label={tagLabel}\n variant=\"neutral\"\n />\n );\n })}\n </div>\n </div>\n ) : null;\n\n /* ---------------------------------------------------------------- */\n /* Body */\n /* ---------------------------------------------------------------- */\n\n const body = (\n <div className={`ds:flex ds:flex-col ${bodyGapClass}`}>\n {header}\n {flagStrip}\n {rows.length > 0 ? (\n <KeyValueList rowGap=\"sm\">\n {rows.map((row) => (\n <KeyValuePair\n key={row.key}\n icon={row.icon}\n label={row.label}\n value={row.value}\n />\n ))}\n </KeyValueList>\n ) : null}\n {familyBlock}\n </div>\n );\n\n const inner = loading ? skeletonBody : body;\n\n return (\n <div\n ref={ref}\n role=\"region\"\n // When the heading is rendered, the patient name (via\n // aria-labelledby) is the region's accessible name — the more\n // meaningful label than a generic \"Patient overview\". A consumer\n // aria-label still wins; the generic fallback only applies when\n // there is no heading to point at (loading state).\n aria-label={loading || ariaLabel ? resolvedAriaLabel : undefined}\n aria-labelledby={loading ? undefined : headingId}\n aria-busy={loading || undefined}\n data-component=\"patient-summary-card\"\n data-component-id={id}\n data-density={density}\n id={id}\n className={rootVariants({ surface, density, 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\nPatientSummaryCard.displayName = 'PatientSummaryCard';\n\n/** Variant unions re-exported for downstream typing. */\nexport type PatientSummaryCardSurface = NonNullable<\n VariantProps<typeof rootVariants>['surface']\n>;\nexport type PatientSummaryCardDensity = NonNullable<\n VariantProps<typeof rootVariants>['density']\n>;\n"],"names":["__iconNode","FileExclamationPoint","createLucideIcon","MessageSquareWarning","Users","patientSummaryCardAgent","handle","rootVariants","cva","normalisePhone","raw","FLAG_ICON","FileWarning","FLAG_VARIANT","FLAG_LABEL_DEFAULTS","MARKETING_CONSENT_DEFAULTS","PatientSummaryCard","forwardRef","name","title","ageYears","dateOfBirth","gender","avatarUrl","patientUrl","email","emailEnabled","phone","cityProvince","marketingConsent","aiConsent","flags","familyRelations","assignedTo","currency","locale","loading","actionSlot","onActivate","surface","density","ariaLabel","id","className","rest","ref","t","i18n","useTranslation","headingId","useId","activeLocale","unpaidAmountCents","unsignedDocumentsCount","highlightedAnamnesisCount","hasUnpaid","useMemo","useAgentRegistration","resolvedAriaLabel","TITLE_DEFAULTS","honorific","headingText","GENDER_DEFAULTS","identitySegments","identityLine","isUrlSafe","isSafeEntityUrl","avatarSize","headingClass","bodyGapClass","rows","jsx","Mail","Link","Phone","jsxs","Badge","MapPin","ShieldCheck","Sparkles","Avatar","flagBadges","showFlagStrip","skeletonBody","Skeleton","heading","header","flagStrip","TransactionChip","key","count","FlagIcon","familyBlock","rel","index","safeUrl","tagLabel","Tag","body","KeyValueList","row","KeyValuePair","inner","Card"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAC7C,GACMC,KAAuBC,EAAiB,0BAA0BF,EAAU;ACpBlF;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAAA,EAC3C,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAC1C,GACMG,KAAuBD,EAAiB,0BAA0BF,EAAU;ACpBlF;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,6CAA6C,KAAK,SAAQ,CAAE;AAAA,EAC1E,CAAC,QAAQ,EAAE,GAAG,+BAA+B,KAAK,SAAQ,CAAE;AAAA,EAC5D,CAAC,QAAQ,EAAE,GAAG,8BAA8B,KAAK,SAAQ,CAAE;AAAA,EAC3D,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,QAAO,CAAE;AACvD,GACMI,KAAQF,EAAiB,SAASF,EAAU,GCDrCK,KAAkE;AAAA,EAC7E,IAAI;AAAA,EACJ,cAAc,CAAC,aAAa;AAAA,EAC5B,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aACE;AAAA,MACF,MAAM,CAACC,MAAWA,EAAO,WAAA;AAAA,IAAW;AAAA,EACtC;AAAA,EAEF,SAAS,CAAA;AAAA,EACT,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAAA,IAEf,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GCkBMC,KAAeC,GAAI,+CAA+C;AAAA,EACtE,UAAU;AAAA;AAAA;AAAA,IAGR,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA;AAAA;AAAA,IAIZ,SAAS;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EAAA;AAEb,CAAC;AA6JD,SAASC,GAAeC,GAAqB;AAC3C,SAAOA,EAAI,QAAQ,WAAW,EAAE;AAClC;AASA,MAAMC,KAAyC;AAAA,EAC7C,sBAAsBR;AAAA,EACtB,mBAAmBS;AACrB,GAEMC,KAAqD;AAAA,EACzD,sBAAsB;AAAA,EACtB,mBAAmB;AACrB,GAGMC,KAA+C;AAAA,EACnD,sBAAsB;AAAA,EACtB,mBAAmB;AACrB,GAGMC,KAGF;AAAA,EACF,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,eAAe;AACjB,GAMaC,KAAqBC;AAAA,EAIhC,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,QAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,cAAcC;AAAA,IACd,IAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,OACG;AACH,UAAM,EAAE,GAAAC,GAAG,MAAAC,GAAA,IAASC,GAAA,GACdC,IAAYC,GAAA,GACZC,KAAehB,KAAUY,GAAK,YAAY,MAE1CK,IAAoBrB,KAAA,gBAAAA,EAAO,mBAC3BsB,KAAyBtB,KAAA,gBAAAA,EAAO,2BAA0B,GAC1DuB,KAA4BvB,KAAA,gBAAAA,EAAO,8BAA6B,GAChEwB,IAAYH,KAAqB,QAAQA,IAAoB,GAI7D9C,KAASkD;AAAA,MACb,OAAO;AAAA,QACL,YAAY,OAAO;AAAA,UACjB,IAAAd;AAAA,UACA,WAAAa;AAAA,UACA,wBAAAF;AAAA,UACA,2BAAAC;AAAA,UACA,kBAAkBxB,KAAa;AAAA,QAAA;AAAA,MACjC;AAAA,MAEF;AAAA,QACEY;AAAA,QACAa;AAAA,QACAF;AAAA,QACAC;AAAA,QACAxB;AAAA,MAAA;AAAA,IACF;AAEF,IAAA2B,GAAqBpD,IAAyBC,IAAQoC,CAAE;AAExD,UAAMgB,KACJjB,KACAK,EAAE,kCAAkC,EAAE,cAAc,oBAAoB,GAGpEa,KAA8C;AAAA,MAClD,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAEAC,IAAYzC,IACd2B,EAAE,4BAA4B3B,CAAK,IAAI;AAAA,MACrC,cAAcwC,GAAexC,CAAK;AAAA,IAAA,CACnC,IACD,QACE0C,IAAcD,IAAY,GAAGA,CAAS,IAAI1C,CAAI,KAAKA,GAInD4C,KAA6C;AAAA,MACjD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,GAECC,IAA6B,CAAA;AACnC,IAAIzC,KACFyC,EAAiB;AAAA,MACfjB,EAAE,6BAA6BxB,CAAM,IAAI;AAAA,QACvC,cAAcwC,GAAgBxC,CAAM;AAAA,MAAA,CACrC;AAAA,IAAA,GAGDF,KAAY,QACd2C,EAAiB;AAAA,MACfjB,EAAE,mCAAmC;AAAA,QACnC,OAAO1B;AAAA,QACP,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,GAGDC,KACF0C,EAAiB;AAAA,MACfjB,EAAE,sCAAsC;AAAA,QACtC,MAAMzB;AAAA,QACN,cAAc;AAAA,MAAA,CACf;AAAA,IAAA;AAGL,UAAM2C,IAAeD,EAAiB;AAAA,MACpCjB,EAAE,yCAAyC,EAAE,cAAc,OAAO;AAAA,IAAA,GAG9DmB,KAAY,CAAC,CAACzC,KAAc0C,EAAgB1C,CAAU,GAEtD2C,KAAa3B,MAAY,gBAAgB,OAAO,MAChD4B,IACJ5B,MAAY,gBAAgB,oBAAoB,mBAC5C6B,IACJ7B,MAAY,gBACR,+BACA,8BAMA8B,IAKD,CAAA;AAEL,IAAI7C,KACF6C,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACC,IAAA,EAAK,eAAY,OAAA,CAAO;AAAA,MAC/B,OAAO1B,EAAE,kCAAkC,EAAE,cAAc,SAAS;AAAA,MACpE,OAAOpB,IACL,gBAAA6C,EAACE,KAAK,MAAM,UAAUhD,CAAK,IAAI,QAAO,WAAU,SAASa,GACtD,UAAAb,EAAA,CACH,sBAEC,QAAA,EAAK,WAAU,2CACb,UAAAA,EAAA,CACH;AAAA,IAAA,CAEH,GAGCE,KACF2C,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACG,IAAA,EAAM,eAAY,OAAA,CAAO;AAAA,MAChC,OACE/C,EAAM,SACNmB,EAAE,kCAAkC,EAAE,cAAc,SAAS;AAAA,MAC/D,OACE,gBAAA6B,EAAC,QAAA,EAAK,WAAU,oEACd,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAM,OAAOhE,GAAekB,EAAM,eAAe,CAAC;AAAA,YAClD,QAAO;AAAA,YAEN,UAAAA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAERA,EAAM,aACL,gBAAA4C,EAACK,GAAA,EAAM,SAAQ,WAAU,MAAK,MAC3B,UAAA9B,EAAE,uCAAuC;AAAA,UACxC,cAAc;AAAA,QAAA,CACf,GACH,IACE;AAAA,MAAA,EAAA,CACN;AAAA,IAAA,CAEH,GAGClB,KACF0C,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACM,IAAA,EAAO,eAAY,OAAA,CAAO;AAAA,MACjC,OAAO/B,EAAE,yCAAyC;AAAA,QAChD,cAAc;AAAA,MAAA,CACf;AAAA,MACD,OAAOlB;AAAA,IAAA,CACR,GAGCC,KACFyC,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACO,IAAA,EAAY,eAAY,OAAA,CAAO;AAAA,MACtC,OAAOhC,EAAE,6CAA6C;AAAA,QACpD,cAAc;AAAA,MAAA,CACf;AAAA,MACD,OACE,gBAAAyB;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,SACE/C,MAAqB,QACjB,YACAA,MAAqB,OACnB,UACA;AAAA,UAER,MAAK;AAAA,UACL,SAAO;AAAA,UAEN,UAAAiB,EAAE,uCAAuCjB,CAAgB,IAAI;AAAA,YAC5D,cAAcd,GAA2Bc,CAAgB;AAAA,UAAA,CAC1D;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,CAEH,GAGCC,KACFwC,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACQ,IAAA,EAAS,eAAY,OAAA,CAAO;AAAA,MACnC,OAAOjC,EAAE,sCAAsC;AAAA,QAC7C,cAAc;AAAA,MAAA,CACf;AAAA,MACD,OAAOhB,EAAU,YACbgB,EAAE,+CAA+C;AAAA,QAC/C,MAAMhB,EAAU;AAAA,QAChB,IAAIA,EAAU;AAAA,QACd,cAAc;AAAA,MAAA,CACf,IACDgB,EAAE,+CAA+C;AAAA,QAC/C,MAAMhB,EAAU;AAAA,QAChB,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,CACN,GAGCG,KACFqC,EAAK,KAAK;AAAA,MACR,KAAK;AAAA,MACL,MAAM,gBAAAC,EAACnE,IAAA,EAAM,eAAY,OAAA,CAAO;AAAA,MAChC,OAAO0C,EAAE,uCAAuC;AAAA,QAC9C,cAAc;AAAA,MAAA,CACf;AAAA,MACD,OACE,gBAAA6B,EAAC,QAAA,EAAK,WAAU,sDACd,UAAA;AAAA,QAAA,gBAAAJ;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAM/C,EAAW;AAAA,YACjB,KAAKA,EAAW;AAAA,UAAA;AAAA,QAAA;AAAA,QAElB,gBAAAsC,EAAC,QAAA,EAAM,UAAAtC,EAAW,KAAA,CAAK;AAAA,MAAA,EAAA,CACzB;AAAA,IAAA,CAEH;AAOH,UAAMgD,IAAqD,CAAA;AAC3D,IAAI3B,IAA4B,KAC9B2B,EAAW,KAAK;AAAA,MACd,KAAK;AAAA,MACL,OAAO3B;AAAA,IAAA,CACR,GAECD,IAAyB,KAC3B4B,EAAW,KAAK;AAAA,MACd,KAAK;AAAA,MACL,OAAO5B;AAAA,IAAA,CACR;AAGH,UAAM6B,KAAgB3B,KAAa0B,EAAW,SAAS,GAMjDE,KACJ,gBAAAR,EAAC,OAAA,EAAI,WAAW,uBAAuBN,CAAY,IACjD,UAAA;AAAA,MAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,QAAA,gBAAAJ,EAACa,GAAA,EAAS,SAAQ,YAAW,MAAK,MAAK;AAAA,QACvC,gBAAAT,EAAC,OAAA,EAAI,WAAU,4DACb,UAAA;AAAA,UAAA,gBAAAJ,EAACa,GAAA,EAAS,SAAQ,QAAO,OAAM,OAAM;AAAA,UACrC,gBAAAb,EAACa,GAAA,EAAS,SAAQ,QAAO,OAAM,MAAA,CAAM;AAAA,QAAA,EAAA,CACvC;AAAA,MAAA,GACF;AAAA,MACA,gBAAAb,EAACa,GAAA,EAAS,SAAQ,QAAO,OAAO,EAAA,CAAG;AAAA,IAAA,GACrC,GAOIC,KAAUpB,KACd,gBAAAM;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAMjD;AAAA,QACN,QAAO;AAAA,QACP,QAAO;AAAA,QACP,SAASc;AAAA,QACT,WAAW,GAAG8B,CAAY;AAAA,QAE1B,UAAA,gBAAAG,EAAC,QAAA,EAAK,IAAItB,GAAY,UAAAY,EAAA,CAAY;AAAA,MAAA;AAAA,IAAA,IAGpC,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAItB;AAAA,QACJ,WAAW,GAAGmB,CAAY;AAAA,QAEzB,UAAAP;AAAA,MAAA;AAAA,IAAA,GAICyB,KACJ,gBAAAX,EAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,MAAA,gBAAAJ;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,MAAMb;AAAA,UACN,MAAAjD;AAAA,UACA,KAAKK;AAAA,UACL,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,gBAAAoD,EAAC,OAAA,EAAI,WAAU,wEACZ,UAAA;AAAA,QAAAU;AAAA,QACArB,IACC,gBAAAO,EAAC,KAAA,EAAE,WAAU,+DACV,aACH,IACE;AAAA,MAAA,GACN;AAAA,MACClC,IACC,gBAAAkC,EAAC,OAAA,EAAI,WAAU,6EACZ,aACH,IACE;AAAA,IAAA,GACN,GAOIgB,KAAYL,KAChB,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY7B,EAAE,iCAAiC;AAAA,UAC7C,cAAc;AAAA,QAAA,CACf;AAAA,QACD,WAAU;AAAA,QAET,UAAA;AAAA,UAAAS,IACC,gBAAAgB,EAAC,QAAA,EAAK,MAAK,YACT,UAAA,gBAAAA;AAAA,YAACiB;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,QAASpC,IAA+B;AAAA,cACxC,UAAAlB;AAAA,cACA,QAAQiB;AAAA,cACR,MAAK;AAAA,cACL,WAAS;AAAA,YAAA;AAAA,UAAA,GAEb,IACE;AAAA,UACH8B,EAAW,IAAI,CAAC,EAAE,KAAAQ,GAAK,OAAAC,QAAY;AAClC,kBAAMC,IAAWhF,GAAU8E,CAAG;AAK9B,mBACE,gBAAAlB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,MAAK;AAAA,gBACL,cAAYzB,EAAE,2BAA2B2C,CAAG,IAAI;AAAA,kBAC9C,OAAAC;AAAA,kBACA,cAAc5E,GAAoB2E,CAAG;AAAA,gBAAA,CACtC;AAAA,gBACD,WAAU;AAAA,gBAEV,UAAA,gBAAAlB;AAAA,kBAACK;AAAA,kBAAA;AAAA,oBACC,eAAY;AAAA,oBACZ,SAAS/D,GAAa4E,CAAG;AAAA,oBACzB,MAAK;AAAA,oBACL,SAAO;AAAA,oBACP,SAAS,gBAAAlB,EAACoB,GAAA,EAAS,eAAY,OAAA,CAAO;AAAA,oBAErC,UAAAD;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH;AAAA,cAhBKD;AAAA,YAAA;AAAA,UAmBX,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAED,MAMEG,KACJ5D,KAAmBA,EAAgB,SAAS,IAC1C,gBAAA2C,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,MAAA,gBAAAJ,EAAC,QAAA,EAAK,WAAU,sDACb,UAAAzB,EAAE,4CAA4C;AAAA,QAC7C,cAAc;AAAA,MAAA,CACf,GACH;AAAA,MACA,gBAAAyB,EAAC,SAAI,WAAU,oDACZ,YAAgB,IAAI,CAACsB,GAAKC,MAAU;AACnC,cAAMC,IACJ,CAAC,CAACF,EAAI,eAAe,OACrB3B,EAAgB2B,EAAI,eAAe,GAAG,GAClCG,IAAWlD,EAAE,2CAA2C;AAAA,UAC5D,UAAU+C,EAAI;AAAA,UACd,MAAMA,EAAI,eAAe;AAAA,UACzB,cAAc;AAAA,QAAA,CACf;AACD,eAAOE,IACL,gBAAAxB;AAAA,UAACE;AAAA,UAAA;AAAA,YAEC,MAAMoB,EAAI,eAAe;AAAA,YACzB,QAAO;AAAA,YACP,WAAU;AAAA,YAEV,UAAA,gBAAAtB,EAAC0B,GAAA,EAAI,OAAOD,GAAU,SAAQ,UAAA,CAAU;AAAA,UAAA;AAAA,UALnC,GAAGH,EAAI,QAAQ,IAAIC,CAAK;AAAA,QAAA,IAQ/B,gBAAAvB;AAAA,UAAC0B;AAAA,UAAA;AAAA,YAEC,OAAOD;AAAA,YACP,SAAQ;AAAA,UAAA;AAAA,UAFH,GAAGH,EAAI,QAAQ,IAAIC,CAAK;AAAA,QAAA;AAAA,MAKnC,CAAC,EAAA,CACH;AAAA,IAAA,EAAA,CACF,IACE,MAMAI,KACJ,gBAAAvB,EAAC,OAAA,EAAI,WAAW,uBAAuBN,CAAY,IAChD,UAAA;AAAA,MAAAiB;AAAA,MACAC;AAAA,MACAjB,EAAK,SAAS,IACb,gBAAAC,EAAC4B,IAAA,EAAa,QAAO,MAClB,UAAA7B,EAAK,IAAI,CAAC8B,MACT,gBAAA7B;AAAA,QAAC8B;AAAA,QAAA;AAAA,UAEC,MAAMD,EAAI;AAAA,UACV,OAAOA,EAAI;AAAA,UACX,OAAOA,EAAI;AAAA,QAAA;AAAA,QAHNA,EAAI;AAAA,MAAA,CAKZ,GACH,IACE;AAAA,MACHR;AAAA,IAAA,GACH,GAGIU,IAAQlE,IAAU+C,KAAee;AAEvC,WACE,gBAAA3B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAA1B;AAAA,QACA,MAAK;AAAA,QAML,cAAYT,KAAWK,IAAYiB,KAAoB;AAAA,QACvD,mBAAiBtB,IAAU,SAAYa;AAAA,QACvC,aAAWb,KAAW;AAAA,QACtB,kBAAe;AAAA,QACf,qBAAmBM;AAAA,QACnB,gBAAcF;AAAA,QACd,IAAAE;AAAA,QACA,WAAWnC,GAAa,EAAE,SAAAgC,GAAS,SAAAC,GAAS,WAAAG,IAAW;AAAA,QACtD,GAAGC;AAAA,QAEH,UAAAL,MAAY,aACX,gBAAAgC,EAACgC,GAAA,EAAK,SAAQ,YACZ,UAAA,gBAAAhC,EAACgC,EAAK,MAAL,EAAW,UAAAD,EAAA,CAAM,EAAA,CACpB,IAEAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAtF,GAAmB,cAAc;","x_google_ignoreList":[0,1,2]}