@sth87/shadcn-design-system 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +487 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs +2 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
- package/dist/cjs/_virtual/index.cjs +2 -0
- package/dist/cjs/_virtual/index.cjs.map +1 -0
- package/dist/cjs/_virtual/index2.cjs +2 -0
- package/dist/cjs/_virtual/index2.cjs.map +1 -0
- package/dist/cjs/components/Accordion/Accordion.cjs +2 -0
- package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -0
- package/dist/cjs/components/Avatar/Avatar.cjs +2 -0
- package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -0
- package/dist/cjs/components/Badge/Badge.cjs +2 -0
- package/dist/cjs/components/Badge/Badge.cjs.map +1 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +2 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -0
- package/dist/cjs/components/Button/Button.cjs +2 -0
- package/dist/cjs/components/Button/Button.cjs.map +1 -0
- package/dist/cjs/components/Button/ButtonGroup.cjs +2 -0
- package/dist/cjs/components/Button/ButtonGroup.cjs.map +1 -0
- package/dist/cjs/components/Calendar/Calendar.cjs +2 -0
- package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -0
- package/dist/cjs/components/Carousel/Carousel.cjs +2 -0
- package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -0
- package/dist/cjs/components/Checkbox/Checkbox.cjs +2 -0
- package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/cjs/components/Collapsible/Collapsible.cjs +2 -0
- package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -0
- package/dist/cjs/components/Command/Command.cjs +2 -0
- package/dist/cjs/components/Command/Command.cjs.map +1 -0
- package/dist/cjs/components/Command/index.cjs +2 -0
- package/dist/cjs/components/Command/index.cjs.map +1 -0
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs +2 -0
- package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -0
- package/dist/cjs/components/ContextMenu/index.cjs +2 -0
- package/dist/cjs/components/ContextMenu/index.cjs.map +1 -0
- package/dist/cjs/components/Cropper/Cropper.cjs +2 -0
- package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -0
- package/dist/cjs/components/Cropper/CropperTool.cjs +2 -0
- package/dist/cjs/components/Cropper/CropperTool.cjs.map +1 -0
- package/dist/cjs/components/Cropper/utils.cjs +2 -0
- package/dist/cjs/components/Cropper/utils.cjs.map +1 -0
- package/dist/cjs/components/DatePicker/DatePicker.cjs +2 -0
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -0
- package/dist/cjs/components/DatePicker/RangePicker.cjs +2 -0
- package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -0
- package/dist/cjs/components/DatePicker/TimePicker.cjs +2 -0
- package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -0
- package/dist/cjs/components/Dialog/Dialog.cjs +2 -0
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -0
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +2 -0
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
- package/dist/cjs/components/DropdownMenu/index.cjs +2 -0
- package/dist/cjs/components/DropdownMenu/index.cjs.map +1 -0
- package/dist/cjs/components/FloatLabel.cjs +2 -0
- package/dist/cjs/components/FloatLabel.cjs.map +1 -0
- package/dist/cjs/components/Glass/Glass.cjs +2 -0
- package/dist/cjs/components/Glass/Glass.cjs.map +1 -0
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs +2 -0
- package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -0
- package/dist/cjs/components/ImageViewer/ImageViewer.css +1 -0
- package/dist/cjs/components/Input/Input.cjs +2 -0
- package/dist/cjs/components/Input/Input.cjs.map +1 -0
- package/dist/cjs/components/InputOTP/InputOTP.cjs +2 -0
- package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -0
- package/dist/cjs/components/Interactive/CursorFollow.cjs +2 -0
- package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -0
- package/dist/cjs/components/Marquee/Marquee.cjs +2 -0
- package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -0
- package/dist/cjs/components/Marquee/MarqueeWrapper.cjs +2 -0
- package/dist/cjs/components/Marquee/MarqueeWrapper.cjs.map +1 -0
- package/dist/cjs/components/Marquee/index.cjs +2 -0
- package/dist/cjs/components/Marquee/index.cjs.map +1 -0
- package/dist/cjs/components/Masonry/Masonry.cjs +2 -0
- package/dist/cjs/components/Masonry/Masonry.cjs.map +1 -0
- package/dist/cjs/components/Masonry/MasonryWrapper.cjs +2 -0
- package/dist/cjs/components/Masonry/MasonryWrapper.cjs.map +1 -0
- package/dist/cjs/components/Pagination/Pagination.cjs +2 -0
- package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -0
- package/dist/cjs/components/Pagination/index.cjs +2 -0
- package/dist/cjs/components/Pagination/index.cjs.map +1 -0
- package/dist/cjs/components/Popover/Popover.cjs +2 -0
- package/dist/cjs/components/Popover/Popover.cjs.map +1 -0
- package/dist/cjs/components/Popover/index.cjs +2 -0
- package/dist/cjs/components/Popover/index.cjs.map +1 -0
- package/dist/cjs/components/QrCode/QrCode.cjs +2 -0
- package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -0
- package/dist/cjs/components/QrCode/index.cjs +2 -0
- package/dist/cjs/components/QrCode/index.cjs.map +1 -0
- package/dist/cjs/components/Radio/Radio.cjs +2 -0
- package/dist/cjs/components/Radio/Radio.cjs.map +1 -0
- package/dist/cjs/components/Rate/Rate.cjs +2 -0
- package/dist/cjs/components/Rate/Rate.cjs.map +1 -0
- package/dist/cjs/components/Resizable/Resizable.cjs +2 -0
- package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -0
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs +2 -0
- package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -0
- package/dist/cjs/components/Select/Select.cjs +2 -0
- package/dist/cjs/components/Select/Select.cjs.map +1 -0
- package/dist/cjs/components/Separator/Separator.cjs +2 -0
- package/dist/cjs/components/Separator/Separator.cjs.map +1 -0
- package/dist/cjs/components/Sheet/Sheet.cjs +6 -0
- package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -0
- package/dist/cjs/components/Sidebar/Sidebar.cjs +2 -0
- package/dist/cjs/components/Sidebar/Sidebar.cjs.map +1 -0
- package/dist/cjs/components/Skeleton/Skeleton.cjs +2 -0
- package/dist/cjs/components/Skeleton/Skeleton.cjs.map +1 -0
- package/dist/cjs/components/Slider/Slider.cjs +2 -0
- package/dist/cjs/components/Slider/Slider.cjs.map +1 -0
- package/dist/cjs/components/Stepper/Stepper.cjs +2 -0
- package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -0
- package/dist/cjs/components/Stepper/StepperWrapper.cjs +2 -0
- package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -0
- package/dist/cjs/components/Stepper/index.cjs +2 -0
- package/dist/cjs/components/Stepper/index.cjs.map +1 -0
- package/dist/cjs/components/Switch/Switch.cjs +2 -0
- package/dist/cjs/components/Switch/Switch.cjs.map +1 -0
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +2 -0
- package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -0
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +2 -0
- package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -0
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +2 -0
- package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -0
- package/dist/cjs/components/Table/data-table-column-header.cjs +2 -0
- package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -0
- package/dist/cjs/components/Table/data-table-pagination.cjs +2 -0
- package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -0
- package/dist/cjs/components/Table/data-table.cjs +2 -0
- package/dist/cjs/components/Table/data-table.cjs.map +1 -0
- package/dist/cjs/components/Tabs/Tabs.cjs +2 -0
- package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -0
- package/dist/cjs/components/Tabs/classes.cjs +2 -0
- package/dist/cjs/components/Tabs/classes.cjs.map +1 -0
- package/dist/cjs/components/Textarea/Textarea.cjs +2 -0
- package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -0
- package/dist/cjs/components/TimeGridView.cjs +2 -0
- package/dist/cjs/components/TimeGridView.cjs.map +1 -0
- package/dist/cjs/components/Toast/Toast.cjs +2 -0
- package/dist/cjs/components/Toast/Toast.cjs.map +1 -0
- package/dist/cjs/components/Toggle/Toggle.cjs +2 -0
- package/dist/cjs/components/Toggle/Toggle.cjs.map +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.cjs +2 -0
- package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/cjs/components/Tour/Tour.cjs +2 -0
- package/dist/cjs/components/Tour/Tour.cjs.map +1 -0
- package/dist/cjs/components/Tour/TourWrapper.cjs +2 -0
- package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -0
- package/dist/cjs/components/Tour/index.cjs +2 -0
- package/dist/cjs/components/Tour/index.cjs.map +1 -0
- package/dist/cjs/components/Upload/Upload.cjs +4 -0
- package/dist/cjs/components/Upload/Upload.cjs.map +1 -0
- package/dist/cjs/components/WheelColumn.cjs +2 -0
- package/dist/cjs/components/WheelColumn.cjs.map +1 -0
- package/dist/cjs/constants/common.cjs +2 -0
- package/dist/cjs/constants/common.cjs.map +1 -0
- package/dist/cjs/favicon.ico +0 -0
- package/dist/cjs/hooks/use-callback-ref.cjs +2 -0
- package/dist/cjs/hooks/use-callback-ref.cjs.map +1 -0
- package/dist/cjs/hooks/use-debounced-callback.cjs +2 -0
- package/dist/cjs/hooks/use-debounced-callback.cjs.map +1 -0
- package/dist/cjs/hooks/use-debounced-value.cjs +2 -0
- package/dist/cjs/hooks/use-debounced-value.cjs.map +1 -0
- package/dist/cjs/hooks/use-event-listener.cjs +2 -0
- package/dist/cjs/hooks/use-event-listener.cjs.map +1 -0
- package/dist/cjs/hooks/use-intersection-observer.cjs +2 -0
- package/dist/cjs/hooks/use-intersection-observer.cjs.map +1 -0
- package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs +2 -0
- package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs.map +1 -0
- package/dist/cjs/hooks/use-media-query.cjs +2 -0
- package/dist/cjs/hooks/use-media-query.cjs.map +1 -0
- package/dist/cjs/hooks/use-on-click-outside.cjs +2 -0
- package/dist/cjs/hooks/use-on-click-outside.cjs.map +1 -0
- package/dist/cjs/hooks/use-script.cjs +2 -0
- package/dist/cjs/hooks/use-script.cjs.map +1 -0
- package/dist/cjs/hooks/use-scroll-lock.cjs +2 -0
- package/dist/cjs/hooks/use-scroll-lock.cjs.map +1 -0
- package/dist/cjs/image.png +0 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/BlurText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/CircularText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/GradientText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/RollingText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/SplittingText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/SplittingText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +22 -0
- package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/TypingText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -0
- package/dist/cjs/lib/TextAnimation/WritingText.cjs +2 -0
- package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -0
- package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs +253 -0
- package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs.map +1 -0
- package/dist/cjs/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
- package/dist/cjs/styles/animation.css +1 -0
- package/dist/cjs/styles/index.css +1 -0
- package/dist/cjs/styles/theme.css +1 -0
- package/dist/cjs/utils/animations.cjs +2 -0
- package/dist/cjs/utils/animations.cjs.map +1 -0
- package/dist/cjs/utils/css.cjs +2 -0
- package/dist/cjs/utils/css.cjs.map +1 -0
- package/dist/cjs/utils/data-table.cjs +2 -0
- package/dist/cjs/utils/data-table.cjs.map +1 -0
- package/dist/cjs/utils/datetime.cjs +2 -0
- package/dist/cjs/utils/datetime.cjs.map +1 -0
- package/dist/cjs/vite.svg +1 -0
- package/dist/cjs/wave.png +0 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +7 -0
- package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/esm/_virtual/index.js +8 -0
- package/dist/esm/_virtual/index.js.map +1 -0
- package/dist/esm/_virtual/index2.js +5 -0
- package/dist/esm/_virtual/index2.js.map +1 -0
- package/dist/esm/components/Accordion/Accordion.js +190 -0
- package/dist/esm/components/Accordion/Accordion.js.map +1 -0
- package/dist/esm/components/Avatar/Avatar.js +93 -0
- package/dist/esm/components/Avatar/Avatar.js.map +1 -0
- package/dist/esm/components/Badge/Badge.js +35 -0
- package/dist/esm/components/Badge/Badge.js.map +1 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.js +102 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/esm/components/Button/Button.js +53 -0
- package/dist/esm/components/Button/Button.js.map +1 -0
- package/dist/esm/components/Button/ButtonGroup.js +53 -0
- package/dist/esm/components/Button/ButtonGroup.js.map +1 -0
- package/dist/esm/components/Calendar/Calendar.js +40 -0
- package/dist/esm/components/Calendar/Calendar.js.map +1 -0
- package/dist/esm/components/Carousel/Carousel.js +510 -0
- package/dist/esm/components/Carousel/Carousel.js.map +1 -0
- package/dist/esm/components/Checkbox/Checkbox.js +79 -0
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/esm/components/Collapsible/Collapsible.js +107 -0
- package/dist/esm/components/Collapsible/Collapsible.js.map +1 -0
- package/dist/esm/components/Command/Command.js +113 -0
- package/dist/esm/components/Command/Command.js.map +1 -0
- package/dist/esm/components/Command/index.js +16 -0
- package/dist/esm/components/Command/index.js.map +1 -0
- package/dist/esm/components/ContextMenu/ContextMenu.js +131 -0
- package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/esm/components/ContextMenu/index.js +24 -0
- package/dist/esm/components/ContextMenu/index.js.map +1 -0
- package/dist/esm/components/Cropper/Cropper.js +1014 -0
- package/dist/esm/components/Cropper/Cropper.js.map +1 -0
- package/dist/esm/components/Cropper/CropperTool.js +157 -0
- package/dist/esm/components/Cropper/CropperTool.js.map +1 -0
- package/dist/esm/components/Cropper/utils.js +108 -0
- package/dist/esm/components/Cropper/utils.js.map +1 -0
- package/dist/esm/components/DatePicker/DatePicker.js +263 -0
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/esm/components/DatePicker/RangePicker.js +456 -0
- package/dist/esm/components/DatePicker/RangePicker.js.map +1 -0
- package/dist/esm/components/DatePicker/TimePicker.js +444 -0
- package/dist/esm/components/DatePicker/TimePicker.js.map +1 -0
- package/dist/esm/components/Dialog/Dialog.js +223 -0
- package/dist/esm/components/Dialog/Dialog.js.map +1 -0
- package/dist/esm/components/DropdownMenu/DropdownMenu.js +196 -0
- package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/esm/components/DropdownMenu/index.js +24 -0
- package/dist/esm/components/DropdownMenu/index.js.map +1 -0
- package/dist/esm/components/FloatLabel.js +59 -0
- package/dist/esm/components/FloatLabel.js.map +1 -0
- package/dist/esm/components/Glass/Glass.js +93 -0
- package/dist/esm/components/Glass/Glass.js.map +1 -0
- package/dist/esm/components/ImageViewer/ImageViewer.css +1 -0
- package/dist/esm/components/ImageViewer/ImageViewer.js +273 -0
- package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -0
- package/dist/esm/components/Input/Input.js +267 -0
- package/dist/esm/components/Input/Input.js.map +1 -0
- package/dist/esm/components/InputOTP/InputOTP.js +70 -0
- package/dist/esm/components/InputOTP/InputOTP.js.map +1 -0
- package/dist/esm/components/Interactive/CursorFollow.js +257 -0
- package/dist/esm/components/Interactive/CursorFollow.js.map +1 -0
- package/dist/esm/components/Marquee/Marquee.js +419 -0
- package/dist/esm/components/Marquee/Marquee.js.map +1 -0
- package/dist/esm/components/Marquee/MarqueeWrapper.js +25 -0
- package/dist/esm/components/Marquee/MarqueeWrapper.js.map +1 -0
- package/dist/esm/components/Marquee/index.js +15 -0
- package/dist/esm/components/Marquee/index.js.map +1 -0
- package/dist/esm/components/Masonry/Masonry.js +840 -0
- package/dist/esm/components/Masonry/Masonry.js.map +1 -0
- package/dist/esm/components/Masonry/MasonryWrapper.js +19 -0
- package/dist/esm/components/Masonry/MasonryWrapper.js.map +1 -0
- package/dist/esm/components/Pagination/Pagination.js +209 -0
- package/dist/esm/components/Pagination/Pagination.js.map +1 -0
- package/dist/esm/components/Pagination/index.js +14 -0
- package/dist/esm/components/Pagination/index.js.map +1 -0
- package/dist/esm/components/Popover/Popover.js +51 -0
- package/dist/esm/components/Popover/Popover.js.map +1 -0
- package/dist/esm/components/Popover/index.js +9 -0
- package/dist/esm/components/Popover/index.js.map +1 -0
- package/dist/esm/components/QrCode/QrCode.js +300 -0
- package/dist/esm/components/QrCode/QrCode.js.map +1 -0
- package/dist/esm/components/QrCode/index.js +16 -0
- package/dist/esm/components/QrCode/index.js.map +1 -0
- package/dist/esm/components/Radio/Radio.js +74 -0
- package/dist/esm/components/Radio/Radio.js.map +1 -0
- package/dist/esm/components/Rate/Rate.js +191 -0
- package/dist/esm/components/Rate/Rate.js.map +1 -0
- package/dist/esm/components/Resizable/Resizable.js +89 -0
- package/dist/esm/components/Resizable/Resizable.js.map +1 -0
- package/dist/esm/components/ScrollArea/ScrollArea.js +45 -0
- package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/esm/components/Select/Select.js +199 -0
- package/dist/esm/components/Select/Select.js.map +1 -0
- package/dist/esm/components/Separator/Separator.js +7 -0
- package/dist/esm/components/Separator/Separator.js.map +1 -0
- package/dist/esm/components/Sheet/Sheet.js +141 -0
- package/dist/esm/components/Sheet/Sheet.js.map +1 -0
- package/dist/esm/components/Sidebar/Sidebar.js +30 -0
- package/dist/esm/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/esm/components/Skeleton/Skeleton.js +12 -0
- package/dist/esm/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/esm/components/Slider/Slider.js +420 -0
- package/dist/esm/components/Slider/Slider.js.map +1 -0
- package/dist/esm/components/Stepper/Stepper.js +886 -0
- package/dist/esm/components/Stepper/Stepper.js.map +1 -0
- package/dist/esm/components/Stepper/StepperWrapper.js +80 -0
- package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -0
- package/dist/esm/components/Stepper/index.js +21 -0
- package/dist/esm/components/Stepper/index.js.map +1 -0
- package/dist/esm/components/Switch/Switch.js +126 -0
- package/dist/esm/components/Switch/Switch.js.map +1 -0
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +126 -0
- package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -0
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +138 -0
- package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -0
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +164 -0
- package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -0
- package/dist/esm/components/Table/data-table-column-header.js +82 -0
- package/dist/esm/components/Table/data-table-column-header.js.map +1 -0
- package/dist/esm/components/Table/data-table-pagination.js +73 -0
- package/dist/esm/components/Table/data-table-pagination.js.map +1 -0
- package/dist/esm/components/Table/data-table.js +94 -0
- package/dist/esm/components/Table/data-table.js.map +1 -0
- package/dist/esm/components/Tabs/Tabs.js +540 -0
- package/dist/esm/components/Tabs/Tabs.js.map +1 -0
- package/dist/esm/components/Tabs/classes.js +345 -0
- package/dist/esm/components/Tabs/classes.js.map +1 -0
- package/dist/esm/components/Textarea/Textarea.js +132 -0
- package/dist/esm/components/Textarea/Textarea.js.map +1 -0
- package/dist/esm/components/TimeGridView.js +101 -0
- package/dist/esm/components/TimeGridView.js.map +1 -0
- package/dist/esm/components/Toast/Toast.js +80 -0
- package/dist/esm/components/Toast/Toast.js.map +1 -0
- package/dist/esm/components/Toggle/Toggle.js +23 -0
- package/dist/esm/components/Toggle/Toggle.js.map +1 -0
- package/dist/esm/components/Tooltip/Tooltip.js +120 -0
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/esm/components/Tour/Tour.js +948 -0
- package/dist/esm/components/Tour/Tour.js.map +1 -0
- package/dist/esm/components/Tour/TourWrapper.js +67 -0
- package/dist/esm/components/Tour/TourWrapper.js.map +1 -0
- package/dist/esm/components/Tour/index.js +38 -0
- package/dist/esm/components/Tour/index.js.map +1 -0
- package/dist/esm/components/Upload/Upload.js +948 -0
- package/dist/esm/components/Upload/Upload.js.map +1 -0
- package/dist/esm/components/WheelColumn.js +127 -0
- package/dist/esm/components/WheelColumn.js.map +1 -0
- package/dist/esm/constants/common.js +5 -0
- package/dist/esm/constants/common.js.map +1 -0
- package/dist/esm/favicon.ico +0 -0
- package/dist/esm/hooks/use-callback-ref.js +14 -0
- package/dist/esm/hooks/use-callback-ref.js.map +1 -0
- package/dist/esm/hooks/use-debounced-callback.js +21 -0
- package/dist/esm/hooks/use-debounced-callback.js.map +1 -0
- package/dist/esm/hooks/use-debounced-value.js +12 -0
- package/dist/esm/hooks/use-debounced-value.js.map +1 -0
- package/dist/esm/hooks/use-event-listener.js +21 -0
- package/dist/esm/hooks/use-event-listener.js.map +1 -0
- package/dist/esm/hooks/use-intersection-observer.js +56 -0
- package/dist/esm/hooks/use-intersection-observer.js.map +1 -0
- package/dist/esm/hooks/use-isomorphic-layout-effect.js +6 -0
- package/dist/esm/hooks/use-isomorphic-layout-effect.js.map +1 -0
- package/dist/esm/hooks/use-media-query.js +22 -0
- package/dist/esm/hooks/use-media-query.js.map +1 -0
- package/dist/esm/hooks/use-on-click-outside.js +18 -0
- package/dist/esm/hooks/use-on-click-outside.js.map +1 -0
- package/dist/esm/hooks/use-script.js +46 -0
- package/dist/esm/hooks/use-script.js.map +1 -0
- package/dist/esm/hooks/use-scroll-lock.js +27 -0
- package/dist/esm/hooks/use-scroll-lock.js.map +1 -0
- package/dist/esm/image.png +0 -0
- package/dist/esm/index.js +223 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/TextAnimation/BlurText.js +84 -0
- package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/CircularText.js +96 -0
- package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/FlipWords.js +103 -0
- package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -0
- package/dist/esm/lib/TextAnimation/GradientText.js +54 -0
- package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/RollingText.js +70 -0
- package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/RotatingText.js +38 -0
- package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/ShimmeringText.js +64 -0
- package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/SplittingText.js +86 -0
- package/dist/esm/lib/TextAnimation/SplittingText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +59 -0
- package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -0
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js +128 -0
- package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -0
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js +135 -0
- package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -0
- package/dist/esm/lib/TextAnimation/TypingText.js +118 -0
- package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -0
- package/dist/esm/lib/TextAnimation/WritingText.js +45 -0
- package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js +865 -0
- package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
- package/dist/esm/styles/animation.css +1 -0
- package/dist/esm/styles/index.css +1 -0
- package/dist/esm/styles/theme.css +1 -0
- package/dist/esm/utils/animations.js +189 -0
- package/dist/esm/utils/animations.js.map +1 -0
- package/dist/esm/utils/css.js +25 -0
- package/dist/esm/utils/css.js.map +1 -0
- package/dist/esm/utils/data-table.js +20 -0
- package/dist/esm/utils/data-table.js.map +1 -0
- package/dist/esm/utils/datetime.js +17 -0
- package/dist/esm/utils/datetime.js.map +1 -0
- package/dist/esm/vite.svg +1 -0
- package/dist/esm/wave.png +0 -0
- package/dist/types/components/Accordion/Accordion.d.ts +49 -0
- package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/types/components/Accordion/index.d.ts +3 -0
- package/dist/types/components/Accordion/index.d.ts.map +1 -0
- package/dist/types/components/Avatar/Avatar.d.ts +18 -0
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/types/components/Avatar/index.d.ts +3 -0
- package/dist/types/components/Avatar/index.d.ts.map +1 -0
- package/dist/types/components/Badge/Badge.d.ts +10 -0
- package/dist/types/components/Badge/Badge.d.ts.map +1 -0
- package/dist/types/components/Badge/index.d.ts +2 -0
- package/dist/types/components/Badge/index.d.ts.map +1 -0
- package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +23 -0
- package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/types/components/Breadcrumb/index.d.ts +2 -0
- package/dist/types/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/types/components/Button/Button.d.ts +10 -0
- package/dist/types/components/Button/Button.d.ts.map +1 -0
- package/dist/types/components/Button/ButtonGroup.d.ts +16 -0
- package/dist/types/components/Button/ButtonGroup.d.ts.map +1 -0
- package/dist/types/components/Button/index.d.ts +5 -0
- package/dist/types/components/Button/index.d.ts.map +1 -0
- package/dist/types/components/Calendar/Calendar.d.ts +15 -0
- package/dist/types/components/Calendar/Calendar.d.ts.map +1 -0
- package/dist/types/components/Calendar/index.d.ts +3 -0
- package/dist/types/components/Calendar/index.d.ts.map +1 -0
- package/dist/types/components/Carousel/Carousel.d.ts +79 -0
- package/dist/types/components/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/components/Carousel/index.d.ts +4 -0
- package/dist/types/components/Carousel/index.d.ts.map +1 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +15 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/types/components/Checkbox/index.d.ts +2 -0
- package/dist/types/components/Checkbox/index.d.ts.map +1 -0
- package/dist/types/components/Collapsible/Collapsible.d.ts +17 -0
- package/dist/types/components/Collapsible/Collapsible.d.ts.map +1 -0
- package/dist/types/components/Collapsible/index.d.ts +2 -0
- package/dist/types/components/Collapsible/index.d.ts.map +1 -0
- package/dist/types/components/Command/Command.d.ts +39 -0
- package/dist/types/components/Command/Command.d.ts.map +1 -0
- package/dist/types/components/Command/index.d.ts +15 -0
- package/dist/types/components/Command/index.d.ts.map +1 -0
- package/dist/types/components/ContextMenu/ContextMenu.d.ts +64 -0
- package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +1 -0
- package/dist/types/components/ContextMenu/index.d.ts +23 -0
- package/dist/types/components/ContextMenu/index.d.ts.map +1 -0
- package/dist/types/components/Cropper/Cropper.d.ts +86 -0
- package/dist/types/components/Cropper/Cropper.d.ts.map +1 -0
- package/dist/types/components/Cropper/CropperTool.d.ts +149 -0
- package/dist/types/components/Cropper/CropperTool.d.ts.map +1 -0
- package/dist/types/components/Cropper/index.d.ts +4 -0
- package/dist/types/components/Cropper/index.d.ts.map +1 -0
- package/dist/types/components/Cropper/utils.d.ts +130 -0
- package/dist/types/components/Cropper/utils.d.ts.map +1 -0
- package/dist/types/components/DatePicker/DatePicker.d.ts +56 -0
- package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/types/components/DatePicker/RangePicker.d.ts +42 -0
- package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -0
- package/dist/types/components/DatePicker/TimePicker.d.ts +43 -0
- package/dist/types/components/DatePicker/TimePicker.d.ts.map +1 -0
- package/dist/types/components/DatePicker/index.d.ts +7 -0
- package/dist/types/components/DatePicker/index.d.ts.map +1 -0
- package/dist/types/components/Dialog/Dialog.d.ts +45 -0
- package/dist/types/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/types/components/Dialog/index.d.ts +2 -0
- package/dist/types/components/Dialog/index.d.ts.map +1 -0
- package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +65 -0
- package/dist/types/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/types/components/DropdownMenu/index.d.ts +22 -0
- package/dist/types/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/types/components/FloatLabel.d.ts +8 -0
- package/dist/types/components/FloatLabel.d.ts.map +1 -0
- package/dist/types/components/Glass/Glass.d.ts +10 -0
- package/dist/types/components/Glass/Glass.d.ts.map +1 -0
- package/dist/types/components/Glass/index.d.ts +2 -0
- package/dist/types/components/Glass/index.d.ts.map +1 -0
- package/dist/types/components/ImageViewer/ImageViewer.d.ts +58 -0
- package/dist/types/components/ImageViewer/ImageViewer.d.ts.map +1 -0
- package/dist/types/components/ImageViewer/index.d.ts +4 -0
- package/dist/types/components/ImageViewer/index.d.ts.map +1 -0
- package/dist/types/components/Input/Input.d.ts +27 -0
- package/dist/types/components/Input/Input.d.ts.map +1 -0
- package/dist/types/components/Input/index.d.ts +2 -0
- package/dist/types/components/Input/index.d.ts.map +1 -0
- package/dist/types/components/InputOTP/InputOTP.d.ts +20 -0
- package/dist/types/components/InputOTP/InputOTP.d.ts.map +1 -0
- package/dist/types/components/InputOTP/index.d.ts +2 -0
- package/dist/types/components/InputOTP/index.d.ts.map +1 -0
- package/dist/types/components/Interactive/3DCard.d.ts +28 -0
- package/dist/types/components/Interactive/3DCard.d.ts.map +1 -0
- package/dist/types/components/Interactive/3DMarquee.d.ts +20 -0
- package/dist/types/components/Interactive/3DMarquee.d.ts.map +1 -0
- package/dist/types/components/Interactive/CursorFollow.d.ts +75 -0
- package/dist/types/components/Interactive/CursorFollow.d.ts.map +1 -0
- package/dist/types/components/Interactive/index.cursor.d.ts +7 -0
- package/dist/types/components/Interactive/index.cursor.d.ts.map +1 -0
- package/dist/types/components/Interactive/index.d.ts +2 -0
- package/dist/types/components/Interactive/index.d.ts.map +1 -0
- package/dist/types/components/Label/Label.d.ts +3 -0
- package/dist/types/components/Label/Label.d.ts.map +1 -0
- package/dist/types/components/Label/index.d.ts +2 -0
- package/dist/types/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/Marquee/Marquee.d.ts +31 -0
- package/dist/types/components/Marquee/Marquee.d.ts.map +1 -0
- package/dist/types/components/Marquee/MarqueeWrapper.d.ts +10 -0
- package/dist/types/components/Marquee/MarqueeWrapper.d.ts.map +1 -0
- package/dist/types/components/Marquee/index.d.ts +13 -0
- package/dist/types/components/Marquee/index.d.ts.map +1 -0
- package/dist/types/components/Masonry/Masonry.d.ts +41 -0
- package/dist/types/components/Masonry/Masonry.d.ts.map +1 -0
- package/dist/types/components/Masonry/MasonryWrapper.d.ts +29 -0
- package/dist/types/components/Masonry/MasonryWrapper.d.ts.map +1 -0
- package/dist/types/components/Masonry/index.d.ts +5 -0
- package/dist/types/components/Masonry/index.d.ts.map +1 -0
- package/dist/types/components/Pagination/Pagination.d.ts +24 -0
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/types/components/Pagination/index.d.ts +11 -0
- package/dist/types/components/Pagination/index.d.ts.map +1 -0
- package/dist/types/components/Popover/Popover.d.ts +22 -0
- package/dist/types/components/Popover/Popover.d.ts.map +1 -0
- package/dist/types/components/Popover/index.d.ts +5 -0
- package/dist/types/components/Popover/index.d.ts.map +1 -0
- package/dist/types/components/QrCode/QrCode.d.ts +51 -0
- package/dist/types/components/QrCode/QrCode.d.ts.map +1 -0
- package/dist/types/components/QrCode/index.d.ts +13 -0
- package/dist/types/components/QrCode/index.d.ts.map +1 -0
- package/dist/types/components/Radio/Radio.d.ts +35 -0
- package/dist/types/components/Radio/Radio.d.ts.map +1 -0
- package/dist/types/components/Radio/index.d.ts +2 -0
- package/dist/types/components/Radio/index.d.ts.map +1 -0
- package/dist/types/components/Rate/Rate.d.ts +26 -0
- package/dist/types/components/Rate/Rate.d.ts.map +1 -0
- package/dist/types/components/Rate/index.d.ts +3 -0
- package/dist/types/components/Rate/index.d.ts.map +1 -0
- package/dist/types/components/Resizable/Resizable.d.ts +71 -0
- package/dist/types/components/Resizable/Resizable.d.ts.map +1 -0
- package/dist/types/components/Resizable/index.d.ts +4 -0
- package/dist/types/components/Resizable/index.d.ts.map +1 -0
- package/dist/types/components/ScrollArea/ScrollArea.d.ts +19 -0
- package/dist/types/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/types/components/ScrollArea/index.d.ts +2 -0
- package/dist/types/components/ScrollArea/index.d.ts.map +1 -0
- package/dist/types/components/Select/Select.d.ts +33 -0
- package/dist/types/components/Select/Select.d.ts.map +1 -0
- package/dist/types/components/Select/index.d.ts +2 -0
- package/dist/types/components/Select/index.d.ts.map +1 -0
- package/dist/types/components/Separator/Separator.d.ts +5 -0
- package/dist/types/components/Separator/Separator.d.ts.map +1 -0
- package/dist/types/components/Separator/index.d.ts +2 -0
- package/dist/types/components/Separator/index.d.ts.map +1 -0
- package/dist/types/components/Sheet/Sheet.d.ts +36 -0
- package/dist/types/components/Sheet/Sheet.d.ts.map +1 -0
- package/dist/types/components/Sheet/index.d.ts +2 -0
- package/dist/types/components/Sheet/index.d.ts.map +1 -0
- package/dist/types/components/Sidebar/Sidebar.d.ts +50 -0
- package/dist/types/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/types/components/Sidebar/index.d.ts +4 -0
- package/dist/types/components/Sidebar/index.d.ts.map +1 -0
- package/dist/types/components/Skeleton/Skeleton.d.ts +6 -0
- package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/components/Skeleton/index.d.ts +2 -0
- package/dist/types/components/Skeleton/index.d.ts.map +1 -0
- package/dist/types/components/Slider/Slider.d.ts +25 -0
- package/dist/types/components/Slider/Slider.d.ts.map +1 -0
- package/dist/types/components/Slider/index.d.ts +2 -0
- package/dist/types/components/Slider/index.d.ts.map +1 -0
- package/dist/types/components/Stepper/Stepper.d.ts +86 -0
- package/dist/types/components/Stepper/Stepper.d.ts.map +1 -0
- package/dist/types/components/Stepper/StepperWrapper.d.ts +25 -0
- package/dist/types/components/Stepper/StepperWrapper.d.ts.map +1 -0
- package/dist/types/components/Stepper/index.d.ts +18 -0
- package/dist/types/components/Stepper/index.d.ts.map +1 -0
- package/dist/types/components/Switch/Switch.d.ts +14 -0
- package/dist/types/components/Switch/Switch.d.ts.map +1 -0
- package/dist/types/components/Switch/index.d.ts +2 -0
- package/dist/types/components/Switch/index.d.ts.map +1 -0
- package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts +9 -0
- package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts.map +1 -0
- package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts +11 -0
- package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts.map +1 -0
- package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts +8 -0
- package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts.map +1 -0
- package/dist/types/components/Table/TableWrapper.d.ts +2 -0
- package/dist/types/components/Table/TableWrapper.d.ts.map +1 -0
- package/dist/types/components/Table/data-table-column-header.d.ts +9 -0
- package/dist/types/components/Table/data-table-column-header.d.ts.map +1 -0
- package/dist/types/components/Table/data-table-pagination.d.ts +12 -0
- package/dist/types/components/Table/data-table-pagination.d.ts.map +1 -0
- package/dist/types/components/Table/data-table-toolbar.d.ts +10 -0
- package/dist/types/components/Table/data-table-toolbar.d.ts.map +1 -0
- package/dist/types/components/Table/data-table-view-options.d.ts +9 -0
- package/dist/types/components/Table/data-table-view-options.d.ts.map +1 -0
- package/dist/types/components/Table/data-table.d.ts +18 -0
- package/dist/types/components/Table/data-table.d.ts.map +1 -0
- package/dist/types/components/Table/index.d.ts +2 -0
- package/dist/types/components/Table/index.d.ts.map +1 -0
- package/dist/types/components/Table/select-column.d.ts +5 -0
- package/dist/types/components/Table/select-column.d.ts.map +1 -0
- package/dist/types/components/Tabs/Tabs.d.ts +22 -0
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/types/components/Tabs/classes.d.ts +29 -0
- package/dist/types/components/Tabs/classes.d.ts.map +1 -0
- package/dist/types/components/Tabs/index.d.ts +4 -0
- package/dist/types/components/Tabs/index.d.ts.map +1 -0
- package/dist/types/components/Tabs/types.d.ts +15 -0
- package/dist/types/components/Tabs/types.d.ts.map +1 -0
- package/dist/types/components/Textarea/Textarea.d.ts +17 -0
- package/dist/types/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/types/components/Textarea/index.d.ts +2 -0
- package/dist/types/components/Textarea/index.d.ts.map +1 -0
- package/dist/types/components/Theme/ThemeShowcase.d.ts +3 -0
- package/dist/types/components/Theme/ThemeShowcase.d.ts.map +1 -0
- package/dist/types/components/TimeGridView.d.ts +15 -0
- package/dist/types/components/TimeGridView.d.ts.map +1 -0
- package/dist/types/components/Toast/Toast.d.ts +12 -0
- package/dist/types/components/Toast/Toast.d.ts.map +1 -0
- package/dist/types/components/Toast/index.d.ts +3 -0
- package/dist/types/components/Toast/index.d.ts.map +1 -0
- package/dist/types/components/Toggle/Toggle.d.ts +10 -0
- package/dist/types/components/Toggle/Toggle.d.ts.map +1 -0
- package/dist/types/components/Toggle/index.d.ts +2 -0
- package/dist/types/components/Toggle/index.d.ts.map +1 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +19 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/types/components/Tooltip/index.d.ts +3 -0
- package/dist/types/components/Tooltip/index.d.ts.map +1 -0
- package/dist/types/components/Tour/Tour.d.ts +105 -0
- package/dist/types/components/Tour/Tour.d.ts.map +1 -0
- package/dist/types/components/Tour/TourWrapper.d.ts +46 -0
- package/dist/types/components/Tour/TourWrapper.d.ts.map +1 -0
- package/dist/types/components/Tour/index.d.ts +36 -0
- package/dist/types/components/Tour/index.d.ts.map +1 -0
- package/dist/types/components/TreeSelect/TreeSelect.d.ts +2 -0
- package/dist/types/components/TreeSelect/TreeSelect.d.ts.map +1 -0
- package/dist/types/components/TreeSelect/index.d.ts +2 -0
- package/dist/types/components/TreeSelect/index.d.ts.map +1 -0
- package/dist/types/components/Upload/Upload.d.ts +69 -0
- package/dist/types/components/Upload/Upload.d.ts.map +1 -0
- package/dist/types/components/Upload/index.d.ts +2 -0
- package/dist/types/components/Upload/index.d.ts.map +1 -0
- package/dist/types/components/WheelColumn.d.ts +15 -0
- package/dist/types/components/WheelColumn.d.ts.map +1 -0
- package/dist/types/config/data-table.d.ts +125 -0
- package/dist/types/config/data-table.d.ts.map +1 -0
- package/dist/types/constants/common.d.ts +4 -0
- package/dist/types/constants/common.d.ts.map +1 -0
- package/dist/types/constants/theme.d.ts +13 -0
- package/dist/types/constants/theme.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +10 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/use-callback-ref.d.ts +10 -0
- package/dist/types/hooks/use-callback-ref.d.ts.map +1 -0
- package/dist/types/hooks/use-data-table.d.ts +26 -0
- package/dist/types/hooks/use-data-table.d.ts.map +1 -0
- package/dist/types/hooks/use-debounced-callback.d.ts +2 -0
- package/dist/types/hooks/use-debounced-callback.d.ts.map +1 -0
- package/dist/types/hooks/use-debounced-value.d.ts +9 -0
- package/dist/types/hooks/use-debounced-value.d.ts.map +1 -0
- package/dist/types/hooks/use-event-listener.d.ts +7 -0
- package/dist/types/hooks/use-event-listener.d.ts.map +1 -0
- package/dist/types/hooks/use-intersection-observer.d.ts +20 -0
- package/dist/types/hooks/use-intersection-observer.d.ts.map +1 -0
- package/dist/types/hooks/use-isomorphic-layout-effect.d.ts +3 -0
- package/dist/types/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/types/hooks/use-media-query.d.ts +7 -0
- package/dist/types/hooks/use-media-query.d.ts.map +1 -0
- package/dist/types/hooks/use-mouse-position.d.ts +14 -0
- package/dist/types/hooks/use-mouse-position.d.ts.map +1 -0
- package/dist/types/hooks/use-on-click-outside.d.ts +5 -0
- package/dist/types/hooks/use-on-click-outside.d.ts.map +1 -0
- package/dist/types/hooks/use-script.d.ts +9 -0
- package/dist/types/hooks/use-script.d.ts.map +1 -0
- package/dist/types/hooks/use-scroll-lock.d.ts +13 -0
- package/dist/types/hooks/use-scroll-lock.d.ts.map +1 -0
- package/dist/types/index.d.ts +72 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/BlurText.d.ts +18 -0
- package/dist/types/lib/TextAnimation/BlurText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/CircularText.d.ts +10 -0
- package/dist/types/lib/TextAnimation/CircularText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/FlipWords.d.ts +10 -0
- package/dist/types/lib/TextAnimation/FlipWords.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/GradientText.d.ts +11 -0
- package/dist/types/lib/TextAnimation/GradientText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/RollingText.d.ts +12 -0
- package/dist/types/lib/TextAnimation/RollingText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/RotatingText.d.ts +11 -0
- package/dist/types/lib/TextAnimation/RotatingText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/ShimmeringText.d.ts +12 -0
- package/dist/types/lib/TextAnimation/ShimmeringText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/SplittingText.d.ts +26 -0
- package/dist/types/lib/TextAnimation/SplittingText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts +10 -0
- package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts +6 -0
- package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts +20 -0
- package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/TypingText.d.ts +27 -0
- package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/WritingText.d.ts +13 -0
- package/dist/types/lib/TextAnimation/WritingText.d.ts.map +1 -0
- package/dist/types/lib/TextAnimation/index.d.ts +16 -0
- package/dist/types/lib/TextAnimation/index.d.ts.map +1 -0
- package/dist/types/types/data-table.d.ts +44 -0
- package/dist/types/types/data-table.d.ts.map +1 -0
- package/dist/types/types/theme.d.ts +11 -0
- package/dist/types/types/theme.d.ts.map +1 -0
- package/dist/types/types/variables.d.ts +6 -0
- package/dist/types/types/variables.d.ts.map +1 -0
- package/dist/types/utils/animations.d.ts +47 -0
- package/dist/types/utils/animations.d.ts.map +1 -0
- package/dist/types/utils/css.d.ts +4 -0
- package/dist/types/utils/css.d.ts.map +1 -0
- package/dist/types/utils/data-table.d.ts +13 -0
- package/dist/types/utils/data-table.d.ts.map +1 -0
- package/dist/types/utils/datetime.d.ts +2 -0
- package/dist/types/utils/datetime.d.ts.map +1 -0
- package/dist/types/utils/parsers.d.ts +38 -0
- package/dist/types/utils/parsers.d.ts.map +1 -0
- package/package.json +968 -0
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
import { jsxs as O, Fragment as ue, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import J, { useMemo as de, useState as g, useEffect as R, useRef as D, Children as Qe, isValidElement as ze, useCallback as h, cloneElement as et } from "react";
|
|
3
|
+
import { ChevronLeft as tt, ChevronUp as rt, ChevronRight as nt, ChevronDown as st } from "lucide-react";
|
|
4
|
+
import { cn as f } from "@dsui/ui/lib/utils";
|
|
5
|
+
import { ImageViewer as at } from "../ImageViewer/ImageViewer.js";
|
|
6
|
+
const lt = J.forwardRef(
|
|
7
|
+
({
|
|
8
|
+
children: Q,
|
|
9
|
+
initialSlide: A = 0,
|
|
10
|
+
direction: a = "horizontal",
|
|
11
|
+
speed: ee = 300,
|
|
12
|
+
spaceBetween: I = 0,
|
|
13
|
+
slidesPerView: L = 1,
|
|
14
|
+
slidesPerGroup: T = 1,
|
|
15
|
+
centeredSlides: fe = !1,
|
|
16
|
+
loop: Y = !1,
|
|
17
|
+
rewind: W = !1,
|
|
18
|
+
effect: n = "slide",
|
|
19
|
+
breakpoints: k,
|
|
20
|
+
navigation: te = !1,
|
|
21
|
+
pagination: re = !1,
|
|
22
|
+
autoplay: v = !1,
|
|
23
|
+
allowTouchMove: E = !0,
|
|
24
|
+
grabCursor: Pe = !0,
|
|
25
|
+
keyboard: pe = !1,
|
|
26
|
+
mousewheel: he = !1,
|
|
27
|
+
className: $e,
|
|
28
|
+
containerClassName: De,
|
|
29
|
+
wrapperClassName: Oe,
|
|
30
|
+
slideClassName: Re,
|
|
31
|
+
enableImageViewer: M = !1,
|
|
32
|
+
onSlideChange: me,
|
|
33
|
+
onReachBeginning: be,
|
|
34
|
+
onReachEnd: ge,
|
|
35
|
+
onAutoplayStart: ve,
|
|
36
|
+
onAutoplayStop: we
|
|
37
|
+
}, Ae) => {
|
|
38
|
+
const B = typeof te == "boolean" ? { enabled: te, position: "inside" } : { enabled: !0, position: "inside", ...te }, o = typeof re == "boolean" ? { enabled: re, type: "bullets", position: "inside" } : { enabled: !0, type: "bullets", position: "inside", ...re }, m = de(
|
|
39
|
+
() => typeof v == "boolean" ? { delay: 3e3, disableOnInteraction: !0 } : { delay: 3e3, disableOnInteraction: !0, ...v },
|
|
40
|
+
[v]
|
|
41
|
+
), [c, Le] = g(A), [Te, ye] = g(A === 0), [ne, xe] = g(!1), [se, ae] = g(!1), [ke, We] = g(0), [j, Ce] = g(!1), [Be, F] = g(!1), [Xe, je] = g(
|
|
42
|
+
typeof window < "u" ? window.innerWidth : 1024
|
|
43
|
+
), [Fe, Me] = g(!1), [Ue, Ne] = g(0);
|
|
44
|
+
R(() => {
|
|
45
|
+
if (!k) return;
|
|
46
|
+
const t = () => {
|
|
47
|
+
je(window.innerWidth);
|
|
48
|
+
};
|
|
49
|
+
return window.addEventListener("resize", t), () => window.removeEventListener("resize", t);
|
|
50
|
+
}, [k]);
|
|
51
|
+
const le = de(() => {
|
|
52
|
+
if (!k)
|
|
53
|
+
return { slidesPerView: L, spaceBetween: I, slidesPerGroup: T };
|
|
54
|
+
const t = Object.keys(k).map(Number).sort((e, r) => r - e);
|
|
55
|
+
for (const e of t)
|
|
56
|
+
if (Xe >= e)
|
|
57
|
+
return {
|
|
58
|
+
slidesPerView: k[e].slidesPerView ?? L,
|
|
59
|
+
spaceBetween: k[e].spaceBetween ?? I,
|
|
60
|
+
slidesPerGroup: k[e].slidesPerGroup ?? T
|
|
61
|
+
};
|
|
62
|
+
return { slidesPerView: L, spaceBetween: I, slidesPerGroup: T };
|
|
63
|
+
}, [k, Xe, L, I, T]), Ie = le.slidesPerView, U = le.spaceBetween, _ = le.slidesPerGroup, G = D(null), _e = D(null), H = D(null), z = D(null), i = D({
|
|
64
|
+
startX: 0,
|
|
65
|
+
startY: 0,
|
|
66
|
+
currentX: 0,
|
|
67
|
+
currentY: 0
|
|
68
|
+
}), S = D(!1), K = Qe.toArray(Q).filter(
|
|
69
|
+
(t) => ze(t) && t.type === Se
|
|
70
|
+
), s = K.length, oe = h(
|
|
71
|
+
(t) => {
|
|
72
|
+
let e = null;
|
|
73
|
+
return J.Children.forEach(t, (r) => {
|
|
74
|
+
e || ze(r) && (r.type === "img" ? e = r : r.props && typeof r.props == "object" && "children" in r.props && (e = oe(
|
|
75
|
+
r.props.children
|
|
76
|
+
)));
|
|
77
|
+
}), e;
|
|
78
|
+
},
|
|
79
|
+
[]
|
|
80
|
+
), N = de(() => M ? K.map((t) => {
|
|
81
|
+
const r = oe(t.props.children);
|
|
82
|
+
return r ? {
|
|
83
|
+
src: r.props.src || "",
|
|
84
|
+
alt: r.props.alt || ""
|
|
85
|
+
} : { src: "", alt: "" };
|
|
86
|
+
}) : [], [K, M, oe]), Ge = h(
|
|
87
|
+
(t) => {
|
|
88
|
+
console.log("Slide clicked:", {
|
|
89
|
+
index: t,
|
|
90
|
+
enableImageViewer: M,
|
|
91
|
+
hasSrc: !!N[t]?.src,
|
|
92
|
+
hasDragged: S.current,
|
|
93
|
+
imageInfos: N
|
|
94
|
+
}), M && N[t]?.src && !S.current && (console.log("Opening viewer at index:", t), Ne(t), Me(!0));
|
|
95
|
+
},
|
|
96
|
+
[M, N]
|
|
97
|
+
), b = Ie === "auto" ? 1 : Math.min(Ie, s);
|
|
98
|
+
R(() => {
|
|
99
|
+
Y ? (ye(!1), xe(!1)) : (ye(c === 0), xe(c >= s - b));
|
|
100
|
+
}, [c, s, b, Y]);
|
|
101
|
+
const w = h(
|
|
102
|
+
(t) => {
|
|
103
|
+
let e = t;
|
|
104
|
+
Y ? e = (t % s + s) % s : W ? t < 0 ? e = s - 1 : t >= s ? e = 0 : e = t : e = Math.max(0, Math.min(t, s - b)), Le(e);
|
|
105
|
+
const r = a === "horizontal" ? G.current?.offsetWidth || 0 : G.current?.offsetHeight || 0, u = r / b;
|
|
106
|
+
let d = -e * (u + U);
|
|
107
|
+
fe && b < s && (d += r / 2 - u / 2), We(d), o.type === "scrollbar" && (F(!0), z.current && clearTimeout(z.current), z.current = setTimeout(() => {
|
|
108
|
+
F(!1);
|
|
109
|
+
}, 1e3)), me?.({ activeIndex: e, realIndex: e }), e === 0 && be?.(), e >= s - b && ge?.();
|
|
110
|
+
},
|
|
111
|
+
[
|
|
112
|
+
s,
|
|
113
|
+
b,
|
|
114
|
+
Y,
|
|
115
|
+
W,
|
|
116
|
+
a,
|
|
117
|
+
U,
|
|
118
|
+
fe,
|
|
119
|
+
o.type,
|
|
120
|
+
me,
|
|
121
|
+
be,
|
|
122
|
+
ge
|
|
123
|
+
]
|
|
124
|
+
), y = h(() => {
|
|
125
|
+
w(c + _);
|
|
126
|
+
}, [c, _, w]), x = h(() => {
|
|
127
|
+
w(c - _);
|
|
128
|
+
}, [c, _, w]), C = h(() => {
|
|
129
|
+
H.current && (clearInterval(H.current), H.current = null), Ce(!1), we?.();
|
|
130
|
+
}, [we]), V = h(() => {
|
|
131
|
+
v && (H.current = setInterval(() => {
|
|
132
|
+
m.reverseDirection ? x() : y(), m.stopOnLastSlide && ne && C();
|
|
133
|
+
}, m.delay), Ce(!0), ve?.());
|
|
134
|
+
}, [
|
|
135
|
+
m,
|
|
136
|
+
v,
|
|
137
|
+
y,
|
|
138
|
+
x,
|
|
139
|
+
ne,
|
|
140
|
+
ve,
|
|
141
|
+
C
|
|
142
|
+
]);
|
|
143
|
+
R(() => (v && V(), () => C()), [v, V, C]);
|
|
144
|
+
const He = h(() => {
|
|
145
|
+
m.pauseOnMouseEnter && j && C();
|
|
146
|
+
}, [m.pauseOnMouseEnter, j, C]), Ke = h(() => {
|
|
147
|
+
m.pauseOnMouseEnter && v && !j && V();
|
|
148
|
+
}, [
|
|
149
|
+
m.pauseOnMouseEnter,
|
|
150
|
+
v,
|
|
151
|
+
j,
|
|
152
|
+
V
|
|
153
|
+
]), Ve = h(
|
|
154
|
+
(t) => {
|
|
155
|
+
if (E) {
|
|
156
|
+
try {
|
|
157
|
+
t.currentTarget.setPointerCapture(t.pointerId);
|
|
158
|
+
} catch (e) {
|
|
159
|
+
console.error("Failed to capture pointer:", e);
|
|
160
|
+
}
|
|
161
|
+
i.current.startX = t.clientX, i.current.startY = t.clientY, i.current.currentX = t.clientX, i.current.currentY = t.clientY, S.current = !1, ae(!0), m.disableOnInteraction && C();
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
[E, m.disableOnInteraction, C]
|
|
165
|
+
), Ze = h(
|
|
166
|
+
(t) => {
|
|
167
|
+
if (!E) return;
|
|
168
|
+
const e = i.current.startX, r = i.current.startY;
|
|
169
|
+
if (e === 0 && r === 0) return;
|
|
170
|
+
t.preventDefault(), i.current.currentX = t.clientX, i.current.currentY = t.clientY;
|
|
171
|
+
const u = Math.abs(t.clientX - i.current.startX), d = Math.abs(t.clientY - i.current.startY);
|
|
172
|
+
(u > 5 || d > 5) && (S.current = !0), ae(!0);
|
|
173
|
+
},
|
|
174
|
+
[E]
|
|
175
|
+
), Ye = h(() => {
|
|
176
|
+
const t = i.current.startX, e = i.current.startY;
|
|
177
|
+
if (t === 0 && e === 0) return;
|
|
178
|
+
const r = i.current.currentX - t, u = i.current.currentY - e, d = a === "horizontal" ? r : u;
|
|
179
|
+
Math.abs(d) > 0 && S.current ? d > 0 ? x() : y() : w(c), setTimeout(() => {
|
|
180
|
+
ae(!1), i.current.startX = 0, i.current.startY = 0, i.current.currentX = 0, i.current.currentY = 0, S.current = !1;
|
|
181
|
+
}, 50);
|
|
182
|
+
}, [a, x, y, w, c]);
|
|
183
|
+
R(() => {
|
|
184
|
+
if (!pe) return;
|
|
185
|
+
const t = (e) => {
|
|
186
|
+
e.key === "ArrowLeft" || e.key === "ArrowUp" ? (e.preventDefault(), x()) : (e.key === "ArrowRight" || e.key === "ArrowDown") && (e.preventDefault(), y());
|
|
187
|
+
};
|
|
188
|
+
return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
|
|
189
|
+
}, [pe, y, x]), R(() => {
|
|
190
|
+
if (!he) return;
|
|
191
|
+
const t = (r) => {
|
|
192
|
+
r.preventDefault(), r.deltaY > 0 ? y() : r.deltaY < 0 && x();
|
|
193
|
+
}, e = G.current;
|
|
194
|
+
if (e)
|
|
195
|
+
return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
|
|
196
|
+
}, [he, y, x]);
|
|
197
|
+
const Ee = () => {
|
|
198
|
+
if (!o.enabled) return null;
|
|
199
|
+
const {
|
|
200
|
+
type: t,
|
|
201
|
+
clickable: e,
|
|
202
|
+
dynamicBullets: r,
|
|
203
|
+
dynamicMainBullets: u = 1,
|
|
204
|
+
position: d = "inside"
|
|
205
|
+
} = o, P = d === "outside";
|
|
206
|
+
if (t === "bullets") {
|
|
207
|
+
const $ = r ? Math.min(u * 2 + 1, s) : s;
|
|
208
|
+
return /* @__PURE__ */ l(
|
|
209
|
+
"div",
|
|
210
|
+
{
|
|
211
|
+
className: f(
|
|
212
|
+
"flex items-center justify-center gap-2",
|
|
213
|
+
P ? "mt-4" : "absolute bottom-4 left-1/2 -translate-x-1/2",
|
|
214
|
+
// Inside: overlay
|
|
215
|
+
a === "vertical" && !P && "flex-col right-4 left-auto top-1/2 -translate-y-1/2 translate-x-0 bottom-auto"
|
|
216
|
+
),
|
|
217
|
+
children: Array.from({ length: $ }).map((Z, q) => {
|
|
218
|
+
const p = r ? Math.max(
|
|
219
|
+
0,
|
|
220
|
+
Math.min(
|
|
221
|
+
q + c - u,
|
|
222
|
+
s - 1
|
|
223
|
+
)
|
|
224
|
+
) : q, X = p === c;
|
|
225
|
+
return o.renderBullet ? /* @__PURE__ */ l(J.Fragment, { children: o.renderBullet(
|
|
226
|
+
p,
|
|
227
|
+
f(
|
|
228
|
+
"carousel-pagination-bullet",
|
|
229
|
+
X && "carousel-pagination-bullet-active"
|
|
230
|
+
)
|
|
231
|
+
) }, p) : /* @__PURE__ */ l(
|
|
232
|
+
"button",
|
|
233
|
+
{
|
|
234
|
+
onClick: () => e && w(p),
|
|
235
|
+
className: f(
|
|
236
|
+
"rounded-full transition-all",
|
|
237
|
+
"w-2 h-2",
|
|
238
|
+
X ? a === "horizontal" ? "bg-primary w-6" : "bg-primary h-6" : "bg-muted-foreground/30 hover:bg-muted-foreground/50",
|
|
239
|
+
e && "cursor-pointer"
|
|
240
|
+
),
|
|
241
|
+
"aria-label": `Go to slide ${p + 1}`
|
|
242
|
+
},
|
|
243
|
+
p
|
|
244
|
+
);
|
|
245
|
+
})
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
if (t === "fraction")
|
|
250
|
+
return /* @__PURE__ */ l(
|
|
251
|
+
"div",
|
|
252
|
+
{
|
|
253
|
+
className: f(
|
|
254
|
+
"text-center text-sm text-muted-foreground bg-background/80 backdrop-blur px-3 py-1 rounded-full",
|
|
255
|
+
P ? "mt-4 mx-auto w-fit" : "absolute bottom-4 left-1/2 -translate-x-1/2"
|
|
256
|
+
// Inside: overlay
|
|
257
|
+
),
|
|
258
|
+
children: o.renderFraction ? o.renderFraction(
|
|
259
|
+
"carousel-pagination-current",
|
|
260
|
+
"carousel-pagination-total"
|
|
261
|
+
) : /* @__PURE__ */ O(ue, { children: [
|
|
262
|
+
/* @__PURE__ */ l("span", { className: "carousel-pagination-current font-semibold text-foreground", children: c + 1 }),
|
|
263
|
+
" / ",
|
|
264
|
+
/* @__PURE__ */ l("span", { className: "carousel-pagination-total", children: s })
|
|
265
|
+
] })
|
|
266
|
+
}
|
|
267
|
+
);
|
|
268
|
+
if (t === "progressbar") {
|
|
269
|
+
const $ = (c + 1) / s * 100, Z = o.position === "inside";
|
|
270
|
+
return /* @__PURE__ */ l(
|
|
271
|
+
"div",
|
|
272
|
+
{
|
|
273
|
+
onClick: (p) => {
|
|
274
|
+
if (!e) return;
|
|
275
|
+
const X = p.currentTarget.getBoundingClientRect(), ie = (p.clientX - X.left) / X.width, ce = Math.floor(ie * s);
|
|
276
|
+
w(Math.min(ce, s - 1));
|
|
277
|
+
},
|
|
278
|
+
className: f(
|
|
279
|
+
"w-full h-1 bg-muted rounded-full overflow-hidden",
|
|
280
|
+
Z ? "absolute bottom-0 left-0 right-0 rounded-none" : "mt-4",
|
|
281
|
+
e && "cursor-pointer"
|
|
282
|
+
),
|
|
283
|
+
children: o.renderProgressbar ? o.renderProgressbar("carousel-progressbar-fill") : /* @__PURE__ */ l(
|
|
284
|
+
"div",
|
|
285
|
+
{
|
|
286
|
+
className: "carousel-progressbar-fill h-full bg-primary transition-all duration-300",
|
|
287
|
+
style: { width: `${$}%` }
|
|
288
|
+
}
|
|
289
|
+
)
|
|
290
|
+
}
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
if (t === "custom" && o.renderCustom)
|
|
294
|
+
return /* @__PURE__ */ l(
|
|
295
|
+
"div",
|
|
296
|
+
{
|
|
297
|
+
className: f(
|
|
298
|
+
P ? "mt-4 flex justify-center" : "absolute bottom-4 left-1/2 -translate-x-1/2"
|
|
299
|
+
// Inside: overlay
|
|
300
|
+
),
|
|
301
|
+
children: o.renderCustom(c + 1, s)
|
|
302
|
+
}
|
|
303
|
+
);
|
|
304
|
+
if (t === "scrollbar") {
|
|
305
|
+
const $ = 1 / s * 100, Z = c / (s - 1) * (100 - $);
|
|
306
|
+
return /* @__PURE__ */ l(
|
|
307
|
+
"div",
|
|
308
|
+
{
|
|
309
|
+
onClick: (p) => {
|
|
310
|
+
if (!e) return;
|
|
311
|
+
F(!0), z.current && clearTimeout(z.current);
|
|
312
|
+
const X = p.currentTarget.getBoundingClientRect(), ie = (p.clientX - X.left) / X.width, ce = Math.round(ie * (s - 1));
|
|
313
|
+
w(Math.max(0, Math.min(ce, s - 1))), z.current = setTimeout(() => {
|
|
314
|
+
F(!1);
|
|
315
|
+
}, 1e3);
|
|
316
|
+
},
|
|
317
|
+
className: f(
|
|
318
|
+
"w-full h-1 bg-muted/50 rounded-full transition-opacity duration-300",
|
|
319
|
+
P ? "mt-4" : "absolute bottom-0 left-1/2 -translate-x-1/2",
|
|
320
|
+
// Inside: overlay at bottom
|
|
321
|
+
e && "cursor-pointer",
|
|
322
|
+
Be ? "opacity-100" : "opacity-0"
|
|
323
|
+
),
|
|
324
|
+
children: o.renderScrollbar ? o.renderScrollbar("carousel-scrollbar-drag") : /* @__PURE__ */ l(
|
|
325
|
+
"div",
|
|
326
|
+
{
|
|
327
|
+
className: "carousel-scrollbar-drag h-full bg-primary rounded-full transition-all duration-300 absolute left-0",
|
|
328
|
+
style: {
|
|
329
|
+
width: `${$}%`,
|
|
330
|
+
left: `${Z}%`
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
)
|
|
334
|
+
}
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
return null;
|
|
338
|
+
}, qe = (t) => {
|
|
339
|
+
const e = t - c;
|
|
340
|
+
switch (n) {
|
|
341
|
+
case "fade":
|
|
342
|
+
return {
|
|
343
|
+
opacity: e === 0 ? 1 : 0,
|
|
344
|
+
zIndex: e === 0 ? 10 : 0
|
|
345
|
+
};
|
|
346
|
+
case "cube":
|
|
347
|
+
return {
|
|
348
|
+
transform: `translateX(${e * 100}%) rotateY(${e * -90}deg)`,
|
|
349
|
+
transformOrigin: e > 0 ? "left center" : "right center"
|
|
350
|
+
};
|
|
351
|
+
case "coverflow":
|
|
352
|
+
return {
|
|
353
|
+
transform: `translateX(${e * 60}%) translateZ(${Math.abs(e) * -100}px) rotateY(${e * -50}deg)`,
|
|
354
|
+
zIndex: -Math.abs(e)
|
|
355
|
+
};
|
|
356
|
+
case "flip":
|
|
357
|
+
return {
|
|
358
|
+
transform: `rotateY(${e * 180}deg)`,
|
|
359
|
+
backfaceVisibility: "hidden"
|
|
360
|
+
};
|
|
361
|
+
case "cards":
|
|
362
|
+
return {
|
|
363
|
+
transform: `translateX(${e * 50}px) translateZ(${-Math.abs(e) * 100}px) scale(${1 - Math.abs(e) * 0.2})`,
|
|
364
|
+
opacity: e === 0 ? 1 : 0.5,
|
|
365
|
+
zIndex: 100 - Math.abs(e) * 10,
|
|
366
|
+
transition: "all 0.5s ease"
|
|
367
|
+
};
|
|
368
|
+
default:
|
|
369
|
+
return {};
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
return /* @__PURE__ */ O(ue, { children: [
|
|
373
|
+
/* @__PURE__ */ O(
|
|
374
|
+
"div",
|
|
375
|
+
{
|
|
376
|
+
ref: Ae,
|
|
377
|
+
className: f("carousel-container", De, $e),
|
|
378
|
+
onMouseEnter: He,
|
|
379
|
+
onMouseLeave: Ke,
|
|
380
|
+
children: [
|
|
381
|
+
/* @__PURE__ */ O(
|
|
382
|
+
"div",
|
|
383
|
+
{
|
|
384
|
+
ref: G,
|
|
385
|
+
className: f(
|
|
386
|
+
"carousel relative overflow-hidden",
|
|
387
|
+
(n === "fade" || n === "cube" || n === "flip" || n === "cards") && "aspect-4/3",
|
|
388
|
+
n === "coverflow" && "aspect-4/2 rounded-xl",
|
|
389
|
+
a === "vertical" && n === "slide" && "h-full",
|
|
390
|
+
Pe && E && !se && "cursor-grab",
|
|
391
|
+
se && "cursor-grabbing"
|
|
392
|
+
),
|
|
393
|
+
children: [
|
|
394
|
+
/* @__PURE__ */ l(
|
|
395
|
+
"div",
|
|
396
|
+
{
|
|
397
|
+
ref: _e,
|
|
398
|
+
className: f(
|
|
399
|
+
"carousel-wrapper select-none",
|
|
400
|
+
n === "slide" && "flex",
|
|
401
|
+
a === "vertical" && n === "slide" && "flex-col h-full",
|
|
402
|
+
n !== "slide" && "relative",
|
|
403
|
+
Oe
|
|
404
|
+
),
|
|
405
|
+
style: {
|
|
406
|
+
transform: n === "slide" ? a === "horizontal" ? `translateX(${ke}px)` : `translateY(${ke}px)` : void 0,
|
|
407
|
+
transition: se ? "none" : `transform ${ee}ms ease`,
|
|
408
|
+
gap: n === "slide" ? `${U}px` : void 0,
|
|
409
|
+
perspective: n !== "slide" && n !== "fade" ? "1200px" : void 0,
|
|
410
|
+
touchAction: E ? "none" : "auto",
|
|
411
|
+
height: a === "vertical" && n === "slide" ? "100%" : void 0
|
|
412
|
+
},
|
|
413
|
+
onPointerDown: Ve,
|
|
414
|
+
onPointerMove: Ze,
|
|
415
|
+
onPointerUp: Ye,
|
|
416
|
+
onPointerCancel: Ye,
|
|
417
|
+
children: K.map((t, e) => {
|
|
418
|
+
const r = e === c, u = t;
|
|
419
|
+
return et(u, {
|
|
420
|
+
key: e,
|
|
421
|
+
className: f(
|
|
422
|
+
"carousel-slide",
|
|
423
|
+
Re,
|
|
424
|
+
u.props.className,
|
|
425
|
+
n !== "slide" && "absolute inset-0",
|
|
426
|
+
n === "fade" && "transition-opacity duration-300",
|
|
427
|
+
n !== "slide" && n !== "fade" && "transition-all duration-500",
|
|
428
|
+
M && N[e]?.src && "cursor-pointer"
|
|
429
|
+
),
|
|
430
|
+
style: {
|
|
431
|
+
flex: n === "slide" ? a === "vertical" ? "0 0 100%" : `0 0 calc(${100 / b}% - ${U * (b - 1) / b}px)` : void 0,
|
|
432
|
+
minWidth: n === "slide" && a === "horizontal" ? 0 : void 0,
|
|
433
|
+
minHeight: n === "slide" && a === "vertical" ? 0 : void 0,
|
|
434
|
+
height: a === "vertical" && n === "slide" ? "100%" : void 0,
|
|
435
|
+
userSelect: "none",
|
|
436
|
+
// @ts-expect-error - WebkitUserDrag is not in CSSProperties but is valid CSS
|
|
437
|
+
WebkitUserDrag: "none",
|
|
438
|
+
...n !== "slide" ? qe(e) : {},
|
|
439
|
+
...u.props.style
|
|
440
|
+
},
|
|
441
|
+
onClick: (d) => {
|
|
442
|
+
d.stopPropagation(), Ge(e);
|
|
443
|
+
},
|
|
444
|
+
onDragStart: (d) => d.preventDefault(),
|
|
445
|
+
"data-active": r,
|
|
446
|
+
"data-index": e
|
|
447
|
+
});
|
|
448
|
+
})
|
|
449
|
+
}
|
|
450
|
+
),
|
|
451
|
+
o.enabled && o.position !== "outside" && Ee(),
|
|
452
|
+
B.enabled && B.position === "inside" && /* @__PURE__ */ O(ue, { children: [
|
|
453
|
+
/* @__PURE__ */ l(
|
|
454
|
+
"button",
|
|
455
|
+
{
|
|
456
|
+
onClick: x,
|
|
457
|
+
disabled: !Y && !W && Te,
|
|
458
|
+
className: f(
|
|
459
|
+
"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed",
|
|
460
|
+
a === "horizontal" ? "left-4 top-1/2 -translate-y-1/2" : "top-4 left-1/2 -translate-x-1/2"
|
|
461
|
+
),
|
|
462
|
+
"aria-label": "Previous slide",
|
|
463
|
+
children: B.prevEl || (a === "horizontal" ? /* @__PURE__ */ l(tt, { className: "w-5 h-5" }) : /* @__PURE__ */ l(rt, { className: "w-5 h-5" }))
|
|
464
|
+
}
|
|
465
|
+
),
|
|
466
|
+
/* @__PURE__ */ l(
|
|
467
|
+
"button",
|
|
468
|
+
{
|
|
469
|
+
onClick: y,
|
|
470
|
+
disabled: !Y && !W && ne,
|
|
471
|
+
className: f(
|
|
472
|
+
"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed",
|
|
473
|
+
a === "horizontal" ? "right-4 top-1/2 -translate-y-1/2" : "bottom-4 left-1/2 -translate-x-1/2"
|
|
474
|
+
),
|
|
475
|
+
"aria-label": "Next slide",
|
|
476
|
+
children: B.nextEl || (a === "horizontal" ? /* @__PURE__ */ l(nt, { className: "w-5 h-5" }) : /* @__PURE__ */ l(st, { className: "w-5 h-5" }))
|
|
477
|
+
}
|
|
478
|
+
)
|
|
479
|
+
] })
|
|
480
|
+
]
|
|
481
|
+
}
|
|
482
|
+
),
|
|
483
|
+
o.enabled && o.position === "outside" && Ee()
|
|
484
|
+
]
|
|
485
|
+
}
|
|
486
|
+
),
|
|
487
|
+
M && N.length > 0 && /* @__PURE__ */ l(
|
|
488
|
+
at,
|
|
489
|
+
{
|
|
490
|
+
images: N,
|
|
491
|
+
visible: Fe,
|
|
492
|
+
onClose: () => {
|
|
493
|
+
console.log("Closing viewer"), Me(!1);
|
|
494
|
+
},
|
|
495
|
+
activeIndex: Ue,
|
|
496
|
+
onIndexChange: Ne
|
|
497
|
+
}
|
|
498
|
+
)
|
|
499
|
+
] });
|
|
500
|
+
}
|
|
501
|
+
);
|
|
502
|
+
lt.displayName = "Carousel";
|
|
503
|
+
const Se = J.forwardRef(({ children: Q, className: A, style: a, ...ee }, I) => /* @__PURE__ */ l("div", { ref: I, className: A, style: a, ...ee, children: Q }));
|
|
504
|
+
Se.displayName = "CarouselSlide";
|
|
505
|
+
export {
|
|
506
|
+
lt as Carousel,
|
|
507
|
+
Se as CarouselSlide,
|
|
508
|
+
lt as default
|
|
509
|
+
};
|
|
510
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 \"flex items-center justify-center gap-2\",\n isOutside\n ? \"mt-4\" // Outside: margin-top for spacing\n : \"absolute bottom-4 left-1/2 -translate-x-1/2\", // Inside: overlay\n direction === \"vertical\" &&\n !isOutside &&\n \"flex-col right-4 left-auto top-1/2 -translate-y-1/2 translate-x-0 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 \"carousel-pagination-bullet\",\n isActive && \"carousel-pagination-bullet-active\"\n )\n )}\n </React.Fragment>\n ) : (\n <button\n key={bulletIndex}\n onClick={() => clickable && slideTo(bulletIndex)}\n className={cn(\n \"rounded-full transition-all\",\n direction === \"horizontal\" ? \"w-2 h-2\" : \"w-2 h-2\",\n isActive\n ? direction === \"horizontal\"\n ? \"bg-primary w-6\"\n : \"bg-primary h-6\"\n : \"bg-muted-foreground/30 hover:bg-muted-foreground/50\",\n clickable && \"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 \"text-center text-sm text-muted-foreground bg-background/80 backdrop-blur px-3 py-1 rounded-full\",\n isOutside\n ? \"mt-4 mx-auto w-fit\" // Outside: centered with margin\n : \"absolute bottom-4 left-1/2 -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=\"carousel-pagination-current font-semibold text-foreground\">\n {activeIndex + 1}\n </span>\n {\" / \"}\n <span className=\"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 \"w-full h-1 bg-muted rounded-full overflow-hidden\",\n isInside\n ? \"absolute bottom-0 left-0 right-0 rounded-none\"\n : \"mt-4\",\n clickable && \"cursor-pointer\"\n )}\n >\n {paginationOptions.renderProgressbar ? (\n paginationOptions.renderProgressbar(\"carousel-progressbar-fill\")\n ) : (\n <div\n className=\"carousel-progressbar-fill h-full bg-primary transition-all 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 ? \"mt-4 flex justify-center\" // Outside: centered with margin\n : \"absolute bottom-4 left-1/2 -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 \"w-full h-1 bg-muted/50 rounded-full transition-opacity duration-300\",\n isOutside\n ? \"mt-4\" // Outside: margin-top for spacing\n : \"absolute bottom-0 left-1/2 -translate-x-1/2\", // Inside: overlay at bottom\n clickable && \"cursor-pointer\",\n showScrollbar ? \"opacity-100\" : \"opacity-0\"\n )}\n >\n {paginationOptions.renderScrollbar ? (\n paginationOptions.renderScrollbar(\"carousel-scrollbar-drag\")\n ) : (\n <div\n className=\"carousel-scrollbar-drag h-full bg-primary rounded-full transition-all duration-300 absolute 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(\"carousel-container\", containerClassName, className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div\n ref={containerRef}\n className={cn(\n \"carousel relative overflow-hidden\",\n (effect === \"fade\" ||\n effect === \"cube\" ||\n effect === \"flip\" ||\n effect === \"cards\") &&\n \"aspect-4/3\",\n effect === \"coverflow\" && \"aspect-4/2 rounded-xl\",\n direction === \"vertical\" && effect === \"slide\" && \"h-full\",\n grabCursor && allowTouchMove && !isDragging && \"cursor-grab\",\n isDragging && \"cursor-grabbing\"\n )}\n >\n {/* Wrapper */}\n <div\n ref={wrapperRef}\n className={cn(\n \"carousel-wrapper select-none\",\n effect === \"slide\" && \"flex\",\n direction === \"vertical\" &&\n effect === \"slide\" &&\n \"flex-col h-full\",\n effect !== \"slide\" && \"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 \"carousel-slide\",\n slideClassName,\n slideElement.props.className,\n effect !== \"slide\" && \"absolute inset-0\",\n effect === \"fade\" && \"transition-opacity duration-300\",\n effect !== \"slide\" &&\n effect !== \"fade\" &&\n \"transition-all duration-500\",\n enableImageViewer &&\n imageInfos[index]?.src &&\n \"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 \"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"left-4 top-1/2 -translate-y-1/2\"\n : \"top-4 left-1/2 -translate-x-1/2\"\n )}\n aria-label=\"Previous slide\"\n >\n {navigationOptions.prevEl ||\n (direction === \"horizontal\" ? (\n <ChevronLeft className=\"w-5 h-5\" />\n ) : (\n <ChevronUp className=\"w-5 h-5\" />\n ))}\n </button>\n <button\n onClick={slideNext}\n disabled={!loop && !rewind && isEnd}\n className={cn(\n \"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"right-4 top-1/2 -translate-y-1/2\"\n : \"bottom-4 left-1/2 -translate-x-1/2\"\n )}\n aria-label=\"Next slide\"\n >\n {navigationOptions.nextEl ||\n (direction === \"horizontal\" ? (\n <ChevronRight className=\"w-5 h-5\" />\n ) : (\n <ChevronDown className=\"w-5 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,SACA;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,mBACA,mBACF;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,uBACA;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,6DACb,UAAArF,IAAc,GACjB;AAAA,cACC;AAAA,cACD,gBAAAqF,EAAC,QAAA,EAAK,WAAU,6BAA6B,UAAA1C,EAAA,CAAY;AAAA,YAAA,EAAA,CAC3D;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,kDACA;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,6BACA;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,SACA;AAAA;AAAA,cACJJ,KAAa;AAAA,cACblE,KAAgB,gBAAgB;AAAA,YAAA;AAAA,YAGjC,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,sBAAsBpG,IAAoBD,EAAS;AAAA,UACjE,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,oCACA;AAAA,wBAAA;AAAA,wBAEN,cAAW;AAAA,wBAEV,UAAA4B,EAAkB,WAChB5B,MAAc,eACb,gBAAAqH,EAACkB,IAAA,EAAY,WAAU,UAAA,CAAU,IAEjC,gBAAAlB,EAACmB,IAAA,EAAU,WAAU,WAAU;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGrC,gBAAAnB;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAS3B;AAAA,wBACT,UAAU,CAACpF,KAAQ,CAACC,KAAU8B;AAAA,wBAC9B,WAAWiF;AAAA,0BACT;AAAA,0BACAtH,MAAc,eACV,qCACA;AAAA,wBAAA;AAAA,wBAEN,cAAW;AAAA,wBAEV,UAAA4B,EAAkB,WAChB5B,MAAc,eACb,gBAAAqH,EAACoB,IAAA,EAAa,WAAU,UAAA,CAAU,IAElC,gBAAApB,EAACqB,IAAA,EAAY,WAAU,WAAU;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAEvC,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;"}
|