@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.
- package/dist/_chunks/{agenda-card-CFyWSX7Z.js → agenda-card-BaSfVfrL.js} +25 -29
- package/dist/_chunks/agenda-card-BaSfVfrL.js.map +1 -0
- package/dist/_chunks/{agenda-tray-Dyj9ChHC.js → agenda-tray-DQayYmQ0.js} +50 -67
- package/dist/_chunks/agenda-tray-DQayYmQ0.js.map +1 -0
- package/dist/_chunks/ai-consent-banner-DO5ingMq.js +169 -0
- package/dist/_chunks/ai-consent-banner-DO5ingMq.js.map +1 -0
- package/dist/_chunks/ai-tools-rail-CxYG04cw.js +280 -0
- package/dist/_chunks/ai-tools-rail-CxYG04cw.js.map +1 -0
- package/dist/_chunks/alia-sidebar-DlvyXgVC.js +1126 -0
- package/dist/_chunks/alia-sidebar-DlvyXgVC.js.map +1 -0
- package/dist/_chunks/anamnesis-card-CmkBVAln.js +156 -0
- package/dist/_chunks/anamnesis-card-CmkBVAln.js.map +1 -0
- package/dist/_chunks/appointment-tray-BwDHhWWC.js +419 -0
- package/dist/_chunks/appointment-tray-BwDHhWWC.js.map +1 -0
- package/dist/_chunks/{audio-recorder-C1rhKhSN.js → audio-recorder-DC-v9YFW.js} +81 -91
- package/dist/_chunks/audio-recorder-DC-v9YFW.js.map +1 -0
- package/dist/_chunks/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
- package/dist/_chunks/{bmi-calculator-CQqXTVNL.js.map → bmi-calculator-DdylQzT6.js.map} +1 -1
- package/dist/_chunks/{booking-DlDVuWMd.js → booking-WV2GSru5.js} +291 -303
- package/dist/_chunks/booking-WV2GSru5.js.map +1 -0
- package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
- package/dist/_chunks/{calculator-dialog-D-nfvteH.js.map → calculator-dialog-CFk4I91b.js.map} +1 -1
- package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
- package/dist/_chunks/calendar-days-C4BmpCZg.js.map +1 -0
- package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
- package/dist/_chunks/calendar-oYWOCrnf.js.map +1 -0
- package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
- package/dist/_chunks/care-plan-card-QmNpGggC.js.map +1 -0
- package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
- package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js.map +1 -0
- package/dist/_chunks/{chat-input-CQe7nR_v.js → chat-input-CFwc7JxL.js} +2 -1
- package/dist/_chunks/{chat-input-CQe7nR_v.js.map → chat-input-CFwc7JxL.js.map} +1 -1
- package/dist/_chunks/{chat-message-ASgGtj-L.js → chat-message-Dm8U2RY1.js} +81 -74
- package/dist/_chunks/chat-message-Dm8U2RY1.js.map +1 -0
- package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
- package/dist/_chunks/clinical-note-card-BYo437dU.js.map +1 -0
- package/dist/_chunks/code-block-HoddNOKJ.js +106 -0
- package/dist/_chunks/code-block-HoddNOKJ.js.map +1 -0
- package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
- package/dist/_chunks/contact-profile-card-DvvVfAA2.js.map +1 -0
- package/dist/_chunks/{cycle-calculator-KxA8dqDf.js → cycle-calculator-DYvGm_m1.js} +2 -2
- package/dist/_chunks/{cycle-calculator-KxA8dqDf.js.map → cycle-calculator-DYvGm_m1.js.map} +1 -1
- package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
- package/dist/_chunks/dialog-DMGnSelc.js.map +1 -0
- package/dist/_chunks/download-CDF1sbL9.js +16 -0
- package/dist/_chunks/download-CDF1sbL9.js.map +1 -0
- package/dist/_chunks/{due-date-calculator-mFxpHLml.js → due-date-calculator-BXd3ANj7.js} +2 -2
- package/dist/_chunks/{due-date-calculator-mFxpHLml.js.map → due-date-calculator-BXd3ANj7.js.map} +1 -1
- package/dist/_chunks/{editable-currency-cell-renderer-BEBUQl9P.js → editable-currency-cell-renderer-CLil9B29.js} +283 -293
- package/dist/_chunks/editable-currency-cell-renderer-CLil9B29.js.map +1 -0
- package/dist/_chunks/entity-card-COhmqHly.js +69 -0
- package/dist/_chunks/entity-card-COhmqHly.js.map +1 -0
- package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js → gestational-age-calculator-Crj6FgZw.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js.map → gestational-age-calculator-Crj6FgZw.js.map} +1 -1
- package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
- package/dist/_chunks/insert-result-DNdi_JYW.js.map +1 -0
- package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
- package/dist/_chunks/is-safe-url-DkETxeHz.js.map +1 -0
- package/dist/_chunks/languages-DsVf_WzT.js +19 -0
- package/dist/_chunks/languages-DsVf_WzT.js.map +1 -0
- package/dist/_chunks/layers-pzGcbLPj.js +34 -0
- package/dist/_chunks/layers-pzGcbLPj.js.map +1 -0
- package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
- package/dist/_chunks/message-card-Dvl1TgaN.js.map +1 -0
- package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
- package/dist/_chunks/{message-tray-hSQff9u4.js.map → message-tray-Dl6GQaaV.js.map} +1 -1
- package/dist/_chunks/mic-B4Gog3Gi.js +16 -0
- package/dist/_chunks/mic-B4Gog3Gi.js.map +1 -0
- package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
- package/dist/_chunks/operator-hero-CM8949Hd.js.map +1 -0
- package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
- package/dist/_chunks/patient-summary-card-BnTqxcTr.js.map +1 -0
- package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
- package/dist/_chunks/payment-request-card-B_lyobd0.js.map +1 -0
- package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-G8SU6Azw.js} +3 -3
- package/dist/_chunks/pdf-viewer-G8SU6Azw.js.map +1 -0
- package/dist/_chunks/pencil-CfQX-0Qc.js +21 -0
- package/dist/_chunks/pencil-CfQX-0Qc.js.map +1 -0
- package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
- package/dist/_chunks/periodontal-chart-card-BYs9hax1.js.map +1 -0
- package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
- package/dist/_chunks/phone-Bi5yUm4I.js.map +1 -0
- package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-BFL_mcDW.js} +3 -2
- package/dist/_chunks/{practice-results-DDi-kvaD.js.map → practice-results-BFL_mcDW.js.map} +1 -1
- package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js → pregnancy-weight-gain-C7dK89jE.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js.map → pregnancy-weight-gain-C7dK89jE.js.map} +1 -1
- package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
- package/dist/_chunks/scan-line-lGioFwLC.js.map +1 -0
- package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
- package/dist/_chunks/shield-check-BjCGH_Sr.js.map +1 -0
- package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-DPI2pY9V.js} +2 -2
- package/dist/_chunks/{sign-document-BCyLpFHJ.js.map → sign-document-DPI2pY9V.js.map} +1 -1
- package/dist/_chunks/{streaming-text-GH07yIYh.js → streaming-text-CfhDqtIT.js} +49 -45
- package/dist/_chunks/streaming-text-CfhDqtIT.js.map +1 -0
- package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
- package/dist/_chunks/{transaction-chip-B8ujzowA.js.map → transaction-chip-BZCa6XDn.js.map} +1 -1
- package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
- package/dist/_chunks/{unit-converter-u3CwNDpP.js.map → unit-converter-jWp3Z85y.js.map} +1 -1
- package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
- package/dist/_chunks/user-cog-BS_qc8nA.js.map +1 -0
- package/dist/_chunks/video-BAeICxCT.js +21 -0
- package/dist/_chunks/video-BAeICxCT.js.map +1 -0
- package/dist/_chunks/{workflow-map-BFNpzTiw.js → workflow-map-ZXw-zsZ8.js} +186 -219
- package/dist/_chunks/workflow-map-ZXw-zsZ8.js.map +1 -0
- package/dist/agent-catalog.json +324 -1
- package/dist/components/_shared/code-block.d.ts +39 -0
- package/dist/components/_shared/code-block.d.ts.map +1 -0
- package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
- package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -0
- package/dist/components/_shared/entity-card/index.d.ts +3 -0
- package/dist/components/_shared/entity-card/index.d.ts.map +1 -0
- package/dist/components/_shared/index.d.ts +2 -0
- package/dist/components/_shared/index.d.ts.map +1 -1
- package/dist/components/_shared/is-safe-url.d.ts +13 -0
- package/dist/components/_shared/is-safe-url.d.ts.map +1 -0
- package/dist/components/agenda-card/agenda-card.d.ts +1 -2
- package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
- package/dist/components/agenda-card/index.d.ts +2 -1
- package/dist/components/agenda-card/index.d.ts.map +1 -1
- package/dist/components/agenda-card/index.js +6 -5
- package/dist/components/agenda-card/index.js.map +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
- package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +1 -0
- package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
- package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +1 -0
- package/dist/components/ai-consent-banner/index.d.ts +4 -0
- package/dist/components/ai-consent-banner/index.d.ts.map +1 -0
- package/dist/components/ai-consent-banner/index.js +6 -0
- package/dist/components/ai-consent-banner/index.js.map +1 -0
- package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
- package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -0
- package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
- package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +1 -0
- package/dist/components/ai-tools-rail/index.d.ts +4 -0
- package/dist/components/ai-tools-rail/index.d.ts.map +1 -0
- package/dist/components/ai-tools-rail/index.js +6 -0
- package/dist/components/ai-tools-rail/index.js.map +1 -0
- package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
- package/dist/components/anamnesis-card/anamnesis-card.d.ts.map +1 -0
- package/dist/components/anamnesis-card/index.d.ts +3 -0
- package/dist/components/anamnesis-card/index.d.ts.map +1 -0
- package/dist/components/anamnesis-card/index.js +5 -0
- package/dist/components/anamnesis-card/index.js.map +1 -0
- package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
- package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -0
- package/dist/components/appointment-card/appointment-card.d.ts +93 -0
- package/dist/components/appointment-card/appointment-card.d.ts.map +1 -0
- package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
- package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -0
- package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
- package/dist/components/appointment-card/appointment-tray.d.ts.map +1 -0
- package/dist/components/appointment-card/index.d.ts +8 -0
- package/dist/components/appointment-card/index.d.ts.map +1 -0
- package/dist/components/appointment-card/index.js +10 -0
- package/dist/components/appointment-card/index.js.map +1 -0
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calculator-dialog/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
- package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -0
- package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
- package/dist/components/care-plan-card/care-plan-card.d.ts.map +1 -0
- package/dist/components/care-plan-card/index.d.ts +4 -0
- package/dist/components/care-plan-card/index.d.ts.map +1 -0
- package/dist/components/care-plan-card/index.js +6 -0
- package/dist/components/care-plan-card/index.js.map +1 -0
- package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
- package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -0
- package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
- package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts.map +1 -0
- package/dist/components/care-plan-entry-card/index.d.ts +4 -0
- package/dist/components/care-plan-entry-card/index.d.ts.map +1 -0
- package/dist/components/care-plan-entry-card/index.js +6 -0
- package/dist/components/care-plan-entry-card/index.js.map +1 -0
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/chat-message.d.ts +13 -0
- package/dist/components/chat-message/chat-message.d.ts.map +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
- package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts.map +1 -0
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
- package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -0
- package/dist/components/clinical-note-card/index.d.ts +4 -0
- package/dist/components/clinical-note-card/index.d.ts.map +1 -0
- package/dist/components/clinical-note-card/index.js +6 -0
- package/dist/components/clinical-note-card/index.js.map +1 -0
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/dialog/dialog.d.ts +7 -0
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/message-card/index.js +5 -4
- package/dist/components/message-card/index.js.map +1 -1
- package/dist/components/message-card/message-card.d.ts +1 -2
- package/dist/components/message-card/message-card.d.ts.map +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
- package/dist/components/operator-hero/operator-hero.d.ts +9 -0
- package/dist/components/operator-hero/operator-hero.d.ts.map +1 -1
- package/dist/components/patient-summary-card/index.d.ts +4 -0
- package/dist/components/patient-summary-card/index.d.ts.map +1 -0
- package/dist/components/patient-summary-card/index.js +6 -0
- package/dist/components/patient-summary-card/index.js.map +1 -0
- package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
- package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -0
- package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
- package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -0
- package/dist/components/payment-card/index.d.ts +7 -0
- package/dist/components/payment-card/index.d.ts.map +1 -0
- package/dist/components/payment-card/index.js +8 -0
- package/dist/components/payment-card/index.js.map +1 -0
- package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
- package/dist/components/payment-card/payment-card.agent.d.ts.map +1 -0
- package/dist/components/payment-card/payment-card.d.ts +71 -0
- package/dist/components/payment-card/payment-card.d.ts.map +1 -0
- package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
- package/dist/components/payment-card/payment-request-card.agent.d.ts.map +1 -0
- package/dist/components/payment-card/payment-request-card.d.ts +43 -0
- package/dist/components/payment-card/payment-request-card.d.ts.map +1 -0
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/periodontal-chart-card/index.d.ts +4 -0
- package/dist/components/periodontal-chart-card/index.d.ts.map +1 -0
- package/dist/components/periodontal-chart-card/index.js +7 -0
- package/dist/components/periodontal-chart-card/index.js.map +1 -0
- package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
- package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts.map +1 -0
- package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
- package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts.map +1 -0
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/public-header/public-header.d.ts +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/stat/stat.d.ts +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/streaming-text/streaming-text.d.ts.map +1 -1
- package/dist/components/transaction-chip/index.js +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/i18n/locales/ar.d.ts +366 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +367 -1
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +366 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +367 -1
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +366 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +367 -1
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +366 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +367 -1
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +366 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +367 -1
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +366 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +367 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +366 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +367 -1
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +366 -0
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +367 -1
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +366 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +367 -1
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +366 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +367 -1
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +366 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +367 -1
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +366 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +367 -1
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +366 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +367 -1
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +366 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +367 -1
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +366 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +367 -1
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +366 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +367 -1
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +366 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +367 -1
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +366 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +367 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +527 -491
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +367 -1
- package/dist/locales/de.json +367 -1
- package/dist/locales/el.json +367 -1
- package/dist/locales/en.json +367 -1
- package/dist/locales/es.json +367 -1
- package/dist/locales/fr.json +367 -1
- package/dist/locales/hi.json +367 -1
- package/dist/locales/it.json +367 -1
- package/dist/locales/ja.json +367 -1
- package/dist/locales/nl.json +367 -1
- package/dist/locales/pl.json +367 -1
- package/dist/locales/pt.json +367 -1
- package/dist/locales/ro.json +367 -1
- package/dist/locales/ru.json +367 -1
- package/dist/locales/sq.json +367 -1
- package/dist/locales/sv.json +367 -1
- package/dist/locales/tr.json +367 -1
- package/dist/locales/zh.json +367 -1
- package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
- package/dist/patterns/alia-assistant/alia-types.d.ts +76 -0
- package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +42 -1
- package/dist/_chunks/agenda-card-CFyWSX7Z.js.map +0 -1
- package/dist/_chunks/agenda-tray-Dyj9ChHC.js.map +0 -1
- package/dist/_chunks/alia-sidebar-Be8FhKYd.js +0 -837
- package/dist/_chunks/alia-sidebar-Be8FhKYd.js.map +0 -1
- package/dist/_chunks/audio-recorder-C1rhKhSN.js.map +0 -1
- package/dist/_chunks/booking-DlDVuWMd.js.map +0 -1
- package/dist/_chunks/calendar-YHFknAGv.js.map +0 -1
- package/dist/_chunks/chat-message-ASgGtj-L.js.map +0 -1
- package/dist/_chunks/contact-profile-card-DHyuAPXM.js.map +0 -1
- package/dist/_chunks/dialog-BTpZV6It.js.map +0 -1
- package/dist/_chunks/editable-currency-cell-renderer-BEBUQl9P.js.map +0 -1
- package/dist/_chunks/insert-result-C5ABnzDl.js.map +0 -1
- package/dist/_chunks/message-card-DSPw5ghw.js.map +0 -1
- package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
- package/dist/_chunks/operator-hero-7LiiP7zi.js.map +0 -1
- package/dist/_chunks/pdf-viewer-CWEXTlwq.js.map +0 -1
- package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
- package/dist/_chunks/shield-check-C73ma9Cs.js.map +0 -1
- package/dist/_chunks/streaming-text-GH07yIYh.js.map +0 -1
- 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, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\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
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { c as
|
|
4
|
-
import { useTranslation as
|
|
5
|
-
import { B as
|
|
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
|
|
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
|
|
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
|
|
13
|
-
import { S as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { M as
|
|
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
|
-
],
|
|
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
|
-
},
|
|
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
|
|
77
|
+
function ye(t) {
|
|
91
78
|
return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(t.line)}`;
|
|
92
79
|
}
|
|
93
|
-
function
|
|
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
|
|
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
|
|
109
|
-
const s =
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
138
|
-
profession:
|
|
124
|
+
currencyCode: y = "EUR",
|
|
125
|
+
profession: C,
|
|
139
126
|
specializedInFearPatients: G,
|
|
140
127
|
googleMapsApiKey: P,
|
|
141
|
-
mapZoom:
|
|
142
|
-
onPhoneClick:
|
|
143
|
-
onWhatsAppClick:
|
|
144
|
-
onMapClick:
|
|
145
|
-
onEmailClick:
|
|
146
|
-
headerSlot:
|
|
147
|
-
footerSlot:
|
|
148
|
-
mapSlot:
|
|
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":
|
|
151
|
-
id:
|
|
152
|
-
className:
|
|
153
|
-
...
|
|
154
|
-
},
|
|
155
|
-
const { t: n, i18n: w } =
|
|
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
|
|
158
|
-
}, [x,
|
|
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__ */
|
|
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:
|
|
155
|
+
href: ye(a),
|
|
169
156
|
external: !0,
|
|
170
157
|
intent: "default",
|
|
171
|
-
onClick:
|
|
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(
|
|
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:
|
|
172
|
+
onClick: q,
|
|
186
173
|
children: c
|
|
187
174
|
}
|
|
188
175
|
)
|
|
189
176
|
}), s && o.push({
|
|
190
177
|
key: "whatsapp",
|
|
191
|
-
icon: /* @__PURE__ */ e(
|
|
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,
|
|
183
|
+
href: be(s, u),
|
|
197
184
|
external: !0,
|
|
198
185
|
intent: "default",
|
|
199
|
-
onClick:
|
|
186
|
+
onClick: W,
|
|
200
187
|
children: s
|
|
201
188
|
}
|
|
202
189
|
)
|
|
203
190
|
}), m && o.push({
|
|
204
191
|
key: "email",
|
|
205
|
-
icon: /* @__PURE__ */ e(
|
|
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:
|
|
199
|
+
onClick: Y,
|
|
213
200
|
children: m
|
|
214
201
|
}
|
|
215
202
|
)
|
|
216
203
|
}), h && o.push({
|
|
217
204
|
key: "website",
|
|
218
|
-
icon: /* @__PURE__ */ e(
|
|
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
|
|
225
|
-
return w.exists(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
239
|
-
}),
|
|
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(
|
|
228
|
+
icon: /* @__PURE__ */ e(B, { "aria-hidden": "true" }),
|
|
242
229
|
label: n("contactProfileCard.label.firstVisitPrice"),
|
|
243
|
-
value:
|
|
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
|
-
}),
|
|
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:
|
|
254
|
-
}),
|
|
255
|
-
|
|
256
|
-
{ getProfession: () =>
|
|
257
|
-
|
|
240
|
+
value: C
|
|
241
|
+
}), me(
|
|
242
|
+
ve,
|
|
243
|
+
{ getProfession: () => C },
|
|
244
|
+
b
|
|
258
245
|
);
|
|
259
|
-
const
|
|
260
|
-
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
] }),
|
|
284
|
-
/* @__PURE__ */
|
|
285
|
-
|
|
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:
|
|
278
|
+
children: N
|
|
292
279
|
}
|
|
293
280
|
)
|
|
294
281
|
] }),
|
|
295
|
-
|
|
282
|
+
ie
|
|
296
283
|
] });
|
|
297
284
|
return /* @__PURE__ */ e(
|
|
298
285
|
"div",
|
|
299
286
|
{
|
|
300
|
-
ref:
|
|
287
|
+
ref: te,
|
|
301
288
|
role: "region",
|
|
302
|
-
"aria-label":
|
|
289
|
+
"aria-label": re,
|
|
303
290
|
"aria-labelledby": M,
|
|
304
291
|
"data-component": "contact-profile-card",
|
|
305
|
-
"data-component-id":
|
|
306
|
-
id:
|
|
307
|
-
className:
|
|
308
|
-
...
|
|
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:
|
|
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
|
-
|
|
315
|
-
const
|
|
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
|
-
],
|
|
313
|
+
], We = {
|
|
327
314
|
address: U,
|
|
328
|
-
phone:
|
|
329
|
-
whatsapp:
|
|
330
|
-
email:
|
|
331
|
-
website:
|
|
332
|
-
languages:
|
|
333
|
-
insurances:
|
|
334
|
-
firstVisitPrice:
|
|
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
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
326
|
+
We as C,
|
|
327
|
+
qe as a,
|
|
328
|
+
Me as b,
|
|
329
|
+
ve as c
|
|
343
330
|
};
|
|
344
|
-
//# sourceMappingURL=contact-profile-card-
|
|
331
|
+
//# sourceMappingURL=contact-profile-card-DvvVfAA2.js.map
|