@sth87/shadcn-design-system 0.1.9 → 0.2.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/AI_README.md +114 -51
- package/README.md +83 -27
- package/dist/AI_CONTEXT.md +51 -52
- package/dist/cjs/_virtual/_commonjsHelpers.cjs +0 -1
- package/dist/cjs/_virtual/index.cjs +0 -1
- package/dist/cjs/_virtual/index2.cjs +0 -1
- package/dist/cjs/components/Accordion/Accordion.cjs +0 -1
- package/dist/cjs/components/Accordion/index.cjs +1 -0
- package/dist/cjs/components/Avatar/Avatar.cjs +1 -2
- package/dist/cjs/components/Avatar/index.cjs +1 -0
- package/dist/cjs/components/Badge/Badge.cjs +0 -1
- package/dist/cjs/components/Badge/index.cjs +1 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +0 -1
- package/dist/cjs/components/Breadcrumb/index.cjs +1 -0
- package/dist/cjs/components/Button/Button.cjs +0 -1
- package/dist/cjs/components/Button/ButtonGroup.cjs +0 -1
- package/dist/cjs/components/Button/index.cjs +1 -0
- package/dist/cjs/components/Calendar/Calendar.cjs +1 -2
- package/dist/cjs/components/Calendar/index.cjs +1 -0
- package/dist/cjs/components/Carousel/Carousel.cjs +0 -1
- package/dist/cjs/components/Carousel/index.cjs +1 -0
- package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -2
- package/dist/cjs/components/Checkbox/index.cjs +1 -0
- package/dist/cjs/components/Collapsible/Collapsible.cjs +0 -1
- package/dist/cjs/components/Collapsible/index.cjs +1 -0
- package/dist/cjs/components/Command/Command.cjs +0 -1
- package/dist/cjs/components/Command/index.cjs +0 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs +0 -1
- package/dist/cjs/components/ContextMenu/index.cjs +0 -1
- package/dist/cjs/components/Cropper/Cropper.cjs +1 -2
- package/dist/cjs/components/Cropper/CropperTool.cjs +0 -1
- package/dist/cjs/components/Cropper/index.cjs +1 -0
- package/dist/cjs/components/Cropper/utils.cjs +0 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -2
- package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -2
- package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -2
- package/dist/cjs/components/DatePicker/index.cjs +1 -0
- package/dist/cjs/components/Dialog/Dialog.cjs +0 -1
- package/dist/cjs/components/Dialog/index.cjs +1 -0
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +0 -1
- package/dist/cjs/components/DropdownMenu/index.cjs +0 -1
- package/dist/cjs/components/FloatLabel.cjs +0 -1
- package/dist/cjs/components/Glass/Glass.cjs +1 -2
- package/dist/cjs/components/Glass/index.cjs +1 -0
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -2
- package/dist/cjs/components/ImageViewer/index.cjs +1 -0
- package/dist/cjs/components/Input/Input.cjs +1 -2
- package/dist/cjs/components/Input/index.cjs +1 -0
- package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -2
- package/dist/cjs/components/InputOTP/index.cjs +1 -0
- package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -2
- package/dist/cjs/components/Interactive/index.cjs +1 -0
- package/dist/cjs/components/Label/index.cjs +1 -0
- package/dist/cjs/components/Marquee/Marquee.cjs +1 -2
- package/dist/cjs/components/Marquee/MarqueeWrapper.cjs +0 -1
- package/dist/cjs/components/Marquee/index.cjs +0 -1
- package/dist/cjs/components/Masonry/Masonry.cjs +1 -2
- package/dist/cjs/components/Masonry/MasonryWrapper.cjs +0 -1
- package/dist/cjs/components/Masonry/index.cjs +1 -0
- package/dist/cjs/components/Pagination/Pagination.cjs +0 -1
- package/dist/cjs/components/Pagination/index.cjs +0 -1
- package/dist/cjs/components/Popover/Popover.cjs +0 -1
- package/dist/cjs/components/Popover/index.cjs +1 -2
- package/dist/cjs/components/QrCode/QrCode.cjs +1 -2
- package/dist/cjs/components/QrCode/index.cjs +0 -1
- package/dist/cjs/components/Radio/Radio.cjs +1 -2
- package/dist/cjs/components/Radio/index.cjs +1 -0
- package/dist/cjs/components/Rate/Rate.cjs +0 -1
- package/dist/cjs/components/Rate/index.cjs +1 -0
- package/dist/cjs/components/Resizable/Resizable.cjs +0 -1
- package/dist/cjs/components/Resizable/index.cjs +1 -0
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs +0 -1
- package/dist/cjs/components/ScrollArea/index.cjs +1 -0
- package/dist/cjs/components/Select/Select.cjs +1 -2
- package/dist/cjs/components/Select/index.cjs +1 -0
- package/dist/cjs/components/Separator/Separator.cjs +0 -1
- package/dist/cjs/components/Separator/index.cjs +1 -0
- package/dist/cjs/components/Sheet/Sheet.cjs +0 -1
- package/dist/cjs/components/Sheet/index.cjs +1 -0
- package/dist/cjs/components/Sidebar/Sidebar.cjs +0 -1
- package/dist/cjs/components/Sidebar/index.cjs +1 -0
- package/dist/cjs/components/Skeleton/Skeleton.cjs +0 -1
- package/dist/cjs/components/Skeleton/index.cjs +1 -0
- package/dist/cjs/components/Slider/Slider.cjs +0 -1
- package/dist/cjs/components/Slider/index.cjs +1 -0
- package/dist/cjs/components/Stepper/Stepper.cjs +1 -2
- package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -2
- package/dist/cjs/components/Stepper/index.cjs +0 -1
- package/dist/cjs/components/Switch/Switch.cjs +0 -1
- package/dist/cjs/components/Switch/index.cjs +1 -0
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -2
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -2
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -2
- package/dist/cjs/components/Table/data-table-column-header.cjs +1 -2
- package/dist/cjs/components/Table/data-table-pagination.cjs +1 -2
- package/dist/cjs/components/Table/data-table-toolbar.cjs +1 -2
- package/dist/cjs/components/Table/data-table-view-options.cjs +1 -2
- package/dist/cjs/components/Table/data-table.cjs +1 -2
- package/dist/cjs/components/Table/index.cjs +1 -0
- package/dist/cjs/components/Table/select-column.cjs +0 -1
- package/dist/cjs/components/Tabs/Tabs.cjs +1 -2
- package/dist/cjs/components/Tabs/classes.cjs +1 -2
- package/dist/cjs/components/Tabs/index.cjs +1 -0
- package/dist/cjs/components/Textarea/Textarea.cjs +1 -2
- package/dist/cjs/components/Textarea/index.cjs +1 -0
- package/dist/cjs/components/TimeGridView.cjs +1 -2
- package/dist/cjs/components/Toast/Toast.cjs +1 -2
- package/dist/cjs/components/Toast/index.cjs +1 -0
- package/dist/cjs/components/Toggle/Toggle.cjs +0 -1
- package/dist/cjs/components/Toggle/index.cjs +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -2
- package/dist/cjs/components/Tooltip/index.cjs +1 -0
- package/dist/cjs/components/Tour/Tour.cjs +1 -2
- package/dist/cjs/components/Tour/TourWrapper.cjs +0 -1
- package/dist/cjs/components/Tour/index.cjs +0 -1
- package/dist/cjs/components/TreeSelect/TreeSelect.cjs +0 -1
- package/dist/cjs/components/TreeSelect/index.cjs +1 -0
- package/dist/cjs/components/Upload/Upload.cjs +0 -1
- package/dist/cjs/components/Upload/index.cjs +1 -0
- package/dist/cjs/components/WheelColumn.cjs +1 -2
- package/dist/cjs/config/data-table.cjs +0 -1
- package/dist/cjs/constants/common.cjs +0 -1
- package/dist/cjs/hooks/index.cjs +1 -0
- package/dist/cjs/hooks/use-callback-ref.cjs +0 -1
- package/dist/cjs/hooks/use-data-table.cjs +1 -2
- package/dist/cjs/hooks/use-debounced-callback.cjs +1 -2
- package/dist/cjs/hooks/use-debounced-value.cjs +1 -2
- package/dist/cjs/hooks/use-event-listener.cjs +1 -2
- package/dist/cjs/hooks/use-intersection-observer.cjs +0 -1
- package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs +0 -1
- package/dist/cjs/hooks/use-media-query.cjs +1 -2
- package/dist/cjs/hooks/use-mouse-position.cjs +1 -0
- package/dist/cjs/hooks/use-on-click-outside.cjs +1 -2
- package/dist/cjs/hooks/use-script.cjs +0 -1
- package/dist/cjs/hooks/use-scroll-lock.cjs +1 -2
- package/dist/cjs/index.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/BlurText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/CircularText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/RollingText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/SplittingText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -2
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/TypingText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/WritingText.cjs +0 -1
- package/dist/cjs/lib/TextAnimation/index.cjs +1 -0
- package/dist/cjs/lib/utils.cjs +1 -0
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.cjs +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs +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/node_modules/nuqs/dist/server.cjs +0 -1
- package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/accordion.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/avatar.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/badge.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/button-group.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/button.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/calendar.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/checkbox.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/collapsible.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -2
- package/dist/cjs/packages/ui/src/components/command.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/context-menu.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/dialog.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/drawer.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/input-otp.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/input.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/label.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/pagination.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/popover.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/radio-group.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/resizable.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/scroll-area.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/select.cjs +1 -2
- package/dist/cjs/packages/ui/src/components/separator.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/sheet.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/sidebar.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/skeleton.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/switch.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/table.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/tabs.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/textarea.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/toggle.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/tooltip.cjs +0 -1
- package/dist/cjs/packages/ui/src/components/tree-view.cjs +0 -1
- package/dist/cjs/packages/ui/src/hooks/use-mobile.cjs +0 -1
- package/dist/cjs/packages/ui/src/lib/compose-refs.cjs +0 -1
- package/dist/cjs/packages/ui/src/lib/utils.cjs +0 -1
- package/dist/cjs/utils/animations.cjs +1 -2
- package/dist/cjs/utils/css.cjs +0 -1
- package/dist/cjs/utils/data-table.cjs +0 -1
- package/dist/cjs/utils/datetime.cjs +0 -1
- package/dist/cjs/utils/parsers.cjs +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +0 -1
- package/dist/esm/_virtual/index.js +0 -1
- package/dist/esm/_virtual/index2.js +0 -1
- package/dist/esm/components/Accordion/Accordion.js +0 -1
- package/dist/esm/components/Accordion/index.js +9 -0
- package/dist/esm/components/Avatar/Avatar.js +32 -63
- package/dist/esm/components/Avatar/index.js +4 -0
- package/dist/esm/components/Badge/Badge.js +0 -1
- package/dist/esm/components/Badge/index.js +5 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.js +0 -1
- package/dist/esm/components/Breadcrumb/index.js +5 -0
- package/dist/esm/components/Button/Button.js +0 -1
- package/dist/esm/components/Button/ButtonGroup.js +0 -1
- package/dist/esm/components/Button/index.js +10 -0
- package/dist/esm/components/Calendar/Calendar.js +25 -57
- package/dist/esm/components/Calendar/index.js +5 -0
- package/dist/esm/components/Carousel/Carousel.js +0 -1
- package/dist/esm/components/Carousel/index.js +6 -0
- package/dist/esm/components/Checkbox/Checkbox.js +29 -58
- package/dist/esm/components/Checkbox/index.js +5 -0
- package/dist/esm/components/Collapsible/Collapsible.js +0 -1
- package/dist/esm/components/Collapsible/index.js +5 -0
- package/dist/esm/components/Command/Command.js +0 -1
- package/dist/esm/components/Command/index.js +0 -1
- package/dist/esm/components/ContextMenu/ContextMenu.js +0 -1
- package/dist/esm/components/ContextMenu/index.js +0 -1
- package/dist/esm/components/Cropper/Cropper.js +261 -292
- package/dist/esm/components/Cropper/CropperTool.js +0 -1
- package/dist/esm/components/Cropper/index.js +17 -0
- package/dist/esm/components/Cropper/utils.js +0 -1
- package/dist/esm/components/DatePicker/DatePicker.js +94 -122
- package/dist/esm/components/DatePicker/RangePicker.js +202 -230
- package/dist/esm/components/DatePicker/TimePicker.js +63 -92
- package/dist/esm/components/DatePicker/index.js +8 -0
- package/dist/esm/components/Dialog/Dialog.js +0 -1
- package/dist/esm/components/Dialog/index.js +5 -0
- package/dist/esm/components/DropdownMenu/DropdownMenu.js +0 -1
- package/dist/esm/components/DropdownMenu/index.js +0 -1
- package/dist/esm/components/FloatLabel.js +0 -1
- package/dist/esm/components/Glass/Glass.js +7 -39
- package/dist/esm/components/Glass/index.js +5 -0
- package/dist/esm/components/ImageViewer/ImageViewer.js +95 -126
- package/dist/esm/components/ImageViewer/index.js +7 -0
- package/dist/esm/components/Input/Input.js +0 -1
- package/dist/esm/components/Input/index.js +5 -0
- package/dist/esm/components/InputOTP/InputOTP.js +28 -58
- package/dist/esm/components/InputOTP/index.js +5 -0
- package/dist/esm/components/Interactive/CursorFollow.js +90 -122
- package/dist/esm/components/Interactive/index.js +9 -0
- package/dist/esm/components/Label/index.js +4 -0
- package/dist/esm/components/Marquee/Marquee.js +78 -109
- package/dist/esm/components/Marquee/MarqueeWrapper.js +0 -1
- package/dist/esm/components/Marquee/index.js +0 -1
- package/dist/esm/components/Masonry/Masonry.js +67 -100
- package/dist/esm/components/Masonry/MasonryWrapper.js +0 -1
- package/dist/esm/components/Masonry/index.js +10 -0
- package/dist/esm/components/Pagination/Pagination.js +0 -1
- package/dist/esm/components/Pagination/index.js +0 -1
- package/dist/esm/components/Popover/Popover.js +0 -1
- package/dist/esm/components/Popover/index.js +3 -3
- package/dist/esm/components/QrCode/QrCode.js +126 -157
- package/dist/esm/components/QrCode/index.js +0 -1
- package/dist/esm/components/Radio/Radio.js +36 -67
- package/dist/esm/components/Radio/index.js +5 -0
- package/dist/esm/components/Rate/Rate.js +0 -1
- package/dist/esm/components/Rate/index.js +5 -0
- package/dist/esm/components/Resizable/Resizable.js +0 -1
- package/dist/esm/components/Resizable/index.js +13 -0
- package/dist/esm/components/ScrollArea/ScrollArea.js +0 -1
- package/dist/esm/components/ScrollArea/index.js +5 -0
- package/dist/esm/components/Select/Select.js +0 -1
- package/dist/esm/components/Select/index.js +5 -0
- package/dist/esm/components/Separator/Separator.js +0 -1
- package/dist/esm/components/Separator/index.js +5 -0
- package/dist/esm/components/Sheet/Sheet.js +0 -1
- package/dist/esm/components/Sheet/index.js +5 -0
- package/dist/esm/components/Sidebar/Sidebar.js +0 -1
- package/dist/esm/components/Sidebar/index.js +29 -0
- package/dist/esm/components/Skeleton/Skeleton.js +0 -1
- package/dist/esm/components/Skeleton/index.js +5 -0
- package/dist/esm/components/Slider/Slider.js +0 -1
- package/dist/esm/components/Slider/index.js +5 -0
- package/dist/esm/components/Stepper/Stepper.js +72 -102
- package/dist/esm/components/Stepper/StepperWrapper.js +42 -74
- package/dist/esm/components/Stepper/index.js +0 -1
- package/dist/esm/components/Switch/Switch.js +0 -1
- package/dist/esm/components/Switch/index.js +5 -0
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +2 -3
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +12 -13
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +66 -97
- package/dist/esm/components/Table/data-table-column-header.js +41 -73
- package/dist/esm/components/Table/data-table-pagination.js +30 -63
- package/dist/esm/components/Table/data-table-toolbar.js +43 -74
- package/dist/esm/components/Table/data-table-view-options.js +85 -116
- package/dist/esm/components/Table/data-table.js +52 -85
- package/dist/esm/components/Table/index.js +20 -0
- package/dist/esm/components/Table/select-column.js +0 -1
- package/dist/esm/components/Tabs/Tabs.js +0 -1
- package/dist/esm/components/Tabs/classes.js +23 -57
- package/dist/esm/components/Tabs/index.js +5 -0
- package/dist/esm/components/Textarea/Textarea.js +0 -1
- package/dist/esm/components/Textarea/index.js +5 -0
- package/dist/esm/components/TimeGridView.js +33 -65
- package/dist/esm/components/Toast/Toast.js +39 -71
- package/dist/esm/components/Toast/index.js +6 -0
- package/dist/esm/components/Toggle/Toggle.js +0 -1
- package/dist/esm/components/Toggle/index.js +5 -0
- package/dist/esm/components/Tooltip/Tooltip.js +34 -65
- package/dist/esm/components/Tooltip/index.js +4 -0
- package/dist/esm/components/Tour/Tour.js +331 -361
- package/dist/esm/components/Tour/TourWrapper.js +0 -1
- package/dist/esm/components/Tour/index.js +0 -1
- package/dist/esm/components/TreeSelect/TreeSelect.js +0 -1
- package/dist/esm/components/TreeSelect/index.js +5 -0
- package/dist/esm/components/Upload/Upload.js +0 -1
- package/dist/esm/components/Upload/index.js +4 -0
- package/dist/esm/components/WheelColumn.js +37 -69
- package/dist/esm/config/data-table.js +0 -1
- package/dist/esm/constants/common.js +0 -1
- package/dist/esm/hooks/index.js +26 -0
- package/dist/esm/hooks/use-callback-ref.js +0 -1
- package/dist/esm/hooks/use-data-table.js +0 -1
- package/dist/esm/hooks/use-debounced-callback.js +0 -1
- package/dist/esm/hooks/use-debounced-value.js +0 -1
- package/dist/esm/hooks/use-event-listener.js +0 -1
- package/dist/esm/hooks/use-intersection-observer.js +0 -1
- package/dist/esm/hooks/use-isomorphic-layout-effect.js +0 -1
- package/dist/esm/hooks/use-media-query.js +0 -1
- package/dist/esm/hooks/use-mouse-position.js +27 -0
- package/dist/esm/hooks/use-on-click-outside.js +0 -1
- package/dist/esm/hooks/use-script.js +0 -1
- package/dist/esm/hooks/use-scroll-lock.js +0 -1
- package/dist/esm/index.js +241 -268
- package/dist/esm/lib/TextAnimation/BlurText.js +0 -1
- package/dist/esm/lib/TextAnimation/CircularText.js +0 -1
- package/dist/esm/lib/TextAnimation/FlipWords.js +28 -60
- package/dist/esm/lib/TextAnimation/GradientText.js +26 -58
- package/dist/esm/lib/TextAnimation/RollingText.js +0 -1
- package/dist/esm/lib/TextAnimation/RotatingText.js +27 -59
- package/dist/esm/lib/TextAnimation/ShimmeringText.js +26 -58
- package/dist/esm/lib/TextAnimation/SplittingText.js +0 -1
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +29 -61
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js +0 -1
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js +0 -1
- package/dist/esm/lib/TextAnimation/TypingText.js +0 -1
- package/dist/esm/lib/TextAnimation/WritingText.js +0 -1
- package/dist/esm/lib/TextAnimation/index.js +28 -0
- package/dist/esm/lib/utils.js +12 -0
- package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.js +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +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 +0 -1
- package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js +0 -1
- package/dist/esm/packages/ui/src/components/accordion.js +0 -1
- package/dist/esm/packages/ui/src/components/alert-dialog.js +0 -1
- package/dist/esm/packages/ui/src/components/avatar.js +0 -1
- package/dist/esm/packages/ui/src/components/badge.js +0 -1
- package/dist/esm/packages/ui/src/components/breadcrumb.js +0 -1
- package/dist/esm/packages/ui/src/components/button-group.js +0 -1
- package/dist/esm/packages/ui/src/components/button.js +0 -1
- package/dist/esm/packages/ui/src/components/calendar.js +0 -1
- package/dist/esm/packages/ui/src/components/checkbox.js +0 -1
- package/dist/esm/packages/ui/src/components/collapsible.js +0 -1
- package/dist/esm/packages/ui/src/components/combobox.js +96 -81
- package/dist/esm/packages/ui/src/components/command.js +0 -1
- package/dist/esm/packages/ui/src/components/context-menu.js +0 -1
- package/dist/esm/packages/ui/src/components/dialog.js +0 -1
- package/dist/esm/packages/ui/src/components/drawer.js +0 -1
- package/dist/esm/packages/ui/src/components/dropdown-menu.js +0 -1
- package/dist/esm/packages/ui/src/components/input-otp.js +0 -1
- package/dist/esm/packages/ui/src/components/input.js +0 -1
- package/dist/esm/packages/ui/src/components/label.js +0 -1
- package/dist/esm/packages/ui/src/components/pagination.js +0 -1
- package/dist/esm/packages/ui/src/components/popover.js +0 -1
- package/dist/esm/packages/ui/src/components/radio-group.js +0 -1
- package/dist/esm/packages/ui/src/components/resizable.js +0 -1
- package/dist/esm/packages/ui/src/components/scroll-area.js +0 -1
- package/dist/esm/packages/ui/src/components/select.js +89 -83
- package/dist/esm/packages/ui/src/components/separator.js +0 -1
- package/dist/esm/packages/ui/src/components/sheet.js +0 -1
- package/dist/esm/packages/ui/src/components/sidebar.js +0 -1
- package/dist/esm/packages/ui/src/components/skeleton.js +0 -1
- package/dist/esm/packages/ui/src/components/switch.js +0 -1
- package/dist/esm/packages/ui/src/components/table.js +0 -1
- package/dist/esm/packages/ui/src/components/tabs.js +0 -1
- package/dist/esm/packages/ui/src/components/textarea.js +0 -1
- package/dist/esm/packages/ui/src/components/toggle.js +0 -1
- package/dist/esm/packages/ui/src/components/tooltip.js +0 -1
- package/dist/esm/packages/ui/src/components/tree-view.js +1 -2
- package/dist/esm/packages/ui/src/hooks/use-mobile.js +0 -1
- package/dist/esm/packages/ui/src/lib/compose-refs.js +0 -1
- package/dist/esm/packages/ui/src/lib/utils.js +0 -1
- package/dist/esm/utils/animations.js +40 -73
- package/dist/esm/utils/css.js +0 -1
- package/dist/esm/utils/data-table.js +0 -1
- package/dist/esm/utils/datetime.js +0 -1
- package/dist/esm/utils/parsers.js +0 -1
- package/dist/types/components/Accordion/index.d.ts +1 -1
- package/dist/types/components/Accordion/index.d.ts.map +1 -1
- package/dist/types/components/Badge/index.d.ts +1 -1
- package/dist/types/components/Badge/index.d.ts.map +1 -1
- package/dist/types/components/Breadcrumb/index.d.ts +1 -1
- package/dist/types/components/Breadcrumb/index.d.ts.map +1 -1
- package/dist/types/components/Button/index.d.ts +1 -1
- package/dist/types/components/Button/index.d.ts.map +1 -1
- package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/types/components/Checkbox/index.d.ts +1 -1
- package/dist/types/components/Checkbox/index.d.ts.map +1 -1
- package/dist/types/components/Collapsible/index.d.ts +1 -1
- package/dist/types/components/Collapsible/index.d.ts.map +1 -1
- package/dist/types/components/Cropper/Cropper.d.ts.map +1 -1
- package/dist/types/components/Dialog/index.d.ts +1 -1
- package/dist/types/components/Dialog/index.d.ts.map +1 -1
- package/dist/types/components/Glass/index.d.ts +1 -1
- package/dist/types/components/Glass/index.d.ts.map +1 -1
- package/dist/types/components/Input/index.d.ts +1 -1
- package/dist/types/components/Input/index.d.ts.map +1 -1
- package/dist/types/components/InputOTP/index.d.ts +1 -1
- package/dist/types/components/InputOTP/index.d.ts.map +1 -1
- package/dist/types/components/Label/Label.d.ts +1 -1
- package/dist/types/components/Label/Label.d.ts.map +1 -1
- package/dist/types/components/Marquee/Marquee.d.ts +1 -1
- package/dist/types/components/Marquee/Marquee.d.ts.map +1 -1
- package/dist/types/components/Masonry/Masonry.d.ts.map +1 -1
- package/dist/types/components/Popover/index.d.ts +1 -0
- package/dist/types/components/Popover/index.d.ts.map +1 -1
- package/dist/types/components/QrCode/QrCode.d.ts.map +1 -1
- package/dist/types/components/Radio/index.d.ts +1 -1
- package/dist/types/components/Radio/index.d.ts.map +1 -1
- package/dist/types/components/ScrollArea/index.d.ts +1 -1
- package/dist/types/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/types/components/Select/index.d.ts +1 -1
- package/dist/types/components/Select/index.d.ts.map +1 -1
- package/dist/types/components/Sheet/index.d.ts +1 -1
- package/dist/types/components/Sheet/index.d.ts.map +1 -1
- package/dist/types/components/Skeleton/index.d.ts +1 -1
- package/dist/types/components/Skeleton/index.d.ts.map +1 -1
- package/dist/types/components/Slider/Slider.d.ts +1 -1
- package/dist/types/components/Slider/index.d.ts +1 -1
- package/dist/types/components/Slider/index.d.ts.map +1 -1
- package/dist/types/components/Stepper/Stepper.d.ts.map +1 -1
- package/dist/types/components/Switch/Switch.d.ts +1 -1
- package/dist/types/components/Switch/index.d.ts +1 -1
- package/dist/types/components/Switch/index.d.ts.map +1 -1
- package/dist/types/components/Tabs/index.d.ts +1 -1
- package/dist/types/components/Tabs/index.d.ts.map +1 -1
- package/dist/types/components/Textarea/index.d.ts +1 -1
- package/dist/types/components/Textarea/index.d.ts.map +1 -1
- package/dist/types/components/Toggle/Toggle.d.ts +1 -1
- package/dist/types/components/Toggle/index.d.ts +1 -1
- package/dist/types/components/Toggle/index.d.ts.map +1 -1
- package/dist/types/components/Tour/Tour.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +3 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +23 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/utils.d.ts +1 -1
- package/dist/types/lib/utils.d.ts.map +1 -1
- package/dist/types/packages/ui/src/components/badge.d.ts +3 -3
- package/dist/types/packages/ui/src/components/button.d.ts +2 -2
- package/dist/types/packages/ui/src/components/checkbox.d.ts +1 -1
- package/dist/types/packages/ui/src/components/combobox.d.ts +2 -2
- package/dist/types/packages/ui/src/components/combobox.d.ts.map +1 -1
- package/dist/types/packages/ui/src/components/input-otp.d.ts +1 -1
- package/dist/types/packages/ui/src/components/input.d.ts +1 -1
- package/dist/types/packages/ui/src/components/radio-group.d.ts +1 -1
- package/dist/types/packages/ui/src/components/select.d.ts +2 -2
- package/dist/types/packages/ui/src/components/select.d.ts.map +1 -1
- package/dist/types/packages/ui/src/components/switch.d.ts +1 -1
- package/dist/types/packages/ui/src/components/textarea.d.ts +1 -1
- package/dist/types/packages/ui/src/components/toggle.d.ts +1 -1
- package/dist/types/utils/parsers.d.ts +1 -1
- package/package.json +258 -258
- package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +0 -1
- package/dist/cjs/_virtual/index.cjs.map +0 -1
- package/dist/cjs/_virtual/index2.cjs.map +0 -1
- package/dist/cjs/components/Accordion/Accordion.cjs.map +0 -1
- package/dist/cjs/components/Avatar/Avatar.cjs.map +0 -1
- package/dist/cjs/components/Badge/Badge.cjs.map +0 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +0 -1
- package/dist/cjs/components/Button/Button.cjs.map +0 -1
- package/dist/cjs/components/Button/ButtonGroup.cjs.map +0 -1
- package/dist/cjs/components/Calendar/Calendar.cjs.map +0 -1
- package/dist/cjs/components/Carousel/Carousel.cjs.map +0 -1
- package/dist/cjs/components/Checkbox/Checkbox.cjs.map +0 -1
- package/dist/cjs/components/Collapsible/Collapsible.cjs.map +0 -1
- package/dist/cjs/components/Command/Command.cjs.map +0 -1
- package/dist/cjs/components/Command/index.cjs.map +0 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +0 -1
- package/dist/cjs/components/ContextMenu/index.cjs.map +0 -1
- package/dist/cjs/components/Cropper/Cropper.cjs.map +0 -1
- package/dist/cjs/components/Cropper/CropperTool.cjs.map +0 -1
- package/dist/cjs/components/Cropper/utils.cjs.map +0 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +0 -1
- package/dist/cjs/components/DatePicker/RangePicker.cjs.map +0 -1
- package/dist/cjs/components/DatePicker/TimePicker.cjs.map +0 -1
- package/dist/cjs/components/Dialog/Dialog.cjs.map +0 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +0 -1
- package/dist/cjs/components/DropdownMenu/index.cjs.map +0 -1
- package/dist/cjs/components/FloatLabel.cjs.map +0 -1
- package/dist/cjs/components/Glass/Glass.cjs.map +0 -1
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +0 -1
- package/dist/cjs/components/Input/Input.cjs.map +0 -1
- package/dist/cjs/components/InputOTP/InputOTP.cjs.map +0 -1
- package/dist/cjs/components/Interactive/CursorFollow.cjs.map +0 -1
- package/dist/cjs/components/Marquee/Marquee.cjs.map +0 -1
- package/dist/cjs/components/Marquee/MarqueeWrapper.cjs.map +0 -1
- package/dist/cjs/components/Marquee/index.cjs.map +0 -1
- package/dist/cjs/components/Masonry/Masonry.cjs.map +0 -1
- package/dist/cjs/components/Masonry/MasonryWrapper.cjs.map +0 -1
- package/dist/cjs/components/Pagination/Pagination.cjs.map +0 -1
- package/dist/cjs/components/Pagination/index.cjs.map +0 -1
- package/dist/cjs/components/Popover/Popover.cjs.map +0 -1
- package/dist/cjs/components/Popover/index.cjs.map +0 -1
- package/dist/cjs/components/QrCode/QrCode.cjs.map +0 -1
- package/dist/cjs/components/QrCode/index.cjs.map +0 -1
- package/dist/cjs/components/Radio/Radio.cjs.map +0 -1
- package/dist/cjs/components/Rate/Rate.cjs.map +0 -1
- package/dist/cjs/components/Resizable/Resizable.cjs.map +0 -1
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +0 -1
- package/dist/cjs/components/Select/Select.cjs.map +0 -1
- package/dist/cjs/components/Separator/Separator.cjs.map +0 -1
- package/dist/cjs/components/Sheet/Sheet.cjs.map +0 -1
- package/dist/cjs/components/Sidebar/Sidebar.cjs.map +0 -1
- package/dist/cjs/components/Skeleton/Skeleton.cjs.map +0 -1
- package/dist/cjs/components/Slider/Slider.cjs.map +0 -1
- package/dist/cjs/components/Stepper/Stepper.cjs.map +0 -1
- package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +0 -1
- package/dist/cjs/components/Stepper/index.cjs.map +0 -1
- package/dist/cjs/components/Switch/Switch.cjs.map +0 -1
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +0 -1
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +0 -1
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +0 -1
- package/dist/cjs/components/Table/data-table-column-header.cjs.map +0 -1
- package/dist/cjs/components/Table/data-table-pagination.cjs.map +0 -1
- package/dist/cjs/components/Table/data-table-toolbar.cjs.map +0 -1
- package/dist/cjs/components/Table/data-table-view-options.cjs.map +0 -1
- package/dist/cjs/components/Table/data-table.cjs.map +0 -1
- package/dist/cjs/components/Table/select-column.cjs.map +0 -1
- package/dist/cjs/components/Tabs/Tabs.cjs.map +0 -1
- package/dist/cjs/components/Tabs/classes.cjs.map +0 -1
- package/dist/cjs/components/Textarea/Textarea.cjs.map +0 -1
- package/dist/cjs/components/TimeGridView.cjs.map +0 -1
- package/dist/cjs/components/Toast/Toast.cjs.map +0 -1
- package/dist/cjs/components/Toggle/Toggle.cjs.map +0 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs.map +0 -1
- package/dist/cjs/components/Tour/Tour.cjs.map +0 -1
- package/dist/cjs/components/Tour/TourWrapper.cjs.map +0 -1
- package/dist/cjs/components/Tour/index.cjs.map +0 -1
- package/dist/cjs/components/TreeSelect/TreeSelect.cjs.map +0 -1
- package/dist/cjs/components/Upload/Upload.cjs.map +0 -1
- package/dist/cjs/components/WheelColumn.cjs.map +0 -1
- package/dist/cjs/config/data-table.cjs.map +0 -1
- package/dist/cjs/constants/common.cjs.map +0 -1
- package/dist/cjs/hooks/use-callback-ref.cjs.map +0 -1
- package/dist/cjs/hooks/use-data-table.cjs.map +0 -1
- package/dist/cjs/hooks/use-debounced-callback.cjs.map +0 -1
- package/dist/cjs/hooks/use-debounced-value.cjs.map +0 -1
- package/dist/cjs/hooks/use-event-listener.cjs.map +0 -1
- package/dist/cjs/hooks/use-intersection-observer.cjs.map +0 -1
- package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs.map +0 -1
- package/dist/cjs/hooks/use-media-query.cjs.map +0 -1
- package/dist/cjs/hooks/use-on-click-outside.cjs.map +0 -1
- package/dist/cjs/hooks/use-script.cjs.map +0 -1
- package/dist/cjs/hooks/use-scroll-lock.cjs.map +0 -1
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/SplittingText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +0 -1
- package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs.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/node_modules/nuqs/dist/server.cjs.map +0 -1
- package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/accordion.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/avatar.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/badge.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/button-group.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/button.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/calendar.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/collapsible.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/combobox.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/command.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/dialog.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/drawer.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/input.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/label.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/pagination.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/popover.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/resizable.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/select.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/separator.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/sheet.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/switch.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/table.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/tabs.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/textarea.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/toggle.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/hooks/use-mobile.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/lib/compose-refs.cjs.map +0 -1
- package/dist/cjs/packages/ui/src/lib/utils.cjs.map +0 -1
- package/dist/cjs/utils/animations.cjs.map +0 -1
- package/dist/cjs/utils/css.cjs.map +0 -1
- package/dist/cjs/utils/data-table.cjs.map +0 -1
- package/dist/cjs/utils/datetime.cjs.map +0 -1
- package/dist/cjs/utils/parsers.cjs.map +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/esm/_virtual/index.js.map +0 -1
- package/dist/esm/_virtual/index2.js.map +0 -1
- package/dist/esm/components/Accordion/Accordion.js.map +0 -1
- package/dist/esm/components/Avatar/Avatar.js.map +0 -1
- package/dist/esm/components/Badge/Badge.js.map +0 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +0 -1
- package/dist/esm/components/Button/Button.js.map +0 -1
- package/dist/esm/components/Button/ButtonGroup.js.map +0 -1
- package/dist/esm/components/Calendar/Calendar.js.map +0 -1
- package/dist/esm/components/Carousel/Carousel.js.map +0 -1
- package/dist/esm/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/esm/components/Collapsible/Collapsible.js.map +0 -1
- package/dist/esm/components/Command/Command.js.map +0 -1
- package/dist/esm/components/Command/index.js.map +0 -1
- package/dist/esm/components/ContextMenu/ContextMenu.js.map +0 -1
- package/dist/esm/components/ContextMenu/index.js.map +0 -1
- package/dist/esm/components/Cropper/Cropper.js.map +0 -1
- package/dist/esm/components/Cropper/CropperTool.js.map +0 -1
- package/dist/esm/components/Cropper/utils.js.map +0 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +0 -1
- package/dist/esm/components/DatePicker/RangePicker.js.map +0 -1
- package/dist/esm/components/DatePicker/TimePicker.js.map +0 -1
- package/dist/esm/components/Dialog/Dialog.js.map +0 -1
- package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +0 -1
- package/dist/esm/components/DropdownMenu/index.js.map +0 -1
- package/dist/esm/components/FloatLabel.js.map +0 -1
- package/dist/esm/components/Glass/Glass.js.map +0 -1
- package/dist/esm/components/ImageViewer/ImageViewer.js.map +0 -1
- package/dist/esm/components/Input/Input.js.map +0 -1
- package/dist/esm/components/InputOTP/InputOTP.js.map +0 -1
- package/dist/esm/components/Interactive/CursorFollow.js.map +0 -1
- package/dist/esm/components/Marquee/Marquee.js.map +0 -1
- package/dist/esm/components/Marquee/MarqueeWrapper.js.map +0 -1
- package/dist/esm/components/Marquee/index.js.map +0 -1
- package/dist/esm/components/Masonry/Masonry.js.map +0 -1
- package/dist/esm/components/Masonry/MasonryWrapper.js.map +0 -1
- package/dist/esm/components/Pagination/Pagination.js.map +0 -1
- package/dist/esm/components/Pagination/index.js.map +0 -1
- package/dist/esm/components/Popover/Popover.js.map +0 -1
- package/dist/esm/components/Popover/index.js.map +0 -1
- package/dist/esm/components/QrCode/QrCode.js.map +0 -1
- package/dist/esm/components/QrCode/index.js.map +0 -1
- package/dist/esm/components/Radio/Radio.js.map +0 -1
- package/dist/esm/components/Rate/Rate.js.map +0 -1
- package/dist/esm/components/Resizable/Resizable.js.map +0 -1
- package/dist/esm/components/ScrollArea/ScrollArea.js.map +0 -1
- package/dist/esm/components/Select/Select.js.map +0 -1
- package/dist/esm/components/Separator/Separator.js.map +0 -1
- package/dist/esm/components/Sheet/Sheet.js.map +0 -1
- package/dist/esm/components/Sidebar/Sidebar.js.map +0 -1
- package/dist/esm/components/Skeleton/Skeleton.js.map +0 -1
- package/dist/esm/components/Slider/Slider.js.map +0 -1
- package/dist/esm/components/Stepper/Stepper.js.map +0 -1
- package/dist/esm/components/Stepper/StepperWrapper.js.map +0 -1
- package/dist/esm/components/Stepper/index.js.map +0 -1
- package/dist/esm/components/Switch/Switch.js.map +0 -1
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +0 -1
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +0 -1
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +0 -1
- package/dist/esm/components/Table/data-table-column-header.js.map +0 -1
- package/dist/esm/components/Table/data-table-pagination.js.map +0 -1
- package/dist/esm/components/Table/data-table-toolbar.js.map +0 -1
- package/dist/esm/components/Table/data-table-view-options.js.map +0 -1
- package/dist/esm/components/Table/data-table.js.map +0 -1
- package/dist/esm/components/Table/select-column.js.map +0 -1
- package/dist/esm/components/Tabs/Tabs.js.map +0 -1
- package/dist/esm/components/Tabs/classes.js.map +0 -1
- package/dist/esm/components/Textarea/Textarea.js.map +0 -1
- package/dist/esm/components/TimeGridView.js.map +0 -1
- package/dist/esm/components/Toast/Toast.js.map +0 -1
- package/dist/esm/components/Toggle/Toggle.js.map +0 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/esm/components/Tour/Tour.js.map +0 -1
- package/dist/esm/components/Tour/TourWrapper.js.map +0 -1
- package/dist/esm/components/Tour/index.js.map +0 -1
- package/dist/esm/components/TreeSelect/TreeSelect.js.map +0 -1
- package/dist/esm/components/Upload/Upload.js.map +0 -1
- package/dist/esm/components/WheelColumn.js.map +0 -1
- package/dist/esm/config/data-table.js.map +0 -1
- package/dist/esm/constants/common.js.map +0 -1
- package/dist/esm/hooks/use-callback-ref.js.map +0 -1
- package/dist/esm/hooks/use-data-table.js.map +0 -1
- package/dist/esm/hooks/use-debounced-callback.js.map +0 -1
- package/dist/esm/hooks/use-debounced-value.js.map +0 -1
- package/dist/esm/hooks/use-event-listener.js.map +0 -1
- package/dist/esm/hooks/use-intersection-observer.js.map +0 -1
- package/dist/esm/hooks/use-isomorphic-layout-effect.js.map +0 -1
- package/dist/esm/hooks/use-media-query.js.map +0 -1
- package/dist/esm/hooks/use-on-click-outside.js.map +0 -1
- package/dist/esm/hooks/use-script.js.map +0 -1
- package/dist/esm/hooks/use-scroll-lock.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/TextAnimation/BlurText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/CircularText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/FlipWords.js.map +0 -1
- package/dist/esm/lib/TextAnimation/GradientText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/RollingText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/RotatingText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/SplittingText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +0 -1
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +0 -1
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +0 -1
- package/dist/esm/lib/TextAnimation/TypingText.js.map +0 -1
- package/dist/esm/lib/TextAnimation/WritingText.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.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/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js.map +0 -1
- package/dist/esm/packages/ui/src/components/accordion.js.map +0 -1
- package/dist/esm/packages/ui/src/components/alert-dialog.js.map +0 -1
- package/dist/esm/packages/ui/src/components/avatar.js.map +0 -1
- package/dist/esm/packages/ui/src/components/badge.js.map +0 -1
- package/dist/esm/packages/ui/src/components/breadcrumb.js.map +0 -1
- package/dist/esm/packages/ui/src/components/button-group.js.map +0 -1
- package/dist/esm/packages/ui/src/components/button.js.map +0 -1
- package/dist/esm/packages/ui/src/components/calendar.js.map +0 -1
- package/dist/esm/packages/ui/src/components/checkbox.js.map +0 -1
- package/dist/esm/packages/ui/src/components/collapsible.js.map +0 -1
- package/dist/esm/packages/ui/src/components/combobox.js.map +0 -1
- package/dist/esm/packages/ui/src/components/command.js.map +0 -1
- package/dist/esm/packages/ui/src/components/context-menu.js.map +0 -1
- package/dist/esm/packages/ui/src/components/dialog.js.map +0 -1
- package/dist/esm/packages/ui/src/components/drawer.js.map +0 -1
- package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +0 -1
- package/dist/esm/packages/ui/src/components/input-otp.js.map +0 -1
- package/dist/esm/packages/ui/src/components/input.js.map +0 -1
- package/dist/esm/packages/ui/src/components/label.js.map +0 -1
- package/dist/esm/packages/ui/src/components/pagination.js.map +0 -1
- package/dist/esm/packages/ui/src/components/popover.js.map +0 -1
- package/dist/esm/packages/ui/src/components/radio-group.js.map +0 -1
- package/dist/esm/packages/ui/src/components/resizable.js.map +0 -1
- package/dist/esm/packages/ui/src/components/scroll-area.js.map +0 -1
- package/dist/esm/packages/ui/src/components/select.js.map +0 -1
- package/dist/esm/packages/ui/src/components/separator.js.map +0 -1
- package/dist/esm/packages/ui/src/components/sheet.js.map +0 -1
- package/dist/esm/packages/ui/src/components/sidebar.js.map +0 -1
- package/dist/esm/packages/ui/src/components/skeleton.js.map +0 -1
- package/dist/esm/packages/ui/src/components/switch.js.map +0 -1
- package/dist/esm/packages/ui/src/components/table.js.map +0 -1
- package/dist/esm/packages/ui/src/components/tabs.js.map +0 -1
- package/dist/esm/packages/ui/src/components/textarea.js.map +0 -1
- package/dist/esm/packages/ui/src/components/toggle.js.map +0 -1
- package/dist/esm/packages/ui/src/components/tooltip.js.map +0 -1
- package/dist/esm/packages/ui/src/components/tree-view.js.map +0 -1
- package/dist/esm/packages/ui/src/hooks/use-mobile.js.map +0 -1
- package/dist/esm/packages/ui/src/lib/compose-refs.js.map +0 -1
- package/dist/esm/packages/ui/src/lib/utils.js.map +0 -1
- package/dist/esm/utils/animations.js.map +0 -1
- package/dist/esm/utils/css.js.map +0 -1
- package/dist/esm/utils/data-table.js.map +0 -1
- package/dist/esm/utils/datetime.js.map +0 -1
- package/dist/esm/utils/parsers.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../../../../../packages/ui/src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":"oIAGO,SAASA,KAAMC,EAAsB,CAC1C,OAAOC,EAAAA,QAAQC,OAAKF,CAAM,CAAC,CAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animations.cjs","sources":["../../../src/utils/animations.tsx"],"sourcesContent":["import { cn } from \"@dsui/ui/index\";\nimport type { BasicAnimation } from \"@/types/variables\";\nimport { easeOut, motion } from \"motion/react\";\nimport Glass from \"../components/Glass/Glass\";\n\nexport const animationClass = (\n animation?: BasicAnimation,\n className?: string\n) => {\n switch (animation) {\n case \"bounce\":\n return {\n className: cn(\"ds:animate-bounce\", className),\n };\n case \"slide-up\":\n return {\n className: cn(\"ds:animate-slide-in-from-bottom\", className),\n };\n case \"slide-down\":\n return {\n className: cn(\"ds:animate-slide-in-from-top\", className),\n };\n case \"slide-left\":\n return {\n className: cn(\"ds:animate-slide-in-from-right\", className),\n };\n case \"slide-right\":\n return {\n className: cn(\"ds:animate-slide-in-from-left\", className),\n };\n case \"zoom-in\":\n return {\n className: cn(\"ds:animate-zoom-in\", className),\n };\n case \"zoom-out\":\n return {\n className: cn(\"ds:animate-zoom-out\", className),\n };\n case \"skewed\":\n return {\n className: cn(\"ds:animate-skewed-in\", className),\n };\n case \"flip\":\n return {\n className: cn(\"ds:animate-flip-in\", className),\n };\n case \"shake\":\n return {\n className: cn(\"ds:animate-shake\", className),\n };\n case \"gradient-outline\":\n return {\n className: cn(\"ds:gradient-outline\", className),\n };\n default:\n return { className };\n }\n};\n\nexport const animationEffect = <T, S = undefined>({\n animation,\n children,\n className,\n rootClassName,\n variantType,\n ...rest\n}: {\n animation?: T;\n children?: React.ReactNode;\n className?: string;\n rootClassName?: string;\n variantType?: S;\n}) => {\n switch (animation) {\n case \"heartbeat\":\n return {\n className: cn(\"ds:animate-heartbeat\", className),\n };\n case \"rainbow\":\n return {\n className: cn(\n \"ds:animate-rainbow ds:text-primary-foreground ds:focus-visible:ring-ring/50 ds:relative ds:inline-flex ds:h-9 ds:items-center ds:justify-center ds:gap-2 ds:rounded-md ds:border-2 ds:border-transparent ds:bg-[length:200%] ds:[background-clip:padding-box,border-box,border-box] ds:[background-origin:border-box] ds:px-3 ds:py-2 ds:text-sm ds:font-medium ds:transition-colors ds:focus-visible:ring-[3px] ds:focus-visible:outline-none ds:disabled:pointer-events-none ds:disabled:opacity-50\",\n \"ds:before:animate-rainbow ds:before:absolute ds:before:bottom-[-20%] ds:before:left-0 ds:before:z-0 ds:before:h-1/5 ds:before:w-full ds:before:bg-[linear-gradient(90deg,#ff4242,#a1ff42,#42a1ff,#42d0ff,#a142ff)] ds:before:[filter:blur(calc(0.625*1rem))] ds:bg-[linear-gradient(var(--primary),var(--primary)),linear-gradient(var(--primary)_30%,rgba(0,0,0,0)),linear-gradient(90deg,#ff4242,#a1ff42,#42a1ff,#42d0ff,#a142ff)]\",\n className\n ),\n };\n case \"shine\":\n return {\n className: cn(\n \"ds:relative ds:overflow-hidden ds:before:absolute ds:before:inset-0 ds:before:rounded-[inherit] ds:before:bg-[linear-gradient(45deg,transparent_25%,rgba(255,255,255,0.5)_50%,transparent_75%,transparent_100%)] ds:before:bg-[length:250%_250%,100%_100%] ds:before:bg-[position:200%_0,0_0] ds:before:bg-no-repeat ds:before:transition-[background-position_0s_ease] ds:before:duration-1000 ds:hover:before:bg-[position:-100%_0,0_0] ds:dark:before:bg-[linear-gradient(45deg,transparent_25%,rgba(0,0,0,0.2)_50%,transparent_75%,transparent_100%)]\",\n className\n ),\n };\n case \"bounce\":\n return {\n children: (\n <motion.button\n whileHover={{ scale: 1.1 }}\n className={cn(rootClassName, \"ds:transition-none\", className)}\n transition={{ type: \"spring\", stiffness: 400, damping: 10 }}\n {...rest}\n >\n {children}\n </motion.button>\n ),\n };\n case \"tap\":\n return {\n children: (\n <motion.button\n whileTap={{ scale: 0.85 }}\n className={cn(rootClassName, \"ds:transition-none\", className)}\n transition={{ type: \"spring\", stiffness: 400, damping: 10 }}\n {...rest}\n >\n {children}\n </motion.button>\n ),\n };\n case \"glass\": {\n const roundedMatches = rootClassName?.match(/((?:!)?rounded-\\S+)/g);\n const roundedClass = roundedMatches\n ? roundedMatches[roundedMatches.length - 1]\n : \"rounded-md\";\n\n return {\n variant: (variantType ? \"link\" : undefined) as S,\n children: (\n <Glass className={cn(\"ds:hover:scale-110\", roundedClass)}>\n <span\n className={cn(\n rootClassName,\n \"ds:!bg-none ds:!bg-transparent ds:border-0\",\n className\n )}\n >\n {children}\n </span>\n </Glass>\n ),\n };\n }\n case \"glow\":\n return {\n className: cn(rootClassName, \"ds:animate-glow\", className),\n };\n case \"liquid\":\n return {\n className: cn(\n \"ds:relative ds:overflow-hidden\",\n \"ds:bg-[linear-gradient(rgba(0,0,0,0.15)_0_0)] ds:bg-no-repeat\",\n \"ds:bg-[length:200%_0.4em] ds:bg-[position:200%_100%]\",\n \"ds:[transition:0.3s_0s,background-position_0.3s_0.3s]\",\n \"ds:hover:bg-[length:200%_100%] ds:hover:bg-[position:0%_100%]\",\n \"ds:hover:text-white\",\n \"ds:hover:[transition:0.3s_0.3s,background-position_0.3s_0s]\",\n className\n ),\n };\n case \"link-underline\":\n return {\n variant: (variantType ? \"link\" : undefined) as S,\n className: cn(\n \"ds:after:bg-primary ds:relative ds:!no-underline ds:after:absolute ds:after:bottom-2 ds:after:h-px ds:after:w-2/3 ds:after:origin-bottom-right ds:after:scale-x-0 ds:after:transition-transform ds:after:duration-300 ds:after:ease-in-out ds:hover:after:origin-bottom-left ds:hover:after:scale-x-100\",\n className\n ),\n };\n case \"loading\":\n return {\n className: cn(\n \"ds:relative ds:overflow-hidden\",\n \"ds:before:content-[''] ds:before:absolute ds:before:z-[1] ds:before:top-0 ds:before:-left-full ds:before:w-[300%] ds:before:h-full\",\n \"ds:before:bg-[repeating-linear-gradient(60deg,transparent,transparent_10px,#ffffff20_10px,#ffffff20_20px)]\",\n \"ds:before:animate-slide-loading\",\n className\n ),\n };\n case \"gradient-outline\":\n return {\n className: cn(\"ds:gradient-outline\", className),\n };\n case \"draw\":\n return {\n className: cn(\"ds:animate-draw\", className),\n };\n default:\n return null;\n }\n};\n\nexport const particleAnimation = (index: number) => {\n const angle = Math.random() * Math.PI * 2;\n const distance = 30 + Math.random() * 20;\n\n return {\n initial: { x: \"50%\", y: \"50%\", scale: 0, opacity: 0 },\n animate: {\n x: `calc(50% + ${Math.cos(angle) * distance}px)`,\n y: `calc(50% + ${Math.sin(angle) * distance}px)`,\n scale: [0, 1, 0],\n opacity: [0, 1, 0],\n },\n transition: { duration: 0.4, delay: index * 0.05, ease: easeOut },\n };\n};\n"],"names":["animationClass","animation","className","cn","animationEffect","children","rootClassName","variantType","rest","jsx","motion","roundedMatches","roundedClass","Glass","particleAnimation","index","angle","distance","easeOut"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css.cjs","sources":["../../../src/utils/css.tsx"],"sourcesContent":["import { motion } from \"motion/react\";\nimport { particleAnimation } from \"./animations\";\n\nexport const ConfettiPiece = ({ index }: { index: number }) => {\n const colors = [\n \"#FF0000\",\n \"#00FF00\",\n \"#0000FF\",\n \"#FFFF00\",\n \"#FF00FF\",\n \"#00FFFF\",\n ];\n const color = colors[index % colors.length];\n\n return (\n <motion.div\n className=\"ds:absolute ds:h-1 ds:w-1 ds:rounded-full\"\n style={{ backgroundColor: color }}\n {...particleAnimation(index)}\n />\n );\n};\n"],"names":["ConfettiPiece","index","colors","color","jsx","motion","particleAnimation"],"mappings":"6KAGaA,EAAgB,CAAC,CAAE,MAAAC,KAA+B,CAC7D,MAAMC,EAAS,CACb,UACA,UACA,UACA,UACA,UACA,SAAA,EAEIC,EAAQD,EAAOD,EAAQC,EAAO,MAAM,EAE1C,OACEE,EAAAA,IAACC,EAAAA,OAAO,IAAP,CACC,UAAU,4CACV,MAAO,CAAE,gBAAiBF,CAAA,EACzB,GAAGG,EAAAA,kBAAkBL,CAAK,CAAA,CAAA,CAGjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.cjs","sources":["../../../src/utils/data-table.ts"],"sourcesContent":["import type { Column } from \"@tanstack/react-table\";\nimport { dataTableConfig } from \"@/config/data-table\";\nimport type {\n ExtendedColumnFilter,\n FilterOperator,\n FilterVariant,\n} from \"@/types/data-table\";\n\nexport function getCommonPinningStyles<TData>({\n column,\n withBorder = false,\n}: {\n column: Column<TData>;\n withBorder?: boolean;\n}): React.CSSProperties {\n const isPinned = column.getIsPinned();\n const isLastLeftPinnedColumn =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinnedColumn =\n isPinned === \"right\" && column.getIsFirstColumn(\"right\");\n\n return {\n boxShadow: withBorder\n ? isLastLeftPinnedColumn\n ? \"-4px 0 4px -4px var(--border) inset\"\n : isFirstRightPinnedColumn\n ? \"4px 0 4px -4px var(--border) inset\"\n : undefined\n : undefined,\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n opacity: isPinned ? 0.97 : 1,\n position: isPinned ? \"sticky\" : \"relative\",\n background: isPinned ? \"var(--background)\" : \"var(--background)\",\n width: column.getSize(),\n zIndex: isPinned ? 1 : undefined,\n };\n}\n\nexport function getFilterOperators(filterVariant: FilterVariant) {\n const operatorMap: Record<\n FilterVariant,\n { label: string; value: FilterOperator }[]\n > = {\n text: dataTableConfig.textOperators,\n number: dataTableConfig.numericOperators,\n range: dataTableConfig.numericOperators,\n date: dataTableConfig.dateOperators,\n dateRange: dataTableConfig.dateOperators,\n boolean: dataTableConfig.booleanOperators,\n select: dataTableConfig.selectOperators,\n multiSelect: dataTableConfig.multiSelectOperators,\n };\n\n return operatorMap[filterVariant] ?? dataTableConfig.textOperators;\n}\n\nexport function getDefaultFilterOperator(filterVariant: FilterVariant) {\n const operators = getFilterOperators(filterVariant);\n\n return operators[0]?.value ?? (filterVariant === \"text\" ? \"iLike\" : \"eq\");\n}\n\nexport function getValidFilters<TData>(\n filters: ExtendedColumnFilter<TData>[]\n): ExtendedColumnFilter<TData>[] {\n return filters.filter(\n (filter) =>\n filter.operator === \"isEmpty\" ||\n filter.operator === \"isNotEmpty\" ||\n (Array.isArray(filter.value)\n ? filter.value.length > 0\n : filter.value !== \"\" &&\n filter.value !== null &&\n filter.value !== undefined)\n );\n}\n"],"names":["getCommonPinningStyles","column","withBorder","isPinned","isLastLeftPinnedColumn","isFirstRightPinnedColumn"],"mappings":"gFAQO,SAASA,EAA8B,CAC5C,OAAAC,EACA,WAAAC,EAAa,EACf,EAGwB,CACtB,MAAMC,EAAWF,EAAO,YAAA,EAClBG,EACJD,IAAa,QAAUF,EAAO,gBAAgB,MAAM,EAChDI,EACJF,IAAa,SAAWF,EAAO,iBAAiB,OAAO,EAEzD,MAAO,CACL,UAAWC,EACPE,EACE,sCACAC,EACE,qCACA,OACJ,OACJ,KAAMF,IAAa,OAAS,GAAGF,EAAO,SAAS,MAAM,CAAC,KAAO,OAC7D,MAAOE,IAAa,QAAU,GAAGF,EAAO,SAAS,OAAO,CAAC,KAAO,OAChE,QAASE,EAAW,IAAO,EAC3B,SAAUA,EAAW,SAAW,WAChC,WAAuB,oBACvB,MAAOF,EAAO,QAAA,EACd,OAAQE,EAAW,EAAI,MAAA,CAE3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.cjs","sources":["../../../src/utils/datetime.ts"],"sourcesContent":["export function formatDate(\n date: Date | string | number | undefined,\n opts: Intl.DateTimeFormatOptions = {}\n) {\n if (!date) return \"\";\n\n try {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: opts.month ?? \"long\",\n day: opts.day ?? \"numeric\",\n year: opts.year ?? \"numeric\",\n ...opts,\n }).format(new Date(date));\n } catch (_err) {\n return \"\";\n }\n}\n"],"names":["formatDate","date","opts"],"mappings":"gFAAO,SAASA,EACdC,EACAC,EAAmC,GACnC,CACA,GAAI,CAACD,EAAM,MAAO,GAElB,GAAI,CACF,OAAO,IAAI,KAAK,eAAe,QAAS,CACtC,MAAOC,EAAK,OAAS,OACrB,IAAKA,EAAK,KAAO,UACjB,KAAMA,EAAK,MAAQ,UACnB,GAAGA,CAAA,CACJ,EAAE,OAAO,IAAI,KAAKD,CAAI,CAAC,CAC1B,MAAe,CACb,MAAO,EACT,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.cjs","sources":["../../../src/utils/parsers.ts"],"sourcesContent":["import { createParser } from \"nuqs/server\";\nimport { z } from \"zod\";\n\nimport { dataTableConfig } from \"@/config/data-table\";\n\nimport type {\n ExtendedColumnFilter,\n ExtendedColumnSort,\n} from \"@/types/data-table\";\n\nconst sortingItemSchema = z.object({\n id: z.string(),\n desc: z.boolean(),\n});\n\nexport const getSortingStateParser = <TData>(\n columnIds?: string[] | Set<string>\n) => {\n const validKeys = columnIds\n ? columnIds instanceof Set\n ? columnIds\n : new Set(columnIds)\n : null;\n\n return createParser({\n parse: (value) => {\n try {\n const parsed = JSON.parse(value);\n const result = z.array(sortingItemSchema).safeParse(parsed);\n\n if (!result.success) return null;\n\n if (validKeys && result.data.some((item) => !validKeys.has(item.id))) {\n return null;\n }\n\n return result.data as ExtendedColumnSort<TData>[];\n } catch {\n return null;\n }\n },\n serialize: (value) => JSON.stringify(value),\n eq: (a, b) =>\n a.length === b.length &&\n a.every(\n (item, index) =>\n item.id === b[index]?.id && item.desc === b[index]?.desc\n ),\n });\n};\n\nconst filterItemSchema = z.object({\n id: z.string(),\n value: z.union([z.string(), z.array(z.string())]),\n variant: z.enum(dataTableConfig.filterVariants),\n operator: z.enum(dataTableConfig.operators),\n filterId: z.string(),\n});\n\nexport type FilterItemSchema = z.infer<typeof filterItemSchema>;\n\nexport const getFiltersStateParser = <TData>(\n columnIds?: string[] | Set<string>\n) => {\n const validKeys = columnIds\n ? columnIds instanceof Set\n ? columnIds\n : new Set(columnIds)\n : null;\n\n return createParser({\n parse: (value) => {\n try {\n const parsed = JSON.parse(value);\n const result = z.array(filterItemSchema).safeParse(parsed);\n\n if (!result.success) return null;\n\n if (validKeys && result.data.some((item) => !validKeys.has(item.id))) {\n return null;\n }\n\n return result.data as ExtendedColumnFilter<TData>[];\n } catch {\n return null;\n }\n },\n serialize: (value) => JSON.stringify(value),\n eq: (a, b) =>\n a.length === b.length &&\n a.every(\n (filter, index) =>\n filter.id === b[index]?.id &&\n filter.value === b[index]?.value &&\n filter.variant === b[index]?.variant &&\n filter.operator === b[index]?.operator\n ),\n });\n};\n"],"names":["sortingItemSchema","z","getSortingStateParser","columnIds","validKeys","createParser","value","parsed","result","item","a","b","index","dataTableConfig"],"mappings":"mSAUMA,EAAoBC,EAAAA,EAAE,OAAO,CACjC,GAAIA,EAAAA,EAAE,OAAA,EACN,KAAMA,EAAAA,EAAE,QAAA,CACV,CAAC,EAEYC,EACXC,GACG,CACH,MAAMC,EAAYD,EACdA,aAAqB,IACnBA,EACA,IAAI,IAAIA,CAAS,EACnB,KAEJ,OAAOE,eAAa,CAClB,MAAQC,GAAU,CAChB,GAAI,CACF,MAAMC,EAAS,KAAK,MAAMD,CAAK,EACzBE,EAASP,EAAAA,EAAE,MAAMD,CAAiB,EAAE,UAAUO,CAAM,EAI1D,MAFI,CAACC,EAAO,SAERJ,GAAaI,EAAO,KAAK,KAAMC,GAAS,CAACL,EAAU,IAAIK,EAAK,EAAE,CAAC,EAC1D,KAGFD,EAAO,IAChB,MAAQ,CACN,OAAO,IACT,CACF,EACA,UAAYF,GAAU,KAAK,UAAUA,CAAK,EAC1C,GAAI,CAACI,EAAGC,IACND,EAAE,SAAWC,EAAE,QACfD,EAAE,MACA,CAACD,EAAMG,IACLH,EAAK,KAAOE,EAAEC,CAAK,GAAG,IAAMH,EAAK,OAASE,EAAEC,CAAK,GAAG,IAAA,CACxD,CACH,CACH,EAEyBX,EAAAA,EAAE,OAAO,CAChC,GAAIA,EAAAA,EAAE,OAAA,EACN,MAAOA,EAAAA,EAAE,MAAM,CAACA,EAAAA,EAAE,OAAA,EAAUA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAA,CAAQ,CAAC,CAAC,EAChD,QAASA,EAAAA,EAAE,KAAKY,EAAAA,gBAAgB,cAAc,EAC9C,SAAUZ,EAAAA,EAAE,KAAKY,EAAAA,gBAAgB,SAAS,EAC1C,SAAUZ,EAAAA,EAAE,OAAA,CACd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_commonjsHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sources":["../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Accordion as SAccordion,\n AccordionItem,\n AccordionTrigger,\n AccordionContent,\n} from \"@dsui/ui/components/accordion\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { type BasicColor } from \"@/types/variables\";\n\nexport type AccordionItemConfig = {\n value: string;\n trigger: React.ReactNode;\n content?: React.ReactNode;\n disabled?: boolean;\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n};\n\ntype AccordionBaseProps = {\n items?: AccordionItemConfig[];\n variant?: \"default\" | \"bordered\" | \"separated\" | \"ghost\";\n color?: BasicColor;\n itemClassName?: string;\n triggerClassName?: string;\n contentClassName?: string;\n children?: React.ReactNode;\n className?: string;\n disabled?: boolean;\n dir?: \"ltr\" | \"rtl\";\n orientation?: \"horizontal\" | \"vertical\";\n asChild?: boolean;\n};\n\ntype AccordionSingleProps = AccordionBaseProps & {\n type: \"single\";\n value?: string;\n defaultValue?: string;\n collapsible?: boolean;\n onValueChange?: (newValue: string) => void;\n};\n\ntype AccordionMultipleProps = AccordionBaseProps & {\n type: \"multiple\";\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (newValue: string[]) => void;\n};\n\nexport type AccordionProps = AccordionSingleProps | AccordionMultipleProps;\n\nconst colorVariants = {\n primary: {\n trigger:\n \"ds:data-[state=open]:bg-primary/10 ds:data-[state=open]:text-primary ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-primary/20\",\n content: \"ds:bg-primary/10 ds:rounded-b-md\",\n },\n secondary: {\n trigger:\n \"ds:data-[state=open]:bg-secondary/10 ds:data-[state=open]:text-secondary ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-secondary/20\",\n content: \"ds:bg-secondary/10 ds:rounded-b-md\",\n },\n success: {\n trigger:\n \"ds:data-[state=open]:bg-success/10 ds:data-[state=open]:text-success ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-success/20\",\n content: \"ds:bg-success/10 ds:rounded-b-md\",\n },\n warning: {\n trigger:\n \"ds:data-[state=open]:bg-warning/10 ds:data-[state=open]:text-warning ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-warning/20\",\n content: \"ds:bg-warning/10 ds:rounded-b-md\",\n },\n error: {\n trigger:\n \"ds:data-[state=open]:bg-error/10 ds:data-[state=open]:text-error ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-error/20\",\n content: \"ds:bg-error/10 ds:rounded-b-md\",\n },\n glass: {\n trigger:\n \"ds:data-[state=open]:bg-glass/10 ds:data-[state=open]:text-glass ds:data-[state=open]:rounded-b-none ds:data-[state=open]:border-glass/20\",\n content: \"ds:bg-glass/10 ds:rounded-b-md\",\n },\n};\n\nconst variantStyles = {\n default: {\n root: \"ds:rounded-lg\",\n item: \"ds:px-0\",\n trigger: \"ds:px-4 ds:hover:bg-accent/50\",\n content: \"ds:px-4\",\n },\n bordered: {\n root: \"ds:rounded-lg ds:border-2 ds:divide-y-2\",\n item: \"ds:px-0 ds:border-0\",\n trigger: \"ds:px-4 ds:font-semibold ds:hover:bg-accent\",\n content: \"ds:px-4\",\n },\n separated: {\n root: \"ds:space-y-2\",\n item: \"ds:rounded-lg ds:border ds:bg-card ds:last:border-b\",\n trigger: \"ds:px-4 ds:hover:bg-accent/50\",\n content: \"ds:px-4\",\n },\n ghost: {\n root: \"\",\n item: \"ds:border-0\",\n trigger: \"ds:px-2 ds:hover:bg-accent/30 ds:rounded-md\",\n content: \"ds:px-2\",\n },\n};\n\nconst Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (props, ref) => {\n const {\n items,\n variant = \"default\",\n color,\n className,\n itemClassName,\n triggerClassName,\n contentClassName,\n children,\n type,\n ...rest\n } = props;\n\n const styles = variantStyles[variant];\n const triggerColorClass = color ? colorVariants[color].trigger : \"\";\n const contentColorClass = color ? colorVariants[color].content : \"\";\n\n // If children are provided, use them directly (primitive usage)\n if (children && !items) {\n if (type === \"multiple\") {\n return (\n <SAccordion\n ref={ref}\n type=\"multiple\"\n className={cn(styles.root, className)}\n {...(rest as Omit<\n AccordionMultipleProps,\n keyof AccordionBaseProps | \"type\"\n >)}\n >\n {children}\n </SAccordion>\n );\n }\n return (\n <SAccordion\n ref={ref}\n type=\"single\"\n className={cn(styles.root, className)}\n {...(rest as Omit<\n AccordionSingleProps,\n keyof AccordionBaseProps | \"type\"\n >)}\n >\n {children}\n </SAccordion>\n );\n }\n\n // Wrapper usage with items array\n if (type === \"multiple\") {\n return (\n <SAccordion\n ref={ref}\n type=\"multiple\"\n className={cn(styles.root, className)}\n {...(rest as Omit<\n AccordionMultipleProps,\n keyof AccordionBaseProps | \"type\"\n >)}\n >\n {items?.map((item) => (\n <AccordionItem\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n className={cn(styles.item, itemClassName, item.className)}\n >\n <AccordionTrigger\n className={cn(\n styles.trigger,\n triggerColorClass,\n triggerClassName,\n item.triggerClassName\n )}\n >\n {item.trigger}\n </AccordionTrigger>\n <AccordionContent\n className={cn(\n styles.content,\n contentColorClass,\n contentClassName,\n item.contentClassName\n )}\n >\n {item.content}\n </AccordionContent>\n </AccordionItem>\n ))}\n </SAccordion>\n );\n }\n\n return (\n <SAccordion\n ref={ref}\n type=\"single\"\n className={cn(styles.root, className)}\n {...(rest as Omit<\n AccordionSingleProps,\n keyof AccordionBaseProps | \"type\"\n >)}\n >\n {items?.map((item) => (\n <AccordionItem\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n className={cn(styles.item, itemClassName, item.className)}\n >\n <AccordionTrigger\n className={cn(\n styles.trigger,\n triggerColorClass,\n triggerClassName,\n item.triggerClassName\n )}\n >\n {item.trigger}\n </AccordionTrigger>\n <AccordionContent\n className={cn(\n styles.content,\n contentColorClass,\n contentClassName,\n item.contentClassName\n )}\n >\n {item?.content}\n </AccordionContent>\n </AccordionItem>\n ))}\n </SAccordion>\n );\n }\n);\n\nAccordion.displayName = \"Accordion\";\n\n// Create compound component\nconst AccordionCompound = Object.assign(Accordion, {\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n});\n\nexport default AccordionCompound;\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"names":["colorVariants","variantStyles","Accordion","React","props","ref","items","variant","color","className","itemClassName","triggerClassName","contentClassName","children","type","rest","styles","triggerColorClass","contentColorClass","jsx","SAccordion","cn","item","jsxs","AccordionItem","AccordionTrigger","AccordionContent","AccordionCompound"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n Avatar as DsAvatar,\n AvatarImage,\n AvatarFallback,\n} from \"@dsui/ui/components/avatar\";\nimport { cn } from \"@dsui/ui/index\";\nimport type { BasicAnimation, BasicColor } from \"@/types/variables\";\nimport { animationClass } from \"@/utils/animations\";\n\ntype Color = BasicColor | \"dark\" | \"light\" | \"inverted\";\n\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\ntype Variant = \"circle\" | \"square\";\n\nexport type AvatarProps = React.ComponentProps<typeof DsAvatar> & {\n size?: Size;\n variant?: Variant;\n animation?: BasicAnimation;\n color?: Color | string;\n src?: string;\n alt?: string;\n fallback?: React.ReactNode;\n};\n\nexport function Avatar({\n size = \"md\",\n variant = \"circle\",\n animation,\n color,\n className,\n src,\n alt,\n fallback,\n ...props\n}: AvatarProps) {\n const avatarAnimation = React.useMemo<{ className?: string } | null>(() => {\n return animationClass(animation, className);\n }, [animation, className]);\n\n const avatarSize = React.useMemo<string>(() => {\n switch (size) {\n case \"xs\":\n return \"ds:size-6\";\n case \"sm\":\n return \"ds:size-8\";\n case \"md\":\n return \"ds:size-10\";\n case \"lg\":\n return \"ds:size-12\";\n case \"xl\":\n return \"ds:size-16\";\n default:\n return \"ds:size-10\";\n }\n }, [size]);\n\n const avatarVariant = React.useMemo<string>(() => {\n switch (variant) {\n case \"circle\":\n return \"ds:rounded-full\";\n case \"square\":\n return \"ds:rounded-md\";\n default:\n return \"ds:rounded-full\";\n }\n }, [variant]);\n\n const avatarColor = React.useMemo<string>(() => {\n switch (color) {\n case \"primary\":\n return \"ds:bg-primary ds:text-primary-foreground\";\n case \"secondary\":\n return \"ds:bg-secondary ds:text-secondary-foreground\";\n case \"dark\":\n return \"ds:bg-neutral-900 ds:text-white\";\n case \"light\":\n return \"ds:bg-neutral-200 ds:text-neutral-950\";\n case \"inverted\":\n return \"ds:dark:bg-white ds:dark:text-black\";\n case \"success\":\n return \"ds:bg-success ds:text-success-foreground\";\n case \"warning\":\n return \"ds:bg-warning ds:text-warning-foreground\";\n case \"error\":\n return \"ds:bg-error ds:text-error-foreground\";\n case \"glass\":\n return \"ds:bg-white/15 ds:backdrop-blur-sm\";\n default:\n return \"\";\n }\n }, [color]);\n\n return (\n <DsAvatar\n className={cn(\n \"ds:relative ds:flex ds:shrink-0 ds:transition-all ds:duration-300\",\n avatarSize,\n avatarVariant,\n avatarAnimation?.className,\n avatarColor,\n className\n )}\n {...props}\n >\n {src && <AvatarImage src={src} alt={alt} className=\"ds:rounded-[inherit]\" />}\n <AvatarFallback\n className={cn(\"ds:rounded-[inherit]\", avatarColor, className)}\n >\n {fallback}\n </AvatarFallback>\n </DsAvatar>\n );\n}\n"],"names":["Avatar","size","variant","animation","color","className","src","alt","fallback","props","avatarAnimation","React","animationClass","avatarSize","avatarVariant","avatarColor","jsxs","DsAvatar","cn","jsx","AvatarImage","AvatarFallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAASA,GAAO;AAAA,EACrB,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAgB;AACd,QAAMC,IAAkBC,EAAM,QAAuC,MAC5DC,EAAeT,GAAWE,CAAS,GACzC,CAACF,GAAWE,CAAS,CAAC,GAEnBQ,IAAaF,EAAM,QAAgB,MAAM;AAC7C,YAAQV,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAACA,CAAI,CAAC,GAEHa,IAAgBH,EAAM,QAAgB,MAAM;AAChD,YAAQT,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAACA,CAAO,CAAC,GAENa,IAAcJ,EAAM,QAAgB,MAAM;AAC9C,YAAQP,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAACA,CAAK,CAAC;AAEV,SACE,gBAAAY;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,QACAC;AAAA,QACAJ,GAAiB;AAAA,QACjBK;AAAA,QACAV;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAH,KAAO,gBAAAa,EAACC,GAAA,EAAY,KAAAd,GAAU,KAAAC,GAAU,WAAU,wBAAuB;AAAA,QAC1E,gBAAAY;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWH,EAAG,wBAAwBH,GAAaV,CAAS;AAAA,YAE3D,UAAAG;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n badgeVariants,\n Badge as SBadge,\n type BadgeProps as SBadgeProps,\n} from \"@dsui/ui/components/badge\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport type { BadgeAnimation } from \"@/types/variables\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { animationEffect } from \"@/utils/animations\";\n\nexport type BadgeProps = SBadgeProps & {\n animation?: BadgeAnimation;\n isLoading?: boolean;\n};\n\ntype AnimResult = {\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n variant?: SBadgeProps[\"variant\"];\n};\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const { animation, ...rest } = props;\n\n const badgeAnimation = useMemo<AnimResult | null>(() => {\n return animationEffect<BadgeAnimation, SBadgeProps[\"variant\"]>({\n animation,\n children: rest?.children,\n className: rest?.className,\n rootClassName: badgeVariants({\n variant: rest?.variant,\n size: rest?.size,\n }),\n });\n }, [animation, rest]);\n\n return (\n <SBadge\n ref={ref}\n {...rest}\n className={cn(rest?.className, badgeAnimation?.className)}\n asChild={badgeAnimation?.children ? true : rest.asChild}\n >\n <>\n {rest?.isLoading && <LoaderCircle className=\"ds:animate-spin\" />}\n {!rest?.isLoading && (badgeAnimation?.children ?? rest.children)}\n </>\n </SBadge>\n );\n});\n\nBadge.displayName = \"Badge\";\nexport default Badge;\n"],"names":["Badge","React","props","ref","animation","rest","badgeAnimation","useMemo","animationEffect","badgeVariants","jsx","SBadge","cn","jsxs","Fragment","LoaderCircle"],"mappings":";;;;;;AAuBA,MAAMA,IAAQC,EAAM,WAAwC,CAACC,GAAOC,MAAQ;AAC1E,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAASH,GAEzBI,IAAiBC,EAA2B,MACzCC,EAAwD;AAAA,IAC7D,WAAAJ;AAAA,IACA,UAAUC,GAAM;AAAA,IAChB,WAAWA,GAAM;AAAA,IACjB,eAAeI,EAAc;AAAA,MAC3B,SAASJ,GAAM;AAAA,MACf,MAAMA,GAAM;AAAA,IAAA,CACb;AAAA,EAAA,CACF,GACA,CAACD,GAAWC,CAAI,CAAC;AAEpB,SACE,gBAAAK;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACC,GAAGE;AAAA,MACJ,WAAWO,EAAGP,GAAM,WAAWC,GAAgB,SAAS;AAAA,MACxD,SAASA,GAAgB,WAAW,KAAOD,EAAK;AAAA,MAEhD,UAAA,gBAAAQ,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAT,GAAM,aAAa,gBAAAK,EAACK,GAAA,EAAa,WAAU,mBAAkB;AAAA,QAC7D,CAACV,GAAM,cAAcC,GAAgB,YAAYD,EAAK;AAAA,MAAA,EAAA,CACzD;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDL,EAAM,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","sources":["../../../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Breadcrumb as SBreadcrumb,\n BreadcrumbList as SBreadcrumbList,\n BreadcrumbItem as SBreadcrumbItem,\n BreadcrumbLink as SBreadcrumbLink,\n BreadcrumbPage as SBreadcrumbPage,\n BreadcrumbSeparator as SBreadcrumbSeparator,\n BreadcrumbEllipsis as SBreadcrumbEllipsis,\n} from \"@dsui/ui/components/breadcrumb\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { Home } from \"lucide-react\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@dsui/ui/components/popover\";\n\nexport type BreadcrumbItemType = {\n label?: React.ReactNode;\n href?: string;\n icon?: React.ReactNode;\n};\n\nexport type BreadcrumbProps = React.ComponentProps<\"nav\"> & {\n variant?: \"default\" | \"compact\" | \"badge\" | \"bordered\";\n color?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n items: BreadcrumbItemType[];\n separator?: React.ReactNode;\n maxItems?: number;\n showEllipsis?: boolean;\n showHome?:\n | boolean\n | \"label\"\n | \"icon\"\n | \"both\"\n | React.ReactNode\n | { label?: React.ReactNode; icon?: React.ReactNode; href?: string };\n showPopoverOnEllipsis?: boolean;\n};\n\nconst colorClasses = {\n default: \"\",\n primary:\n \"ds:text-primary ds:[&_[data-slot=breadcrumb-link]:hover]:text-primary/80 ds:[&_[data-slot=breadcrumb-page]]:text-primary\",\n secondary:\n \"ds:text-secondary ds:[&_[data-slot=breadcrumb-link]:hover]:text-secondary/80 ds:[&_[data-slot=breadcrumb-page]]:text-secondary\",\n accent:\n \"ds:text-accent ds:[&_[data-slot=breadcrumb-link]:hover]:text-accent/80 ds:[&_[data-slot=breadcrumb-page]]:text-accent\",\n destructive:\n \"ds:text-destructive ds:[&_[data-slot=breadcrumb-link]:hover]:text-destructive/80 ds:[&_[data-slot=breadcrumb-page]]:text-destructive\",\n muted:\n \"ds:text-muted-foreground ds:[&_[data-slot=breadcrumb-link]:hover]:text-muted-foreground/80 ds:[&_[data-slot=breadcrumb-page]]:text-muted-foreground\",\n success:\n \"ds:text-success ds:[&_[data-slot=breadcrumb-link]:hover]:text-success/80 ds:[&_[data-slot=breadcrumb-page]]:text-success\",\n error:\n \"ds:text-error ds:[&_[data-slot=breadcrumb-link]:hover]:text-error/80 ds:[&_[data-slot=breadcrumb-page]]:text-error\",\n warning:\n \"ds:text-warning ds:[&_[data-slot=breadcrumb-link]:hover]:text-warning/80 ds:[&_[data-slot=breadcrumb-page]]:text-warning\",\n};\n\nconst variantClasses = {\n default: \"\",\n compact:\n \"ds:text-xs ds:[&_[data-slot=breadcrumb-list]]:gap-1 ds:[&_[data-slot=breadcrumb-separator]>svg]:size-3\",\n badge:\n \"ds:[&_[data-slot=breadcrumb-list]]:gap-1 ds:[&_[data-slot=breadcrumb-item]]:border ds:[&_[data-slot=breadcrumb-item]]:bg-muted ds:[&_[data-slot=breadcrumb-item]]:px-2 ds:[&_[data-slot=breadcrumb-item]]:py-0.5 ds:[&_[data-slot=breadcrumb-item]]:rounded-full ds:[&_[data-slot=breadcrumb-item]]:text-sm\",\n bordered: \"ds:border ds:rounded-md ds:px-3 ds:py-2\",\n};\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n className,\n variant = \"default\",\n color = \"default\",\n items,\n separator,\n maxItems,\n showEllipsis = true,\n showHome = \"label\",\n showPopoverOnEllipsis = false,\n ...props\n },\n ref\n ) => {\n const [popoverOpen, setPopoverOpen] = React.useState(false);\n const userItems = items;\n let homeItem: BreadcrumbItemType[] = [];\n const normalizedShowHome = showHome === true ? \"label\" : showHome;\n if (normalizedShowHome) {\n if (normalizedShowHome === \"label\") {\n homeItem = [{ label: \"Home\", href: \"/\" }];\n } else if (normalizedShowHome === \"icon\") {\n homeItem = [{ icon: <Home className=\"ds:size-4\" />, href: \"/\" }];\n } else if (normalizedShowHome === \"both\") {\n homeItem = [\n { label: \"Home\", icon: <Home className=\"ds:size-4\" />, href: \"/\" },\n ];\n } else if (\n typeof normalizedShowHome === \"object\" &&\n !React.isValidElement(normalizedShowHome)\n ) {\n // custom object\n homeItem = [normalizedShowHome as BreadcrumbItemType];\n } else {\n // ReactNode\n homeItem = [\n { label: normalizedShowHome as React.ReactNode, href: \"/\" },\n ];\n }\n }\n // Calculate which items to display\n let displayItems: BreadcrumbItemType[] = [];\n let hasEllipsis = false;\n let hiddenItems: BreadcrumbItemType[] = [];\n\n if (maxItems === 0) {\n displayItems = [...homeItem, ...userItems];\n } else if (maxItems) {\n const numUserItems = maxItems - homeItem.length;\n const truncatedUserItems =\n numUserItems > 0 ? userItems.slice(-numUserItems) : [];\n displayItems = [...homeItem, ...truncatedUserItems];\n hasEllipsis =\n numUserItems > 0 && userItems.length > numUserItems && showEllipsis;\n hiddenItems =\n numUserItems > 0 ? userItems.slice(0, -numUserItems) : userItems;\n } else {\n displayItems = [...homeItem, ...userItems];\n }\n\n const renderEllipsis = () => {\n if (showPopoverOnEllipsis) {\n return (\n <Popover open={popoverOpen} onOpenChange={setPopoverOpen}>\n <PopoverTrigger asChild>\n <SBreadcrumbItem>\n <SBreadcrumbEllipsis />\n </SBreadcrumbItem>\n </PopoverTrigger>\n <PopoverContent className=\"ds:w-auto ds:max-w-64 ds:p-2\">\n {hiddenItems.map((item, index) => (\n <div\n key={index}\n className=\"ds:flex ds:items-center ds:gap-2 ds:py-1 ds:px-3 ds:rounded ds:hover:bg-muted\"\n >\n {item.icon}\n {item.label && (\n <a href={item.href} className=\"ds:text-sm ds:hover:underline\">\n {item.label}\n </a>\n )}\n </div>\n ))}\n </PopoverContent>\n </Popover>\n );\n }\n return (\n <SBreadcrumbItem>\n <SBreadcrumbEllipsis />\n </SBreadcrumbItem>\n );\n };\n\n return (\n <SBreadcrumb\n ref={ref}\n className={cn(variantClasses[variant], className)}\n {...props}\n >\n <SBreadcrumbList className={colorClasses[color]}>\n {hasEllipsis && homeItem.length === 0 && (\n <>\n {renderEllipsis()}\n <SBreadcrumbSeparator>{separator}</SBreadcrumbSeparator>\n </>\n )}\n {displayItems.map((item, index) => {\n const isLast = index === displayItems.length - 1;\n const shouldShowEllipsisAfter =\n hasEllipsis && index === 0 && homeItem.length > 0;\n return (\n <React.Fragment key={index}>\n <SBreadcrumbItem>\n {isLast ? (\n <SBreadcrumbPage>\n <div className=\"ds:flex ds:items-center ds:gap-1\">\n {item.icon}\n {item.label}\n </div>\n </SBreadcrumbPage>\n ) : (\n <SBreadcrumbLink href={item.href}>\n <div className=\"ds:flex ds:items-center ds:gap-1\">\n {item.icon}\n {item.label}\n </div>\n </SBreadcrumbLink>\n )}\n </SBreadcrumbItem>\n {shouldShowEllipsisAfter && (\n <>\n <SBreadcrumbSeparator>{separator}</SBreadcrumbSeparator>\n {renderEllipsis()}\n </>\n )}\n {!isLast && (\n <SBreadcrumbSeparator>{separator}</SBreadcrumbSeparator>\n )}\n </React.Fragment>\n );\n })}\n </SBreadcrumbList>\n </SBreadcrumb>\n );\n }\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport default Breadcrumb;\n"],"names":["colorClasses","variantClasses","Breadcrumb","React","className","variant","color","items","separator","maxItems","showEllipsis","showHome","showPopoverOnEllipsis","props","ref","popoverOpen","setPopoverOpen","userItems","homeItem","normalizedShowHome","jsx","Home","displayItems","hasEllipsis","hiddenItems","numUserItems","truncatedUserItems","renderEllipsis","jsxs","Popover","PopoverTrigger","SBreadcrumbItem","SBreadcrumbEllipsis","PopoverContent","item","index","SBreadcrumb","cn","SBreadcrumbList","Fragment","SBreadcrumbSeparator","isLast","shouldShowEllipsisAfter","SBreadcrumbPage","SBreadcrumbLink"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n buttonVariants,\n Button as SButton,\n type ButtonProps as SButtonProps,\n} from \"@dsui/ui/components/button\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport type { ButtonAnimation } from \"@/types/variables\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { animationEffect } from \"@/utils/animations\";\n\nexport type ButtonProps = SButtonProps & {\n animation?: ButtonAnimation;\n isLoading?: boolean;\n};\n\ntype AnimResult = {\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n variant?: SButtonProps[\"variant\"];\n};\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const {\n variant = \"solid\",\n size = \"normal\",\n animation,\n ...rest\n } = props;\n\n const buttonAnimation = useMemo<AnimResult | null>(() => {\n return animationEffect<ButtonAnimation, SButtonProps[\"variant\"]>({\n animation,\n children: rest?.children,\n className: rest?.className,\n rootClassName: buttonVariants({\n variant: variant,\n size: size,\n }),\n variantType: variant,\n ...rest,\n });\n }, [animation, rest, size, variant]);\n\n // Disable asChild when loading to avoid React.Children.only error\n const shouldUseAsChild =\n (buttonAnimation?.children ? true : rest.asChild) && !rest?.isLoading;\n\n const buttonContent = rest?.isLoading ? (\n <>\n <LoaderCircle className=\"ds:animate-spin\" />\n {\n (buttonAnimation?.children ??\n rest.children ??\n null) as SButtonProps[\"children\"]\n }\n </>\n ) : (\n ((buttonAnimation?.children ??\n rest.children ??\n null) as SButtonProps[\"children\"])\n );\n\n return (\n <SButton\n ref={ref}\n {...rest}\n className={cn(\n \"ds:cursor-pointer ds:group\",\n rest?.className,\n buttonAnimation?.className\n )}\n asChild={shouldUseAsChild}\n style={{ ...(rest.style || {}), ...(buttonAnimation?.style || {}) }}\n variant={buttonAnimation?.variant ?? variant}\n size={size}\n >\n {buttonContent}\n </SButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\nexport default Button;\n"],"names":["Button","React","props","ref","variant","size","animation","rest","buttonAnimation","useMemo","animationEffect","buttonVariants","shouldUseAsChild","buttonContent","jsxs","Fragment","jsx","LoaderCircle","SButton","cn"],"mappings":";;;;;;AAuBA,MAAMA,IAASC,EAAM;AAAA,EACnB,CAACC,GAAOC,MAAQ;AACd,UAAM;AAAA,MACJ,SAAAC,IAAU;AAAA,MACV,MAAAC,IAAO;AAAA,MACP,WAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDL,GAEEM,IAAkBC,EAA2B,MAC1CC,EAA0D;AAAA,MAC/D,WAAAJ;AAAA,MACA,UAAUC,GAAM;AAAA,MAChB,WAAWA,GAAM;AAAA,MACjB,eAAeI,EAAe;AAAA,QAC5B,SAAAP;AAAA,QACA,MAAAC;AAAA,MAAA,CACD;AAAA,MACD,aAAaD;AAAA,MACb,GAAGG;AAAA,IAAA,CACJ,GACA,CAACD,GAAWC,GAAMF,GAAMD,CAAO,CAAC,GAG7BQ,KACHJ,GAAiB,WAAW,KAAOD,EAAK,YAAY,CAACA,GAAM,WAExDM,IAAgBN,GAAM,YAC1B,gBAAAO,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAA,EAAa,WAAU,kBAAA,CAAkB;AAAA,MAEvCT,GAAiB,YAChBD,EAAK,YACL;AAAA,IAAA,EAAA,CAEN,IAEEC,GAAiB,YACjBD,EAAK,YACL;AAGJ,WACE,gBAAAS;AAAA,MAACE;AAAAA,MAAA;AAAA,QACC,KAAAf;AAAA,QACC,GAAGI;AAAA,QACJ,WAAWY;AAAA,UACT;AAAA,UACAZ,GAAM;AAAA,UACNC,GAAiB;AAAA,QAAA;AAAA,QAEnB,SAASI;AAAA,QACT,OAAO,EAAE,GAAIL,EAAK,SAAS,CAAA,GAAK,GAAIC,GAAiB,SAAS,GAAC;AAAA,QAC/D,SAASA,GAAiB,WAAWJ;AAAA,QACrC,MAAAC;AAAA,QAEC,UAAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEAb,EAAO,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonGroup.js","sources":["../../../../src/components/Button/ButtonGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ButtonGroup as SButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n} from \"@dsui/ui/components/button-group\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport Button, { type ButtonProps } from \"./Button\";\n\nexport type ButtonGroupProps = React.ComponentProps<typeof SButtonGroup> &\n VariantProps<typeof buttonGroupVariants> & {\n variant?: ButtonProps[\"variant\"];\n color?: ButtonProps[\"color\"];\n size?: ButtonProps[\"size\"];\n animation?: ButtonProps[\"animation\"];\n isLoading?: ButtonProps[\"isLoading\"];\n disabled?: boolean;\n };\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n variant,\n color,\n size,\n animation,\n isLoading,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Button) {\n const childProps = child.props as ButtonProps;\n return React.cloneElement(child as React.ReactElement<ButtonProps>, {\n variant:\n animation === \"glass\" ? \"ghost\" : (childProps.variant ?? variant),\n color: childProps.color ?? color,\n size: childProps.size ?? size,\n animation: childProps.animation ?? animation,\n isLoading: childProps.isLoading ?? isLoading,\n disabled: childProps.disabled ?? disabled,\n });\n }\n return child;\n });\n\n return (\n <SButtonGroup\n ref={ref}\n orientation={orientation}\n className={cn(className)}\n {...props}\n >\n {childrenWithProps}\n </SButtonGroup>\n );\n }\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n\nexport { ButtonGroupSeparator, ButtonGroupText };\nexport default ButtonGroup;\n"],"names":["ButtonGroup","React","className","orientation","variant","color","size","animation","isLoading","disabled","children","props","ref","childrenWithProps","child","Button","childProps","jsx","SButtonGroup","cn"],"mappings":";;;;;;;AAqBA,MAAMA,IAAcC,EAAM;AAAA,EACxB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAoBZ,EAAM,SAAS,IAAIS,GAAU,CAACI,MAAU;AAChE,UAAIb,EAAM,eAAea,CAAK,KAAKA,EAAM,SAASC,GAAQ;AACxD,cAAMC,IAAaF,EAAM;AACzB,eAAOb,EAAM,aAAaa,GAA0C;AAAA,UAClE,SACEP,MAAc,UAAU,UAAWS,EAAW,WAAWZ;AAAA,UAC3D,OAAOY,EAAW,SAASX;AAAA,UAC3B,MAAMW,EAAW,QAAQV;AAAA,UACzB,WAAWU,EAAW,aAAaT;AAAA,UACnC,WAAWS,EAAW,aAAaR;AAAA,UACnC,UAAUQ,EAAW,YAAYP;AAAA,QAAA,CAClC;AAAA,MACH;AACA,aAAOK;AAAA,IACT,CAAC;AAED,WACE,gBAAAG;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,aAAAT;AAAA,QACA,WAAWgB,EAAGjB,CAAS;AAAA,QACtB,GAAGS;AAAA,QAEH,UAAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEAb,EAAY,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","sources":["../../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import {\n CalendarDayButton as SCalendarDayButton,\n type CalendarDayButtonProps as SCalendarDayButtonProps,\n Calendar as SCalendar,\n type CalendarProps as SCalendarProps,\n type CalendarColor,\n} from \"@dsui/ui/components/calendar\";\nimport { cn } from \"@dsui/ui/index\";\nimport { vi, enUS } from \"date-fns/locale\";\n\nexport type DateRange = {\n from: Date | undefined;\n to?: Date | undefined;\n};\n\nexport type CalendarProps = SCalendarProps & {\n language?: \"vi\" | \"en\";\n variant?: \"default\" | \"rounded\";\n color?: CalendarColor;\n};\n\nexport function Calendar({\n language = \"vi\",\n className,\n captionLayout = \"dropdown\",\n formatters,\n buttonVariant,\n locale,\n variant = \"default\",\n color = \"primary\",\n ...props\n}: CalendarProps) {\n const _locale = locale ? locale : language === \"en\" ? enUS : vi;\n\n return (\n <SCalendar\n {...props}\n locale={_locale}\n buttonVariant={buttonVariant}\n captionLayout={captionLayout}\n variant={variant}\n color={color}\n formatters={{\n formatMonthDropdown: (date: Date) =>\n date.toLocaleString(_locale.code, { month: \"short\" }),\n ...formatters,\n }}\n className={cn(\n \"ds:mx-auto ds:[--cell-size:clamp(0px,calc(100vw/7.5),40px)]\",\n className\n )}\n />\n );\n}\n\nexport const CalendarDayButton = SCalendarDayButton;\nexport type {\n CalendarDayButtonProps,\n CalendarColor,\n} from \"@dsui/ui/components/calendar\";\n"],"names":["Calendar","language","className","captionLayout","formatters","buttonVariant","locale","variant","color","props","_locale","enUS","vi","jsx","SCalendar","date","cn","CalendarDayButton","SCalendarDayButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,SAASA,EAAS;AAAA,EACvB,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,GAAkB;AAChB,QAAMC,IAAUJ,MAAkBL,MAAa,OAAOU,IAAOC;AAE7D,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACE,GAAGL;AAAA,MACJ,QAAQC;AAAA,MACR,eAAAL;AAAA,MACA,eAAAF;AAAA,MACA,SAAAI;AAAA,MACA,OAAAC;AAAA,MACA,YAAY;AAAA,QACV,qBAAqB,CAACO,MACpBA,EAAK,eAAeL,EAAQ,MAAM,EAAE,OAAO,SAAS;AAAA,QACtD,GAAGN;AAAA,MAAA;AAAA,MAEL,WAAWY;AAAA,QACT;AAAA,QACAd;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEO,MAAMe,IAAoBC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, {\n useState,\n useEffect,\n useRef,\n useCallback,\n useMemo,\n Children,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronDown,\n} from \"lucide-react\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ImageViewer } from \"../ImageViewer\";\nimport type { ImageInfo } from \"../ImageViewer\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SliderEffect =\n | \"slide\"\n | \"fade\"\n | \"cube\"\n | \"coverflow\"\n | \"flip\"\n | \"cards\";\n\nexport type SliderDirection = \"horizontal\" | \"vertical\";\n\nexport type PaginationType =\n | \"bullets\"\n | \"fraction\"\n | \"progressbar\"\n | \"scrollbar\"\n | \"custom\";\n\nexport interface AutoplayOptions {\n delay?: number;\n disableOnInteraction?: boolean;\n pauseOnMouseEnter?: boolean;\n reverseDirection?: boolean;\n stopOnLastSlide?: boolean;\n}\n\nexport interface BreakpointOptions {\n slidesPerView?: number;\n spaceBetween?: number;\n slidesPerGroup?: number;\n}\n\nexport interface NavigationOptions {\n enabled?: boolean;\n prevEl?: React.ReactNode;\n nextEl?: React.ReactNode;\n hideOnClick?: boolean;\n position?: \"inside\" | \"outside\"; // inside = overlay on image, outside = beside image\n}\n\nexport interface PaginationOptions {\n enabled?: boolean;\n type?: PaginationType;\n clickable?: boolean;\n dynamicBullets?: boolean;\n dynamicMainBullets?: number;\n position?: \"inside\" | \"outside\"; // inside = overlay on image, outside = below image\n renderBullet?: (index: number, className: string) => React.ReactNode;\n renderFraction?: (\n currentClass: string,\n totalClass: string\n ) => React.ReactNode;\n renderProgressbar?: (progressbarFillClass: string) => React.ReactNode;\n renderScrollbar?: (scrollbarDragClass: string) => React.ReactNode;\n renderCustom?: (current: number, total: number) => React.ReactNode;\n}\n\nexport interface CarouselProps {\n children: React.ReactNode;\n // Core\n initialSlide?: number;\n direction?: SliderDirection;\n speed?: number;\n spaceBetween?: number;\n slidesPerView?: number | \"auto\";\n slidesPerGroup?: number;\n centeredSlides?: boolean;\n loop?: boolean;\n loopedSlides?: number;\n rewind?: boolean;\n effect?: SliderEffect;\n // Responsive breakpoints\n breakpoints?: Record<number, BreakpointOptions>;\n // Navigation\n navigation?: boolean | NavigationOptions;\n // Pagination\n pagination?: boolean | PaginationOptions;\n // Autoplay\n autoplay?: boolean | AutoplayOptions;\n // Interaction\n allowTouchMove?: boolean;\n grabCursor?: boolean;\n keyboard?: boolean;\n mousewheel?: boolean;\n freeMode?: boolean;\n // Styling\n className?: string;\n containerClassName?: string;\n wrapperClassName?: string;\n slideClassName?: string;\n // Image Viewer\n enableImageViewer?: boolean;\n // Callbacks\n onSlideChange?: (swiper: { activeIndex: number; realIndex: number }) => void;\n onReachBeginning?: () => void;\n onReachEnd?: () => void;\n onAutoplayStart?: () => void;\n onAutoplayStop?: () => void;\n}\n\n// ============================================================================\n// Carousel Slide Component Types\n// ============================================================================\n\nexport interface CarouselSlideProps\n extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\n// ============================================================================\n// Carousel Component\n// ============================================================================\n\nexport const Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(\n (\n {\n children,\n initialSlide = 0,\n direction = \"horizontal\",\n speed = 300,\n spaceBetween = 0,\n slidesPerView = 1,\n slidesPerGroup = 1,\n centeredSlides = false,\n loop = false,\n rewind = false,\n effect = \"slide\",\n breakpoints,\n navigation = false,\n pagination = false,\n autoplay = false,\n allowTouchMove = true,\n grabCursor = true,\n keyboard = false,\n mousewheel = false,\n className,\n containerClassName,\n wrapperClassName,\n slideClassName,\n enableImageViewer = false,\n onSlideChange,\n onReachBeginning,\n onReachEnd,\n onAutoplayStart,\n onAutoplayStop,\n },\n ref\n ) => {\n // Parse navigation options\n const navigationOptions: NavigationOptions =\n typeof navigation === \"boolean\"\n ? { enabled: navigation, position: \"inside\" }\n : { enabled: true, position: \"inside\", ...navigation };\n\n // Parse pagination options\n const paginationOptions: PaginationOptions =\n typeof pagination === \"boolean\"\n ? { enabled: pagination, type: \"bullets\", position: \"inside\" }\n : { enabled: true, type: \"bullets\", position: \"inside\", ...pagination };\n\n // Parse autoplay options\n const autoplayOptions: AutoplayOptions = useMemo(\n () =>\n typeof autoplay === \"boolean\"\n ? { delay: 3000, disableOnInteraction: true }\n : { delay: 3000, disableOnInteraction: true, ...autoplay },\n [autoplay]\n );\n\n // State\n const [activeIndex, setActiveIndex] = useState(initialSlide);\n const [isBeginning, setIsBeginning] = useState(initialSlide === 0);\n const [isEnd, setIsEnd] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [translate, setTranslate] = useState(0);\n const [isAutoplayRunning, setIsAutoplayRunning] = useState(false);\n const [showScrollbar, setShowScrollbar] = useState(false);\n const [windowWidth, setWindowWidth] = useState(\n typeof window !== \"undefined\" ? window.innerWidth : 1024\n );\n const [viewerVisible, setViewerVisible] = useState(false);\n const [viewerIndex, setViewerIndex] = useState(0);\n\n // Handle window resize for breakpoints\n useEffect(() => {\n if (!breakpoints) return;\n\n const handleResize = () => {\n setWindowWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [breakpoints]);\n\n // Get current breakpoint values\n const currentBreakpoint = useMemo(() => {\n if (!breakpoints) {\n return { slidesPerView, spaceBetween, slidesPerGroup };\n }\n\n const breakpointKeys = Object.keys(breakpoints)\n .map(Number)\n .sort((a, b) => b - a); // Sort descending\n\n for (const breakpoint of breakpointKeys) {\n if (windowWidth >= breakpoint) {\n return {\n slidesPerView:\n breakpoints[breakpoint].slidesPerView ?? slidesPerView,\n spaceBetween: breakpoints[breakpoint].spaceBetween ?? spaceBetween,\n slidesPerGroup:\n breakpoints[breakpoint].slidesPerGroup ?? slidesPerGroup,\n };\n }\n }\n\n return { slidesPerView, spaceBetween, slidesPerGroup };\n }, [breakpoints, windowWidth, slidesPerView, spaceBetween, slidesPerGroup]);\n\n // Use breakpoint values\n const actualSlidesPerView = currentBreakpoint.slidesPerView;\n const actualSpaceBetween = currentBreakpoint.spaceBetween;\n const actualSlidesPerGroup = currentBreakpoint.slidesPerGroup;\n\n // Refs\n const containerRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const autoplayTimerRef = useRef<number | null>(null);\n const scrollbarTimerRef = useRef<number | null>(null);\n const dragStateRef = useRef({\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n });\n const hasDraggedRef = useRef(false);\n\n // Get slides\n const slides = Children.toArray(children).filter(\n (child) => isValidElement(child) && child.type === CarouselSlide\n );\n const totalSlides = slides.length;\n\n // Helper function to find image in children\n const findImageInChildren = useCallback(\n (\n children: React.ReactNode\n ): React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n > | null => {\n let result: React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n > | null = null;\n\n React.Children.forEach(children, (child) => {\n if (result) return;\n\n if (isValidElement(child)) {\n if (child.type === \"img\") {\n result = child as React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n >;\n } else if (\n child.props &&\n typeof child.props === \"object\" &&\n \"children\" in child.props\n ) {\n result = findImageInChildren(\n child.props.children as React.ReactNode\n );\n }\n }\n });\n\n return result;\n },\n []\n );\n\n // Extract images for ImageViewer\n const imageInfos = useMemo((): ImageInfo[] => {\n if (!enableImageViewer) return [];\n\n return slides.map((slide) => {\n const slideElement = slide as React.ReactElement<CarouselSlideProps>;\n const imgElement = findImageInChildren(slideElement.props.children);\n\n if (imgElement) {\n return {\n src: imgElement.props.src || \"\",\n alt: imgElement.props.alt || \"\",\n };\n }\n\n return { src: \"\", alt: \"\" };\n });\n }, [slides, enableImageViewer, findImageInChildren]);\n\n // Handle slide click for image viewer\n const handleSlideClick = useCallback(\n (index: number) => {\n console.log(\"Slide clicked:\", {\n index,\n enableImageViewer,\n hasSrc: !!imageInfos[index]?.src,\n hasDragged: hasDraggedRef.current,\n imageInfos,\n });\n\n // Only open viewer if not dragged\n if (\n enableImageViewer &&\n imageInfos[index]?.src &&\n !hasDraggedRef.current\n ) {\n console.log(\"Opening viewer at index:\", index);\n setViewerIndex(index);\n setViewerVisible(true);\n }\n },\n [enableImageViewer, imageInfos]\n );\n\n // Calculate visible slides\n const visibleSlides =\n actualSlidesPerView === \"auto\"\n ? 1\n : Math.min(actualSlidesPerView as number, totalSlides);\n\n // Update beginning/end state\n useEffect(() => {\n if (loop) {\n setIsBeginning(false);\n setIsEnd(false);\n } else {\n setIsBeginning(activeIndex === 0);\n setIsEnd(activeIndex >= totalSlides - visibleSlides);\n }\n }, [activeIndex, totalSlides, visibleSlides, loop]);\n\n // Slide to index\n const slideTo = useCallback(\n (index: number) => {\n let newIndex = index;\n\n if (loop) {\n // In loop mode, allow any index\n newIndex = ((index % totalSlides) + totalSlides) % totalSlides;\n } else if (rewind) {\n // In rewind mode, wrap around\n if (index < 0) newIndex = totalSlides - 1;\n else if (index >= totalSlides) newIndex = 0;\n else newIndex = index;\n } else {\n // Normal mode, clamp to bounds\n newIndex = Math.max(0, Math.min(index, totalSlides - visibleSlides));\n }\n\n setActiveIndex(newIndex);\n\n // Calculate translate\n const containerSize =\n direction === \"horizontal\"\n ? containerRef.current?.offsetWidth || 0\n : containerRef.current?.offsetHeight || 0;\n\n const slideSize = containerSize / visibleSlides;\n let newTranslate = -newIndex * (slideSize + actualSpaceBetween);\n\n if (centeredSlides && visibleSlides < totalSlides) {\n newTranslate += containerSize / 2 - slideSize / 2;\n }\n\n setTranslate(newTranslate);\n\n // Show scrollbar on slide change\n if (paginationOptions.type === \"scrollbar\") {\n setShowScrollbar(true);\n if (scrollbarTimerRef.current) {\n clearTimeout(scrollbarTimerRef.current);\n }\n scrollbarTimerRef.current = setTimeout(() => {\n setShowScrollbar(false);\n }, 1000) as unknown as number;\n }\n\n // Callbacks\n onSlideChange?.({ activeIndex: newIndex, realIndex: newIndex });\n\n if (newIndex === 0) onReachBeginning?.();\n if (newIndex >= totalSlides - visibleSlides) onReachEnd?.();\n },\n [\n totalSlides,\n visibleSlides,\n loop,\n rewind,\n direction,\n actualSpaceBetween,\n centeredSlides,\n paginationOptions.type,\n onSlideChange,\n onReachBeginning,\n onReachEnd,\n ]\n );\n\n // Navigation\n const slideNext = useCallback(() => {\n slideTo(activeIndex + actualSlidesPerGroup);\n }, [activeIndex, actualSlidesPerGroup, slideTo]);\n\n const slidePrev = useCallback(() => {\n slideTo(activeIndex - actualSlidesPerGroup);\n }, [activeIndex, actualSlidesPerGroup, slideTo]);\n\n // Autoplay\n const stopAutoplay = useCallback(() => {\n if (autoplayTimerRef.current) {\n clearInterval(autoplayTimerRef.current);\n autoplayTimerRef.current = null;\n }\n setIsAutoplayRunning(false);\n onAutoplayStop?.();\n }, [onAutoplayStop]);\n\n const startAutoplay = useCallback(() => {\n if (!autoplay) return;\n\n autoplayTimerRef.current = setInterval(() => {\n if (autoplayOptions.reverseDirection) {\n slidePrev();\n } else {\n slideNext();\n }\n\n if (autoplayOptions.stopOnLastSlide && isEnd) {\n stopAutoplay();\n }\n }, autoplayOptions.delay) as unknown as number;\n\n setIsAutoplayRunning(true);\n onAutoplayStart?.();\n }, [\n autoplayOptions,\n autoplay,\n slideNext,\n slidePrev,\n isEnd,\n onAutoplayStart,\n stopAutoplay,\n ]);\n\n // Auto-start autoplay\n useEffect(() => {\n if (autoplay) {\n startAutoplay();\n }\n return () => stopAutoplay();\n }, [autoplay, startAutoplay, stopAutoplay]);\n\n // Pause on hover\n const handleMouseEnter = useCallback(() => {\n if (autoplayOptions.pauseOnMouseEnter && isAutoplayRunning) {\n stopAutoplay();\n }\n }, [autoplayOptions.pauseOnMouseEnter, isAutoplayRunning, stopAutoplay]);\n\n const handleMouseLeave = useCallback(() => {\n if (autoplayOptions.pauseOnMouseEnter && autoplay && !isAutoplayRunning) {\n startAutoplay();\n }\n }, [\n autoplayOptions.pauseOnMouseEnter,\n autoplay,\n isAutoplayRunning,\n startAutoplay,\n ]);\n\n // Touch/drag handlers\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (!allowTouchMove) return;\n\n try {\n e.currentTarget.setPointerCapture(e.pointerId);\n } catch (err) {\n console.error(\"Failed to capture pointer:\", err);\n }\n\n dragStateRef.current.startX = e.clientX;\n dragStateRef.current.startY = e.clientY;\n dragStateRef.current.currentX = e.clientX;\n dragStateRef.current.currentY = e.clientY;\n hasDraggedRef.current = false;\n setIsDragging(true);\n\n if (autoplayOptions.disableOnInteraction) {\n stopAutoplay();\n }\n },\n [allowTouchMove, autoplayOptions.disableOnInteraction, stopAutoplay]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!allowTouchMove) return;\n\n const startX = dragStateRef.current.startX;\n const startY = dragStateRef.current.startY;\n\n // Check if drag has started (startX/Y are set)\n if (startX === 0 && startY === 0) return;\n\n e.preventDefault();\n dragStateRef.current.currentX = e.clientX;\n dragStateRef.current.currentY = e.clientY;\n\n // Mark as dragged if moved more than 5px\n const diffX = Math.abs(e.clientX - dragStateRef.current.startX);\n const diffY = Math.abs(e.clientY - dragStateRef.current.startY);\n if (diffX > 5 || diffY > 5) {\n hasDraggedRef.current = true;\n }\n\n setIsDragging(true);\n },\n [allowTouchMove]\n );\n\n const handlePointerUp = useCallback(() => {\n const startX = dragStateRef.current.startX;\n const startY = dragStateRef.current.startY;\n\n // Check if we actually dragged\n if (startX === 0 && startY === 0) return;\n\n const diffX = dragStateRef.current.currentX - startX;\n const diffY = dragStateRef.current.currentY - startY;\n const diff = direction === \"horizontal\" ? diffX : diffY;\n\n // Determine slide action with lower threshold\n const threshold = 0;\n if (Math.abs(diff) > threshold && hasDraggedRef.current) {\n if (diff > 0) {\n // Swipe right/down = previous slide\n slidePrev();\n } else {\n // Swipe left/up = next slide\n slideNext();\n }\n } else {\n // Snap back to current\n slideTo(activeIndex);\n }\n\n // Reset after a small delay to allow onClick to check the flag\n setTimeout(() => {\n setIsDragging(false);\n dragStateRef.current.startX = 0;\n dragStateRef.current.startY = 0;\n dragStateRef.current.currentX = 0;\n dragStateRef.current.currentY = 0;\n hasDraggedRef.current = false;\n }, 50);\n }, [direction, slidePrev, slideNext, slideTo, activeIndex]);\n\n // Keyboard navigation\n useEffect(() => {\n if (!keyboard) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n slidePrev();\n } else if (e.key === \"ArrowRight\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n slideNext();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [keyboard, slideNext, slidePrev]);\n\n // Mousewheel navigation\n useEffect(() => {\n if (!mousewheel) return;\n\n const handleWheel = (e: WheelEvent) => {\n e.preventDefault();\n if (e.deltaY > 0) slideNext();\n else if (e.deltaY < 0) slidePrev();\n };\n\n const container = containerRef.current;\n if (container) {\n container.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => container.removeEventListener(\"wheel\", handleWheel);\n }\n }, [mousewheel, slideNext, slidePrev]);\n\n // Render pagination\n const renderPagination = () => {\n if (!paginationOptions.enabled) return null;\n\n const {\n type,\n clickable,\n dynamicBullets,\n dynamicMainBullets = 1,\n position = \"inside\",\n } = paginationOptions;\n\n const isOutside = position === \"outside\";\n\n if (type === \"bullets\") {\n const bulletsToShow = dynamicBullets\n ? Math.min(dynamicMainBullets * 2 + 1, totalSlides)\n : totalSlides;\n\n return (\n <div\n className={cn(\n \"ds:flex ds:items-center ds:justify-center ds:gap-2\",\n isOutside\n ? \"ds:mt-4\" // Outside: margin-top for spacing\n : \"ds:absolute ds:bottom-4 ds:left-1/2 ds:-translate-x-1/2\", // Inside: overlay\n direction === \"vertical\" &&\n !isOutside &&\n \"ds:flex-col ds:right-4 ds:left-auto ds:top-1/2 ds:-translate-y-1/2 ds:translate-x-0 ds:bottom-auto\"\n )}\n >\n {Array.from({ length: bulletsToShow }).map((_, i) => {\n const bulletIndex = dynamicBullets\n ? Math.max(\n 0,\n Math.min(\n i + activeIndex - dynamicMainBullets,\n totalSlides - 1\n )\n )\n : i;\n\n const isActive = bulletIndex === activeIndex;\n\n return paginationOptions.renderBullet ? (\n <React.Fragment key={bulletIndex}>\n {paginationOptions.renderBullet(\n bulletIndex,\n cn(\n \"ds:carousel-pagination-bullet\",\n isActive && \"ds:carousel-pagination-bullet-active\"\n )\n )}\n </React.Fragment>\n ) : (\n <button\n key={bulletIndex}\n onClick={() => clickable && slideTo(bulletIndex)}\n className={cn(\n \"ds:rounded-full ds:transition-all\",\n direction === \"horizontal\" ? \"ds:w-2 ds:h-2\" : \"ds:w-2 ds:h-2\",\n isActive\n ? direction === \"horizontal\"\n ? \"ds:bg-primary ds:w-6\"\n : \"ds:bg-primary ds:h-6\"\n : \"ds:bg-muted-foreground/30 ds:hover:bg-muted-foreground/50\",\n clickable && \"ds:cursor-pointer\"\n )}\n aria-label={`Go to slide ${bulletIndex + 1}`}\n />\n );\n })}\n </div>\n );\n }\n\n if (type === \"fraction\") {\n return (\n <div\n className={cn(\n \"ds:text-center ds:text-sm ds:text-muted-foreground ds:bg-background/80 ds:backdrop-blur ds:px-3 ds:py-1 ds:rounded-full\",\n isOutside\n ? \"ds:mt-4 ds:mx-auto ds:w-fit\" // Outside: centered with margin\n : \"ds:absolute ds:bottom-4 ds:left-1/2 ds:-translate-x-1/2\" // Inside: overlay\n )}\n >\n {paginationOptions.renderFraction ? (\n paginationOptions.renderFraction(\n \"carousel-pagination-current\",\n \"carousel-pagination-total\"\n )\n ) : (\n <>\n <span className=\"ds:carousel-pagination-current ds:font-semibold ds:text-foreground\">\n {activeIndex + 1}\n </span>\n {\" / \"}\n <span className=\"ds:carousel-pagination-total\">{totalSlides}</span>\n </>\n )}\n </div>\n );\n }\n\n if (type === \"progressbar\") {\n const progress = ((activeIndex + 1) / totalSlides) * 100;\n const isInside = paginationOptions.position === \"inside\";\n\n const handleProgressbarClick = (\n e: React.MouseEvent<HTMLDivElement>\n ) => {\n if (!clickable) return;\n const rect = e.currentTarget.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percentage = clickX / rect.width;\n const targetIndex = Math.floor(percentage * totalSlides);\n slideTo(Math.min(targetIndex, totalSlides - 1));\n };\n\n return (\n <div\n onClick={handleProgressbarClick}\n className={cn(\n \"ds:w-full ds:h-1 ds:bg-muted ds:rounded-full ds:overflow-hidden\",\n isInside\n ? \"ds:absolute ds:bottom-0 ds:left-0 ds:right-0 ds:rounded-none\"\n : \"ds:mt-4\",\n clickable && \"ds:cursor-pointer\"\n )}\n >\n {paginationOptions.renderProgressbar ? (\n paginationOptions.renderProgressbar(\"carousel-progressbar-fill\")\n ) : (\n <div\n className=\"ds:carousel-progressbar-fill ds:h-full ds:bg-primary ds:transition-all ds:duration-300\"\n style={{ width: `${progress}%` }}\n />\n )}\n </div>\n );\n }\n\n if (type === \"custom\" && paginationOptions.renderCustom) {\n return (\n <div\n className={cn(\n isOutside\n ? \"ds:mt-4 ds:flex ds:justify-center\" // Outside: centered with margin\n : \"ds:absolute ds:bottom-4 ds:left-1/2 ds:-translate-x-1/2\" // Inside: overlay\n )}\n >\n {paginationOptions.renderCustom(activeIndex + 1, totalSlides)}\n </div>\n );\n }\n\n if (type === \"scrollbar\") {\n const dragWidth = (1 / totalSlides) * 100;\n const scrollPosition =\n (activeIndex / (totalSlides - 1)) * (100 - dragWidth);\n\n const handleScrollbarClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!clickable) return;\n\n // Show scrollbar on click\n setShowScrollbar(true);\n if (scrollbarTimerRef.current) {\n clearTimeout(scrollbarTimerRef.current);\n }\n\n const rect = e.currentTarget.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percentage = clickX / rect.width;\n const targetIndex = Math.round(percentage * (totalSlides - 1));\n slideTo(Math.max(0, Math.min(targetIndex, totalSlides - 1)));\n\n // Hide after 1s\n scrollbarTimerRef.current = setTimeout(() => {\n setShowScrollbar(false);\n }, 1000) as unknown as number;\n };\n\n return (\n <div\n onClick={handleScrollbarClick}\n className={cn(\n \"ds:w-full ds:h-1 ds:bg-muted/50 ds:rounded-full ds:transition-opacity ds:duration-300\",\n isOutside\n ? \"ds:mt-4\" // Outside: margin-top for spacing\n : \"ds:absolute ds:bottom-0 ds:left-1/2 ds:-translate-x-1/2\", // Inside: overlay at bottom\n clickable && \"ds:cursor-pointer\",\n showScrollbar ? \"ds:opacity-100\" : \"ds:opacity-0\"\n )}\n >\n {paginationOptions.renderScrollbar ? (\n paginationOptions.renderScrollbar(\"carousel-scrollbar-drag\")\n ) : (\n <div\n className=\"ds:carousel-scrollbar-drag ds:h-full ds:bg-primary ds:rounded-full ds:transition-all ds:duration-300 ds:absolute ds:left-0\"\n style={{\n width: `${dragWidth}%`,\n left: `${scrollPosition}%`,\n }}\n />\n )}\n </div>\n );\n }\n\n return null;\n };\n\n // Get effect transform/classes for slides\n const getSlideTransform = (index: number) => {\n const diff = index - activeIndex;\n\n switch (effect) {\n case \"fade\":\n return {\n opacity: diff === 0 ? 1 : 0,\n zIndex: diff === 0 ? 10 : 0,\n };\n case \"cube\":\n return {\n transform: `translateX(${diff * 100}%) rotateY(${diff * -90}deg)`,\n transformOrigin: diff > 0 ? \"left center\" : \"right center\",\n };\n case \"coverflow\":\n return {\n transform: `translateX(${diff * 60}%) translateZ(${Math.abs(diff) * -100}px) rotateY(${diff * -50}deg)`,\n zIndex: -Math.abs(diff),\n };\n case \"flip\":\n return {\n transform: `rotateY(${diff * 180}deg)`,\n backfaceVisibility: \"hidden\" as const,\n };\n case \"cards\":\n return {\n transform: `translateX(${diff * 50}px) translateZ(${-Math.abs(diff) * 100}px) scale(${1 - Math.abs(diff) * 0.2})`,\n opacity: diff === 0 ? 1 : 0.5,\n zIndex: 100 - Math.abs(diff) * 10,\n transition: \"all 0.5s ease\",\n };\n default:\n return {};\n }\n };\n\n return (\n <>\n <div\n ref={ref}\n className={cn(\"ds:carousel-container\", containerClassName, className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div\n ref={containerRef}\n className={cn(\n \"ds:carousel ds:relative ds:overflow-hidden\",\n (effect === \"fade\" ||\n effect === \"cube\" ||\n effect === \"flip\" ||\n effect === \"cards\") &&\n \"ds:aspect-4/3\",\n effect === \"coverflow\" && \"ds:aspect-4/2 ds:rounded-xl\",\n direction === \"vertical\" && effect === \"slide\" && \"ds:h-full\",\n grabCursor && allowTouchMove && !isDragging && \"ds:cursor-grab\",\n isDragging && \"ds:cursor-grabbing\"\n )}\n >\n {/* Wrapper */}\n <div\n ref={wrapperRef}\n className={cn(\n \"ds:carousel-wrapper ds:select-none\",\n effect === \"slide\" && \"ds:flex\",\n direction === \"vertical\" &&\n effect === \"slide\" &&\n \"ds:flex-col ds:h-full\",\n effect !== \"slide\" && \"ds:relative\",\n wrapperClassName\n )}\n style={{\n transform:\n effect === \"slide\"\n ? direction === \"horizontal\"\n ? `translateX(${translate}px)`\n : `translateY(${translate}px)`\n : undefined,\n transition: isDragging ? \"none\" : `transform ${speed}ms ease`,\n gap: effect === \"slide\" ? `${actualSpaceBetween}px` : undefined,\n perspective:\n effect !== \"slide\" && effect !== \"fade\"\n ? \"1200px\"\n : undefined,\n touchAction: allowTouchMove ? \"none\" : \"auto\",\n height:\n direction === \"vertical\" && effect === \"slide\"\n ? \"100%\"\n : undefined,\n }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n >\n {slides.map((slide, index) => {\n const isActive = index === activeIndex;\n const slideElement =\n slide as React.ReactElement<CarouselSlideProps>;\n\n return cloneElement(slideElement, {\n key: index,\n className: cn(\n \"ds:carousel-slide\",\n slideClassName,\n slideElement.props.className,\n effect !== \"slide\" && \"ds:absolute ds:inset-0\",\n effect === \"fade\" && \"ds:transition-opacity ds:duration-300\",\n effect !== \"slide\" &&\n effect !== \"fade\" &&\n \"ds:transition-all ds:duration-500\",\n enableImageViewer &&\n imageInfos[index]?.src &&\n \"ds:cursor-pointer\"\n ),\n style: {\n flex:\n effect === \"slide\"\n ? direction === \"vertical\"\n ? `0 0 100%`\n : `0 0 calc(${100 / visibleSlides}% - ${(actualSpaceBetween * (visibleSlides - 1)) / visibleSlides}px)`\n : undefined,\n minWidth:\n effect === \"slide\" && direction === \"horizontal\"\n ? 0\n : undefined,\n minHeight:\n effect === \"slide\" && direction === \"vertical\"\n ? 0\n : undefined,\n height:\n direction === \"vertical\" && effect === \"slide\"\n ? \"100%\"\n : undefined,\n userSelect: \"none\",\n // @ts-expect-error - WebkitUserDrag is not in CSSProperties but is valid CSS\n WebkitUserDrag: \"none\",\n ...(effect !== \"slide\" ? getSlideTransform(index) : {}),\n ...slideElement.props.style,\n } as React.CSSProperties,\n onClick: (e: React.MouseEvent) => {\n e.stopPropagation();\n handleSlideClick(index);\n },\n onDragStart: (e: React.DragEvent) => e.preventDefault(),\n \"data-active\": isActive,\n \"data-index\": index,\n } as Partial<CarouselSlideProps>);\n })}\n </div>\n\n {/* Pagination - Inside only (overlay on slider) */}\n {paginationOptions.enabled &&\n paginationOptions.position !== \"outside\" &&\n renderPagination()}\n\n {/* Navigation - Inside (overlay on slider) */}\n {navigationOptions.enabled &&\n navigationOptions.position === \"inside\" && (\n <>\n <button\n onClick={slidePrev}\n disabled={!loop && !rewind && isBeginning}\n className={cn(\n \"ds:absolute ds:z-10 ds:w-10 ds:h-10 ds:rounded-full ds:bg-background/80 ds:backdrop-blur ds:shadow-lg ds:flex ds:items-center ds:justify-center ds:transition-all ds:hover:bg-background ds:disabled:opacity-30 ds:disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"ds:left-4 ds:top-1/2 ds:-translate-y-1/2\"\n : \"ds:top-4 ds:left-1/2 ds:-translate-x-1/2\"\n )}\n aria-label=\"Previous slide\"\n >\n {navigationOptions.prevEl ||\n (direction === \"horizontal\" ? (\n <ChevronLeft className=\"ds:w-5 ds:h-5\" />\n ) : (\n <ChevronUp className=\"ds:w-5 ds:h-5\" />\n ))}\n </button>\n <button\n onClick={slideNext}\n disabled={!loop && !rewind && isEnd}\n className={cn(\n \"ds:absolute ds:z-10 ds:w-10 ds:h-10 ds:rounded-full ds:bg-background/80 ds:backdrop-blur ds:shadow-lg ds:flex ds:items-center ds:justify-center ds:transition-all ds:hover:bg-background ds:disabled:opacity-30 ds:disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"ds:right-4 ds:top-1/2 ds:-translate-y-1/2\"\n : \"ds:bottom-4 ds:left-1/2 ds:-translate-x-1/2\"\n )}\n aria-label=\"Next slide\"\n >\n {navigationOptions.nextEl ||\n (direction === \"horizontal\" ? (\n <ChevronRight className=\"ds:w-5 ds:h-5\" />\n ) : (\n <ChevronDown className=\"ds:w-5 ds:h-5\" />\n ))}\n </button>\n </>\n )}\n </div>\n\n {/* Pagination - Outside (below slider) */}\n {paginationOptions.enabled &&\n paginationOptions.position === \"outside\" &&\n renderPagination()}\n </div>\n\n {/* Image Viewer */}\n {enableImageViewer && imageInfos.length > 0 && (\n <ImageViewer\n images={imageInfos}\n visible={viewerVisible}\n onClose={() => {\n console.log(\"Closing viewer\");\n setViewerVisible(false);\n }}\n activeIndex={viewerIndex}\n onIndexChange={setViewerIndex}\n />\n )}\n {/* {enableImageViewer && (\n <div\n style={{\n position: \"fixed\",\n top: 10,\n right: 10,\n background: \"white\",\n padding: \"10px\",\n zIndex: 9999,\n fontSize: \"12px\",\n }}\n >\n Debug: visible={String(viewerVisible)}, images={imageInfos.length},\n index={viewerIndex}\n </div>\n )} */}\n </>\n );\n }\n);\n\nCarousel.displayName = \"Carousel\";\n\n// ============================================================================\n// Carousel Slide Component\n// ============================================================================\n\nexport const CarouselSlide = React.forwardRef<\n HTMLDivElement,\n CarouselSlideProps\n>(({ children, className, style, ...props }, ref) => {\n return (\n <div ref={ref} className={className} style={style} {...props}>\n {children}\n </div>\n );\n});\n\nCarouselSlide.displayName = \"CarouselSlide\";\n\nexport default Carousel;\n"],"names":["Carousel","React","children","initialSlide","direction","speed","spaceBetween","slidesPerView","slidesPerGroup","centeredSlides","loop","rewind","effect","breakpoints","navigation","pagination","autoplay","allowTouchMove","grabCursor","keyboard","mousewheel","className","containerClassName","wrapperClassName","slideClassName","enableImageViewer","onSlideChange","onReachBeginning","onReachEnd","onAutoplayStart","onAutoplayStop","ref","navigationOptions","paginationOptions","autoplayOptions","useMemo","activeIndex","setActiveIndex","useState","isBeginning","setIsBeginning","isEnd","setIsEnd","isDragging","setIsDragging","translate","setTranslate","isAutoplayRunning","setIsAutoplayRunning","showScrollbar","setShowScrollbar","windowWidth","setWindowWidth","viewerVisible","setViewerVisible","viewerIndex","setViewerIndex","useEffect","handleResize","currentBreakpoint","breakpointKeys","a","b","breakpoint","actualSlidesPerView","actualSpaceBetween","actualSlidesPerGroup","containerRef","useRef","wrapperRef","autoplayTimerRef","scrollbarTimerRef","dragStateRef","hasDraggedRef","slides","Children","child","isValidElement","CarouselSlide","totalSlides","findImageInChildren","useCallback","result","imageInfos","slide","imgElement","handleSlideClick","index","visibleSlides","slideTo","newIndex","containerSize","slideSize","newTranslate","slideNext","slidePrev","stopAutoplay","startAutoplay","handleMouseEnter","handleMouseLeave","handlePointerDown","e","err","handlePointerMove","startX","startY","diffX","diffY","handlePointerUp","diff","handleKeyDown","handleWheel","container","renderPagination","type","clickable","dynamicBullets","dynamicMainBullets","position","isOutside","bulletsToShow","jsx","cn","_","i","bulletIndex","isActive","jsxs","Fragment","progress","isInside","rect","percentage","targetIndex","dragWidth","scrollPosition","getSlideTransform","slideElement","cloneElement","ChevronLeft","ChevronUp","ChevronRight","ChevronDown","ImageViewer","style","props"],"mappings":";;;;;AAwIO,MAAMA,KAAWC,EAAM;AAAA,EAC5B,CACE;AAAA,IACE,UAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,WAAAC,IAAY;AAAA,IACZ,OAAAC,KAAQ;AAAA,IACR,cAAAC,IAAe;AAAA,IACf,eAAAC,IAAgB;AAAA,IAChB,gBAAAC,IAAiB;AAAA,IACjB,gBAAAC,KAAiB;AAAA,IACjB,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,QAAAC,IAAS;AAAA,IACT,aAAAC;AAAA,IACA,YAAAC,KAAa;AAAA,IACb,YAAAC,KAAa;AAAA,IACb,UAAAC,IAAW;AAAA,IACX,gBAAAC,IAAiB;AAAA,IACjB,YAAAC,KAAa;AAAA,IACb,UAAAC,KAAW;AAAA,IACX,YAAAC,KAAa;AAAA,IACb,WAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC,IAAoB;AAAA,IACpB,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,GAEFC,OACG;AAEH,UAAMC,IACJ,OAAOlB,MAAe,YAClB,EAAE,SAASA,IAAY,UAAU,SAAA,IACjC,EAAE,SAAS,IAAM,UAAU,UAAU,GAAGA,GAAA,GAGxCmB,IACJ,OAAOlB,MAAe,YAClB,EAAE,SAASA,IAAY,MAAM,WAAW,UAAU,aAClD,EAAE,SAAS,IAAM,MAAM,WAAW,UAAU,UAAU,GAAGA,GAAA,GAGzDmB,IAAmCC;AAAA,MACvC,MACE,OAAOnB,KAAa,YAChB,EAAE,OAAO,KAAM,sBAAsB,GAAA,IACrC,EAAE,OAAO,KAAM,sBAAsB,IAAM,GAAGA,EAAA;AAAA,MACpD,CAACA,CAAQ;AAAA,IAAA,GAIL,CAACoB,GAAaC,EAAc,IAAIC,EAASnC,CAAY,GACrD,CAACoC,IAAaC,EAAc,IAAIF,EAASnC,MAAiB,CAAC,GAC3D,CAACsC,IAAOC,EAAQ,IAAIJ,EAAS,EAAK,GAClC,CAACK,IAAYC,EAAa,IAAIN,EAAS,EAAK,GAC5C,CAACO,IAAWC,EAAY,IAAIR,EAAS,CAAC,GACtC,CAACS,GAAmBC,EAAoB,IAAIV,EAAS,EAAK,GAC1D,CAACW,IAAeC,CAAgB,IAAIZ,EAAS,EAAK,GAClD,CAACa,IAAaC,EAAc,IAAId;AAAA,MACpC,OAAO,SAAW,MAAc,OAAO,aAAa;AAAA,IAAA,GAEhD,CAACe,IAAeC,EAAgB,IAAIhB,EAAS,EAAK,GAClD,CAACiB,IAAaC,EAAc,IAAIlB,EAAS,CAAC;AAGhD,IAAAmB,EAAU,MAAM;AACd,UAAI,CAAC5C,EAAa;AAElB,YAAM6C,IAAe,MAAM;AACzB,QAAAN,GAAe,OAAO,UAAU;AAAA,MAClC;AAEA,oBAAO,iBAAiB,UAAUM,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,IAChE,GAAG,CAAC7C,CAAW,CAAC;AAGhB,UAAM8C,KAAoBxB,GAAQ,MAAM;AACtC,UAAI,CAACtB;AACH,eAAO,EAAE,eAAAN,GAAe,cAAAD,GAAc,gBAAAE,EAAA;AAGxC,YAAMoD,IAAiB,OAAO,KAAK/C,CAAW,EAC3C,IAAI,MAAM,EACV,KAAK,CAACgD,GAAGC,MAAMA,IAAID,CAAC;AAEvB,iBAAWE,KAAcH;AACvB,YAAIT,MAAeY;AACjB,iBAAO;AAAA,YACL,eACElD,EAAYkD,CAAU,EAAE,iBAAiBxD;AAAA,YAC3C,cAAcM,EAAYkD,CAAU,EAAE,gBAAgBzD;AAAA,YACtD,gBACEO,EAAYkD,CAAU,EAAE,kBAAkBvD;AAAA,UAAA;AAKlD,aAAO,EAAE,eAAAD,GAAe,cAAAD,GAAc,gBAAAE,EAAA;AAAA,IACxC,GAAG,CAACK,GAAasC,IAAa5C,GAAeD,GAAcE,CAAc,CAAC,GAGpEwD,KAAsBL,GAAkB,eACxCM,IAAqBN,GAAkB,cACvCO,IAAuBP,GAAkB,gBAGzCQ,IAAeC,EAAuB,IAAI,GAC1CC,KAAaD,EAAuB,IAAI,GACxCE,IAAmBF,EAAsB,IAAI,GAC7CG,IAAoBH,EAAsB,IAAI,GAC9CI,IAAeJ,EAAO;AAAA,MAC1B,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,IAAA,CACX,GACKK,IAAgBL,EAAO,EAAK,GAG5BM,IAASC,GAAS,QAAQzE,CAAQ,EAAE;AAAA,MACxC,CAAC0E,MAAUC,GAAeD,CAAK,KAAKA,EAAM,SAASE;AAAA,IAAA,GAE/CC,IAAcL,EAAO,QAGrBM,KAAsBC;AAAA,MAC1B,CACE/E,MAGU;AACV,YAAIgF,IAEO;AAEXjF,eAAAA,EAAM,SAAS,QAAQC,GAAU,CAAC0E,MAAU;AAC1C,UAAIM,KAEAL,GAAeD,CAAK,MAClBA,EAAM,SAAS,QACjBM,IAASN,IAITA,EAAM,SACN,OAAOA,EAAM,SAAU,YACvB,cAAcA,EAAM,UAEpBM,IAASF;AAAA,YACPJ,EAAM,MAAM;AAAA,UAAA;AAAA,QAIpB,CAAC,GAEMM;AAAA,MACT;AAAA,MACA,CAAA;AAAA,IAAC,GAIGC,IAAahD,GAAQ,MACpBV,IAEEiD,EAAO,IAAI,CAACU,MAAU;AAE3B,YAAMC,IAAaL,GADEI,EAC+B,MAAM,QAAQ;AAElE,aAAIC,IACK;AAAA,QACL,KAAKA,EAAW,MAAM,OAAO;AAAA,QAC7B,KAAKA,EAAW,MAAM,OAAO;AAAA,MAAA,IAI1B,EAAE,KAAK,IAAI,KAAK,GAAA;AAAA,IACzB,CAAC,IAd8B,CAAA,GAe9B,CAACX,GAAQjD,GAAmBuD,EAAmB,CAAC,GAG7CM,KAAmBL;AAAA,MACvB,CAACM,MAAkB;AACjB,gBAAQ,IAAI,kBAAkB;AAAA,UAC5B,OAAAA;AAAA,UACA,mBAAA9D;AAAA,UACA,QAAQ,CAAC,CAAC0D,EAAWI,CAAK,GAAG;AAAA,UAC7B,YAAYd,EAAc;AAAA,UAC1B,YAAAU;AAAA,QAAA,CACD,GAIC1D,KACA0D,EAAWI,CAAK,GAAG,OACnB,CAACd,EAAc,YAEf,QAAQ,IAAI,4BAA4Bc,CAAK,GAC7C/B,GAAe+B,CAAK,GACpBjC,GAAiB,EAAI;AAAA,MAEzB;AAAA,MACA,CAAC7B,GAAmB0D,CAAU;AAAA,IAAA,GAI1BK,IACJxB,OAAwB,SACpB,IACA,KAAK,IAAIA,IAA+Be,CAAW;AAGzD,IAAAtB,EAAU,MAAM;AACd,MAAI/C,KACF8B,GAAe,EAAK,GACpBE,GAAS,EAAK,MAEdF,GAAeJ,MAAgB,CAAC,GAChCM,GAASN,KAAe2C,IAAcS,CAAa;AAAA,IAEvD,GAAG,CAACpD,GAAa2C,GAAaS,GAAe9E,CAAI,CAAC;AAGlD,UAAM+E,IAAUR;AAAA,MACd,CAACM,MAAkB;AACjB,YAAIG,IAAWH;AAEf,QAAI7E,IAEFgF,KAAaH,IAAQR,IAAeA,KAAeA,IAC1CpE,IAEL4E,IAAQ,IAAGG,IAAWX,IAAc,IAC/BQ,KAASR,IAAaW,IAAW,IACrCA,IAAWH,IAGhBG,IAAW,KAAK,IAAI,GAAG,KAAK,IAAIH,GAAOR,IAAcS,CAAa,CAAC,GAGrEnD,GAAeqD,CAAQ;AAGvB,cAAMC,IACJvF,MAAc,eACV+D,EAAa,SAAS,eAAe,IACrCA,EAAa,SAAS,gBAAgB,GAEtCyB,IAAYD,IAAgBH;AAClC,YAAIK,IAAe,CAACH,KAAYE,IAAY3B;AAE5C,QAAIxD,MAAkB+E,IAAgBT,MACpCc,KAAgBF,IAAgB,IAAIC,IAAY,IAGlD9C,GAAa+C,CAAY,GAGrB5D,EAAkB,SAAS,gBAC7BiB,EAAiB,EAAI,GACjBqB,EAAkB,WACpB,aAAaA,EAAkB,OAAO,GAExCA,EAAkB,UAAU,WAAW,MAAM;AAC3C,UAAArB,EAAiB,EAAK;AAAA,QACxB,GAAG,GAAI,IAITxB,KAAgB,EAAE,aAAagE,GAAU,WAAWA,GAAU,GAE1DA,MAAa,KAAG/D,KAAA,GAChB+D,KAAYX,IAAcS,KAAe5D,KAAA;AAAA,MAC/C;AAAA,MACA;AAAA,QACEmD;AAAA,QACAS;AAAA,QACA9E;AAAA,QACAC;AAAA,QACAP;AAAA,QACA6D;AAAA,QACAxD;AAAA,QACAwB,EAAkB;AAAA,QAClBP;AAAA,QACAC;AAAA,QACAC;AAAA,MAAA;AAAA,IACF,GAIIkE,IAAYb,EAAY,MAAM;AAClC,MAAAQ,EAAQrD,IAAc8B,CAAoB;AAAA,IAC5C,GAAG,CAAC9B,GAAa8B,GAAsBuB,CAAO,CAAC,GAEzCM,IAAYd,EAAY,MAAM;AAClC,MAAAQ,EAAQrD,IAAc8B,CAAoB;AAAA,IAC5C,GAAG,CAAC9B,GAAa8B,GAAsBuB,CAAO,CAAC,GAGzCO,IAAef,EAAY,MAAM;AACrC,MAAIX,EAAiB,YACnB,cAAcA,EAAiB,OAAO,GACtCA,EAAiB,UAAU,OAE7BtB,GAAqB,EAAK,GAC1BlB,KAAA;AAAA,IACF,GAAG,CAACA,EAAc,CAAC,GAEbmE,IAAgBhB,EAAY,MAAM;AACtC,MAAKjE,MAELsD,EAAiB,UAAU,YAAY,MAAM;AAC3C,QAAIpC,EAAgB,mBAClB6D,EAAA,IAEAD,EAAA,GAGE5D,EAAgB,mBAAmBO,MACrCuD,EAAA;AAAA,MAEJ,GAAG9D,EAAgB,KAAK,GAExBc,GAAqB,EAAI,GACzBnB,KAAA;AAAA,IACF,GAAG;AAAA,MACDK;AAAA,MACAlB;AAAA,MACA8E;AAAA,MACAC;AAAA,MACAtD;AAAA,MACAZ;AAAA,MACAmE;AAAA,IAAA,CACD;AAGD,IAAAvC,EAAU,OACJzC,KACFiF,EAAA,GAEK,MAAMD,EAAA,IACZ,CAAChF,GAAUiF,GAAeD,CAAY,CAAC;AAG1C,UAAME,KAAmBjB,EAAY,MAAM;AACzC,MAAI/C,EAAgB,qBAAqBa,KACvCiD,EAAA;AAAA,IAEJ,GAAG,CAAC9D,EAAgB,mBAAmBa,GAAmBiD,CAAY,CAAC,GAEjEG,KAAmBlB,EAAY,MAAM;AACzC,MAAI/C,EAAgB,qBAAqBlB,KAAY,CAAC+B,KACpDkD,EAAA;AAAA,IAEJ,GAAG;AAAA,MACD/D,EAAgB;AAAA,MAChBlB;AAAA,MACA+B;AAAA,MACAkD;AAAA,IAAA,CACD,GAGKG,KAAoBnB;AAAA,MACxB,CAACoB,MAA0B;AACzB,YAAKpF,GAEL;AAAA,cAAI;AACF,YAAAoF,EAAE,cAAc,kBAAkBA,EAAE,SAAS;AAAA,UAC/C,SAASC,GAAK;AACZ,oBAAQ,MAAM,8BAA8BA,CAAG;AAAA,UACjD;AAEA,UAAA9B,EAAa,QAAQ,SAAS6B,EAAE,SAChC7B,EAAa,QAAQ,SAAS6B,EAAE,SAChC7B,EAAa,QAAQ,WAAW6B,EAAE,SAClC7B,EAAa,QAAQ,WAAW6B,EAAE,SAClC5B,EAAc,UAAU,IACxB7B,GAAc,EAAI,GAEdV,EAAgB,wBAClB8D,EAAA;AAAA;AAAA,MAEJ;AAAA,MACA,CAAC/E,GAAgBiB,EAAgB,sBAAsB8D,CAAY;AAAA,IAAA,GAG/DO,KAAoBtB;AAAA,MACxB,CAACoB,MAA0B;AACzB,YAAI,CAACpF,EAAgB;AAErB,cAAMuF,IAAShC,EAAa,QAAQ,QAC9BiC,IAASjC,EAAa,QAAQ;AAGpC,YAAIgC,MAAW,KAAKC,MAAW,EAAG;AAElC,QAAAJ,EAAE,eAAA,GACF7B,EAAa,QAAQ,WAAW6B,EAAE,SAClC7B,EAAa,QAAQ,WAAW6B,EAAE;AAGlC,cAAMK,IAAQ,KAAK,IAAIL,EAAE,UAAU7B,EAAa,QAAQ,MAAM,GACxDmC,IAAQ,KAAK,IAAIN,EAAE,UAAU7B,EAAa,QAAQ,MAAM;AAC9D,SAAIkC,IAAQ,KAAKC,IAAQ,OACvBlC,EAAc,UAAU,KAG1B7B,GAAc,EAAI;AAAA,MACpB;AAAA,MACA,CAAC3B,CAAc;AAAA,IAAA,GAGX2F,KAAkB3B,EAAY,MAAM;AACxC,YAAMuB,IAAShC,EAAa,QAAQ,QAC9BiC,IAASjC,EAAa,QAAQ;AAGpC,UAAIgC,MAAW,KAAKC,MAAW,EAAG;AAElC,YAAMC,IAAQlC,EAAa,QAAQ,WAAWgC,GACxCG,IAAQnC,EAAa,QAAQ,WAAWiC,GACxCI,IAAOzG,MAAc,eAAesG,IAAQC;AAIlD,MAAI,KAAK,IAAIE,CAAI,IADC,KACgBpC,EAAc,UAC1CoC,IAAO,IAETd,EAAA,IAGAD,EAAA,IAIFL,EAAQrD,CAAW,GAIrB,WAAW,MAAM;AACf,QAAAQ,GAAc,EAAK,GACnB4B,EAAa,QAAQ,SAAS,GAC9BA,EAAa,QAAQ,SAAS,GAC9BA,EAAa,QAAQ,WAAW,GAChCA,EAAa,QAAQ,WAAW,GAChCC,EAAc,UAAU;AAAA,MAC1B,GAAG,EAAE;AAAA,IACP,GAAG,CAACrE,GAAW2F,GAAWD,GAAWL,GAASrD,CAAW,CAAC;AAG1D,IAAAqB,EAAU,MAAM;AACd,UAAI,CAACtC,GAAU;AAEf,YAAM2F,IAAgB,CAAC,MAAqB;AAC1C,QAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,aACrC,EAAE,eAAA,GACFf,EAAA,MACS,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,iBAC7C,EAAE,eAAA,GACFD,EAAA;AAAA,MAEJ;AAEA,oBAAO,iBAAiB,WAAWgB,CAAa,GACzC,MAAM,OAAO,oBAAoB,WAAWA,CAAa;AAAA,IAClE,GAAG,CAAC3F,IAAU2E,GAAWC,CAAS,CAAC,GAGnCtC,EAAU,MAAM;AACd,UAAI,CAACrC,GAAY;AAEjB,YAAM2F,IAAc,CAACV,MAAkB;AACrC,QAAAA,EAAE,eAAA,GACEA,EAAE,SAAS,IAAGP,EAAA,IACTO,EAAE,SAAS,KAAGN,EAAA;AAAA,MACzB,GAEMiB,IAAY7C,EAAa;AAC/B,UAAI6C;AACF,eAAAA,EAAU,iBAAiB,SAASD,GAAa,EAAE,SAAS,IAAO,GAC5D,MAAMC,EAAU,oBAAoB,SAASD,CAAW;AAAA,IAEnE,GAAG,CAAC3F,IAAY0E,GAAWC,CAAS,CAAC;AAGrC,UAAMkB,KAAmB,MAAM;AAC7B,UAAI,CAAChF,EAAkB,QAAS,QAAO;AAEvC,YAAM;AAAA,QACJ,MAAAiF;AAAA,QACA,WAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,oBAAAC,IAAqB;AAAA,QACrB,UAAAC,IAAW;AAAA,MAAA,IACTrF,GAEEsF,IAAYD,MAAa;AAE/B,UAAIJ,MAAS,WAAW;AACtB,cAAMM,IAAgBJ,IAClB,KAAK,IAAIC,IAAqB,IAAI,GAAGtC,CAAW,IAChDA;AAEJ,eACE,gBAAA0C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAH,IACI,YACA;AAAA;AAAA,cACJnH,MAAc,cACZ,CAACmH,KACD;AAAA,YAAA;AAAA,YAGH,UAAA,MAAM,KAAK,EAAE,QAAQC,EAAA,CAAe,EAAE,IAAI,CAACG,GAAGC,MAAM;AACnD,oBAAMC,IAAcT,IAChB,KAAK;AAAA,gBACH;AAAA,gBACA,KAAK;AAAA,kBACHQ,IAAIxF,IAAciF;AAAA,kBAClBtC,IAAc;AAAA,gBAAA;AAAA,cAChB,IAEF6C,GAEEE,IAAWD,MAAgBzF;AAEjC,qBAAOH,EAAkB,eACvB,gBAAAwF,EAACxH,EAAM,UAAN,EACE,UAAAgC,EAAkB;AAAA,gBACjB4F;AAAA,gBACAH;AAAA,kBACE;AAAA,kBACAI,KAAY;AAAA,gBAAA;AAAA,cACd,EACF,GAPmBD,CAQrB,IAEA,gBAAAJ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,SAAS,MAAMN,KAAa1B,EAAQoC,CAAW;AAAA,kBAC/C,WAAWH;AAAA,oBACT;AAAA,oBAC6B;AAAA,oBAC7BI,IACI1H,MAAc,eACZ,yBACA,yBACF;AAAA,oBACJ+G,KAAa;AAAA,kBAAA;AAAA,kBAEf,cAAY,eAAeU,IAAc,CAAC;AAAA,gBAAA;AAAA,gBAZrCA;AAAA,cAAA;AAAA,YAeX,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAGP;AAEA,UAAIX,MAAS;AACX,eACE,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAH,IACI,gCACA;AAAA;AAAA,YAAA;AAAA,YAGL,UAAAtF,EAAkB,iBACjBA,EAAkB;AAAA,cAChB;AAAA,cACA;AAAA,YAAA,IAGF,gBAAA8F,EAAAC,IAAA,EACE,UAAA;AAAA,cAAA,gBAAAP,EAAC,QAAA,EAAK,WAAU,sEACb,UAAArF,IAAc,GACjB;AAAA,cACC;AAAA,cACD,gBAAAqF,EAAC,QAAA,EAAK,WAAU,gCAAgC,UAAA1C,EAAA,CAAY;AAAA,YAAA,EAAA,CAC9D;AAAA,UAAA;AAAA,QAAA;AAMR,UAAImC,MAAS,eAAe;AAC1B,cAAMe,KAAa7F,IAAc,KAAK2C,IAAe,KAC/CmD,IAAWjG,EAAkB,aAAa;AAahD,eACE,gBAAAwF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAb2B,CAC7BpB,MACG;AACH,kBAAI,CAACc,EAAW;AAChB,oBAAMgB,IAAO9B,EAAE,cAAc,sBAAA,GAEvB+B,MADS/B,EAAE,UAAU8B,EAAK,QACJA,EAAK,OAC3BE,KAAc,KAAK,MAAMD,KAAarD,CAAW;AACvD,cAAAU,EAAQ,KAAK,IAAI4C,IAAatD,IAAc,CAAC,CAAC;AAAA,YAChD;AAAA,YAKI,WAAW2C;AAAA,cACT;AAAA,cACAQ,IACI,iEACA;AAAA,cACJf,KAAa;AAAA,YAAA;AAAA,YAGd,UAAAlF,EAAkB,oBACjBA,EAAkB,kBAAkB,2BAA2B,IAE/D,gBAAAwF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,GAAGQ,CAAQ,IAAA;AAAA,cAAI;AAAA,YAAA;AAAA,UACjC;AAAA,QAAA;AAAA,MAIR;AAEA,UAAIf,MAAS,YAAYjF,EAAkB;AACzC,eACE,gBAAAwF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACTH,IACI,sCACA;AAAA;AAAA,YAAA;AAAA,YAGL,UAAAtF,EAAkB,aAAaG,IAAc,GAAG2C,CAAW;AAAA,UAAA;AAAA,QAAA;AAKlE,UAAImC,MAAS,aAAa;AACxB,cAAMoB,IAAa,IAAIvD,IAAe,KAChCwD,IACHnG,KAAe2C,IAAc,MAAO,MAAMuD;AAuB7C,eACE,gBAAAb;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAvByB,CAACpB,MAAwC;AACpE,kBAAI,CAACc,EAAW;AAGhB,cAAAjE,EAAiB,EAAI,GACjBqB,EAAkB,WACpB,aAAaA,EAAkB,OAAO;AAGxC,oBAAM4D,IAAO9B,EAAE,cAAc,sBAAA,GAEvB+B,MADS/B,EAAE,UAAU8B,EAAK,QACJA,EAAK,OAC3BE,KAAc,KAAK,MAAMD,MAAcrD,IAAc,EAAE;AAC7D,cAAAU,EAAQ,KAAK,IAAI,GAAG,KAAK,IAAI4C,IAAatD,IAAc,CAAC,CAAC,CAAC,GAG3DR,EAAkB,UAAU,WAAW,MAAM;AAC3C,gBAAArB,EAAiB,EAAK;AAAA,cACxB,GAAG,GAAI;AAAA,YACT;AAAA,YAKI,WAAWwE;AAAA,cACT;AAAA,cACAH,IACI,YACA;AAAA;AAAA,cACJJ,KAAa;AAAA,cACblE,KAAgB,mBAAmB;AAAA,YAAA;AAAA,YAGpC,UAAAhB,EAAkB,kBACjBA,EAAkB,gBAAgB,yBAAyB,IAE3D,gBAAAwF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO;AAAA,kBACL,OAAO,GAAGa,CAAS;AAAA,kBACnB,MAAM,GAAGC,CAAc;AAAA,gBAAA;AAAA,cACzB;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAIR;AAEA,aAAO;AAAA,IACT,GAGMC,KAAoB,CAACjD,MAAkB;AAC3C,YAAMsB,IAAOtB,IAAQnD;AAErB,cAAQxB,GAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,YACL,SAASiG,MAAS,IAAI,IAAI;AAAA,YAC1B,QAAQA,MAAS,IAAI,KAAK;AAAA,UAAA;AAAA,QAE9B,KAAK;AACH,iBAAO;AAAA,YACL,WAAW,cAAcA,IAAO,GAAG,cAAcA,IAAO,GAAG;AAAA,YAC3D,iBAAiBA,IAAO,IAAI,gBAAgB;AAAA,UAAA;AAAA,QAEhD,KAAK;AACH,iBAAO;AAAA,YACL,WAAW,cAAcA,IAAO,EAAE,iBAAiB,KAAK,IAAIA,CAAI,IAAI,IAAI,eAAeA,IAAO,GAAG;AAAA,YACjG,QAAQ,CAAC,KAAK,IAAIA,CAAI;AAAA,UAAA;AAAA,QAE1B,KAAK;AACH,iBAAO;AAAA,YACL,WAAW,WAAWA,IAAO,GAAG;AAAA,YAChC,oBAAoB;AAAA,UAAA;AAAA,QAExB,KAAK;AACH,iBAAO;AAAA,YACL,WAAW,cAAcA,IAAO,EAAE,kBAAkB,CAAC,KAAK,IAAIA,CAAI,IAAI,GAAG,aAAa,IAAI,KAAK,IAAIA,CAAI,IAAI,GAAG;AAAA,YAC9G,SAASA,MAAS,IAAI,IAAI;AAAA,YAC1B,QAAQ,MAAM,KAAK,IAAIA,CAAI,IAAI;AAAA,YAC/B,YAAY;AAAA,UAAA;AAAA,QAEhB;AACE,iBAAO,CAAA;AAAA,MAAC;AAAA,IAEd;AAEA,WACE,gBAAAkB,EAAAC,IAAA,EACE,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAhG;AAAA,UACA,WAAW2F,EAAG,yBAAyBpG,IAAoBD,EAAS;AAAA,UACpE,cAAc6E;AAAA,UACd,cAAcC;AAAA,UAEd,UAAA;AAAA,YAAA,gBAAA4B;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK5D;AAAA,gBACL,WAAWuD;AAAA,kBACT;AAAA,mBACC9G,MAAW,UACVA,MAAW,UACXA,MAAW,UACXA,MAAW,YACX;AAAA,kBACFA,MAAW,eAAe;AAAA,kBAC1BR,MAAc,cAAcQ,MAAW,WAAW;AAAA,kBAClDM,MAAcD,KAAkB,CAAC0B,MAAc;AAAA,kBAC/CA,MAAc;AAAA,gBAAA;AAAA,gBAIhB,UAAA;AAAA,kBAAA,gBAAA8E;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,KAAKpD;AAAA,sBACL,WAAWqD;AAAA,wBACT;AAAA,wBACA9G,MAAW,WAAW;AAAA,wBACtBR,MAAc,cACZQ,MAAW,WACX;AAAA,wBACFA,MAAW,WAAW;AAAA,wBACtBW;AAAA,sBAAA;AAAA,sBAEF,OAAO;AAAA,wBACL,WACEX,MAAW,UACPR,MAAc,eACZ,cAAcyC,EAAS,QACvB,cAAcA,EAAS,QACzB;AAAA,wBACN,YAAYF,KAAa,SAAS,aAAatC,EAAK;AAAA,wBACpD,KAAKO,MAAW,UAAU,GAAGqD,CAAkB,OAAO;AAAA,wBACtD,aACErD,MAAW,WAAWA,MAAW,SAC7B,WACA;AAAA,wBACN,aAAaK,IAAiB,SAAS;AAAA,wBACvC,QACEb,MAAc,cAAcQ,MAAW,UACnC,SACA;AAAA,sBAAA;AAAA,sBAER,eAAewF;AAAA,sBACf,eAAeG;AAAA,sBACf,aAAaK;AAAA,sBACb,iBAAiBA;AAAA,sBAEhB,UAAAlC,EAAO,IAAI,CAACU,GAAOG,MAAU;AAC5B,8BAAMuC,IAAWvC,MAAUnD,GACrBqG,IACJrD;AAEF,+BAAOsD,GAAaD,GAAc;AAAA,0BAChC,KAAKlD;AAAA,0BACL,WAAWmC;AAAA,4BACT;AAAA,4BACAlG;AAAA,4BACAiH,EAAa,MAAM;AAAA,4BACnB7H,MAAW,WAAW;AAAA,4BACtBA,MAAW,UAAU;AAAA,4BACrBA,MAAW,WACTA,MAAW,UACX;AAAA,4BACFa,KACE0D,EAAWI,CAAK,GAAG,OACnB;AAAA,0BAAA;AAAA,0BAEJ,OAAO;AAAA,4BACL,MACE3E,MAAW,UACPR,MAAc,aACZ,aACA,YAAY,MAAMoF,CAAa,OAAQvB,KAAsBuB,IAAgB,KAAMA,CAAa,QAClG;AAAA,4BACN,UACE5E,MAAW,WAAWR,MAAc,eAChC,IACA;AAAA,4BACN,WACEQ,MAAW,WAAWR,MAAc,aAChC,IACA;AAAA,4BACN,QACEA,MAAc,cAAcQ,MAAW,UACnC,SACA;AAAA,4BACN,YAAY;AAAA;AAAA,4BAEZ,gBAAgB;AAAA,4BAChB,GAAIA,MAAW,UAAU4H,GAAkBjD,CAAK,IAAI,CAAA;AAAA,4BACpD,GAAGkD,EAAa,MAAM;AAAA,0BAAA;AAAA,0BAExB,SAAS,CAACpC,MAAwB;AAChC,4BAAAA,EAAE,gBAAA,GACFf,GAAiBC,CAAK;AAAA,0BACxB;AAAA,0BACA,aAAa,CAACc,MAAuBA,EAAE,eAAA;AAAA,0BACvC,eAAeyB;AAAA,0BACf,cAAcvC;AAAA,wBAAA,CACgB;AAAA,sBAClC,CAAC;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAIFtD,EAAkB,WACjBA,EAAkB,aAAa,aAC/BgF,GAAA;AAAA,kBAGDjF,EAAkB,WACjBA,EAAkB,aAAa,YAC7B,gBAAA+F,EAAAC,IAAA,EACE,UAAA;AAAA,oBAAA,gBAAAP;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS1B;AAAA,wBACT,UAAU,CAACrF,KAAQ,CAACC,KAAU4B;AAAA,wBAC9B,WAAWmF;AAAA,0BACT;AAAA,0BACAtH,MAAc,eACV,6CACA;AAAA,wBAAA;AAAA,wBAEN,cAAW;AAAA,wBAEV,UAAA4B,EAAkB,WAChB5B,MAAc,eACb,gBAAAqH,EAACkB,IAAA,EAAY,WAAU,gBAAA,CAAgB,IAEvC,gBAAAlB,EAACmB,IAAA,EAAU,WAAU,iBAAgB;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAG3C,gBAAAnB;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS3B;AAAA,wBACT,UAAU,CAACpF,KAAQ,CAACC,KAAU8B;AAAA,wBAC9B,WAAWiF;AAAA,0BACT;AAAA,0BACAtH,MAAc,eACV,8CACA;AAAA,wBAAA;AAAA,wBAEN,cAAW;AAAA,wBAEV,UAAA4B,EAAkB,WAChB5B,MAAc,eACb,gBAAAqH,EAACoB,IAAA,EAAa,WAAU,gBAAA,CAAgB,IAExC,gBAAApB,EAACqB,IAAA,EAAY,WAAU,iBAAgB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAE7C,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAKL7G,EAAkB,WACjBA,EAAkB,aAAa,aAC/BgF,GAAA;AAAA,UAAiB;AAAA,QAAA;AAAA,MAAA;AAAA,MAIpBxF,KAAqB0D,EAAW,SAAS,KACxC,gBAAAsC;AAAA,QAACsB;AAAA,QAAA;AAAA,UACC,QAAQ5D;AAAA,UACR,SAAS9B;AAAA,UACT,SAAS,MAAM;AACb,oBAAQ,IAAI,gBAAgB,GAC5BC,GAAiB,EAAK;AAAA,UACxB;AAAA,UACA,aAAaC;AAAA,UACb,eAAeC;AAAA,QAAA;AAAA,MAAA;AAAA,IACjB,GAkBJ;AAAA,EAEJ;AACF;AAEAxD,GAAS,cAAc;AAMhB,MAAM8E,KAAgB7E,EAAM,WAGjC,CAAC,EAAE,UAAAC,GAAU,WAAAmB,GAAW,OAAA2H,GAAO,GAAGC,GAAA,GAASlH,wBAExC,OAAA,EAAI,KAAAA,GAAU,WAAAV,GAAsB,OAAA2H,GAAe,GAAGC,IACpD,UAAA/I,GACH,CAEH;AAED4E,GAAc,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Checkbox as SCheckbox } from \"@dsui/ui/components/checkbox\";\nimport { cn } from \"@dsui/ui/index\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport { Label } from \"../Label\";\nimport { Info } from \"lucide-react\";\nimport { AnimatePresence } from \"motion/react\";\nimport { ConfettiPiece } from \"@/utils/css\";\nimport type { CheckedState } from \"@radix-ui/react-checkbox\";\n\nexport type CheckboxProps = Omit<\n React.ComponentPropsWithoutRef<typeof SCheckbox>,\n \"onCheckedChange\" | \"variant\" | \"size\" | \"color\" | \"icon\"\n> & {\n onCheckedChange?: (checked: CheckedState) => void;\n variant?: \"default\" | \"circle\";\n size?: \"sm\" | \"default\" | \"lg\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n icon?: React.ReactNode;\n label?: React.ReactNode;\n labelPosition?: \"top\" | \"left\" | \"right\" | \"bottom\";\n labelAlignment?: \"start\" | \"center\" | \"end\";\n infoTooltip?: React.ReactNode;\n helperText?: React.ReactNode;\n state?: \"default\" | \"error\" | \"success\" | \"warning\";\n animation?: \"confetti\" | undefined;\n};\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (props, ref) => {\n const {\n label,\n infoTooltip,\n helperText,\n state,\n variant = \"default\",\n size = \"default\",\n color,\n labelPosition = \"right\",\n labelAlignment = \"center\",\n icon,\n animation,\n id,\n onCheckedChange,\n ...rest\n } = props;\n const [showConfetti, setShowConfetti] = useState(false);\n const generatedId = React.useId();\n const inputId = id || generatedId;\n\n // State\n const helperTextStyles = {\n default: \"ds:text-muted-foreground\",\n success: \"ds:text-success\",\n warning: \"ds:text-warning\",\n error: \"ds:text-error\",\n };\n\n const handleCheckedChange = (checked: CheckedState) => {\n if (checked) {\n setShowConfetti(true);\n setTimeout(() => setShowConfetti(false), 800);\n }\n onCheckedChange?.(checked);\n };\n\n const isVertical = labelPosition === \"top\" || labelPosition === \"bottom\";\n const flexDirection = isVertical ? \"ds:flex-col\" : \"ds:flex-row\";\n const gapClass = isVertical ? \"ds:gap-1.5\" : \"ds:gap-2\";\n\n const alignmentClass =\n labelAlignment === \"start\"\n ? \"ds:items-start\"\n : labelAlignment === \"center\"\n ? \"ds:items-center\"\n : \"ds:items-end\";\n\n const labelClass =\n \"ds:flex ds:gap-2 ds:peer-disabled:cursor-not-allowed ds:peer-disabled:opacity-70\";\n\n return (\n <div className={cn(\"ds:flex ds:flex-col ds:gap-1.5 ds:relative\", {})}>\n <div className={cn(\"ds:flex\", flexDirection, gapClass, alignmentClass)}>\n {(labelPosition === \"top\" || labelPosition === \"left\") && label && (\n <Label htmlFor={inputId} className={labelClass}>\n {label}\n {infoTooltip && (\n <Tooltip content={infoTooltip}>\n <Info className=\"ds:size-3.5 ds:min-w-3.5\" />\n </Tooltip>\n )}\n </Label>\n )}\n\n <div className=\"ds:relative ds:inline-flex\">\n <SCheckbox\n ref={ref}\n id={inputId}\n {...rest}\n variant={variant}\n size={size}\n color={color}\n icon={icon}\n onCheckedChange={\n animation ? handleCheckedChange : onCheckedChange\n }\n />\n\n <AnimatePresence>\n {showConfetti && (\n <div className=\"ds:pointer-events-none ds:absolute ds:inset-0\">\n {[...Array(12)].map((_, i) => (\n <ConfettiPiece key={i} index={i} />\n ))}\n </div>\n )}\n </AnimatePresence>\n </div>\n\n {(labelPosition === \"bottom\" || labelPosition === \"right\") &&\n label && (\n <Label htmlFor={inputId} className={labelClass}>\n {label}\n {infoTooltip && (\n <Tooltip content={infoTooltip}>\n <Info className=\"ds:size-3.5 ds:min-w-3.5\" />\n </Tooltip>\n )}\n </Label>\n )}\n </div>\n\n {helperText && (\n <div className=\"ds:flex ds:items-center ds:justify-between ds:text-xs ds:gap-2\">\n {helperText && (\n <p\n className={cn(\n \"ds:text-xs\",\n state ? helperTextStyles?.[state] : \"\"\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\nexport default Checkbox;\n"],"names":["Checkbox","React","props","ref","label","infoTooltip","helperText","state","variant","size","color","labelPosition","labelAlignment","icon","animation","id","onCheckedChange","rest","showConfetti","setShowConfetti","useState","generatedId","inputId","helperTextStyles","handleCheckedChange","checked","isVertical","flexDirection","gapClass","alignmentClass","labelClass","cn","jsxs","Label","Tooltip","jsx","Info","SCheckbox","AnimatePresence","_","i","ConfettiPiece"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.js","sources":["../../../../src/components/Collapsible/Collapsible.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Collapsible as SCollapsible,\n CollapsibleTrigger,\n CollapsibleContent,\n} from \"@dsui/ui/components/collapsible\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ChevronDown } from \"lucide-react\";\n\nexport type CollapsibleProps = Omit<\n React.ComponentPropsWithoutRef<typeof SCollapsible>,\n \"children\" | \"content\" | \"open\" | \"defaultOpen\" | \"onOpenChange\"\n> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger?: React.ReactNode;\n content?: React.ReactNode;\n showIcon?: boolean;\n iconPosition?: \"left\" | \"right\";\n iconRotation?: boolean;\n triggerClassName?: string;\n contentClassName?: string;\n variant?: \"default\" | \"bordered\" | \"ghost\";\n children?: React.ReactNode;\n};\n\nconst Collapsible = React.forwardRef<\n React.ElementRef<typeof SCollapsible>,\n CollapsibleProps\n>((props, ref) => {\n const {\n trigger,\n content,\n showIcon = true,\n iconPosition = \"right\",\n iconRotation = true,\n triggerClassName,\n contentClassName,\n variant = \"default\",\n className,\n open,\n defaultOpen,\n onOpenChange,\n children,\n ...rest\n } = props;\n\n const [isOpen, setIsOpen] = React.useState(defaultOpen ?? false);\n\n React.useEffect(() => {\n if (open !== undefined) {\n setIsOpen(open);\n }\n }, [open]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setIsOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const variantStyles = {\n default: {\n root: \"ds:rounded-lg ds:border ds:bg-card\",\n trigger: \"ds:px-4 ds:py-3 ds:hover:bg-accent/50\",\n content: \"ds:px-4 ds:py-3 ds:border-t\",\n },\n bordered: {\n root: \"ds:rounded-lg ds:border-2\",\n trigger: \"ds:px-4 ds:py-3 ds:font-semibold ds:hover:bg-accent\",\n content: \"ds:px-4 ds:py-3 ds:border-t-2\",\n },\n ghost: {\n root: \"\",\n trigger: \"ds:px-2 ds:py-2 ds:hover:bg-accent/30 ds:rounded-md\",\n content: \"ds:px-2 ds:py-2\",\n },\n };\n\n const styles = variantStyles[variant];\n\n // If children are provided, use them directly (custom implementation)\n if (children && !trigger && !content) {\n return (\n <SCollapsible\n ref={ref}\n open={isOpen}\n onOpenChange={handleOpenChange}\n className={cn(styles.root, className)}\n {...rest}\n >\n {children}\n </SCollapsible>\n );\n }\n\n // Default implementation with trigger and content\n return (\n <SCollapsible\n ref={ref}\n open={isOpen}\n onOpenChange={handleOpenChange}\n className={cn(styles.root, className)}\n {...rest}\n >\n <CollapsibleTrigger\n className={cn(\n \"ds:flex ds:w-full ds:items-center ds:justify-between ds:transition-colors\",\n styles.trigger,\n triggerClassName\n )}\n >\n {iconPosition === \"left\" && showIcon && (\n <ChevronDown\n className={cn(\n \"ds:size-4 ds:transition-transform ds:duration-200\",\n iconRotation && isOpen && \"ds:rotate-180\"\n )}\n />\n )}\n <span className=\"ds:flex-1 ds:text-left\">{trigger}</span>\n {iconPosition === \"right\" && showIcon && (\n <ChevronDown\n className={cn(\n \"ds:size-4 ds:transition-transform ds:duration-200\",\n iconRotation && isOpen && \"ds:rotate-180\"\n )}\n />\n )}\n </CollapsibleTrigger>\n <CollapsibleContent className={cn(styles.content, contentClassName)}>\n {content}\n </CollapsibleContent>\n </SCollapsible>\n );\n});\n\nCollapsible.displayName = \"Collapsible\";\n\nexport default Collapsible;\nexport { CollapsibleTrigger, CollapsibleContent };\n"],"names":["Collapsible","React","props","ref","trigger","content","showIcon","iconPosition","iconRotation","triggerClassName","contentClassName","variant","className","open","defaultOpen","onOpenChange","children","rest","isOpen","setIsOpen","handleOpenChange","newOpen","styles","jsx","SCollapsible","cn","jsxs","CollapsibleTrigger","ChevronDown","CollapsibleContent"],"mappings":";;;;;AA2BA,MAAMA,IAAcC,EAAM,WAGxB,CAACC,GAAOC,MAAQ;AAChB,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,cAAAC,IAAe;AAAA,IACf,cAAAC,IAAe;AAAA,IACf,kBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDf,GAEE,CAACgB,GAAQC,CAAS,IAAIlB,EAAM,SAASa,KAAe,EAAK;AAE/Db,EAAAA,EAAM,UAAU,MAAM;AACpB,IAAIY,MAAS,UACXM,EAAUN,CAAI;AAAA,EAElB,GAAG,CAACA,CAAI,CAAC;AAET,QAAMO,IAAmB,CAACC,MAAqB;AAC7C,IAAAF,EAAUE,CAAO,GACjBN,IAAeM,CAAO;AAAA,EACxB,GAoBMC,IAlBgB;AAAA,IACpB,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,IAEX,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,EACX,EAG2BX,CAAO;AAGpC,SAAIK,KAAY,CAACZ,KAAW,CAACC,IAEzB,gBAAAkB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAArB;AAAA,MACA,MAAMe;AAAA,MACN,cAAcE;AAAA,MACd,WAAWK,EAAGH,EAAO,MAAMV,CAAS;AAAA,MACnC,GAAGK;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA,IAOL,gBAAAU;AAAA,IAACF;AAAAA,IAAA;AAAA,MACC,KAAArB;AAAA,MACA,MAAMe;AAAA,MACN,cAAcE;AAAA,MACd,WAAWK,EAAGH,EAAO,MAAMV,CAAS;AAAA,MACnC,GAAGK;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAWF;AAAA,cACT;AAAA,cACAH,EAAO;AAAA,cACPb;AAAA,YAAA;AAAA,YAGD,UAAA;AAAA,cAAAF,MAAiB,UAAUD,KAC1B,gBAAAiB;AAAA,gBAACK;AAAA,gBAAA;AAAA,kBACC,WAAWH;AAAA,oBACT;AAAA,oBACAjB,KAAgBU,KAAU;AAAA,kBAAA;AAAA,gBAC5B;AAAA,cAAA;AAAA,cAGJ,gBAAAK,EAAC,QAAA,EAAK,WAAU,0BAA0B,UAAAnB,GAAQ;AAAA,cACjDG,MAAiB,WAAWD,KAC3B,gBAAAiB;AAAA,gBAACK;AAAA,gBAAA;AAAA,kBACC,WAAWH;AAAA,oBACT;AAAA,oBACAjB,KAAgBU,KAAU;AAAA,kBAAA;AAAA,gBAC5B;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJ,gBAAAK,EAACM,KAAmB,WAAWJ,EAAGH,EAAO,SAASZ,CAAgB,GAC/D,UAAAL,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDL,EAAY,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Command.js","sources":["../../../../src/components/Command/Command.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Command as SCommand,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandSeparator,\n CommandItem,\n CommandShortcut,\n} from \"@dsui/ui/components/command\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport interface CommandItem {\n readonly type: \"item\";\n label?: string;\n icon?: React.ComponentType<{ className?: string }>;\n shortcut?: string;\n disabled?: boolean;\n className?: string;\n onClick?: () => void;\n children?: React.ReactNode;\n}\n\nexport interface CommandGroup {\n readonly type: \"group\";\n heading: string;\n className?: string;\n items: CommandItem[];\n}\n\nexport interface CommandSeparator {\n readonly type: \"separator\";\n}\n\nexport type CommandItemType = CommandItem | CommandGroup | CommandSeparator;\n\nexport interface CommandProps {\n className?: string;\n children?: React.ReactNode;\n items?: CommandItemType[];\n search?: boolean | string;\n\n // Dialog mode props\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n title?: string;\n description?: string;\n showCloseButton?: boolean;\n}\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, ref) => {\n const {\n className,\n children,\n items,\n search,\n open,\n defaultOpen,\n onOpenChange,\n modal = false,\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n showCloseButton = true,\n ...rest\n } = props;\n\n const renderItems = (items: CommandItemType[]) => {\n return items.map((item, index) => {\n switch (item.type) {\n case \"item\":\n return (\n <CommandItem\n key={index}\n disabled={item.disabled}\n className={item.className}\n onSelect={item.onClick}\n >\n {item.children ? (\n item.children\n ) : (\n <>\n {item.icon && <item.icon className=\"ds:mr-2 ds:h-4 ds:w-4\" />}\n <span>{item.label}</span>\n {item.shortcut && (\n <CommandShortcut>{item.shortcut}</CommandShortcut>\n )}\n </>\n )}\n </CommandItem>\n );\n case \"group\":\n return (\n <CommandGroup\n key={index}\n heading={item.heading}\n className={item.className}\n >\n {item.items.map((subItem, subIndex) => (\n <CommandItem\n key={subIndex}\n disabled={subItem.disabled}\n className={subItem.className}\n onSelect={subItem.onClick}\n >\n {subItem.children ? (\n subItem.children\n ) : (\n <>\n {subItem.icon && (\n <subItem.icon className=\"ds:mr-2 ds:h-4 ds:w-4\" />\n )}\n <span>{subItem.label}</span>\n {subItem.shortcut && (\n <CommandShortcut>{subItem.shortcut}</CommandShortcut>\n )}\n </>\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n );\n case \"separator\":\n return <CommandSeparator key={index} />;\n default:\n return null;\n }\n });\n };\n\n const commandContent = (\n <SCommand\n ref={ref}\n className={cn(\n \"ds:bg-popover ds:text-popover-foreground ds:flex ds:h-full ds:w-full ds:flex-col ds:overflow-hidden ds:rounded-md\",\n className\n )}\n {...rest}\n >\n {search && (\n <CommandInput\n placeholder={\n typeof search === \"string\" ? search : \"Type a command or search...\"\n }\n />\n )}\n <CommandList>\n {items ? (\n <>\n <CommandEmpty>No results found.</CommandEmpty>\n {renderItems(items)}\n </>\n ) : (\n children\n )}\n </CommandList>\n </SCommand>\n );\n\n // If dialog props are provided, render as dialog\n if (\n modal &&\n (open !== undefined || onOpenChange || defaultOpen !== undefined)\n ) {\n return (\n <CommandDialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n modal={modal}\n title={title}\n description={description}\n showCloseButton={showCloseButton}\n >\n <Command\n className={className}\n items={items}\n search={search}\n {...rest}\n />\n </CommandDialog>\n );\n }\n\n // Otherwise, render as regular command\n return commandContent;\n});\n\nCommand.displayName = \"Command\";\n\nexport default Command;\n"],"names":["Command","React","props","ref","className","children","items","search","open","defaultOpen","onOpenChange","modal","title","description","showCloseButton","rest","renderItems","item","index","jsx","CommandItem","jsxs","Fragment","CommandShortcut","CommandGroup","subItem","subIndex","CommandSeparator","commandContent","SCommand","cn","CommandInput","CommandList","CommandEmpty","CommandDialog"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Command/index.ts"],"sourcesContent":["import CommandWrapper, {\n type CommandProps,\n type CommandItemType,\n} from \"./Command\";\nimport {\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandSeparator,\n CommandItem,\n CommandShortcut,\n} from \"@dsui/ui/components/command\";\n\nconst Command = Object.assign(CommandWrapper, {\n Dialog: CommandDialog,\n Input: CommandInput,\n List: CommandList,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Separator: CommandSeparator,\n Item: CommandItem,\n Shortcut: CommandShortcut,\n});\n\nexport { Command };\nexport type { CommandProps, CommandItemType };\n"],"names":["Command","CommandWrapper","CommandDialog","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":";;AAeA,MAAMA,IAAU,OAAO,OAAOC,GAAgB;AAAA,EAC5C,QAAQC;AAAA,EACR,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,WAAWC;AAAA,EACX,MAAMC;AAAA,EACN,UAAUC;AACZ,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenu.js","sources":["../../../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ContextMenu as SContextMenu,\n ContextMenuTrigger as SContextMenuTrigger,\n ContextMenuContent as SContextMenuContent,\n ContextMenuItem as SContextMenuItem,\n ContextMenuCheckboxItem as SContextMenuCheckboxItem,\n ContextMenuRadioItem as SContextMenuRadioItem,\n ContextMenuRadioGroup as SContextMenuRadioGroup,\n ContextMenuLabel as SContextMenuLabel,\n ContextMenuSeparator as SContextMenuSeparator,\n ContextMenuGroup as SContextMenuGroup,\n ContextMenuSub as SContextMenuSub,\n ContextMenuSubTrigger as SContextMenuSubTrigger,\n ContextMenuSubContent as SContextMenuSubContent,\n ContextMenuShortcut as SContextMenuShortcut,\n} from \"@dsui/ui/components/context-menu\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport type ContextMenuItem =\n | {\n key: string;\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n children?: ContextMenuItem[];\n type?: \"item\";\n checked?: boolean;\n disabled?: boolean;\n variant?: \"default\" | \"destructive\";\n onClick?: () => void;\n className?: string;\n }\n | {\n key: string;\n type: \"checkbox\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n className?: string;\n }\n | {\n key: string;\n type: \"radio\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n group: string;\n value?: string;\n disabled?: boolean;\n onClick?: () => void;\n className?: string;\n }\n | {\n key: string;\n type: \"separator\";\n }\n | {\n key: string;\n type: \"group\";\n label?: string;\n children: ContextMenuItem[];\n disabled?: boolean;\n }\n | {\n key: string;\n type: \"label\";\n label: string;\n inset?: boolean;\n className?: string;\n };\n\nexport interface ContextMenuProps {\n // Core props\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n\n // Content\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n content?: React.ReactNode;\n items?: ContextMenuItem[];\n\n // Styling\n className?: string;\n contentClassName?: string;\n triggerClassName?: string;\n}\n\nconst ContextMenu = React.forwardRef<HTMLDivElement, ContextMenuProps>(\n (props, ref) => {\n const {\n onOpenChange,\n modal = false,\n children,\n trigger,\n content,\n items,\n className,\n contentClassName,\n triggerClassName,\n } = props;\n\n // If children are provided (compound pattern), render them directly\n if (children) {\n return (\n <SContextMenu onOpenChange={onOpenChange} modal={modal}>\n {children}\n </SContextMenu>\n );\n }\n\n // Render items if provided\n const renderItems = (menuItems: ContextMenuItem[]): React.ReactNode => {\n return menuItems.map((item) => {\n switch (item.type) {\n case \"separator\":\n return <SContextMenuSeparator key={item.key} />;\n\n case \"label\":\n return (\n <SContextMenuLabel\n key={item.key}\n inset={item.inset}\n className={item.className}\n >\n {item.label}\n </SContextMenuLabel>\n );\n\n case \"group\":\n return (\n <SContextMenuGroup key={item.key}>\n {item.label && (\n <SContextMenuLabel>{item.label}</SContextMenuLabel>\n )}\n {renderItems(item.children)}\n </SContextMenuGroup>\n );\n\n case \"checkbox\":\n return (\n <SContextMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={item.className}\n onCheckedChange={item.onCheckedChange}\n >\n {item.icon}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuCheckboxItem>\n );\n\n case \"radio\":\n return (\n <SContextMenuRadioGroup\n key={item.key}\n value={item.value || item.group}\n >\n <SContextMenuRadioItem\n value={item.value || item.key}\n disabled={item.disabled}\n onClick={item.onClick}\n className={item.className}\n >\n {item.icon}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuRadioItem>\n </SContextMenuRadioGroup>\n );\n\n default: {\n // item or undefined type\n if (item.children && item.children.length > 0) {\n // Submenu\n return (\n <SContextMenuSub key={item.key}>\n <SContextMenuSubTrigger\n disabled={item.disabled}\n className={cn(\n item.disabled ? \"ds:opacity-50 ds:cursor-not-allowed\" : \"\",\n item.className\n )}\n >\n {item.icon}\n {item.label}\n </SContextMenuSubTrigger>\n <SContextMenuSubContent>\n {renderItems(item.children)}\n </SContextMenuSubContent>\n </SContextMenuSub>\n );\n } else {\n // Regular item\n return (\n <SContextMenuItem\n key={item.key}\n disabled={item.disabled}\n variant={item.variant}\n onClick={item.onClick}\n className={item.className}\n >\n {item.icon}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuItem>\n );\n }\n }\n }\n });\n };\n\n // Props-based pattern with trigger and items\n const triggerElement = trigger ? (\n <SContextMenuTrigger asChild className={cn(triggerClassName)}>\n {trigger}\n </SContextMenuTrigger>\n ) : null;\n\n const contentElement =\n content || items ? (\n <SContextMenuContent\n ref={ref}\n className={cn(className, contentClassName)}\n >\n {content}\n {items && renderItems(items)}\n </SContextMenuContent>\n ) : null;\n\n return (\n <SContextMenu onOpenChange={onOpenChange} modal={modal}>\n {triggerElement}\n {contentElement}\n </SContextMenu>\n );\n }\n);\n\nContextMenu.displayName = \"ContextMenu\";\n\nexport default ContextMenu;\n"],"names":["ContextMenu","React","props","ref","onOpenChange","modal","children","trigger","content","items","className","contentClassName","triggerClassName","jsx","SContextMenu","renderItems","menuItems","item","SContextMenuSeparator","SContextMenuLabel","SContextMenuGroup","jsxs","SContextMenuCheckboxItem","SContextMenuShortcut","SContextMenuRadioGroup","SContextMenuRadioItem","SContextMenuSub","SContextMenuSubTrigger","cn","SContextMenuSubContent","SContextMenuItem","triggerElement","SContextMenuTrigger","contentElement","SContextMenuContent"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/ContextMenu/index.ts"],"sourcesContent":["import ContextMenuWrapper, { type ContextMenuProps } from \"./ContextMenu\";\nimport {\n ContextMenu as ContextMenuPrimitive,\n ContextMenuPortal,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n} from \"@dsui/ui/components/context-menu\";\n\nconst ContextMenu = Object.assign(ContextMenuWrapper, {\n // Primitives\n Root: ContextMenuPrimitive,\n Portal: ContextMenuPortal,\n Trigger: ContextMenuTrigger,\n Content: ContextMenuContent,\n Group: ContextMenuGroup,\n Label: ContextMenuLabel,\n Item: ContextMenuItem,\n CheckboxItem: ContextMenuCheckboxItem,\n RadioGroup: ContextMenuRadioGroup,\n RadioItem: ContextMenuRadioItem,\n Separator: ContextMenuSeparator,\n Shortcut: ContextMenuShortcut,\n Sub: ContextMenuSub,\n SubTrigger: ContextMenuSubTrigger,\n SubContent: ContextMenuSubContent,\n});\n\nexport { ContextMenu };\nexport type { ContextMenuProps };\nexport type { ContextMenuItem } from \"./ContextMenu\";\n"],"names":["ContextMenu","ContextMenuWrapper","ContextMenuPrimitive","ContextMenuPortal","ContextMenuTrigger","ContextMenuContent","ContextMenuGroup","ContextMenuLabel","ContextMenuItem","ContextMenuCheckboxItem","ContextMenuRadioGroup","ContextMenuRadioItem","ContextMenuSeparator","ContextMenuShortcut","ContextMenuSub","ContextMenuSubTrigger","ContextMenuSubContent"],"mappings":";;AAmBA,MAAMA,IAAc,OAAO,OAAOC,GAAoB;AAAA;AAAA,EAEpD,MAAMC;AAAAA,EACN,QAAQC;AAAA,EACR,SAASC;AAAA,EACT,SAASC;AAAA,EACT,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,MAAMC;AAAA,EACN,cAAcC;AAAA,EACd,YAAYC;AAAA,EACZ,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,UAAUC;AAAA,EACV,KAAKC;AAAA,EACL,YAAYC;AAAA,EACZ,YAAYC;AACd,CAAC;"}
|