@alfadocs/ui-kit 1.47.1 → 1.49.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-B5m9lwgC.js → actions-cell-renderer-DMittsR3.js} +4 -4
- package/dist/_chunks/{address-autocomplete-Bq-1n1UX.js → address-autocomplete-Dp5uMvKP.js} +61 -60
- package/dist/_chunks/{address-fields-jFfjxOQR.js → address-fields-QfC-N3pw.js} +5 -5
- package/dist/_chunks/{agenda-card-DyQtHb9z.js → agenda-card-CjjxlA9K.js} +3 -3
- package/dist/_chunks/{agenda-tray-CBaJASb5.js → agenda-tray-BhZASyJm.js} +4 -4
- package/dist/_chunks/{ai-credits-notice-xszqOZTC.js → ai-credits-notice-C-kz_RrY.js} +3 -3
- package/dist/_chunks/{ai-permission-notice-D7I2U-cz.js → ai-permission-notice-BRZeS3mT.js} +3 -3
- package/dist/_chunks/{ai-prompt-input-DXknpQCB.js → ai-prompt-input-CxvnXsAs.js} +82 -82
- package/dist/_chunks/{alia-sidebar-CUqaJNPQ.js → alia-sidebar-Dx-oeOV2.js} +8 -8
- package/dist/_chunks/{anamnesis-card-xtEhyojD.js → anamnesis-card-D8Si-2GV.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-card-CclBbiXg.js → anamnesis-summary-card-DPyScUMM.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-DI-UX5r6.js → anamnesis-summary-rows-CZirLRuv.js} +12 -12
- package/dist/_chunks/{antenatal-schedule-timeline-CXk_tzWG.js → antenatal-schedule-timeline-8fm3vPSV.js} +2 -2
- package/dist/_chunks/{appointment-card-DluZy8Iv.js → appointment-card-BgLpE6T5.js} +6 -6
- package/dist/_chunks/{appointment-peek-BsfCpiJs.js → appointment-peek-BDiCIBb-.js} +6 -6
- package/dist/_chunks/{appointment-timeline-Cs5f9viN.js → appointment-timeline-wQ-PdkFV.js} +6 -6
- package/dist/_chunks/{appointment-tray-CLrGGnKR.js → appointment-tray-D7Gt6m8x.js} +4 -4
- package/dist/_chunks/appointment-workflow-status-CS8ufF1f.js +66 -0
- package/dist/_chunks/{audio-recorder-B7dT-Y3v.js → audio-recorder-DZBtAvLH.js} +4 -4
- package/dist/_chunks/{autocomplete-MpBhz-fG.js → autocomplete-DSasZUf6.js} +65 -64
- package/dist/_chunks/{avatar-CkDeQOSI.js → avatar-BVvjKNTp.js} +2 -2
- package/dist/_chunks/{badge-BudgzTe_.js → badge-BAkd6_Pj.js} +24 -17
- package/dist/_chunks/{balance-badge-cell-YGrYdrvR.js → balance-badge-cell-klaxFNL_.js} +6 -6
- package/dist/_chunks/{bishop-score-Cu70iv9C.js → bishop-score-BMLRvXYF.js} +4 -4
- package/dist/_chunks/{bmi-calculator-C9N19aLX.js → bmi-calculator-DUhRyyrA.js} +3 -3
- package/dist/_chunks/{booking-C4MwImkS.js → booking-BF9pVa2n.js} +384 -388
- package/dist/_chunks/{breadcrumb-agut0PwN.js → breadcrumb-D3boYzD4.js} +50 -49
- package/dist/_chunks/{button-CaUe1uyd.js → button-18oBsI3n.js} +54 -50
- package/dist/_chunks/button-group-BSDqso_C.js +408 -0
- package/dist/_chunks/{calendar-OzSeTb4V.js → calendar-Bt44KMNO.js} +13 -18
- package/dist/_chunks/{calendar-event-card-B6N5h1dO.js → calendar-event-card-BUbKBPv_.js} +55 -73
- package/dist/_chunks/calendar-workspace-C_eXL1by.js +10464 -0
- package/dist/_chunks/{care-plan-card-BOv0NRle.js → care-plan-card-ciBaaguw.js} +4 -4
- package/dist/_chunks/{care-plan-entry-card-d-rZD4li.js → care-plan-entry-card-D7A0whiZ.js} +5 -5
- package/dist/_chunks/{care-plan-header-CEmBXn6-.js → care-plan-header-DKV1gLqv.js} +4 -4
- package/dist/_chunks/{carousel.agent-z1yLBpyC.js → carousel.agent-DqDGR2yH.js} +2 -2
- package/dist/_chunks/{chart-D8ucl8hH.js → chart-VjuXDXOZ.js} +3 -3
- package/dist/_chunks/{chat-input-Cj7ZYQr5.js → chat-input-BVho_SqP.js} +2 -2
- package/dist/_chunks/{chat-message-BMVxiUIX.js → chat-message-B4ihjNy3.js} +4 -4
- package/dist/_chunks/{smartphone-DaPcFw-X.js → circle-dashed-CUj6o2cA.js} +3 -14
- package/dist/_chunks/{city-input-DaQc-Hbj.js → city-input-BGYc4lRV.js} +2 -2
- package/dist/_chunks/{clinical-note-card-DdsGYMmI.js → clinical-note-card-B7s5BtEl.js} +89 -74
- package/dist/_chunks/{code-block-BB-viuTn.js → code-block-C_eNHWaa.js} +2 -2
- package/dist/_chunks/combobox-B_rLwmSv.js +578 -0
- package/dist/_chunks/{command-palette-DQl_SNEv.js → command-palette-DhgGo7GJ.js} +82 -80
- package/dist/_chunks/{connection-status-BmA9T0UO.js → connection-status-Cfux3TvH.js} +4 -4
- package/dist/_chunks/{contact-profile-card-C0WpwpVV.js → contact-profile-card-Dj4NgBL-.js} +3 -3
- package/dist/_chunks/control-room-rail-DAO0qfOI.js +379 -0
- package/dist/_chunks/{copy-field-B8XRVmQv.js → copy-field-Cm4y5Bff.js} +2 -2
- package/dist/_chunks/{country-select-CfDNFG5c.js → country-select-C5jZjO8O.js} +2 -2
- package/dist/_chunks/{cycle-calculator-BH2StWoT.js → cycle-calculator-B9lBRNiZ.js} +3 -3
- package/dist/_chunks/{dashboard-grid-BcXWL5S9.js → dashboard-grid-uX7x1ePj.js} +2 -2
- package/dist/_chunks/{data-table-DnKOmEVw.js → data-table-CrI3_bjH.js} +416 -415
- package/dist/_chunks/{data-table-tabs-B9SXA5VP.js → data-table-tabs-CzYYKp2_.js} +3 -3
- package/dist/_chunks/{dependent-selector-BHDP0nBB.js → dependent-selector-58hTg5rB.js} +3 -3
- package/dist/_chunks/{description-list-BsJ_6CQE.js → description-list-1A2DEbE6.js} +2 -2
- package/dist/_chunks/{document-preview-COV0BC6n.js → document-preview-Od2Hz4z5.js} +13 -12
- package/dist/_chunks/{document-scanner-B1abl-A4.js → document-scanner-p0aGlzCy.js} +3 -3
- package/dist/_chunks/{dropdown-menu-DU-Hrf33.js → dropdown-menu-C8PaW3lR.js} +110 -96
- package/dist/_chunks/{due-date-calculator-Buh_mVHq.js → due-date-calculator-BVqJaxzd.js} +4 -4
- package/dist/_chunks/{editable-currency-cell-renderer-OUkUv7U4.js → editable-currency-cell-renderer-D_G2Ap61.js} +4 -4
- package/dist/_chunks/{editable-description-ADMVFPUz.js → editable-description-B4NVdjvd.js} +3 -3
- package/dist/_chunks/{editor-overlay-DwNKaI22.js → editor-overlay-BDiBvQmL.js} +2 -2
- package/dist/_chunks/{empty-state-BUN_UAWf.js → empty-state-DTBZ1ENT.js} +2 -2
- package/dist/_chunks/{entity-card-I-Gio5wo.js → entity-card-D1Yrh9wf.js} +2 -1
- package/dist/_chunks/{entity-summary-DXejuQ8i.js → entity-summary-CFJfBdVP.js} +4 -4
- package/dist/_chunks/{error-boundary-BNT2iQ1w.js → error-boundary-BxTqEXqj.js} +2 -2
- package/dist/_chunks/euro-Dsuz4ixO.js +22 -0
- package/dist/_chunks/{face-scheme-mIhwrQXt.js → face-scheme-fku-RShg.js} +71 -71
- package/dist/_chunks/{fetal-weight-wx4ycKc6.js → fetal-weight-B69yOS9W.js} +3 -3
- package/dist/_chunks/{field-array-BW9KeeXG.js → field-array-lIXrFWS0.js} +3 -3
- package/dist/_chunks/file-BuG1VMAy.js +21 -0
- package/dist/_chunks/{file-Cwe9VC1A.js → file-image-cDgE-BTy.js} +2 -19
- package/dist/_chunks/{file-manager-DOcJGIx2.js → file-manager-C6QQPQV5.js} +15 -14
- package/dist/_chunks/{file-upload-BDpb08GM.js → file-upload-B242a_Y1.js} +53 -52
- package/dist/_chunks/{finished-terminal-DJd7Z_po.js → finished-terminal-B2oqXO0Y.js} +2 -2
- package/dist/_chunks/fiscal-code-input-BEF8eKIG.js +572 -0
- package/dist/_chunks/{freemium-paywall-BaW5ODc9.js → freemium-paywall-B6JITu4l.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-CwbecTul.js → gestational-age-calculator-DsGN6_HS.js} +5 -5
- package/dist/_chunks/handled-rejection-6gqCf5vt.js +13 -0
- package/dist/_chunks/{hcg-doubling-BcXriXJe.js → hcg-doubling-D2SH-e7t.js} +3 -3
- package/dist/_chunks/{header-3o9o9v_T.js → header-CCjp5GvE.js} +2 -2
- package/dist/_chunks/{header-settings-BEfx_-TF.js → header-settings-ZXa6hXuu.js} +5 -5
- package/dist/_chunks/{help-me-write-templates-DHIwa4xR.js → help-me-write-templates-DQtT1qs_.js} +5 -5
- package/dist/_chunks/history-CK2JaU2g.js +16 -0
- package/dist/_chunks/{hover-card-nUae8NPJ.js → hover-card-BplP5SzQ.js} +2 -2
- package/dist/_chunks/{icon-button-CehAeZoP.js → icon-button-CY7GU_Se.js} +2 -2
- package/dist/_chunks/icon-button-group-B_426QN_.js +431 -0
- package/dist/_chunks/{icon-picker-DMEelg9v.js → icon-picker-ZLebyB0U.js} +3 -3
- package/dist/_chunks/{image-cropper-BjPjT7wU.js → image-cropper-_HiNN79d.js} +2 -2
- package/dist/_chunks/{info-tip-iP2Pm9dh.js → info-tip-laBxZhKu.js} +2 -2
- package/dist/_chunks/{insert-result-DPnOBD85.js → insert-result-CSuPQyKL.js} +2 -2
- package/dist/_chunks/{key-value-pair-DaQI_LZB.js → key-value-pair-Dcdl3Gni.js} +2 -2
- package/dist/_chunks/{kit-extensions-DuoFF1R3.js → kit-extensions-BTJSnM_H.js} +6 -6
- package/dist/_chunks/link-cell-renderer-CkNbUsBM.js +867 -0
- package/dist/_chunks/{locale-picker-CH3kfrIG.js → locale-picker-DGkQmhV9.js} +170 -180
- package/dist/_chunks/{map-view-CHw4RL6w.js → map-view-Bb7ClKSF.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-PB89Dkk_.js → marketplace-app-shell-1uKqs4gD.js} +7 -7
- package/dist/_chunks/menu-row-BAr8bx1I.js +95 -0
- package/dist/_chunks/{message-card-V3sFPiQI.js → message-card-C2zsvyj0.js} +4 -4
- package/dist/_chunks/{message-tray-CrRIHfiQ.js → message-tray-CMlmxdH2.js} +4 -4
- package/dist/_chunks/{multi-select-CtPd7g4x.js → multi-select-N4Smh-gj.js} +114 -113
- package/dist/_chunks/{muscle-scheme-UVz_x4iE.js → muscle-scheme-Co0NIgbU.js} +3 -3
- package/dist/_chunks/{note-attachment-CwDir3kK.js → note-attachment-CGjNTrAC.js} +2 -2
- package/dist/_chunks/{note-timeline-Dn_XTo1s.js → note-timeline-CVnKL0p6.js} +2 -2
- package/dist/_chunks/notes-panel-xxpFt-I1.js +1111 -0
- package/dist/_chunks/{notification-card-B2gLO6dK.js → notification-card-DDzBCi8l.js} +3 -3
- package/dist/_chunks/{notification-tray-BOEKegVV.js → notification-tray-PnH2PBlZ.js} +4 -4
- package/dist/_chunks/{operator-hero-XIdwDmN2.js → operator-hero-DyrNLoRO.js} +4 -4
- package/dist/_chunks/{optical-prescription-LGgmtcST.js → optical-prescription-DUufWXfZ.js} +3 -3
- package/dist/_chunks/{pagination-EkD5SiCK.js → pagination-B0N2qGy_.js} +83 -82
- package/dist/_chunks/panel-subview-CzHutkA8.js +217 -0
- package/dist/_chunks/{patient-details-yrgkSeEY.js → patient-details-tTlvrJSU.js} +4 -4
- package/dist/_chunks/{patient-field-row-DCMkFGqI.js → patient-field-row-DElFbpKc.js} +12 -12
- package/dist/_chunks/{patient-search-5QcmQKJD.js → patient-search-DgXdGkhK.js} +4 -4
- package/dist/_chunks/{patient-summary-card-CmEFflGS.js → patient-summary-card-DQ__6DR-.js} +8 -8
- package/dist/_chunks/{payment-automation-upsell-BKmBXU4i.js → payment-automation-upsell-ugi4np1l.js} +3 -3
- package/dist/_chunks/{payment-request-card-Cer6XXCn.js → payment-request-card-DMJB57Tv.js} +5 -5
- package/dist/_chunks/{periodontal-chart-DJoZS_o7.js → periodontal-chart-DbGzKDj7.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-Nd1ZoYWb.js → periodontal-chart-card-DvHyP47v.js} +3 -3
- package/dist/_chunks/{periodontal-diagnosis-C7pfPOct.js → periodontal-diagnosis-B8WqI0eU.js} +2 -2
- package/dist/_chunks/{periodontal-risk-chart-B2tNFa15.js → periodontal-risk-chart-DsFRFFSz.js} +2 -2
- package/dist/_chunks/{phone-input-IWrGOCwm.js → phone-input-sQj-zi59.js} +85 -86
- package/dist/_chunks/{popover-DO-pssF3.js → popover-Dvb40vPH.js} +2 -2
- package/dist/_chunks/{practice-profile-hero-DxoLlQr5.js → practice-profile-hero-B-WcJYNH.js} +3 -3
- package/dist/_chunks/{practice-results-D11Zpt27.js → practice-results-EKRiqWtQ.js} +8 -8
- package/dist/_chunks/{pregnancy-dating-DcyV9ZRD.js → pregnancy-dating-lfjjZVZH.js} +5 -5
- package/dist/_chunks/{pregnancy-weight-gain-Bfq4Kwt5.js → pregnancy-weight-gain-WpNt-S0q.js} +3 -3
- package/dist/_chunks/{privacy-lock-CbFCAMM3.js → privacy-lock-D6gq0GDg.js} +3 -3
- package/dist/_chunks/privacy-mask-BC5lw2zB.js +81 -0
- package/dist/_chunks/{product-hub-panel-w40-_-1s.js → product-hub-panel-CKeSCSeE.js} +3 -3
- package/dist/_chunks/{province-select-BaUnkg4S.js → province-select-BiszMRRY.js} +2 -2
- package/dist/_chunks/{public-header.agent-D-EBVskf.js → public-header.agent-B9wDmUeB.js} +3 -3
- package/dist/_chunks/{radiograph-panel.agent-LrILY2lN.js → radiograph-panel.agent-TmyIvTOa.js} +6 -6
- package/dist/_chunks/{reviews-panel-2GVuxGeT.js → reviews-panel-BdwFp_0c.js} +4 -4
- package/dist/_chunks/{rich-text-editor-BwDV2XkZ.js → rich-text-editor-y6ML0KeV.js} +12 -11
- package/dist/_chunks/{search-bar-CCmViqaa.js → search-bar-6bHatpYJ.js} +69 -67
- package/dist/_chunks/{select-CLSUnKjF.js → select-upNAltly.js} +89 -88
- package/dist/_chunks/{session-countdown-BqppPrw6.js → session-countdown-ACJyTXH2.js} +2 -2
- package/dist/_chunks/{sheet-C8WIDFS8.js → sheet-D0Lh0KR2.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-DWwBJtyE.js → sign-in-with-alfadocs-button-CDyJAIzW.js} +2 -2
- package/dist/_chunks/{signature-request-D_j2aQu1.js → signature-request-BUGeG8oD.js} +7 -7
- package/dist/_chunks/{signature-status-chip-D4NsrdeI.js → signature-status-chip-Dz6sS2oA.js} +2 -2
- package/dist/_chunks/{slot-grid-B3eOPkKD.js → slot-grid-4fWH3Euk.js} +4 -4
- package/dist/_chunks/smartphone-C0rFF2if.js +15 -0
- package/dist/_chunks/{streaming-text-CE1u_oGa.js → streaming-text-eRiizArc.js} +2 -2
- package/dist/_chunks/{tab-bar-Cw9UK18Z.js → tab-bar-BHFf6knq.js} +9 -9
- package/dist/_chunks/{tabs-BnRaLT0y.js → tabs-CFsuMQ5H.js} +82 -81
- package/dist/_chunks/{tag-Ci3xJPcH.js → tag-B65tLWvD.js} +24 -21
- package/dist/_chunks/{task-card-qTKD1fIT.js → task-card-jaOhnj_q.js} +73 -55
- package/dist/_chunks/task-editor-DlvTwAfv.js +1243 -0
- package/dist/_chunks/{task-tray-DIwjAIes.js → task-tray-HHyxi9ga.js} +4 -4
- package/dist/_chunks/tasks-panel-DbSjq_mz.js +1243 -0
- package/dist/_chunks/{theme-toggle-BP0XRGMM.js → theme-toggle-LUBxlNDm.js} +4 -4
- package/dist/_chunks/{timeline-61AihzYz.js → timeline-ChY7iZrs.js} +2 -2
- package/dist/_chunks/{toast-ZZfhA5u0.js → toast-CT8hjr9r.js} +2 -2
- package/dist/_chunks/{token-insert-menu-A9B5AJw6.js → token-insert-menu-klwbxVKh.js} +3 -3
- package/dist/_chunks/{tool-rail-CCFqDfAn.js → tool-rail-DEeX4PdN.js} +144 -137
- package/dist/_chunks/{tooth-scheme-DPAq0vQK.js → tooth-scheme-BkjhkI8g.js} +4 -4
- package/dist/_chunks/{treatment-receipt-DU0OewqH.js → treatment-receipt-C-gWZ6uv.js} +3 -3
- package/dist/_chunks/{unit-converter-C-LpGzrN.js → unit-converter-Dp_KDxE6.js} +3 -3
- package/dist/_chunks/use-appointment-details-read-5-hV-2xA.js +2045 -0
- package/dist/_chunks/use-list-reflow-C7O4Uqnl.js +133 -0
- package/dist/_chunks/use-priority-overflow-Cdmb5EiR.js +108 -0
- package/dist/_chunks/{variables-menu-vXUaSBj4.js → variables-menu-aJLKJ_cu.js} +127 -136
- package/dist/_chunks/{warning-stack-C0glSB7p.js → warning-stack-CEgYkI1z.js} +3 -3
- package/dist/_chunks/{widget-picker-B1sj6uyf.js → widget-picker-CilQvcNL.js} +2 -2
- package/dist/_chunks/{workflow-map-DhR_h5yw.js → workflow-map-qGkQTNvS.js} +30 -29
- package/dist/_chunks/{workflow-status-CuJAOuKL.js → workflow-status-ClHfz4Kr.js} +209 -167
- package/dist/agent-catalog.json +371 -26
- package/dist/agent-i18n/en.json +41 -9
- package/dist/components/_shared/appointment-format.d.ts +52 -0
- package/dist/{patterns/calendar/calendar-editor-fields.d.ts → components/_shared/compact-editor-fields.d.ts} +6 -5
- package/dist/components/_shared/handled-rejection.d.ts +2 -0
- package/dist/components/_shared/menu-row.d.ts +17 -0
- package/dist/components/_shared/patient-identity.d.ts +7 -0
- package/dist/components/_shared/patient-picker.d.ts +24 -0
- package/dist/components/_shared/privacy-mask.d.ts +29 -0
- package/dist/components/address-autocomplete/index.js +1 -1
- package/dist/components/address-fields/index.js +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-credits-notice/index.js +1 -1
- package/dist/components/ai-permission-notice/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/index.js +2 -2
- package/dist/components/appointment-details-panel/appointment-details-panel.agent.d.ts +4 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.d.ts +134 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.focus.d.ts +7 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.history.d.ts +12 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.identity.d.ts +41 -0
- package/dist/{patterns/calendar/calendar-info-hover.d.ts → components/appointment-details-panel/appointment-details-panel.info-hover.d.ts} +1 -1
- package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts +51 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts +326 -0
- package/dist/components/appointment-details-panel/index.d.ts +8 -0
- package/dist/components/appointment-details-panel/index.js +8 -0
- package/dist/components/appointment-details-panel/use-appointment-details-read.d.ts +32 -0
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/badge/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/cascade.d.ts +5 -0
- package/dist/components/booking/index.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/button/button.d.ts +2 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/button-group.d.ts +19 -2
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts +5 -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/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/city-input/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +13 -5
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/combobox/combobox.d.ts +9 -4
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/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/control-room-rail.d.ts +14 -3
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/copy-field/index.js +1 -1
- package/dist/components/country-select/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/filters/number-filter.d.ts +26 -12
- package/dist/components/data-table/index.js +4 -4
- package/dist/components/data-table-tabs/index.js +1 -1
- package/dist/components/dependent-selector/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/dropdown-menu/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- 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/file-upload/index.js +1 -1
- package/dist/components/finished-terminal/index.js +1 -1
- package/dist/components/fiscal-code-input/fiscal-code-input.d.ts +7 -0
- package/dist/components/fiscal-code-input/index.d.ts +1 -1
- package/dist/components/fiscal-code-input/index.js +8 -7
- package/dist/components/fiscal-code-input/is-valid-codice-fiscale.d.ts +19 -4
- 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/index.d.ts +2 -0
- 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/multi-select/index.js +1 -1
- package/dist/components/muscle-scheme/index.js +1 -1
- package/dist/components/note-timeline/index.js +1 -1
- package/dist/components/notes-panel/index.d.ts +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +102 -26
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/pagination/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/periodontal-diagnosis/index.js +1 -1
- package/dist/components/periodontal-risk-chart/index.js +1 -1
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/practice-profile-hero/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/province-select/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 +2 -2
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/select/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/signature-field/signature-field.d.ts +1 -1
- package/dist/components/signature-status-chip/index.js +1 -1
- package/dist/components/skeleton-scheme/index.js +17 -17
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tag/index.js +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.d.ts +7 -0
- package/dist/components/task-editor/index.d.ts +4 -0
- package/dist/components/task-editor/index.js +6 -0
- package/dist/components/task-editor/task-editor.agent.d.ts +4 -0
- package/dist/components/task-editor/task-editor.d.ts +240 -0
- package/dist/components/task-editor/use-task-editor-form.d.ts +101 -0
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.d.ts +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/tasks-panel/tasks-panel.d.ts +84 -12
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/timeline/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/treatment-receipt/index.js +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/variables-menu/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/widget-picker/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/components/workflow-status/appointment-workflow-status.d.ts +55 -0
- package/dist/components/workflow-status/index.d.ts +2 -0
- package/dist/components/workflow-status/index.js +7 -2
- package/dist/components/workflow-status/workflow-status.d.ts +35 -0
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/use-exit-transition.d.ts +5 -0
- package/dist/hooks/use-priority-overflow.d.ts +11 -2
- package/dist/host-compat.css +7 -1
- package/dist/i18n/locales/ar.d.ts +48 -24
- package/dist/i18n/locales/ar.js +52 -28
- package/dist/i18n/locales/de.d.ts +48 -24
- package/dist/i18n/locales/de.js +52 -28
- package/dist/i18n/locales/el.d.ts +48 -24
- package/dist/i18n/locales/el.js +52 -28
- package/dist/i18n/locales/en.d.ts +34 -10
- package/dist/i18n/locales/en.js +39 -14
- package/dist/i18n/locales/es.d.ts +48 -24
- package/dist/i18n/locales/es.js +52 -28
- package/dist/i18n/locales/fr.d.ts +48 -24
- package/dist/i18n/locales/fr.js +52 -28
- package/dist/i18n/locales/hi.d.ts +48 -24
- package/dist/i18n/locales/hi.js +52 -28
- package/dist/i18n/locales/it.d.ts +34 -10
- package/dist/i18n/locales/it.js +39 -14
- package/dist/i18n/locales/ja.d.ts +48 -24
- package/dist/i18n/locales/ja.js +52 -28
- package/dist/i18n/locales/nl.d.ts +48 -24
- package/dist/i18n/locales/nl.js +52 -28
- package/dist/i18n/locales/pl.d.ts +48 -24
- package/dist/i18n/locales/pl.js +52 -28
- package/dist/i18n/locales/pt.d.ts +48 -24
- package/dist/i18n/locales/pt.js +52 -28
- package/dist/i18n/locales/ro.d.ts +48 -24
- package/dist/i18n/locales/ro.js +52 -28
- package/dist/i18n/locales/ru.d.ts +48 -24
- package/dist/i18n/locales/ru.js +52 -28
- package/dist/i18n/locales/sq.d.ts +48 -24
- package/dist/i18n/locales/sq.js +52 -28
- package/dist/i18n/locales/sv.d.ts +48 -24
- package/dist/i18n/locales/sv.js +52 -28
- package/dist/i18n/locales/tr.d.ts +48 -24
- package/dist/i18n/locales/tr.js +52 -28
- package/dist/i18n/locales/zh.d.ts +48 -24
- package/dist/i18n/locales/zh.js +52 -28
- package/dist/i18n/registerUiBundle.d.ts +5 -9
- package/dist/index.js +744 -730
- package/dist/locales/ar.json +52 -28
- package/dist/locales/de.json +52 -28
- package/dist/locales/el.json +52 -28
- package/dist/locales/en.json +38 -14
- package/dist/locales/es.json +52 -28
- package/dist/locales/fr.json +52 -28
- package/dist/locales/hi.json +52 -28
- package/dist/locales/it.json +38 -14
- package/dist/locales/ja.json +52 -28
- package/dist/locales/nl.json +52 -28
- package/dist/locales/pl.json +52 -28
- package/dist/locales/pt.json +52 -28
- package/dist/locales/ro.json +52 -28
- package/dist/locales/ru.json +52 -28
- package/dist/locales/sq.json +52 -28
- package/dist/locales/sv.json +52 -28
- package/dist/locales/tr.json +52 -28
- package/dist/locales/zh.json +52 -28
- 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 +25 -95
- package/dist/patterns/calendar/calendar-patient-picker.d.ts +4 -3
- package/dist/patterns/calendar/calendar-privacy.d.ts +1 -22
- package/dist/patterns/calendar/calendar-sticky-offset.d.ts +20 -13
- package/dist/patterns/calendar/calendar-task-editor.d.ts +9 -13
- package/dist/patterns/calendar/calendar-workspace.d.ts +89 -8
- package/dist/patterns/calendar/calendar-workspace.model.d.ts +17 -12
- package/dist/patterns/calendar/calendar.journey.d.ts +40 -6
- package/dist/patterns/calendar/calendar.model.d.ts +10 -17
- package/dist/patterns/calendar/calendar.sheets.d.ts +18 -16
- package/dist/patterns/calendar/calendar.surface.d.ts +4 -1
- package/dist/patterns/calendar/calendar.types.d.ts +24 -100
- package/dist/patterns/calendar/index.d.ts +4 -3
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/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 +33 -16
- package/dist/_chunks/button-group-CA1tmu39.js +0 -325
- package/dist/_chunks/calendar-workspace-BmscntRR.js +0 -12528
- package/dist/_chunks/combobox-DnSdYssy.js +0 -522
- package/dist/_chunks/control-room-rail-CdBOXIqX.js +0 -366
- package/dist/_chunks/fiscal-code-input-ODQRd_Sw.js +0 -553
- package/dist/_chunks/icon-button-group-DZKC6KGf.js +0 -428
- package/dist/_chunks/link-cell-renderer-s3oHzOwi.js +0 -778
- package/dist/_chunks/notes-panel-CHbDDMx8.js +0 -683
- package/dist/_chunks/panel-subview-CYnuX-KR.js +0 -171
- package/dist/_chunks/tasks-panel-DncuBPIZ.js +0 -844
- package/dist/_chunks/use-list-reflow-Cw43nxw5.js +0 -100
- package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js +0 -101
- package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +0 -37
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* Control Room rail docked inline-end — up to six tools, in strip
|
|
7
7
|
* order: the upcoming Appointments panel (the rail's resting state and
|
|
8
8
|
* its default), ONE appointment editor / details tool, the waiting list,
|
|
9
|
-
* patient notes when in context, online bookings and the free-slot
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* patient notes when in context, online bookings and the free-slot
|
|
10
|
+
* finder. The kit adds nothing else: no Inbox, no Alia, no patient tabs,
|
|
11
|
+
* no care plan, no tasks. A host may append its own tools after these
|
|
12
|
+
* (`extraTools`), which is how a host mounts TasksPanel. The panels are
|
|
13
|
+
* the extracted modules from `calendar.sheets.tsx`; `calendar.host.ts`'s
|
|
12
14
|
* open / close seam maps onto the rail's dock, with `close()` returning
|
|
13
15
|
* to the Appointments panel so no path leaves an empty rail.
|
|
14
16
|
*
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
* and care-plan cleanup and the Create-bill confirm.
|
|
37
39
|
*/
|
|
38
40
|
import type { CalendarView } from '../../components/calendar';
|
|
39
|
-
import { type ControlRoomFavoriteChange } from '../../components/control-room-rail';
|
|
41
|
+
import { type ControlRoomFavoriteChange, type ControlRoomTool } from '../../components/control-room-rail';
|
|
40
42
|
import { type CalendarAppointmentEditorLoader } from './calendar-editor-hydration';
|
|
41
43
|
import { type CalendarAppointmentDetailsLoader } from './calendar-appointment-details';
|
|
42
44
|
import { type CalendarData } from './calendar.data';
|
|
@@ -64,13 +66,47 @@ export type CalendarToolOpenSource = 'rail' | 'appointment_panel' | 'selection'
|
|
|
64
66
|
/** Where the appointment behind a details panel was selected. `host` is
|
|
65
67
|
* a selection the journey made itself. */
|
|
66
68
|
export type CalendarDetailsOpenSource = 'calendar' | 'appointments_panel' | 'bookings_panel' | 'waiting_list' | 'deep_link' | 'host';
|
|
69
|
+
/**
|
|
70
|
+
* A host tool on the workspace rail (`CalendarWorkspaceProps.extraTools`):
|
|
71
|
+
* a Control Room tool, plus what privacy mode does to it. `scope` and
|
|
72
|
+
* `reorderable` are ignored: the workspace rail orders by favourites.
|
|
73
|
+
*/
|
|
74
|
+
export interface CalendarWorkspaceExtraTool extends ControlRoomTool {
|
|
75
|
+
/**
|
|
76
|
+
* What privacy mode does to this tool's panel. The kit cannot see what
|
|
77
|
+
* the panel shows, so the default is the safe one.
|
|
78
|
+
*
|
|
79
|
+
* - `'withhold'` (default): while privacy mode is on, the panel and its
|
|
80
|
+
* `header` are replaced by the privacy notice, titled with `label` and
|
|
81
|
+
* offering "Turn off privacy mode". The host's panel is unmounted until
|
|
82
|
+
* privacy is turned off. The strip button and `badgeCount` stay.
|
|
83
|
+
* - `'host'`: the panel stays mounted and the host masks it, reading the
|
|
84
|
+
* mode from `onPrivacyChange` (a task list sets `linkedLabelMasked`;
|
|
85
|
+
* mind free-text titles, which the grid hides under privacy).
|
|
86
|
+
* Also the right value for a panel that shows no patient data at all.
|
|
87
|
+
* The kit cannot check either claim.
|
|
88
|
+
*/
|
|
89
|
+
privacy?: 'withhold' | 'host';
|
|
90
|
+
/**
|
|
91
|
+
* Keeps this tool docked while it is open and `hold` is true: a click on
|
|
92
|
+
* the grid (a card, a card with no patient, an empty slot) then changes
|
|
93
|
+
* the selection but docks nothing over the panel, neither the details nor
|
|
94
|
+
* the editor. Set it while the panel holds unsaved input, such as an open
|
|
95
|
+
* task editor. Explicit requests still open another tool: the strip, the
|
|
96
|
+
* toolbar, a free band's Book, a slot picked in an armed placement, and
|
|
97
|
+
* the host. Once released, a click on the card docks its details.
|
|
98
|
+
*/
|
|
99
|
+
hold?: boolean;
|
|
100
|
+
}
|
|
67
101
|
/**
|
|
68
102
|
* Usage callbacks for the host's analytics. The kit raises no event of
|
|
69
103
|
* its own and passes identifiers only, never patient data: the host owns
|
|
70
104
|
* the calls, the property allow-list and any once-per guard.
|
|
71
105
|
*/
|
|
72
106
|
export interface CalendarWorkspaceAnalytics {
|
|
73
|
-
/** A tool panel opened. Not raised again while it stays open
|
|
107
|
+
/** A built-in tool panel opened. Not raised again while it stays open,
|
|
108
|
+
* and never for an id no tool carries. Host tools report through
|
|
109
|
+
* `onExtraToolOpen` instead. */
|
|
74
110
|
onToolOpen?: (event: {
|
|
75
111
|
toolId: CalendarWorkspaceToolId;
|
|
76
112
|
source: CalendarToolOpenSource;
|
|
@@ -90,12 +126,23 @@ export interface CalendarWorkspaceAnalytics {
|
|
|
90
126
|
source: CalendarDetailsOpenSource;
|
|
91
127
|
view: CalendarView;
|
|
92
128
|
}) => void;
|
|
93
|
-
/** A rail preference was saved on this device. `
|
|
94
|
-
*
|
|
129
|
+
/** A rail preference was saved on this device. `toolId` may be a host
|
|
130
|
+
* tool's id. `resize` is raised only with `persistPanelWidthKey`, since
|
|
131
|
+
* without it nothing is saved. */
|
|
95
132
|
onToolPreferencesChange?: (event: {
|
|
96
133
|
action: ControlRoomFavoriteChange['action'] | 'resize';
|
|
97
134
|
toolId: string;
|
|
98
135
|
}) => void;
|
|
136
|
+
/**
|
|
137
|
+
* A host tool's panel opened (`extraTools`). Not raised again while it
|
|
138
|
+
* stays open. `rail` is a pick on the strip; `system` is any other open
|
|
139
|
+
* (the host's own `useControlRoomActions().openTool`, an agent).
|
|
140
|
+
*/
|
|
141
|
+
onExtraToolOpen?: (event: {
|
|
142
|
+
toolId: string;
|
|
143
|
+
source: Extract<CalendarToolOpenSource, 'rail' | 'system'>;
|
|
144
|
+
view: CalendarView;
|
|
145
|
+
}) => void;
|
|
99
146
|
}
|
|
100
147
|
export interface CalendarWorkspaceProps {
|
|
101
148
|
/** Optional canonical read for every existing-appointment editor route.
|
|
@@ -105,7 +152,9 @@ export interface CalendarWorkspaceProps {
|
|
|
105
152
|
loadAppointmentEditor?: CalendarAppointmentEditorLoader;
|
|
106
153
|
/** The host's read for the read-only appointment details panel (P-C3).
|
|
107
154
|
* With it a selection docks that panel, Edit opens the editor and a save
|
|
108
|
-
* re-reads the details; without it details stays the editor form.
|
|
155
|
+
* re-reads the details; without it details stays the editor form. Keep
|
|
156
|
+
* it stable: passing a new function re-reads the open details panel,
|
|
157
|
+
* which is how a host shows a change made outside the panel. */
|
|
109
158
|
loadAppointmentDetails?: CalendarAppointmentDetailsLoader;
|
|
110
159
|
/** The domain state and its handlers — the host implements them. */
|
|
111
160
|
journey: CalendarJourney;
|
|
@@ -219,6 +268,38 @@ export interface CalendarWorkspaceProps {
|
|
|
219
268
|
/** Usage callbacks for the host's analytics. Omit it and nothing is
|
|
220
269
|
* reported. */
|
|
221
270
|
analytics?: CalendarWorkspaceAnalytics;
|
|
271
|
+
/**
|
|
272
|
+
* Host tools, appended to the rail after the built-in ones, in this
|
|
273
|
+
* order. A tool is offered by passing it and withheld by leaving it out:
|
|
274
|
+
* `availableTools` narrows the built-in tools only.
|
|
275
|
+
*
|
|
276
|
+
* Ids: every `WORKSPACE_TOOL` id is reserved, even for a tool
|
|
277
|
+
* `availableTools` withholds, and a tool using one is left off the rail.
|
|
278
|
+
* A repeated id keeps its first tool. Nothing throws. The kit's own
|
|
279
|
+
* Storybook and tests warn; the published build drops the tool silently.
|
|
280
|
+
*
|
|
281
|
+
* The panel renders inside the workspace, so the host's own providers
|
|
282
|
+
* reach it. It unmounts when another tool opens, so keep state that must
|
|
283
|
+
* survive in the host. Render a kit `PanelHeader` first and the rail puts
|
|
284
|
+
* its favourite and close controls in it. Opening one reports through
|
|
285
|
+
* `analytics.onExtraToolOpen`. The workspace passes no permission to host
|
|
286
|
+
* tools. Only the strip, an agent and code inside an open panel
|
|
287
|
+
* (`useControlRoomActions`) open a tool: code outside the workspace
|
|
288
|
+
* cannot, since the workspace owns its rail provider. If the host stops
|
|
289
|
+
* passing the open tool, the rail docks the Appointments panel. Memoise
|
|
290
|
+
* the array: a new one re-registers the rail.
|
|
291
|
+
*/
|
|
292
|
+
extraTools?: readonly CalendarWorkspaceExtraTool[];
|
|
293
|
+
/**
|
|
294
|
+
* Raised when privacy mode turns on or off, from the toolbar toggle or a
|
|
295
|
+
* withheld panel's "Turn off privacy mode". Observe-only: the workspace
|
|
296
|
+
* owns the flag, it starts off on every mount (not reported) and is
|
|
297
|
+
* never persisted. Unmounting with privacy on reports `false`, so the
|
|
298
|
+
* host's copy never outlives the workspace. Raised in the same handler,
|
|
299
|
+
* so a host that sets state here renders its masked tool in the same
|
|
300
|
+
* commit as the masked grid.
|
|
301
|
+
*/
|
|
302
|
+
onPrivacyChange?: (privacy: boolean) => void;
|
|
222
303
|
}
|
|
223
304
|
/**
|
|
224
305
|
* The cog's settings as the workspace opens with them: the remembered
|
|
@@ -35,6 +35,22 @@ export declare const ALL_WORKSPACE_TOOLS: readonly CalendarWorkspaceToolId[];
|
|
|
35
35
|
* kit it mounts must not crash the agenda.
|
|
36
36
|
*/
|
|
37
37
|
export declare function resolveAvailableTools(requested: readonly string[]): ReadonlySet<CalendarWorkspaceToolId>;
|
|
38
|
+
/** Whether `id` is one of the built-in rail tools. */
|
|
39
|
+
export declare function isWorkspaceToolId(id: string): id is CalendarWorkspaceToolId;
|
|
40
|
+
/** Why a host tool was left off the rail. */
|
|
41
|
+
export type ExtraToolRejection = 'reserved' | 'duplicate' | 'empty';
|
|
42
|
+
/** The host tools the rail can carry, in the host's order. Built-in ids are
|
|
43
|
+
* reserved even when withheld, a repeated id keeps its first tool, an empty
|
|
44
|
+
* id is dropped, and nothing throws: a host mistake must not sink the page. */
|
|
45
|
+
export declare function resolveExtraTools<T extends {
|
|
46
|
+
readonly id: string;
|
|
47
|
+
}>(requested: readonly T[]): {
|
|
48
|
+
tools: T[];
|
|
49
|
+
rejected: {
|
|
50
|
+
id: string;
|
|
51
|
+
reason: ExtraToolRejection;
|
|
52
|
+
}[];
|
|
53
|
+
};
|
|
38
54
|
/** The platform's four ranges; "Working week" became the Show-weekends
|
|
39
55
|
* item, so it is no longer a view of its own. */
|
|
40
56
|
export type WorkspaceViewId = 'day' | 'threeDays' | 'week' | 'month';
|
|
@@ -207,18 +223,7 @@ export declare function signChannelStates(ref: PatientRef): {
|
|
|
207
223
|
* email, else nothing. "Can take one" is `ready` alone — a channel we
|
|
208
224
|
* know nothing about is not a channel to send on by default. */
|
|
209
225
|
export declare function defaultSignMode(ref: PatientRef): RequiredDocsSignMode;
|
|
210
|
-
|
|
211
|
-
* the link's own label. Empty when the host supplied no address at all,
|
|
212
|
-
* which is the caller's signal to leave the map row out rather than
|
|
213
|
-
* offer a search for nothing. */
|
|
214
|
-
export declare function patientAddressLine(patient: CalendarPatient): string;
|
|
215
|
-
/** The map link's own LABEL — street and city, the pair the popover has
|
|
216
|
-
* always printed. The postcode belongs in the search query, not in the
|
|
217
|
-
* visible text, so widening `patientAddressLine` for the URL must not
|
|
218
|
-
* drag the label along with it. */
|
|
219
|
-
export declare function patientAddressLabel(patient: CalendarPatient): string;
|
|
220
|
-
/** Google Maps search for the patient's address — the popover's map link. */
|
|
221
|
-
export declare function patientMapsUrl(patient: CalendarPatient): string;
|
|
226
|
+
export { patientAddressLabel, patientAddressLine, patientMapsUrl, } from '../../components/_shared/appointment-format';
|
|
222
227
|
/** A CREATE mode armed by a deep link (`createParameters`) or the
|
|
223
228
|
* Backlog's Schedule: the next empty-slot click opens the editor with
|
|
224
229
|
* this context already filled in (platform `_switchMode('create')`). */
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { CalendarEventStatus } from '../../components/calendar';
|
|
14
14
|
import type { Dispatch, SetStateAction } from 'react';
|
|
15
|
-
import type { NotesPanelNote, NotesPanelProps, NotesPanelSubmission, AiConsentGate } from '../../components/notes-panel';
|
|
15
|
+
import type { NotesPanelNote, NotesPanelProps, NotesPanelSubmission, NotesPanelWriteFailure, AiConsentGate } from '../../components/notes-panel';
|
|
16
16
|
import type { PatientNotesSeam } from './calendar.sheets';
|
|
17
17
|
import type { AvailabilityContext, BacklogFilter, BacklogItem, CalendarFreeSlot, CalendarRow, DisplaySettings, DraftSlot, EditorDraft, EditorPrefill, FindSlotsSeed, HistoryInput, RailFocus, SlotPatch, WaitingEntryDraft } from './calendar.model';
|
|
18
18
|
import type { DeleteOptions, EditorDraftExtras, RecurringScope } from './calendar-workspace.model';
|
|
@@ -171,16 +171,50 @@ export interface CalendarJourney {
|
|
|
171
171
|
* stored note — its id, its timestamp and its AUTHOR, who is the
|
|
172
172
|
* signed-in operator the host knows and the kit does not. The panel
|
|
173
173
|
* hands over only what was typed, so no name the kit invented can
|
|
174
|
-
* ever be attributed to a clinical note.
|
|
174
|
+
* ever be attributed to a clinical note. Reject with a translated
|
|
175
|
+
* Error: the draft stays in the composer with the message while the
|
|
176
|
+
* Notes tool is open, and `handleNoteWriteError` hears a refusal that
|
|
177
|
+
* lands after the reader left it.
|
|
175
178
|
*/
|
|
176
179
|
handleAddNote: (patientId: string, submission: NotesPanelSubmission) => void | Promise<void>;
|
|
177
180
|
/** Replace a note's body: HTML for an HTML note, else plain text. A
|
|
178
|
-
* rejected write keeps the draft
|
|
181
|
+
* rejected write keeps the draft in the composer with its message, as
|
|
182
|
+
* `handleAddNote` does. */
|
|
179
183
|
handleEditNote: (patientId: string, noteId: string, content: string) => void | Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Delete a note. Called on the click that confirms it. Resolve once the
|
|
186
|
+
* delete has landed. A rejection brings the row back and the notes
|
|
187
|
+
* panel shows the error's message, so reject with a translated Error
|
|
188
|
+
* and do not also toast it.
|
|
189
|
+
*
|
|
190
|
+
* A clinical note is taken as kept for the record: its row waits in
|
|
191
|
+
* place, paused, until `notesByPatient` marks it `deleted`. Any other
|
|
192
|
+
* note fades and stays hidden until `notesByPatient` drops it. Set
|
|
193
|
+
* `keptOnDelete` on a note to say otherwise. The panel holds this only
|
|
194
|
+
* while the Notes tool stays open for that patient: reopened, it shows
|
|
195
|
+
* the note as `notesByPatient` does, with a live delete. So return the
|
|
196
|
+
* same promise for a second delete of a note already being deleted.
|
|
197
|
+
*/
|
|
180
198
|
handleDeleteNote: (patientId: string, noteId: string) => void | Promise<void>;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
199
|
+
/**
|
|
200
|
+
* Pin or unpin a note. `next` is the value the note moves to, so set it
|
|
201
|
+
* rather than flipping what you hold. A returned promise holds the new
|
|
202
|
+
* value until the notes agree; a rejection rolls it back and the notes
|
|
203
|
+
* panel shows the message. Do not also toast it.
|
|
204
|
+
*/
|
|
205
|
+
handleToggleNotePin: (patientId: string, noteId: string, next: boolean) => void | Promise<void>;
|
|
206
|
+
/** As `handleToggleNotePin`, for the flag. Omit it and the flag control
|
|
207
|
+
* is not offered. */
|
|
208
|
+
handleToggleNoteFlag?: (patientId: string, noteId: string, next: boolean) => void | Promise<void>;
|
|
209
|
+
/**
|
|
210
|
+
* Hears every refused note write: a save, a delete, a pin or a flag.
|
|
211
|
+
* `failure.shown` says whether the notes panel told the reader. Toast
|
|
212
|
+
* only the ones with `shown: false`, for example a refusal that arrives
|
|
213
|
+
* after the reader switched tool or patient; a save among them has lost
|
|
214
|
+
* its draft. Wire it in the same change that stops you toasting every
|
|
215
|
+
* refusal yourself: without it, those late refusals reach no one.
|
|
216
|
+
*/
|
|
217
|
+
handleNoteWriteError?: (patientId: string, failure: NotesPanelWriteFailure) => void;
|
|
184
218
|
/** Read a patient's notes: the latest few, or every note. */
|
|
185
219
|
handleLoadNotes?: (patientId: string, scope: 'preview' | 'all') => void;
|
|
186
220
|
/**
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
* — the host supplies it, the model never reaches for a module global.
|
|
10
10
|
*/
|
|
11
11
|
import type { TFunction } from 'i18next';
|
|
12
|
-
import { ThumbsUp } from 'lucide-react';
|
|
13
12
|
import { type CalendarEvent, type CalendarEventStatus, type CalendarResource } from '../../components/calendar';
|
|
14
13
|
import type { WorkflowStatusTone } from '../../components/workflow-status';
|
|
14
|
+
import { APPOINTMENT_STATE_WORKFLOW } from '../../components/_shared/entity-card';
|
|
15
|
+
import { APPOINTMENT_STATUS_BADGE_VARIANT } from '../../components/appointment-details-panel/appointment-details-panel.identity';
|
|
16
|
+
import type { AppointmentRecurrenceFrequency } from '../../components/appointment-details-panel';
|
|
15
17
|
import type { CalendarData } from './calendar.data';
|
|
16
18
|
import { type CareDescriptionMode, type ColorAssociation, type CalendarBaseEvent, type CalendarBookingContact, type CalendarCareEntry, type CalendarCareLink, type CalendarClosure, type CalendarDayHours, type CalendarHistoryEntry, type CalendarPatient, type CalendarPhoneNumber, type CalendarSignDocument, type CalendarWaitingEntry, type CatalogueState, type PatientRef } from './calendar.types';
|
|
17
19
|
export declare const STATUS_UI_KEY: Record<CalendarEventStatus, string>;
|
|
@@ -131,8 +133,7 @@ export declare const DAY_WINDOWS: Record<DisplaySettings['window'], {
|
|
|
131
133
|
min: string;
|
|
132
134
|
max: string;
|
|
133
135
|
}>;
|
|
134
|
-
export
|
|
135
|
-
export declare function formatDay(locale: string, value: Date | string): string;
|
|
136
|
+
export { DETAIL_STAMP_FORMAT, formatDay, formatTimeRange, parseEventDate, RECURRENCE_LABEL_KEY, sortHistoryNewestFirst, } from '../../components/_shared/appointment-format';
|
|
136
137
|
/** Completed years between a birth date and the practice's fixed "now" —
|
|
137
138
|
* the platform popover's "(NN anni)" beside the patient's name. Pinned
|
|
138
139
|
* to `data.nowIso` so the figure never drifts under a test. */
|
|
@@ -197,13 +198,11 @@ export interface EditorPrefill {
|
|
|
197
198
|
isTask?: boolean;
|
|
198
199
|
}
|
|
199
200
|
/** Platform's six `recurrence_frequency` values, in its dropdown order. */
|
|
200
|
-
export type RecurrenceFrequency =
|
|
201
|
+
export type RecurrenceFrequency = AppointmentRecurrenceFrequency;
|
|
201
202
|
/** Repetition cap — platform asserts 2..100 on the entity. */
|
|
202
203
|
export declare const RECURRENCE_MAX_COUNT = 100;
|
|
203
204
|
/** Dropdown order, matching the platform modal's own. */
|
|
204
205
|
export declare const RECURRENCE_FREQUENCIES: readonly RecurrenceFrequency[];
|
|
205
|
-
/** Literal map (not a template) so key extractors see every key. */
|
|
206
|
-
export declare const RECURRENCE_LABEL_KEY: Record<RecurrenceFrequency, string>;
|
|
207
206
|
export interface EditorRecurrence {
|
|
208
207
|
frequency: RecurrenceFrequency;
|
|
209
208
|
/** Count XOR until — the exclusivity `DoctorAppointment` enforces. */
|
|
@@ -355,12 +354,8 @@ export declare function deriveCareLinkDefaults(link: CalendarCareLink | undefine
|
|
|
355
354
|
export type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
|
|
356
355
|
/** A ledger line before the journey stamps id, time and actor onto it. */
|
|
357
356
|
export type HistoryInput = DistributiveOmit<CalendarHistoryEntry, 'id' | 'atIso' | 'actor'>;
|
|
358
|
-
/** Absolute stamp for booked-at and ledger lines — day and time. */
|
|
359
|
-
export declare const DETAIL_STAMP_FORMAT: Intl.DateTimeFormatOptions;
|
|
360
357
|
/** Live stamps advance from the practice clock, never the real one. */
|
|
361
358
|
export declare function historyStampIso(seq: number, data: CalendarData): string;
|
|
362
|
-
/** Timeline 'newest-first' is a plain column — DOM order must already be. */
|
|
363
|
-
export declare function sortHistoryNewestFirst(entries: readonly CalendarHistoryEntry[]): CalendarHistoryEntry[];
|
|
364
359
|
/** Documents still awaiting a required party (the chip's own rule). */
|
|
365
360
|
export declare function signingSummary(docs: readonly CalendarSignDocument[]): {
|
|
366
361
|
toSign: number;
|
|
@@ -399,11 +394,12 @@ export declare function priceListState(data: CalendarData): CatalogueState;
|
|
|
399
394
|
* list the practice does not have, and `priceLists[0].id` on an empty
|
|
400
395
|
* catalogue threw and took the whole calendar down with it. */
|
|
401
396
|
export declare function priceListIdFor(patientId: string | undefined, data: CalendarData): string | undefined;
|
|
402
|
-
|
|
403
|
-
variant:
|
|
397
|
+
type StatusChip = {
|
|
398
|
+
variant: (typeof APPOINTMENT_STATUS_BADGE_VARIANT)[CalendarEventStatus];
|
|
404
399
|
tone: WorkflowStatusTone;
|
|
405
|
-
Icon: typeof
|
|
406
|
-
}
|
|
400
|
+
Icon: (typeof APPOINTMENT_STATE_WORKFLOW)[CalendarEventStatus]['Icon'];
|
|
401
|
+
};
|
|
402
|
+
export declare const STATUS_CHIP: Record<CalendarEventStatus, StatusChip>;
|
|
407
403
|
export type BacklogType = 'booking' | 'waiting' | 'unconfirmed' | 'noOperator' | 'signature';
|
|
408
404
|
/** The filter strip's segments — every type, or all of them grouped. */
|
|
409
405
|
export type BacklogFilter = BacklogType | 'all';
|
|
@@ -668,9 +664,6 @@ export interface PrintSheetInput {
|
|
|
668
664
|
visibleOperatorIds: string[];
|
|
669
665
|
privacy: boolean;
|
|
670
666
|
}
|
|
671
|
-
/** A date-only start (all-day rows) is already a local day; anything
|
|
672
|
-
* else parses as the wall clock the fixtures and the editor write. */
|
|
673
|
-
export declare function parseEventDate(value: string | Date): Date;
|
|
674
667
|
/** The title privacy mode shows. TOTAL in the masked branch: a host
|
|
675
668
|
* that supplies an EMPTY `privacyModeTitle` gets the bullets, never a
|
|
676
669
|
* blank and never a fallback that would leak what we do or do not hold
|
|
@@ -22,9 +22,11 @@
|
|
|
22
22
|
* the demos or the shared story shell.
|
|
23
23
|
*/
|
|
24
24
|
import { type ReactNode } from 'react';
|
|
25
|
+
import { AppointmentHistoryTimeline } from '../../components/appointment-details-panel/appointment-details-panel.history';
|
|
26
|
+
import { IndicatorChips } from '../../components/appointment-details-panel/appointment-details-panel.identity';
|
|
25
27
|
import type { CalendarEditorCapabilities } from './calendar.model';
|
|
26
28
|
import type { CalendarEditorSeries } from './calendar-editor-hydration';
|
|
27
|
-
import { type
|
|
29
|
+
import { type CalendarResource } from '../../components/calendar';
|
|
28
30
|
import { type NotesPanelNote, type NotesPanelProps, type NotesPanelSubmission, type AiConsentGate } from '../../components/notes-panel';
|
|
29
31
|
import { type ColorAssociation, type CalendarCarePlan, type CalendarAnamnesisAnswer, type CalendarOperatorGroup, type CalendarPatient, type CalendarWaitingEntry, type CalendarHistoryEntry, type CalendarSignChannel, type PatientRef } from './calendar.types';
|
|
30
32
|
import { type CalendarData } from './calendar.data';
|
|
@@ -71,10 +73,19 @@ export interface PatientNotesSeam {
|
|
|
71
73
|
onAddNote: (submission: NotesPanelSubmission) => void | Promise<void>;
|
|
72
74
|
/** Replace a note's body: HTML for an HTML note, else plain text. */
|
|
73
75
|
onEditNote: (noteId: string, content: string) => void | Promise<void>;
|
|
76
|
+
/** Called on the click that confirms it. Resolve once the delete has
|
|
77
|
+
* landed; a rejection restores the row and the panel shows the message.
|
|
78
|
+
* A clinical note is taken as kept, marked deleted, unless the note
|
|
79
|
+
* says `keptOnDelete: false`: its row waits in place. */
|
|
74
80
|
onDeleteNote: (noteId: string) => void | Promise<void>;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
81
|
+
/** `next` is the value the note moves to. A rejection rolls the pin back
|
|
82
|
+
* and the panel shows the message: do not also toast it. */
|
|
83
|
+
onTogglePin: (noteId: string, next: boolean) => void | Promise<void>;
|
|
84
|
+
/** As `onTogglePin`, for the flag. Omitted → no flag control. */
|
|
85
|
+
onToggleFlag?: (noteId: string, next: boolean) => void | Promise<void>;
|
|
86
|
+
/** Hears every refused save, delete, pin or flag. See `NotesPanel`'s
|
|
87
|
+
* `onWriteError`: report only the ones with `shown: false`. */
|
|
88
|
+
onWriteError?: NotesPanelProps['onWriteError'];
|
|
78
89
|
/** The practice's own drafting endpoint. Omitted → no AI affordance. */
|
|
79
90
|
onRequestAiDraft?: NotesPanelProps['onRequestAiDraft'];
|
|
80
91
|
/** The host's live transcription. Omitted → no microphone. */
|
|
@@ -142,7 +153,7 @@ declare function PatientNotesPanelContent({ patientId, seam, editable, currentNo
|
|
|
142
153
|
* Whether this reader may write when `seam.writable` is absent: note
|
|
143
154
|
* writes follow the notes, not `practice_appointment_edit`. False (or
|
|
144
155
|
* no `seam`) leaves the composer, the pin, the in-place edit and the
|
|
145
|
-
* delete
|
|
156
|
+
* delete unmounted.
|
|
146
157
|
*/
|
|
147
158
|
editable?: boolean;
|
|
148
159
|
/** Address one note, exactly as `NotesPanel` does. */
|
|
@@ -165,13 +176,7 @@ export declare function PatientAppointmentsTimeline({ patientId, locale, }: {
|
|
|
165
176
|
patientId: string;
|
|
166
177
|
locale?: string;
|
|
167
178
|
}): import("react/jsx-runtime").JSX.Element;
|
|
168
|
-
|
|
169
|
-
* shared by the editor's History sub-view and the read-only details panel.
|
|
170
|
-
* An empty ledger shows the "No changes recorded" empty state. */
|
|
171
|
-
export declare function AppointmentHistoryTimeline({ history, locale, }: {
|
|
172
|
-
history: readonly CalendarHistoryEntry[];
|
|
173
|
-
locale?: string;
|
|
174
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
179
|
+
export { AppointmentHistoryTimeline };
|
|
175
180
|
export declare function PatientTasksPanel({ patientId }: {
|
|
176
181
|
patientId: string;
|
|
177
182
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -305,9 +310,7 @@ export declare function AppointmentEditorPanel({ prefill, onSave, onDelete, onDu
|
|
|
305
310
|
/** Root class — a dialog host bounds the panel's height through it. */
|
|
306
311
|
className?: string;
|
|
307
312
|
}): import("react/jsx-runtime").JSX.Element;
|
|
308
|
-
export
|
|
309
|
-
event: CalendarEvent;
|
|
310
|
-
}): import("react/jsx-runtime").JSX.Element | null;
|
|
313
|
+
export { IndicatorChips };
|
|
311
314
|
export declare function AppointmentIdentity({ row, patientRef, showAge, onOpenPatient, anamnesisAnswers, }: {
|
|
312
315
|
row: CalendarRow;
|
|
313
316
|
/** Who this appointment is for: the id it carries and the record, when
|
|
@@ -538,5 +541,4 @@ export declare function FindFreeSlotsPanel({ rows, locale, seed, onBookSlot, onS
|
|
|
538
541
|
to: Date;
|
|
539
542
|
}) => void;
|
|
540
543
|
}): import("react/jsx-runtime").JSX.Element;
|
|
541
|
-
export {};
|
|
542
544
|
//# sourceMappingURL=calendar.sheets.d.ts.map
|
|
@@ -3,7 +3,7 @@ import { type CalendarPreferenceAdapter } from './calendar.preferences';
|
|
|
3
3
|
import { type CalendarRow, type RailFocus, type EditorPrefill, type HistoryInput, type AvailabilityContext, type CalendarFreeSlot } from './calendar.model';
|
|
4
4
|
import { type WorkspaceDisplaySettings, type CreateModeRequest, type PlacementRequest, type SaveNotice, type CalendarWorkspaceToolId } from './calendar-workspace.model';
|
|
5
5
|
import type { CalendarOccurrenceMove } from './calendar.journey';
|
|
6
|
-
export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComposeNew, onComposeTask, onOpenWaitingList, onAddWaitingEntry, onOpenOnlineBookings, onlineBookingsCount, waitingBadgeCount, onVisibleRangeChange, selectedEventId, gotoRequest, onBookSlot, onBookSlotFromFinder, display, setDisplay, onHistory, readOnly, reviewOnlyEventIds, detailsOnEveryClick, placement, onPlacementEnd, createMode, onCreateModeEnd, focusScroll, saveNotice, privacy, onPrivacyChange, availability, availabilityContext, availableTools, schedulerLicenseKey, id, preferences, onMoveOccurrence, onViewChange, onPeekOpen, }: {
|
|
6
|
+
export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComposeNew, onComposeTask, onOpenWaitingList, onAddWaitingEntry, onOpenOnlineBookings, onlineBookingsCount, waitingBadgeCount, onVisibleRangeChange, selectedEventId, gotoRequest, onBookSlot, onBookSlotFromFinder, display, setDisplay, onHistory, readOnly, reviewOnlyEventIds, detailsOnEveryClick, gridHeld, placement, onPlacementEnd, createMode, onCreateModeEnd, focusScroll, saveNotice, privacy, onPrivacyChange, availability, availabilityContext, availableTools, schedulerLicenseKey, id, preferences, onMoveOccurrence, onViewChange, onPeekOpen, }: {
|
|
7
7
|
rows: CalendarRow[];
|
|
8
8
|
setRows: React.Dispatch<React.SetStateAction<CalendarRow[]>>;
|
|
9
9
|
onFocus: (focus: RailFocus) => void;
|
|
@@ -69,6 +69,9 @@ export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComp
|
|
|
69
69
|
} | null;
|
|
70
70
|
/** Seed the editor prefilled (an empty-slot click, a booking to process). */
|
|
71
71
|
onBookSlot: (prefill: EditorPrefill) => void;
|
|
72
|
+
/** A host tool holds the dock (`hold`): a grid click still selects, but
|
|
73
|
+
* never opens the editor over it. */
|
|
74
|
+
gridHeld?: boolean;
|
|
72
75
|
onBookSlotFromFinder: (prefill: EditorPrefill) => void;
|
|
73
76
|
/** The cog's settings — owned by the journey (the editor reads them). */
|
|
74
77
|
display: WorkspaceDisplaySettings;
|
|
@@ -11,25 +11,17 @@
|
|
|
11
11
|
* Type names keep their `Demo*` prefix for now — a later sweep renames
|
|
12
12
|
* them `Calendar*` in one go.
|
|
13
13
|
*/
|
|
14
|
-
import type { CalendarEvent,
|
|
14
|
+
import type { CalendarEvent, CalendarResource } from '../../components/calendar';
|
|
15
15
|
import type { CarePlanState } from '../../components/_shared/entity-card';
|
|
16
16
|
import type { SignatureParty } from '../../components/signature-status-chip';
|
|
17
|
+
import type { TaskEditorDraft, TaskEditorTask } from '../../components/task-editor';
|
|
18
|
+
import type { AppointmentAnamnesisAnswer, AppointmentDetailsPatient, AppointmentHistoryEntry, AppointmentHistoryField, AppointmentHistoryKind, AppointmentPhoneLabel, AppointmentPhoneNumber, AppointmentSignChannel } from '../../components/appointment-details-panel';
|
|
17
19
|
/** Platform `DoctorPatientPhoneNumber` carries a free-text label; the
|
|
18
|
-
*
|
|
19
|
-
export type CalendarPhoneLabel =
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
/** One highlighted anamnesis answer, as the platform's details dialog
|
|
25
|
-
* lists it: the question, the Si/No, the free answer and the interview
|
|
26
|
-
* date. Texts are display strings — the host localises them. */
|
|
27
|
-
export interface CalendarAnamnesisAnswer {
|
|
28
|
-
question: string;
|
|
29
|
-
yes: boolean;
|
|
30
|
-
answer?: string;
|
|
31
|
-
interviewIso: string;
|
|
32
|
-
}
|
|
20
|
+
* vocabulary is fixed so the printed call sheet can localise it. */
|
|
21
|
+
export type CalendarPhoneLabel = AppointmentPhoneLabel;
|
|
22
|
+
export type CalendarPhoneNumber = AppointmentPhoneNumber;
|
|
23
|
+
/** One highlighted anamnesis answer (display strings, host-localised). */
|
|
24
|
+
export type CalendarAnamnesisAnswer = AppointmentAnamnesisAnswer;
|
|
33
25
|
/**
|
|
34
26
|
* A patient as the HOST knows them. Only the identity — `id` and `name` —
|
|
35
27
|
* is required: a host whose appointment feed carries a patient id and a
|
|
@@ -41,7 +33,7 @@ export interface CalendarAnamnesisAnswer {
|
|
|
41
33
|
* a "Fiscal code" label is a claim about the record, not a blank. Omit the
|
|
42
34
|
* row; where every row of a section would go, omit the section.
|
|
43
35
|
*/
|
|
44
|
-
export interface CalendarPatient {
|
|
36
|
+
export interface CalendarPatient extends AppointmentDetailsPatient {
|
|
45
37
|
id: string;
|
|
46
38
|
name: string;
|
|
47
39
|
dobIso?: string;
|
|
@@ -237,7 +229,7 @@ export type CalendarCareLink = {
|
|
|
237
229
|
}>;
|
|
238
230
|
};
|
|
239
231
|
/** Channel a signature request went out on (platform `requiredObjectsSignMode`). */
|
|
240
|
-
export type CalendarSignChannel =
|
|
232
|
+
export type CalendarSignChannel = AppointmentSignChannel;
|
|
241
233
|
/** One document to sign on an appointment — each party's standing. */
|
|
242
234
|
export interface CalendarSignDocument {
|
|
243
235
|
id: string;
|
|
@@ -322,51 +314,14 @@ export interface CalendarBookingContact {
|
|
|
322
314
|
/** When the booking was made (platform `createdAt`). */
|
|
323
315
|
bookedAtIso: string;
|
|
324
316
|
}
|
|
325
|
-
/**
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
|
|
333
|
-
*/
|
|
334
|
-
export interface CalendarTask {
|
|
335
|
-
id: string;
|
|
336
|
-
/** An instant as an ISO 8601 string. The editor emits `toISOString()`,
|
|
337
|
-
* so UTC with a `Z`; parse it with `new Date()`, never by slicing the
|
|
338
|
-
* first 16 characters. A zone-less string on read is taken as local. */
|
|
339
|
-
dateIso: string;
|
|
340
|
-
/** The task text. Required here, though the platform allows an empty
|
|
341
|
-
* one. */
|
|
342
|
-
note: string;
|
|
343
|
-
/** The clinician the task concerns: platform `doctorOperator`, filled
|
|
344
|
-
* from `data.operators`. NOT the assignee (`assigneeId`), and mutually
|
|
345
|
-
* exclusive with `patientId` and `companyId`. Absent = no operator. */
|
|
346
|
-
operatorId?: string;
|
|
347
|
-
/** Mutually exclusive with `companyId` and `operatorId`. */
|
|
348
|
-
patientId?: string;
|
|
349
|
-
/** Mutually exclusive with `patientId` and `operatorId` (platform
|
|
350
|
-
* `doctorCompany`). */
|
|
351
|
-
companyId?: string;
|
|
352
|
-
/** Which kind of task — an OPAQUE token from `CalendarData.taskTypes`,
|
|
353
|
-
* round-tripped untouched. The kit never parses it. Optional: a host
|
|
354
|
-
* that supplies no `taskTypes` neither shows the field nor sends one. */
|
|
355
|
-
typeId?: string;
|
|
356
|
-
/** The practice USER the task is assigned to. Independent of the
|
|
357
|
-
* counterpart above: an assigned task may still be about a patient. An
|
|
358
|
-
* id from `CalendarData.taskAssignees`; absent = nobody. */
|
|
359
|
-
assigneeId?: string;
|
|
360
|
-
done: boolean;
|
|
361
|
-
}
|
|
362
|
-
/** The same shape without an identity — what the editor hands the create
|
|
363
|
-
* seam, and what an edit save re-sends in full (no partial patch).
|
|
364
|
-
* `done` is optional here (defaults to `false`) so a caller building a
|
|
365
|
-
* brand-new task never has to state the obvious; `CalendarTask.done` on
|
|
366
|
-
* a saved record stays required — a saved task always has a value. */
|
|
367
|
-
export type TaskDraft = Omit<CalendarTask, 'id' | 'done'> & {
|
|
368
|
-
done?: boolean;
|
|
369
|
-
};
|
|
317
|
+
/** A calendar task (platform `DoctorReminder`): the calendar's name for the
|
|
318
|
+
* published TaskEditor's record. See `TaskEditorTask` for every field,
|
|
319
|
+
* including why `dateIso` is an instant and the one-counterpart rule. */
|
|
320
|
+
export type CalendarTask = TaskEditorTask;
|
|
321
|
+
/** The same shape without an identity: what the create seam receives and
|
|
322
|
+
* what an edit save re-sends in full. See `TaskEditorDraft`. Published as
|
|
323
|
+
* `CalendarTaskDraft`. */
|
|
324
|
+
export type TaskDraft = TaskEditorDraft;
|
|
370
325
|
/** One contiguous working range, minutes from local midnight. */
|
|
371
326
|
export interface CalendarDayHours {
|
|
372
327
|
startMin: number;
|
|
@@ -425,44 +380,13 @@ export interface CalendarWaitingEntry {
|
|
|
425
380
|
* when the host's `patientById` record carries no `avatarSrc`. */
|
|
426
381
|
patientAvatarUrl?: string;
|
|
427
382
|
}
|
|
428
|
-
export type CalendarHistoryKind =
|
|
383
|
+
export type CalendarHistoryKind = AppointmentHistoryKind;
|
|
429
384
|
/** Form fields an edit can touch (the platform's audit vocabulary). */
|
|
430
|
-
export type CalendarHistoryField =
|
|
431
|
-
/** One ledger line
|
|
432
|
-
export type CalendarHistoryEntry =
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
actor: string;
|
|
436
|
-
} & ({
|
|
437
|
-
kind: 'created';
|
|
438
|
-
} | {
|
|
439
|
-
kind: 'moved';
|
|
440
|
-
fromIso: string;
|
|
441
|
-
toIso: string;
|
|
442
|
-
} | {
|
|
443
|
-
kind: 'resized';
|
|
444
|
-
fromMin: number;
|
|
445
|
-
toMin: number;
|
|
446
|
-
} | {
|
|
447
|
-
kind: 'status';
|
|
448
|
-
from: CalendarEventStatus;
|
|
449
|
-
to: CalendarEventStatus;
|
|
450
|
-
} | {
|
|
451
|
-
kind: 'edited';
|
|
452
|
-
fields: CalendarHistoryField[];
|
|
453
|
-
} | {
|
|
454
|
-
kind: 'deleted';
|
|
455
|
-
}
|
|
456
|
-
/** The patient confirmed by link; the host sends `actor: ''`. */
|
|
457
|
-
| {
|
|
458
|
-
kind: 'confirmedByPatient';
|
|
459
|
-
});
|
|
460
|
-
/** Every labelled phone number — the single `phone` is the mobile when a
|
|
461
|
-
* patient carries no explicit list (platform prints each label: number).
|
|
462
|
-
* A patient the host supplied without either has no numbers to print,
|
|
463
|
-
* which is not the same as one labelled blank: the list comes back empty
|
|
464
|
-
* and the caller omits the block. */
|
|
465
|
-
export declare function patientPhones(patient: CalendarPatient): CalendarPhoneNumber[];
|
|
385
|
+
export type CalendarHistoryField = AppointmentHistoryField;
|
|
386
|
+
/** One ledger line: who did what to the appointment, and when. */
|
|
387
|
+
export type CalendarHistoryEntry = AppointmentHistoryEntry;
|
|
388
|
+
/** Every labelled phone number; see the shared helper. */
|
|
389
|
+
export { patientPhones } from '../../components/_shared/appointment-format';
|
|
466
390
|
/**
|
|
467
391
|
* A patient as the calendar can see them at one point: the id a row,
|
|
468
392
|
* an event or a waiting entry carries, plus the record if the host's
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { CalendarWorkspace, initialWorkspaceDisplay, WORKSPACE_TOOL, type CalendarWorkspaceProps, type CalendarOnlineBookings, type CalendarWorkspaceToolId, type CalendarWorkspaceAnalytics, type CalendarToolOpenSource, type CalendarDetailsOpenSource, } from './calendar-workspace';
|
|
1
|
+
export { CalendarWorkspace, initialWorkspaceDisplay, WORKSPACE_TOOL, type CalendarWorkspaceProps, type CalendarOnlineBookings, type CalendarWorkspaceToolId, type CalendarWorkspaceExtraTool, type CalendarWorkspaceAnalytics, type CalendarToolOpenSource, type CalendarDetailsOpenSource, } from './calendar-workspace';
|
|
2
2
|
export { CalendarDataProvider, useCalendarData, type CalendarData, type DayLoadState, } from './calendar.data';
|
|
3
3
|
export type { CalendarJourney, CalendarOccurrenceMove, PatientNotesLoad, } from './calendar.journey';
|
|
4
4
|
export type { CalendarAppointmentEditorSnapshot, CalendarAppointmentEditorLoader, CalendarEditorSeries, } from './calendar-editor-hydration';
|
|
@@ -8,9 +8,10 @@ export { SheetHostProvider, useSheetHost, type SheetHostContext, type SheetId, }
|
|
|
8
8
|
export { CALENDAR_PREFERENCE_KEYS, memoryPreferenceAdapter, resetCalendarPreferences, usePersistedPreference, type CalendarPreferenceAdapter, } from './calendar.preferences';
|
|
9
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
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
|
-
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';
|
|
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, CalendarTask, CalendarTaskDetail, CalendarWaitingEntry, CalendarWeeklyHours, CareDescriptionMode, ColorAssociation, FreeSlotQuery, TaskDraft as CalendarTaskDraft, } from './calendar.types';
|
|
12
12
|
export type { CalendarEvent, CalendarEventStatus, CalendarResource, } from '../../components/calendar';
|
|
13
13
|
export type { AppointmentItem } from '../../components/appointment-card';
|
|
14
|
-
export type { NotesPanelNote, NotesPanelNoteActions, NotesPanelProps, NotesPanelSubmission, } from '../../components/notes-panel';
|
|
14
|
+
export type { NotesPanelNote, NotesPanelNoteActions, NotesPanelProps, NotesPanelSubmission, NotesPanelWriteFailure, } from '../../components/notes-panel';
|
|
15
15
|
export type { TasksPanelItem } from '../../components/tasks-panel';
|
|
16
|
+
export type { ControlRoomTool } from '../../components/control-room-rail';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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-C_eXL1by.js";
|
|
2
2
|
export {
|
|
3
3
|
s as CALENDAR_PREFERENCE_KEYS,
|
|
4
4
|
r as CalendarDataProvider,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as s, a as t, b as r, H as i, c as p, u as l } from "../../_chunks/help-me-write-templates-
|
|
1
|
+
import { A as s, a as t, b as r, H as i, c as p, u as l } from "../../_chunks/help-me-write-templates-DQtT1qs_.js";
|
|
2
2
|
export {
|
|
3
3
|
s as AiCreditsExhaustedError,
|
|
4
4
|
t as AiCreditsExhaustedNotice,
|