@womp/kookie-ui 0.21.0 → 0.22.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/README.md +7 -6
- package/codemods/_shared.py +314 -0
- package/codemods/components-0.21.py +98 -42
- package/codemods/names-0.22.py +65 -0
- package/codemods/space-0.17.py +47 -23
- package/codemods/test_codemods.py +220 -0
- package/codemods/type-0.20.py +60 -31
- package/components.css +3527 -3516
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +3 -3
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js.map +2 -2
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +2 -2
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +2 -2
- package/dist/cjs/components/_internal/menu-context.js.map +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +2 -2
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
- package/dist/cjs/components/_internal/shell-handles.js +1 -1
- package/dist/cjs/components/_internal/shell-handles.js.map +2 -2
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
- package/dist/cjs/components/_internal/shell-resizable.js +1 -1
- package/dist/cjs/components/_internal/shell-resizable.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +2 -2
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +2 -2
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +2 -2
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +2 -2
- package/dist/cjs/components/alert-dialog.props.js +1 -1
- package/dist/cjs/components/alert-dialog.props.js.map +2 -2
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +4 -4
- package/dist/cjs/components/avatar.props.d.ts +1 -1
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +2 -2
- package/dist/cjs/components/blockquote.js +1 -1
- package/dist/cjs/components/blockquote.js.map +2 -2
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +2 -2
- package/dist/cjs/components/box.js +1 -1
- package/dist/cjs/components/box.js.map +2 -2
- package/dist/cjs/components/box.props.js +1 -1
- package/dist/cjs/components/box.props.js.map +2 -2
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +3 -3
- package/dist/cjs/components/button.props.js +1 -1
- package/dist/cjs/components/button.props.js.map +2 -2
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +2 -2
- package/dist/cjs/components/card.props.js +1 -1
- package/dist/cjs/components/card.props.js.map +2 -2
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +3 -3
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +2 -2
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +2 -2
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +3 -3
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +2 -2
- package/dist/cjs/components/chip.js +1 -1
- package/dist/cjs/components/chip.js.map +2 -2
- package/dist/cjs/components/chip.props.js +1 -1
- package/dist/cjs/components/chip.props.js.map +2 -2
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +2 -2
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +2 -2
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +3 -3
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +2 -2
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +2 -2
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +2 -2
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +2 -2
- package/dist/cjs/components/dialog.props.js +1 -1
- package/dist/cjs/components/dialog.props.js.map +2 -2
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.props.js +1 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +2 -2
- package/dist/cjs/components/flex.js +1 -1
- package/dist/cjs/components/flex.js.map +2 -2
- package/dist/cjs/components/flex.props.js +1 -1
- package/dist/cjs/components/flex.props.js.map +2 -2
- package/dist/cjs/components/grid.js +1 -1
- package/dist/cjs/components/grid.js.map +2 -2
- package/dist/cjs/components/grid.props.js +1 -1
- package/dist/cjs/components/grid.props.js.map +2 -2
- package/dist/cjs/components/heading.js +1 -1
- package/dist/cjs/components/heading.js.map +2 -2
- package/dist/cjs/components/heading.props.js +1 -1
- package/dist/cjs/components/heading.props.js.map +2 -2
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/kbd.js +1 -1
- package/dist/cjs/components/kbd.js.map +2 -2
- package/dist/cjs/components/kbd.props.js +1 -1
- package/dist/cjs/components/kbd.props.js.map +2 -2
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +2 -2
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +2 -2
- package/dist/cjs/components/message-scroller.js +1 -1
- package/dist/cjs/components/message-scroller.js.map +3 -3
- package/dist/cjs/components/navbar.js +1 -1
- package/dist/cjs/components/navbar.js.map +2 -2
- package/dist/cjs/components/notice.js +1 -1
- package/dist/cjs/components/notice.js.map +3 -3
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +2 -2
- package/dist/cjs/components/popover.props.js +1 -1
- package/dist/cjs/components/popover.props.js.map +2 -2
- package/dist/cjs/components/progress.js +1 -1
- package/dist/cjs/components/progress.js.map +2 -2
- package/dist/cjs/components/progress.props.js +1 -1
- package/dist/cjs/components/progress.props.js.map +2 -2
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +2 -2
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +2 -2
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +2 -2
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +2 -2
- package/dist/cjs/components/reset.js +1 -1
- package/dist/cjs/components/reset.js.map +2 -2
- package/dist/cjs/components/schemas/button.schema.d.ts +146 -0
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.js +1 -1
- package/dist/cjs/components/schemas/button.schema.js.map +3 -3
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +3 -3
- package/dist/cjs/components/schemas/toggle.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle.schema.js.map +3 -3
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/scroll-area.js.map +2 -2
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +2 -2
- package/dist/cjs/components/segmented-control.props.js +1 -1
- package/dist/cjs/components/segmented-control.props.js.map +2 -2
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +3 -3
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +2 -2
- package/dist/cjs/components/separator.js +1 -1
- package/dist/cjs/components/separator.js.map +2 -2
- package/dist/cjs/components/separator.props.js +1 -1
- package/dist/cjs/components/separator.props.js.map +2 -2
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +2 -2
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +2 -2
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +2 -2
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +2 -2
- package/dist/cjs/components/slider.props.js +1 -1
- package/dist/cjs/components/slider.props.js.map +2 -2
- package/dist/cjs/components/spinner.js +1 -1
- package/dist/cjs/components/spinner.js.map +2 -2
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +2 -2
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +2 -2
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +3 -3
- package/dist/cjs/components/table.props.js +1 -1
- package/dist/cjs/components/table.props.js.map +2 -2
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +2 -2
- package/dist/cjs/components/tabs.props.js +1 -1
- package/dist/cjs/components/tabs.props.js.map +2 -2
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +2 -2
- package/dist/cjs/components/text-area.props.js +1 -1
- package/dist/cjs/components/text-area.props.js.map +2 -2
- package/dist/cjs/components/text-field.js +4 -4
- package/dist/cjs/components/text-field.js.map +2 -2
- package/dist/cjs/components/text-field.props.js +1 -1
- package/dist/cjs/components/text-field.props.js.map +2 -2
- package/dist/cjs/components/text.js +1 -1
- package/dist/cjs/components/text.js.map +2 -2
- package/dist/cjs/components/text.props.js +1 -1
- package/dist/cjs/components/text.props.js.map +2 -2
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +2 -2
- package/dist/cjs/components/toggle.js +2 -2
- package/dist/cjs/components/toggle.js.map +3 -3
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +3 -3
- package/dist/cjs/components/toolbar.props.js +1 -1
- package/dist/cjs/components/toolbar.props.js.map +2 -2
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +2 -2
- package/dist/cjs/components/tooltip.props.js +1 -1
- package/dist/cjs/components/tooltip.props.js.map +2 -2
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +2 -2
- package/dist/cjs/helpers/font-config.d.ts.map +1 -1
- package/dist/cjs/helpers/font-config.js +3 -3
- package/dist/cjs/helpers/font-config.js.map +2 -2
- package/dist/cjs/helpers/get-margin-styles.js +1 -1
- package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
- package/dist/cjs/helpers/index.js +3 -3
- package/dist/cjs/helpers/index.js.map +2 -2
- package/dist/cjs/hooks/index.js +2 -2
- package/dist/cjs/hooks/index.js.map +2 -2
- package/dist/cjs/hooks/use-live-announcer.js +2 -2
- package/dist/cjs/hooks/use-live-announcer.js.map +2 -2
- package/dist/cjs/hooks/use-thumb-sync.js +1 -1
- package/dist/cjs/hooks/use-thumb-sync.js.map +2 -2
- package/dist/cjs/hooks/use-toggle-state.js +2 -2
- package/dist/cjs/hooks/use-toggle-state.js.map +2 -2
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/props/emphasis.prop.js +1 -1
- package/dist/cjs/props/emphasis.prop.js.map +2 -2
- package/dist/cjs/props/font-family.prop.js +1 -1
- package/dist/cjs/props/font-family.prop.js.map +2 -2
- package/dist/cjs/props/gap.props.js +1 -1
- package/dist/cjs/props/gap.props.js.map +2 -2
- package/dist/cjs/props/height.props.js +1 -1
- package/dist/cjs/props/height.props.js.map +2 -2
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +2 -2
- package/dist/cjs/props/layout.props.d.ts +5 -5
- package/dist/cjs/props/layout.props.js +1 -1
- package/dist/cjs/props/layout.props.js.map +2 -2
- package/dist/cjs/props/leading-trim.prop.js +1 -1
- package/dist/cjs/props/leading-trim.prop.js.map +2 -2
- package/dist/cjs/props/margin.props.js +1 -1
- package/dist/cjs/props/margin.props.js.map +2 -2
- package/dist/cjs/props/padding.props.js +1 -1
- package/dist/cjs/props/padding.props.js.map +2 -2
- package/dist/cjs/props/shadow.props.js +1 -1
- package/dist/cjs/props/shadow.props.js.map +2 -2
- package/dist/cjs/props/text-align.prop.js +1 -1
- package/dist/cjs/props/text-align.prop.js.map +2 -2
- package/dist/cjs/props/text-wrap.prop.js +1 -1
- package/dist/cjs/props/text-wrap.prop.js.map +2 -2
- package/dist/cjs/props/truncate.prop.js +1 -1
- package/dist/cjs/props/truncate.prop.js.map +2 -2
- package/dist/cjs/props/weight.prop.js +1 -1
- package/dist/cjs/props/weight.prop.js.map +2 -2
- package/dist/cjs/props/width.props.js +1 -1
- package/dist/cjs/props/width.props.js.map +2 -2
- package/dist/esm/chunk-23KT3D2Z.js +2 -0
- package/dist/esm/{chunk-DL6F2TIU.js.map → chunk-23KT3D2Z.js.map} +2 -2
- package/dist/esm/chunk-25FNCKUM.js +2 -0
- package/dist/esm/chunk-25FNCKUM.js.map +7 -0
- package/dist/esm/chunk-2E4P5XQL.js +2 -0
- package/dist/esm/chunk-2E4P5XQL.js.map +7 -0
- package/dist/esm/chunk-3BUQ7ADW.js +2 -0
- package/dist/esm/{chunk-OA2BZDKL.js.map → chunk-3BUQ7ADW.js.map} +2 -2
- package/dist/esm/chunk-3JA7SJDT.js +2 -0
- package/dist/esm/chunk-3JA7SJDT.js.map +7 -0
- package/dist/esm/{chunk-PEP6MQJ2.js → chunk-3KQE2PSJ.js} +2 -2
- package/dist/esm/chunk-3QZBWH2A.js +2 -0
- package/dist/esm/chunk-3QZBWH2A.js.map +7 -0
- package/dist/esm/chunk-3XHTJZNP.js +2 -0
- package/dist/esm/chunk-3XHTJZNP.js.map +7 -0
- package/dist/esm/chunk-3YWVE5GL.js +2 -0
- package/dist/esm/chunk-3YWVE5GL.js.map +7 -0
- package/dist/esm/chunk-4BU4R7UM.js +2 -0
- package/dist/esm/{chunk-XEW4BRIL.js.map → chunk-4BU4R7UM.js.map} +2 -2
- package/dist/esm/chunk-4P6TKZCA.js +2 -0
- package/dist/esm/{chunk-P3WB3K2M.js.map → chunk-4P6TKZCA.js.map} +2 -2
- package/dist/esm/{chunk-HZNOHY6O.js → chunk-63PQNLFJ.js} +2 -2
- package/dist/esm/{chunk-HZNOHY6O.js.map → chunk-63PQNLFJ.js.map} +2 -2
- package/dist/esm/chunk-677CX2QF.js +2 -0
- package/dist/esm/{chunk-MQWH2IFO.js.map → chunk-677CX2QF.js.map} +2 -2
- package/dist/esm/chunk-6CK7UTNH.js +2 -0
- package/dist/esm/{chunk-TCSPZ27B.js.map → chunk-6CK7UTNH.js.map} +2 -2
- package/dist/esm/chunk-6RK26HIY.js +2 -0
- package/dist/esm/chunk-6RK26HIY.js.map +7 -0
- package/dist/esm/chunk-7CUQMU3T.js +2 -0
- package/dist/esm/chunk-7CUQMU3T.js.map +7 -0
- package/dist/esm/chunk-7ESWH773.js +2 -0
- package/dist/esm/{chunk-7QPXLSVR.js.map → chunk-7ESWH773.js.map} +2 -2
- package/dist/esm/chunk-7FTUTUMD.js +2 -0
- package/dist/esm/chunk-7FTUTUMD.js.map +7 -0
- package/dist/esm/chunk-7SS4UUJH.js +2 -0
- package/dist/esm/{chunk-T4L4QDBG.js.map → chunk-7SS4UUJH.js.map} +2 -2
- package/dist/esm/chunk-A3YQIJDA.js +2 -0
- package/dist/esm/{chunk-MC3GY6ET.js.map → chunk-A3YQIJDA.js.map} +2 -2
- package/dist/esm/chunk-AB3QCCUM.js +2 -0
- package/dist/esm/chunk-AB3QCCUM.js.map +7 -0
- package/dist/esm/{chunk-GBFGUOFS.js → chunk-BE7LMBBC.js} +2 -2
- package/dist/esm/chunk-BEP4AH5V.js +2 -0
- package/dist/esm/chunk-BEP4AH5V.js.map +7 -0
- package/dist/esm/{chunk-FGORMEAO.js → chunk-BIITGC3Z.js} +2 -2
- package/dist/esm/{chunk-FGORMEAO.js.map → chunk-BIITGC3Z.js.map} +2 -2
- package/dist/esm/{chunk-4VBH3W2S.js → chunk-BJUCBOGU.js} +2 -2
- package/dist/esm/{chunk-4VBH3W2S.js.map → chunk-BJUCBOGU.js.map} +2 -2
- package/dist/esm/chunk-BWLCTTTN.js +2 -0
- package/dist/esm/{chunk-5P4JTWBK.js.map → chunk-BWLCTTTN.js.map} +2 -2
- package/dist/esm/chunk-CLZW2IDD.js +2 -0
- package/dist/esm/{chunk-R2FUNQTI.js.map → chunk-CLZW2IDD.js.map} +2 -2
- package/dist/esm/chunk-DBROSD2J.js +2 -0
- package/dist/esm/chunk-DBROSD2J.js.map +7 -0
- package/dist/esm/chunk-DFGY2NZB.js +2 -0
- package/dist/esm/chunk-DNOQ6E3W.js +2 -0
- package/dist/esm/{chunk-24CVW6P7.js.map → chunk-DNOQ6E3W.js.map} +2 -2
- package/dist/esm/chunk-DSPYHO3L.js +2 -0
- package/dist/esm/{chunk-ZCWDURKJ.js.map → chunk-DSPYHO3L.js.map} +2 -2
- package/dist/esm/chunk-E2D2VWUI.js +2 -0
- package/dist/esm/chunk-E2D2VWUI.js.map +7 -0
- package/dist/esm/chunk-EKTVL6SS.js +2 -0
- package/dist/esm/chunk-EKTVL6SS.js.map +7 -0
- package/dist/esm/chunk-EMNSA65L.js +2 -0
- package/dist/esm/chunk-EMNSA65L.js.map +7 -0
- package/dist/esm/chunk-ETQNRMHU.js +2 -0
- package/dist/esm/chunk-ETQNRMHU.js.map +7 -0
- package/dist/esm/chunk-FDHWAC6W.js +2 -0
- package/dist/esm/{chunk-HGG3ULNK.js.map → chunk-FDHWAC6W.js.map} +2 -2
- package/dist/esm/chunk-FFG32ERA.js +5 -0
- package/dist/esm/chunk-FFG32ERA.js.map +7 -0
- package/dist/esm/chunk-FHPHEIYJ.js +2 -0
- package/dist/esm/chunk-FHPHEIYJ.js.map +7 -0
- package/dist/esm/chunk-FJFBM7HW.js +2 -0
- package/dist/esm/{chunk-IQBSUN5B.js.map → chunk-FJFBM7HW.js.map} +2 -2
- package/dist/esm/chunk-FNAE6HUI.js +2 -0
- package/dist/esm/chunk-FNAE6HUI.js.map +7 -0
- package/dist/esm/{chunk-VA5A4MHU.js → chunk-FQ3QJOYE.js} +4 -4
- package/dist/esm/{chunk-VA5A4MHU.js.map → chunk-FQ3QJOYE.js.map} +2 -2
- package/dist/esm/chunk-FVY44PTM.js +2 -0
- package/dist/esm/{chunk-KRDRQU4G.js.map → chunk-FVY44PTM.js.map} +2 -2
- package/dist/esm/chunk-GBQZ4Z2H.js +2 -0
- package/dist/esm/chunk-GBQZ4Z2H.js.map +7 -0
- package/dist/esm/chunk-GNTNGLYR.js +2 -0
- package/dist/esm/{chunk-IZPDJN6O.js.map → chunk-GNTNGLYR.js.map} +2 -2
- package/dist/esm/{chunk-BPVVFHYD.js → chunk-H3IAGAEL.js} +2 -2
- package/dist/esm/chunk-HCBR74BW.js +2 -0
- package/dist/esm/chunk-HCBR74BW.js.map +7 -0
- package/dist/esm/chunk-HIKMKGPT.js +2 -0
- package/dist/esm/{chunk-EGSMLRSO.js.map → chunk-HIKMKGPT.js.map} +2 -2
- package/dist/esm/chunk-HKPXDQ2B.js +2 -0
- package/dist/esm/{chunk-5WLSAUNJ.js.map → chunk-HKPXDQ2B.js.map} +2 -2
- package/dist/esm/chunk-IAEAXIBI.js +2 -0
- package/dist/esm/chunk-IAEAXIBI.js.map +7 -0
- package/dist/esm/chunk-IDOZJVO6.js +2 -0
- package/dist/esm/{chunk-VCU6VCPH.js.map → chunk-IDOZJVO6.js.map} +2 -2
- package/dist/esm/chunk-IJRBX6EV.js +2 -0
- package/dist/esm/chunk-IJRBX6EV.js.map +7 -0
- package/dist/esm/chunk-IVQHRM33.js +2 -0
- package/dist/esm/chunk-IVQHRM33.js.map +7 -0
- package/dist/esm/chunk-IWCFJJBI.js +2 -0
- package/dist/esm/{chunk-DDFONGSM.js.map → chunk-IWCFJJBI.js.map} +2 -2
- package/dist/esm/chunk-JBHRV364.js +2 -0
- package/dist/esm/{chunk-A2NG5NRN.js.map → chunk-JBHRV364.js.map} +2 -2
- package/dist/esm/chunk-KEWNXANF.js +2 -0
- package/dist/esm/{chunk-KNQBAOMV.js.map → chunk-KEWNXANF.js.map} +2 -2
- package/dist/esm/chunk-KKMOGHIY.js +2 -0
- package/dist/esm/chunk-KKMOGHIY.js.map +7 -0
- package/dist/esm/chunk-KL73COYX.js +2 -0
- package/dist/esm/{chunk-K7VO7TND.js.map → chunk-KL73COYX.js.map} +2 -2
- package/dist/esm/chunk-KMDXIZAG.js +2 -0
- package/dist/esm/{chunk-YB7CENHH.js.map → chunk-KMDXIZAG.js.map} +2 -2
- package/dist/esm/chunk-KS4U4VPH.js +2 -0
- package/dist/esm/chunk-KS4U4VPH.js.map +7 -0
- package/dist/esm/chunk-KT2CMUS5.js +2 -0
- package/dist/esm/{chunk-LNFN35ZE.js.map → chunk-KT2CMUS5.js.map} +2 -2
- package/dist/esm/{chunk-EOWG5SIY.js → chunk-KZEZDBE7.js} +2 -2
- package/dist/esm/{chunk-EOWG5SIY.js.map → chunk-KZEZDBE7.js.map} +2 -2
- package/dist/esm/{chunk-4I4NJNYO.js → chunk-LC5AK2ZD.js} +2 -2
- package/dist/esm/{chunk-4I4NJNYO.js.map → chunk-LC5AK2ZD.js.map} +2 -2
- package/dist/esm/chunk-LHIS3UKQ.js +2 -0
- package/dist/esm/{chunk-36GV4H3C.js.map → chunk-LHIS3UKQ.js.map} +2 -2
- package/dist/esm/chunk-LUNWI377.js +2 -0
- package/dist/esm/chunk-LUNWI377.js.map +7 -0
- package/dist/esm/chunk-LVCUY2OS.js +2 -0
- package/dist/esm/{chunk-LVCP5WGX.js.map → chunk-LVCUY2OS.js.map} +2 -2
- package/dist/esm/chunk-LXTGEI62.js +2 -0
- package/dist/esm/chunk-LXTGEI62.js.map +7 -0
- package/dist/esm/chunk-MPTTUBFU.js +2 -0
- package/dist/esm/{chunk-7MPFZIZX.js.map → chunk-MPTTUBFU.js.map} +2 -2
- package/dist/esm/chunk-N6KH2EOU.js +2 -0
- package/dist/esm/{chunk-2WSD2H23.js.map → chunk-N6KH2EOU.js.map} +2 -2
- package/dist/esm/chunk-NA237RHQ.js +2 -0
- package/dist/esm/chunk-NA237RHQ.js.map +7 -0
- package/dist/esm/chunk-NLXJZJNN.js +2 -0
- package/dist/esm/{chunk-DSV3XBHM.js.map → chunk-NLXJZJNN.js.map} +2 -2
- package/dist/esm/chunk-NNZTSXKH.js +2 -0
- package/dist/esm/{chunk-UEHCCJYY.js.map → chunk-NNZTSXKH.js.map} +2 -2
- package/dist/esm/chunk-NUVUXNHF.js +2 -0
- package/dist/esm/chunk-NUVUXNHF.js.map +7 -0
- package/dist/esm/{chunk-672FI4OH.js → chunk-OJQNLROL.js} +2 -2
- package/dist/esm/{chunk-672FI4OH.js.map → chunk-OJQNLROL.js.map} +2 -2
- package/dist/esm/chunk-OSSNMF5U.js +2 -0
- package/dist/esm/{chunk-E4KCVRBQ.js.map → chunk-OSSNMF5U.js.map} +2 -2
- package/dist/esm/chunk-OY5NT7VT.js +2 -0
- package/dist/esm/chunk-OY5NT7VT.js.map +7 -0
- package/dist/esm/chunk-P7VSZYG3.js +2 -0
- package/dist/esm/chunk-P7VSZYG3.js.map +7 -0
- package/dist/esm/chunk-PJR6GRZC.js +2 -0
- package/dist/esm/chunk-PJR6GRZC.js.map +7 -0
- package/dist/esm/chunk-PNAB6KCN.js +2 -0
- package/dist/esm/chunk-PNAB6KCN.js.map +7 -0
- package/dist/esm/{chunk-RGZKWVJC.js → chunk-PPZY7PJA.js} +2 -2
- package/dist/esm/{chunk-RGZKWVJC.js.map → chunk-PPZY7PJA.js.map} +2 -2
- package/dist/esm/chunk-PSPENFPH.js +2 -0
- package/dist/esm/{chunk-VOEZ5HJL.js.map → chunk-PSPENFPH.js.map} +2 -2
- package/dist/esm/{chunk-AYZRLA7F.js → chunk-Q4IA622Q.js} +2 -2
- package/dist/esm/{chunk-AYZRLA7F.js.map → chunk-Q4IA622Q.js.map} +2 -2
- package/dist/esm/chunk-QOHJIF25.js +2 -0
- package/dist/esm/{chunk-MYO2E46Z.js.map → chunk-QOHJIF25.js.map} +2 -2
- package/dist/esm/{chunk-RBTTIDON.js → chunk-QWDCLL6R.js} +2 -2
- package/dist/esm/chunk-QWDCLL6R.js.map +7 -0
- package/dist/esm/chunk-R4XJNQX5.js +2 -0
- package/dist/esm/{chunk-7XWAXYZD.js.map → chunk-R4XJNQX5.js.map} +2 -2
- package/dist/esm/chunk-RAVZ7F5L.js +2 -0
- package/dist/esm/{chunk-RDS3AJWW.js.map → chunk-RAVZ7F5L.js.map} +2 -2
- package/dist/esm/chunk-RWTSGUVJ.js +2 -0
- package/dist/esm/{chunk-LHYX53XA.js.map → chunk-RWTSGUVJ.js.map} +2 -2
- package/dist/esm/chunk-S6GWR6EZ.js +2 -0
- package/dist/esm/{chunk-4ZAJVYU6.js.map → chunk-S6GWR6EZ.js.map} +2 -2
- package/dist/esm/chunk-SBRPXQWH.js +2 -0
- package/dist/esm/{chunk-WYADYDPN.js.map → chunk-SBRPXQWH.js.map} +2 -2
- package/dist/esm/chunk-SJXV4BWZ.js +2 -0
- package/dist/esm/{chunk-ZE2KAVXW.js.map → chunk-SJXV4BWZ.js.map} +2 -2
- package/dist/esm/chunk-SKOYHBIE.js +2 -0
- package/dist/esm/{chunk-TKSG7KBZ.js.map → chunk-SKOYHBIE.js.map} +2 -2
- package/dist/esm/chunk-SUPFDIJL.js +10 -0
- package/dist/esm/chunk-SUPFDIJL.js.map +7 -0
- package/dist/esm/{chunk-IN6ZEGDK.js → chunk-T62PRLPN.js} +2 -2
- package/dist/esm/{chunk-IN6ZEGDK.js.map → chunk-T62PRLPN.js.map} +2 -2
- package/dist/esm/chunk-THUBY6L2.js +2 -0
- package/dist/esm/{chunk-UMIDPKFZ.js.map → chunk-THUBY6L2.js.map} +2 -2
- package/dist/esm/chunk-TJL47GIO.js +2 -0
- package/dist/esm/chunk-TJL47GIO.js.map +7 -0
- package/dist/esm/chunk-VCV7RACK.js +2 -0
- package/dist/esm/{chunk-AXUDFYLY.js.map → chunk-VCV7RACK.js.map} +2 -2
- package/dist/esm/chunk-VPSMETY2.js +2 -0
- package/dist/esm/chunk-VS2ZWRGO.js +2 -0
- package/dist/esm/{chunk-WWF3IU3P.js.map → chunk-VS2ZWRGO.js.map} +2 -2
- package/dist/esm/chunk-VVWYAVHM.js +2 -0
- package/dist/esm/{chunk-IAC5IOPN.js.map → chunk-VVWYAVHM.js.map} +2 -2
- package/dist/esm/chunk-VW46DG7H.js +2 -0
- package/dist/esm/chunk-VW46DG7H.js.map +7 -0
- package/dist/esm/chunk-VXQQ6KXI.js +2 -0
- package/dist/esm/{chunk-BZZXXZ3O.js.map → chunk-VXQQ6KXI.js.map} +2 -2
- package/dist/esm/chunk-WKSXMFFF.js +2 -0
- package/dist/esm/{chunk-5B6JDZ3S.js.map → chunk-WKSXMFFF.js.map} +2 -2
- package/dist/esm/chunk-WTCZAUFY.js +2 -0
- package/dist/esm/{chunk-G2CKYO2I.js.map → chunk-WTCZAUFY.js.map} +2 -2
- package/dist/esm/chunk-X4A3XRBY.js +2 -0
- package/dist/esm/{chunk-K6QKUX3C.js.map → chunk-X4A3XRBY.js.map} +2 -2
- package/dist/esm/chunk-XKSU3NLG.js +2 -0
- package/dist/esm/{chunk-TDQTMR5T.js.map → chunk-XKSU3NLG.js.map} +2 -2
- package/dist/esm/{chunk-FHEHX7CE.js → chunk-XTDXXQTB.js} +2 -2
- package/dist/esm/{chunk-FHEHX7CE.js.map → chunk-XTDXXQTB.js.map} +2 -2
- package/dist/esm/chunk-XZQSSRTG.js +2 -0
- package/dist/esm/{chunk-M4M4OZTS.js.map → chunk-XZQSSRTG.js.map} +2 -2
- package/dist/esm/chunk-Y3JYEEFB.js +2 -0
- package/dist/esm/chunk-Y3JYEEFB.js.map +7 -0
- package/dist/esm/chunk-YEHM3FZN.js +2 -0
- package/dist/esm/{chunk-JMBCX5XR.js.map → chunk-YEHM3FZN.js.map} +2 -2
- package/dist/esm/chunk-YHYPIJCR.js +2 -0
- package/dist/esm/{chunk-K4BDLRCC.js.map → chunk-YHYPIJCR.js.map} +2 -2
- package/dist/esm/chunk-YK3ZUMRQ.js +2 -0
- package/dist/esm/chunk-YK3ZUMRQ.js.map +7 -0
- package/dist/esm/chunk-YLDV2HKZ.js +2 -0
- package/dist/esm/chunk-YLDV2HKZ.js.map +7 -0
- package/dist/esm/chunk-YXLDRDHW.js +2 -0
- package/dist/esm/chunk-YXLDRDHW.js.map +7 -0
- package/dist/esm/chunk-YZM54IJE.js +2 -0
- package/dist/esm/{chunk-LPVDR7V3.js.map → chunk-YZM54IJE.js.map} +2 -2
- package/dist/esm/chunk-ZJI2IK7C.js +2 -0
- package/dist/esm/chunk-ZJI2IK7C.js.map +7 -0
- package/dist/esm/chunk-ZNDCZM5A.js +2 -0
- package/dist/esm/{chunk-W7YHNMAO.js.map → chunk-ZNDCZM5A.js.map} +2 -2
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-handles.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-resizable.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.d.ts +1 -1
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/box.props.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/chip.js +1 -1
- package/dist/esm/components/chip.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/flex.props.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/grid.props.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/reset.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +146 -0
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/toggle.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.props.js +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/toggle.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/toolbar.props.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.props.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/font-config.d.ts.map +1 -1
- package/dist/esm/helpers/font-config.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/use-live-announcer.js +1 -1
- package/dist/esm/hooks/use-thumb-sync.js +1 -1
- package/dist/esm/hooks/use-toggle-state.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/emphasis.prop.js +1 -1
- package/dist/esm/props/font-family.prop.js +1 -1
- package/dist/esm/props/gap.props.js +1 -1
- package/dist/esm/props/height.props.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/layout.props.d.ts +5 -5
- package/dist/esm/props/layout.props.js +1 -1
- package/dist/esm/props/leading-trim.prop.js +1 -1
- package/dist/esm/props/margin.props.js +1 -1
- package/dist/esm/props/padding.props.js +1 -1
- package/dist/esm/props/shadow.props.js +1 -1
- package/dist/esm/props/text-align.prop.js +1 -1
- package/dist/esm/props/text-wrap.prop.js +1 -1
- package/dist/esm/props/truncate.prop.js +1 -1
- package/dist/esm/props/weight.prop.js +1 -1
- package/dist/esm/props/width.props.js +1 -1
- package/layout/components.css +3 -3
- package/layout/tokens.css +1 -1
- package/layout/utilities.css +4716 -4446
- package/layout.css +4720 -4450
- package/package.json +1 -1
- package/postcss-breakpoints.cjs +10 -10
- package/src/components/_internal/base-button.css +36 -36
- package/src/components/_internal/base-button.props.ts +4 -4
- package/src/components/_internal/base-button.tsx +54 -27
- package/src/components/_internal/base-card.css +44 -44
- package/src/components/_internal/base-checkbox.css +45 -45
- package/src/components/_internal/base-checkbox.props.ts +2 -2
- package/src/components/_internal/base-dialog.css +17 -15
- package/src/components/_internal/base-menu.css +54 -54
- package/src/components/_internal/base-menu.props.ts +1 -1
- package/src/components/_internal/base-menu.utils.tsx +1 -1
- package/src/components/_internal/base-radio.css +33 -33
- package/src/components/_internal/base-radio.props.ts +2 -2
- package/src/components/_internal/base-sidebar-menu.css +25 -25
- package/src/components/_internal/base-sidebar.css +9 -12
- package/src/components/_internal/base-tab-list.css +37 -37
- package/src/components/_internal/base-tab-list.props.ts +3 -3
- package/src/components/_internal/dropdown-menu-drill-down.tsx +4 -4
- package/src/components/_internal/pane-chrome.tsx +6 -6
- package/src/components/_internal/shell-bottom.tsx +2 -2
- package/src/components/_internal/shell-handles.tsx +2 -2
- package/src/components/_internal/shell-inspector.tsx +2 -2
- package/src/components/_internal/shell-resizable.tsx +1 -1
- package/src/components/_internal/shell-sidebar.tsx +2 -2
- package/src/components/accordion.css +55 -55
- package/src/components/accordion.props.tsx +2 -2
- package/src/components/accordion.tsx +6 -6
- package/src/components/alert-dialog.css +1 -1
- package/src/components/alert-dialog.tsx +5 -5
- package/src/components/avatar.css +84 -84
- package/src/components/avatar.props.tsx +3 -3
- package/src/components/avatar.tsx +12 -9
- package/src/components/blockquote.css +1 -1
- package/src/components/blockquote.props.tsx +1 -1
- package/src/components/blockquote.tsx +1 -1
- package/src/components/box.css +1 -1
- package/src/components/box.props.tsx +1 -1
- package/src/components/box.tsx +1 -1
- package/src/components/button.css +6 -6
- package/src/components/button.tsx +1 -1
- package/src/components/card.css +16 -2
- package/src/components/card.props.tsx +2 -2
- package/src/components/card.tsx +1 -1
- package/src/components/chatbar.css +94 -94
- package/src/components/chatbar.tsx +26 -26
- package/src/components/checkbox-group.css +5 -5
- package/src/components/checkbox-group.tsx +7 -7
- package/src/components/checkbox.css +2 -2
- package/src/components/checkbox.tsx +2 -2
- package/src/components/chip.css +23 -23
- package/src/components/chip.props.tsx +2 -2
- package/src/components/chip.tsx +1 -1
- package/src/components/code.css +29 -29
- package/src/components/code.props.tsx +2 -2
- package/src/components/code.tsx +1 -1
- package/src/components/combobox.css +22 -22
- package/src/components/combobox.props.tsx +4 -4
- package/src/components/combobox.tsx +27 -28
- package/src/components/context-menu.css +1 -1
- package/src/components/context-menu.tsx +39 -39
- package/src/components/dialog.css +1 -1
- package/src/components/dialog.props.tsx +2 -2
- package/src/components/dialog.tsx +5 -5
- package/src/components/dropdown-menu.css +18 -18
- package/src/components/dropdown-menu.tsx +56 -56
- package/src/components/flex.css +1 -1
- package/src/components/flex.props.tsx +5 -5
- package/src/components/flex.tsx +1 -1
- package/src/components/grid.css +1 -1
- package/src/components/grid.props.tsx +9 -9
- package/src/components/grid.tsx +1 -1
- package/src/components/heading.css +22 -22
- package/src/components/heading.props.tsx +1 -1
- package/src/components/heading.tsx +1 -1
- package/src/components/index.css +1 -1
- package/src/components/kbd.css +39 -39
- package/src/components/kbd.props.tsx +2 -2
- package/src/components/kbd.tsx +1 -1
- package/src/components/link.css +11 -11
- package/src/components/link.props.tsx +2 -2
- package/src/components/link.tsx +1 -1
- package/src/components/message-scroller.css +7 -7
- package/src/components/message-scroller.tsx +5 -5
- package/src/components/navbar.css +14 -14
- package/src/components/navbar.tsx +8 -8
- package/src/components/notice.css +16 -14
- package/src/components/notice.tsx +6 -6
- package/src/components/popover.css +16 -14
- package/src/components/popover.props.tsx +1 -1
- package/src/components/popover.tsx +7 -7
- package/src/components/progress.css +15 -15
- package/src/components/progress.props.tsx +1 -1
- package/src/components/progress.tsx +2 -2
- package/src/components/radio-group.css +3 -3
- package/src/components/radio-group.props.tsx +2 -2
- package/src/components/radio-group.tsx +4 -4
- package/src/components/radio.tsx +1 -1
- package/src/components/reset.css +1 -1
- package/src/components/reset.tsx +1 -1
- package/src/components/schemas/button.schema.ts +13 -1
- package/src/components/schemas/toggle.schema.ts +2 -2
- package/src/components/scroll-area.css +16 -16
- package/src/components/scroll-area.tsx +8 -8
- package/src/components/segmented-control.css +97 -97
- package/src/components/segmented-control.props.tsx +2 -2
- package/src/components/segmented-control.tsx +7 -7
- package/src/components/select.css +78 -78
- package/src/components/select.props.tsx +2 -2
- package/src/components/select.tsx +39 -29
- package/src/components/separator.css +5 -5
- package/src/components/separator.props.tsx +2 -2
- package/src/components/separator.tsx +1 -1
- package/src/components/sheet.css +6 -6
- package/src/components/sheet.tsx +3 -3
- package/src/components/shell.css +456 -456
- package/src/components/shell.tsx +12 -12
- package/src/components/sidebar.css +199 -199
- package/src/components/sidebar.tsx +37 -37
- package/src/components/slider.css +50 -50
- package/src/components/slider.props.tsx +4 -4
- package/src/components/slider.tsx +9 -9
- package/src/components/spinner.css +6 -6
- package/src/components/spinner.tsx +9 -9
- package/src/components/switch.css +28 -28
- package/src/components/switch.props.tsx +2 -2
- package/src/components/switch.tsx +2 -2
- package/src/components/table.css +28 -28
- package/src/components/table.props.tsx +5 -5
- package/src/components/table.tsx +8 -8
- package/src/components/tabs.css +2 -2
- package/src/components/tabs.tsx +6 -6
- package/src/components/text-area.css +84 -84
- package/src/components/text-area.props.tsx +3 -3
- package/src/components/text-area.tsx +4 -4
- package/src/components/text-field.css +112 -107
- package/src/components/text-field.props.tsx +2 -2
- package/src/components/text-field.tsx +8 -8
- package/src/components/text.css +23 -23
- package/src/components/text.props.tsx +1 -1
- package/src/components/text.tsx +1 -1
- package/src/components/theme.tsx +1 -1
- package/src/components/toggle.tsx +1 -1
- package/src/components/toolbar.css +15 -15
- package/src/components/toolbar.props.tsx +1 -1
- package/src/components/toolbar.tsx +4 -4
- package/src/components/tooltip.css +6 -6
- package/src/components/tooltip.tsx +3 -3
- package/src/components/virtual-menu.css +6 -6
- package/src/components/virtual-menu.tsx +4 -4
- package/src/helpers/font-config.ts +4 -4
- package/src/helpers/get-margin-styles.ts +7 -7
- package/src/hooks/use-live-announcer.ts +4 -4
- package/src/hooks/use-thumb-sync.ts +1 -1
- package/src/props/emphasis.prop.ts +1 -1
- package/src/props/font-family.prop.ts +1 -1
- package/src/props/gap.props.ts +3 -3
- package/src/props/height.props.ts +3 -3
- package/src/props/layout.props.ts +22 -22
- package/src/props/leading-trim.prop.ts +1 -1
- package/src/props/margin.props.ts +7 -7
- package/src/props/padding.props.ts +7 -7
- package/src/props/shadow.props.ts +1 -1
- package/src/props/text-align.prop.ts +1 -1
- package/src/props/text-wrap.prop.ts +1 -1
- package/src/props/truncate.prop.ts +1 -1
- package/src/props/weight.prop.ts +1 -1
- package/src/props/width.props.ts +3 -3
- package/src/styles/scrollbar.css +3 -3
- package/src/styles/tokens/color.css +241 -235
- package/src/styles/tokens/constants.css +1 -1
- package/src/styles/tokens/cursor.css +1 -1
- package/src/styles/tokens/font-family.css +4 -4
- package/src/styles/tokens/radius.css +12 -12
- package/src/styles/tokens/shadow.css +28 -28
- package/src/styles/tokens/space.css +1 -1
- package/src/styles/tokens/typography.css +2 -2
- package/src/styles/utilities/align-content.css +8 -8
- package/src/styles/utilities/align-items.css +5 -5
- package/src/styles/utilities/align-self.css +5 -5
- package/src/styles/utilities/display.css +9 -9
- package/src/styles/utilities/flex-basis.css +6 -6
- package/src/styles/utilities/flex-direction.css +4 -4
- package/src/styles/utilities/flex-grow.css +9 -9
- package/src/styles/utilities/flex-shrink.css +9 -9
- package/src/styles/utilities/flex-wrap.css +3 -3
- package/src/styles/utilities/font-weight.css +3 -3
- package/src/styles/utilities/gap.css +60 -60
- package/src/styles/utilities/grid-area.css +6 -6
- package/src/styles/utilities/grid-auto-flow.css +5 -5
- package/src/styles/utilities/grid-column-end.css +16 -16
- package/src/styles/utilities/grid-column-start.css +16 -16
- package/src/styles/utilities/grid-column.css +16 -16
- package/src/styles/utilities/grid-row-end.css +16 -16
- package/src/styles/utilities/grid-row-start.css +16 -16
- package/src/styles/utilities/grid-row.css +16 -16
- package/src/styles/utilities/grid-template-areas.css +6 -6
- package/src/styles/utilities/grid-template-columns.css +16 -16
- package/src/styles/utilities/grid-template-rows.css +16 -16
- package/src/styles/utilities/height.css +6 -6
- package/src/styles/utilities/inset.css +130 -85
- package/src/styles/utilities/justify-content.css +4 -4
- package/src/styles/utilities/justify-items.css +5 -5
- package/src/styles/utilities/justify-self.css +5 -5
- package/src/styles/utilities/leading-trim.css +12 -12
- package/src/styles/utilities/margin.css +420 -420
- package/src/styles/utilities/max-height.css +6 -6
- package/src/styles/utilities/max-width.css +6 -6
- package/src/styles/utilities/min-height.css +6 -6
- package/src/styles/utilities/min-width.css +6 -6
- package/src/styles/utilities/overflow.css +15 -15
- package/src/styles/utilities/padding.css +140 -140
- package/src/styles/utilities/position.css +5 -5
- package/src/styles/utilities/resize.css +4 -4
- package/src/styles/utilities/table-layout.css +2 -2
- package/src/styles/utilities/text-align.css +3 -3
- package/src/styles/utilities/text-wrap.css +4 -4
- package/src/styles/utilities/truncate.css +1 -1
- package/src/styles/utilities/vertical-align.css +4 -4
- package/src/styles/utilities/width.css +6 -6
- package/styles.css +8937 -8648
- package/tokens/base.css +490 -482
- package/tokens.css +485 -477
- package/utilities.css +4909 -4639
- package/dist/esm/chunk-24CVW6P7.js +0 -2
- package/dist/esm/chunk-2FPJ6Q2N.js +0 -2
- package/dist/esm/chunk-2FPJ6Q2N.js.map +0 -7
- package/dist/esm/chunk-2KZ44I6T.js +0 -2
- package/dist/esm/chunk-2KZ44I6T.js.map +0 -7
- package/dist/esm/chunk-2WSD2H23.js +0 -2
- package/dist/esm/chunk-36GV4H3C.js +0 -2
- package/dist/esm/chunk-4ITIXBIP.js +0 -2
- package/dist/esm/chunk-4ITIXBIP.js.map +0 -7
- package/dist/esm/chunk-4YQXYWDQ.js +0 -2
- package/dist/esm/chunk-4YQXYWDQ.js.map +0 -7
- package/dist/esm/chunk-4ZAJVYU6.js +0 -2
- package/dist/esm/chunk-5B6JDZ3S.js +0 -2
- package/dist/esm/chunk-5P4JTWBK.js +0 -2
- package/dist/esm/chunk-5WLSAUNJ.js +0 -2
- package/dist/esm/chunk-6WANXT2G.js +0 -2
- package/dist/esm/chunk-6WANXT2G.js.map +0 -7
- package/dist/esm/chunk-72FU5FEC.js +0 -2
- package/dist/esm/chunk-7AXEPJYF.js +0 -2
- package/dist/esm/chunk-7AXEPJYF.js.map +0 -7
- package/dist/esm/chunk-7FPLWHMT.js +0 -2
- package/dist/esm/chunk-7FPLWHMT.js.map +0 -7
- package/dist/esm/chunk-7MPFZIZX.js +0 -2
- package/dist/esm/chunk-7OQXCYCW.js +0 -2
- package/dist/esm/chunk-7OQXCYCW.js.map +0 -7
- package/dist/esm/chunk-7QPXLSVR.js +0 -2
- package/dist/esm/chunk-7XWAXYZD.js +0 -2
- package/dist/esm/chunk-A2NG5NRN.js +0 -2
- package/dist/esm/chunk-AXUDFYLY.js +0 -2
- package/dist/esm/chunk-BHGES72S.js +0 -2
- package/dist/esm/chunk-BHGES72S.js.map +0 -7
- package/dist/esm/chunk-BQD7XS4K.js +0 -2
- package/dist/esm/chunk-BQD7XS4K.js.map +0 -7
- package/dist/esm/chunk-BZZXXZ3O.js +0 -2
- package/dist/esm/chunk-CTZ467AB.js +0 -2
- package/dist/esm/chunk-CTZ467AB.js.map +0 -7
- package/dist/esm/chunk-CYO6CRMQ.js +0 -2
- package/dist/esm/chunk-CYO6CRMQ.js.map +0 -7
- package/dist/esm/chunk-DDFONGSM.js +0 -2
- package/dist/esm/chunk-DL6F2TIU.js +0 -2
- package/dist/esm/chunk-DSV3XBHM.js +0 -2
- package/dist/esm/chunk-E4KCVRBQ.js +0 -2
- package/dist/esm/chunk-EDEYYJ3Q.js +0 -2
- package/dist/esm/chunk-EDEYYJ3Q.js.map +0 -7
- package/dist/esm/chunk-EDP2TJVB.js +0 -2
- package/dist/esm/chunk-EDP2TJVB.js.map +0 -7
- package/dist/esm/chunk-EE54S7YV.js +0 -10
- package/dist/esm/chunk-EE54S7YV.js.map +0 -7
- package/dist/esm/chunk-EGSMLRSO.js +0 -2
- package/dist/esm/chunk-ENPQJYXZ.js +0 -2
- package/dist/esm/chunk-ENPQJYXZ.js.map +0 -7
- package/dist/esm/chunk-ERGJN7FJ.js +0 -2
- package/dist/esm/chunk-ERGJN7FJ.js.map +0 -7
- package/dist/esm/chunk-FSMUCDLI.js +0 -2
- package/dist/esm/chunk-FSMUCDLI.js.map +0 -7
- package/dist/esm/chunk-G2CKYO2I.js +0 -2
- package/dist/esm/chunk-G46OLCM2.js +0 -2
- package/dist/esm/chunk-G46OLCM2.js.map +0 -7
- package/dist/esm/chunk-GOV5I7I2.js +0 -2
- package/dist/esm/chunk-GOV5I7I2.js.map +0 -7
- package/dist/esm/chunk-GWGQ73PU.js +0 -2
- package/dist/esm/chunk-GWGQ73PU.js.map +0 -7
- package/dist/esm/chunk-HAGKI7NA.js +0 -2
- package/dist/esm/chunk-HAGKI7NA.js.map +0 -7
- package/dist/esm/chunk-HCNO7PX6.js +0 -2
- package/dist/esm/chunk-HCNO7PX6.js.map +0 -7
- package/dist/esm/chunk-HELY5CSU.js +0 -2
- package/dist/esm/chunk-HELY5CSU.js.map +0 -7
- package/dist/esm/chunk-HGG3ULNK.js +0 -2
- package/dist/esm/chunk-IAC5IOPN.js +0 -2
- package/dist/esm/chunk-IQBSUN5B.js +0 -2
- package/dist/esm/chunk-IZPDJN6O.js +0 -2
- package/dist/esm/chunk-JMBCX5XR.js +0 -2
- package/dist/esm/chunk-JSW6J6RS.js +0 -2
- package/dist/esm/chunk-JSW6J6RS.js.map +0 -7
- package/dist/esm/chunk-K4BDLRCC.js +0 -2
- package/dist/esm/chunk-K53W3ELO.js +0 -2
- package/dist/esm/chunk-K53W3ELO.js.map +0 -7
- package/dist/esm/chunk-K6QKUX3C.js +0 -2
- package/dist/esm/chunk-K6WT5ZEA.js +0 -2
- package/dist/esm/chunk-K6WT5ZEA.js.map +0 -7
- package/dist/esm/chunk-K7VO7TND.js +0 -2
- package/dist/esm/chunk-KIYCILXL.js +0 -2
- package/dist/esm/chunk-KIYCILXL.js.map +0 -7
- package/dist/esm/chunk-KNQBAOMV.js +0 -2
- package/dist/esm/chunk-KRDRQU4G.js +0 -2
- package/dist/esm/chunk-KRZL245C.js +0 -2
- package/dist/esm/chunk-KRZL245C.js.map +0 -7
- package/dist/esm/chunk-LHYX53XA.js +0 -2
- package/dist/esm/chunk-LNFN35ZE.js +0 -2
- package/dist/esm/chunk-LPVDR7V3.js +0 -2
- package/dist/esm/chunk-LVCP5WGX.js +0 -2
- package/dist/esm/chunk-M4M4OZTS.js +0 -2
- package/dist/esm/chunk-MC3GY6ET.js +0 -2
- package/dist/esm/chunk-MKY2IRPO.js +0 -2
- package/dist/esm/chunk-MKY2IRPO.js.map +0 -7
- package/dist/esm/chunk-MQWH2IFO.js +0 -2
- package/dist/esm/chunk-MYO2E46Z.js +0 -2
- package/dist/esm/chunk-OA2BZDKL.js +0 -2
- package/dist/esm/chunk-P3WB3K2M.js +0 -2
- package/dist/esm/chunk-QQVA2PJ3.js +0 -2
- package/dist/esm/chunk-QQVA2PJ3.js.map +0 -7
- package/dist/esm/chunk-QWLKMVZY.js +0 -2
- package/dist/esm/chunk-QZ6OCMH4.js +0 -2
- package/dist/esm/chunk-QZ6OCMH4.js.map +0 -7
- package/dist/esm/chunk-R2FUNQTI.js +0 -2
- package/dist/esm/chunk-RBTTIDON.js.map +0 -7
- package/dist/esm/chunk-RDS3AJWW.js +0 -2
- package/dist/esm/chunk-SMGDH54W.js +0 -2
- package/dist/esm/chunk-SMGDH54W.js.map +0 -7
- package/dist/esm/chunk-SNR5VFWG.js +0 -2
- package/dist/esm/chunk-SNR5VFWG.js.map +0 -7
- package/dist/esm/chunk-T4L4QDBG.js +0 -2
- package/dist/esm/chunk-TCSPZ27B.js +0 -2
- package/dist/esm/chunk-TDQTMR5T.js +0 -2
- package/dist/esm/chunk-TKSG7KBZ.js +0 -2
- package/dist/esm/chunk-TTFUM47A.js +0 -2
- package/dist/esm/chunk-TTFUM47A.js.map +0 -7
- package/dist/esm/chunk-UEHCCJYY.js +0 -2
- package/dist/esm/chunk-UMIDPKFZ.js +0 -2
- package/dist/esm/chunk-UW5IJ64A.js +0 -5
- package/dist/esm/chunk-UW5IJ64A.js.map +0 -7
- package/dist/esm/chunk-VCU6VCPH.js +0 -2
- package/dist/esm/chunk-VJOJGAGA.js +0 -2
- package/dist/esm/chunk-VJOJGAGA.js.map +0 -7
- package/dist/esm/chunk-VNONKPH7.js +0 -2
- package/dist/esm/chunk-VNONKPH7.js.map +0 -7
- package/dist/esm/chunk-VOEZ5HJL.js +0 -2
- package/dist/esm/chunk-VX44UTQ5.js +0 -2
- package/dist/esm/chunk-VX44UTQ5.js.map +0 -7
- package/dist/esm/chunk-W7YHNMAO.js +0 -2
- package/dist/esm/chunk-WQT6UULR.js +0 -2
- package/dist/esm/chunk-WQT6UULR.js.map +0 -7
- package/dist/esm/chunk-WW7WTPM6.js +0 -2
- package/dist/esm/chunk-WW7WTPM6.js.map +0 -7
- package/dist/esm/chunk-WWF3IU3P.js +0 -2
- package/dist/esm/chunk-WYADYDPN.js +0 -2
- package/dist/esm/chunk-XEW4BRIL.js +0 -2
- package/dist/esm/chunk-YB7CENHH.js +0 -2
- package/dist/esm/chunk-YEIZ43KW.js +0 -2
- package/dist/esm/chunk-YEIZ43KW.js.map +0 -7
- package/dist/esm/chunk-ZCWDURKJ.js +0 -2
- package/dist/esm/chunk-ZE2KAVXW.js +0 -2
- /package/dist/esm/{chunk-PEP6MQJ2.js.map → chunk-3KQE2PSJ.js.map} +0 -0
- /package/dist/esm/{chunk-GBFGUOFS.js.map → chunk-BE7LMBBC.js.map} +0 -0
- /package/dist/esm/{chunk-QWLKMVZY.js.map → chunk-DFGY2NZB.js.map} +0 -0
- /package/dist/esm/{chunk-BPVVFHYD.js.map → chunk-H3IAGAEL.js.map} +0 -0
- /package/dist/esm/{chunk-72FU5FEC.js.map → chunk-VPSMETY2.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/dropdown-menu-drill-down.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport type { submenuBehaviors } from './base-menu.props.js';\n\ntype SubmenuBehavior = (typeof submenuBehaviors)[number];\n\n/*\n * Drill-down navigation for DropdownMenu.\n *\n * The stack of open submenus lives in a small external store rather than in\n * React state, so each part subscribes only to the slice it renders from:\n * a panel re-renders when it enters or leaves the stack, a Sub when its own\n * open state changes, and nothing else on the path re-renders on navigation.\n *\n * Only the levels on the stack mount their children, and only the top level\n * mounts its items (see `DrillDownLevelContext`). That keeps the Radix item\n * collection limited to what is on screen, so roving focus and typeahead\n * never land on a hidden item.\n */\n\ntype AnimationDirection = 'forward' | 'backward' | null;\ntype Modality = 'keyboard' | 'pointer';\n\ninterface StackEntry {\n id: string;\n /** Accessible name of the submenu, taken from its trigger text */\n name: string;\n /** Scroll position of the parent level when this entry was pushed */\n scrollTop: number;\n}\n\ntype LastChange =\n | { type: 'push'; id: string; modality: Modality | null }\n | { type: 'pop'; id: string; modality: Modality | null; scrollTop: number }\n | { type: 'reset' };\n\ninterface DrillDownState {\n stack: StackEntry[];\n direction: AnimationDirection;\n lastChange: LastChange | null;\n}\n\nconst INITIAL_STATE: DrillDownState = { stack: [], direction: null, lastChange: null };\n\nconst PANEL_ITEM_SELECTOR = '[role^=\"menuitem\"]:not([data-disabled])';\nconst BACK_ITEM_CLASS = 'kui-DropdownMenuDrillDownBackItem';\n\nfunction escapeAttributeValue(value: string) {\n return value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\nclass DrillDownStore {\n private state = INITIAL_STATE;\n private listeners = new Set<() => void>();\n private modality: Modality = 'keyboard';\n /** The drill-down root element, set by the provider */\n rootElement: HTMLElement | null = null;\n\n setRootElement = (element: HTMLElement | null) => {\n this.rootElement = element;\n };\n\n getState = () => this.state;\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(next: DrillDownState) {\n this.state = next;\n this.listeners.forEach((listener) => listener());\n }\n\n /** Records how the user is interacting, so focus can follow the same model as Radix. */\n setModality = (modality: Modality) => {\n this.modality = modality;\n };\n\n getModality = () => this.modality;\n\n getDepth = () => this.state.stack.length;\n\n isOpen = (id: string) => this.state.stack.some((entry) => entry.id === id);\n\n private getScrollContainer() {\n const root = this.rootElement;\n if (!root) return null;\n return (\n root.closest<HTMLElement>('.kui-ScrollAreaViewport') ??\n root.closest<HTMLElement>('.kui-BaseMenuViewport')\n );\n }\n\n private getTrigger(id: string) {\n return this.rootElement?.querySelector<HTMLElement>(\n `[data-drill-down-trigger=\"${escapeAttributeValue(id)}\"]`,\n );\n }\n\n /**\n * Opens a submenu. `modality` decides where focus goes: the first item for\n * keyboard, the menu for pointer, and nowhere for a programmatic open\n * (`null`) unless focus was lost.\n */\n push = (id: string, modality: Modality | null = this.modality) => {\n const { stack } = this.state;\n if (stack.some((entry) => entry.id === id)) return;\n const trigger = this.getTrigger(id);\n const name = (trigger?.dataset.drillDownName ?? trigger?.textContent ?? '').trim();\n const scrollTop = this.getScrollContainer()?.scrollTop ?? 0;\n this.setState({\n stack: [...stack, { id, name, scrollTop }],\n direction: 'forward',\n lastChange: { type: 'push', id, modality },\n });\n };\n\n pop = (modality: Modality = this.modality) => {\n const { stack } = this.state;\n const top = stack[stack.length - 1];\n if (!top) return;\n this.setState({\n stack: stack.slice(0, -1),\n direction: 'backward',\n lastChange: { type: 'pop', id: top.id, modality, scrollTop: top.scrollTop },\n });\n };\n\n /** Closes a submenu and everything opened from it, without moving focus to its trigger. */\n close = (id: string) => {\n const { stack } = this.state;\n const index = stack.findIndex((entry) => entry.id === id);\n if (index === -1) return;\n this.setState({\n stack: stack.slice(0, index),\n direction: 'backward',\n lastChange: { type: 'pop', id, modality: null, scrollTop: stack[index].scrollTop },\n });\n };\n\n reset = () => {\n if (this.state.stack.length === 0 && this.state.direction === null) return;\n this.setState({ stack: [], direction: null, lastChange: { type: 'reset' } });\n };\n\n /**\n * Moves focus and scroll after a navigation step has been committed. Runs in\n * a layout effect, so the new level is already in the DOM and nothing paints\n * with focus on `<body>` or at the old scroll position.\n */\n applyLastChange() {\n const change = this.state.lastChange;\n const root = this.rootElement;\n if (!change || !root) return;\n this.state = { ...this.state, lastChange: null };\n\n const content = root.closest<HTMLElement>('[role=\"menu\"]');\n const scroller = this.getScrollContainer();\n const focus = (element: HTMLElement | null | undefined) => element?.focus({ preventScroll: true });\n\n if (change.type === 'push') {\n if (scroller) scroller.scrollTop = 0;\n const panel = root.querySelector<HTMLElement>(\n `[data-drill-down-panel=\"${escapeAttributeValue(change.id)}\"]`,\n );\n if (change.modality === 'keyboard') {\n // Land on the first real option; the back row stays one ArrowUp away.\n const items = panel ? Array.from(panel.querySelectorAll<HTMLElement>(PANEL_ITEM_SELECTOR)) : [];\n focus(items.find((item) => !item.classList.contains(BACK_ITEM_CLASS)) ?? items[0] ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n // Match Radix: pointer users get focus on the menu, not a highlighted item.\n focus(content);\n }\n return;\n }\n\n if (change.type === 'pop') {\n if (scroller) scroller.scrollTop = change.scrollTop;\n const trigger = this.getTrigger(change.id);\n if (change.modality === 'keyboard') {\n focus(trigger ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n focus(content);\n }\n return;\n }\n\n if (scroller) scroller.scrollTop = 0;\n }\n}\n\nconst DrillDownStoreContext = React.createContext<DrillDownStore | null>(null);\n\n/**\n * Whether the items of the current level are on screen. The root level and\n * every panel provide it; menu parts render nothing when it is false.\n */\nconst DrillDownLevelContext = React.createContext(true);\n\nfunction useDrillDownStore() {\n return React.useContext(DrillDownStoreContext);\n}\n\nfunction useCreateDrillDownStore() {\n const [store] = React.useState(() => new DrillDownStore());\n return store;\n}\n\nconst selectDepth = (state: DrillDownState) => state.stack.length;\nconst selectDirection = (state: DrillDownState) => state.direction;\nconst getServerDepth = () => 0;\nconst getServerDirection = (): AnimationDirection => null;\n\ninterface DrillDownRootProps {\n store: DrillDownStore;\n behavior: SubmenuBehavior;\n /** Open state of the menu; the stack resets every time the menu opens */\n open: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Provides the drill-down store and renders the root level. The wrapper is\n * the same element in both behaviors, so crossing a breakpoint that switches\n * between cascade and drill-down does not remount the items.\n */\nfunction DrillDownRoot({ store, behavior, open, children }: DrillDownRootProps) {\n const isDrillDown = behavior === 'drill-down';\n const depth = React.useSyncExternalStore(\n store.subscribe,\n () => selectDepth(store.getState()),\n getServerDepth,\n );\n const direction = React.useSyncExternalStore(\n store.subscribe,\n () => selectDirection(store.getState()),\n getServerDirection,\n );\n const isRoot = !isDrillDown || depth === 0;\n\n // Cascade mode has no stack. A reset while switching modes keeps the next\n // switch back to drill-down from resuming a stale level.\n React.useLayoutEffect(() => {\n if (!isDrillDown) store.reset();\n }, [isDrillDown, store]);\n\n // Start every opening at the root. Content usually remounts on open anyway;\n // this covers `forceMount`. Resetting on open rather than on close keeps the\n // closing animation on the level the user was looking at.\n const wasOpenRef = React.useRef(open);\n React.useLayoutEffect(() => {\n if (open && !wasOpenRef.current) store.reset();\n wasOpenRef.current = open;\n }, [open, store]);\n\n // Focus and scroll follow each navigation step once it is in the DOM.\n React.useLayoutEffect(() => {\n store.applyLastChange();\n }, [depth, store]);\n\n const rootRef = React.useCallback((element: HTMLDivElement | null) => store.setRootElement(element), [store]);\n const handleKeyDownCapture = React.useCallback(() => store.setModality('keyboard'), [store]);\n const handlePointerDownCapture = React.useCallback(() => store.setModality('pointer'), [store]);\n\n return (\n <DrillDownStoreContext.Provider value={isDrillDown ? store : null}>\n {/* Event capture only records the input modality; it does not handle interaction. */}\n <div\n ref={rootRef}\n className=\"kui-DropdownMenuDrillDownRoot\"\n data-submenu-behavior={behavior}\n data-drill-down-active={isRoot ? undefined : true}\n data-animation-direction={isDrillDown ? (direction ?? undefined) : undefined}\n onKeyDownCapture={isDrillDown ? handleKeyDownCapture : undefined}\n onPointerDownCapture={isDrillDown ? handlePointerDownCapture : undefined}\n >\n <DrillDownLevelContext.Provider value={isRoot}>{children}</DrillDownLevelContext.Provider>\n </div>\n </DrillDownStoreContext.Provider>\n );\n}\n\n/** Where a submenu sits in the stack: not open, open under another level, or on top. */\ntype PanelPosition = 'closed' | 'open' | 'top';\n\nfunction usePanelPosition(store: DrillDownStore | null, id: string): PanelPosition {\n const getSnapshot = React.useCallback((): PanelPosition => {\n if (!store) return 'closed';\n const { stack } = store.getState();\n if (stack.length > 0 && stack[stack.length - 1].id === id) return 'top';\n return stack.some((entry) => entry.id === id) ? 'open' : 'closed';\n }, [store, id]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getClosed);\n}\n\nfunction useStackEntry(store: DrillDownStore | null, id: string): StackEntry | undefined {\n const getSnapshot = React.useCallback(\n () => store?.getState().stack.find((entry) => entry.id === id),\n [store, id],\n );\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getUndefined);\n}\n\nfunction useDrillDownDirection(store: DrillDownStore | null): AnimationDirection {\n const getSnapshot = React.useCallback(() => store?.getState().direction ?? null, [store]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getServerDirection);\n}\n\nconst noopSubscribe = () => () => {};\nconst getClosed = (): PanelPosition => 'closed';\nconst getUndefined = () => undefined;\n\n// ============================================================================\n// Sub Context (for individual submenu instances)\n// ============================================================================\n\ninterface SubContextValue {\n /** Unique ID for this submenu */\n id: string;\n /** Label for the back button */\n label: React.ReactNode;\n}\n\nconst SubContext = React.createContext<SubContextValue | null>(null);\n\nfunction useSubContext() {\n return React.useContext(SubContext);\n}\n\nexport {\n DrillDownRoot,\n DrillDownLevelContext,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownStore,\n useDrillDownDirection,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n};\n\nexport type { SubmenuBehavior, DrillDownStore, PanelPosition, SubContextValue, AnimationDirection };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "INITIAL_STATE", "PANEL_ITEM_SELECTOR", "BACK_ITEM_CLASS", "escapeAttributeValue", "value", "DrillDownStore", "__publicField", "element", "listener", "modality", "id", "entry", "stack", "trigger", "name", "scrollTop", "top", "index", "next", "root", "change", "content", "scroller", "focus", "panel", "items", "item", "DrillDownStoreContext", "DrillDownLevelContext", "useDrillDownStore", "useCreateDrillDownStore", "store", "selectDepth", "state", "selectDirection", "getServerDepth", "getServerDirection", "DrillDownRoot", "behavior", "open", "children", "isDrillDown", "depth", "direction", "isRoot", "wasOpenRef", "rootRef", "handleKeyDownCapture", "handlePointerDownCapture", "usePanelPosition", "getSnapshot", "noopSubscribe", "getClosed", "useStackEntry", "getUndefined", "useDrillDownDirection", "SubContext", "useSubContext"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-KEWNXANF.js";import{a as s}from"./chunk-SBRPXQWH.js";import{a as p}from"./chunk-SJXV4BWZ.js";import{a as t}from"./chunk-N6KH2EOU.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{d as r}from"./chunk-CUNKWFKA.js";var i=["1","2","3","4","5","6","7","8","9"],n=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"kui-r-size",values:i,responsive:!0},...t,...o,...p,...s,underline:{type:"enum",className:"kui-underline",values:n,default:"auto"},...r};export{D as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3BUQ7ADW.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/link.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\nconst underline = ['auto', 'always', 'hover', 'none'] as const;\n\nconst linkPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: '
|
|
5
|
-
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACpDC,EAAY,CAAC,OAAQ,SAAU,QAAS,MAAM,EAE9CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,
|
|
4
|
+
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\nconst underline = ['auto', 'always', 'hover', 'none'] as const;\n\nconst linkPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'kui-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n underline: { type: 'enum', className: 'kui-underline', values: underline, default: 'auto' },\n ...accentColorPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n underline: PropDef<(typeof underline)[number]>;\n};\n\nexport { linkPropDefs };\n"],
|
|
5
|
+
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACpDC,EAAY,CAAC,OAAQ,SAAU,QAAS,MAAM,EAE9CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,aACX,OAAQH,EACR,WAAY,EACd,EACA,GAAGI,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,UAAW,CAAE,KAAM,OAAQ,UAAW,gBAAiB,OAAQN,EAAW,QAAS,MAAO,EAC1F,GAAGO,CACL",
|
|
6
6
|
"names": ["sizes", "underline", "linkPropDefs", "asChildPropDef", "weightPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "accentColorPropDef"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as oe}from"./chunk-BEP4AH5V.js";import{b as J,c as Q,d as G,e as Z,f as ee}from"./chunk-IX5HIHVI.js";import{a as $}from"./chunk-MJJ7XDIP.js";import{b as X,c as O}from"./chunk-PPZY7PJA.js";import{c as N}from"./chunk-3KQE2PSJ.js";import{a as B}from"./chunk-R4XJNQX5.js";import{e as K}from"./chunk-3YLYGKFB.js";import{b as v,c as k,d as W,e as V,f as A}from"./chunk-3XHTJZNP.js";import{b as y,c as F,d as S,e as T}from"./chunk-KZEZDBE7.js";import{a as h}from"./chunk-ELAW7ZUG.js";import{a as f,b as I,c as j,d as H,e as x,f as U,g as Y,h as q,i as E}from"./chunk-2E4P5XQL.js";import{a as he}from"./chunk-OS3FCYZY.js";var Ne={};he(Ne,{CheckboxItem:()=>me,Content:()=>ue,Group:()=>de,Item:()=>se,Label:()=>pe,RadioGroup:()=>le,RadioItem:()=>ce,Root:()=>te,Separator:()=>Me,Sub:()=>we,SubContent:()=>fe,SubTrigger:()=>De,Trigger:()=>ie,TriggerIcon:()=>Ce,Virtual:()=>oe});import*as e from"react";import s from"classnames";import{DropdownMenu as p,Slot as ke}from"radix-ui";import{useCallbackRef as ne}from"radix-ui/internal";var re=e.createContext(!1),te=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:a}=o,[i,t]=e.useState(r),u=n??i,d=ne(a),l=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(re.Provider,{value:u},e.createElement(p.Root,{...o,onOpenChange:l}))};te.displayName="DropdownMenu.Root";var ie=e.forwardRef(({children:o,...n},r)=>e.createElement(p.Trigger,{...n,ref:r,asChild:!0},$(o)));ie.displayName="DropdownMenu.Trigger";var L=e.createContext({}),ye={ltr:"ArrowLeft",rtl:"ArrowRight"},Se={ltr:"ArrowRight",rtl:"ArrowLeft"};function Te(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function ae(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var ue=e.forwardRef((o,n)=>{let r=K(o,v.size),a=X(),{size:i=v.size.default}=r,{className:t,children:u,color:d,container:l,forceMount:m,submenuBehavior:w,virtualized:c=!1,onEscapeKeyDown:R,onKeyDown:C,...P}=h(r,v),D=d||a.accentColor,g=y(w,"cascade"),z=g==="drill-down",ge=e.useContext(re),b=j(),be=M=>{R?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(M.preventDefault(),b.pop("keyboard"))},Ie=M=>{C?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(Te(M.target)||M.key===ye[ae(M.currentTarget)]&&(M.preventDefault(),b.pop("keyboard")))},ve=e.useMemo(()=>({size:i,color:D}),[i,D]),_=e.createElement(N,{size:i},e.createElement(L.Provider,{value:ve},e.createElement(H,{store:b,behavior:g,open:ge},u)));return e.createElement(p.Portal,{container:l,forceMount:m},e.createElement(O,{asChild:!0},e.createElement(p.Content,{"data-accent-color":D,align:"start",sideOffset:4,collisionPadding:10,...P,onEscapeKeyDown:be,onKeyDown:Ie,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",t)},c?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},_):e.createElement(B,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport")},_)))))});ue.displayName="DropdownMenu.Content";var pe=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(p.Label,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null);pe.displayName="DropdownMenu.Label";var se=e.forwardRef((o,n)=>{let{className:r,children:a,color:i=W.color.default,shortcut:t,...u}=o;return e.useContext(f)?e.createElement(p.Item,{"data-accent-color":i,"aria-keyshortcuts":t?S(t):void 0,...u,ref:n,className:s("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",r)},e.createElement(ke.Slottable,null,a),t&&e.createElement(T,{shortcut:t,className:"kui-DropdownMenuShortcut"})):null});se.displayName="DropdownMenu.Item";var de=e.forwardRef(({className:o,...n},r)=>e.createElement(p.Group,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}));de.displayName="DropdownMenu.Group";var le=e.forwardRef(({className:o,...n},r)=>e.createElement(p.RadioGroup,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}));le.displayName="DropdownMenu.RadioGroup";var ce=e.forwardRef((o,n)=>{let{children:r,className:a,color:i=A.color.default,...t}=o;return e.useContext(f)?e.createElement(p.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":i,className:s("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",a)},r,e.createElement(p.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(ee,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});ce.displayName="DropdownMenu.RadioItem";var me=e.forwardRef((o,n)=>{let{children:r,className:a,shortcut:i,color:t=V.color.default,...u}=o;return e.useContext(f)?e.createElement(p.CheckboxItem,{"aria-keyshortcuts":i?S(i):void 0,...u,asChild:!1,ref:n,"data-accent-color":t,className:s("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",a)},r,e.createElement(p.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(J,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(T,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});me.displayName="DropdownMenu.CheckboxItem";var we=({label:o="Back",open:n,defaultOpen:r,onOpenChange:a,children:i})=>{let t=I(),u=e.useId(),d=e.useMemo(()=>({id:u,label:o}),[u,o]),l=x(t,u)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(u)?t.push(u,null):!n&&t.isOpen(u)&&t.close(u))},[t,n,u]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(u,null)},[]);let w=ne(a),c=e.useRef(l);return e.useEffect(()=>{!t||c.current===l||(c.current=l,w(l))},[t,l,w]),e.createElement(q.Provider,{value:d},e.createElement(p.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:a},i))};we.displayName="DropdownMenu.Sub";var De=e.forwardRef((o,n)=>{let{className:r,children:a,onKeyDown:i,...t}=o,u=I(),d=E(),l=e.useContext(f);if(u&&d){if(!l)return null;let m=c=>{c.preventDefault(),u.push(d.id)},w=c=>{i?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Se[ae(c.currentTarget)]&&(c.preventDefault(),u.push(d.id,"keyboard"))};return e.createElement(p.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:s("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(G,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(p.SubTrigger,{...t,onKeyDown:i,asChild:!1,ref:n,className:s("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(G,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});De.displayName="DropdownMenu.SubTrigger";var Me=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(p.Separator,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);Me.displayName="DropdownMenu.Separator";function xe({label:o,name:n}){let r=I(),a=e.useCallback(u=>{u.preventDefault(),r?.pop()},[r]),i=typeof o=="string"?o:n,t=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(p.Item,{"aria-label":t,textValue:i||"Back",onSelect:a,className:s("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(Z,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Ee(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:t,sideOffset:u,alignOffset:d,avoidCollisions:l,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:P,...D}=o;return D}var fe=e.forwardRef((o,n)=>{let r=I(),a=E();return r&&a?e.createElement(Re,{...o,ref:n,store:r,sub:a}):e.createElement(Pe,{...o,ref:n})});fe.displayName="DropdownMenu.SubContent";var Pe=e.forwardRef((o,n)=>{let r=e.useContext(L),a=o.size??r.size,i=o.color??r.color,{className:t,children:u,container:d,forceMount:l,color:m,virtualized:w=!1,...c}=h({...o,size:a},k),R=y(a,k.size.default),C=e.useMemo(()=>({size:a,color:i}),[a,i]),P=e.createElement(N,{size:a},e.createElement(L.Provider,{value:C},u));return e.createElement(p.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(p.SubContent,{"data-accent-color":i,alignOffset:F(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",t)},w?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},P):e.createElement(B,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport")},P)))))});Pe.displayName="DropdownMenu.CascadeSubContent";var Re=e.forwardRef(({store:o,sub:n,...r},a)=>{let i=x(o,n.id),t=U(o,n.id),u=Y(i==="top"?o:null);if(i==="closed")return null;let{className:d,children:l,container:m,forceMount:w,virtualized:c,size:R,color:C,...P}=Ee(r),D=i==="top",g=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":g||void 0,...P,ref:a,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?u??void 0:void 0,className:s("kui-DropdownMenuDrillDownPanel",d)},D&&e.createElement(e.Fragment,null,e.createElement(xe,{label:n.label,name:g}),e.createElement(p.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(f.Provider,{value:D},l))});Re.displayName="DropdownMenu.DrillDownPanel";var Ce=e.forwardRef(({className:o,...n},r)=>e.createElement(Q,{...n,ref:r,className:s("kui-DropdownMenuTriggerIcon",o)}));Ce.displayName="DropdownMenu.TriggerIcon";export{te as a,ie as b,ue as c,pe as d,se as e,de as f,le as g,ce as h,me as i,we as j,De as k,Me as l,fe as m,Ce as n,Ne as o};
|
|
2
|
+
//# sourceMappingURL=chunk-3JA7SJDT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/dropdown-menu.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\nimport { useCallbackRef } from 'radix-ui/internal';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport {\n DrillDownLevelContext,\n DrillDownRoot,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownDirection,\n useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\n\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\n/**\n * Open state of the menu, mirrored from Root so Content can reset drill-down\n * navigation when a force-mounted menu opens again.\n */\nconst DropdownMenuOpenContext = React.createContext(false);\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {\n const { open: openProp, defaultOpen = false, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = openProp ?? uncontrolledOpen;\n\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n handleOpenChangeProp(next);\n },\n [handleOpenChangeProp],\n );\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <DropdownMenuPrimitive.Root {...props} onOpenChange={handleOpenChange} />\n </DropdownMenuOpenContext.Provider>\n );\n};\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;\n\ntype DropdownMenuContentContextValue = {\n size?: DropdownMenuSurfaceProps['size'];\n color?: DropdownMenuSurfaceProps['color'];\n};\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\n\n/** Keys that navigate back one drill-down level, by writing direction. */\nconst BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;\nconst FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;\n\nfunction isTextEntryTarget(target: EventTarget | null) {\n return (\n target instanceof HTMLElement &&\n (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')\n );\n}\n\nfunction getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {\n return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';\n}\n\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, dropdownMenuContentPropDefs.size);\n const themeContext = useThemeContext();\n const {\n size = dropdownMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior,\n virtualized = false,\n onEscapeKeyDown,\n onKeyDown,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');\n const isDrillDown = behavior === 'drill-down';\n const open = React.useContext(DropdownMenuOpenContext);\n const drillDownStore = useCreateDrillDownStore();\n\n // Escape goes back one drill-down level before it closes the menu.\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n onEscapeKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n event.preventDefault();\n drillDownStore.pop('keyboard');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n if (isTextEntryTarget(event.target)) return;\n if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.pop('keyboard');\n }\n };\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>\n <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>\n {children}\n </DrillDownRoot>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n onEscapeKeyDown={handleEscapeKeyDown}\n onKeyDown={handleKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-DropdownMenuLabel', className)}\n />\n );\n },\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n // In drill-down mode, items of levels that are not on screen do not mount.\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-DropdownMenuGroup', className)}\n />\n ),\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-DropdownMenuRadioGroup', className)}\n />\n));\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuRadioItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuRadioItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuCheckboxItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuCheckboxItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({\n label = 'Back',\n open,\n defaultOpen,\n onOpenChange,\n children,\n}) => {\n const drillDownStore = useDrillDownStore();\n const id = React.useId();\n const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);\n const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';\n\n // Drill-down: `open` and `defaultOpen` drive the stack; the stack drives\n // `onOpenChange`. A controlled `open` is applied when it changes.\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.push(id, null);\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id);\n }, [drillDownStore, open, id]);\n\n const defaultOpenRef = React.useRef(defaultOpen);\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current && open === undefined) drillDownStore.push(id, null);\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpenChange = useCallbackRef(onOpenChange);\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange]);\n\n // Radix Sub stays mounted in both behaviors so switching behavior does not\n // remount the subtree. It only renders context; in drill-down its trigger\n // and content are never rendered, so it reports no open changes of its own.\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={drillDownStore ? undefined : onOpenChange}\n >\n {children}\n </DropdownMenuPrimitive.Sub>\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onKeyDown, ...subTriggerProps } = props;\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n\n if (drillDownStore && subContext) {\n if (!isLevelVisible) return null;\n\n const handleSelect = (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore.push(subContext.id);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || subTriggerProps.disabled) return;\n if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.push(subContext.id, 'keyboard');\n }\n };\n\n return (\n <DropdownMenuPrimitive.Item\n aria-haspopup=\"menu\"\n {...subTriggerProps}\n data-drill-down-trigger={subContext.id}\n data-drill-down-name={subTriggerProps.textValue}\n onSelect={handleSelect}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n 'kui-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.Item>\n );\n }\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onKeyDown={onKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-DropdownMenuSeparator', className)}\n />\n );\n});\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/** The row at the top of a drill-down panel that returns to the parent level. */\nfunction DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {\n const drillDownStore = useDrillDownStore();\n\n const handleSelect = React.useCallback(\n (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore?.pop();\n },\n [drillDownStore],\n );\n\n // The visible label is often the submenu title, so the accessible name says\n // what the row does while still containing the visible text.\n const labelText = typeof label === 'string' ? label : name;\n const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;\n\n return (\n <DropdownMenuPrimitive.Item\n aria-label={ariaLabel}\n textValue={labelText || 'Back'}\n onSelect={handleSelect}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon\" />\n <span className=\"kui-DropdownMenuDrillDownBackLabel\">{label}</span>\n </DropdownMenuPrimitive.Item>\n );\n}\n\n/** Radix positioning and layer props that have no meaning for an inline drill-down panel. */\ntype PopperOnlyProps =\n | 'loop'\n | 'onEscapeKeyDown'\n | 'onPointerDownOutside'\n | 'onFocusOutside'\n | 'onInteractOutside'\n | 'sideOffset'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'updatePositionStrategy';\n\nfunction omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {\n const {\n loop: _loop,\n onEscapeKeyDown: _onEscapeKeyDown,\n onPointerDownOutside: _onPointerDownOutside,\n onFocusOutside: _onFocusOutside,\n onInteractOutside: _onInteractOutside,\n sideOffset: _sideOffset,\n alignOffset: _alignOffset,\n avoidCollisions: _avoidCollisions,\n collisionBoundary: _collisionBoundary,\n collisionPadding: _collisionPadding,\n arrowPadding: _arrowPadding,\n sticky: _sticky,\n hideWhenDetached: _hideWhenDetached,\n updatePositionStrategy: _updatePositionStrategy,\n ...rest\n } = props;\n return rest;\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own\n * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the\n * root content.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n\n if (drillDownStore && subContext) {\n return (\n <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />\n );\n }\n return <CascadeSubContent {...props} ref={forwardedRef} />;\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\nconst CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(\n (props, forwardedRef) => {\n const parent = React.useContext(DropdownMenuContentContext);\n\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const color = props.color ?? parent.color;\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n alignOffset={getMenuAlignOffset(scalarSize)}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-BaseMenuSubContent',\n 'kui-DropdownMenuContent',\n 'kui-DropdownMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nCascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';\n\ninterface DrillDownPanelProps extends DropdownMenuSubContentProps {\n store: NonNullable<ReturnType<typeof useDrillDownStore>>;\n sub: NonNullable<ReturnType<typeof useSubContext>>;\n}\n\n/**\n * A submenu rendered inline in drill-down mode. It mounts its children only\n * while it is on the navigation stack, and shows its own items only while it\n * is the top level; deeper panels inside it stay mounted.\n */\nconst DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(\n ({ store, sub, ...props }, forwardedRef) => {\n const position = usePanelPosition(store, sub.id);\n const entry = useStackEntry(store, sub.id);\n const direction = useDrillDownDirection(position === 'top' ? store : null);\n\n if (position === 'closed') return null;\n\n const {\n className,\n children,\n container: _container,\n forceMount: _forceMount,\n virtualized: _virtualized,\n size: _size,\n color: _color,\n ...panelProps\n } = omitPopperProps(props);\n\n const isTop = position === 'top';\n const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');\n\n return (\n <div\n role=\"group\"\n aria-label={name || undefined}\n {...panelProps}\n ref={forwardedRef}\n data-drill-down-panel={sub.id}\n data-drill-down-active={isTop ? true : undefined}\n data-animation-direction={isTop ? (direction ?? undefined) : undefined}\n className={classNames('kui-DropdownMenuDrillDownPanel', className)}\n >\n {isTop && (\n <>\n <DrillDownBackItem label={sub.label} name={name} />\n <DropdownMenuPrimitive.Separator className=\"kui-BaseMenuSeparator kui-DropdownMenuSeparator\" />\n </>\n )}\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </div>\n );\n },\n);\nDrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>(({ className, ...props }, forwardedRef) => (\n <ChevronDownIcon\n {...props}\n ref={forwardedRef}\n className={classNames('kui-DropdownMenuTriggerIcon', className)}\n />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n VirtualMenu as Virtual,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "VirtualMenu", "React", "classNames", "DropdownMenuPrimitive", "Slot", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DropdownMenuContentContext", "BACK_KEYS", "FORWARD_KEYS", "isTextEntryTarget", "target", "getDirection", "element", "DropdownMenuContent", "ownProps", "useThemeSizeProps", "baseMenuContentPropDefs", "themeContext", "useThemeContext", "size", "className", "color", "container", "forceMount", "submenuBehavior", "virtualized", "onEscapeKeyDown", "onKeyDown", "contentProps", "extractProps", "resolvedColor", "behavior", "useResolvedResponsiveValue", "isDrillDown", "drillDownStore", "useCreateDrillDownStore", "handleEscapeKeyDown", "event", "handleKeyDown", "contextValue", "contentBody", "MenuProvider", "DrillDownRoot", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DrillDownLevelContext", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "id", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "isLevelVisible", "handleSelect", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "name", "labelText", "ariaLabel", "ThickChevronLeftIcon", "omitPopperProps", "_loop", "_onEscapeKeyDown", "_onPointerDownOutside", "_onFocusOutside", "_onInteractOutside", "_sideOffset", "_alignOffset", "_avoidCollisions", "_collisionBoundary", "_collisionPadding", "_arrowPadding", "_sticky", "_hideWhenDetached", "_updatePositionStrategy", "rest", "DropdownMenuSubContent", "DrillDownPanel", "CascadeSubContent", "parent", "_color", "subContentProps", "baseMenuSubContentPropDefs", "scalarSize", "body", "getMenuAlignOffset", "store", "sub", "position", "entry", "useStackEntry", "direction", "useDrillDownDirection", "_container", "_forceMount", "_virtualized", "_size", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as i}from"./chunk-KZEZDBE7.js";import*as e from"react";var u=e.createContext({isInsideMenu:!1}),c={1:24,2:30,3:34,4:38};function d(t){return c[t]}function M({children:t,size:r}){let n=i(r,void 0),o=n?d(n):void 0,s=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:o}),[n,o]);return e.createElement(u.Provider,{value:s},t)}function a(){return e.useContext(u)}export{c as a,d as b,M as c,a as d};
|
|
2
|
+
//# sourceMappingURL=chunk-3KQE2PSJ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as o}from"./chunk-CUNKWFKA.js";var e=["horizontal","vertical"],t={orientation:{type:"enum",className:"kui-r-orientation",values:e,default:"horizontal",responsive:!0},color:{...o.color,default:"gray"},decorative:{type:"boolean",default:!0},light:{type:"boolean",className:"kui-light",default:!1}};export{t as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3QZBWH2A.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/separator.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst orientationValues = ['horizontal', 'vertical'] as const;\n\nconst separatorPropDefs = {\n orientation: {\n type: 'enum',\n className: 'kui-r-orientation',\n values: orientationValues,\n default: 'horizontal',\n responsive: true,\n },\n color: { ...colorPropDef.color, default: 'gray' },\n decorative: { type: 'boolean', default: true },\n light: { type: 'boolean', className: 'kui-light', default: false },\n} satisfies {\n orientation: PropDef<(typeof orientationValues)[number]>;\n color: typeof colorPropDef.color;\n decorative: PropDef<boolean>;\n light: PropDef<boolean>;\n};\n\nexport { separatorPropDefs };\n"],
|
|
5
|
+
"mappings": "wCAIA,IAAMA,EAAoB,CAAC,aAAc,UAAU,EAE7CC,EAAoB,CACxB,YAAa,CACX,KAAM,OACN,UAAW,oBACX,OAAQD,EACR,QAAS,aACT,WAAY,EACd,EACA,MAAO,CAAE,GAAGE,EAAa,MAAO,QAAS,MAAO,EAChD,WAAY,CAAE,KAAM,UAAW,QAAS,EAAK,EAC7C,MAAO,CAAE,KAAM,UAAW,UAAW,YAAa,QAAS,EAAM,CACnE",
|
|
6
|
+
"names": ["orientationValues", "separatorPropDefs", "colorPropDef"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as s}from"./chunk-NZJGC6ZW.js";import{c as e}from"./chunk-CUNKWFKA.js";var t=["1","2","3","4"],r=["cascade","drill-down"],o={size:{type:"enum",className:"kui-r-size",values:t,default:"2",responsive:!0},...e},p={...o,submenuBehavior:{type:"enum",values:r,default:"cascade",responsive:!0}},u=o,a={...s,...e,shortcut:{type:"string"}},f={...e,shortcut:{type:"string"}},c={...e};export{r as a,p as b,u as c,a as d,f as e,c as f};
|
|
2
|
+
//# sourceMappingURL=chunk-3XHTJZNP.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/base-menu.props.ts"],
|
|
4
|
+
"sourcesContent": ["import { asChildPropDef } from '../../props/as-child.prop.js';\nimport { colorPropDef } from '../../props/color.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst contentSizes = ['1', '2', '3', '4'] as const;\nconst submenuBehaviors = ['cascade', 'drill-down'] as const;\n\n// Base props shared between Content and SubContent\nconst baseMenuSharedPropDefs = {\n size: {\n type: 'enum',\n className: 'kui-r-size',\n values: contentSizes,\n default: '2',\n responsive: true,\n },\n ...colorPropDef,\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n};\n\n// Content-specific props (includes submenuBehavior)\nconst baseMenuContentPropDefs = {\n ...baseMenuSharedPropDefs,\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior: {\n type: 'enum',\n values: submenuBehaviors,\n default: 'cascade',\n responsive: true,\n },\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n submenuBehavior: PropDef<(typeof submenuBehaviors)[number]>;\n};\n\n// SubContent props (no submenuBehavior)\nconst baseMenuSubContentPropDefs = baseMenuSharedPropDefs;\n\nconst baseMenuItemPropDefs = {\n ...asChildPropDef,\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuCheckboxItemPropDefs = {\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuRadioItemPropDefs = {\n ...colorPropDef,\n};\n\nexport {\n baseMenuContentPropDefs,\n baseMenuSubContentPropDefs,\n baseMenuItemPropDefs,\n baseMenuCheckboxItemPropDefs,\n baseMenuRadioItemPropDefs,\n submenuBehaviors,\n};\n"],
|
|
5
|
+
"mappings": "gFAKA,IAAMA,EAAe,CAAC,IAAK,IAAK,IAAK,GAAG,EAClCC,EAAmB,CAAC,UAAW,YAAY,EAG3CC,EAAyB,CAC7B,KAAM,CACJ,KAAM,OACN,UAAW,aACX,OAAQF,EACR,QAAS,IACT,WAAY,EACd,EACA,GAAGG,CACL,EAKMC,EAA0B,CAC9B,GAAGF,EAOH,gBAAiB,CACf,KAAM,OACN,OAAQD,EACR,QAAS,UACT,WAAY,EACd,CACF,EAMMI,EAA6BH,EAE7BI,EAAuB,CAC3B,GAAGC,EACH,GAAGJ,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMK,EAA+B,CACnC,GAAGL,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMM,EAA4B,CAChC,GAAGN,CACL",
|
|
6
|
+
"names": ["contentSizes", "submenuBehaviors", "baseMenuSharedPropDefs", "colorPropDef", "baseMenuContentPropDefs", "baseMenuSubContentPropDefs", "baseMenuItemPropDefs", "asChildPropDef", "baseMenuCheckboxItemPropDefs", "baseMenuRadioItemPropDefs"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as k}from"./chunk-A3YQIJDA.js";import{a as T}from"./chunk-BJUCBOGU.js";import{a as x}from"./chunk-AGAQC4HH.js";import{e as D}from"./chunk-3YLYGKFB.js";import{a as E}from"./chunk-BWLCTTTN.js";import{a as N}from"./chunk-ELAW7ZUG.js";import*as e from"react";import W from"classnames";import{Slot as X}from"radix-ui";import{useComposedRefs as $,useLayoutEffect as q}from"radix-ui/internal";var J=e.forwardRef((l,p)=>{let t=D(l,E.size),{className:h,children:n,asChild:a,as:r,color:M,radius:v,disabled:u,...b}=N(t,E),d=!!t.loading,R=!!u||d,{onClick:P,"aria-describedby":g}=b,w=e.useCallback(o=>{if(R){o.preventDefault();return}P?.(o)},[R,P]),O=e.useMemo(()=>{let o=a&&e.isValidElement(n)?n.props.children:n,c=m=>e.Children.toArray(m).flatMap(f=>e.isValidElement(f)&&f.type===e.Fragment?c(f.props.children):[f]),i=c(o),s=m=>e.isValidElement(m)&&m.type==="svg";return{iconStart:s(i[0]),iconEnd:s(i[i.length-1])}},[a,n]),[H,L]=e.useState(null),C=e.useRef(null),I=$(p,C);q(()=>{let o=C.current;if(!o||d)return;let c=S(o,"start"),i=S(o,"end");L(s=>s&&s.iconStart===c&&s.iconEnd===i?s:{iconStart:c,iconEnd:i})});let{iconStart:V,iconEnd:j}=H??O,A=a?X.Root:r||"button",y=a||!r||["button","input","textarea","select"].includes(r),F=!a&&(!r||r==="button"),_="type"in b,z=e.useId(),B=d?`${z}-loading`:void 0,G=e.useMemo(()=>d?{"aria-busy":!0,"aria-disabled":!0,"aria-describedby":[g,B].filter(Boolean).join(" ")}:u&&(!y||a)?{"aria-disabled":!0}:{},[d,B,g,u,y,a]);return e.createElement(A,{"data-accent-color":M,"data-radius":v,"data-icon-start":V||void 0,"data-icon-end":j||void 0,...b,...G,"data-disabled":R||void 0,onClick:w,ref:I,className:W("kui-reset","kui-BaseButton",h),...y&&{disabled:u},...F&&!_?{type:"button"}:{}},t.loading?e.createElement(e.Fragment,null,e.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},n),e.createElement(x,null,e.createElement("span",{id:B,"aria-hidden":!0},"Loading"),n),e.createElement(T,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(k,{"aria-hidden":"true"})))):n)});J.displayName="BaseButton";function S(l,p){let t=p==="start"?l.firstChild:l.lastChild;for(;t&&(t.nodeType===Node.COMMENT_NODE||t.nodeType===Node.TEXT_NODE&&!t.textContent?.trim());)t=p==="start"?t.nextSibling:t.previousSibling;return t?.nodeType===Node.ELEMENT_NODE&&t.localName==="svg"}export{J as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3YWVE5GL.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/base-button.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { baseButtonPropDefs } from './base-button.props.js';\nimport { Flex } from '../flex.js';\nimport { Spinner } from '../spinner.js';\nimport { VisuallyHidden } from '../visually-hidden.js';\nimport { extractProps } from '../../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../../props/prop-def.js';\n\ntype BaseButtonElement = React.ElementRef<'button'>;\ntype BaseButtonOwnProps = GetPropDefTypes<typeof baseButtonPropDefs>;\n\n/**\n * Polymorphic BaseButton props that support rendering as different HTML elements\n * Uses the proper ComponentPropsWithout pattern for type safety\n * @template C - The element type to render as (defaults to 'button')\n */\ntype PolymorphicBaseButtonProps<C extends React.ElementType = 'button'> = {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & BaseButtonOwnProps &\n ComponentPropsWithout<C, RemovedProps | keyof BaseButtonOwnProps | 'as'>;\n\n/**\n * BaseButton props interface that combines all available props\n */\ninterface BaseButtonProps extends PolymorphicBaseButtonProps {}\n\n/**\n * BaseButton component that provides the core button functionality\n *\n * This is the foundational button component that handles all the complex logic\n * including loading states, accessibility, performance optimizations, and\n * polymorphic rendering. It's used by Button and Toggle to ensure consistent behavior across the design system.\n *\n * Key features:\n * - Loading state with spinner and accessibility announcements\n * - Comprehensive accessibility support\n * - Polymorphic rendering support\n *\n * @example\n * ```tsx\n * // Basic usage\n * <BaseButton>Click me</BaseButton>\n *\n * // With loading state\n * <BaseButton loading>Processing...</BaseButton>\n *\n * // Polymorphic rendering\n * <BaseButton as=\"a\" href=\"/link\">Link Button</BaseButton>\n * ```\n */\nconst BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, baseButtonPropDefs.size);\n\n // Extract button-specific props from the combined props object\n const {\n className,\n children,\n asChild,\n as,\n color,\n radius,\n disabled: nativeDisabled,\n ...baseButtonProps\n } = extractProps(props, baseButtonPropDefs);\n\n // Loading blocks activation but keeps the native `disabled` off, so the button keeps focus\n // and its place in the tab order (aria-disabled carries the state). An explicit `disabled`\n // stays native on form controls; on anything else (a link, an asChild child) the `disabled`\n // attribute does nothing, so aria-disabled carries the state and the click is stopped here.\n const loading = Boolean(props.loading);\n const disabled = Boolean(nativeDisabled) || loading;\n const { onClick, 'aria-describedby': ariaDescribedByProp } = baseButtonProps as {\n onClick?: React.MouseEventHandler<HTMLElement>;\n 'aria-describedby'?: string;\n };\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n },\n [disabled, onClick],\n );\n\n // Which edges start or end with an icon. A bare edge pads wider under a full radius; an edge\n // holding an icon keeps the plain padding (the icon already stands between text and curve).\n // Only an svg is an icon. Rendering reads the children for an svg element at either end, so\n // the server output is right for inline svgs; after mount the rendered DOM settles it, which\n // also catches icon components (they render an svg) and rules out wrapped text (`<Text>`,\n // `<Kbd>`, `<Trans>`), whose first node is not an svg.\n const childEdges = React.useMemo(() => {\n const content =\n asChild && React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : children;\n // Fragments are see-through: their own first and last children are the edges.\n const flatten = (nodes: React.ReactNode): React.ReactNode[] =>\n React.Children.toArray(nodes).flatMap((node) =>\n React.isValidElement(node) && node.type === React.Fragment\n ? flatten((node.props as { children?: React.ReactNode }).children)\n : [node],\n );\n const items = flatten(content);\n const isIcon = (node: React.ReactNode) => React.isValidElement(node) && node.type === 'svg';\n return { iconStart: isIcon(items[0]), iconEnd: isIcon(items[items.length - 1]) };\n }, [asChild, children]);\n const [domEdges, setDomEdges] = React.useState<{ iconStart: boolean; iconEnd: boolean } | null>(null);\n const elementRef = React.useRef<HTMLElement>(null);\n const composedRef = useComposedRefs(forwardedRef, elementRef as React.Ref<BaseButtonElement>);\n useLayoutEffect(() => {\n const element = elementRef.current;\n // While loading the label sits in a wrapper; keep the edges read before it.\n if (!element || loading) return;\n const iconStart = edgeIsSvg(element, 'start');\n const iconEnd = edgeIsSvg(element, 'end');\n setDomEdges((prev) => (prev && prev.iconStart === iconStart && prev.iconEnd === iconEnd ? prev : { iconStart, iconEnd }));\n });\n const { iconStart, iconEnd } = domEdges ?? childEdges;\n\n // asChild takes precedence over as prop for Radix Slot integration\n // When asChild is true, we use Slot.Root to merge props onto the child element\n // When asChild is false, we render as the specified element (or button by default)\n const Comp = asChild ? Slot.Root : (as || 'button');\n\n // Only pass disabled for elements that support it\n // This prevents invalid HTML attributes on unsupported elements\n const shouldPassDisabled = asChild || !as || ['button', 'input', 'textarea', 'select'].includes(as);\n\n // Determine if we are rendering a real <button> element so we can set a safe\n // default type. Native <button> defaults to type=\"submit\" which can cause\n // accidental form submissions. We default to type=\"button\" unless the user\n // explicitly provided a type or we're using asChild (unknown underlying node).\n const isNativeButtonElement = !asChild && (!as || as === 'button');\n const hasExplicitTypeAttribute = 'type' in (baseButtonProps as Record<string, unknown>);\n\n // Generate unique ID for loading announcements\n const loadingId = React.useId();\n const describedById = loading ? `${loadingId}-loading` : undefined;\n\n // Loading keeps the caller's name (aria-label, aria-labelledby or the label text) and adds\n // aria-busy plus a description, as v2 does. A disabled element with no native `disabled`\n // announces itself through aria-disabled.\n const accessibilityProps = React.useMemo(() => {\n if (loading) {\n return {\n 'aria-busy': true,\n 'aria-disabled': true,\n 'aria-describedby': [ariaDescribedByProp, describedById].filter(Boolean).join(' '),\n };\n }\n if (nativeDisabled && (!shouldPassDisabled || asChild)) {\n return { 'aria-disabled': true };\n }\n return {};\n }, [loading, describedById, ariaDescribedByProp, nativeDisabled, shouldPassDisabled, asChild]);\n\n return (\n <Comp\n data-accent-color={color}\n data-radius={radius}\n data-icon-start={iconStart || undefined}\n data-icon-end={iconEnd || undefined}\n {...baseButtonProps}\n {...accessibilityProps}\n // After the spread: `data-disabled` styles `<Button asChild disabled>`, and a wrapping\n // Radix Toggle (asChild) passes `data-disabled={undefined}` that must not erase it.\n data-disabled={disabled || undefined}\n onClick={handleClick}\n ref={composedRef}\n className={classNames('kui-reset', 'kui-BaseButton', className)}\n {...(shouldPassDisabled && { disabled: nativeDisabled })}\n {...(isNativeButtonElement && !hasExplicitTypeAttribute ? { type: 'button' } : {})}\n >\n {props.loading ? (\n <>\n {/**\n * We need a wrapper to set `visibility: hidden` to hide the button content whilst we show the `Spinner`.\n * The button is a flex container with a `gap`, so we use `display: contents` to ensure the correct flex layout.\n *\n * However, `display: contents` removes the content from the accessibility tree in some browsers,\n * so we force remove it with `aria-hidden` and re-add it in the tree with `VisuallyHidden`\n */}\n <span style={{ display: 'contents', visibility: 'hidden' }} aria-hidden>\n {children}\n </span>\n\n {/* The label stays the name; the hidden \"Loading\" only describes (aria-describedby reads hidden text). */}\n <VisuallyHidden>\n <span id={describedById} aria-hidden>\n Loading\n </span>\n {children}\n </VisuallyHidden>\n\n {/* Centered spinner overlay during loading state */}\n <Flex asChild align=\"center\" justify=\"center\" position=\"absolute\" inset=\"0\">\n <span>\n <Spinner aria-hidden=\"true\" />\n </span>\n </Flex>\n </>\n ) : (\n children\n )}\n </Comp>\n );\n});\nBaseButton.displayName = 'BaseButton';\n\n/** Whether the first or last rendered node of `element` (blank text and comments skipped) is an svg. */\nfunction edgeIsSvg(element: Element, edge: 'start' | 'end'): boolean {\n let node = edge === 'start' ? element.firstChild : element.lastChild;\n while (node) {\n const blank =\n node.nodeType === Node.COMMENT_NODE || (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim());\n if (!blank) break;\n node = edge === 'start' ? node.nextSibling : node.previousSibling;\n }\n return node?.nodeType === Node.ELEMENT_NODE && (node as Element).localName === 'svg';\n}\n\nexport { BaseButton };\nexport type { BaseButtonProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "classNames", "Slot", "useComposedRefs", "useLayoutEffect", "BaseButton", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "baseButtonPropDefs", "className", "children", "asChild", "as", "color", "radius", "nativeDisabled", "baseButtonProps", "extractProps", "loading", "disabled", "onClick", "ariaDescribedByProp", "handleClick", "event", "childEdges", "content", "flatten", "nodes", "node", "items", "isIcon", "domEdges", "setDomEdges", "elementRef", "composedRef", "useComposedRefs", "useLayoutEffect", "element", "iconStart", "edgeIsSvg", "iconEnd", "prev", "Comp", "Slot", "shouldPassDisabled", "isNativeButtonElement", "hasExplicitTypeAttribute", "loadingId", "describedById", "accessibilityProps", "classNames", "VisuallyHidden", "Flex", "Spinner", "edge"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e}from"./chunk-OSSNMF5U.js";import{e as p}from"./chunk-3YLYGKFB.js";import{a as o}from"./chunk-ELAW7ZUG.js";import*as r from"react";import n from"classnames";import{Slot as c}from"radix-ui";var P=r.forwardRef((t,s)=>{let a=p(t,e.size),{asChild:m,className:d,...i}=o(a,e),f=m?c.Root:"div";return r.createElement(f,{ref:s,...i,className:n("kui-reset","kui-BaseCard","kui-Card","kui-SurfaceNest",d)})});P.displayName="Card";export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4BU4R7UM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/card.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\n\nimport { cardPropDefs } from './card.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype CardElement = React.ElementRef<'div'>;\ntype CardOwnProps = GetPropDefTypes<typeof cardPropDefs>;\ninterface CardProps extends ComponentPropsWithout<'div', RemovedProps>, CardOwnProps {}\nconst Card = React.forwardRef<CardElement, CardProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, cardPropDefs.size);\n const { asChild, className, ...cardProps } = extractProps(props, cardPropDefs);\n const Comp = asChild ? Slot.Root : 'div';\n return (\n <Comp\n ref={forwardedRef}\n {...cardProps}\n className={classNames('
|
|
5
|
-
"mappings": "wHAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,QAAAC,MAAY,WAYrB,IAAMC,EAAa,aAAmC,CAACC,EAAUC,IAAiB,CAChF,IAAMC,EAAQC,EAAkBH,EAAUI,EAAa,IAAI,EACrD,CAAE,QAAAC,EAAS,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAAaN,EAAOE,CAAY,EACvEK,EAAOJ,EAAUK,EAAK,KAAO,MACnC,OACE,gBAACD,EAAA,CACC,IAAKR,EACJ,GAAGM,EACJ,UAAWI,EAAW,
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\n\nimport { cardPropDefs } from './card.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype CardElement = React.ElementRef<'div'>;\ntype CardOwnProps = GetPropDefTypes<typeof cardPropDefs>;\ninterface CardProps extends ComponentPropsWithout<'div', RemovedProps>, CardOwnProps {}\nconst Card = React.forwardRef<CardElement, CardProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, cardPropDefs.size);\n const { asChild, className, ...cardProps } = extractProps(props, cardPropDefs);\n const Comp = asChild ? Slot.Root : 'div';\n return (\n <Comp\n ref={forwardedRef}\n {...cardProps}\n className={classNames('kui-reset', 'kui-BaseCard', 'kui-Card', 'kui-SurfaceNest', className)}\n />\n );\n});\nCard.displayName = 'Card';\n\nexport { Card };\nexport type { CardProps };\n"],
|
|
5
|
+
"mappings": "wHAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,QAAAC,MAAY,WAYrB,IAAMC,EAAa,aAAmC,CAACC,EAAUC,IAAiB,CAChF,IAAMC,EAAQC,EAAkBH,EAAUI,EAAa,IAAI,EACrD,CAAE,QAAAC,EAAS,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAAaN,EAAOE,CAAY,EACvEK,EAAOJ,EAAUK,EAAK,KAAO,MACnC,OACE,gBAACD,EAAA,CACC,IAAKR,EACJ,GAAGM,EACJ,UAAWI,EAAW,YAAa,eAAgB,WAAY,kBAAmBL,CAAS,EAC7F,CAEJ,CAAC,EACDP,EAAK,YAAc",
|
|
6
6
|
"names": ["React", "classNames", "Slot", "Card", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "cardPropDefs", "asChild", "className", "cardProps", "extractProps", "Comp", "Slot", "classNames"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as n}from"./chunk-XZQSSRTG.js";import{a as m}from"./chunk-ELAW7ZUG.js";import*as e from"react";import{Slot as i}from"radix-ui";var c=e.memo(e.forwardRef((P,t)=>{let{children:o,className:p,asChild:x,as:T="span",color:s,...r}=m(P,n),a=p?`kui-Text ${p}`:"kui-Text";return x?e.createElement(i.Root,{"data-accent-color":s,...r,ref:t,className:a},o):e.createElement(T,{"data-accent-color":s,...r,ref:t,className:a},o)}));c.displayName="Text";export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4P6TKZCA.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/text.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { Slot } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { textPropDefs } from './text.props.js';\n\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype TextElement = React.ElementRef<'span'>;\ntype TextOwnProps = GetPropDefTypes<typeof textPropDefs>;\ninterface CommonTextProps extends TextOwnProps {}\ntype TextSpanProps = { as?: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype TextDivProps = { as: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype TextLabelProps = { as: 'label' } & ComponentPropsWithout<'label', RemovedProps>;\ntype TextPProps = { as: 'p' } & ComponentPropsWithout<'p', RemovedProps>;\ntype TextProps = CommonTextProps & (TextSpanProps | TextDivProps | TextLabelProps | TextPProps);\n\n// Pre-merge prop definitions at module level to avoid per-render allocation\n\nconst Text = React.memo(\n React.forwardRef<TextElement, TextProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = 'span',\n color,\n ...textProps\n } = extractProps(props, textPropDefs);\n\n const combinedClassName = className ? `
|
|
5
|
-
"mappings": "gFAAA,UAAYA,MAAW,QACvB,OAAS,QAAAC,MAAY,WAmBrB,IAAMC,EAAa,OACX,aAAmC,CAACC,EAAOC,IAAiB,CAChE,GAAM,CACJ,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,OACV,MAAAC,EACA,GAAGC,CACL,EAAIC,EAAaR,EAAOS,CAAY,EAE9BC,EAAoBP,EAAY,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { Slot } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { textPropDefs } from './text.props.js';\n\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype TextElement = React.ElementRef<'span'>;\ntype TextOwnProps = GetPropDefTypes<typeof textPropDefs>;\ninterface CommonTextProps extends TextOwnProps {}\ntype TextSpanProps = { as?: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype TextDivProps = { as: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype TextLabelProps = { as: 'label' } & ComponentPropsWithout<'label', RemovedProps>;\ntype TextPProps = { as: 'p' } & ComponentPropsWithout<'p', RemovedProps>;\ntype TextProps = CommonTextProps & (TextSpanProps | TextDivProps | TextLabelProps | TextPProps);\n\n// Pre-merge prop definitions at module level to avoid per-render allocation\n\nconst Text = React.memo(\n React.forwardRef<TextElement, TextProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = 'span',\n color,\n ...textProps\n } = extractProps(props, textPropDefs);\n\n const combinedClassName = className ? `kui-Text ${className}` : 'kui-Text';\n\n if (asChild) {\n return (\n <Slot.Root\n data-accent-color={color}\n {...textProps}\n ref={forwardedRef}\n className={combinedClassName}\n >\n {children}\n </Slot.Root>\n );\n }\n\n return (\n <Tag\n data-accent-color={color}\n {...(textProps as React.HTMLAttributes<HTMLElement>)}\n ref={forwardedRef as any}\n className={combinedClassName}\n >\n {children}\n </Tag>\n );\n })\n);\nText.displayName = 'Text';\n\nexport { Text };\nexport type { TextProps };\n"],
|
|
5
|
+
"mappings": "gFAAA,UAAYA,MAAW,QACvB,OAAS,QAAAC,MAAY,WAmBrB,IAAMC,EAAa,OACX,aAAmC,CAACC,EAAOC,IAAiB,CAChE,GAAM,CACJ,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,OACV,MAAAC,EACA,GAAGC,CACL,EAAIC,EAAaR,EAAOS,CAAY,EAE9BC,EAAoBP,EAAY,YAAYA,CAAS,GAAK,WAEhE,OAAIC,EAEA,gBAACO,EAAK,KAAL,CACC,oBAAmBL,EAClB,GAAGC,EACJ,IAAKN,EACL,UAAWS,GAEVR,CACH,EAKF,gBAACG,EAAA,CACC,oBAAmBC,EAClB,GAAIC,EACL,IAAKN,EACL,UAAWS,GAEVR,CACH,CAEJ,CAAC,CACH,EACAH,EAAK,YAAc",
|
|
6
6
|
"names": ["React", "Slot", "Text", "props", "forwardedRef", "children", "className", "asChild", "Tag", "color", "textProps", "extractProps", "textPropDefs", "combinedClassName", "Slot"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-IAEAXIBI.js";import{a as p}from"./chunk-7FTUTUMD.js";import{a as s}from"./chunk-YLDV2HKZ.js";import{b as t}from"./chunk-FWB47YCH.js";import{a as o}from"./chunk-ELAW7ZUG.js";import*as r from"react";import f from"classnames";var G=r.forwardRef((i,m)=>{let{className:a,asChild:d,as:n="div",...P}=o(i,e,p,s);return r.createElement(d?t:n,{...P,ref:m,className:f("kui-Grid",a)})});G.displayName="Grid";export{G as a};
|
|
2
|
+
//# sourceMappingURL=chunk-63PQNLFJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/grid.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Slot } from './slot.js';\nimport { gridPropDefs } from './grid.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GridOwnProps } from './grid.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype GridElement = React.ElementRef<'div'>;\ninterface CommonGridProps extends MarginProps, LayoutProps, GridOwnProps {}\ntype GridDivProps = { as?: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype GridSpanProps = { as: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype GridProps = CommonGridProps & (GridSpanProps | GridDivProps);\n\nconst Grid = React.forwardRef<GridElement, GridProps>((props, forwardedRef) => {\n const {\n className,\n asChild,\n as: Tag = 'div',\n ...gridProps\n } = extractProps(props, gridPropDefs, layoutPropDefs, marginPropDefs);\n const Comp = asChild ? Slot : Tag;\n return <Comp {...gridProps} ref={forwardedRef} className={classNames('
|
|
5
|
-
"mappings": "wMAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAmBvB,IAAMC,EAAa,aAAmC,CAACC,EAAOC,IAAiB,CAC7E,GAAM,CACJ,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,MACV,GAAGC,CACL,EAAIC,EAAaN,EAAOO,EAAcC,EAAgBC,CAAc,EAEpE,OAAO,gBADMN,EAAUO,EAAON,EACtB,CAAM,GAAGC,EAAW,IAAKJ,EAAc,UAAWU,EAAW,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Slot } from './slot.js';\nimport { gridPropDefs } from './grid.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GridOwnProps } from './grid.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype GridElement = React.ElementRef<'div'>;\ninterface CommonGridProps extends MarginProps, LayoutProps, GridOwnProps {}\ntype GridDivProps = { as?: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype GridSpanProps = { as: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype GridProps = CommonGridProps & (GridSpanProps | GridDivProps);\n\nconst Grid = React.forwardRef<GridElement, GridProps>((props, forwardedRef) => {\n const {\n className,\n asChild,\n as: Tag = 'div',\n ...gridProps\n } = extractProps(props, gridPropDefs, layoutPropDefs, marginPropDefs);\n const Comp = asChild ? Slot : Tag;\n return <Comp {...gridProps} ref={forwardedRef} className={classNames('kui-Grid', className)} />;\n});\nGrid.displayName = 'Grid';\n\nexport { Grid };\nexport type { GridProps };\n"],
|
|
5
|
+
"mappings": "wMAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAmBvB,IAAMC,EAAa,aAAmC,CAACC,EAAOC,IAAiB,CAC7E,GAAM,CACJ,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,MACV,GAAGC,CACL,EAAIC,EAAaN,EAAOO,EAAcC,EAAgBC,CAAc,EAEpE,OAAO,gBADMN,EAAUO,EAAON,EACtB,CAAM,GAAGC,EAAW,IAAKJ,EAAc,UAAWU,EAAW,WAAYT,CAAS,EAAG,CAC/F,CAAC,EACDH,EAAK,YAAc",
|
|
6
6
|
"names": ["React", "classNames", "Grid", "props", "forwardedRef", "className", "asChild", "Tag", "gridProps", "extractProps", "gridPropDefs", "layoutPropDefs", "marginPropDefs", "Slot", "classNames"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/props/shadow.props.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst shadowValues = ['1', '2', '3', '4', '5', '6'] as const;\n\nconst shadowPropDefs = {\n /**\n * Sets the CSS **box-shadow** property using design system shadow tokens.\n * Supports shadow scale values and responsive objects.\n *\n * @example\n * shadow=\"3\"\n * shadow={{ sm: '2', lg: '4' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow\n */\n shadow: {\n type: 'enum',\n className: '
|
|
5
|
-
"mappings": "AAEA,IAAMA,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAE5CC,EAAiB,CAYrB,OAAQ,CACN,KAAM,OACN,UAAW,
|
|
4
|
+
"sourcesContent": ["import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst shadowValues = ['1', '2', '3', '4', '5', '6'] as const;\n\nconst shadowPropDefs = {\n /**\n * Sets the CSS **box-shadow** property using design system shadow tokens.\n * Supports shadow scale values and responsive objects.\n *\n * @example\n * shadow=\"3\"\n * shadow={{ sm: '2', lg: '4' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow\n */\n shadow: {\n type: 'enum',\n className: 'kui-r-shadow',\n values: shadowValues,\n responsive: true,\n },\n} satisfies {\n shadow: PropDef<(typeof shadowValues)[number]>;\n};\n\ntype ShadowProps = GetPropDefTypes<typeof shadowPropDefs>;\n\nexport { shadowPropDefs };\nexport type { ShadowProps };\n"],
|
|
5
|
+
"mappings": "AAEA,IAAMA,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAE5CC,EAAiB,CAYrB,OAAQ,CACN,KAAM,OACN,UAAW,eACX,OAAQD,EACR,WAAY,EACd,CACF",
|
|
6
6
|
"names": ["shadowValues", "shadowPropDefs"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as s}from"./chunk-CLZW2IDD.js";import{e as p}from"./chunk-3YLYGKFB.js";import{a as l}from"./chunk-ELAW7ZUG.js";import{a as I}from"./chunk-OS3FCYZY.js";var h={};I(h,{Item:()=>g,Root:()=>u});import*as e from"react";import i from"classnames";import{ToggleGroup as d}from"radix-ui";import{useControllableState as y}from"radix-ui/internal";var u=e.forwardRef((t,r)=>{let o=p(t,s.size),{className:n,children:a,radius:f,value:C,defaultValue:P,onValueChange:c,...S}=l(o,s),[R,v]=y({prop:C,onChange:c,defaultProp:P??""});return e.createElement(d.Root,{"data-disabled":o.disabled||void 0,"data-radius":f,ref:r,className:i("kui-SegmentedControlRoot",n),onValueChange:m=>{m&&v(m)},...S,type:"single",value:R,asChild:!1,disabled:!!o.disabled},a,e.createElement("div",{className:"kui-SegmentedControlIndicator"}))});u.displayName="SegmentedControl.Root";var g=e.forwardRef(({children:t,className:r,iconOnly:o,...n},a)=>e.createElement(d.Item,{ref:a,className:i("kui-reset","kui-SegmentedControlItem",r),"data-icon-only":o||void 0,...n,disabled:!1,asChild:!1},e.createElement("span",{className:"kui-SegmentedControlItemSeparator"}),e.createElement("span",{className:"kui-SegmentedControlItemLabel"},e.createElement("span",{className:"kui-SegmentedControlItemLabelActive"},t),e.createElement("span",{className:"kui-SegmentedControlItemLabelInactive","aria-hidden":!0},t))));g.displayName="SegmentedControl.Item";export{u as a,g as b,h as c};
|
|
2
|
+
//# sourceMappingURL=chunk-6CK7UTNH.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/segmented-control.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { useControllableState } from 'radix-ui/internal';\n\nimport { segmentedControlRootPropDefs } from './segmented-control.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlRootPropDefs>;\n\ninterface SegmentedControlRootProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n SegmentedControlRootOwnProps {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n}\n\nconst SegmentedControlRoot = React.forwardRef<HTMLDivElement, SegmentedControlRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, segmentedControlRootPropDefs.size);\n const {\n className,\n children,\n radius,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange: onValueChangeProp,\n ...rootProps\n } = extractProps(props, segmentedControlRootPropDefs);\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChangeProp,\n defaultProp: defaultValueProp ?? '',\n });\n\n return (\n <ToggleGroupPrimitive.Root\n data-disabled={props.disabled || undefined}\n data-radius={radius}\n ref={forwardedRef}\n className={classNames('
|
|
5
|
-
"mappings": "gKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAGA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WACpD,OAAS,wBAAAC,MAA4B,oBAmBrC,IAAMC,EAA6B,aACjC,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAA6B,IAAI,EACrE,CACJ,UAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAOC,EACP,aAAcC,EACd,cAAeC,EACf,GAAGC,CACL,EAAIC,EAAaV,EAAOE,CAA4B,EAE9C,CAACS,EAAOC,CAAQ,EAAIC,EAAqB,CAC7C,KAAMP,EACN,SAAUE,EACV,YAAaD,GAAoB,EACnC,CAAC,EAED,OACE,gBAACO,EAAqB,KAArB,CACC,gBAAed,EAAM,UAAY,OACjC,cAAaK,EACb,IAAKN,EACL,UAAWgB,EAAW,
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { useControllableState } from 'radix-ui/internal';\n\nimport { segmentedControlRootPropDefs } from './segmented-control.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlRootPropDefs>;\n\ninterface SegmentedControlRootProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n SegmentedControlRootOwnProps {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n}\n\nconst SegmentedControlRoot = React.forwardRef<HTMLDivElement, SegmentedControlRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, segmentedControlRootPropDefs.size);\n const {\n className,\n children,\n radius,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange: onValueChangeProp,\n ...rootProps\n } = extractProps(props, segmentedControlRootPropDefs);\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChangeProp,\n defaultProp: defaultValueProp ?? '',\n });\n\n return (\n <ToggleGroupPrimitive.Root\n data-disabled={props.disabled || undefined}\n data-radius={radius}\n ref={forwardedRef}\n className={classNames('kui-SegmentedControlRoot', className)}\n onValueChange={(value) => {\n if (value) {\n setValue(value);\n }\n }}\n {...rootProps}\n type=\"single\"\n value={value}\n asChild={false}\n disabled={!!props.disabled}\n >\n {children}\n <div className=\"kui-SegmentedControlIndicator\" />\n </ToggleGroupPrimitive.Root>\n );\n },\n);\n\nSegmentedControlRoot.displayName = 'SegmentedControl.Root';\n\ninterface SegmentedControlItemOwnProps {\n value: string;\n /** When true, applies fixed square width for icon-only segments */\n iconOnly?: boolean;\n}\n\ninterface SegmentedControlItemProps\n extends ComponentPropsWithout<\n typeof ToggleGroupPrimitive.Item,\n RemovedProps | 'disabled' | 'type' | 'value'\n >,\n SegmentedControlItemOwnProps {}\n\nconst SegmentedControlItem = React.forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n ({ children, className, iconOnly, ...props }, forwardedRef) => (\n <ToggleGroupPrimitive.Item\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-SegmentedControlItem', className)}\n data-icon-only={iconOnly || undefined}\n {...props}\n disabled={false}\n asChild={false}\n >\n <span className=\"kui-SegmentedControlItemSeparator\" />\n <span className=\"kui-SegmentedControlItemLabel\">\n <span className=\"kui-SegmentedControlItemLabelActive\">{children}</span>\n <span className=\"kui-SegmentedControlItemLabelInactive\" aria-hidden>\n {children}\n </span>\n </span>\n </ToggleGroupPrimitive.Item>\n ),\n);\n\nSegmentedControlItem.displayName = 'SegmentedControl.Item';\n\nexport { SegmentedControlRoot as Root, SegmentedControlItem as Item };\nexport type { SegmentedControlRootProps as RootProps, SegmentedControlItemProps as ItemProps };\n"],
|
|
5
|
+
"mappings": "gKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAGA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WACpD,OAAS,wBAAAC,MAA4B,oBAmBrC,IAAMC,EAA6B,aACjC,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAA6B,IAAI,EACrE,CACJ,UAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAOC,EACP,aAAcC,EACd,cAAeC,EACf,GAAGC,CACL,EAAIC,EAAaV,EAAOE,CAA4B,EAE9C,CAACS,EAAOC,CAAQ,EAAIC,EAAqB,CAC7C,KAAMP,EACN,SAAUE,EACV,YAAaD,GAAoB,EACnC,CAAC,EAED,OACE,gBAACO,EAAqB,KAArB,CACC,gBAAed,EAAM,UAAY,OACjC,cAAaK,EACb,IAAKN,EACL,UAAWgB,EAAW,2BAA4BZ,CAAS,EAC3D,cAAgBQ,GAAU,CACpBA,GACFC,EAASD,CAAK,CAElB,EACC,GAAGF,EACJ,KAAK,SACL,MAAOE,EACP,QAAS,GACT,SAAU,CAAC,CAACX,EAAM,UAEjBI,EACD,gBAAC,OAAI,UAAU,gCAAgC,CACjD,CAEJ,CACF,EAEAP,EAAqB,YAAc,wBAenC,IAAMmB,EAA6B,aACjC,CAAC,CAAE,SAAAZ,EAAU,UAAAD,EAAW,SAAAc,EAAU,GAAGjB,CAAM,EAAGD,IAC5C,gBAACe,EAAqB,KAArB,CACC,IAAKf,EACL,UAAWgB,EAAW,YAAa,2BAA4BZ,CAAS,EACxE,iBAAgBc,GAAY,OAC3B,GAAGjB,EACJ,SAAU,GACV,QAAS,IAET,gBAAC,QAAK,UAAU,oCAAoC,EACpD,gBAAC,QAAK,UAAU,iCACd,gBAAC,QAAK,UAAU,uCAAuCI,CAAS,EAChE,gBAAC,QAAK,UAAU,wCAAwC,cAAW,IAChEA,CACH,CACF,CACF,CAEJ,EAEAY,EAAqB,YAAc",
|
|
6
6
|
"names": ["segmented_control_exports", "__export", "SegmentedControlItem", "SegmentedControlRoot", "React", "classNames", "ToggleGroupPrimitive", "useControllableState", "SegmentedControlRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "segmentedControlRootPropDefs", "className", "children", "radius", "valueProp", "defaultValueProp", "onValueChangeProp", "rootProps", "extractProps", "value", "setValue", "useControllableState", "ToggleGroupPrimitive", "classNames", "SegmentedControlItem", "iconOnly"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as U}from"./chunk-LHIS3UKQ.js";import{a as K,b as F,c as j,e as E,f as O}from"./chunk-3JA7SJDT.js";import{a as N}from"./chunk-DSPYHO3L.js";import{a as H,b as z,c as W}from"./chunk-FDHWAC6W.js";import{d as G}from"./chunk-IX5HIHVI.js";import{b as g}from"./chunk-AB3QCCUM.js";import{b as x}from"./chunk-FWB47YCH.js";import{a as D}from"./chunk-RWTSGUVJ.js";import{a as ae}from"./chunk-OS3FCYZY.js";var oe={};ae(oe,{Group:()=>_,GroupContent:()=>re,GroupLabel:()=>ee,Menu:()=>$,MenuButton:()=>J,MenuItem:()=>X,MenuSub:()=>Q,MenuSubContent:()=>Z,MenuSubTrigger:()=>Y,Search:()=>te,Separator:()=>V});import*as e from"react";import p from"classnames";import*as f from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:p("kui-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:p("kui-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:p("kui-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function ne(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"kui-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let i=a;i.type==="svg"||i.props&&i.props.icon||typeof i.type=="function"&&(i.type.displayName?.includes("Icon")||i.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function B(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"kui-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},B(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("kui-SidebarMenuLabel"))return t;let i=B(t.props?.children);return e.cloneElement(t,{...t.props},i)}return r}var J=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:i,children:l,onKeyDown:m,...M},s)=>{let c=g(),u=c?.size??"2",h=c?.presentation==="thin",P=r?x:"button",w=e.useCallback(o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){let b=o.currentTarget.closest(".kui-SidebarContent, .kui-SidebarSearchPopover"),y=b?Array.from(b.querySelectorAll(".kui-SidebarMenuButton")).filter(v=>v.offsetParent!==null):[],d=y.indexOf(o.currentTarget),C=y[d+(o.key==="ArrowDown"?1:-1)];d!==-1&&C&&(o.preventDefault(),C.focus())}m?.(o)},[m]),S=e.useMemo(()=>B(l),[l]),{icons:R,labels:I}=e.useMemo(()=>h?ne(l):{icons:[],labels:[]},[h,l]),L=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),b=o.props?.children,y=e.createElement(e.Fragment,null,b,a&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof a=="string"?e.createElement(N,{size:u,variant:"soft"},a):e.createElement(N,{size:a.size||u,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(D,{size:u},n)));return e.cloneElement(o,{...o.props},y)}catch{return S}},[r,S,a,n,u]);return e.createElement(P,{...M,ref:s,"aria-current":t?"page":void 0,className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton",i),"data-active":t||void 0,onKeyDown:w},r?L:h&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},R),I.map((o,b)=>e.createElement(e.Fragment,{key:b},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"kui-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"kui-SidebarMenuBadge"},typeof a=="string"?e.createElement(N,{size:u,variant:"soft"},a):e.createElement(N,{size:a.size||u,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"kui-BaseMenuShortcut kui-SidebarMenuShortcut"},e.createElement(D,{size:u},n))))});J.displayName="Sidebar.MenuButton";var T=e.createContext("accordion"),Q=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(g()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(T.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(T.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(f.Item,{value:"item"},t)))));Q.displayName="Sidebar.MenuSub";var Y=e.forwardRef(({asChild:r=!1,className:t,children:n,...a},i)=>e.useContext(T)==="dropdown"?e.createElement(F,null,e.createElement("button",{...a,ref:i,type:"button","aria-haspopup":"menu",className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",t)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,ref:i,asChild:r,className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:p("kui-BaseMenuSubTriggerIcon","kui-SidebarMenuSubTriggerIcon")}))))));Y.displayName="Sidebar.MenuSubTrigger";var Z=e.forwardRef(({className:r,children:t,...n},a)=>{let i=g();if(e.useContext(T)==="dropdown"){let m=s=>{if(Array.isArray(s))return s.map((c,u)=>e.createElement(e.Fragment,{key:u},m(c)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let u=s.props?.children;if(u!==void 0)return e.cloneElement(s,{...s.props,children:m(u)})}return s},M=e.Children.map(t,(s,c)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let u=s.props?.children,h=m(u);return e.createElement(E,{key:c,asChild:!0},h)}return e.createElement(E,{key:c,asChild:!0},m(s))});return e.createElement(j,{size:i?.size,className:p(r)},e.createElement(O,null,M))}return e.createElement(f.Content,{...n,ref:a,className:p("kui-SidebarMenuSubContent",r)},e.createElement("div",{className:"kui-SidebarMenuSubList"},t))});Z.displayName="Sidebar.MenuSubContent";var _=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:p("kui-BaseMenuGroup","kui-SidebarGroup",r)}));_.displayName="Sidebar.Group";var ee=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?x:"div",{...n,ref:a,className:p("kui-BaseMenuLabel","kui-SidebarGroupLabel",t)}));ee.displayName="Sidebar.GroupLabel";var re=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:p("kui-SidebarGroupContent",r)}));re.displayName="Sidebar.GroupContent";var A=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),te=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:i,...l},m)=>{let M=g(),s=M?.presentation==="thin",c=e.useRef(null),u=e.useRef(null),P=`${e.useId()}-results`,w=e.useRef(r);w.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),I=e.useCallback(o=>{o.key==="Escape"&&w.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),c.current?.focus())},[]),L=e.useCallback(o=>{let b=u.current;if(!b)return;let y=b.querySelector('[role="group"]');if(!y)return;let d=Array.from(y.querySelectorAll("a, button"));if(d.length===0)return;let C=document.activeElement,v=C===c.current,k=d.indexOf(C);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!v&&k!==-1){c.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),v||k===-1?d[0]?.focus():k<d.length-1&&d[k+1]?.focus();break}case"ArrowUp":{o.preventDefault(),k<=0?c.current?.focus():d[k-1]?.focus();break}case"Home":{v||(o.preventDefault(),d[0]?.focus());break}case"End":{v||(o.preventDefault(),d[d.length-1]?.focus());break}}},[]);return s?e.createElement("div",{...l,ref:m,className:p("kui-SidebarSearch","kui-SidebarSearch--thin",i)},e.createElement(H,null,e.createElement(z,null,e.createElement("button",{type:"button",className:p("kui-reset","kui-BaseMenuItem","kui-SidebarMenuButton","kui-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"kui-SidebarMenuIconWrapper"},e.createElement(A,null)),e.createElement("span",{className:"kui-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:u,className:"kui-SidebarSearchPopover",role:"search",onKeyDown:L},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(A,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:I,placeholder:n,"aria-label":R,"aria-controls":a?P:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{t(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:P,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...l,ref:m,className:p("kui-SidebarSearch","kui-SidebarSearch--expanded","kui-ShellPaneChrome",`kui-r-size-${M?.size??"2"}`,i),role:"search"},e.createElement("div",{className:"kui-SidebarSearchInputWrapper"},e.createElement(A,{className:"kui-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"kui-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:I,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"kui-reset kui-SidebarSearchClear",onClick:()=>{t(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});te.displayName="Sidebar.Search";export{V as a,$ as b,X as c,J as d,Q as e,Y as f,Z as g,_ as h,ee as i,re as j,te as k,oe as l};
|
|
2
|
+
//# sourceMappingURL=chunk-6RK26HIY.js.map
|