@alfadocs/ui-kit 1.37.0 → 1.39.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/{actions-cell-renderer-CUn1pqEq.js → actions-cell-renderer-BXBy9c0f.js} +3 -3
- package/dist/_chunks/{agenda-tray-DYGCTIWB.js → agenda-tray-CBaJASb5.js} +4 -4
- package/dist/_chunks/{ai-consent-banner-De4gzSBZ.js → ai-consent-banner-DvtaM3yg.js} +2 -2
- package/dist/_chunks/{ai-prompt-input-DdxlaI7q.js → ai-prompt-input-DXknpQCB.js} +2 -2
- package/dist/_chunks/{alia-sidebar-B6bXlZZk.js → alia-sidebar-CUqaJNPQ.js} +7 -7
- package/dist/_chunks/{anamnesis-card-DGwINeNn.js → anamnesis-card-xtEhyojD.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-card-GYHa7VGp.js → anamnesis-summary-card-CclBbiXg.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-Cxtgo2ok.js → anamnesis-summary-rows-DQUqwWc1.js} +7 -7
- package/dist/_chunks/{appointment-card-WsDGBBut.js → appointment-card-TgR_2GKS.js} +134 -102
- package/dist/_chunks/{appointment-peek-5S4O1VQP.js → appointment-peek-abiR0T9e.js} +3 -3
- package/dist/_chunks/{appointment-timeline-ByfovxqR.js → appointment-timeline-CCnyUYKz.js} +67 -63
- package/dist/_chunks/{appointment-tray-D6UyJHej.js → appointment-tray-N0yEI8UF.js} +5 -5
- package/dist/_chunks/{audio-recorder-BlQBC7N_.js → audio-recorder-B7dT-Y3v.js} +3 -3
- package/dist/_chunks/{balance-badge-cell-B0Z8Dwn8.js → balance-badge-cell-o6LldMUA.js} +5 -5
- package/dist/_chunks/{bishop-score-D5b8tktp.js → bishop-score-Cu70iv9C.js} +2 -2
- package/dist/_chunks/{bmi-calculator-dOKP-vW4.js → bmi-calculator-C9N19aLX.js} +2 -2
- package/dist/_chunks/{booking-Dp-9qR6F.js → booking-Dn3jvv3K.js} +6 -6
- package/dist/_chunks/{button-nJaPh_HC.js → button-CaUe1uyd.js} +11 -7
- package/dist/_chunks/{button-group-QmN1VdUW.js → button-group-R32U7SyV.js} +2 -2
- package/dist/_chunks/{calendar-7GAUlsNO.js → calendar-ChJQzRw-.js} +2 -2
- package/dist/_chunks/calendar-workspace-B-fUbm62.js +11372 -0
- package/dist/_chunks/{care-plan-card-COFOI-fI.js → care-plan-card-BOv0NRle.js} +3 -3
- package/dist/_chunks/{care-plan-entry-card-BOKn0KW-.js → care-plan-entry-card-d-rZD4li.js} +3 -3
- package/dist/_chunks/{care-plan-header-CbuOuVBw.js → care-plan-header-CEmBXn6-.js} +2 -2
- package/dist/_chunks/{carousel.agent-Dv4a4M8L.js → carousel.agent-z1yLBpyC.js} +2 -2
- package/dist/_chunks/{chart-iWl76PXv.js → chart-PF2krCZC.js} +3 -3
- package/dist/_chunks/{chat-input-qM5QpUSq.js → chat-input-Cj7ZYQr5.js} +2 -2
- package/dist/_chunks/{chat-message-RniXtrCH.js → chat-message-BMVxiUIX.js} +3 -3
- package/dist/_chunks/{code-block-uVjNSI9g.js → code-block-BB-viuTn.js} +2 -2
- package/dist/_chunks/{connection-status-OEsWjmRk.js → connection-status-BmA9T0UO.js} +3 -3
- package/dist/_chunks/{contact-profile-card--My1H2UD.js → contact-profile-card-Zt6WNg1u.js} +2 -2
- package/dist/_chunks/{control-room-rail-DQoHdE1U.js → control-room-rail-CnNZusR5.js} +3 -3
- package/dist/_chunks/{copy-field-fYKpl6aN.js → copy-field-B8XRVmQv.js} +2 -2
- package/dist/_chunks/credit-card-D9XZsHGA.js +15 -0
- package/dist/_chunks/{cycle-calculator-BJeaXiZv.js → cycle-calculator-BH2StWoT.js} +2 -2
- package/dist/_chunks/{dashboard-grid-B23BFzRl.js → dashboard-grid-BcXWL5S9.js} +2 -2
- package/dist/_chunks/{data-table-BYGK-gUJ.js → data-table-CcAx_I1w.js} +7 -7
- package/dist/_chunks/{data-table-tabs-BMR0zsVQ.js → data-table-tabs-B9SXA5VP.js} +3 -3
- package/dist/_chunks/{description-list-C1RXMDZ_.js → description-list-BsJ_6CQE.js} +2 -2
- package/dist/_chunks/{document-preview-DsEyRcNd.js → document-preview-COV0BC6n.js} +2 -2
- package/dist/_chunks/{document-scanner-CbWVtm7u.js → document-scanner-B1abl-A4.js} +2 -2
- package/dist/_chunks/{due-date-calculator-Dhc9Ljkb.js → due-date-calculator-Buh_mVHq.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-D7blbDFY.js → editable-currency-cell-renderer-Psb6XKHR.js} +3 -3
- package/dist/_chunks/editable-description-ADMVFPUz.js +142 -0
- package/dist/_chunks/{editor-overlay-8fKAcRsm.js → editor-overlay-9tcPXNWt.js} +2 -2
- package/dist/_chunks/{empty-state-X0sVPfVo.js → empty-state-BUN_UAWf.js} +2 -2
- package/dist/_chunks/{entity-summary-BbW0mIzU.js → entity-summary-DXejuQ8i.js} +3 -3
- package/dist/_chunks/{error-boundary-ayXFCcq4.js → error-boundary-BNT2iQ1w.js} +2 -2
- package/dist/_chunks/{face-scheme-uFvhqz6h.js → face-scheme-Dg6ZyLKb.js} +5 -5
- package/dist/_chunks/{fetal-weight-C6SxchOv.js → fetal-weight-wx4ycKc6.js} +2 -2
- package/dist/_chunks/{field-array-C9dmRaIM.js → field-array-BW9KeeXG.js} +3 -3
- package/dist/_chunks/{file-manager-DvkFgj7d.js → file-manager-BfLQxF5t.js} +137 -151
- package/dist/_chunks/{finished-terminal-Br61Ip4e.js → finished-terminal-DJd7Z_po.js} +2 -2
- package/dist/_chunks/{fiscal-code-input-CkwIdB1y.js → fiscal-code-input-ODQRd_Sw.js} +2 -2
- package/dist/_chunks/folder-BghC8_S2.js +20 -0
- package/dist/_chunks/{freemium-paywall-BqGk_SBU.js → freemium-paywall-Cz-O9lQD.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-DDOGaPvg.js → gestational-age-calculator-CwbecTul.js} +2 -2
- package/dist/_chunks/{hcg-doubling-Bb_n6tEa.js → hcg-doubling-BcXriXJe.js} +2 -2
- package/dist/_chunks/{header-BZ4pZlJV.js → header-3o9o9v_T.js} +2 -2
- package/dist/_chunks/{header-settings-B8mLc03Q.js → header-settings-CTe45iDy.js} +4 -4
- package/dist/_chunks/{hover-card-Bcku1GQu.js → hover-card-BMJBVqIf.js} +2 -2
- package/dist/_chunks/{icon-button-8xqRnkdG.js → icon-button-CehAeZoP.js} +2 -2
- package/dist/_chunks/{icon-button-group-Dj6CRoYR.js → icon-button-group-DkkdIygu.js} +2 -2
- package/dist/_chunks/{icon-picker-CTWzlHJr.js → icon-picker-DMEelg9v.js} +3 -3
- package/dist/_chunks/{image-cropper-C84NDTB7.js → image-cropper-BjPjT7wU.js} +2 -2
- package/dist/_chunks/{info-tip-ey_Pon2y.js → info-tip-iP2Pm9dh.js} +2 -2
- package/dist/_chunks/{insert-result-LCNTskNJ.js → insert-result-DPnOBD85.js} +2 -2
- package/dist/_chunks/{key-value-pair-DczGb4yz.js → key-value-pair-DaQI_LZB.js} +2 -2
- package/dist/_chunks/{link-cell-renderer-BNa8x6oJ.js → link-cell-renderer-s3oHzOwi.js} +2 -2
- package/dist/_chunks/{locale-picker-BLeHbFSc.js → locale-picker-CH3kfrIG.js} +3 -3
- package/dist/_chunks/{map-view-CCAlC9IL.js → map-view-CHw4RL6w.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-BwH6Aruw.js → marketplace-app-shell-d2EtcUbe.js} +4 -4
- package/dist/_chunks/{message-card-Dm5Xshup.js → message-card-V3sFPiQI.js} +3 -3
- package/dist/_chunks/{message-tray-BcLyaO-G.js → message-tray-CrRIHfiQ.js} +5 -5
- package/dist/_chunks/note-timeline-Dn_XTo1s.js +333 -0
- package/dist/_chunks/notes-panel-CAD1Ytcj.js +647 -0
- package/dist/_chunks/{notification-card-ChcK9Wat.js → notification-card-B2gLO6dK.js} +3 -3
- package/dist/_chunks/{notification-tray-CJ8jOe-U.js → notification-tray-BOEKegVV.js} +5 -5
- package/dist/_chunks/{optical-prescription-cphK41eP.js → optical-prescription-LGgmtcST.js} +2 -2
- package/dist/_chunks/{panel-subview-BNXN8OEL.js → panel-subview-Cc2Wtt7D.js} +52 -52
- package/dist/_chunks/{patient-details-2cIaL-Zb.js → patient-details-C8ImUrVg.js} +3 -3
- package/dist/_chunks/{patient-field-row-IHb2VFc2.js → patient-field-row-BRSOKvme.js} +7 -7
- package/dist/_chunks/{patient-search-D08b6jgj.js → patient-search-5QcmQKJD.js} +2 -2
- package/dist/_chunks/{patient-summary-card-BzmJH9a-.js → patient-summary-card-BhmKB2KR.js} +8 -8
- package/dist/_chunks/{payment-automation-upsell-BLTdE2em.js → payment-automation-upsell-BKmBXU4i.js} +17 -16
- package/dist/_chunks/{payment-request-card-BxcdvxKR.js → payment-request-card-Cer6XXCn.js} +6 -5
- package/dist/_chunks/{periodontal-chart-BF_e3wZp.js → periodontal-chart-DJoZS_o7.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-BJEuJuzh.js → periodontal-chart-card-Nd1ZoYWb.js} +2 -2
- package/dist/_chunks/{popover-DzR5QYxp.js → popover-DO-pssF3.js} +2 -2
- package/dist/_chunks/{practice-results-DOcORTkP.js → practice-results-D_jjzwgf.js} +6 -6
- package/dist/_chunks/{pregnancy-dating-nV1_S6w0.js → pregnancy-dating-DcyV9ZRD.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-tRecShAD.js → pregnancy-weight-gain-Bfq4Kwt5.js} +2 -2
- package/dist/_chunks/{privacy-lock-Be39vQUN.js → privacy-lock-CbFCAMM3.js} +3 -3
- package/dist/_chunks/{product-hub-panel-C0TO69P7.js → product-hub-panel-w40-_-1s.js} +4 -4
- package/dist/_chunks/{public-header.agent-Bl1KFwSE.js → public-header.agent-D-EBVskf.js} +3 -3
- package/dist/_chunks/{radiograph-panel.agent-k0G7JuoM.js → radiograph-panel.agent-LrILY2lN.js} +4 -4
- package/dist/_chunks/{receipt-euro-C6k4Gzhr.js → receipt-euro-B1cLM_TN.js} +3 -14
- package/dist/_chunks/{reviews-panel-BaHZb_ai.js → reviews-panel-2GVuxGeT.js} +5 -5
- package/dist/_chunks/{rich-text-editor-BTXlorm5.js → rich-text-editor-C6fE-uP4.js} +5 -5
- package/dist/_chunks/{session-countdown-QMsnRa1x.js → session-countdown-BqppPrw6.js} +2 -2
- package/dist/_chunks/{sheet-hm04DGFd.js → sheet-C8WIDFS8.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-BLe_quy5.js → sign-in-with-alfadocs-button-DWwBJtyE.js} +2 -2
- package/dist/_chunks/{signature-request-Dej2g86d.js → signature-request-D_j2aQu1.js} +360 -371
- package/dist/_chunks/{skeleton-CZbwyJAA.js → skeleton-B1KTdJ4N.js} +46 -33
- package/dist/_chunks/{slot-grid-8Ko6thzz.js → slot-grid-B3eOPkKD.js} +5 -5
- package/dist/_chunks/{streaming-text-DjFqLSt_.js → streaming-text-CE1u_oGa.js} +2 -2
- package/dist/_chunks/{task-tray-CQ8UAR2j.js → task-tray-DIwjAIes.js} +4 -4
- package/dist/_chunks/{tasks-panel-CBGMtQ_f.js → tasks-panel-CpcikOeY.js} +6 -6
- package/dist/_chunks/{theme-toggle-CMz8YfC1.js → theme-toggle-bI0pgDDv.js} +3 -3
- package/dist/_chunks/{toast-8jqtbfAB.js → toast-ZZfhA5u0.js} +2 -2
- package/dist/_chunks/{token-insert-menu-9Um0JinI.js → token-insert-menu-A9B5AJw6.js} +2 -2
- package/dist/_chunks/tool-rail-D89USYE6.js +799 -0
- package/dist/_chunks/{tooth-scheme-BWkYxxjR.js → tooth-scheme-DPAq0vQK.js} +3 -3
- package/dist/_chunks/{transaction-chip-Dth1nThY.js → transaction-chip-CwgcJiqF.js} +47 -46
- package/dist/_chunks/treatment-receipt-dUm99mdn.js +160 -0
- package/dist/_chunks/{unit-converter-BTgU50gk.js → unit-converter-C-LpGzrN.js} +2 -2
- package/dist/_chunks/user-plus-BtcOLgNU.js +17 -0
- package/dist/_chunks/{warning-stack-BW5Dwb3z.js → warning-stack-C0glSB7p.js} +3 -3
- package/dist/_chunks/{workflow-map-CXdsxvUj.js → workflow-map-DhR_h5yw.js} +5 -5
- package/dist/agent-catalog.json +3 -418
- package/dist/agent-i18n/en.json +2 -18
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-consent-banner/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/anamnesis-card/index.js +1 -1
- package/dist/components/anamnesis-summary-card/index.js +1 -1
- package/dist/components/appointment-card/appointment-card.d.ts +24 -0
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +15 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/button/button.d.ts +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/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/carousel/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/connection-status/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/copy-field/index.js +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/dashboard-grid/index.js +1 -1
- package/dist/components/data-table/index.js +4 -4
- package/dist/components/data-table-tabs/index.js +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/document-scanner/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +1 -1
- package/dist/components/editable-description/editable-description.d.ts +6 -0
- package/dist/components/editable-description/index.js +1 -1
- package/dist/components/editor-overlay/index.js +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/error-boundary/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/fetal-weight/index.js +1 -1
- package/dist/components/field-array/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/finished-terminal/index.js +1 -1
- package/dist/components/fiscal-code-input/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/hover-card/index.js +1 -1
- package/dist/components/icon-button/index.js +1 -1
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/icon-picker/index.js +1 -1
- package/dist/components/image-cropper/index.js +1 -1
- package/dist/components/info-tip/index.js +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/note-timeline/index.js +1 -1
- package/dist/components/note-timeline/note-timeline.d.ts +17 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +5 -4
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/panel-subview/index.js +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/periodontal-chart/index.js +1 -1
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/session-countdown/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/skeleton/index.d.ts +1 -1
- package/dist/components/skeleton/index.js +3 -2
- package/dist/components/skeleton/skeleton.d.ts +12 -0
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/token-insert-menu/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/transaction-chip/index.js +1 -1
- package/dist/components/transaction-chip/transaction-chip.d.ts +7 -0
- package/dist/components/treatment-receipt/index.js +1 -1
- package/dist/components/treatment-receipt/treatment-receipt.d.ts +8 -0
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/host-compat.css +13 -4
- package/dist/i18n/locales/ar.d.ts +235 -183
- package/dist/i18n/locales/ar.js +239 -187
- package/dist/i18n/locales/de.d.ts +219 -167
- package/dist/i18n/locales/de.js +223 -171
- package/dist/i18n/locales/el.d.ts +234 -182
- package/dist/i18n/locales/el.js +238 -186
- package/dist/i18n/locales/en.d.ts +52 -0
- package/dist/i18n/locales/en.js +56 -4
- package/dist/i18n/locales/es.d.ts +227 -175
- package/dist/i18n/locales/es.js +231 -179
- package/dist/i18n/locales/fr.d.ts +221 -169
- package/dist/i18n/locales/fr.js +225 -173
- package/dist/i18n/locales/hi.d.ts +235 -183
- package/dist/i18n/locales/hi.js +243 -187
- package/dist/i18n/locales/it.d.ts +179 -127
- package/dist/i18n/locales/it.js +183 -131
- package/dist/i18n/locales/ja.d.ts +233 -181
- package/dist/i18n/locales/ja.js +237 -185
- package/dist/i18n/locales/nl.d.ts +224 -172
- package/dist/i18n/locales/nl.js +228 -176
- package/dist/i18n/locales/pl.d.ts +229 -177
- package/dist/i18n/locales/pl.js +233 -181
- package/dist/i18n/locales/pt.d.ts +229 -177
- package/dist/i18n/locales/pt.js +233 -181
- package/dist/i18n/locales/ro.d.ts +228 -176
- package/dist/i18n/locales/ro.js +232 -180
- package/dist/i18n/locales/ru.d.ts +234 -182
- package/dist/i18n/locales/ru.js +238 -186
- package/dist/i18n/locales/sq.d.ts +228 -176
- package/dist/i18n/locales/sq.js +232 -180
- package/dist/i18n/locales/sv.d.ts +229 -177
- package/dist/i18n/locales/sv.js +233 -181
- package/dist/i18n/locales/tr.d.ts +235 -183
- package/dist/i18n/locales/tr.js +239 -187
- package/dist/i18n/locales/zh.d.ts +228 -176
- package/dist/i18n/locales/zh.js +232 -180
- package/dist/index.js +785 -784
- package/dist/locales/ar.json +239 -187
- package/dist/locales/de.json +223 -171
- package/dist/locales/el.json +238 -186
- package/dist/locales/en.json +56 -4
- package/dist/locales/es.json +231 -179
- package/dist/locales/fr.json +225 -173
- package/dist/locales/hi.json +239 -187
- package/dist/locales/it.json +183 -131
- package/dist/locales/ja.json +237 -185
- package/dist/locales/nl.json +228 -176
- package/dist/locales/pl.json +233 -181
- package/dist/locales/pt.json +233 -181
- package/dist/locales/ro.json +232 -180
- package/dist/locales/ru.json +238 -186
- package/dist/locales/sq.json +232 -180
- package/dist/locales/sv.json +233 -181
- package/dist/locales/tr.json +239 -187
- package/dist/locales/zh.json +232 -180
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar-appointment-details.d.ts +8 -1
- package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +10 -5
- package/dist/patterns/calendar/calendar-bookings-panel.d.ts +31 -0
- package/dist/patterns/calendar/calendar-editor-hydration.d.ts +0 -2
- package/dist/patterns/calendar/calendar-info-hover.d.ts +15 -1
- package/dist/patterns/calendar/calendar-privacy.d.ts +23 -0
- package/dist/patterns/calendar/calendar-rail-settle.d.ts +14 -0
- package/dist/patterns/calendar/calendar-upcoming-panel.d.ts +32 -0
- package/dist/patterns/calendar/calendar-waiting-list-panel.d.ts +62 -0
- package/dist/patterns/calendar/calendar-workspace.d.ts +14 -1
- package/dist/patterns/calendar/calendar-workspace.model.d.ts +37 -1
- package/dist/patterns/calendar/calendar.model.d.ts +8 -2
- package/dist/patterns/calendar/calendar.sheets.d.ts +43 -27
- package/dist/patterns/calendar/calendar.types.d.ts +6 -0
- package/dist/patterns/calendar/index.d.ts +2 -2
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +3 -1
- package/dist/_chunks/calendar-workspace-BqKBj26r.js +0 -9715
- package/dist/_chunks/editable-description-BOfAeY3T.js +0 -112
- package/dist/_chunks/note-timeline-CXfSV3yX.js +0 -231
- package/dist/_chunks/notes-panel-4y5JioWN.js +0 -556
- package/dist/_chunks/tool-rail-BP8sjxCw.js +0 -667
- package/dist/_chunks/treatment-receipt-D4kOLXOk.js +0 -94
|
@@ -6,9 +6,9 @@ interface CardProps {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* The kit's PatientSummaryCard: identity, the attention chips, the money
|
|
9
|
-
* chips and the contact fields.
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* chips and the contact fields. Every chip explains itself in a hover
|
|
10
|
+
* card; money reads worst first (owed, to invoice, paid online), labelled
|
|
11
|
+
* and without glyphs.
|
|
12
12
|
*/
|
|
13
13
|
export declare function DetailsPatientCard({ details, locale, mapsLink, }: CardProps & {
|
|
14
14
|
/** The user's map-link setting (platform `showPatientAddressMapLink`). */
|
|
@@ -20,13 +20,18 @@ export declare function DetailsPatientCard({ details, locale, mapsLink, }: CardP
|
|
|
20
20
|
* an id the data does not know prints no row. `description` is the host's
|
|
21
21
|
* slot for the description, above the facts.
|
|
22
22
|
*/
|
|
23
|
-
export declare function DetailsAppointmentCard({ details, locale, description, }: CardProps & {
|
|
23
|
+
export declare function DetailsAppointmentCard({ details, locale, description, privacy, }: CardProps & {
|
|
24
24
|
description?: ReactNode;
|
|
25
|
+
/** Privacy mode: what the booker typed is dropped; when they booked stays. */
|
|
26
|
+
privacy?: boolean;
|
|
25
27
|
}): import("react/jsx-runtime").JSX.Element;
|
|
26
28
|
/** The linked plan, by number when the host has one, and the kit's
|
|
27
29
|
* TreatmentReceipt: one line per treatment, a price only when the host
|
|
28
30
|
* sends one (the editor's price gate), and a total only when every line
|
|
29
31
|
* is priced. */
|
|
30
|
-
export declare function DetailsTreatmentsCard({ details, locale }: CardProps
|
|
32
|
+
export declare function DetailsTreatmentsCard({ details, locale, privacy, }: CardProps & {
|
|
33
|
+
/** Privacy mode: the plan's free-text name goes, as on the hover peek. */
|
|
34
|
+
privacy?: boolean;
|
|
35
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
31
36
|
export {};
|
|
32
37
|
//# sourceMappingURL=calendar-appointment-details.sections.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CalendarRow } from './calendar.model';
|
|
2
|
+
import { type BookingRowView } from './calendar-workspace.model';
|
|
3
|
+
/** Which half of the booking the user asked to complete: a hint for the
|
|
4
|
+
* host editor's landing step. Absent means the plain "edit" entry. */
|
|
5
|
+
export type BookingCompleteIntent = 'patient' | 'operator';
|
|
6
|
+
/**
|
|
7
|
+
* The digits `wa.me` needs from the SMS-verified booking number, or null.
|
|
8
|
+
* A host may hand over a redacted display value ("+39 *** 121"): anything
|
|
9
|
+
* but a plain number is refused rather than turned into a wrong chat.
|
|
10
|
+
*/
|
|
11
|
+
export declare function bookingWhatsAppDigits(phone: string | undefined): string | null;
|
|
12
|
+
export interface BookingCardProps {
|
|
13
|
+
view: BookingRowView;
|
|
14
|
+
locale?: string;
|
|
15
|
+
/** Masked title, no photo, no contact, no reason, no WhatsApp number. */
|
|
16
|
+
privacy?: boolean;
|
|
17
|
+
/** False withholds the assign segments and the pencil: a host that cannot
|
|
18
|
+
* complete a booking is never offered a control it would refuse. */
|
|
19
|
+
canComplete: boolean;
|
|
20
|
+
onComplete?: (row: CalendarRow, intent?: BookingCompleteIntent) => void;
|
|
21
|
+
onShowInCalendar: (eventId: string) => void;
|
|
22
|
+
/** The host addressed this card: ring it (see `BookingsPanel`). */
|
|
23
|
+
addressed?: boolean;
|
|
24
|
+
/** Changes on every address, so a repeat address replays the ring. */
|
|
25
|
+
addressKey?: string | number;
|
|
26
|
+
}
|
|
27
|
+
export declare const BookingCard: import("react").ForwardRefExoticComponent<BookingCardProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
28
|
+
/** The first read's placeholders, in the card's own shape: time block,
|
|
29
|
+
* avatar, three lines, and the strip under its divider. */
|
|
30
|
+
export declare function BookingCardsSkeleton(): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=calendar-bookings-panel.d.ts.map
|
|
@@ -44,8 +44,6 @@ export type CalendarAppointmentEditorLoader = (eventId: string, options: {
|
|
|
44
44
|
type ReadySnapshot = Extract<CalendarAppointmentEditorSnapshot, {
|
|
45
45
|
status: 'ready';
|
|
46
46
|
}>;
|
|
47
|
-
/** The editor is not mounted until the host returns its canonical data.
|
|
48
|
-
* Mounting this boundary per open also reloads a previously closed editor. */
|
|
49
47
|
export declare function CalendarEditorHydration({ eventId, load, onCancel, children, }: {
|
|
50
48
|
eventId?: string;
|
|
51
49
|
load?: CalendarAppointmentEditorLoader;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* The hover card body the details panel's chips share: an eyebrow naming
|
|
3
3
|
* the kind of thing, a heading restating the chip in words, and the facts
|
|
4
4
|
* the chip could not fit. Ported from the calendar-rail demo's hover
|
|
5
|
-
* grammar; `PatientSummaryCard.flagHover` renders it around its own chip
|
|
5
|
+
* grammar; `PatientSummaryCard.flagHover` renders it around its own chip,
|
|
6
|
+
* and `InfoHover` wraps the chips the panel renders itself.
|
|
6
7
|
*/
|
|
7
8
|
import type { ReactNode } from 'react';
|
|
8
9
|
export interface InfoHoverFact {
|
|
@@ -15,4 +16,17 @@ export declare function InfoHoverBody({ eyebrow, heading, facts, }: {
|
|
|
15
16
|
heading: string;
|
|
16
17
|
facts?: readonly InfoHoverFact[];
|
|
17
18
|
}): ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Wraps a chip the panel renders itself in the same card. It carries no
|
|
21
|
+
* open button: the pattern has no seam to open invoicing or the anamnesis.
|
|
22
|
+
*/
|
|
23
|
+
export declare function InfoHover({ id, eyebrow, heading, facts, children, }: {
|
|
24
|
+
/** Stamped as `data-chip-hover`, the trigger's DOM hook. */
|
|
25
|
+
id: string;
|
|
26
|
+
eyebrow: string;
|
|
27
|
+
heading: string;
|
|
28
|
+
facts?: readonly InfoHoverFact[];
|
|
29
|
+
/** The chip; its visible text is the trigger's accessible name. */
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
}): ReactNode;
|
|
18
32
|
//# sourceMappingURL=calendar-info-hover.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** The mask privacy mode shows for a name. TOTAL, as `maskedTitle` is: an
|
|
3
|
+
* empty or absent host mask degrades to the bullets, never to a blank. */
|
|
4
|
+
export declare function privacyMask(mask?: string): string;
|
|
5
|
+
/** One muted line where a personal value would have been. */
|
|
6
|
+
export declare function PrivacyHiddenLine({ block }: {
|
|
7
|
+
block?: string;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
/** The patient card under privacy: the grid's mask, no photo, no contact
|
|
10
|
+
* fields and no chips. Keeps `data-card="patient"` for host hooks. */
|
|
11
|
+
export declare function PrivacyIdentityCard({ mask }: {
|
|
12
|
+
mask?: string;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/** A whole rail panel withheld under privacy: a form or a notes list that
|
|
15
|
+
* could only open by showing what the mask hides. */
|
|
16
|
+
export declare function PrivacyNoticePanel({ title, icon, onTurnOff, }: {
|
|
17
|
+
/** The panel's own title, so the rail still says which tool this is. */
|
|
18
|
+
title: string;
|
|
19
|
+
icon?: ReactNode;
|
|
20
|
+
/** Absent: the notice explains, and the toolbar's toggle is the way out. */
|
|
21
|
+
onTurnOff?: () => void;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=calendar-privacy.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
import type { EditorInitialFocus } from './calendar.model';
|
|
3
|
+
/**
|
|
4
|
+
* Runs `run` once the node's rail entrance has settled, so a focus scroll
|
|
5
|
+
* never fights the motion. A node that is absent is a silent no-op.
|
|
6
|
+
* Returns the cancel.
|
|
7
|
+
*/
|
|
8
|
+
export declare function whenRailSettled(getNode: () => HTMLElement | null | undefined, run: (node: HTMLElement) => void): () => void;
|
|
9
|
+
/**
|
|
10
|
+
* Lands the editor on one field once its panel has settled. No field, an
|
|
11
|
+
* absent field or a disabled one leaves focus where it was, silently.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useEditorInitialFocus(field: EditorInitialFocus | undefined, fields: Record<EditorInitialFocus, RefObject<HTMLElement | null>>): void;
|
|
14
|
+
//# sourceMappingURL=calendar-rail-settle.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Clock } from 'lucide-react';
|
|
2
|
+
import type { CalendarRow } from './calendar.model';
|
|
3
|
+
export interface UpcomingAppointmentsPanelProps {
|
|
4
|
+
rows: CalendarRow[];
|
|
5
|
+
locale: string;
|
|
6
|
+
/** Privacy mode masks every name in the strip, the band and the list — a
|
|
7
|
+
* clinic-wide "who is here / who is coming in" is exactly what it hides. */
|
|
8
|
+
privacy: boolean;
|
|
9
|
+
/** Selects the appointment on the grid, which docks its details. */
|
|
10
|
+
onOpenAppointment: (eventId: string) => void;
|
|
11
|
+
/**
|
|
12
|
+
* `DoctorAppointment.lastStateUpdate`, keyed by appointment id, for rows
|
|
13
|
+
* the live band shows. Optional: the platform read model does not carry
|
|
14
|
+
* this field yet (see `calendar.sheets` note above the panel), and a row
|
|
15
|
+
* missing from this map shows its state with no elapsed time rather than
|
|
16
|
+
* one derived from its start time or invented.
|
|
17
|
+
*/
|
|
18
|
+
stateSinceByEventId?: Readonly<Record<string, string>>;
|
|
19
|
+
/**
|
|
20
|
+
* The host is still fetching rows. Shows content-shaped Skeleton
|
|
21
|
+
* placeholders instead of the list, `aria-busy="true"`, and no spinner
|
|
22
|
+
* or "Loading…" text. A refresh (rows already present) keeps the old
|
|
23
|
+
* rows on screen instead of blanking them — pass `loading` only for the
|
|
24
|
+
* first read.
|
|
25
|
+
*/
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function UpcomingAppointmentsPanel({ rows, locale, privacy, onOpenAppointment, stateSinceByEventId, loading, }: UpcomingAppointmentsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
/** Icon re-export so callers that only need the panel's own glyph (e.g. a
|
|
30
|
+
* rail tool registration) don't have to import lucide-react directly. */
|
|
31
|
+
export { Clock as UpcomingAppointmentsPanelIcon };
|
|
32
|
+
//# sourceMappingURL=calendar-upcoming-panel.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type CalendarRow, type WaitingEntryDraft } from './calendar.model';
|
|
2
|
+
import { type WaitingListRowView } from './calendar-workspace.model';
|
|
3
|
+
import { type CalendarPatient, type CalendarWaitingEntry } from './calendar.types';
|
|
4
|
+
export interface WaitingEntryCardProps {
|
|
5
|
+
view: WaitingListRowView;
|
|
6
|
+
locale: string;
|
|
7
|
+
privacy?: boolean;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
/** Schedule (unlinked) / Bring forward (linked). */
|
|
10
|
+
onPlace: (entry: CalendarWaitingEntry) => void;
|
|
11
|
+
/** Unset = no finder on this host: the button is not rendered. */
|
|
12
|
+
onFindSlots?: (entry: CalendarWaitingEntry) => void;
|
|
13
|
+
/** Unset = no entry form on this host: Edit and Assign are withheld. */
|
|
14
|
+
onEdit?: (entry: CalendarWaitingEntry) => void;
|
|
15
|
+
onRemove: (entry: CalendarWaitingEntry) => void;
|
|
16
|
+
onOpenPatient?: (patient: CalendarPatient) => void;
|
|
17
|
+
onOpenAppointment: (eventId: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/** A waiting entry as one elevated card: who, since when, what it is
|
|
20
|
+
* tied to, and the one line of actions that moves it off the list. */
|
|
21
|
+
export declare const WaitingEntryCard: import("react").ForwardRefExoticComponent<WaitingEntryCardProps & import("react").RefAttributes<HTMLElement>>;
|
|
22
|
+
export interface WaitingListPanelProps {
|
|
23
|
+
/** Privacy mode, in step with the grid: names masked, the photo, the
|
|
24
|
+
* phone, the WhatsApp link and the free-text description withheld. */
|
|
25
|
+
privacy?: boolean;
|
|
26
|
+
entries: CalendarWaitingEntry[];
|
|
27
|
+
/** Live grid rows — the linked appointment's date, colour and care. */
|
|
28
|
+
rows: CalendarRow[];
|
|
29
|
+
locale: string;
|
|
30
|
+
/** No edit permission (`permissions.editAppointment === false`). Add,
|
|
31
|
+
* Edit, Assign and Remove are withheld and a lock note says why. */
|
|
32
|
+
readOnly?: boolean;
|
|
33
|
+
/** The host's read of the queue. A first `loading` shows card-shaped
|
|
34
|
+
* placeholders; a refresh keeps its cards and marks the list busy. */
|
|
35
|
+
status?: 'loading' | 'ready' | 'error';
|
|
36
|
+
onRetry?: () => void;
|
|
37
|
+
/** Schedule / Bring forward → the host's placement hand-off. */
|
|
38
|
+
onPlaceWaiting: (entry: CalendarWaitingEntry) => void;
|
|
39
|
+
/** «Find a slot» → the find-slots tool, seeded by the host from the
|
|
40
|
+
* entry (`FindSlotsSeed`). Unset = the button is not rendered. */
|
|
41
|
+
onFindSlotsForWaiting?: (entry: CalendarWaitingEntry) => void;
|
|
42
|
+
/** Delete — immediate, as on the platform (the host toasts an Undo). */
|
|
43
|
+
onRemoveWaiting: (entry: CalendarWaitingEntry) => void;
|
|
44
|
+
/** Add entry, a row's edit and the assign buttons → the entry form. */
|
|
45
|
+
onOpenEntryForm?: (entry?: CalendarWaitingEntry) => void;
|
|
46
|
+
/**
|
|
47
|
+
* The entry form as a `PanelSubview` over this list. Pass the open
|
|
48
|
+
* state (`null` = closed) with `onSaveEntry` and `onCancelEntry`; leave
|
|
49
|
+
* all three out and the host renders its own form, as before.
|
|
50
|
+
*/
|
|
51
|
+
entryForm?: {
|
|
52
|
+
entry?: CalendarWaitingEntry;
|
|
53
|
+
} | null;
|
|
54
|
+
onSaveEntry?: (draft: WaitingEntryDraft) => void;
|
|
55
|
+
onCancelEntry?: () => void;
|
|
56
|
+
/** The patient-folder hop. Unset renders the name as plain text. */
|
|
57
|
+
onOpenPatient?: (patient: CalendarPatient) => void;
|
|
58
|
+
/** The platform's `focusAppointmentId` deep link — steer and ring. */
|
|
59
|
+
onOpenAppointment: (eventId: string) => void;
|
|
60
|
+
}
|
|
61
|
+
export declare const WaitingListPanel: import("react").ForwardRefExoticComponent<WaitingListPanelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
62
|
+
//# sourceMappingURL=calendar-waiting-list-panel.d.ts.map
|
|
@@ -4,7 +4,7 @@ import { type CalendarData } from './calendar.data';
|
|
|
4
4
|
import type { CalendarJourney } from './calendar.journey';
|
|
5
5
|
import { type CalendarPreferenceAdapter } from './calendar.preferences';
|
|
6
6
|
import { type CalendarRow, type EditorPrefill } from './calendar.model';
|
|
7
|
-
import { type CalendarWorkspaceToolId, type WorkspaceDisplaySettings } from './calendar-workspace.model';
|
|
7
|
+
import { type CalendarWaitingListState, type CalendarWorkspaceToolId, type WorkspaceDisplaySettings } from './calendar-workspace.model';
|
|
8
8
|
export { WORKSPACE_TOOL, type CalendarWorkspaceToolId, } from './calendar-workspace.model';
|
|
9
9
|
/** Host-owned queue membership, independent of the visible calendar range. */
|
|
10
10
|
export interface CalendarOnlineBookings {
|
|
@@ -34,6 +34,13 @@ export interface CalendarWorkspaceProps {
|
|
|
34
34
|
data: CalendarData;
|
|
35
35
|
/** Supplied rows are authoritative, including an explicitly empty queue. */
|
|
36
36
|
onlineBookings?: CalendarOnlineBookings;
|
|
37
|
+
/** The host's read of the waiting list: a first `loading` shows
|
|
38
|
+
* placeholders, `error` offers `onRetry`. Omitted = always ready. */
|
|
39
|
+
waitingListState?: CalendarWaitingListState;
|
|
40
|
+
/** When each appointment entered its current state, by event id (ISO
|
|
41
|
+
* 8601). The upcoming panel shows "waiting for 12 min" only for rows
|
|
42
|
+
* listed here; it never derives an elapsed time from the start. */
|
|
43
|
+
stateSinceByEventId?: Readonly<Record<string, string>>;
|
|
37
44
|
locale?: string;
|
|
38
45
|
/** Host-level cog overrides. */
|
|
39
46
|
initialDisplay?: Partial<WorkspaceDisplaySettings>;
|
|
@@ -45,6 +52,12 @@ export interface CalendarWorkspaceProps {
|
|
|
45
52
|
/** Deep link `focusAppointmentId`: open on the appointment's day, ring
|
|
46
53
|
* and scroll to its card and dock its details. */
|
|
47
54
|
focusAppointmentId?: string;
|
|
55
|
+
/** Addresses one online booking: docks the bookings tool, then scrolls
|
|
56
|
+
* to, focuses and rings its card. An id outside the queue rings nothing. */
|
|
57
|
+
focusBookingId?: string;
|
|
58
|
+
/** Bump to address the SAME booking again (a second notification): an
|
|
59
|
+
* address is a request, not a value. */
|
|
60
|
+
focusBookingKey?: string | number;
|
|
48
61
|
/** Deep link `createParameters`: arrive in CREATE mode — the banner
|
|
49
62
|
* stands and the next free-slot click opens the editor prefilled. */
|
|
50
63
|
createParameters?: {
|
|
@@ -295,7 +295,17 @@ export declare const UPCOMING_STEP_DAYS = 7;
|
|
|
295
295
|
/** Where the widening stops — the demo's own ceiling, not the platform's. */
|
|
296
296
|
export declare const UPCOMING_MAX_DAYS = 180;
|
|
297
297
|
export declare const DEFAULT_UPCOMING_WINDOW: UpcomingWindow;
|
|
298
|
-
/**
|
|
298
|
+
/**
|
|
299
|
+
* Epoch bounds of a window, inclusive of its closing second.
|
|
300
|
+
*
|
|
301
|
+
* The start always lands on a day boundary — midnight of
|
|
302
|
+
* `nowIso - backDays` — never at the exact instant of `now`. At rest
|
|
303
|
+
* (`backDays: 0`) that means "the beginning of today", not "this second":
|
|
304
|
+
* a row that has already started (waiting room, in the chair) stays in
|
|
305
|
+
* the window instead of disappearing the moment it begins. Widening
|
|
306
|
+
* (`widenUpcomingWindow('earlier', …)`) reaches further back a whole day
|
|
307
|
+
* at a time from that same floor.
|
|
308
|
+
*/
|
|
299
309
|
export declare function upcomingWindowBounds(nowIso: string, window: UpcomingWindow): {
|
|
300
310
|
startMs: number;
|
|
301
311
|
endMs: number;
|
|
@@ -410,6 +420,9 @@ export interface WaitingListRowView {
|
|
|
410
420
|
operatorTitle?: string;
|
|
411
421
|
/** Platform `appointmentName` — the linked appointment's care line. */
|
|
412
422
|
appointmentName?: string;
|
|
423
|
+
/** The row's one photo: the resolved patient record's, else the
|
|
424
|
+
* entry's own `patientAvatarUrl`. Absent = initials. */
|
|
425
|
+
avatarSrc?: string;
|
|
413
426
|
/** Someone is booked on this row — the entry's own patient or the
|
|
414
427
|
* linked appointment's. Keyed on the IDS: a record we could not load
|
|
415
428
|
* is still a patient. */
|
|
@@ -426,4 +439,27 @@ export declare function waitingEntryMatchesFilters(view: WaitingListRowView, fil
|
|
|
426
439
|
/** The quick view first, then the advanced predicates — the platform's
|
|
427
440
|
* own order (`_filterForAdvancedSearch` re-runs the view). */
|
|
428
441
|
export declare function filterWaitingEntries(entries: readonly CalendarWaitingEntry[], rows: readonly CalendarRow[], quickView: WaitingQuickView, filters: WaitingListFilters, data: CalendarData): WaitingListRowView[];
|
|
442
|
+
/** What an entry is FOR. The domain allows exactly one connection, so
|
|
443
|
+
* the test is a precedence, and an entry never lands in two groups. */
|
|
444
|
+
export type WaitingEntryKind = 'linked' | 'patient' | 'memo';
|
|
445
|
+
/** Render order: bring forward, first slot, free-text reminders. */
|
|
446
|
+
export declare const WAITING_ENTRY_KINDS: readonly WaitingEntryKind[];
|
|
447
|
+
/** Keyed on the IDS, never on what resolved: an appointment off the
|
|
448
|
+
* loaded range is still a link, an unloaded patient still a patient. */
|
|
449
|
+
export declare function waitingEntryKind(entry: CalendarWaitingEntry): WaitingEntryKind;
|
|
450
|
+
/** The non-empty groups, in render order, rows in queue order. */
|
|
451
|
+
export declare function groupWaitingRows(views: readonly WaitingListRowView[]): {
|
|
452
|
+
kind: WaitingEntryKind;
|
|
453
|
+
rows: WaitingListRowView[];
|
|
454
|
+
}[];
|
|
455
|
+
/** How many entries each quick view holds, from the rows in hand. */
|
|
456
|
+
export declare function waitingQuickViewCounts(entries: readonly CalendarWaitingEntry[], data: CalendarData): Record<WaitingQuickView, number>;
|
|
457
|
+
/** The number WhatsApp may be handed, `''` when there is none. The host's
|
|
458
|
+
* own `whatsappPhoneNumber` wins; the story flag reads the record. */
|
|
459
|
+
export declare function waitingWhatsAppNumber(view: WaitingListRowView): string;
|
|
460
|
+
/** A host's read of the queue, so the panel can show a first load. */
|
|
461
|
+
export interface CalendarWaitingListState {
|
|
462
|
+
status: 'loading' | 'ready' | 'error';
|
|
463
|
+
onRetry?: () => void;
|
|
464
|
+
}
|
|
429
465
|
//# sourceMappingURL=calendar-workspace.model.d.ts.map
|
|
@@ -29,8 +29,8 @@ export interface CalendarRow {
|
|
|
29
29
|
careLink?: CalendarCareLink;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* A drag/resize of a PATIENT appointment awaiting confirmation (
|
|
33
|
-
*
|
|
32
|
+
* A drag/resize of a PATIENT appointment awaiting confirmation (the
|
|
33
|
+
* retired appointment-workflow pattern's move-confirm design). Rows stay
|
|
34
34
|
* UN-mutated while the dialog is open, so the OLD end/chair/operator are
|
|
35
35
|
* read live from the matching `CalendarRow`; `event` is FullCalendar's
|
|
36
36
|
* post-drop snapshot and already carries the NEW resourceId.
|
|
@@ -148,6 +148,8 @@ export interface CalendarEditorCapabilities {
|
|
|
148
148
|
/** False disables the status control and omits status from the draft. */
|
|
149
149
|
editStatus?: boolean;
|
|
150
150
|
}
|
|
151
|
+
/** The editor field an arrival lands focus on. */
|
|
152
|
+
export type EditorInitialFocus = 'patient' | 'operator';
|
|
151
153
|
export interface EditorPrefill {
|
|
152
154
|
/** Set = the editor EDITS this existing event; unset = create. */
|
|
153
155
|
editEventId?: string;
|
|
@@ -183,6 +185,10 @@ export interface EditorPrefill {
|
|
|
183
185
|
* somewhere to go back to — splits Save into "save and go back" and
|
|
184
186
|
* "save and continue"; anything else keeps the one Save. */
|
|
185
187
|
simpleSave?: boolean;
|
|
188
|
+
/** Lands focus on this field once the panel has settled (a booking's
|
|
189
|
+
* assign intent). A hint, never saved: an absent or disabled field, or
|
|
190
|
+
* no value, moves no focus. */
|
|
191
|
+
initialFocus?: EditorInitialFocus;
|
|
186
192
|
}
|
|
187
193
|
/** Platform's six `recurrence_frequency` values, in its dropdown order. */
|
|
188
194
|
export type RecurrenceFrequency = 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'semiannual' | 'yearly';
|
|
@@ -24,11 +24,31 @@
|
|
|
24
24
|
import { type ReactNode } from 'react';
|
|
25
25
|
import type { CalendarEditorCapabilities } from './calendar.model';
|
|
26
26
|
import type { CalendarEditorSeries } from './calendar-editor-hydration';
|
|
27
|
-
import { type CalendarEvent } from '../../components/calendar';
|
|
27
|
+
import { type CalendarEvent, type CalendarResource } from '../../components/calendar';
|
|
28
28
|
import { type NotesPanelNote, type NotesPanelProps, type NotesPanelSubmission } from '../../components/notes-panel';
|
|
29
29
|
import { type ColorAssociation, type CalendarCarePlan, type CalendarAnamnesisAnswer, type CalendarOperatorGroup, type CalendarPatient, type CalendarWaitingEntry, type CalendarHistoryEntry, type CalendarSignChannel, type PatientRef } from './calendar.types';
|
|
30
|
+
import { type CalendarData } from './calendar.data';
|
|
30
31
|
import { type CalendarRow, type DisplaySettings, type EditorPrefill, type EditorDraft, type DraftSlot, type SlotPatch, type BacklogFilter, type BacklogItem, type WaitingEntryDraft, type CalendarFreeSlot, type PrintDaySection, type FindSlotsSeed, type AvailabilityContext } from './calendar.model';
|
|
31
32
|
import { type EditorDraftExtras, type DeleteOptions } from './calendar-workspace.model';
|
|
33
|
+
import { type BookingCompleteIntent } from './calendar-bookings-panel';
|
|
34
|
+
/** The operators a NEW booking may take — the practice's ACTIVE cast, as
|
|
35
|
+
* on the platform. A disabled operator reaches a list only through
|
|
36
|
+
* `platform.operatorOptions` (the appointment that already holds her);
|
|
37
|
+
* lookups by id stay inclusive so her own rows still name her. */
|
|
38
|
+
export declare function activeOperators(data: CalendarData): CalendarResource[];
|
|
39
|
+
/** Why the WhatsApp affordance cannot act, as an i18n key. Decided in ONE
|
|
40
|
+
* place so the waiting list's two rows — the backlog card and the grid
|
|
41
|
+
* cell — cannot drift apart again.
|
|
42
|
+
*
|
|
43
|
+
* Three states, never two (see `patientChannelState`). `unknown` folds
|
|
44
|
+
* "no record at all" together with "a record that omits the number", so
|
|
45
|
+
* a caller reading it as "no record" told a patient the row had just
|
|
46
|
+
* rendered by name that their record had failed to load. Only
|
|
47
|
+
* `ref.unresolved` — the lookup we really did fail — may say that; a
|
|
48
|
+
* record we DID load and that simply carries no number says so itself,
|
|
49
|
+
* and never claims the practice holds nothing (that is state `none`,
|
|
50
|
+
* which keeps the platform's own SMS reason). */
|
|
51
|
+
export declare function whatsAppUnavailableKey(ref: PatientRef): string;
|
|
32
52
|
export declare function TaskDetailsPanel({ row, locale, }: {
|
|
33
53
|
row: CalendarRow;
|
|
34
54
|
locale: string;
|
|
@@ -340,7 +360,7 @@ export declare function BacklogPanel({ items, locale, seed, signRequests, onProc
|
|
|
340
360
|
* mode (create / move banner) instead of opening the editor at once. */
|
|
341
361
|
onPlaceWaiting?: (entry: CalendarWaitingEntry) => void;
|
|
342
362
|
}): import("react/jsx-runtime").JSX.Element;
|
|
343
|
-
export declare function BookingsPanel({ bookings, locale, privacy, status, lastSeenIso, createdAtById, onRetry, onShowInCalendar, onComplete, }: {
|
|
363
|
+
export declare function BookingsPanel({ bookings, locale, privacy, status, lastSeenIso, createdAtById, currentBookingId, currentBookingKey, onRetry, onShowInCalendar, onComplete, }: {
|
|
344
364
|
bookings: readonly CalendarRow[];
|
|
345
365
|
locale?: string;
|
|
346
366
|
/** Masks the patient names, in step with the grid. */
|
|
@@ -348,34 +368,18 @@ export declare function BookingsPanel({ bookings, locale, privacy, status, lastS
|
|
|
348
368
|
status?: 'loading' | 'ready' | 'error';
|
|
349
369
|
lastSeenIso?: string | null;
|
|
350
370
|
createdAtById?: Readonly<Record<string, string>>;
|
|
371
|
+
/** The booking the host is addressing: scrolled to, focused, and ringed
|
|
372
|
+
* in the accent until the ring settles. Unknown ids are ignored. */
|
|
373
|
+
currentBookingId?: string;
|
|
374
|
+
/** Bump on every address, so the SAME booking addressed twice scrolls,
|
|
375
|
+
* focuses and rings again. An address is a request, not a value. */
|
|
376
|
+
currentBookingKey?: string | number;
|
|
351
377
|
onRetry?: () => void;
|
|
352
378
|
/** Steers the grid to the booking and rings its card. */
|
|
353
379
|
onShowInCalendar: (eventId: string) => void;
|
|
354
|
-
/** Opens the editor to complete it (platform "Completa appuntamento").
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
export declare function WaitingListPanel({ entries, rows, locale, onPlaceWaiting, onRemoveWaiting, onOpenEntryForm, onOpenPatient, onOpenAppointment, readOnly, }: {
|
|
358
|
-
entries: CalendarWaitingEntry[];
|
|
359
|
-
/** Live grid rows — the linked appointment's date, colour and care. */
|
|
360
|
-
rows: CalendarRow[];
|
|
361
|
-
locale: string;
|
|
362
|
-
/** No edit permission (`permissions.editAppointment === false`). Add,
|
|
363
|
-
* Edit and Remove are withheld and a lock note says why: each one
|
|
364
|
-
* calls a host seam that a read-only host silently refuses, and the
|
|
365
|
-
* panel would then have announced a change it never made. */
|
|
366
|
-
readOnly?: boolean;
|
|
367
|
-
/** Schedule / Reschedule → the host's create / move placement mode. */
|
|
368
|
-
onPlaceWaiting: (entry: CalendarWaitingEntry) => void;
|
|
369
|
-
/** Delete — immediate, as on the platform (the host toasts an Undo). */
|
|
370
|
-
onRemoveWaiting: (entry: CalendarWaitingEntry) => void;
|
|
371
|
-
/** Add entry, and a row's edit → the host's entry sub-view. */
|
|
372
|
-
onOpenEntryForm: (entry?: CalendarWaitingEntry) => void;
|
|
373
|
-
/** The patient-folder hop the platform's name link makes. Unset — a
|
|
374
|
-
* host with no folder to route to — renders the name as plain text
|
|
375
|
-
* rather than a link that cannot arrive anywhere. */
|
|
376
|
-
onOpenPatient?: (patient: CalendarPatient) => void;
|
|
377
|
-
/** The platform's `focusAppointmentId` deep link — steer and ring. */
|
|
378
|
-
onOpenAppointment: (eventId: string) => void;
|
|
380
|
+
/** Opens the editor to complete it (platform "Completa appuntamento").
|
|
381
|
+
* `intent` says which assign segment was pressed; the pencil sends none. */
|
|
382
|
+
onComplete?: (row: CalendarRow, intent?: BookingCompleteIntent) => void;
|
|
379
383
|
}): import("react/jsx-runtime").JSX.Element;
|
|
380
384
|
/**
|
|
381
385
|
* The platform's waiting-list AddModal as a rail sub-view — same field
|
|
@@ -395,6 +399,18 @@ export declare function WaitingListEntryForm({ entry, onSave, onCancel, chrome,
|
|
|
395
399
|
* the form's Cancel already dismiss it. */
|
|
396
400
|
chrome?: 'panel' | 'dialog';
|
|
397
401
|
}): import("react/jsx-runtime").JSX.Element;
|
|
402
|
+
/**
|
|
403
|
+
* The same entry form as a `PanelSubview`: it slides over the queue it was
|
|
404
|
+
* opened from, pins Cancel and Save, and hands focus back to the opener.
|
|
405
|
+
*/
|
|
406
|
+
export declare function WaitingListEntrySubview({ open, entry, onSave, onCancel, readOnly, }: {
|
|
407
|
+
open: boolean;
|
|
408
|
+
/** Set = edit this entry; unset = add a new one. */
|
|
409
|
+
entry?: CalendarWaitingEntry;
|
|
410
|
+
onSave: (draft: WaitingEntryDraft) => void;
|
|
411
|
+
onCancel: () => void;
|
|
412
|
+
readOnly?: boolean;
|
|
413
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
398
414
|
/**
|
|
399
415
|
* The call sheet itself. A portal to `document.body`: the shell's AppFrame
|
|
400
416
|
* is an `h-dvh overflow-hidden` clamp that prints one screenful, so the
|
|
@@ -371,6 +371,12 @@ export interface CalendarWaitingEntry {
|
|
|
371
371
|
createdDay: number;
|
|
372
372
|
/** Story-only: the patient's number can receive WhatsApp messages. */
|
|
373
373
|
whatsappCapable?: boolean;
|
|
374
|
+
/** Host: the number WhatsApp can reach (platform `whatsappPhoneNumber`).
|
|
375
|
+
* Set, it IS the WhatsApp number and `whatsappCapable` is not read. */
|
|
376
|
+
whatsappPhoneNumber?: string;
|
|
377
|
+
/** The row's photo (its own patient's, or the linked appointment's)
|
|
378
|
+
* when the host's `patientById` record carries no `avatarSrc`. */
|
|
379
|
+
patientAvatarUrl?: string;
|
|
374
380
|
}
|
|
375
381
|
export type CalendarHistoryKind = 'created' | 'moved' | 'resized' | 'status' | 'edited' | 'deleted' | 'confirmedByPatient';
|
|
376
382
|
/** Form fields an edit can touch (the platform's audit vocabulary). */
|
|
@@ -6,8 +6,8 @@ export type { CalendarAppointmentDetails, CalendarDocumentKind, CalendarAppointm
|
|
|
6
6
|
export { CalendarSeriesScopeChooser, type CalendarSeriesScopeChooserProps, } from './calendar-series-scope-chooser';
|
|
7
7
|
export { SheetHostProvider, useSheetHost, type SheetHostContext, type SheetId, } from './calendar.host';
|
|
8
8
|
export { CALENDAR_PREFERENCE_KEYS, memoryPreferenceAdapter, resetCalendarPreferences, usePersistedPreference, type CalendarPreferenceAdapter, } from './calendar.preferences';
|
|
9
|
-
export { DEFAULT_DISPLAY, VIEW_OPTIONS, type AvailabilityContext, type BacklogFilter, type BacklogItem, type BacklogType, type CalendarFreeSlot, type CalendarEditorCapabilities, type CalendarRow, type CalendarSeries, type DisplaySettings, type DraftSlot, type EditorDraft, type EditorPrefill, type EditorRecurrence, type FindSlotsSeed, type HistoryInput, type PendingMove, type RailFocus, type RecurrenceFrequency, type SlotPatch, type ViewOption, type ViewOptionId, type WaitingEntryDraft, } from './calendar.model';
|
|
10
|
-
export { DEFAULT_WORKSPACE_DISPLAY, WORKSPACE_VIEWS, type ChairNameDisplay, type DeleteOptions, type EditorDraftExtras, type OperatorNameDisplay, type RecurringScope, type RequiredDocsSignMode, type WorkspaceDisplaySettings, type WorkspaceViewId, } from './calendar-workspace.model';
|
|
9
|
+
export { DEFAULT_DISPLAY, VIEW_OPTIONS, type AvailabilityContext, type BacklogFilter, type BacklogItem, type BacklogType, type CalendarFreeSlot, type CalendarEditorCapabilities, type CalendarRow, type CalendarSeries, type DisplaySettings, type DraftSlot, type EditorDraft, type EditorInitialFocus, type EditorPrefill, type EditorRecurrence, type FindSlotsSeed, type HistoryInput, type PendingMove, type RailFocus, type RecurrenceFrequency, type SlotPatch, type ViewOption, type ViewOptionId, type WaitingEntryDraft, } from './calendar.model';
|
|
10
|
+
export { DEFAULT_WORKSPACE_DISPLAY, WORKSPACE_VIEWS, type CalendarWaitingListState, type ChairNameDisplay, type DeleteOptions, type EditorDraftExtras, type OperatorNameDisplay, type RecurringScope, type RequiredDocsSignMode, type WorkspaceDisplaySettings, type WorkspaceViewId, } from './calendar-workspace.model';
|
|
11
11
|
export type { AssociationColorSources, CalendarAnamnesisAnswer, CalendarAppointmentMeta, CalendarBaseEvent, CalendarBookingContact, CalendarBranch, CalendarBusinessHours, CalendarCare, CalendarCareEntry, CalendarCareLink, CalendarCarePlan, CalendarCarePlanEntry, CalendarClosure, CalendarDayHours, CalendarHistoryEntry, CalendarHistoryField, CalendarHistoryKind, CalendarHoliday, CalendarOperatorFilterGroup, CalendarOperatorGroup, CalendarPatient, CalendarPhoneLabel, CalendarPhoneNumber, CalendarPractice, CalendarPracticeFeatures, CalendarPriceList, CalendarSignChannel, CalendarSignDocument, CalendarTaskDetail, CalendarWaitingEntry, CalendarWeeklyHours, CareDescriptionMode, ColorAssociation, FreeSlotQuery, } from './calendar.types';
|
|
12
12
|
export type { CalendarEvent, CalendarEventStatus, CalendarResource, } from '../../components/calendar';
|
|
13
13
|
export type { AppointmentItem } from '../../components/appointment-card';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as s, a as r, b as E, c as P, D as S, d as o, S as C, V as t, W as d, e as A, i, m as n, r as D, u as W, f as _, g as c } from "../../_chunks/calendar-workspace-
|
|
1
|
+
import { C as s, a as r, b as E, c as P, D as S, d as o, S as C, V as t, W as d, e as A, i, m as n, r as D, u as W, f as _, g as c } from "../../_chunks/calendar-workspace-B-fUbm62.js";
|
|
2
2
|
export {
|
|
3
3
|
s as CALENDAR_PREFERENCE_KEYS,
|
|
4
4
|
r as CalendarDataProvider,
|