@bioturing/components 0.32.0 → 0.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/components/badge/component.d.ts +7 -0
- package/dist/components/badge/component.d.ts.map +1 -0
- package/dist/components/badge/component.js.map +1 -1
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/component.d.ts +6 -0
- package/dist/components/breadcrumb/component.d.ts.map +1 -0
- package/dist/components/breadcrumb/component.js.map +1 -1
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/types.d.ts +19 -0
- package/dist/components/breadcrumb/types.d.ts.map +1 -0
- package/dist/components/breadcrumb/useItemRender.d.ts +7 -0
- package/dist/components/breadcrumb/useItemRender.d.ts.map +1 -0
- package/dist/components/breadcrumb/useItemRender.js.map +1 -1
- package/dist/components/button/component.d.ts +14 -0
- package/dist/components/button/component.d.ts.map +1 -0
- package/dist/components/button/component.js.map +1 -1
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/checkbox/component.d.ts +16 -0
- package/dist/components/checkbox/component.d.ts.map +1 -0
- package/dist/components/checkbox/component.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/choice-list/component.d.ts +35 -0
- package/dist/components/choice-list/component.d.ts.map +1 -0
- package/dist/components/choice-list/component.js.map +1 -1
- package/dist/components/choice-list/index.d.ts +2 -0
- package/dist/components/choice-list/index.d.ts.map +1 -0
- package/dist/components/cmdk/command-score.d.ts +2 -0
- package/dist/components/cmdk/command-score.d.ts.map +1 -0
- package/dist/components/cmdk/command-score.js.map +1 -1
- package/dist/components/cmdk/index.d.ts +440 -0
- package/dist/components/cmdk/index.d.ts.map +1 -0
- package/dist/components/cmdk/index.js +332 -348
- package/dist/components/cmdk/index.js.map +1 -1
- package/dist/components/code-block/component.d.ts +3 -0
- package/dist/components/code-block/component.d.ts.map +1 -0
- package/dist/components/code-block/component.js +83 -84
- package/dist/components/code-block/component.js.map +1 -1
- package/dist/components/code-block/index.d.ts +3 -0
- package/dist/components/code-block/index.d.ts.map +1 -0
- package/dist/components/code-block/types.d.ts +64 -0
- package/dist/components/code-block/types.d.ts.map +1 -0
- package/dist/components/collapse/component.d.ts +14 -0
- package/dist/components/collapse/component.d.ts.map +1 -0
- package/dist/components/collapse/component.js.map +1 -1
- package/dist/components/collapse/index.d.ts +2 -0
- package/dist/components/collapse/index.d.ts.map +1 -0
- package/dist/components/color-select/component.d.ts +36 -0
- package/dist/components/color-select/component.d.ts.map +1 -0
- package/dist/components/color-select/component.js +28 -30
- package/dist/components/color-select/component.js.map +1 -1
- package/dist/components/color-select/index.d.ts +2 -0
- package/dist/components/color-select/index.d.ts.map +1 -0
- package/dist/components/combobox/component.d.ts +119 -0
- package/dist/components/combobox/component.d.ts.map +1 -0
- package/dist/components/combobox/component.js +129 -129
- package/dist/components/combobox/component.js.map +1 -1
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/command-palette/component.d.ts +41 -0
- package/dist/components/command-palette/component.d.ts.map +1 -0
- package/dist/components/command-palette/component.js +36 -36
- package/dist/components/command-palette/component.js.map +1 -1
- package/dist/components/command-palette/index.d.ts +2 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/command-palette/style.css +1 -1
- package/dist/components/drag-drop/context.d.ts +10 -0
- package/dist/components/drag-drop/context.d.ts.map +1 -0
- package/dist/components/drag-drop/context.js.map +1 -1
- package/dist/components/drag-drop/draggable.d.ts +6 -0
- package/dist/components/drag-drop/draggable.d.ts.map +1 -0
- package/dist/components/drag-drop/draggable.js.map +1 -1
- package/dist/components/drag-drop/droppable.d.ts +9 -0
- package/dist/components/drag-drop/droppable.d.ts.map +1 -0
- package/dist/components/drag-drop/droppable.js.map +1 -1
- package/dist/components/drag-drop/hooks.d.ts +42 -0
- package/dist/components/drag-drop/hooks.d.ts.map +1 -0
- package/dist/components/drag-drop/hooks.js +71 -73
- package/dist/components/drag-drop/hooks.js.map +1 -1
- package/dist/components/drag-drop/index.d.ts +26 -0
- package/dist/components/drag-drop/index.d.ts.map +1 -0
- package/dist/components/drag-drop/index.js.map +1 -1
- package/dist/components/drag-drop/types.d.ts +232 -0
- package/dist/components/drag-drop/types.d.ts.map +1 -0
- package/dist/components/drag-drop/value.d.ts +8 -0
- package/dist/components/drag-drop/value.d.ts.map +1 -0
- package/dist/components/drag-drop/value.js +66 -66
- package/dist/components/drag-drop/value.js.map +1 -1
- package/dist/components/dropdown-menu/component.d.ts +79 -0
- package/dist/components/dropdown-menu/component.d.ts.map +1 -0
- package/dist/components/dropdown-menu/component.js +108 -108
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/dropdown-menu/divider.d.ts +6 -0
- package/dist/components/dropdown-menu/divider.d.ts.map +1 -0
- package/dist/components/dropdown-menu/divider.js.map +1 -1
- package/dist/components/dropdown-menu/index.d.ts +4 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/item.d.ts +56 -0
- package/dist/components/dropdown-menu/item.d.ts.map +1 -0
- package/dist/components/dropdown-menu/item.js +75 -78
- package/dist/components/dropdown-menu/item.js.map +1 -1
- package/dist/components/dropdown-menu/types.d.ts +88 -0
- package/dist/components/dropdown-menu/types.d.ts.map +1 -0
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +58 -0
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/useDropdownMenu.js +80 -80
- package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
- package/dist/components/ds-root/component.d.ts +14 -0
- package/dist/components/ds-root/component.d.ts.map +1 -0
- package/dist/components/ds-root/component.js.map +1 -1
- package/dist/components/ds-root/context.d.ts +8 -0
- package/dist/components/ds-root/context.d.ts.map +1 -0
- package/dist/components/ds-root/index.d.ts +3 -0
- package/dist/components/ds-root/index.d.ts.map +1 -0
- package/dist/components/empty/component.d.ts +13 -0
- package/dist/components/empty/component.d.ts.map +1 -0
- package/dist/components/empty/component.js.map +1 -1
- package/dist/components/empty/index.d.ts +2 -0
- package/dist/components/empty/index.d.ts.map +1 -0
- package/dist/components/field/component.d.ts +42 -0
- package/dist/components/field/component.d.ts.map +1 -0
- package/dist/components/field/component.js.map +1 -1
- package/dist/components/field/index.d.ts +2 -0
- package/dist/components/field/index.d.ts.map +1 -0
- package/dist/components/form/component.d.ts +22 -0
- package/dist/components/form/component.d.ts.map +1 -0
- package/dist/components/form/component.js.map +1 -1
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.d.ts.map +1 -0
- package/dist/components/form/item.d.ts +24 -0
- package/dist/components/form/item.d.ts.map +1 -0
- package/dist/components/form/item.js +24 -24
- package/dist/components/form/item.js.map +1 -1
- package/dist/components/form/label.d.ts +32 -0
- package/dist/components/form/label.d.ts.map +1 -0
- package/dist/components/form/label.js.map +1 -1
- package/dist/components/hooks/antd.d.ts +11 -0
- package/dist/components/hooks/antd.d.ts.map +1 -0
- package/dist/components/hooks/antd.js +9 -12
- package/dist/components/hooks/antd.js.map +1 -1
- package/dist/components/hooks/base-ui.d.ts +11 -0
- package/dist/components/hooks/base-ui.d.ts.map +1 -0
- package/dist/components/hooks/base-ui.js +22 -25
- package/dist/components/hooks/base-ui.js.map +1 -1
- package/dist/components/hooks/index.d.ts +11 -0
- package/dist/components/hooks/index.d.ts.map +1 -0
- package/dist/components/hooks/useBreakpoint.d.ts +39 -0
- package/dist/components/hooks/useBreakpoint.d.ts.map +1 -0
- package/dist/components/hooks/useBreakpoint.js +14 -15
- package/dist/components/hooks/useBreakpoint.js.map +1 -1
- package/dist/components/hooks/useCSSVariables.d.ts +7 -0
- package/dist/components/hooks/useCSSVariables.d.ts.map +1 -0
- package/dist/components/hooks/useCSSVariables.js.map +1 -1
- package/dist/components/hooks/useCharts.d.ts +41 -0
- package/dist/components/hooks/useCharts.d.ts.map +1 -0
- package/dist/components/hooks/useCharts.js.map +1 -1
- package/dist/components/hooks/useControlledState.d.ts +13 -0
- package/dist/components/hooks/useControlledState.d.ts.map +1 -0
- package/dist/components/hooks/useControlledState.js.map +1 -1
- package/dist/components/hooks/useDraggable.d.ts +4 -0
- package/dist/components/hooks/useDraggable.d.ts.map +1 -0
- package/dist/components/hooks/useDraggable.js +19 -20
- package/dist/components/hooks/useDraggable.js.map +1 -1
- package/dist/components/hooks/useHover.d.ts +5 -0
- package/dist/components/hooks/useHover.d.ts.map +1 -0
- package/dist/components/hooks/useHover.js +16 -17
- package/dist/components/hooks/useHover.js.map +1 -1
- package/dist/components/hooks/useResizeObserver.d.ts +9 -0
- package/dist/components/hooks/useResizeObserver.d.ts.map +1 -0
- package/dist/components/hooks/useResizeObserver.js +29 -30
- package/dist/components/hooks/useResizeObserver.js.map +1 -1
- package/dist/components/hooks/useTransitionStatus.d.ts +13 -0
- package/dist/components/hooks/useTransitionStatus.d.ts.map +1 -0
- package/dist/components/hooks/useTransitionStatus.js.map +1 -1
- package/dist/components/hooks/useWindowSize.d.ts +5 -0
- package/dist/components/hooks/useWindowSize.d.ts.map +1 -0
- package/dist/components/hooks/useWindowSize.js.map +1 -1
- package/dist/components/icon-button/component.d.ts +45 -0
- package/dist/components/icon-button/component.d.ts.map +1 -0
- package/dist/components/icon-button/component.js.map +1 -1
- package/dist/components/icon-button/index.d.ts +2 -0
- package/dist/components/icon-button/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +53 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/input/component.d.ts +29 -0
- package/dist/components/input/component.d.ts.map +1 -0
- package/dist/components/input/component.js +46 -46
- package/dist/components/input/component.js.map +1 -1
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/keyboard-shortcut/component.d.ts +15 -0
- package/dist/components/keyboard-shortcut/component.d.ts.map +1 -0
- package/dist/components/keyboard-shortcut/component.js.map +1 -1
- package/dist/components/keyboard-shortcut/index.d.ts +2 -0
- package/dist/components/keyboard-shortcut/index.d.ts.map +1 -0
- package/dist/components/loader/component.d.ts +5 -0
- package/dist/components/loader/component.d.ts.map +1 -0
- package/dist/components/loader/component.js.map +1 -1
- package/dist/components/loader/index.d.ts +2 -0
- package/dist/components/loader/index.d.ts.map +1 -0
- package/dist/components/modal/Modal.d.ts +85 -0
- package/dist/components/modal/Modal.d.ts.map +1 -0
- package/dist/components/modal/Modal.js +75 -75
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/ModalProvider.d.ts +6 -0
- package/dist/components/modal/ModalProvider.d.ts.map +1 -0
- package/dist/components/modal/ModalProvider.js +25 -25
- package/dist/components/modal/ModalProvider.js.map +1 -1
- package/dist/components/modal/ModalService.d.ts +34 -0
- package/dist/components/modal/ModalService.d.ts.map +1 -0
- package/dist/components/modal/ModalService.js +5 -10
- package/dist/components/modal/ModalService.js.map +1 -1
- package/dist/components/modal/constants.d.ts +10 -0
- package/dist/components/modal/constants.d.ts.map +1 -0
- package/dist/components/modal/constants.js.map +1 -1
- package/dist/components/modal/functions.d.ts +28 -0
- package/dist/components/modal/functions.d.ts.map +1 -0
- package/dist/components/modal/functions.js.map +1 -1
- package/dist/components/modal/index.d.ts +16 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/nav/context.d.ts +10 -0
- package/dist/components/nav/context.d.ts.map +1 -0
- package/dist/components/nav/context.js.map +1 -1
- package/dist/components/nav/group.d.ts +15 -0
- package/dist/components/nav/group.d.ts.map +1 -0
- package/dist/components/nav/group.js.map +1 -1
- package/dist/components/nav/heading.d.ts +6 -0
- package/dist/components/nav/heading.d.ts.map +1 -0
- package/dist/components/nav/heading.js.map +1 -1
- package/dist/components/nav/index.d.ts +12 -0
- package/dist/components/nav/index.d.ts.map +1 -0
- package/dist/components/nav/item.d.ts +35 -0
- package/dist/components/nav/item.d.ts.map +1 -0
- package/dist/components/nav/item.js.map +1 -1
- package/dist/components/popover/component.d.ts +10 -0
- package/dist/components/popover/component.d.ts.map +1 -0
- package/dist/components/popover/component.js.map +1 -1
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popup-panel/component.d.ts +100 -0
- package/dist/components/popup-panel/component.d.ts.map +1 -0
- package/dist/components/popup-panel/component.js +105 -105
- package/dist/components/popup-panel/component.js.map +1 -1
- package/dist/components/popup-panel/constants.d.ts +8 -0
- package/dist/components/popup-panel/constants.d.ts.map +1 -0
- package/dist/components/popup-panel/constants.js.map +1 -1
- package/dist/components/popup-panel/index.d.ts +2 -0
- package/dist/components/popup-panel/index.d.ts.map +1 -0
- package/dist/components/radio/component.d.ts +8 -0
- package/dist/components/radio/component.d.ts.map +1 -0
- package/dist/components/radio/component.js.map +1 -1
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/interface.d.ts +6 -0
- package/dist/components/radio/interface.d.ts.map +1 -0
- package/dist/components/resizable/component.d.ts +70 -0
- package/dist/components/resizable/component.d.ts.map +1 -0
- package/dist/components/resizable/component.js +146 -147
- package/dist/components/resizable/component.js.map +1 -1
- package/dist/components/resizable/index.d.ts +3 -0
- package/dist/components/resizable/index.d.ts.map +1 -0
- package/dist/components/scroll-area/component.d.ts +67 -0
- package/dist/components/scroll-area/component.d.ts.map +1 -0
- package/dist/components/scroll-area/component.js +69 -69
- package/dist/components/scroll-area/component.js.map +1 -1
- package/dist/components/scroll-area/index.d.ts +2 -0
- package/dist/components/scroll-area/index.d.ts.map +1 -0
- package/dist/components/segmented/component.d.ts +10 -0
- package/dist/components/segmented/component.d.ts.map +1 -0
- package/dist/components/segmented/component.js.map +1 -1
- package/dist/components/segmented/index.d.ts +2 -0
- package/dist/components/segmented/index.d.ts.map +1 -0
- package/dist/components/select/component.d.ts +48 -0
- package/dist/components/select/component.d.ts.map +1 -0
- package/dist/components/select/component.js +93 -94
- package/dist/components/select/component.js.map +1 -1
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/item.d.ts +14 -0
- package/dist/components/select/item.d.ts.map +1 -0
- package/dist/components/select/item.js.map +1 -1
- package/dist/components/select-trigger/component.d.ts +45 -0
- package/dist/components/select-trigger/component.d.ts.map +1 -0
- package/dist/components/select-trigger/component.js +96 -96
- package/dist/components/select-trigger/component.js.map +1 -1
- package/dist/components/select-trigger/index.d.ts +3 -0
- package/dist/components/select-trigger/index.d.ts.map +1 -0
- package/dist/components/slider/component.d.ts +6 -0
- package/dist/components/slider/component.d.ts.map +1 -0
- package/dist/components/slider/component.js.map +1 -1
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/index.d.ts.map +1 -0
- package/dist/components/spin/component.d.ts +6 -0
- package/dist/components/spin/component.d.ts.map +1 -0
- package/dist/components/spin/component.js.map +1 -1
- package/dist/components/spin/index.d.ts +2 -0
- package/dist/components/spin/index.d.ts.map +1 -0
- package/dist/components/splitter/component.d.ts +10 -0
- package/dist/components/splitter/component.d.ts.map +1 -0
- package/dist/components/splitter/component.js +7 -7
- package/dist/components/splitter/component.js.map +1 -1
- package/dist/components/splitter/context.d.ts +5 -0
- package/dist/components/splitter/context.d.ts.map +1 -0
- package/dist/components/splitter/context.js.map +1 -1
- package/dist/components/splitter/index.d.ts +2 -0
- package/dist/components/splitter/index.d.ts.map +1 -0
- package/dist/components/splitter/splitter-panel.d.ts +12 -0
- package/dist/components/splitter/splitter-panel.d.ts.map +1 -0
- package/dist/components/splitter/splitter-panel.js.map +1 -1
- package/dist/components/splitter/splitter.d.ts +11 -0
- package/dist/components/splitter/splitter.d.ts.map +1 -0
- package/dist/components/splitter/splitter.js +112 -112
- package/dist/components/splitter/splitter.js.map +1 -1
- package/dist/components/splitter/useSizes.d.ts +9 -0
- package/dist/components/splitter/useSizes.d.ts.map +1 -0
- package/dist/components/splitter/useSizes.js +35 -35
- package/dist/components/splitter/useSizes.js.map +1 -1
- package/dist/components/stack/Stack.d.ts +40 -0
- package/dist/components/stack/Stack.d.ts.map +1 -0
- package/dist/components/stack/Stack.js.map +1 -1
- package/dist/components/stack/StackChild.d.ts +31 -0
- package/dist/components/stack/StackChild.d.ts.map +1 -0
- package/dist/components/stack/StackChild.js.map +1 -1
- package/dist/components/stack/index.d.ts +8 -0
- package/dist/components/stack/index.d.ts.map +1 -0
- package/dist/components/stack/index.js.map +1 -1
- package/dist/components/status-icon/component.d.ts +23 -0
- package/dist/components/status-icon/component.d.ts.map +1 -0
- package/dist/components/status-icon/component.js.map +1 -1
- package/dist/components/status-icon/index.d.ts +2 -0
- package/dist/components/status-icon/index.d.ts.map +1 -0
- package/dist/components/switch/component.d.ts +9 -0
- package/dist/components/switch/component.d.ts.map +1 -0
- package/dist/components/switch/component.js.map +1 -1
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/table/component.d.ts +32 -0
- package/dist/components/table/component.d.ts.map +1 -0
- package/dist/components/table/component.js +57 -58
- package/dist/components/table/component.js.map +1 -1
- package/dist/components/table/index.d.ts +2 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/tag/component.d.ts +22 -0
- package/dist/components/tag/component.d.ts.map +1 -0
- package/dist/components/tag/component.js.map +1 -1
- package/dist/components/tag/index.d.ts +2 -0
- package/dist/components/tag/index.d.ts.map +1 -0
- package/dist/components/theme-provider/component.d.ts +7 -0
- package/dist/components/theme-provider/component.d.ts.map +1 -0
- package/dist/components/theme-provider/component.js.map +1 -1
- package/dist/components/theme-provider/index.d.ts +2 -0
- package/dist/components/theme-provider/index.d.ts.map +1 -0
- package/dist/components/toast/component.d.ts +15 -0
- package/dist/components/toast/component.d.ts.map +1 -0
- package/dist/components/toast/component.js +49 -50
- package/dist/components/toast/component.js.map +1 -1
- package/dist/components/toast/function.d.ts +11 -0
- package/dist/components/toast/function.d.ts.map +1 -0
- package/dist/components/toast/function.js.map +1 -1
- package/dist/components/toast/index.d.ts +4 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/types.d.ts +4 -0
- package/dist/components/toast/types.d.ts.map +1 -0
- package/dist/components/tooltip/component.d.ts +10 -0
- package/dist/components/tooltip/component.d.ts.map +1 -0
- package/dist/components/tooltip/component.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tour/component.d.ts +8 -0
- package/dist/components/tour/component.d.ts.map +1 -0
- package/dist/components/tour/component.js.map +1 -1
- package/dist/components/tour/index.d.ts +2 -0
- package/dist/components/tour/index.d.ts.map +1 -0
- package/dist/components/transition/component.d.ts +30 -0
- package/dist/components/transition/component.d.ts.map +1 -0
- package/dist/components/transition/component.js +32 -32
- package/dist/components/transition/component.js.map +1 -1
- package/dist/components/transition/index.d.ts +2 -0
- package/dist/components/transition/index.d.ts.map +1 -0
- package/dist/components/tree/components.d.ts +14 -0
- package/dist/components/tree/components.d.ts.map +1 -0
- package/dist/components/tree/components.js.map +1 -1
- package/dist/components/tree/helpers.d.ts +6 -0
- package/dist/components/tree/helpers.d.ts.map +1 -0
- package/dist/components/tree/helpers.js.map +1 -1
- package/dist/components/tree/index.d.ts +5 -0
- package/dist/components/tree/index.d.ts.map +1 -0
- package/dist/components/tree/types.d.ts +56 -0
- package/dist/components/tree/types.d.ts.map +1 -0
- package/dist/components/tree/useTreeCommon.d.ts +179 -0
- package/dist/components/tree/useTreeCommon.d.ts.map +1 -0
- package/dist/components/tree/useTreeCommon.js +29 -29
- package/dist/components/tree/useTreeCommon.js.map +1 -1
- package/dist/components/tree/useUniqueKeysTree.d.ts +34 -0
- package/dist/components/tree/useUniqueKeysTree.d.ts.map +1 -0
- package/dist/components/tree/useUniqueKeysTree.js.map +1 -1
- package/dist/components/truncate/component.d.ts +17 -0
- package/dist/components/truncate/component.d.ts.map +1 -0
- package/dist/components/truncate/component.js +38 -39
- package/dist/components/truncate/component.js.map +1 -1
- package/dist/components/truncate/helpers.d.ts +17 -0
- package/dist/components/truncate/helpers.d.ts.map +1 -0
- package/dist/components/truncate/helpers.js +27 -30
- package/dist/components/truncate/helpers.js.map +1 -1
- package/dist/components/truncate/index.d.ts +2 -0
- package/dist/components/truncate/index.d.ts.map +1 -0
- package/dist/components/upload/component.d.ts +17 -0
- package/dist/components/upload/component.d.ts.map +1 -0
- package/dist/components/upload/component.js.map +1 -1
- package/dist/components/upload/dragger.d.ts +14 -0
- package/dist/components/upload/dragger.d.ts.map +1 -0
- package/dist/components/upload/dragger.js.map +1 -1
- package/dist/components/upload/hooks.d.ts +6 -0
- package/dist/components/upload/hooks.d.ts.map +1 -0
- package/dist/components/upload/hooks.js.map +1 -1
- package/dist/components/upload/index.d.ts +4 -0
- package/dist/components/upload/index.d.ts.map +1 -0
- package/dist/components/upload/item.d.ts +12 -0
- package/dist/components/upload/item.d.ts.map +1 -0
- package/dist/components/upload/item.js.map +1 -1
- package/dist/components/upload/utils.d.ts +2 -0
- package/dist/components/upload/utils.d.ts.map +1 -0
- package/dist/components/upload/utils.js.map +1 -1
- package/dist/components/utils/WithAntdTokens.d.ts +8 -0
- package/dist/components/utils/WithAntdTokens.d.ts.map +1 -0
- package/dist/components/utils/WithAntdTokens.js.map +1 -1
- package/dist/components/utils/WithRenderProp.d.ts +14 -0
- package/dist/components/utils/WithRenderProp.d.ts.map +1 -0
- package/dist/components/utils/WithRenderProp.js.map +1 -1
- package/dist/components/utils/antdUtils.d.ts +11 -0
- package/dist/components/utils/antdUtils.d.ts.map +1 -0
- package/dist/components/utils/antdUtils.js +9 -12
- package/dist/components/utils/antdUtils.js.map +1 -1
- package/dist/components/utils/client.d.ts +6 -0
- package/dist/components/utils/client.d.ts.map +1 -0
- package/dist/components/utils/cn.d.ts +5 -0
- package/dist/components/utils/cn.d.ts.map +1 -0
- package/dist/components/utils/cn.js.map +1 -1
- package/dist/components/utils/colors.d.ts +2 -0
- package/dist/components/utils/colors.d.ts.map +1 -0
- package/dist/components/utils/constants.d.ts +15 -0
- package/dist/components/utils/constants.d.ts.map +1 -0
- package/dist/components/utils/index.d.ts +6 -0
- package/dist/components/utils/index.d.ts.map +1 -0
- package/dist/components/utils/isTracebackError.d.ts +2 -0
- package/dist/components/utils/isTracebackError.d.ts.map +1 -0
- package/dist/components/utils/isTracebackError.js.map +1 -1
- package/dist/components/utils/main.d.ts +7 -0
- package/dist/components/utils/main.d.ts.map +1 -0
- package/dist/components/utils/placement.d.ts +21 -0
- package/dist/components/utils/placement.d.ts.map +1 -0
- package/dist/components/utils/placement.js.map +1 -1
- package/dist/components/utils/reactElement.d.ts +2 -0
- package/dist/components/utils/reactElement.d.ts.map +1 -0
- package/dist/components/utils/reactToString.d.ts +3 -0
- package/dist/components/utils/reactToString.d.ts.map +1 -0
- package/dist/components/utils/reactToString.js.map +1 -1
- package/dist/components/utils/selectionRange.d.ts +2 -0
- package/dist/components/utils/selectionRange.d.ts.map +1 -0
- package/dist/components/utils/selectionRange.js.map +1 -1
- package/dist/components/utils/theme.d.ts +6 -0
- package/dist/components/utils/theme.d.ts.map +1 -0
- package/dist/components/utils/theme.js.map +1 -1
- package/dist/components/utils/types.d.ts +12 -0
- package/dist/components/utils/types.d.ts.map +1 -0
- package/dist/components/vertical-collapsible-panel/component.d.ts +65 -0
- package/dist/components/vertical-collapsible-panel/component.d.ts.map +1 -0
- package/dist/components/vertical-collapsible-panel/component.js.map +1 -1
- package/dist/components/vertical-collapsible-panel/index.d.ts +2 -0
- package/dist/components/vertical-collapsible-panel/index.d.ts.map +1 -0
- package/dist/index.d.ts +4 -4431
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +166 -164
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +446 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js.map +1 -1
- package/dist/stats.html +4949 -0
- package/dist/tailwind.css +1 -1
- package/dist/tokens/and-theme/index.d.ts +2 -0
- package/dist/tokens/and-theme/index.d.ts.map +1 -0
- package/dist/tokens/and-theme/tokens.d.ts +6 -0
- package/dist/tokens/and-theme/tokens.d.ts.map +1 -0
- package/dist/tokens/and-theme/tokens.js.map +1 -1
- package/dist/tokens/charts/index.d.ts +5 -0
- package/dist/tokens/charts/index.d.ts.map +1 -0
- package/dist/tokens/charts/palettes/cloudscape.d.ts +460 -0
- package/dist/tokens/charts/palettes/cloudscape.d.ts.map +1 -0
- package/dist/tokens/charts/palettes/cloudscape.js.map +1 -1
- package/dist/tokens/charts/palettes/colorbrewer.d.ts +338 -0
- package/dist/tokens/charts/palettes/colorbrewer.d.ts.map +1 -0
- package/dist/tokens/charts/palettes/colorbrewer.js.map +1 -1
- package/dist/tokens/charts/palettes/index.d.ts +24 -0
- package/dist/tokens/charts/palettes/index.d.ts.map +1 -0
- package/dist/tokens/charts/palettes/index.js.map +1 -1
- package/dist/tokens/charts/palettes/tableau.d.ts +11 -0
- package/dist/tokens/charts/palettes/tableau.d.ts.map +1 -0
- package/dist/tokens/index.d.ts +5 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/types.d.ts +10 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/utils.d.ts +9 -0
- package/dist/tokens/utils.d.ts.map +1 -0
- package/dist/tokens/utils.js.map +1 -1
- package/package.json +2 -2
- package/dist/tailwind.d.ts +0 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { HighlightProps } from 'prism-react-renderer';
|
|
2
|
+
export interface CodeOption {
|
|
3
|
+
label: string;
|
|
4
|
+
code: string;
|
|
5
|
+
lang?: HighlightProps["language"];
|
|
6
|
+
}
|
|
7
|
+
export interface CodeBlockProps extends Omit<React.ComponentPropsWithRef<"div">, "onCopy"> {
|
|
8
|
+
/**
|
|
9
|
+
* The code to be highlighted
|
|
10
|
+
*/
|
|
11
|
+
code?: string;
|
|
12
|
+
/**
|
|
13
|
+
* The language of the code
|
|
14
|
+
* @default "tsx"
|
|
15
|
+
*/
|
|
16
|
+
lang?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Additional class name for the component
|
|
19
|
+
*/
|
|
20
|
+
className?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Options for the code block
|
|
23
|
+
* @default []
|
|
24
|
+
*/
|
|
25
|
+
options?: CodeOption[];
|
|
26
|
+
/**
|
|
27
|
+
* The active option when the component is controlled
|
|
28
|
+
*/
|
|
29
|
+
activeOption?: number;
|
|
30
|
+
/**
|
|
31
|
+
* The default active option when the component is uncontrolled
|
|
32
|
+
* @default 0
|
|
33
|
+
*/
|
|
34
|
+
defaultActiveOption?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Callback function when the active option changes
|
|
37
|
+
*/
|
|
38
|
+
onActiveOptionChange?: (option: number) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Copy text label
|
|
41
|
+
*/
|
|
42
|
+
copyText?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Copy success text label
|
|
45
|
+
*/
|
|
46
|
+
copySuccessText?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Custom class names for each part of the code block
|
|
49
|
+
*/
|
|
50
|
+
classNames?: {
|
|
51
|
+
root?: string;
|
|
52
|
+
content?: string;
|
|
53
|
+
header?: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Maximum height of the code block
|
|
57
|
+
*/
|
|
58
|
+
maxHeight?: string | number;
|
|
59
|
+
/**
|
|
60
|
+
* Copy callback function
|
|
61
|
+
*/
|
|
62
|
+
onCopy?: (code?: string) => void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC1D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CollapseProps as AntCollapseProps, CollapsePanelProps as AntCollapsePanelProps } from 'antd';
|
|
2
|
+
import { ForwardedRef } from 'react';
|
|
3
|
+
export interface CollapseProps extends AntCollapseProps {
|
|
4
|
+
}
|
|
5
|
+
export interface CollapsePanelProps extends AntCollapsePanelProps {
|
|
6
|
+
}
|
|
7
|
+
declare const CollapseInner: (props: CollapseProps, ref: ForwardedRef<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const Collapse: ((props: CollapseProps & {
|
|
9
|
+
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
10
|
+
}) => ReturnType<typeof CollapseInner>) & {
|
|
11
|
+
Panel: (props: CollapsePanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/collapse/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,kBAAkB,IAAI,qBAAqB,EACjD,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,OAAO,CAAC;AAItD,OAAO,aAAa,CAAC;AAGrB,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAG1D,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;CAAG;AAGpE,QAAA,MAAM,aAAa,GACjB,OAAO,aAAa,EACpB,KAAK,YAAY,CAAC,cAAc,CAAC,4CAWlC,CAAC;AAyBF,eAAO,MAAM,QAAQ,WArBZ,aAAa,GAAG;IACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;CAC1C,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;mBAGf,kBAAkB;CAiBtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/collapse/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n Collapse as AntCollapse,\n type CollapseProps as AntCollapseProps,\n type CollapsePanelProps as AntCollapsePanelProps,\n} from \"antd\";\nimport { type ForwardedRef, forwardRef } from \"react\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define props interface extending Ant Design's CollapseProps\nexport interface CollapseProps extends AntCollapseProps {}\n\n// Define props interface extending Ant Design's CollapsePanelProps\nexport interface CollapsePanelProps extends AntCollapsePanelProps {}\n\n// Create inner function with forwarded ref\nconst CollapseInner = (\n props: CollapseProps,\n ref: ForwardedRef<HTMLDivElement>\n) => {\n const { className, ...restProps } = props;\n const cls = useCls();\n return (\n <AntCollapse\n ref={ref}\n className={cls(\"collapse\", className)}\n {...restProps}\n />\n );\n};\n\n// Use forwardRef with type assertion\nconst MainCollapse = forwardRef(CollapseInner) as (\n props: CollapseProps & {\n ref?: React.ForwardedRef<HTMLDivElement>;\n }\n) => ReturnType<typeof CollapseInner>;\n\n// Create the Panel component (deprecated)\nconst Panel = (props: CollapsePanelProps) => {\n const { className, ...restProps } = props;\n const cls = useCls();\n console.warn(\n \"[bioturing-ds] Collapse.Panel is deprecated. Please use items prop instead.\"\n );\n return (\n <AntCollapse.Panel\n className={clsx(cls(\"collapse-panel\"), className)}\n {...restProps}\n />\n );\n};\n\n// Create the final component with Panel property\nexport const Collapse = Object.assign(MainCollapse, {\n Panel: Panel,\n});\n"],"names":["CollapseInner","props","ref","className","restProps","cls","useCls","jsx","AntCollapse","MainCollapse","forwardRef","Panel","clsx","Collapse"],"mappings":";;;;;;;AAmBA,MAAMA,IAAgB,CACpBC,GACAC,MACG;AACH,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAAcH,GAC9BI,IAAMC,
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/collapse/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n Collapse as AntCollapse,\n type CollapseProps as AntCollapseProps,\n type CollapsePanelProps as AntCollapsePanelProps,\n} from \"antd\";\nimport { type ForwardedRef, forwardRef } from \"react\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define props interface extending Ant Design's CollapseProps\nexport interface CollapseProps extends AntCollapseProps {}\n\n// Define props interface extending Ant Design's CollapsePanelProps\nexport interface CollapsePanelProps extends AntCollapsePanelProps {}\n\n// Create inner function with forwarded ref\nconst CollapseInner = (\n props: CollapseProps,\n ref: ForwardedRef<HTMLDivElement>\n) => {\n const { className, ...restProps } = props;\n const cls = useCls();\n return (\n <AntCollapse\n ref={ref}\n className={cls(\"collapse\", className)}\n {...restProps}\n />\n );\n};\n\n// Use forwardRef with type assertion\nconst MainCollapse = forwardRef(CollapseInner) as (\n props: CollapseProps & {\n ref?: React.ForwardedRef<HTMLDivElement>;\n }\n) => ReturnType<typeof CollapseInner>;\n\n// Create the Panel component (deprecated)\nconst Panel = (props: CollapsePanelProps) => {\n const { className, ...restProps } = props;\n const cls = useCls();\n console.warn(\n \"[bioturing-ds] Collapse.Panel is deprecated. Please use items prop instead.\"\n );\n return (\n <AntCollapse.Panel\n className={clsx(cls(\"collapse-panel\"), className)}\n {...restProps}\n />\n );\n};\n\n// Create the final component with Panel property\nexport const Collapse = Object.assign(MainCollapse, {\n Panel: Panel,\n});\n"],"names":["CollapseInner","props","ref","className","restProps","cls","useCls","jsx","AntCollapse","MainCollapse","forwardRef","Panel","clsx","Collapse"],"mappings":";;;;;;;AAmBA,MAAMA,IAAgB,CACpBC,GACAC,MACG;AACH,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAAcH,GAC9BI,IAAMC,EAAA;AACZ,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAN;AAAA,MACA,WAAWG,EAAI,YAAYF,CAAS;AAAA,MACnC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMK,IAAeC,EAAWV,CAAa,GAOvCW,IAAQ,CAACV,MAA8B;AAC3C,QAAM,EAAE,WAAAE,GAAW,GAAGC,EAAA,IAAcH,GAC9BI,IAAMC,EAAA;AACZ,iBAAQ;AAAA,IACN;AAAA,EAAA,GAGA,gBAAAC;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,WAAWI,EAAKP,EAAI,gBAAgB,GAAGF,CAAS;AAAA,MAC/C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV,GAGaS,IAAW,OAAO,OAAOJ,GAAc;AAAA,EAClD,OAAAE;AACF,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/collapse/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { default as React, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { ColorPickerProps } from 'antd/es/color-picker';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the ColorSelect component.
|
|
5
|
+
*/
|
|
6
|
+
export interface ColorSelectProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
7
|
+
/** Controlled list of selected hex colors */
|
|
8
|
+
value?: string[];
|
|
9
|
+
/** Default list of selected hex colors for uncontrolled usage */
|
|
10
|
+
defaultValue?: string[];
|
|
11
|
+
/** Callback invoked when selected colors change */
|
|
12
|
+
onChange?: (value: string[]) => void;
|
|
13
|
+
/** Props to pass through to the Ant Design ColorPicker, excluding value/onChange/onChangeComplete */
|
|
14
|
+
colorPickerProps?: Omit<ColorPickerProps, "value" | "onChange" | "onChangeComplete">;
|
|
15
|
+
/** Preset color swatches displayed in the picker */
|
|
16
|
+
presetColors?: string[];
|
|
17
|
+
/** Controlled open state of the ColorPicker dropdown */
|
|
18
|
+
open?: boolean;
|
|
19
|
+
/** Callback invoked when open state changes */
|
|
20
|
+
onOpenChange?: (open: boolean) => void;
|
|
21
|
+
/** Default open state for uncontrolled usage */
|
|
22
|
+
defaultOpen?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare const ColorSelect: React.ForwardRefExoticComponent<Omit<{
|
|
25
|
+
[x: string]: any;
|
|
26
|
+
className: any;
|
|
27
|
+
value: any;
|
|
28
|
+
defaultValue: any;
|
|
29
|
+
onChange: any;
|
|
30
|
+
colorPickerProps: any;
|
|
31
|
+
presetColors: any;
|
|
32
|
+
open: any;
|
|
33
|
+
onOpenChange: any;
|
|
34
|
+
defaultOpen: any;
|
|
35
|
+
}, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
36
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/color-select/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,wBAAwB,EAOzB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,sBAAsB,CAAC;AAWzE,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACzD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,IAAI,CACrB,gBAAgB,EAChB,OAAO,GAAG,UAAU,GAAG,kBAAkB,CAC1C,CAAC;IACF,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAgWD,eAAO,MAAM,WAAW;;;;;;;;;;;kDAAkB,CAAC"}
|
|
@@ -28,7 +28,7 @@ const ce = ({
|
|
|
28
28
|
q,
|
|
29
29
|
h,
|
|
30
30
|
O
|
|
31
|
-
), [C, S] = w(null), [i, D] = w(""), [E, M] = w(""), [k,
|
|
31
|
+
), [C, S] = w(null), [i, D] = w(""), [E, M] = w(""), [k, n] = $(
|
|
32
32
|
U,
|
|
33
33
|
g,
|
|
34
34
|
W
|
|
@@ -36,16 +36,14 @@ const ce = ({
|
|
|
36
36
|
x: 0,
|
|
37
37
|
y: 0
|
|
38
38
|
}), v = c(() => {
|
|
39
|
-
|
|
40
|
-
z.current = !0, (e = d.current) == null || e.focus(), oe(d.current);
|
|
39
|
+
z.current = !0, d.current?.focus(), oe(d.current);
|
|
41
40
|
}, []), b = c(() => {
|
|
42
|
-
|
|
43
|
-
}, [
|
|
41
|
+
n(!1), v();
|
|
42
|
+
}, [n, v]);
|
|
44
43
|
L(() => {
|
|
45
44
|
if (!k) return;
|
|
46
45
|
const e = (t) => {
|
|
47
|
-
|
|
48
|
-
(o = y.current) != null && o.contains(t.target) || d.current && !d.current.isEqualNode(t.target) && b();
|
|
46
|
+
y.current?.contains(t.target) || d.current && !d.current.isEqualNode(t.target) && b();
|
|
49
47
|
};
|
|
50
48
|
return document.addEventListener("click", e), () => document.removeEventListener("click", e);
|
|
51
49
|
}, [k, b]), L(() => {
|
|
@@ -62,13 +60,13 @@ const ce = ({
|
|
|
62
60
|
const A = c(() => {
|
|
63
61
|
const t = i.trim().split(/[;,\s]+/).filter(Boolean).map(
|
|
64
62
|
(l) => l.trim().toUpperCase()
|
|
65
|
-
),
|
|
66
|
-
|
|
67
|
-
const p = /* @__PURE__ */ new Set([...s, ...
|
|
68
|
-
h && h([...p]), g && g(!1), D(""), M(""),
|
|
69
|
-
|
|
63
|
+
), r = [], o = t.reduce((l, m) => (R(m, !0) ? l.push(m) : r.push(m), l), []);
|
|
64
|
+
r.length && ne(`Invalid colors: ${r.join(", ")}`);
|
|
65
|
+
const p = /* @__PURE__ */ new Set([...s, ...o]);
|
|
66
|
+
h && h([...p]), g && g(!1), D(""), M(""), n(!1), requestAnimationFrame(() => {
|
|
67
|
+
n(!0);
|
|
70
68
|
});
|
|
71
|
-
}, [i, s, h, g,
|
|
69
|
+
}, [i, s, h, g, n]), B = c(
|
|
72
70
|
(e) => {
|
|
73
71
|
e.key === "Enter" && A(), e.key === "Backspace" && !i && (e.ctrlKey || e.metaKey ? u([]) : u(s.slice(0, -1)));
|
|
74
72
|
},
|
|
@@ -87,14 +85,14 @@ const ce = ({
|
|
|
87
85
|
({
|
|
88
86
|
open: e,
|
|
89
87
|
child: t,
|
|
90
|
-
value:
|
|
91
|
-
onChange:
|
|
88
|
+
value: r,
|
|
89
|
+
onChange: o,
|
|
92
90
|
onOpenChange: p
|
|
93
91
|
}) => /* @__PURE__ */ f(
|
|
94
92
|
_,
|
|
95
93
|
{
|
|
96
|
-
value:
|
|
97
|
-
onChange:
|
|
94
|
+
value: r,
|
|
95
|
+
onChange: o,
|
|
98
96
|
open: e,
|
|
99
97
|
onOpenChange: p,
|
|
100
98
|
arrow: !1,
|
|
@@ -122,12 +120,12 @@ const ce = ({
|
|
|
122
120
|
]
|
|
123
121
|
), G = j(
|
|
124
122
|
() => s.map((e, t) => {
|
|
125
|
-
const
|
|
123
|
+
const r = /* @__PURE__ */ f(se, { title: e, children: /* @__PURE__ */ f(
|
|
126
124
|
le,
|
|
127
125
|
{
|
|
128
126
|
className: a("color-select-tag"),
|
|
129
127
|
closable: !0,
|
|
130
|
-
onClose: () => u(s.filter((
|
|
128
|
+
onClose: () => u(s.filter((o) => o !== e)),
|
|
131
129
|
icon: /* @__PURE__ */ f(
|
|
132
130
|
"span",
|
|
133
131
|
{
|
|
@@ -139,16 +137,16 @@ const ce = ({
|
|
|
139
137
|
}
|
|
140
138
|
) }, `${e}-${t}`);
|
|
141
139
|
return V({
|
|
142
|
-
child:
|
|
140
|
+
child: r,
|
|
143
141
|
open: C !== null && C === t,
|
|
144
142
|
value: s[t],
|
|
145
|
-
onChange: (
|
|
143
|
+
onChange: (o) => {
|
|
146
144
|
u(
|
|
147
|
-
s.map((p, l) => l === t ?
|
|
145
|
+
s.map((p, l) => l === t ? o.toHexString() : p)
|
|
148
146
|
);
|
|
149
147
|
},
|
|
150
|
-
onOpenChange: (
|
|
151
|
-
S(
|
|
148
|
+
onOpenChange: (o) => {
|
|
149
|
+
S(o ? t : null);
|
|
152
150
|
}
|
|
153
151
|
});
|
|
154
152
|
}),
|
|
@@ -171,21 +169,21 @@ const ce = ({
|
|
|
171
169
|
ref: te(N, d),
|
|
172
170
|
onChange: (e) => {
|
|
173
171
|
const t = e.target.value;
|
|
174
|
-
D(t), R(t, !0) && M(t), t.length > 7 || t.length == 7 && !t.startsWith("#") ?
|
|
172
|
+
D(t), R(t, !0) && M(t), t.length > 7 || t.length == 7 && !t.startsWith("#") ? n(!1) : n(!0);
|
|
175
173
|
},
|
|
176
174
|
onKeyDown: B,
|
|
177
175
|
onFocus: (e) => {
|
|
178
|
-
T(!0),
|
|
176
|
+
T(!0), n(!0);
|
|
179
177
|
},
|
|
180
178
|
onBlur: (e) => {
|
|
181
179
|
if (y.current) {
|
|
182
|
-
const t = y.current.getBoundingClientRect(), { x:
|
|
183
|
-
if (
|
|
180
|
+
const t = y.current.getBoundingClientRect(), { x: r, y: o } = x.current;
|
|
181
|
+
if (r >= t.left && r <= t.right && o >= t.top && o <= t.bottom) {
|
|
184
182
|
e.preventDefault(), e.stopPropagation(), R(E) && v();
|
|
185
183
|
return;
|
|
186
184
|
}
|
|
187
185
|
}
|
|
188
|
-
T(!1),
|
|
186
|
+
T(!1), n(!1);
|
|
189
187
|
}
|
|
190
188
|
}
|
|
191
189
|
),
|
|
@@ -201,7 +199,7 @@ const ce = ({
|
|
|
201
199
|
N,
|
|
202
200
|
V,
|
|
203
201
|
i,
|
|
204
|
-
|
|
202
|
+
n,
|
|
205
203
|
k,
|
|
206
204
|
v,
|
|
207
205
|
x
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/color-select/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n ComponentPropsWithoutRef,\n forwardRef,\n useRef,\n useState,\n useCallback,\n useMemo,\n useEffect,\n} from \"react\";\nimport ColorPicker from \"antd/es/color-picker\";\nimport { type ColorPickerProps, type Color } from \"antd/es/color-picker\";\nimport { useCls, isValidHexColor } from \"../utils\";\nimport { useControlledState } from \"../hooks\";\nimport { Tag } from \"../tag\";\nimport { Stack } from \"../stack\";\nimport { toast } from \"../toast\";\nimport mergeRefs from \"merge-refs\";\nimport { moveTypingCursorToEnd } from \"../utils/client\";\nimport { Tooltip } from \"../tooltip\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n/**\n * Props for the ColorSelect component.\n */\nexport interface ColorSelectProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /** Controlled list of selected hex colors */\n value?: string[];\n /** Default list of selected hex colors for uncontrolled usage */\n defaultValue?: string[];\n /** Callback invoked when selected colors change */\n onChange?: (value: string[]) => void;\n /** Props to pass through to the Ant Design ColorPicker, excluding value/onChange/onChangeComplete */\n colorPickerProps?: Omit<\n ColorPickerProps,\n \"value\" | \"onChange\" | \"onChangeComplete\"\n >;\n /** Preset color swatches displayed in the picker */\n presetColors?: string[];\n /** Controlled open state of the ColorPicker dropdown */\n open?: boolean;\n /** Callback invoked when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Default open state for uncontrolled usage */\n defaultOpen?: boolean;\n}\n\n/**\n * ColorSelectInner - Combines an input and Ant Design ColorPicker for selecting multiple colors.\n * Supports preset color swatches and freeform hex entry, displaying selections as tags.\n * Controlled/uncontrolled APIs for `value` and `open`, emitting invalid input notifications via toast.\n * @param props - {@link ColorSelectProps}\n * @param ref - ref to the input element\n * @returns JSX.Element\n */\nconst ColorSelectInner = (\n {\n className,\n value: valueProp,\n defaultValue,\n onChange,\n colorPickerProps,\n presetColors,\n open: openProp,\n onOpenChange,\n defaultOpen,\n ...rest\n },\n ref: React.Ref<React.ComponentRef<\"input\">>\n) => {\n const cls = useCls();\n const [value, setValue] = useControlledState<string[]>(\n valueProp,\n onChange,\n defaultValue\n );\n const [activeColorIndex, setActiveColorIndex] = useState<number | null>(null);\n const [searchValue, setSearchValue] = useState(\"\");\n const [tmpValue, setTmpValue] = useState(\"\");\n const [open, setOpen] = useControlledState<boolean>(\n openProp,\n onOpenChange,\n defaultOpen\n );\n\n const [isFocus, setIsFocus] = useState(false);\n\n const popupRef = useRef<HTMLDivElement>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isFocusedProgramatically = useRef(false);\n\n const mousePosition = useRef({\n x: 0,\n y: 0,\n });\n\n const focusInput = useCallback(() => {\n isFocusedProgramatically.current = true;\n inputRef.current?.focus();\n moveTypingCursorToEnd(inputRef.current);\n }, []);\n\n const closeAndFocus = useCallback(() => {\n setOpen(false);\n focusInput();\n }, [setOpen, focusInput]);\n\n useEffect(() => {\n if (!open) return;\n const handler = (event: MouseEvent) => {\n if (!popupRef.current?.contains(event.target as Node)) {\n if (\n inputRef.current &&\n !inputRef.current.isEqualNode(event.target as Node)\n ) {\n closeAndFocus();\n }\n }\n };\n document.addEventListener(\"click\", handler);\n\n // Return cleanup function\n return () => document.removeEventListener(\"click\", handler);\n }, [open, closeAndFocus]);\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n mousePosition.current = {\n x: e.clientX,\n y: e.clientY,\n };\n };\n document.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, []);\n\n const onEnter = useCallback(() => {\n const searchValueSplit = searchValue\n .trim()\n .split(/[;,\\s]+/)\n .filter(Boolean);\n const addedValues = searchValueSplit.map((gene) =>\n gene.trim().toUpperCase()\n );\n const inValidValues: string[] = [];\n const validAddedValues = addedValues.reduce((acc, curr) => {\n if (!isValidHexColor(curr, true)) {\n inValidValues.push(curr);\n } else {\n acc.push(curr);\n }\n return acc;\n }, [] as string[]);\n if (inValidValues.length) {\n toast(`Invalid colors: ${inValidValues.join(\", \")}`);\n }\n const newColors = new Set([...value, ...validAddedValues]);\n if (onChange) onChange([...newColors]);\n if (onOpenChange) onOpenChange(false);\n setSearchValue(\"\");\n setTmpValue(\"\");\n setOpen(false);\n requestAnimationFrame(() => {\n setOpen(true);\n });\n }, [searchValue, value, onChange, onOpenChange, setOpen]);\n\n const onInputKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") onEnter();\n if (e.key === \"Backspace\" && !searchValue) {\n if (e.ctrlKey || e.metaKey) {\n setValue([]);\n } else {\n setValue(value.slice(0, -1));\n }\n }\n },\n [onEnter, searchValue, value, setValue]\n );\n\n const handlePopupMouseDown = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Prevent input blur when clicking popup\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n const handlePopupMouseDownCapture = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Prevent input blur when clicking popup\n e.preventDefault();\n },\n []\n );\n\n const renderedColorPicker = useCallback(\n ({\n open,\n child,\n value,\n onChange,\n onOpenChange,\n }: {\n open: boolean;\n child: React.ReactNode;\n value: string;\n onChange: (value: Color) => void;\n onOpenChange?: (open: boolean) => void;\n }) => (\n <ColorPicker\n value={value}\n onChange={onChange}\n open={open}\n onOpenChange={onOpenChange}\n arrow={false}\n presets={\n presetColors\n ? [{ label: \"Preset Colors\", colors: presetColors }]\n : undefined\n }\n {...colorPickerProps}\n panelRender={(panel) => (\n <div\n ref={(el) => {\n if (el) {\n popupRef.current = el;\n }\n }}\n onMouseDown={handlePopupMouseDown}\n onMouseDownCapture={handlePopupMouseDownCapture}\n >\n {panel}\n </div>\n )}\n >\n {child}\n </ColorPicker>\n ),\n [\n presetColors,\n colorPickerProps,\n handlePopupMouseDown,\n handlePopupMouseDownCapture,\n ]\n );\n\n const renderedTags = useMemo(\n () =>\n value.map((color, index) => {\n const tag = (\n <Tooltip title={color} key={`${color}-${index}`}>\n <Tag\n className={cls(\"color-select-tag\")}\n closable\n onClose={() => setValue(value.filter((v) => v !== color))}\n icon={\n <span\n className={cls(\"color-select-swatch\")}\n style={{ backgroundColor: color }}\n />\n }\n onClick={() =>\n activeColorIndex === index\n ? setActiveColorIndex(null)\n : setActiveColorIndex(index)\n }\n />\n </Tooltip>\n );\n return renderedColorPicker({\n child: tag,\n open: activeColorIndex !== null && activeColorIndex === index,\n value: value[index],\n onChange: (color) => {\n setValue(\n value.map((v, i) => (i === index ? color.toHexString() : v))\n );\n },\n onOpenChange: (open) => {\n setActiveColorIndex(open ? index : null);\n },\n });\n }),\n [\n value,\n cls,\n setValue,\n activeColorIndex,\n setActiveColorIndex,\n renderedColorPicker,\n ]\n );\n\n const renderedColorPickerInput = useMemo(() => {\n return renderedColorPicker({\n child: (\n <input\n placeholder=\"Select or enter a color list\"\n className={cls(\"color-select-input\")}\n value={searchValue}\n type=\"text\"\n ref={mergeRefs(ref, inputRef)}\n onChange={(e) => {\n const currValue = e.target.value;\n setSearchValue(currValue);\n if (isValidHexColor(currValue, true)) setTmpValue(currValue);\n if (\n currValue.length > 7 ||\n (currValue.length == 7 && !currValue.startsWith(\"#\"))\n ) {\n // closeAndFocus();\n setOpen(false);\n } else {\n setOpen(true);\n }\n }}\n onKeyDown={onInputKeyDown}\n onFocus={(e) => {\n // if focus is triggered by programatically, do not open the popup\n // if (isFocusedProgramatically.current) {\n // isFocusedProgramatically.current = false;\n // return;\n // }\n setIsFocus(true);\n setOpen(true);\n }}\n onBlur={(e) => {\n // if (popupRef.current?.contains(e.relatedTarget)) return;\n // Check if click is inside popup using cursor position\n if (popupRef.current) {\n const rect = popupRef.current.getBoundingClientRect();\n const { x, y } = mousePosition.current;\n const isClickInsidePopup =\n x >= rect.left &&\n x <= rect.right &&\n y >= rect.top &&\n y <= rect.bottom;\n if (isClickInsidePopup) {\n e.preventDefault();\n e.stopPropagation();\n if (isValidHexColor(tmpValue)) {\n focusInput();\n }\n return;\n }\n }\n // Check if the new focus target is inside the popup\n setIsFocus(false);\n setOpen(false);\n }}\n />\n ),\n value: tmpValue,\n onChange: (color) => {\n // setValue([...value, color]);\n setTmpValue(color.toHexString());\n setSearchValue(color.toHexString());\n focusInput();\n },\n open,\n });\n }, [\n cls,\n tmpValue,\n onInputKeyDown,\n ref,\n renderedColorPicker,\n searchValue,\n setOpen,\n open,\n focusInput,\n mousePosition,\n ]);\n return (\n <Stack\n wrap\n gap={4}\n className={cls(\"color-select\")}\n data-focus={isFocus || undefined}\n {...rest}\n >\n {renderedTags}\n {renderedColorPickerInput}\n </Stack>\n );\n};\n\n// Use forwardRef with type assertion\nconst MainColorSelect = forwardRef(ColorSelectInner);\n\nexport const ColorSelect = MainColorSelect;\n"],"names":["ColorSelectInner","className","valueProp","defaultValue","onChange","colorPickerProps","presetColors","openProp","onOpenChange","defaultOpen","rest","ref","cls","useCls","value","setValue","useControlledState","activeColorIndex","setActiveColorIndex","useState","searchValue","setSearchValue","tmpValue","setTmpValue","open","setOpen","isFocus","setIsFocus","popupRef","useRef","inputRef","isFocusedProgramatically","mousePosition","focusInput","useCallback","_a","moveTypingCursorToEnd","closeAndFocus","useEffect","handler","event","handleMouseMove","e","onEnter","addedValues","gene","inValidValues","validAddedValues","acc","curr","isValidHexColor","toast","newColors","onInputKeyDown","handlePopupMouseDown","handlePopupMouseDownCapture","renderedColorPicker","child","jsx","ColorPicker","panel","el","renderedTags","useMemo","color","index","tag","Tooltip","Tag","v","i","renderedColorPickerInput","mergeRefs","currValue","rect","x","y","jsxs","Stack","MainColorSelect","forwardRef","ColorSelect"],"mappings":";;;;;;;;;;;;;;AA0DA,MAAMA,KAAmB,CACvB;AAAA,EACE,WAAAC;AAAA,EACA,OAAOC;AAAA,EACP,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAMC;AAAA,EACN,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,GAAO,GACb,CAACC,GAAOC,CAAQ,IAAIC;AAAA,IACxBd;AAAA,IACAE;AAAA,IACAD;AAAA,EACF,GACM,CAACc,GAAkBC,CAAmB,IAAIC,EAAwB,IAAI,GACtE,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAE,GAC3C,CAACG,GAAUC,CAAW,IAAIJ,EAAS,EAAE,GACrC,CAACK,GAAMC,CAAO,IAAIT;AAAA,IACtBT;AAAA,IACAC;AAAA,IACAC;AAAA,EACF,GAEM,CAACiB,GAASC,CAAU,IAAIR,EAAS,EAAK,GAEtCS,IAAWC,EAAuB,IAAI,GAEtCC,IAAWD,EAAyB,IAAI,GAExCE,IAA2BF,EAAO,EAAK,GAEvCG,IAAgBH,EAAO;AAAA,IAC3B,GAAG;AAAA,IACH,GAAG;AAAA,EAAA,CACJ,GAEKI,IAAaC,EAAY,MAAM;;AACnC,IAAAH,EAAyB,UAAU,KACnCI,IAAAL,EAAS,YAAT,QAAAK,EAAkB,SAClBC,GAAsBN,EAAS,OAAO;AAAA,EACxC,GAAG,EAAE,GAECO,IAAgBH,EAAY,MAAM;AACtC,IAAAT,EAAQ,EAAK,GACFQ,EAAA;AAAA,EAAA,GACV,CAACR,GAASQ,CAAU,CAAC;AAExB,EAAAK,EAAU,MAAM;AACd,QAAI,CAACd,EAAM;AACL,UAAAe,IAAU,CAACC,MAAsB;;AACrC,OAAKL,IAAAP,EAAS,YAAT,QAAAO,EAAkB,SAASK,EAAM,WAElCV,EAAS,WACT,CAACA,EAAS,QAAQ,YAAYU,EAAM,MAAc,KAEpCH,EAAA;AAAA,IAGpB;AACS,oBAAA,iBAAiB,SAASE,CAAO,GAGnC,MAAM,SAAS,oBAAoB,SAASA,CAAO;AAAA,EAAA,GACzD,CAACf,GAAMa,CAAa,CAAC,GAExBC,EAAU,MAAM;AACR,UAAAG,IAAkB,CAACC,MAAkB;AACzC,MAAAV,EAAc,UAAU;AAAA,QACtB,GAAGU,EAAE;AAAA,QACL,GAAGA,EAAE;AAAA,MACP;AAAA,IACF;AACS,oBAAA,iBAAiB,aAAaD,CAAe,GAC/C,MAAM;AACF,eAAA,oBAAoB,aAAaA,CAAe;AAAA,IAC3D;AAAA,EACF,GAAG,EAAE;AAEC,QAAAE,IAAUT,EAAY,MAAM;AAKhC,UAAMU,IAJmBxB,EACtB,KAAK,EACL,MAAM,SAAS,EACf,OAAO,OAAO,EACoB;AAAA,MAAI,CAACyB,MACxCA,EAAK,KAAA,EAAO,YAAY;AAAA,IAC1B,GACMC,IAA0B,CAAC,GAC3BC,IAAmBH,EAAY,OAAO,CAACI,GAAKC,OAC3CC,EAAgBD,GAAM,EAAI,IAG7BD,EAAI,KAAKC,CAAI,IAFbH,EAAc,KAAKG,CAAI,GAIlBD,IACN,EAAc;AACjB,IAAIF,EAAc,UAChBK,GAAM,mBAAmBL,EAAc,KAAK,IAAI,CAAC,EAAE;AAE/C,UAAAM,wBAAgB,IAAI,CAAC,GAAGtC,GAAO,GAAGiC,CAAgB,CAAC;AACzD,IAAI3C,KAAUA,EAAS,CAAC,GAAGgD,CAAS,CAAC,GACjC5C,OAA2B,EAAK,GACpCa,EAAe,EAAE,GACjBE,EAAY,EAAE,GACdE,EAAQ,EAAK,GACb,sBAAsB,MAAM;AAC1B,MAAAA,EAAQ,EAAI;AAAA,IAAA,CACb;AAAA,EAAA,GACA,CAACL,GAAaN,GAAOV,GAAUI,GAAciB,CAAO,CAAC,GAElD4B,IAAiBnB;AAAA,IACrB,CAAC,MAA6C;AACxC,MAAA,EAAE,QAAQ,WAAiBS,EAAA,GAC3B,EAAE,QAAQ,eAAe,CAACvB,MACxB,EAAE,WAAW,EAAE,UACjBL,EAAS,CAAA,CAAE,IAEXA,EAASD,EAAM,MAAM,GAAG,EAAE,CAAC;AAAA,IAGjC;AAAA,IACA,CAAC6B,GAASvB,GAAaN,GAAOC,CAAQ;AAAA,EACxC,GAEMuC,IAAuBpB;AAAA,IAC3B,CAAC,MAAwC;AAEvC,QAAE,eAAe,GACjB,EAAE,gBAAgB;AAAA,IACpB;AAAA,IACA,CAAA;AAAA,EACF,GAEMqB,IAA8BrB;AAAA,IAClC,CAAC,MAAwC;AAEvC,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAA;AAAA,EACF,GAEMsB,IAAsBtB;AAAA,IAC1B,CAAC;AAAA,MACC,MAAAV;AAAAA,MACA,OAAAiC;AAAA,MACA,OAAA3C;AAAAA,MACA,UAAAV;AAAAA,MACA,cAAAI;AAAAA,IAAA,MAQA,gBAAAkD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO7C;AAAAA,QACP,UAAUV;AAAAA,QACV,MAAMoB;AAAAA,QACN,cAAchB;AAAAA,QACd,OAAO;AAAA,QACP,SACEF,IACI,CAAC,EAAE,OAAO,iBAAiB,QAAQA,EAAc,CAAA,IACjD;AAAA,QAEL,GAAGD;AAAA,QACJ,aAAa,CAACuD,MACZ,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK,CAACG,MAAO;AACX,cAAIA,MACFjC,EAAS,UAAUiC;AAAA,YAEvB;AAAA,YACA,aAAaP;AAAA,YACb,oBAAoBC;AAAA,YAEnB,UAAAK;AAAA,UAAA;AAAA,QACH;AAAA,QAGD,UAAAH;AAAA,MAAA;AAAA,IACH;AAAA,IAEF;AAAA,MACEnD;AAAA,MACAD;AAAA,MACAiD;AAAA,MACAC;AAAA,IAAA;AAAA,EAEJ,GAEMO,IAAeC;AAAA,IACnB,MACEjD,EAAM,IAAI,CAACkD,GAAOC,MAAU;AAC1B,YAAMC,IACJ,gBAAAR,EAACS,IAAQ,EAAA,OAAOH,GACd,UAAA,gBAAAN;AAAA,QAACU;AAAA,QAAA;AAAA,UACC,WAAWxD,EAAI,kBAAkB;AAAA,UACjC,UAAQ;AAAA,UACR,SAAS,MAAMG,EAASD,EAAM,OAAO,CAACuD,MAAMA,MAAML,CAAK,CAAC;AAAA,UACxD,MACE,gBAAAN;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW9C,EAAI,qBAAqB;AAAA,cACpC,OAAO,EAAE,iBAAiBoD,EAAM;AAAA,YAAA;AAAA,UAClC;AAAA,UAEF,SAAS,MAEH9C,EADJD,MAAqBgD,IACG,OACAA,CADI;AAAA,QACC;AAAA,MAdP,EAAA,GAAA,GAAGD,CAAK,IAAIC,CAAK,EAiB7C;AAEF,aAAOT,EAAoB;AAAA,QACzB,OAAOU;AAAA,QACP,MAAMjD,MAAqB,QAAQA,MAAqBgD;AAAA,QACxD,OAAOnD,EAAMmD,CAAK;AAAA,QAClB,UAAU,CAACD,MAAU;AACnB,UAAAjD;AAAA,YACED,EAAM,IAAI,CAACuD,GAAGC,MAAOA,MAAML,IAAQD,EAAM,YAAY,IAAIK,CAAE;AAAA,UAC7D;AAAA,QACF;AAAA,QACA,cAAc,CAAC7C,MAAS;AACFA,UAAAA,EAAAA,IAAOyC,IAAQ,IAAI;AAAA,QAAA;AAAA,MACzC,CACD;AAAA,IAAA,CACF;AAAA,IACH;AAAA,MACEnD;AAAA,MACAF;AAAA,MACAG;AAAA,MACAE;AAAA,MACAC;AAAA,MACAsC;AAAA,IAAA;AAAA,EAEJ,GAEMe,IAA2BR,EAAQ,MAChCP,EAAoB;AAAA,IACzB,OACE,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAY;AAAA,QACZ,WAAW9C,EAAI,oBAAoB;AAAA,QACnC,OAAOQ;AAAA,QACP,MAAK;AAAA,QACL,KAAKoD,GAAU7D,GAAKmB,CAAQ;AAAA,QAC5B,UAAU,CAAC,MAAM;AACT,gBAAA2C,IAAY,EAAE,OAAO;AAC3B,UAAApD,EAAeoD,CAAS,GACpBvB,EAAgBuB,GAAW,EAAI,OAAeA,CAAS,GAEzDA,EAAU,SAAS,KAClBA,EAAU,UAAU,KAAK,CAACA,EAAU,WAAW,GAAG,IAGnDhD,EAAQ,EAAK,IAEbA,EAAQ,EAAI;AAAA,QAEhB;AAAA,QACA,WAAW4B;AAAA,QACX,SAAS,CAAC,MAAM;AAMd,UAAA1B,EAAW,EAAI,GACfF,EAAQ,EAAI;AAAA,QACd;AAAA,QACA,QAAQ,CAAC,MAAM;AAGb,cAAIG,EAAS,SAAS;AACd,kBAAA8C,IAAO9C,EAAS,QAAQ,sBAAsB,GAC9C,EAAE,GAAA+C,GAAG,GAAAC,EAAE,IAAI5C,EAAc;AAM/B,gBAJE2C,KAAKD,EAAK,QACVC,KAAKD,EAAK,SACVE,KAAKF,EAAK,OACVE,KAAKF,EAAK,QACY;AACtB,gBAAE,eAAe,GACjB,EAAE,gBAAgB,GACdxB,EAAgB5B,CAAQ,KACfW,EAAA;AAEb;AAAA,YAAA;AAAA,UACF;AAGF,UAAAN,EAAW,EAAK,GAChBF,EAAQ,EAAK;AAAA,QAAA;AAAA,MACf;AAAA,IACF;AAAA,IAEF,OAAOH;AAAA,IACP,UAAU,CAAC0C,MAAU;AAEP,MAAAzC,EAAAyC,EAAM,aAAa,GAChB3C,EAAA2C,EAAM,aAAa,GACvB/B,EAAA;AAAA,IACb;AAAA,IACA,MAAAT;AAAA,EAAA,CACD,GACA;AAAA,IACDZ;AAAA,IACAU;AAAA,IACA+B;AAAA,IACA1C;AAAA,IACA6C;AAAA,IACApC;AAAA,IACAK;AAAA,IACAD;AAAA,IACAS;AAAA,IACAD;AAAA,EAAA,CACD;AAEC,SAAA,gBAAA6C;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAI;AAAA,MACJ,KAAK;AAAA,MACL,WAAWlE,EAAI,cAAc;AAAA,MAC7B,cAAYc,KAAW;AAAA,MACtB,GAAGhB;AAAA,MAEH,UAAA;AAAA,QAAAoD;AAAA,QACAS;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAEJ,GAGMQ,KAAkBC,EAAWhF,EAAgB,GAEtCiF,KAAcF;"}
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/color-select/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n ComponentPropsWithoutRef,\n forwardRef,\n useRef,\n useState,\n useCallback,\n useMemo,\n useEffect,\n} from \"react\";\nimport ColorPicker from \"antd/es/color-picker\";\nimport { type ColorPickerProps, type Color } from \"antd/es/color-picker\";\nimport { useCls, isValidHexColor } from \"../utils\";\nimport { useControlledState } from \"../hooks\";\nimport { Tag } from \"../tag\";\nimport { Stack } from \"../stack\";\nimport { toast } from \"../toast\";\nimport mergeRefs from \"merge-refs\";\nimport { moveTypingCursorToEnd } from \"../utils/client\";\nimport { Tooltip } from \"../tooltip\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n/**\n * Props for the ColorSelect component.\n */\nexport interface ColorSelectProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /** Controlled list of selected hex colors */\n value?: string[];\n /** Default list of selected hex colors for uncontrolled usage */\n defaultValue?: string[];\n /** Callback invoked when selected colors change */\n onChange?: (value: string[]) => void;\n /** Props to pass through to the Ant Design ColorPicker, excluding value/onChange/onChangeComplete */\n colorPickerProps?: Omit<\n ColorPickerProps,\n \"value\" | \"onChange\" | \"onChangeComplete\"\n >;\n /** Preset color swatches displayed in the picker */\n presetColors?: string[];\n /** Controlled open state of the ColorPicker dropdown */\n open?: boolean;\n /** Callback invoked when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Default open state for uncontrolled usage */\n defaultOpen?: boolean;\n}\n\n/**\n * ColorSelectInner - Combines an input and Ant Design ColorPicker for selecting multiple colors.\n * Supports preset color swatches and freeform hex entry, displaying selections as tags.\n * Controlled/uncontrolled APIs for `value` and `open`, emitting invalid input notifications via toast.\n * @param props - {@link ColorSelectProps}\n * @param ref - ref to the input element\n * @returns JSX.Element\n */\nconst ColorSelectInner = (\n {\n className,\n value: valueProp,\n defaultValue,\n onChange,\n colorPickerProps,\n presetColors,\n open: openProp,\n onOpenChange,\n defaultOpen,\n ...rest\n },\n ref: React.Ref<React.ComponentRef<\"input\">>\n) => {\n const cls = useCls();\n const [value, setValue] = useControlledState<string[]>(\n valueProp,\n onChange,\n defaultValue\n );\n const [activeColorIndex, setActiveColorIndex] = useState<number | null>(null);\n const [searchValue, setSearchValue] = useState(\"\");\n const [tmpValue, setTmpValue] = useState(\"\");\n const [open, setOpen] = useControlledState<boolean>(\n openProp,\n onOpenChange,\n defaultOpen\n );\n\n const [isFocus, setIsFocus] = useState(false);\n\n const popupRef = useRef<HTMLDivElement>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isFocusedProgramatically = useRef(false);\n\n const mousePosition = useRef({\n x: 0,\n y: 0,\n });\n\n const focusInput = useCallback(() => {\n isFocusedProgramatically.current = true;\n inputRef.current?.focus();\n moveTypingCursorToEnd(inputRef.current);\n }, []);\n\n const closeAndFocus = useCallback(() => {\n setOpen(false);\n focusInput();\n }, [setOpen, focusInput]);\n\n useEffect(() => {\n if (!open) return;\n const handler = (event: MouseEvent) => {\n if (!popupRef.current?.contains(event.target as Node)) {\n if (\n inputRef.current &&\n !inputRef.current.isEqualNode(event.target as Node)\n ) {\n closeAndFocus();\n }\n }\n };\n document.addEventListener(\"click\", handler);\n\n // Return cleanup function\n return () => document.removeEventListener(\"click\", handler);\n }, [open, closeAndFocus]);\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n mousePosition.current = {\n x: e.clientX,\n y: e.clientY,\n };\n };\n document.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, []);\n\n const onEnter = useCallback(() => {\n const searchValueSplit = searchValue\n .trim()\n .split(/[;,\\s]+/)\n .filter(Boolean);\n const addedValues = searchValueSplit.map((gene) =>\n gene.trim().toUpperCase()\n );\n const inValidValues: string[] = [];\n const validAddedValues = addedValues.reduce((acc, curr) => {\n if (!isValidHexColor(curr, true)) {\n inValidValues.push(curr);\n } else {\n acc.push(curr);\n }\n return acc;\n }, [] as string[]);\n if (inValidValues.length) {\n toast(`Invalid colors: ${inValidValues.join(\", \")}`);\n }\n const newColors = new Set([...value, ...validAddedValues]);\n if (onChange) onChange([...newColors]);\n if (onOpenChange) onOpenChange(false);\n setSearchValue(\"\");\n setTmpValue(\"\");\n setOpen(false);\n requestAnimationFrame(() => {\n setOpen(true);\n });\n }, [searchValue, value, onChange, onOpenChange, setOpen]);\n\n const onInputKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") onEnter();\n if (e.key === \"Backspace\" && !searchValue) {\n if (e.ctrlKey || e.metaKey) {\n setValue([]);\n } else {\n setValue(value.slice(0, -1));\n }\n }\n },\n [onEnter, searchValue, value, setValue]\n );\n\n const handlePopupMouseDown = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Prevent input blur when clicking popup\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n const handlePopupMouseDownCapture = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Prevent input blur when clicking popup\n e.preventDefault();\n },\n []\n );\n\n const renderedColorPicker = useCallback(\n ({\n open,\n child,\n value,\n onChange,\n onOpenChange,\n }: {\n open: boolean;\n child: React.ReactNode;\n value: string;\n onChange: (value: Color) => void;\n onOpenChange?: (open: boolean) => void;\n }) => (\n <ColorPicker\n value={value}\n onChange={onChange}\n open={open}\n onOpenChange={onOpenChange}\n arrow={false}\n presets={\n presetColors\n ? [{ label: \"Preset Colors\", colors: presetColors }]\n : undefined\n }\n {...colorPickerProps}\n panelRender={(panel) => (\n <div\n ref={(el) => {\n if (el) {\n popupRef.current = el;\n }\n }}\n onMouseDown={handlePopupMouseDown}\n onMouseDownCapture={handlePopupMouseDownCapture}\n >\n {panel}\n </div>\n )}\n >\n {child}\n </ColorPicker>\n ),\n [\n presetColors,\n colorPickerProps,\n handlePopupMouseDown,\n handlePopupMouseDownCapture,\n ]\n );\n\n const renderedTags = useMemo(\n () =>\n value.map((color, index) => {\n const tag = (\n <Tooltip title={color} key={`${color}-${index}`}>\n <Tag\n className={cls(\"color-select-tag\")}\n closable\n onClose={() => setValue(value.filter((v) => v !== color))}\n icon={\n <span\n className={cls(\"color-select-swatch\")}\n style={{ backgroundColor: color }}\n />\n }\n onClick={() =>\n activeColorIndex === index\n ? setActiveColorIndex(null)\n : setActiveColorIndex(index)\n }\n />\n </Tooltip>\n );\n return renderedColorPicker({\n child: tag,\n open: activeColorIndex !== null && activeColorIndex === index,\n value: value[index],\n onChange: (color) => {\n setValue(\n value.map((v, i) => (i === index ? color.toHexString() : v))\n );\n },\n onOpenChange: (open) => {\n setActiveColorIndex(open ? index : null);\n },\n });\n }),\n [\n value,\n cls,\n setValue,\n activeColorIndex,\n setActiveColorIndex,\n renderedColorPicker,\n ]\n );\n\n const renderedColorPickerInput = useMemo(() => {\n return renderedColorPicker({\n child: (\n <input\n placeholder=\"Select or enter a color list\"\n className={cls(\"color-select-input\")}\n value={searchValue}\n type=\"text\"\n ref={mergeRefs(ref, inputRef)}\n onChange={(e) => {\n const currValue = e.target.value;\n setSearchValue(currValue);\n if (isValidHexColor(currValue, true)) setTmpValue(currValue);\n if (\n currValue.length > 7 ||\n (currValue.length == 7 && !currValue.startsWith(\"#\"))\n ) {\n // closeAndFocus();\n setOpen(false);\n } else {\n setOpen(true);\n }\n }}\n onKeyDown={onInputKeyDown}\n onFocus={(e) => {\n // if focus is triggered by programatically, do not open the popup\n // if (isFocusedProgramatically.current) {\n // isFocusedProgramatically.current = false;\n // return;\n // }\n setIsFocus(true);\n setOpen(true);\n }}\n onBlur={(e) => {\n // if (popupRef.current?.contains(e.relatedTarget)) return;\n // Check if click is inside popup using cursor position\n if (popupRef.current) {\n const rect = popupRef.current.getBoundingClientRect();\n const { x, y } = mousePosition.current;\n const isClickInsidePopup =\n x >= rect.left &&\n x <= rect.right &&\n y >= rect.top &&\n y <= rect.bottom;\n if (isClickInsidePopup) {\n e.preventDefault();\n e.stopPropagation();\n if (isValidHexColor(tmpValue)) {\n focusInput();\n }\n return;\n }\n }\n // Check if the new focus target is inside the popup\n setIsFocus(false);\n setOpen(false);\n }}\n />\n ),\n value: tmpValue,\n onChange: (color) => {\n // setValue([...value, color]);\n setTmpValue(color.toHexString());\n setSearchValue(color.toHexString());\n focusInput();\n },\n open,\n });\n }, [\n cls,\n tmpValue,\n onInputKeyDown,\n ref,\n renderedColorPicker,\n searchValue,\n setOpen,\n open,\n focusInput,\n mousePosition,\n ]);\n return (\n <Stack\n wrap\n gap={4}\n className={cls(\"color-select\")}\n data-focus={isFocus || undefined}\n {...rest}\n >\n {renderedTags}\n {renderedColorPickerInput}\n </Stack>\n );\n};\n\n// Use forwardRef with type assertion\nconst MainColorSelect = forwardRef(ColorSelectInner);\n\nexport const ColorSelect = MainColorSelect;\n"],"names":["ColorSelectInner","className","valueProp","defaultValue","onChange","colorPickerProps","presetColors","openProp","onOpenChange","defaultOpen","rest","ref","cls","useCls","value","setValue","useControlledState","activeColorIndex","setActiveColorIndex","useState","searchValue","setSearchValue","tmpValue","setTmpValue","open","setOpen","isFocus","setIsFocus","popupRef","useRef","inputRef","isFocusedProgramatically","mousePosition","focusInput","useCallback","moveTypingCursorToEnd","closeAndFocus","useEffect","handler","event","handleMouseMove","e","onEnter","addedValues","gene","inValidValues","validAddedValues","acc","curr","isValidHexColor","toast","newColors","onInputKeyDown","handlePopupMouseDown","handlePopupMouseDownCapture","renderedColorPicker","child","jsx","ColorPicker","panel","el","renderedTags","useMemo","color","index","tag","Tooltip","Tag","v","i","renderedColorPickerInput","mergeRefs","currValue","rect","x","y","jsxs","Stack","MainColorSelect","forwardRef","ColorSelect"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/color-select/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ValidateStatus } from 'antd/es/form/FormItem';
|
|
2
|
+
import { PopoverProps } from 'antd/es/popover';
|
|
3
|
+
import { default as React, ForwardedRef } from 'react';
|
|
4
|
+
import { DropdownMenuProps } from '../dropdown-menu';
|
|
5
|
+
import { SelectTrigger } from '../select-trigger';
|
|
6
|
+
export type ComboboxOption<T extends React.Key, O extends Record<string, unknown> = {}> = {
|
|
7
|
+
value: T;
|
|
8
|
+
label: React.ReactNode;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
icon?: React.ReactNode;
|
|
11
|
+
} & O;
|
|
12
|
+
export interface ComboboxProps<T extends React.Key, M extends boolean, O extends Record<string, unknown> = {}> {
|
|
13
|
+
/** Array of options to be displayed in the combobox */
|
|
14
|
+
options?: ComboboxOption<T, O>[];
|
|
15
|
+
/** Current value of the combobox */
|
|
16
|
+
value?: M extends true ? T[] : T;
|
|
17
|
+
/** Default value when uncontrolled */
|
|
18
|
+
defaultValue?: M extends true ? T[] : T;
|
|
19
|
+
/** Callback when value changes */
|
|
20
|
+
onChange?: (value: M extends true ? T[] : T) => void;
|
|
21
|
+
/** Placeholder text for the input */
|
|
22
|
+
placeholder?: string;
|
|
23
|
+
/** Whether the combobox is disabled */
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/** Validation status */
|
|
26
|
+
status?: ValidateStatus;
|
|
27
|
+
/** Whether to allow clearing the selection */
|
|
28
|
+
allowClear?: boolean;
|
|
29
|
+
/** Whether to allow multiple selections */
|
|
30
|
+
multiple?: M;
|
|
31
|
+
/** Maximum number of tags to show */
|
|
32
|
+
maxTagCount?: number;
|
|
33
|
+
/** Whether to show search functionality */
|
|
34
|
+
showSearch?: boolean;
|
|
35
|
+
/** Controlled open state */
|
|
36
|
+
open?: boolean;
|
|
37
|
+
/** Callback when open state changes */
|
|
38
|
+
onOpenChange?: (open: boolean) => void;
|
|
39
|
+
/** Placement of the dropdown */
|
|
40
|
+
placement?: PopoverProps["placement"];
|
|
41
|
+
/** Custom className for the component */
|
|
42
|
+
className?: string;
|
|
43
|
+
/** Custom class names for different parts */
|
|
44
|
+
classNames?: {
|
|
45
|
+
trigger?: string;
|
|
46
|
+
input?: string;
|
|
47
|
+
option?: string;
|
|
48
|
+
optionIcon?: string;
|
|
49
|
+
optionText?: string;
|
|
50
|
+
};
|
|
51
|
+
/** Size of the combobox */
|
|
52
|
+
size?: "small" | "middle" | "large";
|
|
53
|
+
/** Loading state */
|
|
54
|
+
loading?: boolean;
|
|
55
|
+
/** Custom render for options */
|
|
56
|
+
optionRender?: (option: ComboboxOption<T, O>, props: React.HTMLAttributes<HTMLElement>) => React.ReactElement;
|
|
57
|
+
/** Filter function for search */
|
|
58
|
+
filterOption?: boolean | ((input: string, option: ComboboxOption<T, O>) => boolean);
|
|
59
|
+
/** Callback when search input changes */
|
|
60
|
+
onSearch?: (value: string) => void;
|
|
61
|
+
/** Custom dropdown render */
|
|
62
|
+
dropdownRender?: (menu: React.ReactElement) => React.ReactElement;
|
|
63
|
+
/** Custom clear icon */
|
|
64
|
+
clearIcon?: React.ReactNode;
|
|
65
|
+
/** Custom suffix icon */
|
|
66
|
+
suffixIcon?: React.ReactNode;
|
|
67
|
+
/**
|
|
68
|
+
* Props to pass to the dropdown menu
|
|
69
|
+
*/
|
|
70
|
+
dropdownMenuProps?: DropdownMenuProps;
|
|
71
|
+
/**
|
|
72
|
+
* Props to pass to the combobox trigger
|
|
73
|
+
*/
|
|
74
|
+
triggerProps?: React.ComponentPropsWithoutRef<typeof SelectTrigger>;
|
|
75
|
+
searchProps?: {
|
|
76
|
+
placeholder?: string;
|
|
77
|
+
onValueChange?: (value: string) => void;
|
|
78
|
+
value?: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Show selection summary instead of individual tags when multiple
|
|
82
|
+
* @default false
|
|
83
|
+
*/
|
|
84
|
+
showSelectionSummary?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Render function for the selection summary in multiple case
|
|
87
|
+
* @default (selectedValues) => `${selectedValues.length} items selected`
|
|
88
|
+
*/
|
|
89
|
+
selectionSummaryRender?: (selectedValues: T[]) => React.ReactNode;
|
|
90
|
+
/**
|
|
91
|
+
* Show select all option when in multiple mode
|
|
92
|
+
* @default false
|
|
93
|
+
*/
|
|
94
|
+
showSelectAll?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Render function for the select all option
|
|
97
|
+
*/
|
|
98
|
+
selectAllRender?: (props: {
|
|
99
|
+
onSelectAll: () => void;
|
|
100
|
+
onDeselectAll: () => void;
|
|
101
|
+
checked: boolean;
|
|
102
|
+
indeterminate: boolean;
|
|
103
|
+
}) => React.ReactNode;
|
|
104
|
+
/**
|
|
105
|
+
* Function to extract keywords from the item for search filtering
|
|
106
|
+
* @default (option) => [String(option.key), reactNodeToString(option.label)]
|
|
107
|
+
*/
|
|
108
|
+
getOptionKeywords?: (option: ComboboxOption<T, O>) => string[];
|
|
109
|
+
/**
|
|
110
|
+
* Render function for the option label
|
|
111
|
+
*/
|
|
112
|
+
optionLabelRender?: (option: ComboboxOption<T, O>, props?: React.HTMLAttributes<HTMLElement>) => React.ReactElement;
|
|
113
|
+
}
|
|
114
|
+
declare const ComboboxInner: <T extends React.Key, M extends boolean, O extends Record<string, unknown> = {}>({ options, value: controlledValue, defaultValue, onChange, placeholder, disabled: disabledProp, status: statusProp, allowClear, multiple, maxTagCount, showSearch, open: controlledOpen, onOpenChange, placement, className, classNames, size, loading: _loading, optionRender, onSearch, dropdownRender, clearIcon, suffixIcon, dropdownMenuProps, triggerProps, searchProps, showSelectionSummary, selectionSummaryRender, showSelectAll, selectAllRender, optionLabelRender, getOptionKeywords, ...rest }: ComboboxProps<T, M, O>, ref: React.ForwardedRef<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
115
|
+
export declare const Combobox: <T extends React.Key, M extends boolean, O extends Record<string, unknown> = {}>(props: ComboboxProps<T, M, O> & {
|
|
116
|
+
ref?: ForwardedRef<HTMLDivElement>;
|
|
117
|
+
}) => ReturnType<typeof ComboboxInner>;
|
|
118
|
+
export default Combobox;
|
|
119
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/component.tsx"],"names":[],"mappings":"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"}
|