@alfadocs/ui-kit-debug 1.50.0 → 1.51.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-DMittsR3.js → actions-cell-renderer-DBI33cMp.js} +4 -4
- package/dist/_chunks/{actions-cell-renderer-DMittsR3.js.map → actions-cell-renderer-DBI33cMp.js.map} +1 -1
- package/dist/_chunks/{agenda-tray-BhZASyJm.js → agenda-tray-CGhEEnFE.js} +3 -3
- package/dist/_chunks/{agenda-tray-BhZASyJm.js.map → agenda-tray-CGhEEnFE.js.map} +1 -1
- package/dist/_chunks/{ai-credits-notice-C-kz_RrY.js → ai-credits-notice-C9K_ley1.js} +3 -3
- package/dist/_chunks/{ai-credits-notice-C-kz_RrY.js.map → ai-credits-notice-C9K_ley1.js.map} +1 -1
- package/dist/_chunks/{ai-permission-notice-BRZeS3mT.js → ai-permission-notice-DMG1o4Qa.js} +2 -2
- package/dist/_chunks/{ai-permission-notice-BRZeS3mT.js.map → ai-permission-notice-DMG1o4Qa.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-CxvnXsAs.js → ai-prompt-input-ucwO-z8g.js} +2 -2
- package/dist/_chunks/{ai-prompt-input-CxvnXsAs.js.map → ai-prompt-input-ucwO-z8g.js.map} +1 -1
- package/dist/_chunks/{alia-sidebar-Dx-oeOV2.js → alia-sidebar-K3gaNH94.js} +7 -7
- package/dist/_chunks/{alia-sidebar-Dx-oeOV2.js.map → alia-sidebar-K3gaNH94.js.map} +1 -1
- package/dist/_chunks/{anamnesis-card-D8Si-2GV.js → anamnesis-card-CPjry4ur.js} +2 -2
- package/dist/_chunks/{anamnesis-card-D8Si-2GV.js.map → anamnesis-card-CPjry4ur.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-rows-CZirLRuv.js → anamnesis-summary-rows-D9LZZHLw.js} +9 -9
- package/dist/_chunks/{anamnesis-summary-rows-CZirLRuv.js.map → anamnesis-summary-rows-D9LZZHLw.js.map} +1 -1
- package/dist/_chunks/{appointment-card-BgLpE6T5.js → appointment-card-DETaIfBb.js} +2 -2
- package/dist/_chunks/{appointment-card-BgLpE6T5.js.map → appointment-card-DETaIfBb.js.map} +1 -1
- package/dist/_chunks/{appointment-peek-Dk11UOVW.js → appointment-peek-B79v56Zc.js} +4 -4
- package/dist/_chunks/{appointment-peek-Dk11UOVW.js.map → appointment-peek-B79v56Zc.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-wQ-PdkFV.js → appointment-timeline-tyJJPgVU.js} +5 -5
- package/dist/_chunks/{appointment-timeline-wQ-PdkFV.js.map → appointment-timeline-tyJJPgVU.js.map} +1 -1
- package/dist/_chunks/{appointment-tray-D7Gt6m8x.js → appointment-tray-Dq4zto_L.js} +4 -4
- package/dist/_chunks/{appointment-tray-D7Gt6m8x.js.map → appointment-tray-Dq4zto_L.js.map} +1 -1
- package/dist/_chunks/{audio-recorder-DZBtAvLH.js → audio-recorder-Ddlp5rVg.js} +3 -3
- package/dist/_chunks/{audio-recorder-DZBtAvLH.js.map → audio-recorder-Ddlp5rVg.js.map} +1 -1
- package/dist/_chunks/{balance-badge-cell-klaxFNL_.js → balance-badge-cell-BCEsdEOe.js} +4 -4
- package/dist/_chunks/{balance-badge-cell-klaxFNL_.js.map → balance-badge-cell-BCEsdEOe.js.map} +1 -1
- package/dist/_chunks/{bishop-score-BMLRvXYF.js → bishop-score-1NAiZh0K.js} +2 -2
- package/dist/_chunks/{bishop-score-BMLRvXYF.js.map → bishop-score-1NAiZh0K.js.map} +1 -1
- package/dist/_chunks/{bmi-calculator-DUhRyyrA.js → bmi-calculator-ZzzPZhhI.js} +2 -2
- package/dist/_chunks/{bmi-calculator-DUhRyyrA.js.map → bmi-calculator-ZzzPZhhI.js.map} +1 -1
- package/dist/_chunks/{booking-Cdzd8kyY.js → booking-DmyX24Ls.js} +5 -5
- package/dist/_chunks/{booking-Cdzd8kyY.js.map → booking-DmyX24Ls.js.map} +1 -1
- package/dist/_chunks/{button-18oBsI3n.js → button-CYPx2xFq.js} +38 -36
- package/dist/_chunks/button-CYPx2xFq.js.map +1 -0
- package/dist/_chunks/{button-group-BSDqso_C.js → button-group-t9RrsCS6.js} +3 -3
- package/dist/_chunks/{button-group-BSDqso_C.js.map → button-group-t9RrsCS6.js.map} +1 -1
- package/dist/_chunks/{calendar-zpE9qTM4.js → calendar-aqzmITxw.js} +543 -508
- package/dist/_chunks/calendar-aqzmITxw.js.map +1 -0
- package/dist/_chunks/{calendar-event-card-DplPh1wv.js → calendar-event-card-DyFSIehr.js} +148 -145
- package/dist/_chunks/{calendar-event-card-DplPh1wv.js.map → calendar-event-card-DyFSIehr.js.map} +1 -1
- package/dist/_chunks/calendar-workspace-BqoPkCUp.js +10597 -0
- package/dist/_chunks/calendar-workspace-BqoPkCUp.js.map +1 -0
- package/dist/_chunks/{care-plan-card-ciBaaguw.js → care-plan-card-amX33mMF.js} +2 -2
- package/dist/_chunks/{care-plan-card-ciBaaguw.js.map → care-plan-card-amX33mMF.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-D7A0whiZ.js → care-plan-entry-card-DNkEucjN.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-D7A0whiZ.js.map → care-plan-entry-card-DNkEucjN.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-DKV1gLqv.js → care-plan-header-CJi853Rf.js} +2 -2
- package/dist/_chunks/{care-plan-header-DKV1gLqv.js.map → care-plan-header-CJi853Rf.js.map} +1 -1
- package/dist/_chunks/{carousel.agent-DqDGR2yH.js → carousel.agent-2EhJsAtl.js} +2 -2
- package/dist/_chunks/{carousel.agent-DqDGR2yH.js.map → carousel.agent-2EhJsAtl.js.map} +1 -1
- package/dist/_chunks/{chart-VjuXDXOZ.js → chart-B2HnwMP5.js} +3 -3
- package/dist/_chunks/{chart-VjuXDXOZ.js.map → chart-B2HnwMP5.js.map} +1 -1
- package/dist/_chunks/{chat-input-BVho_SqP.js → chat-input-CHUsUFOD.js} +2 -2
- package/dist/_chunks/{chat-input-BVho_SqP.js.map → chat-input-CHUsUFOD.js.map} +1 -1
- package/dist/_chunks/{chat-message-B4ihjNy3.js → chat-message-DTcRGhNo.js} +3 -3
- package/dist/_chunks/{chat-message-B4ihjNy3.js.map → chat-message-DTcRGhNo.js.map} +1 -1
- package/dist/_chunks/{code-block-C_eNHWaa.js → code-block-BrwcZNPq.js} +2 -2
- package/dist/_chunks/{code-block-C_eNHWaa.js.map → code-block-BrwcZNPq.js.map} +1 -1
- package/dist/_chunks/{connection-status-Cfux3TvH.js → connection-status-DMheLE65.js} +3 -3
- package/dist/_chunks/{connection-status-Cfux3TvH.js.map → connection-status-DMheLE65.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-Dj4NgBL-.js → contact-profile-card-zQLGGFKG.js} +2 -2
- package/dist/_chunks/{contact-profile-card-Dj4NgBL-.js.map → contact-profile-card-zQLGGFKG.js.map} +1 -1
- package/dist/_chunks/{control-room-rail-DAO0qfOI.js → control-room-rail-5iuM3jcm.js} +3 -3
- package/dist/_chunks/{control-room-rail-DAO0qfOI.js.map → control-room-rail-5iuM3jcm.js.map} +1 -1
- package/dist/_chunks/{copy-field-Cm4y5Bff.js → copy-field-C-KvrgOG.js} +2 -2
- package/dist/_chunks/{copy-field-Cm4y5Bff.js.map → copy-field-C-KvrgOG.js.map} +1 -1
- package/dist/_chunks/{cycle-calculator-B9lBRNiZ.js → cycle-calculator-DQMCeEzn.js} +2 -2
- package/dist/_chunks/{cycle-calculator-B9lBRNiZ.js.map → cycle-calculator-DQMCeEzn.js.map} +1 -1
- package/dist/_chunks/{dashboard-grid-uX7x1ePj.js → dashboard-grid-H7uph3HO.js} +2 -2
- package/dist/_chunks/{dashboard-grid-uX7x1ePj.js.map → dashboard-grid-H7uph3HO.js.map} +1 -1
- package/dist/_chunks/{data-table-CrI3_bjH.js → data-table-C4yPR89K.js} +7 -7
- package/dist/_chunks/{data-table-CrI3_bjH.js.map → data-table-C4yPR89K.js.map} +1 -1
- package/dist/_chunks/{data-table-tabs-CzYYKp2_.js → data-table-tabs-Dd_O1nPY.js} +3 -3
- package/dist/_chunks/{data-table-tabs-CzYYKp2_.js.map → data-table-tabs-Dd_O1nPY.js.map} +1 -1
- package/dist/_chunks/{description-list-1A2DEbE6.js → description-list-DOPu69Jg.js} +2 -2
- package/dist/_chunks/{description-list-1A2DEbE6.js.map → description-list-DOPu69Jg.js.map} +1 -1
- package/dist/_chunks/{document-preview-Od2Hz4z5.js → document-preview-Dzh1YAz8.js} +3 -3
- package/dist/_chunks/{document-preview-Od2Hz4z5.js.map → document-preview-Dzh1YAz8.js.map} +1 -1
- package/dist/_chunks/{document-scanner-p0aGlzCy.js → document-scanner-BSVwMR4V.js} +2 -2
- package/dist/_chunks/{document-scanner-p0aGlzCy.js.map → document-scanner-BSVwMR4V.js.map} +1 -1
- package/dist/_chunks/dropdown-menu-DIzxr_lp.js +594 -0
- package/dist/_chunks/dropdown-menu-DIzxr_lp.js.map +1 -0
- package/dist/_chunks/{due-date-calculator-BVqJaxzd.js → due-date-calculator-DUjw4w5O.js} +2 -2
- package/dist/_chunks/{due-date-calculator-BVqJaxzd.js.map → due-date-calculator-DUjw4w5O.js.map} +1 -1
- package/dist/_chunks/{editable-currency-cell-renderer-D_G2Ap61.js → editable-currency-cell-renderer-Cch3RIJL.js} +3 -3
- package/dist/_chunks/{editable-currency-cell-renderer-D_G2Ap61.js.map → editable-currency-cell-renderer-Cch3RIJL.js.map} +1 -1
- package/dist/_chunks/{editable-description-B4NVdjvd.js → editable-description-CRQib91p.js} +3 -3
- package/dist/_chunks/{editable-description-B4NVdjvd.js.map → editable-description-CRQib91p.js.map} +1 -1
- package/dist/_chunks/{editor-overlay-BDiBvQmL.js → editor-overlay-DsA7vR5C.js} +2 -2
- package/dist/_chunks/{editor-overlay-BDiBvQmL.js.map → editor-overlay-DsA7vR5C.js.map} +1 -1
- package/dist/_chunks/{empty-state-DTBZ1ENT.js → empty-state-Ck1wVWdN.js} +2 -2
- package/dist/_chunks/{empty-state-DTBZ1ENT.js.map → empty-state-Ck1wVWdN.js.map} +1 -1
- package/dist/_chunks/{entity-summary-CFJfBdVP.js → entity-summary-Cvs21xPr.js} +3 -3
- package/dist/_chunks/{entity-summary-CFJfBdVP.js.map → entity-summary-Cvs21xPr.js.map} +1 -1
- package/dist/_chunks/{error-boundary-BxTqEXqj.js → error-boundary-C_HAzVLO.js} +2 -2
- package/dist/_chunks/{error-boundary-BxTqEXqj.js.map → error-boundary-C_HAzVLO.js.map} +1 -1
- package/dist/_chunks/{face-scheme-fku-RShg.js → face-scheme-DVZZTuXT.js} +5 -5
- package/dist/_chunks/{face-scheme-fku-RShg.js.map → face-scheme-DVZZTuXT.js.map} +1 -1
- package/dist/_chunks/{fetal-weight-B69yOS9W.js → fetal-weight-B-lO-948.js} +2 -2
- package/dist/_chunks/{fetal-weight-B69yOS9W.js.map → fetal-weight-B-lO-948.js.map} +1 -1
- package/dist/_chunks/{field-array-lIXrFWS0.js → field-array-B3IDOct8.js} +3 -3
- package/dist/_chunks/{field-array-lIXrFWS0.js.map → field-array-B3IDOct8.js.map} +1 -1
- package/dist/_chunks/{file-manager-C6QQPQV5.js → file-manager-COUb-w8j.js} +7 -7
- package/dist/_chunks/{file-manager-C6QQPQV5.js.map → file-manager-COUb-w8j.js.map} +1 -1
- package/dist/_chunks/{finished-terminal-B2oqXO0Y.js → finished-terminal-BrAWwfOw.js} +2 -2
- package/dist/_chunks/{finished-terminal-B2oqXO0Y.js.map → finished-terminal-BrAWwfOw.js.map} +1 -1
- package/dist/_chunks/{fiscal-code-input-BEF8eKIG.js → fiscal-code-input-CwUwhUZy.js} +2 -2
- package/dist/_chunks/{fiscal-code-input-BEF8eKIG.js.map → fiscal-code-input-CwUwhUZy.js.map} +1 -1
- package/dist/_chunks/floating-action-button-pojvb9gG.js.map +1 -1
- package/dist/_chunks/{freemium-paywall-B6JITu4l.js → freemium-paywall-DiPJrL18.js} +2 -2
- package/dist/_chunks/{freemium-paywall-B6JITu4l.js.map → freemium-paywall-DiPJrL18.js.map} +1 -1
- package/dist/_chunks/{gestational-age-calculator-DsGN6_HS.js → gestational-age-calculator-BVPtrWKf.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-DsGN6_HS.js.map → gestational-age-calculator-BVPtrWKf.js.map} +1 -1
- package/dist/_chunks/{hcg-doubling-D2SH-e7t.js → hcg-doubling-CPktiA3H.js} +2 -2
- package/dist/_chunks/{hcg-doubling-D2SH-e7t.js.map → hcg-doubling-CPktiA3H.js.map} +1 -1
- package/dist/_chunks/{header-CCjp5GvE.js → header-C8NbLgVq.js} +2 -2
- package/dist/_chunks/{header-CCjp5GvE.js.map → header-C8NbLgVq.js.map} +1 -1
- package/dist/_chunks/header-settings-D0M3WNTS.js +305 -0
- package/dist/_chunks/header-settings-D0M3WNTS.js.map +1 -0
- package/dist/_chunks/{help-me-write-templates-DQtT1qs_.js → help-me-write-templates-CYAKuXZ3.js} +5 -5
- package/dist/_chunks/{help-me-write-templates-DQtT1qs_.js.map → help-me-write-templates-CYAKuXZ3.js.map} +1 -1
- package/dist/_chunks/{hover-card-BplP5SzQ.js → hover-card-BM0vNmq4.js} +2 -2
- package/dist/_chunks/{hover-card-BplP5SzQ.js.map → hover-card-BM0vNmq4.js.map} +1 -1
- package/dist/_chunks/{icon-button-CY7GU_Se.js → icon-button-JAXAkqWC.js} +2 -2
- package/dist/_chunks/icon-button-JAXAkqWC.js.map +1 -0
- package/dist/_chunks/{icon-button-group-B_426QN_.js → icon-button-group-ud2BLmxe.js} +3 -3
- package/dist/_chunks/{icon-button-group-B_426QN_.js.map → icon-button-group-ud2BLmxe.js.map} +1 -1
- package/dist/_chunks/{icon-picker-ZLebyB0U.js → icon-picker-B1PwkUHy.js} +3 -3
- package/dist/_chunks/{icon-picker-ZLebyB0U.js.map → icon-picker-B1PwkUHy.js.map} +1 -1
- package/dist/_chunks/{image-cropper-_HiNN79d.js → image-cropper-DM6hpXUw.js} +2 -2
- package/dist/_chunks/{image-cropper-_HiNN79d.js.map → image-cropper-DM6hpXUw.js.map} +1 -1
- package/dist/_chunks/{info-tip-laBxZhKu.js → info-tip-CywkQ1NX.js} +2 -2
- package/dist/_chunks/{info-tip-laBxZhKu.js.map → info-tip-CywkQ1NX.js.map} +1 -1
- package/dist/_chunks/{insert-result-CSuPQyKL.js → insert-result-Fu9AHxR6.js} +2 -2
- package/dist/_chunks/{insert-result-CSuPQyKL.js.map → insert-result-Fu9AHxR6.js.map} +1 -1
- package/dist/_chunks/{key-value-pair-Dcdl3Gni.js → key-value-pair-BL1J3_Km.js} +2 -2
- package/dist/_chunks/{key-value-pair-Dcdl3Gni.js.map → key-value-pair-BL1J3_Km.js.map} +1 -1
- package/dist/_chunks/{kit-extensions-BTJSnM_H.js → kit-extensions-B9Qn6VIc.js} +6 -6
- package/dist/_chunks/{kit-extensions-BTJSnM_H.js.map → kit-extensions-B9Qn6VIc.js.map} +1 -1
- package/dist/_chunks/{link-cell-renderer-CkNbUsBM.js → link-cell-renderer-BcW3F1j9.js} +2 -2
- package/dist/_chunks/{link-cell-renderer-CkNbUsBM.js.map → link-cell-renderer-BcW3F1j9.js.map} +1 -1
- package/dist/_chunks/{locale-picker-DGkQmhV9.js → locale-picker-Z42P8T-i.js} +218 -213
- package/dist/_chunks/locale-picker-Z42P8T-i.js.map +1 -0
- package/dist/_chunks/{map-view-Bb7ClKSF.js → map-view-DxYPJjM9.js} +2 -2
- package/dist/_chunks/{map-view-Bb7ClKSF.js.map → map-view-DxYPJjM9.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-1uKqs4gD.js → marketplace-app-shell-rTTvWRrE.js} +6 -6
- package/dist/_chunks/{marketplace-app-shell-1uKqs4gD.js.map → marketplace-app-shell-rTTvWRrE.js.map} +1 -1
- package/dist/_chunks/{message-card-C2zsvyj0.js → message-card-CUBPPn4Z.js} +3 -3
- package/dist/_chunks/{message-card-C2zsvyj0.js.map → message-card-CUBPPn4Z.js.map} +1 -1
- package/dist/_chunks/{message-tray-CMlmxdH2.js → message-tray-uy3DAIbn.js} +4 -4
- package/dist/_chunks/{message-tray-CMlmxdH2.js.map → message-tray-uy3DAIbn.js.map} +1 -1
- package/dist/_chunks/{muscle-scheme-Co0NIgbU.js → muscle-scheme-CH-vQ7Ch.js} +2 -2
- package/dist/_chunks/{muscle-scheme-Co0NIgbU.js.map → muscle-scheme-CH-vQ7Ch.js.map} +1 -1
- package/dist/_chunks/{notes-panel-xxpFt-I1.js → notes-panel-Dka4Z2M7.js} +4 -4
- package/dist/_chunks/{notes-panel-xxpFt-I1.js.map → notes-panel-Dka4Z2M7.js.map} +1 -1
- package/dist/_chunks/{notification-card-DDzBCi8l.js → notification-card-Hy8w3UWx.js} +3 -3
- package/dist/_chunks/{notification-card-DDzBCi8l.js.map → notification-card-Hy8w3UWx.js.map} +1 -1
- package/dist/_chunks/{notification-tray-PnH2PBlZ.js → notification-tray-VuV3XXB8.js} +4 -4
- package/dist/_chunks/{notification-tray-PnH2PBlZ.js.map → notification-tray-VuV3XXB8.js.map} +1 -1
- package/dist/_chunks/{optical-prescription-DUufWXfZ.js → optical-prescription-C2n6d0HO.js} +2 -2
- package/dist/_chunks/{optical-prescription-DUufWXfZ.js.map → optical-prescription-C2n6d0HO.js.map} +1 -1
- package/dist/_chunks/{panel-subview-CzHutkA8.js → panel-subview-DAY-ToM3.js} +2 -2
- package/dist/_chunks/{panel-subview-CzHutkA8.js.map → panel-subview-DAY-ToM3.js.map} +1 -1
- package/dist/_chunks/{patient-details-tTlvrJSU.js → patient-details-D9sAM3qh.js} +3 -3
- package/dist/_chunks/{patient-details-tTlvrJSU.js.map → patient-details-D9sAM3qh.js.map} +1 -1
- package/dist/_chunks/{patient-field-row-DElFbpKc.js → patient-field-row-CT04C_lZ.js} +277 -257
- package/dist/_chunks/patient-field-row-CT04C_lZ.js.map +1 -0
- package/dist/_chunks/{patient-search-DgXdGkhK.js → patient-search-DkIukAMQ.js} +3 -3
- package/dist/_chunks/{patient-search-DgXdGkhK.js.map → patient-search-DkIukAMQ.js.map} +1 -1
- package/dist/_chunks/{patient-summary-card-DQ__6DR-.js → patient-summary-card-DI0BH-Fe.js} +5 -5
- package/dist/_chunks/{patient-summary-card-DQ__6DR-.js.map → patient-summary-card-DI0BH-Fe.js.map} +1 -1
- package/dist/_chunks/{payment-automation-upsell-ugi4np1l.js → payment-automation-upsell-vQBIyUky.js} +2 -2
- package/dist/_chunks/{payment-automation-upsell-ugi4np1l.js.map → payment-automation-upsell-vQBIyUky.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-DMJB57Tv.js → payment-request-card-BSaJzhxz.js} +3 -3
- package/dist/_chunks/{payment-request-card-DMJB57Tv.js.map → payment-request-card-BSaJzhxz.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-DbGzKDj7.js → periodontal-chart-BcTcOc79.js} +2 -2
- package/dist/_chunks/{periodontal-chart-DbGzKDj7.js.map → periodontal-chart-BcTcOc79.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-card-DvHyP47v.js → periodontal-chart-card-NS_nToBf.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-DvHyP47v.js.map → periodontal-chart-card-NS_nToBf.js.map} +1 -1
- package/dist/_chunks/{popover-Dvb40vPH.js → popover-SASSeAdY.js} +2 -2
- package/dist/_chunks/{popover-Dvb40vPH.js.map → popover-SASSeAdY.js.map} +1 -1
- package/dist/_chunks/{practice-results-EKRiqWtQ.js → practice-results-C3ifcObw.js} +6 -6
- package/dist/_chunks/{practice-results-EKRiqWtQ.js.map → practice-results-C3ifcObw.js.map} +1 -1
- package/dist/_chunks/{pregnancy-dating-lfjjZVZH.js → pregnancy-dating-CpJ3iYvD.js} +2 -2
- package/dist/_chunks/{pregnancy-dating-lfjjZVZH.js.map → pregnancy-dating-CpJ3iYvD.js.map} +1 -1
- package/dist/_chunks/{pregnancy-weight-gain-WpNt-S0q.js → pregnancy-weight-gain-kDOhA2vZ.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-WpNt-S0q.js.map → pregnancy-weight-gain-kDOhA2vZ.js.map} +1 -1
- package/dist/_chunks/{privacy-lock-D6gq0GDg.js → privacy-lock-CEyvNpC8.js} +3 -3
- package/dist/_chunks/{privacy-lock-D6gq0GDg.js.map → privacy-lock-CEyvNpC8.js.map} +1 -1
- package/dist/_chunks/{privacy-mask-BC5lw2zB.js → privacy-mask-TzMlEu3Q.js} +2 -2
- package/dist/_chunks/{privacy-mask-BC5lw2zB.js.map → privacy-mask-TzMlEu3Q.js.map} +1 -1
- package/dist/_chunks/{product-hub-panel-CKeSCSeE.js → product-hub-panel-b70i9Hi1.js} +3 -3
- package/dist/_chunks/{product-hub-panel-CKeSCSeE.js.map → product-hub-panel-b70i9Hi1.js.map} +1 -1
- package/dist/_chunks/{public-header.agent-B9wDmUeB.js → public-header.agent-D0ApOrmx.js} +3 -3
- package/dist/_chunks/{public-header.agent-B9wDmUeB.js.map → public-header.agent-D0ApOrmx.js.map} +1 -1
- package/dist/_chunks/{radiograph-panel.agent-TmyIvTOa.js → radiograph-panel.agent-jhwaIW8U.js} +4 -4
- package/dist/_chunks/{radiograph-panel.agent-TmyIvTOa.js.map → radiograph-panel.agent-jhwaIW8U.js.map} +1 -1
- package/dist/_chunks/resource-chip-DQeCJzJf.js +143 -0
- package/dist/_chunks/resource-chip-DQeCJzJf.js.map +1 -0
- package/dist/_chunks/{reviews-panel-BdwFp_0c.js → reviews-panel-B5QC4FIp.js} +4 -4
- package/dist/_chunks/{reviews-panel-BdwFp_0c.js.map → reviews-panel-B5QC4FIp.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-y6ML0KeV.js → rich-text-editor-DoBXdwmx.js} +930 -943
- package/dist/_chunks/rich-text-editor-DoBXdwmx.js.map +1 -0
- package/dist/_chunks/{session-countdown-ACJyTXH2.js → session-countdown-26XB5u38.js} +2 -2
- package/dist/_chunks/{session-countdown-ACJyTXH2.js.map → session-countdown-26XB5u38.js.map} +1 -1
- package/dist/_chunks/{sheet-D0Lh0KR2.js → sheet-CwhNzxbr.js} +2 -2
- package/dist/_chunks/{sheet-D0Lh0KR2.js.map → sheet-CwhNzxbr.js.map} +1 -1
- package/dist/_chunks/{sign-in-with-alfadocs-button-CDyJAIzW.js → sign-in-with-alfadocs-button-jxbze77L.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-CDyJAIzW.js.map → sign-in-with-alfadocs-button-jxbze77L.js.map} +1 -1
- package/dist/_chunks/{signature-request-BUGeG8oD.js → signature-request-BorHf3CY.js} +4 -4
- package/dist/_chunks/{signature-request-BUGeG8oD.js.map → signature-request-BorHf3CY.js.map} +1 -1
- package/dist/_chunks/{slot-grid-4fWH3Euk.js → slot-grid-xgf2UKLS.js} +4 -4
- package/dist/_chunks/{slot-grid-4fWH3Euk.js.map → slot-grid-xgf2UKLS.js.map} +1 -1
- package/dist/_chunks/social-sign-in-button-dlpPI5l7.js.map +1 -1
- package/dist/_chunks/{streaming-text-eRiizArc.js → streaming-text-Cos2fVTw.js} +2 -2
- package/dist/_chunks/{streaming-text-eRiizArc.js.map → streaming-text-Cos2fVTw.js.map} +1 -1
- package/dist/_chunks/{tab-bar-BHFf6knq.js → tab-bar-BrkMUW0c.js} +2 -2
- package/dist/_chunks/{tab-bar-BHFf6knq.js.map → tab-bar-BrkMUW0c.js.map} +1 -1
- package/dist/_chunks/tabs-tK22Mz7r.js +413 -0
- package/dist/_chunks/tabs-tK22Mz7r.js.map +1 -0
- package/dist/_chunks/{task-card-jaOhnj_q.js → task-card-CLpHmqEY.js} +2 -2
- package/dist/_chunks/{task-card-jaOhnj_q.js.map → task-card-CLpHmqEY.js.map} +1 -1
- package/dist/_chunks/{task-editor-DlvTwAfv.js → task-editor-B4UGsU7l.js} +6 -6
- package/dist/_chunks/{task-editor-DlvTwAfv.js.map → task-editor-B4UGsU7l.js.map} +1 -1
- package/dist/_chunks/{task-tray-HHyxi9ga.js → task-tray-dsmYgjVb.js} +4 -4
- package/dist/_chunks/{task-tray-HHyxi9ga.js.map → task-tray-dsmYgjVb.js.map} +1 -1
- package/dist/_chunks/{tasks-panel-DbSjq_mz.js → tasks-panel-CwwVw491.js} +6 -6
- package/dist/_chunks/{tasks-panel-DbSjq_mz.js.map → tasks-panel-CwwVw491.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-LUBxlNDm.js → theme-toggle-jyoyhbJL.js} +4 -4
- package/dist/_chunks/{theme-toggle-LUBxlNDm.js.map → theme-toggle-jyoyhbJL.js.map} +1 -1
- package/dist/_chunks/{toast-CT8hjr9r.js → toast-FijDyPnv.js} +2 -2
- package/dist/_chunks/{toast-CT8hjr9r.js.map → toast-FijDyPnv.js.map} +1 -1
- package/dist/_chunks/{token-insert-menu-klwbxVKh.js → token-insert-menu-Cjf99IdN.js} +3 -3
- package/dist/_chunks/{token-insert-menu-klwbxVKh.js.map → token-insert-menu-Cjf99IdN.js.map} +1 -1
- package/dist/_chunks/{tool-rail-DEeX4PdN.js → tool-rail-DphMl1hX.js} +2 -2
- package/dist/_chunks/{tool-rail-DEeX4PdN.js.map → tool-rail-DphMl1hX.js.map} +1 -1
- package/dist/_chunks/{tooth-scheme-BkjhkI8g.js → tooth-scheme-BaCJnyg9.js} +663 -718
- package/dist/_chunks/tooth-scheme-BaCJnyg9.js.map +1 -0
- package/dist/_chunks/{unit-converter-Dp_KDxE6.js → unit-converter-CGpOgarU.js} +2 -2
- package/dist/_chunks/{unit-converter-Dp_KDxE6.js.map → unit-converter-CGpOgarU.js.map} +1 -1
- package/dist/_chunks/{use-appointment-details-read-5-hV-2xA.js → use-appointment-details-read-uEnJLVfA.js} +14 -14
- package/dist/_chunks/{use-appointment-details-read-5-hV-2xA.js.map → use-appointment-details-read-uEnJLVfA.js.map} +1 -1
- package/dist/_chunks/wallet-pay-button--dnR6NfJ.js.map +1 -1
- package/dist/_chunks/{warning-stack-CEgYkI1z.js → warning-stack-7Hffm7K1.js} +3 -3
- package/dist/_chunks/{warning-stack-CEgYkI1z.js.map → warning-stack-7Hffm7K1.js.map} +1 -1
- package/dist/_chunks/{workflow-map-qGkQTNvS.js → workflow-map-Jfe9L9Wt.js} +6 -6
- package/dist/_chunks/{workflow-map-qGkQTNvS.js.map → workflow-map-Jfe9L9Wt.js.map} +1 -1
- package/dist/_chunks/{workflow-status-ClHfz4Kr.js → workflow-status-jHfsIDzi.js} +2 -2
- package/dist/_chunks/{workflow-status-ClHfz4Kr.js.map → workflow-status-jHfsIDzi.js.map} +1 -1
- package/dist/agent-catalog.json +103 -38
- package/dist/agent-i18n/en.json +7 -4
- package/dist/components/_shared/entity-card/entity-card.d.ts +1 -1
- package/dist/components/_shared/field-visibility-cog.d.ts.map +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/anamnesis-summary-card.d.ts +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/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 +11 -0
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/icon-button.d.ts +4 -0
- package/dist/components/button/icon-button.d.ts.map +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts +11 -3
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/calendar-event-card.d.ts +6 -0
- package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +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/chart.d.ts +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/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +52 -2
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.d.ts +1 -1
- package/dist/components/dropdown-menu/index.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +1 -1
- 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/floating-action-button/floating-action-button.d.ts.map +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/header-settings.d.ts +3 -3
- package/dist/components/header-settings/header-settings.d.ts.map +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/locale-picker/locale-picker.d.ts +7 -0
- package/dist/components/locale-picker/locale-picker.d.ts.map +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/muscle-scheme/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/operator-hero/operator-hero.d.ts +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-details/patient-details.d.ts +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-summary-card/patient-summary-card.d.ts +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/resource-chip/index.d.ts +1 -1
- package/dist/components/resource-chip/index.d.ts.map +1 -1
- package/dist/components/resource-chip/index.js +3 -2
- package/dist/components/resource-chip/resource-chip.d.ts +20 -0
- package/dist/components/resource-chip/resource-chip.d.ts.map +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
- package/dist/components/rich-text-editor/index.js +2 -2
- 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-scheme/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/social-sign-in-button/social-sign-in-button.d.ts.map +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/tabs/tabs.d.ts.map +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-editor/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/tooth-scheme/tooth-scheme.d.ts +2 -2
- package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/wallet-pay-button/wallet-pay-button.d.ts.map +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/components/workflow/workflow-card.d.ts +1 -1
- package/dist/components/workflow-status/index.js +1 -1
- package/dist/i18n/locales/ar.d.ts +5 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +5 -0
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +5 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +5 -0
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +5 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +5 -0
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +5 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +5 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +5 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +5 -0
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +5 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +5 -0
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +5 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +5 -0
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +5 -0
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +5 -0
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +5 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +5 -0
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +5 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +5 -0
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +5 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +5 -0
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +5 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +5 -0
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +5 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +5 -0
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +5 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +5 -0
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +5 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +5 -0
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +5 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +5 -0
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +5 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +5 -0
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +5 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +5 -0
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +478 -477
- package/dist/locales/ar.json +5 -0
- package/dist/locales/de.json +5 -0
- package/dist/locales/el.json +5 -0
- package/dist/locales/en.json +5 -0
- package/dist/locales/es.json +5 -0
- package/dist/locales/fr.json +5 -0
- package/dist/locales/hi.json +5 -0
- package/dist/locales/it.json +5 -0
- package/dist/locales/ja.json +5 -0
- package/dist/locales/nl.json +5 -0
- package/dist/locales/pl.json +5 -0
- package/dist/locales/pt.json +5 -0
- package/dist/locales/ro.json +5 -0
- package/dist/locales/ru.json +5 -0
- package/dist/locales/sq.json +5 -0
- package/dist/locales/sv.json +5 -0
- package/dist/locales/tr.json +5 -0
- package/dist/locales/zh.json +5 -0
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.surface.d.ts +4 -1
- package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
- 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 +2 -1
- package/package.json +1 -1
- package/dist/_chunks/button-18oBsI3n.js.map +0 -1
- package/dist/_chunks/calendar-workspace-CWRH4x15.js +0 -10577
- package/dist/_chunks/calendar-workspace-CWRH4x15.js.map +0 -1
- package/dist/_chunks/calendar-zpE9qTM4.js.map +0 -1
- package/dist/_chunks/dropdown-menu-C8PaW3lR.js +0 -369
- package/dist/_chunks/dropdown-menu-C8PaW3lR.js.map +0 -1
- package/dist/_chunks/header-settings-ZXa6hXuu.js +0 -335
- package/dist/_chunks/header-settings-ZXa6hXuu.js.map +0 -1
- package/dist/_chunks/icon-button-CY7GU_Se.js.map +0 -1
- package/dist/_chunks/locale-picker-DGkQmhV9.js.map +0 -1
- package/dist/_chunks/patient-field-row-DElFbpKc.js.map +0 -1
- package/dist/_chunks/resource-chip-DYTG0IQQ.js +0 -83
- package/dist/_chunks/resource-chip-DYTG0IQQ.js.map +0 -1
- package/dist/_chunks/rich-text-editor-y6ML0KeV.js.map +0 -1
- package/dist/_chunks/tabs-CFsuMQ5H.js +0 -409
- package/dist/_chunks/tabs-CFsuMQ5H.js.map +0 -1
- package/dist/_chunks/tooth-scheme-BkjhkI8g.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-status-ClHfz4Kr.js","sources":["../../src/components/workflow-status/workflow-status.agent.ts","../../src/components/workflow-status/workflow-status.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WorkflowStatusControlHandle } from './workflow-status';\n\nexport const workflowStatusAgent: AgentAdapter<WorkflowStatusControlHandle> = {\n id: 'workflow-status',\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.workflowStatus.state.value',\n description: 'The current non-sensitive workflow status key.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isOpen',\n description: 'Whether the permitted workflow status list is open.',\n read: (handle) => handle.getIsOpen(),\n },\n isSaving: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isSaving',\n description: 'Whether the host is saving a workflow status change.',\n read: (handle) => handle.getIsSaving(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: 'string',\n description: 'Permitted workflow status key to select.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n openWorld: true,\n errors: [\n 'The status is not in the host-provided transition list.',\n 'The status is disabled.',\n 'A status change is already being saved.',\n 'The host rejected the change. The previous status stays and the error is shown.',\n ],\n examples: [{ args: { value: 'review' } }],\n descriptionKey: 'ui.agent.workflowStatus.actions.setValue',\n description:\n 'Request a permitted workflow status through the host-owned change callback.',\n invoke: (handle, args: { value: string }) => handle.setValue(args.value),\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.open',\n description: 'Open the permitted workflow status list.',\n invoke: (handle) => handle.open(),\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.close',\n description: 'Close the workflow status list.',\n invoke: (handle) => handle.close(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'workflow-status',\n description: 'Marks the WorkflowStatus boundary.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Non-sensitive workflow status key for a permitted option.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { AlertCircle, ChevronDown, LoaderCircle } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { getErrorMessage } from '../_shared/get-error-message';\nimport { handledRejection } from '../_shared/handled-rejection';\nimport { INPUT_SURFACE_HEIGHT } from '../_shared/input-surface';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { workflowStatusAgent } from './workflow-status.agent';\n\nexport type WorkflowStatusTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'accent';\n\nexport type WorkflowStatusSize = 'sm' | 'md' | 'lg';\n\nexport interface WorkflowStatusOption {\n value: string;\n label: string;\n icon: ReactNode;\n tone: WorkflowStatusTone;\n disabled?: boolean;\n}\n\nconst rootVariants = cva(\n 'ds:inline-flex ds:max-w-full ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]',\n {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst surfaceVariants = cva(\n [\n 'ds:group/workflow-status ds:inline-grid ds:max-w-full ds:w-fit ds:items-center',\n 'ds:overflow-hidden ds:text-start',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:bg-transparent ds:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n md: `${INPUT_SURFACE_HEIGHT.md} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-md)]`,\n },\n interactive: {\n true: [\n 'ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:appearance-none ds:cursor-pointer',\n 'ds:hover:enabled:bg-muted/10 ds:active:enabled:bg-muted/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:data-[open]:bg-muted/20 ds:data-[open]:border-[color:var(--primary)]',\n 'ds:forced-colors:data-[open]:border-[Highlight]',\n ].join(' '),\n false: 'ds:grid-cols-[auto_minmax(0,1fr)] ds:cursor-default',\n },\n operation: {\n idle: '',\n disabled: 'ds:cursor-not-allowed ds:opacity-50',\n saving: 'ds:cursor-wait ds:border-[color:var(--info-foreground)]',\n error: 'ds:border-[color:var(--error-foreground)]',\n },\n },\n defaultVariants: {\n size: 'md',\n interactive: false,\n operation: 'idle',\n },\n },\n);\n\nconst iconVariants = cva(\n [\n 'ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:rounded-[var(--radius-full)] ds:border ds:[&>svg]:block',\n 'ds:forced-colors:bg-transparent ds:forced-colors:border-[CanvasText]',\n // On a lit menu row every tone shows as an outline in the row's ink.\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:bg-transparent',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:text-[color:var(--accent-foreground)]',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:border-[color:var(--accent-foreground)]',\n ].join(' '),\n {\n variants: {\n tone: {\n neutral:\n 'ds:bg-muted ds:text-muted-foreground ds:border-[color:var(--border)]',\n info: 'ds:bg-info/15 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]',\n success:\n 'ds:bg-success/15 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]',\n warning:\n 'ds:bg-warning/15 ds:text-[color:var(--warning-foreground)] ds:border-[color:var(--warning-foreground)]',\n error:\n 'ds:bg-destructive/15 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]',\n accent:\n 'ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]',\n },\n /* The ball is a SETTING for the glyph, not a container it fills: at\n the old 24px/16px the icon took two thirds of the circle and the two\n read as one crowded blob. Each step is smaller overall and gives the\n glyph roughly half its diameter, so the ring stays legible as a ring\n and the status colour has room to register. */\n size: {\n sm: 'ds:size-5 ds:[&>svg]:size-3',\n md: 'ds:size-[var(--spacing-lg)] ds:[&>svg]:size-3.5',\n lg: 'ds:size-7 ds:[&>svg]:size-[var(--icon-size-sm)]',\n menu: 'ds:size-5 ds:[&>svg]:size-3',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'md' },\n },\n);\n\nconst labelGroupVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:justify-center ds:text-start',\n {\n variants: {\n size: {\n sm: 'ds:gap-0',\n md: 'ds:gap-0',\n lg: 'ds:gap-0',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst valueVariants = cva(\n 'ds:block ds:min-w-0 ds:truncate ds:font-[var(--font-weight-semibold)] ds:text-[color:var(--foreground)]',\n {\n variants: {\n size: {\n sm: 'type-body-sm',\n md: 'type-label',\n lg: 'type-body',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst trailingVariants = cva(\n [\n 'ds:inline-flex ds:self-stretch ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-2xs)] ds:border-s ds:border-border',\n 'ds:text-[color:var(--muted-foreground)]',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-xs)]',\n md: 'ds:ps-[var(--spacing-sm)]',\n lg: 'ds:ps-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst errorVariants = cva(\n [\n 'ds:flex ds:max-w-full ds:items-start ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:text-[color:var(--error-foreground)]',\n 'ds:[&>svg]:mt-[var(--spacing-2xs)] ds:[&>svg]:size-[var(--spacing-md)] ds:[&>svg]:shrink-0',\n 'ds:forced-colors:text-[CanvasText]',\n ].join(' '),\n);\n\ninterface WorkflowStatusSurfaceProps extends Pick<\n VariantProps<typeof surfaceVariants>,\n 'size'\n> {\n option: WorkflowStatusOption;\n workflowLabel: string;\n interactive: boolean;\n operation?: 'idle' | 'disabled' | 'saving' | 'error';\n error: boolean;\n}\n\nfunction WorkflowStatusSurface({\n option,\n workflowLabel,\n size = 'md',\n interactive,\n operation = 'idle',\n error,\n}: WorkflowStatusSurfaceProps) {\n return (\n <>\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({ tone: option.tone, size })}\n >\n {option.icon}\n </span>\n <span className={labelGroupVariants({ size })}>\n {size !== 'sm' ? (\n <span className=\"type-meta ds:font-[var(--font-weight-medium)] ds:text-[color:var(--muted-foreground)]\">\n {workflowLabel}\n </span>\n ) : null}\n <span\n data-workflow-status-value=\"\"\n title={option.label}\n className={valueVariants({ size })}\n >\n {option.label}\n </span>\n </span>\n {interactive ? (\n <span className={trailingVariants({ size })} aria-hidden=\"true\">\n {error ? (\n <AlertCircle\n data-testid=\"workflow-status-error-icon\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0\"\n />\n ) : null}\n {operation === 'saving' ? (\n <LoaderCircle className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:animate-spin ds:motion-reduce:animate-none\" />\n ) : (\n <ChevronDown\n data-testid=\"workflow-status-chevron\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none ds:group-data-[open]/workflow-status:rotate-180\"\n />\n )}\n </span>\n ) : null}\n </>\n );\n}\n\nexport interface WorkflowStatusDisplayProps {\n value: string;\n option: WorkflowStatusOption;\n size?: WorkflowStatusSize;\n workflowLabel?: string;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport const WorkflowStatusDisplay = forwardRef<\n HTMLDivElement,\n WorkflowStatusDisplayProps\n>(function WorkflowStatusDisplay(\n { value, option, size = 'md', workflowLabel, id, className, dir },\n ref,\n) {\n const { t } = useTranslation();\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n\n return (\n <div\n ref={ref}\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"display\"\n className={rootVariants({ size, className })}\n >\n <div className={surfaceVariants({ size, interactive: false })}>\n <WorkflowStatusSurface\n option={option}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive={false}\n error={false}\n />\n </div>\n </div>\n );\n});\n\nWorkflowStatusDisplay.displayName = 'WorkflowStatusDisplay';\n\nexport interface WorkflowStatusControlHandle {\n getValue: () => string;\n getIsOpen: () => boolean;\n /** True while the host's `saving` is set or a returned promise is pending. */\n getIsSaving: () => boolean;\n /** Returns the host's promise, already marked handled, so a caller may\n * await a rejection without raising an unhandled-rejection warning. */\n setValue: (value: string) => void | Promise<void>;\n open: () => void;\n close: () => void;\n focus: () => void;\n}\n\nexport interface WorkflowStatusControlProps {\n value: string;\n options: readonly WorkflowStatusOption[];\n /**\n * Called with the status the person picked. Update `value` only once the\n * change is saved.\n *\n * Return a promise to let the control track the save, and resolve it only\n * once `value` shows the saved status. While it is pending the control\n * shows its saving state (spinner, aria-busy, locked). If it rejects, or\n * the callback throws, the control keeps showing `value` and shows the\n * error.\n *\n * The contract: reject, or throw, only with an `Error` whose message is\n * already translated and written for the person. The control shows that\n * message word for word and never translates or filters it, so a raw\n * network or server message, or a bug's own text, reaches the person as\n * it is. Catch every failure and reject with your own translated message.\n * A failure with no message shows the control's own translated default.\n *\n * The error clears on the next change, or when `value` moves to another\n * status. A host that changed `value` before the save finished must set\n * it back itself before rejecting.\n *\n * The pending save and its error belong to this instance. A host that\n * reuses one control for another record must remount it with\n * `key={recordId}`.\n */\n onValueChange: (value: string) => void | Promise<void>;\n size?: WorkflowStatusSize;\n disabled?: boolean;\n /** Host-driven saving flag. Not needed when `onValueChange` returns a\n * promise; the two combine. */\n saving?: boolean;\n /** Host-driven failed state. Shows the default message unless\n * `errorMessage` is set. */\n error?: boolean;\n /** Translated failure text. Setting it shows the alert at once, so set it\n * only while a save has failed. It wins over a rejection's own message;\n * to word a rejection, reject with a translated Error instead. */\n errorMessage?: string;\n workflowLabel?: string;\n menuLabel?: string;\n savingLabel?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\nexport const WorkflowStatusControl = forwardRef<\n WorkflowStatusControlHandle,\n WorkflowStatusControlProps\n>(function WorkflowStatusControl(\n {\n value,\n options,\n onValueChange,\n size = 'md',\n disabled = false,\n saving = false,\n error = false,\n errorMessage,\n workflowLabel,\n menuLabel,\n savingLabel,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n id,\n className,\n dir,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n },\n ref,\n) {\n const { t } = useTranslation();\n const generatedErrorId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n /* A save the control tracks itself, from a promise `onValueChange`\n returned. The ref blocks a second change in the same tick; the state\n paints it. */\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n /* `from` is the status shown when the failed attempt started. */\n const [failure, setFailure] = useState<Failure | null>(null);\n /* A new `value` from the host makes a failure stale, unless it is the\n host putting back the status the attempt started from. */\n const [seenValue, setSeenValue] = useState(value);\n if (seenValue !== value) {\n setSeenValue(value);\n if (failure && failure.from !== value) setFailure(null);\n }\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n const currentOption = options.find((option) => option.value === value);\n\n if (!currentOption) {\n throw new Error(\n `WorkflowStatusControl requires an option matching value \"${value}\".`,\n );\n }\n\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n const resolvedMenuLabel =\n menuLabel ?? t('workflowStatus.menuLabel', 'Workflow statuses');\n const resolvedSavingLabel =\n savingLabel ?? t('workflowStatus.saving', 'Saving workflow status');\n const defaultErrorMessage = t(\n 'workflowStatus.saveFailed',\n 'Could not change workflow status. The previous status is still shown.',\n );\n const resolvedErrorMessage =\n errorMessage ??\n (failure\n ? getErrorMessage(failure.reason, defaultErrorMessage)\n : defaultErrorMessage);\n const resolvedAriaLabel =\n ariaLabel ??\n t('workflowStatus.changeLabel', 'Change workflow status: {{status}}', {\n status: currentOption.label,\n });\n const hasError = error || Boolean(errorMessage) || failure !== null;\n const isSaving = saving || pending;\n const inactive = disabled || isSaving;\n const errorId = id ? `${id}-error` : generatedErrorId;\n const describedBy =\n [ariaDescribedBy, hasError ? errorId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const operation = isSaving\n ? 'saving'\n : disabled\n ? 'disabled'\n : hasError\n ? 'error'\n : 'idle';\n const [openValue, setOpen] = useControllableState<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n const isOpen = Boolean(openValue) && !inactive;\n\n /* A browser drops focus to the body when the focused trigger is disabled\n for a save. After a menu pick, put it back once the save settles, but\n only if nothing else has taken focus meanwhile. */\n const refocusAfterSaveRef = useRef(false);\n useIsomorphicLayoutEffect(() => {\n if (isSaving || !refocusAfterSaveRef.current) return;\n refocusAfterSaveRef.current = false;\n const trigger = triggerRef.current;\n const active = trigger?.ownerDocument.activeElement;\n if (trigger && (!active || active === trigger.ownerDocument.body)) {\n trigger.focus();\n }\n });\n\n const changeValue = useCallback(\n (next: string): void | Promise<void> => {\n /* The ref, not the rendered `pending`: a caller that awaited the last\n save may act before React re-renders this handle. */\n if (disabled || saving || pendingRef.current || next === value) return;\n const nextOption = options.find((option) => option.value === next);\n if (!nextOption || nextOption.disabled) return;\n setFailure(null);\n const from = value;\n let result: void | Promise<void>;\n try {\n result = onValueChange(next);\n } catch (reason) {\n setFailure({ reason, from });\n return handledRejection(reason);\n }\n if (!isThenable(result)) return result;\n pendingRef.current = true;\n setPending(true);\n const settle = (failed: Failure | null) => {\n pendingRef.current = false;\n if (!mountedRef.current) return;\n setPending(false);\n if (failed) setFailure(failed);\n };\n const saved = Promise.resolve(result).then(\n () => settle(null),\n (reason: unknown) => {\n settle({ reason, from });\n throw reason;\n },\n );\n /* A menu pick ignores the result; an agent may await it. */\n saved.catch(() => undefined);\n return saved;\n },\n [disabled, onValueChange, options, saving, value],\n );\n\n const handle = useMemo<WorkflowStatusControlHandle>(\n () => ({\n getValue: () => value,\n getIsOpen: () => isOpen,\n getIsSaving: () => isSaving,\n setValue: changeValue,\n open: () => {\n if (!inactive) setOpen(true);\n },\n close: () => setOpen(false),\n focus: () => triggerRef.current?.focus(),\n }),\n [changeValue, inactive, isOpen, isSaving, setOpen, value],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(workflowStatusAgent, handle, id);\n\n return (\n <div\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"control\"\n data-saving={isSaving ? '' : undefined}\n data-error={hasError ? '' : undefined}\n className={rootVariants({ size, className })}\n >\n <DropdownMenu.Root\n dir={dir}\n open={isOpen}\n onOpenChange={(next) => {\n if (next && inactive) return;\n if (next) refocusAfterSaveRef.current = false;\n setOpen(next);\n }}\n >\n <DropdownMenu.Trigger asChild>\n <button\n ref={triggerRef}\n id={id ? `${id}-trigger` : undefined}\n type=\"button\"\n disabled={inactive}\n aria-label={resolvedAriaLabel}\n aria-describedby={describedBy}\n aria-busy={isSaving}\n data-open={isOpen ? '' : undefined}\n className={surfaceVariants({\n size,\n interactive: true,\n operation,\n })}\n >\n <WorkflowStatusSurface\n option={currentOption}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive\n operation={operation}\n error={hasError}\n />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>{resolvedMenuLabel}</DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={value}\n onValueChange={(next) => {\n // Close explicitly. `isOpen` is derived (`openValue &&\n // !inactive`), so a caller flipping `saving` in this same\n // event already controls the Root to `open={false}`, and\n // Radix swallows its own `onOpenChange` when the value\n // matches. `openValue` would stay true and the menu would\n // spring back once `saving` cleared.\n setOpen(false);\n triggerRef.current?.focus();\n refocusAfterSaveRef.current = true;\n void changeValue(next);\n }}\n >\n {options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={inactive || option.disabled}\n data-option-id={option.value}\n >\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({\n tone: option.tone,\n size: 'menu',\n })}\n >\n {option.icon}\n </span>\n <span className=\"ds:min-w-0 ds:truncate\" title={option.label}>\n {option.label}\n </span>\n </span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n >\n {isSaving ? resolvedSavingLabel : ''}\n </span>\n {hasError ? (\n <div id={errorId} role=\"alert\" className={errorVariants()}>\n <AlertCircle aria-hidden=\"true\" />\n <span>{resolvedErrorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n});\n\nWorkflowStatusControl.displayName = 'WorkflowStatusControl';\n\ninterface Failure {\n reason: unknown;\n from: string;\n}\n\nfunction isThenable(value: unknown): value is PromiseLike<void> {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { then?: unknown }).then === 'function'\n );\n}\n"],"names":["workflowStatusAgent","handle","args","rootVariants","cva","surfaceVariants","INPUT_SURFACE_HEIGHT","iconVariants","labelGroupVariants","valueVariants","trailingVariants","errorVariants","WorkflowStatusSurface","option","workflowLabel","size","interactive","operation","error","jsxs","Fragment","jsx","AlertCircle","LoaderCircle","ChevronDown","WorkflowStatusDisplay","forwardRef","value","id","className","dir","ref","t","useTranslation","resolvedWorkflowLabel","WorkflowStatusControl","options","onValueChange","disabled","saving","errorMessage","menuLabel","savingLabel","openProp","defaultOpen","onOpenChange","ariaLabel","ariaDescribedBy","generatedErrorId","useId","triggerRef","useRef","pendingRef","pending","setPending","useState","failure","setFailure","seenValue","setSeenValue","mountedRef","useEffect","currentOption","resolvedMenuLabel","resolvedSavingLabel","defaultErrorMessage","resolvedErrorMessage","getErrorMessage","resolvedAriaLabel","hasError","isSaving","inactive","errorId","describedBy","openValue","setOpen","useControllableState","isOpen","refocusAfterSaveRef","useIsomorphicLayoutEffect","trigger","active","changeValue","useCallback","next","nextOption","from","result","reason","handledRejection","isThenable","settle","failed","saved","useMemo","_a","useImperativeHandle","useAgentRegistration","DropdownMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-status-jHfsIDzi.js","sources":["../../src/components/workflow-status/workflow-status.agent.ts","../../src/components/workflow-status/workflow-status.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WorkflowStatusControlHandle } from './workflow-status';\n\nexport const workflowStatusAgent: AgentAdapter<WorkflowStatusControlHandle> = {\n id: 'workflow-status',\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.workflowStatus.state.value',\n description: 'The current non-sensitive workflow status key.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isOpen',\n description: 'Whether the permitted workflow status list is open.',\n read: (handle) => handle.getIsOpen(),\n },\n isSaving: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isSaving',\n description: 'Whether the host is saving a workflow status change.',\n read: (handle) => handle.getIsSaving(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: 'string',\n description: 'Permitted workflow status key to select.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n openWorld: true,\n errors: [\n 'The status is not in the host-provided transition list.',\n 'The status is disabled.',\n 'A status change is already being saved.',\n 'The host rejected the change. The previous status stays and the error is shown.',\n ],\n examples: [{ args: { value: 'review' } }],\n descriptionKey: 'ui.agent.workflowStatus.actions.setValue',\n description:\n 'Request a permitted workflow status through the host-owned change callback.',\n invoke: (handle, args: { value: string }) => handle.setValue(args.value),\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.open',\n description: 'Open the permitted workflow status list.',\n invoke: (handle) => handle.open(),\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.close',\n description: 'Close the workflow status list.',\n invoke: (handle) => handle.close(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'workflow-status',\n description: 'Marks the WorkflowStatus boundary.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Non-sensitive workflow status key for a permitted option.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { AlertCircle, ChevronDown, LoaderCircle } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { getErrorMessage } from '../_shared/get-error-message';\nimport { handledRejection } from '../_shared/handled-rejection';\nimport { INPUT_SURFACE_HEIGHT } from '../_shared/input-surface';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { workflowStatusAgent } from './workflow-status.agent';\n\nexport type WorkflowStatusTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'accent';\n\nexport type WorkflowStatusSize = 'sm' | 'md' | 'lg';\n\nexport interface WorkflowStatusOption {\n value: string;\n label: string;\n icon: ReactNode;\n tone: WorkflowStatusTone;\n disabled?: boolean;\n}\n\nconst rootVariants = cva(\n 'ds:inline-flex ds:max-w-full ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]',\n {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst surfaceVariants = cva(\n [\n 'ds:group/workflow-status ds:inline-grid ds:max-w-full ds:w-fit ds:items-center',\n 'ds:overflow-hidden ds:text-start',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:bg-transparent ds:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n md: `${INPUT_SURFACE_HEIGHT.md} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-md)]`,\n },\n interactive: {\n true: [\n 'ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:appearance-none ds:cursor-pointer',\n 'ds:hover:enabled:bg-muted/10 ds:active:enabled:bg-muted/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:data-[open]:bg-muted/20 ds:data-[open]:border-[color:var(--primary)]',\n 'ds:forced-colors:data-[open]:border-[Highlight]',\n ].join(' '),\n false: 'ds:grid-cols-[auto_minmax(0,1fr)] ds:cursor-default',\n },\n operation: {\n idle: '',\n disabled: 'ds:cursor-not-allowed ds:opacity-50',\n saving: 'ds:cursor-wait ds:border-[color:var(--info-foreground)]',\n error: 'ds:border-[color:var(--error-foreground)]',\n },\n },\n defaultVariants: {\n size: 'md',\n interactive: false,\n operation: 'idle',\n },\n },\n);\n\nconst iconVariants = cva(\n [\n 'ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:rounded-[var(--radius-full)] ds:border ds:[&>svg]:block',\n 'ds:forced-colors:bg-transparent ds:forced-colors:border-[CanvasText]',\n // On a lit menu row every tone shows as an outline in the row's ink.\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:bg-transparent',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:text-[color:var(--accent-foreground)]',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:border-[color:var(--accent-foreground)]',\n ].join(' '),\n {\n variants: {\n tone: {\n neutral:\n 'ds:bg-muted ds:text-muted-foreground ds:border-[color:var(--border)]',\n info: 'ds:bg-info/15 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]',\n success:\n 'ds:bg-success/15 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]',\n warning:\n 'ds:bg-warning/15 ds:text-[color:var(--warning-foreground)] ds:border-[color:var(--warning-foreground)]',\n error:\n 'ds:bg-destructive/15 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]',\n accent:\n 'ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]',\n },\n /* The ball is a SETTING for the glyph, not a container it fills: at\n the old 24px/16px the icon took two thirds of the circle and the two\n read as one crowded blob. Each step is smaller overall and gives the\n glyph roughly half its diameter, so the ring stays legible as a ring\n and the status colour has room to register. */\n size: {\n sm: 'ds:size-5 ds:[&>svg]:size-3',\n md: 'ds:size-[var(--spacing-lg)] ds:[&>svg]:size-3.5',\n lg: 'ds:size-7 ds:[&>svg]:size-[var(--icon-size-sm)]',\n menu: 'ds:size-5 ds:[&>svg]:size-3',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'md' },\n },\n);\n\nconst labelGroupVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:justify-center ds:text-start',\n {\n variants: {\n size: {\n sm: 'ds:gap-0',\n md: 'ds:gap-0',\n lg: 'ds:gap-0',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst valueVariants = cva(\n 'ds:block ds:min-w-0 ds:truncate ds:font-[var(--font-weight-semibold)] ds:text-[color:var(--foreground)]',\n {\n variants: {\n size: {\n sm: 'type-body-sm',\n md: 'type-label',\n lg: 'type-body',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst trailingVariants = cva(\n [\n 'ds:inline-flex ds:self-stretch ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-2xs)] ds:border-s ds:border-border',\n 'ds:text-[color:var(--muted-foreground)]',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-xs)]',\n md: 'ds:ps-[var(--spacing-sm)]',\n lg: 'ds:ps-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst errorVariants = cva(\n [\n 'ds:flex ds:max-w-full ds:items-start ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:text-[color:var(--error-foreground)]',\n 'ds:[&>svg]:mt-[var(--spacing-2xs)] ds:[&>svg]:size-[var(--spacing-md)] ds:[&>svg]:shrink-0',\n 'ds:forced-colors:text-[CanvasText]',\n ].join(' '),\n);\n\ninterface WorkflowStatusSurfaceProps extends Pick<\n VariantProps<typeof surfaceVariants>,\n 'size'\n> {\n option: WorkflowStatusOption;\n workflowLabel: string;\n interactive: boolean;\n operation?: 'idle' | 'disabled' | 'saving' | 'error';\n error: boolean;\n}\n\nfunction WorkflowStatusSurface({\n option,\n workflowLabel,\n size = 'md',\n interactive,\n operation = 'idle',\n error,\n}: WorkflowStatusSurfaceProps) {\n return (\n <>\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({ tone: option.tone, size })}\n >\n {option.icon}\n </span>\n <span className={labelGroupVariants({ size })}>\n {size !== 'sm' ? (\n <span className=\"type-meta ds:font-[var(--font-weight-medium)] ds:text-[color:var(--muted-foreground)]\">\n {workflowLabel}\n </span>\n ) : null}\n <span\n data-workflow-status-value=\"\"\n title={option.label}\n className={valueVariants({ size })}\n >\n {option.label}\n </span>\n </span>\n {interactive ? (\n <span className={trailingVariants({ size })} aria-hidden=\"true\">\n {error ? (\n <AlertCircle\n data-testid=\"workflow-status-error-icon\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0\"\n />\n ) : null}\n {operation === 'saving' ? (\n <LoaderCircle className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:animate-spin ds:motion-reduce:animate-none\" />\n ) : (\n <ChevronDown\n data-testid=\"workflow-status-chevron\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none ds:group-data-[open]/workflow-status:rotate-180\"\n />\n )}\n </span>\n ) : null}\n </>\n );\n}\n\nexport interface WorkflowStatusDisplayProps {\n value: string;\n option: WorkflowStatusOption;\n size?: WorkflowStatusSize;\n workflowLabel?: string;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport const WorkflowStatusDisplay = forwardRef<\n HTMLDivElement,\n WorkflowStatusDisplayProps\n>(function WorkflowStatusDisplay(\n { value, option, size = 'md', workflowLabel, id, className, dir },\n ref,\n) {\n const { t } = useTranslation();\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n\n return (\n <div\n ref={ref}\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"display\"\n className={rootVariants({ size, className })}\n >\n <div className={surfaceVariants({ size, interactive: false })}>\n <WorkflowStatusSurface\n option={option}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive={false}\n error={false}\n />\n </div>\n </div>\n );\n});\n\nWorkflowStatusDisplay.displayName = 'WorkflowStatusDisplay';\n\nexport interface WorkflowStatusControlHandle {\n getValue: () => string;\n getIsOpen: () => boolean;\n /** True while the host's `saving` is set or a returned promise is pending. */\n getIsSaving: () => boolean;\n /** Returns the host's promise, already marked handled, so a caller may\n * await a rejection without raising an unhandled-rejection warning. */\n setValue: (value: string) => void | Promise<void>;\n open: () => void;\n close: () => void;\n focus: () => void;\n}\n\nexport interface WorkflowStatusControlProps {\n value: string;\n options: readonly WorkflowStatusOption[];\n /**\n * Called with the status the person picked. Update `value` only once the\n * change is saved.\n *\n * Return a promise to let the control track the save, and resolve it only\n * once `value` shows the saved status. While it is pending the control\n * shows its saving state (spinner, aria-busy, locked). If it rejects, or\n * the callback throws, the control keeps showing `value` and shows the\n * error.\n *\n * The contract: reject, or throw, only with an `Error` whose message is\n * already translated and written for the person. The control shows that\n * message word for word and never translates or filters it, so a raw\n * network or server message, or a bug's own text, reaches the person as\n * it is. Catch every failure and reject with your own translated message.\n * A failure with no message shows the control's own translated default.\n *\n * The error clears on the next change, or when `value` moves to another\n * status. A host that changed `value` before the save finished must set\n * it back itself before rejecting.\n *\n * The pending save and its error belong to this instance. A host that\n * reuses one control for another record must remount it with\n * `key={recordId}`.\n */\n onValueChange: (value: string) => void | Promise<void>;\n size?: WorkflowStatusSize;\n disabled?: boolean;\n /** Host-driven saving flag. Not needed when `onValueChange` returns a\n * promise; the two combine. */\n saving?: boolean;\n /** Host-driven failed state. Shows the default message unless\n * `errorMessage` is set. */\n error?: boolean;\n /** Translated failure text. Setting it shows the alert at once, so set it\n * only while a save has failed. It wins over a rejection's own message;\n * to word a rejection, reject with a translated Error instead. */\n errorMessage?: string;\n workflowLabel?: string;\n menuLabel?: string;\n savingLabel?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\nexport const WorkflowStatusControl = forwardRef<\n WorkflowStatusControlHandle,\n WorkflowStatusControlProps\n>(function WorkflowStatusControl(\n {\n value,\n options,\n onValueChange,\n size = 'md',\n disabled = false,\n saving = false,\n error = false,\n errorMessage,\n workflowLabel,\n menuLabel,\n savingLabel,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n id,\n className,\n dir,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n },\n ref,\n) {\n const { t } = useTranslation();\n const generatedErrorId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n /* A save the control tracks itself, from a promise `onValueChange`\n returned. The ref blocks a second change in the same tick; the state\n paints it. */\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n /* `from` is the status shown when the failed attempt started. */\n const [failure, setFailure] = useState<Failure | null>(null);\n /* A new `value` from the host makes a failure stale, unless it is the\n host putting back the status the attempt started from. */\n const [seenValue, setSeenValue] = useState(value);\n if (seenValue !== value) {\n setSeenValue(value);\n if (failure && failure.from !== value) setFailure(null);\n }\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n const currentOption = options.find((option) => option.value === value);\n\n if (!currentOption) {\n throw new Error(\n `WorkflowStatusControl requires an option matching value \"${value}\".`,\n );\n }\n\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n const resolvedMenuLabel =\n menuLabel ?? t('workflowStatus.menuLabel', 'Workflow statuses');\n const resolvedSavingLabel =\n savingLabel ?? t('workflowStatus.saving', 'Saving workflow status');\n const defaultErrorMessage = t(\n 'workflowStatus.saveFailed',\n 'Could not change workflow status. The previous status is still shown.',\n );\n const resolvedErrorMessage =\n errorMessage ??\n (failure\n ? getErrorMessage(failure.reason, defaultErrorMessage)\n : defaultErrorMessage);\n const resolvedAriaLabel =\n ariaLabel ??\n t('workflowStatus.changeLabel', 'Change workflow status: {{status}}', {\n status: currentOption.label,\n });\n const hasError = error || Boolean(errorMessage) || failure !== null;\n const isSaving = saving || pending;\n const inactive = disabled || isSaving;\n const errorId = id ? `${id}-error` : generatedErrorId;\n const describedBy =\n [ariaDescribedBy, hasError ? errorId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const operation = isSaving\n ? 'saving'\n : disabled\n ? 'disabled'\n : hasError\n ? 'error'\n : 'idle';\n const [openValue, setOpen] = useControllableState<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n const isOpen = Boolean(openValue) && !inactive;\n\n /* A browser drops focus to the body when the focused trigger is disabled\n for a save. After a menu pick, put it back once the save settles, but\n only if nothing else has taken focus meanwhile. */\n const refocusAfterSaveRef = useRef(false);\n useIsomorphicLayoutEffect(() => {\n if (isSaving || !refocusAfterSaveRef.current) return;\n refocusAfterSaveRef.current = false;\n const trigger = triggerRef.current;\n const active = trigger?.ownerDocument.activeElement;\n if (trigger && (!active || active === trigger.ownerDocument.body)) {\n trigger.focus();\n }\n });\n\n const changeValue = useCallback(\n (next: string): void | Promise<void> => {\n /* The ref, not the rendered `pending`: a caller that awaited the last\n save may act before React re-renders this handle. */\n if (disabled || saving || pendingRef.current || next === value) return;\n const nextOption = options.find((option) => option.value === next);\n if (!nextOption || nextOption.disabled) return;\n setFailure(null);\n const from = value;\n let result: void | Promise<void>;\n try {\n result = onValueChange(next);\n } catch (reason) {\n setFailure({ reason, from });\n return handledRejection(reason);\n }\n if (!isThenable(result)) return result;\n pendingRef.current = true;\n setPending(true);\n const settle = (failed: Failure | null) => {\n pendingRef.current = false;\n if (!mountedRef.current) return;\n setPending(false);\n if (failed) setFailure(failed);\n };\n const saved = Promise.resolve(result).then(\n () => settle(null),\n (reason: unknown) => {\n settle({ reason, from });\n throw reason;\n },\n );\n /* A menu pick ignores the result; an agent may await it. */\n saved.catch(() => undefined);\n return saved;\n },\n [disabled, onValueChange, options, saving, value],\n );\n\n const handle = useMemo<WorkflowStatusControlHandle>(\n () => ({\n getValue: () => value,\n getIsOpen: () => isOpen,\n getIsSaving: () => isSaving,\n setValue: changeValue,\n open: () => {\n if (!inactive) setOpen(true);\n },\n close: () => setOpen(false),\n focus: () => triggerRef.current?.focus(),\n }),\n [changeValue, inactive, isOpen, isSaving, setOpen, value],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(workflowStatusAgent, handle, id);\n\n return (\n <div\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"control\"\n data-saving={isSaving ? '' : undefined}\n data-error={hasError ? '' : undefined}\n className={rootVariants({ size, className })}\n >\n <DropdownMenu.Root\n dir={dir}\n open={isOpen}\n onOpenChange={(next) => {\n if (next && inactive) return;\n if (next) refocusAfterSaveRef.current = false;\n setOpen(next);\n }}\n >\n <DropdownMenu.Trigger asChild>\n <button\n ref={triggerRef}\n id={id ? `${id}-trigger` : undefined}\n type=\"button\"\n disabled={inactive}\n aria-label={resolvedAriaLabel}\n aria-describedby={describedBy}\n aria-busy={isSaving}\n data-open={isOpen ? '' : undefined}\n className={surfaceVariants({\n size,\n interactive: true,\n operation,\n })}\n >\n <WorkflowStatusSurface\n option={currentOption}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive\n operation={operation}\n error={hasError}\n />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>{resolvedMenuLabel}</DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={value}\n onValueChange={(next) => {\n // Close explicitly. `isOpen` is derived (`openValue &&\n // !inactive`), so a caller flipping `saving` in this same\n // event already controls the Root to `open={false}`, and\n // Radix swallows its own `onOpenChange` when the value\n // matches. `openValue` would stay true and the menu would\n // spring back once `saving` cleared.\n setOpen(false);\n triggerRef.current?.focus();\n refocusAfterSaveRef.current = true;\n void changeValue(next);\n }}\n >\n {options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={inactive || option.disabled}\n data-option-id={option.value}\n >\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({\n tone: option.tone,\n size: 'menu',\n })}\n >\n {option.icon}\n </span>\n <span className=\"ds:min-w-0 ds:truncate\" title={option.label}>\n {option.label}\n </span>\n </span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n >\n {isSaving ? resolvedSavingLabel : ''}\n </span>\n {hasError ? (\n <div id={errorId} role=\"alert\" className={errorVariants()}>\n <AlertCircle aria-hidden=\"true\" />\n <span>{resolvedErrorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n});\n\nWorkflowStatusControl.displayName = 'WorkflowStatusControl';\n\ninterface Failure {\n reason: unknown;\n from: string;\n}\n\nfunction isThenable(value: unknown): value is PromiseLike<void> {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { then?: unknown }).then === 'function'\n );\n}\n"],"names":["workflowStatusAgent","handle","args","rootVariants","cva","surfaceVariants","INPUT_SURFACE_HEIGHT","iconVariants","labelGroupVariants","valueVariants","trailingVariants","errorVariants","WorkflowStatusSurface","option","workflowLabel","size","interactive","operation","error","jsxs","Fragment","jsx","AlertCircle","LoaderCircle","ChevronDown","WorkflowStatusDisplay","forwardRef","value","id","className","dir","ref","t","useTranslation","resolvedWorkflowLabel","WorkflowStatusControl","options","onValueChange","disabled","saving","errorMessage","menuLabel","savingLabel","openProp","defaultOpen","onOpenChange","ariaLabel","ariaDescribedBy","generatedErrorId","useId","triggerRef","useRef","pendingRef","pending","setPending","useState","failure","setFailure","seenValue","setSeenValue","mountedRef","useEffect","currentOption","resolvedMenuLabel","resolvedSavingLabel","defaultErrorMessage","resolvedErrorMessage","getErrorMessage","resolvedAriaLabel","hasError","isSaving","inactive","errorId","describedBy","openValue","setOpen","useControllableState","isOpen","refocusAfterSaveRef","useIsomorphicLayoutEffect","trigger","active","changeValue","useCallback","next","nextOption","from","result","reason","handledRejection","isThenable","settle","failed","saved","useMemo","_a","useImperativeHandle","useAgentRegistration","DropdownMenu"],"mappings":"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"}
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "1.
|
|
3
|
+
"packageVersion": "1.51.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -4340,7 +4340,8 @@
|
|
|
4340
4340
|
"id": "dropdown-menu",
|
|
4341
4341
|
"capabilities": [
|
|
4342
4342
|
"open",
|
|
4343
|
-
"close"
|
|
4343
|
+
"close",
|
|
4344
|
+
"set_value"
|
|
4344
4345
|
],
|
|
4345
4346
|
"state": [
|
|
4346
4347
|
{
|
|
@@ -4348,6 +4349,12 @@
|
|
|
4348
4349
|
"type": "boolean",
|
|
4349
4350
|
"description": "True when the menu is currently open.",
|
|
4350
4351
|
"descriptionKey": "ui.agent.dropdownMenu.state.isOpen"
|
|
4352
|
+
},
|
|
4353
|
+
{
|
|
4354
|
+
"name": "settings",
|
|
4355
|
+
"type": "Array<{ setting: string; kind: \"choice\" | \"switch\"; value?: string; options?: string[]; checked?: boolean; disabled: boolean }>",
|
|
4356
|
+
"description": "The menu's named settings rows and their current values: choice rows with the selected value and every option's value, switch rows with whether they are on. Rows are listed only while the menu is open; open it first to read them.",
|
|
4357
|
+
"descriptionKey": "ui.agent.dropdownMenu.state.settings"
|
|
4351
4358
|
}
|
|
4352
4359
|
],
|
|
4353
4360
|
"actions": [
|
|
@@ -4364,6 +4371,81 @@
|
|
|
4364
4371
|
"idempotent": true,
|
|
4365
4372
|
"description": "Close the menu.",
|
|
4366
4373
|
"descriptionKey": "ui.agent.dropdownMenu.actions.close"
|
|
4374
|
+
},
|
|
4375
|
+
{
|
|
4376
|
+
"name": "set_value",
|
|
4377
|
+
"safety": "write",
|
|
4378
|
+
"argsType": "{ setting: string; value: string }",
|
|
4379
|
+
"argsSchema": {
|
|
4380
|
+
"type": "object",
|
|
4381
|
+
"properties": {
|
|
4382
|
+
"setting": {
|
|
4383
|
+
"type": "string",
|
|
4384
|
+
"description": "The row's name (its data-setting attribute)."
|
|
4385
|
+
},
|
|
4386
|
+
"value": {
|
|
4387
|
+
"type": "string",
|
|
4388
|
+
"description": "One of the row's option values."
|
|
4389
|
+
}
|
|
4390
|
+
},
|
|
4391
|
+
"required": [
|
|
4392
|
+
"setting",
|
|
4393
|
+
"value"
|
|
4394
|
+
]
|
|
4395
|
+
},
|
|
4396
|
+
"idempotent": true,
|
|
4397
|
+
"errors": [
|
|
4398
|
+
"No choice row with that name in this menu",
|
|
4399
|
+
"The value is not one of the options, or it or the row is disabled"
|
|
4400
|
+
],
|
|
4401
|
+
"examples": [
|
|
4402
|
+
{
|
|
4403
|
+
"args": {
|
|
4404
|
+
"setting": "slotDensity",
|
|
4405
|
+
"value": "comfortable"
|
|
4406
|
+
},
|
|
4407
|
+
"note": "Calendar display settings: switch to comfortable rows."
|
|
4408
|
+
}
|
|
4409
|
+
],
|
|
4410
|
+
"description": "Pick an option on a named choice row (ChoiceSub), as clicking it would. A closed menu opens for the moment and closes again.",
|
|
4411
|
+
"descriptionKey": "ui.agent.dropdownMenu.actions.setValue"
|
|
4412
|
+
},
|
|
4413
|
+
{
|
|
4414
|
+
"name": "set_checked",
|
|
4415
|
+
"safety": "write",
|
|
4416
|
+
"argsType": "{ setting: string; checked: boolean }",
|
|
4417
|
+
"argsSchema": {
|
|
4418
|
+
"type": "object",
|
|
4419
|
+
"properties": {
|
|
4420
|
+
"setting": {
|
|
4421
|
+
"type": "string",
|
|
4422
|
+
"description": "The row's name (its data-setting attribute)."
|
|
4423
|
+
},
|
|
4424
|
+
"checked": {
|
|
4425
|
+
"type": "boolean"
|
|
4426
|
+
}
|
|
4427
|
+
},
|
|
4428
|
+
"required": [
|
|
4429
|
+
"setting",
|
|
4430
|
+
"checked"
|
|
4431
|
+
]
|
|
4432
|
+
},
|
|
4433
|
+
"idempotent": true,
|
|
4434
|
+
"errors": [
|
|
4435
|
+
"No switch row with that name in this menu",
|
|
4436
|
+
"The row is disabled"
|
|
4437
|
+
],
|
|
4438
|
+
"examples": [
|
|
4439
|
+
{
|
|
4440
|
+
"args": {
|
|
4441
|
+
"setting": "zebraRows",
|
|
4442
|
+
"checked": true
|
|
4443
|
+
},
|
|
4444
|
+
"note": "Calendar display settings: turn zebra rows on."
|
|
4445
|
+
}
|
|
4446
|
+
],
|
|
4447
|
+
"description": "Turn a named switch row (SwitchItem) on or off, as clicking it would. A closed menu opens for the moment and closes again.",
|
|
4448
|
+
"descriptionKey": "ui.agent.dropdownMenu.actions.setChecked"
|
|
4367
4449
|
}
|
|
4368
4450
|
],
|
|
4369
4451
|
"domHooks": {
|
|
@@ -4375,6 +4457,11 @@
|
|
|
4375
4457
|
"attr": "data-component-id",
|
|
4376
4458
|
"sourceProp": "id",
|
|
4377
4459
|
"description": "Sourced from the id prop on DropdownMenu.Root."
|
|
4460
|
+
},
|
|
4461
|
+
"item": {
|
|
4462
|
+
"attr": "data-setting",
|
|
4463
|
+
"sourceProp": "name",
|
|
4464
|
+
"description": "On a ChoiceSub or SwitchItem row given a name: the setting that set_value / set_checked address."
|
|
4378
4465
|
}
|
|
4379
4466
|
}
|
|
4380
4467
|
},
|
|
@@ -16937,21 +17024,9 @@
|
|
|
16937
17024
|
"as": "toolbarIcon"
|
|
16938
17025
|
},
|
|
16939
17026
|
{
|
|
16940
|
-
"component": "
|
|
17027
|
+
"component": "dropdown-menu",
|
|
16941
17028
|
"as": "displaySettings"
|
|
16942
17029
|
},
|
|
16943
|
-
{
|
|
16944
|
-
"component": "select",
|
|
16945
|
-
"as": "displayChoice"
|
|
16946
|
-
},
|
|
16947
|
-
{
|
|
16948
|
-
"component": "switch",
|
|
16949
|
-
"as": "displayToggle"
|
|
16950
|
-
},
|
|
16951
|
-
{
|
|
16952
|
-
"component": "number-input",
|
|
16953
|
-
"as": "defaultDuration"
|
|
16954
|
-
},
|
|
16955
17030
|
{
|
|
16956
17031
|
"component": "date-picker",
|
|
16957
17032
|
"as": "jumpToDate"
|
|
@@ -17193,13 +17268,9 @@
|
|
|
17193
17268
|
"entity": "appointment"
|
|
17194
17269
|
},
|
|
17195
17270
|
{
|
|
17196
|
-
"component": "
|
|
17271
|
+
"component": "dropdown-menu",
|
|
17197
17272
|
"as": "backlogSettings"
|
|
17198
17273
|
},
|
|
17199
|
-
{
|
|
17200
|
-
"component": "switch",
|
|
17201
|
-
"as": "backlogGapToggle"
|
|
17202
|
-
},
|
|
17203
17274
|
{
|
|
17204
17275
|
"component": "collapsible",
|
|
17205
17276
|
"as": "finderFilters"
|
|
@@ -17283,21 +17354,17 @@
|
|
|
17283
17354
|
{
|
|
17284
17355
|
"name": "configure_display",
|
|
17285
17356
|
"safety": "write",
|
|
17286
|
-
"description": "Set the per-user display knobs in the cog
|
|
17357
|
+
"description": "Set the per-user display knobs in the cog's settings menu (each setting's row shows its current value and opens a submenu of options; on/off settings are switch rows; the last item resets to the defaults) — layout, zebra rows, show times, slot precision, the day window, the care-description mode, what the cards are coloured by, the default duration of a new appointment (a preset from 10 to 60 minutes, or the value already saved), whether operators read as an initials disc or a dot plus full name, whether chairs read as a full name or a short code, whether the details panel offers the map link, the row density (compact or comfortable), the colour strength of the cards (tinted or solid), and whether cards show the operator or chair from the other axis. The same menu holds the appointment icon legend as a submenu. An agent drives the menu with instance id calendar-display-settings: set_value with a choice row's name (orientation, slotDensity, window, slotDuration, eventColorStyle, colorAssociation, careDescription, operatorNameDisplay, chairNameDisplay, defaultDurationMin) and one of its option values, or set_checked with a switch row's name (zebraRows, showTime, showCardContext, mapsLink); the menu opens for the moment when closed. The settings state lists each row's name, value and options while the menu is open. The choices are remembered per user through the host's preferences adapter under `calendarWorkspace.*` keys, so they persist beyond the page load; they change presentation only and touch no patient record.",
|
|
17287
17358
|
"descriptionKey": "ui.agent.calendar.workflows.configureDisplay",
|
|
17288
17359
|
"uiActions": [
|
|
17289
|
-
"
|
|
17290
|
-
"
|
|
17291
|
-
"
|
|
17292
|
-
"
|
|
17293
|
-
"switch.toggle",
|
|
17294
|
-
"number-input.set_value"
|
|
17360
|
+
"dropdown-menu.open",
|
|
17361
|
+
"dropdown-menu.close",
|
|
17362
|
+
"dropdown-menu.set_value",
|
|
17363
|
+
"dropdown-menu.set_checked"
|
|
17295
17364
|
],
|
|
17296
17365
|
"stateReads": [
|
|
17297
|
-
"
|
|
17298
|
-
"
|
|
17299
|
-
"switch.checked",
|
|
17300
|
-
"number-input.value"
|
|
17366
|
+
"dropdown-menu.isOpen",
|
|
17367
|
+
"dropdown-menu.settings"
|
|
17301
17368
|
],
|
|
17302
17369
|
"apiActions": [
|
|
17303
17370
|
"calendarPreference.update"
|
|
@@ -17726,20 +17793,18 @@
|
|
|
17726
17793
|
{
|
|
17727
17794
|
"name": "triage_online_booking",
|
|
17728
17795
|
"safety": "phi",
|
|
17729
|
-
"description": "Review the online-bookings queue independently of the visible dates. The host owns membership and loading/error state. Show a row on the grid; completion is available only when the host enables it and the user can edit. Review-only rows remain in the queue on selection and cannot be dragged, resized or edited. Unknown last-seen data never marks a booking New. A host addresses one booking with the focusBookingId prop (bump focusBookingKey to repeat it): the tool docks, then the card carrying that data-booking-id takes focus and aria-current; an id outside the queue addresses nothing. An Assign patient or Assign operator segment opens the editor focused on that field. A settings cog in the panel header (data-backlog-settings) opens a
|
|
17796
|
+
"description": "Review the online-bookings queue independently of the visible dates. The host owns membership and loading/error state. Show a row on the grid; completion is available only when the host enables it and the user can edit. Review-only rows remain in the queue on selection and cannot be dragged, resized or edited. Unknown last-seen data never marks a booking New. A host addresses one booking with the focusBookingId prop (bump focusBookingKey to repeat it): the tool docks, then the card carrying that data-booking-id takes focus and aria-current; an id outside the queue addresses nothing. An Assign patient or Assign operator segment opens the editor focused on that field. A settings cog in the panel header (data-backlog-settings) opens a menu (instance id calendar-backlog-settings) of three switch rows — withoutPatient, withoutOperator, withoutChair, the chair one only where the practice has chairs — all on by default, then a Reset row that switches them all back on; set_checked with the name of a row flips it; a card stays listed while at least one of its own gaps is still switched on. Read the cog before reading the list: while any switch is off it carries data-narrowed and its accessible name says the list is filtered, so a short queue is not an empty backlog. Selection only; completing writes patient-identifiable data.",
|
|
17730
17797
|
"descriptionKey": "ui.agent.calendar.workflows.triageOnlineBooking",
|
|
17731
17798
|
"uiActions": [
|
|
17732
17799
|
"calendar.focus_event",
|
|
17733
17800
|
"control-room-rail.open",
|
|
17734
|
-
"
|
|
17735
|
-
"
|
|
17736
|
-
"
|
|
17737
|
-
"switch.toggle"
|
|
17801
|
+
"dropdown-menu.open",
|
|
17802
|
+
"dropdown-menu.close",
|
|
17803
|
+
"dropdown-menu.set_checked"
|
|
17738
17804
|
],
|
|
17739
17805
|
"stateReads": [
|
|
17740
17806
|
"control-room-rail.activeToolId",
|
|
17741
|
-
"
|
|
17742
|
-
"switch.checked"
|
|
17807
|
+
"dropdown-menu.isOpen"
|
|
17743
17808
|
],
|
|
17744
17809
|
"apiActions": [
|
|
17745
17810
|
"onlineBooking.list",
|
package/dist/agent-i18n/en.json
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"browseAgenda": "Navigate the agenda: today, previous / next range, jump to a date through the navigation row's date picker, or change what the grid shows from the one view menu — a range (day, three days, week, month, also reachable as the bare keys D · X · W · M) and a column axis (plain, chairs, operators), plus a remembered \"Show weekends\" item that hides Saturday and Sunday in every range. Each range change hands the new window to the host, which fetches the appointments for it.",
|
|
187
187
|
"filterColumns": "Narrow the grid to particular chairs or operators from the two filter popovers, with the platform's semantics: nothing ticked shows everyone and ticking narrows. Operators list under their groups with a tri-state row per group; \"Only available operators\" is on by default in the operator views, and a session-local \"Show disabled operators\" switch reveals the operators the practice has disabled. A count badge rides each filter button while it narrows, and the \"Reset filters\" chip beside them clears both selections and restores both switches without ever changing the view. Selection only — no appointment is touched.",
|
|
188
188
|
"maskPatientNames": "Turn privacy mode on or off from the toolbar. While on, patient identity is masked across the grid and the whole rail: the cards, the hover peek, the Appointments panel, the appointment details panel (patient card, description, booking contact, notes preview and the WhatsApp link are hidden), the online bookings, the waiting list and the printed call sheet; the Notes tool and the edit form show a notice instead of their content, and so does a tool the host adds, unless the host masks it itself. The page can stay open beside a waiting patient. It is a display mask, not a permission: it is not persisted and it changes no record.",
|
|
189
|
-
"configureDisplay": "Set the per-user display knobs in the cog
|
|
189
|
+
"configureDisplay": "Set the per-user display knobs in the cog's settings menu (each setting's row shows its current value and opens a submenu of options; on/off settings are switch rows; the last item resets to the defaults) — layout, zebra rows, show times, slot precision, the day window, the care-description mode, what the cards are coloured by, the default duration of a new appointment (a preset from 10 to 60 minutes, or the value already saved), whether operators read as an initials disc or a dot plus full name, whether chairs read as a full name or a short code, whether the details panel offers the map link, the row density (compact or comfortable), the colour strength of the cards (tinted or solid), and whether cards show the operator or chair from the other axis. The same menu holds the appointment icon legend as a submenu. An agent drives the menu with instance id calendar-display-settings: set_value with a choice row's name (orientation, slotDensity, window, slotDuration, eventColorStyle, colorAssociation, careDescription, operatorNameDisplay, chairNameDisplay, defaultDurationMin) and one of its option values, or set_checked with a switch row's name (zebraRows, showTime, showCardContext, mapsLink); the menu opens for the moment when closed. The settings state lists each row's name, value and options while the menu is open. The choices are remembered per user through the host's preferences adapter under `calendarWorkspace.*` keys, so they persist beyond the page load; they change presentation only and touch no patient record.",
|
|
190
190
|
"dockTool": "Open a workspace rail tool: Appointments, appointment editor / details, waiting list, patient notes, online bookings or free-slot finder. Read the actual strip: hosts may withhold tools, and patient-notes is registered only with patient context. Notes uses the host's note permissions, independently of appointment-edit rights. Clearing its patient context returns to the previous available tool and focuses its rail button. Opening notes from a panel may address a note id and moves focus into Notes. Closing other tools returns to Appointments. A host may add its own tools after these; they carry the host's ids, so read the strip's data-tool-id before opening one. open ignores an id no tool carries; select_tool with one, or a host tool the host withdraws while open, docks Appointments. patient-notes is the exception: withheld or without a patient, it returns to the previous tool, unannounced.",
|
|
191
191
|
"reviewUpcoming": "Read the rail's resting panel: the practice's upcoming appointments — now to the end of the seventh day, cancelled excluded, earliest first — each row led by the patient. The preset row, the jump-to-date picker and the edge loaders widen the derived window up to ±180 days. Activating a row selects that appointment on the grid, which docks its details. Read-only; the rows carry ids and lifecycle state, never patient identity.",
|
|
192
192
|
"readAppointmentDetails": "Read one appointment in the docked details panel (appointment-details-panel). With the host's details read, any card click, including a patient-less block and a chip whose names are still loading, focuses the appointment and docks a read-only panel: appointment, booking, money, contact, treatments, signing and series sections, the patient's latest three notes and a History sub-view. See more or a note opens the separate Notes rail tool when the host offers it. While the read is loading, failed or refused the panel shows that status instead. Edit, withheld from a read-only viewer, opens the editor. Without the host's read a pending chip stays inert and the editor form is the details. Reads patient-identifiable data.",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"manageWaitingListEntry": "Add, amend or remove a waiting-list entry. The four-field form opens as a rail SUB-VIEW — from the toolbar split button's plus segment, from Add entry, or from a row's pencil — with a back arrow to the queue. Editing is refused on a row already linked to an appointment, because those fields belong to the appointment; the pencil stays focusable and names that reason. Remove deletes at once with no confirmation, platform parity, and its toast carries an Undo that puts the entry back. Writes patient-identifiable data.",
|
|
208
208
|
"scheduleWaitingPatient": "Give a waiting patient a slot. \"Schedule\" on an unlinked row hands off to the free-slot finder seeded from the entry — operator, chair, duration, patient, care and colour already filled in — and booking a slot opens the editor carrying the entry, so saving books the appointment and takes the entry off the list. A row already linked to an appointment reads \"Reschedule\" and seeds the same finder, but booking there MOVES the existing appointment rather than creating a second one. Writes patient-identifiable data.",
|
|
209
209
|
"findFreeSlot": "Search the practice for bookable time in the finder panel. Operator and chair scope are grouped checklists behind a popover per axis — a select-all row first, operators sectioned under their groups, nothing ticked searching every eligible resource — beside the care, the duration, the date range and, for a care that needs one, a medical-device select. The results list groups the slots under a day heading; when the viewer may write appointments, a click steers the grid to that day and docks the editor prefilled with the date, time, duration, chair, operator and any seeded patient or care; read-only viewers see the list and projection only, under a lock note, with no Book. The 185-day range warning is advisory (the search still runs), \"Show more slots\" pushes the To date out by 30 days and re-searches, and an alert names which business hours are missing when the practice or its operators hold none (it links to the scheduler only where the host supplies that navigation, which this workspace does not). Projected bands open a modal list of original options by click, Enter or Space; only an explicit Book action uses the finder booking path. Read-only viewers can scroll those options without Book. Dismissal restores focus to the band.",
|
|
210
|
-
"triageOnlineBooking": "Review the online-bookings queue independently of the visible dates. The host owns membership and loading/error state. Show a row on the grid; completion is available only when the host enables it and the user can edit. Review-only rows remain in the queue on selection and cannot be dragged, resized or edited. Unknown last-seen data never marks a booking New. A host addresses one booking with the focusBookingId prop (bump focusBookingKey to repeat it): the tool docks, then the card carrying that data-booking-id takes focus and aria-current; an id outside the queue addresses nothing. An Assign patient or Assign operator segment opens the editor focused on that field. A settings cog in the panel header (data-backlog-settings) opens a
|
|
210
|
+
"triageOnlineBooking": "Review the online-bookings queue independently of the visible dates. The host owns membership and loading/error state. Show a row on the grid; completion is available only when the host enables it and the user can edit. Review-only rows remain in the queue on selection and cannot be dragged, resized or edited. Unknown last-seen data never marks a booking New. A host addresses one booking with the focusBookingId prop (bump focusBookingKey to repeat it): the tool docks, then the card carrying that data-booking-id takes focus and aria-current; an id outside the queue addresses nothing. An Assign patient or Assign operator segment opens the editor focused on that field. A settings cog in the panel header (data-backlog-settings) opens a menu (instance id calendar-backlog-settings) of three switch rows — withoutPatient, withoutOperator, withoutChair, the chair one only where the practice has chairs — all on by default, then a Reset row that switches them all back on; set_checked with the name of a row flips it; a card stays listed while at least one of its own gaps is still switched on. Read the cog before reading the list: while any switch is off it carries data-narrowed and its accessible name says the list is filtered, so a short queue is not an empty backlog. Selection only; completing writes patient-identifiable data.",
|
|
211
211
|
"printDaySheet": "Print the front-desk call sheet. The toolbar's printer icon opens a dialog asking which day — one day, never the visible range — and Print renders that day's appointments through the browser, scoped by the filters in force and masked when privacy mode is on. Nothing is sent to a server, but the sheet itself is a patient-identifiable document."
|
|
212
212
|
}
|
|
213
213
|
},
|
|
@@ -507,11 +507,14 @@
|
|
|
507
507
|
},
|
|
508
508
|
"dropdownMenu": {
|
|
509
509
|
"state": {
|
|
510
|
-
"isOpen": "True when the menu is currently open."
|
|
510
|
+
"isOpen": "True when the menu is currently open.",
|
|
511
|
+
"settings": "The menu's named settings rows and their current values: choice rows with the selected value and every option's value, switch rows with whether they are on. Rows are listed only while the menu is open; open it first to read them."
|
|
511
512
|
},
|
|
512
513
|
"actions": {
|
|
513
514
|
"open": "Open the menu.",
|
|
514
|
-
"close": "Close the menu."
|
|
515
|
+
"close": "Close the menu.",
|
|
516
|
+
"setValue": "Pick an option on a named choice row (ChoiceSub), as clicking it would. A closed menu opens for the moment and closes again.",
|
|
517
|
+
"setChecked": "Turn a named switch row (SwitchItem) on or off, as clicking it would. A closed menu opens for the moment and closes again."
|
|
515
518
|
}
|
|
516
519
|
},
|
|
517
520
|
"dueDateCalculator": {
|
|
@@ -10,7 +10,7 @@ type BadgeVariant = NonNullable<BadgeProps['variant']>;
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const entitySurfaceVariants: (props?: ({
|
|
12
12
|
surface?: "elevated" | "flat" | null | undefined;
|
|
13
|
-
density?: "
|
|
13
|
+
density?: "comfortable" | "compact" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
/** Care-plan lifecycle state → Badge variant. */
|
|
16
16
|
export declare const CARE_PLAN_STATE_BADGE: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-visibility-cog.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/field-visibility-cog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAoB5D,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kCAAkC;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4CAA4C;IAC5C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,iEAAiE;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,8CAA8C;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,KAAK,GACN,EAAE,uBAAuB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"field-visibility-cog.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/field-visibility-cog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAoB5D,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kCAAkC;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4CAA4C;IAC5C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,iEAAiE;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,8CAA8C;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,KAAK,GACN,EAAE,uBAAuB,GAAG,SAAS,CA+QrC"}
|
|
@@ -2,7 +2,7 @@ import { type HTMLAttributes, type ReactNode } from 'react';
|
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const rootVariants: (props?: ({
|
|
4
4
|
surface?: "elevated" | "flat" | "bare" | null | undefined;
|
|
5
|
-
density?: "
|
|
5
|
+
density?: "comfortable" | "compact" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
export interface AnamnesisSummaryAnswer {
|
|
8
8
|
/** Stable key (the intake field key). */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as p } from "../../_chunks/appointment-card-
|
|
2
|
-
import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-
|
|
1
|
+
import { A as p } from "../../_chunks/appointment-card-DETaIfBb.js";
|
|
2
|
+
import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-Dq4zto_L.js";
|
|
3
3
|
import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
|
|
4
4
|
export {
|
|
5
5
|
p as AppointmentCard,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-
|
|
1
|
+
import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-uEnJLVfA.js";
|
|
2
2
|
export {
|
|
3
3
|
e as AppointmentDetailsPanel,
|
|
4
4
|
n as appointmentDetailsPanelAgent,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as m } from "../../_chunks/bmi-calculator-
|
|
1
|
+
import { B as m } from "../../_chunks/bmi-calculator-ZzzPZhhI.js";
|
|
2
2
|
import { b as e, a as t, c as r, d as T, e as c, f as i, i as b, k as n, l as f } from "../../_chunks/bmi-BxD-tFzU.js";
|
|
3
3
|
export {
|
|
4
4
|
m as BmiCalculator,
|