@sth87/shadcn-design-system 0.0.36 → 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 (420) hide show
  1. package/dist/AI_CONTEXT.md +212 -214
  2. package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  6. package/dist/cjs/components/Badge/Badge.cjs +1 -1
  7. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  8. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  10. package/dist/cjs/components/Button/Button.cjs +1 -1
  11. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  12. package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
  13. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  14. package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
  15. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  16. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  17. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  18. package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
  19. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
  20. package/dist/cjs/components/Command/Command.cjs +1 -1
  21. package/dist/cjs/components/Command/Command.cjs.map +1 -1
  22. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
  23. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
  24. package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
  25. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
  26. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  27. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  28. package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
  29. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
  30. package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
  31. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
  32. package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  34. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
  35. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  36. package/dist/cjs/components/FloatLabel.cjs +1 -1
  37. package/dist/cjs/components/FloatLabel.cjs.map +1 -1
  38. package/dist/cjs/components/Glass/Glass.cjs +1 -1
  39. package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
  40. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
  41. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
  42. package/dist/cjs/components/Input/Input.cjs +1 -1
  43. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  44. package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
  45. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
  46. package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
  47. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
  48. package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
  49. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
  50. package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
  51. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  52. package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
  53. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
  54. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  55. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  56. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  57. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  58. package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
  59. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
  60. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
  61. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  62. package/dist/cjs/components/Select/Select.cjs +1 -1
  63. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  64. package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
  65. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  66. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  67. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  68. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  69. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  70. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  71. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  72. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  73. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  74. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
  75. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  76. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
  77. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  78. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
  79. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  80. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  81. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  82. package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
  83. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
  84. package/dist/cjs/components/Table/data-table.cjs +1 -1
  85. package/dist/cjs/components/Table/data-table.cjs.map +1 -1
  86. package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  88. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  89. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  90. package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
  91. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  92. package/dist/cjs/components/TimeGridView.cjs +1 -1
  93. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  94. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  95. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  96. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  97. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  98. package/dist/cjs/components/Tour/Tour.cjs +1 -1
  99. package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
  100. package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
  101. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
  102. package/dist/cjs/components/Upload/Upload.cjs +3 -3
  103. package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
  104. package/dist/cjs/components/WheelColumn.cjs +1 -1
  105. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  106. package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
  107. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
  108. package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
  109. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
  110. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
  111. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
  112. package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
  113. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
  114. package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
  115. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
  116. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
  117. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
  118. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
  119. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
  120. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
  121. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
  122. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
  123. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
  124. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
  125. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
  126. package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
  127. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
  128. package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
  129. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
  130. 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
  131. package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
  132. package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
  133. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
  134. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
  135. package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
  136. package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
  137. package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
  138. package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
  139. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
  140. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
  141. package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
  142. package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
  143. package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
  144. package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
  145. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  146. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  147. package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
  148. package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
  149. package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
  150. package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
  151. package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
  152. package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
  153. package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
  154. package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
  155. package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
  156. package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
  157. package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
  158. package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
  159. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
  160. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
  161. package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
  162. package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
  163. package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
  164. package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
  165. package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
  166. package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
  167. package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
  168. package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
  169. package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
  170. package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
  171. package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
  172. package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
  173. package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
  174. package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
  175. package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
  176. package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
  177. package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
  178. package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
  179. package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
  180. package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
  181. package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
  182. package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
  183. package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
  184. package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
  185. package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
  186. package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
  187. package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
  188. package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
  189. package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
  190. package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
  191. package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
  192. package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
  193. package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
  194. package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
  195. package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
  196. package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
  197. package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
  198. package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
  199. package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
  200. package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
  201. package/dist/cjs/styles/index.css +1 -1
  202. package/dist/cjs/utils/animations.cjs +1 -1
  203. package/dist/cjs/utils/animations.cjs.map +1 -1
  204. package/dist/cjs/utils/css.cjs +1 -1
  205. package/dist/cjs/utils/css.cjs.map +1 -1
  206. package/dist/cjs/utils/parsers.cjs +1 -1
  207. package/dist/cjs/utils/parsers.cjs.map +1 -1
  208. package/dist/esm/components/Accordion/Accordion.js +60 -60
  209. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  210. package/dist/esm/components/Avatar/Avatar.js +40 -40
  211. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  212. package/dist/esm/components/Badge/Badge.js +1 -1
  213. package/dist/esm/components/Badge/Badge.js.map +1 -1
  214. package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
  215. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  216. package/dist/esm/components/Button/Button.js +9 -9
  217. package/dist/esm/components/Button/Button.js.map +1 -1
  218. package/dist/esm/components/Calendar/Calendar.js +4 -4
  219. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  220. package/dist/esm/components/Carousel/Carousel.js +165 -165
  221. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  222. package/dist/esm/components/Checkbox/Checkbox.js +26 -26
  223. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  224. package/dist/esm/components/Collapsible/Collapsible.js +43 -43
  225. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
  226. package/dist/esm/components/Command/Command.js +28 -28
  227. package/dist/esm/components/Command/Command.js.map +1 -1
  228. package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
  229. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
  230. package/dist/esm/components/Cropper/Cropper.js +132 -132
  231. package/dist/esm/components/Cropper/Cropper.js.map +1 -1
  232. package/dist/esm/components/DatePicker/DatePicker.js +75 -75
  233. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  234. package/dist/esm/components/DatePicker/RangePicker.js +136 -136
  235. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
  236. package/dist/esm/components/DatePicker/TimePicker.js +150 -150
  237. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
  238. package/dist/esm/components/Dialog/Dialog.js +114 -114
  239. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  240. package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
  241. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  242. package/dist/esm/components/FloatLabel.js +44 -44
  243. package/dist/esm/components/FloatLabel.js.map +1 -1
  244. package/dist/esm/components/Glass/Glass.js +15 -15
  245. package/dist/esm/components/Glass/Glass.js.map +1 -1
  246. package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
  247. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
  248. package/dist/esm/components/Input/Input.js +104 -104
  249. package/dist/esm/components/Input/Input.js.map +1 -1
  250. package/dist/esm/components/InputOTP/InputOTP.js +16 -16
  251. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
  252. package/dist/esm/components/Interactive/CursorFollow.js +49 -49
  253. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
  254. package/dist/esm/components/Marquee/Marquee.js +130 -130
  255. package/dist/esm/components/Marquee/Marquee.js.map +1 -1
  256. package/dist/esm/components/Pagination/Pagination.js +68 -68
  257. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  258. package/dist/esm/components/QrCode/QrCode.js +37 -37
  259. package/dist/esm/components/QrCode/QrCode.js.map +1 -1
  260. package/dist/esm/components/Radio/Radio.js +16 -16
  261. package/dist/esm/components/Radio/Radio.js.map +1 -1
  262. package/dist/esm/components/Rate/Rate.js +62 -62
  263. package/dist/esm/components/Rate/Rate.js.map +1 -1
  264. package/dist/esm/components/Resizable/Resizable.js +6 -6
  265. package/dist/esm/components/Resizable/Resizable.js.map +1 -1
  266. package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
  267. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  268. package/dist/esm/components/Select/Select.js +64 -64
  269. package/dist/esm/components/Select/Select.js.map +1 -1
  270. package/dist/esm/components/Sheet/Sheet.js +21 -21
  271. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  272. package/dist/esm/components/Slider/Slider.js +54 -54
  273. package/dist/esm/components/Slider/Slider.js.map +1 -1
  274. package/dist/esm/components/Stepper/Stepper.js +198 -198
  275. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  276. package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
  277. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  278. package/dist/esm/components/Switch/Switch.js +38 -38
  279. package/dist/esm/components/Switch/Switch.js.map +1 -1
  280. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
  281. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  282. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
  283. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  284. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
  285. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  286. package/dist/esm/components/Table/data-table-column-header.js +18 -18
  287. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  288. package/dist/esm/components/Table/data-table-pagination.js +21 -21
  289. package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
  290. package/dist/esm/components/Table/data-table.js +18 -18
  291. package/dist/esm/components/Table/data-table.js.map +1 -1
  292. package/dist/esm/components/Tabs/Tabs.js +242 -242
  293. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  294. package/dist/esm/components/Tabs/classes.js +51 -51
  295. package/dist/esm/components/Tabs/classes.js.map +1 -1
  296. package/dist/esm/components/Textarea/Textarea.js +49 -49
  297. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  298. package/dist/esm/components/TimeGridView.js +12 -12
  299. package/dist/esm/components/TimeGridView.js.map +1 -1
  300. package/dist/esm/components/Toast/Toast.js +45 -45
  301. package/dist/esm/components/Toast/Toast.js.map +1 -1
  302. package/dist/esm/components/Tooltip/Tooltip.js +19 -19
  303. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  304. package/dist/esm/components/Tour/Tour.js +11 -11
  305. package/dist/esm/components/Tour/Tour.js.map +1 -1
  306. package/dist/esm/components/Tour/TourWrapper.js +15 -15
  307. package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
  308. package/dist/esm/components/Upload/Upload.js +405 -405
  309. package/dist/esm/components/Upload/Upload.js.map +1 -1
  310. package/dist/esm/components/WheelColumn.js +47 -47
  311. package/dist/esm/components/WheelColumn.js.map +1 -1
  312. package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
  313. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
  314. package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
  315. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
  316. package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
  317. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
  318. package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
  319. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
  320. package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
  321. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
  322. package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
  323. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
  324. package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
  325. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
  326. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
  327. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
  328. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
  329. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
  330. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
  331. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
  332. package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
  333. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
  334. package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
  335. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
  336. 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
  337. package/dist/esm/packages/ui/src/components/accordion.js +31 -31
  338. package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
  339. package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
  340. package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
  341. package/dist/esm/packages/ui/src/components/avatar.js +20 -20
  342. package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
  343. package/dist/esm/packages/ui/src/components/badge.js +53 -53
  344. package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
  345. package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
  346. package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
  347. package/dist/esm/packages/ui/src/components/button-group.js +31 -31
  348. package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
  349. package/dist/esm/packages/ui/src/components/button.js +90 -90
  350. package/dist/esm/packages/ui/src/components/button.js.map +1 -1
  351. package/dist/esm/packages/ui/src/components/calendar.js +94 -94
  352. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  353. package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
  354. package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
  355. package/dist/esm/packages/ui/src/components/combobox.js +64 -64
  356. package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
  357. package/dist/esm/packages/ui/src/components/command.js +77 -77
  358. package/dist/esm/packages/ui/src/components/command.js.map +1 -1
  359. package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
  360. package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
  361. package/dist/esm/packages/ui/src/components/dialog.js +54 -54
  362. package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
  363. package/dist/esm/packages/ui/src/components/drawer.js +39 -39
  364. package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
  365. package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
  366. package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
  367. package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
  368. package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
  369. package/dist/esm/packages/ui/src/components/input.js +19 -19
  370. package/dist/esm/packages/ui/src/components/input.js.map +1 -1
  371. package/dist/esm/packages/ui/src/components/label.js +9 -9
  372. package/dist/esm/packages/ui/src/components/label.js.map +1 -1
  373. package/dist/esm/packages/ui/src/components/pagination.js +26 -26
  374. package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
  375. package/dist/esm/packages/ui/src/components/popover.js +13 -13
  376. package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
  377. package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
  378. package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
  379. package/dist/esm/packages/ui/src/components/resizable.js +18 -18
  380. package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
  381. package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
  382. package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
  383. package/dist/esm/packages/ui/src/components/select.js +119 -119
  384. package/dist/esm/packages/ui/src/components/select.js.map +1 -1
  385. package/dist/esm/packages/ui/src/components/separator.js +86 -86
  386. package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
  387. package/dist/esm/packages/ui/src/components/sheet.js +50 -50
  388. package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
  389. package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
  390. package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
  391. package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
  392. package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
  393. package/dist/esm/packages/ui/src/components/switch.js +57 -57
  394. package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
  395. package/dist/esm/packages/ui/src/components/table.js +17 -17
  396. package/dist/esm/packages/ui/src/components/table.js.map +1 -1
  397. package/dist/esm/packages/ui/src/components/tabs.js +33 -33
  398. package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
  399. package/dist/esm/packages/ui/src/components/textarea.js +17 -17
  400. package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
  401. package/dist/esm/packages/ui/src/components/toggle.js +36 -36
  402. package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
  403. package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
  404. package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
  405. package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
  406. package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
  407. package/dist/esm/styles/index.css +1 -1
  408. package/dist/esm/utils/animations.js +55 -55
  409. package/dist/esm/utils/animations.js.map +1 -1
  410. package/dist/esm/utils/css.js +7 -7
  411. package/dist/esm/utils/css.js.map +1 -1
  412. package/dist/esm/utils/parsers.js +1 -1
  413. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
  414. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
  415. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
  416. package/package.json +1 -1
  417. 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
  418. 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
  419. /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
  420. /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
@@ -1 +1 @@
1
- {"version":3,"file":"Marquee.js","sources":["../../../../src/components/Marquee/Marquee.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn, Slot, useComposedRefs } from \"@dsui/ui/index\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nconst ROOT_NAME = \"Marquee\";\nconst CONTENT_NAME = \"MarqueeContent\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Direction = \"ltr\" | \"rtl\";\n\ntype RootElement = React.ComponentRef<typeof MarqueeRoot>;\ntype ContentElement = React.ComponentRef<typeof MarqueeContent>;\n\ninterface Dimensions {\n width: number;\n height: number;\n}\n\ninterface ElementDimensions {\n rootSize: number;\n contentSize: number;\n}\n\nfunction createResizeObserverStore() {\n const listeners = new Set<() => void>();\n let observer: ResizeObserver | null = null;\n const elements = new Map<Element, Dimensions>();\n const refCounts = new Map<Element, number>();\n const isSupported = typeof ResizeObserver !== \"undefined\";\n let notificationScheduled = false;\n\n const snapshotCache = new WeakMap<\n Element,\n WeakMap<\n Element,\n { horizontal: ElementDimensions; vertical: ElementDimensions }\n >\n >();\n\n function notify() {\n if (notificationScheduled) return;\n notificationScheduled = true;\n queueMicrotask(() => {\n notificationScheduled = false;\n for (const callback of listeners) {\n callback();\n }\n });\n }\n\n function cleanup() {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n elements.clear();\n refCounts.clear();\n }\n\n function subscribe(callback: () => void) {\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n cleanup();\n }\n };\n }\n\n function getSnapshot(\n rootElement: RootElement | null,\n contentElement: ContentElement | null,\n orientation: Orientation\n ): ElementDimensions | null {\n if (!rootElement || !contentElement) return null;\n\n const rootDims = elements.get(rootElement);\n const contentDims = elements.get(contentElement);\n\n if (!rootDims || !contentDims) return null;\n\n const rootSize =\n orientation === \"vertical\" ? rootDims.height : rootDims.width;\n const contentSize =\n orientation === \"vertical\" ? contentDims.height : contentDims.width;\n\n let rootCache = snapshotCache.get(rootElement);\n if (!rootCache) {\n rootCache = new WeakMap();\n snapshotCache.set(rootElement, rootCache);\n }\n\n let contentCache = rootCache.get(contentElement);\n if (!contentCache) {\n contentCache = {\n horizontal: { rootSize: -1, contentSize: -1 },\n vertical: { rootSize: -1, contentSize: -1 },\n };\n rootCache.set(contentElement, contentCache);\n }\n\n const cached = contentCache[orientation];\n if (cached.rootSize === rootSize && cached.contentSize === contentSize) {\n return cached;\n }\n\n const snapshot = { rootSize, contentSize };\n contentCache[orientation] = snapshot;\n return snapshot;\n }\n\n function observe(\n rootElement: RootElement | null,\n contentElement: Element | null\n ) {\n if (!isSupported || !rootElement || !contentElement) return;\n\n if (!observer) {\n observer = new ResizeObserver((entries) => {\n let hasChanged = false;\n\n for (const entry of entries) {\n const element = entry.target;\n const { width, height } = entry.contentRect;\n\n const currentData = elements.get(element);\n\n if (\n !currentData ||\n currentData.width !== width ||\n currentData.height !== height\n ) {\n elements.set(element, { width, height });\n hasChanged = true;\n }\n }\n\n if (hasChanged) {\n notify();\n }\n });\n }\n\n refCounts.set(rootElement, (refCounts.get(rootElement) ?? 0) + 1);\n refCounts.set(contentElement, (refCounts.get(contentElement) ?? 0) + 1);\n\n observer.observe(rootElement);\n observer.observe(contentElement);\n\n const rootRect = rootElement.getBoundingClientRect();\n const contentRect = contentElement.getBoundingClientRect();\n\n const rootData = { width: rootRect.width, height: rootRect.height };\n const contentData = {\n width: contentRect.width,\n height: contentRect.height,\n };\n\n elements.set(rootElement, rootData);\n elements.set(contentElement, contentData);\n\n if (\n rootData.width > 0 &&\n rootData.height > 0 &&\n contentData.width > 0 &&\n contentData.height > 0\n ) {\n notify();\n }\n }\n\n function unobserve(\n rootElement: RootElement | null,\n contentElement: Element | null\n ) {\n if (!observer || !rootElement || !contentElement) return;\n\n const rootCount = (refCounts.get(rootElement) ?? 1) - 1;\n const contentCount = (refCounts.get(contentElement) ?? 1) - 1;\n\n if (rootCount <= 0) {\n observer.unobserve(rootElement);\n elements.delete(rootElement);\n refCounts.delete(rootElement);\n } else {\n refCounts.set(rootElement, rootCount);\n }\n\n if (contentCount <= 0) {\n observer.unobserve(contentElement);\n elements.delete(contentElement);\n refCounts.delete(contentElement);\n } else {\n refCounts.set(contentElement, contentCount);\n }\n }\n\n return {\n subscribe,\n getSnapshot,\n observe,\n unobserve,\n };\n}\n\nconst resizeObserverStore = createResizeObserverStore();\n\nfunction useResizeObserverStore(\n rootRef: React.RefObject<RootElement | null>,\n contentRef: React.RefObject<ContentElement | null>,\n orientation: Orientation\n) {\n const onSubscribe = React.useCallback(\n (callback: () => void) => resizeObserverStore.subscribe(callback),\n []\n );\n\n const getSnapshot = React.useCallback(\n () =>\n resizeObserverStore.getSnapshot(\n rootRef.current,\n contentRef.current,\n orientation\n ),\n [rootRef, contentRef, orientation]\n );\n\n return React.useSyncExternalStore(onSubscribe, getSnapshot, getSnapshot);\n}\n\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\nfunction useDirection(dir?: Direction): Direction {\n const contextDir = React.useContext(DirectionContext);\n return dir ?? contextDir ?? \"ltr\";\n}\n\ninterface DivProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\ninterface MarqueeContextValue {\n side: Side;\n orientation: Orientation;\n dir: Direction;\n speed: number;\n loopCount: number;\n contentRef: React.RefObject<ContentElement | null>;\n rootRef: React.RefObject<RootElement | null>;\n autoFill: boolean;\n pauseOnHover: boolean;\n pauseOnKeyboard: boolean;\n reverse: boolean;\n paused: boolean;\n}\n\nconst MarqueeContext = React.createContext<MarqueeContextValue | null>(null);\n\nfunction useMarqueeContext(consumerName: string) {\n const context = React.useContext(MarqueeContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface MarqueeRootProps extends DivProps {\n side?: Side;\n dir?: Direction;\n speed?: number;\n delay?: number;\n loopCount?: number;\n gap?: string | number;\n autoFill?: boolean;\n pauseOnHover?: boolean;\n pauseOnKeyboard?: boolean;\n reverse?: boolean;\n}\n\nfunction MarqueeRoot(props: MarqueeRootProps) {\n const {\n side = \"left\",\n dir: dirProp,\n speed = 50,\n delay = 0,\n loopCount = 0,\n gap = \"1rem\",\n asChild,\n autoFill = false,\n pauseOnHover = false,\n pauseOnKeyboard = false,\n reverse = false,\n className,\n style: styleProp,\n ref,\n ...marqueeProps\n } = props;\n\n const orientation: Orientation =\n side === \"top\" || side === \"bottom\" ? \"vertical\" : \"horizontal\";\n\n const dir = useDirection(dirProp);\n\n const rootRef = React.useRef<RootElement>(null);\n const contentRef = React.useRef<ContentElement>(null);\n const composedRef = useComposedRefs(ref, rootRef);\n\n const [paused, setPaused] = React.useState(false);\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (pauseOnKeyboard && event.key === \" \") {\n event.preventDefault();\n setPaused((prev) => !prev);\n }\n },\n [pauseOnKeyboard]\n );\n\n const dimensions = useResizeObserverStore(rootRef, contentRef, orientation);\n\n const duration = React.useMemo(() => {\n const safeSpeed = Math.max(0.001, speed);\n\n if (!dimensions) {\n const defaultDistance = autoFill ? 1000 : 2000;\n return defaultDistance / safeSpeed;\n }\n\n const { rootSize, contentSize } = dimensions;\n\n if (autoFill) {\n const multiplier =\n contentSize < rootSize ? Math.ceil(rootSize / contentSize) : 1;\n return (contentSize * multiplier) / safeSpeed;\n } else {\n return contentSize < rootSize\n ? rootSize / safeSpeed\n : contentSize / safeSpeed;\n }\n }, [dimensions, speed, autoFill]);\n\n const style = React.useMemo<React.CSSProperties>(\n () => ({\n \"--marquee-duration\": `${duration}s`,\n \"--marquee-gap\": gap,\n \"--marquee-delay\": `${delay}s`,\n \"--marquee-loop-count\":\n loopCount === 0 || loopCount === Infinity\n ? \"infinite\"\n : loopCount.toString(),\n ...styleProp,\n }),\n [duration, gap, delay, loopCount, styleProp]\n );\n\n const contextValue = React.useMemo<MarqueeContextValue>(\n () => ({\n side,\n orientation,\n dir,\n speed,\n loopCount,\n contentRef,\n rootRef,\n autoFill,\n paused,\n pauseOnHover,\n pauseOnKeyboard,\n reverse,\n }),\n [\n side,\n orientation,\n dir,\n speed,\n loopCount,\n autoFill,\n paused,\n pauseOnHover,\n pauseOnKeyboard,\n reverse,\n ]\n );\n\n const MarqueePrimitive = asChild ? Slot : \"div\";\n\n return (\n <MarqueeContext.Provider value={contextValue}>\n <div data-slot=\"marquee-wrapper\" className=\"grid\">\n <MarqueePrimitive\n role=\"marquee\"\n aria-live=\"off\"\n data-orientation={orientation}\n data-slot=\"marquee\"\n dir={dir}\n tabIndex={pauseOnKeyboard ? 0 : undefined}\n {...marqueeProps}\n ref={composedRef}\n className={cn(\n \"relative flex overflow-hidden motion-reduce:animate-none\",\n orientation === \"vertical\" && \"h-full flex-col\",\n orientation === \"horizontal\" && \"w-full\",\n paused && \"[&_*]:[animation-play-state:paused]\",\n pauseOnHover && \"group\",\n pauseOnKeyboard &&\n \"rounded-md focus-visible:border-ring focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n className\n )}\n style={style}\n onKeyDown={pauseOnKeyboard ? onKeyDown : undefined}\n />\n </div>\n </MarqueeContext.Provider>\n );\n}\n\nconst marqueeContentVariants = cva(\n \"flex min-w-full shrink-0 gap-(--marquee-gap)\",\n {\n variants: {\n side: {\n left: \"animate-marquee-left\",\n right: \"animate-marquee-right\",\n top: \"min-h-full min-w-auto animate-marquee-up flex-col\",\n bottom: \"min-h-full min-w-auto animate-marquee-down flex-col\",\n },\n dir: {\n ltr: \"\",\n rtl: \"\",\n },\n pauseOnHover: {\n true: \"group-hover:[animation-play-state:paused]\",\n false: \"\",\n },\n reverse: {\n true: \"[animation-direction:reverse]\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n side: \"left\",\n dir: \"rtl\",\n className: \"animate-marquee-left-rtl\",\n },\n {\n side: \"right\",\n dir: \"rtl\",\n className: \"animate-marquee-right-rtl\",\n },\n ],\n defaultVariants: {\n side: \"left\",\n dir: \"ltr\",\n pauseOnHover: false,\n reverse: false,\n },\n }\n);\n\nfunction MarqueeContent(props: DivProps) {\n const {\n className,\n asChild,\n ref,\n children,\n style: styleProp,\n ...contentProps\n } = props;\n\n const context = useMarqueeContext(CONTENT_NAME);\n const composedRef = useComposedRefs(ref, context.contentRef);\n\n const isVertical = context.orientation === \"vertical\";\n const isRtl = context.dir === \"rtl\";\n\n const dimensions = useResizeObserverStore(\n context.rootRef,\n context.contentRef,\n context.orientation\n );\n\n React.useEffect(() => {\n if (context.rootRef.current && context.contentRef.current) {\n resizeObserverStore.observe(\n context.rootRef.current,\n context.contentRef.current\n );\n\n return () => {\n resizeObserverStore.unobserve(\n context.rootRef.current,\n context.contentRef.current\n );\n };\n }\n }, [context.rootRef, context.contentRef]);\n\n const multiplier = React.useMemo(() => {\n if (!context.autoFill || !dimensions) return 1;\n\n const { rootSize, contentSize } = dimensions;\n if (contentSize === 0) return 1;\n\n return contentSize < rootSize ? Math.ceil(rootSize / contentSize) : 1;\n }, [context.autoFill, dimensions]);\n\n const onMultipliedChildrenRender = React.useCallback(\n (count: number) => {\n return Array.from({ length: Math.max(0, count) }).map((_, i) => (\n <React.Fragment key={i}>{children}</React.Fragment>\n ));\n },\n [children]\n );\n\n const style = React.useMemo(\n () => ({\n ...styleProp,\n animationDuration: \"var(--marquee-duration)\",\n animationDelay: \"var(--marquee-delay)\",\n animationIterationCount: \"var(--marquee-loop-count)\",\n animationDirection: context.reverse ? \"reverse\" : \"normal\",\n }),\n [styleProp, context.reverse]\n );\n\n const ContentPrimitive = asChild ? Slot : \"div\";\n\n return (\n <>\n <ContentPrimitive\n data-orientation={context.orientation}\n data-slot=\"marquee-content\"\n {...contentProps}\n style={style}\n className={cn(\n marqueeContentVariants({\n side: context.side,\n dir: context.dir,\n pauseOnHover: context.pauseOnHover,\n reverse: context.reverse,\n className,\n }),\n isVertical && \"flex-col\",\n isVertical\n ? \"mb-(--marquee-gap)\"\n : isRtl\n ? \"ml-(--marquee-gap)\"\n : \"mr-(--marquee-gap)\"\n )}\n >\n <div\n ref={composedRef}\n className={cn(\n \"flex shrink-0 gap-(--marquee-gap)\",\n isVertical && \"flex-col\"\n )}\n >\n {children}\n </div>\n {onMultipliedChildrenRender(multiplier - 1)}\n </ContentPrimitive>\n <ContentPrimitive\n role=\"presentation\"\n aria-hidden=\"true\"\n {...contentProps}\n style={style}\n className={cn(\n marqueeContentVariants({\n side: context.side,\n dir: context.dir,\n pauseOnHover: context.pauseOnHover,\n reverse: context.reverse,\n className,\n }),\n isVertical && \"flex-col\"\n )}\n >\n {onMultipliedChildrenRender(multiplier)}\n </ContentPrimitive>\n </>\n );\n}\n\nfunction MarqueeItem(props: DivProps) {\n const { className, asChild, ...itemProps } = props;\n\n const ItemPrimitive = asChild ? Slot : \"div\";\n\n return (\n <ItemPrimitive\n data-slot=\"marquee-item\"\n {...itemProps}\n className={cn(\"shrink-0\", className)}\n />\n );\n}\n\nconst marqueeEdgeVariants = cva(\"pointer-events-none absolute z-10\", {\n variants: {\n side: {\n left: \"top-0 left-0 h-full bg-gradient-to-r from-background to-transparent\",\n right:\n \"top-0 right-0 h-full bg-gradient-to-l from-background to-transparent\",\n top: \"top-0 left-0 w-full bg-gradient-to-b from-background to-transparent\",\n bottom:\n \"bottom-0 left-0 w-full bg-gradient-to-t from-background to-transparent\",\n },\n size: {\n default: \"\",\n sm: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n {\n side: [\"left\", \"right\"],\n size: \"default\",\n className: \"w-1/4\",\n },\n {\n side: [\"left\", \"right\"],\n size: \"sm\",\n className: \"w-1/6\",\n },\n {\n side: [\"left\", \"right\"],\n size: \"lg\",\n className: \"w-1/3\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"default\",\n className: \"h-1/4\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"sm\",\n className: \"h-1/6\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"lg\",\n className: \"h-1/3\",\n },\n ],\n defaultVariants: {\n size: \"default\",\n },\n});\n\ninterface MarqueeEdgeProps\n extends VariantProps<typeof marqueeEdgeVariants>,\n DivProps {}\n\nfunction MarqueeEdge(props: MarqueeEdgeProps) {\n const { side, size, className, asChild, ...edgeProps } = props;\n\n const EdgePrimitive = asChild ? Slot : \"div\";\n\n return (\n <EdgePrimitive\n data-size={size}\n data-slot=\"marquee-edge\"\n {...edgeProps}\n className={cn(marqueeEdgeVariants({ side, size, className }))}\n />\n );\n}\n\nexport {\n MarqueeRoot as Root,\n MarqueeContent as Content,\n MarqueeItem as Item,\n MarqueeEdge as Edge,\n //\n MarqueeRoot as Marquee,\n MarqueeContent,\n MarqueeItem,\n MarqueeEdge,\n // types\n type MarqueeRootProps,\n type MarqueeEdgeProps,\n};\n"],"names":["ROOT_NAME","CONTENT_NAME","createResizeObserverStore","listeners","observer","elements","refCounts","isSupported","notificationScheduled","snapshotCache","notify","callback","cleanup","subscribe","getSnapshot","rootElement","contentElement","orientation","rootDims","contentDims","rootSize","contentSize","rootCache","contentCache","cached","snapshot","observe","entries","hasChanged","entry","element","width","height","currentData","rootRect","contentRect","rootData","contentData","unobserve","rootCount","contentCount","resizeObserverStore","useResizeObserverStore","rootRef","contentRef","onSubscribe","React","DirectionContext","useDirection","dir","contextDir","MarqueeContext","useMarqueeContext","consumerName","context","MarqueeRoot","props","side","dirProp","speed","delay","loopCount","gap","asChild","autoFill","pauseOnHover","pauseOnKeyboard","reverse","className","styleProp","ref","marqueeProps","composedRef","useComposedRefs","paused","setPaused","onKeyDown","event","prev","dimensions","duration","safeSpeed","multiplier","style","contextValue","MarqueePrimitive","Slot","jsx","cn","marqueeContentVariants","cva","MarqueeContent","children","contentProps","isVertical","isRtl","onMultipliedChildrenRender","count","_","i","ContentPrimitive","jsxs","Fragment","MarqueeItem","itemProps","marqueeEdgeVariants","MarqueeEdge","size","edgeProps"],"mappings":"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"}
1
+ {"version":3,"file":"Marquee.js","sources":["../../../../src/components/Marquee/Marquee.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn, Slot, useComposedRefs } from \"@dsui/ui/index\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nconst ROOT_NAME = \"Marquee\";\nconst CONTENT_NAME = \"MarqueeContent\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Direction = \"ltr\" | \"rtl\";\n\ntype RootElement = React.ComponentRef<typeof MarqueeRoot>;\ntype ContentElement = React.ComponentRef<typeof MarqueeContent>;\n\ninterface Dimensions {\n width: number;\n height: number;\n}\n\ninterface ElementDimensions {\n rootSize: number;\n contentSize: number;\n}\n\nfunction createResizeObserverStore() {\n const listeners = new Set<() => void>();\n let observer: ResizeObserver | null = null;\n const elements = new Map<Element, Dimensions>();\n const refCounts = new Map<Element, number>();\n const isSupported = typeof ResizeObserver !== \"undefined\";\n let notificationScheduled = false;\n\n const snapshotCache = new WeakMap<\n Element,\n WeakMap<\n Element,\n { horizontal: ElementDimensions; vertical: ElementDimensions }\n >\n >();\n\n function notify() {\n if (notificationScheduled) return;\n notificationScheduled = true;\n queueMicrotask(() => {\n notificationScheduled = false;\n for (const callback of listeners) {\n callback();\n }\n });\n }\n\n function cleanup() {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n elements.clear();\n refCounts.clear();\n }\n\n function subscribe(callback: () => void) {\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n cleanup();\n }\n };\n }\n\n function getSnapshot(\n rootElement: RootElement | null,\n contentElement: ContentElement | null,\n orientation: Orientation\n ): ElementDimensions | null {\n if (!rootElement || !contentElement) return null;\n\n const rootDims = elements.get(rootElement);\n const contentDims = elements.get(contentElement);\n\n if (!rootDims || !contentDims) return null;\n\n const rootSize =\n orientation === \"vertical\" ? rootDims.height : rootDims.width;\n const contentSize =\n orientation === \"vertical\" ? contentDims.height : contentDims.width;\n\n let rootCache = snapshotCache.get(rootElement);\n if (!rootCache) {\n rootCache = new WeakMap();\n snapshotCache.set(rootElement, rootCache);\n }\n\n let contentCache = rootCache.get(contentElement);\n if (!contentCache) {\n contentCache = {\n horizontal: { rootSize: -1, contentSize: -1 },\n vertical: { rootSize: -1, contentSize: -1 },\n };\n rootCache.set(contentElement, contentCache);\n }\n\n const cached = contentCache[orientation];\n if (cached.rootSize === rootSize && cached.contentSize === contentSize) {\n return cached;\n }\n\n const snapshot = { rootSize, contentSize };\n contentCache[orientation] = snapshot;\n return snapshot;\n }\n\n function observe(\n rootElement: RootElement | null,\n contentElement: Element | null\n ) {\n if (!isSupported || !rootElement || !contentElement) return;\n\n if (!observer) {\n observer = new ResizeObserver((entries) => {\n let hasChanged = false;\n\n for (const entry of entries) {\n const element = entry.target;\n const { width, height } = entry.contentRect;\n\n const currentData = elements.get(element);\n\n if (\n !currentData ||\n currentData.width !== width ||\n currentData.height !== height\n ) {\n elements.set(element, { width, height });\n hasChanged = true;\n }\n }\n\n if (hasChanged) {\n notify();\n }\n });\n }\n\n refCounts.set(rootElement, (refCounts.get(rootElement) ?? 0) + 1);\n refCounts.set(contentElement, (refCounts.get(contentElement) ?? 0) + 1);\n\n observer.observe(rootElement);\n observer.observe(contentElement);\n\n const rootRect = rootElement.getBoundingClientRect();\n const contentRect = contentElement.getBoundingClientRect();\n\n const rootData = { width: rootRect.width, height: rootRect.height };\n const contentData = {\n width: contentRect.width,\n height: contentRect.height,\n };\n\n elements.set(rootElement, rootData);\n elements.set(contentElement, contentData);\n\n if (\n rootData.width > 0 &&\n rootData.height > 0 &&\n contentData.width > 0 &&\n contentData.height > 0\n ) {\n notify();\n }\n }\n\n function unobserve(\n rootElement: RootElement | null,\n contentElement: Element | null\n ) {\n if (!observer || !rootElement || !contentElement) return;\n\n const rootCount = (refCounts.get(rootElement) ?? 1) - 1;\n const contentCount = (refCounts.get(contentElement) ?? 1) - 1;\n\n if (rootCount <= 0) {\n observer.unobserve(rootElement);\n elements.delete(rootElement);\n refCounts.delete(rootElement);\n } else {\n refCounts.set(rootElement, rootCount);\n }\n\n if (contentCount <= 0) {\n observer.unobserve(contentElement);\n elements.delete(contentElement);\n refCounts.delete(contentElement);\n } else {\n refCounts.set(contentElement, contentCount);\n }\n }\n\n return {\n subscribe,\n getSnapshot,\n observe,\n unobserve,\n };\n}\n\nconst resizeObserverStore = createResizeObserverStore();\n\nfunction useResizeObserverStore(\n rootRef: React.RefObject<RootElement | null>,\n contentRef: React.RefObject<ContentElement | null>,\n orientation: Orientation\n) {\n const onSubscribe = React.useCallback(\n (callback: () => void) => resizeObserverStore.subscribe(callback),\n []\n );\n\n const getSnapshot = React.useCallback(\n () =>\n resizeObserverStore.getSnapshot(\n rootRef.current,\n contentRef.current,\n orientation\n ),\n [rootRef, contentRef, orientation]\n );\n\n return React.useSyncExternalStore(onSubscribe, getSnapshot, getSnapshot);\n}\n\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\nfunction useDirection(dir?: Direction): Direction {\n const contextDir = React.useContext(DirectionContext);\n return dir ?? contextDir ?? \"ltr\";\n}\n\ninterface DivProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\ninterface MarqueeContextValue {\n side: Side;\n orientation: Orientation;\n dir: Direction;\n speed: number;\n loopCount: number;\n contentRef: React.RefObject<ContentElement | null>;\n rootRef: React.RefObject<RootElement | null>;\n autoFill: boolean;\n pauseOnHover: boolean;\n pauseOnKeyboard: boolean;\n reverse: boolean;\n paused: boolean;\n}\n\nconst MarqueeContext = React.createContext<MarqueeContextValue | null>(null);\n\nfunction useMarqueeContext(consumerName: string) {\n const context = React.useContext(MarqueeContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface MarqueeRootProps extends DivProps {\n side?: Side;\n dir?: Direction;\n speed?: number;\n delay?: number;\n loopCount?: number;\n gap?: string | number;\n autoFill?: boolean;\n pauseOnHover?: boolean;\n pauseOnKeyboard?: boolean;\n reverse?: boolean;\n}\n\nfunction MarqueeRoot(props: MarqueeRootProps) {\n const {\n side = \"left\",\n dir: dirProp,\n speed = 50,\n delay = 0,\n loopCount = 0,\n gap = \"1rem\",\n asChild,\n autoFill = false,\n pauseOnHover = false,\n pauseOnKeyboard = false,\n reverse = false,\n className,\n style: styleProp,\n ref,\n ...marqueeProps\n } = props;\n\n const orientation: Orientation =\n side === \"top\" || side === \"bottom\" ? \"vertical\" : \"horizontal\";\n\n const dir = useDirection(dirProp);\n\n const rootRef = React.useRef<RootElement>(null);\n const contentRef = React.useRef<ContentElement>(null);\n const composedRef = useComposedRefs(ref, rootRef);\n\n const [paused, setPaused] = React.useState(false);\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (pauseOnKeyboard && event.key === \" \") {\n event.preventDefault();\n setPaused((prev) => !prev);\n }\n },\n [pauseOnKeyboard]\n );\n\n const dimensions = useResizeObserverStore(rootRef, contentRef, orientation);\n\n const duration = React.useMemo(() => {\n const safeSpeed = Math.max(0.001, speed);\n\n if (!dimensions) {\n const defaultDistance = autoFill ? 1000 : 2000;\n return defaultDistance / safeSpeed;\n }\n\n const { rootSize, contentSize } = dimensions;\n\n if (autoFill) {\n const multiplier =\n contentSize < rootSize ? Math.ceil(rootSize / contentSize) : 1;\n return (contentSize * multiplier) / safeSpeed;\n } else {\n return contentSize < rootSize\n ? rootSize / safeSpeed\n : contentSize / safeSpeed;\n }\n }, [dimensions, speed, autoFill]);\n\n const style = React.useMemo<React.CSSProperties>(\n () => ({\n \"--marquee-duration\": `${duration}s`,\n \"--marquee-gap\": gap,\n \"--marquee-delay\": `${delay}s`,\n \"--marquee-loop-count\":\n loopCount === 0 || loopCount === Infinity\n ? \"infinite\"\n : loopCount.toString(),\n ...styleProp,\n }),\n [duration, gap, delay, loopCount, styleProp]\n );\n\n const contextValue = React.useMemo<MarqueeContextValue>(\n () => ({\n side,\n orientation,\n dir,\n speed,\n loopCount,\n contentRef,\n rootRef,\n autoFill,\n paused,\n pauseOnHover,\n pauseOnKeyboard,\n reverse,\n }),\n [\n side,\n orientation,\n dir,\n speed,\n loopCount,\n autoFill,\n paused,\n pauseOnHover,\n pauseOnKeyboard,\n reverse,\n ]\n );\n\n const MarqueePrimitive = asChild ? Slot : \"div\";\n\n return (\n <MarqueeContext.Provider value={contextValue}>\n <div data-slot=\"marquee-wrapper\" className=\"ds:grid\">\n <MarqueePrimitive\n role=\"marquee\"\n aria-live=\"off\"\n data-orientation={orientation}\n data-slot=\"marquee\"\n dir={dir}\n tabIndex={pauseOnKeyboard ? 0 : undefined}\n {...marqueeProps}\n ref={composedRef}\n className={cn(\n \"ds:relative ds:flex ds:overflow-hidden ds:motion-reduce:animate-none\",\n orientation === \"vertical\" && \"ds:h-full ds:flex-col\",\n orientation === \"horizontal\" && \"ds:w-full\",\n paused && \"ds:[&_*]:[animation-play-state:paused]\",\n pauseOnHover && \"ds:group\",\n pauseOnKeyboard &&\n \"ds:rounded-md ds:focus-visible:border-ring ds:focus-visible:outline-none ds:focus-visible:ring-[3px] ds:focus-visible:ring-ring/50\",\n className\n )}\n style={style}\n onKeyDown={pauseOnKeyboard ? onKeyDown : undefined}\n />\n </div>\n </MarqueeContext.Provider>\n );\n}\n\nconst marqueeContentVariants = cva(\n \"ds:flex ds:min-w-full ds:shrink-0 ds:gap-(--marquee-gap)\",\n {\n variants: {\n side: {\n left: \"ds:animate-marquee-left\",\n right: \"ds:animate-marquee-right\",\n top: \"ds:min-h-full ds:min-w-auto ds:animate-marquee-up ds:flex-col\",\n bottom: \"ds:min-h-full ds:min-w-auto ds:animate-marquee-down ds:flex-col\",\n },\n dir: {\n ltr: \"\",\n rtl: \"\",\n },\n pauseOnHover: {\n true: \"ds:group-hover:[animation-play-state:paused]\",\n false: \"\",\n },\n reverse: {\n true: \"ds:[animation-direction:reverse]\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n side: \"left\",\n dir: \"rtl\",\n className: \"ds:animate-marquee-left-rtl\",\n },\n {\n side: \"right\",\n dir: \"rtl\",\n className: \"ds:animate-marquee-right-rtl\",\n },\n ],\n defaultVariants: {\n side: \"left\",\n dir: \"ltr\",\n pauseOnHover: false,\n reverse: false,\n },\n }\n);\n\nfunction MarqueeContent(props: DivProps) {\n const {\n className,\n asChild,\n ref,\n children,\n style: styleProp,\n ...contentProps\n } = props;\n\n const context = useMarqueeContext(CONTENT_NAME);\n const composedRef = useComposedRefs(ref, context.contentRef);\n\n const isVertical = context.orientation === \"vertical\";\n const isRtl = context.dir === \"rtl\";\n\n const dimensions = useResizeObserverStore(\n context.rootRef,\n context.contentRef,\n context.orientation\n );\n\n React.useEffect(() => {\n if (context.rootRef.current && context.contentRef.current) {\n resizeObserverStore.observe(\n context.rootRef.current,\n context.contentRef.current\n );\n\n return () => {\n resizeObserverStore.unobserve(\n context.rootRef.current,\n context.contentRef.current\n );\n };\n }\n }, [context.rootRef, context.contentRef]);\n\n const multiplier = React.useMemo(() => {\n if (!context.autoFill || !dimensions) return 1;\n\n const { rootSize, contentSize } = dimensions;\n if (contentSize === 0) return 1;\n\n return contentSize < rootSize ? Math.ceil(rootSize / contentSize) : 1;\n }, [context.autoFill, dimensions]);\n\n const onMultipliedChildrenRender = React.useCallback(\n (count: number) => {\n return Array.from({ length: Math.max(0, count) }).map((_, i) => (\n <React.Fragment key={i}>{children}</React.Fragment>\n ));\n },\n [children]\n );\n\n const style = React.useMemo(\n () => ({\n ...styleProp,\n animationDuration: \"var(--marquee-duration)\",\n animationDelay: \"var(--marquee-delay)\",\n animationIterationCount: \"var(--marquee-loop-count)\",\n animationDirection: context.reverse ? \"reverse\" : \"normal\",\n }),\n [styleProp, context.reverse]\n );\n\n const ContentPrimitive = asChild ? Slot : \"div\";\n\n return (\n <>\n <ContentPrimitive\n data-orientation={context.orientation}\n data-slot=\"marquee-content\"\n {...contentProps}\n style={style}\n className={cn(\n marqueeContentVariants({\n side: context.side,\n dir: context.dir,\n pauseOnHover: context.pauseOnHover,\n reverse: context.reverse,\n className,\n }),\n isVertical && \"ds:flex-col\",\n isVertical\n ? \"ds:mb-(--marquee-gap)\"\n : isRtl\n ? \"ds:ml-(--marquee-gap)\"\n : \"ds:mr-(--marquee-gap)\"\n )}\n >\n <div\n ref={composedRef}\n className={cn(\n \"ds:flex ds:shrink-0 ds:gap-(--marquee-gap)\",\n isVertical && \"ds:flex-col\"\n )}\n >\n {children}\n </div>\n {onMultipliedChildrenRender(multiplier - 1)}\n </ContentPrimitive>\n <ContentPrimitive\n role=\"presentation\"\n aria-hidden=\"true\"\n {...contentProps}\n style={style}\n className={cn(\n marqueeContentVariants({\n side: context.side,\n dir: context.dir,\n pauseOnHover: context.pauseOnHover,\n reverse: context.reverse,\n className,\n }),\n isVertical && \"ds:flex-col\"\n )}\n >\n {onMultipliedChildrenRender(multiplier)}\n </ContentPrimitive>\n </>\n );\n}\n\nfunction MarqueeItem(props: DivProps) {\n const { className, asChild, ...itemProps } = props;\n\n const ItemPrimitive = asChild ? Slot : \"div\";\n\n return (\n <ItemPrimitive\n data-slot=\"marquee-item\"\n {...itemProps}\n className={cn(\"ds:shrink-0\", className)}\n />\n );\n}\n\nconst marqueeEdgeVariants = cva(\"ds:pointer-events-none ds:absolute ds:z-10\", {\n variants: {\n side: {\n left: \"ds:top-0 ds:left-0 ds:h-full ds:bg-gradient-to-r ds:from-background ds:to-transparent\",\n right:\n \"ds:top-0 ds:right-0 ds:h-full ds:bg-gradient-to-l ds:from-background ds:to-transparent\",\n top: \"ds:top-0 ds:left-0 ds:w-full ds:bg-gradient-to-b ds:from-background ds:to-transparent\",\n bottom:\n \"ds:bottom-0 ds:left-0 ds:w-full ds:bg-gradient-to-t ds:from-background ds:to-transparent\",\n },\n size: {\n default: \"\",\n sm: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n {\n side: [\"left\", \"right\"],\n size: \"default\",\n className: \"ds:w-1/4\",\n },\n {\n side: [\"left\", \"right\"],\n size: \"sm\",\n className: \"ds:w-1/6\",\n },\n {\n side: [\"left\", \"right\"],\n size: \"lg\",\n className: \"ds:w-1/3\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"default\",\n className: \"ds:h-1/4\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"sm\",\n className: \"ds:h-1/6\",\n },\n {\n side: [\"top\", \"bottom\"],\n size: \"lg\",\n className: \"ds:h-1/3\",\n },\n ],\n defaultVariants: {\n size: \"default\",\n },\n});\n\ninterface MarqueeEdgeProps\n extends VariantProps<typeof marqueeEdgeVariants>,\n DivProps {}\n\nfunction MarqueeEdge(props: MarqueeEdgeProps) {\n const { side, size, className, asChild, ...edgeProps } = props;\n\n const EdgePrimitive = asChild ? Slot : \"div\";\n\n return (\n <EdgePrimitive\n data-size={size}\n data-slot=\"marquee-edge\"\n {...edgeProps}\n className={cn(marqueeEdgeVariants({ side, size, className }))}\n />\n );\n}\n\nexport {\n MarqueeRoot as Root,\n MarqueeContent as Content,\n MarqueeItem as Item,\n MarqueeEdge as Edge,\n //\n MarqueeRoot as Marquee,\n MarqueeContent,\n MarqueeItem,\n MarqueeEdge,\n // types\n type MarqueeRootProps,\n type MarqueeEdgeProps,\n};\n"],"names":["ROOT_NAME","CONTENT_NAME","createResizeObserverStore","listeners","observer","elements","refCounts","isSupported","notificationScheduled","snapshotCache","notify","callback","cleanup","subscribe","getSnapshot","rootElement","contentElement","orientation","rootDims","contentDims","rootSize","contentSize","rootCache","contentCache","cached","snapshot","observe","entries","hasChanged","entry","element","width","height","currentData","rootRect","contentRect","rootData","contentData","unobserve","rootCount","contentCount","resizeObserverStore","useResizeObserverStore","rootRef","contentRef","onSubscribe","React","DirectionContext","useDirection","dir","contextDir","MarqueeContext","useMarqueeContext","consumerName","context","MarqueeRoot","props","side","dirProp","speed","delay","loopCount","gap","asChild","autoFill","pauseOnHover","pauseOnKeyboard","reverse","className","styleProp","ref","marqueeProps","composedRef","useComposedRefs","paused","setPaused","onKeyDown","event","prev","dimensions","duration","safeSpeed","multiplier","style","contextValue","MarqueePrimitive","Slot","jsx","cn","marqueeContentVariants","cva","MarqueeContent","children","contentProps","isVertical","isRtl","onMultipliedChildrenRender","count","_","i","ContentPrimitive","jsxs","Fragment","MarqueeItem","itemProps","marqueeEdgeVariants","MarqueeEdge","size","edgeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMA,IAAY,WACZC,IAAe;AAmBrB,SAASC,IAA4B;AACnC,QAAMC,wBAAgB,IAAA;AACtB,MAAIC,IAAkC;AACtC,QAAMC,wBAAe,IAAA,GACfC,wBAAgB,IAAA,GAChBC,IAAc,OAAO,iBAAmB;AAC9C,MAAIC,IAAwB;AAE5B,QAAMC,wBAAoB,QAAA;AAQ1B,WAASC,IAAS;AAChB,IAAIF,MACJA,IAAwB,IACxB,eAAe,MAAM;AACnB,MAAAA,IAAwB;AACxB,iBAAWG,KAAYR;AACrB,QAAAQ,EAAA;AAAA,IAEJ,CAAC;AAAA,EACH;AAEA,WAASC,IAAU;AACjB,IAAIR,MACFA,EAAS,WAAA,GACTA,IAAW,OAEbC,EAAS,MAAA,GACTC,EAAU,MAAA;AAAA,EACZ;AAEA,WAASO,EAAUF,GAAsB;AACvC,WAAAR,EAAU,IAAIQ,CAAQ,GACf,MAAM;AACX,MAAAR,EAAU,OAAOQ,CAAQ,GACrBR,EAAU,SAAS,KACrBS,EAAA;AAAA,IAEJ;AAAA,EACF;AAEA,WAASE,EACPC,GACAC,GACAC,GAC0B;AAC1B,QAAI,CAACF,KAAe,CAACC,EAAgB,QAAO;AAE5C,UAAME,IAAWb,EAAS,IAAIU,CAAW,GACnCI,IAAcd,EAAS,IAAIW,CAAc;AAE/C,QAAI,CAACE,KAAY,CAACC,EAAa,QAAO;AAEtC,UAAMC,IACJH,MAAgB,aAAaC,EAAS,SAASA,EAAS,OACpDG,IACJJ,MAAgB,aAAaE,EAAY,SAASA,EAAY;AAEhE,QAAIG,IAAYb,EAAc,IAAIM,CAAW;AAC7C,IAAKO,MACHA,wBAAgB,QAAA,GAChBb,EAAc,IAAIM,GAAaO,CAAS;AAG1C,QAAIC,IAAeD,EAAU,IAAIN,CAAc;AAC/C,IAAKO,MACHA,IAAe;AAAA,MACb,YAAY,EAAE,UAAU,IAAI,aAAa,GAAA;AAAA,MACzC,UAAU,EAAE,UAAU,IAAI,aAAa,GAAA;AAAA,IAAG,GAE5CD,EAAU,IAAIN,GAAgBO,CAAY;AAG5C,UAAMC,IAASD,EAAaN,CAAW;AACvC,QAAIO,EAAO,aAAaJ,KAAYI,EAAO,gBAAgBH;AACzD,aAAOG;AAGT,UAAMC,IAAW,EAAE,UAAAL,GAAU,aAAAC,EAAA;AAC7B,WAAAE,EAAaN,CAAW,IAAIQ,GACrBA;AAAA,EACT;AAEA,WAASC,EACPX,GACAC,GACA;AACA,QAAI,CAACT,KAAe,CAACQ,KAAe,CAACC,EAAgB;AAErD,IAAKZ,MACHA,IAAW,IAAI,eAAe,CAACuB,MAAY;AACzC,UAAIC,IAAa;AAEjB,iBAAWC,KAASF,GAAS;AAC3B,cAAMG,IAAUD,EAAM,QAChB,EAAE,OAAAE,GAAO,QAAAC,EAAA,IAAWH,EAAM,aAE1BI,IAAc5B,EAAS,IAAIyB,CAAO;AAExC,SACE,CAACG,KACDA,EAAY,UAAUF,KACtBE,EAAY,WAAWD,OAEvB3B,EAAS,IAAIyB,GAAS,EAAE,OAAAC,GAAO,QAAAC,GAAQ,GACvCJ,IAAa;AAAA,MAEjB;AAEA,MAAIA,KACFlB,EAAA;AAAA,IAEJ,CAAC,IAGHJ,EAAU,IAAIS,IAAcT,EAAU,IAAIS,CAAW,KAAK,KAAK,CAAC,GAChET,EAAU,IAAIU,IAAiBV,EAAU,IAAIU,CAAc,KAAK,KAAK,CAAC,GAEtEZ,EAAS,QAAQW,CAAW,GAC5BX,EAAS,QAAQY,CAAc;AAE/B,UAAMkB,IAAWnB,EAAY,sBAAA,GACvBoB,IAAcnB,EAAe,sBAAA,GAE7BoB,IAAW,EAAE,OAAOF,EAAS,OAAO,QAAQA,EAAS,OAAA,GACrDG,IAAc;AAAA,MAClB,OAAOF,EAAY;AAAA,MACnB,QAAQA,EAAY;AAAA,IAAA;AAGtB,IAAA9B,EAAS,IAAIU,GAAaqB,CAAQ,GAClC/B,EAAS,IAAIW,GAAgBqB,CAAW,GAGtCD,EAAS,QAAQ,KACjBA,EAAS,SAAS,KAClBC,EAAY,QAAQ,KACpBA,EAAY,SAAS,KAErB3B,EAAA;AAAA,EAEJ;AAEA,WAAS4B,EACPvB,GACAC,GACA;AACA,QAAI,CAACZ,KAAY,CAACW,KAAe,CAACC,EAAgB;AAElD,UAAMuB,KAAajC,EAAU,IAAIS,CAAW,KAAK,KAAK,GAChDyB,KAAgBlC,EAAU,IAAIU,CAAc,KAAK,KAAK;AAE5D,IAAIuB,KAAa,KACfnC,EAAS,UAAUW,CAAW,GAC9BV,EAAS,OAAOU,CAAW,GAC3BT,EAAU,OAAOS,CAAW,KAE5BT,EAAU,IAAIS,GAAawB,CAAS,GAGlCC,KAAgB,KAClBpC,EAAS,UAAUY,CAAc,GACjCX,EAAS,OAAOW,CAAc,GAC9BV,EAAU,OAAOU,CAAc,KAE/BV,EAAU,IAAIU,GAAgBwB,CAAY;AAAA,EAE9C;AAEA,SAAO;AAAA,IACL,WAAA3B;AAAA,IACA,aAAAC;AAAA,IACA,SAAAY;AAAA,IACA,WAAAY;AAAA,EAAA;AAEJ;AAEA,MAAMG,IAAsBvC,EAAA;AAE5B,SAASwC,EACPC,GACAC,GACA3B,GACA;AACA,QAAM4B,IAAcC,EAAM;AAAA,IACxB,CAACnC,MAAyB8B,EAAoB,UAAU9B,CAAQ;AAAA,IAChE,CAAA;AAAA,EAAC,GAGGG,IAAcgC,EAAM;AAAA,IACxB,MACEL,EAAoB;AAAA,MAClBE,EAAQ;AAAA,MACRC,EAAW;AAAA,MACX3B;AAAA,IAAA;AAAA,IAEJ,CAAC0B,GAASC,GAAY3B,CAAW;AAAA,EAAA;AAGnC,SAAO6B,EAAM,qBAAqBD,GAAa/B,GAAaA,CAAW;AACzE;AAEA,MAAMiC,IAAmBD,EAAM,cAAqC,MAAS;AAE7E,SAASE,EAAaC,GAA4B;AAChD,QAAMC,IAAaJ,EAAM,WAAWC,CAAgB;AACpD,SAAOE,KAAOC,KAAc;AAC9B;AAqBA,MAAMC,IAAiBL,EAAM,cAA0C,IAAI;AAE3E,SAASM,EAAkBC,GAAsB;AAC/C,QAAMC,IAAUR,EAAM,WAAWK,CAAc;AAC/C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,KAAKD,CAAY,4BAA4BrD,CAAS,IAAI;AAE5E,SAAOsD;AACT;AAeA,SAASC,GAAYC,GAAyB;AAC5C,QAAM;AAAA,IACJ,MAAAC,IAAO;AAAA,IACP,KAAKC;AAAA,IACL,OAAAC,IAAQ;AAAA,IACR,OAAAC,IAAQ;AAAA,IACR,WAAAC,IAAY;AAAA,IACZ,KAAAC,IAAM;AAAA,IACN,SAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,cAAAC,IAAe;AAAA,IACf,iBAAAC,IAAkB;AAAA,IAClB,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,OAAOC;AAAA,IACP,KAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDf,GAEEvC,IACJwC,MAAS,SAASA,MAAS,WAAW,aAAa,cAE/CR,IAAMD,EAAaU,CAAO,GAE1Bf,IAAUG,EAAM,OAAoB,IAAI,GACxCF,IAAaE,EAAM,OAAuB,IAAI,GAC9C0B,IAAcC,EAAgBH,GAAK3B,CAAO,GAE1C,CAAC+B,GAAQC,CAAS,IAAI7B,EAAM,SAAS,EAAK,GAE1C8B,IAAY9B,EAAM;AAAA,IACtB,CAAC+B,MAA+B;AAC9B,MAAIX,KAAmBW,EAAM,QAAQ,QACnCA,EAAM,eAAA,GACNF,EAAU,CAACG,MAAS,CAACA,CAAI;AAAA,IAE7B;AAAA,IACA,CAACZ,CAAe;AAAA,EAAA,GAGZa,IAAarC,EAAuBC,GAASC,GAAY3B,CAAW,GAEpE+D,IAAWlC,EAAM,QAAQ,MAAM;AACnC,UAAMmC,IAAY,KAAK,IAAI,MAAOtB,CAAK;AAEvC,QAAI,CAACoB;AAEH,cADwBf,IAAW,MAAO,OACjBiB;AAG3B,UAAM,EAAE,UAAA7D,GAAU,aAAAC,EAAA,IAAgB0D;AAElC,QAAIf,GAAU;AACZ,YAAMkB,IACJ7D,IAAcD,IAAW,KAAK,KAAKA,IAAWC,CAAW,IAAI;AAC/D,aAAQA,IAAc6D,IAAcD;AAAA,IACtC;AACE,aAAO5D,IAAcD,IACjBA,IAAW6D,IACX5D,IAAc4D;AAAA,EAEtB,GAAG,CAACF,GAAYpB,GAAOK,CAAQ,CAAC,GAE1BmB,IAAQrC,EAAM;AAAA,IAClB,OAAO;AAAA,MACL,sBAAsB,GAAGkC,CAAQ;AAAA,MACjC,iBAAiBlB;AAAA,MACjB,mBAAmB,GAAGF,CAAK;AAAA,MAC3B,wBACEC,MAAc,KAAKA,MAAc,QAC7B,aACAA,EAAU,SAAA;AAAA,MAChB,GAAGQ;AAAA,IAAA;AAAA,IAEL,CAACW,GAAUlB,GAAKF,GAAOC,GAAWQ,CAAS;AAAA,EAAA,GAGvCe,IAAetC,EAAM;AAAA,IACzB,OAAO;AAAA,MACL,MAAAW;AAAA,MACA,aAAAxC;AAAA,MACA,KAAAgC;AAAA,MACA,OAAAU;AAAA,MACA,WAAAE;AAAA,MACA,YAAAjB;AAAA,MACA,SAAAD;AAAA,MACA,UAAAqB;AAAA,MACA,QAAAU;AAAA,MACA,cAAAT;AAAA,MACA,iBAAAC;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,IAEF;AAAA,MACEV;AAAA,MACAxC;AAAA,MACAgC;AAAA,MACAU;AAAA,MACAE;AAAA,MACAG;AAAA,MACAU;AAAA,MACAT;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAGIkB,IAAmBtB,IAAUuB,IAAO;AAE1C,SACE,gBAAAC,EAACpC,EAAe,UAAf,EAAwB,OAAOiC,GAC9B,UAAA,gBAAAG,EAAC,OAAA,EAAI,aAAU,mBAAkB,WAAU,WACzC,UAAA,gBAAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkBpE;AAAA,MAClB,aAAU;AAAA,MACV,KAAAgC;AAAA,MACA,UAAUiB,IAAkB,IAAI;AAAA,MAC/B,GAAGK;AAAA,MACJ,KAAKC;AAAA,MACL,WAAWgB;AAAA,QACT;AAAA,QACAvE,MAAgB,cAAc;AAAA,QAC9BA,MAAgB,gBAAgB;AAAA,QAChCyD,KAAU;AAAA,QACVT,KAAgB;AAAA,QAChBC,KACE;AAAA,QACFE;AAAA,MAAA;AAAA,MAEF,OAAAe;AAAA,MACA,WAAWjB,IAAkBU,IAAY;AAAA,IAAA;AAAA,EAAA,GAE7C,EAAA,CACF;AAEJ;AAEA,MAAMa,IAAyBC;AAAA,EAC7B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,QACL,QAAQ;AAAA,MAAA;AAAA,MAEV,KAAK;AAAA,QACH,KAAK;AAAA,QACL,KAAK;AAAA,MAAA;AAAA,MAEP,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,kBAAkB;AAAA,MAChB;AAAA,QACE,MAAM;AAAA,QACN,KAAK;AAAA,QACL,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,MAAM;AAAA,QACN,KAAK;AAAA,QACL,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,KAAK;AAAA,MACL,cAAc;AAAA,MACd,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASC,GAAenC,GAAiB;AACvC,QAAM;AAAA,IACJ,WAAAY;AAAA,IACA,SAAAL;AAAA,IACA,KAAAO;AAAA,IACA,UAAAsB;AAAA,IACA,OAAOvB;AAAA,IACP,GAAGwB;AAAA,EAAA,IACDrC,GAEEF,IAAUF,EAAkBnD,CAAY,GACxCuE,IAAcC,EAAgBH,GAAKhB,EAAQ,UAAU,GAErDwC,IAAaxC,EAAQ,gBAAgB,YACrCyC,IAAQzC,EAAQ,QAAQ,OAExByB,IAAarC;AAAA,IACjBY,EAAQ;AAAA,IACRA,EAAQ;AAAA,IACRA,EAAQ;AAAA,EAAA;AAGV,EAAAR,EAAM,UAAU,MAAM;AACpB,QAAIQ,EAAQ,QAAQ,WAAWA,EAAQ,WAAW;AAChD,aAAAb,EAAoB;AAAA,QAClBa,EAAQ,QAAQ;AAAA,QAChBA,EAAQ,WAAW;AAAA,MAAA,GAGd,MAAM;AACX,QAAAb,EAAoB;AAAA,UAClBa,EAAQ,QAAQ;AAAA,UAChBA,EAAQ,WAAW;AAAA,QAAA;AAAA,MAEvB;AAAA,EAEJ,GAAG,CAACA,EAAQ,SAASA,EAAQ,UAAU,CAAC;AAExC,QAAM4B,IAAapC,EAAM,QAAQ,MAAM;AACrC,QAAI,CAACQ,EAAQ,YAAY,CAACyB,EAAY,QAAO;AAE7C,UAAM,EAAE,UAAA3D,GAAU,aAAAC,EAAA,IAAgB0D;AAClC,WAAI1D,MAAgB,IAAU,IAEvBA,IAAcD,IAAW,KAAK,KAAKA,IAAWC,CAAW,IAAI;AAAA,EACtE,GAAG,CAACiC,EAAQ,UAAUyB,CAAU,CAAC,GAE3BiB,IAA6BlD,EAAM;AAAA,IACvC,CAACmD,MACQ,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAGA,CAAK,GAAG,EAAE,IAAI,CAACC,GAAGC,MACxD,gBAAAZ,EAACzC,EAAM,UAAN,EAAwB,UAAA8C,KAAJO,CAAa,CACnC;AAAA,IAEH,CAACP,CAAQ;AAAA,EAAA,GAGLT,IAAQrC,EAAM;AAAA,IAClB,OAAO;AAAA,MACL,GAAGuB;AAAA,MACH,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,oBAAoBf,EAAQ,UAAU,YAAY;AAAA,IAAA;AAAA,IAEpD,CAACe,GAAWf,EAAQ,OAAO;AAAA,EAAA,GAGvB8C,IAAmBrC,IAAUuB,IAAO;AAE1C,SACE,gBAAAe,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,oBAAkB9C,EAAQ;AAAA,QAC1B,aAAU;AAAA,QACT,GAAGuC;AAAA,QACJ,OAAAV;AAAA,QACA,WAAWK;AAAA,UACTC,EAAuB;AAAA,YACrB,MAAMnC,EAAQ;AAAA,YACd,KAAKA,EAAQ;AAAA,YACb,cAAcA,EAAQ;AAAA,YACtB,SAASA,EAAQ;AAAA,YACjB,WAAAc;AAAA,UAAA,CACD;AAAA,UACD0B,KAAc;AAAA,UACdA,IACI,0BACAC,IACE,0BACA;AAAA,QAAA;AAAA,QAGR,UAAA;AAAA,UAAA,gBAAAR;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKf;AAAA,cACL,WAAWgB;AAAA,gBACT;AAAA,gBACAM,KAAc;AAAA,cAAA;AAAA,cAGf,UAAAF;AAAA,YAAA;AAAA,UAAA;AAAA,UAEFI,EAA2Bd,IAAa,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAE5C,gBAAAK;AAAA,MAACa;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,eAAY;AAAA,QACX,GAAGP;AAAA,QACJ,OAAAV;AAAA,QACA,WAAWK;AAAA,UACTC,EAAuB;AAAA,YACrB,MAAMnC,EAAQ;AAAA,YACd,KAAKA,EAAQ;AAAA,YACb,cAAcA,EAAQ;AAAA,YACtB,SAASA,EAAQ;AAAA,YACjB,WAAAc;AAAA,UAAA,CACD;AAAA,UACD0B,KAAc;AAAA,QAAA;AAAA,QAGf,YAA2BZ,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACxC,GACF;AAEJ;AAEA,SAASqB,GAAY/C,GAAiB;AACpC,QAAM,EAAE,WAAAY,GAAW,SAAAL,GAAS,GAAGyC,MAAchD;AAI7C,SACE,gBAAA+B;AAAA,IAHoBxB,IAAUuB,IAAO;AAAA,IAGpC;AAAA,MACC,aAAU;AAAA,MACT,GAAGkB;AAAA,MACJ,WAAWhB,EAAG,eAAepB,CAAS;AAAA,IAAA;AAAA,EAAA;AAG5C;AAEA,MAAMqC,IAAsBf,EAAI,8CAA8C;AAAA,EAC5E,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OACE;AAAA,MACF,KAAK;AAAA,MACL,QACE;AAAA,IAAA;AAAA,IAEJ,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,kBAAkB;AAAA,IAChB;AAAA,MACE,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,IAEb;AAAA,MACE,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,IAEb;AAAA,MACE,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,IAEb;AAAA,MACE,MAAM,CAAC,OAAO,QAAQ;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,IAEb;AAAA,MACE,MAAM,CAAC,OAAO,QAAQ;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,IAEb;AAAA,MACE,MAAM,CAAC,OAAO,QAAQ;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC;AAMD,SAASgB,GAAYlD,GAAyB;AAC5C,QAAM,EAAE,MAAAC,GAAM,MAAAkD,GAAM,WAAAvC,GAAW,SAAAL,GAAS,GAAG6C,MAAcpD;AAIzD,SACE,gBAAA+B;AAAA,IAHoBxB,IAAUuB,IAAO;AAAA,IAGpC;AAAA,MACC,aAAWqB;AAAA,MACX,aAAU;AAAA,MACT,GAAGC;AAAA,MACJ,WAAWpB,EAAGiB,EAAoB,EAAE,MAAAhD,GAAM,MAAAkD,GAAM,WAAAvC,GAAW,CAAC;AAAA,IAAA;AAAA,EAAA;AAGlE;"}
@@ -1,135 +1,135 @@
1
- import { jsx as e, jsxs as u } from "react/jsx-runtime";
1
+ import { jsx as e, jsxs as h } from "react/jsx-runtime";
2
2
  import * as j from "react";
3
- import { Pagination as T, PaginationContent as _, PaginationItem as m, PaginationPrevious as A, PaginationEllipsis as D, PaginationLink as H, PaginationNext as J } from "../../packages/ui/src/components/pagination.js";
3
+ import { Pagination as T, PaginationContent as _, PaginationItem as u, PaginationPrevious as A, PaginationEllipsis as D, PaginationLink as H, PaginationNext as J } from "../../packages/ui/src/components/pagination.js";
4
4
  import { cn as W } from "../../packages/ui/src/lib/utils.js";
5
5
  import { animationEffect as q } from "../../utils/animations.js";
6
6
  import { ChevronsRight as B, ChevronsLeft as F, MoreHorizontalIcon as b } from "lucide-react";
7
7
  import { Popover as G, PopoverTrigger as K, PopoverContent as Q } from "../../packages/ui/src/components/popover.js";
8
8
  import { Command as U, CommandInput as V, CommandList as X, CommandItem as Y } from "../../packages/ui/src/components/command.js";
9
- const Z = (t, c, r) => {
9
+ const Z = (t, f, r) => {
10
10
  if (t <= r)
11
- return Array.from({ length: t }, (s, f) => f + 1);
12
- const n = [], o = Math.floor(r / 2);
13
- let l = Math.max(1, c - o);
11
+ return Array.from({ length: t }, (o, a) => a + 1);
12
+ const n = [], s = Math.floor(r / 2);
13
+ let l = Math.max(1, f - s);
14
14
  const i = Math.min(t, l + r - 1);
15
15
  i - l + 1 < r && (l = Math.max(1, i - r + 1)), l > 1 && (n.push(1), l > 2 && n.push("..."));
16
- for (let s = l; s <= i; s++)
17
- n.push(s);
16
+ for (let o = l; o <= i; o++)
17
+ n.push(o);
18
18
  return i < t && (i < t - 1 && n.push("..."), n.push(t)), n;
19
19
  }, z = ({
20
20
  position: t,
21
- onJumpPrevious: c,
21
+ onJumpPrevious: f,
22
22
  onJumpNext: r,
23
23
  color: n,
24
- size: o,
24
+ size: s,
25
25
  previousText: l,
26
26
  nextText: i,
27
- jumpType: s = "jump",
28
- total: f,
29
- onPageChange: d
27
+ jumpType: o = "jump",
28
+ total: a,
29
+ onPageChange: m
30
30
  }) => {
31
31
  const [v, C] = j.useState(!1);
32
- return s === "select" ? /* @__PURE__ */ u(G, { open: v, onOpenChange: C, children: [
33
- /* @__PURE__ */ e(K, { asChild: !0, children: /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(D, { size: o, color: n }) }) }),
34
- /* @__PURE__ */ e(Q, { className: "w-40 p-0", children: /* @__PURE__ */ u(U, { children: [
32
+ return o === "select" ? /* @__PURE__ */ h(G, { open: v, onOpenChange: C, children: [
33
+ /* @__PURE__ */ e(K, { asChild: !0, children: /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(D, { size: s, color: n }) }) }),
34
+ /* @__PURE__ */ e(Q, { className: "ds:w-40 ds:p-0", children: /* @__PURE__ */ h(U, { children: [
35
35
  /* @__PURE__ */ e(V, { placeholder: "Search pages..." }),
36
- /* @__PURE__ */ e(X, { children: f && Array.from({ length: f }, (a, N) => N + 1).map((a) => /* @__PURE__ */ u(
36
+ /* @__PURE__ */ e(X, { children: a && Array.from({ length: a }, (d, N) => N + 1).map((d) => /* @__PURE__ */ h(
37
37
  Y,
38
38
  {
39
39
  onSelect: () => {
40
- d?.(a), C(!1);
40
+ m?.(d), C(!1);
41
41
  },
42
42
  children: [
43
43
  "Page ",
44
- a
44
+ d
45
45
  ]
46
46
  },
47
- a
47
+ d
48
48
  )) })
49
49
  ] }) })
50
- ] }) : /* @__PURE__ */ e(m, { className: "group", children: t === "before" ? /* @__PURE__ */ u(
50
+ ] }) : /* @__PURE__ */ e(u, { className: "ds:group", children: t === "before" ? /* @__PURE__ */ h(
51
51
  A,
52
52
  {
53
53
  href: "#",
54
- onClick: (a) => {
55
- a.preventDefault(), c?.();
54
+ onClick: (d) => {
55
+ d.preventDefault(), f?.();
56
56
  },
57
57
  color: n,
58
- size: o,
58
+ size: s,
59
59
  hideIcon: !0,
60
- className: "peer",
60
+ className: "ds:peer",
61
61
  children: [
62
- /* @__PURE__ */ e("span", { className: "hidden group-hover:block leading-none", children: l }),
63
- /* @__PURE__ */ e(b, { className: "group-hover:hidden cursor-pointer" })
62
+ /* @__PURE__ */ e("span", { className: "ds:hidden ds:group-hover:block ds:leading-none", children: l }),
63
+ /* @__PURE__ */ e(b, { className: "ds:group-hover:hidden ds:cursor-pointer" })
64
64
  ]
65
65
  }
66
- ) : /* @__PURE__ */ u(
66
+ ) : /* @__PURE__ */ h(
67
67
  J,
68
68
  {
69
69
  href: "#",
70
- onClick: (a) => {
71
- a.preventDefault(), r?.();
70
+ onClick: (d) => {
71
+ d.preventDefault(), r?.();
72
72
  },
73
73
  color: n,
74
- size: o,
74
+ size: s,
75
75
  hideIcon: !0,
76
76
  children: [
77
- /* @__PURE__ */ e("span", { className: "hidden group-hover:block leading-none", children: i }),
78
- /* @__PURE__ */ e(b, { className: "group-hover:hidden cursor-pointer" })
77
+ /* @__PURE__ */ e("span", { className: "ds:hidden ds:group-hover:block ds:leading-none", children: i }),
78
+ /* @__PURE__ */ e(b, { className: "ds:group-hover:hidden ds:cursor-pointer" })
79
79
  ]
80
80
  }
81
81
  ) });
82
82
  }, ee = j.forwardRef(
83
83
  ({
84
84
  className: t,
85
- animation: c,
85
+ animation: f,
86
86
  total: r,
87
87
  currentPage: n = 1,
88
- onPageChange: o,
88
+ onPageChange: s,
89
89
  showPreviousNext: l = !0,
90
90
  color: i = "muted",
91
- size: s,
92
- maxPages: f = 5,
93
- previousText: d,
91
+ size: o,
92
+ maxPages: a = 5,
93
+ previousText: m,
94
94
  nextText: v,
95
95
  jumpOnEllipsis: C = !1,
96
- jumpType: a = "jump",
96
+ jumpType: d = "jump",
97
97
  children: N,
98
98
  ...g
99
99
  }, P) => {
100
- const I = j.useMemo(() => c ? q({
101
- animation: c,
100
+ const I = j.useMemo(() => f ? q({
101
+ animation: f,
102
102
  children: N,
103
103
  className: t,
104
104
  rootClassName: "",
105
105
  variantType: void 0,
106
106
  ...g
107
- }) : null, [c, g, t, N]), S = () => d === !1 ? !1 : d === !0 ? "Previous" : d, w = () => v === !1 ? !1 : v === !0 ? "Next" : v, E = () => {
108
- const p = Math.max(1, n - f);
109
- o?.(p);
107
+ }) : null, [f, g, t, N]), S = () => m === !1 ? !1 : m === !0 ? "Previous" : m, w = () => v === !1 ? !1 : v === !0 ? "Next" : v, E = () => {
108
+ const c = Math.max(1, n - a);
109
+ s?.(c);
110
110
  }, L = () => {
111
- const p = Math.min(r, n + f);
112
- o?.(p);
111
+ const c = Math.min(r, n + a);
112
+ s?.(c);
113
113
  }, O = () => {
114
114
  if (!r) return N;
115
- const p = Z(r, n, f);
116
- return /* @__PURE__ */ u(_, { children: [
117
- l && /* @__PURE__ */ e(m, { className: "flex justify-center", children: /* @__PURE__ */ e(
115
+ const c = Z(r, n, a);
116
+ return /* @__PURE__ */ h(_, { children: [
117
+ l && /* @__PURE__ */ e(u, { className: "ds:flex ds:justify-center", children: /* @__PURE__ */ e(
118
118
  A,
119
119
  {
120
120
  href: "#",
121
- onClick: (h) => {
122
- h.preventDefault(), n > 1 && o?.(n - 1);
121
+ onClick: (p) => {
122
+ p.preventDefault(), n > 1 && s?.(n - 1);
123
123
  },
124
124
  color: i,
125
- size: s,
125
+ size: o,
126
126
  children: S()
127
127
  }
128
128
  ) }),
129
- p.map((h, k) => {
130
- if (h === "...") {
129
+ c.map((p, k) => {
130
+ if (p === "...") {
131
131
  if (C) {
132
- const M = k, R = p.findIndex(
132
+ const M = k, R = c.findIndex(
133
133
  (x) => typeof x == "number" && x === n
134
134
  ), $ = M < R ? "before" : "after";
135
135
  return /* @__PURE__ */ e(
@@ -139,42 +139,42 @@ const Z = (t, c, r) => {
139
139
  onJumpPrevious: E,
140
140
  onJumpNext: L,
141
141
  color: i,
142
- size: s,
142
+ size: o,
143
143
  previousText: /* @__PURE__ */ e(F, {}),
144
144
  nextText: /* @__PURE__ */ e(B, {}),
145
- jumpType: a,
145
+ jumpType: d,
146
146
  total: r,
147
- onPageChange: o
147
+ onPageChange: s
148
148
  },
149
149
  `ellipsis-${k}`
150
150
  );
151
151
  }
152
- return /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(D, { size: s, color: i }) }, `ellipsis-${k}`);
152
+ return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(D, { size: o, color: i }) }, `ellipsis-${k}`);
153
153
  }
154
- const y = h;
155
- return /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(
154
+ const y = p;
155
+ return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(
156
156
  H,
157
157
  {
158
158
  href: "#",
159
159
  isActive: y === n,
160
160
  onClick: (M) => {
161
- M.preventDefault(), o?.(y);
161
+ M.preventDefault(), s?.(y);
162
162
  },
163
163
  color: i,
164
- size: s,
164
+ size: o,
165
165
  children: y
166
166
  }
167
167
  ) }, y);
168
168
  }),
169
- l && /* @__PURE__ */ e(m, { className: "flex justify-center", children: /* @__PURE__ */ e(
169
+ l && /* @__PURE__ */ e(u, { className: "ds:flex ds:justify-center", children: /* @__PURE__ */ e(
170
170
  J,
171
171
  {
172
172
  href: "#",
173
- onClick: (h) => {
174
- h.preventDefault(), n < r && o?.(n + 1);
173
+ onClick: (p) => {
174
+ p.preventDefault(), n < r && s?.(n + 1);
175
175
  },
176
176
  color: i,
177
- size: s,
177
+ size: o,
178
178
  children: w()
179
179
  }
180
180
  ) })
@@ -200,7 +200,7 @@ export {
200
200
  ee as Pagination,
201
201
  _ as PaginationContent,
202
202
  D as PaginationEllipsis,
203
- m as PaginationItem,
203
+ u as PaginationItem,
204
204
  H as PaginationLink,
205
205
  J as PaginationNext,
206
206
  A as PaginationPrevious
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n Pagination as SPagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n} from \"@dsui/ui/components/pagination\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport type { ButtonAnimation } from \"@/types/variables\";\nimport { animationEffect } from \"@/utils/animations\";\nimport { ChevronsLeft, ChevronsRight, MoreHorizontalIcon } from \"lucide-react\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@dsui/ui/components/popover\";\nimport {\n Command,\n CommandInput,\n CommandList,\n CommandItem,\n} from \"@dsui/ui/components/command\";\nimport type { Button } from \"../Button\";\n\ntype PaginationItemType =\n | number\n | \"...\"\n | { page: number; isActive?: boolean; disabled?: boolean };\n\ntype PaginationWrapperProps = React.ComponentProps<typeof SPagination> & {\n animation?: ButtonAnimation;\n total?: number;\n currentPage?: number;\n onPageChange?: (page: number) => void;\n showPreviousNext?: boolean;\n maxPages?: number; // số pages hiển thị\n previousText?: string | boolean;\n nextText?: string | boolean;\n jumpOnEllipsis?: boolean; // khi hover vào ellipsis thì hiện thành nút next/previous\n jumpType?: \"jump\" | \"select\"; // jump type for ellipsis interaction\n} & Pick<React.ComponentProps<typeof Button>, \"size\" | \"color\">;\n\ntype AnimResult = {\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n};\n\nconst generatePages = (\n total: number,\n currentPage: number,\n maxPages: number\n): PaginationItemType[] => {\n if (total <= maxPages) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const pages: PaginationItemType[] = [];\n const halfSize = Math.floor(maxPages / 2);\n let start = Math.max(1, currentPage - halfSize);\n const end = Math.min(total, start + maxPages - 1);\n\n if (end - start + 1 < maxPages) {\n start = Math.max(1, end - maxPages + 1);\n }\n\n // Add first page and ellipsis if needed\n if (start > 1) {\n pages.push(1);\n if (start > 2) {\n pages.push(\"...\");\n }\n }\n\n // Add middle pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis and last page if needed\n if (end < total) {\n if (end < total - 1) {\n pages.push(\"...\");\n }\n pages.push(total);\n }\n\n return pages;\n};\n\nconst PaginationEllipsisWithJump = ({\n position,\n onJumpPrevious,\n onJumpNext,\n color,\n size,\n previousText,\n nextText,\n jumpType = \"jump\",\n total,\n onPageChange,\n}: {\n position: \"before\" | \"after\";\n onJumpPrevious?: () => void;\n onJumpNext?: () => void;\n color?: PaginationWrapperProps[\"color\"];\n size?: PaginationWrapperProps[\"size\"];\n previousText?: React.ReactNode;\n nextText?: React.ReactNode;\n jumpType?: \"jump\" | \"select\";\n total?: number;\n onPageChange?: (page: number) => void;\n}) => {\n const [popoverOpen, setPopoverOpen] = React.useState(false);\n\n if (jumpType === \"select\") {\n return (\n <Popover open={popoverOpen} onOpenChange={setPopoverOpen}>\n <PopoverTrigger asChild>\n <PaginationItem>\n <PaginationEllipsis size={size} color={color} />\n </PaginationItem>\n </PopoverTrigger>\n <PopoverContent className=\"w-40 p-0\">\n <Command>\n <CommandInput placeholder=\"Search pages...\" />\n <CommandList>\n {total &&\n Array.from({ length: total }, (_, i) => i + 1).map((page) => (\n <CommandItem\n key={page}\n onSelect={() => {\n onPageChange?.(page);\n setPopoverOpen(false);\n }}\n >\n Page {page}\n </CommandItem>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <PaginationItem className=\"group\">\n {position === \"before\" ? (\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n onJumpPrevious?.();\n }}\n color={color}\n size={size}\n hideIcon\n className=\"peer\"\n >\n <span className=\"hidden group-hover:block leading-none\">\n {previousText}\n </span>\n <MoreHorizontalIcon className=\"group-hover:hidden cursor-pointer\" />\n </PaginationPrevious>\n ) : (\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n onJumpNext?.();\n }}\n color={color}\n size={size}\n hideIcon\n >\n <span className=\"hidden group-hover:block leading-none\">\n {nextText}\n </span>\n <MoreHorizontalIcon className=\"group-hover:hidden cursor-pointer\" />\n </PaginationNext>\n )}\n </PaginationItem>\n );\n};\n\nconst Pagination = React.forwardRef<HTMLElement, PaginationWrapperProps>(\n (\n {\n className,\n animation,\n total,\n currentPage = 1,\n onPageChange,\n showPreviousNext = true,\n color = \"muted\",\n size,\n maxPages = 5,\n previousText,\n nextText,\n jumpOnEllipsis = false,\n jumpType = \"jump\",\n children,\n ...props\n },\n ref\n ) => {\n const paginationAnimation = React.useMemo<AnimResult | null>(() => {\n if (!animation) return null;\n return animationEffect<ButtonAnimation, string | undefined>({\n animation,\n children,\n className,\n rootClassName: \"\",\n variantType: undefined,\n ...props,\n });\n }, [animation, props, className, children]);\n\n const getPreviousText = () => {\n if (previousText === false) return false;\n if (previousText === true) return \"Previous\";\n return previousText;\n };\n\n const getNextText = () => {\n if (nextText === false) return false;\n if (nextText === true) return \"Next\";\n return nextText;\n };\n\n const handleJumpPrevious = () => {\n const newPage = Math.max(1, currentPage - maxPages);\n onPageChange?.(newPage);\n };\n\n const handleJumpNext = () => {\n const newPage = Math.min(total!, currentPage + maxPages);\n onPageChange?.(newPage);\n };\n\n const renderItems = () => {\n if (!total) return children;\n\n const pages = generatePages(total, currentPage, maxPages);\n\n return (\n <PaginationContent>\n {showPreviousNext && (\n <PaginationItem className=\"flex justify-center\">\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage > 1) onPageChange?.(currentPage - 1);\n }}\n color={color}\n size={size}\n >\n {getPreviousText()}\n </PaginationPrevious>\n </PaginationItem>\n )}\n {pages.map((item, index) => {\n if (item === \"...\") {\n if (jumpOnEllipsis) {\n // Determine if this ellipsis is before or after the active page\n const ellipsisIndex = index;\n const activePageIndex = pages.findIndex(\n (page) => typeof page === \"number\" && page === currentPage\n );\n const position =\n ellipsisIndex < activePageIndex ? \"before\" : \"after\";\n\n return (\n <PaginationEllipsisWithJump\n key={`ellipsis-${index}`}\n position={position}\n onJumpPrevious={handleJumpPrevious}\n onJumpNext={handleJumpNext}\n color={color}\n size={size}\n previousText={<ChevronsLeft />}\n nextText={<ChevronsRight />}\n jumpType={jumpType}\n total={total}\n onPageChange={onPageChange}\n />\n );\n }\n return (\n <PaginationItem key={`ellipsis-${index}`}>\n <PaginationEllipsis size={size} color={color} />\n </PaginationItem>\n );\n }\n\n const page = item as number;\n const isActive = page === currentPage;\n\n return (\n <PaginationItem key={page}>\n <PaginationLink\n href=\"#\"\n isActive={isActive}\n onClick={(e) => {\n e.preventDefault();\n onPageChange?.(page);\n }}\n color={color}\n size={size}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n {showPreviousNext && (\n <PaginationItem className=\"flex justify-center\">\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage < total) onPageChange?.(currentPage + 1);\n }}\n color={color}\n size={size}\n >\n {getNextText()}\n </PaginationNext>\n </PaginationItem>\n )}\n </PaginationContent>\n );\n };\n\n return (\n <SPagination\n ref={ref}\n className={cn(className, paginationAnimation?.className)}\n style={{\n ...(props.style || {}),\n ...(paginationAnimation?.style || {}),\n }}\n {...props}\n >\n {paginationAnimation?.children ?? renderItems()}\n </SPagination>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n type PaginationWrapperProps,\n type PaginationItemType,\n};\n"],"names":["generatePages","total","currentPage","maxPages","_","i","pages","halfSize","start","end","PaginationEllipsisWithJump","position","onJumpPrevious","onJumpNext","color","size","previousText","nextText","jumpType","onPageChange","popoverOpen","setPopoverOpen","React","jsxs","Popover","jsx","PopoverTrigger","PaginationItem","PaginationEllipsis","PopoverContent","Command","CommandInput","CommandList","page","CommandItem","PaginationPrevious","e","MoreHorizontalIcon","PaginationNext","Pagination","className","animation","showPreviousNext","jumpOnEllipsis","children","props","ref","paginationAnimation","animationEffect","getPreviousText","getNextText","handleJumpPrevious","newPage","handleJumpNext","renderItems","PaginationContent","item","index","ellipsisIndex","activePageIndex","ChevronsLeft","ChevronsRight","PaginationLink","SPagination","cn"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n Pagination as SPagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n} from \"@dsui/ui/components/pagination\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport type { ButtonAnimation } from \"@/types/variables\";\nimport { animationEffect } from \"@/utils/animations\";\nimport { ChevronsLeft, ChevronsRight, MoreHorizontalIcon } from \"lucide-react\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@dsui/ui/components/popover\";\nimport {\n Command,\n CommandInput,\n CommandList,\n CommandItem,\n} from \"@dsui/ui/components/command\";\nimport type { Button } from \"../Button\";\n\ntype PaginationItemType =\n | number\n | \"...\"\n | { page: number; isActive?: boolean; disabled?: boolean };\n\ntype PaginationWrapperProps = React.ComponentProps<typeof SPagination> & {\n animation?: ButtonAnimation;\n total?: number;\n currentPage?: number;\n onPageChange?: (page: number) => void;\n showPreviousNext?: boolean;\n maxPages?: number; // số pages hiển thị\n previousText?: string | boolean;\n nextText?: string | boolean;\n jumpOnEllipsis?: boolean; // khi hover vào ellipsis thì hiện thành nút next/previous\n jumpType?: \"jump\" | \"select\"; // jump type for ellipsis interaction\n} & Pick<React.ComponentProps<typeof Button>, \"size\" | \"color\">;\n\ntype AnimResult = {\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n};\n\nconst generatePages = (\n total: number,\n currentPage: number,\n maxPages: number\n): PaginationItemType[] => {\n if (total <= maxPages) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const pages: PaginationItemType[] = [];\n const halfSize = Math.floor(maxPages / 2);\n let start = Math.max(1, currentPage - halfSize);\n const end = Math.min(total, start + maxPages - 1);\n\n if (end - start + 1 < maxPages) {\n start = Math.max(1, end - maxPages + 1);\n }\n\n // Add first page and ellipsis if needed\n if (start > 1) {\n pages.push(1);\n if (start > 2) {\n pages.push(\"...\");\n }\n }\n\n // Add middle pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis and last page if needed\n if (end < total) {\n if (end < total - 1) {\n pages.push(\"...\");\n }\n pages.push(total);\n }\n\n return pages;\n};\n\nconst PaginationEllipsisWithJump = ({\n position,\n onJumpPrevious,\n onJumpNext,\n color,\n size,\n previousText,\n nextText,\n jumpType = \"jump\",\n total,\n onPageChange,\n}: {\n position: \"before\" | \"after\";\n onJumpPrevious?: () => void;\n onJumpNext?: () => void;\n color?: PaginationWrapperProps[\"color\"];\n size?: PaginationWrapperProps[\"size\"];\n previousText?: React.ReactNode;\n nextText?: React.ReactNode;\n jumpType?: \"jump\" | \"select\";\n total?: number;\n onPageChange?: (page: number) => void;\n}) => {\n const [popoverOpen, setPopoverOpen] = React.useState(false);\n\n if (jumpType === \"select\") {\n return (\n <Popover open={popoverOpen} onOpenChange={setPopoverOpen}>\n <PopoverTrigger asChild>\n <PaginationItem>\n <PaginationEllipsis size={size} color={color} />\n </PaginationItem>\n </PopoverTrigger>\n <PopoverContent className=\"ds:w-40 ds:p-0\">\n <Command>\n <CommandInput placeholder=\"Search pages...\" />\n <CommandList>\n {total &&\n Array.from({ length: total }, (_, i) => i + 1).map((page) => (\n <CommandItem\n key={page}\n onSelect={() => {\n onPageChange?.(page);\n setPopoverOpen(false);\n }}\n >\n Page {page}\n </CommandItem>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <PaginationItem className=\"ds:group\">\n {position === \"before\" ? (\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n onJumpPrevious?.();\n }}\n color={color}\n size={size}\n hideIcon\n className=\"ds:peer\"\n >\n <span className=\"ds:hidden ds:group-hover:block ds:leading-none\">\n {previousText}\n </span>\n <MoreHorizontalIcon className=\"ds:group-hover:hidden ds:cursor-pointer\" />\n </PaginationPrevious>\n ) : (\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n onJumpNext?.();\n }}\n color={color}\n size={size}\n hideIcon\n >\n <span className=\"ds:hidden ds:group-hover:block ds:leading-none\">\n {nextText}\n </span>\n <MoreHorizontalIcon className=\"ds:group-hover:hidden ds:cursor-pointer\" />\n </PaginationNext>\n )}\n </PaginationItem>\n );\n};\n\nconst Pagination = React.forwardRef<HTMLElement, PaginationWrapperProps>(\n (\n {\n className,\n animation,\n total,\n currentPage = 1,\n onPageChange,\n showPreviousNext = true,\n color = \"muted\",\n size,\n maxPages = 5,\n previousText,\n nextText,\n jumpOnEllipsis = false,\n jumpType = \"jump\",\n children,\n ...props\n },\n ref\n ) => {\n const paginationAnimation = React.useMemo<AnimResult | null>(() => {\n if (!animation) return null;\n return animationEffect<ButtonAnimation, string | undefined>({\n animation,\n children,\n className,\n rootClassName: \"\",\n variantType: undefined,\n ...props,\n });\n }, [animation, props, className, children]);\n\n const getPreviousText = () => {\n if (previousText === false) return false;\n if (previousText === true) return \"Previous\";\n return previousText;\n };\n\n const getNextText = () => {\n if (nextText === false) return false;\n if (nextText === true) return \"Next\";\n return nextText;\n };\n\n const handleJumpPrevious = () => {\n const newPage = Math.max(1, currentPage - maxPages);\n onPageChange?.(newPage);\n };\n\n const handleJumpNext = () => {\n const newPage = Math.min(total!, currentPage + maxPages);\n onPageChange?.(newPage);\n };\n\n const renderItems = () => {\n if (!total) return children;\n\n const pages = generatePages(total, currentPage, maxPages);\n\n return (\n <PaginationContent>\n {showPreviousNext && (\n <PaginationItem className=\"ds:flex ds:justify-center\">\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage > 1) onPageChange?.(currentPage - 1);\n }}\n color={color}\n size={size}\n >\n {getPreviousText()}\n </PaginationPrevious>\n </PaginationItem>\n )}\n {pages.map((item, index) => {\n if (item === \"...\") {\n if (jumpOnEllipsis) {\n // Determine if this ellipsis is before or after the active page\n const ellipsisIndex = index;\n const activePageIndex = pages.findIndex(\n (page) => typeof page === \"number\" && page === currentPage\n );\n const position =\n ellipsisIndex < activePageIndex ? \"before\" : \"after\";\n\n return (\n <PaginationEllipsisWithJump\n key={`ellipsis-${index}`}\n position={position}\n onJumpPrevious={handleJumpPrevious}\n onJumpNext={handleJumpNext}\n color={color}\n size={size}\n previousText={<ChevronsLeft />}\n nextText={<ChevronsRight />}\n jumpType={jumpType}\n total={total}\n onPageChange={onPageChange}\n />\n );\n }\n return (\n <PaginationItem key={`ellipsis-${index}`}>\n <PaginationEllipsis size={size} color={color} />\n </PaginationItem>\n );\n }\n\n const page = item as number;\n const isActive = page === currentPage;\n\n return (\n <PaginationItem key={page}>\n <PaginationLink\n href=\"#\"\n isActive={isActive}\n onClick={(e) => {\n e.preventDefault();\n onPageChange?.(page);\n }}\n color={color}\n size={size}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n {showPreviousNext && (\n <PaginationItem className=\"ds:flex ds:justify-center\">\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (currentPage < total) onPageChange?.(currentPage + 1);\n }}\n color={color}\n size={size}\n >\n {getNextText()}\n </PaginationNext>\n </PaginationItem>\n )}\n </PaginationContent>\n );\n };\n\n return (\n <SPagination\n ref={ref}\n className={cn(className, paginationAnimation?.className)}\n style={{\n ...(props.style || {}),\n ...(paginationAnimation?.style || {}),\n }}\n {...props}\n >\n {paginationAnimation?.children ?? renderItems()}\n </SPagination>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n type PaginationWrapperProps,\n type PaginationItemType,\n};\n"],"names":["generatePages","total","currentPage","maxPages","_","i","pages","halfSize","start","end","PaginationEllipsisWithJump","position","onJumpPrevious","onJumpNext","color","size","previousText","nextText","jumpType","onPageChange","popoverOpen","setPopoverOpen","React","jsxs","Popover","jsx","PopoverTrigger","PaginationItem","PaginationEllipsis","PopoverContent","Command","CommandInput","CommandList","page","CommandItem","PaginationPrevious","e","MoreHorizontalIcon","PaginationNext","Pagination","className","animation","showPreviousNext","jumpOnEllipsis","children","props","ref","paginationAnimation","animationEffect","getPreviousText","getNextText","handleJumpPrevious","newPage","handleJumpNext","renderItems","PaginationContent","item","index","ellipsisIndex","activePageIndex","ChevronsLeft","ChevronsRight","PaginationLink","SPagination","cn"],"mappings":"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"}