@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,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),f=require("./use-isomorphic-layout-effect.cjs");function E(t,r,s,n){const u=i.useRef(r);f.useIsomorphicLayoutEffect(()=>{u.current=r},[r]),i.useEffect(()=>{const e=s?.current??window;if(!(e&&e.addEventListener))return;const c=o=>{u.current(o)};return e.addEventListener(t,c,n),()=>{e.removeEventListener(t,c,n)}},[t,s,n])}exports.useEventListener=E;
|
|
2
|
+
//# sourceMappingURL=use-event-listener.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-event-listener.cjs","sources":["../../../src/hooks/use-event-listener.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useRef } from \"react\";\nimport type { RefObject } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./use-isomorphic-layout-effect\";\n\n// MediaQueryList Event based useEventListener interface\nfunction useEventListener<K extends keyof MediaQueryListEventMap>(\n eventName: K,\n handler: (event: MediaQueryListEventMap[K]) => void,\n element: RefObject<MediaQueryList>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\n// Window Event based useEventListener interface\nfunction useEventListener<K extends keyof WindowEventMap>(\n eventName: K,\n handler: (event: WindowEventMap[K]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions,\n): void;\n\n// Element Event based useEventListener interface\nfunction useEventListener<\n K extends keyof HTMLElementEventMap & keyof SVGElementEventMap,\n T extends Element = K extends keyof HTMLElementEventMap\n ? HTMLDivElement\n : SVGElement,\n>(\n eventName: K,\n handler:\n | ((event: HTMLElementEventMap[K]) => void)\n | ((event: SVGElementEventMap[K]) => void),\n element: RefObject<T>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\n// Document Event based useEventListener interface\nfunction useEventListener<K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void,\n element: RefObject<Document>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<\n KW extends keyof WindowEventMap,\n KH extends keyof HTMLElementEventMap & keyof SVGElementEventMap,\n KM extends keyof MediaQueryListEventMap,\n T extends HTMLElement | SVGAElement | MediaQueryList = HTMLElement,\n>(\n eventName: KW | KH | KM,\n handler: (\n event:\n | WindowEventMap[KW]\n | HTMLElementEventMap[KH]\n | SVGElementEventMap[KH]\n | MediaQueryListEventMap[KM]\n | Event,\n ) => void,\n element?: RefObject<T>,\n options?: boolean | AddEventListenerOptions,\n) {\n // Create a ref that stores handler\n const savedHandler = useRef(handler);\n\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Define the listening target\n const targetElement: T | Window = element?.current ?? window;\n if (!(targetElement && targetElement.addEventListener)) return;\n // Create event listener that calls handler function stored in ref\n const listener: typeof handler = (event) => {\n savedHandler.current(event);\n };\n targetElement.addEventListener(eventName, listener, options);\n // Remove event listener on cleanup\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\nexport { useEventListener };\n"],"names":["useEventListener","eventName","handler","element","options","savedHandler","useRef","useIsomorphicLayoutEffect","useEffect","targetElement","listener","event"],"mappings":"yJA4CA,SAASA,EAMPC,EACAC,EAQAC,EACAC,EACA,CAEA,MAAMC,EAAeC,EAAAA,OAAOJ,CAAO,EAEnCK,EAAAA,0BAA0B,IAAM,CAC9BF,EAAa,QAAUH,CACzB,EAAG,CAACA,CAAO,CAAC,EAEZM,EAAAA,UAAU,IAAM,CAEd,MAAMC,EAA4BN,GAAS,SAAW,OACtD,GAAI,EAAEM,GAAiBA,EAAc,kBAAmB,OAExD,MAAMC,EAA4BC,GAAU,CAC1CN,EAAa,QAAQM,CAAK,CAC5B,EACA,OAAAF,EAAc,iBAAiBR,EAAWS,EAAUN,CAAO,EAEpD,IAAM,CACXK,EAAc,oBAAoBR,EAAWS,EAAUN,CAAO,CAChE,CACF,EAAG,CAACH,EAAWE,EAASC,CAAO,CAAC,CAClC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react");function w({threshold:a=0,root:l=null,rootMargin:v="0%",freezeOnceVisible:c=!1,initialIsIntersecting:i=!1,onChange:h}={}){const[s,I]=r.useState(null),[e,y]=r.useState(()=>({isIntersecting:i,entry:void 0})),f=r.useRef(void 0);f.current=h;const o=e.entry?.isIntersecting&&c;r.useEffect(()=>{if(!s||!("IntersectionObserver"in window)||o)return;const n=new IntersectionObserver(R=>{const b=Array.isArray(n.thresholds)?n.thresholds:[n.thresholds];R.forEach(u=>{const g=u.isIntersecting&&b.some(S=>u.intersectionRatio>=S);y({isIntersecting:g,entry:u}),f.current&&f.current(g,u)})},{threshold:a,root:l,rootMargin:v});return n.observe(s),()=>{n.disconnect()}},[s,JSON.stringify(a),l,v,o,c]);const d=r.useRef(null);r.useEffect(()=>{!s&&e.entry?.target&&!c&&!o&&d.current!==e.entry.target&&(d.current=e.entry.target,y({isIntersecting:i,entry:void 0}))},[s,e.entry,c,o,i]);const t=[I,!!e.isIntersecting,e.entry];return t.ref=t[0],t.isIntersecting=t[1],t.entry=t[2],t}exports.useIntersectionObserver=w;
|
|
2
|
+
//# sourceMappingURL=use-intersection-observer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-intersection-observer.cjs","sources":["../../../src/hooks/use-intersection-observer.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useRef, useState } from \"react\";\ntype State = {\n isIntersecting: boolean;\n entry?: IntersectionObserverEntry;\n};\ntype UseIntersectionObserverOptions = {\n root?: Element | Document | null;\n rootMargin?: string;\n threshold?: number | number[];\n freezeOnceVisible?: boolean;\n onChange?: (\n isIntersecting: boolean,\n entry: IntersectionObserverEntry,\n ) => void;\n initialIsIntersecting?: boolean;\n};\ntype IntersectionReturn = [\n (node?: Element | null) => void,\n boolean,\n IntersectionObserverEntry | undefined,\n] & {\n ref: (node?: Element | null) => void;\n isIntersecting: boolean;\n entry?: IntersectionObserverEntry;\n};\nexport function useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange,\n}: UseIntersectionObserverOptions = {}): IntersectionReturn {\n const [ref, setRef] = useState<Element | null>(null);\n const [state, setState] = useState<State>(() => ({\n isIntersecting: initialIsIntersecting,\n entry: undefined,\n }));\n const callbackRef =\n useRef<UseIntersectionObserverOptions[\"onChange\"]>(undefined);\n callbackRef.current = onChange;\n const frozen = state.entry?.isIntersecting && freezeOnceVisible;\n useEffect(() => {\n // Ensure we have a ref to observe\n if (!ref) return;\n // Ensure the browser supports the Intersection Observer API\n if (!(\"IntersectionObserver\" in window)) return;\n // Skip if frozen\n if (frozen) return;\n let unobserve: (() => void) | undefined;\n const observer = new IntersectionObserver(\n (entries: IntersectionObserverEntry[]): void => {\n const thresholds = Array.isArray(observer.thresholds)\n ? observer.thresholds\n : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting =\n entry.isIntersecting &&\n thresholds.some(\n (threshold) => entry.intersectionRatio >= threshold,\n );\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n if (isIntersecting && freezeOnceVisible && unobserve) {\n unobserve();\n unobserve = undefined;\n }\n });\n },\n { threshold, root, rootMargin },\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible,\n ]);\n // ensures that if the observed element changes, the intersection observer is reinitialized\n const prevRef = useRef<Element | null>(null);\n useEffect(() => {\n if (\n !ref &&\n state.entry?.target &&\n !freezeOnceVisible &&\n !frozen &&\n prevRef.current !== state.entry.target\n ) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: undefined });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry,\n ] as IntersectionReturn;\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\n// Export types\nexport type { UseIntersectionObserverOptions, IntersectionReturn };\n"],"names":["useIntersectionObserver","threshold","root","rootMargin","freezeOnceVisible","initialIsIntersecting","onChange","ref","setRef","useState","state","setState","callbackRef","useRef","frozen","useEffect","observer","entries","thresholds","entry","isIntersecting","prevRef","result"],"mappings":"yGA0BO,SAASA,EAAwB,CACtC,UAAAC,EAAY,EACZ,KAAAC,EAAO,KACP,WAAAC,EAAa,KACb,kBAAAC,EAAoB,GACpB,sBAAAC,EAAwB,GACxB,SAAAC,CACF,EAAoC,GAAwB,CAC1D,KAAM,CAACC,EAAKC,CAAM,EAAIC,EAAAA,SAAyB,IAAI,EAC7C,CAACC,EAAOC,CAAQ,EAAIF,EAAAA,SAAgB,KAAO,CAC/C,eAAgBJ,EAChB,MAAO,MAAA,EACP,EACIO,EACJC,EAAAA,OAAmD,MAAS,EAC9DD,EAAY,QAAUN,EACtB,MAAMQ,EAASJ,EAAM,OAAO,gBAAkBN,EAC9CW,EAAAA,UAAU,IAAM,CAMd,GAJI,CAACR,GAED,EAAE,yBAA0B,SAE5BO,EAAQ,OAEZ,MAAME,EAAW,IAAI,qBAClBC,GAA+C,CAC9C,MAAMC,EAAa,MAAM,QAAQF,EAAS,UAAU,EAChDA,EAAS,WACT,CAACA,EAAS,UAAU,EACxBC,EAAQ,QAASE,GAAU,CACzB,MAAMC,EACJD,EAAM,gBACND,EAAW,KACRjB,GAAckB,EAAM,mBAAqBlB,CAAA,EAE9CU,EAAS,CAAE,eAAAS,EAAgB,MAAAD,EAAO,EAC9BP,EAAY,SACdA,EAAY,QAAQQ,EAAgBD,CAAK,CAM7C,CAAC,CACH,EACA,CAAE,UAAAlB,EAAW,KAAAC,EAAM,WAAAC,CAAA,CAAW,EAEhC,OAAAa,EAAS,QAAQT,CAAG,EACb,IAAM,CACXS,EAAS,WAAA,CACX,CAEF,EAAG,CACDT,EAEA,KAAK,UAAUN,CAAS,EACxBC,EACAC,EACAW,EACAV,CAAA,CACD,EAED,MAAMiB,EAAUR,EAAAA,OAAuB,IAAI,EAC3CE,EAAAA,UAAU,IAAM,CAEZ,CAACR,GACDG,EAAM,OAAO,QACb,CAACN,GACD,CAACU,GACDO,EAAQ,UAAYX,EAAM,MAAM,SAEhCW,EAAQ,QAAUX,EAAM,MAAM,OAC9BC,EAAS,CAAE,eAAgBN,EAAuB,MAAO,OAAW,EAExE,EAAG,CAACE,EAAKG,EAAM,MAAON,EAAmBU,EAAQT,CAAqB,CAAC,EACvE,MAAMiB,EAAS,CACbd,EACA,CAAC,CAACE,EAAM,eACRA,EAAM,KAAA,EAGR,OAAAY,EAAO,IAAMA,EAAO,CAAC,EACrBA,EAAO,eAAiBA,EAAO,CAAC,EAChCA,EAAO,MAAQA,EAAO,CAAC,EAChBA,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react");function u(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,c.get?c:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const n=u(r),f=typeof window<"u"?n.useLayoutEffect:n.useEffect;exports.useIsomorphicLayoutEffect=f;
|
|
2
|
+
//# sourceMappingURL=use-isomorphic-layout-effect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-isomorphic-layout-effect.cjs","sources":["../../../src/hooks/use-isomorphic-layout-effect.ts"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n"],"names":["useIsomorphicLayoutEffect","React"],"mappings":"mYAGaA,EACX,OAAO,OAAW,IAAcC,EAAM,gBAAkBA,EAAM"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),u=require("./use-isomorphic-layout-effect.cjs"),d=typeof window>"u";function f(n,{defaultValue:r=!1,initializeWithValue:i=!0}={}){const s=e=>d?r:window.matchMedia(e).matches,[o,a]=c.useState(()=>i?s(n):r);function t(){a(s(n))}return u.useIsomorphicLayoutEffect(()=>{const e=window.matchMedia(n);return t(),e.addListener?e.addListener(t):e.addEventListener("change",t),()=>{e.removeListener?e.removeListener(t):e.removeEventListener("change",t)}},[n]),o}exports.useMediaQuery=f;
|
|
2
|
+
//# sourceMappingURL=use-media-query.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media-query.cjs","sources":["../../../src/hooks/use-media-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./use-isomorphic-layout-effect\";\n\ntype UseMediaQueryOptions = {\n defaultValue?: boolean;\n initializeWithValue?: boolean;\n};\n\nconst IS_SERVER = typeof window === \"undefined\";\n\nexport function useMediaQuery(\n query: string,\n {\n defaultValue = false,\n initializeWithValue = true,\n }: UseMediaQueryOptions = {},\n): boolean {\n const getMatches = (query: string): boolean => {\n if (IS_SERVER) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n };\n\n const [matches, setMatches] = useState<boolean>(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n\n // Handles the change event of the media query.\n function handleChange() {\n setMatches(getMatches(query));\n }\n\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n // Triggered at the first client-side load and if query changes\n handleChange();\n // Use deprecated `addListener` and `removeListener` to support Safari < 14 (#135)\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener(\"change\", handleChange);\n }\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener(\"change\", handleChange);\n }\n };\n }, [query]);\n\n return matches;\n}\n\nexport type { UseMediaQueryOptions };\n"],"names":["IS_SERVER","useMediaQuery","query","defaultValue","initializeWithValue","getMatches","matches","setMatches","useState","handleChange","useIsomorphicLayoutEffect","matchMedia"],"mappings":"yJAUMA,EAAY,OAAO,OAAW,IAE7B,SAASC,EACdC,EACA,CACE,aAAAC,EAAe,GACf,oBAAAC,EAAsB,EACxB,EAA0B,GACjB,CACT,MAAMC,EAAcH,GACdF,EACKG,EAEF,OAAO,WAAWD,CAAK,EAAE,QAG5B,CAACI,EAASC,CAAU,EAAIC,EAAAA,SAAkB,IAC1CJ,EACKC,EAAWH,CAAK,EAElBC,CACR,EAGD,SAASM,GAAe,CACtBF,EAAWF,EAAWH,CAAK,CAAC,CAC9B,CAEAQ,OAAAA,EAAAA,0BAA0B,IAAM,CAC9B,MAAMC,EAAa,OAAO,WAAWT,CAAK,EAE1C,OAAAO,EAAA,EAEIE,EAAW,YACbA,EAAW,YAAYF,CAAY,EAEnCE,EAAW,iBAAiB,SAAUF,CAAY,EAE7C,IAAM,CACPE,EAAW,eACbA,EAAW,eAAeF,CAAY,EAEtCE,EAAW,oBAAoB,SAAUF,CAAY,CAEzD,CACF,EAAG,CAACP,CAAK,CAAC,EAEHI,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./use-event-listener.cjs");function o(e,i,s="mousedown",u={}){c.useEventListener(s,r=>{const t=r.target;if(!t||!t.isConnected)return;(Array.isArray(e)?e.filter(n=>!!n.current).every(n=>n.current&&!n.current.contains(t)):e?.current&&!e?.current.contains(t))&&i(r)},void 0,u)}exports.useOnClickOutside=o;
|
|
2
|
+
//# sourceMappingURL=use-on-click-outside.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-on-click-outside.cjs","sources":["../../../src/hooks/use-on-click-outside.ts"],"sourcesContent":["\"use client\";\nimport type { RefObject } from \"react\";\nimport { useEventListener } from \"./use-event-listener\";\n\ntype EventType =\n | \"mousedown\"\n | \"mouseup\"\n | \"touchstart\"\n | \"touchend\"\n | \"focusin\"\n | \"focusout\";\n\nexport function useOnClickOutside<T extends HTMLElement = HTMLElement>(\n ref: RefObject<T | null> | RefObject<T | null>[],\n handler: (event: MouseEvent | TouchEvent | FocusEvent) => void,\n eventType: EventType = \"mousedown\",\n eventListenerOptions: AddEventListenerOptions = {},\n): void {\n useEventListener(\n eventType,\n (event) => {\n const target = event.target as Node;\n // Do nothing if the target is not connected element with document\n if (!target || !target.isConnected) {\n return;\n }\n const isOutside = Array.isArray(ref)\n ? ref\n .filter((r) => Boolean(r.current))\n .every((r) => r.current && !r.current.contains(target))\n : ref?.current && !ref?.current.contains(target);\n if (isOutside) {\n handler(event);\n }\n },\n undefined,\n eventListenerOptions,\n );\n}\n\n// Export types\nexport type { EventType };\n"],"names":["useOnClickOutside","ref","handler","eventType","eventListenerOptions","useEventListener","event","target","r"],"mappings":"4HAYO,SAASA,EACdC,EACAC,EACAC,EAAuB,YACvBC,EAAgD,GAC1C,CACNC,EAAAA,iBACEF,EACCG,GAAU,CACT,MAAMC,EAASD,EAAM,OAErB,GAAI,CAACC,GAAU,CAACA,EAAO,YACrB,QAEgB,MAAM,QAAQN,CAAG,EAC/BA,EACG,OAAQO,GAAM,EAAQA,EAAE,OAAQ,EAChC,MAAOA,GAAMA,EAAE,SAAW,CAACA,EAAE,QAAQ,SAASD,CAAM,CAAC,EACxDN,GAAK,SAAW,CAACA,GAAK,QAAQ,SAASM,CAAM,IAE/CL,EAAQI,CAAK,CAEjB,EACA,OACAF,CAAA,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),s=new Map;function f(t){const r=document.querySelector(`script[src="${t}"]`),u=r?.getAttribute("data-status");return{node:r,status:u}}function S(t,r){const[u,i]=l.useState(()=>!t||r?.shouldPreventLoad?"idle":typeof window>"u"?"loading":s.get(t)??"loading");return l.useEffect(()=>{if(!t||r?.shouldPreventLoad)return;const n=s.get(t);if(n==="ready"||n==="error"){i(n);return}const c=f(t);let e=c.node;if(e)i(c.status??n??"loading");else{e=document.createElement("script"),e.src=t,e.async=!0,r?.id&&(e.id=r.id),e.setAttribute("data-status","loading"),document.body.appendChild(e);const a=o=>{const v=o.type==="load"?"ready":"error";e?.setAttribute("data-status",v)};e.addEventListener("load",a),e.addEventListener("error",a)}const d=a=>{const o=a.type==="load"?"ready":"error";i(o),s.set(t,o)};return e.addEventListener("load",d),e.addEventListener("error",d),()=>{e&&(e.removeEventListener("load",d),e.removeEventListener("error",d)),e&&r?.removeOnUnmount&&(e.remove(),s.delete(t))}},[t,r?.shouldPreventLoad,r?.removeOnUnmount,r?.id]),u}exports.useScript=S;
|
|
2
|
+
//# sourceMappingURL=use-script.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-script.cjs","sources":["../../../src/hooks/use-script.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\ntype UseScriptStatus = \"idle\" | \"loading\" | \"ready\" | \"error\";\n\ntype UseScriptOptions = {\n shouldPreventLoad?: boolean;\n removeOnUnmount?: boolean;\n id?: string;\n};\n\nconst cachedScriptStatuses = new Map<string, UseScriptStatus | undefined>();\n\nfunction getScriptNode(src: string) {\n const node: HTMLScriptElement | null = document.querySelector(\n `script[src=\"${src}\"]`,\n );\n const status = node?.getAttribute(\"data-status\") as\n | UseScriptStatus\n | undefined;\n return {\n node,\n status,\n };\n}\n\nexport function useScript(\n src: string | null,\n options?: UseScriptOptions,\n): UseScriptStatus {\n const [status, setStatus] = useState<UseScriptStatus>(() => {\n if (!src || options?.shouldPreventLoad) {\n return \"idle\";\n }\n if (typeof window === \"undefined\") {\n return \"loading\";\n }\n return cachedScriptStatuses.get(src) ?? \"loading\";\n });\n\n useEffect(() => {\n if (!src || options?.shouldPreventLoad) {\n return;\n }\n const cachedScriptStatus = cachedScriptStatuses.get(src);\n if (cachedScriptStatus === \"ready\" || cachedScriptStatus === \"error\") {\n setStatus(cachedScriptStatus);\n return;\n }\n const script = getScriptNode(src);\n let scriptNode = script.node;\n if (!scriptNode) {\n scriptNode = document.createElement(\"script\");\n scriptNode.src = src;\n scriptNode.async = true;\n if (options?.id) {\n scriptNode.id = options.id;\n }\n scriptNode.setAttribute(\"data-status\", \"loading\");\n document.body.appendChild(scriptNode);\n const setAttributeFromEvent = (event: Event) => {\n const scriptStatus: UseScriptStatus =\n event.type === \"load\" ? \"ready\" : \"error\";\n scriptNode?.setAttribute(\"data-status\", scriptStatus);\n };\n scriptNode.addEventListener(\"load\", setAttributeFromEvent);\n scriptNode.addEventListener(\"error\", setAttributeFromEvent);\n } else {\n setStatus(script.status ?? cachedScriptStatus ?? \"loading\");\n }\n const setStateFromEvent = (event: Event) => {\n const newStatus = event.type === \"load\" ? \"ready\" : \"error\";\n setStatus(newStatus);\n cachedScriptStatuses.set(src, newStatus);\n };\n scriptNode.addEventListener(\"load\", setStateFromEvent);\n scriptNode.addEventListener(\"error\", setStateFromEvent);\n\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener(\"load\", setStateFromEvent);\n scriptNode.removeEventListener(\"error\", setStateFromEvent);\n }\n if (scriptNode && options?.removeOnUnmount) {\n scriptNode.remove();\n cachedScriptStatuses.delete(src);\n }\n };\n }, [src, options?.shouldPreventLoad, options?.removeOnUnmount, options?.id]);\n\n return status;\n}\nexport type { UseScriptStatus, UseScriptOptions };\n"],"names":["cachedScriptStatuses","getScriptNode","src","node","status","useScript","options","setStatus","useState","useEffect","cachedScriptStatus","script","scriptNode","setAttributeFromEvent","event","scriptStatus","setStateFromEvent","newStatus"],"mappings":"yGAUMA,MAA2B,IAEjC,SAASC,EAAcC,EAAa,CAClC,MAAMC,EAAiC,SAAS,cAC9C,eAAeD,CAAG,IAAA,EAEdE,EAASD,GAAM,aAAa,aAAa,EAG/C,MAAO,CACL,KAAAA,EACA,OAAAC,CAAA,CAEJ,CAEO,SAASC,EACdH,EACAI,EACiB,CACjB,KAAM,CAACF,EAAQG,CAAS,EAAIC,EAAAA,SAA0B,IAChD,CAACN,GAAOI,GAAS,kBACZ,OAEL,OAAO,OAAW,IACb,UAEFN,EAAqB,IAAIE,CAAG,GAAK,SACzC,EAEDO,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACP,GAAOI,GAAS,kBACnB,OAEF,MAAMI,EAAqBV,EAAqB,IAAIE,CAAG,EACvD,GAAIQ,IAAuB,SAAWA,IAAuB,QAAS,CACpEH,EAAUG,CAAkB,EAC5B,MACF,CACA,MAAMC,EAASV,EAAcC,CAAG,EAChC,IAAIU,EAAaD,EAAO,KACxB,GAAKC,EAiBHL,EAAUI,EAAO,QAAUD,GAAsB,SAAS,MAjB3C,CACfE,EAAa,SAAS,cAAc,QAAQ,EAC5CA,EAAW,IAAMV,EACjBU,EAAW,MAAQ,GACfN,GAAS,KACXM,EAAW,GAAKN,EAAQ,IAE1BM,EAAW,aAAa,cAAe,SAAS,EAChD,SAAS,KAAK,YAAYA,CAAU,EACpC,MAAMC,EAAyBC,GAAiB,CAC9C,MAAMC,EACJD,EAAM,OAAS,OAAS,QAAU,QACpCF,GAAY,aAAa,cAAeG,CAAY,CACtD,EACAH,EAAW,iBAAiB,OAAQC,CAAqB,EACzDD,EAAW,iBAAiB,QAASC,CAAqB,CAC5D,CAGA,MAAMG,EAAqBF,GAAiB,CAC1C,MAAMG,EAAYH,EAAM,OAAS,OAAS,QAAU,QACpDP,EAAUU,CAAS,EACnBjB,EAAqB,IAAIE,EAAKe,CAAS,CACzC,EACA,OAAAL,EAAW,iBAAiB,OAAQI,CAAiB,EACrDJ,EAAW,iBAAiB,QAASI,CAAiB,EAE/C,IAAM,CACPJ,IACFA,EAAW,oBAAoB,OAAQI,CAAiB,EACxDJ,EAAW,oBAAoB,QAASI,CAAiB,GAEvDJ,GAAcN,GAAS,kBACzBM,EAAW,OAAA,EACXZ,EAAqB,OAAOE,CAAG,EAEnC,CACF,EAAG,CAACA,EAAKI,GAAS,kBAAmBA,GAAS,gBAAiBA,GAAS,EAAE,CAAC,EAEpEF,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),p=require("./use-isomorphic-layout-effect.cjs"),w=typeof window>"u";function R(l={}){const{autoLock:i=!0,lockTarget:e,widthReflow:r=!0}=l,[d,s]=n.useState(!1),t=n.useRef(null),o=n.useRef(null),c=n.useCallback(()=>{if(t.current){const{overflow:f,paddingRight:a}=t.current.style;if(o.current={overflow:f,paddingRight:a},r){const g=t.current===document.body?window.innerWidth:t.current.offsetWidth,y=parseInt(window.getComputedStyle(t.current).paddingRight,10)||0,h=g-t.current.scrollWidth;t.current.style.paddingRight=`${h+y}px`}t.current.style.overflow="hidden",s(!0)}},[r]),u=n.useCallback(()=>{t.current&&o.current&&(t.current.style.overflow=o.current.overflow,r&&(t.current.style.paddingRight=o.current.paddingRight)),s(!1)},[r]);return p.useIsomorphicLayoutEffect(()=>{if(!w)return e&&(t.current=typeof e=="string"?document.querySelector(e):e),t.current||(t.current=document.body),i&&c(),()=>{u()}},[i,e,r,c,u]),{isLocked:d,lock:c,unlock:u}}exports.useScrollLock=R;
|
|
2
|
+
//# sourceMappingURL=use-scroll-lock.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scroll-lock.cjs","sources":["../../../src/hooks/use-scroll-lock.ts"],"sourcesContent":["\"use client\";\nimport { useRef, useState, useCallback } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./use-isomorphic-layout-effect\";\n\ntype UseScrollLockOptions = {\n autoLock?: boolean;\n lockTarget?: HTMLElement | string | null;\n widthReflow?: boolean;\n};\n\ntype UseScrollLockReturn = {\n isLocked: boolean;\n lock: () => void;\n unlock: () => void;\n};\n\ntype OriginalStyle = {\n overflow: CSSStyleDeclaration[\"overflow\"];\n paddingRight: CSSStyleDeclaration[\"paddingRight\"];\n};\n\nconst IS_SERVER = typeof window === \"undefined\";\n\nexport function useScrollLock(\n options: UseScrollLockOptions = {},\n): UseScrollLockReturn {\n const { autoLock = true, lockTarget, widthReflow = true } = options;\n const [isLocked, setIsLocked] = useState(false);\n const target = useRef<HTMLElement | null>(null);\n const originalStyle = useRef<OriginalStyle | null>(null);\n\n const lock = useCallback(() => {\n if (target.current) {\n const { overflow, paddingRight } = target.current.style;\n // Save the original styles\n originalStyle.current = { overflow, paddingRight };\n // Prevent width reflow\n if (widthReflow) {\n // Use window inner width if body is the target as global scrollbar isn't part of the document\n const offsetWidth =\n target.current === document.body\n ? window.innerWidth\n : target.current.offsetWidth;\n // Get current computed padding right in pixels\n const currentPaddingRight =\n parseInt(window.getComputedStyle(target.current).paddingRight, 10) ||\n 0;\n const scrollbarWidth = offsetWidth - target.current.scrollWidth;\n target.current.style.paddingRight = `${scrollbarWidth + currentPaddingRight}px`;\n }\n // Lock the scroll\n target.current.style.overflow = \"hidden\";\n setIsLocked(true);\n }\n }, [widthReflow]);\n\n const unlock = useCallback(() => {\n if (target.current && originalStyle.current) {\n target.current.style.overflow = originalStyle.current.overflow;\n // Only reset padding right if we changed it\n if (widthReflow) {\n target.current.style.paddingRight = originalStyle.current.paddingRight;\n }\n }\n setIsLocked(false);\n }, [widthReflow]);\n\n useIsomorphicLayoutEffect(() => {\n if (IS_SERVER) return;\n // Re-find the target element each time\n if (lockTarget) {\n target.current =\n typeof lockTarget === \"string\"\n ? document.querySelector(lockTarget)\n : lockTarget;\n }\n if (!target.current) {\n target.current = document.body;\n }\n if (autoLock) {\n lock();\n }\n return () => {\n unlock();\n };\n }, [autoLock, lockTarget, widthReflow, lock, unlock]);\n\n return { isLocked, lock, unlock };\n}\nexport type { UseScrollLockOptions, UseScrollLockReturn };\n"],"names":["IS_SERVER","useScrollLock","options","autoLock","lockTarget","widthReflow","isLocked","setIsLocked","useState","target","useRef","originalStyle","lock","useCallback","overflow","paddingRight","offsetWidth","currentPaddingRight","scrollbarWidth","unlock","useIsomorphicLayoutEffect"],"mappings":"yJAqBMA,EAAY,OAAO,OAAW,IAE7B,SAASC,EACdC,EAAgC,GACX,CACrB,KAAM,CAAE,SAAAC,EAAW,GAAM,WAAAC,EAAY,YAAAC,EAAc,IAASH,EACtD,CAACI,EAAUC,CAAW,EAAIC,EAAAA,SAAS,EAAK,EACxCC,EAASC,EAAAA,OAA2B,IAAI,EACxCC,EAAgBD,EAAAA,OAA6B,IAAI,EAEjDE,EAAOC,EAAAA,YAAY,IAAM,CAC7B,GAAIJ,EAAO,QAAS,CAClB,KAAM,CAAE,SAAAK,EAAU,aAAAC,CAAA,EAAiBN,EAAO,QAAQ,MAIlD,GAFAE,EAAc,QAAU,CAAE,SAAAG,EAAU,aAAAC,CAAA,EAEhCV,EAAa,CAEf,MAAMW,EACJP,EAAO,UAAY,SAAS,KACxB,OAAO,WACPA,EAAO,QAAQ,YAEfQ,EACJ,SAAS,OAAO,iBAAiBR,EAAO,OAAO,EAAE,aAAc,EAAE,GACjE,EACIS,EAAiBF,EAAcP,EAAO,QAAQ,YACpDA,EAAO,QAAQ,MAAM,aAAe,GAAGS,EAAiBD,CAAmB,IAC7E,CAEAR,EAAO,QAAQ,MAAM,SAAW,SAChCF,EAAY,EAAI,CAClB,CACF,EAAG,CAACF,CAAW,CAAC,EAEVc,EAASN,EAAAA,YAAY,IAAM,CAC3BJ,EAAO,SAAWE,EAAc,UAClCF,EAAO,QAAQ,MAAM,SAAWE,EAAc,QAAQ,SAElDN,IACFI,EAAO,QAAQ,MAAM,aAAeE,EAAc,QAAQ,eAG9DJ,EAAY,EAAK,CACnB,EAAG,CAACF,CAAW,CAAC,EAEhBe,OAAAA,EAAAA,0BAA0B,IAAM,CAC9B,GAAI,CAAApB,EAEJ,OAAII,IACFK,EAAO,QACL,OAAOL,GAAe,SAClB,SAAS,cAAcA,CAAU,EACjCA,GAEHK,EAAO,UACVA,EAAO,QAAU,SAAS,MAExBN,GACFS,EAAA,EAEK,IAAM,CACXO,EAAA,CACF,CACF,EAAG,CAAChB,EAAUC,EAAYC,EAAaO,EAAMO,CAAM,CAAC,EAE7C,CAAE,SAAAb,EAAU,KAAAM,EAAM,OAAAO,CAAA,CAC3B"}
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("./components/Command/index.cjs"),T=require("./components/Popover/index.cjs"),g=require("./components/Tour/index.cjs"),c=require("./components/QrCode/index.cjs"),C=require("./components/Stepper/index.cjs"),m=require("./components/Pagination/index.cjs"),f=require("./components/DropdownMenu/index.cjs"),x=require("./components/ContextMenu/index.cjs"),R=require("./components/FloatLabel.cjs"),I=require("./components/TimeGridView.cjs"),P=require("./components/WheelColumn.cjs"),M=require("./components/Marquee/index.cjs"),k=require("@dsui/ui"),y=require("./hooks/use-callback-ref.cjs"),G=require("./hooks/use-debounced-callback.cjs"),O=require("./hooks/use-debounced-value.cjs"),w=require("./hooks/use-intersection-observer.cjs"),A=require("./hooks/use-script.cjs"),v=require("./hooks/use-scroll-lock.cjs"),B=require("./hooks/use-on-click-outside.cjs"),V=require("./hooks/use-event-listener.cjs"),F=require("./hooks/use-media-query.cjs"),D=require("./components/Badge/Badge.cjs"),E=require("./components/Breadcrumb/Breadcrumb.cjs"),z=require("./components/Button/Button.cjs"),L=require("./components/Button/ButtonGroup.cjs"),h=require("./components/Checkbox/Checkbox.cjs"),j=require("./components/Collapsible/Collapsible.cjs"),W=require("./components/Dialog/Dialog.cjs"),Q=require("./components/Glass/Glass.cjs"),H=require("./components/Input/Input.cjs"),$=require("./components/InputOTP/InputOTP.cjs"),N=require("./components/Radio/Radio.cjs"),U=require("./components/ScrollArea/ScrollArea.cjs"),_=require("./components/Select/Select.cjs"),J=require("./components/Separator/Separator.cjs"),K=require("./components/Sheet/Sheet.cjs"),X=require("./components/Skeleton/Skeleton.cjs"),Y=require("./components/Slider/Slider.cjs"),Z=require("./components/Switch/Switch.cjs"),ee=require("./components/Tabs/Tabs.cjs"),re=require("./components/Textarea/Textarea.cjs"),te=require("./components/Toggle/Toggle.cjs"),oe=require("./components/Rate/Rate.cjs"),i=require("./components/Resizable/Resizable.cjs"),ie=require("./components/Accordion/Accordion.cjs"),ue=require("./lib/TextAnimation/BlurText.cjs"),ne=require("./lib/TextAnimation/CircularText.cjs"),ae=require("./lib/TextAnimation/TextPressureEffect.cjs"),se=require("./lib/TextAnimation/TypingText.cjs"),le=require("./components/Table/data-table.cjs"),ce=require("./components/Avatar/Avatar.cjs"),de=require("./components/Calendar/Calendar.cjs"),be=require("./components/DatePicker/DatePicker.cjs"),pe=require("./components/DatePicker/RangePicker.cjs"),Se=require("./components/DatePicker/TimePicker.cjs"),d=require("@dsui/ui/index"),qe=require("@dsui/ui/components/sidebar"),e=require("./components/Sidebar/Sidebar.cjs"),n=require("./components/Toast/Toast.cjs"),Te=require("./components/Tooltip/Tooltip.cjs"),ge=require("./components/Upload/Upload.cjs"),Ce=require("./components/QrCode/QrCode.cjs"),me=require("./components/Stepper/Stepper.cjs"),a=require("@dsui/ui/components/resizable"),s=require("@dsui/ui/components/accordion"),l=require("./components/ImageViewer/ImageViewer.cjs"),b=require("./components/Carousel/Carousel.cjs"),t=require("./components/Cropper/Cropper.cjs"),p=require("./components/Cropper/CropperTool.cjs"),o=require("./components/Cropper/utils.cjs"),r=require("./components/Interactive/CursorFollow.cjs"),u=require("./components/Masonry/Masonry.cjs"),S=require("./components/Masonry/MasonryWrapper.cjs"),fe=require("./lib/TextAnimation/RotatingText.cjs"),xe=require("./lib/TextAnimation/FlipWords.cjs"),Re=require("./lib/TextAnimation/GradientText.cjs"),Ie=require("./lib/TextAnimation/RollingText.cjs"),Pe=require("./lib/TextAnimation/ShimmeringText.cjs"),Me=require("./lib/TextAnimation/SplittingText.cjs"),ke=require("./lib/TextAnimation/TextGenerateEffect.cjs"),ye=require("./lib/TextAnimation/TextHoverEffect.cjs"),Ge=require("./lib/TextAnimation/WritingText.cjs");exports.Command=q.Command;exports.Popover=T.Popover;exports.Tour=g.Tour;exports.QRCode=c.QRCode;exports.QrCode=c.QRCode;exports.Stepper=C.Stepper;exports.Pagination=m.Pagination;exports.DropdownMenu=f.DropdownMenu;exports.ContextMenu=x.ContextMenu;exports.FloatingLabel=R.FloatingLabel;exports.TimeGridView=I.TimeGridView;exports.WheelColumn=P.TimeColumnwheel;exports.Marquee=M.Marquee;Object.defineProperty(exports,"cn",{enumerable:!0,get:()=>k.cn});exports.useCallbackRef=y.useCallbackRef;exports.useDebouncedCallback=G.useDebouncedCallback;exports.useDebounceValue=O.useDebounceValue;exports.useIntersectionObserver=w.useIntersectionObserver;exports.useScript=A.useScript;exports.useScrollLock=v.useScrollLock;exports.useOnClickOutside=B.useOnClickOutside;exports.useEventListener=V.useEventListener;exports.useMediaQuery=F.useMediaQuery;exports.Badge=D.default;exports.Breadcrumb=E.default;exports.Button=z.default;exports.ButtonGroup=L.default;exports.Checkbox=h.default;exports.Collapsible=j.default;exports.Dialog=W.default;exports.Glass=Q.default;exports.Input=H.default;exports.InputOTP=$.default;exports.Radio=N.default;exports.ScrollArea=U.ScrollArea;exports.Select=_.default;exports.Separator=J.default;exports.Sheet=K.default;exports.Skeleton=X.default;exports.Slider=Y.default;exports.Switch=Z.default;exports.Tabs=ee.default;exports.Textarea=re.default;exports.Toggle=te.default;exports.Rate=oe.default;exports.Handle=i.Handle;exports.Panel=i.Panel;exports.Resizable=i.default;exports.ResizableWrapper=i.ResizableWrapper;exports.Accordion=ie.default;exports.BlurText=ue.default;exports.CircularText=ne.default;exports.TextPressure=ae.default;exports.TypingText=se.default;exports.Table=le.DataTable;exports.Avatar=ce.Avatar;exports.Calendar=de.Calendar;exports.DatePicker=be.DatePicker;exports.RangePicker=pe.RangePicker;exports.TimePicker=Se.TimePicker;Object.defineProperty(exports,"Label",{enumerable:!0,get:()=>d.Label});Object.defineProperty(exports,"TreeSelect",{enumerable:!0,get:()=>d.TreeView});Object.defineProperty(exports,"useSidebar",{enumerable:!0,get:()=>qe.useSidebar});exports.Sidebar=e.Sidebar;exports.SidebarContent=e.SidebarContent;exports.SidebarFooter=e.SidebarFooter;exports.SidebarGroup=e.SidebarGroup;exports.SidebarGroupAction=e.SidebarGroupAction;exports.SidebarGroupContent=e.SidebarGroupContent;exports.SidebarGroupLabel=e.SidebarGroupLabel;exports.SidebarHeader=e.SidebarHeader;exports.SidebarInput=e.SidebarInput;exports.SidebarInset=e.SidebarInset;exports.SidebarMenu=e.SidebarMenu;exports.SidebarMenuAction=e.SidebarMenuAction;exports.SidebarMenuBadge=e.SidebarMenuBadge;exports.SidebarMenuButton=e.SidebarMenuButton;exports.SidebarMenuItem=e.SidebarMenuItem;exports.SidebarMenuSkeleton=e.SidebarMenuSkeleton;exports.SidebarMenuSub=e.SidebarMenuSub;exports.SidebarMenuSubButton=e.SidebarMenuSubButton;exports.SidebarMenuSubItem=e.SidebarMenuSubItem;exports.SidebarProvider=e.SidebarProvider;exports.SidebarRail=e.SidebarRail;exports.SidebarSeparator=e.SidebarSeparator;exports.SidebarTrigger=e.SidebarTrigger;exports.Toast=n.toast;exports.Toaster=n.Toaster;exports.toast=n.toast;exports.Tooltip=Te.Tooltip;exports.Upload=ge.Upload;exports.useQRCode=Ce.useQRCode;exports.useStepper=me.useStepper;Object.defineProperty(exports,"ResizableHandle",{enumerable:!0,get:()=>a.ResizableHandle});Object.defineProperty(exports,"ResizablePanel",{enumerable:!0,get:()=>a.ResizablePanel});Object.defineProperty(exports,"ResizablePanelGroup",{enumerable:!0,get:()=>a.ResizablePanelGroup});Object.defineProperty(exports,"AccordionContent",{enumerable:!0,get:()=>s.AccordionContent});Object.defineProperty(exports,"AccordionItem",{enumerable:!0,get:()=>s.AccordionItem});Object.defineProperty(exports,"AccordionTrigger",{enumerable:!0,get:()=>s.AccordionTrigger});exports.ImageViewer=l.ImageViewer;exports.ImageViewerGroup=l.ImageViewerGroup;exports.ImageViewerImage=l.ImageViewerImage;exports.Carousel=b.Carousel;exports.CarouselSlide=b.CarouselSlide;exports.Cropper=t.Root;exports.CropperArea=t.Area;exports.CropperImage=t.Image;exports.CropperVideo=t.Video;exports.useCropper=t.useCropper;exports.CropperTool=p.CropperTool;exports.useCropperTool=p.useCropperTool;exports.base64ToBlob=o.base64ToBlob;exports.base64ToFile=o.base64ToFile;exports.downloadImage=o.downloadImage;exports.getCroppedImg=o.getCroppedImg;exports.rotateSize=o.rotateSize;exports.Cursor=r.Cursor;exports.CursorFollow=r.CursorFollow;exports.CursorProvider=r.CursorProvider;exports.TRANSITION_PRESETS=r.TRANSITION_PRESETS;exports.useCursor=r.useCursor;exports.useCursorFollow=r.useCursorFollow;exports.Item=u.Item;exports.MasonryItem=u.MasonryItem;exports.MasonryRoot=u.MasonryRoot;exports.Root=u.Root;exports.Masonry=S.Masonry;exports.MasonryComponent=S.MasonryComponent;exports.RotatingText=fe.RotatingText;exports.FlipWords=xe.FlipWords;exports.GradientText=Re.GradientText;exports.RollingText=Ie.RollingText;exports.ShimmeringText=Pe.ShimmeringText;exports.SplittingText=Me.SplittingText;exports.TextGenerateEffect=ke.TextGenerateEffect;exports.TextHoverEffect=ye.TextHoverEffect;exports.WritingText=Ge.WritingText;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("react/jsx-runtime"),C=require("motion/react"),l=require("react"),I=(n,a)=>{const p=new Set([...Object.keys(n),...a.flatMap(e=>Object.keys(e))]),r={};return p.forEach(e=>{r[e]=[n[e],...a.map(c=>c[e])]}),r},R=({text:n="",delay:a=200,className:p="",animateBy:r="words",direction:e="top",threshold:c=.1,rootMargin:y="0px",animationFrom:d,animationTo:w,easing:h=o=>o,onAnimationComplete:x,stepDuration:v=.35})=>{const o=r==="words"?n.split(" "):n.split(""),[g,j]=l.useState(!1),i=l.useRef(null);l.useEffect(()=>{if(!i.current)return;const s=new IntersectionObserver(([t])=>{t.isIntersecting&&(j(!0),s.unobserve(i.current))},{threshold:c,rootMargin:y});return s.observe(i.current),()=>s.disconnect()},[c,y]);const S=l.useMemo(()=>e==="top"?{filter:"blur(10px)",opacity:0,y:-50}:{filter:"blur(10px)",opacity:0,y:50},[e]),M=l.useMemo(()=>[{filter:"blur(5px)",opacity:.5,y:e==="top"?5:-5},{filter:"blur(0px)",opacity:1,y:0}],[e]),f=d??S,m=w??M,u=m.length+1,O=v*(u-1),T=Array.from({length:u},(s,t)=>u===1?0:t/(u-1));return b.jsx("p",{ref:i,className:`blur-text ${p} flex flex-wrap`,children:o.map((s,t)=>{const k=I(f,m),q={duration:O,times:T,delay:t*a/1e3,ease:h};return b.jsxs(C.motion.span,{initial:f,animate:g?k:f,transition:q,onAnimationComplete:t===o.length-1?x:void 0,style:{display:"inline-block",willChange:"transform, filter, opacity"},children:[s===" "?" ":s,r==="words"&&t<o.length-1&&" "]},t)})})};exports.default=R;
|
|
2
|
+
//# sourceMappingURL=BlurText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlurText.cjs","sources":["../../../../src/lib/TextAnimation/BlurText.tsx"],"sourcesContent":["\"use client\";\nimport { motion, type Transition, type Easing } from \"motion/react\";\nimport { useEffect, useRef, useState, useMemo } from \"react\";\ntype BlurTextProps = {\n text?: string;\n delay?: number;\n className?: string;\n animateBy?: \"words\" | \"letters\";\n direction?: \"top\" | \"bottom\";\n threshold?: number;\n rootMargin?: string;\n animationFrom?: Record<string, string | number>;\n animationTo?: Array<Record<string, string | number>>;\n easing?: Easing | Easing[];\n onAnimationComplete?: () => void;\n stepDuration?: number;\n};\nconst buildKeyframes = (\n from: Record<string, string | number>,\n steps: Array<Record<string, string | number>>,\n): Record<string, Array<string | number>> => {\n const keys = new Set<string>([\n ...Object.keys(from),\n ...steps.flatMap((s) => Object.keys(s)),\n ]);\n const keyframes: Record<string, Array<string | number>> = {};\n keys.forEach((k) => {\n keyframes[k] = [from[k], ...steps.map((s) => s[k])];\n });\n return keyframes;\n};\nconst BlurText: React.FC<BlurTextProps> = ({\n text = \"\",\n delay = 200,\n className = \"\",\n animateBy = \"words\",\n direction = \"top\",\n threshold = 0.1,\n rootMargin = \"0px\",\n animationFrom,\n animationTo,\n easing = (t: number) => t,\n onAnimationComplete,\n stepDuration = 0.35,\n}) => {\n const elements = animateBy === \"words\" ? text.split(\" \") : text.split(\"\");\n const [inView, setInView] = useState(false);\n const ref = useRef<HTMLParagraphElement>(null);\n useEffect(() => {\n if (!ref.current) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setInView(true);\n observer.unobserve(ref.current as Element);\n }\n },\n { threshold, rootMargin },\n );\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, [threshold, rootMargin]);\n const defaultFrom = useMemo(\n () =>\n direction === \"top\"\n ? { filter: \"blur(10px)\", opacity: 0, y: -50 }\n : { filter: \"blur(10px)\", opacity: 0, y: 50 },\n [direction],\n );\n const defaultTo = useMemo(\n () => [\n {\n filter: \"blur(5px)\",\n opacity: 0.5,\n y: direction === \"top\" ? 5 : -5,\n },\n { filter: \"blur(0px)\", opacity: 1, y: 0 },\n ],\n [direction],\n );\n const fromSnapshot = animationFrom ?? defaultFrom;\n const toSnapshots = animationTo ?? defaultTo;\n const stepCount = toSnapshots.length + 1;\n const totalDuration = stepDuration * (stepCount - 1);\n const times = Array.from({ length: stepCount }, (_, i) =>\n stepCount === 1 ? 0 : i / (stepCount - 1),\n );\n return (\n <p ref={ref} className={`blur-text ${className} flex flex-wrap`}>\n {elements.map((segment, index) => {\n const animateKeyframes = buildKeyframes(fromSnapshot, toSnapshots);\n const spanTransition: Transition = {\n duration: totalDuration,\n times,\n delay: (index * delay) / 1000,\n ease: easing,\n };\n return (\n <motion.span\n key={index}\n initial={fromSnapshot}\n animate={inView ? animateKeyframes : fromSnapshot}\n transition={spanTransition}\n onAnimationComplete={\n index === elements.length - 1 ? onAnimationComplete : undefined\n }\n style={{\n display: \"inline-block\",\n willChange: \"transform, filter, opacity\",\n }}\n >\n {segment === \" \" ? \"\\u00A0\" : segment}\n {animateBy === \"words\" && index < elements.length - 1 && \"\\u00A0\"}\n </motion.span>\n );\n })}\n </p>\n );\n};\nexport default BlurText;\n"],"names":["buildKeyframes","from","steps","keys","s","keyframes","k","BlurText","text","delay","className","animateBy","direction","threshold","rootMargin","animationFrom","animationTo","easing","t","onAnimationComplete","stepDuration","elements","inView","setInView","useState","ref","useRef","useEffect","observer","entry","defaultFrom","useMemo","defaultTo","fromSnapshot","toSnapshots","stepCount","totalDuration","times","_","i","jsx","segment","index","animateKeyframes","spanTransition","jsxs","motion"],"mappings":"8LAiBMA,EAAiB,CACrBC,EACAC,IAC2C,CAC3C,MAAMC,MAAW,IAAY,CAC3B,GAAG,OAAO,KAAKF,CAAI,EACnB,GAAGC,EAAM,QAASE,GAAM,OAAO,KAAKA,CAAC,CAAC,CAAA,CACvC,EACKC,EAAoD,CAAA,EAC1D,OAAAF,EAAK,QAASG,GAAM,CAClBD,EAAUC,CAAC,EAAI,CAACL,EAAKK,CAAC,EAAG,GAAGJ,EAAM,IAAKE,GAAMA,EAAEE,CAAC,CAAC,CAAC,CACpD,CAAC,EACMD,CACT,EACME,EAAoC,CAAC,CACzC,KAAAC,EAAO,GACP,MAAAC,EAAQ,IACR,UAAAC,EAAY,GACZ,UAAAC,EAAY,QACZ,UAAAC,EAAY,MACZ,UAAAC,EAAY,GACZ,WAAAC,EAAa,MACb,cAAAC,EACA,YAAAC,EACA,OAAAC,EAAUC,GAAcA,EACxB,oBAAAC,EACA,aAAAC,EAAe,GACjB,IAAM,CACJ,MAAMC,EAAWV,IAAc,QAAUH,EAAK,MAAM,GAAG,EAAIA,EAAK,MAAM,EAAE,EAClE,CAACc,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EACpCC,EAAMC,EAAAA,OAA6B,IAAI,EAC7CC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACF,EAAI,QAAS,OAClB,MAAMG,EAAW,IAAI,qBACnB,CAAC,CAACC,CAAK,IAAM,CACPA,EAAM,iBACRN,EAAU,EAAI,EACdK,EAAS,UAAUH,EAAI,OAAkB,EAE7C,EACA,CAAE,UAAAZ,EAAW,WAAAC,CAAA,CAAW,EAE1B,OAAAc,EAAS,QAAQH,EAAI,OAAO,EACrB,IAAMG,EAAS,WAAA,CACxB,EAAG,CAACf,EAAWC,CAAU,CAAC,EAC1B,MAAMgB,EAAcC,EAAAA,QAClB,IACEnB,IAAc,MACV,CAAE,OAAQ,aAAc,QAAS,EAAG,EAAG,GAAA,EACvC,CAAE,OAAQ,aAAc,QAAS,EAAG,EAAG,EAAA,EAC7C,CAACA,CAAS,CAAA,EAENoB,EAAYD,EAAAA,QAChB,IAAM,CACJ,CACE,OAAQ,YACR,QAAS,GACT,EAAGnB,IAAc,MAAQ,EAAI,EAAA,EAE/B,CAAE,OAAQ,YAAa,QAAS,EAAG,EAAG,CAAA,CAAE,EAE1C,CAACA,CAAS,CAAA,EAENqB,EAAelB,GAAiBe,EAChCI,EAAclB,GAAegB,EAC7BG,EAAYD,EAAY,OAAS,EACjCE,EAAgBhB,GAAgBe,EAAY,GAC5CE,EAAQ,MAAM,KAAK,CAAE,OAAQF,CAAA,EAAa,CAACG,EAAGC,IAClDJ,IAAc,EAAI,EAAII,GAAKJ,EAAY,EAAA,EAEzC,OACEK,EAAAA,IAAC,IAAA,CAAE,IAAAf,EAAU,UAAW,aAAaf,CAAS,kBAC3C,SAAAW,EAAS,IAAI,CAACoB,EAASC,IAAU,CAChC,MAAMC,EAAmB3C,EAAeiC,EAAcC,CAAW,EAC3DU,EAA6B,CACjC,SAAUR,EACV,MAAAC,EACA,MAAQK,EAAQjC,EAAS,IACzB,KAAMQ,CAAA,EAER,OACE4B,EAAAA,KAACC,EAAAA,OAAO,KAAP,CAEC,QAASb,EACT,QAASX,EAASqB,EAAmBV,EACrC,WAAYW,EACZ,oBACEF,IAAUrB,EAAS,OAAS,EAAIF,EAAsB,OAExD,MAAO,CACL,QAAS,eACT,WAAY,4BAAA,EAGb,SAAA,CAAAsB,IAAY,IAAM,IAAWA,EAC7B9B,IAAc,SAAW+B,EAAQrB,EAAS,OAAS,GAAK,GAAA,CAAA,EAbpDqB,CAAA,CAgBX,CAAC,CAAA,CACH,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("react/jsx-runtime"),h=require("react"),u=require("motion/react"),k=(a,e,r=!0)=>({from:e,to:e+360,ease:"linear",duration:a,type:"tween",repeat:r?1/0:0}),n=(a,e)=>({rotate:k(a,e),scale:{type:"spring",damping:20,stiffness:300}}),M=({text:a,spinDuration:e=20,onHover:r="speedUp",className:p=""})=>{const l=Array.from(a),o=u.useAnimation(),c=u.useMotionValue(0);h.useEffect(()=>{const t=c.get();o.start({rotate:t+360,scale:1,transition:n(e,t)})},[e,a,r,o,c]);const m=()=>{const t=c.get();if(!r)return;let s,i=1;switch(r){case"slowDown":s=n(e*2,t);break;case"speedUp":s=n(e/4,t);break;case"pause":s={rotate:{type:"spring",damping:20,stiffness:300},scale:{type:"spring",damping:20,stiffness:300}};break;case"goBonkers":s=n(e/20,t),i=.8;break;default:s=n(e,t)}o.start({rotate:t+360,scale:i,transition:s})},x=()=>{const t=c.get();o.start({rotate:t+360,scale:1,transition:n(e,t)})};return f.jsx(u.motion.div,{className:`m-0 mx-auto rounded-full w-[200px] h-[200px] relative font-black text-foreground text-center cursor-pointer origin-center ${p}`,style:{rotate:c},initial:{rotate:0},animate:o,onMouseEnter:m,onMouseLeave:x,children:l.map((t,s)=>{const i=360/l.length*s,d=Math.PI/l.length,b=d*s,y=d*s,g=`rotateZ(${i}deg) translate3d(${b}px, ${y}px, 0)`;return f.jsx("span",{className:"absolute inline-block inset-0 text-2xl transition-all duration-500 ease-[cubic-bezier(0,0,0,1)]",style:{transform:g,WebkitTransform:g},children:t},s)})})};exports.default=M;
|
|
2
|
+
//# sourceMappingURL=CircularText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircularText.cjs","sources":["../../../../src/lib/TextAnimation/CircularText.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect } from \"react\";\nimport {\n motion,\n useAnimation,\n useMotionValue,\n MotionValue,\n type Transition,\n} from \"motion/react\";\n\ninterface CircularTextProps {\n text: string;\n spinDuration?: number;\n onHover?: \"slowDown\" | \"speedUp\" | \"pause\" | \"goBonkers\";\n className?: string;\n}\n\nconst getRotationTransition = (\n duration: number,\n from: number,\n loop: boolean = true,\n) => ({\n from,\n to: from + 360,\n ease: \"linear\" as const,\n duration,\n type: \"tween\" as const,\n repeat: loop ? Infinity : 0,\n});\n\nconst getTransition = (duration: number, from: number) => ({\n rotate: getRotationTransition(duration, from),\n scale: {\n type: \"spring\" as const,\n damping: 20,\n stiffness: 300,\n },\n});\n\nconst CircularText: React.FC<CircularTextProps> = ({\n text,\n spinDuration = 20,\n onHover = \"speedUp\",\n className = \"\",\n}) => {\n const letters = Array.from(text);\n const controls = useAnimation();\n const rotation: MotionValue<number> = useMotionValue(0);\n useEffect(() => {\n const start = rotation.get();\n controls.start({\n rotate: start + 360,\n scale: 1,\n transition: getTransition(spinDuration, start),\n });\n }, [spinDuration, text, onHover, controls, rotation]);\n const handleHoverStart = () => {\n const start = rotation.get();\n if (!onHover) return;\n let transitionConfig: ReturnType<typeof getTransition> | Transition;\n let scaleVal = 1;\n switch (onHover) {\n case \"slowDown\":\n transitionConfig = getTransition(spinDuration * 2, start);\n break;\n case \"speedUp\":\n transitionConfig = getTransition(spinDuration / 4, start);\n break;\n case \"pause\":\n transitionConfig = {\n rotate: { type: \"spring\", damping: 20, stiffness: 300 },\n scale: { type: \"spring\", damping: 20, stiffness: 300 },\n };\n break;\n case \"goBonkers\":\n transitionConfig = getTransition(spinDuration / 20, start);\n scaleVal = 0.8;\n break;\n default:\n transitionConfig = getTransition(spinDuration, start);\n }\n controls.start({\n rotate: start + 360,\n scale: scaleVal,\n transition: transitionConfig,\n });\n };\n const handleHoverEnd = () => {\n const start = rotation.get();\n controls.start({\n rotate: start + 360,\n scale: 1,\n transition: getTransition(spinDuration, start),\n });\n };\n return (\n <motion.div\n className={`m-0 mx-auto rounded-full w-[200px] h-[200px] relative font-black text-foreground text-center cursor-pointer origin-center ${className}`}\n style={{ rotate: rotation }}\n initial={{ rotate: 0 }}\n animate={controls}\n onMouseEnter={handleHoverStart}\n onMouseLeave={handleHoverEnd}\n >\n {letters.map((letter, i) => {\n const rotationDeg = (360 / letters.length) * i;\n const factor = Math.PI / letters.length;\n const x = factor * i;\n const y = factor * i;\n const transform = `rotateZ(${rotationDeg}deg) translate3d(${x}px, ${y}px, 0)`;\n return (\n <span\n key={i}\n className=\"absolute inline-block inset-0 text-2xl transition-all duration-500 ease-[cubic-bezier(0,0,0,1)]\"\n style={{ transform, WebkitTransform: transform }}\n >\n {letter}\n </span>\n );\n })}\n </motion.div>\n );\n};\n\nexport default CircularText;\n"],"names":["getRotationTransition","duration","from","loop","getTransition","CircularText","text","spinDuration","onHover","className","letters","controls","useAnimation","rotation","useMotionValue","useEffect","start","handleHoverStart","transitionConfig","scaleVal","handleHoverEnd","jsx","motion","letter","i","rotationDeg","factor","x","transform"],"mappings":"8LAiBMA,EAAwB,CAC5BC,EACAC,EACAC,EAAgB,MACZ,CACJ,KAAAD,EACA,GAAIA,EAAO,IACX,KAAM,SACN,SAAAD,EACA,KAAM,QACN,OAAQE,EAAO,IAAW,CAC5B,GAEMC,EAAgB,CAACH,EAAkBC,KAAkB,CACzD,OAAQF,EAAsBC,EAAUC,CAAI,EAC5C,MAAO,CACL,KAAM,SACN,QAAS,GACT,UAAW,GAAA,CAEf,GAEMG,EAA4C,CAAC,CACjD,KAAAC,EACA,aAAAC,EAAe,GACf,QAAAC,EAAU,UACV,UAAAC,EAAY,EACd,IAAM,CACJ,MAAMC,EAAU,MAAM,KAAKJ,CAAI,EACzBK,EAAWC,EAAAA,aAAA,EACXC,EAAgCC,EAAAA,eAAe,CAAC,EACtDC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAQH,EAAS,IAAA,EACvBF,EAAS,MAAM,CACb,OAAQK,EAAQ,IAChB,MAAO,EACP,WAAYZ,EAAcG,EAAcS,CAAK,CAAA,CAC9C,CACH,EAAG,CAACT,EAAcD,EAAME,EAASG,EAAUE,CAAQ,CAAC,EACpD,MAAMI,EAAmB,IAAM,CAC7B,MAAMD,EAAQH,EAAS,IAAA,EACvB,GAAI,CAACL,EAAS,OACd,IAAIU,EACAC,EAAW,EACf,OAAQX,EAAA,CACN,IAAK,WACHU,EAAmBd,EAAcG,EAAe,EAAGS,CAAK,EACxD,MACF,IAAK,UACHE,EAAmBd,EAAcG,EAAe,EAAGS,CAAK,EACxD,MACF,IAAK,QACHE,EAAmB,CACjB,OAAQ,CAAE,KAAM,SAAU,QAAS,GAAI,UAAW,GAAA,EAClD,MAAO,CAAE,KAAM,SAAU,QAAS,GAAI,UAAW,GAAA,CAAI,EAEvD,MACF,IAAK,YACHA,EAAmBd,EAAcG,EAAe,GAAIS,CAAK,EACzDG,EAAW,GACX,MACF,QACED,EAAmBd,EAAcG,EAAcS,CAAK,CAAA,CAExDL,EAAS,MAAM,CACb,OAAQK,EAAQ,IAChB,MAAOG,EACP,WAAYD,CAAA,CACb,CACH,EACME,EAAiB,IAAM,CAC3B,MAAMJ,EAAQH,EAAS,IAAA,EACvBF,EAAS,MAAM,CACb,OAAQK,EAAQ,IAChB,MAAO,EACP,WAAYZ,EAAcG,EAAcS,CAAK,CAAA,CAC9C,CACH,EACA,OACEK,EAAAA,IAACC,EAAAA,OAAO,IAAP,CACC,UAAW,6HAA6Hb,CAAS,GACjJ,MAAO,CAAE,OAAQI,CAAA,EACjB,QAAS,CAAE,OAAQ,CAAA,EACnB,QAASF,EACT,aAAcM,EACd,aAAcG,EAEb,SAAAV,EAAQ,IAAI,CAACa,EAAQC,IAAM,CAC1B,MAAMC,EAAe,IAAMf,EAAQ,OAAUc,EACvCE,EAAS,KAAK,GAAKhB,EAAQ,OAC3BiB,EAAID,EAASF,EACb,EAAIE,EAASF,EACbI,EAAY,WAAWH,CAAW,oBAAoBE,CAAC,OAAO,CAAC,SACrE,OACEN,EAAAA,IAAC,OAAA,CAEC,UAAU,kGACV,MAAO,CAAE,UAAAO,EAAW,gBAAiBA,CAAA,EAEpC,SAAAL,CAAA,EAJIC,CAAA,CAOX,CAAC,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),j=require("react"),c=require("motion/react"),O=require("@dsui/ui/index");function k(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}}return e.default=t,Object.freeze(e)}const l=k(j);function S({ref:t,words:e,duration:i=3e3,letterDelay:s=.05,wordDelay:p=.3,className:g,...d}){const u=l.useRef(null);l.useImperativeHandle(t,()=>u.current);const[r,x]=l.useState(e[0]),[f,m]=l.useState(!1),y=l.useCallback(()=>{const n=e[e.indexOf(r)+1]||e[0];x(n),m(!0)},[r,e]);return l.useEffect(()=>{if(!f){const n=setTimeout(()=>{y()},i);return()=>clearTimeout(n)}},[f,i,y]),a.jsx("span",{ref:u,"data-slot":"flip-words",...d,children:a.jsx(c.AnimatePresence,{onExitComplete:()=>{m(!1)},children:a.jsx(c.motion.span,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{type:"spring",stiffness:100,damping:10},exit:{opacity:0,y:-40,x:40,filter:"blur(8px)",scale:2,position:"absolute"},className:O.cn("inline-block relative text-left px-2 will-change-transform will-change-opacity will-change-filter",g),children:r.split(" ").map((n,o)=>a.jsxs(c.motion.span,{initial:{opacity:0,y:10,filter:"blur(8px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},transition:{delay:o*p,duration:.3},className:"inline-block whitespace-nowrap",children:[n.split("").map((h,b)=>a.jsx(c.motion.span,{initial:{opacity:0,y:10,filter:"blur(8px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},transition:{delay:o*p+b*s,duration:.2},className:"inline-block will-change-transform will-change-opacity will-change-filter",children:h},`${n}-${b}`)),a.jsx("span",{className:"inline-block",children:" "})]},`${n}-${o}`))},r)})})}exports.FlipWords=S;
|
|
2
|
+
//# sourceMappingURL=FlipWords.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlipWords.cjs","sources":["../../../../src/lib/TextAnimation/FlipWords.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { cn } from \"@dsui/ui/index\";\n\ntype FlipWordsProps = Omit<React.ComponentProps<\"span\">, \"children\"> & {\n words: string[];\n duration?: number;\n letterDelay?: number;\n wordDelay?: number;\n};\n\nfunction FlipWords({\n ref,\n words,\n duration = 3000,\n letterDelay = 0.05,\n wordDelay = 0.3,\n className,\n ...props\n}: FlipWordsProps) {\n const localRef = React.useRef<HTMLSpanElement>(null);\n React.useImperativeHandle(\n ref as any,\n () => localRef.current as HTMLSpanElement,\n );\n const [currentWord, setCurrentWord] = React.useState(words[0]);\n const [isAnimating, setIsAnimating] = React.useState<boolean>(false);\n\n const startAnimation = React.useCallback(() => {\n const word = words[words.indexOf(currentWord) + 1] || words[0];\n setCurrentWord(word);\n setIsAnimating(true);\n }, [currentWord, words]);\n\n React.useEffect(() => {\n if (!isAnimating) {\n const timeoutId = setTimeout(() => {\n startAnimation();\n }, duration);\n return () => clearTimeout(timeoutId);\n }\n }, [isAnimating, duration, startAnimation]);\n\n return (\n <span ref={localRef} data-slot=\"flip-words\" {...(props as any)}>\n <AnimatePresence\n onExitComplete={() => {\n setIsAnimating(false);\n }}\n >\n <motion.span\n initial={{\n opacity: 0,\n y: 10,\n }}\n animate={{\n opacity: 1,\n y: 0,\n }}\n transition={{\n type: \"spring\",\n stiffness: 100,\n damping: 10,\n }}\n exit={{\n opacity: 0,\n y: -40,\n x: 40,\n filter: \"blur(8px)\",\n scale: 2,\n position: \"absolute\",\n }}\n className={cn(\n \"inline-block relative text-left px-2 will-change-transform will-change-opacity will-change-filter\",\n className,\n )}\n key={currentWord}\n >\n {currentWord.split(\" \").map((word, wordIndex) => (\n <motion.span\n key={`${word}-${wordIndex}`}\n initial={{ opacity: 0, y: 10, filter: \"blur(8px)\" }}\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\n transition={{\n delay: wordIndex * wordDelay,\n duration: 0.3,\n }}\n className=\"inline-block whitespace-nowrap\"\n >\n {word.split(\"\").map((letter, letterIndex) => (\n <motion.span\n key={`${word}-${letterIndex}`}\n initial={{ opacity: 0, y: 10, filter: \"blur(8px)\" }}\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\n transition={{\n delay: wordIndex * wordDelay + letterIndex * letterDelay,\n duration: 0.2,\n }}\n className=\"inline-block will-change-transform will-change-opacity will-change-filter\"\n >\n {letter}\n </motion.span>\n ))}\n <span className=\"inline-block\"> </span>\n </motion.span>\n ))}\n </motion.span>\n </AnimatePresence>\n </span>\n );\n}\n\nexport { FlipWords, type FlipWordsProps };\n"],"names":["FlipWords","ref","words","duration","letterDelay","wordDelay","className","props","localRef","React","currentWord","setCurrentWord","isAnimating","setIsAnimating","startAnimation","word","timeoutId","jsx","AnimatePresence","motion","cn","wordIndex","jsxs","letter","letterIndex"],"mappings":"wdAYA,SAASA,EAAU,CACjB,IAAAC,EACA,MAAAC,EACA,SAAAC,EAAW,IACX,YAAAC,EAAc,IACd,UAAAC,EAAY,GACZ,UAAAC,EACA,GAAGC,CACL,EAAmB,CACjB,MAAMC,EAAWC,EAAM,OAAwB,IAAI,EACnDA,EAAM,oBACJR,EACA,IAAMO,EAAS,OAAA,EAEjB,KAAM,CAACE,EAAaC,CAAc,EAAIF,EAAM,SAASP,EAAM,CAAC,CAAC,EACvD,CAACU,EAAaC,CAAc,EAAIJ,EAAM,SAAkB,EAAK,EAE7DK,EAAiBL,EAAM,YAAY,IAAM,CAC7C,MAAMM,EAAOb,EAAMA,EAAM,QAAQQ,CAAW,EAAI,CAAC,GAAKR,EAAM,CAAC,EAC7DS,EAAeI,CAAI,EACnBF,EAAe,EAAI,CACrB,EAAG,CAACH,EAAaR,CAAK,CAAC,EAEvBO,OAAAA,EAAM,UAAU,IAAM,CACpB,GAAI,CAACG,EAAa,CAChB,MAAMI,EAAY,WAAW,IAAM,CACjCF,EAAA,CACF,EAAGX,CAAQ,EACX,MAAO,IAAM,aAAaa,CAAS,CACrC,CACF,EAAG,CAACJ,EAAaT,EAAUW,CAAc,CAAC,QAGvC,OAAA,CAAK,IAAKN,EAAU,YAAU,aAAc,GAAID,EAC/C,SAAAU,EAAAA,IAACC,EAAAA,gBAAA,CACC,eAAgB,IAAM,CACpBL,EAAe,EAAK,CACtB,EAEA,SAAAI,EAAAA,IAACE,EAAAA,OAAO,KAAP,CACC,QAAS,CACP,QAAS,EACT,EAAG,EAAA,EAEL,QAAS,CACP,QAAS,EACT,EAAG,CAAA,EAEL,WAAY,CACV,KAAM,SACN,UAAW,IACX,QAAS,EAAA,EAEX,KAAM,CACJ,QAAS,EACT,EAAG,IACH,EAAG,GACH,OAAQ,YACR,MAAO,EACP,SAAU,UAAA,EAEZ,UAAWC,EAAAA,GACT,oGACAd,CAAA,EAID,WAAY,MAAM,GAAG,EAAE,IAAI,CAACS,EAAMM,IACjCC,EAAAA,KAACH,EAAAA,OAAO,KAAP,CAEC,QAAS,CAAE,QAAS,EAAG,EAAG,GAAI,OAAQ,WAAA,EACtC,QAAS,CAAE,QAAS,EAAG,EAAG,EAAG,OAAQ,WAAA,EACrC,WAAY,CACV,MAAOE,EAAYhB,EACnB,SAAU,EAAA,EAEZ,UAAU,iCAET,SAAA,CAAAU,EAAK,MAAM,EAAE,EAAE,IAAI,CAACQ,EAAQC,IAC3BP,EAAAA,IAACE,EAAAA,OAAO,KAAP,CAEC,QAAS,CAAE,QAAS,EAAG,EAAG,GAAI,OAAQ,WAAA,EACtC,QAAS,CAAE,QAAS,EAAG,EAAG,EAAG,OAAQ,WAAA,EACrC,WAAY,CACV,MAAOE,EAAYhB,EAAYmB,EAAcpB,EAC7C,SAAU,EAAA,EAEZ,UAAU,4EAET,SAAAmB,CAAA,EATI,GAAGR,CAAI,IAAIS,CAAW,EAAA,CAW9B,EACDP,EAAAA,IAAC,OAAA,CAAK,UAAU,eAAe,SAAA,GAAA,CAAM,CAAA,CAAA,EAvBhC,GAAGF,CAAI,IAAIM,CAAS,EAAA,CAyB5B,CAAA,EA7BIX,CAAA,CA8BP,CAAA,EAEJ,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("react");const r=require("motion/react"),c=require("@dsui/ui/index");function d({text:t,className:i,gradient:s="linear-gradient(90deg, #3b82f6 0%, #a855f7 20%, #ec4899 50%, #a855f7 80%, #3b82f6 100%)",neon:o=!1,transition:n={duration:3,repeat:1/0,ease:"linear"},...l}){const a={backgroundImage:s,backgroundClip:"text",WebkitBackgroundClip:"text",backgroundSize:"200% 100%",color:"transparent"};return e.jsxs("span",{"data-slot":"gradient-text",className:c.cn("relative inline-block",i),...l,children:[e.jsx(r.motion.span,{className:"m-0 text-transparent",style:a,animate:{backgroundPosition:["0% 0%","200% 0%"]},transition:n,children:t}),o&&e.jsx(r.motion.span,{className:"m-0 absolute top-0 left-0 text-transparent blur-sm mix-blend-plus-lighter",style:a,animate:{backgroundPosition:["0% 0%","200% 0%"]},transition:n,children:t})]})}exports.GradientText=d;
|
|
2
|
+
//# sourceMappingURL=GradientText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradientText.cjs","sources":["../../../../src/lib/TextAnimation/GradientText.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { motion, type Transition } from \"motion/react\";\nimport { cn } from \"@dsui/ui/index\";\n\ntype GradientTextProps = React.ComponentProps<\"span\"> & {\n text: string;\n gradient?: string;\n neon?: boolean;\n transition?: Transition;\n};\n\nfunction GradientText({\n text,\n className,\n gradient = \"linear-gradient(90deg, #3b82f6 0%, #a855f7 20%, #ec4899 50%, #a855f7 80%, #3b82f6 100%)\",\n neon = false,\n transition = { duration: 3, repeat: Infinity, ease: \"linear\" },\n ...props\n}: GradientTextProps) {\n const baseStyle: React.CSSProperties = {\n backgroundImage: gradient,\n backgroundClip: \"text\",\n WebkitBackgroundClip: \"text\",\n backgroundSize: \"200% 100%\",\n color: \"transparent\",\n };\n\n return (\n <span\n data-slot=\"gradient-text\"\n className={cn(\"relative inline-block\", className)}\n {...(props as any)}\n >\n <motion.span\n className=\"m-0 text-transparent\"\n style={baseStyle}\n animate={{ backgroundPosition: [\"0% 0%\", \"200% 0%\"] }}\n transition={transition}\n >\n {text}\n </motion.span>\n\n {neon && (\n <motion.span\n className=\"m-0 absolute top-0 left-0 text-transparent blur-sm mix-blend-plus-lighter\"\n style={baseStyle}\n animate={{ backgroundPosition: [\"0% 0%\", \"200% 0%\"] }}\n transition={transition}\n >\n {text}\n </motion.span>\n )}\n </span>\n );\n}\n\nexport { GradientText, type GradientTextProps };\n"],"names":["GradientText","text","className","gradient","neon","transition","props","baseStyle","jsxs","cn","jsx","motion"],"mappings":"kMAaA,SAASA,EAAa,CACpB,KAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,0FACX,KAAAC,EAAO,GACP,WAAAC,EAAa,CAAE,SAAU,EAAG,OAAQ,IAAU,KAAM,QAAA,EACpD,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAiC,CACrC,gBAAiBJ,EACjB,eAAgB,OAChB,qBAAsB,OACtB,eAAgB,YAChB,MAAO,aAAA,EAGT,OACEK,EAAAA,KAAC,OAAA,CACC,YAAU,gBACV,UAAWC,EAAAA,GAAG,wBAAyBP,CAAS,EAC/C,GAAII,EAEL,SAAA,CAAAI,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,UAAU,uBACV,MAAOJ,EACP,QAAS,CAAE,mBAAoB,CAAC,QAAS,SAAS,CAAA,EAClD,WAAAF,EAEC,SAAAJ,CAAA,CAAA,EAGFG,GACCM,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,UAAU,4EACV,MAAOJ,EACP,QAAS,CAAE,mBAAoB,CAAC,QAAS,SAAS,CAAA,EAClD,WAAAF,EAEC,SAAAJ,CAAA,CAAA,CACH,CAAA,CAAA,CAIR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),N=require("react"),r=require("motion/react");function O(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const c=O(N),p={initial:{rotateX:0},animate:{rotateX:90}},f={initial:{rotateX:90},animate:{rotateX:0}},u=e=>e===" "?" ":e;function R({ref:e,transition:t={duration:.5,delay:.1,ease:"easeOut"},inView:a=!1,inViewMargin:i="0px",inViewOnce:b=!0,text:s,...g}){const d=c.useRef(null);c.useImperativeHandle(e,()=>d.current);const j=r.useInView(d,{once:b,margin:i}),m=!a||j,y=c.useMemo(()=>s.split(""),[s]);return n.jsxs("span",{"data-slot":"rolling-text",...g,ref:e,children:[y.map((l,o)=>n.jsxs("span",{className:"relative inline-block perspective-[9999999px] transform-3d w-auto","aria-hidden":"true",children:[n.jsx(r.motion.span,{className:"absolute inline-block backface-hidden origin-[50%_25%]",initial:p.initial,animate:m?p.animate:void 0,transition:{...t,delay:o*(t?.delay??0)},children:u(l)}),n.jsx(r.motion.span,{className:"absolute inline-block backface-hidden origin-[50%_100%]",initial:f.initial,animate:m?f.animate:void 0,transition:{...t,delay:o*(t?.delay??0)+.3},children:u(l)}),n.jsx("span",{className:"invisible",children:u(l)})]},o)),n.jsx("span",{className:"sr-only",children:s})]})}exports.RollingText=R;
|
|
2
|
+
//# sourceMappingURL=RollingText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RollingText.cjs","sources":["../../../../src/lib/TextAnimation/RollingText.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n motion,\n useInView,\n type UseInViewOptions,\n type Transition,\n} from \"motion/react\";\n\nconst ENTRY_ANIMATION = {\n initial: { rotateX: 0 },\n animate: { rotateX: 90 },\n};\n\nconst EXIT_ANIMATION = {\n initial: { rotateX: 90 },\n animate: { rotateX: 0 },\n};\n\nconst formatCharacter = (char: string) => (char === \" \" ? \"\\u00A0\" : char);\n\ntype RollingTextProps = Omit<React.ComponentProps<\"span\">, \"children\"> & {\n transition?: Transition;\n inView?: boolean;\n inViewMargin?: UseInViewOptions[\"margin\"];\n inViewOnce?: boolean;\n text: string;\n};\n\nfunction RollingText({\n ref,\n transition = { duration: 0.5, delay: 0.1, ease: \"easeOut\" },\n inView = false,\n inViewMargin = \"0px\",\n inViewOnce = true,\n text,\n ...props\n}: RollingTextProps) {\n const localRef = React.useRef<HTMLSpanElement>(null);\n React.useImperativeHandle(ref as any, () => localRef.current!);\n\n const inViewResult = useInView(localRef, {\n once: inViewOnce,\n margin: inViewMargin,\n });\n const isInView = !inView || inViewResult;\n\n const characters = React.useMemo(() => text.split(\"\"), [text]);\n\n return (\n <span data-slot=\"rolling-text\" {...(props as any)} ref={ref}>\n {characters.map((char, idx) => (\n <span\n key={idx}\n className=\"relative inline-block perspective-[9999999px] transform-3d w-auto\"\n aria-hidden=\"true\"\n >\n <motion.span\n className=\"absolute inline-block backface-hidden origin-[50%_25%]\"\n initial={ENTRY_ANIMATION.initial}\n animate={isInView ? ENTRY_ANIMATION.animate : undefined}\n transition={{\n ...transition,\n delay: idx * (transition?.delay ?? 0),\n }}\n >\n {formatCharacter(char)}\n </motion.span>\n <motion.span\n className=\"absolute inline-block backface-hidden origin-[50%_100%]\"\n initial={EXIT_ANIMATION.initial}\n animate={isInView ? EXIT_ANIMATION.animate : undefined}\n transition={{\n ...transition,\n delay: idx * (transition?.delay ?? 0) + 0.3,\n }}\n >\n {formatCharacter(char)}\n </motion.span>\n <span className=\"invisible\">{formatCharacter(char)}</span>\n </span>\n ))}\n\n <span className=\"sr-only\">{text}</span>\n </span>\n );\n}\n\nexport { RollingText, type RollingTextProps };\n"],"names":["ENTRY_ANIMATION","EXIT_ANIMATION","formatCharacter","char","RollingText","ref","transition","inView","inViewMargin","inViewOnce","text","props","localRef","React","inViewResult","useInView","isInView","characters","idx","jsxs","jsx","motion"],"mappings":"4bAUMA,EAAkB,CACtB,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,EAAA,CACtB,EAEMC,EAAiB,CACrB,QAAS,CAAE,QAAS,EAAA,EACpB,QAAS,CAAE,QAAS,CAAA,CACtB,EAEMC,EAAmBC,GAAkBA,IAAS,IAAM,IAAWA,EAUrE,SAASC,EAAY,CACnB,IAAAC,EACA,WAAAC,EAAa,CAAE,SAAU,GAAK,MAAO,GAAK,KAAM,SAAA,EAChD,OAAAC,EAAS,GACT,aAAAC,EAAe,MACf,WAAAC,EAAa,GACb,KAAAC,EACA,GAAGC,CACL,EAAqB,CACnB,MAAMC,EAAWC,EAAM,OAAwB,IAAI,EACnDA,EAAM,oBAAoBR,EAAY,IAAMO,EAAS,OAAQ,EAE7D,MAAME,EAAeC,EAAAA,UAAUH,EAAU,CACvC,KAAMH,EACN,OAAQD,CAAA,CACT,EACKQ,EAAW,CAACT,GAAUO,EAEtBG,EAAaJ,EAAM,QAAQ,IAAMH,EAAK,MAAM,EAAE,EAAG,CAACA,CAAI,CAAC,EAE7D,cACG,OAAA,CAAK,YAAU,eAAgB,GAAIC,EAAe,IAAAN,EAChD,SAAA,CAAAY,EAAW,IAAI,CAACd,EAAMe,IACrBC,EAAAA,KAAC,OAAA,CAEC,UAAU,oEACV,cAAY,OAEZ,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,UAAU,yDACV,QAASrB,EAAgB,QACzB,QAASgB,EAAWhB,EAAgB,QAAU,OAC9C,WAAY,CACV,GAAGM,EACH,MAAOY,GAAOZ,GAAY,OAAS,EAAA,EAGpC,WAAgBH,CAAI,CAAA,CAAA,EAEvBiB,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,UAAU,0DACV,QAASpB,EAAe,QACxB,QAASe,EAAWf,EAAe,QAAU,OAC7C,WAAY,CACV,GAAGK,EACH,MAAOY,GAAOZ,GAAY,OAAS,GAAK,EAAA,EAGzC,WAAgBH,CAAI,CAAA,CAAA,QAEtB,OAAA,CAAK,UAAU,YAAa,SAAAD,EAAgBC,CAAI,CAAA,CAAE,CAAA,CAAA,EA1B9Ce,CAAA,CA4BR,EAEDE,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAW,SAAAV,CAAA,CAAK,CAAA,EAClC,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),m=require("react"),c=require("motion/react"),p=require("@dsui/ui/index");function g(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=g(m);function j({text:e,y:r=-50,duration:t=2e3,transition:n={duration:.3,ease:"easeOut"},containerClassName:s,...u}){const[l,d]=o.useState(0);o.useEffect(()=>{if(!Array.isArray(e))return;const f=setInterval(()=>{d(y=>(y+1)%e.length)},t);return()=>clearInterval(f)},[e,t]);const a=Array.isArray(e)?e[l]:e;return i.jsx("div",{className:p.cn("overflow-hidden py-1",s),children:i.jsx(c.AnimatePresence,{mode:"wait",children:i.jsx(c.motion.div,{transition:n,initial:{opacity:0,y:-r},animate:{opacity:1,y:0},exit:{opacity:0,y:r},...u,children:a},a)})})}exports.RotatingText=j;
|
|
2
|
+
//# sourceMappingURL=RotatingText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RotatingText.cjs","sources":["../../../../src/lib/TextAnimation/RotatingText.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n AnimatePresence,\n motion,\n type HTMLMotionProps,\n type Transition,\n} from \"motion/react\";\nimport { cn } from \"@dsui/ui/index\";\n\ntype RotatingTextProps = {\n text: string | string[];\n duration?: number;\n transition?: Transition;\n y?: number;\n containerClassName?: string;\n} & HTMLMotionProps<\"div\">;\n\nfunction RotatingText({\n text,\n y = -50,\n duration = 2000,\n transition = { duration: 0.3, ease: \"easeOut\" },\n containerClassName,\n ...props\n}: RotatingTextProps) {\n const [index, setIndex] = React.useState(0);\n\n React.useEffect(() => {\n if (!Array.isArray(text)) return;\n const interval = setInterval(() => {\n setIndex((prevIndex) => (prevIndex + 1) % text.length);\n }, duration);\n return () => clearInterval(interval);\n }, [text, duration]);\n\n const currentText = Array.isArray(text) ? text[index] : text;\n\n return (\n <div className={cn(\"overflow-hidden py-1\", containerClassName)}>\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={currentText}\n transition={transition}\n initial={{ opacity: 0, y: -y }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y }}\n {...(props as any)}\n >\n {currentText}\n </motion.div>\n </AnimatePresence>\n </div>\n );\n}\n\nexport { RotatingText, type RotatingTextProps };\n"],"names":["RotatingText","text","y","duration","transition","containerClassName","props","index","setIndex","React","interval","prevIndex","currentText","jsx","cn","AnimatePresence","motion"],"mappings":"wdAmBA,SAASA,EAAa,CACpB,KAAAC,EACA,EAAAC,EAAI,IACJ,SAAAC,EAAW,IACX,WAAAC,EAAa,CAAE,SAAU,GAAK,KAAM,SAAA,EACpC,mBAAAC,EACA,GAAGC,CACL,EAAsB,CACpB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAM,SAAS,CAAC,EAE1CA,EAAM,UAAU,IAAM,CACpB,GAAI,CAAC,MAAM,QAAQR,CAAI,EAAG,OAC1B,MAAMS,EAAW,YAAY,IAAM,CACjCF,EAAUG,IAAeA,EAAY,GAAKV,EAAK,MAAM,CACvD,EAAGE,CAAQ,EACX,MAAO,IAAM,cAAcO,CAAQ,CACrC,EAAG,CAACT,EAAME,CAAQ,CAAC,EAEnB,MAAMS,EAAc,MAAM,QAAQX,CAAI,EAAIA,EAAKM,CAAK,EAAIN,EAExD,OACEY,EAAAA,IAAC,MAAA,CAAI,UAAWC,EAAAA,GAAG,uBAAwBT,CAAkB,EAC3D,SAAAQ,EAAAA,IAACE,EAAAA,gBAAA,CAAgB,KAAK,OACpB,SAAAF,EAAAA,IAACG,EAAAA,OAAO,IAAP,CAEC,WAAAZ,EACA,QAAS,CAAE,QAAS,EAAG,EAAG,CAACF,CAAA,EAC3B,QAAS,CAAE,QAAS,EAAG,EAAG,CAAA,EAC1B,KAAM,CAAE,QAAS,EAAG,EAAAA,CAAA,EACnB,GAAII,EAEJ,SAAAM,CAAA,EAPIA,CAAA,EAST,CAAA,CACF,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime");require("react");const i=require("motion/react"),u=require("@dsui/ui/index");function v({text:e,duration:r=1,transition:n,wave:o=!1,className:t,color:c="var(--color-neutral-500)",shimmeringColor:s="var(--color-neutral-300)",...m}){return a.jsx(i.motion.span,{className:u.cn("relative inline-block [perspective:500px]",t),style:{"--shimmering-color":s,"--color":c,color:"var(--color)"},...m,children:e?.split("")?.map((p,l)=>a.jsx(i.motion.span,{className:"inline-block whitespace-pre [transform-style:preserve-3d]",initial:{...o?{scale:1,rotateY:0}:{},color:"var(--color)"},animate:{...o?{x:[0,5,0],y:[0,-5,0],scale:[1,1.1,1],rotateY:[0,15,0]}:{},color:["var(--color)","var(--shimmering-color)","var(--color)"]},transition:{duration:r,repeat:1/0,repeatType:"loop",repeatDelay:e.length*.05,delay:l*r/e.length,ease:"easeInOut",...n},children:p},l))})}exports.ShimmeringText=v;
|
|
2
|
+
//# sourceMappingURL=ShimmeringText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShimmeringText.cjs","sources":["../../../../src/lib/TextAnimation/ShimmeringText.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { type HTMLMotionProps, motion, type Transition } from \"motion/react\";\nimport { cn } from \"@dsui/ui/index\";\n\ntype ShimmeringTextProps = {\n text: string;\n duration?: number;\n transition?: Transition;\n wave?: boolean;\n color?: string;\n shimmeringColor?: string;\n} & Omit<HTMLMotionProps<\"span\">, \"children\">;\n\nfunction ShimmeringText({\n text,\n duration = 1,\n transition,\n wave = false,\n className,\n color = \"var(--color-neutral-500)\",\n shimmeringColor = \"var(--color-neutral-300)\",\n ...props\n}: ShimmeringTextProps) {\n return (\n <motion.span\n className={cn(\"relative inline-block [perspective:500px]\", className)}\n style={\n {\n \"--shimmering-color\": shimmeringColor,\n \"--color\": color,\n color: \"var(--color)\",\n } as React.CSSProperties\n }\n {...(props as any)}\n >\n {text?.split(\"\")?.map((char, i) => (\n <motion.span\n key={i}\n className=\"inline-block whitespace-pre [transform-style:preserve-3d]\"\n initial={{\n ...(wave\n ? {\n scale: 1,\n rotateY: 0,\n }\n : {}),\n color: \"var(--color)\",\n }}\n animate={{\n ...(wave\n ? {\n x: [0, 5, 0],\n y: [0, -5, 0],\n scale: [1, 1.1, 1],\n rotateY: [0, 15, 0],\n }\n : {}),\n color: [\"var(--color)\", \"var(--shimmering-color)\", \"var(--color)\"],\n }}\n transition={{\n duration,\n repeat: Infinity,\n repeatType: \"loop\",\n repeatDelay: text.length * 0.05,\n delay: (i * duration) / text.length,\n ease: \"easeInOut\",\n ...transition,\n }}\n >\n {char}\n </motion.span>\n ))}\n </motion.span>\n );\n}\n\nexport { ShimmeringText, type ShimmeringTextProps };\n"],"names":["ShimmeringText","text","duration","transition","wave","className","color","shimmeringColor","props","jsx","motion","cn","char","i"],"mappings":"kMAcA,SAASA,EAAe,CACtB,KAAAC,EACA,SAAAC,EAAW,EACX,WAAAC,EACA,KAAAC,EAAO,GACP,UAAAC,EACA,MAAAC,EAAQ,2BACR,gBAAAC,EAAkB,2BAClB,GAAGC,CACL,EAAwB,CACtB,OACEC,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,UAAWC,EAAAA,GAAG,4CAA6CN,CAAS,EACpE,MACE,CACE,qBAAsBE,EACtB,UAAWD,EACX,MAAO,cAAA,EAGV,GAAIE,EAEJ,YAAM,MAAM,EAAE,GAAG,IAAI,CAACI,EAAMC,IAC3BJ,EAAAA,IAACC,EAAAA,OAAO,KAAP,CAEC,UAAU,4DACV,QAAS,CACP,GAAIN,EACA,CACE,MAAO,EACP,QAAS,CAAA,EAEX,CAAA,EACJ,MAAO,cAAA,EAET,QAAS,CACP,GAAIA,EACA,CACE,EAAG,CAAC,EAAG,EAAG,CAAC,EACX,EAAG,CAAC,EAAG,GAAI,CAAC,EACZ,MAAO,CAAC,EAAG,IAAK,CAAC,EACjB,QAAS,CAAC,EAAG,GAAI,CAAC,CAAA,EAEpB,CAAA,EACJ,MAAO,CAAC,eAAgB,0BAA2B,cAAc,CAAA,EAEnE,WAAY,CACV,SAAAF,EACA,OAAQ,IACR,WAAY,OACZ,YAAaD,EAAK,OAAS,IAC3B,MAAQY,EAAIX,EAAYD,EAAK,OAC7B,KAAM,YACN,GAAGE,CAAA,EAGJ,SAAAS,CAAA,EAhCIC,CAAA,CAkCR,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),S=require("react"),o=require("motion/react");function O(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const n in r)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(e,n,t.get?t:{enumerable:!0,get:()=>r[n]})}}return e.default=r,Object.freeze(e)}const l=O(S),d={hidden:{x:150,opacity:0},visible:{x:0,opacity:1,transition:{duration:.7,ease:"easeOut"}}},x=({ref:r,text:e,type:n="chars",motionVariants:t={},inView:u=!1,inViewMargin:m="0px",inViewOnce:g=!0,delay:h=0,...f})=>{const p=l.useMemo(()=>Array.isArray(e)?e.flatMap((s,i)=>[a.jsx(l.Fragment,{children:s},`line-${i}`),i<e.length-1?a.jsx("br",{},`br-${i}`):null]):n==="words"?(e.match(/\S+\s*/g)||[]).map((i,w)=>a.jsx(l.Fragment,{children:i},w)):e.split("").map((s,i)=>a.jsx(l.Fragment,{children:s},i)),[e,n]),b={hidden:{},visible:{transition:{delayChildren:h/1e3,staggerChildren:t.stagger??(n==="chars"?.05:n==="words"?.2:.3)}}},j={hidden:{...d.hidden,...t.initial||{}},visible:{...d.visible,...t.animate||{},transition:{...d.visible.transition||{},...t.transition||{}}}},c=l.useRef(null);l.useImperativeHandle(r,()=>c.current);const v=o.useInView(c,{once:g,margin:m}),y=!u||v;return a.jsx(o.motion.span,{ref:c,initial:"hidden",animate:y?"visible":"hidden",variants:b,...f,children:p.map((s,i)=>s&&a.jsxs(l.Fragment,{children:[a.jsx(o.motion.span,{variants:j,style:{display:"inline-block",whiteSpace:n==="chars"?"pre":(Array.isArray(e),"normal")},children:s},i),n==="words"&&" "]},i))})};exports.SplittingText=x;
|
|
2
|
+
//# sourceMappingURL=SplittingText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplittingText.cjs","sources":["../../../../src/lib/TextAnimation/SplittingText.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n motion,\n type Variants,\n type TargetAndTransition,\n type HTMLMotionProps,\n useInView,\n type UseInViewOptions,\n} from \"motion/react\";\n\ntype DefaultSplittingTextProps = {\n motionVariants?: {\n initial?: Record<string, any>;\n animate?: Record<string, any>;\n transition?: Record<string, any>;\n stagger?: number;\n };\n inView?: boolean;\n inViewMargin?: UseInViewOptions[\"margin\"];\n inViewOnce?: boolean;\n delay?: number;\n} & HTMLMotionProps<\"div\">;\n\ntype CharsOrWordsSplittingTextProps = DefaultSplittingTextProps & {\n type?: \"chars\" | \"words\";\n text: string;\n};\n\ntype LinesSplittingTextProps = DefaultSplittingTextProps & {\n type: \"lines\";\n text: string[];\n};\n\ntype SplittingTextProps =\n | CharsOrWordsSplittingTextProps\n | LinesSplittingTextProps;\n\nconst defaultItemVariant: Variants = {\n hidden: { x: 150, opacity: 0 },\n visible: {\n x: 0,\n opacity: 1,\n transition: { duration: 0.7, ease: \"easeOut\" },\n },\n};\n\nexport const SplittingText: React.FC<SplittingTextProps> = ({\n ref,\n text,\n type = \"chars\",\n motionVariants = {},\n inView = false,\n inViewMargin = \"0px\",\n inViewOnce = true,\n delay = 0,\n ...props\n}) => {\n const items = React.useMemo<React.ReactNode[]>(() => {\n if (Array.isArray(text)) {\n return text.flatMap((line, i) => [\n <React.Fragment key={`line-${i}`}>{line}</React.Fragment>,\n i < text.length - 1 ? <br key={`br-${i}`} /> : null,\n ]);\n }\n\n if (type === \"words\") {\n const tokens = text.match(/\\S+\\s*/g) || [];\n return tokens.map((token, i) => (\n <React.Fragment key={i}>{token}</React.Fragment>\n ));\n }\n\n return text\n .split(\"\")\n .map((char, i) => <React.Fragment key={i}>{char}</React.Fragment>);\n }, [text, type]);\n\n const containerVariants: Variants = {\n hidden: {},\n visible: {\n transition: {\n delayChildren: delay / 1000,\n staggerChildren:\n motionVariants.stagger ??\n (type === \"chars\" ? 0.05 : type === \"words\" ? 0.2 : 0.3),\n },\n },\n };\n\n const itemVariants: Variants = {\n hidden: {\n ...defaultItemVariant.hidden,\n ...(motionVariants.initial || {}),\n },\n visible: {\n ...defaultItemVariant.visible,\n ...(motionVariants.animate || {}),\n transition: {\n ...((defaultItemVariant.visible as TargetAndTransition).transition ||\n {}),\n ...(motionVariants.transition || {}),\n },\n },\n };\n\n const localRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(\n ref as any,\n () => localRef.current as HTMLDivElement,\n );\n\n const inViewResult = useInView(localRef, {\n once: inViewOnce,\n margin: inViewMargin,\n });\n const isInView = !inView || inViewResult;\n\n return (\n <motion.span\n ref={localRef}\n initial=\"hidden\"\n animate={isInView ? \"visible\" : \"hidden\"}\n variants={containerVariants}\n {...(props as any)}\n >\n {items.map(\n (item, index) =>\n item && (\n <React.Fragment key={index}>\n <motion.span\n key={index}\n variants={itemVariants}\n style={{\n display: \"inline-block\",\n whiteSpace:\n type === \"chars\"\n ? \"pre\"\n : Array.isArray(text)\n ? \"normal\"\n : \"normal\",\n }}\n >\n {item}\n </motion.span>\n {type === \"words\" && \" \"}\n </React.Fragment>\n ),\n )}\n </motion.span>\n );\n};\n"],"names":["defaultItemVariant","SplittingText","ref","text","type","motionVariants","inView","inViewMargin","inViewOnce","delay","props","items","React","line","token","i","jsx","char","containerVariants","itemVariants","localRef","inViewResult","useInView","isInView","motion","item","index","jsxs"],"mappings":"4bAuCMA,EAA+B,CACnC,OAAQ,CAAE,EAAG,IAAK,QAAS,CAAA,EAC3B,QAAS,CACP,EAAG,EACH,QAAS,EACT,WAAY,CAAE,SAAU,GAAK,KAAM,SAAA,CAAU,CAEjD,EAEaC,EAA8C,CAAC,CAC1D,IAAAC,EACA,KAAAC,EACA,KAAAC,EAAO,QACP,eAAAC,EAAiB,CAAA,EACjB,OAAAC,EAAS,GACT,aAAAC,EAAe,MACf,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAQC,EAAM,QAA2B,IACzC,MAAM,QAAQT,CAAI,EACbA,EAAK,QAAQ,CAACU,EAAM,IAAM,OAC9BD,EAAM,SAAN,CAAkC,SAAAC,CAAA,EAAd,QAAQ,CAAC,EAAU,EACxC,EAAIV,EAAK,OAAS,QAAK,KAAA,CAAA,EAAQ,MAAM,CAAC,EAAI,EAAK,IAAA,CAChD,EAGCC,IAAS,SACID,EAAK,MAAM,SAAS,GAAK,CAAA,GAC1B,IAAI,CAACW,EAAOC,IACxBC,EAAAA,IAACJ,EAAM,SAAN,CAAwB,SAAAE,CAAA,EAAJC,CAAU,CAChC,EAGIZ,EACJ,MAAM,EAAE,EACR,IAAI,CAACc,EAAM,IAAMD,EAAAA,IAACJ,EAAM,SAAN,CAAwB,SAAAK,CAAA,EAAJ,CAAS,CAAiB,EAClE,CAACd,EAAMC,CAAI,CAAC,EAETc,EAA8B,CAClC,OAAQ,CAAA,EACR,QAAS,CACP,WAAY,CACV,cAAeT,EAAQ,IACvB,gBACEJ,EAAe,UACdD,IAAS,QAAU,IAAOA,IAAS,QAAU,GAAM,GAAA,CACxD,CACF,EAGIe,EAAyB,CAC7B,OAAQ,CACN,GAAGnB,EAAmB,OACtB,GAAIK,EAAe,SAAW,CAAA,CAAC,EAEjC,QAAS,CACP,GAAGL,EAAmB,QACtB,GAAIK,EAAe,SAAW,CAAA,EAC9B,WAAY,CACV,GAAKL,EAAmB,QAAgC,YACtD,CAAA,EACF,GAAIK,EAAe,YAAc,CAAA,CAAC,CACpC,CACF,EAGIe,EAAWR,EAAM,OAAuB,IAAI,EAClDA,EAAM,oBACJV,EACA,IAAMkB,EAAS,OAAA,EAGjB,MAAMC,EAAeC,EAAAA,UAAUF,EAAU,CACvC,KAAMZ,EACN,OAAQD,CAAA,CACT,EACKgB,EAAW,CAACjB,GAAUe,EAE5B,OACEL,EAAAA,IAACQ,EAAAA,OAAO,KAAP,CACC,IAAKJ,EACL,QAAQ,SACR,QAASG,EAAW,UAAY,SAChC,SAAUL,EACT,GAAIR,EAEJ,SAAAC,EAAM,IACL,CAACc,EAAMC,IACLD,GACEE,EAAAA,KAACf,EAAM,SAAN,CACC,SAAA,CAAAI,EAAAA,IAACQ,EAAAA,OAAO,KAAP,CAEC,SAAUL,EACV,MAAO,CACL,QAAS,eACT,WACEf,IAAS,QACL,OACA,MAAM,QAAQD,CAAI,EAChB,SACA,EAGT,SAAAsB,CAAA,EAZIC,CAAA,EAcNtB,IAAS,SAAW,GAAA,CAAA,EAhBFsB,CAiBrB,CAAA,CAEN,CAAA,CAGN"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),g=require("react"),c=require("motion/react"),x=require("@dsui/ui/index");function y(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const a=y(g);function j({ref:e,words:t,className:n,filter:r=!0,duration:i=.5,staggerDelay:l=.2,...m}){const u=a.useRef(null);a.useImperativeHandle(e,()=>u.current);const[o,f]=c.useAnimate(),d=a.useMemo(()=>t.split(" "),[t]);return a.useEffect(()=>{o.current&&f("span",{opacity:1,filter:r?"blur(0px)":"none"},{duration:i,delay:c.stagger(l)})},[f,i,r,o,l]),s.jsx("div",{ref:u,className:x.cn("font-bold",n),"data-slot":"text-generate-effect",...m,children:s.jsx(c.motion.div,{ref:o,children:d.map((p,b)=>s.jsxs(c.motion.span,{className:"opacity-0 will-change-transform will-change-opacity will-change-filter",style:{filter:r?"blur(10px)":"none"},children:[p," "]},`${p}-${b}`))})})}exports.TextGenerateEffect=j;
|
|
2
|
+
//# sourceMappingURL=TextGenerateEffect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextGenerateEffect.cjs","sources":["../../../../src/lib/TextAnimation/TextGenerateEffect.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { motion, stagger, useAnimate } from \"motion/react\";\nimport { cn } from \"@dsui/ui/index\";\n\ntype TextGenerateEffectProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n words: string;\n filter?: boolean;\n duration?: number;\n staggerDelay?: number;\n};\n\nfunction TextGenerateEffect({\n ref,\n words,\n className,\n filter = true,\n duration = 0.5,\n staggerDelay = 0.2,\n ...props\n}: TextGenerateEffectProps) {\n const localRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(\n ref as any,\n () => localRef.current as HTMLDivElement,\n );\n\n const [scope, animate] = useAnimate();\n const wordsArray = React.useMemo(() => words.split(\" \"), [words]);\n\n React.useEffect(() => {\n if (scope.current) {\n animate(\n \"span\",\n {\n opacity: 1,\n filter: filter ? \"blur(0px)\" : \"none\",\n },\n {\n duration: duration,\n delay: stagger(staggerDelay),\n },\n );\n }\n }, [animate, duration, filter, scope, staggerDelay]);\n\n return (\n <div\n ref={localRef}\n className={cn(\"font-bold\", className)}\n data-slot=\"text-generate-effect\"\n {...(props as any)}\n >\n <motion.div ref={scope}>\n {wordsArray.map((word, idx) => (\n <motion.span\n key={`${word}-${idx}`}\n className=\"opacity-0 will-change-transform will-change-opacity will-change-filter\"\n style={{\n filter: filter ? \"blur(10px)\" : \"none\",\n }}\n >\n {word}{\" \"}\n </motion.span>\n ))}\n </motion.div>\n </div>\n );\n}\n\nexport { TextGenerateEffect, type TextGenerateEffectProps };\n"],"names":["TextGenerateEffect","ref","words","className","filter","duration","staggerDelay","props","localRef","React","scope","animate","useAnimate","wordsArray","stagger","jsx","cn","motion","word","idx","jsxs"],"mappings":"wdAYA,SAASA,EAAmB,CAC1B,IAAAC,EACA,MAAAC,EACA,UAAAC,EACA,OAAAC,EAAS,GACT,SAAAC,EAAW,GACX,aAAAC,EAAe,GACf,GAAGC,CACL,EAA4B,CAC1B,MAAMC,EAAWC,EAAM,OAAuB,IAAI,EAClDA,EAAM,oBACJR,EACA,IAAMO,EAAS,OAAA,EAGjB,KAAM,CAACE,EAAOC,CAAO,EAAIC,aAAA,EACnBC,EAAaJ,EAAM,QAAQ,IAAMP,EAAM,MAAM,GAAG,EAAG,CAACA,CAAK,CAAC,EAEhEO,OAAAA,EAAM,UAAU,IAAM,CAChBC,EAAM,SACRC,EACE,OACA,CACE,QAAS,EACT,OAAQP,EAAS,YAAc,MAAA,EAEjC,CACE,SAAAC,EACA,MAAOS,EAAAA,QAAQR,CAAY,CAAA,CAC7B,CAGN,EAAG,CAACK,EAASN,EAAUD,EAAQM,EAAOJ,CAAY,CAAC,EAGjDS,EAAAA,IAAC,MAAA,CACC,IAAKP,EACL,UAAWQ,EAAAA,GAAG,YAAab,CAAS,EACpC,YAAU,uBACT,GAAII,EAEL,SAAAQ,EAAAA,IAACE,EAAAA,OAAO,IAAP,CAAW,IAAKP,EACd,SAAAG,EAAW,IAAI,CAACK,EAAMC,IACrBC,EAAAA,KAACH,EAAAA,OAAO,KAAP,CAEC,UAAU,yEACV,MAAO,CACL,OAAQb,EAAS,aAAe,MAAA,EAGjC,SAAA,CAAAc,EAAM,GAAA,CAAA,EANF,GAAGA,CAAI,IAAIC,CAAG,EAAA,CAQtB,CAAA,CACH,CAAA,CAAA,CAGN"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),l=require("motion/react"),m=({text:r,duration:c})=>{const n=o.useRef(null),[s,d]=o.useState({x:0,y:0}),[a,i]=o.useState(!1),[x,f]=o.useState({cx:"50%",cy:"50%"});return o.useEffect(()=>{if(n.current&&s.x!==null&&s.y!==null){const t=n.current.getBoundingClientRect(),h=(s.x-t.left)/t.width*100,u=(s.y-t.top)/t.height*100;f({cx:`${h}%`,cy:`${u}%`})}},[s]),e.jsxs("svg",{ref:n,width:"100%",height:"100%",viewBox:"0 0 300 100",xmlns:"http://www.w3.org/2000/svg",onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),onMouseMove:t=>d({x:t.clientX,y:t.clientY}),className:"select-none",children:[e.jsxs("defs",{children:[e.jsx("linearGradient",{id:"textGradient",gradientUnits:"userSpaceOnUse",cx:"50%",cy:"50%",r:"25%",children:a&&e.jsxs(e.Fragment,{children:[e.jsx("stop",{offset:"0%",stopColor:"#eab308"}),e.jsx("stop",{offset:"25%",stopColor:"#ef4444"}),e.jsx("stop",{offset:"50%",stopColor:"#3b82f6"}),e.jsx("stop",{offset:"75%",stopColor:"#06b6d4"}),e.jsx("stop",{offset:"100%",stopColor:"#8b5cf6"})]})}),e.jsxs(l.motion.radialGradient,{id:"revealMask",gradientUnits:"userSpaceOnUse",r:"20%",initial:{cx:"50%",cy:"50%"},animate:x,transition:{duration:c??0,ease:"easeOut"},children:[e.jsx("stop",{offset:"0%",stopColor:"white"}),e.jsx("stop",{offset:"100%",stopColor:"black"})]}),e.jsx("mask",{id:"textMask",children:e.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#revealMask)"})})]}),e.jsx("text",{x:"50%",y:"50%",textAnchor:"middle",dominantBaseline:"middle",strokeWidth:"0.3",className:`fill-transparent font-[helvetica] text-7xl font-bold ${a?"stroke-transparent":"stroke-gray-400`"}`,children:r}),e.jsx(l.motion.text,{x:"50%",y:"50%",textAnchor:"middle",dominantBaseline:"middle",strokeWidth:"0.3",className:`fill-transparent font-[helvetica] text-7xl font-bold ${a?"stroke-transparent":"stroke-gray-400"}`,initial:{strokeDashoffset:1e3,strokeDasharray:1e3},animate:{strokeDashoffset:0,strokeDasharray:1e3},transition:{duration:4,ease:"easeInOut"},children:r}),e.jsx("text",{x:"50%",y:"50%",textAnchor:"middle",dominantBaseline:"middle",stroke:"url(#textGradient)",strokeWidth:"0.3",mask:"url(#textMask)",className:"fill-transparent font-[helvetica] text-7xl font-bold",children:r})]})};exports.TextHoverEffect=m;
|
|
2
|
+
//# sourceMappingURL=TextHoverEffect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextHoverEffect.cjs","sources":["../../../../src/lib/TextAnimation/TextHoverEffect.tsx"],"sourcesContent":["\"use client\";\nimport React, { useRef, useEffect, useState } from \"react\";\nimport { motion } from \"motion/react\";\n\nexport const TextHoverEffect = ({\n text,\n duration,\n}: {\n text: string;\n duration?: number;\n automatic?: boolean;\n}) => {\n const svgRef = useRef<SVGSVGElement>(null);\n const [cursor, setCursor] = useState({ x: 0, y: 0 });\n const [hovered, setHovered] = useState(false);\n const [maskPosition, setMaskPosition] = useState({ cx: \"50%\", cy: \"50%\" });\n\n useEffect(() => {\n if (svgRef.current && cursor.x !== null && cursor.y !== null) {\n const svgRect = svgRef.current.getBoundingClientRect();\n const cxPercentage = ((cursor.x - svgRect.left) / svgRect.width) * 100;\n const cyPercentage = ((cursor.y - svgRect.top) / svgRect.height) * 100;\n setMaskPosition({\n cx: `${cxPercentage}%`,\n cy: `${cyPercentage}%`,\n });\n }\n }, [cursor]);\n\n return (\n <svg\n ref={svgRef}\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 300 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onMouseMove={(e) => setCursor({ x: e.clientX, y: e.clientY })}\n className=\"select-none\"\n >\n <defs>\n <linearGradient\n id=\"textGradient\"\n gradientUnits=\"userSpaceOnUse\"\n cx=\"50%\"\n cy=\"50%\"\n r=\"25%\"\n >\n {hovered && (\n <>\n <stop offset=\"0%\" stopColor=\"#eab308\" />\n <stop offset=\"25%\" stopColor=\"#ef4444\" />\n <stop offset=\"50%\" stopColor=\"#3b82f6\" />\n <stop offset=\"75%\" stopColor=\"#06b6d4\" />\n <stop offset=\"100%\" stopColor=\"#8b5cf6\" />\n </>\n )}\n </linearGradient>\n <motion.radialGradient\n id=\"revealMask\"\n gradientUnits=\"userSpaceOnUse\"\n r=\"20%\"\n initial={{ cx: \"50%\", cy: \"50%\" }}\n animate={maskPosition}\n transition={{ duration: duration ?? 0, ease: \"easeOut\" }}\n >\n <stop offset=\"0%\" stopColor=\"white\" />\n <stop offset=\"100%\" stopColor=\"black\" />\n </motion.radialGradient>\n <mask id=\"textMask\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"url(#revealMask)\"\n />\n </mask>\n </defs>\n <text\n x=\"50%\"\n y=\"50%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n strokeWidth=\"0.3\"\n className={`fill-transparent font-[helvetica] text-7xl font-bold ${hovered ? \"stroke-transparent\" : \"stroke-gray-400`\"}`}\n >\n {text}\n </text>\n <motion.text\n x=\"50%\"\n y=\"50%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n strokeWidth=\"0.3\"\n className={`fill-transparent font-[helvetica] text-7xl font-bold ${hovered ? \"stroke-transparent\" : \"stroke-gray-400\"}`}\n initial={{ strokeDashoffset: 1000, strokeDasharray: 1000 }}\n animate={{\n strokeDashoffset: 0,\n strokeDasharray: 1000,\n }}\n transition={{\n duration: 4,\n ease: \"easeInOut\",\n }}\n >\n {text}\n </motion.text>\n <text\n x=\"50%\"\n y=\"50%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n stroke=\"url(#textGradient)\"\n strokeWidth=\"0.3\"\n mask=\"url(#textMask)\"\n className=\"fill-transparent font-[helvetica] text-7xl font-bold\"\n >\n {text}\n </text>\n </svg>\n );\n};\n"],"names":["TextHoverEffect","text","duration","svgRef","useRef","cursor","setCursor","useState","hovered","setHovered","maskPosition","setMaskPosition","useEffect","svgRect","cxPercentage","cyPercentage","jsxs","e","jsx","Fragment","motion"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("react/jsx-runtime"),s=require("react"),I=({text:w="Compressa",fontFamily:g="Compressa VF",fontUrl:L="https://res.cloudinary.com/dr6lvwubh/raw/upload/v1529908256/CompressaPRO-GX.woff2",width:v=!0,weight:y=!0,italic:p=!0,alpha:R=!1,flex:z=!0,stroke:F=!1,scale:$=!1,textColor:M="#FFFFFF",strokeColor:q="#FF0000",strokeWidth:B=2,className:A="",minFontSize:E=24})=>{const l=s.useRef(null),u=s.useRef(null),S=s.useRef([]),o=s.useRef({x:0,y:0}),i=s.useRef({x:0,y:0}),[Y,H]=s.useState(E),[N,b]=s.useState(1),[O,C]=s.useState(1),m=w.split(""),P=(t,n)=>{const e=n.x-t.x,r=n.y-t.y;return Math.sqrt(e*e+r*r)};s.useEffect(()=>{const t=e=>{i.current.x=e.clientX,i.current.y=e.clientY},n=e=>{const r=e.touches[0];i.current.x=r.clientX,i.current.y=r.clientY};if(window.addEventListener("mousemove",t),window.addEventListener("touchmove",n,{passive:!1}),l.current){const{left:e,top:r,width:c,height:a}=l.current.getBoundingClientRect();o.current.x=e+c/2,o.current.y=r+a/2,i.current.x=o.current.x,i.current.y=o.current.y}return()=>{window.removeEventListener("mousemove",t),window.removeEventListener("touchmove",n)}},[]);const x=()=>{if(!l.current||!u.current)return;const{width:t,height:n}=l.current.getBoundingClientRect();let e=t/(m.length/2);e=Math.max(e,E),H(e),b(1),C(1),requestAnimationFrame(()=>{if(!u.current)return;const r=u.current.getBoundingClientRect();if($&&r.height>0){const c=n/r.height;b(c),C(c)}})};return s.useEffect(()=>(x(),window.addEventListener("resize",x),()=>window.removeEventListener("resize",x)),[$,w]),s.useEffect(()=>{let t;const n=()=>{if(o.current.x+=(i.current.x-o.current.x)/15,o.current.y+=(i.current.y-o.current.y)/15,u.current){const r=u.current.getBoundingClientRect().width/2;S.current.forEach(c=>{if(!c)return;const a=c.getBoundingClientRect(),T={x:a.x+a.width/2,y:a.y+a.height/2},f=P(o.current,T),d=(D,j,k)=>{const G=k-Math.abs(k*D/r);return Math.max(j,G+j)},X=v?Math.floor(d(f,5,200)):100,V=y?Math.floor(d(f,100,900)):400,W=p?d(f,0,1).toFixed(2):"0",_=R?d(f,0,1).toFixed(2):"1";c.style.opacity=_,c.style.fontVariationSettings=`'wght' ${V}, 'wdth' ${X}, 'ital' ${W}`})}t=requestAnimationFrame(n)};return n(),()=>cancelAnimationFrame(t)},[v,y,p,R,m.length]),h.jsxs("div",{ref:l,className:"relative w-full h-full overflow-hidden bg-transparent",children:[h.jsx("style",{children:`
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: '${g}';
|
|
4
|
+
src: url('${L}');
|
|
5
|
+
font-style: normal;
|
|
6
|
+
}
|
|
7
|
+
.stroke span {
|
|
8
|
+
position: relative;
|
|
9
|
+
color: ${M};
|
|
10
|
+
}
|
|
11
|
+
.stroke span::after {
|
|
12
|
+
content: attr(data-char);
|
|
13
|
+
position: absolute;
|
|
14
|
+
left: 0;
|
|
15
|
+
top: 0;
|
|
16
|
+
color: transparent;
|
|
17
|
+
z-index: -1;
|
|
18
|
+
-webkit-text-stroke-width: ${B}px;
|
|
19
|
+
-webkit-text-stroke-color: ${q};
|
|
20
|
+
}
|
|
21
|
+
`}),h.jsx("h1",{ref:u,className:`text-pressure-title ${A} ${z?"flex justify-between":""} ${F?"stroke":""} uppercase text-center`,style:{fontFamily:g,fontSize:Y,lineHeight:O,transform:`scale(1, ${N})`,transformOrigin:"center top",margin:0,fontWeight:100,color:F?void 0:M},children:m.map((t,n)=>h.jsx("span",{ref:e=>{S.current[n]=e},"data-char":t,className:"inline-block",children:t},n))})]})};exports.default=I;
|
|
22
|
+
//# sourceMappingURL=TextPressureEffect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextPressureEffect.cjs","sources":["../../../../src/lib/TextAnimation/TextPressureEffect.tsx"],"sourcesContent":["// Component ported from https://codepen.io/JuanFuentes/full/rgXKGQ\nimport { useEffect, useRef, useState } from \"react\";\ninterface TextPressureProps {\n text?: string;\n fontFamily?: string;\n fontUrl?: string;\n width?: boolean;\n weight?: boolean;\n italic?: boolean;\n alpha?: boolean;\n flex?: boolean;\n stroke?: boolean;\n scale?: boolean;\n textColor?: string;\n strokeColor?: string;\n strokeWidth?: number;\n className?: string;\n minFontSize?: number;\n}\n\nconst TextPressure: React.FC<TextPressureProps> = ({\n text = \"Compressa\",\n fontFamily = \"Compressa VF\",\n fontUrl = \"https://res.cloudinary.com/dr6lvwubh/raw/upload/v1529908256/CompressaPRO-GX.woff2\",\n width = true,\n weight = true,\n italic = true,\n alpha = false,\n flex = true,\n stroke = false,\n scale = false,\n textColor = \"#FFFFFF\",\n strokeColor = \"#FF0000\",\n strokeWidth = 2,\n className = \"\",\n minFontSize = 24,\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const titleRef = useRef<HTMLHeadingElement | null>(null);\n const spansRef = useRef<(HTMLSpanElement | null)[]>([]);\n const mouseRef = useRef({ x: 0, y: 0 });\n const cursorRef = useRef({ x: 0, y: 0 });\n const [fontSize, setFontSize] = useState(minFontSize);\n const [scaleY, setScaleY] = useState(1);\n const [lineHeight, setLineHeight] = useState(1);\n const chars = text.split(\"\");\n const dist = (a: { x: number; y: number }, b: { x: number; y: number }) => {\n const dx = b.x - a.x;\n const dy = b.y - a.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n cursorRef.current.x = e.clientX;\n cursorRef.current.y = e.clientY;\n };\n const handleTouchMove = (e: TouchEvent) => {\n const t = e.touches[0];\n cursorRef.current.x = t.clientX;\n cursorRef.current.y = t.clientY;\n };\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n if (containerRef.current) {\n const { left, top, width, height } =\n containerRef.current.getBoundingClientRect();\n mouseRef.current.x = left + width / 2;\n mouseRef.current.y = top + height / 2;\n cursorRef.current.x = mouseRef.current.x;\n cursorRef.current.y = mouseRef.current.y;\n }\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n };\n }, []);\n\n const setSize = () => {\n if (!containerRef.current || !titleRef.current) return;\n const { width: containerW, height: containerH } =\n containerRef.current.getBoundingClientRect();\n let newFontSize = containerW / (chars.length / 2);\n newFontSize = Math.max(newFontSize, minFontSize);\n setFontSize(newFontSize);\n setScaleY(1);\n setLineHeight(1);\n requestAnimationFrame(() => {\n if (!titleRef.current) return;\n const textRect = titleRef.current.getBoundingClientRect();\n if (scale && textRect.height > 0) {\n const yRatio = containerH / textRect.height;\n setScaleY(yRatio);\n setLineHeight(yRatio);\n }\n });\n };\n\n useEffect(() => {\n setSize();\n window.addEventListener(\"resize\", setSize);\n return () => window.removeEventListener(\"resize\", setSize);\n }, [scale, text]);\n\n useEffect(() => {\n let rafId: number;\n const animate = () => {\n mouseRef.current.x += (cursorRef.current.x - mouseRef.current.x) / 15;\n mouseRef.current.y += (cursorRef.current.y - mouseRef.current.y) / 15;\n if (titleRef.current) {\n const titleRect = titleRef.current.getBoundingClientRect();\n const maxDist = titleRect.width / 2;\n spansRef.current.forEach((span) => {\n if (!span) return;\n const rect = span.getBoundingClientRect();\n const charCenter = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n const d = dist(mouseRef.current, charCenter);\n const getAttr = (\n distance: number,\n minVal: number,\n maxVal: number,\n ) => {\n const val = maxVal - Math.abs((maxVal * distance) / maxDist);\n return Math.max(minVal, val + minVal);\n };\n const wdth = width ? Math.floor(getAttr(d, 5, 200)) : 100;\n const wght = weight ? Math.floor(getAttr(d, 100, 900)) : 400;\n const italVal = italic ? getAttr(d, 0, 1).toFixed(2) : \"0\";\n const alphaVal = alpha ? getAttr(d, 0, 1).toFixed(2) : \"1\";\n span.style.opacity = alphaVal;\n span.style.fontVariationSettings = `'wght' ${wght}, 'wdth' ${wdth}, 'ital' ${italVal}`;\n });\n }\n rafId = requestAnimationFrame(animate);\n };\n animate();\n return () => cancelAnimationFrame(rafId);\n }, [width, weight, italic, alpha, chars.length]);\n\n return (\n <div\n ref={containerRef}\n className=\"relative w-full h-full overflow-hidden bg-transparent\"\n >\n <style>{`\n @font-face {\n font-family: '${fontFamily}';\n src: url('${fontUrl}');\n font-style: normal;\n }\n .stroke span {\n position: relative;\n color: ${textColor};\n }\n .stroke span::after {\n content: attr(data-char);\n position: absolute;\n left: 0;\n top: 0;\n color: transparent;\n z-index: -1;\n -webkit-text-stroke-width: ${strokeWidth}px;\n -webkit-text-stroke-color: ${strokeColor};\n }\n `}</style>\n <h1\n ref={titleRef}\n className={`text-pressure-title ${className} ${\n flex ? \"flex justify-between\" : \"\"\n } ${stroke ? \"stroke\" : \"\"} uppercase text-center`}\n style={{\n fontFamily,\n fontSize: fontSize,\n lineHeight,\n transform: `scale(1, ${scaleY})`,\n transformOrigin: \"center top\",\n margin: 0,\n fontWeight: 100,\n color: stroke ? undefined : textColor,\n }}\n >\n {chars.map((char, i) => (\n <span\n key={i}\n ref={(el) => {\n spansRef.current[i] = el;\n }}\n data-char={char}\n className=\"inline-block\"\n >\n {char}\n </span>\n ))}\n </h1>\n </div>\n );\n};\n\nexport default TextPressure;\n"],"names":["TextPressure","text","fontFamily","fontUrl","width","weight","italic","alpha","flex","stroke","scale","textColor","strokeColor","strokeWidth","className","minFontSize","containerRef","useRef","titleRef","spansRef","mouseRef","cursorRef","fontSize","setFontSize","useState","scaleY","setScaleY","lineHeight","setLineHeight","chars","dist","a","b","dx","dy","useEffect","handleMouseMove","handleTouchMove","t","left","top","height","setSize","containerW","containerH","newFontSize","textRect","yRatio","rafId","animate","maxDist","span","rect","charCenter","d","getAttr","distance","minVal","maxVal","val","wdth","wght","italVal","alphaVal","jsxs","jsx","char","i","el"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const _=require("react/jsx-runtime"),e=require("react"),H=require("gsap"),L=({text:o,as:O="div",typingSpeed:l=50,initialDelay:p=0,pauseDuration:T=2e3,deletingSpeed:b=30,loop:j=!0,className:P="",showCursor:d=!0,hideCursorWhileTyping:z=!1,cursorCharacter:h="|",cursorClassName:E="",cursorBlinkDuration:$=.5,textColors:x=[],variableSpeed:c,onSentenceComplete:y,startOnVisible:I=!1,reverseMode:A=!1,...C})=>{const[f,k]=e.useState(""),[i,q]=e.useState(0),[a,w]=e.useState(!1),[s,F]=e.useState(0),[M,G]=e.useState(!I),g=e.useRef(null),R=e.useRef(null),n=e.useMemo(()=>Array.isArray(o)?o:[o],[o]),v=e.useCallback(()=>{if(!c)return l;const{min:t,max:u}=c;return Math.random()*(u-t)+t},[c,l]),J=()=>x.length===0?"currentColor":x[s%x.length];e.useEffect(()=>{if(!I||!R.current)return;const t=new IntersectionObserver(u=>{u.forEach(m=>{m.isIntersecting&&G(!0)})},{threshold:.1});return t.observe(R.current),()=>t.disconnect()},[I]),e.useEffect(()=>{d&&g.current&&(H.gsap.set(g.current,{opacity:1}),H.gsap.to(g.current,{opacity:0,duration:$,repeat:-1,yoyo:!0,ease:"power2.inOut"}))},[d,$]),e.useEffect(()=>{if(!M)return;let t;const u=n[s],m=A?u.split("").reverse().join(""):u,N=()=>{if(a)if(f===""){if(w(!1),s===n.length-1&&!j)return;y&&y(n[s],s),F(r=>(r+1)%n.length),q(0),t=setTimeout(()=>{},T)}else t=setTimeout(()=>{k(r=>r.slice(0,-1))},b);else i<m.length?t=setTimeout(()=>{k(r=>r+m[i]),q(r=>r+1)},c?v():l):n.length>1&&(t=setTimeout(()=>{w(!0)},T))};return i===0&&!a&&f===""?t=setTimeout(N,p):N(),()=>clearTimeout(t)},[i,f,a,l,b,T,n,s,j,p,M,A,c,y,v]);const K=z&&(i<n[s].length||a);return e.createElement(O,{ref:R,className:`inline-block whitespace-pre-wrap tracking-tight ${P}`,...C},_.jsx("span",{className:"inline",style:{color:J()},children:f}),d&&_.jsx("span",{ref:g,className:`inline-block opacity-100 ${K?"hidden":""} ${h==="|"?`h-5 w-[1px] translate-y-1 bg-foreground ${E}`:`ml-1 ${E}`}`,children:h==="|"?"":h}))};exports.default=L;
|
|
2
|
+
//# sourceMappingURL=TypingText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypingText.cjs","sources":["../../../../src/lib/TextAnimation/TypingText.tsx"],"sourcesContent":["\"use client\";\nimport {\n type ElementType,\n useEffect,\n useRef,\n useState,\n createElement,\n useMemo,\n useCallback,\n} from \"react\";\nimport { gsap } from \"gsap\";\n\ninterface TypingTextProps {\n className?: string;\n showCursor?: boolean;\n hideCursorWhileTyping?: boolean;\n cursorCharacter?: string | React.ReactNode;\n cursorBlinkDuration?: number;\n cursorClassName?: string;\n text: string | string[];\n as?: ElementType;\n typingSpeed?: number;\n initialDelay?: number;\n pauseDuration?: number;\n deletingSpeed?: number;\n loop?: boolean;\n textColors?: string[];\n variableSpeed?: { min: number; max: number };\n onSentenceComplete?: (sentence: string, index: number) => void;\n startOnVisible?: boolean;\n reverseMode?: boolean;\n}\n\nconst TypingText = ({\n text,\n as: Component = \"div\",\n typingSpeed = 50,\n initialDelay = 0,\n pauseDuration = 2000,\n deletingSpeed = 30,\n loop = true,\n className = \"\",\n showCursor = true,\n hideCursorWhileTyping = false,\n cursorCharacter = \"|\",\n cursorClassName = \"\",\n cursorBlinkDuration = 0.5,\n textColors = [],\n variableSpeed,\n onSentenceComplete,\n startOnVisible = false,\n reverseMode = false,\n ...props\n}: TypingTextProps & React.HTMLAttributes<HTMLElement>) => {\n const [displayedText, setDisplayedText] = useState(\"\");\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\n const [isDeleting, setIsDeleting] = useState(false);\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(!startOnVisible);\n const cursorRef = useRef<HTMLSpanElement>(null);\n const containerRef = useRef<HTMLElement>(null);\n const textArray = useMemo(\n () => (Array.isArray(text) ? text : [text]),\n [text],\n );\n\n const getRandomSpeed = useCallback(() => {\n if (!variableSpeed) return typingSpeed;\n const { min, max } = variableSpeed;\n return Math.random() * (max - min) + min;\n }, [variableSpeed, typingSpeed]);\n\n const getCurrentTextColor = () => {\n if (textColors.length === 0) return \"currentColor\";\n return textColors[currentTextIndex % textColors.length];\n };\n\n useEffect(() => {\n if (!startOnVisible || !containerRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n }\n });\n },\n { threshold: 0.1 },\n );\n observer.observe(containerRef.current);\n return () => observer.disconnect();\n }, [startOnVisible]);\n\n useEffect(() => {\n if (showCursor && cursorRef.current) {\n gsap.set(cursorRef.current, { opacity: 1 });\n gsap.to(cursorRef.current, {\n opacity: 0,\n duration: cursorBlinkDuration,\n repeat: -1,\n yoyo: true,\n ease: \"power2.inOut\",\n });\n }\n }, [showCursor, cursorBlinkDuration]);\n\n useEffect(() => {\n if (!isVisible) return;\n let timeout: NodeJS.Timeout;\n const currentText = textArray[currentTextIndex];\n const processedText = reverseMode\n ? currentText.split(\"\").reverse().join(\"\")\n : currentText;\n const executeTypingAnimation = () => {\n if (isDeleting) {\n if (displayedText === \"\") {\n setIsDeleting(false);\n if (currentTextIndex === textArray.length - 1 && !loop) {\n return;\n }\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n setCurrentTextIndex((prev) => (prev + 1) % textArray.length);\n setCurrentCharIndex(0);\n timeout = setTimeout(() => {}, pauseDuration);\n } else {\n timeout = setTimeout(() => {\n setDisplayedText((prev) => prev.slice(0, -1));\n }, deletingSpeed);\n }\n } else {\n if (currentCharIndex < processedText.length) {\n timeout = setTimeout(\n () => {\n setDisplayedText(\n (prev) => prev + processedText[currentCharIndex],\n );\n setCurrentCharIndex((prev) => prev + 1);\n },\n variableSpeed ? getRandomSpeed() : typingSpeed,\n );\n } else if (textArray.length > 1) {\n timeout = setTimeout(() => {\n setIsDeleting(true);\n }, pauseDuration);\n }\n }\n };\n if (currentCharIndex === 0 && !isDeleting && displayedText === \"\") {\n timeout = setTimeout(executeTypingAnimation, initialDelay);\n } else {\n executeTypingAnimation();\n }\n return () => clearTimeout(timeout);\n }, [\n currentCharIndex,\n displayedText,\n isDeleting,\n typingSpeed,\n deletingSpeed,\n pauseDuration,\n textArray,\n currentTextIndex,\n loop,\n initialDelay,\n isVisible,\n reverseMode,\n variableSpeed,\n onSentenceComplete,\n getRandomSpeed,\n ]);\n\n const shouldHideCursor =\n hideCursorWhileTyping &&\n (currentCharIndex < textArray[currentTextIndex].length || isDeleting);\n\n return createElement(\n Component,\n {\n ref: containerRef,\n className: `inline-block whitespace-pre-wrap tracking-tight ${className}`,\n ...props,\n },\n <span className=\"inline\" style={{ color: getCurrentTextColor() }}>\n {displayedText}\n </span>,\n showCursor && (\n <span\n ref={cursorRef}\n className={`inline-block opacity-100 ${shouldHideCursor ? \"hidden\" : \"\"} ${\n cursorCharacter === \"|\"\n ? `h-5 w-[1px] translate-y-1 bg-foreground ${cursorClassName}`\n : `ml-1 ${cursorClassName}`\n }`}\n >\n {cursorCharacter === \"|\" ? \"\" : cursorCharacter}\n </span>\n ),\n );\n};\n\nexport default TypingText;\n"],"names":["TypingText","text","Component","typingSpeed","initialDelay","pauseDuration","deletingSpeed","loop","className","showCursor","hideCursorWhileTyping","cursorCharacter","cursorClassName","cursorBlinkDuration","textColors","variableSpeed","onSentenceComplete","startOnVisible","reverseMode","props","displayedText","setDisplayedText","useState","currentCharIndex","setCurrentCharIndex","isDeleting","setIsDeleting","currentTextIndex","setCurrentTextIndex","isVisible","setIsVisible","cursorRef","useRef","containerRef","textArray","useMemo","getRandomSpeed","useCallback","min","max","getCurrentTextColor","useEffect","observer","entries","entry","gsap","timeout","currentText","processedText","executeTypingAnimation","prev","shouldHideCursor","createElement","jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),b=require("react"),u=require("motion/react");function j(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const a=j(b);function w({ref:e,inView:n=!1,inViewMargin:t="0px",inViewOnce:i=!0,spacing:p=5,text:o,transition:c={type:"spring",bounce:0,duration:2,delay:.5},...d}){const r=a.useRef(null);a.useImperativeHandle(e,()=>r.current);const f=u.useInView(r,{once:i,margin:t}),g=!n||f,m=a.useMemo(()=>o.split(" "),[o]);return l.jsx("span",{ref:r,"data-slot":"writing-text",...d,children:m.map((y,s)=>l.jsxs(u.motion.span,{className:"inline-block will-change-transform will-change-opacity",style:{marginRight:p},initial:{opacity:0,y:10},animate:g?{opacity:1,y:0}:void 0,transition:{...c,delay:s*(c?.delay??0)},children:[y," "]},s))})}exports.WritingText=w;
|
|
2
|
+
//# sourceMappingURL=WritingText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WritingText.cjs","sources":["../../../../src/lib/TextAnimation/WritingText.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n motion,\n useInView,\n type Transition,\n type UseInViewOptions,\n} from \"motion/react\";\n\ntype WritingTextProps = Omit<React.ComponentProps<\"span\">, \"children\"> & {\n transition?: Transition;\n inView?: boolean;\n inViewMargin?: UseInViewOptions[\"margin\"];\n inViewOnce?: boolean;\n spacing?: number | string;\n text: string;\n};\n\nfunction WritingText({\n ref,\n inView = false,\n inViewMargin = \"0px\",\n inViewOnce = true,\n spacing = 5,\n text,\n transition = { type: \"spring\", bounce: 0, duration: 2, delay: 0.5 },\n ...props\n}: WritingTextProps) {\n const localRef = React.useRef<HTMLSpanElement>(null);\n React.useImperativeHandle(\n ref as any,\n () => localRef.current as HTMLSpanElement,\n );\n\n const inViewResult = useInView(localRef, {\n once: inViewOnce,\n margin: inViewMargin,\n });\n const isInView = !inView || inViewResult;\n\n const words = React.useMemo(() => text.split(\" \"), [text]);\n\n return (\n <span ref={localRef} data-slot=\"writing-text\" {...(props as any)}>\n {words.map((word, index) => (\n <motion.span\n key={index}\n className=\"inline-block will-change-transform will-change-opacity\"\n style={{ marginRight: spacing }}\n initial={{ opacity: 0, y: 10 }}\n animate={isInView ? { opacity: 1, y: 0 } : undefined}\n transition={{\n ...transition,\n delay: index * (transition?.delay ?? 0),\n }}\n >\n {word}{\" \"}\n </motion.span>\n ))}\n </span>\n );\n}\n\nexport { WritingText, type WritingTextProps };\n"],"names":["WritingText","ref","inView","inViewMargin","inViewOnce","spacing","text","transition","props","localRef","React","inViewResult","useInView","isInView","words","jsx","word","index","jsxs","motion"],"mappings":"4bAmBA,SAASA,EAAY,CACnB,IAAAC,EACA,OAAAC,EAAS,GACT,aAAAC,EAAe,MACf,WAAAC,EAAa,GACb,QAAAC,EAAU,EACV,KAAAC,EACA,WAAAC,EAAa,CAAE,KAAM,SAAU,OAAQ,EAAG,SAAU,EAAG,MAAO,EAAA,EAC9D,GAAGC,CACL,EAAqB,CACnB,MAAMC,EAAWC,EAAM,OAAwB,IAAI,EACnDA,EAAM,oBACJT,EACA,IAAMQ,EAAS,OAAA,EAGjB,MAAME,EAAeC,EAAAA,UAAUH,EAAU,CACvC,KAAML,EACN,OAAQD,CAAA,CACT,EACKU,EAAW,CAACX,GAAUS,EAEtBG,EAAQJ,EAAM,QAAQ,IAAMJ,EAAK,MAAM,GAAG,EAAG,CAACA,CAAI,CAAC,EAEzD,OACES,EAAAA,IAAC,OAAA,CAAK,IAAKN,EAAU,YAAU,eAAgB,GAAID,EAChD,SAAAM,EAAM,IAAI,CAACE,EAAMC,IAChBC,EAAAA,KAACC,EAAAA,OAAO,KAAP,CAEC,UAAU,yDACV,MAAO,CAAE,YAAad,CAAA,EACtB,QAAS,CAAE,QAAS,EAAG,EAAG,EAAA,EAC1B,QAASQ,EAAW,CAAE,QAAS,EAAG,EAAG,GAAM,OAC3C,WAAY,CACV,GAAGN,EACH,MAAOU,GAASV,GAAY,OAAS,EAAA,EAGtC,SAAA,CAAAS,EAAM,GAAA,CAAA,EAVFC,CAAA,CAYR,EACH,CAEJ"}
|