@alfadocs/ui-kit-debug 1.133.0 → 1.134.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-B8hV3dZV.js → agenda-card-B9wgX_Ed.js} +2 -2
- package/dist/_chunks/{agenda-card-B8hV3dZV.js.map → agenda-card-B9wgX_Ed.js.map} +1 -1
- package/dist/_chunks/{agenda-tray-Bu46s3dI.js → agenda-tray-CGcS_qoM.js} +2 -2
- package/dist/_chunks/{agenda-tray-Bu46s3dI.js.map → agenda-tray-CGcS_qoM.js.map} +1 -1
- package/dist/_chunks/appointment-card-DG3m9yN-.js +504 -0
- package/dist/_chunks/appointment-card-DG3m9yN-.js.map +1 -0
- package/dist/_chunks/{appointment-peek-DZa6xyUb.js → appointment-peek-BK0tDs4C.js} +2 -2
- package/dist/_chunks/{appointment-peek-DZa6xyUb.js.map → appointment-peek-BK0tDs4C.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-DQePqpyH.js → appointment-timeline-BiI2riRZ.js} +2 -2
- package/dist/_chunks/{appointment-timeline-DQePqpyH.js.map → appointment-timeline-BiI2riRZ.js.map} +1 -1
- package/dist/_chunks/appointment-tray-ClJCtYQj.js +200 -0
- package/dist/_chunks/appointment-tray-ClJCtYQj.js.map +1 -0
- package/dist/_chunks/{appointment-workflow-status-DMjuIK90.js → appointment-workflow-status-S-lx81Yz.js} +2 -2
- package/dist/_chunks/{appointment-workflow-status-DMjuIK90.js.map → appointment-workflow-status-S-lx81Yz.js.map} +1 -1
- package/dist/_chunks/ban-CiSCCcOE.js +15 -0
- package/dist/_chunks/ban-CiSCCcOE.js.map +1 -0
- package/dist/_chunks/{calendar-BIoOeBTT.js → calendar-CyLtLBNP.js} +2 -2
- package/dist/_chunks/{calendar-BIoOeBTT.js.map → calendar-CyLtLBNP.js.map} +1 -1
- package/dist/_chunks/{calendar-appointment-editor-dialog-BHx6kUhX.js → calendar-appointment-editor-dialog-BSkIYGlW.js} +13 -13
- package/dist/_chunks/{calendar-appointment-editor-dialog-BHx6kUhX.js.map → calendar-appointment-editor-dialog-BSkIYGlW.js.map} +1 -1
- package/dist/_chunks/{calendar-event-card-BNEzkjm-.js → calendar-event-card-BJifpYZQ.js} +7 -6
- package/dist/_chunks/{calendar-event-card-BNEzkjm-.js.map → calendar-event-card-BJifpYZQ.js.map} +1 -1
- package/dist/_chunks/{care-plan-card-DKScH9Ss.js → care-plan-card-CjHq6PLo.js} +6 -6
- package/dist/_chunks/{care-plan-card-DKScH9Ss.js.map → care-plan-card-CjHq6PLo.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-AG1y3nyW.js → care-plan-entry-card-DY1toF6E.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-AG1y3nyW.js.map → care-plan-entry-card-DY1toF6E.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-Dx5OMkc9.js → care-plan-header-CeFXUDnL.js} +6 -6
- package/dist/_chunks/{care-plan-header-Dx5OMkc9.js.map → care-plan-header-CeFXUDnL.js.map} +1 -1
- package/dist/_chunks/check-in-documents-CEVcgcYZ.js +136 -0
- package/dist/_chunks/check-in-documents-CEVcgcYZ.js.map +1 -0
- package/dist/_chunks/{clinical-note-card-pPaeWWnu.js → clinical-note-card-D--IwbZa.js} +2 -2
- package/dist/_chunks/{clinical-note-card-pPaeWWnu.js.map → clinical-note-card-D--IwbZa.js.map} +1 -1
- package/dist/_chunks/document-preview-DLVIrOYV.js +385 -0
- package/dist/_chunks/document-preview-DLVIrOYV.js.map +1 -0
- package/dist/_chunks/{entity-card-fpm-KUKc.js → entity-card-p-LANpYt.js} +18 -17
- package/dist/_chunks/{entity-card-fpm-KUKc.js.map → entity-card-p-LANpYt.js.map} +1 -1
- package/dist/_chunks/{error-page-B0fGNTRB.js → error-page-WLhmWUTq.js} +100 -115
- package/dist/_chunks/error-page-WLhmWUTq.js.map +1 -0
- package/dist/_chunks/finished-terminal-unDnXT4j.js +191 -0
- package/dist/_chunks/finished-terminal-unDnXT4j.js.map +1 -0
- package/dist/_chunks/house-DGCypGTo.js +21 -0
- package/dist/_chunks/house-DGCypGTo.js.map +1 -0
- package/dist/_chunks/is-safe-url-CEy9CEml.js +8 -0
- package/dist/_chunks/is-safe-url-CEy9CEml.js.map +1 -0
- package/dist/_chunks/keypad-DBH_keVs.js +152 -0
- package/dist/_chunks/keypad-DBH_keVs.js.map +1 -0
- package/dist/_chunks/keypad-button-mOaPQRrH.js +114 -0
- package/dist/_chunks/keypad-button-mOaPQRrH.js.map +1 -0
- package/dist/_chunks/{message-card-BG3_3nN1.js → message-card-Bw_q1qKx.js} +2 -2
- package/dist/_chunks/{message-card-BG3_3nN1.js.map → message-card-Bw_q1qKx.js.map} +1 -1
- package/dist/_chunks/{message-tray-BjZv0Fsk.js → message-tray-pLGgLmoG.js} +2 -2
- package/dist/_chunks/{message-tray-BjZv0Fsk.js.map → message-tray-pLGgLmoG.js.map} +1 -1
- package/dist/_chunks/{note-attachment-MNTIqdSz.js → note-attachment-JTIy9iXN.js} +2 -2
- package/dist/_chunks/{note-attachment-MNTIqdSz.js.map → note-attachment-JTIy9iXN.js.map} +1 -1
- package/dist/_chunks/{note-timeline-BQeW0VZY.js → note-timeline-BbjHMhkL.js} +2 -2
- package/dist/_chunks/{note-timeline-BQeW0VZY.js.map → note-timeline-BbjHMhkL.js.map} +1 -1
- package/dist/_chunks/{notes-panel-Cm-_pCRJ.js → notes-panel-BAyPOr8N.js} +2 -2
- package/dist/_chunks/{notes-panel-Cm-_pCRJ.js.map → notes-panel-BAyPOr8N.js.map} +1 -1
- package/dist/_chunks/{operator-hero-CnfWckNQ.js → operator-hero-D4wfVu2l.js} +2 -2
- package/dist/_chunks/{operator-hero-CnfWckNQ.js.map → operator-hero-D4wfVu2l.js.map} +1 -1
- package/dist/_chunks/otp-input-BNOTlxq3.js +342 -0
- package/dist/_chunks/otp-input-BNOTlxq3.js.map +1 -0
- package/dist/_chunks/patient-account-settings-BkAtIxJW.js +546 -0
- package/dist/_chunks/patient-account-settings-BkAtIxJW.js.map +1 -0
- package/dist/_chunks/patient-card-DTh3QTyS.js +125 -0
- package/dist/_chunks/patient-card-DTh3QTyS.js.map +1 -0
- package/dist/_chunks/patient-check-in-resume-xhqjC6gf.js +742 -0
- package/dist/_chunks/patient-check-in-resume-xhqjC6gf.js.map +1 -0
- package/dist/_chunks/patient-sign-in-pin-CDBqV254.js +432 -0
- package/dist/_chunks/patient-sign-in-pin-CDBqV254.js.map +1 -0
- package/dist/_chunks/patient-sign-in-steps-C2JSqlok.js +199 -0
- package/dist/_chunks/patient-sign-in-steps-C2JSqlok.js.map +1 -0
- package/dist/_chunks/{patient-summary-card-BUcZ-gaL.js → patient-summary-card-Bl2NknPe.js} +2 -2
- package/dist/_chunks/{patient-summary-card-BUcZ-gaL.js.map → patient-summary-card-Bl2NknPe.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-Dv4WbRBe.js → payment-request-card-CNW00DCx.js} +6 -6
- package/dist/_chunks/{payment-request-card-Dv4WbRBe.js.map → payment-request-card-CNW00DCx.js.map} +1 -1
- package/dist/_chunks/{pdf-viewer-BnBKdx0y.js → pdf-viewer-TRC5jEm5.js} +472 -425
- package/dist/_chunks/pdf-viewer-TRC5jEm5.js.map +1 -0
- package/dist/_chunks/pin-entry-BugWQMOS.js +219 -0
- package/dist/_chunks/pin-entry-BugWQMOS.js.map +1 -0
- package/dist/_chunks/pin-indicator-Cb-n40UI.js +124 -0
- package/dist/_chunks/pin-indicator-Cb-n40UI.js.map +1 -0
- package/dist/_chunks/portal-details-CTEsm705.js +478 -0
- package/dist/_chunks/portal-details-CTEsm705.js.map +1 -0
- package/dist/_chunks/portal-documents-D8skew0h.js +902 -0
- package/dist/_chunks/portal-documents-D8skew0h.js.map +1 -0
- package/dist/_chunks/portal-parts-BdR29P7z.js +285 -0
- package/dist/_chunks/portal-parts-BdR29P7z.js.map +1 -0
- package/dist/_chunks/{privacy-mask-DJ1gee4c.js → privacy-mask-C19dJFMk.js} +5 -5
- package/dist/_chunks/{privacy-mask-DJ1gee4c.js.map → privacy-mask-C19dJFMk.js.map} +1 -1
- package/dist/_chunks/{product-hub-panel-a8wdVOUt.js → product-hub-panel-K4QbULG7.js} +2 -2
- package/dist/_chunks/{product-hub-panel-a8wdVOUt.js.map → product-hub-panel-K4QbULG7.js.map} +1 -1
- package/dist/_chunks/{registration-form-CwbhtKcy.js → registration-form-DS3RuKHu.js} +2 -2
- package/dist/_chunks/{registration-form-CwbhtKcy.js.map → registration-form-DS3RuKHu.js.map} +1 -1
- package/dist/_chunks/{reserved.agent-W8mR179D.js → reserved.agent-DOzOBUW7.js} +2 -2
- package/dist/_chunks/{reserved.agent-W8mR179D.js.map → reserved.agent-DOzOBUW7.js.map} +1 -1
- package/dist/_chunks/session-countdown-DOx1IBUB.js +232 -0
- package/dist/_chunks/session-countdown-DOx1IBUB.js.map +1 -0
- package/dist/_chunks/{sign-document-CQZVzfpk.js → sign-document-DDZbmYHu.js} +2 -2
- package/dist/_chunks/{sign-document-CQZVzfpk.js.map → sign-document-DDZbmYHu.js.map} +1 -1
- package/dist/_chunks/{signature-field-DjabvRZm.js → signature-field-BjlY_yXH.js} +39 -34
- package/dist/_chunks/signature-field-BjlY_yXH.js.map +1 -0
- package/dist/_chunks/{signature-request-4pGq3YBe.js → signature-request-CHsM_iWi.js} +2 -2
- package/dist/_chunks/{signature-request-4pGq3YBe.js.map → signature-request-CHsM_iWi.js.map} +1 -1
- package/dist/_chunks/{signature-status-chip-pIoQjvH8.js → signature-status-chip-DS9hHwIt.js} +66 -69
- package/dist/_chunks/signature-status-chip-DS9hHwIt.js.map +1 -0
- package/dist/_chunks/signing-end-screen-an9P8DOT.js +1041 -0
- package/dist/_chunks/signing-end-screen-an9P8DOT.js.map +1 -0
- package/dist/_chunks/sms-code-entry-Dgp4GwlM.js +316 -0
- package/dist/_chunks/sms-code-entry-Dgp4GwlM.js.map +1 -0
- package/dist/_chunks/step-up-dialog-C2JqJmCA.js +132 -0
- package/dist/_chunks/step-up-dialog-C2JqJmCA.js.map +1 -0
- package/dist/_chunks/{task-editor-BL2hHxNz.js → task-editor-g1AGfxhr.js} +38 -38
- package/dist/_chunks/{task-editor-BL2hHxNz.js.map → task-editor-g1AGfxhr.js.map} +1 -1
- package/dist/_chunks/{use-appointment-details-read-_b7FRB1x.js → use-appointment-details-read-Dzc6fEzG.js} +6 -6
- package/dist/_chunks/{use-appointment-details-read-_b7FRB1x.js.map → use-appointment-details-read-Dzc6fEzG.js.map} +1 -1
- package/dist/_chunks/use-zoom-drilldown-Cr1baU5X.js +221 -0
- package/dist/_chunks/use-zoom-drilldown-Cr1baU5X.js.map +1 -0
- package/dist/_chunks/{user-x-DYszNtIg.js → user-x-BJZg4kaP.js} +8 -19
- package/dist/_chunks/user-x-BJZg4kaP.js.map +1 -0
- package/dist/_chunks/{verify-identity-types-CxtrBXsZ.js → verify-identity-types-C6Bam8v6.js} +2 -2
- package/dist/_chunks/{verify-identity-types-CxtrBXsZ.js.map → verify-identity-types-C6Bam8v6.js.map} +1 -1
- package/dist/agent-catalog.json +723 -364
- package/dist/agent-i18n/en.json +75 -18
- package/dist/browser-support.js +1 -1
- package/dist/components/_shared/is-safe-url.d.ts +3 -1
- package/dist/components/_shared/is-safe-url.d.ts.map +1 -1
- package/dist/components/agenda-card/index.js +2 -2
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/appointment-card/appointment-card.d.ts +45 -0
- package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
- package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -1
- package/dist/components/appointment-card/appointment-tray.d.ts +11 -0
- package/dist/components/appointment-card/appointment-tray.d.ts.map +1 -1
- package/dist/components/appointment-card/index.js +3 -3
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/document-preview/document-preview.agent.d.ts.map +1 -1
- package/dist/components/document-preview/document-preview.d.ts +61 -7
- package/dist/components/document-preview/document-preview.d.ts.map +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/finished-terminal/finished-terminal.d.ts +63 -6
- package/dist/components/finished-terminal/finished-terminal.d.ts.map +1 -1
- package/dist/components/finished-terminal/index.d.ts +1 -1
- package/dist/components/finished-terminal/index.d.ts.map +1 -1
- package/dist/components/finished-terminal/index.js +1 -1
- package/dist/components/index.d.ts +12 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/keypad/index.d.ts +3 -0
- package/dist/components/keypad/index.d.ts.map +1 -0
- package/dist/components/keypad/index.js +6 -0
- package/dist/components/keypad/index.js.map +1 -0
- package/dist/components/keypad/keypad.d.ts +54 -0
- package/dist/components/keypad/keypad.d.ts.map +1 -0
- package/dist/components/keypad-button/index.d.ts +3 -0
- package/dist/components/keypad-button/index.d.ts.map +1 -0
- package/dist/components/keypad-button/index.js +6 -0
- package/dist/components/keypad-button/index.js.map +1 -0
- package/dist/components/keypad-button/keypad-button.d.ts +33 -0
- package/dist/components/keypad-button/keypad-button.d.ts.map +1 -0
- package/dist/components/message-card/index.js +2 -2
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/note-timeline/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts +11 -0
- package/dist/components/otp-input/otp-input.d.ts.map +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts +7 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/pin-entry/index.d.ts +3 -0
- package/dist/components/pin-entry/index.d.ts.map +1 -0
- package/dist/components/pin-entry/index.js +5 -0
- package/dist/components/pin-entry/index.js.map +1 -0
- package/dist/components/pin-entry/pin-entry.agent.d.ts +4 -0
- package/dist/components/pin-entry/pin-entry.agent.d.ts.map +1 -0
- package/dist/components/pin-entry/pin-entry.d.ts +64 -0
- package/dist/components/pin-entry/pin-entry.d.ts.map +1 -0
- package/dist/components/pin-indicator/index.d.ts +3 -0
- package/dist/components/pin-indicator/index.d.ts.map +1 -0
- package/dist/components/pin-indicator/index.js +9 -0
- package/dist/components/pin-indicator/index.js.map +1 -0
- package/dist/components/pin-indicator/pin-indicator.d.ts +34 -0
- package/dist/components/pin-indicator/pin-indicator.d.ts.map +1 -0
- package/dist/components/product-hub-tray/index.js +2 -2
- package/dist/components/session-countdown/index.js +1 -1
- package/dist/components/session-countdown/session-countdown.d.ts +19 -0
- package/dist/components/session-countdown/session-countdown.d.ts.map +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/signature-field/index.js +1 -1
- package/dist/components/signature-field/signature-field.d.ts +17 -6
- package/dist/components/signature-field/signature-field.d.ts.map +1 -1
- package/dist/components/signature-status-chip/index.js +1 -1
- package/dist/components/signature-status-chip/signature-status-chip.d.ts +3 -2
- package/dist/components/signature-status-chip/signature-status-chip.d.ts.map +1 -1
- package/dist/components/sms-code-entry/index.d.ts +3 -0
- package/dist/components/sms-code-entry/index.d.ts.map +1 -0
- package/dist/components/sms-code-entry/index.js +5 -0
- package/dist/components/sms-code-entry/index.js.map +1 -0
- package/dist/components/sms-code-entry/sms-code-entry.agent.d.ts +4 -0
- package/dist/components/sms-code-entry/sms-code-entry.agent.d.ts.map +1 -0
- package/dist/components/sms-code-entry/sms-code-entry.d.ts +156 -0
- package/dist/components/sms-code-entry/sms-code-entry.d.ts.map +1 -0
- package/dist/components/step-up-dialog/index.d.ts +3 -0
- package/dist/components/step-up-dialog/index.d.ts.map +1 -0
- package/dist/components/step-up-dialog/index.js +5 -0
- package/dist/components/step-up-dialog/index.js.map +1 -0
- package/dist/components/step-up-dialog/step-up-dialog.d.ts +108 -0
- package/dist/components/step-up-dialog/step-up-dialog.d.ts.map +1 -0
- package/dist/components/task-editor/index.js +1 -1
- package/dist/components/workflow-status/index.js +1 -1
- package/dist/core.css +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-signing-session.d.ts +7 -2
- package/dist/hooks/use-signing-session.d.ts.map +1 -1
- package/dist/host-compat.css +10 -1
- package/dist/i18n/locales/ar.d.ts +512 -1
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +509 -3
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +512 -1
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +517 -4
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +512 -1
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +512 -4
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +514 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +520 -4
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +512 -1
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +510 -4
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +512 -1
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +510 -4
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +512 -1
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +510 -4
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +512 -1
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +517 -4
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +512 -1
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +510 -4
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +512 -1
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +517 -4
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +512 -1
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +517 -4
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +512 -1
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +517 -4
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +512 -1
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +517 -4
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +512 -1
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +509 -3
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +512 -1
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +510 -4
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +512 -1
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +510 -4
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +512 -1
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +512 -4
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +512 -1
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +510 -4
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +1271 -1204
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +513 -2
- package/dist/locales/de.json +514 -3
- package/dist/locales/el.json +514 -3
- package/dist/locales/en.json +514 -3
- package/dist/locales/es.json +514 -3
- package/dist/locales/fr.json +514 -3
- package/dist/locales/hi.json +514 -3
- package/dist/locales/it.json +514 -3
- package/dist/locales/ja.json +514 -3
- package/dist/locales/nl.json +514 -3
- package/dist/locales/pl.json +514 -3
- package/dist/locales/pt.json +514 -3
- package/dist/locales/ro.json +514 -3
- package/dist/locales/ru.json +513 -2
- package/dist/locales/sq.json +514 -3
- package/dist/locales/sv.json +514 -3
- package/dist/locales/tr.json +514 -3
- package/dist/locales/zh.json +514 -3
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/check-in-documents/check-in-documents.d.ts +61 -0
- package/dist/patterns/check-in-documents/check-in-documents.d.ts.map +1 -0
- package/dist/patterns/check-in-documents/check-in-signable-document.d.ts +32 -0
- package/dist/patterns/check-in-documents/check-in-signable-document.d.ts.map +1 -0
- package/dist/patterns/check-in-documents/index.d.ts +4 -0
- package/dist/patterns/check-in-documents/index.d.ts.map +1 -0
- package/dist/patterns/check-in-documents/index.js +5 -0
- package/dist/patterns/check-in-documents/index.js.map +1 -0
- package/dist/patterns/error-page/index.js +1 -1
- package/dist/patterns/patient-account-settings/index.d.ts +4 -0
- package/dist/patterns/patient-account-settings/index.d.ts.map +1 -0
- package/dist/patterns/patient-account-settings/index.js +5 -0
- package/dist/patterns/patient-account-settings/index.js.map +1 -0
- package/dist/patterns/patient-account-settings/patient-account-settings-panels.d.ts +36 -0
- package/dist/patterns/patient-account-settings/patient-account-settings-panels.d.ts.map +1 -0
- package/dist/patterns/patient-account-settings/patient-account-settings.d.ts +94 -0
- package/dist/patterns/patient-account-settings/patient-account-settings.d.ts.map +1 -0
- package/dist/patterns/patient-account-settings/patient-account-settings.types.d.ts +91 -0
- package/dist/patterns/patient-account-settings/patient-account-settings.types.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/index.d.ts +20 -0
- package/dist/patterns/patient-check-in/index.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/index.js +13 -0
- package/dist/patterns/patient-check-in/index.js.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-changed.d.ts +33 -0
- package/dist/patterns/patient-check-in/patient-check-in-changed.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-connection-notice.d.ts +29 -0
- package/dist/patterns/patient-check-in/patient-check-in-connection-notice.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-done.d.ts +25 -0
- package/dist/patterns/patient-check-in/patient-check-in-done.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-entry.d.ts +29 -0
- package/dist/patterns/patient-check-in/patient-check-in-entry.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-hub-empty.d.ts +23 -0
- package/dist/patterns/patient-check-in/patient-check-in-hub-empty.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-hub.d.ts +61 -0
- package/dist/patterns/patient-check-in/patient-check-in-hub.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-personal-data.d.ts +73 -0
- package/dist/patterns/patient-check-in/patient-check-in-personal-data.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-privacy.d.ts +9 -0
- package/dist/patterns/patient-check-in/patient-check-in-privacy.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-resume.d.ts +29 -0
- package/dist/patterns/patient-check-in/patient-check-in-resume.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-shell.d.ts +60 -0
- package/dist/patterns/patient-check-in/patient-check-in-shell.d.ts.map +1 -0
- package/dist/patterns/patient-check-in/patient-check-in-types.d.ts +92 -0
- package/dist/patterns/patient-check-in/patient-check-in-types.d.ts.map +1 -0
- package/dist/patterns/patient-portal/index.d.ts +12 -0
- package/dist/patterns/patient-portal/index.d.ts.map +1 -0
- package/dist/patterns/patient-portal/index.js +13 -0
- package/dist/patterns/patient-portal/index.js.map +1 -0
- package/dist/patterns/patient-portal/portal-appointments.d.ts +70 -0
- package/dist/patterns/patient-portal/portal-appointments.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-details.d.ts +148 -0
- package/dist/patterns/patient-portal/portal-details.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-documents.d.ts +74 -0
- package/dist/patterns/patient-portal/portal-documents.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-format.d.ts +14 -0
- package/dist/patterns/patient-portal/portal-format.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-home.d.ts +71 -0
- package/dist/patterns/patient-portal/portal-home.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-parts.d.ts +107 -0
- package/dist/patterns/patient-portal/portal-parts.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-shell.d.ts +84 -0
- package/dist/patterns/patient-portal/portal-shell.d.ts.map +1 -0
- package/dist/patterns/patient-portal/portal-types.d.ts +157 -0
- package/dist/patterns/patient-portal/portal-types.d.ts.map +1 -0
- package/dist/patterns/patient-sign-in/index.d.ts +7 -0
- package/dist/patterns/patient-sign-in/index.d.ts.map +1 -0
- package/dist/patterns/patient-sign-in/index.js +15 -0
- package/dist/patterns/patient-sign-in/index.js.map +1 -0
- package/dist/patterns/patient-sign-in/patient-card.d.ts +74 -0
- package/dist/patterns/patient-sign-in/patient-card.d.ts.map +1 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-email.d.ts +109 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-email.d.ts.map +1 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-pin.d.ts +157 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-pin.d.ts.map +1 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-steps.d.ts +143 -0
- package/dist/patterns/patient-sign-in/patient-sign-in-steps.d.ts.map +1 -0
- package/dist/patterns/registration-form/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/patterns/signing/index.d.ts +25 -0
- package/dist/patterns/signing/index.d.ts.map +1 -0
- package/dist/patterns/signing/index.js +16 -0
- package/dist/patterns/signing/index.js.map +1 -0
- package/dist/patterns/signing/multi-field-signer.d.ts +117 -0
- package/dist/patterns/signing/multi-field-signer.d.ts.map +1 -0
- package/dist/patterns/signing/signing-awaiting-screen.d.ts +25 -0
- package/dist/patterns/signing/signing-awaiting-screen.d.ts.map +1 -0
- package/dist/patterns/signing/signing-chrome.d.ts +30 -0
- package/dist/patterns/signing/signing-chrome.d.ts.map +1 -0
- package/dist/patterns/signing/signing-document-screen.d.ts +87 -0
- package/dist/patterns/signing/signing-document-screen.d.ts.map +1 -0
- package/dist/patterns/signing/signing-end-screen.d.ts +27 -0
- package/dist/patterns/signing/signing-end-screen.d.ts.map +1 -0
- package/dist/patterns/signing/signing-finished-screen.d.ts +34 -0
- package/dist/patterns/signing/signing-finished-screen.d.ts.map +1 -0
- package/dist/patterns/signing/signing-footer.d.ts +56 -0
- package/dist/patterns/signing/signing-footer.d.ts.map +1 -0
- package/dist/patterns/signing/signing-handoff-screen.d.ts +37 -0
- package/dist/patterns/signing/signing-handoff-screen.d.ts.map +1 -0
- package/dist/patterns/signing/signing-message-dialog.d.ts +29 -0
- package/dist/patterns/signing/signing-message-dialog.d.ts.map +1 -0
- package/dist/patterns/signing/signing-progress-chip.d.ts +27 -0
- package/dist/patterns/signing/signing-progress-chip.d.ts.map +1 -0
- package/dist/patterns/signing/signing-roster.d.ts +44 -0
- package/dist/patterns/signing/signing-roster.d.ts.map +1 -0
- package/dist/patterns/signing/signing-staff-id-confirmation.d.ts +49 -0
- package/dist/patterns/signing/signing-staff-id-confirmation.d.ts.map +1 -0
- package/dist/patterns/verify-identity/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +49 -1
- package/dist/_chunks/appointment-card-OAOur8lH.js +0 -434
- package/dist/_chunks/appointment-card-OAOur8lH.js.map +0 -1
- package/dist/_chunks/appointment-tray-DSFqO5Rm.js +0 -193
- package/dist/_chunks/appointment-tray-DSFqO5Rm.js.map +0 -1
- package/dist/_chunks/document-preview-_kQ9QvZV.js +0 -291
- package/dist/_chunks/document-preview-_kQ9QvZV.js.map +0 -1
- package/dist/_chunks/error-page-B0fGNTRB.js.map +0 -1
- package/dist/_chunks/finished-terminal-FR8uc_Ws.js +0 -122
- package/dist/_chunks/finished-terminal-FR8uc_Ws.js.map +0 -1
- package/dist/_chunks/is-safe-url-DkETxeHz.js +0 -7
- package/dist/_chunks/is-safe-url-DkETxeHz.js.map +0 -1
- package/dist/_chunks/otp-input-gV1446Dw.js +0 -301
- package/dist/_chunks/otp-input-gV1446Dw.js.map +0 -1
- package/dist/_chunks/pdf-viewer-BnBKdx0y.js.map +0 -1
- package/dist/_chunks/session-countdown-C4tzbJVc.js +0 -223
- package/dist/_chunks/session-countdown-C4tzbJVc.js.map +0 -1
- package/dist/_chunks/signature-field-DjabvRZm.js.map +0 -1
- package/dist/_chunks/signature-status-chip-pIoQjvH8.js.map +0 -1
- package/dist/_chunks/use-zoom-drilldown-qCX34w9I.js +0 -210
- package/dist/_chunks/use-zoom-drilldown-qCX34w9I.js.map +0 -1
- package/dist/_chunks/user-x-DYszNtIg.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patient-sign-in-pin-CDBqV254.js","sources":["../../node_modules/lucide-react/dist/esm/icons/mail-check.mjs","../../src/patterns/patient-sign-in/patient-sign-in-email.tsx","../../src/patterns/patient-sign-in/patient-sign-in-pin.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\", key: \"12jkf8\" }],\n [\"path\", { d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\", key: \"1ocrg3\" }],\n [\"path\", { d: \"m16 19 2 2 4-4\", key: \"1b14m6\" }]\n];\nconst MailCheck = createLucideIcon(\"mail-check\", __iconNode);\n\nexport { __iconNode, MailCheck as default };\n//# sourceMappingURL=mail-check.mjs.map\n","import { useId, useRef, type ReactNode } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { MailCheck } from 'lucide-react';\nimport { Alert } from '../../components/alert';\nimport { Button } from '../../components/button';\nimport { EmailInput } from '../../components/email-input';\nimport { FormField } from '../../components/form-field';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport {\n PatientCard,\n PatientEndScreen,\n PatientNote,\n PatientTextAction,\n useAfterResult,\n} from './patient-card';\n\n/**\n * What the host reports about an email (HTP-6898, AUTH-DS-01:101, D124):\n * `no-account` means no account has this email, and the person is told to\n * use the practice invite; `slowed` means too many lookups were tried from\n * this connection. The host decides both; the kit never looks anything up.\n */\nexport type PatientEmailError = 'no-account' | 'slowed';\n\ninterface EmailFormProps {\n email?: string;\n defaultEmail?: string;\n onEmailChange?: (email: string) => void;\n onSubmit: (email: string) => void;\n submitting: boolean;\n error: PatientEmailError | null;\n errorText?: string;\n challenge?: ReactNode;\n submitLabel: string;\n action: string;\n}\n\n/** The email field, the host's robot check, the button and the two errors. */\nfunction EmailForm({\n email,\n defaultEmail,\n onEmailChange,\n onSubmit,\n submitting,\n error,\n errorText,\n challenge,\n submitLabel,\n action,\n}: EmailFormProps) {\n const { t } = useTranslation('ui');\n const field = useRef<HTMLInputElement>(null);\n const messageId = useId();\n const [value, setValue] = useControllableState<string>({\n value: email,\n defaultValue: defaultEmail ?? '',\n onChange: onEmailChange,\n });\n const current = value ?? '';\n const empty = current.trim() === '';\n // The message hides while the host checks again (as SmsCodeEntry does), so\n // a second identical refusal is announced afresh. The field points at it.\n const refused = error !== null && !submitting;\n\n // After the host reports a refusal, focus returns to the field.\n useAfterResult(error, submitting, () => field.current?.focus());\n\n return (\n <form\n noValidate\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]\"\n onSubmit={(event) => {\n event.preventDefault();\n // Only \"not empty\" gates the submit; the server decides the rest.\n if (!empty && !submitting) onSubmit(current.trim());\n }}\n >\n {refused && error === 'no-account' ? (\n <Alert variant=\"error\" id={messageId}>\n <Alert.Description>\n {errorText ?? t('patientSignIn.email.noAccount')}\n </Alert.Description>\n </Alert>\n ) : null}\n {refused && error === 'slowed' ? (\n <Alert variant=\"warning\" id={messageId}>\n <Alert.Title as=\"h2\">\n {t('patientSignIn.email.slowedTitle')}\n </Alert.Title>\n <Alert.Description>\n {errorText ?? t('patientSignIn.email.slowedBody')}\n </Alert.Description>\n </Alert>\n ) : null}\n <FormField label={t('patientSignIn.email.label')}>\n <EmailInput\n ref={field}\n autoComplete=\"username\"\n disableBuiltInValidation\n errorMessage={null}\n aria-invalid={\n error === 'no-account' && !submitting ? true : undefined\n }\n aria-describedby={refused ? messageId : undefined}\n value={current}\n onChange={(event) => setValue(event.target.value)}\n data-field=\"email\"\n />\n </FormField>\n {challenge}\n <Button\n type=\"submit\"\n intent=\"primary\"\n className=\"ds:min-h-[var(--min-target-size)] ds:w-full\"\n data-action={action}\n disabled={empty}\n loading={submitting}\n >\n {submitLabel}\n </Button>\n </form>\n );\n}\n\nexport interface PatientSignInEmailProps {\n /** The email, when controlled. Pair with `onEmailChange`. */\n email?: string;\n /** The first email, when uncontrolled. */\n defaultEmail?: string;\n /** Called with the text on every change, controlled or not. */\n onEmailChange?: (email: string) => void;\n /**\n * Called with the trimmed email when \"Continue\" is pressed or Enter is\n * hit. Only an empty field blocks it. The host looks the account up.\n */\n onSubmit: (email: string) => void;\n /**\n * The host is looking the email up: the button shows a spinner.\n * Set it while checking: a repeated refusal then clears the message and\n * returns focus to the field.\n */\n submitting?: boolean;\n /**\n * What the host found. `no-account`: tells the person to use the practice\n * invite. `slowed`: too many tries; the field and button stay usable so a\n * robot check in `challenge` can be passed. Focus returns to the email\n * after a refusal.\n */\n error?: PatientEmailError | null;\n /** Host text that replaces the default message for `error`. */\n errorText?: string;\n /** The host's robot check, shown above the button. */\n challenge?: ReactNode;\n /**\n * The language control. The host passes a controlled `LocalePicker`: it\n * is a slot because `LocalePicker` writes to localStorage and the kit\n * stores nothing. The pattern wraps the slot in a group named\n * \"Language\", so the host adds no label of its own.\n */\n languageSlot?: ReactNode;\n /** Reserved for the passkey control. Renders nothing while empty. */\n passkeySlot?: ReactNode;\n /** Replaces the title (for example on an invite). */\n title?: string;\n /** Replaces the sentence under the title (for example on an invite). */\n description?: ReactNode;\n /** Move focus to the heading when the screen shows. */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * Sign-in screen 1 (D124): the email and the language. The kit looks nothing\n * up: the host answers with `error`, and moves on to the PIN only for an\n * email with an account.\n */\nexport function PatientSignInEmail({\n email,\n defaultEmail,\n onEmailChange,\n onSubmit,\n submitting = false,\n error = null,\n errorText,\n challenge,\n languageSlot,\n passkeySlot,\n title,\n description,\n focusOnMount = false,\n className,\n}: PatientSignInEmailProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientCard\n component=\"patient-sign-in-email\"\n className={className}\n title={title ?? t('patientSignIn.email.title')}\n description={description ?? t('patientSignIn.email.intro')}\n headerAction={\n languageSlot ? (\n <div role=\"group\" aria-label={t('patientSignIn.email.languageLabel')}>\n {languageSlot}\n </div>\n ) : undefined\n }\n focusOnMount={focusOnMount}\n footer={\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n <PatientNote>{t('patientSignIn.email.twoChecks')}</PatientNote>\n <PatientNote>{t('patientSignIn.email.passkeyNote')}</PatientNote>\n {passkeySlot}\n </div>\n }\n >\n <EmailForm\n email={email}\n defaultEmail={defaultEmail}\n onEmailChange={onEmailChange}\n onSubmit={onSubmit}\n submitting={submitting}\n error={error}\n errorText={errorText}\n challenge={challenge}\n submitLabel={t('patientSignIn.email.submit')}\n action=\"sign-in-email\"\n />\n </PatientCard>\n );\n}\n\nexport interface PatientForgotPinProps {\n /** The email, when controlled. Pair with `onEmailChange`. */\n email?: string;\n /** The first email, when uncontrolled. */\n defaultEmail?: string;\n /** Called with the text on every change, controlled or not. */\n onEmailChange?: (email: string) => void;\n /**\n * Called with the trimmed email when \"Send the link\" is pressed. Only an\n * empty field blocks it. The host looks the account up and sends the link.\n */\n onSubmit: (email: string) => void;\n /**\n * The host is looking the email up: the button shows a spinner.\n * Set it while checking: a repeated refusal then clears the message and\n * returns focus to the field.\n */\n submitting?: boolean;\n /** Same two states and the same message as sign-in; no link is sent (D130). */\n error?: PatientEmailError | null;\n /** Host text that replaces the default message for `error`. */\n errorText?: string;\n /** The host's robot check, shown above the button. */\n challenge?: ReactNode;\n /** Called by \"Back to sign in\". The link shows only when this is given. */\n onBack?: () => void;\n /** Move focus to the heading when the screen shows. */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/** \"Forgot your PIN?\", step 1 (D130): the email. The host sends the link. */\nexport function PatientForgotPin({\n email,\n defaultEmail,\n onEmailChange,\n onSubmit,\n submitting = false,\n error = null,\n errorText,\n challenge,\n onBack,\n focusOnMount = false,\n className,\n}: PatientForgotPinProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientCard\n component=\"patient-forgot-pin\"\n className={className}\n title={t('patientSignIn.forgot.title')}\n description={t('patientSignIn.forgot.body')}\n focusOnMount={focusOnMount}\n footer={\n onBack ? (\n <PatientTextAction action=\"back\" onClick={onBack}>\n {t('patientSignIn.forgot.back')}\n </PatientTextAction>\n ) : undefined\n }\n >\n <EmailForm\n email={email}\n defaultEmail={defaultEmail}\n onEmailChange={onEmailChange}\n onSubmit={onSubmit}\n submitting={submitting}\n error={error}\n errorText={errorText}\n challenge={challenge}\n submitLabel={t('patientSignIn.forgot.send')}\n action=\"send-link\"\n />\n </PatientCard>\n );\n}\n\nexport interface PatientForgotPinSentProps {\n /** The email the link went to. Hidden under `privacy`. */\n email: string;\n /** Called by \"Back to sign in\". The button shows only when this is given. */\n onBack?: () => void;\n /** Move focus to the heading when the screen shows. Default false. */\n focusOnMount?: boolean;\n /** Privacy mode: the sentence says \"your email\" instead of the address. */\n privacy?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/** \"Check your email\": the end of the reset's first step. */\nexport function PatientForgotPinSent({\n email,\n onBack,\n focusOnMount = false,\n privacy = false,\n className,\n}: PatientForgotPinSentProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientEndScreen\n component=\"patient-forgot-pin-sent\"\n className={className}\n focusOnMount={focusOnMount}\n privacy={privacy}\n icon={<MailCheck />}\n title={t('patientSignIn.forgot.sentTitle')}\n body={\n privacy ? (\n t('patientSignIn.forgot.sentBodyPrivate')\n ) : (\n // A bdi element, so an address that starts with digits keeps its\n // order in right-to-left text. No invisible marks (R23).\n <Trans\n t={t}\n ns=\"ui\"\n i18nKey=\"patientSignIn.forgot.sentBody\"\n values={{ email }}\n components={{ email: <bdi dir=\"ltr\" /> }}\n />\n )\n }\n action={\n onBack\n ? { label: t('patientSignIn.forgot.back'), onClick: onBack }\n : undefined\n }\n />\n );\n}\n","import { useEffect, useId, useRef, type ReactNode } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Alert } from '../../components/alert';\nimport { Button } from '../../components/button';\nimport { EmailInput } from '../../components/email-input';\nimport { FormField } from '../../components/form-field';\nimport { PinEntry, type PinEntryHandle } from '../../components/pin-entry';\nimport { resolvePinLength } from '../../components/pin-indicator';\nimport { formatNumber } from '../../components/_shared/format-number';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport {\n PatientCard,\n PatientTextAction,\n useAfterResult,\n type PatientHeadingLevel,\n} from './patient-card';\n\n/**\n * What the host reports about the PIN (HTP-6898, D119, D125): `wrong` is a\n * PIN that is not right; `paused` means sign-in is paused after too many\n * wrong PINs. The host compares the PIN and counts the tries; the kit does\n * neither.\n */\nexport type PatientPinError = 'wrong' | 'paused';\n\nexport interface PatientSignInPinProps {\n /**\n * The email the person is signing in as, echoed under the title. Hidden\n * under `privacy`.\n */\n email: string;\n /** The digits, when controlled. Pair with `onValueChange`. */\n value?: string;\n /** The first digits, when uncontrolled. */\n defaultValue?: string;\n /** Called with the digits on every change, controlled or not. */\n onValueChange?: (value: string) => void;\n /** Number of digits, 4 to 12. Default 8. */\n length?: number;\n /**\n * Called with the PIN when \"Continue\" is pressed with every digit typed.\n * Never called as the last digit lands. The host compares the PIN.\n */\n onSubmit: (pin: string) => void;\n /**\n * The host is checking the PIN: the button shows a spinner.\n * Set it while checking: a repeated refusal then clears the message, empties\n * the field and returns focus to it.\n */\n submitting?: boolean;\n /**\n * What the host found. `wrong`: the dots turn red, the PIN empties and\n * focus returns to it. `paused`: the keypad is off and the main button\n * becomes \"Reset my PIN\".\n */\n error?: PatientPinError | null;\n /**\n * Host text that replaces the default message for `error`. Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n errorText?: string;\n /**\n * Called by \"Forgot your PIN?\" and, while `paused`, by \"Reset my PIN\".\n */\n onForgot: () => void;\n /** Called by \"Use a different email\". The link shows only when given. */\n onChangeEmail?: () => void;\n /**\n * Extra content in the card footer, for example a host note. Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n footer?: ReactNode;\n /** Move focus to the heading when the screen shows. */\n focusOnMount?: boolean;\n /** Privacy mode: the email is not shown. */\n privacy?: boolean;\n /**\n * Class stamped on the PIN control so session replay skips it. Default\n * `ph-no-capture`.\n */\n maskClassName?: string;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * Sign-in screen 2 (D124, D125): the PIN as dots on the keypad, for an email\n * that has an account. The SMS code follows only after the host accepts the\n * PIN.\n */\nexport function PatientSignInPin({\n email,\n value,\n defaultValue,\n onValueChange,\n length,\n onSubmit,\n submitting = false,\n error = null,\n errorText,\n onForgot,\n onChangeEmail,\n footer,\n focusOnMount = false,\n privacy = false,\n maskClassName,\n className,\n}: PatientSignInPinProps) {\n const { t } = useTranslation('ui');\n const pinLength = resolvePinLength(length);\n const pinEntry = useRef<PinEntryHandle>(null);\n const resetButton = useRef<HTMLButtonElement>(null);\n const submitButton = useRef<HTMLButtonElement>(null);\n const messageId = useId();\n const [pin, setPin] = useControllableState<string>({\n value,\n defaultValue: defaultValue ?? '',\n onChange: onValueChange,\n });\n const digits = pin ?? '';\n const paused = error === 'paused';\n const ready = digits.length === pinLength;\n // The message hides while the host checks again, so a second identical\n // refusal is announced afresh. The PIN field points at it.\n const refused = error !== null && !submitting;\n\n // After a result: a wrong PIN empties and takes focus back; a pause hands\n // focus to \"Reset my PIN\". Never on mount.\n useAfterResult(error, submitting, () => {\n if (error === 'wrong') {\n pinEntry.current?.clear();\n pinEntry.current?.focus();\n }\n if (error === 'paused') resetButton.current?.focus();\n });\n\n return (\n <PatientCard\n component=\"patient-sign-in-pin\"\n className={className}\n title={t('patientSignIn.pin.title')}\n description={\n privacy ? (\n t('patientSignIn.pin.introPrivate')\n ) : (\n <Trans\n t={t}\n ns=\"ui\"\n i18nKey=\"patientSignIn.pin.intro\"\n values={{ email }}\n components={{ email: <bdi dir=\"ltr\" /> }}\n />\n )\n }\n focusOnMount={focusOnMount}\n privacy={privacy}\n footer={footer}\n >\n <form\n noValidate\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]\"\n onSubmit={(event) => {\n event.preventDefault();\n if (ready && !paused && !submitting) {\n // The keypad is disabled while the host checks; keep focus on\n // the button (which stays focusable while loading) so it does\n // not fall to the page.\n submitButton.current?.focus();\n onSubmit(digits);\n }\n }}\n >\n {refused && error === 'wrong' ? (\n <Alert variant=\"error\" id={messageId}>\n <Alert.Description>\n {errorText ?? t('patientSignIn.pin.wrong')}\n </Alert.Description>\n </Alert>\n ) : null}\n {refused && paused ? (\n <Alert variant=\"warning\" id={messageId}>\n <Alert.Title as=\"h2\">\n {t('patientSignIn.pin.pausedTitle')}\n </Alert.Title>\n <Alert.Description>\n {errorText ?? t('patientSignIn.pin.pausedBody')}\n </Alert.Description>\n </Alert>\n ) : null}\n <div className=\"ds:flex ds:justify-center\">\n <PinEntry\n ref={pinEntry}\n length={pinLength}\n label={t('patientSignIn.pin.label')}\n hideLabel\n value={digits}\n onChange={setPin}\n error={error === 'wrong' && digits.length === 0}\n disabled={paused || submitting}\n autoComplete=\"current-password\"\n aria-describedby={refused ? messageId : undefined}\n maskClassName={maskClassName}\n />\n </div>\n {paused ? (\n <Button\n ref={resetButton}\n type=\"button\"\n intent=\"primary\"\n className=\"ds:min-h-[var(--min-target-size)] ds:w-full\"\n data-action=\"paused-reset\"\n onClick={onForgot}\n >\n {t('patientSignIn.pin.pausedReset')}\n </Button>\n ) : (\n <Button\n ref={submitButton}\n type=\"submit\"\n intent=\"primary\"\n className=\"ds:min-h-[var(--min-target-size)] ds:w-full\"\n data-action=\"sign-in-submit\"\n disabled={!ready}\n loading={submitting}\n >\n {t('patientSignIn.pin.submit')}\n </Button>\n )}\n <div className=\"ds:flex ds:flex-wrap ds:justify-center ds:gap-x-[var(--spacing-lg)] ds:gap-y-[var(--spacing-sm)]\">\n {paused ? null : (\n <PatientTextAction action=\"forgot-pin\" onClick={onForgot}>\n {t('patientSignIn.pin.forgot')}\n </PatientTextAction>\n )}\n {onChangeEmail ? (\n <PatientTextAction action=\"change-email\" onClick={onChangeEmail}>\n {t('patientSignIn.pin.changeEmail')}\n </PatientTextAction>\n ) : null}\n </div>\n </form>\n </PatientCard>\n );\n}\n\n/**\n * What the host reports about a new PIN (D131). Only the mobile's last four\n * digits has a built-in text. Every other refusal (repeated or run digits,\n * a birth date, two entries that differ) arrives as `errorText`.\n */\nexport type PatientSetPinError = 'mobile';\n\nexport interface PatientSetPinProps {\n /**\n * `choose`: the first entry. `confirm`: the second. The host holds the\n * first PIN, compares the two, and sets the phase. Changing it empties\n * the field and moves focus to the heading.\n */\n phase: 'choose' | 'confirm';\n /** The digits, when controlled. Pair with `onValueChange`. */\n value?: string;\n /** The first digits, when uncontrolled. */\n defaultValue?: string;\n /** Called with the digits on every change, controlled or not. */\n onValueChange?: (value: string) => void;\n /** Number of digits, 4 to 12. Default 8. */\n length?: number;\n /**\n * Called with the PIN and the phase when \"Continue\" is pressed with every\n * digit typed. Never called as the last digit lands. The host decides\n * whether the PIN is allowed and whether the two entries match.\n */\n onSubmit: (pin: string, phase: 'choose' | 'confirm') => void;\n /**\n * The host is checking the PIN: the button shows a spinner.\n * Set it while checking: a repeated refusal then clears the message, empties\n * the field and returns focus to it.\n */\n submitting?: boolean;\n /**\n * `mobile`: the PIN contains the last four digits of the person's mobile\n * (D131), with a built-in message. The host decides; the kit never reads\n * the mobile.\n */\n error?: PatientSetPinError | null;\n /**\n * Host text for any refusal: it replaces the built-in message and is the\n * only way to show the other reasons. On refusal the field empties and\n * takes focus.\n * Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n errorText?: string;\n /**\n * An extra line under the description, for example a host rule list.\n * Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n note?: ReactNode;\n /**\n * The account's email, shown read-only as the username so a password\n * manager saves the new PIN with it. `null` or absent: no field (an\n * invite shows no patient data, AUTH-15). Not shown under `privacy`.\n */\n email?: string | null;\n /**\n * A line above the title, for example \"Step 2 of 3\". Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n step?: string;\n /** Heading level. Default 1; use 2 inside a page that has an h1. */\n headingLevel?: PatientHeadingLevel;\n /**\n * Move focus to the heading when the screen shows. Focus also moves to\n * the heading whenever `phase` changes, so the new step is announced.\n */\n focusOnMount?: boolean;\n /** Privacy mode: the email is not shown. */\n privacy?: boolean;\n /**\n * Class stamped on the PIN control so session replay skips it. Default\n * `ph-no-capture`.\n */\n maskClassName?: string;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * Setting a PIN (HTP-6898, D131): the PIN twice on the keypad, one phase at\n * a time. The kit compares nothing: the host holds the first entry and\n * answers with `phase`, `error` and `errorText`.\n */\nexport function PatientSetPin({\n phase,\n value,\n defaultValue,\n onValueChange,\n length,\n onSubmit,\n submitting = false,\n error = null,\n errorText,\n note,\n email = null,\n step,\n headingLevel = 1,\n focusOnMount = false,\n privacy = false,\n maskClassName,\n className,\n}: PatientSetPinProps) {\n const { t, i18n } = useTranslation('ui');\n const pinLength = resolvePinLength(length);\n const lengthText = formatNumber(pinLength, i18n.language);\n const pinEntry = useRef<PinEntryHandle>(null);\n const submitButton = useRef<HTMLButtonElement>(null);\n const messageId = useId();\n const [pin, setPin] = useControllableState<string>({\n value,\n defaultValue: defaultValue ?? '',\n onChange: onValueChange,\n });\n const digits = pin ?? '';\n const ready = digits.length === pinLength;\n const choosing = phase === 'choose';\n const message =\n errorText?.trim() ||\n (error === 'mobile' ? t('patientSignIn.setPin.reason.mobile') : undefined);\n // Hidden while the host checks again, so a repeat refusal is announced.\n const showMessage = Boolean(message) && !submitting;\n\n // A new phase starts with an empty field (the first PIN is the host's).\n // Comparing with the last phase (not a \"first run\" flag) keeps this right\n // under React StrictMode, which runs every effect twice on mount.\n const lastPhase = useRef(phase);\n useEffect(() => {\n if (lastPhase.current === phase) return;\n lastPhase.current = phase;\n setPin('');\n // `setPin` is stable; this runs once per phase change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [phase]);\n\n // A refused PIN empties and takes focus. Never on mount.\n useAfterResult(message ? (error ?? errorText) : null, submitting, () => {\n pinEntry.current?.clear();\n pinEntry.current?.focus();\n });\n\n return (\n <PatientCard\n component=\"patient-set-pin\"\n className={className}\n headingLevel={headingLevel}\n eyebrow={step}\n title={\n choosing\n ? t('patientSignIn.setPin.title')\n : t('patientSignIn.setPin.confirmTitle')\n }\n description={\n <>\n {choosing\n ? t('patientSignIn.setPin.body', { length: lengthText })\n : t('patientSignIn.setPin.confirmBody', { length: lengthText })}\n {note ? (\n <div className=\"ds:mt-[var(--spacing-xs)]\">{note}</div>\n ) : null}\n </>\n }\n focusOnMount={focusOnMount}\n focusKey={phase}\n privacy={privacy}\n >\n <form\n noValidate\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\"\n onSubmit={(event) => {\n event.preventDefault();\n if (ready && !submitting) {\n submitButton.current?.focus();\n onSubmit(digits, phase);\n }\n }}\n >\n {showMessage ? (\n <Alert variant=\"error\" id={messageId}>\n <Alert.Description>{message}</Alert.Description>\n </Alert>\n ) : null}\n {/* The username a password manager saves the new PIN with. */}\n {email && !privacy ? (\n <FormField label={t('patientSignIn.setPin.usernameLabel')}>\n <EmailInput\n readOnly\n disableBuiltInValidation\n errorMessage={null}\n autoComplete=\"username\"\n value={email}\n />\n </FormField>\n ) : null}\n <div className=\"ds:flex ds:justify-center\">\n <PinEntry\n key={phase}\n ref={pinEntry}\n length={pinLength}\n label={\n choosing\n ? t('patientSignIn.setPin.newLabel')\n : t('patientSignIn.setPin.confirmLabel')\n }\n autoComplete=\"new-password\"\n aria-describedby={showMessage ? messageId : undefined}\n value={digits}\n onChange={setPin}\n error={Boolean(message) && digits.length === 0}\n disabled={submitting}\n maskClassName={maskClassName}\n />\n </div>\n <Button\n ref={submitButton}\n type=\"submit\"\n intent=\"primary\"\n className=\"ds:min-h-[var(--min-target-size)] ds:w-full\"\n data-action=\"set-pin-continue\"\n disabled={!ready}\n loading={submitting}\n >\n {t('patientSignIn.setPin.submit')}\n </Button>\n </form>\n </PatientCard>\n );\n}\n"],"names":["__iconNode","MailCheck","createLucideIcon","EmailForm","email","defaultEmail","onEmailChange","onSubmit","submitting","error","errorText","challenge","submitLabel","action","t","useTranslation","field","useRef","messageId","useId","value","setValue","useControllableState","current","empty","refused","useAfterResult","_a","jsxs","event","jsx","Alert","FormField","EmailInput","Button","PatientSignInEmail","languageSlot","passkeySlot","title","description","focusOnMount","className","PatientCard","PatientNote","PatientForgotPin","onBack","PatientTextAction","PatientForgotPinSent","privacy","PatientEndScreen","Trans","PatientSignInPin","defaultValue","onValueChange","length","onForgot","onChangeEmail","footer","maskClassName","pinLength","resolvePinLength","pinEntry","resetButton","submitButton","pin","setPin","digits","paused","ready","_b","_c","PinEntry","PatientSetPin","phase","note","step","headingLevel","i18n","lengthText","formatNumber","choosing","message","showMessage","lastPhase","useEffect","Fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { jsx as n, jsxs as I } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as l } from "react-i18next";
|
|
3
|
+
import { A as m } from "./alert-C4WKViaS.js";
|
|
4
|
+
import { B as y } from "./button-DohK_Ak_.js";
|
|
5
|
+
import { S as k } from "./session-countdown-DOx1IBUB.js";
|
|
6
|
+
import { S as v } from "./sms-code-entry-Dgp4GwlM.js";
|
|
7
|
+
import { a as u } from "./format-number-DdzqwMs1.js";
|
|
8
|
+
import { b as p, P as M, a as P } from "./patient-card-DTh3QTyS.js";
|
|
9
|
+
import { c as f } from "./createLucideIcon-DhHxpK9K.js";
|
|
10
|
+
import { S as x } from "./shield-check-DCJALLVh.js";
|
|
11
|
+
import { L as b } from "./log-out-oDS6zO5d.js";
|
|
12
|
+
/**
|
|
13
|
+
* @license lucide-react v1.22.0 - ISC
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the ISC license.
|
|
16
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/
|
|
18
|
+
const C = [
|
|
19
|
+
[
|
|
20
|
+
"path",
|
|
21
|
+
{
|
|
22
|
+
d: "M10.1 13.9a14 14 0 0 0 3.732 2.668 1 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 2 18 18 0 0 1-12.728-5.272",
|
|
23
|
+
key: "1wngk7"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
["path", { d: "M22 2 2 22", key: "y4kqgn" }],
|
|
27
|
+
[
|
|
28
|
+
"path",
|
|
29
|
+
{
|
|
30
|
+
d: "M4.76 13.582A18 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 .244.473",
|
|
31
|
+
key: "10hv5p"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
], O = f("phone-off", C);
|
|
35
|
+
/**
|
|
36
|
+
* @license lucide-react v1.22.0 - ISC
|
|
37
|
+
*
|
|
38
|
+
* This source code is licensed under the ISC license.
|
|
39
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
40
|
+
*/
|
|
41
|
+
const w = [
|
|
42
|
+
["path", { d: "M10 2h4", key: "n1abiw" }],
|
|
43
|
+
["path", { d: "M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7", key: "10he05" }],
|
|
44
|
+
["path", { d: "M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2", key: "15f7sh" }],
|
|
45
|
+
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
46
|
+
["path", { d: "M12 12v-2", key: "fwoke6" }]
|
|
47
|
+
], A = f("timer-off", w);
|
|
48
|
+
function H({
|
|
49
|
+
title: t,
|
|
50
|
+
description: i,
|
|
51
|
+
onBack: o,
|
|
52
|
+
headingLevel: a = 1,
|
|
53
|
+
focusOnMount: e = !1,
|
|
54
|
+
className: d,
|
|
55
|
+
...r
|
|
56
|
+
}) {
|
|
57
|
+
const { t: s } = l("ui");
|
|
58
|
+
return /* @__PURE__ */ n(
|
|
59
|
+
M,
|
|
60
|
+
{
|
|
61
|
+
component: "patient-sign-in-code",
|
|
62
|
+
className: d,
|
|
63
|
+
headingLevel: a,
|
|
64
|
+
title: t ?? s("patientSignIn.code.title"),
|
|
65
|
+
description: i,
|
|
66
|
+
focusOnMount: e,
|
|
67
|
+
privacy: r.privacy,
|
|
68
|
+
footer: o ? /* @__PURE__ */ n(P, { action: "back", onClick: o, children: s("patientSignIn.code.back") }) : void 0,
|
|
69
|
+
children: /* @__PURE__ */ n(v, { ...r })
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function $({
|
|
74
|
+
context: t,
|
|
75
|
+
onBack: i,
|
|
76
|
+
focusOnMount: o = !1,
|
|
77
|
+
className: a
|
|
78
|
+
}) {
|
|
79
|
+
const { t: e } = l("ui");
|
|
80
|
+
return /* @__PURE__ */ n(
|
|
81
|
+
p,
|
|
82
|
+
{
|
|
83
|
+
component: "patient-no-mobile",
|
|
84
|
+
className: a,
|
|
85
|
+
focusOnMount: o,
|
|
86
|
+
icon: /* @__PURE__ */ n(O, {}),
|
|
87
|
+
title: e("patientSignIn.noMobile.title"),
|
|
88
|
+
body: e(t === "reset" ? "patientSignIn.noMobile.resetBody" : "patientSignIn.noMobile.body"),
|
|
89
|
+
action: i ? { label: e("patientSignIn.noMobile.back"), onClick: i } : void 0
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
function F({
|
|
94
|
+
onContinue: t,
|
|
95
|
+
noticeSent: i = !0,
|
|
96
|
+
focusOnMount: o = !1,
|
|
97
|
+
className: a
|
|
98
|
+
}) {
|
|
99
|
+
const { t: e } = l("ui");
|
|
100
|
+
return /* @__PURE__ */ n(
|
|
101
|
+
p,
|
|
102
|
+
{
|
|
103
|
+
component: "patient-pin-changed",
|
|
104
|
+
className: a,
|
|
105
|
+
focusOnMount: o,
|
|
106
|
+
icon: /* @__PURE__ */ n(x, {}),
|
|
107
|
+
title: e("patientSignIn.forgot.doneTitle"),
|
|
108
|
+
body: e("patientSignIn.forgot.doneBody"),
|
|
109
|
+
action: t ? { label: e("patientSignIn.forgot.back"), onClick: t } : void 0,
|
|
110
|
+
below: i ? /* @__PURE__ */ n(m, { variant: "info", announce: "polite", children: /* @__PURE__ */ n(m.Description, { children: e("patientSignIn.forgot.notice") }) }) : void 0
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
function G({
|
|
115
|
+
remainingMs: t,
|
|
116
|
+
totalMs: i,
|
|
117
|
+
warnAtMs: o,
|
|
118
|
+
label: a,
|
|
119
|
+
onSignOut: e,
|
|
120
|
+
signOutLabel: d,
|
|
121
|
+
onExpire: r,
|
|
122
|
+
onRestart: s,
|
|
123
|
+
restartLabel: g,
|
|
124
|
+
className: S
|
|
125
|
+
}) {
|
|
126
|
+
const { t: c } = l("ui");
|
|
127
|
+
return /* @__PURE__ */ I(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
"data-component": "patient-session-bar",
|
|
131
|
+
className: [
|
|
132
|
+
"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]",
|
|
133
|
+
S
|
|
134
|
+
].filter(Boolean).join(" "),
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ n("div", { className: "ds:min-w-0 ds:flex-1 ds:basis-[16rem] ds:[&_button]:min-h-[var(--min-target-size)]", children: /* @__PURE__ */ n(
|
|
137
|
+
k,
|
|
138
|
+
{
|
|
139
|
+
remainingMs: t,
|
|
140
|
+
totalMs: i,
|
|
141
|
+
warnAtMs: o,
|
|
142
|
+
label: a,
|
|
143
|
+
messages: {
|
|
144
|
+
running: (h) => c("patientSignIn.session.bannerLabel", { time: h }),
|
|
145
|
+
warning: c("patientSignIn.session.bannerWarning"),
|
|
146
|
+
expired: c("patientSignIn.session.bannerExpired")
|
|
147
|
+
},
|
|
148
|
+
restartLabel: g ?? c("patientSignIn.session.signInAgain"),
|
|
149
|
+
announceWarning: !0,
|
|
150
|
+
onExpire: r,
|
|
151
|
+
onRestart: s
|
|
152
|
+
}
|
|
153
|
+
) }),
|
|
154
|
+
/* @__PURE__ */ n(
|
|
155
|
+
y,
|
|
156
|
+
{
|
|
157
|
+
type: "button",
|
|
158
|
+
intent: "outline",
|
|
159
|
+
className: "ds:min-h-[var(--min-target-size)]",
|
|
160
|
+
startIcon: /* @__PURE__ */ n(b, { "aria-hidden": "true" }),
|
|
161
|
+
"data-action": "sign-out",
|
|
162
|
+
onClick: e,
|
|
163
|
+
children: d ?? c("patientSignIn.session.signOut")
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
function J(t) {
|
|
171
|
+
const { t: i, i18n: o } = l("ui"), { actionLabel: a, onSignIn: e, focusOnMount: d = !1, className: r } = t, s = t.reason === "signed-out", g = t.reason === "signed-out" ? i("patientSignIn.session.signedOutBody") : t.reason === "timed-out" ? i("patientSignIn.session.timedOutBody", {
|
|
172
|
+
minutes: u(t.idleMinutes, o.language)
|
|
173
|
+
}) : i("patientSignIn.session.maxAgeBody", {
|
|
174
|
+
hours: u(t.maxAgeHours, o.language)
|
|
175
|
+
});
|
|
176
|
+
return /* @__PURE__ */ n(
|
|
177
|
+
p,
|
|
178
|
+
{
|
|
179
|
+
component: "patient-session-ended",
|
|
180
|
+
className: r,
|
|
181
|
+
focusOnMount: d,
|
|
182
|
+
icon: s ? /* @__PURE__ */ n(b, {}) : /* @__PURE__ */ n(A, {}),
|
|
183
|
+
title: i(s ? "patientSignIn.session.signedOutTitle" : "patientSignIn.session.timedOutTitle"),
|
|
184
|
+
body: g,
|
|
185
|
+
action: {
|
|
186
|
+
label: a ?? i("patientSignIn.session.signInAgain"),
|
|
187
|
+
onClick: e
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
export {
|
|
193
|
+
$ as P,
|
|
194
|
+
F as a,
|
|
195
|
+
G as b,
|
|
196
|
+
J as c,
|
|
197
|
+
H as d
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=patient-sign-in-steps-C2JSqlok.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patient-sign-in-steps-C2JSqlok.js","sources":["../../node_modules/lucide-react/dist/esm/icons/phone-off.mjs","../../node_modules/lucide-react/dist/esm/icons/timer-off.mjs","../../src/patterns/patient-sign-in/patient-sign-in-steps.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 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 2 18 18 0 0 1-12.728-5.272\",\n key: \"1wngk7\"\n }\n ],\n [\"path\", { d: \"M22 2 2 22\", key: \"y4kqgn\" }],\n [\n \"path\",\n {\n d: \"M4.76 13.582A18 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 .244.473\",\n key: \"10hv5p\"\n }\n ]\n];\nconst PhoneOff = createLucideIcon(\"phone-off\", __iconNode);\n\nexport { __iconNode, PhoneOff as default };\n//# sourceMappingURL=phone-off.mjs.map\n","/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 2h4\", key: \"n1abiw\" }],\n [\"path\", { d: \"M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7\", key: \"10he05\" }],\n [\"path\", { d: \"M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2\", key: \"15f7sh\" }],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }],\n [\"path\", { d: \"M12 12v-2\", key: \"fwoke6\" }]\n];\nconst TimerOff = createLucideIcon(\"timer-off\", __iconNode);\n\nexport { __iconNode, TimerOff as default };\n//# sourceMappingURL=timer-off.mjs.map\n","import type { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LogOut, PhoneOff, ShieldCheck, TimerOff } from 'lucide-react';\nimport { Alert } from '../../components/alert';\nimport { Button } from '../../components/button';\nimport { SessionCountdown } from '../../components/session-countdown';\nimport {\n SmsCodeEntry,\n type SmsCodeEntryProps,\n} from '../../components/sms-code-entry';\nimport { formatNumber } from '../../components/_shared/format-number';\nimport {\n PatientCard,\n PatientEndScreen,\n PatientTextAction,\n type PatientHeadingLevel,\n} from './patient-card';\n\n/* -------------------------------------------------------------------- */\n/* SMS code step */\n/* -------------------------------------------------------------------- */\n\nexport interface PatientSignInCodeProps extends Omit<\n SmsCodeEntryProps,\n 'body' | 'className' | 'title'\n> {\n /** Replaces the heading. Default \"Enter the SMS code\". */\n title?: string;\n /**\n * A line under the heading. The entry itself names the mobile. Rendered as given, also under `privacy`: keep it free of personal data there.\n */\n description?: ReactNode;\n /**\n * Called by \"Back\". The button shows only when this is given. Use it to\n * return to the PIN, or to the invite step before.\n */\n onBack?: () => void;\n /** Heading level. Default 1; use 2 inside a page that has an h1. */\n headingLevel?: PatientHeadingLevel;\n /**\n * Move focus to the heading when the screen shows. `autoFocus` (an\n * `SmsCodeEntry` prop) puts focus in the first box instead; if both are\n * set, the heading wins.\n */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * A titled card around the Phase 4 `SmsCodeEntry`: the SMS code of sign-in,\n * of a PIN reset and of an invite's \"prove your mobile\" step. Every\n * `SmsCodeEntry` prop except `body` passes through (`destination`, `value`,\n * `onSubmit`, `error`, `remainingSeconds`, `onResend`, `resent`,\n * `privacy` and the rest). The host decides whether a code is right, counts\n * the tries and the wait, and keeps the 10 minute window.\n */\nexport function PatientSignInCode({\n title,\n description,\n onBack,\n headingLevel = 1,\n focusOnMount = false,\n className,\n ...entry\n}: PatientSignInCodeProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientCard\n component=\"patient-sign-in-code\"\n className={className}\n headingLevel={headingLevel}\n title={title ?? t('patientSignIn.code.title')}\n description={description}\n focusOnMount={focusOnMount}\n privacy={entry.privacy}\n footer={\n onBack ? (\n <PatientTextAction action=\"back\" onClick={onBack}>\n {t('patientSignIn.code.back')}\n </PatientTextAction>\n ) : undefined\n }\n >\n <SmsCodeEntry {...entry} />\n </PatientCard>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* End screens */\n/* -------------------------------------------------------------------- */\n\nexport interface PatientNoMobileProps {\n /**\n * Which flow ended here: `sign-in` (no verified mobile, so no code can\n * go out) or `reset` (the same, while resetting the PIN). Not the\n * in-session refusal, which is the `StepUpDialog` `noMobile` state.\n */\n context: 'sign-in' | 'reset';\n /** Called by \"Back to sign in\". The button shows only when given. */\n onBack?: () => void;\n /** Move focus to the heading when the screen shows. Default false. */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * The dead end \"Contact your practice\": the account has no verified mobile,\n * so no SMS code can be sent (D118, D140).\n */\nexport function PatientNoMobile({\n context,\n onBack,\n focusOnMount = false,\n className,\n}: PatientNoMobileProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientEndScreen\n component=\"patient-no-mobile\"\n className={className}\n focusOnMount={focusOnMount}\n icon={<PhoneOff />}\n title={t('patientSignIn.noMobile.title')}\n body={\n context === 'reset'\n ? t('patientSignIn.noMobile.resetBody')\n : t('patientSignIn.noMobile.body')\n }\n action={\n onBack\n ? { label: t('patientSignIn.noMobile.back'), onClick: onBack }\n : undefined\n }\n />\n );\n}\n\nexport interface PatientPinChangedProps {\n /** Called by \"Back to sign in\". The button shows only when given. */\n onContinue?: () => void;\n /**\n * The host sent a notice of the change to the person's email: a line says\n * so. Set false when no notice went out. Default true.\n */\n noticeSent?: boolean;\n /** Move focus to the heading when the screen shows. Default false. */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/** \"Your PIN is changed\": the end of a PIN reset. */\nexport function PatientPinChanged({\n onContinue,\n noticeSent = true,\n focusOnMount = false,\n className,\n}: PatientPinChangedProps) {\n const { t } = useTranslation('ui');\n return (\n <PatientEndScreen\n component=\"patient-pin-changed\"\n className={className}\n focusOnMount={focusOnMount}\n icon={<ShieldCheck />}\n title={t('patientSignIn.forgot.doneTitle')}\n body={t('patientSignIn.forgot.doneBody')}\n action={\n onContinue\n ? { label: t('patientSignIn.forgot.back'), onClick: onContinue }\n : undefined\n }\n below={\n noticeSent ? (\n <Alert variant=\"info\" announce=\"polite\">\n <Alert.Description>\n {t('patientSignIn.forgot.notice')}\n </Alert.Description>\n </Alert>\n ) : undefined\n }\n />\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* Session bar and session-ended screen */\n/* -------------------------------------------------------------------- */\n\nexport interface PatientSessionBarProps {\n /**\n * Milliseconds left in the session, counted by the host. The bar runs no\n * timer: it shows what it is given. Lengths (15 minutes, 30 minutes,\n * 8 hours) are the host's values.\n */\n remainingMs: number;\n /** Full session length in ms. Default: the countdown's own (15 minutes). */\n totalMs?: number;\n /** Remaining ms at or below which the banner turns to its warning tone. */\n warnAtMs?: number;\n /**\n * Accessible name of the timer. Keep it neutral: it is shared by login,\n * portal and check-in, so it must not say \"check-in\". The visible\n * sentences and the Restart label are neutral by default too.\n */\n label?: string;\n /** Called by \"Sign out\", which stays visible in every tone. */\n onSignOut: () => void;\n /** Replaces the Sign out label. Default \"Sign out\". */\n signOutLabel?: string;\n /** Called once when `remainingMs` reaches 0. */\n onExpire?: () => void;\n /** Called by the expired banner's button. The button shows only when given. */\n onRestart?: () => void;\n /** Replaces the expired banner's button label. Default \"Sign in again\". */\n restartLabel?: string;\n /** Extra classes for the root. */\n className?: string;\n}\n\n/**\n * The session banner and a visible Sign out, shared by login, the portal and\n * check-in (D142). The banner is the Phase 4 `SessionCountdown`: running,\n * then a warning tone, then expired. There is no warning dialog; the tone is\n * the warning.\n */\nexport function PatientSessionBar({\n remainingMs,\n totalMs,\n warnAtMs,\n label,\n onSignOut,\n signOutLabel,\n onExpire,\n onRestart,\n restartLabel,\n className,\n}: PatientSessionBarProps) {\n const { t } = useTranslation('ui');\n return (\n <div\n data-component=\"patient-session-bar\"\n className={[\n 'ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]',\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {/* A real basis, so a narrow row wraps Sign out onto its own line\n instead of squeezing the sentence and the Restart button. */}\n {/* The Restart button of the expired tone is 40px high in\n SessionCountdown; here it keeps the theme's target size. */}\n <div className=\"ds:min-w-0 ds:flex-1 ds:basis-[16rem] ds:[&_button]:min-h-[var(--min-target-size)]\">\n <SessionCountdown\n remainingMs={remainingMs}\n totalMs={totalMs}\n warnAtMs={warnAtMs}\n label={label}\n messages={{\n running: (time) => t('patientSignIn.session.bannerLabel', { time }),\n warning: t('patientSignIn.session.bannerWarning'),\n expired: t('patientSignIn.session.bannerExpired'),\n }}\n restartLabel={restartLabel ?? t('patientSignIn.session.signInAgain')}\n announceWarning\n onExpire={onExpire}\n onRestart={onRestart}\n />\n </div>\n <Button\n type=\"button\"\n intent=\"outline\"\n className=\"ds:min-h-[var(--min-target-size)]\"\n startIcon={<LogOut aria-hidden=\"true\" />}\n data-action=\"sign-out\"\n onClick={onSignOut}\n >\n {signOutLabel ?? t('patientSignIn.session.signOut')}\n </Button>\n </div>\n );\n}\n\n/** Why the session ended. See `PatientSessionEndedProps`. */\nexport type PatientSessionEndReason = 'signed-out' | 'timed-out' | 'max-age';\n\ninterface PatientSessionEndedBase {\n /**\n * Label of the one button. Default \"Sign in again\"; check-in passes its\n * Restart wording here.\n */\n actionLabel?: string;\n /** Called by the button. The host starts sign-in again. */\n onSignIn: () => void;\n /** Move focus to the heading when the screen shows. Default false. */\n focusOnMount?: boolean;\n /** Extra classes for the root. */\n className?: string;\n}\n\nexport type PatientSessionEndedProps = PatientSessionEndedBase &\n (\n | {\n /** The person pressed Sign out. */\n reason: 'signed-out';\n }\n | {\n /** Nothing happened for a while, so the host ended the session. */\n reason: 'timed-out';\n /** The idle length the host used, in minutes (15 or 30). */\n idleMinutes: number;\n }\n | {\n /** The host's longest session length was reached (D69). */\n reason: 'max-age';\n /** The longest session length, in hours (for example 8). */\n maxAgeHours: number;\n }\n );\n\n/**\n * The end screen after Sign out, a timeout or the longest session length.\n * One button, no countdown and no automatic move. The host clears the\n * session; this only says so.\n */\nexport function PatientSessionEnded(props: PatientSessionEndedProps) {\n const { t, i18n } = useTranslation('ui');\n const { actionLabel, onSignIn, focusOnMount = false, className } = props;\n const signedOut = props.reason === 'signed-out';\n const body =\n props.reason === 'signed-out'\n ? t('patientSignIn.session.signedOutBody')\n : props.reason === 'timed-out'\n ? t('patientSignIn.session.timedOutBody', {\n minutes: formatNumber(props.idleMinutes, i18n.language),\n })\n : t('patientSignIn.session.maxAgeBody', {\n hours: formatNumber(props.maxAgeHours, i18n.language),\n });\n return (\n <PatientEndScreen\n component=\"patient-session-ended\"\n className={className}\n focusOnMount={focusOnMount}\n icon={signedOut ? <LogOut /> : <TimerOff />}\n title={\n signedOut\n ? t('patientSignIn.session.signedOutTitle')\n : t('patientSignIn.session.timedOutTitle')\n }\n body={body}\n action={{\n label: actionLabel ?? t('patientSignIn.session.signInAgain'),\n onClick: onSignIn,\n }}\n />\n );\n}\n"],"names":["__iconNode","PhoneOff","createLucideIcon","TimerOff","PatientSignInCode","title","description","onBack","headingLevel","focusOnMount","className","entry","t","useTranslation","jsx","PatientCard","PatientTextAction","SmsCodeEntry","PatientNoMobile","context","PatientEndScreen","PatientPinChanged","onContinue","noticeSent","ShieldCheck","Alert","PatientSessionBar","remainingMs","totalMs","warnAtMs","label","onSignOut","signOutLabel","onExpire","onRestart","restartLabel","jsxs","SessionCountdown","time","Button","LogOut","PatientSessionEnded","props","i18n","actionLabel","onSignIn","signedOut","body","formatNumber"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -13,7 +13,7 @@ import { T as oe } from "./tag-BNlcEJfE.js";
|
|
|
13
13
|
import { T as Ke } from "./transaction-chip-CkYd-3ky.js";
|
|
14
14
|
import { T as je } from "./tooltip-uEBdD1-5.js";
|
|
15
15
|
import { H as G } from "./hover-card-CuRIA4wN.js";
|
|
16
|
-
import { i as de } from "./is-safe-url-
|
|
16
|
+
import { i as de } from "./is-safe-url-CEy9CEml.js";
|
|
17
17
|
import { u as qe, r as We, a as He, b as Je, F as Qe, S as Xe, A as Ye, N as Ze } from "./patient-field-row-a5d4QijH.js";
|
|
18
18
|
import { u as Oe } from "./registry-DvAUVLHh.js";
|
|
19
19
|
import { M as ea } from "./mail-BqXVF2zH.js";
|
|
@@ -548,4 +548,4 @@ export {
|
|
|
548
548
|
Ca as P,
|
|
549
549
|
ma as p
|
|
550
550
|
};
|
|
551
|
-
//# sourceMappingURL=patient-summary-card-
|
|
551
|
+
//# sourceMappingURL=patient-summary-card-Bl2NknPe.js.map
|