@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,14 @@
|
|
|
1
|
+
/** The locale to format with: the `locale` prop, else the UI language. */
|
|
2
|
+
export declare function usePortalLocale(locale?: string): string;
|
|
3
|
+
/** "Thursday 12 November 2026", on the given clock. */
|
|
4
|
+
export declare function formatPortalDay(iso: string, locale: string, timeZone?: string): string;
|
|
5
|
+
/** "12 November 2026", on the given clock. */
|
|
6
|
+
export declare function formatPortalDate(iso: string, locale: string, timeZone?: string): string;
|
|
7
|
+
/** A date with no time (`YYYY-MM-DD`), read as that day in any zone. */
|
|
8
|
+
export declare function formatPortalCalendarDate(dateIso: string, locale: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* A `tel:` address from a phone number as typed: digits and a leading plus
|
|
11
|
+
* only, so nothing else can ride in the link. Null when no digit is left.
|
|
12
|
+
*/
|
|
13
|
+
export declare function telHref(phone: string | undefined): string | null;
|
|
14
|
+
//# sourceMappingURL=portal-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-format.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-portal/portal-format.ts"],"names":[],"mappings":"AASA,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAuBD,uDAAuD;AACvD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAOR;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { PortalAppointment, PortalHeadingLevel, PortalListStatus, PortalPractice } from './portal-types';
|
|
2
|
+
export interface PortalPracticeContactProps {
|
|
3
|
+
/**
|
|
4
|
+
* The practices to offer a contact for, in the host's order. One block
|
|
5
|
+
* each. Empty: nothing renders.
|
|
6
|
+
*/
|
|
7
|
+
practices: PortalPractice[];
|
|
8
|
+
/**
|
|
9
|
+
* Heading level of "Questions for the practice?". Default 2 (under the
|
|
10
|
+
* screen's own h1); use 3 under an h2.
|
|
11
|
+
*/
|
|
12
|
+
headingLevel?: 2 | 3;
|
|
13
|
+
/** Extra classes for the root. */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The practice contact (HTP-6904 AC, HTP-6936 AC, D141): one WhatsApp
|
|
18
|
+
* click-to-chat button per practice, the kit `WhatsAppButton`. A practice
|
|
19
|
+
* with no WhatsApp number gets its phone as a `tel:` link (a proposal, to
|
|
20
|
+
* confirm); with neither, nothing shows. There is no messages
|
|
21
|
+
* area (D108): the chat happens in WhatsApp.
|
|
22
|
+
*/
|
|
23
|
+
export declare function PortalPracticeContact({ practices, headingLevel, className, }: PortalPracticeContactProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
export interface PortalHomeProps {
|
|
25
|
+
/**
|
|
26
|
+
* The patient's appointments, in the host's order (the earliest first).
|
|
27
|
+
* Home shows every one that is not `past`. Nothing is pre-selected.
|
|
28
|
+
* A cancelled one shows its state and no Check in.
|
|
29
|
+
*/
|
|
30
|
+
appointments?: PortalAppointment[];
|
|
31
|
+
/** The practices for the contact block. */
|
|
32
|
+
practices?: PortalPractice[];
|
|
33
|
+
/**
|
|
34
|
+
* The patient's first name for the greeting. Absent, or under `privacy`,
|
|
35
|
+
* the greeting has no name.
|
|
36
|
+
*/
|
|
37
|
+
patientName?: string;
|
|
38
|
+
/** The state of the read. Default `ready`. */
|
|
39
|
+
status?: PortalListStatus;
|
|
40
|
+
/** Called by "Try again" in the error state. The button shows only when given. */
|
|
41
|
+
onRetry?: () => void;
|
|
42
|
+
/**
|
|
43
|
+
* Called with the appointment id by "Check in". The button shows only when
|
|
44
|
+
* given, and only on an upcoming appointment with `checkInDue`.
|
|
45
|
+
*/
|
|
46
|
+
onCheckIn?: (appointmentId: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* BCP 47 locale for the dates, for example `"it-IT"`. Default: the UI
|
|
49
|
+
* language. Pass it together with each practice's `timeZone`.
|
|
50
|
+
*/
|
|
51
|
+
locale?: string;
|
|
52
|
+
/** Heading level of the title. Default 1; use 2 inside a page with an h1. */
|
|
53
|
+
headingLevel?: PortalHeadingLevel;
|
|
54
|
+
/** Move focus to the heading when the screen shows. Default false. */
|
|
55
|
+
focusOnMount?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Privacy mode: the greeting drops the name, and each card masks what is
|
|
58
|
+
* personal and keeps time, place and status. The clinician's name stays
|
|
59
|
+
* (it is the card's title, PHASE4 s7 "operator stays"); the care name goes.
|
|
60
|
+
*/
|
|
61
|
+
privacy?: boolean;
|
|
62
|
+
/** Extra classes for the root. */
|
|
63
|
+
className?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The portal's first screen (HTP-6911, HTP-6904 AC): a greeting, the upcoming
|
|
67
|
+
* appointments with "Check in" where paperwork is due, and the practice
|
|
68
|
+
* contact. The last past appointment is held, not built (PORTAL-06).
|
|
69
|
+
*/
|
|
70
|
+
export declare function PortalHome({ appointments, practices, patientName, status, onRetry, onCheckIn, locale, headingLevel, focusOnMount, privacy, className, }: PortalHomeProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
//# sourceMappingURL=portal-home.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-home.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-portal/portal-home.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,YAAgB,EAChB,SAAS,GACV,EAAE,0BAA0B,kDA4F5B;AAMD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,YAAiB,EACjB,SAAc,EACd,WAAW,EACX,MAAgB,EAChB,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAgB,EAChB,YAAoB,EACpB,OAAe,EACf,SAAS,GACV,EAAE,eAAe,2CA6GjB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
import { type AppointmentItem } from '../../components/appointment-card';
|
|
3
|
+
import type { PortalAppointment, PortalHeadingLevel, PortalListStatus, StepUpConfig } from './portal-types';
|
|
4
|
+
export interface PortalScreenProps {
|
|
5
|
+
/** Value for the root's `data-component`. */
|
|
6
|
+
component: string;
|
|
7
|
+
/** The screen's heading. A name inside it sits in a `<bdi>` (R23). */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
/** A line under the heading. */
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
headingLevel: PortalHeadingLevel;
|
|
12
|
+
/** Move focus to the heading when the screen first shows. */
|
|
13
|
+
focusOnMount: boolean;
|
|
14
|
+
/** Stamps `data-privacy="masked"` on the root when true. */
|
|
15
|
+
privacy?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
/** Ref to the root, for a screen that moves focus inside itself. */
|
|
18
|
+
rootRef?: Ref<HTMLDivElement>;
|
|
19
|
+
/** The state of the read: loading and error are announced politely. */
|
|
20
|
+
status?: PortalListStatus;
|
|
21
|
+
/** Said when `status` is `loading`. */
|
|
22
|
+
loadingLabel?: string;
|
|
23
|
+
/** Said when `status` is `error`. */
|
|
24
|
+
errorLabel?: string;
|
|
25
|
+
/** Any other polite message, for example that a visit was cancelled. */
|
|
26
|
+
message?: string;
|
|
27
|
+
children?: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/** What a message's "Try again" needs: somewhere stable to put focus. */
|
|
30
|
+
export declare const ScreenFocus: import("react").Context<(() => void) | null>;
|
|
31
|
+
/**
|
|
32
|
+
* A polite status that stays mounted and starts empty, so the text is
|
|
33
|
+
* heard as a change (the kit's LoadStatus pattern). It sits outside the
|
|
34
|
+
* busy placeholder: screen readers hold back a busy region.
|
|
35
|
+
*/
|
|
36
|
+
export declare function PortalLiveRegion({ message }: {
|
|
37
|
+
message: string;
|
|
38
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* The titled card every portal screen wears. The heading takes focus only
|
|
41
|
+
* when asked, so a state story or a screen mounted with the page pulls none.
|
|
42
|
+
*/
|
|
43
|
+
export declare function PortalScreen({ component, title, description, headingLevel, focusOnMount, privacy, className, rootRef, status, loadingLabel, errorLabel, message, children, }: PortalScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export interface PortalSectionProps {
|
|
45
|
+
title: string;
|
|
46
|
+
/** The level of the screen this section sits in. */
|
|
47
|
+
headingLevel: PortalHeadingLevel;
|
|
48
|
+
/** Extra attribute for host hooks, for example `upcoming`. */
|
|
49
|
+
section?: string;
|
|
50
|
+
/**
|
|
51
|
+
* The host's opaque id for a repeated section (R22: `data-<entity>-id`).
|
|
52
|
+
* Kept apart from `section`, which holds the portal's own fixed names.
|
|
53
|
+
*/
|
|
54
|
+
sectionId?: string;
|
|
55
|
+
children: ReactNode;
|
|
56
|
+
}
|
|
57
|
+
/** A labelled group inside a screen: a heading and its content. */
|
|
58
|
+
export declare function PortalSection({ title, headingLevel, section, sectionId, children, }: PortalSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
/** A muted note under a heading or a card. */
|
|
60
|
+
export declare function PortalNote({ children }: {
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
/**
|
|
64
|
+
* The loading placeholder: calm lines only. The words are said by the
|
|
65
|
+
* screen's live region (`PortalScreen` `loadingLabel`), which stays mounted.
|
|
66
|
+
*/
|
|
67
|
+
export declare function PortalLoading(): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
export interface PortalMessageProps {
|
|
69
|
+
kind: 'empty' | 'error';
|
|
70
|
+
title: string;
|
|
71
|
+
body?: string;
|
|
72
|
+
headingLevel: PortalHeadingLevel;
|
|
73
|
+
/** Error only: called by "Try again". The button shows only when given. */
|
|
74
|
+
onRetry?: () => void;
|
|
75
|
+
}
|
|
76
|
+
/** An empty list or a failed read, with an optional retry button. */
|
|
77
|
+
export declare function PortalMessage({ kind, title, body, headingLevel, onRetry, }: PortalMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
/**
|
|
79
|
+
* The SMS check, open while `config` is not null. The host binds which
|
|
80
|
+
* sensitive step it is for; the screen only gives a default subject when the
|
|
81
|
+
* host gave none. Privacy is on when the screen's is, or the host's config
|
|
82
|
+
* turns it on; a config can never switch the screen's privacy off.
|
|
83
|
+
*/
|
|
84
|
+
export declare function PortalStepUp({ config, privacy, defaultSubject, }: {
|
|
85
|
+
config: StepUpConfig | null | undefined;
|
|
86
|
+
privacy: boolean;
|
|
87
|
+
defaultSubject?: ReactNode;
|
|
88
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
89
|
+
/** A portal appointment as the kit `AppointmentCard` takes it. */
|
|
90
|
+
export declare function toAppointmentItem(appointment: PortalAppointment, privacy?: boolean): AppointmentItem;
|
|
91
|
+
/** A list of appointment rows: one list per section, one item per visit. */
|
|
92
|
+
export declare function PortalAppointmentList({ children }: {
|
|
93
|
+
children: ReactNode;
|
|
94
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
/**
|
|
96
|
+
* One appointment: the day above (on the practice's clock), the card with
|
|
97
|
+
* its practice name, and `children` (actions) under it. It is a list item
|
|
98
|
+
* of `PortalAppointmentList`, or a plain block when `standalone`.
|
|
99
|
+
*/
|
|
100
|
+
export declare function PortalAppointmentRow({ appointment, locale, privacy, standalone, children, }: {
|
|
101
|
+
appointment: PortalAppointment;
|
|
102
|
+
locale: string;
|
|
103
|
+
privacy: boolean;
|
|
104
|
+
standalone?: boolean;
|
|
105
|
+
children?: ReactNode;
|
|
106
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
107
|
+
//# sourceMappingURL=portal-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-parts.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-portal/portal-parts.tsx"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAQf,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAUxB,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,KAAK,EAAE,SAAS,CAAC;IACjB,gCAAgC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,uEAAuE;IACvE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,yEAAyE;AACzE,eAAO,MAAM,WAAW,iCAAwB,IAAI,SAAe,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,2CAUhE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,OAAe,EACf,SAAS,EACT,OAAO,EACP,MAAgB,EAChB,YAAiB,EACjB,UAAe,EACf,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,2CAqDnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,YAAY,EAAE,kBAAkB,CAAC;IACjC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAoBpB;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAM/D;AAMD;;;GAGG;AACH,wBAAgB,aAAa,4CAM5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,kBAAkB,CAAC;IACjC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,OAAO,GACR,EAAE,kBAAkB,2CAgCpB;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,cAAc,GACf,EAAE;IACD,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,kDAoBA;AAYD,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,UAAQ,GACd,eAAe,CAmBjB;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAM1E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAkB,EAClB,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CAgCA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type TabBarProps } from '../../components/tab-bar';
|
|
3
|
+
import type { PortalListStatus, PortalNavItem } from './portal-types';
|
|
4
|
+
export interface PortalShellProps {
|
|
5
|
+
/** The id of the tab on screen. Matched against the ids of `tabs`. */
|
|
6
|
+
activeTab: string;
|
|
7
|
+
/** Called with the tab id when a button tab is chosen (a tab with no `href`). */
|
|
8
|
+
onTabChange?: (tabId: string) => void;
|
|
9
|
+
/**
|
|
10
|
+
* The tabs, in order. Default: Home, Appointments, Documents and My
|
|
11
|
+
* details, with ids `home`, `appointments`, `documents` and `details`.
|
|
12
|
+
* There is no Messages tab (D108). HTP-6917 adds its Account settings
|
|
13
|
+
* entry through this prop.
|
|
14
|
+
*/
|
|
15
|
+
tabs?: PortalNavItem[];
|
|
16
|
+
/**
|
|
17
|
+
* Renders an `href` tab with the host's router link. Passed to the kit
|
|
18
|
+
* `TabBar` as it is: apply the given `className` and `aria-current`.
|
|
19
|
+
*/
|
|
20
|
+
renderLink?: TabBarProps['renderLink'];
|
|
21
|
+
/**
|
|
22
|
+
* The patient's name, shown above the tabs. Masked under `privacy`.
|
|
23
|
+
* Absent: no name line.
|
|
24
|
+
*/
|
|
25
|
+
patientName?: string;
|
|
26
|
+
/** Called by "Sign out", which is always visible. The host ends the session. */
|
|
27
|
+
onSignOut: () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Milliseconds left in the session, counted by the host. Given, the shell
|
|
30
|
+
* shows the shared session banner (`PatientSessionBar`: running, warning,
|
|
31
|
+
* then expired). Absent: no banner, only Sign out. The shell runs no timer.
|
|
32
|
+
*/
|
|
33
|
+
remainingMs?: number;
|
|
34
|
+
/** Full session length in ms, for the banner. */
|
|
35
|
+
totalMs?: number;
|
|
36
|
+
/** Remaining ms at or below which the banner turns to its warning tone. Default: the banner's own. */
|
|
37
|
+
sessionWarnAtMs?: number;
|
|
38
|
+
/** Called once when `remainingMs` reaches 0. The host ends the session. */
|
|
39
|
+
onSessionExpire?: () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Why the session ended. Set, the shell renders the end screen
|
|
42
|
+
* (`PatientSessionEnded`) and unmounts everything else: the tabs, the
|
|
43
|
+
* children, any draft and every name and date are gone from the page.
|
|
44
|
+
* Null or absent: the portal shows. Only the 30 minute idle sign-out is
|
|
45
|
+
* sourced; an 8 hour maximum is to confirm and is not offered here.
|
|
46
|
+
*/
|
|
47
|
+
sessionEnded?: 'signed-out' | 'timed-out' | null;
|
|
48
|
+
/**
|
|
49
|
+
* The idle length in minutes. Needed with `sessionEnded="timed-out"`;
|
|
50
|
+
* without it the screen falls back to the signed-out text rather than
|
|
51
|
+
* show a wrong number.
|
|
52
|
+
*/
|
|
53
|
+
idleMinutes?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Called by "Sign in again" on the end screen. Required: the end screen
|
|
56
|
+
* has no other way out, and a button must always do something.
|
|
57
|
+
*/
|
|
58
|
+
onSignInAgain: () => void;
|
|
59
|
+
/** The state of the area under the tabs. Default `ready`: `children` show. */
|
|
60
|
+
status?: PortalListStatus;
|
|
61
|
+
/** Called by "Try again" in the error state. The button shows only when given. */
|
|
62
|
+
onRetry?: () => void;
|
|
63
|
+
/** The active screen: one of the portal screens, or the host's own. */
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* Move focus to the first heading in the content area when the shell
|
|
67
|
+
* shows (to the end screen's heading when the session has ended). Default
|
|
68
|
+
* false. Set it on the shell or on the screen inside it, not on both.
|
|
69
|
+
*/
|
|
70
|
+
focusOnMount?: boolean;
|
|
71
|
+
/** Privacy mode: the patient's name is masked. The screens take their own `privacy`. */
|
|
72
|
+
privacy?: boolean;
|
|
73
|
+
/** Extra classes for the root. */
|
|
74
|
+
className?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The frame inside the app header (D141, HTP-6904 AC, HTP-6932): the
|
|
78
|
+
* patient's name, the shared session banner with a visible Sign out, the
|
|
79
|
+
* tabs, and the active screen as children, with an area loading and error
|
|
80
|
+
* state. It is only placement. It owns no route, no timer and no session:
|
|
81
|
+
* the host's app picks the screen, counts the time and signs out.
|
|
82
|
+
*/
|
|
83
|
+
export declare function PortalShell({ activeTab, onTabChange, tabs, renderLink, patientName, onSignOut, remainingMs, totalMs, sessionWarnAtMs, onSessionExpire, sessionEnded, idleMinutes, onSignInAgain, status, onRetry, children, focusOnMount, privacy, className, }: PortalShellProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
//# sourceMappingURL=portal-shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-shell.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-portal/portal-shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI1D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AASpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC;IACjD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,IAAI,EACJ,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAmB,EACnB,WAAW,EACX,aAAa,EACb,MAAgB,EAChB,OAAO,EACP,QAAQ,EACR,YAAoB,EACpB,OAAe,EACf,SAAS,GACV,EAAE,gBAAgB,2CA2JlB"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { AppointmentType } from '../../components/appointment-card';
|
|
3
|
+
import type { StepUpDialogProps } from '../../components/step-up-dialog';
|
|
4
|
+
/**
|
|
5
|
+
* The shared step-up prop type (PLAN 1.7): everything the Phase 4
|
|
6
|
+
* `StepUpDialog` takes except the three props that open and close it.
|
|
7
|
+
* A screen that takes `stepUp?: StepUpConfig | null` shows the dialog open
|
|
8
|
+
* while the value is not null. The host decides when a code is asked (the
|
|
9
|
+
* 15 minute window is the host's), binds which sensitive step it is for,
|
|
10
|
+
* and reports `error`, `submitting` and `noMobile`.
|
|
11
|
+
*/
|
|
12
|
+
export type StepUpConfig = Omit<StepUpDialogProps, 'open' | 'defaultOpen' | 'onOpenChange'>;
|
|
13
|
+
/** The heading level a portal screen renders its title at. */
|
|
14
|
+
export type PortalHeadingLevel = 1 | 2;
|
|
15
|
+
/**
|
|
16
|
+
* The state of a read: `ready` shows the content, `loading` a placeholder,
|
|
17
|
+
* `error` a message with a retry button (HTP-6904 AC).
|
|
18
|
+
*/
|
|
19
|
+
export type PortalListStatus = 'ready' | 'loading' | 'error';
|
|
20
|
+
/** One tab of the portal shell. */
|
|
21
|
+
export interface PortalNavItem {
|
|
22
|
+
/** Stable id, handed to `onTabChange` and matched against `activeTab`. */
|
|
23
|
+
id: string;
|
|
24
|
+
/** The label, already translated by the host. */
|
|
25
|
+
label: string;
|
|
26
|
+
/** A leading icon (a lucide-react element). */
|
|
27
|
+
icon?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* When set, the tab is a link to this address (use with `renderLink` for
|
|
30
|
+
* client-side routing). Otherwise it is a button and `onTabChange` fires.
|
|
31
|
+
*/
|
|
32
|
+
href?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A practice the patient has appointments or documents at (PORTAL-DS-01:116).
|
|
36
|
+
* Text the practice wrote (name, WhatsApp message) is shown as given.
|
|
37
|
+
*/
|
|
38
|
+
export interface PortalPractice {
|
|
39
|
+
/** Stable id of the practice. */
|
|
40
|
+
id: string;
|
|
41
|
+
/** The practice's name, as the practice writes it. */
|
|
42
|
+
name: string;
|
|
43
|
+
/**
|
|
44
|
+
* IANA time zone of the practice, for example `"Europe/Rome"`. Every date
|
|
45
|
+
* and time of this practice's appointments reads on its clock.
|
|
46
|
+
*/
|
|
47
|
+
timeZone: string;
|
|
48
|
+
/**
|
|
49
|
+
* The phone number for a `tel:` link, E.164 or as typed. The fallback
|
|
50
|
+
* contact when `whatsAppNumber` is absent (a proposal, to confirm).
|
|
51
|
+
*/
|
|
52
|
+
phone?: string;
|
|
53
|
+
/** The phone number as shown. Laid out left to right. Default `phone`. */
|
|
54
|
+
phoneDisplay?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The WhatsApp number for click-to-chat, E.164 (for example
|
|
57
|
+
* `"+390200000000"`). Absent: no WhatsApp button for this practice.
|
|
58
|
+
*/
|
|
59
|
+
whatsAppNumber?: string;
|
|
60
|
+
/** The message that is prefilled in the chat. Default: a neutral greeting. */
|
|
61
|
+
whatsAppMessage?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Where "Book a new appointment" goes after a cancel. Only an `https://`,
|
|
64
|
+
* `http://` or same-site address is used (`isSafeAppointmentUrl`); anything
|
|
65
|
+
* else shows no link. Absent: no link (PORTAL-03:80).
|
|
66
|
+
*/
|
|
67
|
+
bookingUrl?: string;
|
|
68
|
+
}
|
|
69
|
+
/** Where an appointment stands in the portal's lists. */
|
|
70
|
+
export type PortalAppointmentStatus = 'upcoming' | 'cancelled' | 'past';
|
|
71
|
+
/**
|
|
72
|
+
* One appointment (PORTAL-DS-01:117). Data only: whether a cancel is in
|
|
73
|
+
* flight is the host's to show, never a field here.
|
|
74
|
+
*/
|
|
75
|
+
export interface PortalAppointment {
|
|
76
|
+
/** Stable id of the appointment. */
|
|
77
|
+
id: string;
|
|
78
|
+
/** ISO 8601 start instant. Shown on the practice's clock. */
|
|
79
|
+
startIso: string;
|
|
80
|
+
/** Length in minutes. */
|
|
81
|
+
durationMin: number;
|
|
82
|
+
/** Which list it belongs to. The host trims "past" to the last 12 months. */
|
|
83
|
+
status: PortalAppointmentStatus;
|
|
84
|
+
/** The practice the appointment is at. Every card names it (HTP-6911). */
|
|
85
|
+
practice: PortalPractice;
|
|
86
|
+
/** In the practice or by video. Default `'inPractice'`. */
|
|
87
|
+
type?: AppointmentType;
|
|
88
|
+
/** The clinician, a plain string. */
|
|
89
|
+
providerName?: string;
|
|
90
|
+
/** The specialty, a plain string. Carried for the host; not shown yet. */
|
|
91
|
+
specialty?: string;
|
|
92
|
+
/** The care (treatment) name, a plain string. */
|
|
93
|
+
careName?: string;
|
|
94
|
+
/** Paperwork is due, so Home offers "Check in" (HTP-6911, D109). */
|
|
95
|
+
checkInDue?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* The appointment is closer than the practice's cut-off: the portal shows
|
|
98
|
+
* "call the practice" and no Cancel (HTP-6950). The host decides this.
|
|
99
|
+
*/
|
|
100
|
+
insideCutOff?: boolean;
|
|
101
|
+
/** The practice's cut-off in hours, used in the sentence. Optional. */
|
|
102
|
+
cutOffHours?: number;
|
|
103
|
+
}
|
|
104
|
+
/** A file a practice shared with the patient (PORTAL-DS-01:118). */
|
|
105
|
+
export interface PortalSharedDocument {
|
|
106
|
+
/** Stable, non-identifying id. */
|
|
107
|
+
id: string;
|
|
108
|
+
/** The file name. Personal data: masked under privacy. */
|
|
109
|
+
name: string;
|
|
110
|
+
/** ISO 8601 instant it was shared. */
|
|
111
|
+
sharedAt: string;
|
|
112
|
+
/** The practice that shared it. */
|
|
113
|
+
practiceName: string;
|
|
114
|
+
/** MIME type, for example `"application/pdf"`. */
|
|
115
|
+
mimeType?: string;
|
|
116
|
+
}
|
|
117
|
+
/** The file on screen: a shared file plus where its bytes are. */
|
|
118
|
+
export interface PortalOpenDocument extends PortalSharedDocument {
|
|
119
|
+
/** The address of the file (the host owns auth). */
|
|
120
|
+
src: string;
|
|
121
|
+
/** MIME type. Required here: it picks the viewer. */
|
|
122
|
+
mimeType: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The details a patient may edit (HTP-6923, PORTAL-DS-01:119).
|
|
126
|
+
*/
|
|
127
|
+
export interface PortalDetailsValues {
|
|
128
|
+
/** First name. */
|
|
129
|
+
firstName: string;
|
|
130
|
+
/** Last name. */
|
|
131
|
+
lastName: string;
|
|
132
|
+
/** Street address. */
|
|
133
|
+
address: string;
|
|
134
|
+
/** Country of residence, a lower-case ISO 3166-1 alpha-2 code. */
|
|
135
|
+
country: string;
|
|
136
|
+
/** A contact email for messages from the practice. NOT the login email. */
|
|
137
|
+
contactEmail: string;
|
|
138
|
+
/** Another phone number. */
|
|
139
|
+
phone: string;
|
|
140
|
+
/**
|
|
141
|
+
* Marketing consent as the platform stores it: the box is on for `1` only;
|
|
142
|
+
* `2` is passed through untouched and its meaning is to confirm.
|
|
143
|
+
*/
|
|
144
|
+
marketing: 0 | 1 | 2;
|
|
145
|
+
}
|
|
146
|
+
/** A host error text per field of `PortalDetailsValues` (the server decides). */
|
|
147
|
+
export type PortalDetailsFieldErrors = Partial<Record<keyof PortalDetailsValues, string>>;
|
|
148
|
+
/** The facts the patient cannot change here (PORTAL-05). */
|
|
149
|
+
export interface PortalDetailsReadOnly {
|
|
150
|
+
/** Date of birth as `YYYY-MM-DD`. */
|
|
151
|
+
birthDateIso: string;
|
|
152
|
+
/** The codice fiscale. */
|
|
153
|
+
fiscalCode: string;
|
|
154
|
+
/** The mobile, masked by the host (for example `+39 ••• ••• 4521`). */
|
|
155
|
+
maskedMobile?: string;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=portal-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-types.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-portal/portal-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { PatientSignInEmail, PatientForgotPin, PatientForgotPinSent, } from './patient-sign-in-email';
|
|
2
|
+
export type { PatientEmailError, PatientSignInEmailProps, PatientForgotPinProps, PatientForgotPinSentProps, } from './patient-sign-in-email';
|
|
3
|
+
export { PatientSignInPin, PatientSetPin } from './patient-sign-in-pin';
|
|
4
|
+
export type { PatientPinError, PatientSetPinError, PatientSignInPinProps, PatientSetPinProps, } from './patient-sign-in-pin';
|
|
5
|
+
export { PatientSignInCode, PatientNoMobile, PatientPinChanged, PatientSessionBar, PatientSessionEnded, } from './patient-sign-in-steps';
|
|
6
|
+
export type { PatientSignInCodeProps, PatientNoMobileProps, PatientPinChangedProps, PatientSessionBarProps, PatientSessionEndReason, PatientSessionEndedProps, } from './patient-sign-in-steps';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-sign-in/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { P as a, a as i, b as e, c as P, d as s } from "../../_chunks/patient-sign-in-pin-CDBqV254.js";
|
|
2
|
+
import { P as r, a as S, b as d, c as g, d as b } from "../../_chunks/patient-sign-in-steps-C2JSqlok.js";
|
|
3
|
+
export {
|
|
4
|
+
a as PatientForgotPin,
|
|
5
|
+
i as PatientForgotPinSent,
|
|
6
|
+
r as PatientNoMobile,
|
|
7
|
+
S as PatientPinChanged,
|
|
8
|
+
d as PatientSessionBar,
|
|
9
|
+
g as PatientSessionEnded,
|
|
10
|
+
e as PatientSetPin,
|
|
11
|
+
b as PatientSignInCode,
|
|
12
|
+
P as PatientSignInEmail,
|
|
13
|
+
s as PatientSignInPin
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type FinishedTerminalAction } from '../../components/finished-terminal';
|
|
3
|
+
/** The heading level a card screen renders its title at. */
|
|
4
|
+
export type PatientHeadingLevel = 1 | 2;
|
|
5
|
+
export interface PatientCardProps {
|
|
6
|
+
/** Value for the root's `data-component`. */
|
|
7
|
+
component: string;
|
|
8
|
+
title: string;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
/** A short line above the title, for example "Step 2 of 3". */
|
|
11
|
+
eyebrow?: ReactNode;
|
|
12
|
+
/** A control at the inline end, above the title (the language slot). */
|
|
13
|
+
headerAction?: ReactNode;
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
footer?: ReactNode;
|
|
16
|
+
headingLevel?: PatientHeadingLevel;
|
|
17
|
+
/** Move focus to the title when the card first shows. */
|
|
18
|
+
focusOnMount?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* When this changes after mount, focus moves to the title again: a step
|
|
21
|
+
* inside the same card (choose, then confirm) is announced.
|
|
22
|
+
*/
|
|
23
|
+
focusKey?: string;
|
|
24
|
+
/** Stamps `data-privacy="masked"` on the root when true. */
|
|
25
|
+
privacy?: boolean;
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The titled card every sign-in screen wears. The title is the screen's
|
|
30
|
+
* heading; it takes focus only when asked, so a state story or a screen the
|
|
31
|
+
* host mounts with the page does not pull focus.
|
|
32
|
+
*/
|
|
33
|
+
export declare function PatientCard({ component, title, description, eyebrow, headerAction, children, footer, headingLevel, focusOnMount, focusKey, privacy, className, }: PatientCardProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export interface PatientEndScreenProps {
|
|
35
|
+
/** Value for the root's `data-component`. */
|
|
36
|
+
component: string;
|
|
37
|
+
icon: ReactNode;
|
|
38
|
+
title: string;
|
|
39
|
+
body: ReactNode;
|
|
40
|
+
/** The one button. No button when absent. */
|
|
41
|
+
action?: FinishedTerminalAction;
|
|
42
|
+
/** Shown under the card, for example a notice. */
|
|
43
|
+
below?: ReactNode;
|
|
44
|
+
/** Move focus to the title on mount. Default false. */
|
|
45
|
+
focusOnMount?: boolean;
|
|
46
|
+
/** Stamps `data-privacy="masked"` on the root when true. */
|
|
47
|
+
privacy?: boolean;
|
|
48
|
+
className?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Every end screen of this pattern: `FinishedTerminal` in its button-only
|
|
52
|
+
* mode (no countdown, no automatic move), inside the pattern's own root.
|
|
53
|
+
*/
|
|
54
|
+
export declare function PatientEndScreen({ component, icon, title, body, action, below, focusOnMount, privacy, className, }: PatientEndScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export interface PatientTextActionProps {
|
|
56
|
+
/** Emitted as `data-action`. */
|
|
57
|
+
action: string;
|
|
58
|
+
onClick: () => void;
|
|
59
|
+
children: ReactNode;
|
|
60
|
+
}
|
|
61
|
+
/** A quiet text action in a card: "Back", "Forgot your PIN?". */
|
|
62
|
+
export declare const PatientTextAction: import("react").ForwardRefExoticComponent<PatientTextActionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
63
|
+
/** A muted note under a card's content. */
|
|
64
|
+
export declare function PatientNote({ children }: {
|
|
65
|
+
children: ReactNode;
|
|
66
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
/**
|
|
68
|
+
* Runs `onResult` when the host reports an error after a try: the error
|
|
69
|
+
* arrives, or the host finishes checking (`submitting` goes true to false)
|
|
70
|
+
* with the error still set. Never on mount, so a state story pulls no
|
|
71
|
+
* focus. The kit counts nothing: it only watches the props change.
|
|
72
|
+
*/
|
|
73
|
+
export declare function useAfterResult(error: unknown, submitting: boolean, onResult: () => void): void;
|
|
74
|
+
//# sourceMappingURL=patient-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patient-card.d.ts","sourceRoot":"","sources":["../../../src/patterns/patient-sign-in/patient-card.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oCAAoC,CAAC;AAE5C,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,WAAW,EACX,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAgB,EAChB,YAAoB,EACpB,QAAQ,EACR,OAAe,EACf,SAAS,GACV,EAAE,gBAAgB,2CA6DlB;AAED,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAoB,EACpB,OAAe,EACf,SAAS,GACV,EAAE,qBAAqB,2CAwBvB;AASD,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,sHAa5B,CAAC;AAGH,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,IAAI,QAarB"}
|