@sth87/shadcn-design-system 0.0.35 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/README.md +20 -2
  2. package/dist/AI_CONTEXT.md +212 -214
  3. package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
  4. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
  6. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  7. package/dist/cjs/components/Badge/Badge.cjs +1 -1
  8. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  11. package/dist/cjs/components/Button/Button.cjs +1 -1
  12. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  13. package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
  14. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  15. package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
  16. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  17. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  19. package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
  20. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
  21. package/dist/cjs/components/Command/Command.cjs +1 -1
  22. package/dist/cjs/components/Command/Command.cjs.map +1 -1
  23. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
  24. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
  25. package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
  26. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
  27. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  28. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  29. package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
  30. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
  31. package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
  32. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
  34. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  35. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
  36. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  37. package/dist/cjs/components/FloatLabel.cjs +1 -1
  38. package/dist/cjs/components/FloatLabel.cjs.map +1 -1
  39. package/dist/cjs/components/Glass/Glass.cjs +1 -1
  40. package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
  41. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
  42. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
  43. package/dist/cjs/components/Input/Input.cjs +1 -1
  44. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  45. package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
  46. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
  47. package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
  48. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
  49. package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
  50. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
  51. package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
  52. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  53. package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
  54. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
  55. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  56. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  57. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  58. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  59. package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
  60. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
  61. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
  62. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  63. package/dist/cjs/components/Select/Select.cjs +1 -1
  64. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  65. package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
  66. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  67. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  68. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  69. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  70. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  71. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  72. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  73. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  74. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  75. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
  76. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  77. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
  78. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  79. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
  80. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  81. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  82. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  83. package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
  84. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
  85. package/dist/cjs/components/Table/data-table.cjs +1 -1
  86. package/dist/cjs/components/Table/data-table.cjs.map +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
  88. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  89. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  90. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  91. package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
  92. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  93. package/dist/cjs/components/TimeGridView.cjs +1 -1
  94. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  95. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  96. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  97. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  98. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  99. package/dist/cjs/components/Tour/Tour.cjs +1 -1
  100. package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
  101. package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
  102. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
  103. package/dist/cjs/components/Upload/Upload.cjs +3 -3
  104. package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
  105. package/dist/cjs/components/WheelColumn.cjs +1 -1
  106. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  107. package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
  108. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
  109. package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
  110. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
  111. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
  112. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
  113. package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
  114. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
  115. package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
  116. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
  117. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
  118. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
  119. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
  120. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
  121. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
  122. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
  123. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
  124. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
  125. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
  126. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
  127. package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
  128. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
  129. package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
  130. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
  131. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +1 -0
  132. package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
  133. package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
  134. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
  135. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
  136. package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
  137. package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
  138. package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
  139. package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
  140. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
  141. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
  142. package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
  143. package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
  144. package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
  145. package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
  146. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  147. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  148. package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
  149. package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
  150. package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
  151. package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
  152. package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
  153. package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
  154. package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
  155. package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
  156. package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
  157. package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
  158. package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
  159. package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
  160. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
  161. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
  162. package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
  163. package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
  164. package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
  165. package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
  166. package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
  167. package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
  168. package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
  169. package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
  170. package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
  171. package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
  172. package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
  173. package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
  174. package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
  175. package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
  176. package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
  177. package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
  178. package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
  179. package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
  180. package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
  181. package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
  182. package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
  183. package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
  184. package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
  185. package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
  186. package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
  187. package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
  188. package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
  189. package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
  190. package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
  191. package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
  192. package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
  193. package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
  194. package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
  195. package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
  196. package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
  197. package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
  198. package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
  199. package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
  200. package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
  201. package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
  202. package/dist/cjs/styles/index.css +1 -1
  203. package/dist/cjs/utils/animations.cjs +1 -1
  204. package/dist/cjs/utils/animations.cjs.map +1 -1
  205. package/dist/cjs/utils/css.cjs +1 -1
  206. package/dist/cjs/utils/css.cjs.map +1 -1
  207. package/dist/cjs/utils/parsers.cjs +1 -1
  208. package/dist/cjs/utils/parsers.cjs.map +1 -1
  209. package/dist/esm/components/Accordion/Accordion.js +60 -60
  210. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  211. package/dist/esm/components/Avatar/Avatar.js +40 -40
  212. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  213. package/dist/esm/components/Badge/Badge.js +1 -1
  214. package/dist/esm/components/Badge/Badge.js.map +1 -1
  215. package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
  216. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  217. package/dist/esm/components/Button/Button.js +9 -9
  218. package/dist/esm/components/Button/Button.js.map +1 -1
  219. package/dist/esm/components/Calendar/Calendar.js +4 -4
  220. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  221. package/dist/esm/components/Carousel/Carousel.js +165 -165
  222. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  223. package/dist/esm/components/Checkbox/Checkbox.js +26 -26
  224. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  225. package/dist/esm/components/Collapsible/Collapsible.js +43 -43
  226. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
  227. package/dist/esm/components/Command/Command.js +28 -28
  228. package/dist/esm/components/Command/Command.js.map +1 -1
  229. package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
  230. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
  231. package/dist/esm/components/Cropper/Cropper.js +132 -132
  232. package/dist/esm/components/Cropper/Cropper.js.map +1 -1
  233. package/dist/esm/components/DatePicker/DatePicker.js +75 -75
  234. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  235. package/dist/esm/components/DatePicker/RangePicker.js +136 -136
  236. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
  237. package/dist/esm/components/DatePicker/TimePicker.js +150 -150
  238. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
  239. package/dist/esm/components/Dialog/Dialog.js +114 -114
  240. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  241. package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
  242. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  243. package/dist/esm/components/FloatLabel.js +44 -44
  244. package/dist/esm/components/FloatLabel.js.map +1 -1
  245. package/dist/esm/components/Glass/Glass.js +15 -15
  246. package/dist/esm/components/Glass/Glass.js.map +1 -1
  247. package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
  248. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
  249. package/dist/esm/components/Input/Input.js +104 -104
  250. package/dist/esm/components/Input/Input.js.map +1 -1
  251. package/dist/esm/components/InputOTP/InputOTP.js +16 -16
  252. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
  253. package/dist/esm/components/Interactive/CursorFollow.js +49 -49
  254. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
  255. package/dist/esm/components/Marquee/Marquee.js +130 -130
  256. package/dist/esm/components/Marquee/Marquee.js.map +1 -1
  257. package/dist/esm/components/Pagination/Pagination.js +68 -68
  258. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  259. package/dist/esm/components/QrCode/QrCode.js +37 -37
  260. package/dist/esm/components/QrCode/QrCode.js.map +1 -1
  261. package/dist/esm/components/Radio/Radio.js +16 -16
  262. package/dist/esm/components/Radio/Radio.js.map +1 -1
  263. package/dist/esm/components/Rate/Rate.js +62 -62
  264. package/dist/esm/components/Rate/Rate.js.map +1 -1
  265. package/dist/esm/components/Resizable/Resizable.js +6 -6
  266. package/dist/esm/components/Resizable/Resizable.js.map +1 -1
  267. package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
  268. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  269. package/dist/esm/components/Select/Select.js +64 -64
  270. package/dist/esm/components/Select/Select.js.map +1 -1
  271. package/dist/esm/components/Sheet/Sheet.js +21 -21
  272. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  273. package/dist/esm/components/Slider/Slider.js +54 -54
  274. package/dist/esm/components/Slider/Slider.js.map +1 -1
  275. package/dist/esm/components/Stepper/Stepper.js +198 -198
  276. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  277. package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
  278. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  279. package/dist/esm/components/Switch/Switch.js +38 -38
  280. package/dist/esm/components/Switch/Switch.js.map +1 -1
  281. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
  282. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  283. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
  284. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  285. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
  286. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  287. package/dist/esm/components/Table/data-table-column-header.js +18 -18
  288. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  289. package/dist/esm/components/Table/data-table-pagination.js +21 -21
  290. package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
  291. package/dist/esm/components/Table/data-table.js +18 -18
  292. package/dist/esm/components/Table/data-table.js.map +1 -1
  293. package/dist/esm/components/Tabs/Tabs.js +242 -242
  294. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  295. package/dist/esm/components/Tabs/classes.js +51 -51
  296. package/dist/esm/components/Tabs/classes.js.map +1 -1
  297. package/dist/esm/components/Textarea/Textarea.js +49 -49
  298. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  299. package/dist/esm/components/TimeGridView.js +12 -12
  300. package/dist/esm/components/TimeGridView.js.map +1 -1
  301. package/dist/esm/components/Toast/Toast.js +45 -45
  302. package/dist/esm/components/Toast/Toast.js.map +1 -1
  303. package/dist/esm/components/Tooltip/Tooltip.js +19 -19
  304. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  305. package/dist/esm/components/Tour/Tour.js +11 -11
  306. package/dist/esm/components/Tour/Tour.js.map +1 -1
  307. package/dist/esm/components/Tour/TourWrapper.js +15 -15
  308. package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
  309. package/dist/esm/components/Upload/Upload.js +405 -405
  310. package/dist/esm/components/Upload/Upload.js.map +1 -1
  311. package/dist/esm/components/WheelColumn.js +47 -47
  312. package/dist/esm/components/WheelColumn.js.map +1 -1
  313. package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
  314. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
  315. package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
  316. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
  317. package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
  318. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
  319. package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
  320. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
  321. package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
  322. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
  323. package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
  324. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
  325. package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
  326. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
  327. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
  328. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
  329. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
  330. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
  331. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
  332. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
  333. package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
  334. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
  335. package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
  336. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
  337. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +1 -0
  338. package/dist/esm/packages/ui/src/components/accordion.js +31 -31
  339. package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
  340. package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
  341. package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
  342. package/dist/esm/packages/ui/src/components/avatar.js +20 -20
  343. package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
  344. package/dist/esm/packages/ui/src/components/badge.js +53 -53
  345. package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
  346. package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
  347. package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
  348. package/dist/esm/packages/ui/src/components/button-group.js +31 -31
  349. package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
  350. package/dist/esm/packages/ui/src/components/button.js +90 -90
  351. package/dist/esm/packages/ui/src/components/button.js.map +1 -1
  352. package/dist/esm/packages/ui/src/components/calendar.js +94 -94
  353. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  354. package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
  355. package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
  356. package/dist/esm/packages/ui/src/components/combobox.js +64 -64
  357. package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
  358. package/dist/esm/packages/ui/src/components/command.js +77 -77
  359. package/dist/esm/packages/ui/src/components/command.js.map +1 -1
  360. package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
  361. package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
  362. package/dist/esm/packages/ui/src/components/dialog.js +54 -54
  363. package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
  364. package/dist/esm/packages/ui/src/components/drawer.js +39 -39
  365. package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
  366. package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
  367. package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
  368. package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
  369. package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
  370. package/dist/esm/packages/ui/src/components/input.js +19 -19
  371. package/dist/esm/packages/ui/src/components/input.js.map +1 -1
  372. package/dist/esm/packages/ui/src/components/label.js +9 -9
  373. package/dist/esm/packages/ui/src/components/label.js.map +1 -1
  374. package/dist/esm/packages/ui/src/components/pagination.js +26 -26
  375. package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
  376. package/dist/esm/packages/ui/src/components/popover.js +13 -13
  377. package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
  378. package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
  379. package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
  380. package/dist/esm/packages/ui/src/components/resizable.js +18 -18
  381. package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
  382. package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
  383. package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
  384. package/dist/esm/packages/ui/src/components/select.js +119 -119
  385. package/dist/esm/packages/ui/src/components/select.js.map +1 -1
  386. package/dist/esm/packages/ui/src/components/separator.js +86 -86
  387. package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
  388. package/dist/esm/packages/ui/src/components/sheet.js +50 -50
  389. package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
  390. package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
  391. package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
  392. package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
  393. package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
  394. package/dist/esm/packages/ui/src/components/switch.js +57 -57
  395. package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
  396. package/dist/esm/packages/ui/src/components/table.js +17 -17
  397. package/dist/esm/packages/ui/src/components/table.js.map +1 -1
  398. package/dist/esm/packages/ui/src/components/tabs.js +33 -33
  399. package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
  400. package/dist/esm/packages/ui/src/components/textarea.js +17 -17
  401. package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
  402. package/dist/esm/packages/ui/src/components/toggle.js +36 -36
  403. package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
  404. package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
  405. package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
  406. package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
  407. package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
  408. package/dist/esm/styles/index.css +1 -1
  409. package/dist/esm/utils/animations.js +55 -55
  410. package/dist/esm/utils/animations.js.map +1 -1
  411. package/dist/esm/utils/css.js +7 -7
  412. package/dist/esm/utils/css.js.map +1 -1
  413. package/dist/esm/utils/parsers.js +1 -1
  414. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
  415. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
  416. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
  417. package/package.json +1 -1
  418. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +0 -1
  419. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +0 -1
  420. /package/dist/cjs/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.cjs +0 -0
  421. /package/dist/esm/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.js +0 -0
@@ -7,7 +7,7 @@ import "../../packages/ui/src/components/button-group.js";
7
7
  import "../../packages/ui/src/components/input.js";
8
8
  import "../../packages/ui/src/components/textarea.js";
9
9
  import "@radix-ui/react-label";
10
- import { cn as v } from "../../packages/ui/src/lib/utils.js";
10
+ import { cn as d } from "../../packages/ui/src/lib/utils.js";
11
11
  import "../../packages/ui/src/components/select.js";
12
12
  import "../../packages/ui/src/components/combobox.js";
13
13
  import "@radix-ui/react-tooltip";
@@ -40,23 +40,23 @@ function V({
40
40
  wave: i = !1,
41
41
  className: l,
42
42
  color: a = "var(--color-neutral-500)",
43
- shimmeringColor: n = "var(--color-neutral-300)",
44
- ...c
43
+ shimmeringColor: s = "var(--color-neutral-300)",
44
+ ...n
45
45
  }) {
46
46
  return /* @__PURE__ */ p(
47
47
  m.span,
48
48
  {
49
- className: v("relative inline-block [perspective:500px]", l),
49
+ className: d("ds:relative ds:inline-block ds:[perspective:500px]", l),
50
50
  style: {
51
- "--shimmering-color": n,
51
+ "--shimmering-color": s,
52
52
  "--color": a,
53
53
  color: "var(--color)"
54
54
  },
55
- ...c,
56
- children: r?.split("")?.map((s, t) => /* @__PURE__ */ p(
55
+ ...n,
56
+ children: r?.split("")?.map((c, t) => /* @__PURE__ */ p(
57
57
  m.span,
58
58
  {
59
- className: "inline-block whitespace-pre [transform-style:preserve-3d]",
59
+ className: "ds:inline-block ds:whitespace-pre ds:[transform-style:preserve-3d]",
60
60
  initial: {
61
61
  ...i ? {
62
62
  scale: 1,
@@ -82,7 +82,7 @@ function V({
82
82
  ease: "easeInOut",
83
83
  ...e
84
84
  },
85
- children: s
85
+ children: c
86
86
  },
87
87
  t
88
88
  ))
@@ -1 +1 @@
1
- {"version":3,"file":"ShimmeringText.js","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAASA,EAAe;AAAA,EACtB,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,iBAAAC,IAAkB;AAAA,EAClB,GAAGC;AACL,GAAwB;AACtB,SACE,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACC,WAAWC,EAAG,6CAA6CN,CAAS;AAAA,MACpE,OACE;AAAA,QACE,sBAAsBE;AAAA,QACtB,WAAWD;AAAA,QACX,OAAO;AAAA,MAAA;AAAA,MAGV,GAAIE;AAAA,MAEJ,aAAM,MAAM,EAAE,GAAG,IAAI,CAACI,GAAMC,MAC3B,gBAAAJ;AAAA,QAACC,EAAO;AAAA,QAAP;AAAA,UAEC,WAAU;AAAA,UACV,SAAS;AAAA,YACP,GAAIN,IACA;AAAA,cACE,OAAO;AAAA,cACP,SAAS;AAAA,YAAA,IAEX,CAAA;AAAA,YACJ,OAAO;AAAA,UAAA;AAAA,UAET,SAAS;AAAA,YACP,GAAIA,IACA;AAAA,cACE,GAAG,CAAC,GAAG,GAAG,CAAC;AAAA,cACX,GAAG,CAAC,GAAG,IAAI,CAAC;AAAA,cACZ,OAAO,CAAC,GAAG,KAAK,CAAC;AAAA,cACjB,SAAS,CAAC,GAAG,IAAI,CAAC;AAAA,YAAA,IAEpB,CAAA;AAAA,YACJ,OAAO,CAAC,gBAAgB,2BAA2B,cAAc;AAAA,UAAA;AAAA,UAEnE,YAAY;AAAA,YACV,UAAAF;AAAA,YACA,QAAQ;AAAA,YACR,YAAY;AAAA,YACZ,aAAaD,EAAK,SAAS;AAAA,YAC3B,OAAQY,IAAIX,IAAYD,EAAK;AAAA,YAC7B,MAAM;AAAA,YACN,GAAGE;AAAA,UAAA;AAAA,UAGJ,UAAAS;AAAA,QAAA;AAAA,QAhCIC;AAAA,MAAA,CAkCR;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"ShimmeringText.js","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(\"ds:relative ds:inline-block ds:[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=\"ds:inline-block ds:whitespace-pre ds:[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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAASA,EAAe;AAAA,EACtB,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,iBAAAC,IAAkB;AAAA,EAClB,GAAGC;AACL,GAAwB;AACtB,SACE,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACC,WAAWC,EAAG,sDAAsDN,CAAS;AAAA,MAC7E,OACE;AAAA,QACE,sBAAsBE;AAAA,QACtB,WAAWD;AAAA,QACX,OAAO;AAAA,MAAA;AAAA,MAGV,GAAIE;AAAA,MAEJ,aAAM,MAAM,EAAE,GAAG,IAAI,CAACI,GAAMC,MAC3B,gBAAAJ;AAAA,QAACC,EAAO;AAAA,QAAP;AAAA,UAEC,WAAU;AAAA,UACV,SAAS;AAAA,YACP,GAAIN,IACA;AAAA,cACE,OAAO;AAAA,cACP,SAAS;AAAA,YAAA,IAEX,CAAA;AAAA,YACJ,OAAO;AAAA,UAAA;AAAA,UAET,SAAS;AAAA,YACP,GAAIA,IACA;AAAA,cACE,GAAG,CAAC,GAAG,GAAG,CAAC;AAAA,cACX,GAAG,CAAC,GAAG,IAAI,CAAC;AAAA,cACZ,OAAO,CAAC,GAAG,KAAK,CAAC;AAAA,cACjB,SAAS,CAAC,GAAG,IAAI,CAAC;AAAA,YAAA,IAEpB,CAAA;AAAA,YACJ,OAAO,CAAC,gBAAgB,2BAA2B,cAAc;AAAA,UAAA;AAAA,UAEnE,YAAY;AAAA,YACV,UAAAF;AAAA,YACA,QAAQ;AAAA,YACR,YAAY;AAAA,YACZ,aAAaD,EAAK,SAAS;AAAA,YAC3B,OAAQY,IAAIX,IAAYD,EAAK;AAAA,YAC7B,MAAM;AAAA,YACN,GAAGE;AAAA,UAAA;AAAA,UAGJ,UAAAS;AAAA,QAAA;AAAA,QAhCIC;AAAA,MAAA,CAkCR;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,6 +1,6 @@
1
- import { jsx as c, jsxs as h } from "react/jsx-runtime";
1
+ import { jsx as a, jsxs as h } from "react/jsx-runtime";
2
2
  import * as t from "react";
3
- import { useAnimate as y, stagger as g, motion as l } from "motion/react";
3
+ import { useAnimate as y, stagger as g, motion as c } from "motion/react";
4
4
  import "@radix-ui/react-slot";
5
5
  import "../../packages/ui/src/components/button.js";
6
6
  import "../../packages/ui/src/components/button-group.js";
@@ -34,20 +34,20 @@ import "@radix-ui/react-slider";
34
34
  import "../../packages/ui/src/components/tabs.js";
35
35
  import "../../packages/ui/src/components/toggle.js";
36
36
  function tt({
37
- ref: s,
37
+ ref: l,
38
38
  words: i,
39
39
  className: f,
40
40
  filter: r = !0,
41
41
  duration: m = 0.5,
42
42
  staggerDelay: p = 0.2,
43
- ...u
43
+ ...d
44
44
  }) {
45
45
  const e = t.useRef(null);
46
46
  t.useImperativeHandle(
47
- s,
47
+ l,
48
48
  () => e.current
49
49
  );
50
- const [o, n] = y(), d = t.useMemo(() => i.split(" "), [i]);
50
+ const [o, n] = y(), u = t.useMemo(() => i.split(" "), [i]);
51
51
  return t.useEffect(() => {
52
52
  o.current && n(
53
53
  "span",
@@ -60,26 +60,26 @@ function tt({
60
60
  delay: g(p)
61
61
  }
62
62
  );
63
- }, [n, m, r, o, p]), /* @__PURE__ */ c(
63
+ }, [n, m, r, o, p]), /* @__PURE__ */ a(
64
64
  "div",
65
65
  {
66
66
  ref: e,
67
- className: b("font-bold", f),
67
+ className: b("ds:font-bold", f),
68
68
  "data-slot": "text-generate-effect",
69
- ...u,
70
- children: /* @__PURE__ */ c(l.div, { ref: o, children: d.map((a, x) => /* @__PURE__ */ h(
71
- l.span,
69
+ ...d,
70
+ children: /* @__PURE__ */ a(c.div, { ref: o, children: u.map((s, x) => /* @__PURE__ */ h(
71
+ c.span,
72
72
  {
73
- className: "opacity-0 will-change-transform will-change-opacity will-change-filter",
73
+ className: "ds:opacity-0 ds:will-change-transform ds:will-change-opacity ds:will-change-filter",
74
74
  style: {
75
75
  filter: r ? "blur(10px)" : "none"
76
76
  },
77
77
  children: [
78
- a,
78
+ s,
79
79
  " "
80
80
  ]
81
81
  },
82
- `${a}-${x}`
82
+ `${s}-${x}`
83
83
  )) })
84
84
  }
85
85
  );
@@ -1 +1 @@
1
- {"version":3,"file":"TextGenerateEffect.js","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAASA,GAAmB;AAAA,EAC1B,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,GAAGC;AACL,GAA4B;AAC1B,QAAMC,IAAWC,EAAM,OAAuB,IAAI;AAClD,EAAAA,EAAM;AAAA,IACJR;AAAA,IACA,MAAMO,EAAS;AAAA,EAAA;AAGjB,QAAM,CAACE,GAAOC,CAAO,IAAIC,EAAA,GACnBC,IAAaJ,EAAM,QAAQ,MAAMP,EAAM,MAAM,GAAG,GAAG,CAACA,CAAK,CAAC;AAEhE,SAAAO,EAAM,UAAU,MAAM;AACpB,IAAIC,EAAM,WACRC;AAAA,MACE;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,QAAQP,IAAS,cAAc;AAAA,MAAA;AAAA,MAEjC;AAAA,QACE,UAAAC;AAAA,QACA,OAAOS,EAAQR,CAAY;AAAA,MAAA;AAAA,IAC7B;AAAA,EAGN,GAAG,CAACK,GAASN,GAAUD,GAAQM,GAAOJ,CAAY,CAAC,GAGjD,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKP;AAAA,MACL,WAAWQ,EAAG,aAAab,CAAS;AAAA,MACpC,aAAU;AAAA,MACT,GAAII;AAAA,MAEL,UAAA,gBAAAQ,EAACE,EAAO,KAAP,EAAW,KAAKP,GACd,UAAAG,EAAW,IAAI,CAACK,GAAMC,MACrB,gBAAAC;AAAA,QAACH,EAAO;AAAA,QAAP;AAAA,UAEC,WAAU;AAAA,UACV,OAAO;AAAA,YACL,QAAQb,IAAS,eAAe;AAAA,UAAA;AAAA,UAGjC,UAAA;AAAA,YAAAc;AAAA,YAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QANF,GAAGA,CAAI,IAAIC,CAAG;AAAA,MAAA,CAQtB,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"TextGenerateEffect.js","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(\"ds: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=\"ds:opacity-0 ds:will-change-transform ds:will-change-opacity ds: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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAASA,GAAmB;AAAA,EAC1B,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,GAAGC;AACL,GAA4B;AAC1B,QAAMC,IAAWC,EAAM,OAAuB,IAAI;AAClD,EAAAA,EAAM;AAAA,IACJR;AAAA,IACA,MAAMO,EAAS;AAAA,EAAA;AAGjB,QAAM,CAACE,GAAOC,CAAO,IAAIC,EAAA,GACnBC,IAAaJ,EAAM,QAAQ,MAAMP,EAAM,MAAM,GAAG,GAAG,CAACA,CAAK,CAAC;AAEhE,SAAAO,EAAM,UAAU,MAAM;AACpB,IAAIC,EAAM,WACRC;AAAA,MACE;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,QAAQP,IAAS,cAAc;AAAA,MAAA;AAAA,MAEjC;AAAA,QACE,UAAAC;AAAA,QACA,OAAOS,EAAQR,CAAY;AAAA,MAAA;AAAA,IAC7B;AAAA,EAGN,GAAG,CAACK,GAASN,GAAUD,GAAQM,GAAOJ,CAAY,CAAC,GAGjD,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKP;AAAA,MACL,WAAWQ,EAAG,gBAAgBb,CAAS;AAAA,MACvC,aAAU;AAAA,MACT,GAAII;AAAA,MAEL,UAAA,gBAAAQ,EAACE,EAAO,KAAP,EAAW,KAAKP,GACd,UAAAG,EAAW,IAAI,CAACK,GAAMC,MACrB,gBAAAC;AAAA,QAACH,EAAO;AAAA,QAAP;AAAA,UAEC,WAAU;AAAA,UACV,OAAO;AAAA,YACL,QAAQb,IAAS,eAAe;AAAA,UAAA;AAAA,UAGjC,UAAA;AAAA,YAAAc;AAAA,YAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QANF,GAAGA,CAAI,IAAIC,CAAG;AAAA,MAAA,CAQtB,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,9 +1,9 @@
1
1
  import { jsxs as o, jsx as e, Fragment as u } from "react/jsx-runtime";
2
2
  import { useRef as k, useState as i, useEffect as g } from "react";
3
- import { motion as c } from "motion/react";
3
+ import { motion as d } from "motion/react";
4
4
  const C = ({
5
5
  text: r,
6
- duration: d
6
+ duration: c
7
7
  }) => {
8
8
  const n = k(null), [s, f] = i({ x: 0, y: 0 }), [a, l] = i(!1), [h, x] = i({ cx: "50%", cy: "50%" });
9
9
  return g(() => {
@@ -25,7 +25,7 @@ const C = ({
25
25
  onMouseEnter: () => l(!0),
26
26
  onMouseLeave: () => l(!1),
27
27
  onMouseMove: (t) => f({ x: t.clientX, y: t.clientY }),
28
- className: "select-none",
28
+ className: "ds:select-none",
29
29
  children: [
30
30
  /* @__PURE__ */ o("defs", { children: [
31
31
  /* @__PURE__ */ e(
@@ -46,14 +46,14 @@ const C = ({
46
46
  }
47
47
  ),
48
48
  /* @__PURE__ */ o(
49
- c.radialGradient,
49
+ d.radialGradient,
50
50
  {
51
51
  id: "revealMask",
52
52
  gradientUnits: "userSpaceOnUse",
53
53
  r: "20%",
54
54
  initial: { cx: "50%", cy: "50%" },
55
55
  animate: h,
56
- transition: { duration: d ?? 0, ease: "easeOut" },
56
+ transition: { duration: c ?? 0, ease: "easeOut" },
57
57
  children: [
58
58
  /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "white" }),
59
59
  /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "black" })
@@ -79,19 +79,19 @@ const C = ({
79
79
  textAnchor: "middle",
80
80
  dominantBaseline: "middle",
81
81
  strokeWidth: "0.3",
82
- className: `fill-transparent font-[helvetica] text-7xl font-bold ${a ? "stroke-transparent" : "stroke-gray-400`"}`,
82
+ className: `ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds:font-bold ${a ? "stroke-transparent" : "stroke-gray-400`"}`,
83
83
  children: r
84
84
  }
85
85
  ),
86
86
  /* @__PURE__ */ e(
87
- c.text,
87
+ d.text,
88
88
  {
89
89
  x: "50%",
90
90
  y: "50%",
91
91
  textAnchor: "middle",
92
92
  dominantBaseline: "middle",
93
93
  strokeWidth: "0.3",
94
- className: `fill-transparent font-[helvetica] text-7xl font-bold ${a ? "stroke-transparent" : "stroke-gray-400"}`,
94
+ className: `ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds:font-bold ${a ? "stroke-transparent" : "stroke-gray-400"}`,
95
95
  initial: { strokeDashoffset: 1e3, strokeDasharray: 1e3 },
96
96
  animate: {
97
97
  strokeDashoffset: 0,
@@ -114,7 +114,7 @@ const C = ({
114
114
  stroke: "url(#textGradient)",
115
115
  strokeWidth: "0.3",
116
116
  mask: "url(#textMask)",
117
- className: "fill-transparent font-[helvetica] text-7xl font-bold",
117
+ className: "ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds:font-bold",
118
118
  children: r
119
119
  }
120
120
  )
@@ -1 +1 @@
1
- {"version":3,"file":"TextHoverEffect.js","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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"}
1
+ {"version":3,"file":"TextHoverEffect.js","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=\"ds: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={`ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds: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={`ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds: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=\"ds:fill-transparent ds:font-[helvetica] ds:text-7xl ds: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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"}
@@ -73,7 +73,7 @@ const _ = ({
73
73
  "div",
74
74
  {
75
75
  ref: u,
76
- className: "relative w-full h-full overflow-hidden bg-transparent",
76
+ className: "ds:relative ds:w-full ds:h-full ds:overflow-hidden ds:bg-transparent",
77
77
  children: [
78
78
  /* @__PURE__ */ w("style", { children: `
79
79
  @font-face {
@@ -100,7 +100,7 @@ const _ = ({
100
100
  "h1",
101
101
  {
102
102
  ref: i,
103
- className: `text-pressure-title ${H} ${Y ? "flex justify-between" : ""} ${M ? "stroke" : ""} uppercase text-center`,
103
+ className: `ds:text-pressure-title ${H} ${Y ? "flex justify-between" : ""} ${M ? "stroke" : ""} ds:uppercase ds:text-center`,
104
104
  style: {
105
105
  fontFamily: v,
106
106
  fontSize: N,
@@ -118,7 +118,7 @@ const _ = ({
118
118
  k.current[n] = t;
119
119
  },
120
120
  "data-char": e,
121
- className: "inline-block",
121
+ className: "ds:inline-block",
122
122
  children: e
123
123
  },
124
124
  n
@@ -1 +1 @@
1
- {"version":3,"file":"TextPressureEffect.js","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","e","handleTouchMove","t","left","top","height","setSize","containerW","containerH","newFontSize","textRect","yRatio","rafId","animate","maxDist","span","rect","charCenter","getAttr","distance","minVal","maxVal","val","wdth","wght","italVal","alphaVal","jsxs","jsx","char","i","el"],"mappings":"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"}
1
+ {"version":3,"file":"TextPressureEffect.js","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=\"ds:relative ds:w-full ds:h-full ds:overflow-hidden ds: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={`ds:text-pressure-title ${className} ${flex ? \"flex justify-between\" : \"\"} ${stroke ? \"stroke\" : \"\"} ds:uppercase ds: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=\"ds: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","e","handleTouchMove","t","left","top","height","setSize","containerW","containerH","newFontSize","textRect","yRatio","rafId","animate","maxDist","span","rect","charCenter","getAttr","distance","minVal","maxVal","val","wdth","wght","italVal","alphaVal","jsxs","jsx","char","i","el"],"mappings":"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"}
@@ -6,13 +6,13 @@ const B = ({
6
6
  as: G = "div",
7
7
  typingSpeed: l = 50,
8
8
  initialDelay: A = 0,
9
- pauseDuration: T = 2e3,
9
+ pauseDuration: h = 2e3,
10
10
  deletingSpeed: R = 30,
11
11
  loop: b = !0,
12
12
  className: J = "",
13
- showCursor: g = !0,
13
+ showCursor: T = !0,
14
14
  hideCursorWhileTyping: K = !1,
15
- cursorCharacter: d = "|",
15
+ cursorCharacter: g = "|",
16
16
  cursorClassName: k = "",
17
17
  cursorBlinkDuration: w = 0.5,
18
18
  textColors: x = [],
@@ -34,46 +34,46 @@ const B = ({
34
34
  if (!I || !p.current) return;
35
35
  const e = new IntersectionObserver(
36
36
  (s) => {
37
- s.forEach((h) => {
38
- h.isIntersecting && P(!0);
37
+ s.forEach((d) => {
38
+ d.isIntersecting && P(!0);
39
39
  });
40
40
  },
41
41
  { threshold: 0.1 }
42
42
  );
43
43
  return e.observe(p.current), () => e.disconnect();
44
44
  }, [I]), $(() => {
45
- g && m.current && (F.set(m.current, { opacity: 1 }), F.to(m.current, {
45
+ T && m.current && (F.set(m.current, { opacity: 1 }), F.to(m.current, {
46
46
  opacity: 0,
47
47
  duration: w,
48
48
  repeat: -1,
49
49
  yoyo: !0,
50
50
  ease: "power2.inOut"
51
51
  }));
52
- }, [g, w]), $(() => {
52
+ }, [T, w]), $(() => {
53
53
  if (!M) return;
54
54
  let e;
55
- const s = n[t], h = E ? s.split("").reverse().join("") : s, v = () => {
55
+ const s = n[t], d = E ? s.split("").reverse().join("") : s, v = () => {
56
56
  if (a)
57
57
  if (f === "") {
58
58
  if (H(!1), t === n.length - 1 && !b)
59
59
  return;
60
60
  y && y(n[t], t), O((r) => (r + 1) % n.length), N(0), e = setTimeout(() => {
61
- }, T);
61
+ }, h);
62
62
  } else
63
63
  e = setTimeout(() => {
64
64
  j((r) => r.slice(0, -1));
65
65
  }, R);
66
66
  else
67
- c < h.length ? e = setTimeout(
67
+ c < d.length ? e = setTimeout(
68
68
  () => {
69
69
  j(
70
- (r) => r + h[c]
70
+ (r) => r + d[c]
71
71
  ), N((r) => r + 1);
72
72
  },
73
73
  i ? q() : l
74
74
  ) : n.length > 1 && (e = setTimeout(() => {
75
75
  H(!0);
76
- }, T));
76
+ }, h));
77
77
  };
78
78
  return c === 0 && !a && f === "" ? e = setTimeout(v, A) : v(), () => clearTimeout(e);
79
79
  }, [
@@ -82,7 +82,7 @@ const B = ({
82
82
  a,
83
83
  l,
84
84
  R,
85
- T,
85
+ h,
86
86
  n,
87
87
  t,
88
88
  b,
@@ -101,13 +101,13 @@ const B = ({
101
101
  className: `inline-block whitespace-pre-wrap tracking-tight ${J}`,
102
102
  ...L
103
103
  },
104
- /* @__PURE__ */ z("span", { className: "inline", style: { color: Q() }, children: f }),
105
- g && /* @__PURE__ */ z(
104
+ /* @__PURE__ */ z("span", { className: "ds:inline", style: { color: Q() }, children: f }),
105
+ T && /* @__PURE__ */ z(
106
106
  "span",
107
107
  {
108
108
  ref: m,
109
- className: `inline-block opacity-100 ${U ? "hidden" : ""} ${d === "|" ? `h-5 w-[1px] translate-y-1 bg-foreground ${k}` : `ml-1 ${k}`}`,
110
- children: d === "|" ? "" : d
109
+ className: `ds:inline-block ds:opacity-100 ${U ? "hidden" : ""} ${g === "|" ? `h-5 w-[1px] translate-y-1 bg-foreground ${k}` : `ml-1 ${k}`}`,
110
+ children: g === "|" ? "" : g
111
111
  }
112
112
  )
113
113
  );
@@ -1 +1 @@
1
- {"version":3,"file":"TypingText.js","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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"}
1
+ {"version":3,"file":"TypingText.js","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=\"ds:inline\" style={{ color: getCurrentTextColor() }}>\n {displayedText}\n </span>,\n showCursor && (\n <span\n ref={cursorRef}\n className={`ds:inline-block ds:opacity-100 ${shouldHideCursor ? \"hidden\" : \"\"} ${cursorCharacter === \"|\"\n ? `h-5 w-[1px] translate-y-1 bg-foreground ${cursorClassName}`\n : `ml-1 ${cursorClassName}`}`}\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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"}
@@ -2,9 +2,9 @@ import { jsx as f, jsxs as g } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
3
  import { useInView as w, motion as h } from "motion/react";
4
4
  function I({
5
- ref: o,
6
- inView: r = !1,
7
- inViewMargin: s = "0px",
5
+ ref: s,
6
+ inView: o = !1,
7
+ inViewMargin: r = "0px",
8
8
  inViewOnce: l = !0,
9
9
  spacing: c = 5,
10
10
  text: n,
@@ -13,26 +13,26 @@ function I({
13
13
  }) {
14
14
  const e = i.useRef(null);
15
15
  i.useImperativeHandle(
16
- o,
16
+ s,
17
17
  () => e.current
18
18
  );
19
19
  const p = w(e, {
20
20
  once: l,
21
- margin: s
22
- }), u = !r || p, y = i.useMemo(() => n.split(" "), [n]);
23
- return /* @__PURE__ */ f("span", { ref: e, "data-slot": "writing-text", ...m, children: y.map((d, a) => /* @__PURE__ */ g(
21
+ margin: r
22
+ }), d = !o || p, u = i.useMemo(() => n.split(" "), [n]);
23
+ return /* @__PURE__ */ f("span", { ref: e, "data-slot": "writing-text", ...m, children: u.map((y, a) => /* @__PURE__ */ g(
24
24
  h.span,
25
25
  {
26
- className: "inline-block will-change-transform will-change-opacity",
26
+ className: "ds:inline-block ds:will-change-transform ds:will-change-opacity",
27
27
  style: { marginRight: c },
28
28
  initial: { opacity: 0, y: 10 },
29
- animate: u ? { opacity: 1, y: 0 } : void 0,
29
+ animate: d ? { opacity: 1, y: 0 } : void 0,
30
30
  transition: {
31
31
  ...t,
32
32
  delay: a * (t?.delay ?? 0)
33
33
  },
34
34
  children: [
35
- d,
35
+ y,
36
36
  " "
37
37
  ]
38
38
  },
@@ -1 +1 @@
1
- {"version":3,"file":"WritingText.js","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":";;;AAmBA,SAASA,EAAY;AAAA,EACnB,KAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC,IAAe;AAAA,EACf,YAAAC,IAAa;AAAA,EACb,SAAAC,IAAU;AAAA,EACV,MAAAC;AAAA,EACA,YAAAC,IAAa,EAAE,MAAM,UAAU,QAAQ,GAAG,UAAU,GAAG,OAAO,IAAA;AAAA,EAC9D,GAAGC;AACL,GAAqB;AACnB,QAAMC,IAAWC,EAAM,OAAwB,IAAI;AACnD,EAAAA,EAAM;AAAA,IACJT;AAAA,IACA,MAAMQ,EAAS;AAAA,EAAA;AAGjB,QAAME,IAAeC,EAAUH,GAAU;AAAA,IACvC,MAAML;AAAA,IACN,QAAQD;AAAA,EAAA,CACT,GACKU,IAAW,CAACX,KAAUS,GAEtBG,IAAQJ,EAAM,QAAQ,MAAMJ,EAAK,MAAM,GAAG,GAAG,CAACA,CAAI,CAAC;AAEzD,SACE,gBAAAS,EAAC,QAAA,EAAK,KAAKN,GAAU,aAAU,gBAAgB,GAAID,GAChD,UAAAM,EAAM,IAAI,CAACE,GAAMC,MAChB,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MAEC,WAAU;AAAA,MACV,OAAO,EAAE,aAAad,EAAA;AAAA,MACtB,SAAS,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,MAC1B,SAASQ,IAAW,EAAE,SAAS,GAAG,GAAG,MAAM;AAAA,MAC3C,YAAY;AAAA,QACV,GAAGN;AAAA,QACH,OAAOU,KAASV,GAAY,SAAS;AAAA,MAAA;AAAA,MAGtC,UAAA;AAAA,QAAAS;AAAA,QAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAVFC;AAAA,EAAA,CAYR,GACH;AAEJ;"}
1
+ {"version":3,"file":"WritingText.js","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=\"ds:inline-block ds:will-change-transform ds: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":";;;AAmBA,SAASA,EAAY;AAAA,EACnB,KAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC,IAAe;AAAA,EACf,YAAAC,IAAa;AAAA,EACb,SAAAC,IAAU;AAAA,EACV,MAAAC;AAAA,EACA,YAAAC,IAAa,EAAE,MAAM,UAAU,QAAQ,GAAG,UAAU,GAAG,OAAO,IAAA;AAAA,EAC9D,GAAGC;AACL,GAAqB;AACnB,QAAMC,IAAWC,EAAM,OAAwB,IAAI;AACnD,EAAAA,EAAM;AAAA,IACJT;AAAA,IACA,MAAMQ,EAAS;AAAA,EAAA;AAGjB,QAAME,IAAeC,EAAUH,GAAU;AAAA,IACvC,MAAML;AAAA,IACN,QAAQD;AAAA,EAAA,CACT,GACKU,IAAW,CAACX,KAAUS,GAEtBG,IAAQJ,EAAM,QAAQ,MAAMJ,EAAK,MAAM,GAAG,GAAG,CAACA,CAAI,CAAC;AAEzD,SACE,gBAAAS,EAAC,QAAA,EAAK,KAAKN,GAAU,aAAU,gBAAgB,GAAID,GAChD,UAAAM,EAAM,IAAI,CAACE,GAAMC,MAChB,gBAAAC;AAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MAEC,WAAU;AAAA,MACV,OAAO,EAAE,aAAad,EAAA;AAAA,MACtB,SAAS,EAAE,SAAS,GAAG,GAAG,GAAA;AAAA,MAC1B,SAASQ,IAAW,EAAE,SAAS,GAAG,GAAG,MAAM;AAAA,MAC3C,YAAY;AAAA,QACV,GAAGN;AAAA,QACH,OAAOU,KAASV,GAAY,SAAS;AAAA,MAAA;AAAA,MAGtC,UAAA;AAAA,QAAAS;AAAA,QAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAVFC;AAAA,EAAA,CAYR,GACH;AAEJ;"}