@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
|
@@ -67,7 +67,7 @@ const X = {
|
|
|
67
67
|
track: "data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2",
|
|
68
68
|
thumb: "size-5"
|
|
69
69
|
}
|
|
70
|
-
}, Y = (
|
|
70
|
+
}, Y = (d, t) => d === "horizontal" ? t === "bottom" ? "bottom" : t === "left" ? "left" : t === "right" ? "right" : "top" : t === "right" ? "right" : t === "top" ? "top" : t === "bottom" ? "bottom" : "left", V = (d, t) => {
|
|
71
71
|
const a = t === "top" ? "t" : t === "bottom" ? "b" : t === "left" ? "l" : "r";
|
|
72
72
|
return {
|
|
73
73
|
primary: `border-${a}-primary`,
|
|
@@ -78,8 +78,8 @@ const X = {
|
|
|
78
78
|
glass: `border-${a}-white/15`,
|
|
79
79
|
muted: `border-${a}-muted`,
|
|
80
80
|
accent: `border-${a}-accent`
|
|
81
|
-
}[
|
|
82
|
-
}, ot = (
|
|
81
|
+
}[d];
|
|
82
|
+
}, ot = (d, t) => ({
|
|
83
83
|
"horizontal-top": {
|
|
84
84
|
badge: "left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2",
|
|
85
85
|
arrow: "top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent"
|
|
@@ -112,7 +112,7 @@ const X = {
|
|
|
112
112
|
badge: "left-1/2 -translate-x-1/2 top-full translate-y-1/2",
|
|
113
113
|
arrow: "bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent"
|
|
114
114
|
}
|
|
115
|
-
})[`${
|
|
115
|
+
})[`${d}-${t}`], nt = (d, t) => ({
|
|
116
116
|
"horizontal-top": "data-[orientation=horizontal]:bottom-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:-translate-y-1/2",
|
|
117
117
|
"horizontal-bottom": "data-[orientation=horizontal]:top-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:translate-y-1/2",
|
|
118
118
|
"horizontal-left": "data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:right-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:-translate-x-1/2",
|
|
@@ -121,18 +121,18 @@ const X = {
|
|
|
121
121
|
"vertical-right": "data-[orientation=vertical]:left-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2",
|
|
122
122
|
"vertical-top": "data-[orientation=vertical]:bottom-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2",
|
|
123
123
|
"vertical-bottom": "data-[orientation=vertical]:top-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:translate-y-1/2"
|
|
124
|
-
})[`${
|
|
124
|
+
})[`${d}-${t}`], st = h.forwardRef(
|
|
125
125
|
({
|
|
126
|
-
className:
|
|
126
|
+
className: d,
|
|
127
127
|
color: t = "primary",
|
|
128
128
|
size: a = "md",
|
|
129
129
|
showLabel: c = !1,
|
|
130
130
|
labelArrow: M = !1,
|
|
131
131
|
labelAnimation: y = "none",
|
|
132
|
-
labelFormatter: I = (
|
|
132
|
+
labelFormatter: I = (i) => `${i}`,
|
|
133
133
|
labelPosition: b = "top",
|
|
134
134
|
labelColor: n,
|
|
135
|
-
labelTextColor:
|
|
135
|
+
labelTextColor: s,
|
|
136
136
|
labelArrowColor: R,
|
|
137
137
|
sliderColor: _,
|
|
138
138
|
thumbBorderColor: A,
|
|
@@ -142,7 +142,7 @@ const X = {
|
|
|
142
142
|
max: $ = 100,
|
|
143
143
|
...O
|
|
144
144
|
}, j) => {
|
|
145
|
-
const
|
|
145
|
+
const i = h.useMemo(
|
|
146
146
|
() => Array.isArray(f) ? f : Array.isArray(u) ? u : [z, $],
|
|
147
147
|
[f, u, z, $]
|
|
148
148
|
), [F, G] = h.useState(!1);
|
|
@@ -153,10 +153,10 @@ const X = {
|
|
|
153
153
|
"[Slider] defaultValue prop must be an array of numbers, e.g., [50] or [25, 75]"
|
|
154
154
|
);
|
|
155
155
|
}, [f, u]);
|
|
156
|
-
const
|
|
156
|
+
const l = O.orientation || "horizontal", H = Q(0), D = Q(0), P = h.useRef(0), Z = { stiffness: 150, damping: 15, mass: 1 }, v = U(0, Z), x = U(0, Z);
|
|
157
157
|
h.useEffect(() => {
|
|
158
|
-
if (y === "spec" &&
|
|
159
|
-
const r =
|
|
158
|
+
if (y === "spec" && i.length > 0) {
|
|
159
|
+
const r = i[0], g = r - P.current, w = 5, E = Math.max(
|
|
160
160
|
-w,
|
|
161
161
|
Math.min(w, g)
|
|
162
162
|
);
|
|
@@ -167,7 +167,7 @@ const X = {
|
|
|
167
167
|
}, 100), P.current = r;
|
|
168
168
|
}
|
|
169
169
|
}, [
|
|
170
|
-
|
|
170
|
+
i,
|
|
171
171
|
y,
|
|
172
172
|
D,
|
|
173
173
|
H,
|
|
@@ -186,32 +186,32 @@ const X = {
|
|
|
186
186
|
thumb: r.thumb
|
|
187
187
|
};
|
|
188
188
|
}, [t, _, A]), N = m(() => et[a], [a]), q = m(() => {
|
|
189
|
-
if (n ||
|
|
190
|
-
return e(n,
|
|
191
|
-
const r = X[t], g = Y(
|
|
189
|
+
if (n || s)
|
|
190
|
+
return e(n, s);
|
|
191
|
+
const r = X[t], g = Y(l, b), w = V(t, g);
|
|
192
192
|
return t === "glass" ? `${r.labelBg} ${r.labelText} backdrop-blur-sm shadow-lg [&>div.arrow]:${w}` : `${r.labelBg} ${r.labelText} [&>div.arrow]:${w}`;
|
|
193
|
-
}, [t, b,
|
|
193
|
+
}, [t, b, l, n, s]), T = m(() => {
|
|
194
194
|
if (R) return R;
|
|
195
|
-
const r = Y(
|
|
195
|
+
const r = Y(l, b);
|
|
196
196
|
return V(t, r);
|
|
197
|
-
}, [t, b,
|
|
198
|
-
() => ot(
|
|
199
|
-
[b,
|
|
197
|
+
}, [t, b, l, R]), J = m(() => c === "hover" ? "scale-0 group-hover:scale-100" : c === "always" ? "scale-100" : "hidden", [c]), S = m(
|
|
198
|
+
() => ot(l, b),
|
|
199
|
+
[b, l]
|
|
200
200
|
), K = m(
|
|
201
|
-
() => nt(
|
|
202
|
-
[b,
|
|
201
|
+
() => nt(l, b),
|
|
202
|
+
[b, l]
|
|
203
203
|
), L = h.useCallback(
|
|
204
204
|
(r) => y === "spec" ? /* @__PURE__ */ B(
|
|
205
205
|
rt.div,
|
|
206
206
|
{
|
|
207
207
|
className: e(
|
|
208
|
-
"pointer-events-none absolute z-50 flex flex-col items-center justify-center rounded-md px-3 py-1.5 text-xs shadow-xl",
|
|
208
|
+
"ds:pointer-events-none ds:absolute ds:z-50 ds:flex ds:flex-col ds:items-center ds:justify-center ds:rounded-md ds:px-3 ds:py-1.5 ds:text-xs ds:shadow-xl",
|
|
209
209
|
K,
|
|
210
210
|
n && n,
|
|
211
|
-
|
|
212
|
-
!n && !
|
|
211
|
+
s && s,
|
|
212
|
+
!n && !s && q
|
|
213
213
|
),
|
|
214
|
-
"data-orientation":
|
|
214
|
+
"data-orientation": l,
|
|
215
215
|
initial: c === "always" ? { opacity: 1, y: -5, scale: 1 } : { opacity: 0, y: 20, scale: 0 },
|
|
216
216
|
animate: F && c === "hover" || c === "always" ? {
|
|
217
217
|
opacity: 1,
|
|
@@ -233,10 +233,10 @@ const X = {
|
|
|
233
233
|
whiteSpace: "nowrap"
|
|
234
234
|
},
|
|
235
235
|
children: [
|
|
236
|
-
/* @__PURE__ */ o("div", { className: "relative z-1", children: /* @__PURE__ */ o(
|
|
236
|
+
/* @__PURE__ */ o("div", { className: "ds:relative ds:z-1", children: /* @__PURE__ */ o(
|
|
237
237
|
W,
|
|
238
238
|
{
|
|
239
|
-
value:
|
|
239
|
+
value: i[r],
|
|
240
240
|
format: { notation: "standard" },
|
|
241
241
|
isolate: !0
|
|
242
242
|
}
|
|
@@ -245,7 +245,7 @@ const X = {
|
|
|
245
245
|
"div",
|
|
246
246
|
{
|
|
247
247
|
className: e(
|
|
248
|
-
"arrow absolute border-transparent",
|
|
248
|
+
"ds:arrow ds:absolute ds:border-transparent",
|
|
249
249
|
S.arrow,
|
|
250
250
|
T
|
|
251
251
|
)
|
|
@@ -257,30 +257,30 @@ const X = {
|
|
|
257
257
|
at,
|
|
258
258
|
{
|
|
259
259
|
size: "lg",
|
|
260
|
-
color: n ||
|
|
260
|
+
color: n || s || t === "glass" ? "custom" : t === "muted" ? "muted" : t === "accent" ? "accent" : t,
|
|
261
261
|
variant: "solid",
|
|
262
262
|
className: e(
|
|
263
|
-
"transition-transform absolute px-3 rounded-md",
|
|
263
|
+
"ds:transition-transform ds:absolute ds:px-3 ds:rounded-md",
|
|
264
264
|
S.badge,
|
|
265
265
|
J,
|
|
266
266
|
n && n,
|
|
267
|
-
|
|
268
|
-
!n && !
|
|
267
|
+
s && s,
|
|
268
|
+
!n && !s && t === "glass" && "ds:bg-white/15 ds:text-foreground ds:backdrop-blur-sm ds:shadow-lg ds:[&>div.arrow]:border-t-white/15"
|
|
269
269
|
),
|
|
270
270
|
children: [
|
|
271
271
|
y === "number-flow" ? /* @__PURE__ */ o(
|
|
272
272
|
W,
|
|
273
273
|
{
|
|
274
|
-
value:
|
|
274
|
+
value: i[r],
|
|
275
275
|
format: { notation: "standard" },
|
|
276
276
|
isolate: !0
|
|
277
277
|
}
|
|
278
|
-
) : /* @__PURE__ */ o("span", { children: I(
|
|
278
|
+
) : /* @__PURE__ */ o("span", { children: I(i[r]) }),
|
|
279
279
|
M && /* @__PURE__ */ o(
|
|
280
280
|
"div",
|
|
281
281
|
{
|
|
282
282
|
className: e(
|
|
283
|
-
"arrow absolute border-transparent",
|
|
283
|
+
"ds:arrow ds:absolute ds:border-transparent",
|
|
284
284
|
S.arrow,
|
|
285
285
|
T
|
|
286
286
|
)
|
|
@@ -293,14 +293,14 @@ const X = {
|
|
|
293
293
|
y,
|
|
294
294
|
K,
|
|
295
295
|
n,
|
|
296
|
-
|
|
296
|
+
s,
|
|
297
297
|
q,
|
|
298
|
-
|
|
298
|
+
l,
|
|
299
299
|
c,
|
|
300
300
|
v,
|
|
301
301
|
x,
|
|
302
302
|
I,
|
|
303
|
-
|
|
303
|
+
i,
|
|
304
304
|
t,
|
|
305
305
|
S,
|
|
306
306
|
J,
|
|
@@ -319,8 +319,8 @@ const X = {
|
|
|
319
319
|
min: z,
|
|
320
320
|
max: $,
|
|
321
321
|
className: e(
|
|
322
|
-
"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
323
|
-
|
|
322
|
+
"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col",
|
|
323
|
+
d
|
|
324
324
|
),
|
|
325
325
|
...O,
|
|
326
326
|
children: [
|
|
@@ -329,7 +329,7 @@ const X = {
|
|
|
329
329
|
{
|
|
330
330
|
"data-slot": "slider-track",
|
|
331
331
|
className: e(
|
|
332
|
-
"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full",
|
|
332
|
+
"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full",
|
|
333
333
|
N.track
|
|
334
334
|
),
|
|
335
335
|
children: /* @__PURE__ */ o(
|
|
@@ -337,19 +337,19 @@ const X = {
|
|
|
337
337
|
{
|
|
338
338
|
"data-slot": "slider-range",
|
|
339
339
|
className: e(
|
|
340
|
-
"absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full",
|
|
340
|
+
"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full",
|
|
341
341
|
k.range
|
|
342
342
|
)
|
|
343
343
|
}
|
|
344
344
|
)
|
|
345
345
|
}
|
|
346
346
|
),
|
|
347
|
-
Array.from({ length:
|
|
347
|
+
Array.from({ length: i.length }, (r, g) => /* @__PURE__ */ o(
|
|
348
348
|
p.Thumb,
|
|
349
349
|
{
|
|
350
350
|
"data-slot": "slider-thumb",
|
|
351
351
|
className: e(
|
|
352
|
-
"group block shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 ring-ring/50",
|
|
352
|
+
"ds:group ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50",
|
|
353
353
|
k.thumb,
|
|
354
354
|
N.thumb
|
|
355
355
|
),
|
|
@@ -371,8 +371,8 @@ const X = {
|
|
|
371
371
|
min: z,
|
|
372
372
|
max: $,
|
|
373
373
|
className: e(
|
|
374
|
-
"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
375
|
-
|
|
374
|
+
"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col",
|
|
375
|
+
d
|
|
376
376
|
),
|
|
377
377
|
...O,
|
|
378
378
|
children: [
|
|
@@ -381,7 +381,7 @@ const X = {
|
|
|
381
381
|
{
|
|
382
382
|
"data-slot": "slider-track",
|
|
383
383
|
className: e(
|
|
384
|
-
"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full",
|
|
384
|
+
"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full",
|
|
385
385
|
N.track
|
|
386
386
|
),
|
|
387
387
|
children: /* @__PURE__ */ o(
|
|
@@ -389,19 +389,19 @@ const X = {
|
|
|
389
389
|
{
|
|
390
390
|
"data-slot": "slider-range",
|
|
391
391
|
className: e(
|
|
392
|
-
"absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full",
|
|
392
|
+
"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full",
|
|
393
393
|
k.range
|
|
394
394
|
)
|
|
395
395
|
}
|
|
396
396
|
)
|
|
397
397
|
}
|
|
398
398
|
),
|
|
399
|
-
Array.from({ length:
|
|
399
|
+
Array.from({ length: i.length }, (r, g) => /* @__PURE__ */ o(
|
|
400
400
|
p.Thumb,
|
|
401
401
|
{
|
|
402
402
|
"data-slot": "slider-thumb",
|
|
403
403
|
className: e(
|
|
404
|
-
"block shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 ring-ring/50",
|
|
404
|
+
"ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50",
|
|
405
405
|
k.thumb,
|
|
406
406
|
N.thumb
|
|
407
407
|
)
|
|
@@ -413,8 +413,8 @@ const X = {
|
|
|
413
413
|
);
|
|
414
414
|
}
|
|
415
415
|
);
|
|
416
|
-
|
|
416
|
+
st.displayName = "Slider";
|
|
417
417
|
export {
|
|
418
|
-
|
|
418
|
+
st as default
|
|
419
419
|
};
|
|
420
420
|
//# sourceMappingURL=Slider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { motion, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport NumberFlow from \"@number-flow/react\";\nimport type { BasicColor } from \"@/types/variables\";\nimport { Badge } from \"../Badge\";\n\ntype LabelAnimation = \"number-flow\" | \"spec\" | \"none\";\ntype LabelDisplay = false | \"hover\" | \"always\";\ntype SliderColor = BasicColor | \"muted\" | \"accent\";\ntype SliderSize = \"sm\" | \"md\" | \"lg\";\ntype LabelPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type SliderProps = Omit<\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>,\n \"color\" | \"defaultValue\" | \"value\" | \"min\" | \"max\"\n> & {\n color?: SliderColor;\n size?: SliderSize;\n showLabel?: LabelDisplay;\n labelArrow?: boolean;\n labelAnimation?: LabelAnimation;\n labelFormatter?: (value: number) => string;\n labelPosition?: LabelPosition;\n labelColor?: string;\n labelTextColor?: string;\n labelArrowColor?: string;\n sliderColor?: string;\n thumbBorderColor?: string;\n defaultValue?: number[];\n value?: number[];\n min?: number;\n max?: number;\n};\n\n// Color mapping configuration\nconst COLOR_CONFIG: Record<\n SliderColor,\n {\n range: string;\n thumb: string;\n labelBg: string;\n labelText: string;\n }\n> = {\n primary: {\n range: \"bg-primary\",\n thumb: \"border-primary/50\",\n labelBg: \"bg-primary\",\n labelText: \"text-primary-foreground\",\n },\n secondary: {\n range: \"bg-secondary\",\n thumb: \"border-secondary/50\",\n labelBg: \"bg-secondary\",\n labelText: \"text-secondary-foreground\",\n },\n success: {\n range: \"bg-success\",\n thumb: \"border-success/50\",\n labelBg: \"bg-success\",\n labelText: \"text-success-foreground\",\n },\n warning: {\n range: \"bg-warning\",\n thumb: \"border-warning/50\",\n labelBg: \"bg-warning\",\n labelText: \"text-warning-foreground\",\n },\n error: {\n range: \"bg-error\",\n thumb: \"border-error/50\",\n labelBg: \"bg-error\",\n labelText: \"text-error-foreground\",\n },\n glass: {\n range: \"bg-white/30 backdrop-blur-sm\",\n thumb: \"border-white/30 backdrop-blur-sm\",\n labelBg: \"bg-white/15\",\n labelText: \"text-foreground\",\n },\n muted: {\n range: \"bg-muted-foreground\",\n thumb: \"border-muted-foreground/50\",\n labelBg: \"bg-muted\",\n labelText: \"text-muted-foreground\",\n },\n accent: {\n range: \"bg-accent\",\n thumb: \"border-accent/50\",\n labelBg: \"bg-accent\",\n labelText: \"text-accent-foreground\",\n },\n};\n\n// Size configuration\nconst SIZE_CONFIG: Record<\n SliderSize,\n {\n track: string;\n thumb: string;\n }\n> = {\n sm: {\n track: \"data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1\",\n thumb: \"size-3\",\n },\n md: {\n track:\n \"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n thumb: \"size-4\",\n },\n lg: {\n track: \"data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2\",\n thumb: \"size-5\",\n },\n};\n\n// Helper to get arrow direction based on orientation and position\nconst getArrowDirection = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): \"top\" | \"bottom\" | \"left\" | \"right\" => {\n if (orientation === \"horizontal\") {\n if (position === \"bottom\") return \"bottom\";\n if (position === \"left\") return \"left\";\n if (position === \"right\") return \"right\";\n return \"top\";\n }\n // vertical\n if (position === \"right\") return \"right\";\n if (position === \"top\") return \"top\";\n if (position === \"bottom\") return \"bottom\";\n return \"left\";\n};\n\n// Helper to get arrow color class\nconst getArrowColorClass = (\n color: SliderColor,\n direction: \"top\" | \"bottom\" | \"left\" | \"right\"\n): string => {\n // Generate full border class (e.g., \"border-t-primary\")\n const prefix =\n direction === \"top\"\n ? \"t\"\n : direction === \"bottom\"\n ? \"b\"\n : direction === \"left\"\n ? \"l\"\n : \"r\";\n const colorMap: Record<SliderColor, string> = {\n primary: `border-${prefix}-primary`,\n secondary: `border-${prefix}-secondary`,\n success: `border-${prefix}-success`,\n warning: `border-${prefix}-warning`,\n error: `border-${prefix}-error`,\n glass: `border-${prefix}-white/15`,\n muted: `border-${prefix}-muted`,\n accent: `border-${prefix}-accent`,\n };\n\n return colorMap[color];\n};\n\n// Helper to get label position classes\nconst getLabelPositionClasses = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): { badge: string; arrow: string } => {\n const positions: Record<string, { badge: string; arrow: string }> = {\n \"horizontal-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"horizontal-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"vertical-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n };\n\n return positions[`${orientation}-${position}`];\n};\n\n// Helper to get spec label position classes\nconst getSpecLabelPositionClass = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): string => {\n const positions: Record<string, string> = {\n \"horizontal-top\":\n \"data-[orientation=horizontal]:bottom-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:-translate-y-1/2\",\n \"horizontal-bottom\":\n \"data-[orientation=horizontal]:top-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:translate-y-1/2\",\n \"horizontal-left\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:right-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:-translate-x-1/2\",\n \"horizontal-right\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:translate-x-1/2\",\n \"vertical-left\":\n \"data-[orientation=vertical]:right-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-right\":\n \"data-[orientation=vertical]:left-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-top\":\n \"data-[orientation=vertical]:bottom-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-bottom\":\n \"data-[orientation=vertical]:top-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:translate-y-1/2\",\n };\n\n return positions[`${orientation}-${position}`];\n};\n\nconst Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n className,\n color = \"primary\",\n size = \"md\",\n showLabel = false,\n labelArrow = false,\n labelAnimation = \"none\",\n labelFormatter = (value) => `${value}`,\n labelPosition = \"top\",\n labelColor,\n labelTextColor,\n labelArrowColor,\n sliderColor,\n thumbBorderColor,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n },\n ref\n ) => {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n // State for hover detection\n const [isHovered, setIsHovered] = React.useState(false);\n React.useEffect(() => {\n if (value !== undefined && !Array.isArray(value)) {\n console.error(\n \"[Slider] value prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n if (defaultValue !== undefined && !Array.isArray(defaultValue)) {\n console.error(\n \"[Slider] defaultValue prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n }, [value, defaultValue]);\n\n const orientation = props.orientation || \"horizontal\";\n\n // For spec animation - track thumb position and velocity\n const thumbPosition = useMotionValue(0);\n const thumbVelocity = useMotionValue(0);\n const prevThumbPosition = React.useRef(0);\n\n // Spring physics for label following effect - more dramatic\n const springConfig = { stiffness: 150, damping: 15, mass: 1 };\n const labelOffset = useSpring(0, springConfig);\n const labelRotate = useSpring(0, springConfig);\n\n // Track value changes to calculate velocity\n React.useEffect(() => {\n if (labelAnimation === \"spec\" && _values.length > 0) {\n const currentPos = _values[0];\n const velocity = currentPos - prevThumbPosition.current;\n\n // Cap velocity to prevent large jumps (e.g., on click or initial load)\n const maxVelocity = 5; // Maximum velocity threshold\n const cappedVelocity = Math.max(\n -maxVelocity,\n Math.min(maxVelocity, velocity)\n );\n\n // Update velocity and position\n thumbVelocity.set(cappedVelocity);\n thumbPosition.set(currentPos);\n\n // Calculate offset and rotation based on capped velocity\n // Negative velocity (moving left) -> positive offset (label lags behind to the right)\n const offsetAmount = -cappedVelocity * 12;\n const rotateAmount = -cappedVelocity * 20;\n\n labelOffset.set(offsetAmount);\n labelRotate.set(rotateAmount);\n\n // Reset to center when stopped\n setTimeout(() => {\n labelOffset.set(0);\n labelRotate.set(0);\n }, 100);\n\n prevThumbPosition.current = currentPos;\n }\n }, [\n _values,\n labelAnimation,\n thumbVelocity,\n thumbPosition,\n labelOffset,\n labelRotate,\n ]);\n\n // Memoized computed values\n const sliderColorClass = useMemo(() => {\n if (sliderColor || thumbBorderColor) {\n return {\n range: sliderColor || \"bg-primary\",\n thumb: thumbBorderColor || \"border-primary/50\",\n };\n }\n const config = COLOR_CONFIG[color];\n return {\n range: config.range,\n thumb: config.thumb,\n };\n }, [color, sliderColor, thumbBorderColor]);\n\n const sliderSizeClass = useMemo(() => SIZE_CONFIG[size], [size]);\n\n const labelColorClass = useMemo(() => {\n if (labelColor || labelTextColor) {\n return cn(labelColor, labelTextColor);\n }\n\n const config = COLOR_CONFIG[color];\n const direction = getArrowDirection(orientation, labelPosition);\n const arrowColor = getArrowColorClass(color, direction);\n\n if (color === \"glass\") {\n return `${config.labelBg} ${config.labelText} backdrop-blur-sm shadow-lg [&>div.arrow]:${arrowColor}`;\n }\n\n return `${config.labelBg} ${config.labelText} [&>div.arrow]:${arrowColor}`;\n }, [color, labelPosition, orientation, labelColor, labelTextColor]);\n\n const arrowColorClass = useMemo(() => {\n if (labelArrowColor) return labelArrowColor;\n const direction = getArrowDirection(orientation, labelPosition);\n return getArrowColorClass(color, direction);\n }, [color, labelPosition, orientation, labelArrowColor]);\n\n const labelVisibilityClass = useMemo(() => {\n if (showLabel === \"hover\") return \"scale-0 group-hover:scale-100\";\n if (showLabel === \"always\") return \"scale-100\";\n return \"hidden\";\n }, [showLabel]);\n\n const labelPositionClass = useMemo(\n () => getLabelPositionClasses(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n const labelPositionClassSpec = useMemo(\n () => getSpecLabelPositionClass(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n // Render label based on animation type\n const renderLabel = React.useCallback(\n (index: number) => {\n if (labelAnimation === \"spec\") {\n return (\n <motion.div\n className={cn(\n \"pointer-events-none absolute z-50 flex flex-col items-center justify-center rounded-md px-3 py-1.5 text-xs shadow-xl\",\n labelPositionClassSpec,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor && !labelTextColor && labelColorClass\n )}\n data-orientation={orientation}\n initial={\n showLabel === \"always\"\n ? { opacity: 1, y: -5, scale: 1 }\n : { opacity: 0, y: 20, scale: 0 }\n }\n animate={\n (isHovered && showLabel === \"hover\") || showLabel === \"always\"\n ? {\n opacity: 1,\n y: -5,\n scale: 1,\n }\n : {\n opacity: 0,\n y: 20,\n scale: 0,\n }\n }\n transition={{\n type: \"tween\",\n duration: 0.2,\n ease: \"easeOut\",\n }}\n style={{\n x: labelOffset,\n rotate: labelRotate,\n whiteSpace: \"nowrap\",\n }}\n >\n <div className=\"relative z-1\">\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n </div>\n {labelArrow && (\n <div\n className={cn(\n \"arrow absolute border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </motion.div>\n );\n }\n\n // Standard or number-flow animation\n return (\n <Badge\n size=\"lg\"\n color={\n labelColor || labelTextColor\n ? \"custom\"\n : color === \"glass\"\n ? \"custom\"\n : color === \"muted\"\n ? \"muted\"\n : color === \"accent\"\n ? \"accent\"\n : color\n }\n variant=\"solid\"\n className={cn(\n \"transition-transform absolute px-3 rounded-md\",\n labelPositionClass.badge,\n labelVisibilityClass,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor &&\n !labelTextColor &&\n color === \"glass\" &&\n \"bg-white/15 text-foreground backdrop-blur-sm shadow-lg [&>div.arrow]:border-t-white/15\"\n )}\n >\n {labelAnimation === \"number-flow\" ? (\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n ) : (\n <span>{labelFormatter(_values[index])}</span>\n )}\n {labelArrow && (\n <div\n className={cn(\n \"arrow absolute border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </Badge>\n );\n },\n [\n labelAnimation,\n labelPositionClassSpec,\n labelColor,\n labelTextColor,\n labelColorClass,\n orientation,\n showLabel,\n labelOffset,\n labelRotate,\n labelFormatter,\n _values,\n color,\n labelPositionClass,\n labelVisibilityClass,\n labelArrow,\n arrowColorClass,\n isHovered,\n ]\n );\n\n // Render without label - use custom slider with color\n if (!showLabel) {\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"block shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n }\n\n // Render with label (standard, number-flow, or spec animation)\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"group block shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {renderLabel(index)}\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n"],"names":["COLOR_CONFIG","SIZE_CONFIG","getArrowDirection","orientation","position","getArrowColorClass","color","direction","prefix","getLabelPositionClasses","getSpecLabelPositionClass","Slider","React","className","size","showLabel","labelArrow","labelAnimation","labelFormatter","value","labelPosition","labelColor","labelTextColor","labelArrowColor","sliderColor","thumbBorderColor","defaultValue","min","max","props","ref","_values","isHovered","setIsHovered","thumbPosition","useMotionValue","thumbVelocity","prevThumbPosition","springConfig","labelOffset","useSpring","labelRotate","currentPos","velocity","maxVelocity","cappedVelocity","offsetAmount","rotateAmount","sliderColorClass","useMemo","config","sliderSizeClass","labelColorClass","cn","arrowColor","arrowColorClass","labelVisibilityClass","labelPositionClass","labelPositionClassSpec","renderLabel","index","jsxs","motion","jsx","NumberFlow","Badge","SliderPrimitive","_"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { motion, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport NumberFlow from \"@number-flow/react\";\nimport type { BasicColor } from \"@/types/variables\";\nimport { Badge } from \"../Badge\";\n\ntype LabelAnimation = \"number-flow\" | \"spec\" | \"none\";\ntype LabelDisplay = false | \"hover\" | \"always\";\ntype SliderColor = BasicColor | \"muted\" | \"accent\";\ntype SliderSize = \"sm\" | \"md\" | \"lg\";\ntype LabelPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type SliderProps = Omit<\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>,\n \"color\" | \"defaultValue\" | \"value\" | \"min\" | \"max\"\n> & {\n color?: SliderColor;\n size?: SliderSize;\n showLabel?: LabelDisplay;\n labelArrow?: boolean;\n labelAnimation?: LabelAnimation;\n labelFormatter?: (value: number) => string;\n labelPosition?: LabelPosition;\n labelColor?: string;\n labelTextColor?: string;\n labelArrowColor?: string;\n sliderColor?: string;\n thumbBorderColor?: string;\n defaultValue?: number[];\n value?: number[];\n min?: number;\n max?: number;\n};\n\n// Color mapping configuration\nconst COLOR_CONFIG: Record<\n SliderColor,\n {\n range: string;\n thumb: string;\n labelBg: string;\n labelText: string;\n }\n> = {\n primary: {\n range: \"bg-primary\",\n thumb: \"border-primary/50\",\n labelBg: \"bg-primary\",\n labelText: \"text-primary-foreground\",\n },\n secondary: {\n range: \"bg-secondary\",\n thumb: \"border-secondary/50\",\n labelBg: \"bg-secondary\",\n labelText: \"text-secondary-foreground\",\n },\n success: {\n range: \"bg-success\",\n thumb: \"border-success/50\",\n labelBg: \"bg-success\",\n labelText: \"text-success-foreground\",\n },\n warning: {\n range: \"bg-warning\",\n thumb: \"border-warning/50\",\n labelBg: \"bg-warning\",\n labelText: \"text-warning-foreground\",\n },\n error: {\n range: \"bg-error\",\n thumb: \"border-error/50\",\n labelBg: \"bg-error\",\n labelText: \"text-error-foreground\",\n },\n glass: {\n range: \"bg-white/30 backdrop-blur-sm\",\n thumb: \"border-white/30 backdrop-blur-sm\",\n labelBg: \"bg-white/15\",\n labelText: \"text-foreground\",\n },\n muted: {\n range: \"bg-muted-foreground\",\n thumb: \"border-muted-foreground/50\",\n labelBg: \"bg-muted\",\n labelText: \"text-muted-foreground\",\n },\n accent: {\n range: \"bg-accent\",\n thumb: \"border-accent/50\",\n labelBg: \"bg-accent\",\n labelText: \"text-accent-foreground\",\n },\n};\n\n// Size configuration\nconst SIZE_CONFIG: Record<\n SliderSize,\n {\n track: string;\n thumb: string;\n }\n> = {\n sm: {\n track: \"data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1\",\n thumb: \"size-3\",\n },\n md: {\n track:\n \"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n thumb: \"size-4\",\n },\n lg: {\n track: \"data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2\",\n thumb: \"size-5\",\n },\n};\n\n// Helper to get arrow direction based on orientation and position\nconst getArrowDirection = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): \"top\" | \"bottom\" | \"left\" | \"right\" => {\n if (orientation === \"horizontal\") {\n if (position === \"bottom\") return \"bottom\";\n if (position === \"left\") return \"left\";\n if (position === \"right\") return \"right\";\n return \"top\";\n }\n // vertical\n if (position === \"right\") return \"right\";\n if (position === \"top\") return \"top\";\n if (position === \"bottom\") return \"bottom\";\n return \"left\";\n};\n\n// Helper to get arrow color class\nconst getArrowColorClass = (\n color: SliderColor,\n direction: \"top\" | \"bottom\" | \"left\" | \"right\"\n): string => {\n // Generate full border class (e.g., \"border-t-primary\")\n const prefix =\n direction === \"top\"\n ? \"t\"\n : direction === \"bottom\"\n ? \"b\"\n : direction === \"left\"\n ? \"l\"\n : \"r\";\n const colorMap: Record<SliderColor, string> = {\n primary: `border-${prefix}-primary`,\n secondary: `border-${prefix}-secondary`,\n success: `border-${prefix}-success`,\n warning: `border-${prefix}-warning`,\n error: `border-${prefix}-error`,\n glass: `border-${prefix}-white/15`,\n muted: `border-${prefix}-muted`,\n accent: `border-${prefix}-accent`,\n };\n\n return colorMap[color];\n};\n\n// Helper to get label position classes\nconst getLabelPositionClasses = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): { badge: string; arrow: string } => {\n const positions: Record<string, { badge: string; arrow: string }> = {\n \"horizontal-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"horizontal-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"vertical-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n };\n\n return positions[`${orientation}-${position}`];\n};\n\n// Helper to get spec label position classes\nconst getSpecLabelPositionClass = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): string => {\n const positions: Record<string, string> = {\n \"horizontal-top\":\n \"data-[orientation=horizontal]:bottom-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:-translate-y-1/2\",\n \"horizontal-bottom\":\n \"data-[orientation=horizontal]:top-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:translate-y-1/2\",\n \"horizontal-left\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:right-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:-translate-x-1/2\",\n \"horizontal-right\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:translate-x-1/2\",\n \"vertical-left\":\n \"data-[orientation=vertical]:right-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-right\":\n \"data-[orientation=vertical]:left-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-top\":\n \"data-[orientation=vertical]:bottom-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-bottom\":\n \"data-[orientation=vertical]:top-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:translate-y-1/2\",\n };\n\n return positions[`${orientation}-${position}`];\n};\n\nconst Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n className,\n color = \"primary\",\n size = \"md\",\n showLabel = false,\n labelArrow = false,\n labelAnimation = \"none\",\n labelFormatter = (value) => `${value}`,\n labelPosition = \"top\",\n labelColor,\n labelTextColor,\n labelArrowColor,\n sliderColor,\n thumbBorderColor,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n },\n ref\n ) => {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n // State for hover detection\n const [isHovered, setIsHovered] = React.useState(false);\n React.useEffect(() => {\n if (value !== undefined && !Array.isArray(value)) {\n console.error(\n \"[Slider] value prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n if (defaultValue !== undefined && !Array.isArray(defaultValue)) {\n console.error(\n \"[Slider] defaultValue prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n }, [value, defaultValue]);\n\n const orientation = props.orientation || \"horizontal\";\n\n // For spec animation - track thumb position and velocity\n const thumbPosition = useMotionValue(0);\n const thumbVelocity = useMotionValue(0);\n const prevThumbPosition = React.useRef(0);\n\n // Spring physics for label following effect - more dramatic\n const springConfig = { stiffness: 150, damping: 15, mass: 1 };\n const labelOffset = useSpring(0, springConfig);\n const labelRotate = useSpring(0, springConfig);\n\n // Track value changes to calculate velocity\n React.useEffect(() => {\n if (labelAnimation === \"spec\" && _values.length > 0) {\n const currentPos = _values[0];\n const velocity = currentPos - prevThumbPosition.current;\n\n // Cap velocity to prevent large jumps (e.g., on click or initial load)\n const maxVelocity = 5; // Maximum velocity threshold\n const cappedVelocity = Math.max(\n -maxVelocity,\n Math.min(maxVelocity, velocity)\n );\n\n // Update velocity and position\n thumbVelocity.set(cappedVelocity);\n thumbPosition.set(currentPos);\n\n // Calculate offset and rotation based on capped velocity\n // Negative velocity (moving left) -> positive offset (label lags behind to the right)\n const offsetAmount = -cappedVelocity * 12;\n const rotateAmount = -cappedVelocity * 20;\n\n labelOffset.set(offsetAmount);\n labelRotate.set(rotateAmount);\n\n // Reset to center when stopped\n setTimeout(() => {\n labelOffset.set(0);\n labelRotate.set(0);\n }, 100);\n\n prevThumbPosition.current = currentPos;\n }\n }, [\n _values,\n labelAnimation,\n thumbVelocity,\n thumbPosition,\n labelOffset,\n labelRotate,\n ]);\n\n // Memoized computed values\n const sliderColorClass = useMemo(() => {\n if (sliderColor || thumbBorderColor) {\n return {\n range: sliderColor || \"bg-primary\",\n thumb: thumbBorderColor || \"border-primary/50\",\n };\n }\n const config = COLOR_CONFIG[color];\n return {\n range: config.range,\n thumb: config.thumb,\n };\n }, [color, sliderColor, thumbBorderColor]);\n\n const sliderSizeClass = useMemo(() => SIZE_CONFIG[size], [size]);\n\n const labelColorClass = useMemo(() => {\n if (labelColor || labelTextColor) {\n return cn(labelColor, labelTextColor);\n }\n\n const config = COLOR_CONFIG[color];\n const direction = getArrowDirection(orientation, labelPosition);\n const arrowColor = getArrowColorClass(color, direction);\n\n if (color === \"glass\") {\n return `${config.labelBg} ${config.labelText} backdrop-blur-sm shadow-lg [&>div.arrow]:${arrowColor}`;\n }\n\n return `${config.labelBg} ${config.labelText} [&>div.arrow]:${arrowColor}`;\n }, [color, labelPosition, orientation, labelColor, labelTextColor]);\n\n const arrowColorClass = useMemo(() => {\n if (labelArrowColor) return labelArrowColor;\n const direction = getArrowDirection(orientation, labelPosition);\n return getArrowColorClass(color, direction);\n }, [color, labelPosition, orientation, labelArrowColor]);\n\n const labelVisibilityClass = useMemo(() => {\n if (showLabel === \"hover\") return \"scale-0 group-hover:scale-100\";\n if (showLabel === \"always\") return \"scale-100\";\n return \"hidden\";\n }, [showLabel]);\n\n const labelPositionClass = useMemo(\n () => getLabelPositionClasses(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n const labelPositionClassSpec = useMemo(\n () => getSpecLabelPositionClass(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n // Render label based on animation type\n const renderLabel = React.useCallback(\n (index: number) => {\n if (labelAnimation === \"spec\") {\n return (\n <motion.div\n className={cn(\n \"ds:pointer-events-none ds:absolute ds:z-50 ds:flex ds:flex-col ds:items-center ds:justify-center ds:rounded-md ds:px-3 ds:py-1.5 ds:text-xs ds:shadow-xl\",\n labelPositionClassSpec,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor && !labelTextColor && labelColorClass\n )}\n data-orientation={orientation}\n initial={\n showLabel === \"always\"\n ? { opacity: 1, y: -5, scale: 1 }\n : { opacity: 0, y: 20, scale: 0 }\n }\n animate={\n (isHovered && showLabel === \"hover\") || showLabel === \"always\"\n ? {\n opacity: 1,\n y: -5,\n scale: 1,\n }\n : {\n opacity: 0,\n y: 20,\n scale: 0,\n }\n }\n transition={{\n type: \"tween\",\n duration: 0.2,\n ease: \"easeOut\",\n }}\n style={{\n x: labelOffset,\n rotate: labelRotate,\n whiteSpace: \"nowrap\",\n }}\n >\n <div className=\"ds:relative ds:z-1\">\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n </div>\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </motion.div>\n );\n }\n\n // Standard or number-flow animation\n return (\n <Badge\n size=\"lg\"\n color={\n labelColor || labelTextColor\n ? \"custom\"\n : color === \"glass\"\n ? \"custom\"\n : color === \"muted\"\n ? \"muted\"\n : color === \"accent\"\n ? \"accent\"\n : color\n }\n variant=\"solid\"\n className={cn(\n \"ds:transition-transform ds:absolute ds:px-3 ds:rounded-md\",\n labelPositionClass.badge,\n labelVisibilityClass,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor &&\n !labelTextColor &&\n color === \"glass\" &&\n \"ds:bg-white/15 ds:text-foreground ds:backdrop-blur-sm ds:shadow-lg ds:[&>div.arrow]:border-t-white/15\"\n )}\n >\n {labelAnimation === \"number-flow\" ? (\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n ) : (\n <span>{labelFormatter(_values[index])}</span>\n )}\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </Badge>\n );\n },\n [\n labelAnimation,\n labelPositionClassSpec,\n labelColor,\n labelTextColor,\n labelColorClass,\n orientation,\n showLabel,\n labelOffset,\n labelRotate,\n labelFormatter,\n _values,\n color,\n labelPositionClass,\n labelVisibilityClass,\n labelArrow,\n arrowColorClass,\n isHovered,\n ]\n );\n\n // Render without label - use custom slider with color\n if (!showLabel) {\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n }\n\n // Render with label (standard, number-flow, or spec animation)\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:group ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {renderLabel(index)}\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n"],"names":["COLOR_CONFIG","SIZE_CONFIG","getArrowDirection","orientation","position","getArrowColorClass","color","direction","prefix","getLabelPositionClasses","getSpecLabelPositionClass","Slider","React","className","size","showLabel","labelArrow","labelAnimation","labelFormatter","value","labelPosition","labelColor","labelTextColor","labelArrowColor","sliderColor","thumbBorderColor","defaultValue","min","max","props","ref","_values","isHovered","setIsHovered","thumbPosition","useMotionValue","thumbVelocity","prevThumbPosition","springConfig","labelOffset","useSpring","labelRotate","currentPos","velocity","maxVelocity","cappedVelocity","offsetAmount","rotateAmount","sliderColorClass","useMemo","config","sliderSizeClass","labelColorClass","cn","arrowColor","arrowColorClass","labelVisibilityClass","labelPositionClass","labelPositionClassSpec","renderLabel","index","jsxs","motion","jsx","NumberFlow","Badge","SliderPrimitive","_"],"mappings":"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"}
|