@alfadocs/ui-kit-debug 1.130.1 → 1.131.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-DTaIQKp9.js → actions-cell-renderer-C-l_ppP6.js} +3 -3
- package/dist/_chunks/{actions-cell-renderer-DTaIQKp9.js.map → actions-cell-renderer-C-l_ppP6.js.map} +1 -1
- package/dist/_chunks/{alia-sidebar-BBxbMRmX.js → alia-sidebar-CK1zw_Bc.js} +2 -2
- package/dist/_chunks/{alia-sidebar-BBxbMRmX.js.map → alia-sidebar-CK1zw_Bc.js.map} +1 -1
- package/dist/_chunks/{anamnesis-summary-rows-CtcULkvc.js → anamnesis-summary-rows-CCNmkq55.js} +5 -5
- package/dist/_chunks/{anamnesis-summary-rows-CtcULkvc.js.map → anamnesis-summary-rows-CCNmkq55.js.map} +1 -1
- package/dist/_chunks/{appointment-card-vbUsDh70.js → appointment-card-OAOur8lH.js} +2 -2
- package/dist/_chunks/{appointment-card-vbUsDh70.js.map → appointment-card-OAOur8lH.js.map} +1 -1
- package/dist/_chunks/{appointment-peek-DdUhqfEi.js → appointment-peek-DZa6xyUb.js} +2 -2
- package/dist/_chunks/{appointment-peek-DdUhqfEi.js.map → appointment-peek-DZa6xyUb.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-B5pfBl-b.js → appointment-timeline-DQePqpyH.js} +3 -3
- package/dist/_chunks/{appointment-timeline-B5pfBl-b.js.map → appointment-timeline-DQePqpyH.js.map} +1 -1
- package/dist/_chunks/{appointment-tray-BhiXetjs.js → appointment-tray-DSFqO5Rm.js} +2 -2
- package/dist/_chunks/{appointment-tray-BhiXetjs.js.map → appointment-tray-DSFqO5Rm.js.map} +1 -1
- package/dist/_chunks/{balance-badge-cell-BtFge7Y6.js → balance-badge-cell-DTiMdnCZ.js} +4 -4
- package/dist/_chunks/{balance-badge-cell-BtFge7Y6.js.map → balance-badge-cell-DTiMdnCZ.js.map} +1 -1
- package/dist/_chunks/bill-line-table-DHKb_O7c.js +2000 -0
- package/dist/_chunks/bill-line-table-DHKb_O7c.js.map +1 -0
- package/dist/_chunks/body-pointer-lock-CsOEDm1I.js +15 -0
- package/dist/_chunks/body-pointer-lock-CsOEDm1I.js.map +1 -0
- package/dist/_chunks/{button-group-B2MJo0Se.js → button-group-DuQuuulC.js} +2 -2
- package/dist/_chunks/{button-group-B2MJo0Se.js.map → button-group-DuQuuulC.js.map} +1 -1
- package/dist/_chunks/{calculator-dialog-BGX5XQCM.js → calculator-dialog-Cg3GjaRf.js} +2 -2
- package/dist/_chunks/{calculator-dialog-BGX5XQCM.js.map → calculator-dialog-Cg3GjaRf.js.map} +1 -1
- package/dist/_chunks/{calendar-DzR-vdJ5.js → calendar-BIoOeBTT.js} +103 -103
- package/dist/_chunks/{calendar-DzR-vdJ5.js.map → calendar-BIoOeBTT.js.map} +1 -1
- package/dist/_chunks/{calendar-appointment-editor-dialog-CXch4Pmu.js → calendar-appointment-editor-dialog-WW6V1SGh.js} +15 -15
- package/dist/_chunks/{calendar-appointment-editor-dialog-CXch4Pmu.js.map → calendar-appointment-editor-dialog-WW6V1SGh.js.map} +1 -1
- package/dist/_chunks/{care-plan-card-CwgkImOD.js → care-plan-card-DKScH9Ss.js} +2 -2
- package/dist/_chunks/{care-plan-card-CwgkImOD.js.map → care-plan-card-DKScH9Ss.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-cdojypxu.js → care-plan-entry-card-AG1y3nyW.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-cdojypxu.js.map → care-plan-entry-card-AG1y3nyW.js.map} +1 -1
- package/dist/_chunks/{chart-Aue_2dMb.js → chart-D0EeFWst.js} +2 -2
- package/dist/_chunks/{chart-Aue_2dMb.js.map → chart-D0EeFWst.js.map} +1 -1
- package/dist/_chunks/{dashboard-grid-CaxgaEgI.js → dashboard-grid-2uVXEe9e.js} +2 -2
- package/dist/_chunks/{dashboard-grid-CaxgaEgI.js.map → dashboard-grid-2uVXEe9e.js.map} +1 -1
- package/dist/_chunks/{data-grid-C9xlUMLt.js → data-grid-B2oaI7Lt.js} +2345 -2328
- package/dist/_chunks/data-grid-B2oaI7Lt.js.map +1 -0
- package/dist/_chunks/{data-table-BCfkcPti.js → data-table-FTV3uRjX.js} +3 -3
- package/dist/_chunks/{data-table-BCfkcPti.js.map → data-table-FTV3uRjX.js.map} +1 -1
- package/dist/_chunks/{default-tabs-BnB6FUEW.js → default-tabs-DbebYO04.js} +5 -5
- package/dist/_chunks/{default-tabs-BnB6FUEW.js.map → default-tabs-DbebYO04.js.map} +1 -1
- package/dist/_chunks/{dialog-CIUn5oLb.js → dialog-CVTxyR0v.js} +48 -47
- package/dist/_chunks/dialog-CVTxyR0v.js.map +1 -0
- package/dist/_chunks/{document-preview-BWDTCEHI.js → document-preview-_kQ9QvZV.js} +2 -2
- package/dist/_chunks/{document-preview-BWDTCEHI.js.map → document-preview-_kQ9QvZV.js.map} +1 -1
- package/dist/_chunks/{dropdown-menu-Dw6sgQwJ.js → dropdown-menu-DBWaW4pq.js} +92 -88
- package/dist/_chunks/dropdown-menu-DBWaW4pq.js.map +1 -0
- package/dist/_chunks/{editable-currency-cell-renderer-BlK-8A7b.js → editable-currency-cell-renderer-CZMQ5xRT.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-BlK-8A7b.js.map → editable-currency-cell-renderer-CZMQ5xRT.js.map} +1 -1
- package/dist/_chunks/{face-scheme-Bt07zQJU.js → face-scheme-D_Y1StPl.js} +3 -3
- package/dist/_chunks/{face-scheme-Bt07zQJU.js.map → face-scheme-D_Y1StPl.js.map} +1 -1
- package/dist/_chunks/{file-manager-Dpwv0qs-.js → file-manager-Bzr5NK1t.js} +5 -5
- package/dist/_chunks/{file-manager-Dpwv0qs-.js.map → file-manager-Bzr5NK1t.js.map} +1 -1
- package/dist/_chunks/{header-settings-ZGvYAuKF.js → header-settings-Cu-MKOsO.js} +2 -2
- package/dist/_chunks/{header-settings-ZGvYAuKF.js.map → header-settings-Cu-MKOsO.js.map} +1 -1
- package/dist/_chunks/{heatmap-Ds5DJBUL.js → heatmap-C5gJin_F.js} +3 -3
- package/dist/_chunks/{heatmap-Ds5DJBUL.js.map → heatmap-C5gJin_F.js.map} +1 -1
- package/dist/_chunks/{help-me-write-templates-C28E_rOt.js → help-me-write-templates-DO6vJeP4.js} +2 -2
- package/dist/_chunks/{help-me-write-templates-C28E_rOt.js.map → help-me-write-templates-DO6vJeP4.js.map} +1 -1
- package/dist/_chunks/{icon-button-group-BKtkVZ1W.js → icon-button-group-SmkdVCNx.js} +2 -2
- package/dist/_chunks/{icon-button-group-BKtkVZ1W.js.map → icon-button-group-SmkdVCNx.js.map} +1 -1
- package/dist/_chunks/{invoice-upload-list-tJY7W1g_.js → invoice-upload-list-B5aMffTy.js} +22 -22
- package/dist/_chunks/{invoice-upload-list-tJY7W1g_.js.map → invoice-upload-list-B5aMffTy.js.map} +1 -1
- package/dist/_chunks/{link-cell-renderer-CC9VHU68.js → link-cell-renderer-D3JLPURZ.js} +2 -2
- package/dist/_chunks/{link-cell-renderer-CC9VHU68.js.map → link-cell-renderer-D3JLPURZ.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-D_HA8CKx.js → marketplace-app-shell-dMmxI6MT.js} +4 -4
- package/dist/_chunks/{marketplace-app-shell-D_HA8CKx.js.map → marketplace-app-shell-dMmxI6MT.js.map} +1 -1
- package/dist/_chunks/{muscle-scheme-DdIdm8Gw.js → muscle-scheme-BGJD62op.js} +2 -2
- package/dist/_chunks/{muscle-scheme-DdIdm8Gw.js.map → muscle-scheme-BGJD62op.js.map} +1 -1
- package/dist/_chunks/{notes-panel-DIY7eNsq.js → notes-panel-Cm-_pCRJ.js} +3 -3
- package/dist/_chunks/{notes-panel-DIY7eNsq.js.map → notes-panel-Cm-_pCRJ.js.map} +1 -1
- package/dist/_chunks/{parts-tGzYz0uG.js → parts-BOnDDU3E.js} +2 -2
- package/dist/_chunks/{parts-tGzYz0uG.js.map → parts-BOnDDU3E.js.map} +1 -1
- package/dist/_chunks/{patient-search-OAwFgOW3.js → patient-search-DBvLFArV.js} +2 -2
- package/dist/_chunks/{patient-search-OAwFgOW3.js.map → patient-search-DBvLFArV.js.map} +1 -1
- package/dist/_chunks/{practice-results-BDnZtbDM.js → practice-results-M5A9-X9y.js} +3 -3
- package/dist/_chunks/{practice-results-BDnZtbDM.js.map → practice-results-M5A9-X9y.js.map} +1 -1
- package/dist/_chunks/{public-header.agent-Db4wm6_S.js → public-header.agent-DaeDfLfy.js} +2 -2
- package/dist/_chunks/{public-header.agent-Db4wm6_S.js.map → public-header.agent-DaeDfLfy.js.map} +1 -1
- package/dist/_chunks/{radiograph-panel.agent-B-r3BoqU.js → radiograph-panel.agent-88VjqlG7.js} +2 -2
- package/dist/_chunks/{radiograph-panel.agent-B-r3BoqU.js.map → radiograph-panel.agent-88VjqlG7.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-TnX0SYdq.js → rich-text-editor-DjHL1b3E.js} +3 -3
- package/dist/_chunks/{rich-text-editor-TnX0SYdq.js.map → rich-text-editor-DjHL1b3E.js.map} +1 -1
- package/dist/_chunks/{row-actions-Dpf9CrCP.js → row-actions-BF2-uizV.js} +3 -3
- package/dist/_chunks/{row-actions-Dpf9CrCP.js.map → row-actions-BF2-uizV.js.map} +1 -1
- package/dist/_chunks/{sheet-uZZXaO_S.js → sheet-BdhYeQQT.js} +84 -72
- package/dist/_chunks/sheet-BdhYeQQT.js.map +1 -0
- package/dist/_chunks/{signature-request-DW2PSp66.js → signature-request-4pGq3YBe.js} +3 -3
- package/dist/_chunks/{signature-request-DW2PSp66.js.map → signature-request-4pGq3YBe.js.map} +1 -1
- package/dist/_chunks/{tab-bar-CF8R38Og.js → tab-bar-CeC2QOwB.js} +2 -2
- package/dist/_chunks/{tab-bar-CF8R38Og.js.map → tab-bar-CeC2QOwB.js.map} +1 -1
- package/dist/_chunks/{tabs-P4qFmxk5.js → tabs-CRIDBLP7.js} +2 -2
- package/dist/_chunks/{tabs-P4qFmxk5.js.map → tabs-CRIDBLP7.js.map} +1 -1
- package/dist/_chunks/{task-editor-CVRrDqpe.js → task-editor-BL2hHxNz.js} +3 -3
- package/dist/_chunks/{task-editor-CVRrDqpe.js.map → task-editor-BL2hHxNz.js.map} +1 -1
- package/dist/_chunks/{tasks-panel-DBSm3WjK.js → tasks-panel-BE3zaayj.js} +2 -2
- package/dist/_chunks/{tasks-panel-DBSm3WjK.js.map → tasks-panel-BE3zaayj.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-CeKl8f_f.js → theme-toggle-BQDFxvVS.js} +3 -3
- package/dist/_chunks/{theme-toggle-CeKl8f_f.js.map → theme-toggle-BQDFxvVS.js.map} +1 -1
- package/dist/_chunks/{token-insert-menu-BrK5NQIq.js → token-insert-menu-BLtfMTJd.js} +2 -2
- package/dist/_chunks/{token-insert-menu-BrK5NQIq.js.map → token-insert-menu-BLtfMTJd.js.map} +1 -1
- package/dist/_chunks/{toolbar-CC-Ls_eC.js → toolbar-CfdoJzMV.js} +3 -3
- package/dist/_chunks/{toolbar-CC-Ls_eC.js.map → toolbar-CfdoJzMV.js.map} +1 -1
- package/dist/_chunks/{tooth-scheme-DHRxV2sE.js → tooth-scheme-BtnFgugP.js} +2 -2
- package/dist/_chunks/{tooth-scheme-DHRxV2sE.js.map → tooth-scheme-BtnFgugP.js.map} +1 -1
- package/dist/_chunks/{use-appointment-details-read-BrykoTOR.js → use-appointment-details-read-_b7FRB1x.js} +4 -4
- package/dist/_chunks/{use-appointment-details-read-BrykoTOR.js.map → use-appointment-details-read-_b7FRB1x.js.map} +1 -1
- package/dist/_chunks/{verify-identity-types-D_LdByCp.js → verify-identity-types-CxtrBXsZ.js} +2 -2
- package/dist/_chunks/{verify-identity-types-D_LdByCp.js.map → verify-identity-types-CxtrBXsZ.js.map} +1 -1
- package/dist/_chunks/{warehouse-load-summary-DkAKXcw0.js → warehouse-load-summary-CMMYzTDv.js} +75 -66
- package/dist/_chunks/warehouse-load-summary-CMMYzTDv.js.map +1 -0
- package/dist/_chunks/{widget-picker-DrxJjEkv.js → widget-picker-D3T7e8a4.js} +2 -2
- package/dist/_chunks/{widget-picker-DrxJjEkv.js.map → widget-picker-D3T7e8a4.js.map} +1 -1
- package/dist/_chunks/{workflow-map-DCjkRuS_.js → workflow-map-DaZFP9SJ.js} +2 -2
- package/dist/_chunks/{workflow-map-DCjkRuS_.js.map → workflow-map-DaZFP9SJ.js.map} +1 -1
- package/dist/_chunks/{workflow-status-D0avpoeS.js → workflow-status-D1WgGVTP.js} +2 -2
- package/dist/_chunks/{workflow-status-D0avpoeS.js.map → workflow-status-D1WgGVTP.js.map} +1 -1
- package/dist/_chunks/{workflow-webhook-action-Cae02r_4.js → workflow-webhook-action-BsGSh3h9.js} +2 -2
- package/dist/_chunks/{workflow-webhook-action-Cae02r_4.js.map → workflow-webhook-action-BsGSh3h9.js.map} +1 -1
- package/dist/agent-catalog.json +10 -10
- package/dist/agent-i18n/en.json +3 -3
- package/dist/browser-support.js +1 -1
- package/dist/components/_shared/body-pointer-lock.d.ts +2 -0
- package/dist/components/_shared/body-pointer-lock.d.ts.map +1 -0
- package/dist/components/_shared/decimal.d.ts +2 -0
- package/dist/components/_shared/decimal.d.ts.map +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/bill-line-table/bill-line-table.agent.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.columns.d.ts +4 -0
- package/dist/components/bill-line-table/bill-line-table.columns.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.header.d.ts +6 -0
- package/dist/components/bill-line-table/bill-line-table.header.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.invoice-cell.d.ts +6 -0
- package/dist/components/bill-line-table/bill-line-table.invoice-cell.d.ts.map +1 -0
- package/dist/components/bill-line-table/bill-line-table.model.d.ts +23 -10
- package/dist/components/bill-line-table/bill-line-table.model.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.scope.d.ts +56 -0
- package/dist/components/bill-line-table/bill-line-table.scope.d.ts.map +1 -0
- package/dist/components/bill-line-table/bill-line-table.types.d.ts +90 -10
- package/dist/components/bill-line-table/bill-line-table.types.d.ts.map +1 -1
- package/dist/components/bill-line-table/bill-line-table.variants.d.ts +2 -0
- package/dist/components/bill-line-table/bill-line-table.variants.d.ts.map +1 -1
- package/dist/components/bill-line-table/index.d.ts +3 -2
- package/dist/components/bill-line-table/index.d.ts.map +1 -1
- package/dist/components/bill-line-table/index.js +20 -18
- package/dist/components/bill-table/index.js +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calculator-dialog/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/dashboard-grid/index.js +1 -1
- package/dist/components/data-grid/body.d.ts.map +1 -1
- package/dist/components/data-grid/data-grid.d.ts.map +1 -1
- package/dist/components/data-grid/data-grid.variants.d.ts.map +1 -1
- package/dist/components/data-grid/index.js +2 -2
- package/dist/components/data-grid/types.d.ts +6 -0
- package/dist/components/data-grid/types.d.ts.map +1 -1
- package/dist/components/data-grid/use-data-grid-engine.d.ts.map +1 -1
- package/dist/components/data-table/index.js +4 -4
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/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-button-group/index.js +1 -1
- package/dist/components/invoice-upload-list/index.js +1 -1
- package/dist/components/invoice-upload-list/invoice-upload-list.d.ts.map +1 -1
- package/dist/components/muscle-scheme/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/row-actions/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sheet/sheet.d.ts.map +1 -1
- package/dist/components/skeleton-scheme/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/task-editor/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/token-insert-menu/index.js +1 -1
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/warehouse-load-summary/index.js +1 -1
- package/dist/components/warehouse-load-summary/warehouse-load-summary.d.ts.map +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.js +1 -1
- package/dist/core.css +1 -1
- package/dist/decimal/index.js +32 -28
- package/dist/decimal/index.js.map +1 -1
- package/dist/host-compat.css +4 -1
- package/dist/index.js +1063 -1061
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/patterns/verify-identity/index.js +1 -1
- package/dist/patterns/workflow-webhook-action/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/bill-line-table-CzYzg-Qh.js +0 -1757
- package/dist/_chunks/bill-line-table-CzYzg-Qh.js.map +0 -1
- package/dist/_chunks/data-grid-C9xlUMLt.js.map +0 -1
- package/dist/_chunks/dialog-CIUn5oLb.js.map +0 -1
- package/dist/_chunks/dropdown-menu-Dw6sgQwJ.js.map +0 -1
- package/dist/_chunks/sheet-uZZXaO_S.js.map +0 -1
- package/dist/_chunks/warehouse-load-summary-DkAKXcw0.js.map +0 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { jsxs as N, jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as b, useId as re, useContext as G, useRef as
|
|
2
|
+
import { forwardRef as b, useId as re, useContext as G, useRef as S, useEffect as K, useMemo as O, useLayoutEffect as oe, createContext as L } from "react";
|
|
3
3
|
import * as d from "@radix-ui/react-dropdown-menu";
|
|
4
4
|
import { c as D } from "./index-D2ZczOXr.js";
|
|
5
5
|
import { S as ne } from "./separator-Bdc9bqoJ.js";
|
|
6
|
-
import { K as
|
|
7
|
-
import { b as
|
|
6
|
+
import { K as V } from "./kbd-Bx7eQv9f.js";
|
|
7
|
+
import { b as $ } from "./menu-row-BAr8bx1I.js";
|
|
8
8
|
import { P as E } from "./popup-region-qz_5_A0V.js";
|
|
9
9
|
import { u as de } from "./use-controllable-state-BiY4xTzM.js";
|
|
10
10
|
import { u as ie } from "./registry-DvAUVLHh.js";
|
|
11
|
-
import {
|
|
12
|
-
import { C as le } from "./
|
|
13
|
-
import {
|
|
14
|
-
|
|
11
|
+
import { r as ce } from "./body-pointer-lock-CsOEDm1I.js";
|
|
12
|
+
import { C as le } from "./chevron-right-I9AeSxH2.js";
|
|
13
|
+
import { C as ue } from "./check-DrFSN__t.js";
|
|
14
|
+
import { a as pe } from "./use-direction-Dp8h70PP.js";
|
|
15
|
+
const me = {
|
|
15
16
|
id: "dropdown-menu",
|
|
16
17
|
capabilities: ["open", "close", "set_value"],
|
|
17
18
|
state: {
|
|
@@ -122,7 +123,7 @@ const pe = {
|
|
|
122
123
|
description: "On a ChoiceSub or SwitchItem row given a name: the setting that set_value / set_checked address."
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
|
-
},
|
|
126
|
+
}, q = D(
|
|
126
127
|
[
|
|
127
128
|
"ds:z-[var(--z-dropdown)]",
|
|
128
129
|
// Roomier panel: wider floor, larger radius, deeper float and a
|
|
@@ -195,7 +196,7 @@ const pe = {
|
|
|
195
196
|
].join(" "),
|
|
196
197
|
/* The pointer lives here, not in the base: two cursor utilities on
|
|
197
198
|
one element resolve by stylesheet order, and it would win. */
|
|
198
|
-
false: `ds:cursor-pointer ${
|
|
199
|
+
false: `ds:cursor-pointer ${$.highlighted}`
|
|
199
200
|
}
|
|
200
201
|
},
|
|
201
202
|
compoundVariants: [
|
|
@@ -212,7 +213,7 @@ const pe = {
|
|
|
212
213
|
],
|
|
213
214
|
defaultVariants: { variant: "default", unavailable: !1 }
|
|
214
215
|
}
|
|
215
|
-
),
|
|
216
|
+
), he = D(
|
|
216
217
|
[
|
|
217
218
|
"ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
|
|
218
219
|
"ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-2xs)]",
|
|
@@ -224,11 +225,11 @@ const pe = {
|
|
|
224
225
|
"ds:text-[color:var(--muted-foreground)]",
|
|
225
226
|
"ds:select-none"
|
|
226
227
|
].join(" ")
|
|
227
|
-
),
|
|
228
|
+
), A = "ds:inline-flex ds:items-center ds:justify-center ds:size-4 ds:shrink-0", B = L(
|
|
228
229
|
void 0
|
|
229
|
-
),
|
|
230
|
+
), fe = () => new Promise((e) => {
|
|
230
231
|
typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => e()) : setTimeout(e, 16);
|
|
231
|
-
}), H =
|
|
232
|
+
}), H = L(void 0), F = ({
|
|
232
233
|
dir: e,
|
|
233
234
|
id: t,
|
|
234
235
|
open: a,
|
|
@@ -236,46 +237,46 @@ const pe = {
|
|
|
236
237
|
onOpenChange: l,
|
|
237
238
|
...u
|
|
238
239
|
}) => {
|
|
239
|
-
const
|
|
240
|
+
const h = pe(), [p, w] = de({
|
|
240
241
|
value: a,
|
|
241
242
|
defaultValue: r ?? !1,
|
|
242
243
|
onChange: l
|
|
243
|
-
}), c =
|
|
244
|
+
}), c = p ?? !1, n = S(c);
|
|
244
245
|
K(() => {
|
|
245
246
|
n.current = c;
|
|
246
247
|
}, [c]);
|
|
247
|
-
const
|
|
248
|
-
() => (
|
|
249
|
-
|
|
248
|
+
const f = S(/* @__PURE__ */ new Map()), C = S(0), I = O(
|
|
249
|
+
() => (g, k) => (f.current.set(g, k), () => {
|
|
250
|
+
f.current.get(g) === k && f.current.delete(g);
|
|
250
251
|
}),
|
|
251
252
|
[]
|
|
252
|
-
),
|
|
253
|
-
const
|
|
253
|
+
), T = O(() => {
|
|
254
|
+
const g = (i) => {
|
|
254
255
|
n.current = i, w(i);
|
|
255
|
-
}, k = async (i, o,
|
|
256
|
+
}, k = async (i, o, m) => {
|
|
256
257
|
const y = !n.current;
|
|
257
|
-
y &&
|
|
258
|
+
y && g(!0);
|
|
258
259
|
const v = C.current;
|
|
259
260
|
try {
|
|
260
|
-
let x =
|
|
261
|
+
let x = f.current.get(i);
|
|
261
262
|
for (let R = 0; !x && R < 30; R += 1)
|
|
262
|
-
await
|
|
263
|
+
await fe(), x = f.current.get(i);
|
|
263
264
|
if (!x || x.kind !== o)
|
|
264
265
|
throw new Error(`No ${o} setting named "${i}" in this menu`);
|
|
265
|
-
|
|
266
|
+
m(x);
|
|
266
267
|
} finally {
|
|
267
|
-
y && C.current === v &&
|
|
268
|
+
y && C.current === v && g(!1);
|
|
268
269
|
}
|
|
269
270
|
};
|
|
270
271
|
return {
|
|
271
272
|
getIsOpen: () => n.current,
|
|
272
273
|
open: () => {
|
|
273
|
-
C.current += 1,
|
|
274
|
+
C.current += 1, g(!0);
|
|
274
275
|
},
|
|
275
276
|
close: () => {
|
|
276
|
-
C.current += 1,
|
|
277
|
+
C.current += 1, g(!1);
|
|
277
278
|
},
|
|
278
|
-
getSettings: () => [...
|
|
279
|
+
getSettings: () => [...f.current].map(([i, o]) => {
|
|
279
280
|
if (o.kind === "choice") {
|
|
280
281
|
const { value: v, options: x, disabled: R } = o.read();
|
|
281
282
|
return {
|
|
@@ -286,46 +287,49 @@ const pe = {
|
|
|
286
287
|
disabled: R
|
|
287
288
|
};
|
|
288
289
|
}
|
|
289
|
-
const { checked:
|
|
290
|
-
return { setting: i, kind: "switch", checked:
|
|
290
|
+
const { checked: m, disabled: y } = o.read();
|
|
291
|
+
return { setting: i, kind: "switch", checked: m, disabled: y };
|
|
291
292
|
}),
|
|
292
|
-
setValue: (i, o) => k(i, "choice", (
|
|
293
|
-
const { options: y, disabled: v, closeOnSelect: x } =
|
|
293
|
+
setValue: (i, o) => k(i, "choice", (m) => {
|
|
294
|
+
const { options: y, disabled: v, closeOnSelect: x } = m.read(), R = y.find((j) => j.value === o);
|
|
294
295
|
if (v || !R || R.disabled)
|
|
295
296
|
throw new Error(
|
|
296
297
|
`"${o}" is not an option that "${i}" can take now`
|
|
297
298
|
);
|
|
298
|
-
|
|
299
|
+
m.pick(o), x && g(!1);
|
|
299
300
|
}),
|
|
300
|
-
setChecked: (i, o) => k(i, "switch", (
|
|
301
|
-
if (
|
|
301
|
+
setChecked: (i, o) => k(i, "switch", (m) => {
|
|
302
|
+
if (m.read().disabled)
|
|
302
303
|
throw new Error(`"${i}" is disabled`);
|
|
303
|
-
|
|
304
|
+
m.pick(o);
|
|
304
305
|
})
|
|
305
306
|
};
|
|
306
307
|
}, [w]);
|
|
307
|
-
return ie(
|
|
308
|
+
return ie(me, T, t), /* @__PURE__ */ s(H.Provider, { value: t, children: /* @__PURE__ */ s(B.Provider, { value: I, children: /* @__PURE__ */ s(
|
|
308
309
|
d.Root,
|
|
309
310
|
{
|
|
310
|
-
dir: e ??
|
|
311
|
+
dir: e ?? h,
|
|
311
312
|
open: c,
|
|
312
313
|
onOpenChange: w,
|
|
313
314
|
...u
|
|
314
315
|
}
|
|
315
316
|
) }) });
|
|
316
317
|
};
|
|
317
|
-
|
|
318
|
-
const
|
|
319
|
-
const
|
|
320
|
-
return /* @__PURE__ */ s(d.Portal, { children: /* @__PURE__ */ s(E, { popupRef:
|
|
318
|
+
F.displayName = "DropdownMenu.Root";
|
|
319
|
+
const ge = d.Trigger, ve = d.Portal, be = d.Group, we = d.RadioGroup, U = b(({ className: e, sideOffset: t = 8, onCloseAutoFocus: a, ...r }, l) => {
|
|
320
|
+
const u = G(H);
|
|
321
|
+
return /* @__PURE__ */ s(d.Portal, { children: /* @__PURE__ */ s(E, { popupRef: l, children: (h) => /* @__PURE__ */ s(
|
|
321
322
|
d.Content,
|
|
322
323
|
{
|
|
323
|
-
ref:
|
|
324
|
+
ref: h,
|
|
324
325
|
sideOffset: t,
|
|
325
|
-
className:
|
|
326
|
+
className: q({ className: e }),
|
|
326
327
|
"data-component": "dropdown-menu",
|
|
327
|
-
"data-component-id":
|
|
328
|
-
...
|
|
328
|
+
"data-component-id": u,
|
|
329
|
+
...r,
|
|
330
|
+
onCloseAutoFocus: (p) => {
|
|
331
|
+
ce(), a == null || a(p);
|
|
332
|
+
}
|
|
329
333
|
}
|
|
330
334
|
) }) });
|
|
331
335
|
});
|
|
@@ -338,23 +342,23 @@ const W = b(
|
|
|
338
342
|
description: r,
|
|
339
343
|
shortcut: l,
|
|
340
344
|
variant: u,
|
|
341
|
-
disabled:
|
|
342
|
-
disabledReason:
|
|
345
|
+
disabled: h,
|
|
346
|
+
disabledReason: p,
|
|
343
347
|
textValue: w,
|
|
344
348
|
onSelect: c,
|
|
345
349
|
onClick: n,
|
|
346
|
-
children:
|
|
350
|
+
children: f,
|
|
347
351
|
"aria-describedby": C,
|
|
348
352
|
...I
|
|
349
|
-
},
|
|
350
|
-
const
|
|
353
|
+
}, T) => {
|
|
354
|
+
const g = re(), k = `${g}-reason`, i = `${g}-label`, o = !!(h && p), m = o ? p : r, y = o && !I["aria-label"] && !I["aria-labelledby"];
|
|
351
355
|
return /* @__PURE__ */ N(
|
|
352
356
|
d.Item,
|
|
353
357
|
{
|
|
354
|
-
ref:
|
|
358
|
+
ref: T,
|
|
355
359
|
className: M({ variant: u, unavailable: o, className: e }),
|
|
356
|
-
disabled: o ? !1 :
|
|
357
|
-
textValue: w ?? (o && typeof
|
|
360
|
+
disabled: o ? !1 : h,
|
|
361
|
+
textValue: w ?? (o && typeof f == "string" ? f : void 0),
|
|
358
362
|
"aria-describedby": o ? [C, k].filter(Boolean).join(" ") : C,
|
|
359
363
|
onClick: (v) => {
|
|
360
364
|
o || n == null || n(v);
|
|
@@ -384,7 +388,7 @@ const W = b(
|
|
|
384
388
|
{
|
|
385
389
|
id: y ? i : void 0,
|
|
386
390
|
className: "ds:truncate",
|
|
387
|
-
children:
|
|
391
|
+
children: f
|
|
388
392
|
}
|
|
389
393
|
),
|
|
390
394
|
o ? (
|
|
@@ -395,12 +399,12 @@ const W = b(
|
|
|
395
399
|
{
|
|
396
400
|
id: k,
|
|
397
401
|
className: "type-meta ds:text-[color:var(--muted-foreground)] ds:w-0 ds:min-w-full ds:whitespace-normal ds:[overflow-wrap:anywhere]",
|
|
398
|
-
children:
|
|
402
|
+
children: m
|
|
399
403
|
}
|
|
400
404
|
)
|
|
401
|
-
) :
|
|
405
|
+
) : m ? /* @__PURE__ */ s("span", { className: "type-meta ds:text-[color:var(--muted-foreground)] ds:truncate", children: m }) : null
|
|
402
406
|
] }),
|
|
403
|
-
l ? /* @__PURE__ */ s("span", { className: "ds:ms-auto", children: /* @__PURE__ */ s(
|
|
407
|
+
l ? /* @__PURE__ */ s("span", { className: "ds:ms-auto", children: /* @__PURE__ */ s(V, { keys: l, size: "sm" }) }) : a ? /* @__PURE__ */ s(
|
|
404
408
|
"span",
|
|
405
409
|
{
|
|
406
410
|
"aria-hidden": "true",
|
|
@@ -421,14 +425,14 @@ const J = b(({ className: e, children: t, ...a }, r) => /* @__PURE__ */ N(
|
|
|
421
425
|
className: M({ className: e }),
|
|
422
426
|
...a,
|
|
423
427
|
children: [
|
|
424
|
-
/* @__PURE__ */ s("span", { className:
|
|
428
|
+
/* @__PURE__ */ s("span", { className: A, children: /* @__PURE__ */ s(d.ItemIndicator, { children: /* @__PURE__ */ s(ue, { "aria-hidden": !0, className: "ds:size-4" }) }) }),
|
|
425
429
|
/* @__PURE__ */ s("span", { className: "ds:flex-1 ds:truncate", children: t })
|
|
426
430
|
]
|
|
427
431
|
}
|
|
428
432
|
));
|
|
429
433
|
J.displayName = "DropdownMenu.CheckboxItem";
|
|
430
434
|
function Q(e, t) {
|
|
431
|
-
const a = G(
|
|
435
|
+
const a = G(B), r = S(t);
|
|
432
436
|
oe(() => {
|
|
433
437
|
r.current = t;
|
|
434
438
|
}), K(() => {
|
|
@@ -449,7 +453,7 @@ function Q(e, t) {
|
|
|
449
453
|
return a(e, l);
|
|
450
454
|
}, [e, a]);
|
|
451
455
|
}
|
|
452
|
-
const
|
|
456
|
+
const ye = [
|
|
453
457
|
"ds:ms-auto ds:inline-flex ds:items-center ds:shrink-0",
|
|
454
458
|
"ds:h-4 ds:w-7 ds:p-[2px]",
|
|
455
459
|
"ds:rounded-[var(--radius-full)]",
|
|
@@ -464,7 +468,7 @@ const we = [
|
|
|
464
468
|
// HCM strips fills — paint the checked track with the system
|
|
465
469
|
// selection colour so state isn't conveyed by thumb position alone.
|
|
466
470
|
"ds:forced-colors:[[data-state=checked]_&]:bg-[SelectedItem]"
|
|
467
|
-
].join(" "),
|
|
471
|
+
].join(" "), xe = [
|
|
468
472
|
"ds:block ds:size-3",
|
|
469
473
|
"ds:rounded-[var(--radius-full)]",
|
|
470
474
|
"ds:bg-[color:var(--background)]",
|
|
@@ -473,14 +477,14 @@ const we = [
|
|
|
473
477
|
"ds:shadow-[var(--shadow-sm)]",
|
|
474
478
|
"ds:forced-colors:bg-[CanvasText]"
|
|
475
479
|
].join(" "), X = b(({ className: e, children: t, onSelect: a, name: r, ...l }, u) => {
|
|
476
|
-
const { checked:
|
|
480
|
+
const { checked: h, onCheckedChange: p, disabled: w } = l;
|
|
477
481
|
return Q(r, {
|
|
478
482
|
kind: "switch",
|
|
479
|
-
read: () => ({ checked:
|
|
483
|
+
read: () => ({ checked: h === !0, disabled: w === !0 }),
|
|
480
484
|
// What a click does, and only when it would change something: the
|
|
481
485
|
// consumer's onSelect, then the new state.
|
|
482
486
|
pick: (c) => {
|
|
483
|
-
c !== (
|
|
487
|
+
c !== (h === !0) && (a == null || a(new Event("menu.itemSelect", { cancelable: !0 })), p == null || p(c));
|
|
484
488
|
}
|
|
485
489
|
}), /* @__PURE__ */ N(
|
|
486
490
|
d.CheckboxItem,
|
|
@@ -494,20 +498,20 @@ const we = [
|
|
|
494
498
|
...l,
|
|
495
499
|
children: [
|
|
496
500
|
/* @__PURE__ */ s("span", { className: "ds:flex-1 ds:truncate", children: t }),
|
|
497
|
-
/* @__PURE__ */ s("span", { "aria-hidden": "true", className:
|
|
501
|
+
/* @__PURE__ */ s("span", { "aria-hidden": "true", className: ye, children: /* @__PURE__ */ s("span", { className: xe }) })
|
|
498
502
|
]
|
|
499
503
|
}
|
|
500
504
|
);
|
|
501
505
|
});
|
|
502
506
|
X.displayName = "DropdownMenu.SwitchItem";
|
|
503
|
-
const Y =
|
|
507
|
+
const Y = we, z = b(({ className: e, children: t, ...a }, r) => /* @__PURE__ */ N(
|
|
504
508
|
d.RadioItem,
|
|
505
509
|
{
|
|
506
510
|
ref: r,
|
|
507
511
|
className: M({ className: e }),
|
|
508
512
|
...a,
|
|
509
513
|
children: [
|
|
510
|
-
/* @__PURE__ */ s("span", { className:
|
|
514
|
+
/* @__PURE__ */ s("span", { className: A, "aria-hidden": "true", children: /* @__PURE__ */ s(
|
|
511
515
|
"span",
|
|
512
516
|
{
|
|
513
517
|
className: [
|
|
@@ -540,7 +544,7 @@ const Z = b(({ className: e, ...t }, a) => /* @__PURE__ */ s(
|
|
|
540
544
|
d.Label,
|
|
541
545
|
{
|
|
542
546
|
ref: a,
|
|
543
|
-
className:
|
|
547
|
+
className: he({ className: e }),
|
|
544
548
|
...t
|
|
545
549
|
}
|
|
546
550
|
));
|
|
@@ -553,7 +557,7 @@ const ee = b(({ className: e, ...t }, a) => /* @__PURE__ */ s(d.Separator, { ref
|
|
|
553
557
|
) }));
|
|
554
558
|
ee.displayName = "DropdownMenu.Separator";
|
|
555
559
|
const se = b(
|
|
556
|
-
({ keys: e, separator: t = "none" }, a) => /* @__PURE__ */ s("span", { ref: a, className: "ds:ms-auto ds:ps-[var(--spacing-sm)]", children: /* @__PURE__ */ s(
|
|
560
|
+
({ keys: e, separator: t = "none" }, a) => /* @__PURE__ */ s("span", { ref: a, className: "ds:ms-auto ds:ps-[var(--spacing-sm)]", children: /* @__PURE__ */ s(V, { keys: e, separator: t, size: "sm" }) })
|
|
557
561
|
);
|
|
558
562
|
se.displayName = "DropdownMenu.Shortcut";
|
|
559
563
|
const te = d.Sub, _ = b(({ className: e, startIcon: t, children: a, ...r }, l) => /* @__PURE__ */ N(
|
|
@@ -561,7 +565,7 @@ const te = d.Sub, _ = b(({ className: e, startIcon: t, children: a, ...r }, l) =
|
|
|
561
565
|
{
|
|
562
566
|
ref: l,
|
|
563
567
|
className: M({
|
|
564
|
-
className: [
|
|
568
|
+
className: [$.open, e].filter(Boolean).join(" ")
|
|
565
569
|
}),
|
|
566
570
|
...r,
|
|
567
571
|
children: [
|
|
@@ -575,7 +579,7 @@ const te = d.Sub, _ = b(({ className: e, startIcon: t, children: a, ...r }, l) =
|
|
|
575
579
|
) : null,
|
|
576
580
|
/* @__PURE__ */ s("span", { className: "ds:flex-1 ds:truncate", children: a }),
|
|
577
581
|
/* @__PURE__ */ s(
|
|
578
|
-
|
|
582
|
+
le,
|
|
579
583
|
{
|
|
580
584
|
"aria-hidden": !0,
|
|
581
585
|
className: "ds:ms-auto ds:size-4 ds:shrink-0 ds:rtl:-scale-x-100"
|
|
@@ -591,7 +595,7 @@ const P = b(({ className: e, ...t }, a) => /* @__PURE__ */ s(d.Portal, { childre
|
|
|
591
595
|
ref: r,
|
|
592
596
|
sideOffset: 8,
|
|
593
597
|
"data-component": "dropdown-menu-sub-content",
|
|
594
|
-
className:
|
|
598
|
+
className: q({ className: e }),
|
|
595
599
|
...t
|
|
596
600
|
}
|
|
597
601
|
) }) }));
|
|
@@ -603,18 +607,18 @@ function ae({
|
|
|
603
607
|
options: r,
|
|
604
608
|
startIcon: l,
|
|
605
609
|
disabled: u,
|
|
606
|
-
closeOnSelect:
|
|
607
|
-
name:
|
|
610
|
+
closeOnSelect: h = !1,
|
|
611
|
+
name: p,
|
|
608
612
|
className: w
|
|
609
613
|
}) {
|
|
610
614
|
const c = r.find((n) => n.value === t);
|
|
611
|
-
return Q(
|
|
615
|
+
return Q(p, {
|
|
612
616
|
kind: "choice",
|
|
613
617
|
read: () => ({
|
|
614
618
|
value: t,
|
|
615
619
|
options: r,
|
|
616
620
|
disabled: u === !0,
|
|
617
|
-
closeOnSelect:
|
|
621
|
+
closeOnSelect: h
|
|
618
622
|
}),
|
|
619
623
|
pick: (n) => a(n)
|
|
620
624
|
}), /* @__PURE__ */ N(te, { children: [
|
|
@@ -626,7 +630,7 @@ function ae({
|
|
|
626
630
|
className: w,
|
|
627
631
|
"data-component": "dropdown-menu-choice",
|
|
628
632
|
"data-value": t,
|
|
629
|
-
"data-setting":
|
|
633
|
+
"data-setting": p,
|
|
630
634
|
children: /* @__PURE__ */ N("span", { className: "ds:flex ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
|
|
631
635
|
/* @__PURE__ */ s("span", { className: "ds:truncate", children: e }),
|
|
632
636
|
c ? /* @__PURE__ */ s("span", { className: "ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:[[data-highlighted]_&]:text-current", children: c.label }) : null
|
|
@@ -643,7 +647,7 @@ function ae({
|
|
|
643
647
|
{
|
|
644
648
|
value: n.value,
|
|
645
649
|
disabled: n.disabled,
|
|
646
|
-
onSelect:
|
|
650
|
+
onSelect: h ? void 0 : (f) => f.preventDefault(),
|
|
647
651
|
children: n.label
|
|
648
652
|
},
|
|
649
653
|
n.value
|
|
@@ -653,12 +657,12 @@ function ae({
|
|
|
653
657
|
] });
|
|
654
658
|
}
|
|
655
659
|
ae.displayName = "DropdownMenu.ChoiceSub";
|
|
656
|
-
const
|
|
657
|
-
Root:
|
|
658
|
-
Trigger:
|
|
659
|
-
Portal:
|
|
660
|
+
const Oe = {
|
|
661
|
+
Root: F,
|
|
662
|
+
Trigger: ge,
|
|
663
|
+
Portal: ve,
|
|
660
664
|
Content: U,
|
|
661
|
-
Group:
|
|
665
|
+
Group: be,
|
|
662
666
|
Item: W,
|
|
663
667
|
CheckboxItem: J,
|
|
664
668
|
SwitchItem: X,
|
|
@@ -673,7 +677,7 @@ const _e = {
|
|
|
673
677
|
ChoiceSub: ae
|
|
674
678
|
};
|
|
675
679
|
export {
|
|
676
|
-
|
|
677
|
-
|
|
680
|
+
Oe as D,
|
|
681
|
+
me as d
|
|
678
682
|
};
|
|
679
|
-
//# sourceMappingURL=dropdown-menu-
|
|
683
|
+
//# sourceMappingURL=dropdown-menu-DBWaW4pq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu-DBWaW4pq.js","sources":["../../src/components/dropdown-menu/dropdown-menu.agent.ts","../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { DropdownMenuHandle } from './dropdown-menu';\n\n// The handle cannot run an arbitrary item (Radix owns item activation), so\n// there is no 'pick' capability. It CAN drive settings rows: a ChoiceSub or\n// SwitchItem given a `name` registers with its Root, and set_value /\n// set_checked call that row's own onValueChange / onCheckedChange, exactly\n// as a click would. Rows mount with the menu, so a closed menu opens for the\n// moment and closes again.\nexport const dropdownMenuAgent: AgentAdapter<DropdownMenuHandle> = {\n id: 'dropdown-menu',\n capabilities: ['open', 'close', 'set_value'],\n state: {\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.dropdownMenu.state.isOpen',\n description: 'True when the menu is currently open.',\n read: (handle) => handle.getIsOpen(),\n },\n settings: {\n type: 'Array<{ setting: string; kind: \"choice\" | \"switch\"; value?: string; options?: string[]; checked?: boolean; disabled: boolean }>',\n descriptionKey: 'ui.agent.dropdownMenu.state.settings',\n description:\n \"The menu's named settings rows and their current values: choice rows with the selected value and every option's value, switch rows with whether they are on. Rows are listed only while the menu is open; open it first to read them.\",\n read: (handle) => handle.getSettings(),\n },\n },\n actions: {\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.dropdownMenu.actions.open',\n description: 'Open the menu.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.dropdownMenu.actions.close',\n description: 'Close the menu.',\n invoke: (handle) => {\n handle.close();\n },\n },\n set_value: {\n safety: 'write',\n argsType: '{ setting: string; value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n setting: {\n type: 'string',\n description: \"The row's name (its data-setting attribute).\",\n },\n value: {\n type: 'string',\n description: \"One of the row's option values.\",\n },\n },\n required: ['setting', 'value'],\n },\n idempotent: true,\n errors: [\n 'No choice row with that name in this menu',\n 'The value is not one of the options, or it or the row is disabled',\n ],\n examples: [\n {\n args: { setting: 'slotDensity', value: 'comfortable' },\n note: 'Calendar display settings: switch to comfortable rows.',\n },\n ],\n descriptionKey: 'ui.agent.dropdownMenu.actions.setValue',\n description:\n 'Pick an option on a named choice row (ChoiceSub), as clicking it would. A closed menu opens for the moment and closes again.',\n invoke: (handle, args: { setting: string; value: string }) =>\n handle.setValue(args.setting, args.value),\n },\n set_checked: {\n safety: 'write',\n argsType: '{ setting: string; checked: boolean }',\n argsSchema: {\n type: 'object',\n properties: {\n setting: {\n type: 'string',\n description: \"The row's name (its data-setting attribute).\",\n },\n checked: { type: 'boolean' },\n },\n required: ['setting', 'checked'],\n },\n idempotent: true,\n errors: [\n 'No switch row with that name in this menu',\n 'The row is disabled',\n ],\n examples: [\n {\n args: { setting: 'zebraRows', checked: true },\n note: 'Calendar display settings: turn zebra rows on.',\n },\n ],\n descriptionKey: 'ui.agent.dropdownMenu.actions.setChecked',\n description:\n 'Turn a named switch row (SwitchItem) on or off, as clicking it would. A closed menu opens for the moment and closes again.',\n invoke: (handle, args: { setting: string; checked: boolean }) =>\n handle.setChecked(args.setting, args.checked),\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'dropdown-menu' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop on DropdownMenu.Root.',\n },\n item: {\n attr: 'data-setting',\n sourceProp: 'name',\n description:\n 'On a ChoiceSub or SwitchItem row given a name: the setting that set_value / set_checked address.',\n },\n },\n};\n","import {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type ReactNode,\n} from 'react';\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Check, ChevronRight } from 'lucide-react';\nimport { Separator as DsSeparator } from '../separator/separator';\nimport { Kbd, type KbdNamedKey } from '../kbd/kbd';\nimport { useDocumentDirection } from '../_shared/use-direction';\nimport { MENU_ROW_HIGHLIGHT } from '../_shared/menu-row';\nimport { PopupRegion } from '../_shared/popup-region';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useAgentRegistration } from '../../agent';\nimport { dropdownMenuAgent } from './dropdown-menu.agent';\nimport { releaseStaleBodyPointerLock } from '../_shared/body-pointer-lock';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst contentVariants = cva(\n [\n 'ds:z-[var(--z-dropdown)]',\n // Roomier panel: wider floor, larger radius, deeper float and a\n // breath more padding so menus read as elevated surfaces rather\n // than flat lists hugging their trigger.\n 'ds:min-w-[14rem]',\n 'ds:rounded-[var(--radius-lg)]',\n // Border kept (transparent) so the forced-colors override below can\n // repaint a visible edge in HCM. In normal modes the soft drop-shadow\n // carries the edge cue; the heavy `--border` (grey-800 since WCAG\n // 1.4.11 bump in 67fef8c) made the menu read as a charcoal box.\n 'ds:border ds:border-transparent',\n 'ds:bg-[var(--popover)] ds:text-[color:var(--popover-foreground)]',\n 'ds:shadow-[var(--shadow-xl)]',\n 'ds:p-[var(--spacing-sm)]',\n // Never taller than the room Radix measures beside the trigger: a long\n // menu scrolls instead of running off the screen. Submenus portal out,\n // so the scroll never clips them. Radix sets the same variable on\n // Content and SubContent.\n 'ds:max-h-[var(--radix-dropdown-menu-content-available-height)] ds:overflow-y-auto',\n // Motion — gated on --animation-duration via Tailwind's animate-in\n // preset. motion-reduce disables via the no-preference query.\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:fade-in ds:data-[state=closed]:fade-out',\n 'ds:data-[state=open]:zoom-in-95 ds:data-[state=closed]:zoom-out-95',\n 'ds:data-[state=open]:slide-in-from-top-1',\n 'ds:motion-reduce:animate-none',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n);\n\nconst itemClasses = cva(\n [\n 'ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:min-h-[var(--min-target-size)]',\n // The ink comes from the variants below, one colour class per state:\n // two text-colour utilities on one element resolve by stylesheet order,\n // not by class order, and --foreground would win over --destructive.\n 'ds:text-[length:var(--font-size-sm)]',\n 'ds:select-none ds:outline-none',\n // Radix highlights on hover and on keyboard focus alike. The highlight\n // itself comes from the `unavailable` variant below.\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n // Disabled\n 'ds:data-[disabled]:opacity-50 ds:data-[disabled]:cursor-not-allowed',\n 'ds:data-[disabled]:pointer-events-none',\n ].join(' '),\n {\n variants: {\n /* Item only. A lit row repoints --destructive to the accent ink\n (MENU_ROW_HIGHLIGHT), so the label keeps its contrast there. */\n variant: { default: '', destructive: '' },\n /* An Item that is disabled with a reason: it keeps focus, so it is\n muted rather than faded, and the reason stays readable. */\n unavailable: {\n /* Lit, it stays neutral: the accent fill reads as \"ready to\n choose\", and it would turn the muted reason into accent ink. */\n true: [\n 'ds:text-[color:var(--muted-foreground)] ds:cursor-not-allowed',\n 'ds:forced-colors:text-[GrayText]',\n 'ds:data-[highlighted]:bg-[var(--muted)]',\n 'ds:forced-colors:data-[highlighted]:outline-solid',\n 'ds:forced-colors:data-[highlighted]:outline-[length:var(--focus-ring-width)]',\n 'ds:forced-colors:data-[highlighted]:outline-[GrayText]',\n 'ds:forced-colors:data-[highlighted]:[outline-offset:calc(var(--focus-ring-width)*-1)]',\n ].join(' '),\n /* The pointer lives here, not in the base: two cursor utilities on\n one element resolve by stylesheet order, and it would win. */\n false: `ds:cursor-pointer ${MENU_ROW_HIGHLIGHT.highlighted}`,\n },\n },\n compoundVariants: [\n {\n variant: 'default',\n unavailable: false,\n className: 'ds:text-[color:var(--foreground)]',\n },\n {\n variant: 'destructive',\n unavailable: false,\n className: 'ds:text-[color:var(--destructive)]',\n },\n ],\n defaultVariants: { variant: 'default', unavailable: false },\n },\n);\n\nconst labelClasses = cva(\n [\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-2xs)]',\n // Quiet sentence-case caption — the shouty uppercase eyebrow made\n // every menu read as a form. Groups should lean on separators first\n // and reach for a Label only when the grouping is genuinely unclear.\n 'ds:text-[length:var(--font-size-xs)]',\n 'ds:font-[var(--font-weight-medium)]',\n 'ds:text-[color:var(--muted-foreground)]',\n 'ds:select-none',\n ].join(' '),\n);\n\nconst indicatorSlotClasses =\n 'ds:inline-flex ds:items-center ds:justify-center ds:size-4 ds:shrink-0';\n\n/* ------------------------------------------------------------------ */\n/* Root / Trigger / Portal */\n/* ------------------------------------------------------------------ */\n\n/** A named settings row (a ChoiceSub or SwitchItem given a `name`) and\n * its current state, as an agent reads it. Values only, never labels. */\nexport interface DropdownMenuSetting {\n setting: string;\n kind: 'choice' | 'switch';\n /** ChoiceSub: the selected value and every option's value. */\n value?: string;\n options?: string[];\n /** SwitchItem: whether it is on. */\n checked?: boolean;\n disabled: boolean;\n}\n\n// Curated agent-readiness handle — see dropdown-menu.agent.ts.\nexport interface DropdownMenuHandle {\n getIsOpen: () => boolean;\n open: () => void;\n close: () => void;\n /** The named settings rows, while the menu is open (closed: none). */\n getSettings: () => DropdownMenuSetting[];\n /** Pick `value` on the named ChoiceSub. A closed menu opens for the\n * moment and closes again. Rejects on an unknown row, value or a\n * disabled one. */\n setValue: (setting: string, value: string) => Promise<void>;\n /** Turn the named SwitchItem on or off, as `setValue` does. */\n setChecked: (setting: string, checked: boolean) => Promise<void>;\n}\n\n/* A named row registers with its Root so the handle can drive it. */\ntype SettingRow =\n | {\n kind: 'choice';\n read: () => {\n value: string;\n options: ReadonlyArray<{ value: string; disabled?: boolean }>;\n disabled: boolean;\n closeOnSelect: boolean;\n };\n pick: (value: string) => void;\n }\n | {\n kind: 'switch';\n read: () => { checked: boolean; disabled: boolean };\n pick: (checked: boolean) => void;\n };\n\ntype RegisterSettingRow = (name: string, row: SettingRow) => () => void;\n\nconst SettingRowsContext = createContext<RegisterSettingRow | undefined>(\n undefined,\n);\n\nconst nextFrame = () =>\n new Promise<void>((resolve) => {\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => resolve());\n } else {\n setTimeout(resolve, 16);\n }\n });\n\nexport interface DropdownMenuRootProps extends ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.Root\n> {\n /** Opaque instance id — forwarded to DropdownMenu.Content as `data-component-id`. */\n id?: string;\n}\n\nconst DropdownMenuIdContext = createContext<string | undefined>(undefined);\n\nconst Root = ({\n dir,\n id,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...props\n}: DropdownMenuRootProps) => {\n const autoDir = useDocumentDirection();\n const [openRaw, setOpen] = useControllableState<boolean>({\n value: openProp,\n defaultValue: defaultOpen ?? false,\n onChange: onOpenChange,\n });\n const open = openRaw ?? false;\n\n const openRef = useRef(open);\n useEffect(() => {\n openRef.current = open;\n }, [open]);\n\n const rowsRef = useRef(new Map<string, SettingRow>());\n // Counts explicit open/close calls on the handle.\n const openRequestsRef = useRef(0);\n const registerRow = useMemo<RegisterSettingRow>(\n () => (name, row) => {\n rowsRef.current.set(name, row);\n return () => {\n if (rowsRef.current.get(name) === row) rowsRef.current.delete(name);\n };\n },\n [],\n );\n\n const handle = useMemo<DropdownMenuHandle>(() => {\n /* Rows mount with the menu. A closed menu opens for the moment, waits\n for the row to register, and closes again once the change lands. */\n // open/close update the ref at once, not a render later, so a set\n // right after an explicit open() sees the menu as open and leaves it so.\n const show = (next: boolean) => {\n openRef.current = next;\n setOpen(next);\n };\n const withRow = async <K extends SettingRow['kind']>(\n setting: string,\n kind: K,\n apply: (row: Extract<SettingRow, { kind: K }>) => void,\n ) => {\n const opened = !openRef.current;\n if (opened) show(true);\n const requests = openRequestsRef.current;\n try {\n // A row mounts a render or two after the menu opens.\n let row = rowsRef.current.get(setting);\n for (let frame = 0; !row && frame < 30; frame += 1) {\n await nextFrame();\n row = rowsRef.current.get(setting);\n }\n if (!row || row.kind !== kind) {\n throw new Error(`No ${kind} setting named \"${setting}\" in this menu`);\n }\n apply(row as Extract<SettingRow, { kind: K }>);\n } finally {\n // Close only a menu this call opened, and nobody asked for since.\n if (opened && openRequestsRef.current === requests) show(false);\n }\n };\n return {\n getIsOpen: () => openRef.current,\n open: () => {\n openRequestsRef.current += 1;\n show(true);\n },\n close: () => {\n openRequestsRef.current += 1;\n show(false);\n },\n getSettings: () =>\n [...rowsRef.current].map(([setting, row]) => {\n if (row.kind === 'choice') {\n const { value, options, disabled } = row.read();\n return {\n setting,\n kind: 'choice' as const,\n value,\n options: options.map((option) => option.value),\n disabled,\n };\n }\n const { checked, disabled } = row.read();\n return { setting, kind: 'switch' as const, checked, disabled };\n }),\n setValue: (setting, value) =>\n withRow(setting, 'choice', (row) => {\n const { options, disabled, closeOnSelect } = row.read();\n const option = options.find((o) => o.value === value);\n if (disabled || !option || option.disabled) {\n throw new Error(\n `\"${value}\" is not an option that \"${setting}\" can take now`,\n );\n }\n row.pick(value);\n // As a click on the option would.\n if (closeOnSelect) show(false);\n }),\n setChecked: (setting, checked) =>\n withRow(setting, 'switch', (row) => {\n if (row.read().disabled) {\n throw new Error(`\"${setting}\" is disabled`);\n }\n row.pick(checked);\n }),\n };\n }, [setOpen]);\n useAgentRegistration(dropdownMenuAgent, handle, id);\n\n return (\n <DropdownMenuIdContext.Provider value={id}>\n <SettingRowsContext.Provider value={registerRow}>\n <RadixDropdownMenu.Root\n dir={dir ?? autoDir}\n open={open}\n onOpenChange={setOpen}\n {...props}\n />\n </SettingRowsContext.Provider>\n </DropdownMenuIdContext.Provider>\n );\n};\nRoot.displayName = 'DropdownMenu.Root';\n\nconst Trigger = RadixDropdownMenu.Trigger;\nconst Portal = RadixDropdownMenu.Portal;\nconst RadixGroup = RadixDropdownMenu.Group;\nconst RadixRadioGroup = RadixDropdownMenu.RadioGroup;\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuContentProps\n extends\n ComponentPropsWithoutRef<typeof RadixDropdownMenu.Content>,\n VariantProps<typeof contentVariants> {}\n\nconst Content = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 8, onCloseAutoFocus, ...props }, ref) => {\n const instanceId = useContext(DropdownMenuIdContext);\n return (\n <RadixDropdownMenu.Portal>\n {/* A region named after the trigger, so axe `region` passes while open. */}\n <PopupRegion popupRef={ref}>\n {(popupRef) => (\n <RadixDropdownMenu.Content\n ref={popupRef}\n sideOffset={sideOffset}\n className={contentVariants({ className })}\n data-component=\"dropdown-menu\"\n data-component-id={instanceId}\n {...props}\n onCloseAutoFocus={(event) => {\n releaseStaleBodyPointerLock();\n onCloseAutoFocus?.(event);\n }}\n />\n )}\n </PopupRegion>\n </RadixDropdownMenu.Portal>\n );\n});\nContent.displayName = 'DropdownMenu.Content';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuItemProps extends ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.Item\n> {\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n description?: ReactNode;\n /** Convenience — renders a DS <Kbd keys={…}> on the inline-end. */\n shortcut?: Array<KbdNamedKey | string>;\n /** `'destructive'` paints the label and icon in `--destructive`, for an\n * action that deletes or cancels. The host still confirms it (AlertDialog).\n * Default `'default'`. */\n variant?: 'default' | 'destructive';\n /** Why the item cannot be chosen. Only read with `disabled`: the item then\n * stays reachable by arrow keys and typeahead (the APG menu pattern), is\n * `aria-disabled`, ignores Enter, Space and click (the menu stays open),\n * and shows the reason as its second line, in place of `description`,\n * linked with `aria-describedby`. Without a reason, `disabled` items are\n * skipped, as before. Pass translated text. */\n disabledReason?: string;\n}\n\nconst Item = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Item>,\n DropdownMenuItemProps\n>(\n (\n {\n className,\n startIcon,\n endIcon,\n description,\n shortcut,\n variant,\n disabled,\n disabledReason,\n textValue,\n onSelect,\n onClick,\n children,\n 'aria-describedby': ariaDescribedBy,\n ...props\n },\n ref,\n ) => {\n const baseId = useId();\n const reasonId = `${baseId}-reason`;\n const labelId = `${baseId}-label`;\n /* Disabled with a reason: Radix must not see `disabled`, or it would\n take the item out of arrow navigation. The guard below refuses it. */\n const unavailable = Boolean(disabled && disabledReason);\n const secondLine = unavailable ? disabledReason : description;\n /* The reason is the description, so it stays out of the name, which a\n menuitem would otherwise take from all of its text. */\n const nameFromLabel =\n unavailable && !props['aria-label'] && !props['aria-labelledby'];\n return (\n <RadixDropdownMenu.Item\n ref={ref}\n className={itemClasses({ variant, unavailable, className })}\n disabled={unavailable ? false : disabled}\n // Typeahead matches the label, never the reason under it.\n textValue={\n textValue ??\n (unavailable && typeof children === 'string' ? children : undefined)\n }\n aria-describedby={\n unavailable\n ? [ariaDescribedBy, reasonId].filter(Boolean).join(' ')\n : ariaDescribedBy\n }\n onClick={(event) => {\n if (unavailable) return;\n onClick?.(event);\n }}\n onSelect={(event) => {\n if (unavailable) {\n // Keeps the menu open and the item focused.\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n {...props}\n {...(unavailable\n ? { 'aria-disabled': true, 'data-unavailable': '' }\n : undefined)}\n {...(nameFromLabel ? { 'aria-labelledby': labelId } : undefined)}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:flex ds:flex-col ds:min-w-0\">\n <span\n id={nameFromLabel ? labelId : undefined}\n className=\"ds:truncate\"\n >\n {children}\n </span>\n {unavailable ? (\n /* Wraps inside the width the labels set (w-0 + min-w-full),\n rather than widening the menu or being cut off. */\n <span\n id={reasonId}\n className=\"type-meta ds:text-[color:var(--muted-foreground)] ds:w-0 ds:min-w-full ds:whitespace-normal ds:[overflow-wrap:anywhere]\"\n >\n {secondLine}\n </span>\n ) : secondLine ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)] ds:truncate\">\n {secondLine}\n </span>\n ) : null}\n </span>\n {shortcut ? (\n <span className=\"ds:ms-auto\">\n <Kbd keys={shortcut} size=\"sm\" />\n </span>\n ) : endIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:ms-auto ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {endIcon}\n </span>\n ) : null}\n </RadixDropdownMenu.Item>\n );\n },\n);\nItem.displayName = 'DropdownMenu.Item';\n\n/* ------------------------------------------------------------------ */\n/* CheckboxItem */\n/* ------------------------------------------------------------------ */\n\nexport type DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.CheckboxItem\n>;\n\nconst CheckboxItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.CheckboxItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n <span className={indicatorSlotClasses}>\n <RadixDropdownMenu.ItemIndicator>\n <Check aria-hidden className=\"ds:size-4\" />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n </RadixDropdownMenu.CheckboxItem>\n));\nCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\n/* Registers a named row with its Root for as long as it is mounted. The\n row object is rebuilt each render; the Root reads it through a ref, so\n it always sees the latest value and callback. */\nfunction useSettingRow(name: string | undefined, row: SettingRow): void {\n const register = useContext(SettingRowsContext);\n const latest = useRef(row);\n useLayoutEffect(() => {\n latest.current = row;\n });\n useEffect(() => {\n if (!name || !register) return undefined;\n const proxy: SettingRow =\n latest.current.kind === 'choice'\n ? {\n kind: 'choice',\n read: () =>\n (\n latest.current as Extract<SettingRow, { kind: 'choice' }>\n ).read(),\n pick: (value) =>\n (latest.current as Extract<SettingRow, { kind: 'choice' }>).pick(\n value,\n ),\n }\n : {\n kind: 'switch',\n read: () =>\n (\n latest.current as Extract<SettingRow, { kind: 'switch' }>\n ).read(),\n pick: (checked) =>\n (latest.current as Extract<SettingRow, { kind: 'switch' }>).pick(\n checked,\n ),\n };\n return register(name, proxy);\n }, [name, register]);\n}\n\n/* ------------------------------------------------------------------ */\n/* SwitchItem */\n/* */\n/* A persistent on/off toggle row (menuitemcheckbox semantics) whose */\n/* indicator is a trailing switch glyph instead of a tick — for */\n/* settings that live inside a menu (e.g. accessible mode). Selecting */\n/* keeps the menu open so the user sees the toggle land. */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuSwitchItemProps extends ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.CheckboxItem\n> {\n /** Names the row for agents (the menu's `set_checked` action and\n * `settings` state) and emits `data-setting`. */\n name?: string;\n}\n\n// Mirrors the kit Switch's `sm` metrics (track h-4 w-7, thumb size-3)\n// and its primary checked fill so the two switch affordances stay kin.\n// The muted-foreground border keeps the OFF state perceivable — without\n// it the muted track sits at ~1.2:1 on the popover (WCAG 1.4.11).\nconst switchTrackClasses = [\n 'ds:ms-auto ds:inline-flex ds:items-center ds:shrink-0',\n 'ds:h-4 ds:w-7 ds:p-[2px]',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:border ds:border-[length:var(--border-width-sm)] ds:border-[color:var(--muted-foreground)]',\n 'ds:bg-[color:var(--muted)]',\n 'ds:[[data-state=checked]_&]:bg-[color:var(--primary)]',\n 'ds:[[data-state=checked]_&]:border-[color:var(--primary)]',\n // Thumb slides via justify swap — logical-direction safe, no\n // transform to fight under prefers-reduced-motion.\n 'ds:justify-start ds:[[data-state=checked]_&]:justify-end',\n 'ds:forced-colors:border-[CanvasText]',\n // HCM strips fills — paint the checked track with the system\n // selection colour so state isn't conveyed by thumb position alone.\n 'ds:forced-colors:[[data-state=checked]_&]:bg-[SelectedItem]',\n].join(' ');\n\nconst switchThumbClasses = [\n 'ds:block ds:size-3',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:bg-[color:var(--background)]',\n 'ds:border ds:border-[length:var(--border-width-sm)] ds:border-[color:var(--muted-foreground)]',\n 'ds:[[data-state=checked]_&]:border-transparent',\n 'ds:shadow-[var(--shadow-sm)]',\n 'ds:forced-colors:bg-[CanvasText]',\n].join(' ');\n\nconst SwitchItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.CheckboxItem>,\n DropdownMenuSwitchItemProps\n>(({ className, children, onSelect, name, ...props }, ref) => {\n const { checked, onCheckedChange, disabled } = props;\n useSettingRow(name, {\n kind: 'switch',\n read: () => ({ checked: checked === true, disabled: disabled === true }),\n // What a click does, and only when it would change something: the\n // consumer's onSelect, then the new state.\n pick: (next) => {\n if (next === (checked === true)) return;\n onSelect?.(new Event('menu.itemSelect', { cancelable: true }));\n onCheckedChange?.(next);\n },\n });\n return (\n <RadixDropdownMenu.CheckboxItem\n ref={ref}\n className={itemClasses({ className })}\n data-setting={name}\n onSelect={(event) => {\n // Keep-open is unconditional — prevent first so a throwing consumer\n // handler can't close the menu as a side effect.\n event.preventDefault();\n onSelect?.(event);\n }}\n {...props}\n >\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n <span aria-hidden=\"true\" className={switchTrackClasses}>\n <span className={switchThumbClasses} />\n </span>\n </RadixDropdownMenu.CheckboxItem>\n );\n});\nSwitchItem.displayName = 'DropdownMenu.SwitchItem';\n\n/* ------------------------------------------------------------------ */\n/* RadioGroup / RadioItem */\n/* ------------------------------------------------------------------ */\n\nconst RadioGroup = RadixRadioGroup;\n\nexport type DropdownMenuRadioItemProps = ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.RadioItem\n>;\n\nconst RadioItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.RadioItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n {/* Real radio affordance: an always-visible ring with a filled dot\n when selected — a tick reads as a checkbox, not a single choice.\n The ring colours via the item's own data-state so the unchecked\n options still advertise that they are part of a radio set. */}\n <span className={indicatorSlotClasses} aria-hidden=\"true\">\n <span\n className={[\n 'ds:inline-flex ds:size-4 ds:items-center ds:justify-center ds:shrink-0',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:border ds:border-[length:var(--border-width-sm)] ds:border-[color:var(--muted-foreground)]',\n 'ds:[[data-state=checked]_&]:border-[color:var(--accent)]',\n // Accent on the lit row would vanish, so ring and dot take its ink.\n 'ds:not-forced-colors:[[data-highlighted][data-state=checked]_&]:border-[color:var(--accent-foreground)]',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' ')}\n >\n <RadixDropdownMenu.ItemIndicator>\n <span\n className={[\n 'ds:block ds:size-2 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--accent)]',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:bg-[color:var(--accent-foreground)]',\n 'ds:forced-colors:bg-[CanvasText]',\n ].join(' ')}\n />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n </span>\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n </RadixDropdownMenu.RadioItem>\n));\nRadioItem.displayName = 'DropdownMenu.RadioItem';\n\n/* ------------------------------------------------------------------ */\n/* Label */\n/* ------------------------------------------------------------------ */\n\nexport type DropdownMenuLabelProps = ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.Label\n>;\n\nconst Label = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Label>,\n DropdownMenuLabelProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Label\n ref={ref}\n className={labelClasses({ className })}\n {...props}\n />\n));\nLabel.displayName = 'DropdownMenu.Label';\n\n/* ------------------------------------------------------------------ */\n/* Separator */\n/* ------------------------------------------------------------------ */\n\nexport type DropdownMenuSeparatorProps = ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.Separator\n>;\n\nconst MenuSeparator = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Separator ref={ref} asChild {...props}>\n <DsSeparator\n className={['ds:my-[calc(var(--spacing-xs)/2)]', className ?? '']\n .filter(Boolean)\n .join(' ')}\n />\n </RadixDropdownMenu.Separator>\n));\nMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/* ------------------------------------------------------------------ */\n/* Shortcut — thin wrapper over DS Kbd for the right side of an Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuShortcutProps {\n keys: Array<KbdNamedKey | string>;\n separator?: 'none' | 'plus' | 'then';\n}\n\nconst Shortcut = forwardRef<HTMLSpanElement, DropdownMenuShortcutProps>(\n ({ keys, separator = 'none' }, ref) => (\n <span ref={ref} className=\"ds:ms-auto ds:ps-[var(--spacing-sm)]\">\n <Kbd keys={keys} separator={separator} size=\"sm\" />\n </span>\n ),\n);\nShortcut.displayName = 'DropdownMenu.Shortcut';\n\n/* ------------------------------------------------------------------ */\n/* Sub-menu */\n/* ------------------------------------------------------------------ */\n\nconst Sub = RadixDropdownMenu.Sub;\n\nexport interface DropdownMenuSubTriggerProps extends ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.SubTrigger\n> {\n startIcon?: ReactNode;\n}\n\nconst SubTrigger = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, startIcon, children, ...props }, ref) => (\n <RadixDropdownMenu.SubTrigger\n ref={ref}\n // Stays lit while focus is in its submenu, so the path is visible.\n className={itemClasses({\n className: [MENU_ROW_HIGHLIGHT.open, className].filter(Boolean).join(' '),\n })}\n {...props}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n <ChevronRight\n aria-hidden\n className=\"ds:ms-auto ds:size-4 ds:shrink-0 ds:rtl:-scale-x-100\"\n />\n </RadixDropdownMenu.SubTrigger>\n));\nSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nexport type DropdownMenuSubContentProps = ComponentPropsWithoutRef<\n typeof RadixDropdownMenu.SubContent\n>;\n\nconst SubContent = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Portal>\n <PopupRegion popupRef={ref}>\n {(popupRef) => (\n <RadixDropdownMenu.SubContent\n ref={popupRef}\n sideOffset={8}\n data-component=\"dropdown-menu-sub-content\"\n className={contentVariants({ className })}\n {...props}\n />\n )}\n </PopupRegion>\n </RadixDropdownMenu.Portal>\n));\nSubContent.displayName = 'DropdownMenu.SubContent';\n\n/* ------------------------------------------------------------------ */\n/* ChoiceSub */\n/* */\n/* One setting with a few exclusive options, as a single menu row that */\n/* names the setting and shows its current value (\"Row density · */\n/* Compact ›\"). The row opens a submenu of radio items. It replaces the */\n/* \"label + Select\" row inside popovers: no Select ever opens inside a */\n/* menu, and the whole settings menu stays keyboard-native. Picking an */\n/* option keeps the menu open by default, like SwitchItem, so the user */\n/* sees the value land and can adjust the next setting. */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuChoiceOption<T extends string = string> {\n value: T;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport interface DropdownMenuChoiceSubProps<T extends string = string> {\n /** The setting's name, shown at the start of the row. */\n label: ReactNode;\n /** The selected option's value; its label shows at the end of the row. */\n value: T;\n onValueChange: (value: T) => void;\n options: ReadonlyArray<DropdownMenuChoiceOption<T>>;\n startIcon?: ReactNode;\n disabled?: boolean;\n /** Close the whole menu after a pick. @default false */\n closeOnSelect?: boolean;\n /** Names the row for agents (the menu's `set_value` action and\n * `settings` state) and emits `data-setting`. */\n name?: string;\n className?: string;\n}\n\nfunction ChoiceSub<T extends string>({\n label,\n value,\n onValueChange,\n options,\n startIcon,\n disabled,\n closeOnSelect = false,\n name,\n className,\n}: DropdownMenuChoiceSubProps<T>) {\n const current = options.find((option) => option.value === value);\n useSettingRow(name, {\n kind: 'choice',\n read: () => ({\n value,\n options,\n disabled: disabled === true,\n closeOnSelect,\n }),\n pick: (next) => onValueChange(next as T),\n });\n return (\n <Sub>\n <SubTrigger\n startIcon={startIcon}\n disabled={disabled}\n className={className}\n data-component=\"dropdown-menu-choice\"\n data-value={value}\n data-setting={name}\n >\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <span className=\"ds:truncate\">{label}</span>\n {current ? (\n <span className=\"ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:[[data-highlighted]_&]:text-current\">\n {current.label}\n </span>\n ) : null}\n </span>\n </SubTrigger>\n <SubContent>\n <RadioGroup\n value={value}\n onValueChange={(next) => onValueChange(next as T)}\n >\n {options.map((option) => (\n <RadioItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n onSelect={\n closeOnSelect ? undefined : (event) => event.preventDefault()\n }\n >\n {option.label}\n </RadioItem>\n ))}\n </RadioGroup>\n </SubContent>\n </Sub>\n );\n}\nChoiceSub.displayName = 'DropdownMenu.ChoiceSub';\n\n/* ------------------------------------------------------------------ */\n/* Assembled namespace export */\n/* ------------------------------------------------------------------ */\n\nexport const DropdownMenu = {\n Root,\n Trigger,\n Portal,\n Content,\n Group: RadixGroup,\n Item,\n CheckboxItem,\n SwitchItem,\n RadioGroup,\n RadioItem,\n Label,\n Separator: MenuSeparator,\n Shortcut,\n Sub,\n SubTrigger,\n SubContent,\n ChoiceSub,\n};\n"],"names":["dropdownMenuAgent","handle","args","contentVariants","cva","itemClasses","MENU_ROW_HIGHLIGHT","labelClasses","indicatorSlotClasses","SettingRowsContext","createContext","nextFrame","resolve","DropdownMenuIdContext","Root","dir","id","openProp","defaultOpen","onOpenChange","props","autoDir","useDocumentDirection","openRaw","setOpen","useControllableState","open","openRef","useRef","useEffect","rowsRef","openRequestsRef","registerRow","useMemo","name","row","show","next","withRow","setting","kind","apply","opened","requests","frame","value","options","disabled","option","checked","closeOnSelect","o","useAgentRegistration","jsx","RadixDropdownMenu","Trigger","Portal","RadixGroup","RadixRadioGroup","Content","forwardRef","className","sideOffset","onCloseAutoFocus","ref","instanceId","useContext","PopupRegion","popupRef","event","releaseStaleBodyPointerLock","Item","startIcon","endIcon","description","shortcut","variant","disabledReason","textValue","onSelect","onClick","children","ariaDescribedBy","baseId","useId","reasonId","labelId","unavailable","secondLine","nameFromLabel","jsxs","Kbd","CheckboxItem","Check","useSettingRow","register","latest","useLayoutEffect","proxy","switchTrackClasses","switchThumbClasses","SwitchItem","onCheckedChange","RadioGroup","RadioItem","Label","MenuSeparator","DsSeparator","Shortcut","keys","separator","Sub","SubTrigger","ChevronRight","SubContent","ChoiceSub","label","onValueChange","current","DropdownMenu"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { useLayoutEffect as O, useMemo as V, useState as F, useRef as S, useEffe
|
|
|
3
3
|
import { T as K } from "./tag-BNlcEJfE.js";
|
|
4
4
|
import { useTranslation as w } from "react-i18next";
|
|
5
5
|
import { I as z } from "./icon-button-S8_weU3g.js";
|
|
6
|
-
import { I as q } from "./icon-button-group-
|
|
6
|
+
import { I as q } from "./icon-button-group-SmkdVCNx.js";
|
|
7
7
|
import { A as G, a as X } from "./arrow-up-BYvcvTkB.js";
|
|
8
8
|
import { S as W } from "./square-check-big-dj0o8yA3.js";
|
|
9
9
|
import { S as Z } from "./square-DASBRZ0U.js";
|
|
@@ -490,4 +490,4 @@ export {
|
|
|
490
490
|
Ne as u,
|
|
491
491
|
Ce as w
|
|
492
492
|
};
|
|
493
|
-
//# sourceMappingURL=editable-currency-cell-renderer-
|
|
493
|
+
//# sourceMappingURL=editable-currency-cell-renderer-CZMQ5xRT.js.map
|