@alfadocs/ui-kit-debug 1.34.0 → 1.36.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-yy03OgRL.js → actions-cell-renderer-CUn1pqEq.js} +3 -3
- package/dist/_chunks/{actions-cell-renderer-yy03OgRL.js.map → actions-cell-renderer-CUn1pqEq.js.map} +1 -1
- package/dist/_chunks/{agenda-card-DVz3jwTf.js → agenda-card-DyQtHb9z.js} +2 -2
- package/dist/_chunks/{agenda-card-DVz3jwTf.js.map → agenda-card-DyQtHb9z.js.map} +1 -1
- package/dist/_chunks/{agenda-tray-1oDWCJdB.js → agenda-tray-DYGCTIWB.js} +3 -3
- package/dist/_chunks/{agenda-tray-1oDWCJdB.js.map → agenda-tray-DYGCTIWB.js.map} +1 -1
- package/dist/_chunks/{ai-consent-banner-OggpS5hW.js → ai-consent-banner-De4gzSBZ.js} +4 -4
- package/dist/_chunks/{ai-consent-banner-OggpS5hW.js.map → ai-consent-banner-De4gzSBZ.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-Dt7tpCBh.js → ai-prompt-input-DdxlaI7q.js} +2 -2
- package/dist/_chunks/{ai-prompt-input-Dt7tpCBh.js.map → ai-prompt-input-DdxlaI7q.js.map} +1 -1
- package/dist/_chunks/{alert-CiJT540z.js → alert-CiQ5Pa3Q.js} +2 -2
- package/dist/_chunks/{alert-CiJT540z.js.map → alert-CiQ5Pa3Q.js.map} +1 -1
- package/dist/_chunks/{alia-sidebar-D18kp3p9.js → alia-sidebar-B6bXlZZk.js} +6 -6
- package/dist/_chunks/{alia-sidebar-D18kp3p9.js.map → alia-sidebar-B6bXlZZk.js.map} +1 -1
- package/dist/_chunks/{anamnesis-card-NTi4LLzI.js → anamnesis-card-DGwINeNn.js} +3 -3
- package/dist/_chunks/{anamnesis-card-NTi4LLzI.js.map → anamnesis-card-DGwINeNn.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-card-DGVKBQoq.js → anamnesis-summary-card-GYHa7VGp.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-card-DGVKBQoq.js.map → anamnesis-summary-card-GYHa7VGp.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-rows-BYgyp_i2.js → anamnesis-summary-rows-Cxtgo2ok.js} +12 -12
- package/dist/_chunks/{anamnesis-summary-rows-BYgyp_i2.js.map → anamnesis-summary-rows-Cxtgo2ok.js.map} +1 -1
- package/dist/_chunks/{antenatal-schedule-timeline-sXfIp5lp.js → antenatal-schedule-timeline-CXk_tzWG.js} +2 -2
- package/dist/_chunks/{antenatal-schedule-timeline-sXfIp5lp.js.map → antenatal-schedule-timeline-CXk_tzWG.js.map} +1 -1
- package/dist/_chunks/appointment-card-WsDGBBut.js +425 -0
- package/dist/_chunks/appointment-card-WsDGBBut.js.map +1 -0
- package/dist/_chunks/appointment-timeline-ByfovxqR.js +449 -0
- package/dist/_chunks/appointment-timeline-ByfovxqR.js.map +1 -0
- package/dist/_chunks/{appointment-tray-6rg071CL.js → appointment-tray-D6UyJHej.js} +3 -3
- package/dist/_chunks/{appointment-tray-6rg071CL.js.map → appointment-tray-D6UyJHej.js.map} +1 -1
- package/dist/_chunks/arrow-right-KsIrLdt0.js +15 -0
- package/dist/_chunks/arrow-right-KsIrLdt0.js.map +1 -0
- package/dist/_chunks/{audio-recorder-11wClczr.js → audio-recorder-BlQBC7N_.js} +3 -3
- package/dist/_chunks/{audio-recorder-11wClczr.js.map → audio-recorder-BlQBC7N_.js.map} +1 -1
- package/dist/_chunks/{badge-sTusUqZD.js → badge-BudgzTe_.js} +2 -2
- package/dist/_chunks/{badge-sTusUqZD.js.map → badge-BudgzTe_.js.map} +1 -1
- package/dist/_chunks/{balance-badge-cell-DhBtFRoW.js → balance-badge-cell-B0Z8Dwn8.js} +6 -6
- package/dist/_chunks/{balance-badge-cell-DhBtFRoW.js.map → balance-badge-cell-B0Z8Dwn8.js.map} +1 -1
- package/dist/_chunks/{bishop-score-CAl7C5hm.js → bishop-score-D5b8tktp.js} +2 -2
- package/dist/_chunks/{bishop-score-CAl7C5hm.js.map → bishop-score-D5b8tktp.js.map} +1 -1
- package/dist/_chunks/{bmi-calculator-Dwkih9a4.js → bmi-calculator-dOKP-vW4.js} +4 -4
- package/dist/_chunks/{bmi-calculator-Dwkih9a4.js.map → bmi-calculator-dOKP-vW4.js.map} +1 -1
- package/dist/_chunks/{booking-BqkEtsKx.js → booking-Dp-9qR6F.js} +9 -9
- package/dist/_chunks/{booking-BqkEtsKx.js.map → booking-Dp-9qR6F.js.map} +1 -1
- package/dist/_chunks/button-group-QmN1VdUW.js +307 -0
- package/dist/_chunks/button-group-QmN1VdUW.js.map +1 -0
- package/dist/_chunks/{calendar-Dgvl5L4T.js → calendar-7GAUlsNO.js} +3 -3
- package/dist/_chunks/{calendar-Dgvl5L4T.js.map → calendar-7GAUlsNO.js.map} +1 -1
- package/dist/_chunks/{calendar-event-card-DSh-69HT.js → calendar-event-card-DKUnT9Be.js} +91 -134
- package/dist/_chunks/calendar-event-card-DKUnT9Be.js.map +1 -0
- package/dist/_chunks/{calendar-workspace-4NH1Z47_.js → calendar-workspace-Duv_5B4j.js} +2494 -2415
- package/dist/_chunks/calendar-workspace-Duv_5B4j.js.map +1 -0
- package/dist/_chunks/{care-plan-card-CZW476Kg.js → care-plan-card-COFOI-fI.js} +5 -5
- package/dist/_chunks/{care-plan-card-CZW476Kg.js.map → care-plan-card-COFOI-fI.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js → care-plan-entry-card-BOKn0KW-.js} +6 -6
- package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js.map → care-plan-entry-card-BOKn0KW-.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-B5CBE0zu.js → care-plan-header-CbuOuVBw.js} +4 -4
- package/dist/_chunks/{care-plan-header-B5CBE0zu.js.map → care-plan-header-CbuOuVBw.js.map} +1 -1
- package/dist/_chunks/{carousel.agent-CLxdHEBP.js → carousel.agent-Dv4a4M8L.js} +2 -2
- package/dist/_chunks/{carousel.agent-CLxdHEBP.js.map → carousel.agent-Dv4a4M8L.js.map} +1 -1
- package/dist/_chunks/{chart-C6eHTxkO.js → chart-iWl76PXv.js} +3 -3
- package/dist/_chunks/{chart-C6eHTxkO.js.map → chart-iWl76PXv.js.map} +1 -1
- package/dist/_chunks/{chat-input-BsB5Umpj.js → chat-input-qM5QpUSq.js} +2 -2
- package/dist/_chunks/{chat-input-BsB5Umpj.js.map → chat-input-qM5QpUSq.js.map} +1 -1
- package/dist/_chunks/{chat-message-C-8UU2av.js → chat-message-RniXtrCH.js} +2 -2
- package/dist/_chunks/{chat-message-C-8UU2av.js.map → chat-message-RniXtrCH.js.map} +1 -1
- package/dist/_chunks/{checkbox-BuZ1u__2.js → checkbox-CZkipDn7.js} +2 -2
- package/dist/_chunks/{checkbox-BuZ1u__2.js.map → checkbox-CZkipDn7.js.map} +1 -1
- package/dist/_chunks/{checkbox-group-CfqMv57d.js → checkbox-group-DomUzpkF.js} +2 -2
- package/dist/_chunks/{checkbox-group-CfqMv57d.js.map → checkbox-group-DomUzpkF.js.map} +1 -1
- package/dist/_chunks/clinical-note-card-DdsGYMmI.js +325 -0
- package/dist/_chunks/clinical-note-card-DdsGYMmI.js.map +1 -0
- package/dist/_chunks/{code-block-BIkpRLkl.js → code-block-uVjNSI9g.js} +2 -2
- package/dist/_chunks/{code-block-BIkpRLkl.js.map → code-block-uVjNSI9g.js.map} +1 -1
- package/dist/_chunks/{connection-status-DRZIcMqM.js → connection-status-OEsWjmRk.js} +3 -3
- package/dist/_chunks/{connection-status-DRZIcMqM.js.map → connection-status-OEsWjmRk.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-DSI9uumA.js → contact-profile-card--My1H2UD.js} +3 -3
- package/dist/_chunks/{contact-profile-card-DSI9uumA.js.map → contact-profile-card--My1H2UD.js.map} +1 -1
- package/dist/_chunks/{control-room-rail-5MbhjsxN.js → control-room-rail-Ds45_g4f.js} +4 -4
- package/dist/_chunks/{control-room-rail-5MbhjsxN.js.map → control-room-rail-Ds45_g4f.js.map} +1 -1
- package/dist/_chunks/{counter-dRlTNC_y.js → counter-WsvRuum1.js} +50 -15
- package/dist/_chunks/counter-WsvRuum1.js.map +1 -0
- package/dist/_chunks/{cycle-calculator-DVgxBfP0.js → cycle-calculator-BJeaXiZv.js} +3 -3
- package/dist/_chunks/{cycle-calculator-DVgxBfP0.js.map → cycle-calculator-BJeaXiZv.js.map} +1 -1
- package/dist/_chunks/{dashboard-grid-BFtdHqfn.js → dashboard-grid-B23BFzRl.js} +2 -2
- package/dist/_chunks/{dashboard-grid-BFtdHqfn.js.map → dashboard-grid-B23BFzRl.js.map} +1 -1
- package/dist/_chunks/{data-table-DC96JJIq.js → data-table-BYGK-gUJ.js} +6 -6
- package/dist/_chunks/{data-table-DC96JJIq.js.map → data-table-BYGK-gUJ.js.map} +1 -1
- package/dist/_chunks/{data-table-tabs-DVIFkqx_.js → data-table-tabs-BMR0zsVQ.js} +3 -3
- package/dist/_chunks/{data-table-tabs-DVIFkqx_.js.map → data-table-tabs-BMR0zsVQ.js.map} +1 -1
- package/dist/_chunks/{date-picker-B6NW_PS5.js → date-picker-6tFnKFty.js} +14 -14
- package/dist/_chunks/{date-picker-B6NW_PS5.js.map → date-picker-6tFnKFty.js.map} +1 -1
- package/dist/_chunks/{dependent-selector-yTKKsuc9.js → dependent-selector-BHDP0nBB.js} +3 -3
- package/dist/_chunks/{dependent-selector-yTKKsuc9.js.map → dependent-selector-BHDP0nBB.js.map} +1 -1
- package/dist/_chunks/{description-list-CjJqR8WK.js → description-list-C1RXMDZ_.js} +2 -2
- package/dist/_chunks/{description-list-CjJqR8WK.js.map → description-list-C1RXMDZ_.js.map} +1 -1
- package/dist/_chunks/{document-preview-BrhMHNh8.js → document-preview-DsEyRcNd.js} +4 -4
- package/dist/_chunks/{document-preview-BrhMHNh8.js.map → document-preview-DsEyRcNd.js.map} +1 -1
- package/dist/_chunks/{document-scanner-C5Vrbu21.js → document-scanner-CbWVtm7u.js} +53 -52
- package/dist/_chunks/{document-scanner-C5Vrbu21.js.map → document-scanner-CbWVtm7u.js.map} +1 -1
- package/dist/_chunks/{due-date-calculator-CxgK8vzt.js → due-date-calculator-Dhc9Ljkb.js} +6 -6
- package/dist/_chunks/{due-date-calculator-CxgK8vzt.js.map → due-date-calculator-Dhc9Ljkb.js.map} +1 -1
- package/dist/_chunks/{editable-currency-cell-renderer-B7TVZ5ZJ.js → editable-currency-cell-renderer-D7blbDFY.js} +4 -4
- package/dist/_chunks/{editable-currency-cell-renderer-B7TVZ5ZJ.js.map → editable-currency-cell-renderer-D7blbDFY.js.map} +1 -1
- package/dist/_chunks/{editor-overlay-DEc5yYwo.js → editor-overlay-8fKAcRsm.js} +2 -2
- package/dist/_chunks/{editor-overlay-DEc5yYwo.js.map → editor-overlay-8fKAcRsm.js.map} +1 -1
- package/dist/_chunks/{entity-card-DmrgYSEX.js → entity-card-I-Gio5wo.js} +36 -32
- package/dist/_chunks/entity-card-I-Gio5wo.js.map +1 -0
- package/dist/_chunks/{entity-summary-5o768XLU.js → entity-summary-BbW0mIzU.js} +4 -4
- package/dist/_chunks/{entity-summary-5o768XLU.js.map → entity-summary-BbW0mIzU.js.map} +1 -1
- package/dist/_chunks/{face-scheme-l-CQyLs-.js → face-scheme-uFvhqz6h.js} +4 -4
- package/dist/_chunks/{face-scheme-l-CQyLs-.js.map → face-scheme-uFvhqz6h.js.map} +1 -1
- package/dist/_chunks/{fetal-weight-Dqy0T1fP.js → fetal-weight-C6SxchOv.js} +2 -2
- package/dist/_chunks/{fetal-weight-Dqy0T1fP.js.map → fetal-weight-C6SxchOv.js.map} +1 -1
- package/dist/_chunks/{field-array-BjkXZzSr.js → field-array-C9dmRaIM.js} +2 -2
- package/dist/_chunks/{field-array-BjkXZzSr.js.map → field-array-C9dmRaIM.js.map} +1 -1
- package/dist/_chunks/{file-manager-CI2Qn8qW.js → file-manager-DvkFgj7d.js} +7 -7
- package/dist/_chunks/{file-manager-CI2Qn8qW.js.map → file-manager-DvkFgj7d.js.map} +1 -1
- package/dist/_chunks/{file-upload-CwxdqkMK.js → file-upload-BDpb08GM.js} +71 -78
- package/dist/_chunks/file-upload-BDpb08GM.js.map +1 -0
- package/dist/_chunks/{fiscal-code-input-B_nYMSEM.js → fiscal-code-input-CkwIdB1y.js} +2 -2
- package/dist/_chunks/{fiscal-code-input-B_nYMSEM.js.map → fiscal-code-input-CkwIdB1y.js.map} +1 -1
- package/dist/_chunks/{freemium-paywall-DrXzYfv-.js → freemium-paywall-BqGk_SBU.js} +2 -2
- package/dist/_chunks/{freemium-paywall-DrXzYfv-.js.map → freemium-paywall-BqGk_SBU.js.map} +1 -1
- package/dist/_chunks/{gestational-age-calculator-CZHVrERT.js → gestational-age-calculator-DDOGaPvg.js} +6 -6
- package/dist/_chunks/{gestational-age-calculator-CZHVrERT.js.map → gestational-age-calculator-DDOGaPvg.js.map} +1 -1
- package/dist/_chunks/{hcg-doubling-C2fQxfXd.js → hcg-doubling-Bb_n6tEa.js} +2 -2
- package/dist/_chunks/{hcg-doubling-C2fQxfXd.js.map → hcg-doubling-Bb_n6tEa.js.map} +1 -1
- package/dist/_chunks/{header-DUXRIPyM.js → header-BZ4pZlJV.js} +2 -2
- package/dist/_chunks/{header-DUXRIPyM.js.map → header-BZ4pZlJV.js.map} +1 -1
- package/dist/_chunks/{header-settings-DvjZNMhD.js → header-settings-B8mLc03Q.js} +4 -4
- package/dist/_chunks/{header-settings-DvjZNMhD.js.map → header-settings-B8mLc03Q.js.map} +1 -1
- package/dist/_chunks/hover-card-Bcku1GQu.js +511 -0
- package/dist/_chunks/hover-card-Bcku1GQu.js.map +1 -0
- package/dist/_chunks/{icon-button-DA2CAGHZ.js → icon-button-8xqRnkdG.js} +2 -2
- package/dist/_chunks/{icon-button-DA2CAGHZ.js.map → icon-button-8xqRnkdG.js.map} +1 -1
- package/dist/_chunks/{icon-button-group-VCCod3Hz.js → icon-button-group-Dj6CRoYR.js} +2 -2
- package/dist/_chunks/{icon-button-group-VCCod3Hz.js.map → icon-button-group-Dj6CRoYR.js.map} +1 -1
- package/dist/_chunks/{icon-picker-DOa89vn3.js → icon-picker-CTWzlHJr.js} +2 -2
- package/dist/_chunks/{icon-picker-DOa89vn3.js.map → icon-picker-CTWzlHJr.js.map} +1 -1
- package/dist/_chunks/{info-tip-CADik6WN.js → info-tip-ey_Pon2y.js} +2 -2
- package/dist/_chunks/{info-tip-CADik6WN.js.map → info-tip-ey_Pon2y.js.map} +1 -1
- package/dist/_chunks/{key-value-pair-BIBdZBLg.js → key-value-pair-DczGb4yz.js} +42 -41
- package/dist/_chunks/key-value-pair-DczGb4yz.js.map +1 -0
- package/dist/_chunks/{link-cell-renderer-BEpMNtAa.js → link-cell-renderer-BNa8x6oJ.js} +6 -6
- package/dist/_chunks/{link-cell-renderer-BEpMNtAa.js.map → link-cell-renderer-BNa8x6oJ.js.map} +1 -1
- package/dist/_chunks/loader-circle-BECIU_8N.js +12 -0
- package/dist/_chunks/loader-circle-BECIU_8N.js.map +1 -0
- package/dist/_chunks/{locale-picker-CwFtqSkt.js → locale-picker-BLeHbFSc.js} +3 -3
- package/dist/_chunks/{locale-picker-CwFtqSkt.js.map → locale-picker-BLeHbFSc.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-CK_ND8Tr.js → marketplace-app-shell-BwH6Aruw.js} +6 -6
- package/dist/_chunks/{marketplace-app-shell-CK_ND8Tr.js.map → marketplace-app-shell-BwH6Aruw.js.map} +1 -1
- package/dist/_chunks/{message-card-BUMv16un.js → message-card-Dm5Xshup.js} +2 -2
- package/dist/_chunks/{message-card-BUMv16un.js.map → message-card-Dm5Xshup.js.map} +1 -1
- package/dist/_chunks/{message-tray-0zsv27xX.js → message-tray-BcLyaO-G.js} +3 -3
- package/dist/_chunks/{message-tray-0zsv27xX.js.map → message-tray-BcLyaO-G.js.map} +1 -1
- package/dist/_chunks/{multi-select-DYOvx2SJ.js → multi-select-CtPd7g4x.js} +15 -15
- package/dist/_chunks/{multi-select-DYOvx2SJ.js.map → multi-select-CtPd7g4x.js.map} +1 -1
- package/dist/_chunks/note-attachment-CwDir3kK.js +124 -0
- package/dist/_chunks/note-attachment-CwDir3kK.js.map +1 -0
- package/dist/_chunks/note-timeline-CXfSV3yX.js +231 -0
- package/dist/_chunks/note-timeline-CXfSV3yX.js.map +1 -0
- package/dist/_chunks/{notes-panel-BjLt-kiP.js → notes-panel-Co8D3uDd.js} +7 -7
- package/dist/_chunks/{notes-panel-BjLt-kiP.js.map → notes-panel-Co8D3uDd.js.map} +1 -1
- package/dist/_chunks/{notification-card-CtrzoTUO.js → notification-card-ChcK9Wat.js} +2 -2
- package/dist/_chunks/{notification-card-CtrzoTUO.js.map → notification-card-ChcK9Wat.js.map} +1 -1
- package/dist/_chunks/{notification-tray-BiRzXHDf.js → notification-tray-CJ8jOe-U.js} +4 -4
- package/dist/_chunks/{notification-tray-BiRzXHDf.js.map → notification-tray-CJ8jOe-U.js.map} +1 -1
- package/dist/_chunks/{operator-hero-D7-iiFQ9.js → operator-hero-XIdwDmN2.js} +3 -3
- package/dist/_chunks/{operator-hero-D7-iiFQ9.js.map → operator-hero-XIdwDmN2.js.map} +1 -1
- package/dist/_chunks/{optical-prescription-DUJOhKz_.js → optical-prescription-cphK41eP.js} +2 -2
- package/dist/_chunks/{optical-prescription-DUJOhKz_.js.map → optical-prescription-cphK41eP.js.map} +1 -1
- package/dist/_chunks/panel-header-D_mTdhUp.js +128 -0
- package/dist/_chunks/panel-header-D_mTdhUp.js.map +1 -0
- package/dist/_chunks/patient-details-f7SSXkTJ.js +371 -0
- package/dist/_chunks/patient-details-f7SSXkTJ.js.map +1 -0
- package/dist/_chunks/patient-field-row-BQZoP4m2.js +787 -0
- package/dist/_chunks/patient-field-row-BQZoP4m2.js.map +1 -0
- package/dist/_chunks/{patient-search-HeEUB-_X.js → patient-search-D08b6jgj.js} +2 -2
- package/dist/_chunks/{patient-search-HeEUB-_X.js.map → patient-search-D08b6jgj.js.map} +1 -1
- package/dist/_chunks/patient-summary-card-Bz7KdUin.js +533 -0
- package/dist/_chunks/patient-summary-card-Bz7KdUin.js.map +1 -0
- package/dist/_chunks/{payment-automation-upsell-DwQW2fRp.js → payment-automation-upsell-BLTdE2em.js} +50 -59
- package/dist/_chunks/payment-automation-upsell-BLTdE2em.js.map +1 -0
- package/dist/_chunks/{payment-form-Ds1I9KqB.js → payment-form-BHMDqW9C.js} +2 -2
- package/dist/_chunks/{payment-form-Ds1I9KqB.js.map → payment-form-BHMDqW9C.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-lmKLwsDs.js → payment-request-card-BxcdvxKR.js} +6 -6
- package/dist/_chunks/{payment-request-card-lmKLwsDs.js.map → payment-request-card-BxcdvxKR.js.map} +1 -1
- package/dist/_chunks/{pdf-viewer-DUIsV9s5.js → pdf-viewer-DUKdn5iq.js} +2 -2
- package/dist/_chunks/{pdf-viewer-DUIsV9s5.js.map → pdf-viewer-DUKdn5iq.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-B9fphroR.js → periodontal-chart-BF_e3wZp.js} +2 -2
- package/dist/_chunks/{periodontal-chart-B9fphroR.js.map → periodontal-chart-BF_e3wZp.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-card-qEZPXj83.js → periodontal-chart-card-BJEuJuzh.js} +3 -3
- package/dist/_chunks/{periodontal-chart-card-qEZPXj83.js.map → periodontal-chart-card-BJEuJuzh.js.map} +1 -1
- package/dist/_chunks/{periodontal-diagnosis-lEwA8wqX.js → periodontal-diagnosis-C7pfPOct.js} +5 -5
- package/dist/_chunks/{periodontal-diagnosis-lEwA8wqX.js.map → periodontal-diagnosis-C7pfPOct.js.map} +1 -1
- package/dist/_chunks/{periodontal-risk-chart-0x7KVZjL.js → periodontal-risk-chart-B2tNFa15.js} +2 -2
- package/dist/_chunks/{periodontal-risk-chart-0x7KVZjL.js.map → periodontal-risk-chart-B2tNFa15.js.map} +1 -1
- package/dist/_chunks/{permission-matrix-BIJrGEmz.js → permission-matrix-VdAXjjHU.js} +3 -3
- package/dist/_chunks/{permission-matrix-BIJrGEmz.js.map → permission-matrix-VdAXjjHU.js.map} +1 -1
- package/dist/_chunks/{popover-DP6WCVwm.js → popover-DzR5QYxp.js} +24 -24
- package/dist/_chunks/{popover-DP6WCVwm.js.map → popover-DzR5QYxp.js.map} +1 -1
- package/dist/_chunks/{practice-profile-hero-DQyDvpJL.js → practice-profile-hero-DxoLlQr5.js} +2 -2
- package/dist/_chunks/{practice-profile-hero-DQyDvpJL.js.map → practice-profile-hero-DxoLlQr5.js.map} +1 -1
- package/dist/_chunks/{practice-results-kayDEorM.js → practice-results-DOcORTkP.js} +4 -4
- package/dist/_chunks/{practice-results-kayDEorM.js.map → practice-results-DOcORTkP.js.map} +1 -1
- package/dist/_chunks/{pregnancy-dating-n5j5dAKy.js → pregnancy-dating-nV1_S6w0.js} +6 -6
- package/dist/_chunks/{pregnancy-dating-n5j5dAKy.js.map → pregnancy-dating-nV1_S6w0.js.map} +1 -1
- package/dist/_chunks/{pregnancy-weight-gain-D5A8vPjj.js → pregnancy-weight-gain-tRecShAD.js} +4 -4
- package/dist/_chunks/{pregnancy-weight-gain-D5A8vPjj.js.map → pregnancy-weight-gain-tRecShAD.js.map} +1 -1
- package/dist/_chunks/{privacy-lock-CkAUo6Dz.js → privacy-lock-Be39vQUN.js} +2 -2
- package/dist/_chunks/{privacy-lock-CkAUo6Dz.js.map → privacy-lock-Be39vQUN.js.map} +1 -1
- package/dist/_chunks/{product-hub-panel-BScCotGD.js → product-hub-panel-C0TO69P7.js} +2 -2
- package/dist/_chunks/{product-hub-panel-BScCotGD.js.map → product-hub-panel-C0TO69P7.js.map} +1 -1
- package/dist/_chunks/{public-header.agent-kth2SdXn.js → public-header.agent-Bl1KFwSE.js} +3 -3
- package/dist/_chunks/{public-header.agent-kth2SdXn.js.map → public-header.agent-Bl1KFwSE.js.map} +1 -1
- package/dist/_chunks/{radio-DNRe6H_8.js → radio-6fml-pWk.js} +2 -2
- package/dist/_chunks/{radio-DNRe6H_8.js.map → radio-6fml-pWk.js.map} +1 -1
- package/dist/_chunks/{radio-group-DyVBgnA3.js → radio-group-CIjmyioi.js} +3 -3
- package/dist/_chunks/{radio-group-DyVBgnA3.js.map → radio-group-CIjmyioi.js.map} +1 -1
- package/dist/_chunks/{radiograph-panel.agent-o4jwEJPC.js → radiograph-panel.agent-k0G7JuoM.js} +6 -6
- package/dist/_chunks/{radiograph-panel.agent-o4jwEJPC.js.map → radiograph-panel.agent-k0G7JuoM.js.map} +1 -1
- package/dist/_chunks/{reviews-panel-BKHEfqVQ.js → reviews-panel-BaHZb_ai.js} +3 -3
- package/dist/_chunks/{reviews-panel-BKHEfqVQ.js.map → reviews-panel-BaHZb_ai.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-CCI-Y3DN.js → rich-text-editor-BTXlorm5.js} +7 -7
- package/dist/_chunks/{rich-text-editor-CCI-Y3DN.js.map → rich-text-editor-BTXlorm5.js.map} +1 -1
- package/dist/_chunks/{search-bar-CJj6sI9m.js → search-bar-CCmViqaa.js} +46 -46
- package/dist/_chunks/{search-bar-CJj6sI9m.js.map → search-bar-CCmViqaa.js.map} +1 -1
- package/dist/_chunks/section-card.agent-W18CHEgX.js +74 -0
- package/dist/_chunks/section-card.agent-W18CHEgX.js.map +1 -0
- package/dist/_chunks/{sheet-BSznOyJs.js → sheet-hm04DGFd.js} +2 -2
- package/dist/_chunks/{sheet-BSznOyJs.js.map → sheet-hm04DGFd.js.map} +1 -1
- package/dist/_chunks/{sign-document-jF4fZDJ5.js → sign-document-CRQuAn4W.js} +2 -2
- package/dist/_chunks/{sign-document-jF4fZDJ5.js.map → sign-document-CRQuAn4W.js.map} +1 -1
- package/dist/_chunks/{signature-request-vihDT8On.js → signature-request-Dej2g86d.js} +5 -5
- package/dist/_chunks/{signature-request-vihDT8On.js.map → signature-request-Dej2g86d.js.map} +1 -1
- package/dist/_chunks/{signature-status-chip-T5fyS-k9.js → signature-status-chip-D4NsrdeI.js} +3 -3
- package/dist/_chunks/{signature-status-chip-T5fyS-k9.js.map → signature-status-chip-D4NsrdeI.js.map} +1 -1
- package/dist/_chunks/{slot-grid-BuZOKfcd.js → slot-grid-8Ko6thzz.js} +2 -2
- package/dist/_chunks/{slot-grid-BuZOKfcd.js.map → slot-grid-8Ko6thzz.js.map} +1 -1
- package/dist/_chunks/{streaming-text-CvsjIQ7S.js → streaming-text-DjFqLSt_.js} +2 -2
- package/dist/_chunks/{streaming-text-CvsjIQ7S.js.map → streaming-text-DjFqLSt_.js.map} +1 -1
- package/dist/_chunks/{tab-bar-DvFJIQfL.js → tab-bar-rDkLiaA6.js} +2 -2
- package/dist/_chunks/{tab-bar-DvFJIQfL.js.map → tab-bar-rDkLiaA6.js.map} +1 -1
- package/dist/_chunks/{tag-3wgkwwDB.js → tag-Ci3xJPcH.js} +2 -2
- package/dist/_chunks/{tag-3wgkwwDB.js.map → tag-Ci3xJPcH.js.map} +1 -1
- package/dist/_chunks/{task-tray-COo-RlDv.js → task-tray-wl9eti6J.js} +2 -2
- package/dist/_chunks/{task-tray-COo-RlDv.js.map → task-tray-wl9eti6J.js.map} +1 -1
- package/dist/_chunks/{tasks-panel-DLKpSNoE.js → tasks-panel-BDNB7hsZ.js} +5 -5
- package/dist/_chunks/{tasks-panel-DLKpSNoE.js.map → tasks-panel-BDNB7hsZ.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-uEwoKjl3.js → theme-toggle-CMz8YfC1.js} +3 -3
- package/dist/_chunks/{theme-toggle-uEwoKjl3.js.map → theme-toggle-CMz8YfC1.js.map} +1 -1
- package/dist/_chunks/{timeline-Bs9Erxlo.js → timeline-61AihzYz.js} +47 -47
- package/dist/_chunks/timeline-61AihzYz.js.map +1 -0
- package/dist/_chunks/{toast-YZz2sBzB.js → toast-8jqtbfAB.js} +2 -2
- package/dist/_chunks/{toast-YZz2sBzB.js.map → toast-8jqtbfAB.js.map} +1 -1
- package/dist/_chunks/{tool-rail-ONaV-Nzz.js → tool-rail-Bq5eiFMG.js} +3 -3
- package/dist/_chunks/{tool-rail-ONaV-Nzz.js.map → tool-rail-Bq5eiFMG.js.map} +1 -1
- package/dist/_chunks/{tooltip-DvmfrNvB.js → tooltip-Cp-PLePW.js} +41 -41
- package/dist/_chunks/tooltip-Cp-PLePW.js.map +1 -0
- package/dist/_chunks/{tooth-scheme-Qe7LO5Di.js → tooth-scheme-BWkYxxjR.js} +3 -3
- package/dist/_chunks/{tooth-scheme-Qe7LO5Di.js.map → tooth-scheme-BWkYxxjR.js.map} +1 -1
- package/dist/_chunks/{transaction-chip-DJCstquX.js → transaction-chip-Dth1nThY.js} +49 -48
- package/dist/_chunks/{transaction-chip-DJCstquX.js.map → transaction-chip-Dth1nThY.js.map} +1 -1
- package/dist/_chunks/{transcript-panel-BGkEhvHO.js → transcript-panel-u2HHxZB6.js} +2 -2
- package/dist/_chunks/{transcript-panel-BGkEhvHO.js.map → transcript-panel-u2HHxZB6.js.map} +1 -1
- package/dist/_chunks/user-x-DYszNtIg.js +45 -0
- package/dist/_chunks/user-x-DYszNtIg.js.map +1 -0
- package/dist/_chunks/{warning-stack-DQz0Jyir.js → warning-stack-BW5Dwb3z.js} +3 -3
- package/dist/_chunks/{warning-stack-DQz0Jyir.js.map → warning-stack-BW5Dwb3z.js.map} +1 -1
- package/dist/_chunks/{widget-picker-DvUkBemi.js → widget-picker-B1sj6uyf.js} +2 -2
- package/dist/_chunks/{widget-picker-DvUkBemi.js.map → widget-picker-B1sj6uyf.js.map} +1 -1
- package/dist/_chunks/{workflow-map-dNzJjBWG.js → workflow-map-D-LEni11.js} +5 -5
- package/dist/_chunks/{workflow-map-dNzJjBWG.js.map → workflow-map-D-LEni11.js.map} +1 -1
- package/dist/_chunks/workflow-status-xeaJTzD3.js +476 -0
- package/dist/_chunks/workflow-status-xeaJTzD3.js.map +1 -0
- package/dist/agent-catalog.json +185 -1
- package/dist/agent-i18n/en.json +27 -0
- package/dist/components/_shared/entity-card/entity-card.d.ts +44 -0
- package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
- package/dist/components/_shared/entity-card/index.d.ts +1 -1
- package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
- package/dist/components/_shared/note-attachment.d.ts +41 -0
- package/dist/components/_shared/note-attachment.d.ts.map +1 -0
- package/dist/components/_shared/note-markdown.d.ts +3 -0
- package/dist/components/_shared/note-markdown.d.ts.map +1 -0
- package/dist/components/_shared/patient-field-row.d.ts +40 -0
- package/dist/components/_shared/patient-field-row.d.ts.map +1 -0
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-consent-banner/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/anamnesis-card/index.js +1 -1
- package/dist/components/anamnesis-summary-card/index.js +1 -1
- package/dist/components/appointment-card/appointment-card.d.ts +36 -1
- package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +6 -0
- package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/button/index.js +1 -1
- package/dist/components/button-group/button-group.d.ts +20 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +2 -34
- package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
- package/dist/components/clinical-note-card/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/counter/counter.d.ts +6 -0
- package/dist/components/counter/counter.d.ts.map +1 -1
- package/dist/components/counter/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/date-picker/index.js +1 -1
- package/dist/components/dependent-selector/index.js +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/document-scanner/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- package/dist/components/editor-overlay/index.js +1 -1
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/fetal-weight/index.js +1 -1
- package/dist/components/field-array/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/fiscal-code-input/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/hover-card/hover-card.agent.d.ts +4 -0
- package/dist/components/hover-card/hover-card.agent.d.ts.map +1 -0
- package/dist/components/hover-card/hover-card.d.ts +80 -0
- package/dist/components/hover-card/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card/index.d.ts +4 -0
- package/dist/components/hover-card/index.d.ts.map +1 -0
- package/dist/components/hover-card/index.js +6 -0
- package/dist/components/hover-card/index.js.map +1 -0
- 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/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/info-tip/index.js +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/key-value-pair/key-value-pair.d.ts +8 -1
- package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/note-timeline/index.d.ts +4 -0
- package/dist/components/note-timeline/index.d.ts.map +1 -0
- package/dist/components/note-timeline/index.js +6 -0
- package/dist/components/note-timeline/index.js.map +1 -0
- package/dist/components/note-timeline/note-timeline.agent.d.ts +4 -0
- package/dist/components/note-timeline/note-timeline.agent.d.ts.map +1 -0
- package/dist/components/note-timeline/note-timeline.d.ts +77 -0
- package/dist/components/note-timeline/note-timeline.d.ts.map +1 -0
- 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/index.js +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/panel-header/index.js +1 -1
- package/dist/components/panel-header/panel-header.d.ts +7 -0
- package/dist/components/panel-header/panel-header.d.ts.map +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-details/patient-details.d.ts.map +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 +54 -0
- package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/periodontal-chart/index.js +1 -1
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/periodontal-diagnosis/index.js +1 -1
- package/dist/components/periodontal-risk-chart/index.js +1 -1
- package/dist/components/permission-matrix/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/practice-profile-hero/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio-group/index.js +2 -2
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/section-card/index.d.ts +4 -0
- package/dist/components/section-card/index.d.ts.map +1 -0
- package/dist/components/section-card/index.js +6 -0
- package/dist/components/section-card/index.js.map +1 -0
- package/dist/components/section-card/section-card.agent.d.ts +3 -0
- package/dist/components/section-card/section-card.agent.d.ts.map +1 -0
- package/dist/components/section-card/section-card.d.ts +30 -0
- package/dist/components/section-card/section-card.d.ts.map +1 -0
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/signature-status-chip/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tag/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/timeline/index.js +1 -1
- package/dist/components/timeline/timeline.d.ts +1 -1
- package/dist/components/timeline/timeline.d.ts.map +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/transaction-chip/index.js +1 -1
- package/dist/components/transaction-chip/transaction-chip.d.ts +11 -0
- package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/widget-picker/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/components/workflow-status/index.d.ts +4 -0
- package/dist/components/workflow-status/index.d.ts.map +1 -0
- package/dist/components/workflow-status/index.js +7 -0
- package/dist/components/workflow-status/index.js.map +1 -0
- package/dist/components/workflow-status/workflow-status.agent.d.ts +4 -0
- package/dist/components/workflow-status/workflow-status.agent.d.ts.map +1 -0
- package/dist/components/workflow-status/workflow-status.d.ts +52 -0
- package/dist/components/workflow-status/workflow-status.d.ts.map +1 -0
- package/dist/host-compat.css +4 -1
- package/dist/i18n/locales/ar.d.ts +17 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +18 -1
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +17 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +18 -1
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +17 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +18 -1
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +17 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +18 -1
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +17 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +18 -1
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +17 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +18 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +17 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +18 -1
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +20 -3
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +20 -3
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +17 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +18 -1
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +17 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +18 -1
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +17 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +18 -1
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +17 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +18 -1
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +17 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +18 -1
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +17 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +18 -1
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +17 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +18 -1
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +17 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +18 -1
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +17 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +18 -1
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +17 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +18 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +929 -916
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +18 -1
- package/dist/locales/de.json +18 -1
- package/dist/locales/el.json +18 -1
- package/dist/locales/en.json +18 -1
- package/dist/locales/es.json +18 -1
- package/dist/locales/fr.json +18 -1
- package/dist/locales/hi.json +18 -1
- package/dist/locales/it.json +20 -3
- package/dist/locales/ja.json +18 -1
- package/dist/locales/nl.json +18 -1
- package/dist/locales/pl.json +18 -1
- package/dist/locales/pt.json +18 -1
- package/dist/locales/ro.json +18 -1
- package/dist/locales/ru.json +18 -1
- package/dist/locales/sq.json +18 -1
- package/dist/locales/sv.json +18 -1
- package/dist/locales/tr.json +18 -1
- package/dist/locales/zh.json +18 -1
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar.model.d.ts +2 -0
- package/dist/patterns/calendar/calendar.model.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +17 -1
- package/dist/_chunks/appointment-card-D6mk39NB.js +0 -296
- package/dist/_chunks/appointment-card-D6mk39NB.js.map +0 -1
- package/dist/_chunks/appointment-timeline-D-V97Bhc.js +0 -403
- package/dist/_chunks/appointment-timeline-D-V97Bhc.js.map +0 -1
- package/dist/_chunks/button-group-CaxRJsNG.js +0 -289
- package/dist/_chunks/button-group-CaxRJsNG.js.map +0 -1
- package/dist/_chunks/calendar-event-card-DSh-69HT.js.map +0 -1
- package/dist/_chunks/calendar-workspace-4NH1Z47_.js.map +0 -1
- package/dist/_chunks/clinical-note-card-CTRzmqvv.js +0 -438
- package/dist/_chunks/clinical-note-card-CTRzmqvv.js.map +0 -1
- package/dist/_chunks/counter-dRlTNC_y.js.map +0 -1
- package/dist/_chunks/entity-card-DmrgYSEX.js.map +0 -1
- package/dist/_chunks/field-value-BetdWMA2.js +0 -384
- package/dist/_chunks/field-value-BetdWMA2.js.map +0 -1
- package/dist/_chunks/file-upload-CwxdqkMK.js.map +0 -1
- package/dist/_chunks/key-value-pair-BIBdZBLg.js.map +0 -1
- package/dist/_chunks/panel-header-D313n_9-.js +0 -105
- package/dist/_chunks/panel-header-D313n_9-.js.map +0 -1
- package/dist/_chunks/patient-details-BGiawUHd.js +0 -760
- package/dist/_chunks/patient-details-BGiawUHd.js.map +0 -1
- package/dist/_chunks/patient-summary-card--CT_gbaQ.js +0 -454
- package/dist/_chunks/patient-summary-card--CT_gbaQ.js.map +0 -1
- package/dist/_chunks/payment-automation-upsell-DwQW2fRp.js.map +0 -1
- package/dist/_chunks/timeline-Bs9Erxlo.js.map +0 -1
- package/dist/_chunks/tooltip-DvmfrNvB.js.map +0 -1
|
@@ -6,7 +6,7 @@ import { u as _ } from "./registry-DvAUVLHh.js";
|
|
|
6
6
|
import { F as D } from "./form-field-CahJzTxp.js";
|
|
7
7
|
import { N as q } from "./number-input-Cgu2TtA8.js";
|
|
8
8
|
import { C } from "./card-DPmk26CL.js";
|
|
9
|
-
import { B as z } from "./badge-
|
|
9
|
+
import { B as z } from "./badge-BudgzTe_.js";
|
|
10
10
|
import { I as G } from "./insert-result-LCNTskNJ.js";
|
|
11
11
|
const v = (e) => ({
|
|
12
12
|
oneOf: [{ type: "number", exclusiveMinimum: 0 }, { type: "null" }],
|
|
@@ -220,4 +220,4 @@ export {
|
|
|
220
220
|
Y as F,
|
|
221
221
|
Q as e
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=fetal-weight-
|
|
223
|
+
//# sourceMappingURL=fetal-weight-C6SxchOv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetal-weight-Dqy0T1fP.js","sources":["../../src/components/fetal-weight/fetal-weight.agent.ts","../../src/components/fetal-weight/efw.ts","../../src/components/fetal-weight/fetal-weight.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — FetalWeight. */\n/* */\n/* Clinical calculator: ultrasound biometry (BPD / HC / AC / FL, mm) → */\n/* estimated fetal weight in grams via Hadlock. The agent surface is the */\n/* four biometry inputs plus the computed EFW; the handle is the curated */\n/* `FetalWeightHandle` (the public `ref` stays the root <div>, exactly as */\n/* `slider.tsx` and `bmi-calculator.tsx` keep theirs). */\n/* */\n/* PHI (§7): never exposes patient identity — the slots return the */\n/* operator's own structural measurements in millimetres and the weight */\n/* derived from them. See `src/docs/26-agent-readiness.mdx`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { FetalWeightHandle } from './fetal-weight';\n\n/** JSON Schema fragment for one optional biometry measurement, millimetres. */\nconst measurement = (label: string) => ({\n oneOf: [{ type: 'number', exclusiveMinimum: 0 }, { type: 'null' }],\n description: `${label} in millimetres, or null to clear it.`,\n});\n\nexport const fetalWeightAgent: AgentAdapter<FetalWeightHandle> = {\n id: 'fetal-weight',\n // set_value → the `set_biometry` action + the `biometry` state slot.\n capabilities: ['set_value'],\n state: {\n biometry: {\n type: '{ bpdMm: number | null, hcMm: number | null, acMm: number | null, flMm: number | null }',\n descriptionKey: 'ui.agent.fetalWeight.state.biometry',\n description:\n 'The four ultrasound measurements as entered, in millimetres — biparietal diameter, head circumference, abdominal circumference and femur length. Null where unset. Read this to see why a result is still null.',\n read: (handle) => handle.getBiometry(),\n },\n result: {\n type: \"{ grams: number, method: 'hadlock4' | 'hadlock1' } | null\",\n descriptionKey: 'ui.agent.fetalWeight.state.result',\n description:\n 'Estimated fetal weight in grams and which Hadlock regression produced it — `hadlock4` when all four measurements are present, `hadlock1` from AC + FL alone. Null until AC and FL are both set.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_biometry: {\n // Drives the same local input state a user types into; nothing is\n // persisted to a record, and every value is reversible in the same UI.\n safety: 'write',\n argsType:\n '{ bpdMm?: number | null, hcMm?: number | null, acMm?: number | null, flMm?: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n bpdMm: measurement('Biparietal diameter'),\n hcMm: measurement('Head circumference'),\n acMm: measurement('Abdominal circumference'),\n flMm: measurement('Femur length'),\n },\n additionalProperties: false,\n },\n idempotent: true,\n returns: 'boolean',\n returnsSchema: {\n type: 'boolean',\n description: 'True when the measurements were applied.',\n },\n errors: [\n 'Returns false and writes nothing when any supplied measurement is not a positive number — the payload applies all-or-nothing.',\n ],\n examples: [\n {\n args: { bpdMm: 85, hcMm: 310, acMm: 300, flMm: 62 },\n note: 'Full biometry around 32 weeks → the Hadlock 4-parameter estimate.',\n },\n {\n args: { acMm: 300, flMm: 62 },\n note: 'AC + FL only — the minimum for an estimate, via Hadlock 1.',\n },\n ],\n descriptionKey: 'ui.agent.fetalWeight.actions.setBiometry',\n description:\n 'Set any subset of the ultrasound biometry in millimetres. Omitted measurements are left unchanged; an explicit null clears one. AC and FL are the minimum for an estimate.',\n invoke: (\n handle,\n args: {\n bpdMm?: number | null;\n hcMm?: number | null;\n acMm?: number | null;\n flMm?: number | null;\n },\n ) => handle.setBiometry(args),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'fetal-weight',\n description:\n 'Marks the FetalWeight calculator (estimated fetal weight from ultrasound biometry).',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Also the registry key — without an `id` the instance does not register and the handle-driven action/state are unreachable.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Estimated fetal weight (EFW) from ultrasound biometry — Hadlock. */\n/* */\n/* Pure, framework-free, unit-testable. Hadlock (1985) regressions on */\n/* log10(weight in grams) from biometry in CENTIMETRES (inputs are taken */\n/* in mm and converted). The 4-parameter formula (BPD+HC+AC+FL) is the */\n/* default; the AC+FL formula is the fallback for partial biometry. */\n/* */\n/* Hadlock FP, Harrist RB, Sharman RS, Deter RL, Park SK. \"Estimation of */\n/* fetal weight with the use of head, body, and femur measurements.\" */\n/* Am J Obstet Gynecol 1985;151:333-7. */\n/* ------------------------------------------------------------------ */\n\nexport interface FetalBiometryInput {\n /** Biparietal diameter, mm. */\n bpdMm?: number | null;\n /** Head circumference, mm. */\n hcMm?: number | null;\n /** Abdominal circumference, mm. */\n acMm?: number | null;\n /** Femur length, mm. */\n flMm?: number | null;\n}\n\n/** Which Hadlock regression produced the estimate. */\nexport type EfwMethod = 'hadlock4' | 'hadlock1';\n\nexport interface EfwResult {\n /** Estimated fetal weight, grams (rounded to the nearest gram). */\n grams: number;\n /** The Hadlock regression used, given the available measurements. */\n method: EfwMethod;\n}\n\n/** A measurement is usable when it is a positive, finite number. */\nfunction cm(mm: number | null | undefined): number | null {\n return typeof mm === 'number' && Number.isFinite(mm) && mm > 0\n ? mm / 10\n : null;\n}\n\n/**\n * Estimate fetal weight from biometry. Uses the Hadlock 4-parameter formula\n * when BPD, HC, AC and FL are all present, else the AC+FL formula. Returns\n * `null` when AC and FL (the minimum) aren't both available.\n */\nexport function estimateFetalWeight(\n input: FetalBiometryInput,\n): EfwResult | null {\n const bpd = cm(input.bpdMm);\n const hc = cm(input.hcMm);\n const ac = cm(input.acMm);\n const fl = cm(input.flMm);\n\n // AC + FL are the minimum for any Hadlock estimate.\n if (ac === null || fl === null) return null;\n\n let log10: number;\n let method: EfwMethod;\n\n if (bpd !== null && hc !== null) {\n // Hadlock 4 (BPD, HC, AC, FL).\n log10 =\n 1.3596 -\n 0.00386 * ac * fl +\n 0.0064 * hc +\n 0.00061 * bpd * ac +\n 0.0424 * ac +\n 0.174 * fl;\n method = 'hadlock4';\n } else {\n // Hadlock 1 (AC, FL).\n log10 = 1.304 + 0.05281 * ac + 0.1938 * fl - 0.004 * ac * fl;\n method = 'hadlock1';\n }\n\n return { grams: Math.round(10 ** log10), method };\n}\n","/* ------------------------------------------------------------------ */\n/* FetalWeight — estimated fetal weight from ultrasound biometry. */\n/* */\n/* Inputs BPD / HC / AC / FL (mm); outputs EFW in grams via Hadlock */\n/* (maths in `./fetal-weight`, pure + tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { fetalWeightAgent } from './fetal-weight.agent';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\nimport { Card } from '../card';\nimport { Badge } from '../badge';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport { type EfwResult, estimateFetalWeight } from './efw';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/** A biometry figure is usable when it is a positive finite number, or cleared. */\nconst isMeasurement = (n: number | null | undefined): boolean =>\n n === null || n === undefined || (Number.isFinite(n) && n > 0);\n\n/** Canonical biometry snapshot — millimetres, or null where unset. */\nexport interface FetalBiometrySnapshot {\n bpdMm: number | null;\n hcMm: number | null;\n acMm: number | null;\n flMm: number | null;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Reads the four\n * biometry measurements and the Hadlock estimate, and writes the measurements\n * the way a user would type them. Never exposes patient identity — only\n * structural millimetres and the derived weight. Consumed by\n * `fetal-weight.agent.ts`; the public `ref` stays the root DOM element.\n */\nexport interface FetalWeightHandle {\n /** Current biometry in millimetres, or null where unset. */\n getBiometry: () => FetalBiometrySnapshot;\n /** Estimated fetal weight + the regression used, or null below the minimum biometry. */\n getResult: () => EfwResult | null;\n /**\n * Set any subset of the biometry in millimetres. Omitted keys are left\n * unchanged; an explicit `null` clears that measurement. Applies all-or-\n * nothing — returns false and writes nothing if any value is not positive.\n */\n setBiometry: (next: Partial<FetalBiometrySnapshot>) => boolean;\n}\n\nexport interface FetalWeightProps extends VariantProps<typeof rootVariants> {\n /** Fires whenever an estimate can be computed (and `null` when it can't). */\n onResultChange?: (result: EfwResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /** Which verb the result button performs. Defaults to `'insert'`. */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /** Brand wordmark printed in the inserted/copied result-card footer. */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\nexport const FetalWeight = forwardRef<HTMLDivElement, FetalWeightProps>(\n (\n {\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n const [bpdMm, setBpdMm] = useState<number | null>(null);\n const [hcMm, setHcMm] = useState<number | null>(null);\n const [acMm, setAcMm] = useState<number | null>(null);\n const [flMm, setFlMm] = useState<number | null>(null);\n\n const result = useMemo(\n () => estimateFetalWeight({ bpdMm, hcMm, acMm, flMm }),\n [bpdMm, hcMm, acMm, flMm],\n );\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n /* ── Agent handle ────────────────────────────────────────────────── */\n const liveRef = useRef({ bpdMm, hcMm, acMm, flMm, result });\n liveRef.current = { bpdMm, hcMm, acMm, flMm, result };\n\n const agentHandle = useMemo<FetalWeightHandle>(\n () => ({\n getBiometry: () => {\n const { bpdMm: bpd, hcMm: hc, acMm: ac, flMm: fl } = liveRef.current;\n return { bpdMm: bpd, hcMm: hc, acMm: ac, flMm: fl };\n },\n getResult: () => liveRef.current.result,\n setBiometry: (next) => {\n const entries = [\n ['bpdMm', setBpdMm],\n ['hcMm', setHcMm],\n ['acMm', setAcMm],\n ['flMm', setFlMm],\n ] as const;\n // Validate the whole payload before writing any of it, so a bad\n // value can't leave the form half-updated.\n for (const [key] of entries) {\n if (key in next && !isMeasurement(next[key])) return false;\n }\n for (const [key, set] of entries) {\n if (key in next) set(next[key] ?? null);\n }\n return true;\n },\n }),\n [],\n );\n useAgentRegistration(fetalWeightAgent, agentHandle, id);\n\n const grams = useMemo(\n () => new Intl.NumberFormat(i18n.language, { maximumFractionDigits: 0 }),\n [i18n.language],\n );\n\n const unit = t('fetalWeight.units.mm');\n const efwText = (r: EfwResult): string =>\n t('fetalWeight.efwValue', { grams: grams.format(r.grams) });\n\n const fields: {\n label: string;\n value: number | null;\n onChange: (v: number | null) => void;\n }[] = [\n { label: t('fetalWeight.bpd'), value: bpdMm, onChange: setBpdMm },\n { label: t('fetalWeight.hc'), value: hcMm, onChange: setHcMm },\n { label: t('fetalWeight.ac'), value: acMm, onChange: setAcMm },\n { label: t('fetalWeight.fl'), value: flMm, onChange: setFlMm },\n ];\n\n return (\n <div\n ref={ref}\n data-component=\"fetal-weight\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n {fields.map((f) => (\n <FormField key={f.label} label={`${f.label} (${unit})`}>\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={f.value}\n onChange={f.onChange}\n />\n </FormField>\n ))}\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result ? `${t('fetalWeight.efwLabel')}: ${efwText(result)}.` : ''}\n </p>\n\n {result ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <dl className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('fetalWeight.efwLabel')}\n </dt>\n <dd className=\"type-metric ds:text-foreground\">\n {efwText(result)}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-end ds:gap-[var(--spacing-xs)] ds:text-end\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('fetalWeight.methodLabel')}\n </dt>\n <dd>\n <Badge variant=\"info\">\n {t(`fetalWeight.method.${result.method}`)}\n </Badge>\n </dd>\n </div>\n </dl>\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t('fetalWeight.disclaimer')}\n </p>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n onInsert={onInsert}\n variant={insertVariant}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.fetalWeight'),\n icon: 'scale',\n highlight: efwText(result),\n highlightToken: '--info',\n brand: insertBrand,\n fields: [\n {\n icon: 'scale',\n label: t('fetalWeight.efwLabel'),\n value: efwText(result),\n },\n {\n icon: 'activity',\n label: t('fetalWeight.methodLabel'),\n value: t(`fetalWeight.method.${result.method}`),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('fetalWeight.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nFetalWeight.displayName = 'FetalWeight';\n"],"names":["measurement","label","fetalWeightAgent","handle","args","cm","mm","estimateFetalWeight","input","bpd","hc","ac","fl","log10","method","rootVariants","cva","isMeasurement","n","FetalWeight","forwardRef","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","i18n","useTranslation","bpdMm","setBpdMm","useState","hcMm","setHcMm","acMm","setAcMm","flMm","setFlMm","result","useMemo","useEffect","liveRef","useRef","agentHandle","next","entries","key","set","useAgentRegistration","grams","unit","efwText","r","fields","jsxs","jsx","f","FormField","NumberInput","Card","Badge","InsertButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetal-weight-C6SxchOv.js","sources":["../../src/components/fetal-weight/fetal-weight.agent.ts","../../src/components/fetal-weight/efw.ts","../../src/components/fetal-weight/fetal-weight.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — FetalWeight. */\n/* */\n/* Clinical calculator: ultrasound biometry (BPD / HC / AC / FL, mm) → */\n/* estimated fetal weight in grams via Hadlock. The agent surface is the */\n/* four biometry inputs plus the computed EFW; the handle is the curated */\n/* `FetalWeightHandle` (the public `ref` stays the root <div>, exactly as */\n/* `slider.tsx` and `bmi-calculator.tsx` keep theirs). */\n/* */\n/* PHI (§7): never exposes patient identity — the slots return the */\n/* operator's own structural measurements in millimetres and the weight */\n/* derived from them. See `src/docs/26-agent-readiness.mdx`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { FetalWeightHandle } from './fetal-weight';\n\n/** JSON Schema fragment for one optional biometry measurement, millimetres. */\nconst measurement = (label: string) => ({\n oneOf: [{ type: 'number', exclusiveMinimum: 0 }, { type: 'null' }],\n description: `${label} in millimetres, or null to clear it.`,\n});\n\nexport const fetalWeightAgent: AgentAdapter<FetalWeightHandle> = {\n id: 'fetal-weight',\n // set_value → the `set_biometry` action + the `biometry` state slot.\n capabilities: ['set_value'],\n state: {\n biometry: {\n type: '{ bpdMm: number | null, hcMm: number | null, acMm: number | null, flMm: number | null }',\n descriptionKey: 'ui.agent.fetalWeight.state.biometry',\n description:\n 'The four ultrasound measurements as entered, in millimetres — biparietal diameter, head circumference, abdominal circumference and femur length. Null where unset. Read this to see why a result is still null.',\n read: (handle) => handle.getBiometry(),\n },\n result: {\n type: \"{ grams: number, method: 'hadlock4' | 'hadlock1' } | null\",\n descriptionKey: 'ui.agent.fetalWeight.state.result',\n description:\n 'Estimated fetal weight in grams and which Hadlock regression produced it — `hadlock4` when all four measurements are present, `hadlock1` from AC + FL alone. Null until AC and FL are both set.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_biometry: {\n // Drives the same local input state a user types into; nothing is\n // persisted to a record, and every value is reversible in the same UI.\n safety: 'write',\n argsType:\n '{ bpdMm?: number | null, hcMm?: number | null, acMm?: number | null, flMm?: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n bpdMm: measurement('Biparietal diameter'),\n hcMm: measurement('Head circumference'),\n acMm: measurement('Abdominal circumference'),\n flMm: measurement('Femur length'),\n },\n additionalProperties: false,\n },\n idempotent: true,\n returns: 'boolean',\n returnsSchema: {\n type: 'boolean',\n description: 'True when the measurements were applied.',\n },\n errors: [\n 'Returns false and writes nothing when any supplied measurement is not a positive number — the payload applies all-or-nothing.',\n ],\n examples: [\n {\n args: { bpdMm: 85, hcMm: 310, acMm: 300, flMm: 62 },\n note: 'Full biometry around 32 weeks → the Hadlock 4-parameter estimate.',\n },\n {\n args: { acMm: 300, flMm: 62 },\n note: 'AC + FL only — the minimum for an estimate, via Hadlock 1.',\n },\n ],\n descriptionKey: 'ui.agent.fetalWeight.actions.setBiometry',\n description:\n 'Set any subset of the ultrasound biometry in millimetres. Omitted measurements are left unchanged; an explicit null clears one. AC and FL are the minimum for an estimate.',\n invoke: (\n handle,\n args: {\n bpdMm?: number | null;\n hcMm?: number | null;\n acMm?: number | null;\n flMm?: number | null;\n },\n ) => handle.setBiometry(args),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'fetal-weight',\n description:\n 'Marks the FetalWeight calculator (estimated fetal weight from ultrasound biometry).',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Also the registry key — without an `id` the instance does not register and the handle-driven action/state are unreachable.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Estimated fetal weight (EFW) from ultrasound biometry — Hadlock. */\n/* */\n/* Pure, framework-free, unit-testable. Hadlock (1985) regressions on */\n/* log10(weight in grams) from biometry in CENTIMETRES (inputs are taken */\n/* in mm and converted). The 4-parameter formula (BPD+HC+AC+FL) is the */\n/* default; the AC+FL formula is the fallback for partial biometry. */\n/* */\n/* Hadlock FP, Harrist RB, Sharman RS, Deter RL, Park SK. \"Estimation of */\n/* fetal weight with the use of head, body, and femur measurements.\" */\n/* Am J Obstet Gynecol 1985;151:333-7. */\n/* ------------------------------------------------------------------ */\n\nexport interface FetalBiometryInput {\n /** Biparietal diameter, mm. */\n bpdMm?: number | null;\n /** Head circumference, mm. */\n hcMm?: number | null;\n /** Abdominal circumference, mm. */\n acMm?: number | null;\n /** Femur length, mm. */\n flMm?: number | null;\n}\n\n/** Which Hadlock regression produced the estimate. */\nexport type EfwMethod = 'hadlock4' | 'hadlock1';\n\nexport interface EfwResult {\n /** Estimated fetal weight, grams (rounded to the nearest gram). */\n grams: number;\n /** The Hadlock regression used, given the available measurements. */\n method: EfwMethod;\n}\n\n/** A measurement is usable when it is a positive, finite number. */\nfunction cm(mm: number | null | undefined): number | null {\n return typeof mm === 'number' && Number.isFinite(mm) && mm > 0\n ? mm / 10\n : null;\n}\n\n/**\n * Estimate fetal weight from biometry. Uses the Hadlock 4-parameter formula\n * when BPD, HC, AC and FL are all present, else the AC+FL formula. Returns\n * `null` when AC and FL (the minimum) aren't both available.\n */\nexport function estimateFetalWeight(\n input: FetalBiometryInput,\n): EfwResult | null {\n const bpd = cm(input.bpdMm);\n const hc = cm(input.hcMm);\n const ac = cm(input.acMm);\n const fl = cm(input.flMm);\n\n // AC + FL are the minimum for any Hadlock estimate.\n if (ac === null || fl === null) return null;\n\n let log10: number;\n let method: EfwMethod;\n\n if (bpd !== null && hc !== null) {\n // Hadlock 4 (BPD, HC, AC, FL).\n log10 =\n 1.3596 -\n 0.00386 * ac * fl +\n 0.0064 * hc +\n 0.00061 * bpd * ac +\n 0.0424 * ac +\n 0.174 * fl;\n method = 'hadlock4';\n } else {\n // Hadlock 1 (AC, FL).\n log10 = 1.304 + 0.05281 * ac + 0.1938 * fl - 0.004 * ac * fl;\n method = 'hadlock1';\n }\n\n return { grams: Math.round(10 ** log10), method };\n}\n","/* ------------------------------------------------------------------ */\n/* FetalWeight — estimated fetal weight from ultrasound biometry. */\n/* */\n/* Inputs BPD / HC / AC / FL (mm); outputs EFW in grams via Hadlock */\n/* (maths in `./fetal-weight`, pure + tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { fetalWeightAgent } from './fetal-weight.agent';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\nimport { Card } from '../card';\nimport { Badge } from '../badge';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport { type EfwResult, estimateFetalWeight } from './efw';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/** A biometry figure is usable when it is a positive finite number, or cleared. */\nconst isMeasurement = (n: number | null | undefined): boolean =>\n n === null || n === undefined || (Number.isFinite(n) && n > 0);\n\n/** Canonical biometry snapshot — millimetres, or null where unset. */\nexport interface FetalBiometrySnapshot {\n bpdMm: number | null;\n hcMm: number | null;\n acMm: number | null;\n flMm: number | null;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Reads the four\n * biometry measurements and the Hadlock estimate, and writes the measurements\n * the way a user would type them. Never exposes patient identity — only\n * structural millimetres and the derived weight. Consumed by\n * `fetal-weight.agent.ts`; the public `ref` stays the root DOM element.\n */\nexport interface FetalWeightHandle {\n /** Current biometry in millimetres, or null where unset. */\n getBiometry: () => FetalBiometrySnapshot;\n /** Estimated fetal weight + the regression used, or null below the minimum biometry. */\n getResult: () => EfwResult | null;\n /**\n * Set any subset of the biometry in millimetres. Omitted keys are left\n * unchanged; an explicit `null` clears that measurement. Applies all-or-\n * nothing — returns false and writes nothing if any value is not positive.\n */\n setBiometry: (next: Partial<FetalBiometrySnapshot>) => boolean;\n}\n\nexport interface FetalWeightProps extends VariantProps<typeof rootVariants> {\n /** Fires whenever an estimate can be computed (and `null` when it can't). */\n onResultChange?: (result: EfwResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /** Which verb the result button performs. Defaults to `'insert'`. */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /** Brand wordmark printed in the inserted/copied result-card footer. */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\nexport const FetalWeight = forwardRef<HTMLDivElement, FetalWeightProps>(\n (\n {\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n const [bpdMm, setBpdMm] = useState<number | null>(null);\n const [hcMm, setHcMm] = useState<number | null>(null);\n const [acMm, setAcMm] = useState<number | null>(null);\n const [flMm, setFlMm] = useState<number | null>(null);\n\n const result = useMemo(\n () => estimateFetalWeight({ bpdMm, hcMm, acMm, flMm }),\n [bpdMm, hcMm, acMm, flMm],\n );\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n /* ── Agent handle ────────────────────────────────────────────────── */\n const liveRef = useRef({ bpdMm, hcMm, acMm, flMm, result });\n liveRef.current = { bpdMm, hcMm, acMm, flMm, result };\n\n const agentHandle = useMemo<FetalWeightHandle>(\n () => ({\n getBiometry: () => {\n const { bpdMm: bpd, hcMm: hc, acMm: ac, flMm: fl } = liveRef.current;\n return { bpdMm: bpd, hcMm: hc, acMm: ac, flMm: fl };\n },\n getResult: () => liveRef.current.result,\n setBiometry: (next) => {\n const entries = [\n ['bpdMm', setBpdMm],\n ['hcMm', setHcMm],\n ['acMm', setAcMm],\n ['flMm', setFlMm],\n ] as const;\n // Validate the whole payload before writing any of it, so a bad\n // value can't leave the form half-updated.\n for (const [key] of entries) {\n if (key in next && !isMeasurement(next[key])) return false;\n }\n for (const [key, set] of entries) {\n if (key in next) set(next[key] ?? null);\n }\n return true;\n },\n }),\n [],\n );\n useAgentRegistration(fetalWeightAgent, agentHandle, id);\n\n const grams = useMemo(\n () => new Intl.NumberFormat(i18n.language, { maximumFractionDigits: 0 }),\n [i18n.language],\n );\n\n const unit = t('fetalWeight.units.mm');\n const efwText = (r: EfwResult): string =>\n t('fetalWeight.efwValue', { grams: grams.format(r.grams) });\n\n const fields: {\n label: string;\n value: number | null;\n onChange: (v: number | null) => void;\n }[] = [\n { label: t('fetalWeight.bpd'), value: bpdMm, onChange: setBpdMm },\n { label: t('fetalWeight.hc'), value: hcMm, onChange: setHcMm },\n { label: t('fetalWeight.ac'), value: acMm, onChange: setAcMm },\n { label: t('fetalWeight.fl'), value: flMm, onChange: setFlMm },\n ];\n\n return (\n <div\n ref={ref}\n data-component=\"fetal-weight\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n {fields.map((f) => (\n <FormField key={f.label} label={`${f.label} (${unit})`}>\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={f.value}\n onChange={f.onChange}\n />\n </FormField>\n ))}\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result ? `${t('fetalWeight.efwLabel')}: ${efwText(result)}.` : ''}\n </p>\n\n {result ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <dl className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('fetalWeight.efwLabel')}\n </dt>\n <dd className=\"type-metric ds:text-foreground\">\n {efwText(result)}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-end ds:gap-[var(--spacing-xs)] ds:text-end\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('fetalWeight.methodLabel')}\n </dt>\n <dd>\n <Badge variant=\"info\">\n {t(`fetalWeight.method.${result.method}`)}\n </Badge>\n </dd>\n </div>\n </dl>\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t('fetalWeight.disclaimer')}\n </p>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n onInsert={onInsert}\n variant={insertVariant}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.fetalWeight'),\n icon: 'scale',\n highlight: efwText(result),\n highlightToken: '--info',\n brand: insertBrand,\n fields: [\n {\n icon: 'scale',\n label: t('fetalWeight.efwLabel'),\n value: efwText(result),\n },\n {\n icon: 'activity',\n label: t('fetalWeight.methodLabel'),\n value: t(`fetalWeight.method.${result.method}`),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('fetalWeight.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nFetalWeight.displayName = 'FetalWeight';\n"],"names":["measurement","label","fetalWeightAgent","handle","args","cm","mm","estimateFetalWeight","input","bpd","hc","ac","fl","log10","method","rootVariants","cva","isMeasurement","n","FetalWeight","forwardRef","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","i18n","useTranslation","bpdMm","setBpdMm","useState","hcMm","setHcMm","acMm","setAcMm","flMm","setFlMm","result","useMemo","useEffect","liveRef","useRef","agentHandle","next","entries","key","set","useAgentRegistration","grams","unit","efwText","r","fields","jsxs","jsx","f","FormField","NumberInput","Card","Badge","InsertButton"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { useEffect as N, useRef as k, useMemo as C } from "react";
|
|
|
3
3
|
import { c } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as F } from "react-i18next";
|
|
5
5
|
import { B as I } from "./button-nJaPh_HC.js";
|
|
6
|
-
import { I as M } from "./icon-button-
|
|
6
|
+
import { I as M } from "./icon-button-8xqRnkdG.js";
|
|
7
7
|
import { u as R } from "./registry-DvAUVLHh.js";
|
|
8
8
|
import { X as j } from "./x-B5YnXwCz.js";
|
|
9
9
|
import { P as B } from "./plus-DzMQ_c6b.js";
|
|
@@ -143,4 +143,4 @@ export {
|
|
|
143
143
|
S as F,
|
|
144
144
|
K as f
|
|
145
145
|
};
|
|
146
|
-
//# sourceMappingURL=field-array-
|
|
146
|
+
//# sourceMappingURL=field-array-C9dmRaIM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-array-BjkXZzSr.js","sources":["../../src/components/field-array/field-array.agent.ts","../../src/components/field-array/field-array.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — FieldArray. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { FieldArrayHandle } from './field-array';\n\nexport const fieldArrayAgent: AgentAdapter<FieldArrayHandle> = {\n id: 'field-array',\n capabilities: ['edit_inline'],\n state: {\n count: {\n type: 'number',\n descriptionKey: 'ui.agent.fieldArray.state.count',\n description: 'Number of rows currently rendered.',\n read: (handle) => handle.getCount(),\n },\n },\n actions: {\n add: {\n safety: 'write',\n descriptionKey: 'ui.agent.fieldArray.actions.add',\n description: 'Append a new row.',\n invoke: (handle) => {\n handle.add();\n },\n },\n remove: {\n safety: 'destructive',\n argsType: '{ index: number }',\n argsSchema: {\n type: 'object',\n properties: { index: { type: 'number' } },\n required: ['index'],\n },\n descriptionKey: 'ui.agent.fieldArray.actions.remove',\n description: 'Remove the row at the given index.',\n invoke: (handle, args: { index: number }) => {\n handle.remove(args.index);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'field-array',\n description: 'Marks the FieldArray fieldset.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n useEffect,\n useMemo,\n useRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Plus, X } from 'lucide-react';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { useAgentRegistration } from '../../agent';\nimport { fieldArrayAgent } from './field-array.agent';\n\n/**\n * Agent-readiness curated handle for FieldArray. Non-generic on purpose — the\n * adapter is typed `AgentAdapter<FieldArrayHandle>` and never sees `T`, so the\n * handle exposes only the structural surface (row count + add/remove).\n */\nexport interface FieldArrayHandle {\n getCount: () => number;\n add: () => void;\n remove: (index: number) => void;\n}\n\nexport interface FieldArrayProps<T> {\n /** The current rows. The consumer owns this array. */\n items: T[];\n /** Renders one row's fields. Called once per item. */\n renderItem: (item: T, index: number) => ReactNode;\n /** Append a new (consumer-shaped) row. */\n onAdd: () => void;\n /** Remove the row at `index`. */\n onRemove: (index: number) => void;\n /** Visible text on the add control. Consumer supplies localised text. */\n addLabel: string;\n /**\n * Per-row accessible name for the remove control, e.g.\n * `(i) => \\`Remove rule ${i + 1}\\``. Defaults to the kit's localised\n * `Remove` string so the control always has an accessible name.\n */\n removeItemLabel?: (index: number) => string;\n /** Group accessible name, rendered as a visible `<legend>` when provided. */\n legend?: string;\n /** Minimum rows — remove is disabled once `items.length <= min`. */\n min?: number;\n /** Maximum rows — add is disabled once `items.length >= max`. */\n max?: number;\n /** Stable id, used to address this instance from the agent runtime. */\n id?: string;\n className?: string;\n /** Accessible name used when no `legend` is supplied. */\n 'aria-label'?: string;\n}\n\nconst fieldArrayVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:min-w-0 ds:border-0 ds:p-0 ds:m-0',\n);\n\nconst rowsVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]');\n\nconst rowVariants = cva('ds:flex ds:items-start ds:gap-[var(--spacing-sm)]');\n\nexport function FieldArray<T>({\n items,\n renderItem,\n onAdd,\n onRemove,\n addLabel,\n removeItemLabel,\n legend,\n min = 0,\n max,\n id,\n className,\n 'aria-label': ariaLabel,\n}: FieldArrayProps<T>): ReactElement {\n const { t } = useTranslation();\n\n // DEV-time guard: a group with no legend AND no aria-label has no accessible\n // name. Mirrors the IbanInput / Button accessible-name guards. No-op in prod.\n useEffect(() => {\n const isDev =\n typeof import.meta !== 'undefined' &&\n typeof import.meta.env !== 'undefined' &&\n import.meta.env.DEV === true;\n if (isDev && !legend && !ariaLabel) {\n console.warn(\n '[FieldArray] No `legend` and no `aria-label` — the row group has no accessible name. Pass one of them.',\n );\n }\n }, [legend, ariaLabel]);\n\n const atMin = items.length <= min;\n const atMax = typeof max === 'number' && items.length >= max;\n\n // Stable handle that always reads the latest count — mirrors CheckboxGroup's\n // ref-backed handle so the registration identity stays stable across renders.\n const itemsRef = useRef(items);\n itemsRef.current = items;\n const agentHandle = useMemo<FieldArrayHandle>(\n () => ({\n getCount: () => itemsRef.current.length,\n add: () => onAdd(),\n remove: (index) => onRemove(index),\n }),\n [onAdd, onRemove],\n );\n useAgentRegistration(fieldArrayAgent, agentHandle, id);\n\n const resolveRemoveLabel = (index: number): string =>\n removeItemLabel\n ? removeItemLabel(index)\n : t('fieldArray.removeItem', 'Remove');\n\n return (\n <fieldset\n id={id}\n className={fieldArrayVariants({ className })}\n aria-label={legend ? undefined : ariaLabel}\n data-component=\"field-array\"\n data-component-id={id}\n >\n {legend ? (\n <legend className=\"type-label ds:text-foreground ds:p-0\">\n {legend}\n </legend>\n ) : null}\n\n <div className={rowsVariants()}>\n {items.map((item, index) => (\n // No stable per-item id exists on a generic T, so rows are keyed by\n // index — the consumer owns row identity through its state shape.\n <div\n key={index}\n className={rowVariants()}\n data-slot=\"field-array-row\"\n >\n <div className=\"ds:flex-1 ds:min-w-0\">\n {renderItem(item, index)}\n </div>\n <IconButton\n icon={<X />}\n size=\"sm\"\n intent=\"ghost\"\n aria-label={resolveRemoveLabel(index)}\n disabled={atMin}\n onClick={() => onRemove(index)}\n />\n </div>\n ))}\n </div>\n\n <Button\n type=\"button\"\n intent=\"outline\"\n startIcon={<Plus />}\n disabled={atMax}\n onClick={onAdd}\n className=\"ds:self-start\"\n >\n {addLabel}\n </Button>\n </fieldset>\n );\n}\n\nFieldArray.displayName = 'FieldArray';\n"],"names":["fieldArrayAgent","handle","args","fieldArrayVariants","cva","rowsVariants","rowVariants","FieldArray","items","renderItem","onAdd","onRemove","addLabel","removeItemLabel","legend","min","max","id","className","ariaLabel","t","useTranslation","useEffect","atMin","atMax","itemsRef","useRef","agentHandle","useMemo","index","useAgentRegistration","resolveRemoveLabel","jsxs","jsx","item","IconButton","X","Button","Plus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-array-C9dmRaIM.js","sources":["../../src/components/field-array/field-array.agent.ts","../../src/components/field-array/field-array.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — FieldArray. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { FieldArrayHandle } from './field-array';\n\nexport const fieldArrayAgent: AgentAdapter<FieldArrayHandle> = {\n id: 'field-array',\n capabilities: ['edit_inline'],\n state: {\n count: {\n type: 'number',\n descriptionKey: 'ui.agent.fieldArray.state.count',\n description: 'Number of rows currently rendered.',\n read: (handle) => handle.getCount(),\n },\n },\n actions: {\n add: {\n safety: 'write',\n descriptionKey: 'ui.agent.fieldArray.actions.add',\n description: 'Append a new row.',\n invoke: (handle) => {\n handle.add();\n },\n },\n remove: {\n safety: 'destructive',\n argsType: '{ index: number }',\n argsSchema: {\n type: 'object',\n properties: { index: { type: 'number' } },\n required: ['index'],\n },\n descriptionKey: 'ui.agent.fieldArray.actions.remove',\n description: 'Remove the row at the given index.',\n invoke: (handle, args: { index: number }) => {\n handle.remove(args.index);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'field-array',\n description: 'Marks the FieldArray fieldset.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n useEffect,\n useMemo,\n useRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Plus, X } from 'lucide-react';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { useAgentRegistration } from '../../agent';\nimport { fieldArrayAgent } from './field-array.agent';\n\n/**\n * Agent-readiness curated handle for FieldArray. Non-generic on purpose — the\n * adapter is typed `AgentAdapter<FieldArrayHandle>` and never sees `T`, so the\n * handle exposes only the structural surface (row count + add/remove).\n */\nexport interface FieldArrayHandle {\n getCount: () => number;\n add: () => void;\n remove: (index: number) => void;\n}\n\nexport interface FieldArrayProps<T> {\n /** The current rows. The consumer owns this array. */\n items: T[];\n /** Renders one row's fields. Called once per item. */\n renderItem: (item: T, index: number) => ReactNode;\n /** Append a new (consumer-shaped) row. */\n onAdd: () => void;\n /** Remove the row at `index`. */\n onRemove: (index: number) => void;\n /** Visible text on the add control. Consumer supplies localised text. */\n addLabel: string;\n /**\n * Per-row accessible name for the remove control, e.g.\n * `(i) => \\`Remove rule ${i + 1}\\``. Defaults to the kit's localised\n * `Remove` string so the control always has an accessible name.\n */\n removeItemLabel?: (index: number) => string;\n /** Group accessible name, rendered as a visible `<legend>` when provided. */\n legend?: string;\n /** Minimum rows — remove is disabled once `items.length <= min`. */\n min?: number;\n /** Maximum rows — add is disabled once `items.length >= max`. */\n max?: number;\n /** Stable id, used to address this instance from the agent runtime. */\n id?: string;\n className?: string;\n /** Accessible name used when no `legend` is supplied. */\n 'aria-label'?: string;\n}\n\nconst fieldArrayVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:min-w-0 ds:border-0 ds:p-0 ds:m-0',\n);\n\nconst rowsVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]');\n\nconst rowVariants = cva('ds:flex ds:items-start ds:gap-[var(--spacing-sm)]');\n\nexport function FieldArray<T>({\n items,\n renderItem,\n onAdd,\n onRemove,\n addLabel,\n removeItemLabel,\n legend,\n min = 0,\n max,\n id,\n className,\n 'aria-label': ariaLabel,\n}: FieldArrayProps<T>): ReactElement {\n const { t } = useTranslation();\n\n // DEV-time guard: a group with no legend AND no aria-label has no accessible\n // name. Mirrors the IbanInput / Button accessible-name guards. No-op in prod.\n useEffect(() => {\n const isDev =\n typeof import.meta !== 'undefined' &&\n typeof import.meta.env !== 'undefined' &&\n import.meta.env.DEV === true;\n if (isDev && !legend && !ariaLabel) {\n console.warn(\n '[FieldArray] No `legend` and no `aria-label` — the row group has no accessible name. Pass one of them.',\n );\n }\n }, [legend, ariaLabel]);\n\n const atMin = items.length <= min;\n const atMax = typeof max === 'number' && items.length >= max;\n\n // Stable handle that always reads the latest count — mirrors CheckboxGroup's\n // ref-backed handle so the registration identity stays stable across renders.\n const itemsRef = useRef(items);\n itemsRef.current = items;\n const agentHandle = useMemo<FieldArrayHandle>(\n () => ({\n getCount: () => itemsRef.current.length,\n add: () => onAdd(),\n remove: (index) => onRemove(index),\n }),\n [onAdd, onRemove],\n );\n useAgentRegistration(fieldArrayAgent, agentHandle, id);\n\n const resolveRemoveLabel = (index: number): string =>\n removeItemLabel\n ? removeItemLabel(index)\n : t('fieldArray.removeItem', 'Remove');\n\n return (\n <fieldset\n id={id}\n className={fieldArrayVariants({ className })}\n aria-label={legend ? undefined : ariaLabel}\n data-component=\"field-array\"\n data-component-id={id}\n >\n {legend ? (\n <legend className=\"type-label ds:text-foreground ds:p-0\">\n {legend}\n </legend>\n ) : null}\n\n <div className={rowsVariants()}>\n {items.map((item, index) => (\n // No stable per-item id exists on a generic T, so rows are keyed by\n // index — the consumer owns row identity through its state shape.\n <div\n key={index}\n className={rowVariants()}\n data-slot=\"field-array-row\"\n >\n <div className=\"ds:flex-1 ds:min-w-0\">\n {renderItem(item, index)}\n </div>\n <IconButton\n icon={<X />}\n size=\"sm\"\n intent=\"ghost\"\n aria-label={resolveRemoveLabel(index)}\n disabled={atMin}\n onClick={() => onRemove(index)}\n />\n </div>\n ))}\n </div>\n\n <Button\n type=\"button\"\n intent=\"outline\"\n startIcon={<Plus />}\n disabled={atMax}\n onClick={onAdd}\n className=\"ds:self-start\"\n >\n {addLabel}\n </Button>\n </fieldset>\n );\n}\n\nFieldArray.displayName = 'FieldArray';\n"],"names":["fieldArrayAgent","handle","args","fieldArrayVariants","cva","rowsVariants","rowVariants","FieldArray","items","renderItem","onAdd","onRemove","addLabel","removeItemLabel","legend","min","max","id","className","ariaLabel","t","useTranslation","useEffect","atMin","atMax","itemsRef","useRef","agentHandle","useMemo","index","useAgentRegistration","resolveRemoveLabel","jsxs","jsx","item","IconButton","X","Button","Plus"],"mappings":"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"}
|
|
@@ -9,23 +9,23 @@ import { u as Ct } from "./use-controllable-state-BiY4xTzM.js";
|
|
|
9
9
|
import { u as wt } from "./registry-DvAUVLHh.js";
|
|
10
10
|
import { B as X } from "./button-nJaPh_HC.js";
|
|
11
11
|
import { D as m } from "./dialog-BJiLqhx6.js";
|
|
12
|
-
import { a as St, F as xt } from "./file-upload-
|
|
12
|
+
import { a as St, F as xt } from "./file-upload-BDpb08GM.js";
|
|
13
13
|
import { T as We } from "./text-input-CUvCb6ST.js";
|
|
14
14
|
import { c as se } from "./createLucideIcon-DhHxpK9K.js";
|
|
15
15
|
import { F as Nt, a as Tt } from "./file-Cwe9VC1A.js";
|
|
16
16
|
import { F as Ft } from "./file-text-5yv6r2ls.js";
|
|
17
17
|
import { F as At } from "./file-spreadsheet-DmwyfV4O.js";
|
|
18
18
|
import { C as Dt } from "./chevron-right-I9AeSxH2.js";
|
|
19
|
-
import { D as Te } from "./data-table-
|
|
20
|
-
import { A as Rt, a as It } from "./actions-cell-renderer-
|
|
21
|
-
import { B as $e } from "./badge-
|
|
19
|
+
import { D as Te } from "./data-table-BYGK-gUJ.js";
|
|
20
|
+
import { A as Rt, a as It } from "./actions-cell-renderer-CUn1pqEq.js";
|
|
21
|
+
import { B as $e } from "./badge-BudgzTe_.js";
|
|
22
22
|
import { D as Ge } from "./download-CfYKJO_j.js";
|
|
23
23
|
import { P as zt } from "./pen-line-D0De5zdl.js";
|
|
24
24
|
import { S as Ue } from "./share-2-B49jcW2I.js";
|
|
25
25
|
import { P as Ye } from "./pencil-B1sKKyuT.js";
|
|
26
26
|
import { T as Ze } from "./trash-2-uumy3fy1.js";
|
|
27
|
-
import { I as Q } from "./icon-button-
|
|
28
|
-
import { I as _t } from "./icon-button-group-
|
|
27
|
+
import { I as Q } from "./icon-button-8xqRnkdG.js";
|
|
28
|
+
import { I as _t } from "./icon-button-group-Dj6CRoYR.js";
|
|
29
29
|
import { U as Xe } from "./upload-BfT2hzMg.js";
|
|
30
30
|
import { P as Lt } from "./plus-DzMQ_c6b.js";
|
|
31
31
|
/**
|
|
@@ -1757,4 +1757,4 @@ export {
|
|
|
1757
1757
|
yn as F,
|
|
1758
1758
|
Gt as f
|
|
1759
1759
|
};
|
|
1760
|
-
//# sourceMappingURL=file-manager-
|
|
1760
|
+
//# sourceMappingURL=file-manager-DvkFgj7d.js.map
|