@d4gger/design-system 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components/controlGroup/ControlGroup.cjs → _internal/floatingLayer.cjs} +11 -26
- package/dist/_internal/floatingLayer.cjs.map +7 -0
- package/dist/_internal/floatingLayer.d.cts +28 -0
- package/dist/_internal/floatingLayer.d.cts.map +1 -0
- package/dist/_internal/floatingLayer.d.mts +28 -0
- package/dist/_internal/floatingLayer.d.mts.map +1 -0
- package/dist/_internal/floatingLayer.d.ts +28 -0
- package/dist/_internal/floatingLayer.d.ts.map +1 -0
- package/dist/_internal/floatingLayer.js +11 -0
- package/dist/_internal/floatingLayer.js.map +7 -0
- package/dist/components/banner/Banner.cjs +105 -0
- package/dist/components/banner/Banner.cjs.map +7 -0
- package/dist/components/banner/Banner.d.cts +27 -0
- package/dist/components/banner/Banner.d.cts.map +1 -0
- package/dist/components/banner/Banner.d.mts +27 -0
- package/dist/components/banner/Banner.d.mts.map +1 -0
- package/dist/components/banner/Banner.d.ts +27 -0
- package/dist/components/banner/Banner.d.ts.map +1 -0
- package/dist/components/banner/Banner.js +80 -0
- package/dist/components/banner/Banner.js.map +7 -0
- package/dist/components/{controlGroup/controlGroup.props.cjs → banner/banner.props.cjs} +23 -16
- package/dist/components/banner/banner.props.cjs.map +7 -0
- package/dist/components/banner/banner.props.d.cts +32 -0
- package/dist/components/banner/banner.props.d.cts.map +1 -0
- package/dist/components/banner/banner.props.d.mts +32 -0
- package/dist/components/banner/banner.props.d.mts.map +1 -0
- package/dist/components/banner/banner.props.d.ts +32 -0
- package/dist/components/banner/banner.props.d.ts.map +1 -0
- package/dist/components/banner/banner.props.js +27 -0
- package/dist/components/banner/banner.props.js.map +7 -0
- package/dist/components/banner.css +60 -0
- package/dist/components/button-group.css +25 -0
- package/dist/components/button.css +9 -0
- package/dist/components/card.css +3 -0
- package/dist/components/carousel/Carousel.cjs +109 -39
- package/dist/components/carousel/Carousel.cjs.map +3 -3
- package/dist/components/carousel/Carousel.d.cts.map +1 -1
- package/dist/components/carousel/Carousel.d.mts.map +1 -1
- package/dist/components/carousel/Carousel.d.ts.map +1 -1
- package/dist/components/carousel/Carousel.js +111 -41
- package/dist/components/carousel/Carousel.js.map +3 -3
- package/dist/components/carousel.css +93 -26
- package/dist/components/chart/Chart.cjs +61 -11
- package/dist/components/chart/Chart.cjs.map +2 -2
- package/dist/components/chart/Chart.d.cts.map +1 -1
- package/dist/components/chart/Chart.d.mts.map +1 -1
- package/dist/components/chart/Chart.d.ts.map +1 -1
- package/dist/components/chart/Chart.js +62 -11
- package/dist/components/chart/Chart.js.map +2 -2
- package/dist/components/chart.css +10 -1
- package/dist/components/checkbox.css +14 -0
- package/dist/components/combobox/Combobox.cjs +3 -1
- package/dist/components/combobox/Combobox.cjs.map +2 -2
- package/dist/components/combobox/Combobox.d.cts.map +1 -1
- package/dist/components/combobox/Combobox.d.mts.map +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +3 -1
- package/dist/components/combobox/Combobox.js.map +2 -2
- package/dist/components/combobox.css +5 -1
- package/dist/components/command/Command.cjs +1 -1
- package/dist/components/command/Command.cjs.map +2 -2
- package/dist/components/command/Command.js +1 -1
- package/dist/components/command/Command.js.map +2 -2
- package/dist/components/context-menu.css +1 -1
- package/dist/components/copy-field.css +18 -0
- package/dist/components/copyField/CopyField.cjs +3 -3
- package/dist/components/copyField/CopyField.cjs.map +2 -2
- package/dist/components/copyField/CopyField.d.cts.map +1 -1
- package/dist/components/copyField/CopyField.d.mts.map +1 -1
- package/dist/components/copyField/CopyField.d.ts.map +1 -1
- package/dist/components/copyField/CopyField.js +3 -3
- package/dist/components/copyField/CopyField.js.map +2 -2
- package/dist/components/data-list.css +19 -4
- package/dist/components/data-table.css +190 -0
- package/dist/components/dataTable/DataTable.cjs +193 -68
- package/dist/components/dataTable/DataTable.cjs.map +3 -3
- package/dist/components/dataTable/DataTable.d.cts +29 -1
- package/dist/components/dataTable/DataTable.d.cts.map +1 -1
- package/dist/components/dataTable/DataTable.d.mts +29 -1
- package/dist/components/dataTable/DataTable.d.mts.map +1 -1
- package/dist/components/dataTable/DataTable.d.ts +29 -1
- package/dist/components/dataTable/DataTable.d.ts.map +1 -1
- package/dist/components/dataTable/DataTable.js +193 -68
- package/dist/components/dataTable/DataTable.js.map +2 -2
- package/dist/components/dataTable/DataTableContext.cjs +41 -0
- package/dist/components/dataTable/DataTableContext.cjs.map +7 -0
- package/dist/components/dataTable/DataTableContext.d.cts +23 -0
- package/dist/components/dataTable/DataTableContext.d.cts.map +1 -0
- package/dist/components/dataTable/DataTableContext.d.mts +23 -0
- package/dist/components/dataTable/DataTableContext.d.mts.map +1 -0
- package/dist/components/dataTable/DataTableContext.d.ts +23 -0
- package/dist/components/dataTable/DataTableContext.d.ts.map +1 -0
- package/dist/components/dataTable/DataTableContext.js +11 -0
- package/dist/components/dataTable/DataTableContext.js.map +7 -0
- package/dist/components/dataTable/DataTablePagination.cjs +72 -47
- package/dist/components/dataTable/DataTablePagination.cjs.map +2 -2
- package/dist/components/dataTable/DataTablePagination.d.cts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.cts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.d.mts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.mts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.d.ts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.ts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.js +75 -47
- package/dist/components/dataTable/DataTablePagination.js.map +2 -2
- package/dist/components/dataTable/DataTableToolbar.cjs +122 -93
- package/dist/components/dataTable/DataTableToolbar.cjs.map +2 -2
- package/dist/components/dataTable/DataTableToolbar.d.cts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.cts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.d.mts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.mts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.d.ts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.ts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.js +123 -94
- package/dist/components/dataTable/DataTableToolbar.js.map +2 -2
- package/dist/components/dataTable/dataTable.export.cjs +83 -0
- package/dist/components/dataTable/dataTable.export.cjs.map +7 -0
- package/dist/components/dataTable/dataTable.export.d.cts +11 -0
- package/dist/components/dataTable/dataTable.export.d.cts.map +1 -0
- package/dist/components/dataTable/dataTable.export.d.mts +11 -0
- package/dist/components/dataTable/dataTable.export.d.mts.map +1 -0
- package/dist/components/dataTable/dataTable.export.d.ts +11 -0
- package/dist/components/dataTable/dataTable.export.d.ts.map +1 -0
- package/dist/components/dataTable/dataTable.export.js +63 -0
- package/dist/components/dataTable/dataTable.export.js.map +7 -0
- package/dist/components/dataTable/dataTable.props.cjs +23 -1
- package/dist/components/dataTable/dataTable.props.cjs.map +2 -2
- package/dist/components/dataTable/dataTable.props.d.cts +21 -1
- package/dist/components/dataTable/dataTable.props.d.cts.map +1 -1
- package/dist/components/dataTable/dataTable.props.d.mts +21 -1
- package/dist/components/dataTable/dataTable.props.d.mts.map +1 -1
- package/dist/components/dataTable/dataTable.props.d.ts +21 -1
- package/dist/components/dataTable/dataTable.props.d.ts.map +1 -1
- package/dist/components/dataTable/dataTable.props.js +23 -1
- package/dist/components/dataTable/dataTable.props.js.map +2 -2
- package/dist/components/dialog/Dialog.cjs +2 -1
- package/dist/components/dialog/Dialog.cjs.map +2 -2
- package/dist/components/dialog/Dialog.d.cts.map +1 -1
- package/dist/components/dialog/Dialog.d.mts.map +1 -1
- package/dist/components/dialog/Dialog.d.ts.map +1 -1
- package/dist/components/dialog/Dialog.js +2 -1
- package/dist/components/dialog/Dialog.js.map +2 -2
- package/dist/components/dropdown-menu.css +1 -1
- package/dist/components/empty-state.css +5 -0
- package/dist/components/fileUpload/FileUpload.cjs +10 -1
- package/dist/components/fileUpload/FileUpload.cjs.map +2 -2
- package/dist/components/fileUpload/FileUpload.d.cts +1 -0
- package/dist/components/fileUpload/FileUpload.d.cts.map +1 -1
- package/dist/components/fileUpload/FileUpload.d.mts +1 -0
- package/dist/components/fileUpload/FileUpload.d.mts.map +1 -1
- package/dist/components/fileUpload/FileUpload.d.ts +1 -0
- package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
- package/dist/components/fileUpload/FileUpload.js +10 -1
- package/dist/components/fileUpload/FileUpload.js.map +2 -2
- package/dist/components/filter-bar.css +380 -8
- package/dist/components/filterBar/FilterBar.cjs +630 -1
- package/dist/components/filterBar/FilterBar.cjs.map +2 -2
- package/dist/components/filterBar/FilterBar.d.cts +132 -2
- package/dist/components/filterBar/FilterBar.d.cts.map +1 -1
- package/dist/components/filterBar/FilterBar.d.mts +132 -2
- package/dist/components/filterBar/FilterBar.d.mts.map +1 -1
- package/dist/components/filterBar/FilterBar.d.ts +132 -2
- package/dist/components/filterBar/FilterBar.d.ts.map +1 -1
- package/dist/components/filterBar/FilterBar.js +631 -2
- package/dist/components/filterBar/FilterBar.js.map +2 -2
- package/dist/components/floating-panel.css +1 -1
- package/dist/components/fontProvider/FontProvider.cjs +1 -1
- package/dist/components/fontProvider/FontProvider.cjs.map +1 -1
- package/dist/components/fontProvider/FontProvider.js +1 -1
- package/dist/components/fontProvider/FontProvider.js.map +1 -1
- package/dist/components/icon/Icon.cjs +25 -2
- package/dist/components/icon/Icon.cjs.map +2 -2
- package/dist/components/icon/Icon.d.cts +29 -1
- package/dist/components/icon/Icon.d.cts.map +1 -1
- package/dist/components/icon/Icon.d.mts +29 -1
- package/dist/components/icon/Icon.d.mts.map +1 -1
- package/dist/components/icon/Icon.d.ts +29 -1
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +33 -2
- package/dist/components/icon/Icon.js.map +2 -2
- package/dist/components/icon/icons.cjs +16 -0
- package/dist/components/icon/icons.cjs.map +2 -2
- package/dist/components/icon/icons.d.cts +40 -0
- package/dist/components/icon/icons.d.cts.map +1 -1
- package/dist/components/icon/icons.d.mts +40 -0
- package/dist/components/icon/icons.d.mts.map +1 -1
- package/dist/components/icon/icons.d.ts +40 -0
- package/dist/components/icon/icons.d.ts.map +1 -1
- package/dist/components/icon/icons.js +16 -0
- package/dist/components/icon/icons.js.map +2 -2
- package/dist/components/icon-button.css +29 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.cjs.map +2 -2
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/item/Item.cjs +1 -1
- package/dist/components/item/Item.cjs.map +2 -2
- package/dist/components/item/Item.js +1 -1
- package/dist/components/item/Item.js.map +2 -2
- package/dist/components/item.css +12 -1
- package/dist/components/marquee/Marquee.cjs +1 -1
- package/dist/components/marquee/Marquee.cjs.map +2 -2
- package/dist/components/marquee/Marquee.js +1 -1
- package/dist/components/marquee/Marquee.js.map +2 -2
- package/dist/components/marquee.css +6 -0
- package/dist/components/menu/Menu.cjs +3 -1
- package/dist/components/menu/Menu.cjs.map +2 -2
- package/dist/components/menu/Menu.d.cts.map +1 -1
- package/dist/components/menu/Menu.d.mts.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +3 -1
- package/dist/components/menu/Menu.js.map +2 -2
- package/dist/components/menubar.css +1 -1
- package/dist/components/metric.css +5 -0
- package/dist/components/pagination/Pagination.cjs +143 -17
- package/dist/components/pagination/Pagination.cjs.map +2 -2
- package/dist/components/pagination/Pagination.d.cts +64 -4
- package/dist/components/pagination/Pagination.d.cts.map +1 -1
- package/dist/components/pagination/Pagination.d.mts +64 -4
- package/dist/components/pagination/Pagination.d.mts.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +64 -4
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +143 -17
- package/dist/components/pagination/Pagination.js.map +2 -2
- package/dist/components/pagination.css +50 -8
- package/dist/components/phoneInput/PhoneInput.cjs +18 -13
- package/dist/components/phoneInput/PhoneInput.cjs.map +2 -2
- package/dist/components/phoneInput/PhoneInput.d.cts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.d.mts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.js +19 -14
- package/dist/components/phoneInput/PhoneInput.js.map +2 -2
- package/dist/components/popover/Popover.cjs +2 -1
- package/dist/components/popover/Popover.cjs.map +2 -2
- package/dist/components/popover/Popover.d.cts.map +1 -1
- package/dist/components/popover/Popover.d.mts.map +1 -1
- package/dist/components/popover/Popover.d.ts.map +1 -1
- package/dist/components/popover/Popover.js +2 -1
- package/dist/components/popover/Popover.js.map +2 -2
- package/dist/components/prose.css +1 -1
- package/dist/components/qr-code.css +5 -15
- package/dist/components/radio-group.css +19 -0
- package/dist/components/radioGroup/RadioGroup.cjs +3 -2
- package/dist/components/radioGroup/RadioGroup.cjs.map +2 -2
- package/dist/components/radioGroup/RadioGroup.d.cts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.d.mts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.js +3 -2
- package/dist/components/radioGroup/RadioGroup.js.map +2 -2
- package/dist/components/radioGroup/radioGroup.props.cjs +1 -1
- package/dist/components/radioGroup/radioGroup.props.cjs.map +2 -2
- package/dist/components/radioGroup/radioGroup.props.d.cts +1 -1
- package/dist/components/radioGroup/radioGroup.props.d.mts +1 -1
- package/dist/components/radioGroup/radioGroup.props.d.ts +1 -1
- package/dist/components/radioGroup/radioGroup.props.js +1 -1
- package/dist/components/radioGroup/radioGroup.props.js.map +2 -2
- package/dist/components/rating.css +12 -0
- package/dist/components/result.css +2 -1
- package/dist/components/richTextEditor/RichTextEditor.cjs +11 -3
- package/dist/components/richTextEditor/RichTextEditor.cjs.map +2 -2
- package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.js +11 -3
- package/dist/components/richTextEditor/RichTextEditor.js.map +2 -2
- package/dist/components/segmented-control.css +80 -4
- package/dist/components/segmentedControl/SegmentedControl.cjs +18 -5
- package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
- package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.js +18 -5
- package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
- package/dist/components/segmentedControl/segmentedControl.props.cjs +10 -0
- package/dist/components/segmentedControl/segmentedControl.props.cjs.map +2 -2
- package/dist/components/segmentedControl/segmentedControl.props.d.cts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.cts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.d.mts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.mts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.d.ts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.ts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.js +10 -0
- package/dist/components/segmentedControl/segmentedControl.props.js.map +2 -2
- package/dist/components/select/Select.cjs +3 -1
- package/dist/components/select/Select.cjs.map +2 -2
- package/dist/components/select/Select.d.cts.map +1 -1
- package/dist/components/select/Select.d.mts.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +3 -1
- package/dist/components/select/Select.js.map +2 -2
- package/dist/components/select.css +1 -1
- package/dist/components/sonner.css +1 -1
- package/dist/components/sortableList/SortableList.cjs +8 -2
- package/dist/components/sortableList/SortableList.cjs.map +2 -2
- package/dist/components/sortableList/SortableList.d.cts.map +1 -1
- package/dist/components/sortableList/SortableList.d.mts.map +1 -1
- package/dist/components/sortableList/SortableList.d.ts.map +1 -1
- package/dist/components/sortableList/SortableList.js +8 -2
- package/dist/components/sortableList/SortableList.js.map +2 -2
- package/dist/components/stat-card.css +2 -0
- package/dist/components/table/Table.cjs +3 -2
- package/dist/components/table/Table.cjs.map +2 -2
- package/dist/components/table/Table.d.cts.map +1 -1
- package/dist/components/table/Table.d.mts.map +1 -1
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +3 -2
- package/dist/components/table/Table.js.map +2 -2
- package/dist/components/table/table.props.cjs +6 -0
- package/dist/components/table/table.props.cjs.map +2 -2
- package/dist/components/table/table.props.d.cts +5 -0
- package/dist/components/table/table.props.d.cts.map +1 -1
- package/dist/components/table/table.props.d.mts +5 -0
- package/dist/components/table/table.props.d.mts.map +1 -1
- package/dist/components/table/table.props.d.ts +5 -0
- package/dist/components/table/table.props.d.ts.map +1 -1
- package/dist/components/table/table.props.js +6 -0
- package/dist/components/table/table.props.js.map +2 -2
- package/dist/components/table.css +20 -13
- package/dist/components/tabs.css +10 -0
- package/dist/components/timeline.css +54 -18
- package/dist/components/toast.css +33 -1
- package/dist/components/toggle-group.css +5 -0
- package/dist/components.css +1 -2
- package/dist/docs/README.md +1 -1
- package/dist/docs/component-contract.md +4 -4
- package/dist/docs/component-index.json +9 -9
- package/dist/docs/components/banner.md +152 -0
- package/dist/docs/components/button-group.md +4 -3
- package/dist/docs/components/button.md +2 -2
- package/dist/docs/components/card.md +1 -0
- package/dist/docs/components/carousel.md +55 -32
- package/dist/docs/components/chart.md +25 -7
- package/dist/docs/components/checkbox.md +4 -0
- package/dist/docs/components/combobox.md +3 -1
- package/dist/docs/components/command.md +2 -2
- package/dist/docs/components/copy-field.md +2 -2
- package/dist/docs/components/data-list.md +15 -3
- package/dist/docs/components/data-table.md +98 -17
- package/dist/docs/components/dialog.md +4 -0
- package/dist/docs/components/dropdown-menu.md +2 -1
- package/dist/docs/components/empty-state.md +3 -1
- package/dist/docs/components/file-upload.md +1 -0
- package/dist/docs/components/filter-bar.md +193 -8
- package/dist/docs/components/floating-panel.md +8 -8
- package/dist/docs/components/icon-button.md +4 -1
- package/dist/docs/components/item.md +18 -13
- package/dist/docs/components/marquee.md +2 -2
- package/dist/docs/components/menu.md +4 -1
- package/dist/docs/components/metric.md +4 -1
- package/dist/docs/components/pagination.md +88 -17
- package/dist/docs/components/pills.md +1 -1
- package/dist/docs/components/popover.md +2 -0
- package/dist/docs/components/prose.md +5 -1
- package/dist/docs/components/qr-code.md +14 -13
- package/dist/docs/components/radio-group.md +5 -2
- package/dist/docs/components/rating.md +2 -0
- package/dist/docs/components/result.md +6 -0
- package/dist/docs/components/segmented-control.md +7 -2
- package/dist/docs/components/select.md +3 -2
- package/dist/docs/components/sidebar.md +3 -1
- package/dist/docs/components/sonner.md +1 -1
- package/dist/docs/components/sortable-list.md +2 -0
- package/dist/docs/components/stat-card.md +5 -4
- package/dist/docs/components/stepper.md +1 -0
- package/dist/docs/components/table.md +14 -5
- package/dist/docs/components/tag.md +4 -2
- package/dist/docs/components/timeline.md +9 -5
- package/dist/docs/components/toast.md +1 -1
- package/dist/docs/components/toggle-group.md +2 -1
- package/dist/fonts.css +1 -1
- package/dist/generated/tokens.cjs +1 -1
- package/dist/generated/tokens.cjs.map +1 -1
- package/dist/generated/tokens.js +1 -1
- package/dist/generated/tokens.js.map +1 -1
- package/dist/motion.css +18 -3
- package/dist/styles.css +1249 -292
- package/dist/tokens.css +21 -15
- package/package.json +1 -1
- package/dist/components/control-group.css +0 -142
- package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
- package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.js +0 -26
- package/dist/components/controlGroup/ControlGroup.js.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.js +0 -20
- package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
- package/dist/docs/components/control-group.md +0 -261
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/combobox/Combobox.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\n\nimport { usePrefersReducedMotion } from '../../_internal'\nimport { MOTION_TRANSITIONS } from '../../_internal/motion'\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { AnimatePresence, motion } from '../../motion'\nimport { Icon } from '../icon/Icon'\nimport type {\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n} from '../command/Command'\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '../popover/Popover'\nimport {\n comboboxContentPropDefs,\n comboboxEmptyPropDefs,\n comboboxGroupPropDefs,\n comboboxInputPropDefs,\n comboboxItemPropDefs,\n comboboxListPropDefs,\n comboboxPropDefs,\n comboboxTriggerPropDefs,\n} from './combobox.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\nconst Command = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.Command })))\nconst CommandEmpty = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandEmpty })))\nconst CommandGroup = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandGroup })))\nconst CommandInput = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandInput })))\nconst CommandItem = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandItem })))\nconst CommandList = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandList })))\n\nfunction useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n}: Pick<React.ComponentPropsWithoutRef<typeof Popover>, 'defaultOpen' | 'onOpenChange' | 'open'>) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false)\n const open = openProp ?? uncontrolledOpen\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n },\n [onOpenChange, openProp],\n )\n\n return [open, handleOpenChange] as const\n}\n\ntype ComboboxOwnProps = GetPropDefTypes<typeof comboboxPropDefs>\ntype ComboboxTriggerOwnProps = GetPropDefTypes<typeof comboboxTriggerPropDefs>\ntype ComboboxContentOwnProps = GetPropDefTypes<typeof comboboxContentPropDefs>\ntype ComboboxInputOwnProps = GetPropDefTypes<typeof comboboxInputPropDefs>\ntype ComboboxListOwnProps = GetPropDefTypes<typeof comboboxListPropDefs>\ntype ComboboxEmptyOwnProps = GetPropDefTypes<typeof comboboxEmptyPropDefs>\ntype ComboboxItemOwnProps = GetPropDefTypes<typeof comboboxItemPropDefs>\ntype ComboboxGroupOwnProps = GetPropDefTypes<typeof comboboxGroupPropDefs>\n\ntype ComboboxSize = NonNullable<ComboboxOwnProps['size']>\ntype ComboboxVariant = NonNullable<ComboboxOwnProps['variant']>\n\ntype ComboboxPresentationContextValue = {\n readonly size: ComboboxSize\n readonly variant: ComboboxVariant\n}\n\nconst ComboboxOpenContext = React.createContext(false)\nconst ComboboxPresentationContext = React.createContext<ComboboxPresentationContextValue>({\n size: 'md',\n variant: 'solid',\n})\n\ntype ComboboxProps = React.ComponentPropsWithoutRef<typeof Popover> & ComboboxOwnProps\ntype ComboboxTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverTrigger> & ComboboxTriggerOwnProps\ntype ComboboxContentProps = React.ComponentPropsWithoutRef<typeof PopoverContent> & ComboboxContentOwnProps\ntype ComboboxInputProps = CommandInputProps & ComboboxInputOwnProps\ntype ComboboxListProps = CommandListProps & ComboboxListOwnProps\ntype ComboboxEmptyProps = CommandEmptyProps & ComboboxEmptyOwnProps\ntype ComboboxItemProps = CommandItemProps & ComboboxItemOwnProps\ntype ComboboxGroupProps = CommandGroupProps & ComboboxGroupOwnProps\n\nconst ComboboxAnchor = PopoverAnchor\n\nfunction ComboboxRoot({ children, defaultOpen, onOpenChange, open: openProp, ...props }: ComboboxProps) {\n const { asChild: _asChild, color, radius, size = 'md', variant = 'solid', ...comboboxProps } = extractProps(props, comboboxPropDefs)\n const [open, setOpen] = useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n })\n const presentation = React.useMemo<ComboboxPresentationContextValue>(\n () => ({ size, variant }),\n [size, variant],\n )\n\n return (\n <ComboboxOpenContext.Provider value={open}>\n <ComboboxPresentationContext.Provider value={presentation}>\n <div\n data-accent-color={color}\n data-radius={radius}\n data-size={size}\n data-variant={variant}\n style={{ display: 'contents' }}\n >\n <Popover {...comboboxProps} open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </div>\n </ComboboxPresentationContext.Provider>\n </ComboboxOpenContext.Provider>\n )\n}\nComboboxRoot.displayName = 'Combobox'\n\nconst ComboboxTrigger = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, ComboboxTriggerProps>(\n ({ children, invalid = false, size: sizeProp, ...props }, forwardedRef) => {\n const { size: contextSize } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const { asChild, className, ...triggerProps } = extractProps(\n { ...props, invalid },\n comboboxTriggerPropDefs,\n )\n const valueWrapRef = React.useRef<HTMLSpanElement>(null)\n // Mirror the rendered value text into title (batch 4, P2): the trigger\n // ellipsizes long values, so the full text must stay discoverable on\n // hover. A MutationObserver keeps it in sync across selection changes.\n React.useLayoutEffect(() => {\n const el = valueWrapRef.current\n if (!el) return\n const sync = () => {\n const text = el.textContent ?? ''\n if (el.title !== text) el.title = text\n }\n sync()\n const observer = new MutationObserver(sync)\n observer.observe(el, { childList: true, characterData: true, subtree: true })\n return () => observer.disconnect()\n }, [])\n\n return (\n <PopoverTrigger\n {...triggerProps}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('dsx-combobox__trigger', className)}\n data-invalid={invalid ? 'true' : undefined}\n data-size={size}\n >\n {asChild ? (\n children\n ) : (\n <>\n <span ref={valueWrapRef} className=\"dsx-combobox__trigger-value\">{children}</span>\n <Icon name=\"chevron-down\" size=\"sm\" className=\"dsx-combobox__icon\" />\n </>\n )}\n </PopoverTrigger>\n )\n },\n)\nComboboxTrigger.displayName = 'ComboboxTrigger'\n\nconst ComboboxContent = React.forwardRef<React.ComponentRef<typeof PopoverContent>, ComboboxContentProps>(\n ({ children, forceMount = false, size: sizeProp, ...props }, forwardedRef) => {\n const open = React.useContext(ComboboxOpenContext)\n const { size: contextSize, variant } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const prefersReducedMotion = usePrefersReducedMotion()\n const { asChild: _asChild, className, ...contentProps } = extractProps(props, comboboxContentPropDefs)\n\n return (\n <PopoverContent\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-combobox__content', className)}\n size={size}\n data-variant={variant}\n showArrow={false}\n align=\"start\"\n {...(forceMount ? { forceMount: true as const } : null)}\n >\n <AnimatePresence initial={false}>\n {open || forceMount ? (\n <motion.div\n initial={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 4 }}\n animate={prefersReducedMotion ? { opacity: open ? 1 : 0 } : { opacity: open ? 1 : 0, y: open ? 0 : 2 }}\n exit={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 2 }}\n transition={prefersReducedMotion ? MOTION_TRANSITIONS.reduced : MOTION_TRANSITIONS.combobox}\n >\n <React.Suspense fallback={null}>\n <Command className=\"dsx-combobox__command\">{children}</Command>\n </React.Suspense>\n </motion.div>\n ) : null}\n </AnimatePresence>\n </PopoverContent>\n )\n },\n)\nComboboxContent.displayName = 'ComboboxContent'\n\nconst ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, comboboxInputPropDefs)\n\n return (\n <CommandInput\n {...inputProps}\n ref={forwardedRef}\n wrapperClassName=\"dsx-combobox__search\"\n className={classNames('dsx-combobox__input', className)}\n />\n )\n})\nComboboxInput.displayName = 'ComboboxInput'\n\nconst ComboboxList = React.forwardRef<HTMLDivElement, ComboboxListProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, comboboxListPropDefs)\n\n return <CommandList {...listProps} ref={forwardedRef} className={classNames('dsx-combobox__list', className)} />\n})\nComboboxList.displayName = 'ComboboxList'\n\nconst ComboboxEmpty = React.forwardRef<HTMLDivElement, ComboboxEmptyProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, comboboxEmptyPropDefs)\n\n return <CommandEmpty {...emptyProps} ref={forwardedRef} className={classNames('dsx-combobox__empty', className)} />\n})\nComboboxEmpty.displayName = 'ComboboxEmpty'\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, ComboboxItemProps>(\n ({ children, selected = false, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(\n { ...props, selected },\n comboboxItemPropDefs,\n )\n const itemRef = React.useRef<HTMLDivElement>(null)\n // Partition ItemMedia out of the text flow (batch 4): media must be a\n // direct flex child of the row so the row gap separates it from the text.\n const { media, rest } = React.useMemo(() => {\n const media: React.ReactNode[] = []\n const rest: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === ComboboxItemMedia) media.push(child)\n else rest.push(child)\n })\n return { media, rest }\n }, [children])\n // Panel-fit latch (batch 4): same contract as SelectItem \u2014 the row caps\n // itself to the panel content box in px; rows that fit keep no cap so the\n // panel grows to the longest option, rows that exceed it latch\n // data-overflow and wrap. One-way latch, always settles.\n React.useLayoutEffect(() => {\n const el = itemRef.current\n const panel = el?.closest('.dsx-combobox__content')\n if (!el || !panel) return\n const sync = () => {\n const panelStyle = getComputedStyle(panel)\n const cap =\n panel.clientWidth - parseFloat(panelStyle.paddingLeft) - parseFloat(panelStyle.paddingRight)\n if (el.hasAttribute('data-overflow')) {\n el.style.maxWidth = `${cap}px`\n return\n }\n if (el.scrollWidth > cap + 1) {\n el.style.maxWidth = `${cap}px`\n el.setAttribute('data-overflow', 'true')\n } else {\n el.style.maxWidth = ''\n }\n }\n sync()\n const observer = new ResizeObserver(sync)\n observer.observe(el)\n observer.observe(panel)\n return () => observer.disconnect()\n }, [])\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n itemRef.current = node\n if (typeof forwardedRef === 'function') forwardedRef(node)\n else if (forwardedRef) forwardedRef.current = node\n },\n [forwardedRef],\n )\n\n return (\n <CommandItem\n {...itemProps}\n ref={setRefs}\n aria-selected={selected}\n className={classNames('dsx-combobox__item', className)}\n data-selected={selected ? 'true' : undefined}\n >\n {media}\n <span className=\"dsx-combobox__item-text\">{rest}</span>\n {selected ? <Icon name=\"check\" size=\"sm\" className=\"dsx-combobox__item-icon\" /> : null}\n </CommandItem>\n )\n },\n)\nComboboxItem.displayName = 'ComboboxItem'\n\ntype ComboboxItemMediaProps = React.ComponentPropsWithoutRef<'div'>\n\nconst ComboboxItemMedia = React.forwardRef<HTMLDivElement, ComboboxItemMediaProps>(\n ({ className, ...props }, forwardedRef) => {\n return <div {...props} ref={forwardedRef} className={classNames('dsx-combobox__item-media', className)} />\n },\n)\nComboboxItemMedia.displayName = 'ComboboxItemMedia'\n\nconst ComboboxGroup = React.forwardRef<HTMLDivElement, ComboboxGroupProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...groupProps } = extractProps(props, comboboxGroupPropDefs)\n\n return <CommandGroup {...groupProps} ref={forwardedRef} className={classNames('dsx-combobox__group', className)} />\n})\nComboboxGroup.displayName = 'ComboboxGroup'\n\nconst Combobox: typeof ComboboxRoot & {\n Anchor: typeof ComboboxAnchor\n Content: typeof ComboboxContent\n Empty: typeof ComboboxEmpty\n Group: typeof ComboboxGroup\n Input: typeof ComboboxInput\n Item: typeof ComboboxItem\n ItemMedia: typeof ComboboxItemMedia\n List: typeof ComboboxList\n Trigger: typeof ComboboxTrigger\n} = Object.assign(ComboboxRoot, {\n Anchor: ComboboxAnchor,\n Content: ComboboxContent,\n Empty: ComboboxEmpty,\n Group: ComboboxGroup,\n Input: ComboboxInput,\n Item: ComboboxItem,\n ItemMedia: ComboboxItemMedia,\n List: ComboboxList,\n Trigger: ComboboxTrigger,\n})\n\nexport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemMedia,\n ComboboxList,\n ComboboxRoot,\n ComboboxTrigger,\n}\nexport type {\n ComboboxContentProps,\n ComboboxEmptyProps,\n ComboboxGroupProps,\n ComboboxInputProps,\n ComboboxItemProps,\n ComboboxItemMediaProps,\n ComboboxListProps,\n ComboboxProps,\n ComboboxTriggerProps,\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\n\nimport { usePrefersReducedMotion } from '../../_internal'\nimport { useFloatingLayerHost } from '../../_internal/floatingLayer'\nimport { MOTION_TRANSITIONS } from '../../_internal/motion'\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { AnimatePresence, motion } from '../../motion'\nimport { Icon } from '../icon/Icon'\nimport type {\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n} from '../command/Command'\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '../popover/Popover'\nimport {\n comboboxContentPropDefs,\n comboboxEmptyPropDefs,\n comboboxGroupPropDefs,\n comboboxInputPropDefs,\n comboboxItemPropDefs,\n comboboxListPropDefs,\n comboboxPropDefs,\n comboboxTriggerPropDefs,\n} from './combobox.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\nconst Command = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.Command })))\nconst CommandEmpty = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandEmpty })))\nconst CommandGroup = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandGroup })))\nconst CommandInput = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandInput })))\nconst CommandItem = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandItem })))\nconst CommandList = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandList })))\n\nfunction useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n}: Pick<React.ComponentPropsWithoutRef<typeof Popover>, 'defaultOpen' | 'onOpenChange' | 'open'>) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false)\n const open = openProp ?? uncontrolledOpen\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n },\n [onOpenChange, openProp],\n )\n\n return [open, handleOpenChange] as const\n}\n\ntype ComboboxOwnProps = GetPropDefTypes<typeof comboboxPropDefs>\ntype ComboboxTriggerOwnProps = GetPropDefTypes<typeof comboboxTriggerPropDefs>\ntype ComboboxContentOwnProps = GetPropDefTypes<typeof comboboxContentPropDefs>\ntype ComboboxInputOwnProps = GetPropDefTypes<typeof comboboxInputPropDefs>\ntype ComboboxListOwnProps = GetPropDefTypes<typeof comboboxListPropDefs>\ntype ComboboxEmptyOwnProps = GetPropDefTypes<typeof comboboxEmptyPropDefs>\ntype ComboboxItemOwnProps = GetPropDefTypes<typeof comboboxItemPropDefs>\ntype ComboboxGroupOwnProps = GetPropDefTypes<typeof comboboxGroupPropDefs>\n\ntype ComboboxSize = NonNullable<ComboboxOwnProps['size']>\ntype ComboboxVariant = NonNullable<ComboboxOwnProps['variant']>\n\ntype ComboboxPresentationContextValue = {\n readonly size: ComboboxSize\n readonly variant: ComboboxVariant\n}\n\nconst ComboboxOpenContext = React.createContext(false)\nconst ComboboxPresentationContext = React.createContext<ComboboxPresentationContextValue>({\n size: 'md',\n variant: 'solid',\n})\n\ntype ComboboxProps = React.ComponentPropsWithoutRef<typeof Popover> & ComboboxOwnProps\ntype ComboboxTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverTrigger> & ComboboxTriggerOwnProps\ntype ComboboxContentProps = React.ComponentPropsWithoutRef<typeof PopoverContent> & ComboboxContentOwnProps\ntype ComboboxInputProps = CommandInputProps & ComboboxInputOwnProps\ntype ComboboxListProps = CommandListProps & ComboboxListOwnProps\ntype ComboboxEmptyProps = CommandEmptyProps & ComboboxEmptyOwnProps\ntype ComboboxItemProps = CommandItemProps & ComboboxItemOwnProps\ntype ComboboxGroupProps = CommandGroupProps & ComboboxGroupOwnProps\n\nconst ComboboxAnchor = PopoverAnchor\n\nfunction ComboboxRoot({ children, defaultOpen, onOpenChange, open: openProp, ...props }: ComboboxProps) {\n const { asChild: _asChild, color, radius, size = 'md', variant = 'solid', ...comboboxProps } = extractProps(props, comboboxPropDefs)\n const [open, setOpen] = useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n })\n const presentation = React.useMemo<ComboboxPresentationContextValue>(\n () => ({ size, variant }),\n [size, variant],\n )\n\n return (\n <ComboboxOpenContext.Provider value={open}>\n <ComboboxPresentationContext.Provider value={presentation}>\n <div\n data-accent-color={color}\n data-radius={radius}\n data-size={size}\n data-variant={variant}\n style={{ display: 'contents' }}\n >\n <Popover {...comboboxProps} open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </div>\n </ComboboxPresentationContext.Provider>\n </ComboboxOpenContext.Provider>\n )\n}\nComboboxRoot.displayName = 'Combobox'\n\nconst ComboboxTrigger = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, ComboboxTriggerProps>(\n ({ children, invalid = false, size: sizeProp, ...props }, forwardedRef) => {\n const { size: contextSize } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const { asChild, className, ...triggerProps } = extractProps(\n { ...props, invalid },\n comboboxTriggerPropDefs,\n )\n const valueWrapRef = React.useRef<HTMLSpanElement>(null)\n // Mirror the rendered value text into title (batch 4, P2): the trigger\n // ellipsizes long values, so the full text must stay discoverable on\n // hover. A MutationObserver keeps it in sync across selection changes.\n React.useLayoutEffect(() => {\n const el = valueWrapRef.current\n if (!el) return\n const sync = () => {\n const text = el.textContent ?? ''\n if (el.title !== text) el.title = text\n }\n sync()\n const observer = new MutationObserver(sync)\n observer.observe(el, { childList: true, characterData: true, subtree: true })\n return () => observer.disconnect()\n }, [])\n\n return (\n <PopoverTrigger\n {...triggerProps}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('dsx-combobox__trigger', className)}\n data-invalid={invalid ? 'true' : undefined}\n data-size={size}\n >\n {asChild ? (\n children\n ) : (\n <>\n <span ref={valueWrapRef} className=\"dsx-combobox__trigger-value\">{children}</span>\n <Icon name=\"chevron-down\" size=\"sm\" className=\"dsx-combobox__icon\" />\n </>\n )}\n </PopoverTrigger>\n )\n },\n)\nComboboxTrigger.displayName = 'ComboboxTrigger'\n\nconst ComboboxContent = React.forwardRef<React.ComponentRef<typeof PopoverContent>, ComboboxContentProps>(\n ({ children, forceMount = false, size: sizeProp, ...props }, forwardedRef) => {\n const open = React.useContext(ComboboxOpenContext)\n const { size: contextSize, variant } = React.useContext(ComboboxPresentationContext)\n const nestedInModalHost = useFloatingLayerHost()\n const size = sizeProp ?? contextSize\n const prefersReducedMotion = usePrefersReducedMotion()\n const { asChild: _asChild, className, ...contentProps } = extractProps(props, comboboxContentPropDefs)\n\n return (\n <PopoverContent\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-combobox__content', nestedInModalHost && 'dsx-menu__nested', className)}\n size={size}\n data-variant={variant}\n showArrow={false}\n align=\"start\"\n {...(forceMount ? { forceMount: true as const } : null)}\n >\n <AnimatePresence initial={false}>\n {open || forceMount ? (\n <motion.div\n initial={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 4 }}\n animate={prefersReducedMotion ? { opacity: open ? 1 : 0 } : { opacity: open ? 1 : 0, y: open ? 0 : 2 }}\n exit={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 2 }}\n transition={prefersReducedMotion ? MOTION_TRANSITIONS.reduced : MOTION_TRANSITIONS.combobox}\n >\n <React.Suspense fallback={null}>\n <Command className=\"dsx-combobox__command\">{children}</Command>\n </React.Suspense>\n </motion.div>\n ) : null}\n </AnimatePresence>\n </PopoverContent>\n )\n },\n)\nComboboxContent.displayName = 'ComboboxContent'\n\nconst ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, comboboxInputPropDefs)\n\n return (\n <CommandInput\n {...inputProps}\n ref={forwardedRef}\n wrapperClassName=\"dsx-combobox__search\"\n className={classNames('dsx-combobox__input', className)}\n />\n )\n})\nComboboxInput.displayName = 'ComboboxInput'\n\nconst ComboboxList = React.forwardRef<HTMLDivElement, ComboboxListProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, comboboxListPropDefs)\n\n return <CommandList {...listProps} ref={forwardedRef} className={classNames('dsx-combobox__list', className)} />\n})\nComboboxList.displayName = 'ComboboxList'\n\nconst ComboboxEmpty = React.forwardRef<HTMLDivElement, ComboboxEmptyProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, comboboxEmptyPropDefs)\n\n return <CommandEmpty {...emptyProps} ref={forwardedRef} className={classNames('dsx-combobox__empty', className)} />\n})\nComboboxEmpty.displayName = 'ComboboxEmpty'\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, ComboboxItemProps>(\n ({ children, selected = false, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(\n { ...props, selected },\n comboboxItemPropDefs,\n )\n const itemRef = React.useRef<HTMLDivElement>(null)\n // Partition ItemMedia out of the text flow (batch 4): media must be a\n // direct flex child of the row so the row gap separates it from the text.\n const { media, rest } = React.useMemo(() => {\n const media: React.ReactNode[] = []\n const rest: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === ComboboxItemMedia) media.push(child)\n else rest.push(child)\n })\n return { media, rest }\n }, [children])\n // Panel-fit latch (batch 4): same contract as SelectItem \u2014 the row caps\n // itself to the panel content box in px; rows that fit keep no cap so the\n // panel grows to the longest option, rows that exceed it latch\n // data-overflow and wrap. One-way latch, always settles.\n React.useLayoutEffect(() => {\n const el = itemRef.current\n const panel = el?.closest('.dsx-combobox__content')\n if (!el || !panel) return\n const sync = () => {\n const panelStyle = getComputedStyle(panel)\n const cap =\n panel.clientWidth - parseFloat(panelStyle.paddingLeft) - parseFloat(panelStyle.paddingRight)\n if (el.hasAttribute('data-overflow')) {\n el.style.maxWidth = `${cap}px`\n return\n }\n if (el.scrollWidth > cap + 1) {\n el.style.maxWidth = `${cap}px`\n el.setAttribute('data-overflow', 'true')\n } else {\n el.style.maxWidth = ''\n }\n }\n sync()\n const observer = new ResizeObserver(sync)\n observer.observe(el)\n observer.observe(panel)\n return () => observer.disconnect()\n }, [])\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n itemRef.current = node\n if (typeof forwardedRef === 'function') forwardedRef(node)\n else if (forwardedRef) forwardedRef.current = node\n },\n [forwardedRef],\n )\n\n return (\n <CommandItem\n {...itemProps}\n ref={setRefs}\n aria-selected={selected}\n className={classNames('dsx-combobox__item', className)}\n data-selected={selected ? 'true' : undefined}\n >\n {media}\n <span className=\"dsx-combobox__item-text\">{rest}</span>\n {selected ? <Icon name=\"check\" size=\"sm\" className=\"dsx-combobox__item-icon\" /> : null}\n </CommandItem>\n )\n },\n)\nComboboxItem.displayName = 'ComboboxItem'\n\ntype ComboboxItemMediaProps = React.ComponentPropsWithoutRef<'div'>\n\nconst ComboboxItemMedia = React.forwardRef<HTMLDivElement, ComboboxItemMediaProps>(\n ({ className, ...props }, forwardedRef) => {\n return <div {...props} ref={forwardedRef} className={classNames('dsx-combobox__item-media', className)} />\n },\n)\nComboboxItemMedia.displayName = 'ComboboxItemMedia'\n\nconst ComboboxGroup = React.forwardRef<HTMLDivElement, ComboboxGroupProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...groupProps } = extractProps(props, comboboxGroupPropDefs)\n\n return <CommandGroup {...groupProps} ref={forwardedRef} className={classNames('dsx-combobox__group', className)} />\n})\nComboboxGroup.displayName = 'ComboboxGroup'\n\nconst Combobox: typeof ComboboxRoot & {\n Anchor: typeof ComboboxAnchor\n Content: typeof ComboboxContent\n Empty: typeof ComboboxEmpty\n Group: typeof ComboboxGroup\n Input: typeof ComboboxInput\n Item: typeof ComboboxItem\n ItemMedia: typeof ComboboxItemMedia\n List: typeof ComboboxList\n Trigger: typeof ComboboxTrigger\n} = Object.assign(ComboboxRoot, {\n Anchor: ComboboxAnchor,\n Content: ComboboxContent,\n Empty: ComboboxEmpty,\n Group: ComboboxGroup,\n Input: ComboboxInput,\n Item: ComboboxItem,\n ItemMedia: ComboboxItemMedia,\n List: ComboboxList,\n Trigger: ComboboxTrigger,\n})\n\nexport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemMedia,\n ComboboxList,\n ComboboxRoot,\n ComboboxTrigger,\n}\nexport type {\n ComboboxContentProps,\n ComboboxEmptyProps,\n ComboboxGroupProps,\n ComboboxInputProps,\n ComboboxItemProps,\n ComboboxItemMediaProps,\n ComboboxListProps,\n ComboboxProps,\n ComboboxTriggerProps,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_motion", "classNames", "media", "rest"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.cts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Combobox.d.cts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.mts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Combobox.d.mts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import { usePrefersReducedMotion } from "../../_internal/index.js";
|
|
5
|
+
import { useFloatingLayerHost } from "../../_internal/floatingLayer.js";
|
|
5
6
|
import { MOTION_TRANSITIONS } from "../../_internal/motion.js";
|
|
6
7
|
import { extractProps } from "../../_internal/helpers/extractProps.js";
|
|
7
8
|
import { AnimatePresence, motion } from "../../motion/index.js";
|
|
@@ -115,6 +116,7 @@ const ComboboxContent = React.forwardRef(
|
|
|
115
116
|
({ children, forceMount = false, size: sizeProp, ...props }, forwardedRef) => {
|
|
116
117
|
const open = React.useContext(ComboboxOpenContext);
|
|
117
118
|
const { size: contextSize, variant } = React.useContext(ComboboxPresentationContext);
|
|
119
|
+
const nestedInModalHost = useFloatingLayerHost();
|
|
118
120
|
const size = sizeProp ?? contextSize;
|
|
119
121
|
const prefersReducedMotion = usePrefersReducedMotion();
|
|
120
122
|
const { asChild: _asChild, className, ...contentProps } = extractProps(props, comboboxContentPropDefs);
|
|
@@ -123,7 +125,7 @@ const ComboboxContent = React.forwardRef(
|
|
|
123
125
|
{
|
|
124
126
|
...contentProps,
|
|
125
127
|
ref: forwardedRef,
|
|
126
|
-
className: classNames("dsx-combobox__content", className),
|
|
128
|
+
className: classNames("dsx-combobox__content", nestedInModalHost && "dsx-menu__nested", className),
|
|
127
129
|
size,
|
|
128
130
|
"data-variant": variant,
|
|
129
131
|
showArrow: false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/combobox/Combobox.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\n\nimport { usePrefersReducedMotion } from '../../_internal'\nimport { MOTION_TRANSITIONS } from '../../_internal/motion'\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { AnimatePresence, motion } from '../../motion'\nimport { Icon } from '../icon/Icon'\nimport type {\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n} from '../command/Command'\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '../popover/Popover'\nimport {\n comboboxContentPropDefs,\n comboboxEmptyPropDefs,\n comboboxGroupPropDefs,\n comboboxInputPropDefs,\n comboboxItemPropDefs,\n comboboxListPropDefs,\n comboboxPropDefs,\n comboboxTriggerPropDefs,\n} from './combobox.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\nconst Command = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.Command })))\nconst CommandEmpty = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandEmpty })))\nconst CommandGroup = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandGroup })))\nconst CommandInput = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandInput })))\nconst CommandItem = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandItem })))\nconst CommandList = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandList })))\n\nfunction useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n}: Pick<React.ComponentPropsWithoutRef<typeof Popover>, 'defaultOpen' | 'onOpenChange' | 'open'>) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false)\n const open = openProp ?? uncontrolledOpen\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n },\n [onOpenChange, openProp],\n )\n\n return [open, handleOpenChange] as const\n}\n\ntype ComboboxOwnProps = GetPropDefTypes<typeof comboboxPropDefs>\ntype ComboboxTriggerOwnProps = GetPropDefTypes<typeof comboboxTriggerPropDefs>\ntype ComboboxContentOwnProps = GetPropDefTypes<typeof comboboxContentPropDefs>\ntype ComboboxInputOwnProps = GetPropDefTypes<typeof comboboxInputPropDefs>\ntype ComboboxListOwnProps = GetPropDefTypes<typeof comboboxListPropDefs>\ntype ComboboxEmptyOwnProps = GetPropDefTypes<typeof comboboxEmptyPropDefs>\ntype ComboboxItemOwnProps = GetPropDefTypes<typeof comboboxItemPropDefs>\ntype ComboboxGroupOwnProps = GetPropDefTypes<typeof comboboxGroupPropDefs>\n\ntype ComboboxSize = NonNullable<ComboboxOwnProps['size']>\ntype ComboboxVariant = NonNullable<ComboboxOwnProps['variant']>\n\ntype ComboboxPresentationContextValue = {\n readonly size: ComboboxSize\n readonly variant: ComboboxVariant\n}\n\nconst ComboboxOpenContext = React.createContext(false)\nconst ComboboxPresentationContext = React.createContext<ComboboxPresentationContextValue>({\n size: 'md',\n variant: 'solid',\n})\n\ntype ComboboxProps = React.ComponentPropsWithoutRef<typeof Popover> & ComboboxOwnProps\ntype ComboboxTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverTrigger> & ComboboxTriggerOwnProps\ntype ComboboxContentProps = React.ComponentPropsWithoutRef<typeof PopoverContent> & ComboboxContentOwnProps\ntype ComboboxInputProps = CommandInputProps & ComboboxInputOwnProps\ntype ComboboxListProps = CommandListProps & ComboboxListOwnProps\ntype ComboboxEmptyProps = CommandEmptyProps & ComboboxEmptyOwnProps\ntype ComboboxItemProps = CommandItemProps & ComboboxItemOwnProps\ntype ComboboxGroupProps = CommandGroupProps & ComboboxGroupOwnProps\n\nconst ComboboxAnchor = PopoverAnchor\n\nfunction ComboboxRoot({ children, defaultOpen, onOpenChange, open: openProp, ...props }: ComboboxProps) {\n const { asChild: _asChild, color, radius, size = 'md', variant = 'solid', ...comboboxProps } = extractProps(props, comboboxPropDefs)\n const [open, setOpen] = useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n })\n const presentation = React.useMemo<ComboboxPresentationContextValue>(\n () => ({ size, variant }),\n [size, variant],\n )\n\n return (\n <ComboboxOpenContext.Provider value={open}>\n <ComboboxPresentationContext.Provider value={presentation}>\n <div\n data-accent-color={color}\n data-radius={radius}\n data-size={size}\n data-variant={variant}\n style={{ display: 'contents' }}\n >\n <Popover {...comboboxProps} open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </div>\n </ComboboxPresentationContext.Provider>\n </ComboboxOpenContext.Provider>\n )\n}\nComboboxRoot.displayName = 'Combobox'\n\nconst ComboboxTrigger = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, ComboboxTriggerProps>(\n ({ children, invalid = false, size: sizeProp, ...props }, forwardedRef) => {\n const { size: contextSize } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const { asChild, className, ...triggerProps } = extractProps(\n { ...props, invalid },\n comboboxTriggerPropDefs,\n )\n const valueWrapRef = React.useRef<HTMLSpanElement>(null)\n // Mirror the rendered value text into title (batch 4, P2): the trigger\n // ellipsizes long values, so the full text must stay discoverable on\n // hover. A MutationObserver keeps it in sync across selection changes.\n React.useLayoutEffect(() => {\n const el = valueWrapRef.current\n if (!el) return\n const sync = () => {\n const text = el.textContent ?? ''\n if (el.title !== text) el.title = text\n }\n sync()\n const observer = new MutationObserver(sync)\n observer.observe(el, { childList: true, characterData: true, subtree: true })\n return () => observer.disconnect()\n }, [])\n\n return (\n <PopoverTrigger\n {...triggerProps}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('dsx-combobox__trigger', className)}\n data-invalid={invalid ? 'true' : undefined}\n data-size={size}\n >\n {asChild ? (\n children\n ) : (\n <>\n <span ref={valueWrapRef} className=\"dsx-combobox__trigger-value\">{children}</span>\n <Icon name=\"chevron-down\" size=\"sm\" className=\"dsx-combobox__icon\" />\n </>\n )}\n </PopoverTrigger>\n )\n },\n)\nComboboxTrigger.displayName = 'ComboboxTrigger'\n\nconst ComboboxContent = React.forwardRef<React.ComponentRef<typeof PopoverContent>, ComboboxContentProps>(\n ({ children, forceMount = false, size: sizeProp, ...props }, forwardedRef) => {\n const open = React.useContext(ComboboxOpenContext)\n const { size: contextSize, variant } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const prefersReducedMotion = usePrefersReducedMotion()\n const { asChild: _asChild, className, ...contentProps } = extractProps(props, comboboxContentPropDefs)\n\n return (\n <PopoverContent\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-combobox__content', className)}\n size={size}\n data-variant={variant}\n showArrow={false}\n align=\"start\"\n {...(forceMount ? { forceMount: true as const } : null)}\n >\n <AnimatePresence initial={false}>\n {open || forceMount ? (\n <motion.div\n initial={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 4 }}\n animate={prefersReducedMotion ? { opacity: open ? 1 : 0 } : { opacity: open ? 1 : 0, y: open ? 0 : 2 }}\n exit={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 2 }}\n transition={prefersReducedMotion ? MOTION_TRANSITIONS.reduced : MOTION_TRANSITIONS.combobox}\n >\n <React.Suspense fallback={null}>\n <Command className=\"dsx-combobox__command\">{children}</Command>\n </React.Suspense>\n </motion.div>\n ) : null}\n </AnimatePresence>\n </PopoverContent>\n )\n },\n)\nComboboxContent.displayName = 'ComboboxContent'\n\nconst ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, comboboxInputPropDefs)\n\n return (\n <CommandInput\n {...inputProps}\n ref={forwardedRef}\n wrapperClassName=\"dsx-combobox__search\"\n className={classNames('dsx-combobox__input', className)}\n />\n )\n})\nComboboxInput.displayName = 'ComboboxInput'\n\nconst ComboboxList = React.forwardRef<HTMLDivElement, ComboboxListProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, comboboxListPropDefs)\n\n return <CommandList {...listProps} ref={forwardedRef} className={classNames('dsx-combobox__list', className)} />\n})\nComboboxList.displayName = 'ComboboxList'\n\nconst ComboboxEmpty = React.forwardRef<HTMLDivElement, ComboboxEmptyProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, comboboxEmptyPropDefs)\n\n return <CommandEmpty {...emptyProps} ref={forwardedRef} className={classNames('dsx-combobox__empty', className)} />\n})\nComboboxEmpty.displayName = 'ComboboxEmpty'\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, ComboboxItemProps>(\n ({ children, selected = false, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(\n { ...props, selected },\n comboboxItemPropDefs,\n )\n const itemRef = React.useRef<HTMLDivElement>(null)\n // Partition ItemMedia out of the text flow (batch 4): media must be a\n // direct flex child of the row so the row gap separates it from the text.\n const { media, rest } = React.useMemo(() => {\n const media: React.ReactNode[] = []\n const rest: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === ComboboxItemMedia) media.push(child)\n else rest.push(child)\n })\n return { media, rest }\n }, [children])\n // Panel-fit latch (batch 4): same contract as SelectItem \u2014 the row caps\n // itself to the panel content box in px; rows that fit keep no cap so the\n // panel grows to the longest option, rows that exceed it latch\n // data-overflow and wrap. One-way latch, always settles.\n React.useLayoutEffect(() => {\n const el = itemRef.current\n const panel = el?.closest('.dsx-combobox__content')\n if (!el || !panel) return\n const sync = () => {\n const panelStyle = getComputedStyle(panel)\n const cap =\n panel.clientWidth - parseFloat(panelStyle.paddingLeft) - parseFloat(panelStyle.paddingRight)\n if (el.hasAttribute('data-overflow')) {\n el.style.maxWidth = `${cap}px`\n return\n }\n if (el.scrollWidth > cap + 1) {\n el.style.maxWidth = `${cap}px`\n el.setAttribute('data-overflow', 'true')\n } else {\n el.style.maxWidth = ''\n }\n }\n sync()\n const observer = new ResizeObserver(sync)\n observer.observe(el)\n observer.observe(panel)\n return () => observer.disconnect()\n }, [])\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n itemRef.current = node\n if (typeof forwardedRef === 'function') forwardedRef(node)\n else if (forwardedRef) forwardedRef.current = node\n },\n [forwardedRef],\n )\n\n return (\n <CommandItem\n {...itemProps}\n ref={setRefs}\n aria-selected={selected}\n className={classNames('dsx-combobox__item', className)}\n data-selected={selected ? 'true' : undefined}\n >\n {media}\n <span className=\"dsx-combobox__item-text\">{rest}</span>\n {selected ? <Icon name=\"check\" size=\"sm\" className=\"dsx-combobox__item-icon\" /> : null}\n </CommandItem>\n )\n },\n)\nComboboxItem.displayName = 'ComboboxItem'\n\ntype ComboboxItemMediaProps = React.ComponentPropsWithoutRef<'div'>\n\nconst ComboboxItemMedia = React.forwardRef<HTMLDivElement, ComboboxItemMediaProps>(\n ({ className, ...props }, forwardedRef) => {\n return <div {...props} ref={forwardedRef} className={classNames('dsx-combobox__item-media', className)} />\n },\n)\nComboboxItemMedia.displayName = 'ComboboxItemMedia'\n\nconst ComboboxGroup = React.forwardRef<HTMLDivElement, ComboboxGroupProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...groupProps } = extractProps(props, comboboxGroupPropDefs)\n\n return <CommandGroup {...groupProps} ref={forwardedRef} className={classNames('dsx-combobox__group', className)} />\n})\nComboboxGroup.displayName = 'ComboboxGroup'\n\nconst Combobox: typeof ComboboxRoot & {\n Anchor: typeof ComboboxAnchor\n Content: typeof ComboboxContent\n Empty: typeof ComboboxEmpty\n Group: typeof ComboboxGroup\n Input: typeof ComboboxInput\n Item: typeof ComboboxItem\n ItemMedia: typeof ComboboxItemMedia\n List: typeof ComboboxList\n Trigger: typeof ComboboxTrigger\n} = Object.assign(ComboboxRoot, {\n Anchor: ComboboxAnchor,\n Content: ComboboxContent,\n Empty: ComboboxEmpty,\n Group: ComboboxGroup,\n Input: ComboboxInput,\n Item: ComboboxItem,\n ItemMedia: ComboboxItemMedia,\n List: ComboboxList,\n Trigger: ComboboxTrigger,\n})\n\nexport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemMedia,\n ComboboxList,\n ComboboxRoot,\n ComboboxTrigger,\n}\nexport type {\n ComboboxContentProps,\n ComboboxEmptyProps,\n ComboboxGroupProps,\n ComboboxInputProps,\n ComboboxItemProps,\n ComboboxItemMediaProps,\n ComboboxListProps,\n ComboboxProps,\n ComboboxTriggerProps,\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\n\nimport { usePrefersReducedMotion } from '../../_internal'\nimport { useFloatingLayerHost } from '../../_internal/floatingLayer'\nimport { MOTION_TRANSITIONS } from '../../_internal/motion'\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { AnimatePresence, motion } from '../../motion'\nimport { Icon } from '../icon/Icon'\nimport type {\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n} from '../command/Command'\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '../popover/Popover'\nimport {\n comboboxContentPropDefs,\n comboboxEmptyPropDefs,\n comboboxGroupPropDefs,\n comboboxInputPropDefs,\n comboboxItemPropDefs,\n comboboxListPropDefs,\n comboboxPropDefs,\n comboboxTriggerPropDefs,\n} from './combobox.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\nconst Command = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.Command })))\nconst CommandEmpty = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandEmpty })))\nconst CommandGroup = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandGroup })))\nconst CommandInput = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandInput })))\nconst CommandItem = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandItem })))\nconst CommandList = React.lazy(() => import('../command/Command').then((mod) => ({ default: mod.CommandList })))\n\nfunction useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n}: Pick<React.ComponentPropsWithoutRef<typeof Popover>, 'defaultOpen' | 'onOpenChange' | 'open'>) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false)\n const open = openProp ?? uncontrolledOpen\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (openProp === undefined) {\n setUncontrolledOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n },\n [onOpenChange, openProp],\n )\n\n return [open, handleOpenChange] as const\n}\n\ntype ComboboxOwnProps = GetPropDefTypes<typeof comboboxPropDefs>\ntype ComboboxTriggerOwnProps = GetPropDefTypes<typeof comboboxTriggerPropDefs>\ntype ComboboxContentOwnProps = GetPropDefTypes<typeof comboboxContentPropDefs>\ntype ComboboxInputOwnProps = GetPropDefTypes<typeof comboboxInputPropDefs>\ntype ComboboxListOwnProps = GetPropDefTypes<typeof comboboxListPropDefs>\ntype ComboboxEmptyOwnProps = GetPropDefTypes<typeof comboboxEmptyPropDefs>\ntype ComboboxItemOwnProps = GetPropDefTypes<typeof comboboxItemPropDefs>\ntype ComboboxGroupOwnProps = GetPropDefTypes<typeof comboboxGroupPropDefs>\n\ntype ComboboxSize = NonNullable<ComboboxOwnProps['size']>\ntype ComboboxVariant = NonNullable<ComboboxOwnProps['variant']>\n\ntype ComboboxPresentationContextValue = {\n readonly size: ComboboxSize\n readonly variant: ComboboxVariant\n}\n\nconst ComboboxOpenContext = React.createContext(false)\nconst ComboboxPresentationContext = React.createContext<ComboboxPresentationContextValue>({\n size: 'md',\n variant: 'solid',\n})\n\ntype ComboboxProps = React.ComponentPropsWithoutRef<typeof Popover> & ComboboxOwnProps\ntype ComboboxTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverTrigger> & ComboboxTriggerOwnProps\ntype ComboboxContentProps = React.ComponentPropsWithoutRef<typeof PopoverContent> & ComboboxContentOwnProps\ntype ComboboxInputProps = CommandInputProps & ComboboxInputOwnProps\ntype ComboboxListProps = CommandListProps & ComboboxListOwnProps\ntype ComboboxEmptyProps = CommandEmptyProps & ComboboxEmptyOwnProps\ntype ComboboxItemProps = CommandItemProps & ComboboxItemOwnProps\ntype ComboboxGroupProps = CommandGroupProps & ComboboxGroupOwnProps\n\nconst ComboboxAnchor = PopoverAnchor\n\nfunction ComboboxRoot({ children, defaultOpen, onOpenChange, open: openProp, ...props }: ComboboxProps) {\n const { asChild: _asChild, color, radius, size = 'md', variant = 'solid', ...comboboxProps } = extractProps(props, comboboxPropDefs)\n const [open, setOpen] = useControllableComboboxOpenState({\n open: openProp,\n defaultOpen,\n onOpenChange,\n })\n const presentation = React.useMemo<ComboboxPresentationContextValue>(\n () => ({ size, variant }),\n [size, variant],\n )\n\n return (\n <ComboboxOpenContext.Provider value={open}>\n <ComboboxPresentationContext.Provider value={presentation}>\n <div\n data-accent-color={color}\n data-radius={radius}\n data-size={size}\n data-variant={variant}\n style={{ display: 'contents' }}\n >\n <Popover {...comboboxProps} open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </div>\n </ComboboxPresentationContext.Provider>\n </ComboboxOpenContext.Provider>\n )\n}\nComboboxRoot.displayName = 'Combobox'\n\nconst ComboboxTrigger = React.forwardRef<React.ComponentRef<typeof PopoverTrigger>, ComboboxTriggerProps>(\n ({ children, invalid = false, size: sizeProp, ...props }, forwardedRef) => {\n const { size: contextSize } = React.useContext(ComboboxPresentationContext)\n const size = sizeProp ?? contextSize\n const { asChild, className, ...triggerProps } = extractProps(\n { ...props, invalid },\n comboboxTriggerPropDefs,\n )\n const valueWrapRef = React.useRef<HTMLSpanElement>(null)\n // Mirror the rendered value text into title (batch 4, P2): the trigger\n // ellipsizes long values, so the full text must stay discoverable on\n // hover. A MutationObserver keeps it in sync across selection changes.\n React.useLayoutEffect(() => {\n const el = valueWrapRef.current\n if (!el) return\n const sync = () => {\n const text = el.textContent ?? ''\n if (el.title !== text) el.title = text\n }\n sync()\n const observer = new MutationObserver(sync)\n observer.observe(el, { childList: true, characterData: true, subtree: true })\n return () => observer.disconnect()\n }, [])\n\n return (\n <PopoverTrigger\n {...triggerProps}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('dsx-combobox__trigger', className)}\n data-invalid={invalid ? 'true' : undefined}\n data-size={size}\n >\n {asChild ? (\n children\n ) : (\n <>\n <span ref={valueWrapRef} className=\"dsx-combobox__trigger-value\">{children}</span>\n <Icon name=\"chevron-down\" size=\"sm\" className=\"dsx-combobox__icon\" />\n </>\n )}\n </PopoverTrigger>\n )\n },\n)\nComboboxTrigger.displayName = 'ComboboxTrigger'\n\nconst ComboboxContent = React.forwardRef<React.ComponentRef<typeof PopoverContent>, ComboboxContentProps>(\n ({ children, forceMount = false, size: sizeProp, ...props }, forwardedRef) => {\n const open = React.useContext(ComboboxOpenContext)\n const { size: contextSize, variant } = React.useContext(ComboboxPresentationContext)\n const nestedInModalHost = useFloatingLayerHost()\n const size = sizeProp ?? contextSize\n const prefersReducedMotion = usePrefersReducedMotion()\n const { asChild: _asChild, className, ...contentProps } = extractProps(props, comboboxContentPropDefs)\n\n return (\n <PopoverContent\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-combobox__content', nestedInModalHost && 'dsx-menu__nested', className)}\n size={size}\n data-variant={variant}\n showArrow={false}\n align=\"start\"\n {...(forceMount ? { forceMount: true as const } : null)}\n >\n <AnimatePresence initial={false}>\n {open || forceMount ? (\n <motion.div\n initial={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 4 }}\n animate={prefersReducedMotion ? { opacity: open ? 1 : 0 } : { opacity: open ? 1 : 0, y: open ? 0 : 2 }}\n exit={prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 2 }}\n transition={prefersReducedMotion ? MOTION_TRANSITIONS.reduced : MOTION_TRANSITIONS.combobox}\n >\n <React.Suspense fallback={null}>\n <Command className=\"dsx-combobox__command\">{children}</Command>\n </React.Suspense>\n </motion.div>\n ) : null}\n </AnimatePresence>\n </PopoverContent>\n )\n },\n)\nComboboxContent.displayName = 'ComboboxContent'\n\nconst ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, comboboxInputPropDefs)\n\n return (\n <CommandInput\n {...inputProps}\n ref={forwardedRef}\n wrapperClassName=\"dsx-combobox__search\"\n className={classNames('dsx-combobox__input', className)}\n />\n )\n})\nComboboxInput.displayName = 'ComboboxInput'\n\nconst ComboboxList = React.forwardRef<HTMLDivElement, ComboboxListProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, comboboxListPropDefs)\n\n return <CommandList {...listProps} ref={forwardedRef} className={classNames('dsx-combobox__list', className)} />\n})\nComboboxList.displayName = 'ComboboxList'\n\nconst ComboboxEmpty = React.forwardRef<HTMLDivElement, ComboboxEmptyProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, comboboxEmptyPropDefs)\n\n return <CommandEmpty {...emptyProps} ref={forwardedRef} className={classNames('dsx-combobox__empty', className)} />\n})\nComboboxEmpty.displayName = 'ComboboxEmpty'\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, ComboboxItemProps>(\n ({ children, selected = false, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(\n { ...props, selected },\n comboboxItemPropDefs,\n )\n const itemRef = React.useRef<HTMLDivElement>(null)\n // Partition ItemMedia out of the text flow (batch 4): media must be a\n // direct flex child of the row so the row gap separates it from the text.\n const { media, rest } = React.useMemo(() => {\n const media: React.ReactNode[] = []\n const rest: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === ComboboxItemMedia) media.push(child)\n else rest.push(child)\n })\n return { media, rest }\n }, [children])\n // Panel-fit latch (batch 4): same contract as SelectItem \u2014 the row caps\n // itself to the panel content box in px; rows that fit keep no cap so the\n // panel grows to the longest option, rows that exceed it latch\n // data-overflow and wrap. One-way latch, always settles.\n React.useLayoutEffect(() => {\n const el = itemRef.current\n const panel = el?.closest('.dsx-combobox__content')\n if (!el || !panel) return\n const sync = () => {\n const panelStyle = getComputedStyle(panel)\n const cap =\n panel.clientWidth - parseFloat(panelStyle.paddingLeft) - parseFloat(panelStyle.paddingRight)\n if (el.hasAttribute('data-overflow')) {\n el.style.maxWidth = `${cap}px`\n return\n }\n if (el.scrollWidth > cap + 1) {\n el.style.maxWidth = `${cap}px`\n el.setAttribute('data-overflow', 'true')\n } else {\n el.style.maxWidth = ''\n }\n }\n sync()\n const observer = new ResizeObserver(sync)\n observer.observe(el)\n observer.observe(panel)\n return () => observer.disconnect()\n }, [])\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n itemRef.current = node\n if (typeof forwardedRef === 'function') forwardedRef(node)\n else if (forwardedRef) forwardedRef.current = node\n },\n [forwardedRef],\n )\n\n return (\n <CommandItem\n {...itemProps}\n ref={setRefs}\n aria-selected={selected}\n className={classNames('dsx-combobox__item', className)}\n data-selected={selected ? 'true' : undefined}\n >\n {media}\n <span className=\"dsx-combobox__item-text\">{rest}</span>\n {selected ? <Icon name=\"check\" size=\"sm\" className=\"dsx-combobox__item-icon\" /> : null}\n </CommandItem>\n )\n },\n)\nComboboxItem.displayName = 'ComboboxItem'\n\ntype ComboboxItemMediaProps = React.ComponentPropsWithoutRef<'div'>\n\nconst ComboboxItemMedia = React.forwardRef<HTMLDivElement, ComboboxItemMediaProps>(\n ({ className, ...props }, forwardedRef) => {\n return <div {...props} ref={forwardedRef} className={classNames('dsx-combobox__item-media', className)} />\n },\n)\nComboboxItemMedia.displayName = 'ComboboxItemMedia'\n\nconst ComboboxGroup = React.forwardRef<HTMLDivElement, ComboboxGroupProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, ...groupProps } = extractProps(props, comboboxGroupPropDefs)\n\n return <CommandGroup {...groupProps} ref={forwardedRef} className={classNames('dsx-combobox__group', className)} />\n})\nComboboxGroup.displayName = 'ComboboxGroup'\n\nconst Combobox: typeof ComboboxRoot & {\n Anchor: typeof ComboboxAnchor\n Content: typeof ComboboxContent\n Empty: typeof ComboboxEmpty\n Group: typeof ComboboxGroup\n Input: typeof ComboboxInput\n Item: typeof ComboboxItem\n ItemMedia: typeof ComboboxItemMedia\n List: typeof ComboboxList\n Trigger: typeof ComboboxTrigger\n} = Object.assign(ComboboxRoot, {\n Anchor: ComboboxAnchor,\n Content: ComboboxContent,\n Empty: ComboboxEmpty,\n Group: ComboboxGroup,\n Input: ComboboxInput,\n Item: ComboboxItem,\n ItemMedia: ComboboxItemMedia,\n List: ComboboxList,\n Trigger: ComboboxTrigger,\n})\n\nexport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemMedia,\n ComboboxList,\n ComboboxRoot,\n ComboboxTrigger,\n}\nexport type {\n ComboboxContentProps,\n ComboboxEmptyProps,\n ComboboxGroupProps,\n ComboboxInputProps,\n ComboboxItemProps,\n ComboboxItemMediaProps,\n ComboboxListProps,\n ComboboxProps,\n ComboboxTriggerProps,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["media", "rest"]
|
|
7
7
|
}
|
|
@@ -81,6 +81,10 @@
|
|
|
81
81
|
backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
|
|
82
82
|
border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
|
|
83
83
|
border-radius: var(--dsx-rounded-lg);
|
|
84
|
+
/* Menu tier (B4 Q3): the merged Popover base paints step 4 here, which
|
|
85
|
+
outranks dialogs' peers — reassert step 3 in the component file, where it
|
|
86
|
+
wins by order. Same expression as baseMenu. */
|
|
87
|
+
box-shadow: var(--dsx-menu-content-elevation, var(--dsx-shadow-elevation-3));
|
|
84
88
|
display: flex;
|
|
85
89
|
flex-direction: column;
|
|
86
90
|
overflow: hidden;
|
|
@@ -148,7 +152,7 @@
|
|
|
148
152
|
justify-content: space-between;
|
|
149
153
|
gap: var(--dsx-space-sm);
|
|
150
154
|
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
151
|
-
border-radius:
|
|
155
|
+
border-radius: 0;
|
|
152
156
|
cursor: pointer;
|
|
153
157
|
color: var(--dsx-color-on-surface);
|
|
154
158
|
font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
|
|
@@ -199,7 +199,7 @@ const CommandList = React.forwardRef(
|
|
|
199
199
|
{
|
|
200
200
|
...listProps,
|
|
201
201
|
ref: forwardedRef,
|
|
202
|
-
className: (0, import_classnames.default)("dsx-command__list
|
|
202
|
+
className: (0, import_classnames.default)("dsx-command__list", className),
|
|
203
203
|
"data-slot": "command-list"
|
|
204
204
|
}
|
|
205
205
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/command/Command.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Icon } from '../icon/Icon'\nimport { Spinner } from '../spinner/Spinner'\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from '../dialog/Dialog'\nimport { Kbd } from '../kbd/Kbd'\nimport { VisuallyHidden } from '../visuallyHidden/VisuallyHidden'\nimport {\n commandDialogPropDefs,\n commandEmptyPropDefs,\n commandGroupPropDefs,\n commandInputPropDefs,\n commandItemPropDefs,\n commandListPropDefs,\n commandLoadingPropDefs,\n commandPropDefs,\n commandSeparatorPropDefs,\n commandShortcutPropDefs,\n} from './command.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\n// ---------------------------------------------------------------------------\n// Command Registry\n// ---------------------------------------------------------------------------\n\ntype CommandRegistryItem = {\n id: string\n label: string\n shortcut?: string\n icon?: React.ReactNode\n action?: () => void\n keywords?: string[]\n section?: string\n}\n\ntype CommandRegistryValue = {\n commands: CommandRegistryItem[]\n register: (command: CommandRegistryItem) => void\n unregister: (id: string) => void\n}\n\nconst CommandRegistryContext = React.createContext<CommandRegistryValue | null>(null)\n\nfunction useCommandRegistry() {\n const ctx = React.useContext(CommandRegistryContext)\n if (!ctx) {\n return {\n commands: [],\n register: () => {},\n unregister: () => {},\n }\n }\n return ctx\n}\n\nfunction CommandRegistryProvider({ children }: { children: React.ReactNode }) {\n const [commands, setCommands] = React.useState<CommandRegistryItem[]>([])\n\n const register = React.useCallback((command: CommandRegistryItem) => {\n setCommands((prev) => {\n if (prev.some((c) => c.id === command.id)) return prev\n return [...prev, command]\n })\n }, [])\n\n const unregister = React.useCallback((id: string) => {\n setCommands((prev) => prev.filter((c) => c.id !== id))\n }, [])\n\n const value = React.useMemo(() => ({ commands, register, unregister }), [commands, register, unregister])\n\n return (\n <CommandRegistryContext.Provider value={value}>\n {children}\n </CommandRegistryContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Keyboard Shortcut Hook\n// ---------------------------------------------------------------------------\n\nfunction normalizeShortcut(shortcut: string): string {\n return shortcut\n .toLowerCase()\n .split('+')\n .map((part) => part.trim())\n .sort((a, b) => {\n const order = ['meta', 'ctrl', 'alt', 'shift']\n const ai = order.indexOf(a)\n const bi = order.indexOf(b)\n if (ai !== -1 && bi !== -1) return ai - bi\n if (ai !== -1) return -1\n if (bi !== -1) return 1\n return a.localeCompare(b)\n })\n .join('+')\n}\n\nfunction useCommandShortcut(\n shortcut: string,\n action: (event: KeyboardEvent) => void,\n options?: { preventDefault?: boolean },\n) {\n const { preventDefault = true } = options ?? {}\n\n React.useEffect(() => {\n const normalized = normalizeShortcut(shortcut)\n const parts = normalized.split('+')\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const expectMeta = parts.includes('meta')\n const expectCtrl = parts.includes('ctrl')\n const expectAlt = parts.includes('alt')\n const expectShift = parts.includes('shift')\n\n const hasMeta = expectMeta ? event.metaKey : !event.metaKey\n const hasCtrl = expectCtrl ? event.ctrlKey : !event.ctrlKey\n const hasAlt = expectAlt ? event.altKey : !event.altKey\n const hasShift = expectShift ? event.shiftKey : !event.shiftKey\n\n const key = event.key.toLowerCase()\n const expectKey = parts.find((p) => !['meta', 'ctrl', 'alt', 'shift'].includes(p))\n\n if (hasMeta && hasCtrl && hasAlt && hasShift && expectKey && key === expectKey) {\n if (preventDefault) event.preventDefault()\n action(event)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [shortcut, action, preventDefault])\n}\n\ntype CommandOwnProps = GetPropDefTypes<typeof commandPropDefs>\ntype CommandInputOwnProps = GetPropDefTypes<typeof commandInputPropDefs> & { wrapperClassName?: string }\ntype CommandListOwnProps = GetPropDefTypes<typeof commandListPropDefs>\ntype CommandEmptyOwnProps = GetPropDefTypes<typeof commandEmptyPropDefs>\ntype CommandGroupOwnProps = GetPropDefTypes<typeof commandGroupPropDefs>\ntype CommandSeparatorOwnProps = GetPropDefTypes<typeof commandSeparatorPropDefs>\ntype CommandItemOwnProps = GetPropDefTypes<typeof commandItemPropDefs>\ntype CommandShortcutOwnProps = GetPropDefTypes<typeof commandShortcutPropDefs>\ntype CommandLoadingOwnProps = GetPropDefTypes<typeof commandLoadingPropDefs> & { label?: string }\n\ntype CommandProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive> & CommandOwnProps\ntype CommandDialogProps = React.ComponentPropsWithoutRef<typeof Dialog> & GetPropDefTypes<typeof commandDialogPropDefs> & {\n shortcut?: string | false\n}\ntype CommandInputProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & CommandInputOwnProps\ntype CommandListProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> & CommandListOwnProps\ntype CommandEmptyProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> & CommandEmptyOwnProps\ntype CommandGroupProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> & CommandGroupOwnProps\ntype CommandSeparatorProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> & CommandSeparatorOwnProps\ntype CommandItemProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> & CommandItemOwnProps\ntype CommandShortcutProps = React.HTMLAttributes<HTMLElement> & CommandShortcutOwnProps\ntype CommandLoadingProps = React.HTMLAttributes<HTMLDivElement> & CommandLoadingOwnProps\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, size = 'md', ...commandProps } = extractProps(props, commandPropDefs)\n\n return (\n <CommandPrimitive\n {...commandProps}\n ref={forwardedRef}\n className={classNames('dsx-command', className)}\n data-size={size}\n data-slot=\"command\"\n />\n )\n})\nCommand.displayName = CommandPrimitive.displayName ?? 'Command'\n\nfunction CommandDialog({ children, shortcut = 'meta+k', ...props }: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const isControlled = 'open' in props\n const { title = 'Command menu', description, ...dialogProps } = extractProps(props, commandDialogPropDefs)\n const open = isControlled ? (dialogProps.open as boolean) : internalOpen\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n dialogProps.onOpenChange?.(nextOpen)\n },\n [isControlled, dialogProps.onOpenChange],\n )\n\n const toggleOpen = React.useCallback(\n () => {\n setOpen(!open)\n },\n [open, setOpen],\n )\n\n if (shortcut !== false) {\n useCommandShortcut(shortcut, toggleOpen)\n }\n\n return (\n <CommandRegistryProvider>\n <Dialog {...dialogProps} open={open} onOpenChange={setOpen}>\n <DialogContent>\n <VisuallyHidden asChild>\n <DialogTitle>{title}</DialogTitle>\n </VisuallyHidden>\n {description ? (\n <VisuallyHidden asChild>\n <DialogDescription>{description}</DialogDescription>\n </VisuallyHidden>\n ) : null}\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n </CommandRegistryProvider>\n )\n}\nCommandDialog.displayName = 'CommandDialog'\n\nconst CommandInput = React.forwardRef<HTMLInputElement, CommandInputProps>(\n ({ wrapperClassName, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, commandInputPropDefs)\n\n return (\n <div\n className={classNames('dsx-command__input-wrapper', wrapperClassName)}\n data-slot=\"command-input-wrapper\"\n cmdk-input-wrapper=\"\"\n >\n <Icon name=\"search\" size=\"sm\" className=\"dsx-command__input-icon\" data-slot=\"command-input-icon\" />\n <CommandPrimitive.Input\n {...inputProps}\n ref={forwardedRef}\n className={classNames('dsx-command__input dsx-input', className)}\n data-slot=\"command-input\"\n />\n </div>\n )\n },\n)\nCommandInput.displayName = CommandPrimitive.Input.displayName ?? 'CommandInput'\n\nconst CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, commandListPropDefs)\n\n return (\n <CommandPrimitive.List\n {...listProps}\n ref={forwardedRef}\n className={classNames('dsx-command__list dsx-scroll-area', className)}\n data-slot=\"command-list\"\n />\n )\n },\n)\nCommandList.displayName = CommandPrimitive.List.displayName ?? 'CommandList'\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, commandEmptyPropDefs)\n\n return (\n <CommandPrimitive.Empty\n {...emptyProps}\n ref={forwardedRef}\n className={classNames('dsx-command__empty', className)}\n data-slot=\"command-empty\"\n />\n )\n },\n)\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName ?? 'CommandEmpty'\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, heading, ...groupProps } = extractProps(props, commandGroupPropDefs)\n\n return (\n <CommandPrimitive.Group\n {...groupProps}\n heading={heading}\n ref={forwardedRef}\n className={classNames('dsx-command__group', className)}\n data-slot=\"command-group\"\n data-section={typeof heading === 'string' ? heading.toLowerCase().replace(/\\s+/g, '-') : undefined}\n />\n )\n },\n)\nCommandGroup.displayName = CommandPrimitive.Group.displayName ?? 'CommandGroup'\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, CommandSeparatorProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...separatorProps } = extractProps(props, commandSeparatorPropDefs)\n\n return (\n <CommandPrimitive.Separator\n {...separatorProps}\n ref={forwardedRef}\n className={classNames('dsx-command__separator dsx-separator', className)}\n data-slot=\"command-separator\"\n />\n )\n },\n)\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName ?? 'CommandSeparator'\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(props, commandItemPropDefs)\n\n return (\n <CommandPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('dsx-command__item', className)}\n data-slot=\"command-item\"\n />\n )\n },\n)\nCommandItem.displayName = CommandPrimitive.Item.displayName ?? 'CommandItem'\n\nconst CommandShortcut = React.forwardRef<HTMLElement, CommandShortcutProps>((props, forwardedRef) => {\n const { asChild, className, ...shortcutProps } = extractProps(props, commandShortcutPropDefs)\n const Comp = asChild ? Slot : Kbd\n\n return (\n <Comp\n {...shortcutProps}\n ref={forwardedRef}\n className={classNames('dsx-command__shortcut', className)}\n data-slot=\"command-shortcut\"\n />\n )\n})\nCommandShortcut.displayName = 'CommandShortcut'\n\nconst CommandLoading = React.forwardRef<HTMLDivElement, CommandLoadingProps>((props, forwardedRef) => {\n const { asChild, className, label = 'Loading', ...loadingProps } = extractProps(props, commandLoadingPropDefs)\n\n if (asChild) {\n return (\n <Slot {...loadingProps} ref={forwardedRef} className={classNames('dsx-command__loading', className)} data-slot=\"command-loading\" />\n )\n }\n\n return (\n <div\n {...loadingProps}\n ref={forwardedRef}\n className={classNames('dsx-command__loading', className)}\n data-slot=\"command-loading\"\n >\n <Spinner size=\"sm\" label={label} />\n </div>\n )\n})\nCommandLoading.displayName = 'CommandLoading'\n\nconst CommandMenu: typeof Command & {\n Dialog: typeof CommandDialog\n Empty: typeof CommandEmpty\n Group: typeof CommandGroup\n Input: typeof CommandInput\n Item: typeof CommandItem\n List: typeof CommandList\n Loading: typeof CommandLoading\n Separator: typeof CommandSeparator\n Shortcut: typeof CommandShortcut\n} = Object.assign(Command, {\n Dialog: CommandDialog,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Input: CommandInput,\n Item: CommandItem,\n List: CommandList,\n Loading: CommandLoading,\n Separator: CommandSeparator,\n Shortcut: CommandShortcut,\n})\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandMenu,\n CommandRegistryProvider,\n CommandSeparator,\n CommandShortcut,\n useCommandRegistry,\n useCommandShortcut,\n}\nexport type {\n CommandDialogProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n CommandLoadingProps,\n CommandProps,\n CommandRegistryItem,\n CommandRegistryValue,\n CommandSeparatorProps,\n CommandShortcutProps,\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Icon } from '../icon/Icon'\nimport { Spinner } from '../spinner/Spinner'\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from '../dialog/Dialog'\nimport { Kbd } from '../kbd/Kbd'\nimport { VisuallyHidden } from '../visuallyHidden/VisuallyHidden'\nimport {\n commandDialogPropDefs,\n commandEmptyPropDefs,\n commandGroupPropDefs,\n commandInputPropDefs,\n commandItemPropDefs,\n commandListPropDefs,\n commandLoadingPropDefs,\n commandPropDefs,\n commandSeparatorPropDefs,\n commandShortcutPropDefs,\n} from './command.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\n// ---------------------------------------------------------------------------\n// Command Registry\n// ---------------------------------------------------------------------------\n\ntype CommandRegistryItem = {\n id: string\n label: string\n shortcut?: string\n icon?: React.ReactNode\n action?: () => void\n keywords?: string[]\n section?: string\n}\n\ntype CommandRegistryValue = {\n commands: CommandRegistryItem[]\n register: (command: CommandRegistryItem) => void\n unregister: (id: string) => void\n}\n\nconst CommandRegistryContext = React.createContext<CommandRegistryValue | null>(null)\n\nfunction useCommandRegistry() {\n const ctx = React.useContext(CommandRegistryContext)\n if (!ctx) {\n return {\n commands: [],\n register: () => {},\n unregister: () => {},\n }\n }\n return ctx\n}\n\nfunction CommandRegistryProvider({ children }: { children: React.ReactNode }) {\n const [commands, setCommands] = React.useState<CommandRegistryItem[]>([])\n\n const register = React.useCallback((command: CommandRegistryItem) => {\n setCommands((prev) => {\n if (prev.some((c) => c.id === command.id)) return prev\n return [...prev, command]\n })\n }, [])\n\n const unregister = React.useCallback((id: string) => {\n setCommands((prev) => prev.filter((c) => c.id !== id))\n }, [])\n\n const value = React.useMemo(() => ({ commands, register, unregister }), [commands, register, unregister])\n\n return (\n <CommandRegistryContext.Provider value={value}>\n {children}\n </CommandRegistryContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Keyboard Shortcut Hook\n// ---------------------------------------------------------------------------\n\nfunction normalizeShortcut(shortcut: string): string {\n return shortcut\n .toLowerCase()\n .split('+')\n .map((part) => part.trim())\n .sort((a, b) => {\n const order = ['meta', 'ctrl', 'alt', 'shift']\n const ai = order.indexOf(a)\n const bi = order.indexOf(b)\n if (ai !== -1 && bi !== -1) return ai - bi\n if (ai !== -1) return -1\n if (bi !== -1) return 1\n return a.localeCompare(b)\n })\n .join('+')\n}\n\nfunction useCommandShortcut(\n shortcut: string,\n action: (event: KeyboardEvent) => void,\n options?: { preventDefault?: boolean },\n) {\n const { preventDefault = true } = options ?? {}\n\n React.useEffect(() => {\n const normalized = normalizeShortcut(shortcut)\n const parts = normalized.split('+')\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const expectMeta = parts.includes('meta')\n const expectCtrl = parts.includes('ctrl')\n const expectAlt = parts.includes('alt')\n const expectShift = parts.includes('shift')\n\n const hasMeta = expectMeta ? event.metaKey : !event.metaKey\n const hasCtrl = expectCtrl ? event.ctrlKey : !event.ctrlKey\n const hasAlt = expectAlt ? event.altKey : !event.altKey\n const hasShift = expectShift ? event.shiftKey : !event.shiftKey\n\n const key = event.key.toLowerCase()\n const expectKey = parts.find((p) => !['meta', 'ctrl', 'alt', 'shift'].includes(p))\n\n if (hasMeta && hasCtrl && hasAlt && hasShift && expectKey && key === expectKey) {\n if (preventDefault) event.preventDefault()\n action(event)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [shortcut, action, preventDefault])\n}\n\ntype CommandOwnProps = GetPropDefTypes<typeof commandPropDefs>\ntype CommandInputOwnProps = GetPropDefTypes<typeof commandInputPropDefs> & { wrapperClassName?: string }\ntype CommandListOwnProps = GetPropDefTypes<typeof commandListPropDefs>\ntype CommandEmptyOwnProps = GetPropDefTypes<typeof commandEmptyPropDefs>\ntype CommandGroupOwnProps = GetPropDefTypes<typeof commandGroupPropDefs>\ntype CommandSeparatorOwnProps = GetPropDefTypes<typeof commandSeparatorPropDefs>\ntype CommandItemOwnProps = GetPropDefTypes<typeof commandItemPropDefs>\ntype CommandShortcutOwnProps = GetPropDefTypes<typeof commandShortcutPropDefs>\ntype CommandLoadingOwnProps = GetPropDefTypes<typeof commandLoadingPropDefs> & { label?: string }\n\ntype CommandProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive> & CommandOwnProps\ntype CommandDialogProps = React.ComponentPropsWithoutRef<typeof Dialog> & GetPropDefTypes<typeof commandDialogPropDefs> & {\n shortcut?: string | false\n}\ntype CommandInputProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & CommandInputOwnProps\ntype CommandListProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> & CommandListOwnProps\ntype CommandEmptyProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> & CommandEmptyOwnProps\ntype CommandGroupProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> & CommandGroupOwnProps\ntype CommandSeparatorProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> & CommandSeparatorOwnProps\ntype CommandItemProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> & CommandItemOwnProps\ntype CommandShortcutProps = React.HTMLAttributes<HTMLElement> & CommandShortcutOwnProps\ntype CommandLoadingProps = React.HTMLAttributes<HTMLDivElement> & CommandLoadingOwnProps\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, size = 'md', ...commandProps } = extractProps(props, commandPropDefs)\n\n return (\n <CommandPrimitive\n {...commandProps}\n ref={forwardedRef}\n className={classNames('dsx-command', className)}\n data-size={size}\n data-slot=\"command\"\n />\n )\n})\nCommand.displayName = CommandPrimitive.displayName ?? 'Command'\n\nfunction CommandDialog({ children, shortcut = 'meta+k', ...props }: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const isControlled = 'open' in props\n const { title = 'Command menu', description, ...dialogProps } = extractProps(props, commandDialogPropDefs)\n const open = isControlled ? (dialogProps.open as boolean) : internalOpen\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n dialogProps.onOpenChange?.(nextOpen)\n },\n [isControlled, dialogProps.onOpenChange],\n )\n\n const toggleOpen = React.useCallback(\n () => {\n setOpen(!open)\n },\n [open, setOpen],\n )\n\n if (shortcut !== false) {\n useCommandShortcut(shortcut, toggleOpen)\n }\n\n return (\n <CommandRegistryProvider>\n <Dialog {...dialogProps} open={open} onOpenChange={setOpen}>\n <DialogContent>\n <VisuallyHidden asChild>\n <DialogTitle>{title}</DialogTitle>\n </VisuallyHidden>\n {description ? (\n <VisuallyHidden asChild>\n <DialogDescription>{description}</DialogDescription>\n </VisuallyHidden>\n ) : null}\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n </CommandRegistryProvider>\n )\n}\nCommandDialog.displayName = 'CommandDialog'\n\nconst CommandInput = React.forwardRef<HTMLInputElement, CommandInputProps>(\n ({ wrapperClassName, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, commandInputPropDefs)\n\n return (\n <div\n className={classNames('dsx-command__input-wrapper', wrapperClassName)}\n data-slot=\"command-input-wrapper\"\n cmdk-input-wrapper=\"\"\n >\n <Icon name=\"search\" size=\"sm\" className=\"dsx-command__input-icon\" data-slot=\"command-input-icon\" />\n <CommandPrimitive.Input\n {...inputProps}\n ref={forwardedRef}\n className={classNames('dsx-command__input dsx-input', className)}\n data-slot=\"command-input\"\n />\n </div>\n )\n },\n)\nCommandInput.displayName = CommandPrimitive.Input.displayName ?? 'CommandInput'\n\nconst CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, commandListPropDefs)\n\n return (\n <CommandPrimitive.List\n {...listProps}\n ref={forwardedRef}\n className={classNames('dsx-command__list', className)}\n data-slot=\"command-list\"\n />\n )\n },\n)\nCommandList.displayName = CommandPrimitive.List.displayName ?? 'CommandList'\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, commandEmptyPropDefs)\n\n return (\n <CommandPrimitive.Empty\n {...emptyProps}\n ref={forwardedRef}\n className={classNames('dsx-command__empty', className)}\n data-slot=\"command-empty\"\n />\n )\n },\n)\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName ?? 'CommandEmpty'\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, heading, ...groupProps } = extractProps(props, commandGroupPropDefs)\n\n return (\n <CommandPrimitive.Group\n {...groupProps}\n heading={heading}\n ref={forwardedRef}\n className={classNames('dsx-command__group', className)}\n data-slot=\"command-group\"\n data-section={typeof heading === 'string' ? heading.toLowerCase().replace(/\\s+/g, '-') : undefined}\n />\n )\n },\n)\nCommandGroup.displayName = CommandPrimitive.Group.displayName ?? 'CommandGroup'\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, CommandSeparatorProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...separatorProps } = extractProps(props, commandSeparatorPropDefs)\n\n return (\n <CommandPrimitive.Separator\n {...separatorProps}\n ref={forwardedRef}\n className={classNames('dsx-command__separator dsx-separator', className)}\n data-slot=\"command-separator\"\n />\n )\n },\n)\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName ?? 'CommandSeparator'\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(props, commandItemPropDefs)\n\n return (\n <CommandPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('dsx-command__item', className)}\n data-slot=\"command-item\"\n />\n )\n },\n)\nCommandItem.displayName = CommandPrimitive.Item.displayName ?? 'CommandItem'\n\nconst CommandShortcut = React.forwardRef<HTMLElement, CommandShortcutProps>((props, forwardedRef) => {\n const { asChild, className, ...shortcutProps } = extractProps(props, commandShortcutPropDefs)\n const Comp = asChild ? Slot : Kbd\n\n return (\n <Comp\n {...shortcutProps}\n ref={forwardedRef}\n className={classNames('dsx-command__shortcut', className)}\n data-slot=\"command-shortcut\"\n />\n )\n})\nCommandShortcut.displayName = 'CommandShortcut'\n\nconst CommandLoading = React.forwardRef<HTMLDivElement, CommandLoadingProps>((props, forwardedRef) => {\n const { asChild, className, label = 'Loading', ...loadingProps } = extractProps(props, commandLoadingPropDefs)\n\n if (asChild) {\n return (\n <Slot {...loadingProps} ref={forwardedRef} className={classNames('dsx-command__loading', className)} data-slot=\"command-loading\" />\n )\n }\n\n return (\n <div\n {...loadingProps}\n ref={forwardedRef}\n className={classNames('dsx-command__loading', className)}\n data-slot=\"command-loading\"\n >\n <Spinner size=\"sm\" label={label} />\n </div>\n )\n})\nCommandLoading.displayName = 'CommandLoading'\n\nconst CommandMenu: typeof Command & {\n Dialog: typeof CommandDialog\n Empty: typeof CommandEmpty\n Group: typeof CommandGroup\n Input: typeof CommandInput\n Item: typeof CommandItem\n List: typeof CommandList\n Loading: typeof CommandLoading\n Separator: typeof CommandSeparator\n Shortcut: typeof CommandShortcut\n} = Object.assign(Command, {\n Dialog: CommandDialog,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Input: CommandInput,\n Item: CommandItem,\n List: CommandList,\n Loading: CommandLoading,\n Separator: CommandSeparator,\n Shortcut: CommandShortcut,\n})\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandMenu,\n CommandRegistryProvider,\n CommandSeparator,\n CommandShortcut,\n useCommandRegistry,\n useCommandShortcut,\n}\nexport type {\n CommandDialogProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n CommandLoadingProps,\n CommandProps,\n CommandRegistryItem,\n CommandRegistryValue,\n CommandSeparatorProps,\n CommandShortcutProps,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["CommandPrimitive", "classNames"]
|
|
7
7
|
}
|
|
@@ -164,7 +164,7 @@ const CommandList = React.forwardRef(
|
|
|
164
164
|
{
|
|
165
165
|
...listProps,
|
|
166
166
|
ref: forwardedRef,
|
|
167
|
-
className: classNames("dsx-command__list
|
|
167
|
+
className: classNames("dsx-command__list", className),
|
|
168
168
|
"data-slot": "command-list"
|
|
169
169
|
}
|
|
170
170
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/command/Command.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Icon } from '../icon/Icon'\nimport { Spinner } from '../spinner/Spinner'\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from '../dialog/Dialog'\nimport { Kbd } from '../kbd/Kbd'\nimport { VisuallyHidden } from '../visuallyHidden/VisuallyHidden'\nimport {\n commandDialogPropDefs,\n commandEmptyPropDefs,\n commandGroupPropDefs,\n commandInputPropDefs,\n commandItemPropDefs,\n commandListPropDefs,\n commandLoadingPropDefs,\n commandPropDefs,\n commandSeparatorPropDefs,\n commandShortcutPropDefs,\n} from './command.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\n// ---------------------------------------------------------------------------\n// Command Registry\n// ---------------------------------------------------------------------------\n\ntype CommandRegistryItem = {\n id: string\n label: string\n shortcut?: string\n icon?: React.ReactNode\n action?: () => void\n keywords?: string[]\n section?: string\n}\n\ntype CommandRegistryValue = {\n commands: CommandRegistryItem[]\n register: (command: CommandRegistryItem) => void\n unregister: (id: string) => void\n}\n\nconst CommandRegistryContext = React.createContext<CommandRegistryValue | null>(null)\n\nfunction useCommandRegistry() {\n const ctx = React.useContext(CommandRegistryContext)\n if (!ctx) {\n return {\n commands: [],\n register: () => {},\n unregister: () => {},\n }\n }\n return ctx\n}\n\nfunction CommandRegistryProvider({ children }: { children: React.ReactNode }) {\n const [commands, setCommands] = React.useState<CommandRegistryItem[]>([])\n\n const register = React.useCallback((command: CommandRegistryItem) => {\n setCommands((prev) => {\n if (prev.some((c) => c.id === command.id)) return prev\n return [...prev, command]\n })\n }, [])\n\n const unregister = React.useCallback((id: string) => {\n setCommands((prev) => prev.filter((c) => c.id !== id))\n }, [])\n\n const value = React.useMemo(() => ({ commands, register, unregister }), [commands, register, unregister])\n\n return (\n <CommandRegistryContext.Provider value={value}>\n {children}\n </CommandRegistryContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Keyboard Shortcut Hook\n// ---------------------------------------------------------------------------\n\nfunction normalizeShortcut(shortcut: string): string {\n return shortcut\n .toLowerCase()\n .split('+')\n .map((part) => part.trim())\n .sort((a, b) => {\n const order = ['meta', 'ctrl', 'alt', 'shift']\n const ai = order.indexOf(a)\n const bi = order.indexOf(b)\n if (ai !== -1 && bi !== -1) return ai - bi\n if (ai !== -1) return -1\n if (bi !== -1) return 1\n return a.localeCompare(b)\n })\n .join('+')\n}\n\nfunction useCommandShortcut(\n shortcut: string,\n action: (event: KeyboardEvent) => void,\n options?: { preventDefault?: boolean },\n) {\n const { preventDefault = true } = options ?? {}\n\n React.useEffect(() => {\n const normalized = normalizeShortcut(shortcut)\n const parts = normalized.split('+')\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const expectMeta = parts.includes('meta')\n const expectCtrl = parts.includes('ctrl')\n const expectAlt = parts.includes('alt')\n const expectShift = parts.includes('shift')\n\n const hasMeta = expectMeta ? event.metaKey : !event.metaKey\n const hasCtrl = expectCtrl ? event.ctrlKey : !event.ctrlKey\n const hasAlt = expectAlt ? event.altKey : !event.altKey\n const hasShift = expectShift ? event.shiftKey : !event.shiftKey\n\n const key = event.key.toLowerCase()\n const expectKey = parts.find((p) => !['meta', 'ctrl', 'alt', 'shift'].includes(p))\n\n if (hasMeta && hasCtrl && hasAlt && hasShift && expectKey && key === expectKey) {\n if (preventDefault) event.preventDefault()\n action(event)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [shortcut, action, preventDefault])\n}\n\ntype CommandOwnProps = GetPropDefTypes<typeof commandPropDefs>\ntype CommandInputOwnProps = GetPropDefTypes<typeof commandInputPropDefs> & { wrapperClassName?: string }\ntype CommandListOwnProps = GetPropDefTypes<typeof commandListPropDefs>\ntype CommandEmptyOwnProps = GetPropDefTypes<typeof commandEmptyPropDefs>\ntype CommandGroupOwnProps = GetPropDefTypes<typeof commandGroupPropDefs>\ntype CommandSeparatorOwnProps = GetPropDefTypes<typeof commandSeparatorPropDefs>\ntype CommandItemOwnProps = GetPropDefTypes<typeof commandItemPropDefs>\ntype CommandShortcutOwnProps = GetPropDefTypes<typeof commandShortcutPropDefs>\ntype CommandLoadingOwnProps = GetPropDefTypes<typeof commandLoadingPropDefs> & { label?: string }\n\ntype CommandProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive> & CommandOwnProps\ntype CommandDialogProps = React.ComponentPropsWithoutRef<typeof Dialog> & GetPropDefTypes<typeof commandDialogPropDefs> & {\n shortcut?: string | false\n}\ntype CommandInputProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & CommandInputOwnProps\ntype CommandListProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> & CommandListOwnProps\ntype CommandEmptyProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> & CommandEmptyOwnProps\ntype CommandGroupProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> & CommandGroupOwnProps\ntype CommandSeparatorProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> & CommandSeparatorOwnProps\ntype CommandItemProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> & CommandItemOwnProps\ntype CommandShortcutProps = React.HTMLAttributes<HTMLElement> & CommandShortcutOwnProps\ntype CommandLoadingProps = React.HTMLAttributes<HTMLDivElement> & CommandLoadingOwnProps\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, size = 'md', ...commandProps } = extractProps(props, commandPropDefs)\n\n return (\n <CommandPrimitive\n {...commandProps}\n ref={forwardedRef}\n className={classNames('dsx-command', className)}\n data-size={size}\n data-slot=\"command\"\n />\n )\n})\nCommand.displayName = CommandPrimitive.displayName ?? 'Command'\n\nfunction CommandDialog({ children, shortcut = 'meta+k', ...props }: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const isControlled = 'open' in props\n const { title = 'Command menu', description, ...dialogProps } = extractProps(props, commandDialogPropDefs)\n const open = isControlled ? (dialogProps.open as boolean) : internalOpen\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n dialogProps.onOpenChange?.(nextOpen)\n },\n [isControlled, dialogProps.onOpenChange],\n )\n\n const toggleOpen = React.useCallback(\n () => {\n setOpen(!open)\n },\n [open, setOpen],\n )\n\n if (shortcut !== false) {\n useCommandShortcut(shortcut, toggleOpen)\n }\n\n return (\n <CommandRegistryProvider>\n <Dialog {...dialogProps} open={open} onOpenChange={setOpen}>\n <DialogContent>\n <VisuallyHidden asChild>\n <DialogTitle>{title}</DialogTitle>\n </VisuallyHidden>\n {description ? (\n <VisuallyHidden asChild>\n <DialogDescription>{description}</DialogDescription>\n </VisuallyHidden>\n ) : null}\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n </CommandRegistryProvider>\n )\n}\nCommandDialog.displayName = 'CommandDialog'\n\nconst CommandInput = React.forwardRef<HTMLInputElement, CommandInputProps>(\n ({ wrapperClassName, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, commandInputPropDefs)\n\n return (\n <div\n className={classNames('dsx-command__input-wrapper', wrapperClassName)}\n data-slot=\"command-input-wrapper\"\n cmdk-input-wrapper=\"\"\n >\n <Icon name=\"search\" size=\"sm\" className=\"dsx-command__input-icon\" data-slot=\"command-input-icon\" />\n <CommandPrimitive.Input\n {...inputProps}\n ref={forwardedRef}\n className={classNames('dsx-command__input dsx-input', className)}\n data-slot=\"command-input\"\n />\n </div>\n )\n },\n)\nCommandInput.displayName = CommandPrimitive.Input.displayName ?? 'CommandInput'\n\nconst CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, commandListPropDefs)\n\n return (\n <CommandPrimitive.List\n {...listProps}\n ref={forwardedRef}\n className={classNames('dsx-command__list dsx-scroll-area', className)}\n data-slot=\"command-list\"\n />\n )\n },\n)\nCommandList.displayName = CommandPrimitive.List.displayName ?? 'CommandList'\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, commandEmptyPropDefs)\n\n return (\n <CommandPrimitive.Empty\n {...emptyProps}\n ref={forwardedRef}\n className={classNames('dsx-command__empty', className)}\n data-slot=\"command-empty\"\n />\n )\n },\n)\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName ?? 'CommandEmpty'\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, heading, ...groupProps } = extractProps(props, commandGroupPropDefs)\n\n return (\n <CommandPrimitive.Group\n {...groupProps}\n heading={heading}\n ref={forwardedRef}\n className={classNames('dsx-command__group', className)}\n data-slot=\"command-group\"\n data-section={typeof heading === 'string' ? heading.toLowerCase().replace(/\\s+/g, '-') : undefined}\n />\n )\n },\n)\nCommandGroup.displayName = CommandPrimitive.Group.displayName ?? 'CommandGroup'\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, CommandSeparatorProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...separatorProps } = extractProps(props, commandSeparatorPropDefs)\n\n return (\n <CommandPrimitive.Separator\n {...separatorProps}\n ref={forwardedRef}\n className={classNames('dsx-command__separator dsx-separator', className)}\n data-slot=\"command-separator\"\n />\n )\n },\n)\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName ?? 'CommandSeparator'\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(props, commandItemPropDefs)\n\n return (\n <CommandPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('dsx-command__item', className)}\n data-slot=\"command-item\"\n />\n )\n },\n)\nCommandItem.displayName = CommandPrimitive.Item.displayName ?? 'CommandItem'\n\nconst CommandShortcut = React.forwardRef<HTMLElement, CommandShortcutProps>((props, forwardedRef) => {\n const { asChild, className, ...shortcutProps } = extractProps(props, commandShortcutPropDefs)\n const Comp = asChild ? Slot : Kbd\n\n return (\n <Comp\n {...shortcutProps}\n ref={forwardedRef}\n className={classNames('dsx-command__shortcut', className)}\n data-slot=\"command-shortcut\"\n />\n )\n})\nCommandShortcut.displayName = 'CommandShortcut'\n\nconst CommandLoading = React.forwardRef<HTMLDivElement, CommandLoadingProps>((props, forwardedRef) => {\n const { asChild, className, label = 'Loading', ...loadingProps } = extractProps(props, commandLoadingPropDefs)\n\n if (asChild) {\n return (\n <Slot {...loadingProps} ref={forwardedRef} className={classNames('dsx-command__loading', className)} data-slot=\"command-loading\" />\n )\n }\n\n return (\n <div\n {...loadingProps}\n ref={forwardedRef}\n className={classNames('dsx-command__loading', className)}\n data-slot=\"command-loading\"\n >\n <Spinner size=\"sm\" label={label} />\n </div>\n )\n})\nCommandLoading.displayName = 'CommandLoading'\n\nconst CommandMenu: typeof Command & {\n Dialog: typeof CommandDialog\n Empty: typeof CommandEmpty\n Group: typeof CommandGroup\n Input: typeof CommandInput\n Item: typeof CommandItem\n List: typeof CommandList\n Loading: typeof CommandLoading\n Separator: typeof CommandSeparator\n Shortcut: typeof CommandShortcut\n} = Object.assign(Command, {\n Dialog: CommandDialog,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Input: CommandInput,\n Item: CommandItem,\n List: CommandList,\n Loading: CommandLoading,\n Separator: CommandSeparator,\n Shortcut: CommandShortcut,\n})\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandMenu,\n CommandRegistryProvider,\n CommandSeparator,\n CommandShortcut,\n useCommandRegistry,\n useCommandShortcut,\n}\nexport type {\n CommandDialogProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n CommandLoadingProps,\n CommandProps,\n CommandRegistryItem,\n CommandRegistryValue,\n CommandSeparatorProps,\n CommandShortcutProps,\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { Icon } from '../icon/Icon'\nimport { Spinner } from '../spinner/Spinner'\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from '../dialog/Dialog'\nimport { Kbd } from '../kbd/Kbd'\nimport { VisuallyHidden } from '../visuallyHidden/VisuallyHidden'\nimport {\n commandDialogPropDefs,\n commandEmptyPropDefs,\n commandGroupPropDefs,\n commandInputPropDefs,\n commandItemPropDefs,\n commandListPropDefs,\n commandLoadingPropDefs,\n commandPropDefs,\n commandSeparatorPropDefs,\n commandShortcutPropDefs,\n} from './command.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\n// ---------------------------------------------------------------------------\n// Command Registry\n// ---------------------------------------------------------------------------\n\ntype CommandRegistryItem = {\n id: string\n label: string\n shortcut?: string\n icon?: React.ReactNode\n action?: () => void\n keywords?: string[]\n section?: string\n}\n\ntype CommandRegistryValue = {\n commands: CommandRegistryItem[]\n register: (command: CommandRegistryItem) => void\n unregister: (id: string) => void\n}\n\nconst CommandRegistryContext = React.createContext<CommandRegistryValue | null>(null)\n\nfunction useCommandRegistry() {\n const ctx = React.useContext(CommandRegistryContext)\n if (!ctx) {\n return {\n commands: [],\n register: () => {},\n unregister: () => {},\n }\n }\n return ctx\n}\n\nfunction CommandRegistryProvider({ children }: { children: React.ReactNode }) {\n const [commands, setCommands] = React.useState<CommandRegistryItem[]>([])\n\n const register = React.useCallback((command: CommandRegistryItem) => {\n setCommands((prev) => {\n if (prev.some((c) => c.id === command.id)) return prev\n return [...prev, command]\n })\n }, [])\n\n const unregister = React.useCallback((id: string) => {\n setCommands((prev) => prev.filter((c) => c.id !== id))\n }, [])\n\n const value = React.useMemo(() => ({ commands, register, unregister }), [commands, register, unregister])\n\n return (\n <CommandRegistryContext.Provider value={value}>\n {children}\n </CommandRegistryContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Keyboard Shortcut Hook\n// ---------------------------------------------------------------------------\n\nfunction normalizeShortcut(shortcut: string): string {\n return shortcut\n .toLowerCase()\n .split('+')\n .map((part) => part.trim())\n .sort((a, b) => {\n const order = ['meta', 'ctrl', 'alt', 'shift']\n const ai = order.indexOf(a)\n const bi = order.indexOf(b)\n if (ai !== -1 && bi !== -1) return ai - bi\n if (ai !== -1) return -1\n if (bi !== -1) return 1\n return a.localeCompare(b)\n })\n .join('+')\n}\n\nfunction useCommandShortcut(\n shortcut: string,\n action: (event: KeyboardEvent) => void,\n options?: { preventDefault?: boolean },\n) {\n const { preventDefault = true } = options ?? {}\n\n React.useEffect(() => {\n const normalized = normalizeShortcut(shortcut)\n const parts = normalized.split('+')\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const expectMeta = parts.includes('meta')\n const expectCtrl = parts.includes('ctrl')\n const expectAlt = parts.includes('alt')\n const expectShift = parts.includes('shift')\n\n const hasMeta = expectMeta ? event.metaKey : !event.metaKey\n const hasCtrl = expectCtrl ? event.ctrlKey : !event.ctrlKey\n const hasAlt = expectAlt ? event.altKey : !event.altKey\n const hasShift = expectShift ? event.shiftKey : !event.shiftKey\n\n const key = event.key.toLowerCase()\n const expectKey = parts.find((p) => !['meta', 'ctrl', 'alt', 'shift'].includes(p))\n\n if (hasMeta && hasCtrl && hasAlt && hasShift && expectKey && key === expectKey) {\n if (preventDefault) event.preventDefault()\n action(event)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [shortcut, action, preventDefault])\n}\n\ntype CommandOwnProps = GetPropDefTypes<typeof commandPropDefs>\ntype CommandInputOwnProps = GetPropDefTypes<typeof commandInputPropDefs> & { wrapperClassName?: string }\ntype CommandListOwnProps = GetPropDefTypes<typeof commandListPropDefs>\ntype CommandEmptyOwnProps = GetPropDefTypes<typeof commandEmptyPropDefs>\ntype CommandGroupOwnProps = GetPropDefTypes<typeof commandGroupPropDefs>\ntype CommandSeparatorOwnProps = GetPropDefTypes<typeof commandSeparatorPropDefs>\ntype CommandItemOwnProps = GetPropDefTypes<typeof commandItemPropDefs>\ntype CommandShortcutOwnProps = GetPropDefTypes<typeof commandShortcutPropDefs>\ntype CommandLoadingOwnProps = GetPropDefTypes<typeof commandLoadingPropDefs> & { label?: string }\n\ntype CommandProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive> & CommandOwnProps\ntype CommandDialogProps = React.ComponentPropsWithoutRef<typeof Dialog> & GetPropDefTypes<typeof commandDialogPropDefs> & {\n shortcut?: string | false\n}\ntype CommandInputProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & CommandInputOwnProps\ntype CommandListProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> & CommandListOwnProps\ntype CommandEmptyProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> & CommandEmptyOwnProps\ntype CommandGroupProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> & CommandGroupOwnProps\ntype CommandSeparatorProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> & CommandSeparatorOwnProps\ntype CommandItemProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> & CommandItemOwnProps\ntype CommandShortcutProps = React.HTMLAttributes<HTMLElement> & CommandShortcutOwnProps\ntype CommandLoadingProps = React.HTMLAttributes<HTMLDivElement> & CommandLoadingOwnProps\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, forwardedRef) => {\n const { asChild: _asChild, className, size = 'md', ...commandProps } = extractProps(props, commandPropDefs)\n\n return (\n <CommandPrimitive\n {...commandProps}\n ref={forwardedRef}\n className={classNames('dsx-command', className)}\n data-size={size}\n data-slot=\"command\"\n />\n )\n})\nCommand.displayName = CommandPrimitive.displayName ?? 'Command'\n\nfunction CommandDialog({ children, shortcut = 'meta+k', ...props }: CommandDialogProps) {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const isControlled = 'open' in props\n const { title = 'Command menu', description, ...dialogProps } = extractProps(props, commandDialogPropDefs)\n const open = isControlled ? (dialogProps.open as boolean) : internalOpen\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n dialogProps.onOpenChange?.(nextOpen)\n },\n [isControlled, dialogProps.onOpenChange],\n )\n\n const toggleOpen = React.useCallback(\n () => {\n setOpen(!open)\n },\n [open, setOpen],\n )\n\n if (shortcut !== false) {\n useCommandShortcut(shortcut, toggleOpen)\n }\n\n return (\n <CommandRegistryProvider>\n <Dialog {...dialogProps} open={open} onOpenChange={setOpen}>\n <DialogContent>\n <VisuallyHidden asChild>\n <DialogTitle>{title}</DialogTitle>\n </VisuallyHidden>\n {description ? (\n <VisuallyHidden asChild>\n <DialogDescription>{description}</DialogDescription>\n </VisuallyHidden>\n ) : null}\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n </CommandRegistryProvider>\n )\n}\nCommandDialog.displayName = 'CommandDialog'\n\nconst CommandInput = React.forwardRef<HTMLInputElement, CommandInputProps>(\n ({ wrapperClassName, ...props }, forwardedRef) => {\n const { asChild: _asChild, className, ...inputProps } = extractProps(props, commandInputPropDefs)\n\n return (\n <div\n className={classNames('dsx-command__input-wrapper', wrapperClassName)}\n data-slot=\"command-input-wrapper\"\n cmdk-input-wrapper=\"\"\n >\n <Icon name=\"search\" size=\"sm\" className=\"dsx-command__input-icon\" data-slot=\"command-input-icon\" />\n <CommandPrimitive.Input\n {...inputProps}\n ref={forwardedRef}\n className={classNames('dsx-command__input dsx-input', className)}\n data-slot=\"command-input\"\n />\n </div>\n )\n },\n)\nCommandInput.displayName = CommandPrimitive.Input.displayName ?? 'CommandInput'\n\nconst CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...listProps } = extractProps(props, commandListPropDefs)\n\n return (\n <CommandPrimitive.List\n {...listProps}\n ref={forwardedRef}\n className={classNames('dsx-command__list', className)}\n data-slot=\"command-list\"\n />\n )\n },\n)\nCommandList.displayName = CommandPrimitive.List.displayName ?? 'CommandList'\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...emptyProps } = extractProps(props, commandEmptyPropDefs)\n\n return (\n <CommandPrimitive.Empty\n {...emptyProps}\n ref={forwardedRef}\n className={classNames('dsx-command__empty', className)}\n data-slot=\"command-empty\"\n />\n )\n },\n)\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName ?? 'CommandEmpty'\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, heading, ...groupProps } = extractProps(props, commandGroupPropDefs)\n\n return (\n <CommandPrimitive.Group\n {...groupProps}\n heading={heading}\n ref={forwardedRef}\n className={classNames('dsx-command__group', className)}\n data-slot=\"command-group\"\n data-section={typeof heading === 'string' ? heading.toLowerCase().replace(/\\s+/g, '-') : undefined}\n />\n )\n },\n)\nCommandGroup.displayName = CommandPrimitive.Group.displayName ?? 'CommandGroup'\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, CommandSeparatorProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...separatorProps } = extractProps(props, commandSeparatorPropDefs)\n\n return (\n <CommandPrimitive.Separator\n {...separatorProps}\n ref={forwardedRef}\n className={classNames('dsx-command__separator dsx-separator', className)}\n data-slot=\"command-separator\"\n />\n )\n },\n)\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName ?? 'CommandSeparator'\n\nconst CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n (props, forwardedRef) => {\n const { asChild: _asChild, className, ...itemProps } = extractProps(props, commandItemPropDefs)\n\n return (\n <CommandPrimitive.Item\n {...itemProps}\n ref={forwardedRef}\n className={classNames('dsx-command__item', className)}\n data-slot=\"command-item\"\n />\n )\n },\n)\nCommandItem.displayName = CommandPrimitive.Item.displayName ?? 'CommandItem'\n\nconst CommandShortcut = React.forwardRef<HTMLElement, CommandShortcutProps>((props, forwardedRef) => {\n const { asChild, className, ...shortcutProps } = extractProps(props, commandShortcutPropDefs)\n const Comp = asChild ? Slot : Kbd\n\n return (\n <Comp\n {...shortcutProps}\n ref={forwardedRef}\n className={classNames('dsx-command__shortcut', className)}\n data-slot=\"command-shortcut\"\n />\n )\n})\nCommandShortcut.displayName = 'CommandShortcut'\n\nconst CommandLoading = React.forwardRef<HTMLDivElement, CommandLoadingProps>((props, forwardedRef) => {\n const { asChild, className, label = 'Loading', ...loadingProps } = extractProps(props, commandLoadingPropDefs)\n\n if (asChild) {\n return (\n <Slot {...loadingProps} ref={forwardedRef} className={classNames('dsx-command__loading', className)} data-slot=\"command-loading\" />\n )\n }\n\n return (\n <div\n {...loadingProps}\n ref={forwardedRef}\n className={classNames('dsx-command__loading', className)}\n data-slot=\"command-loading\"\n >\n <Spinner size=\"sm\" label={label} />\n </div>\n )\n})\nCommandLoading.displayName = 'CommandLoading'\n\nconst CommandMenu: typeof Command & {\n Dialog: typeof CommandDialog\n Empty: typeof CommandEmpty\n Group: typeof CommandGroup\n Input: typeof CommandInput\n Item: typeof CommandItem\n List: typeof CommandList\n Loading: typeof CommandLoading\n Separator: typeof CommandSeparator\n Shortcut: typeof CommandShortcut\n} = Object.assign(Command, {\n Dialog: CommandDialog,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Input: CommandInput,\n Item: CommandItem,\n List: CommandList,\n Loading: CommandLoading,\n Separator: CommandSeparator,\n Shortcut: CommandShortcut,\n})\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandMenu,\n CommandRegistryProvider,\n CommandSeparator,\n CommandShortcut,\n useCommandRegistry,\n useCommandShortcut,\n}\nexport type {\n CommandDialogProps,\n CommandEmptyProps,\n CommandGroupProps,\n CommandInputProps,\n CommandItemProps,\n CommandListProps,\n CommandLoadingProps,\n CommandProps,\n CommandRegistryItem,\n CommandRegistryValue,\n CommandSeparatorProps,\n CommandShortcutProps,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
gap: var(--dsx-space-sm);
|
|
26
26
|
padding: var(--dsx-space-sm) var(--dsx-space-sm) var(--dsx-space-sm) calc(var(--dsx-space-lg) + var(--dsx-space-sm));
|
|
27
27
|
border: 0;
|
|
28
|
-
border-radius:
|
|
28
|
+
border-radius: 0;
|
|
29
29
|
background: transparent;
|
|
30
30
|
color: var(--dsx-color-on-surface);
|
|
31
31
|
text-align: left;
|
|
@@ -9,3 +9,21 @@
|
|
|
9
9
|
.dsx-copy-field__action {
|
|
10
10
|
min-width: var(--dsx-copy-field-action-min-width);
|
|
11
11
|
}
|
|
12
|
+
|
|
13
|
+
/* One frame: the action half inherits the field-shell outline token at rest
|
|
14
|
+
and hover, so the group reads as a single frame (the -1px join overlaps
|
|
15
|
+
the seam into the frame line). baseInput would glow it — pinned here.
|
|
16
|
+
Focus ring untouched. */
|
|
17
|
+
.dsx-copy-field .dsx-copy-field__action,
|
|
18
|
+
.dsx-copy-field__action:hover {
|
|
19
|
+
border-color: var(--dsx-boundary-control-color);
|
|
20
|
+
}
|
|
21
|
+
/* Read-only value half: no hover invitation */
|
|
22
|
+
:where(.dsx-copy-field) .dsx-input-shell:hover {
|
|
23
|
+
border-color: var(--dsx-boundary-control-color);
|
|
24
|
+
background: var(--dsx-color-surface);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.dsx-copy-field__input:hover {
|
|
28
|
+
cursor: default;
|
|
29
|
+
}
|