@alfadocs/ui-kit-debug 1.95.1 → 1.96.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/{anamnesis-card-BcadMmEM.js → anamnesis-card-BzuluoD1.js} +2 -2
- package/dist/_chunks/{anamnesis-card-BcadMmEM.js.map → anamnesis-card-BzuluoD1.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-card-DQ3iE1gD.js → anamnesis-summary-card-DdTRdNrQ.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-card-DQ3iE1gD.js.map → anamnesis-summary-card-DdTRdNrQ.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-rows-krsCC-F4.js → anamnesis-summary-rows-CdRUXoaA.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-rows-krsCC-F4.js.map → anamnesis-summary-rows-CdRUXoaA.js.map} +1 -1
- package/dist/_chunks/{antenatal-schedule-timeline-BGewPfEX.js → antenatal-schedule-timeline-DmsY5g28.js} +2 -2
- package/dist/_chunks/{antenatal-schedule-timeline-BGewPfEX.js.map → antenatal-schedule-timeline-DmsY5g28.js.map} +1 -1
- package/dist/_chunks/{balance-badge-cell-DbgEQsou.js → balance-badge-cell-DcBmtijD.js} +2 -2
- package/dist/_chunks/{balance-badge-cell-DbgEQsou.js.map → balance-badge-cell-DcBmtijD.js.map} +1 -1
- package/dist/_chunks/{bishop-score-BBYuyk2k.js → bishop-score-BhMomGcX.js} +2 -2
- package/dist/_chunks/{bishop-score-BBYuyk2k.js.map → bishop-score-BhMomGcX.js.map} +1 -1
- package/dist/_chunks/{bmi-calculator-BIExHBZV.js → bmi-calculator-NMkXc079.js} +2 -2
- package/dist/_chunks/{bmi-calculator-BIExHBZV.js.map → bmi-calculator-NMkXc079.js.map} +1 -1
- package/dist/_chunks/{calendar-appointment-editor-dialog-D3tQ8N34.js → calendar-appointment-editor-dialog-BOZ5wk96.js} +8 -8
- package/dist/_chunks/{calendar-appointment-editor-dialog-D3tQ8N34.js.map → calendar-appointment-editor-dialog-BOZ5wk96.js.map} +1 -1
- package/dist/_chunks/{card-BA4Ig_kn.js → card-C85_Ndhb.js} +96 -68
- package/dist/_chunks/card-C85_Ndhb.js.map +1 -0
- package/dist/_chunks/{clinical-note-card-Cut2lNmu.js → clinical-note-card-CWHFnCmY.js} +2 -2
- package/dist/_chunks/{clinical-note-card-Cut2lNmu.js.map → clinical-note-card-CWHFnCmY.js.map} +1 -1
- package/dist/_chunks/{connection-status-CVyCqxiY.js → connection-status-CWSU3eiq.js} +2 -2
- package/dist/_chunks/{connection-status-CVyCqxiY.js.map → connection-status-CWSU3eiq.js.map} +1 -1
- package/dist/_chunks/{contact-card-ClvEDM9e.js → contact-card-CymtNvy3.js} +2 -2
- package/dist/_chunks/{contact-card-ClvEDM9e.js.map → contact-card-CymtNvy3.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-CX45mZA3.js → contact-profile-card-jBf9U4At.js} +2 -2
- package/dist/_chunks/{contact-profile-card-CX45mZA3.js.map → contact-profile-card-jBf9U4At.js.map} +1 -1
- package/dist/_chunks/{cycle-calculator-CQkjVSD2.js → cycle-calculator-ZMDvToIm.js} +2 -2
- package/dist/_chunks/{cycle-calculator-CQkjVSD2.js.map → cycle-calculator-ZMDvToIm.js.map} +1 -1
- package/dist/_chunks/{data-table-tabs-DlTPtqoI.js → data-table-tabs-CcgU2lr5.js} +2 -2
- package/dist/_chunks/{data-table-tabs-DlTPtqoI.js.map → data-table-tabs-CcgU2lr5.js.map} +1 -1
- package/dist/_chunks/{data-table-Bh9_IEj4.js → data-table-xUDjZS_O.js} +2 -2
- package/dist/_chunks/{data-table-Bh9_IEj4.js.map → data-table-xUDjZS_O.js.map} +1 -1
- package/dist/_chunks/{document-preview-CL1xsnLS.js → document-preview-DWIQryMW.js} +2 -2
- package/dist/_chunks/{document-preview-CL1xsnLS.js.map → document-preview-DWIQryMW.js.map} +1 -1
- package/dist/_chunks/{due-date-calculator-NjTlmoFK.js → due-date-calculator-Dr2cDa64.js} +3 -3
- package/dist/_chunks/{due-date-calculator-NjTlmoFK.js.map → due-date-calculator-Dr2cDa64.js.map} +1 -1
- package/dist/_chunks/editable-currency-cell-renderer-BEaj2NT_.js +493 -0
- package/dist/_chunks/editable-currency-cell-renderer-BEaj2NT_.js.map +1 -0
- package/dist/_chunks/{entity-summary-B_bOloqP.js → entity-summary-BJdfIsk_.js} +2 -2
- package/dist/_chunks/{entity-summary-B_bOloqP.js.map → entity-summary-BJdfIsk_.js.map} +1 -1
- package/dist/_chunks/{face-scheme-DyHc3zPt.js → face-scheme-BmygzbZr.js} +2 -2
- package/dist/_chunks/{face-scheme-DyHc3zPt.js.map → face-scheme-BmygzbZr.js.map} +1 -1
- package/dist/_chunks/{fetal-weight-Brl3n4LN.js → fetal-weight-CkIwJgiH.js} +2 -2
- package/dist/_chunks/{fetal-weight-Brl3n4LN.js.map → fetal-weight-CkIwJgiH.js.map} +1 -1
- package/dist/_chunks/{file-manager-Cgf2yc10.js → file-manager-Ba_TcfCj.js} +2 -2
- package/dist/_chunks/{file-manager-Cgf2yc10.js.map → file-manager-Ba_TcfCj.js.map} +1 -1
- package/dist/_chunks/{finished-terminal-D8ohcFVS.js → finished-terminal-DXVAfhRr.js} +2 -2
- package/dist/_chunks/{finished-terminal-D8ohcFVS.js.map → finished-terminal-DXVAfhRr.js.map} +1 -1
- package/dist/_chunks/{forgot-password-form-BQPvDS7i.js → forgot-password-form-BCk4rGIh.js} +2 -2
- package/dist/_chunks/{forgot-password-form-BQPvDS7i.js.map → forgot-password-form-BCk4rGIh.js.map} +1 -1
- package/dist/_chunks/{gestational-age-calculator-Dn8IOXHB.js → gestational-age-calculator-CXcDKQqC.js} +3 -3
- package/dist/_chunks/{gestational-age-calculator-Dn8IOXHB.js.map → gestational-age-calculator-CXcDKQqC.js.map} +1 -1
- package/dist/_chunks/{hcg-doubling-DQe1ptNB.js → hcg-doubling-BJFR3onB.js} +2 -2
- package/dist/_chunks/{hcg-doubling-DQe1ptNB.js.map → hcg-doubling-BJFR3onB.js.map} +1 -1
- package/dist/_chunks/{header-settings-DittkpqU.js → header-settings-C2D74i4g.js} +2 -2
- package/dist/_chunks/{header-settings-DittkpqU.js.map → header-settings-C2D74i4g.js.map} +1 -1
- package/dist/_chunks/{heatmap-9Ql8Ny9d.js → heatmap-C9tEvqEm.js} +3 -3
- package/dist/_chunks/{heatmap-9Ql8Ny9d.js.map → heatmap-C9tEvqEm.js.map} +1 -1
- package/dist/_chunks/{icon-picker-Bkm9m7ju.js → icon-picker-DQMG9L6M.js} +2 -2
- package/dist/_chunks/{icon-picker-Bkm9m7ju.js.map → icon-picker-DQMG9L6M.js.map} +1 -1
- package/dist/_chunks/info-tip-Do3RFt60.js +216 -0
- package/dist/_chunks/info-tip-Do3RFt60.js.map +1 -0
- package/dist/_chunks/{kit-extensions-44gudqqq.js → kit-extensions-C4o_tFN4.js} +6 -6
- package/dist/_chunks/{kit-extensions-44gudqqq.js.map → kit-extensions-C4o_tFN4.js.map} +1 -1
- package/dist/_chunks/{locale-picker-DVvinQXU.js → locale-picker-B1NAHW4U.js} +2 -2
- package/dist/_chunks/{locale-picker-DVvinQXU.js.map → locale-picker-B1NAHW4U.js.map} +1 -1
- package/dist/_chunks/{login-dev-card-BZBR58mu.js → login-dev-card-DcfcFJrm.js} +2 -2
- package/dist/_chunks/{login-dev-card-BZBR58mu.js.map → login-dev-card-DcfcFJrm.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-C8nHixB8.js → marketplace-app-shell-DDZI-uBl.js} +3 -3
- package/dist/_chunks/{marketplace-app-shell-C8nHixB8.js.map → marketplace-app-shell-DDZI-uBl.js.map} +1 -1
- package/dist/_chunks/{notes-panel-D6YhNGHU.js → notes-panel-DfjF83IK.js} +4 -4
- package/dist/_chunks/{notes-panel-D6YhNGHU.js.map → notes-panel-DfjF83IK.js.map} +1 -1
- package/dist/_chunks/{operator-hero-D_0KoEuJ.js → operator-hero-N_ziNGFF.js} +2 -2
- package/dist/_chunks/{operator-hero-D_0KoEuJ.js.map → operator-hero-N_ziNGFF.js.map} +1 -1
- package/dist/_chunks/{patient-details-DQQpgx4A.js → patient-details-DGHkAErB.js} +3 -3
- package/dist/_chunks/{patient-details-DQQpgx4A.js.map → patient-details-DGHkAErB.js.map} +1 -1
- package/dist/_chunks/{patient-field-row-Cb5jUd5Q.js → patient-field-row-BVK4y98C.js} +2 -2
- package/dist/_chunks/{patient-field-row-Cb5jUd5Q.js.map → patient-field-row-BVK4y98C.js.map} +1 -1
- package/dist/_chunks/{patient-search-Cp2efqHs.js → patient-search-CL6dtBIq.js} +2 -2
- package/dist/_chunks/{patient-search-Cp2efqHs.js.map → patient-search-CL6dtBIq.js.map} +1 -1
- package/dist/_chunks/{patient-summary-card-BvMI0eMu.js → patient-summary-card-DXz07c2X.js} +3 -3
- package/dist/_chunks/{patient-summary-card-BvMI0eMu.js.map → patient-summary-card-DXz07c2X.js.map} +1 -1
- package/dist/_chunks/{payment-automation-upsell-D1YdO1xY.js → payment-automation-upsell-CZk6f8aK.js} +3 -3
- package/dist/_chunks/{payment-automation-upsell-D1YdO1xY.js.map → payment-automation-upsell-CZk6f8aK.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-BfGauFY0.js → payment-request-card-BbpN8GQg.js} +2 -2
- package/dist/_chunks/{payment-request-card-BfGauFY0.js.map → payment-request-card-BbpN8GQg.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-_y4Ck7_P.js → periodontal-chart-Cw-ZsIls.js} +2 -2
- package/dist/_chunks/{periodontal-chart-_y4Ck7_P.js.map → periodontal-chart-Cw-ZsIls.js.map} +1 -1
- package/dist/_chunks/{periodontal-chart-card-Bx6PeS3b.js → periodontal-chart-card-CG8mxR62.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-Bx6PeS3b.js.map → periodontal-chart-card-CG8mxR62.js.map} +1 -1
- package/dist/_chunks/{periodontal-diagnosis-DD3hrg9X.js → periodontal-diagnosis-CF1d_0yl.js} +2 -2
- package/dist/_chunks/{periodontal-diagnosis-DD3hrg9X.js.map → periodontal-diagnosis-CF1d_0yl.js.map} +1 -1
- package/dist/_chunks/{periodontal-risk-chart-B7S9OmPC.js → periodontal-risk-chart-D2zyID0H.js} +2 -2
- package/dist/_chunks/{periodontal-risk-chart-B7S9OmPC.js.map → periodontal-risk-chart-D2zyID0H.js.map} +1 -1
- package/dist/_chunks/{popover-Da1ekjV1.js → popover-CN5IsOeS.js} +156 -148
- package/dist/_chunks/popover-CN5IsOeS.js.map +1 -0
- package/dist/_chunks/{practice-profile-hero-ClzE-4CB.js → practice-profile-hero-DKmnB-M0.js} +2 -2
- package/dist/_chunks/{practice-profile-hero-ClzE-4CB.js.map → practice-profile-hero-DKmnB-M0.js.map} +1 -1
- package/dist/_chunks/{pregnancy-dating-CuVj9KGR.js → pregnancy-dating-D0Kf9s7s.js} +3 -3
- package/dist/_chunks/{pregnancy-dating-CuVj9KGR.js.map → pregnancy-dating-D0Kf9s7s.js.map} +1 -1
- package/dist/_chunks/{pregnancy-weight-gain-BeQRxwdP.js → pregnancy-weight-gain-B_Zldlzq.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-BeQRxwdP.js.map → pregnancy-weight-gain-B_Zldlzq.js.map} +1 -1
- package/dist/_chunks/{privacy-mask-BDVkikTm.js → privacy-mask-DbEKI-Jv.js} +2 -2
- package/dist/_chunks/{privacy-mask-BDVkikTm.js.map → privacy-mask-DbEKI-Jv.js.map} +1 -1
- package/dist/_chunks/{registration-form-BygI73vG.js → registration-form-K4j2tdLt.js} +2 -2
- package/dist/_chunks/{registration-form-BygI73vG.js.map → registration-form-K4j2tdLt.js.map} +1 -1
- package/dist/_chunks/{reserved.agent-BvwjDyne.js → reserved.agent-TRbKB39d.js} +2 -2
- package/dist/_chunks/{reserved.agent-BvwjDyne.js.map → reserved.agent-TRbKB39d.js.map} +1 -1
- package/dist/_chunks/{reset-password-form-Cf9QPEJu.js → reset-password-form-C6XLV7SI.js} +2 -2
- package/dist/_chunks/{reset-password-form-Cf9QPEJu.js.map → reset-password-form-C6XLV7SI.js.map} +1 -1
- package/dist/_chunks/{reviews-panel-B7InBORU.js → reviews-panel-jPYgYvxG.js} +2 -2
- package/dist/_chunks/{reviews-panel-B7InBORU.js.map → reviews-panel-jPYgYvxG.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-iw2tJLKA.js → rich-text-editor-CJfT08It.js} +2 -2
- package/dist/_chunks/{rich-text-editor-iw2tJLKA.js.map → rich-text-editor-CJfT08It.js.map} +1 -1
- package/dist/_chunks/{section-card-D5nWiTcK.js → section-card-D1sV4Voz.js} +2 -2
- package/dist/_chunks/{section-card-D5nWiTcK.js.map → section-card-D1sV4Voz.js.map} +1 -1
- package/dist/_chunks/{send-registration-link-form-CZYOO7NO.js → send-registration-link-form-yLSfcaPk.js} +2 -2
- package/dist/_chunks/{send-registration-link-form-CZYOO7NO.js.map → send-registration-link-form-yLSfcaPk.js.map} +1 -1
- package/dist/_chunks/{stat-D2PNJujA.js → stat-Dno2ZihS.js} +111 -96
- package/dist/_chunks/stat-Dno2ZihS.js.map +1 -0
- package/dist/_chunks/{task-card-C4HJUKVw.js → task-card-TSJjuuDe.js} +2 -2
- package/dist/_chunks/{task-card-C4HJUKVw.js.map → task-card-TSJjuuDe.js.map} +1 -1
- package/dist/_chunks/{task-editor-BlGdXR9F.js → task-editor-qXfMbHsy.js} +2 -2
- package/dist/_chunks/{task-editor-BlGdXR9F.js.map → task-editor-qXfMbHsy.js.map} +1 -1
- package/dist/_chunks/{task-tray-DZQGhDdc.js → task-tray-DrXfMCuf.js} +2 -2
- package/dist/_chunks/{task-tray-DZQGhDdc.js.map → task-tray-DrXfMCuf.js.map} +1 -1
- package/dist/_chunks/{tasks-panel-Q0CiEAff.js → tasks-panel-iVeuu9a8.js} +2 -2
- package/dist/_chunks/{tasks-panel-Q0CiEAff.js.map → tasks-panel-iVeuu9a8.js.map} +1 -1
- package/dist/_chunks/{timeline-BcYHdP56.js → timeline-B32dylRJ.js} +2 -2
- package/dist/_chunks/{timeline-BcYHdP56.js.map → timeline-B32dylRJ.js.map} +1 -1
- package/dist/_chunks/{use-appointment-details-read-CpXRSfPI.js → use-appointment-details-read-UXXvBeGZ.js} +5 -5
- package/dist/_chunks/{use-appointment-details-read-CpXRSfPI.js.map → use-appointment-details-read-UXXvBeGZ.js.map} +1 -1
- package/dist/_chunks/{workflow-map-BWJhlZbC.js → workflow-map-flsvqQ3L.js} +2 -2
- package/dist/_chunks/{workflow-map-BWJhlZbC.js.map → workflow-map-flsvqQ3L.js.map} +1 -1
- package/dist/_chunks/{workflow-webhook-action-Uhyfr6_6.js → workflow-webhook-action-BD-6UyOs.js} +2 -2
- package/dist/_chunks/{workflow-webhook-action-Uhyfr6_6.js.map → workflow-webhook-action-BD-6UyOs.js.map} +1 -1
- package/dist/ag-grid.css +3 -1
- package/dist/agent-catalog.json +2 -2
- package/dist/agent-i18n/en.json +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-details-panel/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/card/card.d.ts +10 -1
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/index.d.ts +1 -1
- package/dist/components/card/index.d.ts.map +1 -1
- package/dist/components/card/index.js +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-card/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/header-info.d.ts +31 -0
- package/dist/components/data-table/header-info.d.ts.map +1 -0
- package/dist/components/data-table/index.d.ts +1 -0
- package/dist/components/data-table/index.d.ts.map +1 -1
- package/dist/components/data-table/index.js +19 -18
- package/dist/components/data-table-tabs/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- 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/file-manager/index.js +1 -1
- package/dist/components/finished-terminal/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-settings/index.js +1 -1
- package/dist/components/heatmap/index.js +1 -1
- package/dist/components/icon-picker/index.js +1 -1
- package/dist/components/info-tip/index.js +1 -1
- package/dist/components/info-tip/info-tip.agent.d.ts.map +1 -1
- package/dist/components/info-tip/info-tip.d.ts +21 -1
- package/dist/components/info-tip/info-tip.d.ts.map +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/periodontal-chart/index.js +1 -1
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/periodontal-diagnosis/index.js +1 -1
- package/dist/components/periodontal-risk-chart/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/practice-profile-hero/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/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +2 -2
- package/dist/components/section-card/index.js +1 -1
- package/dist/components/stat/index.js +1 -1
- package/dist/components/stat/stat.d.ts +8 -0
- package/dist/components/stat/stat.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/timeline/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/i18n/locales/ar.d.ts +2 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +3 -1
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +2 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +3 -1
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +2 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +3 -1
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +2 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +3 -1
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +2 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +3 -1
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +2 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +3 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +2 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +3 -1
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +2 -0
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +3 -1
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +2 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +3 -1
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +2 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +3 -1
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +2 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +3 -1
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +2 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +3 -1
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +2 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +3 -1
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +2 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +3 -1
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +2 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +3 -1
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +2 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +3 -1
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +2 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +3 -1
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +2 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +3 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +914 -913
- package/dist/locales/ar.json +3 -1
- package/dist/locales/de.json +3 -1
- package/dist/locales/el.json +3 -1
- package/dist/locales/en.json +3 -1
- package/dist/locales/es.json +3 -1
- package/dist/locales/fr.json +3 -1
- package/dist/locales/hi.json +3 -1
- package/dist/locales/it.json +3 -1
- package/dist/locales/ja.json +3 -1
- package/dist/locales/nl.json +3 -1
- package/dist/locales/pl.json +3 -1
- package/dist/locales/pt.json +3 -1
- package/dist/locales/ro.json +3 -1
- package/dist/locales/ru.json +3 -1
- package/dist/locales/sq.json +3 -1
- package/dist/locales/sv.json +3 -1
- package/dist/locales/tr.json +3 -1
- package/dist/locales/zh.json +3 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/forgot-password-form/index.js +1 -1
- package/dist/patterns/login-form/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/registration-form/index.js +1 -1
- package/dist/patterns/reset-password-form/index.js +1 -1
- package/dist/patterns/send-registration-link-form/index.js +1 -1
- package/dist/patterns/workflow-webhook-action/index.js +1 -1
- package/dist/tokens.css +1 -0
- package/package.json +1 -1
- package/dist/_chunks/card-BA4Ig_kn.js.map +0 -1
- package/dist/_chunks/editable-currency-cell-renderer-BQYL5GjP.js +0 -412
- package/dist/_chunks/editable-currency-cell-renderer-BQYL5GjP.js.map +0 -1
- package/dist/_chunks/info-tip-Cfd5SKbY.js +0 -166
- package/dist/_chunks/info-tip-Cfd5SKbY.js.map +0 -1
- package/dist/_chunks/popover-Da1ekjV1.js.map +0 -1
- package/dist/_chunks/stat-D2PNJujA.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { jsxs as S, jsx as r } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as H, useState as y, useRef as h, useCallback as v, useMemo as b } from "react";
|
|
3
3
|
import { c as M } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as F } from "react-i18next";
|
|
5
|
-
import { P as k } from "./popover-
|
|
5
|
+
import { P as k } from "./popover-CN5IsOeS.js";
|
|
6
6
|
import { B as D } from "./button-DohK_Ak_.js";
|
|
7
7
|
import { S as E } from "./state-backed-text-input-Cgh4ms3p.js";
|
|
8
8
|
import { u as G } from "./registry-DvAUVLHh.js";
|
|
@@ -269,4 +269,4 @@ export {
|
|
|
269
269
|
X as I,
|
|
270
270
|
U as i
|
|
271
271
|
};
|
|
272
|
-
//# sourceMappingURL=icon-picker-
|
|
272
|
+
//# sourceMappingURL=icon-picker-DQMG9L6M.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-picker-Bkm9m7ju.js","sources":["../../src/components/icon-picker/icon-picker.agent.ts","../../src/components/icon-picker/icon-picker.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — IconPicker. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { IconPickerHandle } from './icon-picker';\n\nexport const iconPickerAgent: AgentAdapter<IconPickerHandle> = {\n id: 'icon-picker',\n capabilities: ['pick', 'filter', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.iconPicker.state.value',\n description:\n 'Id of the currently selected icon, or an empty string when nothing is picked.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.iconPicker.state.isOpen',\n description: 'True when the picker popover is currently open.',\n read: (handle) => handle.isOpen(),\n },\n query: {\n type: 'string',\n descriptionKey: 'ui.agent.iconPicker.state.query',\n description: 'Current search query filtering the icon grid by label.',\n read: (handle) => handle.getQuery(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ id: string }',\n argsSchema: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Id of an icon in the supplied `icons` set.',\n },\n },\n required: ['id'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.setValue',\n description: 'Select the icon with the given id.',\n examples: [{ args: { id: 'star' }, note: 'Pick the \"star\" icon.' }],\n invoke: (handle, args: { id: string }) => {\n handle.setValue(args.id);\n },\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.open',\n description: 'Open the picker popover.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.close',\n description: 'Close the picker popover.',\n invoke: (handle) => {\n handle.close();\n },\n },\n filter: {\n safety: 'write',\n argsType: '{ query: string }',\n argsSchema: {\n type: 'object',\n properties: {\n query: {\n type: 'string',\n description:\n 'Case-insensitive substring matched against icon labels.',\n },\n },\n required: ['query'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.filter',\n description: 'Filter the icon grid to labels containing the query.',\n examples: [\n {\n args: { query: 'star' },\n note: 'Show icons whose label contains \"star\".',\n },\n ],\n invoke: (handle, args: { query: string }) => {\n handle.setQuery(args.query);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'icon-picker',\n description: 'Marks the IconPicker trigger button.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Search } from 'lucide-react';\nimport { Popover } from '../popover';\nimport { Button } from '../button/button';\nimport { StateBackedTextInput } from '../_shared/state-backed-text-input';\nimport { useAgentRegistration } from '../../agent';\nimport { iconPickerAgent } from './icon-picker.agent';\n\n/** One selectable glyph. `label` is the accessible name (consumer-localised);\n * `node` is the rendered lucide/SVG element. */\nexport interface IconPickerIcon {\n id: string;\n label: string;\n node: ReactNode;\n}\n\n/** Agent-readiness curated handle for IconPicker. */\nexport interface IconPickerHandle {\n getValue: () => string;\n setValue: (id: string) => void;\n isOpen: () => boolean;\n open: () => void;\n close: () => void;\n getQuery: () => string;\n setQuery: (query: string) => void;\n}\n\nexport interface IconPickerProps {\n /** The glyph set. `label` is each glyph's accessible name. */\n icons: IconPickerIcon[];\n /** Controlled selected icon id. Pair with onChange. */\n value?: string;\n /** Uncontrolled initial selected icon id. */\n defaultValue?: string;\n /** Fires with the chosen icon id when a glyph is picked. */\n onChange?: (id: string) => void;\n /** Shown on the trigger when nothing is selected. */\n placeholder?: ReactNode;\n disabled?: boolean;\n id?: string;\n className?: string;\n /** Trigger accessible name. Defaults to the bundled `iconPicker.trigger`. */\n 'aria-label'?: string;\n}\n\n// Selectable glyph cell. The only variant is selection state — selected cells\n// take a tokenised highlight (primary border + muted fill); `aria-pressed`\n// carries the state non-visually so it never reads by colour alone.\nconst optionVariants = cva(\n [\n 'ds:relative ds:inline-flex ds:items-center ds:justify-center',\n 'ds:size-[var(--min-target-size)] ds:rounded-[var(--radius-sm)]',\n 'ds:border ds:text-foreground ds:bg-transparent',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:hover:bg-muted/10',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:[&_svg]:size-5',\n ].join(' '),\n {\n variants: {\n selected: {\n true: 'ds:border-primary ds:bg-muted',\n false: 'ds:border-transparent',\n },\n },\n defaultVariants: { selected: false },\n },\n);\n\nexport const IconPicker = forwardRef<HTMLButtonElement, IconPickerProps>(\n function IconPicker(\n {\n icons,\n value,\n defaultValue,\n onChange,\n placeholder,\n disabled,\n id,\n className,\n 'aria-label': ariaLabel,\n },\n ref,\n ) {\n const { t } = useTranslation('ui');\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? '',\n );\n const currentValue = isControlled ? (value ?? '') : internalValue;\n\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n\n // Live snapshots for the synchronous agent handle.\n const currentValueRef = useRef(currentValue);\n currentValueRef.current = currentValue;\n const openRef = useRef(open);\n openRef.current = open;\n const queryRef = useRef(query);\n queryRef.current = query;\n\n const handleOpenChange = useCallback((next: boolean) => {\n setOpen(next);\n // Reset the filter when the popover closes so the next open starts fresh.\n if (!next) setQuery('');\n }, []);\n\n const setValueImperative = useCallback(\n (iconId: string) => {\n if (!isControlled) setInternalValue(iconId);\n onChange?.(iconId);\n },\n [isControlled, onChange],\n );\n\n const handleSelect = useCallback(\n (iconId: string) => {\n setValueImperative(iconId);\n handleOpenChange(false);\n },\n [setValueImperative, handleOpenChange],\n );\n\n const agentHandle = useMemo<IconPickerHandle>(\n () => ({\n getValue: () => currentValueRef.current,\n setValue: (iconId) => setValueImperative(iconId),\n isOpen: () => openRef.current,\n open: () => handleOpenChange(true),\n close: () => handleOpenChange(false),\n getQuery: () => queryRef.current,\n setQuery: (next) => setQuery(next),\n }),\n [setValueImperative, handleOpenChange],\n );\n useAgentRegistration(iconPickerAgent, agentHandle, id);\n\n const selectedIcon = useMemo(\n () => icons.find((icon) => icon.id === currentValue),\n [icons, currentValue],\n );\n\n const normalisedQuery = query.trim().toLowerCase();\n const filtered = useMemo(\n () =>\n normalisedQuery\n ? icons.filter((icon) =>\n icon.label.toLowerCase().includes(normalisedQuery),\n )\n : icons,\n [icons, normalisedQuery],\n );\n\n const triggerLabel = ariaLabel ?? t('iconPicker.trigger');\n const resolvedPlaceholder = placeholder ?? t('iconPicker.trigger');\n\n return (\n <Popover.Root open={open} onOpenChange={handleOpenChange} id={id}>\n <Popover.Trigger asChild>\n <Button\n ref={ref}\n type=\"button\"\n intent=\"outline\"\n disabled={disabled}\n aria-label={triggerLabel}\n className={className}\n data-component=\"icon-picker\"\n data-component-id={id}\n >\n {selectedIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:justify-center ds:[&_svg]:size-5\"\n >\n {selectedIcon.node}\n </span>\n ) : (\n <span className=\"ds:inline-flex ds:items-center ds:text-muted-foreground\">\n {resolvedPlaceholder}\n </span>\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Content\n align=\"start\"\n showArrow={false}\n aria-label={triggerLabel}\n className=\"ds:w-72\"\n >\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <StateBackedTextInput\n size=\"sm\"\n value={query}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setQuery(event.target.value)\n }\n placeholder={t('iconPicker.search')}\n aria-label={t('iconPicker.search')}\n startAdornment={<Search />}\n clearable\n onClear={() => setQuery('')}\n autoComplete=\"off\"\n />\n\n {filtered.length === 0 ? (\n <p\n role=\"status\"\n className=\"type-body-sm ds:text-muted-foreground ds:text-center ds:py-[var(--spacing-sm)]\"\n >\n {t('iconPicker.noResults')}\n </p>\n ) : (\n <div\n role=\"group\"\n aria-label={triggerLabel}\n className=\"ds:grid ds:grid-cols-5 ds:gap-[var(--spacing-xs)] ds:max-h-64 ds:overflow-y-auto\"\n >\n {filtered.map((icon) => {\n const selected = icon.id === currentValue;\n return (\n <button\n key={icon.id}\n type=\"button\"\n aria-label={icon.label}\n aria-pressed={selected}\n onClick={() => handleSelect(icon.id)}\n className={optionVariants({ selected })}\n >\n <span aria-hidden=\"true\" className=\"ds:inline-flex\">\n {icon.node}\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n );\n },\n);\n\nIconPicker.displayName = 'IconPicker';\n\nexport { optionVariants as iconPickerOptionVariants };\n"],"names":["iconPickerAgent","handle","args","optionVariants","cva","IconPicker","forwardRef","icons","value","defaultValue","onChange","placeholder","disabled","id","className","ariaLabel","ref","t","useTranslation","isControlled","internalValue","setInternalValue","useState","currentValue","open","setOpen","query","setQuery","currentValueRef","useRef","openRef","queryRef","handleOpenChange","useCallback","next","setValueImperative","iconId","handleSelect","agentHandle","useMemo","useAgentRegistration","selectedIcon","icon","normalisedQuery","filtered","triggerLabel","resolvedPlaceholder","Popover","jsx","Button","jsxs","StateBackedTextInput","event","Search","selected"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icon-picker-DQMG9L6M.js","sources":["../../src/components/icon-picker/icon-picker.agent.ts","../../src/components/icon-picker/icon-picker.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — IconPicker. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { IconPickerHandle } from './icon-picker';\n\nexport const iconPickerAgent: AgentAdapter<IconPickerHandle> = {\n id: 'icon-picker',\n capabilities: ['pick', 'filter', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.iconPicker.state.value',\n description:\n 'Id of the currently selected icon, or an empty string when nothing is picked.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.iconPicker.state.isOpen',\n description: 'True when the picker popover is currently open.',\n read: (handle) => handle.isOpen(),\n },\n query: {\n type: 'string',\n descriptionKey: 'ui.agent.iconPicker.state.query',\n description: 'Current search query filtering the icon grid by label.',\n read: (handle) => handle.getQuery(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ id: string }',\n argsSchema: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Id of an icon in the supplied `icons` set.',\n },\n },\n required: ['id'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.setValue',\n description: 'Select the icon with the given id.',\n examples: [{ args: { id: 'star' }, note: 'Pick the \"star\" icon.' }],\n invoke: (handle, args: { id: string }) => {\n handle.setValue(args.id);\n },\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.open',\n description: 'Open the picker popover.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.close',\n description: 'Close the picker popover.',\n invoke: (handle) => {\n handle.close();\n },\n },\n filter: {\n safety: 'write',\n argsType: '{ query: string }',\n argsSchema: {\n type: 'object',\n properties: {\n query: {\n type: 'string',\n description:\n 'Case-insensitive substring matched against icon labels.',\n },\n },\n required: ['query'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.iconPicker.actions.filter',\n description: 'Filter the icon grid to labels containing the query.',\n examples: [\n {\n args: { query: 'star' },\n note: 'Show icons whose label contains \"star\".',\n },\n ],\n invoke: (handle, args: { query: string }) => {\n handle.setQuery(args.query);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'icon-picker',\n description: 'Marks the IconPicker trigger button.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Search } from 'lucide-react';\nimport { Popover } from '../popover';\nimport { Button } from '../button/button';\nimport { StateBackedTextInput } from '../_shared/state-backed-text-input';\nimport { useAgentRegistration } from '../../agent';\nimport { iconPickerAgent } from './icon-picker.agent';\n\n/** One selectable glyph. `label` is the accessible name (consumer-localised);\n * `node` is the rendered lucide/SVG element. */\nexport interface IconPickerIcon {\n id: string;\n label: string;\n node: ReactNode;\n}\n\n/** Agent-readiness curated handle for IconPicker. */\nexport interface IconPickerHandle {\n getValue: () => string;\n setValue: (id: string) => void;\n isOpen: () => boolean;\n open: () => void;\n close: () => void;\n getQuery: () => string;\n setQuery: (query: string) => void;\n}\n\nexport interface IconPickerProps {\n /** The glyph set. `label` is each glyph's accessible name. */\n icons: IconPickerIcon[];\n /** Controlled selected icon id. Pair with onChange. */\n value?: string;\n /** Uncontrolled initial selected icon id. */\n defaultValue?: string;\n /** Fires with the chosen icon id when a glyph is picked. */\n onChange?: (id: string) => void;\n /** Shown on the trigger when nothing is selected. */\n placeholder?: ReactNode;\n disabled?: boolean;\n id?: string;\n className?: string;\n /** Trigger accessible name. Defaults to the bundled `iconPicker.trigger`. */\n 'aria-label'?: string;\n}\n\n// Selectable glyph cell. The only variant is selection state — selected cells\n// take a tokenised highlight (primary border + muted fill); `aria-pressed`\n// carries the state non-visually so it never reads by colour alone.\nconst optionVariants = cva(\n [\n 'ds:relative ds:inline-flex ds:items-center ds:justify-center',\n 'ds:size-[var(--min-target-size)] ds:rounded-[var(--radius-sm)]',\n 'ds:border ds:text-foreground ds:bg-transparent',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:hover:bg-muted/10',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:[&_svg]:size-5',\n ].join(' '),\n {\n variants: {\n selected: {\n true: 'ds:border-primary ds:bg-muted',\n false: 'ds:border-transparent',\n },\n },\n defaultVariants: { selected: false },\n },\n);\n\nexport const IconPicker = forwardRef<HTMLButtonElement, IconPickerProps>(\n function IconPicker(\n {\n icons,\n value,\n defaultValue,\n onChange,\n placeholder,\n disabled,\n id,\n className,\n 'aria-label': ariaLabel,\n },\n ref,\n ) {\n const { t } = useTranslation('ui');\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? '',\n );\n const currentValue = isControlled ? (value ?? '') : internalValue;\n\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n\n // Live snapshots for the synchronous agent handle.\n const currentValueRef = useRef(currentValue);\n currentValueRef.current = currentValue;\n const openRef = useRef(open);\n openRef.current = open;\n const queryRef = useRef(query);\n queryRef.current = query;\n\n const handleOpenChange = useCallback((next: boolean) => {\n setOpen(next);\n // Reset the filter when the popover closes so the next open starts fresh.\n if (!next) setQuery('');\n }, []);\n\n const setValueImperative = useCallback(\n (iconId: string) => {\n if (!isControlled) setInternalValue(iconId);\n onChange?.(iconId);\n },\n [isControlled, onChange],\n );\n\n const handleSelect = useCallback(\n (iconId: string) => {\n setValueImperative(iconId);\n handleOpenChange(false);\n },\n [setValueImperative, handleOpenChange],\n );\n\n const agentHandle = useMemo<IconPickerHandle>(\n () => ({\n getValue: () => currentValueRef.current,\n setValue: (iconId) => setValueImperative(iconId),\n isOpen: () => openRef.current,\n open: () => handleOpenChange(true),\n close: () => handleOpenChange(false),\n getQuery: () => queryRef.current,\n setQuery: (next) => setQuery(next),\n }),\n [setValueImperative, handleOpenChange],\n );\n useAgentRegistration(iconPickerAgent, agentHandle, id);\n\n const selectedIcon = useMemo(\n () => icons.find((icon) => icon.id === currentValue),\n [icons, currentValue],\n );\n\n const normalisedQuery = query.trim().toLowerCase();\n const filtered = useMemo(\n () =>\n normalisedQuery\n ? icons.filter((icon) =>\n icon.label.toLowerCase().includes(normalisedQuery),\n )\n : icons,\n [icons, normalisedQuery],\n );\n\n const triggerLabel = ariaLabel ?? t('iconPicker.trigger');\n const resolvedPlaceholder = placeholder ?? t('iconPicker.trigger');\n\n return (\n <Popover.Root open={open} onOpenChange={handleOpenChange} id={id}>\n <Popover.Trigger asChild>\n <Button\n ref={ref}\n type=\"button\"\n intent=\"outline\"\n disabled={disabled}\n aria-label={triggerLabel}\n className={className}\n data-component=\"icon-picker\"\n data-component-id={id}\n >\n {selectedIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:justify-center ds:[&_svg]:size-5\"\n >\n {selectedIcon.node}\n </span>\n ) : (\n <span className=\"ds:inline-flex ds:items-center ds:text-muted-foreground\">\n {resolvedPlaceholder}\n </span>\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Content\n align=\"start\"\n showArrow={false}\n aria-label={triggerLabel}\n className=\"ds:w-72\"\n >\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <StateBackedTextInput\n size=\"sm\"\n value={query}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setQuery(event.target.value)\n }\n placeholder={t('iconPicker.search')}\n aria-label={t('iconPicker.search')}\n startAdornment={<Search />}\n clearable\n onClear={() => setQuery('')}\n autoComplete=\"off\"\n />\n\n {filtered.length === 0 ? (\n <p\n role=\"status\"\n className=\"type-body-sm ds:text-muted-foreground ds:text-center ds:py-[var(--spacing-sm)]\"\n >\n {t('iconPicker.noResults')}\n </p>\n ) : (\n <div\n role=\"group\"\n aria-label={triggerLabel}\n className=\"ds:grid ds:grid-cols-5 ds:gap-[var(--spacing-xs)] ds:max-h-64 ds:overflow-y-auto\"\n >\n {filtered.map((icon) => {\n const selected = icon.id === currentValue;\n return (\n <button\n key={icon.id}\n type=\"button\"\n aria-label={icon.label}\n aria-pressed={selected}\n onClick={() => handleSelect(icon.id)}\n className={optionVariants({ selected })}\n >\n <span aria-hidden=\"true\" className=\"ds:inline-flex\">\n {icon.node}\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n );\n },\n);\n\nIconPicker.displayName = 'IconPicker';\n\nexport { optionVariants as iconPickerOptionVariants };\n"],"names":["iconPickerAgent","handle","args","optionVariants","cva","IconPicker","forwardRef","icons","value","defaultValue","onChange","placeholder","disabled","id","className","ariaLabel","ref","t","useTranslation","isControlled","internalValue","setInternalValue","useState","currentValue","open","setOpen","query","setQuery","currentValueRef","useRef","openRef","queryRef","handleOpenChange","useCallback","next","setValueImperative","iconId","handleSelect","agentHandle","useMemo","useAgentRegistration","selectedIcon","icon","normalisedQuery","filtered","triggerLabel","resolvedPlaceholder","Popover","jsx","Button","jsxs","StateBackedTextInput","event","Search","selected"],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { jsxs as t, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as A, useState as S, useRef as r, useEffect as E, useMemo as R } from "react";
|
|
3
|
+
import { c as F } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as M } from "react-i18next";
|
|
5
|
+
import { P as i } from "./popover-CN5IsOeS.js";
|
|
6
|
+
import { L as H } from "./link-DtCfnLnF.js";
|
|
7
|
+
import { c as V } from "./compose-refs-C0k0tdqF.js";
|
|
8
|
+
import { u as q } from "./registry-DvAUVLHh.js";
|
|
9
|
+
import { I as B } from "./info-CGn22peZ.js";
|
|
10
|
+
const G = {
|
|
11
|
+
id: "info-tip",
|
|
12
|
+
capabilities: ["open", "close"],
|
|
13
|
+
state: {
|
|
14
|
+
isOpen: {
|
|
15
|
+
type: "boolean",
|
|
16
|
+
descriptionKey: "ui.agent.infoTip.state.isOpen",
|
|
17
|
+
description: "True when the info tip card is currently open.",
|
|
18
|
+
read: (s) => s.getIsOpen()
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
actions: {
|
|
22
|
+
open: {
|
|
23
|
+
safety: "read",
|
|
24
|
+
idempotent: !0,
|
|
25
|
+
descriptionKey: "ui.agent.infoTip.actions.open",
|
|
26
|
+
description: "Open the info tip card (including its formula and Learn more link, when set).",
|
|
27
|
+
invoke: (s) => {
|
|
28
|
+
s.open();
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
close: {
|
|
32
|
+
safety: "read",
|
|
33
|
+
idempotent: !0,
|
|
34
|
+
descriptionKey: "ui.agent.infoTip.actions.close",
|
|
35
|
+
description: "Close the info tip card.",
|
|
36
|
+
invoke: (s) => {
|
|
37
|
+
s.close();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
domHooks: {
|
|
42
|
+
root: {
|
|
43
|
+
attr: "data-component",
|
|
44
|
+
value: "info-tip",
|
|
45
|
+
description: "Marks the InfoTip trigger button."
|
|
46
|
+
},
|
|
47
|
+
instanceId: {
|
|
48
|
+
attr: "data-component-id",
|
|
49
|
+
sourceProp: "id",
|
|
50
|
+
description: "Sourced from the id prop on InfoTip."
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}, J = F(
|
|
54
|
+
[
|
|
55
|
+
"ds:relative ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
|
|
56
|
+
"ds:rounded-[var(--radius-full)]",
|
|
57
|
+
"ds:bg-[var(--card)]",
|
|
58
|
+
"ds:text-[var(--accent)]",
|
|
59
|
+
// Single ring: the Lucide Info glyph draws its own accent circle, so the
|
|
60
|
+
// trigger carries NO CSS border of its own (a border would read as a
|
|
61
|
+
// second, concentric ring). The white circle comes from `bg-card` showing
|
|
62
|
+
// through the glyph, lifted by the drop shadow.
|
|
63
|
+
"ds:shadow-[var(--shadow-sm)]",
|
|
64
|
+
"ds:cursor-pointer",
|
|
65
|
+
"ds:transition-[color,box-shadow] ds:motion-reduce:transition-none",
|
|
66
|
+
"ds:hover:text-[var(--accent-hover)] ds:hover:shadow-[var(--shadow-md)]",
|
|
67
|
+
"ds:data-[state=open]:text-[var(--accent-hover)] ds:data-[state=open]:shadow-[var(--shadow-md)]",
|
|
68
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
69
|
+
"ds:forced-colors:focus-visible:outline-[CanvasText]"
|
|
70
|
+
].join(" "),
|
|
71
|
+
{
|
|
72
|
+
variants: {
|
|
73
|
+
size: {
|
|
74
|
+
// Both diameters sit below `--min-target-size` (44/48px), so each
|
|
75
|
+
// re-uses IconButton's invisible `::before` hit-area expansion to a
|
|
76
|
+
// full touch target on touch / small screens. From the `sm:`
|
|
77
|
+
// breakpoint up the pointer is precise, so the expansion relaxes —
|
|
78
|
+
// but the interactive target must never fall below WCAG 2.5.8's 24px:
|
|
79
|
+
// • md (24px visual) already meets the 24px floor, so its `::before`
|
|
80
|
+
// is hidden on desktop and the 24px circle IS the target.
|
|
81
|
+
// • sm (20px visual) would fall to 20px if hidden — below the floor
|
|
82
|
+
// — so instead of hiding, its `::before` shrinks to a persistent
|
|
83
|
+
// `--spacing-lg` (24px) minimum that holds on desktop too.
|
|
84
|
+
sm: 'ds:w-5 ds:h-5 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""] ds:sm:before:inset-x-[calc((var(--spacing-lg)-100%)/-2)] ds:sm:before:inset-y-[calc((var(--spacing-lg)-100%)/-2)]',
|
|
85
|
+
md: 'ds:w-6 ds:h-6 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""] ds:sm:before:hidden'
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
defaultVariants: {
|
|
89
|
+
size: "md"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
), Q = A(
|
|
93
|
+
({
|
|
94
|
+
content: s,
|
|
95
|
+
heading: l,
|
|
96
|
+
size: f = "md",
|
|
97
|
+
side: D = "top",
|
|
98
|
+
align: z = "center",
|
|
99
|
+
"aria-label": C,
|
|
100
|
+
id: v,
|
|
101
|
+
className: L,
|
|
102
|
+
formula: g,
|
|
103
|
+
learnMoreHref: h,
|
|
104
|
+
learnMoreLabel: N,
|
|
105
|
+
onLearnMore: K
|
|
106
|
+
}, b) => {
|
|
107
|
+
const { t: p } = M("ui"), [a, c] = S(!1), n = r(a);
|
|
108
|
+
E(() => {
|
|
109
|
+
n.current = a;
|
|
110
|
+
}, [a]);
|
|
111
|
+
const P = R(
|
|
112
|
+
() => ({
|
|
113
|
+
getIsOpen: () => n.current,
|
|
114
|
+
open: () => c(!0),
|
|
115
|
+
close: () => c(!1)
|
|
116
|
+
}),
|
|
117
|
+
[]
|
|
118
|
+
);
|
|
119
|
+
q(G, P, v);
|
|
120
|
+
const u = r(null), y = () => {
|
|
121
|
+
u.current = n.current;
|
|
122
|
+
}, T = h != null, w = r(null), j = R(
|
|
123
|
+
() => V(b, w),
|
|
124
|
+
[b]
|
|
125
|
+
), m = r(null), x = r(null), k = C ?? p("infoTip.triggerLabel", "More information");
|
|
126
|
+
return /* @__PURE__ */ t(i, { openOn: "hover-or-click", open: a, onOpenChange: c, children: [
|
|
127
|
+
/* @__PURE__ */ o(
|
|
128
|
+
i.Trigger,
|
|
129
|
+
{
|
|
130
|
+
ref: j,
|
|
131
|
+
"aria-label": k,
|
|
132
|
+
className: J({ size: f, className: L }),
|
|
133
|
+
"data-component": "info-tip",
|
|
134
|
+
"data-component-id": v,
|
|
135
|
+
onPointerDown: y,
|
|
136
|
+
onKeyDown: (e) => {
|
|
137
|
+
(e.key === "Enter" || e.key === " ") && y(), T && e.key === "Tab" && !e.shiftKey && n.current && m.current && (e.preventDefault(), m.current.focus());
|
|
138
|
+
},
|
|
139
|
+
onClick: (e) => {
|
|
140
|
+
const d = u.current;
|
|
141
|
+
u.current = null, d === !1 && n.current && e.preventDefault();
|
|
142
|
+
},
|
|
143
|
+
children: /* @__PURE__ */ o(
|
|
144
|
+
B,
|
|
145
|
+
{
|
|
146
|
+
"aria-hidden": "true",
|
|
147
|
+
className: f === "sm" ? "ds:size-5" : "ds:size-6"
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
),
|
|
152
|
+
/* @__PURE__ */ t(
|
|
153
|
+
i.Content,
|
|
154
|
+
{
|
|
155
|
+
ref: x,
|
|
156
|
+
side: D,
|
|
157
|
+
align: z,
|
|
158
|
+
size: f === "sm" ? "sm" : "md",
|
|
159
|
+
"aria-label": l == null ? k : void 0,
|
|
160
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
161
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
162
|
+
onEscapeKeyDown: (e) => {
|
|
163
|
+
var I, O;
|
|
164
|
+
const d = document.activeElement;
|
|
165
|
+
d && ((I = x.current) != null && I.contains(d)) && (e.preventDefault(), (O = w.current) == null || O.focus(), c(!1));
|
|
166
|
+
},
|
|
167
|
+
children: [
|
|
168
|
+
l != null && /* @__PURE__ */ o(i.Heading, { children: l }),
|
|
169
|
+
/* @__PURE__ */ t(i.Description, { children: [
|
|
170
|
+
s,
|
|
171
|
+
g != null && /* @__PURE__ */ t(
|
|
172
|
+
"div",
|
|
173
|
+
{
|
|
174
|
+
"data-slot": "formula",
|
|
175
|
+
className: "type-body-sm ds:mt-[var(--spacing-sm)] ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)] ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[var(--foreground)] ds:tabular-nums",
|
|
176
|
+
children: [
|
|
177
|
+
/* @__PURE__ */ t("span", { className: "ds:sr-only", children: [
|
|
178
|
+
p("infoTip.formula", "Formula"),
|
|
179
|
+
":",
|
|
180
|
+
" "
|
|
181
|
+
] }),
|
|
182
|
+
g
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
] }),
|
|
187
|
+
T && /* @__PURE__ */ o(
|
|
188
|
+
"div",
|
|
189
|
+
{
|
|
190
|
+
"data-slot": "footer",
|
|
191
|
+
className: "ds:mt-[var(--spacing-sm)] ds:flex ds:justify-end",
|
|
192
|
+
children: /* @__PURE__ */ o(
|
|
193
|
+
H,
|
|
194
|
+
{
|
|
195
|
+
ref: m,
|
|
196
|
+
href: h,
|
|
197
|
+
onClick: K,
|
|
198
|
+
weight: "strong",
|
|
199
|
+
className: "type-body-sm",
|
|
200
|
+
children: N ?? p("infoTip.learnMore", "Learn more")
|
|
201
|
+
}
|
|
202
|
+
)
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
] });
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
Q.displayName = "InfoTip";
|
|
212
|
+
export {
|
|
213
|
+
Q as I,
|
|
214
|
+
G as i
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=info-tip-Do3RFt60.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-tip-Do3RFt60.js","sources":["../../src/components/info-tip/info-tip.agent.ts","../../src/components/info-tip/info-tip.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { InfoTipHandle } from './info-tip';\n\nexport const infoTipAgent: AgentAdapter<InfoTipHandle> = {\n id: 'info-tip',\n capabilities: ['open', 'close'],\n state: {\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.infoTip.state.isOpen',\n description: 'True when the info tip card is currently open.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.infoTip.actions.open',\n description:\n 'Open the info tip card (including its formula and Learn more link, when set).',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.infoTip.actions.close',\n description: 'Close the info tip card.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'info-tip',\n description: 'Marks the InfoTip trigger button.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop on InfoTip.',\n },\n },\n};\n","import {\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Info } from 'lucide-react';\nimport { Popover } from '../popover';\nimport { Link } from '../link';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useAgentRegistration } from '../../agent';\nimport { infoTipAgent } from './info-tip.agent';\n\n/* -------------------------------------------------------------------- */\n/* Trigger — a small circular, branded affordance: card surface inside */\n/* the circle, accent ring + accent \"i\" glyph, and a soft drop shadow. */\n/* The accent alias is safe here: `--accent` resolves to magenta-700 in */\n/* light mode (the AA-safe interactive step) and the dark accent on dark */\n/* surfaces — never reference a raw magenta ramp step. */\n/* -------------------------------------------------------------------- */\n\nconst infoTipTriggerVariants = cva(\n [\n 'ds:relative ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:bg-[var(--card)]',\n 'ds:text-[var(--accent)]',\n // Single ring: the Lucide Info glyph draws its own accent circle, so the\n // trigger carries NO CSS border of its own (a border would read as a\n // second, concentric ring). The white circle comes from `bg-card` showing\n // through the glyph, lifted by the drop shadow.\n 'ds:shadow-[var(--shadow-sm)]',\n 'ds:cursor-pointer',\n 'ds:transition-[color,box-shadow] ds:motion-reduce:transition-none',\n 'ds:hover:text-[var(--accent-hover)] ds:hover:shadow-[var(--shadow-md)]',\n 'ds:data-[state=open]:text-[var(--accent-hover)] ds:data-[state=open]:shadow-[var(--shadow-md)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n // Both diameters sit below `--min-target-size` (44/48px), so each\n // re-uses IconButton's invisible `::before` hit-area expansion to a\n // full touch target on touch / small screens. From the `sm:`\n // breakpoint up the pointer is precise, so the expansion relaxes —\n // but the interactive target must never fall below WCAG 2.5.8's 24px:\n // • md (24px visual) already meets the 24px floor, so its `::before`\n // is hidden on desktop and the 24px circle IS the target.\n // • sm (20px visual) would fall to 20px if hidden — below the floor\n // — so instead of hiding, its `::before` shrinks to a persistent\n // `--spacing-lg` (24px) minimum that holds on desktop too.\n sm: 'ds:w-5 ds:h-5 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"] ds:sm:before:inset-x-[calc((var(--spacing-lg)-100%)/-2)] ds:sm:before:inset-y-[calc((var(--spacing-lg)-100%)/-2)]',\n md: 'ds:w-6 ds:h-6 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"] ds:sm:before:hidden',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\n// Curated agent-readiness handle — see info-tip.agent.ts.\nexport interface InfoTipHandle {\n getIsOpen: () => boolean;\n open: () => void;\n close: () => void;\n}\n\nexport interface InfoTipProps {\n /** Body of the tip — explanatory text shown in the floating card. */\n content: ReactNode;\n /** Optional heading rendered above the body. */\n heading?: ReactNode;\n /**\n * Trigger diameter. Also maps the floating card width:\n * `sm` → `--popover-size-sm`, `md` → `--popover-size-md`.\n */\n size?: 'sm' | 'md';\n /** Logical side the card opens on. Default `'top'`. */\n side?: 'start' | 'top' | 'end' | 'bottom';\n /** Alignment along the side axis. Default `'center'`. */\n align?: 'start' | 'center' | 'end';\n /**\n * Accessible name for the trigger. Defaults to the translated\n * \"More information\" chrome string.\n */\n 'aria-label'?: string;\n /**\n * Opaque instance id — emitted as `data-component-id` on the trigger and\n * used to register the instance with the host agent registry.\n */\n id?: string;\n /** Extra classes merged onto the trigger button. */\n className?: string;\n /**\n * A formula written in words, shown below `content` in a quiet block, e.g.\n * \"Net revenue = invoices issued − credit notes\". It is part of the card's\n * description, so screen readers hear it.\n */\n formula?: ReactNode;\n /**\n * When set, the card gains a footer \"Learn more\" link to this URL and\n * becomes interactive: Tab from the open trigger moves to the link,\n * Shift+Tab returns, Escape closes and refocuses the trigger. Without it the\n * card stays explanatory text only and focus never leaves the trigger.\n */\n learnMoreHref?: string;\n /** Link text. Defaults to the translated \"Learn more\" chrome string. */\n learnMoreLabel?: string;\n /**\n * Called when the link is activated. An SPA can call `event.preventDefault()`\n * and route client-side; the anchor keeps its real `href` either way.\n */\n onLearnMore?: (event: ReactMouseEvent<HTMLAnchorElement>) => void;\n}\n\n/**\n * InfoTip — a deliberate, branded \"more information\" affordance: a small\n * circular trigger that reveals an explanatory card on hover **and** click\n * (click also serves touch devices). Composes the kit Popover in\n * `openOn=\"hover-or-click\"` mode — hover intent, keyboard focus, Escape and\n * focus-return are all handled by the Popover/Radix layer.\n */\nexport const InfoTip = forwardRef<HTMLButtonElement, InfoTipProps>(\n (\n {\n content,\n heading,\n size = 'md',\n side = 'top',\n align = 'center',\n 'aria-label': ariaLabelProp,\n id,\n className,\n formula,\n learnMoreHref,\n learnMoreLabel,\n onLearnMore,\n },\n ref,\n ) => {\n const { t } = useTranslation('ui');\n const [open, setOpen] = useState(false);\n\n // Agent handle.\n const openRef = useRef(open);\n useEffect(() => {\n openRef.current = open;\n }, [open]);\n\n const agentHandle = useMemo<InfoTipHandle>(\n () => ({\n getIsOpen: () => openRef.current,\n open: () => setOpen(true),\n close: () => setOpen(false),\n }),\n [],\n );\n useAgentRegistration(infoTipAgent, agentHandle, id);\n\n // Press bookkeeping. In hover-or-click mode the Popover opens as soon as\n // the trigger receives focus — which happens on pointerdown, BEFORE the\n // click event that Radix uses to toggle. Without intervention every\n // click/tap on a closed tip opens it (focus) and instantly toggles it\n // closed again (click). So each press (pointerdown, or Enter/Space)\n // snapshots the open state and the click handler consumes it: if the\n // press itself opened the card, swallow Radix's toggle so the card stays\n // open; if it was already open, let the toggle close it.\n //\n // `null` means \"no press recorded for this click\" — an orphan click\n // (programmatic .click(), or assistive tech dispatching click with no\n // pointer/key event). Those must fall through to Radix's default toggle\n // rather than read a stale snapshot, so the guard treats `null` as\n // \"don't suppress\" and every click clears the snapshot back to `null`.\n const pressStateRef = useRef<boolean | null>(null);\n const handlePressStart = () => {\n pressStateRef.current = openRef.current;\n };\n\n const hasLink = learnMoreHref != null;\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const composedTriggerRef = useMemo(\n () => composeRefs<HTMLButtonElement>(ref, triggerRef),\n [ref],\n );\n const linkRef = useRef<HTMLAnchorElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const ariaLabel =\n ariaLabelProp ?? t('infoTip.triggerLabel', 'More information');\n\n return (\n <Popover openOn=\"hover-or-click\" open={open} onOpenChange={setOpen}>\n <Popover.Trigger\n ref={composedTriggerRef}\n aria-label={ariaLabel}\n className={infoTipTriggerVariants({ size, className })}\n data-component=\"info-tip\"\n data-component-id={id}\n onPointerDown={handlePressStart}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n handlePressStart();\n }\n // The card is portalled, so native Tab order would skip it. With a\n // link, Tab from the open trigger goes straight to the link.\n if (\n hasLink &&\n event.key === 'Tab' &&\n !event.shiftKey &&\n openRef.current &&\n linkRef.current\n ) {\n event.preventDefault();\n linkRef.current.focus();\n }\n }}\n onClick={(event) => {\n // Consume this click's press snapshot. A genuine pointer/keyboard\n // press recorded `false`/`true` on press-start; an orphan click\n // with no preceding pointerdown/keydown finds `null` and is left\n // to Radix's default toggle.\n const wasOpenAtPressStart = pressStateRef.current;\n pressStateRef.current = null;\n if (wasOpenAtPressStart === false && openRef.current) {\n // This press opened the card via focus — keep it open and\n // skip Radix's click toggle.\n event.preventDefault();\n }\n }}\n >\n <Info\n aria-hidden=\"true\"\n // Fills the circle so the glyph's own ring IS the trigger's\n // visible edge and the drop shadow hugs it.\n className={size === 'sm' ? 'ds:size-5' : 'ds:size-6'}\n />\n </Popover.Trigger>\n <Popover.Content\n ref={contentRef}\n side={side}\n align={align}\n size={size === 'sm' ? 'sm' : 'md'}\n // The card is a Radix `role=\"dialog\"` surface, which axe requires\n // to have an accessible name (aria-dialog-name). With a heading,\n // Popover wires aria-labelledby; without one, fall back to the\n // trigger's label.\n aria-label={heading == null ? ariaLabel : undefined}\n // Toggletip focus contract: the card is explanatory text, never\n // interactive, so focus stays on the trigger for the whole\n // open/close cycle. Preventing the open move also keeps Escape\n // reliable — if Radix pulled focus into the card, closing would\n // refocus the trigger and re-fire the hover-mode focus handler,\n // reopening the card it just closed. Preventing the close move\n // keeps an unhover-close from stealing focus mid-task.\n //\n // With a learn-more link the card is interactive, but the same\n // contract holds: focus is never pulled in on open, only Tab moves\n // it to the link. Escape from inside the card is handled below so\n // focus returns to the trigger without re-firing its focus-open.\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onEscapeKeyDown={(event) => {\n // Focus anywhere inside the card (the link, or the card itself\n // after a click on its text) goes back to the trigger.\n const active = document.activeElement;\n if (active && contentRef.current?.contains(active)) {\n event.preventDefault();\n triggerRef.current?.focus();\n setOpen(false);\n }\n }}\n >\n {heading != null && <Popover.Heading>{heading}</Popover.Heading>}\n <Popover.Description>\n {content}\n {formula != null && (\n <div\n data-slot=\"formula\"\n className=\"type-body-sm ds:mt-[var(--spacing-sm)] ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)] ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[var(--foreground)] ds:tabular-nums\"\n >\n <span className=\"ds:sr-only\">\n {t('infoTip.formula', 'Formula')}:{' '}\n </span>\n {formula}\n </div>\n )}\n </Popover.Description>\n {hasLink && (\n <div\n data-slot=\"footer\"\n className=\"ds:mt-[var(--spacing-sm)] ds:flex ds:justify-end\"\n >\n <Link\n ref={linkRef}\n href={learnMoreHref}\n onClick={onLearnMore}\n weight=\"strong\"\n className=\"type-body-sm\"\n >\n {learnMoreLabel ?? t('infoTip.learnMore', 'Learn more')}\n </Link>\n </div>\n )}\n </Popover.Content>\n </Popover>\n );\n },\n);\n\nInfoTip.displayName = 'InfoTip';\n"],"names":["infoTipAgent","handle","infoTipTriggerVariants","cva","InfoTip","forwardRef","content","heading","size","side","align","ariaLabelProp","id","className","formula","learnMoreHref","learnMoreLabel","onLearnMore","ref","t","useTranslation","open","setOpen","useState","openRef","useRef","useEffect","agentHandle","useMemo","useAgentRegistration","pressStateRef","handlePressStart","hasLink","triggerRef","composedTriggerRef","composeRefs","linkRef","contentRef","ariaLabel","Popover","jsx","event","wasOpenAtPressStart","Info","jsxs","active","_a","_b","Link"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createElement as e } from "react";
|
|
2
|
-
import { P as i } from "./pregnancy-dating-
|
|
3
|
-
import { P as o } from "./pregnancy-weight-gain-
|
|
4
|
-
import { G as r } from "./gestational-age-calculator-
|
|
5
|
-
import { C as c } from "./cycle-calculator-
|
|
6
|
-
import { F as s } from "./fetal-weight-
|
|
2
|
+
import { P as i } from "./pregnancy-dating-D0Kf9s7s.js";
|
|
3
|
+
import { P as o } from "./pregnancy-weight-gain-B_Zldlzq.js";
|
|
4
|
+
import { G as r } from "./gestational-age-calculator-CXcDKQqC.js";
|
|
5
|
+
import { C as c } from "./cycle-calculator-ZMDvToIm.js";
|
|
6
|
+
import { F as s } from "./fetal-weight-CkIwJgiH.js";
|
|
7
7
|
import { c as a } from "./createLucideIcon-DhHxpK9K.js";
|
|
8
8
|
import { B as n } from "./baby-Dku-Xvg9.js";
|
|
9
9
|
import { H as d } from "./heart--qCA4ffe.js";
|
|
@@ -91,4 +91,4 @@ const k = [
|
|
|
91
91
|
export {
|
|
92
92
|
I as k
|
|
93
93
|
};
|
|
94
|
-
//# sourceMappingURL=kit-extensions-
|
|
94
|
+
//# sourceMappingURL=kit-extensions-C4o_tFN4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kit-extensions-
|
|
1
|
+
{"version":3,"file":"kit-extensions-C4o_tFN4.js","sources":["../../node_modules/lucide-react/dist/esm/icons/calendar-heart.mjs","../../node_modules/lucide-react/dist/esm/icons/scale.mjs","../../src/components/rich-text-editor/kit-extensions.ts"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n { d: \"M12.127 22H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.125\", key: \"vxdnp4\" }\n ],\n [\n \"path\",\n {\n d: \"M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z\",\n key: \"15cy7q\"\n }\n ],\n [\"path\", { d: \"M16 2v4\", key: \"4m81vk\" }],\n [\"path\", { d: \"M3 10h18\", key: \"8toen8\" }],\n [\"path\", { d: \"M8 2v4\", key: \"1cmpym\" }]\n];\nconst CalendarHeart = createLucideIcon(\"calendar-heart\", __iconNode);\n\nexport { __iconNode, CalendarHeart as default };\n//# sourceMappingURL=calendar-heart.mjs.map\n","/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }],\n [\"path\", { d: \"m19 8 3 8a5 5 0 0 1-6 0zV7\", key: \"zcdpyk\" }],\n [\"path\", { d: \"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1\", key: \"1yorad\" }],\n [\"path\", { d: \"m5 8 3 8a5 5 0 0 1-6 0zV7\", key: \"eua70x\" }],\n [\"path\", { d: \"M7 21h10\", key: \"1b0cd5\" }]\n];\nconst Scale = createLucideIcon(\"scale\", __iconNode);\n\nexport { __iconNode, Scale as default };\n//# sourceMappingURL=scale.mjs.map\n","import { createElement } from 'react';\nimport { Baby, CalendarHeart, Heart, Scale } from 'lucide-react';\nimport { PregnancyDating } from '../pregnancy-dating';\nimport { PregnancyWeightGain } from '../pregnancy-weight-gain';\nimport { GestationalAgeCalculator } from '../gestational-age-calculator';\nimport { CycleCalculator } from '../cycle-calculator';\nimport { FetalWeight } from '../fetal-weight';\nimport type { EditorExtension } from './editor-extensions';\n\n/** Labels are resolved by the editor's useTranslation, including live locale changes. */\nexport const kitEditorExtensions: EditorExtension[] = [\n {\n id: 'pregnancy-dating',\n label: 'insert.title.pregnancyDating',\n icon: createElement(CalendarHeart),\n kind: 'panel',\n contexts: ['note', 'diagnosis'],\n source: { kind: 'kit' },\n render: ({ insert }) =>\n createElement(PregnancyDating, { onInsert: insert }),\n },\n {\n id: 'pregnancy-weight-gain',\n label: 'insert.title.weightGain',\n icon: createElement(Baby),\n kind: 'panel',\n contexts: ['note', 'diagnosis'],\n source: { kind: 'kit' },\n render: ({ insert }) =>\n createElement(PregnancyWeightGain, { onInsert: insert }),\n },\n {\n id: 'gestational-age-calculator',\n label: 'insert.title.gestationalAge',\n icon: createElement(Baby),\n kind: 'panel',\n contexts: ['note', 'diagnosis'],\n source: { kind: 'kit' },\n render: ({ insert }) =>\n createElement(GestationalAgeCalculator, { onInsert: insert }),\n },\n {\n id: 'cycle-calculator',\n label: 'insert.title.cycle',\n icon: createElement(Heart),\n kind: 'panel',\n contexts: ['note', 'diagnosis'],\n source: { kind: 'kit' },\n render: ({ insert }) =>\n createElement(CycleCalculator, { onInsert: insert }),\n },\n {\n id: 'fetal-weight',\n label: 'insert.title.fetalWeight',\n icon: createElement(Scale),\n kind: 'panel',\n contexts: ['note', 'diagnosis'],\n source: { kind: 'kit' },\n render: ({ insert }) => createElement(FetalWeight, { onInsert: insert }),\n },\n];\n"],"names":["__iconNode","CalendarHeart","createLucideIcon","Scale","kitEditorExtensions","createElement","insert","PregnancyDating","Baby","PregnancyWeightGain","GestationalAgeCalculator","Heart","CycleCalculator","FetalWeight"],"mappings":";;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA,EAAE,GAAG,qEAAqE,KAAK,SAAQ;AAAA,EAC3F;AAAA,EACE;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,UAAU,KAAK,SAAQ,CAAE;AACzC,GACMC,IAAgBC,EAAiB,kBAAkBF,CAAU;ACzBnE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,8BAA8B,KAAK,SAAQ,CAAE;AAAA,EAC3D,CAAC,QAAQ,EAAE,GAAG,4CAA4C,KAAK,SAAQ,CAAE;AAAA,EACzE,CAAC,QAAQ,EAAE,GAAG,6BAA6B,KAAK,SAAQ,CAAE;AAAA,EAC1D,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMG,IAAQD,EAAiB,SAASF,CAAU,GCNrCI,IAAyC;AAAA,EACpD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAMC,EAAcJ,CAAa;AAAA,IACjC,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ,WAAW;AAAA,IAC9B,QAAQ,EAAE,MAAM,MAAA;AAAA,IAChB,QAAQ,CAAC,EAAE,QAAAK,EAAA,MACTD,EAAcE,GAAiB,EAAE,UAAUD,EAAA,CAAQ;AAAA,EAAA;AAAA,EAEvD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAMD,EAAcG,CAAI;AAAA,IACxB,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ,WAAW;AAAA,IAC9B,QAAQ,EAAE,MAAM,MAAA;AAAA,IAChB,QAAQ,CAAC,EAAE,QAAAF,EAAA,MACTD,EAAcI,GAAqB,EAAE,UAAUH,EAAA,CAAQ;AAAA,EAAA;AAAA,EAE3D;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAMD,EAAcG,CAAI;AAAA,IACxB,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ,WAAW;AAAA,IAC9B,QAAQ,EAAE,MAAM,MAAA;AAAA,IAChB,QAAQ,CAAC,EAAE,QAAAF,EAAA,MACTD,EAAcK,GAA0B,EAAE,UAAUJ,EAAA,CAAQ;AAAA,EAAA;AAAA,EAEhE;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAMD,EAAcM,CAAK;AAAA,IACzB,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ,WAAW;AAAA,IAC9B,QAAQ,EAAE,MAAM,MAAA;AAAA,IAChB,QAAQ,CAAC,EAAE,QAAAL,EAAA,MACTD,EAAcO,GAAiB,EAAE,UAAUN,EAAA,CAAQ;AAAA,EAAA;AAAA,EAEvD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAMD,EAAcF,CAAK;AAAA,IACzB,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ,WAAW;AAAA,IAC9B,QAAQ,EAAE,MAAM,MAAA;AAAA,IAChB,QAAQ,CAAC,EAAE,QAAAG,EAAA,MAAaD,EAAcQ,GAAa,EAAE,UAAUP,EAAA,CAAQ;AAAA,EAAA;AAE3E;","x_google_ignoreList":[0,1]}
|
|
@@ -4,7 +4,7 @@ import { c as X } from "./index-D2ZczOXr.js";
|
|
|
4
4
|
import { useTranslation as H } from "react-i18next";
|
|
5
5
|
import { _ as y, R as _e } from "./index-4xgbg-sn.js";
|
|
6
6
|
import { I as fe } from "./icon-button-S8_weU3g.js";
|
|
7
|
-
import { P as b } from "./popover-
|
|
7
|
+
import { P as b } from "./popover-CN5IsOeS.js";
|
|
8
8
|
import { F as ve, f as pe, s as $, _ as he, a as ye, b as be, c as Ne, d as Le, e as Se, g as xe, h as Ce, i as ke, j as we, k as Pe, l as Ee, m as Re, n as Ie, o as Te, p as Ae, q as De, r as Fe, t as je, u as Oe, v as Ue, w as Ge, x as ze, y as He, z as Me, A as Be, B as qe, C as Je, D as Ke, E as Ve, G as We, H as Ye, I as Qe, J as Xe, K as $e, L as Ze } from "./flag-view-udarpAot.js";
|
|
9
9
|
import { b as es } from "./menu-row-BAr8bx1I.js";
|
|
10
10
|
import { c as ss, a as os, d as as } from "./input-surface-iBmxVBfr.js";
|
|
@@ -882,4 +882,4 @@ export {
|
|
|
882
882
|
U as r,
|
|
883
883
|
_s as u
|
|
884
884
|
};
|
|
885
|
-
//# sourceMappingURL=locale-picker-
|
|
885
|
+
//# sourceMappingURL=locale-picker-B1NAHW4U.js.map
|