@sth87/shadcn-design-system 0.0.35 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/dist/AI_CONTEXT.md +212 -214
- package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
- package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
- package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
- package/dist/cjs/components/Badge/Badge.cjs +1 -1
- package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/Button/Button.cjs +1 -1
- package/dist/cjs/components/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
- package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
- package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
- package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
- package/dist/cjs/components/Command/Command.cjs +1 -1
- package/dist/cjs/components/Command/Command.cjs.map +1 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
- package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
- package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
- package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
- package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
- package/dist/cjs/components/FloatLabel.cjs +1 -1
- package/dist/cjs/components/FloatLabel.cjs.map +1 -1
- package/dist/cjs/components/Glass/Glass.cjs +1 -1
- package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
- package/dist/cjs/components/Input/Input.cjs +1 -1
- package/dist/cjs/components/Input/Input.cjs.map +1 -1
- package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
- package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
- package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
- package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
- package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
- package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
- package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
- package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
- package/dist/cjs/components/Radio/Radio.cjs +1 -1
- package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
- package/dist/cjs/components/Rate/Rate.cjs +1 -1
- package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
- package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
- package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
- package/dist/cjs/components/Select/Select.cjs +1 -1
- package/dist/cjs/components/Select/Select.cjs.map +1 -1
- package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
- package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
- package/dist/cjs/components/Slider/Slider.cjs +1 -1
- package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
- package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
- package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
- package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
- package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
- package/dist/cjs/components/Switch/Switch.cjs +1 -1
- package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
- package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
- package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
- package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
- package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
- package/dist/cjs/components/Table/data-table.cjs +1 -1
- package/dist/cjs/components/Table/data-table.cjs.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
- package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/components/Tabs/classes.cjs +1 -1
- package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
- package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
- package/dist/cjs/components/TimeGridView.cjs +1 -1
- package/dist/cjs/components/TimeGridView.cjs.map +1 -1
- package/dist/cjs/components/Toast/Toast.cjs +1 -1
- package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/components/Tour/Tour.cjs +1 -1
- package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
- package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
- package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
- package/dist/cjs/components/Upload/Upload.cjs +3 -3
- package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
- package/dist/cjs/components/WheelColumn.cjs +1 -1
- package/dist/cjs/components/WheelColumn.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
- package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
- package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
- package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +1 -0
- package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
- package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
- package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
- package/dist/cjs/styles/index.css +1 -1
- package/dist/cjs/utils/animations.cjs +1 -1
- package/dist/cjs/utils/animations.cjs.map +1 -1
- package/dist/cjs/utils/css.cjs +1 -1
- package/dist/cjs/utils/css.cjs.map +1 -1
- package/dist/cjs/utils/parsers.cjs +1 -1
- package/dist/cjs/utils/parsers.cjs.map +1 -1
- package/dist/esm/components/Accordion/Accordion.js +60 -60
- package/dist/esm/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.js +40 -40
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Badge/Badge.js +1 -1
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
- package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/esm/components/Button/Button.js +9 -9
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Calendar/Calendar.js +4 -4
- package/dist/esm/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/Carousel/Carousel.js +165 -165
- package/dist/esm/components/Carousel/Carousel.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js +26 -26
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Collapsible/Collapsible.js +43 -43
- package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
- package/dist/esm/components/Command/Command.js +28 -28
- package/dist/esm/components/Command/Command.js.map +1 -1
- package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
- package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/esm/components/Cropper/Cropper.js +132 -132
- package/dist/esm/components/Cropper/Cropper.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +75 -75
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/RangePicker.js +136 -136
- package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/TimePicker.js +150 -150
- package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +114 -114
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
- package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/esm/components/FloatLabel.js +44 -44
- package/dist/esm/components/FloatLabel.js.map +1 -1
- package/dist/esm/components/Glass/Glass.js +15 -15
- package/dist/esm/components/Glass/Glass.js.map +1 -1
- package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
- package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
- package/dist/esm/components/Input/Input.js +104 -104
- package/dist/esm/components/Input/Input.js.map +1 -1
- package/dist/esm/components/InputOTP/InputOTP.js +16 -16
- package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
- package/dist/esm/components/Interactive/CursorFollow.js +49 -49
- package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
- package/dist/esm/components/Marquee/Marquee.js +130 -130
- package/dist/esm/components/Marquee/Marquee.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js +68 -68
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/QrCode/QrCode.js +37 -37
- package/dist/esm/components/QrCode/QrCode.js.map +1 -1
- package/dist/esm/components/Radio/Radio.js +16 -16
- package/dist/esm/components/Radio/Radio.js.map +1 -1
- package/dist/esm/components/Rate/Rate.js +62 -62
- package/dist/esm/components/Rate/Rate.js.map +1 -1
- package/dist/esm/components/Resizable/Resizable.js +6 -6
- package/dist/esm/components/Resizable/Resizable.js.map +1 -1
- package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
- package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/Select/Select.js +64 -64
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Sheet/Sheet.js +21 -21
- package/dist/esm/components/Sheet/Sheet.js.map +1 -1
- package/dist/esm/components/Slider/Slider.js +54 -54
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Stepper/Stepper.js +198 -198
- package/dist/esm/components/Stepper/Stepper.js.map +1 -1
- package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
- package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
- package/dist/esm/components/Switch/Switch.js +38 -38
- package/dist/esm/components/Switch/Switch.js.map +1 -1
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
- package/dist/esm/components/Table/data-table-column-header.js +18 -18
- package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
- package/dist/esm/components/Table/data-table-pagination.js +21 -21
- package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
- package/dist/esm/components/Table/data-table.js +18 -18
- package/dist/esm/components/Table/data-table.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +242 -242
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Tabs/classes.js +51 -51
- package/dist/esm/components/Tabs/classes.js.map +1 -1
- package/dist/esm/components/Textarea/Textarea.js +49 -49
- package/dist/esm/components/Textarea/Textarea.js.map +1 -1
- package/dist/esm/components/TimeGridView.js +12 -12
- package/dist/esm/components/TimeGridView.js.map +1 -1
- package/dist/esm/components/Toast/Toast.js +45 -45
- package/dist/esm/components/Toast/Toast.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +19 -19
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Tour/Tour.js +11 -11
- package/dist/esm/components/Tour/Tour.js.map +1 -1
- package/dist/esm/components/Tour/TourWrapper.js +15 -15
- package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
- package/dist/esm/components/Upload/Upload.js +405 -405
- package/dist/esm/components/Upload/Upload.js.map +1 -1
- package/dist/esm/components/WheelColumn.js +47 -47
- package/dist/esm/components/WheelColumn.js.map +1 -1
- package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
- package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
- package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
- package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
- package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
- package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
- package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
- package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
- package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
- package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
- package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
- package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
- package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +1 -0
- package/dist/esm/packages/ui/src/components/accordion.js +31 -31
- package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
- package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
- package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
- package/dist/esm/packages/ui/src/components/avatar.js +20 -20
- package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
- package/dist/esm/packages/ui/src/components/badge.js +53 -53
- package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
- package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
- package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
- package/dist/esm/packages/ui/src/components/button-group.js +31 -31
- package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
- package/dist/esm/packages/ui/src/components/button.js +90 -90
- package/dist/esm/packages/ui/src/components/button.js.map +1 -1
- package/dist/esm/packages/ui/src/components/calendar.js +94 -94
- package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
- package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
- package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
- package/dist/esm/packages/ui/src/components/combobox.js +64 -64
- package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
- package/dist/esm/packages/ui/src/components/command.js +77 -77
- package/dist/esm/packages/ui/src/components/command.js.map +1 -1
- package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
- package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
- package/dist/esm/packages/ui/src/components/dialog.js +54 -54
- package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
- package/dist/esm/packages/ui/src/components/drawer.js +39 -39
- package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
- package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
- package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
- package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
- package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
- package/dist/esm/packages/ui/src/components/input.js +19 -19
- package/dist/esm/packages/ui/src/components/input.js.map +1 -1
- package/dist/esm/packages/ui/src/components/label.js +9 -9
- package/dist/esm/packages/ui/src/components/label.js.map +1 -1
- package/dist/esm/packages/ui/src/components/pagination.js +26 -26
- package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
- package/dist/esm/packages/ui/src/components/popover.js +13 -13
- package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
- package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
- package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
- package/dist/esm/packages/ui/src/components/resizable.js +18 -18
- package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
- package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
- package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
- package/dist/esm/packages/ui/src/components/select.js +119 -119
- package/dist/esm/packages/ui/src/components/select.js.map +1 -1
- package/dist/esm/packages/ui/src/components/separator.js +86 -86
- package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
- package/dist/esm/packages/ui/src/components/sheet.js +50 -50
- package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
- package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
- package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
- package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
- package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
- package/dist/esm/packages/ui/src/components/switch.js +57 -57
- package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
- package/dist/esm/packages/ui/src/components/table.js +17 -17
- package/dist/esm/packages/ui/src/components/table.js.map +1 -1
- package/dist/esm/packages/ui/src/components/tabs.js +33 -33
- package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
- package/dist/esm/packages/ui/src/components/textarea.js +17 -17
- package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
- package/dist/esm/packages/ui/src/components/toggle.js +36 -36
- package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
- package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
- package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
- package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
- package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
- package/dist/esm/styles/index.css +1 -1
- package/dist/esm/utils/animations.js +55 -55
- package/dist/esm/utils/animations.js.map +1 -1
- package/dist/esm/utils/css.js +7 -7
- package/dist/esm/utils/css.js.map +1 -1
- package/dist/esm/utils/parsers.js +1 -1
- package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
- package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
- package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +0 -1
- package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +0 -1
- /package/dist/cjs/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.cjs +0 -0
- /package/dist/esm/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.js +0 -0
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import * as
|
|
3
|
-
import { cn as
|
|
4
|
-
function
|
|
5
|
-
className:
|
|
1
|
+
import { jsxs as t, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import * as l from "@radix-ui/react-scroll-area";
|
|
3
|
+
import { cn as a } from "../lib/utils.js";
|
|
4
|
+
function i({
|
|
5
|
+
className: o,
|
|
6
6
|
children: r,
|
|
7
|
-
...
|
|
7
|
+
...e
|
|
8
8
|
}) {
|
|
9
|
-
return /* @__PURE__ */
|
|
10
|
-
|
|
9
|
+
return /* @__PURE__ */ t(
|
|
10
|
+
l.Root,
|
|
11
11
|
{
|
|
12
12
|
"data-slot": "scroll-area",
|
|
13
|
-
className:
|
|
14
|
-
...
|
|
13
|
+
className: a("ds:relative", o),
|
|
14
|
+
...e,
|
|
15
15
|
children: [
|
|
16
|
-
/* @__PURE__ */
|
|
17
|
-
|
|
16
|
+
/* @__PURE__ */ s(
|
|
17
|
+
l.Viewport,
|
|
18
18
|
{
|
|
19
19
|
"data-slot": "scroll-area-viewport",
|
|
20
|
-
className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 focus-visible:ring-ring/50 [scrollbar-width:thin] [scrollbar-color:transparent_transparent] hover:[scrollbar-color:hsl(var(--border))_transparent] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded hover:[&::-webkit-scrollbar-thumb]:bg-border",
|
|
20
|
+
className: "ds:size-full ds:rounded-[inherit] ds:transition-[color,box-shadow] ds:outline-none ds:focus-visible:ring-[3px] ds:focus-visible:outline-1 ds:focus-visible:ring-ring/50 ds:[scrollbar-width:thin] ds:[scrollbar-color:transparent_transparent] ds:hover:[scrollbar-color:hsl(var(--border))_transparent] ds:[&::-webkit-scrollbar]:w-2 ds:[&::-webkit-scrollbar]:h-2 ds:[&::-webkit-scrollbar-track]:bg-transparent ds:[&::-webkit-scrollbar-thumb]:bg-transparent ds:[&::-webkit-scrollbar-thumb]:rounded ds:hover:[&::-webkit-scrollbar-thumb]:bg-border",
|
|
21
21
|
children: r
|
|
22
22
|
}
|
|
23
23
|
),
|
|
24
|
-
/* @__PURE__ */
|
|
25
|
-
/* @__PURE__ */ l
|
|
24
|
+
/* @__PURE__ */ s(d, {}),
|
|
25
|
+
/* @__PURE__ */ s(l.Corner, {})
|
|
26
26
|
]
|
|
27
27
|
}
|
|
28
28
|
);
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
className:
|
|
30
|
+
function d({
|
|
31
|
+
className: o,
|
|
32
32
|
orientation: r = "vertical",
|
|
33
|
-
...
|
|
33
|
+
...e
|
|
34
34
|
}) {
|
|
35
|
-
return /* @__PURE__ */
|
|
36
|
-
|
|
35
|
+
return /* @__PURE__ */ s(
|
|
36
|
+
l.ScrollAreaScrollbar,
|
|
37
37
|
{
|
|
38
38
|
"data-slot": "scroll-area-scrollbar",
|
|
39
39
|
orientation: r,
|
|
40
|
-
className:
|
|
41
|
-
"flex touch-none p-px transition-colors select-none",
|
|
42
|
-
r === "vertical" && "h-full w-2.5 border-l border-l-transparent",
|
|
43
|
-
r === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
|
|
44
|
-
|
|
40
|
+
className: a(
|
|
41
|
+
"ds:flex ds:touch-none ds:p-px ds:transition-colors ds:select-none",
|
|
42
|
+
r === "vertical" && "ds:h-full ds:w-2.5 ds:border-l ds:border-l-transparent",
|
|
43
|
+
r === "horizontal" && "ds:h-2.5 ds:flex-col ds:border-t ds:border-t-transparent",
|
|
44
|
+
o
|
|
45
45
|
),
|
|
46
|
-
...
|
|
47
|
-
children: /* @__PURE__ */
|
|
48
|
-
|
|
46
|
+
...e,
|
|
47
|
+
children: /* @__PURE__ */ s(
|
|
48
|
+
l.ScrollAreaThumb,
|
|
49
49
|
{
|
|
50
50
|
"data-slot": "scroll-area-thumb",
|
|
51
|
-
className: "bg-border relative flex-1 rounded-full"
|
|
51
|
+
className: "ds:bg-border ds:relative ds:flex-1 ds:rounded-full"
|
|
52
52
|
}
|
|
53
53
|
)
|
|
54
54
|
}
|
|
55
55
|
);
|
|
56
56
|
}
|
|
57
57
|
export {
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
i as ScrollArea,
|
|
59
|
+
d as ScrollBar
|
|
60
60
|
};
|
|
61
61
|
//# sourceMappingURL=scroll-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.js","sources":["../../../../../../../../packages/ui/src/components/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 focus-visible:ring-ring/50 [scrollbar-width:thin] [scrollbar-color:transparent_transparent] hover:[scrollbar-color:hsl(var(--border))_transparent] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded hover:[&::-webkit-scrollbar-thumb]:bg-border\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","props","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":";;;AAOA,SAASA,EAAW;AAAA,EAClB,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACE,gBAAAC;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,
|
|
1
|
+
{"version":3,"file":"scroll-area.js","sources":["../../../../../../../../packages/ui/src/components/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"ds:relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"ds:size-full ds:rounded-[inherit] ds:transition-[color,box-shadow] ds:outline-none ds:focus-visible:ring-[3px] ds:focus-visible:outline-1 ds:focus-visible:ring-ring/50 ds:[scrollbar-width:thin] ds:[scrollbar-color:transparent_transparent] ds:hover:[scrollbar-color:hsl(var(--border))_transparent] ds:[&::-webkit-scrollbar]:w-2 ds:[&::-webkit-scrollbar]:h-2 ds:[&::-webkit-scrollbar-track]:bg-transparent ds:[&::-webkit-scrollbar-thumb]:bg-transparent ds:[&::-webkit-scrollbar-thumb]:rounded ds:hover:[&::-webkit-scrollbar-thumb]:bg-border\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"ds:flex ds:touch-none ds:p-px ds:transition-colors ds:select-none\",\n orientation === \"vertical\" &&\n \"ds:h-full ds:w-2.5 ds:border-l ds:border-l-transparent\",\n orientation === \"horizontal\" &&\n \"ds:h-2.5 ds:flex-col ds:border-t ds:border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"ds:bg-border ds:relative ds:flex-1 ds:rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","props","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":";;;AAOA,SAASA,EAAW;AAAA,EAClB,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACE,gBAAAC;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,eAAeL,CAAS;AAAA,MACrC,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAACF,EAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAET,UAAAH;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFM,GAAA,EAAU;AAAA,QACX,gBAAAD,EAACF,EAAoB,QAApB,CAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;AAEA,SAASG,EAAU;AAAA,EACjB,WAAAP;AAAA,EACA,aAAAQ,IAAc;AAAA,EACd,GAAGN;AACL,GAAyE;AACvE,SACE,gBAAAI;AAAA,IAACF,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,aAAAI;AAAA,MACA,WAAWH;AAAA,QACT;AAAA,QACAG,MAAgB,cACd;AAAA,QACFA,MAAgB,gBACd;AAAA,QACFR;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAI;AAAA,QAACF,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as r, jsxs as u, Fragment as O } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronUp as W, ChevronDown as D, XIcon as E, CheckIcon as F } from "lucide-react";
|
|
3
3
|
import { cva as G } from "class-variance-authority";
|
|
4
4
|
import { cn as v } from "../lib/utils.js";
|
|
@@ -9,21 +9,21 @@ import { createContext as K, useState as N, useCallback as V, useRef as j, useEf
|
|
|
9
9
|
import { Badge as A } from "./badge.js";
|
|
10
10
|
import { Label as Z } from "./label.js";
|
|
11
11
|
const $ = G(
|
|
12
|
-
"flex h-auto w-fit items-center justify-between gap-2 overflow-hidden rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground dark:bg-background dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
12
|
+
"ds:flex ds:h-auto ds:w-fit ds:items-center ds:justify-between ds:gap-2 ds:overflow-hidden ds:rounded-md ds:border ds:bg-transparent ds:shadow-xs ds:transition-[color,box-shadow] ds:outline-none ds:focus-visible:ring-[3px] ds:disabled:cursor-not-allowed ds:disabled:opacity-50 ds:data-[placeholder]:text-muted-foreground ds:dark:bg-background ds:dark:hover:bg-input/50 ds:[&_svg]:pointer-events-none ds:[&_svg]:shrink-0 ds:[&_svg:not([class*='size-'])]:size-4 ds:[&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
13
13
|
{
|
|
14
14
|
variants: {
|
|
15
15
|
size: {
|
|
16
|
-
xs: "min-h-6 text-xs px-2 py-0.5",
|
|
17
|
-
sm: "min-h-8 text-sm px-2.5 py-1",
|
|
18
|
-
normal: "min-h-9 px-3 py-1.5",
|
|
19
|
-
lg: "min-h-11 px-4 py-2",
|
|
20
|
-
xl: "min-h-14 px-5 py-3"
|
|
16
|
+
xs: "ds:min-h-6 ds:text-xs ds:px-2 ds:py-0.5",
|
|
17
|
+
sm: "ds:min-h-8 ds:text-sm ds:px-2.5 ds:py-1",
|
|
18
|
+
normal: "ds:min-h-9 ds:px-3 ds:py-1.5",
|
|
19
|
+
lg: "ds:min-h-11 ds:px-4 ds:py-2",
|
|
20
|
+
xl: "ds:min-h-14 ds:px-5 ds:py-3"
|
|
21
21
|
},
|
|
22
22
|
state: {
|
|
23
|
-
default: "border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
24
|
-
success: "border-success ring-success/30 focus-visible:border-success focus-visible:ring-success/50",
|
|
25
|
-
error: "border-destructive ring-destructive/30 focus-visible:border-destructive focus-visible:ring-destructive/50",
|
|
26
|
-
warning: "border-warning ring-warning/30 focus-visible:border-warning focus-visible:ring-warning/50"
|
|
23
|
+
default: "ds:border-input ds:focus-visible:border-ring ds:focus-visible:ring-ring/50 ds:aria-invalid:border-destructive ds:aria-invalid:ring-destructive/20 ds:dark:aria-invalid:ring-destructive/40",
|
|
24
|
+
success: "ds:border-success ds:ring-success/30 ds:focus-visible:border-success ds:focus-visible:ring-success/50",
|
|
25
|
+
error: "ds:border-destructive ds:ring-destructive/30 ds:focus-visible:border-destructive ds:focus-visible:ring-destructive/50",
|
|
26
|
+
warning: "ds:border-warning ds:ring-warning/30 ds:focus-visible:border-warning ds:focus-visible:ring-warning/50"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
defaultVariants: {
|
|
@@ -32,78 +32,78 @@ const $ = G(
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
), _ = K(null);
|
|
35
|
-
function
|
|
35
|
+
function le({
|
|
36
36
|
children: e,
|
|
37
|
-
values:
|
|
38
|
-
defaultValues:
|
|
39
|
-
onValuesChange:
|
|
37
|
+
values: s,
|
|
38
|
+
defaultValues: o,
|
|
39
|
+
onValuesChange: t
|
|
40
40
|
}) {
|
|
41
|
-
const [
|
|
42
|
-
new Set(
|
|
43
|
-
), w =
|
|
44
|
-
function y(
|
|
41
|
+
const [a, m] = N(!1), [i, x] = N(
|
|
42
|
+
new Set(s ?? o)
|
|
43
|
+
), w = s ? new Set(s) : i, [f, b] = N(/* @__PURE__ */ new Map());
|
|
44
|
+
function y(c) {
|
|
45
45
|
const p = (g) => {
|
|
46
|
-
const
|
|
47
|
-
return
|
|
46
|
+
const n = new Set(g);
|
|
47
|
+
return n.has(c) ? n.delete(c) : n.add(c), n;
|
|
48
48
|
};
|
|
49
|
-
x(p),
|
|
49
|
+
x(p), t?.([...p(w)]);
|
|
50
50
|
}
|
|
51
|
-
const C = V((
|
|
52
|
-
b((g) => g.get(
|
|
51
|
+
const C = V((c, p) => {
|
|
52
|
+
b((g) => g.get(c) === p ? g : new Map(g).set(c, p));
|
|
53
53
|
}, []);
|
|
54
|
-
return /* @__PURE__ */
|
|
54
|
+
return /* @__PURE__ */ r(
|
|
55
55
|
_,
|
|
56
56
|
{
|
|
57
57
|
value: {
|
|
58
|
-
open:
|
|
58
|
+
open: a,
|
|
59
59
|
setOpen: m,
|
|
60
60
|
selectedValues: w,
|
|
61
61
|
toggleValue: y,
|
|
62
62
|
items: f,
|
|
63
63
|
onItemAdded: C
|
|
64
64
|
},
|
|
65
|
-
children: /* @__PURE__ */
|
|
65
|
+
children: /* @__PURE__ */ r(X, { open: a, onOpenChange: m, children: e })
|
|
66
66
|
}
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
|
-
function
|
|
69
|
+
function ae({
|
|
70
70
|
className: e,
|
|
71
|
-
dropdownClassName:
|
|
72
|
-
children:
|
|
73
|
-
size:
|
|
74
|
-
state:
|
|
71
|
+
dropdownClassName: s,
|
|
72
|
+
children: o,
|
|
73
|
+
size: t,
|
|
74
|
+
state: a = "default",
|
|
75
75
|
...m
|
|
76
76
|
}) {
|
|
77
|
-
const { open:
|
|
78
|
-
return /* @__PURE__ */
|
|
77
|
+
const { open: i } = k();
|
|
78
|
+
return /* @__PURE__ */ r(B, { asChild: !0, children: /* @__PURE__ */ u(
|
|
79
79
|
Z,
|
|
80
80
|
{
|
|
81
|
-
className: v($({ size:
|
|
81
|
+
className: v($({ size: t, state: a }), e),
|
|
82
82
|
children: [
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
o,
|
|
84
|
+
i && /* @__PURE__ */ r(
|
|
85
85
|
W,
|
|
86
86
|
{
|
|
87
87
|
className: v(
|
|
88
|
-
"z-10 opacity-50",
|
|
88
|
+
"ds:z-10 ds:opacity-50",
|
|
89
89
|
{
|
|
90
|
-
"size-4":
|
|
91
|
-
"size-5":
|
|
90
|
+
"ds:size-4": t === "sm" || t === "xs",
|
|
91
|
+
"ds:size-5": t === "lg" || t === "xl"
|
|
92
92
|
},
|
|
93
|
-
|
|
93
|
+
s
|
|
94
94
|
)
|
|
95
95
|
}
|
|
96
96
|
),
|
|
97
|
-
!
|
|
97
|
+
!i && /* @__PURE__ */ r(
|
|
98
98
|
D,
|
|
99
99
|
{
|
|
100
100
|
className: v(
|
|
101
|
-
"z-10 opacity-50",
|
|
101
|
+
"ds:z-10 ds:opacity-50",
|
|
102
102
|
{
|
|
103
|
-
"size-4":
|
|
104
|
-
"size-5":
|
|
103
|
+
"ds:size-4": t === "sm" || t === "xs",
|
|
104
|
+
"ds:size-5": t === "lg" || t === "xl"
|
|
105
105
|
},
|
|
106
|
-
|
|
106
|
+
s
|
|
107
107
|
)
|
|
108
108
|
}
|
|
109
109
|
)
|
|
@@ -111,74 +111,74 @@ function ce({
|
|
|
111
111
|
}
|
|
112
112
|
) });
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function ce({
|
|
115
115
|
placeholder: e,
|
|
116
|
-
clickToRemove:
|
|
117
|
-
className:
|
|
118
|
-
overflowBehavior:
|
|
119
|
-
...
|
|
116
|
+
clickToRemove: s = !0,
|
|
117
|
+
className: o,
|
|
118
|
+
overflowBehavior: t = "wrap-when-open",
|
|
119
|
+
...a
|
|
120
120
|
}) {
|
|
121
|
-
const { selectedValues: m, toggleValue:
|
|
121
|
+
const { selectedValues: m, toggleValue: i, items: x, open: w } = k(), [f, b] = N(0), y = j(null), C = j(null), c = t === "wrap" || t === "wrap-when-open" && w, p = V(() => {
|
|
122
122
|
if (y.current == null) return;
|
|
123
|
-
const
|
|
123
|
+
const n = y.current, d = C.current, h = n.querySelectorAll(
|
|
124
124
|
"[data-selected-item]"
|
|
125
125
|
);
|
|
126
|
-
|
|
126
|
+
d != null && (d.style.display = "none"), h.forEach((l) => l.style.removeProperty("display"));
|
|
127
127
|
let S = 0;
|
|
128
|
-
for (let
|
|
129
|
-
const M = h[
|
|
130
|
-
if (
|
|
128
|
+
for (let l = h.length - 1; l >= 0; l--) {
|
|
129
|
+
const M = h[l];
|
|
130
|
+
if (n.scrollWidth <= n.clientWidth)
|
|
131
131
|
break;
|
|
132
|
-
S = h.length -
|
|
132
|
+
S = h.length - l, M.style.display = "none", d?.style.removeProperty("display");
|
|
133
133
|
}
|
|
134
134
|
b(S);
|
|
135
135
|
}, []), g = V(
|
|
136
|
-
(
|
|
137
|
-
y.current =
|
|
138
|
-
const
|
|
139
|
-
return
|
|
140
|
-
|
|
136
|
+
(n) => {
|
|
137
|
+
y.current = n;
|
|
138
|
+
const d = new ResizeObserver(p);
|
|
139
|
+
return d.observe(n), () => {
|
|
140
|
+
d.disconnect(), y.current = null;
|
|
141
141
|
};
|
|
142
142
|
},
|
|
143
143
|
[p]
|
|
144
144
|
);
|
|
145
|
-
return m.size === 0 && e ? /* @__PURE__ */
|
|
145
|
+
return m.size === 0 && e ? /* @__PURE__ */ r("span", { className: "ds:min-w-0 ds:overflow-hidden ds:font-normal ds:text-muted-foreground", children: e }) : /* @__PURE__ */ u(
|
|
146
146
|
"div",
|
|
147
147
|
{
|
|
148
|
-
...
|
|
148
|
+
...a,
|
|
149
149
|
ref: g,
|
|
150
150
|
className: v(
|
|
151
|
-
"flex w-fit gap-1.5 overflow-hidden",
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
"ds:flex ds:w-fit ds:gap-1.5 ds:overflow-hidden",
|
|
152
|
+
c && "ds:h-full ds:flex-wrap",
|
|
153
|
+
o
|
|
154
154
|
),
|
|
155
155
|
children: [
|
|
156
|
-
[...m].filter((
|
|
157
|
-
const
|
|
158
|
-
S.stopPropagation(),
|
|
156
|
+
[...m].filter((n) => x.has(n)).map((n) => {
|
|
157
|
+
const d = x.get(n), h = (S) => {
|
|
158
|
+
S.stopPropagation(), i(n);
|
|
159
159
|
};
|
|
160
|
-
if (P.isValidElement(
|
|
161
|
-
const S = typeof
|
|
162
|
-
key:
|
|
163
|
-
onClick:
|
|
160
|
+
if (P.isValidElement(d)) {
|
|
161
|
+
const S = typeof d.type == "string" && ["div", "span", "button", "a"].includes(d.type), l = d, M = S ? {
|
|
162
|
+
key: n,
|
|
163
|
+
onClick: s ? h : void 0,
|
|
164
164
|
className: v(
|
|
165
|
-
|
|
166
|
-
"group flex items-center gap-1 whitespace-nowrap hover:scale-105 transition-transform",
|
|
165
|
+
l.props.className,
|
|
166
|
+
"ds:group ds:flex ds:items-center ds:gap-1 ds:whitespace-nowrap ds:hover:scale-105 ds:transition-transform",
|
|
167
167
|
{
|
|
168
|
-
"cursor-pointer":
|
|
168
|
+
"ds:cursor-pointer": s
|
|
169
169
|
}
|
|
170
170
|
),
|
|
171
171
|
"data-selected-item": !0
|
|
172
172
|
} : {
|
|
173
|
-
key:
|
|
173
|
+
key: n,
|
|
174
174
|
"data-selected-item": !0
|
|
175
175
|
};
|
|
176
176
|
return P.cloneElement(
|
|
177
|
-
|
|
177
|
+
l,
|
|
178
178
|
M,
|
|
179
179
|
/* @__PURE__ */ u(O, { children: [
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
l.props.children,
|
|
181
|
+
s && /* @__PURE__ */ r(E, { className: "ds:size-2 ds:text-muted-foreground ds:group-hover:text-destructive" })
|
|
182
182
|
] })
|
|
183
183
|
);
|
|
184
184
|
}
|
|
@@ -187,21 +187,21 @@ function de({
|
|
|
187
187
|
{
|
|
188
188
|
variant: "outline",
|
|
189
189
|
"data-selected-item": !0,
|
|
190
|
-
className: "group flex items-center gap-1",
|
|
191
|
-
onClick:
|
|
190
|
+
className: "ds:group ds:flex ds:items-center ds:gap-1",
|
|
191
|
+
onClick: s ? h : void 0,
|
|
192
192
|
children: [
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
d,
|
|
194
|
+
s && /* @__PURE__ */ r(E, { className: "ds:size-2 ds:text-muted-foreground ds:group-hover:text-destructive" })
|
|
195
195
|
]
|
|
196
196
|
},
|
|
197
|
-
|
|
197
|
+
n
|
|
198
198
|
);
|
|
199
199
|
}),
|
|
200
200
|
/* @__PURE__ */ u(
|
|
201
201
|
A,
|
|
202
202
|
{
|
|
203
203
|
style: {
|
|
204
|
-
display: f > 0 && !
|
|
204
|
+
display: f > 0 && !c ? "block" : "none"
|
|
205
205
|
},
|
|
206
206
|
variant: "outline",
|
|
207
207
|
ref: C,
|
|
@@ -217,58 +217,58 @@ function de({
|
|
|
217
217
|
}
|
|
218
218
|
function ue({
|
|
219
219
|
search: e = !0,
|
|
220
|
-
children:
|
|
221
|
-
...
|
|
220
|
+
children: s,
|
|
221
|
+
...o
|
|
222
222
|
}) {
|
|
223
|
-
const
|
|
223
|
+
const t = typeof e == "object" ? !0 : e;
|
|
224
224
|
return /* @__PURE__ */ u(O, { children: [
|
|
225
|
-
/* @__PURE__ */
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
|
|
225
|
+
/* @__PURE__ */ r("div", { style: { display: "none" }, children: /* @__PURE__ */ r(I, { children: /* @__PURE__ */ r(z, { children: s }) }) }),
|
|
226
|
+
/* @__PURE__ */ r(J, { className: "ds:min-w-[var(--radix-popover-trigger-width)] ds:p-0", children: /* @__PURE__ */ u(I, { ...o, children: [
|
|
227
|
+
t ? /* @__PURE__ */ r(
|
|
228
228
|
R,
|
|
229
229
|
{
|
|
230
230
|
placeholder: typeof e == "object" ? e.placeholder : void 0
|
|
231
231
|
}
|
|
232
|
-
) : /* @__PURE__ */
|
|
232
|
+
) : /* @__PURE__ */ r("button", { autoFocus: !0, className: "ds:sr-only" }),
|
|
233
233
|
/* @__PURE__ */ u(z, { children: [
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
t && /* @__PURE__ */ r(q, { children: typeof e == "object" ? e.emptyMessage : void 0 }),
|
|
235
|
+
s
|
|
236
236
|
] })
|
|
237
237
|
] }) })
|
|
238
238
|
] });
|
|
239
239
|
}
|
|
240
240
|
function me({
|
|
241
241
|
value: e,
|
|
242
|
-
children:
|
|
243
|
-
badgeLabel:
|
|
244
|
-
onSelect:
|
|
245
|
-
icon:
|
|
242
|
+
children: s,
|
|
243
|
+
badgeLabel: o,
|
|
244
|
+
onSelect: t,
|
|
245
|
+
icon: a,
|
|
246
246
|
tagRender: m,
|
|
247
|
-
...
|
|
247
|
+
...i
|
|
248
248
|
}) {
|
|
249
249
|
const { toggleValue: x, selectedValues: w, onItemAdded: f } = k(), b = w.has(e);
|
|
250
250
|
return Q(() => {
|
|
251
|
-
f(e,
|
|
252
|
-
}, [e,
|
|
251
|
+
f(e, o ?? s);
|
|
252
|
+
}, [e, s, f, o]), /* @__PURE__ */ u(
|
|
253
253
|
L,
|
|
254
254
|
{
|
|
255
|
-
...
|
|
256
|
-
onSelect:
|
|
257
|
-
x(e),
|
|
255
|
+
...i,
|
|
256
|
+
onSelect: i?.disabled ? void 0 : () => {
|
|
257
|
+
x(e), t?.(e);
|
|
258
258
|
},
|
|
259
259
|
className: v(
|
|
260
|
-
|
|
261
|
-
b && "bg-primary/10 dark:bg-primary/20"
|
|
260
|
+
i?.disabled && "ds:opacity-50 ds:cursor-not-allowed ds:grayscale",
|
|
261
|
+
b && "ds:bg-primary/10 ds:dark:bg-primary/20"
|
|
262
262
|
),
|
|
263
263
|
children: [
|
|
264
|
-
!m &&
|
|
265
|
-
|
|
266
|
-
/* @__PURE__ */
|
|
264
|
+
!m && a && /* @__PURE__ */ r("span", { className: "ds:mr-2 ds:max-w-4 ds:max-h-4", children: a }),
|
|
265
|
+
s,
|
|
266
|
+
/* @__PURE__ */ r(
|
|
267
267
|
F,
|
|
268
268
|
{
|
|
269
269
|
className: v(
|
|
270
|
-
"mr-2 ml-auto size-4",
|
|
271
|
-
b ? "opacity-100" : "opacity-0"
|
|
270
|
+
"ds:mr-2 ds:ml-auto ds:size-4",
|
|
271
|
+
b ? "ds:opacity-100" : "ds:opacity-0"
|
|
272
272
|
)
|
|
273
273
|
}
|
|
274
274
|
)
|
|
@@ -277,10 +277,10 @@ function me({
|
|
|
277
277
|
);
|
|
278
278
|
}
|
|
279
279
|
function pe(e) {
|
|
280
|
-
return /* @__PURE__ */
|
|
280
|
+
return /* @__PURE__ */ r(H, { ...e });
|
|
281
281
|
}
|
|
282
282
|
function fe(e) {
|
|
283
|
-
return /* @__PURE__ */
|
|
283
|
+
return /* @__PURE__ */ r(U, { ...e });
|
|
284
284
|
}
|
|
285
285
|
function k() {
|
|
286
286
|
const e = Y(_);
|
|
@@ -291,12 +291,12 @@ function k() {
|
|
|
291
291
|
return e;
|
|
292
292
|
}
|
|
293
293
|
export {
|
|
294
|
-
|
|
294
|
+
le as MultiSelect,
|
|
295
295
|
ue as MultiSelectContent,
|
|
296
296
|
pe as MultiSelectGroup,
|
|
297
297
|
me as MultiSelectItem,
|
|
298
298
|
fe as MultiSelectSeparator,
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
ae as MultiSelectTrigger,
|
|
300
|
+
ce as MultiSelectValue
|
|
301
301
|
};
|
|
302
302
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sources":["../../../../../../../../packages/ui/src/components/select.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckIcon, ChevronDown, ChevronUp, XIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"./command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\nimport * as React from \"react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from \"react\";\nimport { Badge } from \"./badge\";\nimport { Label } from \"./label\";\n\nconst multiSelectTriggerVariants = cva(\n \"flex h-auto w-fit items-center justify-between gap-2 overflow-hidden rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground dark:bg-background dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n {\n variants: {\n size: {\n xs: \"min-h-6 text-xs px-2 py-0.5\",\n sm: \"min-h-8 text-sm px-2.5 py-1\",\n normal: \"min-h-9 px-3 py-1.5\",\n lg: \"min-h-11 px-4 py-2\",\n xl: \"min-h-14 px-5 py-3\",\n },\n state: {\n default:\n \"border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n success:\n \"border-success ring-success/30 focus-visible:border-success focus-visible:ring-success/50\",\n error:\n \"border-destructive ring-destructive/30 focus-visible:border-destructive focus-visible:ring-destructive/50\",\n warning:\n \"border-warning ring-warning/30 focus-visible:border-warning focus-visible:ring-warning/50\",\n },\n },\n defaultVariants: {\n size: \"normal\",\n state: \"default\",\n },\n }\n);\n\ntype MultiSelectContextType = {\n open: boolean;\n setOpen: (open: boolean) => void;\n selectedValues: Set<string>;\n toggleValue: (value: string) => void;\n items: Map<string, ReactNode>;\n onItemAdded: (value: string, label: ReactNode) => void;\n};\nconst MultiSelectContext = createContext<MultiSelectContextType | null>(null);\n\nexport function MultiSelect({\n children,\n values,\n defaultValues,\n onValuesChange,\n}: {\n children: ReactNode;\n values?: string[];\n defaultValues?: string[];\n onValuesChange?: (values: string[]) => void;\n}) {\n const [open, setOpen] = useState(false);\n const [internalValues, setInternalValues] = useState(\n new Set<string>(values ?? defaultValues)\n );\n const selectedValues = values ? new Set(values) : internalValues;\n const [items, setItems] = useState<Map<string, ReactNode>>(new Map());\n\n function toggleValue(value: string) {\n const getNewSet = (prev: Set<string>) => {\n const newSet = new Set(prev);\n if (newSet.has(value)) {\n newSet.delete(value);\n } else {\n newSet.add(value);\n }\n return newSet;\n };\n setInternalValues(getNewSet);\n onValuesChange?.([...getNewSet(selectedValues)]);\n }\n\n const onItemAdded = useCallback((value: string, label: ReactNode) => {\n setItems((prev) => {\n if (prev.get(value) === label) return prev;\n return new Map(prev).set(value, label);\n });\n }, []);\n\n return (\n <MultiSelectContext\n value={{\n open,\n setOpen,\n selectedValues,\n toggleValue,\n items,\n onItemAdded,\n }}\n >\n <Popover open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </MultiSelectContext>\n );\n}\n\nexport function MultiSelectTrigger({\n className,\n dropdownClassName,\n children,\n size,\n state = \"default\",\n ...props\n}: {\n className?: string;\n dropdownClassName?: string;\n children?: ReactNode;\n size?: \"normal\" | \"sm\" | \"xs\" | \"lg\" | \"xl\";\n state?: \"default\" | \"success\" | \"error\" | \"warning\";\n} & Omit<ComponentPropsWithoutRef<typeof Button>, \"size\"> &\n VariantProps<typeof multiSelectTriggerVariants>) {\n const { open } = useMultiSelectContext();\n\n return (\n <PopoverTrigger asChild>\n {/* <Button\n {...props}\n variant={props.variant ?? \"outline\"}\n role={props.role ?? \"combobox\"}\n aria-expanded={props[\"aria-expanded\"] ?? open}\n className={cn(\n multiSelectTriggerVariants({ size, state }),\n \"whitespace-nowrap text-sm\",\n className\n )}\n >\n {children}\n <ChevronsUpDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </Button> */}\n\n <Label\n className={cn(multiSelectTriggerVariants({ size, state }), className)}\n >\n {children}\n {open && (\n <ChevronUp\n className={cn(\n \"z-10 opacity-50\",\n {\n \"size-4\": size === \"sm\" || size === \"xs\",\n \"size-5\": size === \"lg\" || size === \"xl\",\n },\n dropdownClassName\n )}\n />\n )}\n {!open && (\n <ChevronDown\n className={cn(\n \"z-10 opacity-50\",\n {\n \"size-4\": size === \"sm\" || size === \"xs\",\n \"size-5\": size === \"lg\" || size === \"xl\",\n },\n dropdownClassName\n )}\n />\n )}\n </Label>\n </PopoverTrigger>\n );\n}\n\nexport function MultiSelectValue({\n placeholder,\n clickToRemove = true,\n className,\n overflowBehavior = \"wrap-when-open\",\n ...props\n}: {\n placeholder?: string;\n clickToRemove?: boolean;\n overflowBehavior?: \"wrap\" | \"wrap-when-open\" | \"cutoff\";\n} & Omit<ComponentPropsWithoutRef<\"div\">, \"children\">) {\n const { selectedValues, toggleValue, items, open } = useMultiSelectContext();\n const [overflowAmount, setOverflowAmount] = useState(0);\n const valueRef = useRef<HTMLDivElement>(null);\n const overflowRef = useRef<HTMLDivElement>(null);\n\n const shouldWrap =\n overflowBehavior === \"wrap\" ||\n (overflowBehavior === \"wrap-when-open\" && open);\n\n const checkOverflow = useCallback(() => {\n if (valueRef.current == null) return;\n\n const containerElement = valueRef.current;\n const overflowElement = overflowRef.current;\n const items = containerElement.querySelectorAll<HTMLElement>(\n \"[data-selected-item]\"\n );\n\n if (overflowElement != null) overflowElement.style.display = \"none\";\n items.forEach((child) => child.style.removeProperty(\"display\"));\n let amount = 0;\n for (let i = items.length - 1; i >= 0; i--) {\n const child = items[i]!;\n if (containerElement.scrollWidth <= containerElement.clientWidth) {\n break;\n }\n amount = items.length - i;\n child.style.display = \"none\";\n overflowElement?.style.removeProperty(\"display\");\n }\n setOverflowAmount(amount);\n }, []);\n\n const handleResize = useCallback(\n (node: HTMLDivElement) => {\n valueRef.current = node;\n\n const observer = new ResizeObserver(checkOverflow);\n observer.observe(node);\n\n return () => {\n observer.disconnect();\n valueRef.current = null;\n };\n },\n [checkOverflow]\n );\n\n if (selectedValues.size === 0 && placeholder) {\n return (\n <span className=\"min-w-0 overflow-hidden font-normal text-muted-foreground\">\n {placeholder}\n </span>\n );\n }\n\n return (\n <div\n {...props}\n ref={handleResize}\n className={cn(\n \"flex w-fit gap-1.5 overflow-hidden\",\n shouldWrap && \"h-full flex-wrap\",\n className\n )}\n >\n {[...selectedValues]\n .filter((value) => items.has(value))\n .map((value) => {\n const itemNode = items.get(value);\n const removeHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n toggleValue(value);\n };\n\n if (React.isValidElement(itemNode)) {\n const isDomElement =\n typeof itemNode.type === \"string\" &&\n [\"div\", \"span\", \"button\", \"a\"].includes(itemNode.type);\n\n const element = itemNode as React.ReactElement<any>;\n\n const cloneProps = isDomElement\n ? {\n key: value,\n onClick: clickToRemove ? removeHandler : undefined,\n className: cn(\n element.props.className,\n \"group flex items-center gap-1 whitespace-nowrap hover:scale-105 transition-transform\",\n {\n \"cursor-pointer\": clickToRemove,\n }\n ),\n \"data-selected-item\": true,\n }\n : {\n key: value,\n \"data-selected-item\": true,\n };\n\n return React.cloneElement(\n element,\n cloneProps,\n <>\n {element.props.children}\n {clickToRemove && (\n <XIcon className=\"size-2 text-muted-foreground group-hover:text-destructive\" />\n )}\n </>\n );\n }\n\n return (\n <Badge\n variant=\"outline\"\n data-selected-item\n className=\"group flex items-center gap-1\"\n key={value}\n onClick={clickToRemove ? removeHandler : undefined}\n >\n {itemNode}\n {clickToRemove && (\n <XIcon className=\"size-2 text-muted-foreground group-hover:text-destructive\" />\n )}\n </Badge>\n );\n })}\n\n <Badge\n style={{\n display: overflowAmount > 0 && !shouldWrap ? \"block\" : \"none\",\n }}\n variant=\"outline\"\n ref={overflowRef}\n >\n +{overflowAmount}\n </Badge>\n </div>\n );\n}\n\nexport function MultiSelectContent({\n search = true,\n children,\n ...props\n}: {\n search?: boolean | { placeholder?: string; emptyMessage?: string };\n children: ReactNode;\n} & Omit<ComponentPropsWithoutRef<typeof Command>, \"children\">) {\n const canSearch = typeof search === \"object\" ? true : search;\n\n return (\n <>\n <div style={{ display: \"none\" }}>\n <Command>\n <CommandList>{children}</CommandList>\n </Command>\n </div>\n <PopoverContent className=\"min-w-[var(--radix-popover-trigger-width)] p-0\">\n <Command {...props}>\n {canSearch ? (\n <CommandInput\n placeholder={\n typeof search === \"object\" ? search.placeholder : undefined\n }\n />\n ) : (\n <button autoFocus className=\"sr-only\" />\n )}\n <CommandList>\n {canSearch && (\n <CommandEmpty>\n {typeof search === \"object\" ? search.emptyMessage : undefined}\n </CommandEmpty>\n )}\n {children}\n </CommandList>\n </Command>\n </PopoverContent>\n </>\n );\n}\n\nexport function MultiSelectItem({\n value,\n children,\n badgeLabel,\n onSelect,\n icon,\n tagRender,\n ...props\n}: {\n badgeLabel?: ReactNode;\n value: string;\n icon?: ReactNode;\n tagRender?: boolean;\n} & Omit<ComponentPropsWithoutRef<typeof CommandItem>, \"value\">) {\n const { toggleValue, selectedValues, onItemAdded } = useMultiSelectContext();\n const isSelected = selectedValues.has(value);\n\n useEffect(() => {\n onItemAdded(value, badgeLabel ?? children);\n }, [value, children, onItemAdded, badgeLabel]);\n\n return (\n <CommandItem\n {...props}\n onSelect={\n props?.disabled\n ? undefined\n : () => {\n toggleValue(value);\n onSelect?.(value);\n }\n }\n className={cn(\n props?.disabled && \"opacity-50 cursor-not-allowed grayscale\",\n isSelected && \"bg-primary/10 dark:bg-primary/20\"\n )}\n >\n {!tagRender && icon && (\n <span className=\"mr-2 max-w-4 max-h-4\">{icon}</span>\n )}\n {children}\n <CheckIcon\n className={cn(\n \"mr-2 ml-auto size-4\",\n isSelected ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n </CommandItem>\n );\n}\n\nexport function MultiSelectGroup(\n props: ComponentPropsWithoutRef<typeof CommandGroup>\n) {\n return <CommandGroup {...props} />;\n}\n\nexport function MultiSelectSeparator(\n props: ComponentPropsWithoutRef<typeof CommandSeparator>\n) {\n return <CommandSeparator {...props} />;\n}\n\nfunction useMultiSelectContext() {\n const context = useContext(MultiSelectContext);\n if (context == null) {\n throw new Error(\n \"useMultiSelectContext must be used within a MultiSelectContext\"\n );\n }\n return context;\n}\n"],"names":["multiSelectTriggerVariants","cva","MultiSelectContext","createContext","MultiSelect","children","values","defaultValues","onValuesChange","open","setOpen","useState","internalValues","setInternalValues","selectedValues","items","setItems","toggleValue","value","getNewSet","prev","newSet","onItemAdded","useCallback","label","jsx","Popover","MultiSelectTrigger","className","dropdownClassName","size","state","props","useMultiSelectContext","PopoverTrigger","jsxs","Label","cn","ChevronUp","ChevronDown","MultiSelectValue","placeholder","clickToRemove","overflowBehavior","overflowAmount","setOverflowAmount","valueRef","useRef","overflowRef","shouldWrap","checkOverflow","containerElement","overflowElement","child","amount","i","handleResize","node","observer","itemNode","removeHandler","e","React","isDomElement","element","cloneProps","Fragment","XIcon","Badge","MultiSelectContent","search","canSearch","Command","CommandList","PopoverContent","CommandInput","CommandEmpty","MultiSelectItem","badgeLabel","onSelect","icon","tagRender","isSelected","useEffect","CommandItem","CheckIcon","MultiSelectGroup","CommandGroup","MultiSelectSeparator","CommandSeparator","context","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.js","sources":["../../../../../../../../packages/ui/src/components/select.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckIcon, ChevronDown, ChevronUp, XIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"./command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\nimport * as React from \"react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from \"react\";\nimport { Badge } from \"./badge\";\nimport { Label } from \"./label\";\n\nconst multiSelectTriggerVariants = cva(\n \"ds:flex ds:h-auto ds:w-fit ds:items-center ds:justify-between ds:gap-2 ds:overflow-hidden ds:rounded-md ds:border ds:bg-transparent ds:shadow-xs ds:transition-[color,box-shadow] ds:outline-none ds:focus-visible:ring-[3px] ds:disabled:cursor-not-allowed ds:disabled:opacity-50 ds:data-[placeholder]:text-muted-foreground ds:dark:bg-background ds:dark:hover:bg-input/50 ds:[&_svg]:pointer-events-none ds:[&_svg]:shrink-0 ds:[&_svg:not([class*='size-'])]:size-4 ds:[&_svg:not([class*='text-'])]:text-muted-foreground\",\n {\n variants: {\n size: {\n xs: \"ds:min-h-6 ds:text-xs ds:px-2 ds:py-0.5\",\n sm: \"ds:min-h-8 ds:text-sm ds:px-2.5 ds:py-1\",\n normal: \"ds:min-h-9 ds:px-3 ds:py-1.5\",\n lg: \"ds:min-h-11 ds:px-4 ds:py-2\",\n xl: \"ds:min-h-14 ds:px-5 ds:py-3\",\n },\n state: {\n default:\n \"ds:border-input ds:focus-visible:border-ring ds:focus-visible:ring-ring/50 ds:aria-invalid:border-destructive ds:aria-invalid:ring-destructive/20 ds:dark:aria-invalid:ring-destructive/40\",\n success:\n \"ds:border-success ds:ring-success/30 ds:focus-visible:border-success ds:focus-visible:ring-success/50\",\n error:\n \"ds:border-destructive ds:ring-destructive/30 ds:focus-visible:border-destructive ds:focus-visible:ring-destructive/50\",\n warning:\n \"ds:border-warning ds:ring-warning/30 ds:focus-visible:border-warning ds:focus-visible:ring-warning/50\",\n },\n },\n defaultVariants: {\n size: \"normal\",\n state: \"default\",\n },\n }\n);\n\ntype MultiSelectContextType = {\n open: boolean;\n setOpen: (open: boolean) => void;\n selectedValues: Set<string>;\n toggleValue: (value: string) => void;\n items: Map<string, ReactNode>;\n onItemAdded: (value: string, label: ReactNode) => void;\n};\nconst MultiSelectContext = createContext<MultiSelectContextType | null>(null);\n\nexport function MultiSelect({\n children,\n values,\n defaultValues,\n onValuesChange,\n}: {\n children: ReactNode;\n values?: string[];\n defaultValues?: string[];\n onValuesChange?: (values: string[]) => void;\n}) {\n const [open, setOpen] = useState(false);\n const [internalValues, setInternalValues] = useState(\n new Set<string>(values ?? defaultValues)\n );\n const selectedValues = values ? new Set(values) : internalValues;\n const [items, setItems] = useState<Map<string, ReactNode>>(new Map());\n\n function toggleValue(value: string) {\n const getNewSet = (prev: Set<string>) => {\n const newSet = new Set(prev);\n if (newSet.has(value)) {\n newSet.delete(value);\n } else {\n newSet.add(value);\n }\n return newSet;\n };\n setInternalValues(getNewSet);\n onValuesChange?.([...getNewSet(selectedValues)]);\n }\n\n const onItemAdded = useCallback((value: string, label: ReactNode) => {\n setItems((prev) => {\n if (prev.get(value) === label) return prev;\n return new Map(prev).set(value, label);\n });\n }, []);\n\n return (\n <MultiSelectContext\n value={{\n open,\n setOpen,\n selectedValues,\n toggleValue,\n items,\n onItemAdded,\n }}\n >\n <Popover open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </MultiSelectContext>\n );\n}\n\nexport function MultiSelectTrigger({\n className,\n dropdownClassName,\n children,\n size,\n state = \"default\",\n ...props\n}: {\n className?: string;\n dropdownClassName?: string;\n children?: ReactNode;\n size?: \"normal\" | \"sm\" | \"xs\" | \"lg\" | \"xl\";\n state?: \"default\" | \"success\" | \"error\" | \"warning\";\n} & Omit<ComponentPropsWithoutRef<typeof Button>, \"size\"> &\n VariantProps<typeof multiSelectTriggerVariants>) {\n const { open } = useMultiSelectContext();\n\n return (\n <PopoverTrigger asChild>\n {/* <Button\n {...props}\n variant={props.variant ?? \"outline\"}\n role={props.role ?? \"combobox\"}\n aria-expanded={props[\"aria-expanded\"] ?? open}\n className={cn(\n multiSelectTriggerVariants({ size, state }),\n \"whitespace-nowrap text-sm\",\n className\n )}\n >\n {children}\n <ChevronsUpDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </Button> */}\n\n <Label\n className={cn(multiSelectTriggerVariants({ size, state }), className)}\n >\n {children}\n {open && (\n <ChevronUp\n className={cn(\n \"ds:z-10 ds:opacity-50\",\n {\n \"ds:size-4\": size === \"sm\" || size === \"xs\",\n \"ds:size-5\": size === \"lg\" || size === \"xl\",\n },\n dropdownClassName\n )}\n />\n )}\n {!open && (\n <ChevronDown\n className={cn(\n \"ds:z-10 ds:opacity-50\",\n {\n \"ds:size-4\": size === \"sm\" || size === \"xs\",\n \"ds:size-5\": size === \"lg\" || size === \"xl\",\n },\n dropdownClassName\n )}\n />\n )}\n </Label>\n </PopoverTrigger>\n );\n}\n\nexport function MultiSelectValue({\n placeholder,\n clickToRemove = true,\n className,\n overflowBehavior = \"wrap-when-open\",\n ...props\n}: {\n placeholder?: string;\n clickToRemove?: boolean;\n overflowBehavior?: \"wrap\" | \"wrap-when-open\" | \"cutoff\";\n} & Omit<ComponentPropsWithoutRef<\"div\">, \"children\">) {\n const { selectedValues, toggleValue, items, open } = useMultiSelectContext();\n const [overflowAmount, setOverflowAmount] = useState(0);\n const valueRef = useRef<HTMLDivElement>(null);\n const overflowRef = useRef<HTMLDivElement>(null);\n\n const shouldWrap =\n overflowBehavior === \"wrap\" ||\n (overflowBehavior === \"wrap-when-open\" && open);\n\n const checkOverflow = useCallback(() => {\n if (valueRef.current == null) return;\n\n const containerElement = valueRef.current;\n const overflowElement = overflowRef.current;\n const items = containerElement.querySelectorAll<HTMLElement>(\n \"[data-selected-item]\"\n );\n\n if (overflowElement != null) overflowElement.style.display = \"none\";\n items.forEach((child) => child.style.removeProperty(\"display\"));\n let amount = 0;\n for (let i = items.length - 1; i >= 0; i--) {\n const child = items[i]!;\n if (containerElement.scrollWidth <= containerElement.clientWidth) {\n break;\n }\n amount = items.length - i;\n child.style.display = \"none\";\n overflowElement?.style.removeProperty(\"display\");\n }\n setOverflowAmount(amount);\n }, []);\n\n const handleResize = useCallback(\n (node: HTMLDivElement) => {\n valueRef.current = node;\n\n const observer = new ResizeObserver(checkOverflow);\n observer.observe(node);\n\n return () => {\n observer.disconnect();\n valueRef.current = null;\n };\n },\n [checkOverflow]\n );\n\n if (selectedValues.size === 0 && placeholder) {\n return (\n <span className=\"ds:min-w-0 ds:overflow-hidden ds:font-normal ds:text-muted-foreground\">\n {placeholder}\n </span>\n );\n }\n\n return (\n <div\n {...props}\n ref={handleResize}\n className={cn(\n \"ds:flex ds:w-fit ds:gap-1.5 ds:overflow-hidden\",\n shouldWrap && \"ds:h-full ds:flex-wrap\",\n className\n )}\n >\n {[...selectedValues]\n .filter((value) => items.has(value))\n .map((value) => {\n const itemNode = items.get(value);\n const removeHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n toggleValue(value);\n };\n\n if (React.isValidElement(itemNode)) {\n const isDomElement =\n typeof itemNode.type === \"string\" &&\n [\"div\", \"span\", \"button\", \"a\"].includes(itemNode.type);\n\n const element = itemNode as React.ReactElement<any>;\n\n const cloneProps = isDomElement\n ? {\n key: value,\n onClick: clickToRemove ? removeHandler : undefined,\n className: cn(\n element.props.className,\n \"ds:group ds:flex ds:items-center ds:gap-1 ds:whitespace-nowrap ds:hover:scale-105 ds:transition-transform\",\n {\n \"ds:cursor-pointer\": clickToRemove,\n }\n ),\n \"data-selected-item\": true,\n }\n : {\n key: value,\n \"data-selected-item\": true,\n };\n\n return React.cloneElement(\n element,\n cloneProps,\n <>\n {element.props.children}\n {clickToRemove && (\n <XIcon className=\"ds:size-2 ds:text-muted-foreground ds:group-hover:text-destructive\" />\n )}\n </>\n );\n }\n\n return (\n <Badge\n variant=\"outline\"\n data-selected-item\n className=\"ds:group ds:flex ds:items-center ds:gap-1\"\n key={value}\n onClick={clickToRemove ? removeHandler : undefined}\n >\n {itemNode}\n {clickToRemove && (\n <XIcon className=\"ds:size-2 ds:text-muted-foreground ds:group-hover:text-destructive\" />\n )}\n </Badge>\n );\n })}\n\n <Badge\n style={{\n display: overflowAmount > 0 && !shouldWrap ? \"block\" : \"none\",\n }}\n variant=\"outline\"\n ref={overflowRef}\n >\n +{overflowAmount}\n </Badge>\n </div>\n );\n}\n\nexport function MultiSelectContent({\n search = true,\n children,\n ...props\n}: {\n search?: boolean | { placeholder?: string; emptyMessage?: string };\n children: ReactNode;\n} & Omit<ComponentPropsWithoutRef<typeof Command>, \"children\">) {\n const canSearch = typeof search === \"object\" ? true : search;\n\n return (\n <>\n <div style={{ display: \"none\" }}>\n <Command>\n <CommandList>{children}</CommandList>\n </Command>\n </div>\n <PopoverContent className=\"ds:min-w-[var(--radix-popover-trigger-width)] ds:p-0\">\n <Command {...props}>\n {canSearch ? (\n <CommandInput\n placeholder={\n typeof search === \"object\" ? search.placeholder : undefined\n }\n />\n ) : (\n <button autoFocus className=\"ds:sr-only\" />\n )}\n <CommandList>\n {canSearch && (\n <CommandEmpty>\n {typeof search === \"object\" ? search.emptyMessage : undefined}\n </CommandEmpty>\n )}\n {children}\n </CommandList>\n </Command>\n </PopoverContent>\n </>\n );\n}\n\nexport function MultiSelectItem({\n value,\n children,\n badgeLabel,\n onSelect,\n icon,\n tagRender,\n ...props\n}: {\n badgeLabel?: ReactNode;\n value: string;\n icon?: ReactNode;\n tagRender?: boolean;\n} & Omit<ComponentPropsWithoutRef<typeof CommandItem>, \"value\">) {\n const { toggleValue, selectedValues, onItemAdded } = useMultiSelectContext();\n const isSelected = selectedValues.has(value);\n\n useEffect(() => {\n onItemAdded(value, badgeLabel ?? children);\n }, [value, children, onItemAdded, badgeLabel]);\n\n return (\n <CommandItem\n {...props}\n onSelect={\n props?.disabled\n ? undefined\n : () => {\n toggleValue(value);\n onSelect?.(value);\n }\n }\n className={cn(\n props?.disabled && \"ds:opacity-50 ds:cursor-not-allowed ds:grayscale\",\n isSelected && \"ds:bg-primary/10 ds:dark:bg-primary/20\"\n )}\n >\n {!tagRender && icon && (\n <span className=\"ds:mr-2 ds:max-w-4 ds:max-h-4\">{icon}</span>\n )}\n {children}\n <CheckIcon\n className={cn(\n \"ds:mr-2 ds:ml-auto ds:size-4\",\n isSelected ? \"ds:opacity-100\" : \"ds:opacity-0\"\n )}\n />\n </CommandItem>\n );\n}\n\nexport function MultiSelectGroup(\n props: ComponentPropsWithoutRef<typeof CommandGroup>\n) {\n return <CommandGroup {...props} />;\n}\n\nexport function MultiSelectSeparator(\n props: ComponentPropsWithoutRef<typeof CommandSeparator>\n) {\n return <CommandSeparator {...props} />;\n}\n\nfunction useMultiSelectContext() {\n const context = useContext(MultiSelectContext);\n if (context == null) {\n throw new Error(\n \"useMultiSelectContext must be used within a MultiSelectContext\"\n );\n }\n return context;\n}\n"],"names":["multiSelectTriggerVariants","cva","MultiSelectContext","createContext","MultiSelect","children","values","defaultValues","onValuesChange","open","setOpen","useState","internalValues","setInternalValues","selectedValues","items","setItems","toggleValue","value","getNewSet","prev","newSet","onItemAdded","useCallback","label","jsx","Popover","MultiSelectTrigger","className","dropdownClassName","size","state","props","useMultiSelectContext","PopoverTrigger","jsxs","Label","cn","ChevronUp","ChevronDown","MultiSelectValue","placeholder","clickToRemove","overflowBehavior","overflowAmount","setOverflowAmount","valueRef","useRef","overflowRef","shouldWrap","checkOverflow","containerElement","overflowElement","child","amount","i","handleResize","node","observer","itemNode","removeHandler","e","React","isDomElement","element","cloneProps","Fragment","XIcon","Badge","MultiSelectContent","search","canSearch","Command","CommandList","PopoverContent","CommandInput","CommandEmpty","MultiSelectItem","badgeLabel","onSelect","icon","tagRender","isSelected","useEffect","CommandItem","CheckIcon","MultiSelectGroup","CommandGroup","MultiSelectSeparator","CommandSeparator","context","useContext"],"mappings":"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"}
|