@sth87/shadcn-design-system 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (760) hide show
  1. package/README.md +487 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.cjs +2 -0
  3. package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
  4. package/dist/cjs/_virtual/index.cjs +2 -0
  5. package/dist/cjs/_virtual/index.cjs.map +1 -0
  6. package/dist/cjs/_virtual/index2.cjs +2 -0
  7. package/dist/cjs/_virtual/index2.cjs.map +1 -0
  8. package/dist/cjs/components/Accordion/Accordion.cjs +2 -0
  9. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -0
  10. package/dist/cjs/components/Avatar/Avatar.cjs +2 -0
  11. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -0
  12. package/dist/cjs/components/Badge/Badge.cjs +2 -0
  13. package/dist/cjs/components/Badge/Badge.cjs.map +1 -0
  14. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +2 -0
  15. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -0
  16. package/dist/cjs/components/Button/Button.cjs +2 -0
  17. package/dist/cjs/components/Button/Button.cjs.map +1 -0
  18. package/dist/cjs/components/Button/ButtonGroup.cjs +2 -0
  19. package/dist/cjs/components/Button/ButtonGroup.cjs.map +1 -0
  20. package/dist/cjs/components/Calendar/Calendar.cjs +2 -0
  21. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -0
  22. package/dist/cjs/components/Carousel/Carousel.cjs +2 -0
  23. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -0
  24. package/dist/cjs/components/Checkbox/Checkbox.cjs +2 -0
  25. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -0
  26. package/dist/cjs/components/Collapsible/Collapsible.cjs +2 -0
  27. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -0
  28. package/dist/cjs/components/Command/Command.cjs +2 -0
  29. package/dist/cjs/components/Command/Command.cjs.map +1 -0
  30. package/dist/cjs/components/Command/index.cjs +2 -0
  31. package/dist/cjs/components/Command/index.cjs.map +1 -0
  32. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +2 -0
  33. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -0
  34. package/dist/cjs/components/ContextMenu/index.cjs +2 -0
  35. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -0
  36. package/dist/cjs/components/Cropper/Cropper.cjs +2 -0
  37. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -0
  38. package/dist/cjs/components/Cropper/CropperTool.cjs +2 -0
  39. package/dist/cjs/components/Cropper/CropperTool.cjs.map +1 -0
  40. package/dist/cjs/components/Cropper/utils.cjs +2 -0
  41. package/dist/cjs/components/Cropper/utils.cjs.map +1 -0
  42. package/dist/cjs/components/DatePicker/DatePicker.cjs +2 -0
  43. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -0
  44. package/dist/cjs/components/DatePicker/RangePicker.cjs +2 -0
  45. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -0
  46. package/dist/cjs/components/DatePicker/TimePicker.cjs +2 -0
  47. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -0
  48. package/dist/cjs/components/Dialog/Dialog.cjs +2 -0
  49. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -0
  50. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +2 -0
  51. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
  52. package/dist/cjs/components/DropdownMenu/index.cjs +2 -0
  53. package/dist/cjs/components/DropdownMenu/index.cjs.map +1 -0
  54. package/dist/cjs/components/FloatLabel.cjs +2 -0
  55. package/dist/cjs/components/FloatLabel.cjs.map +1 -0
  56. package/dist/cjs/components/Glass/Glass.cjs +2 -0
  57. package/dist/cjs/components/Glass/Glass.cjs.map +1 -0
  58. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +2 -0
  59. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -0
  60. package/dist/cjs/components/ImageViewer/ImageViewer.css +1 -0
  61. package/dist/cjs/components/Input/Input.cjs +2 -0
  62. package/dist/cjs/components/Input/Input.cjs.map +1 -0
  63. package/dist/cjs/components/InputOTP/InputOTP.cjs +2 -0
  64. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -0
  65. package/dist/cjs/components/Interactive/CursorFollow.cjs +2 -0
  66. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -0
  67. package/dist/cjs/components/Marquee/Marquee.cjs +2 -0
  68. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -0
  69. package/dist/cjs/components/Marquee/MarqueeWrapper.cjs +2 -0
  70. package/dist/cjs/components/Marquee/MarqueeWrapper.cjs.map +1 -0
  71. package/dist/cjs/components/Marquee/index.cjs +2 -0
  72. package/dist/cjs/components/Marquee/index.cjs.map +1 -0
  73. package/dist/cjs/components/Masonry/Masonry.cjs +2 -0
  74. package/dist/cjs/components/Masonry/Masonry.cjs.map +1 -0
  75. package/dist/cjs/components/Masonry/MasonryWrapper.cjs +2 -0
  76. package/dist/cjs/components/Masonry/MasonryWrapper.cjs.map +1 -0
  77. package/dist/cjs/components/Pagination/Pagination.cjs +2 -0
  78. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -0
  79. package/dist/cjs/components/Pagination/index.cjs +2 -0
  80. package/dist/cjs/components/Pagination/index.cjs.map +1 -0
  81. package/dist/cjs/components/Popover/Popover.cjs +2 -0
  82. package/dist/cjs/components/Popover/Popover.cjs.map +1 -0
  83. package/dist/cjs/components/Popover/index.cjs +2 -0
  84. package/dist/cjs/components/Popover/index.cjs.map +1 -0
  85. package/dist/cjs/components/QrCode/QrCode.cjs +2 -0
  86. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -0
  87. package/dist/cjs/components/QrCode/index.cjs +2 -0
  88. package/dist/cjs/components/QrCode/index.cjs.map +1 -0
  89. package/dist/cjs/components/Radio/Radio.cjs +2 -0
  90. package/dist/cjs/components/Radio/Radio.cjs.map +1 -0
  91. package/dist/cjs/components/Rate/Rate.cjs +2 -0
  92. package/dist/cjs/components/Rate/Rate.cjs.map +1 -0
  93. package/dist/cjs/components/Resizable/Resizable.cjs +2 -0
  94. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -0
  95. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +2 -0
  96. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -0
  97. package/dist/cjs/components/Select/Select.cjs +2 -0
  98. package/dist/cjs/components/Select/Select.cjs.map +1 -0
  99. package/dist/cjs/components/Separator/Separator.cjs +2 -0
  100. package/dist/cjs/components/Separator/Separator.cjs.map +1 -0
  101. package/dist/cjs/components/Sheet/Sheet.cjs +6 -0
  102. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -0
  103. package/dist/cjs/components/Sidebar/Sidebar.cjs +2 -0
  104. package/dist/cjs/components/Sidebar/Sidebar.cjs.map +1 -0
  105. package/dist/cjs/components/Skeleton/Skeleton.cjs +2 -0
  106. package/dist/cjs/components/Skeleton/Skeleton.cjs.map +1 -0
  107. package/dist/cjs/components/Slider/Slider.cjs +2 -0
  108. package/dist/cjs/components/Slider/Slider.cjs.map +1 -0
  109. package/dist/cjs/components/Stepper/Stepper.cjs +2 -0
  110. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -0
  111. package/dist/cjs/components/Stepper/StepperWrapper.cjs +2 -0
  112. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -0
  113. package/dist/cjs/components/Stepper/index.cjs +2 -0
  114. package/dist/cjs/components/Stepper/index.cjs.map +1 -0
  115. package/dist/cjs/components/Switch/Switch.cjs +2 -0
  116. package/dist/cjs/components/Switch/Switch.cjs.map +1 -0
  117. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +2 -0
  118. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -0
  119. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +2 -0
  120. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -0
  121. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +2 -0
  122. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -0
  123. package/dist/cjs/components/Table/data-table-column-header.cjs +2 -0
  124. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -0
  125. package/dist/cjs/components/Table/data-table-pagination.cjs +2 -0
  126. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -0
  127. package/dist/cjs/components/Table/data-table.cjs +2 -0
  128. package/dist/cjs/components/Table/data-table.cjs.map +1 -0
  129. package/dist/cjs/components/Tabs/Tabs.cjs +2 -0
  130. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -0
  131. package/dist/cjs/components/Tabs/classes.cjs +2 -0
  132. package/dist/cjs/components/Tabs/classes.cjs.map +1 -0
  133. package/dist/cjs/components/Textarea/Textarea.cjs +2 -0
  134. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -0
  135. package/dist/cjs/components/TimeGridView.cjs +2 -0
  136. package/dist/cjs/components/TimeGridView.cjs.map +1 -0
  137. package/dist/cjs/components/Toast/Toast.cjs +2 -0
  138. package/dist/cjs/components/Toast/Toast.cjs.map +1 -0
  139. package/dist/cjs/components/Toggle/Toggle.cjs +2 -0
  140. package/dist/cjs/components/Toggle/Toggle.cjs.map +1 -0
  141. package/dist/cjs/components/Tooltip/Tooltip.cjs +2 -0
  142. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -0
  143. package/dist/cjs/components/Tour/Tour.cjs +2 -0
  144. package/dist/cjs/components/Tour/Tour.cjs.map +1 -0
  145. package/dist/cjs/components/Tour/TourWrapper.cjs +2 -0
  146. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -0
  147. package/dist/cjs/components/Tour/index.cjs +2 -0
  148. package/dist/cjs/components/Tour/index.cjs.map +1 -0
  149. package/dist/cjs/components/Upload/Upload.cjs +4 -0
  150. package/dist/cjs/components/Upload/Upload.cjs.map +1 -0
  151. package/dist/cjs/components/WheelColumn.cjs +2 -0
  152. package/dist/cjs/components/WheelColumn.cjs.map +1 -0
  153. package/dist/cjs/constants/common.cjs +2 -0
  154. package/dist/cjs/constants/common.cjs.map +1 -0
  155. package/dist/cjs/favicon.ico +0 -0
  156. package/dist/cjs/hooks/use-callback-ref.cjs +2 -0
  157. package/dist/cjs/hooks/use-callback-ref.cjs.map +1 -0
  158. package/dist/cjs/hooks/use-debounced-callback.cjs +2 -0
  159. package/dist/cjs/hooks/use-debounced-callback.cjs.map +1 -0
  160. package/dist/cjs/hooks/use-debounced-value.cjs +2 -0
  161. package/dist/cjs/hooks/use-debounced-value.cjs.map +1 -0
  162. package/dist/cjs/hooks/use-event-listener.cjs +2 -0
  163. package/dist/cjs/hooks/use-event-listener.cjs.map +1 -0
  164. package/dist/cjs/hooks/use-intersection-observer.cjs +2 -0
  165. package/dist/cjs/hooks/use-intersection-observer.cjs.map +1 -0
  166. package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs +2 -0
  167. package/dist/cjs/hooks/use-isomorphic-layout-effect.cjs.map +1 -0
  168. package/dist/cjs/hooks/use-media-query.cjs +2 -0
  169. package/dist/cjs/hooks/use-media-query.cjs.map +1 -0
  170. package/dist/cjs/hooks/use-on-click-outside.cjs +2 -0
  171. package/dist/cjs/hooks/use-on-click-outside.cjs.map +1 -0
  172. package/dist/cjs/hooks/use-script.cjs +2 -0
  173. package/dist/cjs/hooks/use-script.cjs.map +1 -0
  174. package/dist/cjs/hooks/use-scroll-lock.cjs +2 -0
  175. package/dist/cjs/hooks/use-scroll-lock.cjs.map +1 -0
  176. package/dist/cjs/image.png +0 -0
  177. package/dist/cjs/index.cjs +2 -0
  178. package/dist/cjs/index.cjs.map +1 -0
  179. package/dist/cjs/lib/TextAnimation/BlurText.cjs +2 -0
  180. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -0
  181. package/dist/cjs/lib/TextAnimation/CircularText.cjs +2 -0
  182. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -0
  183. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +2 -0
  184. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -0
  185. package/dist/cjs/lib/TextAnimation/GradientText.cjs +2 -0
  186. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -0
  187. package/dist/cjs/lib/TextAnimation/RollingText.cjs +2 -0
  188. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -0
  189. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +2 -0
  190. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -0
  191. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +2 -0
  192. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -0
  193. package/dist/cjs/lib/TextAnimation/SplittingText.cjs +2 -0
  194. package/dist/cjs/lib/TextAnimation/SplittingText.cjs.map +1 -0
  195. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +2 -0
  196. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -0
  197. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +2 -0
  198. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -0
  199. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +22 -0
  200. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -0
  201. package/dist/cjs/lib/TextAnimation/TypingText.cjs +2 -0
  202. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -0
  203. package/dist/cjs/lib/TextAnimation/WritingText.cjs +2 -0
  204. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -0
  205. package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs +253 -0
  206. package/dist/cjs/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.cjs.map +1 -0
  207. package/dist/cjs/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
  208. package/dist/cjs/styles/animation.css +1 -0
  209. package/dist/cjs/styles/index.css +1 -0
  210. package/dist/cjs/styles/theme.css +1 -0
  211. package/dist/cjs/utils/animations.cjs +2 -0
  212. package/dist/cjs/utils/animations.cjs.map +1 -0
  213. package/dist/cjs/utils/css.cjs +2 -0
  214. package/dist/cjs/utils/css.cjs.map +1 -0
  215. package/dist/cjs/utils/data-table.cjs +2 -0
  216. package/dist/cjs/utils/data-table.cjs.map +1 -0
  217. package/dist/cjs/utils/datetime.cjs +2 -0
  218. package/dist/cjs/utils/datetime.cjs.map +1 -0
  219. package/dist/cjs/vite.svg +1 -0
  220. package/dist/cjs/wave.png +0 -0
  221. package/dist/esm/_virtual/_commonjsHelpers.js +7 -0
  222. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
  223. package/dist/esm/_virtual/index.js +8 -0
  224. package/dist/esm/_virtual/index.js.map +1 -0
  225. package/dist/esm/_virtual/index2.js +5 -0
  226. package/dist/esm/_virtual/index2.js.map +1 -0
  227. package/dist/esm/components/Accordion/Accordion.js +190 -0
  228. package/dist/esm/components/Accordion/Accordion.js.map +1 -0
  229. package/dist/esm/components/Avatar/Avatar.js +93 -0
  230. package/dist/esm/components/Avatar/Avatar.js.map +1 -0
  231. package/dist/esm/components/Badge/Badge.js +35 -0
  232. package/dist/esm/components/Badge/Badge.js.map +1 -0
  233. package/dist/esm/components/Breadcrumb/Breadcrumb.js +102 -0
  234. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -0
  235. package/dist/esm/components/Button/Button.js +53 -0
  236. package/dist/esm/components/Button/Button.js.map +1 -0
  237. package/dist/esm/components/Button/ButtonGroup.js +53 -0
  238. package/dist/esm/components/Button/ButtonGroup.js.map +1 -0
  239. package/dist/esm/components/Calendar/Calendar.js +40 -0
  240. package/dist/esm/components/Calendar/Calendar.js.map +1 -0
  241. package/dist/esm/components/Carousel/Carousel.js +510 -0
  242. package/dist/esm/components/Carousel/Carousel.js.map +1 -0
  243. package/dist/esm/components/Checkbox/Checkbox.js +79 -0
  244. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -0
  245. package/dist/esm/components/Collapsible/Collapsible.js +107 -0
  246. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -0
  247. package/dist/esm/components/Command/Command.js +113 -0
  248. package/dist/esm/components/Command/Command.js.map +1 -0
  249. package/dist/esm/components/Command/index.js +16 -0
  250. package/dist/esm/components/Command/index.js.map +1 -0
  251. package/dist/esm/components/ContextMenu/ContextMenu.js +131 -0
  252. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -0
  253. package/dist/esm/components/ContextMenu/index.js +24 -0
  254. package/dist/esm/components/ContextMenu/index.js.map +1 -0
  255. package/dist/esm/components/Cropper/Cropper.js +1014 -0
  256. package/dist/esm/components/Cropper/Cropper.js.map +1 -0
  257. package/dist/esm/components/Cropper/CropperTool.js +157 -0
  258. package/dist/esm/components/Cropper/CropperTool.js.map +1 -0
  259. package/dist/esm/components/Cropper/utils.js +108 -0
  260. package/dist/esm/components/Cropper/utils.js.map +1 -0
  261. package/dist/esm/components/DatePicker/DatePicker.js +263 -0
  262. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  263. package/dist/esm/components/DatePicker/RangePicker.js +456 -0
  264. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -0
  265. package/dist/esm/components/DatePicker/TimePicker.js +444 -0
  266. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -0
  267. package/dist/esm/components/Dialog/Dialog.js +223 -0
  268. package/dist/esm/components/Dialog/Dialog.js.map +1 -0
  269. package/dist/esm/components/DropdownMenu/DropdownMenu.js +196 -0
  270. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -0
  271. package/dist/esm/components/DropdownMenu/index.js +24 -0
  272. package/dist/esm/components/DropdownMenu/index.js.map +1 -0
  273. package/dist/esm/components/FloatLabel.js +59 -0
  274. package/dist/esm/components/FloatLabel.js.map +1 -0
  275. package/dist/esm/components/Glass/Glass.js +93 -0
  276. package/dist/esm/components/Glass/Glass.js.map +1 -0
  277. package/dist/esm/components/ImageViewer/ImageViewer.css +1 -0
  278. package/dist/esm/components/ImageViewer/ImageViewer.js +273 -0
  279. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -0
  280. package/dist/esm/components/Input/Input.js +267 -0
  281. package/dist/esm/components/Input/Input.js.map +1 -0
  282. package/dist/esm/components/InputOTP/InputOTP.js +70 -0
  283. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -0
  284. package/dist/esm/components/Interactive/CursorFollow.js +257 -0
  285. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -0
  286. package/dist/esm/components/Marquee/Marquee.js +419 -0
  287. package/dist/esm/components/Marquee/Marquee.js.map +1 -0
  288. package/dist/esm/components/Marquee/MarqueeWrapper.js +25 -0
  289. package/dist/esm/components/Marquee/MarqueeWrapper.js.map +1 -0
  290. package/dist/esm/components/Marquee/index.js +15 -0
  291. package/dist/esm/components/Marquee/index.js.map +1 -0
  292. package/dist/esm/components/Masonry/Masonry.js +840 -0
  293. package/dist/esm/components/Masonry/Masonry.js.map +1 -0
  294. package/dist/esm/components/Masonry/MasonryWrapper.js +19 -0
  295. package/dist/esm/components/Masonry/MasonryWrapper.js.map +1 -0
  296. package/dist/esm/components/Pagination/Pagination.js +209 -0
  297. package/dist/esm/components/Pagination/Pagination.js.map +1 -0
  298. package/dist/esm/components/Pagination/index.js +14 -0
  299. package/dist/esm/components/Pagination/index.js.map +1 -0
  300. package/dist/esm/components/Popover/Popover.js +51 -0
  301. package/dist/esm/components/Popover/Popover.js.map +1 -0
  302. package/dist/esm/components/Popover/index.js +9 -0
  303. package/dist/esm/components/Popover/index.js.map +1 -0
  304. package/dist/esm/components/QrCode/QrCode.js +300 -0
  305. package/dist/esm/components/QrCode/QrCode.js.map +1 -0
  306. package/dist/esm/components/QrCode/index.js +16 -0
  307. package/dist/esm/components/QrCode/index.js.map +1 -0
  308. package/dist/esm/components/Radio/Radio.js +74 -0
  309. package/dist/esm/components/Radio/Radio.js.map +1 -0
  310. package/dist/esm/components/Rate/Rate.js +191 -0
  311. package/dist/esm/components/Rate/Rate.js.map +1 -0
  312. package/dist/esm/components/Resizable/Resizable.js +89 -0
  313. package/dist/esm/components/Resizable/Resizable.js.map +1 -0
  314. package/dist/esm/components/ScrollArea/ScrollArea.js +45 -0
  315. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -0
  316. package/dist/esm/components/Select/Select.js +199 -0
  317. package/dist/esm/components/Select/Select.js.map +1 -0
  318. package/dist/esm/components/Separator/Separator.js +7 -0
  319. package/dist/esm/components/Separator/Separator.js.map +1 -0
  320. package/dist/esm/components/Sheet/Sheet.js +141 -0
  321. package/dist/esm/components/Sheet/Sheet.js.map +1 -0
  322. package/dist/esm/components/Sidebar/Sidebar.js +30 -0
  323. package/dist/esm/components/Sidebar/Sidebar.js.map +1 -0
  324. package/dist/esm/components/Skeleton/Skeleton.js +12 -0
  325. package/dist/esm/components/Skeleton/Skeleton.js.map +1 -0
  326. package/dist/esm/components/Slider/Slider.js +420 -0
  327. package/dist/esm/components/Slider/Slider.js.map +1 -0
  328. package/dist/esm/components/Stepper/Stepper.js +886 -0
  329. package/dist/esm/components/Stepper/Stepper.js.map +1 -0
  330. package/dist/esm/components/Stepper/StepperWrapper.js +80 -0
  331. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -0
  332. package/dist/esm/components/Stepper/index.js +21 -0
  333. package/dist/esm/components/Stepper/index.js.map +1 -0
  334. package/dist/esm/components/Switch/Switch.js +126 -0
  335. package/dist/esm/components/Switch/Switch.js.map +1 -0
  336. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +126 -0
  337. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -0
  338. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +138 -0
  339. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -0
  340. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +164 -0
  341. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -0
  342. package/dist/esm/components/Table/data-table-column-header.js +82 -0
  343. package/dist/esm/components/Table/data-table-column-header.js.map +1 -0
  344. package/dist/esm/components/Table/data-table-pagination.js +73 -0
  345. package/dist/esm/components/Table/data-table-pagination.js.map +1 -0
  346. package/dist/esm/components/Table/data-table.js +94 -0
  347. package/dist/esm/components/Table/data-table.js.map +1 -0
  348. package/dist/esm/components/Tabs/Tabs.js +540 -0
  349. package/dist/esm/components/Tabs/Tabs.js.map +1 -0
  350. package/dist/esm/components/Tabs/classes.js +345 -0
  351. package/dist/esm/components/Tabs/classes.js.map +1 -0
  352. package/dist/esm/components/Textarea/Textarea.js +132 -0
  353. package/dist/esm/components/Textarea/Textarea.js.map +1 -0
  354. package/dist/esm/components/TimeGridView.js +101 -0
  355. package/dist/esm/components/TimeGridView.js.map +1 -0
  356. package/dist/esm/components/Toast/Toast.js +80 -0
  357. package/dist/esm/components/Toast/Toast.js.map +1 -0
  358. package/dist/esm/components/Toggle/Toggle.js +23 -0
  359. package/dist/esm/components/Toggle/Toggle.js.map +1 -0
  360. package/dist/esm/components/Tooltip/Tooltip.js +120 -0
  361. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -0
  362. package/dist/esm/components/Tour/Tour.js +948 -0
  363. package/dist/esm/components/Tour/Tour.js.map +1 -0
  364. package/dist/esm/components/Tour/TourWrapper.js +67 -0
  365. package/dist/esm/components/Tour/TourWrapper.js.map +1 -0
  366. package/dist/esm/components/Tour/index.js +38 -0
  367. package/dist/esm/components/Tour/index.js.map +1 -0
  368. package/dist/esm/components/Upload/Upload.js +948 -0
  369. package/dist/esm/components/Upload/Upload.js.map +1 -0
  370. package/dist/esm/components/WheelColumn.js +127 -0
  371. package/dist/esm/components/WheelColumn.js.map +1 -0
  372. package/dist/esm/constants/common.js +5 -0
  373. package/dist/esm/constants/common.js.map +1 -0
  374. package/dist/esm/favicon.ico +0 -0
  375. package/dist/esm/hooks/use-callback-ref.js +14 -0
  376. package/dist/esm/hooks/use-callback-ref.js.map +1 -0
  377. package/dist/esm/hooks/use-debounced-callback.js +21 -0
  378. package/dist/esm/hooks/use-debounced-callback.js.map +1 -0
  379. package/dist/esm/hooks/use-debounced-value.js +12 -0
  380. package/dist/esm/hooks/use-debounced-value.js.map +1 -0
  381. package/dist/esm/hooks/use-event-listener.js +21 -0
  382. package/dist/esm/hooks/use-event-listener.js.map +1 -0
  383. package/dist/esm/hooks/use-intersection-observer.js +56 -0
  384. package/dist/esm/hooks/use-intersection-observer.js.map +1 -0
  385. package/dist/esm/hooks/use-isomorphic-layout-effect.js +6 -0
  386. package/dist/esm/hooks/use-isomorphic-layout-effect.js.map +1 -0
  387. package/dist/esm/hooks/use-media-query.js +22 -0
  388. package/dist/esm/hooks/use-media-query.js.map +1 -0
  389. package/dist/esm/hooks/use-on-click-outside.js +18 -0
  390. package/dist/esm/hooks/use-on-click-outside.js.map +1 -0
  391. package/dist/esm/hooks/use-script.js +46 -0
  392. package/dist/esm/hooks/use-script.js.map +1 -0
  393. package/dist/esm/hooks/use-scroll-lock.js +27 -0
  394. package/dist/esm/hooks/use-scroll-lock.js.map +1 -0
  395. package/dist/esm/image.png +0 -0
  396. package/dist/esm/index.js +223 -0
  397. package/dist/esm/index.js.map +1 -0
  398. package/dist/esm/lib/TextAnimation/BlurText.js +84 -0
  399. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -0
  400. package/dist/esm/lib/TextAnimation/CircularText.js +96 -0
  401. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -0
  402. package/dist/esm/lib/TextAnimation/FlipWords.js +103 -0
  403. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -0
  404. package/dist/esm/lib/TextAnimation/GradientText.js +54 -0
  405. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -0
  406. package/dist/esm/lib/TextAnimation/RollingText.js +70 -0
  407. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -0
  408. package/dist/esm/lib/TextAnimation/RotatingText.js +38 -0
  409. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -0
  410. package/dist/esm/lib/TextAnimation/ShimmeringText.js +64 -0
  411. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -0
  412. package/dist/esm/lib/TextAnimation/SplittingText.js +86 -0
  413. package/dist/esm/lib/TextAnimation/SplittingText.js.map +1 -0
  414. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +59 -0
  415. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -0
  416. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +128 -0
  417. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -0
  418. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +135 -0
  419. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -0
  420. package/dist/esm/lib/TextAnimation/TypingText.js +118 -0
  421. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -0
  422. package/dist/esm/lib/TextAnimation/WritingText.js +45 -0
  423. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -0
  424. package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js +865 -0
  425. package/dist/esm/node_modules/.pnpm/react-viewer@3.2.2/node_modules/react-viewer/dist/index.js.map +1 -0
  426. package/dist/esm/node_modules/.pnpm/viewerjs@1.11.7/node_modules/viewerjs/dist/viewer.css +1 -0
  427. package/dist/esm/styles/animation.css +1 -0
  428. package/dist/esm/styles/index.css +1 -0
  429. package/dist/esm/styles/theme.css +1 -0
  430. package/dist/esm/utils/animations.js +189 -0
  431. package/dist/esm/utils/animations.js.map +1 -0
  432. package/dist/esm/utils/css.js +25 -0
  433. package/dist/esm/utils/css.js.map +1 -0
  434. package/dist/esm/utils/data-table.js +20 -0
  435. package/dist/esm/utils/data-table.js.map +1 -0
  436. package/dist/esm/utils/datetime.js +17 -0
  437. package/dist/esm/utils/datetime.js.map +1 -0
  438. package/dist/esm/vite.svg +1 -0
  439. package/dist/esm/wave.png +0 -0
  440. package/dist/types/components/Accordion/Accordion.d.ts +49 -0
  441. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
  442. package/dist/types/components/Accordion/index.d.ts +3 -0
  443. package/dist/types/components/Accordion/index.d.ts.map +1 -0
  444. package/dist/types/components/Avatar/Avatar.d.ts +18 -0
  445. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
  446. package/dist/types/components/Avatar/index.d.ts +3 -0
  447. package/dist/types/components/Avatar/index.d.ts.map +1 -0
  448. package/dist/types/components/Badge/Badge.d.ts +10 -0
  449. package/dist/types/components/Badge/Badge.d.ts.map +1 -0
  450. package/dist/types/components/Badge/index.d.ts +2 -0
  451. package/dist/types/components/Badge/index.d.ts.map +1 -0
  452. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +23 -0
  453. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  454. package/dist/types/components/Breadcrumb/index.d.ts +2 -0
  455. package/dist/types/components/Breadcrumb/index.d.ts.map +1 -0
  456. package/dist/types/components/Button/Button.d.ts +10 -0
  457. package/dist/types/components/Button/Button.d.ts.map +1 -0
  458. package/dist/types/components/Button/ButtonGroup.d.ts +16 -0
  459. package/dist/types/components/Button/ButtonGroup.d.ts.map +1 -0
  460. package/dist/types/components/Button/index.d.ts +5 -0
  461. package/dist/types/components/Button/index.d.ts.map +1 -0
  462. package/dist/types/components/Calendar/Calendar.d.ts +15 -0
  463. package/dist/types/components/Calendar/Calendar.d.ts.map +1 -0
  464. package/dist/types/components/Calendar/index.d.ts +3 -0
  465. package/dist/types/components/Calendar/index.d.ts.map +1 -0
  466. package/dist/types/components/Carousel/Carousel.d.ts +79 -0
  467. package/dist/types/components/Carousel/Carousel.d.ts.map +1 -0
  468. package/dist/types/components/Carousel/index.d.ts +4 -0
  469. package/dist/types/components/Carousel/index.d.ts.map +1 -0
  470. package/dist/types/components/Checkbox/Checkbox.d.ts +15 -0
  471. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -0
  472. package/dist/types/components/Checkbox/index.d.ts +2 -0
  473. package/dist/types/components/Checkbox/index.d.ts.map +1 -0
  474. package/dist/types/components/Collapsible/Collapsible.d.ts +17 -0
  475. package/dist/types/components/Collapsible/Collapsible.d.ts.map +1 -0
  476. package/dist/types/components/Collapsible/index.d.ts +2 -0
  477. package/dist/types/components/Collapsible/index.d.ts.map +1 -0
  478. package/dist/types/components/Command/Command.d.ts +39 -0
  479. package/dist/types/components/Command/Command.d.ts.map +1 -0
  480. package/dist/types/components/Command/index.d.ts +15 -0
  481. package/dist/types/components/Command/index.d.ts.map +1 -0
  482. package/dist/types/components/ContextMenu/ContextMenu.d.ts +64 -0
  483. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +1 -0
  484. package/dist/types/components/ContextMenu/index.d.ts +23 -0
  485. package/dist/types/components/ContextMenu/index.d.ts.map +1 -0
  486. package/dist/types/components/Cropper/Cropper.d.ts +86 -0
  487. package/dist/types/components/Cropper/Cropper.d.ts.map +1 -0
  488. package/dist/types/components/Cropper/CropperTool.d.ts +149 -0
  489. package/dist/types/components/Cropper/CropperTool.d.ts.map +1 -0
  490. package/dist/types/components/Cropper/index.d.ts +4 -0
  491. package/dist/types/components/Cropper/index.d.ts.map +1 -0
  492. package/dist/types/components/Cropper/utils.d.ts +130 -0
  493. package/dist/types/components/Cropper/utils.d.ts.map +1 -0
  494. package/dist/types/components/DatePicker/DatePicker.d.ts +56 -0
  495. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -0
  496. package/dist/types/components/DatePicker/RangePicker.d.ts +42 -0
  497. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -0
  498. package/dist/types/components/DatePicker/TimePicker.d.ts +43 -0
  499. package/dist/types/components/DatePicker/TimePicker.d.ts.map +1 -0
  500. package/dist/types/components/DatePicker/index.d.ts +7 -0
  501. package/dist/types/components/DatePicker/index.d.ts.map +1 -0
  502. package/dist/types/components/Dialog/Dialog.d.ts +45 -0
  503. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -0
  504. package/dist/types/components/Dialog/index.d.ts +2 -0
  505. package/dist/types/components/Dialog/index.d.ts.map +1 -0
  506. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +65 -0
  507. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  508. package/dist/types/components/DropdownMenu/index.d.ts +22 -0
  509. package/dist/types/components/DropdownMenu/index.d.ts.map +1 -0
  510. package/dist/types/components/FloatLabel.d.ts +8 -0
  511. package/dist/types/components/FloatLabel.d.ts.map +1 -0
  512. package/dist/types/components/Glass/Glass.d.ts +10 -0
  513. package/dist/types/components/Glass/Glass.d.ts.map +1 -0
  514. package/dist/types/components/Glass/index.d.ts +2 -0
  515. package/dist/types/components/Glass/index.d.ts.map +1 -0
  516. package/dist/types/components/ImageViewer/ImageViewer.d.ts +58 -0
  517. package/dist/types/components/ImageViewer/ImageViewer.d.ts.map +1 -0
  518. package/dist/types/components/ImageViewer/index.d.ts +4 -0
  519. package/dist/types/components/ImageViewer/index.d.ts.map +1 -0
  520. package/dist/types/components/Input/Input.d.ts +27 -0
  521. package/dist/types/components/Input/Input.d.ts.map +1 -0
  522. package/dist/types/components/Input/index.d.ts +2 -0
  523. package/dist/types/components/Input/index.d.ts.map +1 -0
  524. package/dist/types/components/InputOTP/InputOTP.d.ts +20 -0
  525. package/dist/types/components/InputOTP/InputOTP.d.ts.map +1 -0
  526. package/dist/types/components/InputOTP/index.d.ts +2 -0
  527. package/dist/types/components/InputOTP/index.d.ts.map +1 -0
  528. package/dist/types/components/Interactive/3DCard.d.ts +28 -0
  529. package/dist/types/components/Interactive/3DCard.d.ts.map +1 -0
  530. package/dist/types/components/Interactive/3DMarquee.d.ts +20 -0
  531. package/dist/types/components/Interactive/3DMarquee.d.ts.map +1 -0
  532. package/dist/types/components/Interactive/CursorFollow.d.ts +75 -0
  533. package/dist/types/components/Interactive/CursorFollow.d.ts.map +1 -0
  534. package/dist/types/components/Interactive/index.cursor.d.ts +7 -0
  535. package/dist/types/components/Interactive/index.cursor.d.ts.map +1 -0
  536. package/dist/types/components/Interactive/index.d.ts +2 -0
  537. package/dist/types/components/Interactive/index.d.ts.map +1 -0
  538. package/dist/types/components/Label/Label.d.ts +3 -0
  539. package/dist/types/components/Label/Label.d.ts.map +1 -0
  540. package/dist/types/components/Label/index.d.ts +2 -0
  541. package/dist/types/components/Label/index.d.ts.map +1 -0
  542. package/dist/types/components/Marquee/Marquee.d.ts +31 -0
  543. package/dist/types/components/Marquee/Marquee.d.ts.map +1 -0
  544. package/dist/types/components/Marquee/MarqueeWrapper.d.ts +10 -0
  545. package/dist/types/components/Marquee/MarqueeWrapper.d.ts.map +1 -0
  546. package/dist/types/components/Marquee/index.d.ts +13 -0
  547. package/dist/types/components/Marquee/index.d.ts.map +1 -0
  548. package/dist/types/components/Masonry/Masonry.d.ts +41 -0
  549. package/dist/types/components/Masonry/Masonry.d.ts.map +1 -0
  550. package/dist/types/components/Masonry/MasonryWrapper.d.ts +29 -0
  551. package/dist/types/components/Masonry/MasonryWrapper.d.ts.map +1 -0
  552. package/dist/types/components/Masonry/index.d.ts +5 -0
  553. package/dist/types/components/Masonry/index.d.ts.map +1 -0
  554. package/dist/types/components/Pagination/Pagination.d.ts +24 -0
  555. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -0
  556. package/dist/types/components/Pagination/index.d.ts +11 -0
  557. package/dist/types/components/Pagination/index.d.ts.map +1 -0
  558. package/dist/types/components/Popover/Popover.d.ts +22 -0
  559. package/dist/types/components/Popover/Popover.d.ts.map +1 -0
  560. package/dist/types/components/Popover/index.d.ts +5 -0
  561. package/dist/types/components/Popover/index.d.ts.map +1 -0
  562. package/dist/types/components/QrCode/QrCode.d.ts +51 -0
  563. package/dist/types/components/QrCode/QrCode.d.ts.map +1 -0
  564. package/dist/types/components/QrCode/index.d.ts +13 -0
  565. package/dist/types/components/QrCode/index.d.ts.map +1 -0
  566. package/dist/types/components/Radio/Radio.d.ts +35 -0
  567. package/dist/types/components/Radio/Radio.d.ts.map +1 -0
  568. package/dist/types/components/Radio/index.d.ts +2 -0
  569. package/dist/types/components/Radio/index.d.ts.map +1 -0
  570. package/dist/types/components/Rate/Rate.d.ts +26 -0
  571. package/dist/types/components/Rate/Rate.d.ts.map +1 -0
  572. package/dist/types/components/Rate/index.d.ts +3 -0
  573. package/dist/types/components/Rate/index.d.ts.map +1 -0
  574. package/dist/types/components/Resizable/Resizable.d.ts +71 -0
  575. package/dist/types/components/Resizable/Resizable.d.ts.map +1 -0
  576. package/dist/types/components/Resizable/index.d.ts +4 -0
  577. package/dist/types/components/Resizable/index.d.ts.map +1 -0
  578. package/dist/types/components/ScrollArea/ScrollArea.d.ts +19 -0
  579. package/dist/types/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  580. package/dist/types/components/ScrollArea/index.d.ts +2 -0
  581. package/dist/types/components/ScrollArea/index.d.ts.map +1 -0
  582. package/dist/types/components/Select/Select.d.ts +33 -0
  583. package/dist/types/components/Select/Select.d.ts.map +1 -0
  584. package/dist/types/components/Select/index.d.ts +2 -0
  585. package/dist/types/components/Select/index.d.ts.map +1 -0
  586. package/dist/types/components/Separator/Separator.d.ts +5 -0
  587. package/dist/types/components/Separator/Separator.d.ts.map +1 -0
  588. package/dist/types/components/Separator/index.d.ts +2 -0
  589. package/dist/types/components/Separator/index.d.ts.map +1 -0
  590. package/dist/types/components/Sheet/Sheet.d.ts +36 -0
  591. package/dist/types/components/Sheet/Sheet.d.ts.map +1 -0
  592. package/dist/types/components/Sheet/index.d.ts +2 -0
  593. package/dist/types/components/Sheet/index.d.ts.map +1 -0
  594. package/dist/types/components/Sidebar/Sidebar.d.ts +50 -0
  595. package/dist/types/components/Sidebar/Sidebar.d.ts.map +1 -0
  596. package/dist/types/components/Sidebar/index.d.ts +4 -0
  597. package/dist/types/components/Sidebar/index.d.ts.map +1 -0
  598. package/dist/types/components/Skeleton/Skeleton.d.ts +6 -0
  599. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -0
  600. package/dist/types/components/Skeleton/index.d.ts +2 -0
  601. package/dist/types/components/Skeleton/index.d.ts.map +1 -0
  602. package/dist/types/components/Slider/Slider.d.ts +25 -0
  603. package/dist/types/components/Slider/Slider.d.ts.map +1 -0
  604. package/dist/types/components/Slider/index.d.ts +2 -0
  605. package/dist/types/components/Slider/index.d.ts.map +1 -0
  606. package/dist/types/components/Stepper/Stepper.d.ts +86 -0
  607. package/dist/types/components/Stepper/Stepper.d.ts.map +1 -0
  608. package/dist/types/components/Stepper/StepperWrapper.d.ts +25 -0
  609. package/dist/types/components/Stepper/StepperWrapper.d.ts.map +1 -0
  610. package/dist/types/components/Stepper/index.d.ts +18 -0
  611. package/dist/types/components/Stepper/index.d.ts.map +1 -0
  612. package/dist/types/components/Switch/Switch.d.ts +14 -0
  613. package/dist/types/components/Switch/Switch.d.ts.map +1 -0
  614. package/dist/types/components/Switch/index.d.ts +2 -0
  615. package/dist/types/components/Switch/index.d.ts.map +1 -0
  616. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts +9 -0
  617. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts.map +1 -0
  618. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts +11 -0
  619. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts.map +1 -0
  620. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts +8 -0
  621. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts.map +1 -0
  622. package/dist/types/components/Table/TableWrapper.d.ts +2 -0
  623. package/dist/types/components/Table/TableWrapper.d.ts.map +1 -0
  624. package/dist/types/components/Table/data-table-column-header.d.ts +9 -0
  625. package/dist/types/components/Table/data-table-column-header.d.ts.map +1 -0
  626. package/dist/types/components/Table/data-table-pagination.d.ts +12 -0
  627. package/dist/types/components/Table/data-table-pagination.d.ts.map +1 -0
  628. package/dist/types/components/Table/data-table-toolbar.d.ts +10 -0
  629. package/dist/types/components/Table/data-table-toolbar.d.ts.map +1 -0
  630. package/dist/types/components/Table/data-table-view-options.d.ts +9 -0
  631. package/dist/types/components/Table/data-table-view-options.d.ts.map +1 -0
  632. package/dist/types/components/Table/data-table.d.ts +18 -0
  633. package/dist/types/components/Table/data-table.d.ts.map +1 -0
  634. package/dist/types/components/Table/index.d.ts +2 -0
  635. package/dist/types/components/Table/index.d.ts.map +1 -0
  636. package/dist/types/components/Table/select-column.d.ts +5 -0
  637. package/dist/types/components/Table/select-column.d.ts.map +1 -0
  638. package/dist/types/components/Tabs/Tabs.d.ts +22 -0
  639. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -0
  640. package/dist/types/components/Tabs/classes.d.ts +29 -0
  641. package/dist/types/components/Tabs/classes.d.ts.map +1 -0
  642. package/dist/types/components/Tabs/index.d.ts +4 -0
  643. package/dist/types/components/Tabs/index.d.ts.map +1 -0
  644. package/dist/types/components/Tabs/types.d.ts +15 -0
  645. package/dist/types/components/Tabs/types.d.ts.map +1 -0
  646. package/dist/types/components/Textarea/Textarea.d.ts +17 -0
  647. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -0
  648. package/dist/types/components/Textarea/index.d.ts +2 -0
  649. package/dist/types/components/Textarea/index.d.ts.map +1 -0
  650. package/dist/types/components/Theme/ThemeShowcase.d.ts +3 -0
  651. package/dist/types/components/Theme/ThemeShowcase.d.ts.map +1 -0
  652. package/dist/types/components/TimeGridView.d.ts +15 -0
  653. package/dist/types/components/TimeGridView.d.ts.map +1 -0
  654. package/dist/types/components/Toast/Toast.d.ts +12 -0
  655. package/dist/types/components/Toast/Toast.d.ts.map +1 -0
  656. package/dist/types/components/Toast/index.d.ts +3 -0
  657. package/dist/types/components/Toast/index.d.ts.map +1 -0
  658. package/dist/types/components/Toggle/Toggle.d.ts +10 -0
  659. package/dist/types/components/Toggle/Toggle.d.ts.map +1 -0
  660. package/dist/types/components/Toggle/index.d.ts +2 -0
  661. package/dist/types/components/Toggle/index.d.ts.map +1 -0
  662. package/dist/types/components/Tooltip/Tooltip.d.ts +19 -0
  663. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -0
  664. package/dist/types/components/Tooltip/index.d.ts +3 -0
  665. package/dist/types/components/Tooltip/index.d.ts.map +1 -0
  666. package/dist/types/components/Tour/Tour.d.ts +105 -0
  667. package/dist/types/components/Tour/Tour.d.ts.map +1 -0
  668. package/dist/types/components/Tour/TourWrapper.d.ts +46 -0
  669. package/dist/types/components/Tour/TourWrapper.d.ts.map +1 -0
  670. package/dist/types/components/Tour/index.d.ts +36 -0
  671. package/dist/types/components/Tour/index.d.ts.map +1 -0
  672. package/dist/types/components/TreeSelect/TreeSelect.d.ts +2 -0
  673. package/dist/types/components/TreeSelect/TreeSelect.d.ts.map +1 -0
  674. package/dist/types/components/TreeSelect/index.d.ts +2 -0
  675. package/dist/types/components/TreeSelect/index.d.ts.map +1 -0
  676. package/dist/types/components/Upload/Upload.d.ts +69 -0
  677. package/dist/types/components/Upload/Upload.d.ts.map +1 -0
  678. package/dist/types/components/Upload/index.d.ts +2 -0
  679. package/dist/types/components/Upload/index.d.ts.map +1 -0
  680. package/dist/types/components/WheelColumn.d.ts +15 -0
  681. package/dist/types/components/WheelColumn.d.ts.map +1 -0
  682. package/dist/types/config/data-table.d.ts +125 -0
  683. package/dist/types/config/data-table.d.ts.map +1 -0
  684. package/dist/types/constants/common.d.ts +4 -0
  685. package/dist/types/constants/common.d.ts.map +1 -0
  686. package/dist/types/constants/theme.d.ts +13 -0
  687. package/dist/types/constants/theme.d.ts.map +1 -0
  688. package/dist/types/hooks/index.d.ts +10 -0
  689. package/dist/types/hooks/index.d.ts.map +1 -0
  690. package/dist/types/hooks/use-callback-ref.d.ts +10 -0
  691. package/dist/types/hooks/use-callback-ref.d.ts.map +1 -0
  692. package/dist/types/hooks/use-data-table.d.ts +26 -0
  693. package/dist/types/hooks/use-data-table.d.ts.map +1 -0
  694. package/dist/types/hooks/use-debounced-callback.d.ts +2 -0
  695. package/dist/types/hooks/use-debounced-callback.d.ts.map +1 -0
  696. package/dist/types/hooks/use-debounced-value.d.ts +9 -0
  697. package/dist/types/hooks/use-debounced-value.d.ts.map +1 -0
  698. package/dist/types/hooks/use-event-listener.d.ts +7 -0
  699. package/dist/types/hooks/use-event-listener.d.ts.map +1 -0
  700. package/dist/types/hooks/use-intersection-observer.d.ts +20 -0
  701. package/dist/types/hooks/use-intersection-observer.d.ts.map +1 -0
  702. package/dist/types/hooks/use-isomorphic-layout-effect.d.ts +3 -0
  703. package/dist/types/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  704. package/dist/types/hooks/use-media-query.d.ts +7 -0
  705. package/dist/types/hooks/use-media-query.d.ts.map +1 -0
  706. package/dist/types/hooks/use-mouse-position.d.ts +14 -0
  707. package/dist/types/hooks/use-mouse-position.d.ts.map +1 -0
  708. package/dist/types/hooks/use-on-click-outside.d.ts +5 -0
  709. package/dist/types/hooks/use-on-click-outside.d.ts.map +1 -0
  710. package/dist/types/hooks/use-script.d.ts +9 -0
  711. package/dist/types/hooks/use-script.d.ts.map +1 -0
  712. package/dist/types/hooks/use-scroll-lock.d.ts +13 -0
  713. package/dist/types/hooks/use-scroll-lock.d.ts.map +1 -0
  714. package/dist/types/index.d.ts +72 -0
  715. package/dist/types/index.d.ts.map +1 -0
  716. package/dist/types/lib/TextAnimation/BlurText.d.ts +18 -0
  717. package/dist/types/lib/TextAnimation/BlurText.d.ts.map +1 -0
  718. package/dist/types/lib/TextAnimation/CircularText.d.ts +10 -0
  719. package/dist/types/lib/TextAnimation/CircularText.d.ts.map +1 -0
  720. package/dist/types/lib/TextAnimation/FlipWords.d.ts +10 -0
  721. package/dist/types/lib/TextAnimation/FlipWords.d.ts.map +1 -0
  722. package/dist/types/lib/TextAnimation/GradientText.d.ts +11 -0
  723. package/dist/types/lib/TextAnimation/GradientText.d.ts.map +1 -0
  724. package/dist/types/lib/TextAnimation/RollingText.d.ts +12 -0
  725. package/dist/types/lib/TextAnimation/RollingText.d.ts.map +1 -0
  726. package/dist/types/lib/TextAnimation/RotatingText.d.ts +11 -0
  727. package/dist/types/lib/TextAnimation/RotatingText.d.ts.map +1 -0
  728. package/dist/types/lib/TextAnimation/ShimmeringText.d.ts +12 -0
  729. package/dist/types/lib/TextAnimation/ShimmeringText.d.ts.map +1 -0
  730. package/dist/types/lib/TextAnimation/SplittingText.d.ts +26 -0
  731. package/dist/types/lib/TextAnimation/SplittingText.d.ts.map +1 -0
  732. package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts +10 -0
  733. package/dist/types/lib/TextAnimation/TextGenerateEffect.d.ts.map +1 -0
  734. package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts +6 -0
  735. package/dist/types/lib/TextAnimation/TextHoverEffect.d.ts.map +1 -0
  736. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts +20 -0
  737. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -0
  738. package/dist/types/lib/TextAnimation/TypingText.d.ts +27 -0
  739. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -0
  740. package/dist/types/lib/TextAnimation/WritingText.d.ts +13 -0
  741. package/dist/types/lib/TextAnimation/WritingText.d.ts.map +1 -0
  742. package/dist/types/lib/TextAnimation/index.d.ts +16 -0
  743. package/dist/types/lib/TextAnimation/index.d.ts.map +1 -0
  744. package/dist/types/types/data-table.d.ts +44 -0
  745. package/dist/types/types/data-table.d.ts.map +1 -0
  746. package/dist/types/types/theme.d.ts +11 -0
  747. package/dist/types/types/theme.d.ts.map +1 -0
  748. package/dist/types/types/variables.d.ts +6 -0
  749. package/dist/types/types/variables.d.ts.map +1 -0
  750. package/dist/types/utils/animations.d.ts +47 -0
  751. package/dist/types/utils/animations.d.ts.map +1 -0
  752. package/dist/types/utils/css.d.ts +4 -0
  753. package/dist/types/utils/css.d.ts.map +1 -0
  754. package/dist/types/utils/data-table.d.ts +13 -0
  755. package/dist/types/utils/data-table.d.ts.map +1 -0
  756. package/dist/types/utils/datetime.d.ts +2 -0
  757. package/dist/types/utils/datetime.d.ts.map +1 -0
  758. package/dist/types/utils/parsers.d.ts +38 -0
  759. package/dist/types/utils/parsers.d.ts.map +1 -0
  760. package/package.json +968 -0
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react/jsx-runtime"),p=require("@dsui/ui/components/calendar"),x=require("@dsui/ui/index"),o=require("date-fns/locale");function f({language:n="vi",className:t,captionLayout:a="dropdown",formatters:c,buttonVariant:l,locale:e,variant:i="default",color:s="primary",...d}){const r=e||(n==="en"?o.enUS:o.vi);return m.jsx(p.Calendar,{...d,locale:r,buttonVariant:l,captionLayout:a,variant:i,color:s,formatters:{formatMonthDropdown:u=>u.toLocaleString(r.code,{month:"short"}),...c},className:x.cn("mx-auto [--cell-size:clamp(0px,calc(100vw/7.5),40px)]",t)})}exports.Calendar=f;
2
+ //# sourceMappingURL=Calendar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.cjs","sources":["../../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import {\n CalendarDayButton as SCalendarDayButton,\n type CalendarDayButtonProps as SCalendarDayButtonProps,\n Calendar as SCalendar,\n type CalendarProps as SCalendarProps,\n type CalendarColor,\n} from \"@dsui/ui/components/calendar\";\nimport { cn } from \"@dsui/ui/index\";\nimport { vi, enUS } from \"date-fns/locale\";\n\nexport type DateRange = {\n from: Date | undefined;\n to?: Date | undefined;\n};\n\nexport type CalendarProps = SCalendarProps & {\n language?: \"vi\" | \"en\";\n variant?: \"default\" | \"rounded\";\n color?: CalendarColor;\n};\n\nexport function Calendar({\n language = \"vi\",\n className,\n captionLayout = \"dropdown\",\n formatters,\n buttonVariant,\n locale,\n variant = \"default\",\n color = \"primary\",\n ...props\n}: CalendarProps) {\n const _locale = locale ? locale : language === \"en\" ? enUS : vi;\n\n return (\n <SCalendar\n {...props}\n locale={_locale}\n buttonVariant={buttonVariant}\n captionLayout={captionLayout}\n variant={variant}\n color={color}\n formatters={{\n formatMonthDropdown: (date: Date) =>\n date.toLocaleString(_locale.code, { month: \"short\" }),\n ...formatters,\n }}\n className={cn(\n \"mx-auto [--cell-size:clamp(0px,calc(100vw/7.5),40px)]\",\n className,\n )}\n />\n );\n}\n\nexport const CalendarDayButton = SCalendarDayButton;\nexport type CalendarDayButtonProps = SCalendarDayButtonProps;\nexport type { CalendarColor };\n"],"names":["Calendar","language","className","captionLayout","formatters","buttonVariant","locale","variant","color","props","_locale","enUS","vi","jsx","SCalendar","date","cn"],"mappings":"wNAqBO,SAASA,EAAS,CACvB,SAAAC,EAAW,KACX,UAAAC,EACA,cAAAC,EAAgB,WAChB,WAAAC,EACA,cAAAC,EAAA,OACAC,EACA,QAAAC,EAAU,UACV,MAAAC,EAAQ,UACR,GAAGC,CACL,EAAkB,CAChB,MAAMC,EAAUJ,IAAkBL,IAAa,KAAOU,EAAAA,KAAOC,EAAAA,IAE7D,OACEC,EAAAA,IAACC,EAAAA,SAAA,CACE,GAAGL,EACJ,OAAQC,EACR,cAAAL,EACA,cAAAF,EACA,QAAAI,EACA,MAAAC,EACA,WAAY,CACV,oBAAsBO,GACpBA,EAAK,eAAeL,EAAQ,KAAM,CAAE,MAAO,QAAS,EACtD,GAAGN,CAAA,EAEL,UAAWY,EAAAA,GACT,wDACAd,CAAA,CACF,CAAA,CAGN"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),r=require("react"),G=require("lucide-react"),p=require("@dsui/ui/lib/utils"),_e=require("../ImageViewer/ImageViewer.cjs"),le=r.forwardRef(({children:H,initialSlide:P=0,direction:o="horizontal",speed:K=300,spaceBetween:M=0,slidesPerView:$=1,slidesPerGroup:D=1,centeredSlides:ie=!1,loop:X=!1,rewind:O=!1,effect:a="slide",breakpoints:y,navigation:Z=!1,pagination:J=!1,autoplay:g=!1,allowTouchMove:E=!0,grabCursor:Me=!0,keyboard:ce=!1,mousewheel:ue=!1,className:Xe,containerClassName:Ee,wrapperClassName:Ie,slideClassName:Ne,enableImageViewer:j=!1,onSlideChange:de,onReachBeginning:fe,onReachEnd:pe,onAutoplayStart:he,onAutoplayStop:be},Ye)=>{const A=typeof Z=="boolean"?{enabled:Z,position:"inside"}:{enabled:!0,position:"inside",...Z},i=typeof J=="boolean"?{enabled:J,type:"bullets",position:"inside"}:{enabled:!0,type:"bullets",position:"inside",...J},b=r.useMemo(()=>typeof g=="boolean"?{delay:3e3,disableOnInteraction:!0}:{delay:3e3,disableOnInteraction:!0,...g},[g]),[u,Re]=r.useState(P),[ze,me]=r.useState(P===0),[Q,ge]=r.useState(!1),[ee,te]=r.useState(!1),[ve,Pe]=r.useState(0),[L,xe]=r.useState(!1),[$e,T]=r.useState(!1),[we,De]=r.useState(typeof window<"u"?window.innerWidth:1024),[Oe,ye]=r.useState(!1),[Ae,Ce]=r.useState(0);r.useEffect(()=>{if(!y)return;const t=()=>{De(window.innerWidth)};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[y]);const re=r.useMemo(()=>{if(!y)return{slidesPerView:$,spaceBetween:M,slidesPerGroup:D};const t=Object.keys(y).map(Number).sort((e,s)=>s-e);for(const e of t)if(we>=e)return{slidesPerView:y[e].slidesPerView??$,spaceBetween:y[e].spaceBetween??M,slidesPerGroup:y[e].slidesPerGroup??D};return{slidesPerView:$,spaceBetween:M,slidesPerGroup:D}},[y,we,$,M,D]),ke=re.slidesPerView,W=re.spaceBetween,B=re.slidesPerGroup,F=r.useRef(null),Le=r.useRef(null),q=r.useRef(null),I=r.useRef(null),c=r.useRef({startX:0,startY:0,currentX:0,currentY:0}),N=r.useRef(!1),U=r.Children.toArray(H).filter(t=>r.isValidElement(t)&&t.type===oe),l=U.length,se=r.useCallback(t=>{let e=null;return r.Children.forEach(t,s=>{e||r.isValidElement(s)&&(s.type==="img"?e=s:s.props&&typeof s.props=="object"&&"children"in s.props&&(e=se(s.props.children)))}),e},[]),S=r.useMemo(()=>j?U.map(t=>{const s=se(t.props.children);return s?{src:s.props.src||"",alt:s.props.alt||""}:{src:"",alt:""}}):[],[U,j,se]),Te=r.useCallback(t=>{console.log("Slide clicked:",{index:t,enableImageViewer:j,hasSrc:!!S[t]?.src,hasDragged:N.current,imageInfos:S}),j&&S[t]?.src&&!N.current&&(console.log("Opening viewer at index:",t),Ce(t),ye(!0))},[j,S]),m=ke==="auto"?1:Math.min(ke,l);r.useEffect(()=>{X?(me(!1),ge(!1)):(me(u===0),ge(u>=l-m))},[u,l,m,X]);const v=r.useCallback(t=>{let e=t;X?e=(t%l+l)%l:O?t<0?e=l-1:t>=l?e=0:e=t:e=Math.max(0,Math.min(t,l-m)),Re(e);const s=o==="horizontal"?F.current?.offsetWidth||0:F.current?.offsetHeight||0,d=s/m;let f=-e*(d+W);ie&&m<l&&(f+=s/2-d/2),Pe(f),i.type==="scrollbar"&&(T(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{T(!1)},1e3)),de?.({activeIndex:e,realIndex:e}),e===0&&fe?.(),e>=l-m&&pe?.()},[l,m,X,O,o,W,ie,i.type,de,fe,pe]),x=r.useCallback(()=>{v(u+B)},[u,B,v]),w=r.useCallback(()=>{v(u-B)},[u,B,v]),C=r.useCallback(()=>{q.current&&(clearInterval(q.current),q.current=null),xe(!1),be?.()},[be]),V=r.useCallback(()=>{g&&(q.current=setInterval(()=>{b.reverseDirection?w():x(),b.stopOnLastSlide&&Q&&C()},b.delay),xe(!0),he?.())},[b,g,x,w,Q,he,C]);r.useEffect(()=>(g&&V(),()=>C()),[g,V,C]);const We=r.useCallback(()=>{b.pauseOnMouseEnter&&L&&C()},[b.pauseOnMouseEnter,L,C]),Be=r.useCallback(()=>{b.pauseOnMouseEnter&&g&&!L&&V()},[b.pauseOnMouseEnter,g,L,V]),Fe=r.useCallback(t=>{if(E){try{t.currentTarget.setPointerCapture(t.pointerId)}catch(e){console.error("Failed to capture pointer:",e)}c.current.startX=t.clientX,c.current.startY=t.clientY,c.current.currentX=t.clientX,c.current.currentY=t.clientY,N.current=!1,te(!0),b.disableOnInteraction&&C()}},[E,b.disableOnInteraction,C]),qe=r.useCallback(t=>{if(!E)return;const e=c.current.startX,s=c.current.startY;if(e===0&&s===0)return;t.preventDefault(),c.current.currentX=t.clientX,c.current.currentY=t.clientY;const d=Math.abs(t.clientX-c.current.startX),f=Math.abs(t.clientY-c.current.startY);(d>5||f>5)&&(N.current=!0),te(!0)},[E]),je=r.useCallback(()=>{const t=c.current.startX,e=c.current.startY;if(t===0&&e===0)return;const s=c.current.currentX-t,d=c.current.currentY-e,f=o==="horizontal"?s:d;Math.abs(f)>0&&N.current?f>0?w():x():v(u),setTimeout(()=>{te(!1),c.current.startX=0,c.current.startY=0,c.current.currentX=0,c.current.currentY=0,N.current=!1},50)},[o,w,x,v,u]);r.useEffect(()=>{if(!ce)return;const t=e=>{e.key==="ArrowLeft"||e.key==="ArrowUp"?(e.preventDefault(),w()):(e.key==="ArrowRight"||e.key==="ArrowDown")&&(e.preventDefault(),x())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[ce,x,w]),r.useEffect(()=>{if(!ue)return;const t=s=>{s.preventDefault(),s.deltaY>0?x():s.deltaY<0&&w()},e=F.current;if(e)return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[ue,x,w]);const Se=()=>{if(!i.enabled)return null;const{type:t,clickable:e,dynamicBullets:s,dynamicMainBullets:d=1,position:f="inside"}=i,Y=f==="outside";if(t==="bullets"){const R=s?Math.min(d*2+1,l):l;return n.jsx("div",{className:p.cn("flex items-center justify-center gap-2",Y?"mt-4":"absolute bottom-4 left-1/2 -translate-x-1/2",o==="vertical"&&!Y&&"flex-col right-4 left-auto top-1/2 -translate-y-1/2 translate-x-0 bottom-auto"),children:Array.from({length:R}).map((_,z)=>{const h=s?Math.max(0,Math.min(z+u-d,l-1)):z,k=h===u;return i.renderBullet?n.jsx(r.Fragment,{children:i.renderBullet(h,p.cn("carousel-pagination-bullet",k&&"carousel-pagination-bullet-active"))},h):n.jsx("button",{onClick:()=>e&&v(h),className:p.cn("rounded-full transition-all","w-2 h-2",k?o==="horizontal"?"bg-primary w-6":"bg-primary h-6":"bg-muted-foreground/30 hover:bg-muted-foreground/50",e&&"cursor-pointer"),"aria-label":`Go to slide ${h+1}`},h)})})}if(t==="fraction")return n.jsx("div",{className:p.cn("text-center text-sm text-muted-foreground bg-background/80 backdrop-blur px-3 py-1 rounded-full",Y?"mt-4 mx-auto w-fit":"absolute bottom-4 left-1/2 -translate-x-1/2"),children:i.renderFraction?i.renderFraction("carousel-pagination-current","carousel-pagination-total"):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"carousel-pagination-current font-semibold text-foreground",children:u+1})," / ",n.jsx("span",{className:"carousel-pagination-total",children:l})]})});if(t==="progressbar"){const R=(u+1)/l*100,_=i.position==="inside",z=h=>{if(!e)return;const k=h.currentTarget.getBoundingClientRect(),ne=(h.clientX-k.left)/k.width,ae=Math.floor(ne*l);v(Math.min(ae,l-1))};return n.jsx("div",{onClick:z,className:p.cn("w-full h-1 bg-muted rounded-full overflow-hidden",_?"absolute bottom-0 left-0 right-0 rounded-none":"mt-4",e&&"cursor-pointer"),children:i.renderProgressbar?i.renderProgressbar("carousel-progressbar-fill"):n.jsx("div",{className:"carousel-progressbar-fill h-full bg-primary transition-all duration-300",style:{width:`${R}%`}})})}if(t==="custom"&&i.renderCustom)return n.jsx("div",{className:p.cn(Y?"mt-4 flex justify-center":"absolute bottom-4 left-1/2 -translate-x-1/2"),children:i.renderCustom(u+1,l)});if(t==="scrollbar"){const R=1/l*100,_=u/(l-1)*(100-R),z=h=>{if(!e)return;T(!0),I.current&&clearTimeout(I.current);const k=h.currentTarget.getBoundingClientRect(),ne=(h.clientX-k.left)/k.width,ae=Math.round(ne*(l-1));v(Math.max(0,Math.min(ae,l-1))),I.current=setTimeout(()=>{T(!1)},1e3)};return n.jsx("div",{onClick:z,className:p.cn("w-full h-1 bg-muted/50 rounded-full transition-opacity duration-300",Y?"mt-4":"absolute bottom-0 left-1/2 -translate-x-1/2",e&&"cursor-pointer",$e?"opacity-100":"opacity-0"),children:i.renderScrollbar?i.renderScrollbar("carousel-scrollbar-drag"):n.jsx("div",{className:"carousel-scrollbar-drag h-full bg-primary rounded-full transition-all duration-300 absolute left-0",style:{width:`${R}%`,left:`${_}%`}})})}return null},Ue=t=>{const e=t-u;switch(a){case"fade":return{opacity:e===0?1:0,zIndex:e===0?10:0};case"cube":return{transform:`translateX(${e*100}%) rotateY(${e*-90}deg)`,transformOrigin:e>0?"left center":"right center"};case"coverflow":return{transform:`translateX(${e*60}%) translateZ(${Math.abs(e)*-100}px) rotateY(${e*-50}deg)`,zIndex:-Math.abs(e)};case"flip":return{transform:`rotateY(${e*180}deg)`,backfaceVisibility:"hidden"};case"cards":return{transform:`translateX(${e*50}px) translateZ(${-Math.abs(e)*100}px) scale(${1-Math.abs(e)*.2})`,opacity:e===0?1:.5,zIndex:100-Math.abs(e)*10,transition:"all 0.5s ease"};default:return{}}};return n.jsxs(n.Fragment,{children:[n.jsxs("div",{ref:Ye,className:p.cn("carousel-container",Ee,Xe),onMouseEnter:We,onMouseLeave:Be,children:[n.jsxs("div",{ref:F,className:p.cn("carousel relative overflow-hidden",(a==="fade"||a==="cube"||a==="flip"||a==="cards")&&"aspect-4/3",a==="coverflow"&&"aspect-4/2 rounded-xl",o==="vertical"&&a==="slide"&&"h-full",Me&&E&&!ee&&"cursor-grab",ee&&"cursor-grabbing"),children:[n.jsx("div",{ref:Le,className:p.cn("carousel-wrapper select-none",a==="slide"&&"flex",o==="vertical"&&a==="slide"&&"flex-col h-full",a!=="slide"&&"relative",Ie),style:{transform:a==="slide"?o==="horizontal"?`translateX(${ve}px)`:`translateY(${ve}px)`:void 0,transition:ee?"none":`transform ${K}ms ease`,gap:a==="slide"?`${W}px`:void 0,perspective:a!=="slide"&&a!=="fade"?"1200px":void 0,touchAction:E?"none":"auto",height:o==="vertical"&&a==="slide"?"100%":void 0},onPointerDown:Fe,onPointerMove:qe,onPointerUp:je,onPointerCancel:je,children:U.map((t,e)=>{const s=e===u,d=t;return r.cloneElement(d,{key:e,className:p.cn("carousel-slide",Ne,d.props.className,a!=="slide"&&"absolute inset-0",a==="fade"&&"transition-opacity duration-300",a!=="slide"&&a!=="fade"&&"transition-all duration-500",j&&S[e]?.src&&"cursor-pointer"),style:{flex:a==="slide"?o==="vertical"?"0 0 100%":`0 0 calc(${100/m}% - ${W*(m-1)/m}px)`:void 0,minWidth:a==="slide"&&o==="horizontal"?0:void 0,minHeight:a==="slide"&&o==="vertical"?0:void 0,height:o==="vertical"&&a==="slide"?"100%":void 0,userSelect:"none",WebkitUserDrag:"none",...a!=="slide"?Ue(e):{},...d.props.style},onClick:f=>{f.stopPropagation(),Te(e)},onDragStart:f=>f.preventDefault(),"data-active":s,"data-index":e})})}),i.enabled&&i.position!=="outside"&&Se(),A.enabled&&A.position==="inside"&&n.jsxs(n.Fragment,{children:[n.jsx("button",{onClick:w,disabled:!X&&!O&&ze,className:p.cn("absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed",o==="horizontal"?"left-4 top-1/2 -translate-y-1/2":"top-4 left-1/2 -translate-x-1/2"),"aria-label":"Previous slide",children:A.prevEl||(o==="horizontal"?n.jsx(G.ChevronLeft,{className:"w-5 h-5"}):n.jsx(G.ChevronUp,{className:"w-5 h-5"}))}),n.jsx("button",{onClick:x,disabled:!X&&!O&&Q,className:p.cn("absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed",o==="horizontal"?"right-4 top-1/2 -translate-y-1/2":"bottom-4 left-1/2 -translate-x-1/2"),"aria-label":"Next slide",children:A.nextEl||(o==="horizontal"?n.jsx(G.ChevronRight,{className:"w-5 h-5"}):n.jsx(G.ChevronDown,{className:"w-5 h-5"}))})]})]}),i.enabled&&i.position==="outside"&&Se()]}),j&&S.length>0&&n.jsx(_e.ImageViewer,{images:S,visible:Oe,onClose:()=>{console.log("Closing viewer"),ye(!1)},activeIndex:Ae,onIndexChange:Ce})]})});le.displayName="Carousel";const oe=r.forwardRef(({children:H,className:P,style:o,...K},M)=>n.jsx("div",{ref:M,className:P,style:o,...K,children:H}));oe.displayName="CarouselSlide";exports.Carousel=le;exports.CarouselSlide=oe;exports.default=le;
2
+ //# sourceMappingURL=Carousel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Carousel.cjs","sources":["../../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, {\n useState,\n useEffect,\n useRef,\n useCallback,\n useMemo,\n Children,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronDown,\n} from \"lucide-react\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ImageViewer } from \"../ImageViewer\";\nimport type { ImageInfo } from \"../ImageViewer\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SliderEffect =\n | \"slide\"\n | \"fade\"\n | \"cube\"\n | \"coverflow\"\n | \"flip\"\n | \"cards\";\n\nexport type SliderDirection = \"horizontal\" | \"vertical\";\n\nexport type PaginationType =\n | \"bullets\"\n | \"fraction\"\n | \"progressbar\"\n | \"scrollbar\"\n | \"custom\";\n\nexport interface AutoplayOptions {\n delay?: number;\n disableOnInteraction?: boolean;\n pauseOnMouseEnter?: boolean;\n reverseDirection?: boolean;\n stopOnLastSlide?: boolean;\n}\n\nexport interface BreakpointOptions {\n slidesPerView?: number;\n spaceBetween?: number;\n slidesPerGroup?: number;\n}\n\nexport interface NavigationOptions {\n enabled?: boolean;\n prevEl?: React.ReactNode;\n nextEl?: React.ReactNode;\n hideOnClick?: boolean;\n position?: \"inside\" | \"outside\"; // inside = overlay on image, outside = beside image\n}\n\nexport interface PaginationOptions {\n enabled?: boolean;\n type?: PaginationType;\n clickable?: boolean;\n dynamicBullets?: boolean;\n dynamicMainBullets?: number;\n position?: \"inside\" | \"outside\"; // inside = overlay on image, outside = below image\n renderBullet?: (index: number, className: string) => React.ReactNode;\n renderFraction?: (\n currentClass: string,\n totalClass: string\n ) => React.ReactNode;\n renderProgressbar?: (progressbarFillClass: string) => React.ReactNode;\n renderScrollbar?: (scrollbarDragClass: string) => React.ReactNode;\n renderCustom?: (current: number, total: number) => React.ReactNode;\n}\n\nexport interface CarouselProps {\n children: React.ReactNode;\n // Core\n initialSlide?: number;\n direction?: SliderDirection;\n speed?: number;\n spaceBetween?: number;\n slidesPerView?: number | \"auto\";\n slidesPerGroup?: number;\n centeredSlides?: boolean;\n loop?: boolean;\n loopedSlides?: number;\n rewind?: boolean;\n effect?: SliderEffect;\n // Responsive breakpoints\n breakpoints?: Record<number, BreakpointOptions>;\n // Navigation\n navigation?: boolean | NavigationOptions;\n // Pagination\n pagination?: boolean | PaginationOptions;\n // Autoplay\n autoplay?: boolean | AutoplayOptions;\n // Interaction\n allowTouchMove?: boolean;\n grabCursor?: boolean;\n keyboard?: boolean;\n mousewheel?: boolean;\n freeMode?: boolean;\n // Styling\n className?: string;\n containerClassName?: string;\n wrapperClassName?: string;\n slideClassName?: string;\n // Image Viewer\n enableImageViewer?: boolean;\n // Callbacks\n onSlideChange?: (swiper: { activeIndex: number; realIndex: number }) => void;\n onReachBeginning?: () => void;\n onReachEnd?: () => void;\n onAutoplayStart?: () => void;\n onAutoplayStop?: () => void;\n}\n\n// ============================================================================\n// Carousel Slide Component Types\n// ============================================================================\n\nexport interface CarouselSlideProps\n extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\n// ============================================================================\n// Carousel Component\n// ============================================================================\n\nexport const Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(\n (\n {\n children,\n initialSlide = 0,\n direction = \"horizontal\",\n speed = 300,\n spaceBetween = 0,\n slidesPerView = 1,\n slidesPerGroup = 1,\n centeredSlides = false,\n loop = false,\n rewind = false,\n effect = \"slide\",\n breakpoints,\n navigation = false,\n pagination = false,\n autoplay = false,\n allowTouchMove = true,\n grabCursor = true,\n keyboard = false,\n mousewheel = false,\n className,\n containerClassName,\n wrapperClassName,\n slideClassName,\n enableImageViewer = false,\n onSlideChange,\n onReachBeginning,\n onReachEnd,\n onAutoplayStart,\n onAutoplayStop,\n },\n ref\n ) => {\n // Parse navigation options\n const navigationOptions: NavigationOptions =\n typeof navigation === \"boolean\"\n ? { enabled: navigation, position: \"inside\" }\n : { enabled: true, position: \"inside\", ...navigation };\n\n // Parse pagination options\n const paginationOptions: PaginationOptions =\n typeof pagination === \"boolean\"\n ? { enabled: pagination, type: \"bullets\", position: \"inside\" }\n : { enabled: true, type: \"bullets\", position: \"inside\", ...pagination };\n\n // Parse autoplay options\n const autoplayOptions: AutoplayOptions = useMemo(\n () =>\n typeof autoplay === \"boolean\"\n ? { delay: 3000, disableOnInteraction: true }\n : { delay: 3000, disableOnInteraction: true, ...autoplay },\n [autoplay]\n );\n\n // State\n const [activeIndex, setActiveIndex] = useState(initialSlide);\n const [isBeginning, setIsBeginning] = useState(initialSlide === 0);\n const [isEnd, setIsEnd] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [translate, setTranslate] = useState(0);\n const [isAutoplayRunning, setIsAutoplayRunning] = useState(false);\n const [showScrollbar, setShowScrollbar] = useState(false);\n const [windowWidth, setWindowWidth] = useState(\n typeof window !== \"undefined\" ? window.innerWidth : 1024\n );\n const [viewerVisible, setViewerVisible] = useState(false);\n const [viewerIndex, setViewerIndex] = useState(0);\n\n // Handle window resize for breakpoints\n useEffect(() => {\n if (!breakpoints) return;\n\n const handleResize = () => {\n setWindowWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [breakpoints]);\n\n // Get current breakpoint values\n const currentBreakpoint = useMemo(() => {\n if (!breakpoints) {\n return { slidesPerView, spaceBetween, slidesPerGroup };\n }\n\n const breakpointKeys = Object.keys(breakpoints)\n .map(Number)\n .sort((a, b) => b - a); // Sort descending\n\n for (const breakpoint of breakpointKeys) {\n if (windowWidth >= breakpoint) {\n return {\n slidesPerView:\n breakpoints[breakpoint].slidesPerView ?? slidesPerView,\n spaceBetween: breakpoints[breakpoint].spaceBetween ?? spaceBetween,\n slidesPerGroup:\n breakpoints[breakpoint].slidesPerGroup ?? slidesPerGroup,\n };\n }\n }\n\n return { slidesPerView, spaceBetween, slidesPerGroup };\n }, [breakpoints, windowWidth, slidesPerView, spaceBetween, slidesPerGroup]);\n\n // Use breakpoint values\n const actualSlidesPerView = currentBreakpoint.slidesPerView;\n const actualSpaceBetween = currentBreakpoint.spaceBetween;\n const actualSlidesPerGroup = currentBreakpoint.slidesPerGroup;\n\n // Refs\n const containerRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const autoplayTimerRef = useRef<number | null>(null);\n const scrollbarTimerRef = useRef<number | null>(null);\n const dragStateRef = useRef({\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n });\n const hasDraggedRef = useRef(false);\n\n // Get slides\n const slides = Children.toArray(children).filter(\n (child) => isValidElement(child) && child.type === CarouselSlide\n );\n const totalSlides = slides.length;\n\n // Helper function to find image in children\n const findImageInChildren = useCallback(\n (\n children: React.ReactNode\n ): React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n > | null => {\n let result: React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n > | null = null;\n\n React.Children.forEach(children, (child) => {\n if (result) return;\n\n if (isValidElement(child)) {\n if (child.type === \"img\") {\n result = child as React.ReactElement<\n React.ImgHTMLAttributes<HTMLImageElement>\n >;\n } else if (\n child.props &&\n typeof child.props === \"object\" &&\n \"children\" in child.props\n ) {\n result = findImageInChildren(\n child.props.children as React.ReactNode\n );\n }\n }\n });\n\n return result;\n },\n []\n );\n\n // Extract images for ImageViewer\n const imageInfos = useMemo((): ImageInfo[] => {\n if (!enableImageViewer) return [];\n\n return slides.map((slide) => {\n const slideElement = slide as React.ReactElement<CarouselSlideProps>;\n const imgElement = findImageInChildren(slideElement.props.children);\n\n if (imgElement) {\n return {\n src: imgElement.props.src || \"\",\n alt: imgElement.props.alt || \"\",\n };\n }\n\n return { src: \"\", alt: \"\" };\n });\n }, [slides, enableImageViewer, findImageInChildren]);\n\n // Handle slide click for image viewer\n const handleSlideClick = useCallback(\n (index: number) => {\n console.log(\"Slide clicked:\", {\n index,\n enableImageViewer,\n hasSrc: !!imageInfos[index]?.src,\n hasDragged: hasDraggedRef.current,\n imageInfos,\n });\n\n // Only open viewer if not dragged\n if (\n enableImageViewer &&\n imageInfos[index]?.src &&\n !hasDraggedRef.current\n ) {\n console.log(\"Opening viewer at index:\", index);\n setViewerIndex(index);\n setViewerVisible(true);\n }\n },\n [enableImageViewer, imageInfos]\n );\n\n // Calculate visible slides\n const visibleSlides =\n actualSlidesPerView === \"auto\"\n ? 1\n : Math.min(actualSlidesPerView as number, totalSlides);\n\n // Update beginning/end state\n useEffect(() => {\n if (loop) {\n setIsBeginning(false);\n setIsEnd(false);\n } else {\n setIsBeginning(activeIndex === 0);\n setIsEnd(activeIndex >= totalSlides - visibleSlides);\n }\n }, [activeIndex, totalSlides, visibleSlides, loop]);\n\n // Slide to index\n const slideTo = useCallback(\n (index: number) => {\n let newIndex = index;\n\n if (loop) {\n // In loop mode, allow any index\n newIndex = ((index % totalSlides) + totalSlides) % totalSlides;\n } else if (rewind) {\n // In rewind mode, wrap around\n if (index < 0) newIndex = totalSlides - 1;\n else if (index >= totalSlides) newIndex = 0;\n else newIndex = index;\n } else {\n // Normal mode, clamp to bounds\n newIndex = Math.max(0, Math.min(index, totalSlides - visibleSlides));\n }\n\n setActiveIndex(newIndex);\n\n // Calculate translate\n const containerSize =\n direction === \"horizontal\"\n ? containerRef.current?.offsetWidth || 0\n : containerRef.current?.offsetHeight || 0;\n\n const slideSize = containerSize / visibleSlides;\n let newTranslate = -newIndex * (slideSize + actualSpaceBetween);\n\n if (centeredSlides && visibleSlides < totalSlides) {\n newTranslate += containerSize / 2 - slideSize / 2;\n }\n\n setTranslate(newTranslate);\n\n // Show scrollbar on slide change\n if (paginationOptions.type === \"scrollbar\") {\n setShowScrollbar(true);\n if (scrollbarTimerRef.current) {\n clearTimeout(scrollbarTimerRef.current);\n }\n scrollbarTimerRef.current = setTimeout(() => {\n setShowScrollbar(false);\n }, 1000) as unknown as number;\n }\n\n // Callbacks\n onSlideChange?.({ activeIndex: newIndex, realIndex: newIndex });\n\n if (newIndex === 0) onReachBeginning?.();\n if (newIndex >= totalSlides - visibleSlides) onReachEnd?.();\n },\n [\n totalSlides,\n visibleSlides,\n loop,\n rewind,\n direction,\n actualSpaceBetween,\n centeredSlides,\n paginationOptions.type,\n onSlideChange,\n onReachBeginning,\n onReachEnd,\n ]\n );\n\n // Navigation\n const slideNext = useCallback(() => {\n slideTo(activeIndex + actualSlidesPerGroup);\n }, [activeIndex, actualSlidesPerGroup, slideTo]);\n\n const slidePrev = useCallback(() => {\n slideTo(activeIndex - actualSlidesPerGroup);\n }, [activeIndex, actualSlidesPerGroup, slideTo]);\n\n // Autoplay\n const stopAutoplay = useCallback(() => {\n if (autoplayTimerRef.current) {\n clearInterval(autoplayTimerRef.current);\n autoplayTimerRef.current = null;\n }\n setIsAutoplayRunning(false);\n onAutoplayStop?.();\n }, [onAutoplayStop]);\n\n const startAutoplay = useCallback(() => {\n if (!autoplay) return;\n\n autoplayTimerRef.current = setInterval(() => {\n if (autoplayOptions.reverseDirection) {\n slidePrev();\n } else {\n slideNext();\n }\n\n if (autoplayOptions.stopOnLastSlide && isEnd) {\n stopAutoplay();\n }\n }, autoplayOptions.delay) as unknown as number;\n\n setIsAutoplayRunning(true);\n onAutoplayStart?.();\n }, [\n autoplayOptions,\n autoplay,\n slideNext,\n slidePrev,\n isEnd,\n onAutoplayStart,\n stopAutoplay,\n ]);\n\n // Auto-start autoplay\n useEffect(() => {\n if (autoplay) {\n startAutoplay();\n }\n return () => stopAutoplay();\n }, [autoplay, startAutoplay, stopAutoplay]);\n\n // Pause on hover\n const handleMouseEnter = useCallback(() => {\n if (autoplayOptions.pauseOnMouseEnter && isAutoplayRunning) {\n stopAutoplay();\n }\n }, [autoplayOptions.pauseOnMouseEnter, isAutoplayRunning, stopAutoplay]);\n\n const handleMouseLeave = useCallback(() => {\n if (autoplayOptions.pauseOnMouseEnter && autoplay && !isAutoplayRunning) {\n startAutoplay();\n }\n }, [\n autoplayOptions.pauseOnMouseEnter,\n autoplay,\n isAutoplayRunning,\n startAutoplay,\n ]);\n\n // Touch/drag handlers\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (!allowTouchMove) return;\n\n try {\n e.currentTarget.setPointerCapture(e.pointerId);\n } catch (err) {\n console.error(\"Failed to capture pointer:\", err);\n }\n\n dragStateRef.current.startX = e.clientX;\n dragStateRef.current.startY = e.clientY;\n dragStateRef.current.currentX = e.clientX;\n dragStateRef.current.currentY = e.clientY;\n hasDraggedRef.current = false;\n setIsDragging(true);\n\n if (autoplayOptions.disableOnInteraction) {\n stopAutoplay();\n }\n },\n [allowTouchMove, autoplayOptions.disableOnInteraction, stopAutoplay]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!allowTouchMove) return;\n\n const startX = dragStateRef.current.startX;\n const startY = dragStateRef.current.startY;\n\n // Check if drag has started (startX/Y are set)\n if (startX === 0 && startY === 0) return;\n\n e.preventDefault();\n dragStateRef.current.currentX = e.clientX;\n dragStateRef.current.currentY = e.clientY;\n\n // Mark as dragged if moved more than 5px\n const diffX = Math.abs(e.clientX - dragStateRef.current.startX);\n const diffY = Math.abs(e.clientY - dragStateRef.current.startY);\n if (diffX > 5 || diffY > 5) {\n hasDraggedRef.current = true;\n }\n\n setIsDragging(true);\n },\n [allowTouchMove]\n );\n\n const handlePointerUp = useCallback(() => {\n const startX = dragStateRef.current.startX;\n const startY = dragStateRef.current.startY;\n\n // Check if we actually dragged\n if (startX === 0 && startY === 0) return;\n\n const diffX = dragStateRef.current.currentX - startX;\n const diffY = dragStateRef.current.currentY - startY;\n const diff = direction === \"horizontal\" ? diffX : diffY;\n\n // Determine slide action with lower threshold\n const threshold = 0;\n if (Math.abs(diff) > threshold && hasDraggedRef.current) {\n if (diff > 0) {\n // Swipe right/down = previous slide\n slidePrev();\n } else {\n // Swipe left/up = next slide\n slideNext();\n }\n } else {\n // Snap back to current\n slideTo(activeIndex);\n }\n\n // Reset after a small delay to allow onClick to check the flag\n setTimeout(() => {\n setIsDragging(false);\n dragStateRef.current.startX = 0;\n dragStateRef.current.startY = 0;\n dragStateRef.current.currentX = 0;\n dragStateRef.current.currentY = 0;\n hasDraggedRef.current = false;\n }, 50);\n }, [direction, slidePrev, slideNext, slideTo, activeIndex]);\n\n // Keyboard navigation\n useEffect(() => {\n if (!keyboard) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n slidePrev();\n } else if (e.key === \"ArrowRight\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n slideNext();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [keyboard, slideNext, slidePrev]);\n\n // Mousewheel navigation\n useEffect(() => {\n if (!mousewheel) return;\n\n const handleWheel = (e: WheelEvent) => {\n e.preventDefault();\n if (e.deltaY > 0) slideNext();\n else if (e.deltaY < 0) slidePrev();\n };\n\n const container = containerRef.current;\n if (container) {\n container.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => container.removeEventListener(\"wheel\", handleWheel);\n }\n }, [mousewheel, slideNext, slidePrev]);\n\n // Render pagination\n const renderPagination = () => {\n if (!paginationOptions.enabled) return null;\n\n const {\n type,\n clickable,\n dynamicBullets,\n dynamicMainBullets = 1,\n position = \"inside\",\n } = paginationOptions;\n\n const isOutside = position === \"outside\";\n\n if (type === \"bullets\") {\n const bulletsToShow = dynamicBullets\n ? Math.min(dynamicMainBullets * 2 + 1, totalSlides)\n : totalSlides;\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-2\",\n isOutside\n ? \"mt-4\" // Outside: margin-top for spacing\n : \"absolute bottom-4 left-1/2 -translate-x-1/2\", // Inside: overlay\n direction === \"vertical\" &&\n !isOutside &&\n \"flex-col right-4 left-auto top-1/2 -translate-y-1/2 translate-x-0 bottom-auto\"\n )}\n >\n {Array.from({ length: bulletsToShow }).map((_, i) => {\n const bulletIndex = dynamicBullets\n ? Math.max(\n 0,\n Math.min(\n i + activeIndex - dynamicMainBullets,\n totalSlides - 1\n )\n )\n : i;\n\n const isActive = bulletIndex === activeIndex;\n\n return paginationOptions.renderBullet ? (\n <React.Fragment key={bulletIndex}>\n {paginationOptions.renderBullet(\n bulletIndex,\n cn(\n \"carousel-pagination-bullet\",\n isActive && \"carousel-pagination-bullet-active\"\n )\n )}\n </React.Fragment>\n ) : (\n <button\n key={bulletIndex}\n onClick={() => clickable && slideTo(bulletIndex)}\n className={cn(\n \"rounded-full transition-all\",\n direction === \"horizontal\" ? \"w-2 h-2\" : \"w-2 h-2\",\n isActive\n ? direction === \"horizontal\"\n ? \"bg-primary w-6\"\n : \"bg-primary h-6\"\n : \"bg-muted-foreground/30 hover:bg-muted-foreground/50\",\n clickable && \"cursor-pointer\"\n )}\n aria-label={`Go to slide ${bulletIndex + 1}`}\n />\n );\n })}\n </div>\n );\n }\n\n if (type === \"fraction\") {\n return (\n <div\n className={cn(\n \"text-center text-sm text-muted-foreground bg-background/80 backdrop-blur px-3 py-1 rounded-full\",\n isOutside\n ? \"mt-4 mx-auto w-fit\" // Outside: centered with margin\n : \"absolute bottom-4 left-1/2 -translate-x-1/2\" // Inside: overlay\n )}\n >\n {paginationOptions.renderFraction ? (\n paginationOptions.renderFraction(\n \"carousel-pagination-current\",\n \"carousel-pagination-total\"\n )\n ) : (\n <>\n <span className=\"carousel-pagination-current font-semibold text-foreground\">\n {activeIndex + 1}\n </span>\n {\" / \"}\n <span className=\"carousel-pagination-total\">{totalSlides}</span>\n </>\n )}\n </div>\n );\n }\n\n if (type === \"progressbar\") {\n const progress = ((activeIndex + 1) / totalSlides) * 100;\n const isInside = paginationOptions.position === \"inside\";\n\n const handleProgressbarClick = (\n e: React.MouseEvent<HTMLDivElement>\n ) => {\n if (!clickable) return;\n const rect = e.currentTarget.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percentage = clickX / rect.width;\n const targetIndex = Math.floor(percentage * totalSlides);\n slideTo(Math.min(targetIndex, totalSlides - 1));\n };\n\n return (\n <div\n onClick={handleProgressbarClick}\n className={cn(\n \"w-full h-1 bg-muted rounded-full overflow-hidden\",\n isInside\n ? \"absolute bottom-0 left-0 right-0 rounded-none\"\n : \"mt-4\",\n clickable && \"cursor-pointer\"\n )}\n >\n {paginationOptions.renderProgressbar ? (\n paginationOptions.renderProgressbar(\"carousel-progressbar-fill\")\n ) : (\n <div\n className=\"carousel-progressbar-fill h-full bg-primary transition-all duration-300\"\n style={{ width: `${progress}%` }}\n />\n )}\n </div>\n );\n }\n\n if (type === \"custom\" && paginationOptions.renderCustom) {\n return (\n <div\n className={cn(\n isOutside\n ? \"mt-4 flex justify-center\" // Outside: centered with margin\n : \"absolute bottom-4 left-1/2 -translate-x-1/2\" // Inside: overlay\n )}\n >\n {paginationOptions.renderCustom(activeIndex + 1, totalSlides)}\n </div>\n );\n }\n\n if (type === \"scrollbar\") {\n const dragWidth = (1 / totalSlides) * 100;\n const scrollPosition =\n (activeIndex / (totalSlides - 1)) * (100 - dragWidth);\n\n const handleScrollbarClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!clickable) return;\n\n // Show scrollbar on click\n setShowScrollbar(true);\n if (scrollbarTimerRef.current) {\n clearTimeout(scrollbarTimerRef.current);\n }\n\n const rect = e.currentTarget.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percentage = clickX / rect.width;\n const targetIndex = Math.round(percentage * (totalSlides - 1));\n slideTo(Math.max(0, Math.min(targetIndex, totalSlides - 1)));\n\n // Hide after 1s\n scrollbarTimerRef.current = setTimeout(() => {\n setShowScrollbar(false);\n }, 1000) as unknown as number;\n };\n\n return (\n <div\n onClick={handleScrollbarClick}\n className={cn(\n \"w-full h-1 bg-muted/50 rounded-full transition-opacity duration-300\",\n isOutside\n ? \"mt-4\" // Outside: margin-top for spacing\n : \"absolute bottom-0 left-1/2 -translate-x-1/2\", // Inside: overlay at bottom\n clickable && \"cursor-pointer\",\n showScrollbar ? \"opacity-100\" : \"opacity-0\"\n )}\n >\n {paginationOptions.renderScrollbar ? (\n paginationOptions.renderScrollbar(\"carousel-scrollbar-drag\")\n ) : (\n <div\n className=\"carousel-scrollbar-drag h-full bg-primary rounded-full transition-all duration-300 absolute left-0\"\n style={{\n width: `${dragWidth}%`,\n left: `${scrollPosition}%`,\n }}\n />\n )}\n </div>\n );\n }\n\n return null;\n };\n\n // Get effect transform/classes for slides\n const getSlideTransform = (index: number) => {\n const diff = index - activeIndex;\n\n switch (effect) {\n case \"fade\":\n return {\n opacity: diff === 0 ? 1 : 0,\n zIndex: diff === 0 ? 10 : 0,\n };\n case \"cube\":\n return {\n transform: `translateX(${diff * 100}%) rotateY(${diff * -90}deg)`,\n transformOrigin: diff > 0 ? \"left center\" : \"right center\",\n };\n case \"coverflow\":\n return {\n transform: `translateX(${diff * 60}%) translateZ(${Math.abs(diff) * -100}px) rotateY(${diff * -50}deg)`,\n zIndex: -Math.abs(diff),\n };\n case \"flip\":\n return {\n transform: `rotateY(${diff * 180}deg)`,\n backfaceVisibility: \"hidden\" as const,\n };\n case \"cards\":\n return {\n transform: `translateX(${diff * 50}px) translateZ(${-Math.abs(diff) * 100}px) scale(${1 - Math.abs(diff) * 0.2})`,\n opacity: diff === 0 ? 1 : 0.5,\n zIndex: 100 - Math.abs(diff) * 10,\n transition: \"all 0.5s ease\",\n };\n default:\n return {};\n }\n };\n\n return (\n <>\n <div\n ref={ref}\n className={cn(\"carousel-container\", containerClassName, className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div\n ref={containerRef}\n className={cn(\n \"carousel relative overflow-hidden\",\n (effect === \"fade\" ||\n effect === \"cube\" ||\n effect === \"flip\" ||\n effect === \"cards\") &&\n \"aspect-4/3\",\n effect === \"coverflow\" && \"aspect-4/2 rounded-xl\",\n direction === \"vertical\" && effect === \"slide\" && \"h-full\",\n grabCursor && allowTouchMove && !isDragging && \"cursor-grab\",\n isDragging && \"cursor-grabbing\"\n )}\n >\n {/* Wrapper */}\n <div\n ref={wrapperRef}\n className={cn(\n \"carousel-wrapper select-none\",\n effect === \"slide\" && \"flex\",\n direction === \"vertical\" &&\n effect === \"slide\" &&\n \"flex-col h-full\",\n effect !== \"slide\" && \"relative\",\n wrapperClassName\n )}\n style={{\n transform:\n effect === \"slide\"\n ? direction === \"horizontal\"\n ? `translateX(${translate}px)`\n : `translateY(${translate}px)`\n : undefined,\n transition: isDragging ? \"none\" : `transform ${speed}ms ease`,\n gap: effect === \"slide\" ? `${actualSpaceBetween}px` : undefined,\n perspective:\n effect !== \"slide\" && effect !== \"fade\"\n ? \"1200px\"\n : undefined,\n touchAction: allowTouchMove ? \"none\" : \"auto\",\n height:\n direction === \"vertical\" && effect === \"slide\"\n ? \"100%\"\n : undefined,\n }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n >\n {slides.map((slide, index) => {\n const isActive = index === activeIndex;\n const slideElement =\n slide as React.ReactElement<CarouselSlideProps>;\n\n return cloneElement(slideElement, {\n key: index,\n className: cn(\n \"carousel-slide\",\n slideClassName,\n slideElement.props.className,\n effect !== \"slide\" && \"absolute inset-0\",\n effect === \"fade\" && \"transition-opacity duration-300\",\n effect !== \"slide\" &&\n effect !== \"fade\" &&\n \"transition-all duration-500\",\n enableImageViewer &&\n imageInfos[index]?.src &&\n \"cursor-pointer\"\n ),\n style: {\n flex:\n effect === \"slide\"\n ? direction === \"vertical\"\n ? `0 0 100%`\n : `0 0 calc(${100 / visibleSlides}% - ${(actualSpaceBetween * (visibleSlides - 1)) / visibleSlides}px)`\n : undefined,\n minWidth:\n effect === \"slide\" && direction === \"horizontal\"\n ? 0\n : undefined,\n minHeight:\n effect === \"slide\" && direction === \"vertical\"\n ? 0\n : undefined,\n height:\n direction === \"vertical\" && effect === \"slide\"\n ? \"100%\"\n : undefined,\n userSelect: \"none\",\n // @ts-expect-error - WebkitUserDrag is not in CSSProperties but is valid CSS\n WebkitUserDrag: \"none\",\n ...(effect !== \"slide\" ? getSlideTransform(index) : {}),\n ...slideElement.props.style,\n } as React.CSSProperties,\n onClick: (e: React.MouseEvent) => {\n e.stopPropagation();\n handleSlideClick(index);\n },\n onDragStart: (e: React.DragEvent) => e.preventDefault(),\n \"data-active\": isActive,\n \"data-index\": index,\n } as Partial<CarouselSlideProps>);\n })}\n </div>\n\n {/* Pagination - Inside only (overlay on slider) */}\n {paginationOptions.enabled &&\n paginationOptions.position !== \"outside\" &&\n renderPagination()}\n\n {/* Navigation - Inside (overlay on slider) */}\n {navigationOptions.enabled &&\n navigationOptions.position === \"inside\" && (\n <>\n <button\n onClick={slidePrev}\n disabled={!loop && !rewind && isBeginning}\n className={cn(\n \"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"left-4 top-1/2 -translate-y-1/2\"\n : \"top-4 left-1/2 -translate-x-1/2\"\n )}\n aria-label=\"Previous slide\"\n >\n {navigationOptions.prevEl ||\n (direction === \"horizontal\" ? (\n <ChevronLeft className=\"w-5 h-5\" />\n ) : (\n <ChevronUp className=\"w-5 h-5\" />\n ))}\n </button>\n <button\n onClick={slideNext}\n disabled={!loop && !rewind && isEnd}\n className={cn(\n \"absolute z-10 w-10 h-10 rounded-full bg-background/80 backdrop-blur shadow-lg flex items-center justify-center transition-all hover:bg-background disabled:opacity-30 disabled:cursor-not-allowed\",\n direction === \"horizontal\"\n ? \"right-4 top-1/2 -translate-y-1/2\"\n : \"bottom-4 left-1/2 -translate-x-1/2\"\n )}\n aria-label=\"Next slide\"\n >\n {navigationOptions.nextEl ||\n (direction === \"horizontal\" ? (\n <ChevronRight className=\"w-5 h-5\" />\n ) : (\n <ChevronDown className=\"w-5 h-5\" />\n ))}\n </button>\n </>\n )}\n </div>\n\n {/* Pagination - Outside (below slider) */}\n {paginationOptions.enabled &&\n paginationOptions.position === \"outside\" &&\n renderPagination()}\n </div>\n\n {/* Image Viewer */}\n {enableImageViewer && imageInfos.length > 0 && (\n <ImageViewer\n images={imageInfos}\n visible={viewerVisible}\n onClose={() => {\n console.log(\"Closing viewer\");\n setViewerVisible(false);\n }}\n activeIndex={viewerIndex}\n onIndexChange={setViewerIndex}\n />\n )}\n {/* {enableImageViewer && (\n <div\n style={{\n position: \"fixed\",\n top: 10,\n right: 10,\n background: \"white\",\n padding: \"10px\",\n zIndex: 9999,\n fontSize: \"12px\",\n }}\n >\n Debug: visible={String(viewerVisible)}, images={imageInfos.length},\n index={viewerIndex}\n </div>\n )} */}\n </>\n );\n }\n);\n\nCarousel.displayName = \"Carousel\";\n\n// ============================================================================\n// Carousel Slide Component\n// ============================================================================\n\nexport const CarouselSlide = React.forwardRef<\n HTMLDivElement,\n CarouselSlideProps\n>(({ children, className, style, ...props }, ref) => {\n return (\n <div ref={ref} className={className} style={style} {...props}>\n {children}\n </div>\n );\n});\n\nCarouselSlide.displayName = \"CarouselSlide\";\n\nexport default Carousel;\n"],"names":["Carousel","React","children","initialSlide","direction","speed","spaceBetween","slidesPerView","slidesPerGroup","centeredSlides","loop","rewind","effect","breakpoints","navigation","pagination","autoplay","allowTouchMove","grabCursor","keyboard","mousewheel","className","containerClassName","wrapperClassName","slideClassName","enableImageViewer","onSlideChange","onReachBeginning","onReachEnd","onAutoplayStart","onAutoplayStop","ref","navigationOptions","paginationOptions","autoplayOptions","useMemo","activeIndex","setActiveIndex","useState","isBeginning","setIsBeginning","isEnd","setIsEnd","isDragging","setIsDragging","translate","setTranslate","isAutoplayRunning","setIsAutoplayRunning","showScrollbar","setShowScrollbar","windowWidth","setWindowWidth","viewerVisible","setViewerVisible","viewerIndex","setViewerIndex","useEffect","handleResize","currentBreakpoint","breakpointKeys","a","b","breakpoint","actualSlidesPerView","actualSpaceBetween","actualSlidesPerGroup","containerRef","useRef","wrapperRef","autoplayTimerRef","scrollbarTimerRef","dragStateRef","hasDraggedRef","slides","Children","child","isValidElement","CarouselSlide","totalSlides","findImageInChildren","useCallback","result","imageInfos","slide","imgElement","handleSlideClick","index","visibleSlides","slideTo","newIndex","containerSize","slideSize","newTranslate","slideNext","slidePrev","stopAutoplay","startAutoplay","handleMouseEnter","handleMouseLeave","handlePointerDown","e","err","handlePointerMove","startX","startY","diffX","diffY","handlePointerUp","diff","handleKeyDown","handleWheel","container","renderPagination","type","clickable","dynamicBullets","dynamicMainBullets","position","isOutside","bulletsToShow","jsx","cn","i","bulletIndex","isActive","jsxs","Fragment","progress","isInside","handleProgressbarClick","rect","percentage","targetIndex","dragWidth","scrollPosition","handleScrollbarClick","getSlideTransform","slideElement","cloneElement","ChevronLeft","ChevronUp","ChevronRight","ChevronDown","ImageViewer","style","props"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),c=require("react"),_=require("@dsui/ui/components/checkbox"),l=require("@dsui/ui/index"),p=require("../Tooltip/Tooltip.cjs"),g=require("lucide-react"),F=require("motion/react"),M=require("../../utils/css.cjs"),b=c.forwardRef((j,C)=>{const{label:n,infoTooltip:i,helperText:o,state:r,variant:v="default",size:N="default",color:w,labelPosition:t="right",labelAlignment:d="center",icon:q,animation:T,id:k,...x}=j,[y,u]=c.useState(!1),I=c.useId(),a=k||I,S={default:"text-muted-foreground",success:"text-success",warning:"text-warning",error:"text-error"},P=s=>{s&&(u(!0),setTimeout(()=>u(!1),800))},m=t==="top"||t==="bottom",R=m?"flex-col":"flex-row",z=m?"gap-1.5":"gap-2",A=d==="start"?"items-start":d==="center"?"items-center":"items-end",f="flex gap-2 peer-disabled:cursor-not-allowed peer-disabled:opacity-70";return e.jsxs("div",{className:l.cn("flex flex-col gap-1.5 relative",{}),children:[e.jsxs("div",{className:l.cn("flex",R,z,A),children:[(t==="top"||t==="left")&&n&&e.jsxs("label",{htmlFor:a,className:f,children:[n,i&&e.jsx(p.Tooltip,{content:i,children:e.jsx(g.Info,{className:"size-3.5 min-w-3.5"})})]}),e.jsxs("div",{className:"relative inline-flex",children:[e.jsx(_.Checkbox,{ref:C,id:a,...x,variant:v,size:N,color:w,icon:q,onCheckedChange:s=>{T&&P(!!s),x?.onCheckedChange?.(s)}}),e.jsx(F.AnimatePresence,{children:y&&e.jsx("div",{className:"pointer-events-none absolute inset-0",children:[...Array(12)].map((s,h)=>e.jsx(M.ConfettiPiece,{index:h},h))})})]}),(t==="bottom"||t==="right")&&n&&e.jsxs(l.Label,{htmlFor:a,className:f,children:[n,i&&e.jsx(p.Tooltip,{content:i,children:e.jsx(g.Info,{className:"size-3.5 min-w-3.5"})})]})]}),o&&e.jsx("div",{className:"flex items-center justify-between text-xs gap-2",children:o&&e.jsx("p",{className:l.cn("text-xs",r?S?.[r]:""),children:o})})]})});b.displayName="Checkbox";exports.default=b;
2
+ //# sourceMappingURL=Checkbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Checkbox as SCheckbox } from \"@dsui/ui/components/checkbox\";\nimport { cn } from \"@dsui/ui/index\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport { Label } from \"../Label\";\nimport { Info } from \"lucide-react\";\nimport { AnimatePresence } from \"motion/react\";\nimport { ConfettiPiece } from \"@/utils/css\";\n\nexport type CheckboxProps = React.ComponentProps<typeof SCheckbox> & {\n label?: React.ReactNode;\n labelPosition?: \"top\" | \"left\" | \"right\" | \"bottom\";\n labelAlignment?: \"start\" | \"center\" | \"end\";\n infoTooltip?: React.ReactNode;\n helperText?: React.ReactNode;\n state?: \"default\" | \"error\" | \"success\" | \"warning\";\n icon?: React.ReactNode;\n animation?: \"confetti\" | undefined;\n};\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (props, ref) => {\n const {\n label,\n infoTooltip,\n helperText,\n state,\n variant = \"default\",\n size = \"default\",\n color,\n labelPosition = \"right\",\n labelAlignment = \"center\",\n icon,\n animation,\n id,\n ...rest\n } = props;\n const [showConfetti, setShowConfetti] = useState(false);\n const generatedId = React.useId();\n const inputId = id || generatedId;\n\n // State\n const helperTextStyles = {\n default: \"text-muted-foreground\",\n success: \"text-success\",\n warning: \"text-warning\",\n error: \"text-error\",\n };\n\n const handleCheckedChange = (checked: boolean) => {\n if (checked) {\n setShowConfetti(true);\n setTimeout(() => setShowConfetti(false), 800);\n }\n };\n\n const isVertical = labelPosition === \"top\" || labelPosition === \"bottom\";\n const flexDirection = isVertical ? \"flex-col\" : \"flex-row\";\n const gapClass = isVertical ? \"gap-1.5\" : \"gap-2\";\n\n const alignmentClass =\n labelAlignment === \"start\"\n ? \"items-start\"\n : labelAlignment === \"center\"\n ? \"items-center\"\n : \"items-end\";\n\n const labelClass =\n \"flex gap-2 peer-disabled:cursor-not-allowed peer-disabled:opacity-70\";\n\n return (\n <div className={cn(\"flex flex-col gap-1.5 relative\", {})}>\n <div className={cn(\"flex\", flexDirection, gapClass, alignmentClass)}>\n {(labelPosition === \"top\" || labelPosition === \"left\") && label && (\n <label htmlFor={inputId} className={labelClass}>\n {label}\n {infoTooltip && (\n <Tooltip content={infoTooltip}>\n <Info className=\"size-3.5 min-w-3.5\" />\n </Tooltip>\n )}\n </label>\n )}\n\n <div className=\"relative inline-flex\">\n <SCheckbox\n ref={ref}\n id={inputId}\n {...rest}\n variant={variant}\n size={size}\n color={color}\n icon={icon}\n onCheckedChange={(checked) => {\n if (animation) handleCheckedChange(!!checked);\n rest?.onCheckedChange?.(checked);\n }}\n />\n\n <AnimatePresence>\n {showConfetti && (\n <div className=\"pointer-events-none absolute inset-0\">\n {[...Array(12)].map((_, i) => (\n <ConfettiPiece key={i} index={i} />\n ))}\n </div>\n )}\n </AnimatePresence>\n </div>\n\n {(labelPosition === \"bottom\" || labelPosition === \"right\") &&\n label && (\n <Label htmlFor={inputId} className={labelClass}>\n {label}\n {infoTooltip && (\n <Tooltip content={infoTooltip}>\n <Info className=\"size-3.5 min-w-3.5\" />\n </Tooltip>\n )}\n </Label>\n )}\n </div>\n\n {helperText && (\n <div className=\"flex items-center justify-between text-xs gap-2\">\n {helperText && (\n <p\n className={cn(\n \"text-xs\",\n state ? helperTextStyles?.[state] : \"\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\nexport default Checkbox;\n"],"names":["Checkbox","React","props","ref","label","infoTooltip","helperText","state","variant","size","color","labelPosition","labelAlignment","icon","animation","id","rest","showConfetti","setShowConfetti","useState","generatedId","inputId","helperTextStyles","handleCheckedChange","checked","isVertical","flexDirection","gapClass","alignmentClass","labelClass","cn","jsxs","Tooltip","jsx","Info","SCheckbox","AnimatePresence","_","i","ConfettiPiece","Label"],"mappings":"mWAoBMA,EAAWC,EAAM,WACrB,CAACC,EAAOC,IAAQ,CACd,KAAM,CACJ,MAAAC,EACA,YAAAC,EACA,WAAAC,EACA,MAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,MAAAC,EACA,cAAAC,EAAgB,QAChB,eAAAC,EAAiB,SACjB,KAAAC,EACA,UAAAC,EACA,GAAAC,EACA,GAAGC,CAAA,EACDd,EACE,CAACe,EAAcC,CAAe,EAAIC,EAAAA,SAAS,EAAK,EAChDC,EAAcnB,EAAM,MAAA,EACpBoB,EAAUN,GAAMK,EAGhBE,EAAmB,CACvB,QAAS,wBACT,QAAS,eACT,QAAS,eACT,MAAO,YAAA,EAGHC,EAAuBC,GAAqB,CAC5CA,IACFN,EAAgB,EAAI,EACpB,WAAW,IAAMA,EAAgB,EAAK,EAAG,GAAG,EAEhD,EAEMO,EAAad,IAAkB,OAASA,IAAkB,SAC1De,EAAgBD,EAAa,WAAa,WAC1CE,EAAWF,EAAa,UAAY,QAEpCG,EACJhB,IAAmB,QACf,cACAA,IAAmB,SACjB,eACA,YAEFiB,EACJ,uEAEF,cACG,MAAA,CAAI,UAAWC,EAAAA,GAAG,iCAAkC,CAAA,CAAE,EACrD,SAAA,CAAAC,OAAC,OAAI,UAAWD,EAAAA,GAAG,OAAQJ,EAAeC,EAAUC,CAAc,EAC9D,SAAA,EAAAjB,IAAkB,OAASA,IAAkB,SAAWP,UACvD,QAAA,CAAM,QAASiB,EAAS,UAAWQ,EACjC,SAAA,CAAAzB,EACAC,SACE2B,UAAA,CAAQ,QAAS3B,EAChB,SAAA4B,EAAAA,IAACC,EAAAA,KAAA,CAAK,UAAU,oBAAA,CAAqB,CAAA,CACvC,CAAA,EAEJ,EAGFH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAAAA,IAACE,EAAAA,SAAA,CACC,IAAAhC,EACA,GAAIkB,EACH,GAAGL,EACJ,QAAAR,EACA,KAAAC,EACA,MAAAC,EACA,KAAAG,EACA,gBAAkBW,GAAY,CACxBV,GAAWS,EAAoB,CAAC,CAACC,CAAO,EAC5CR,GAAM,kBAAkBQ,CAAO,CACjC,CAAA,CAAA,EAGFS,EAAAA,IAACG,EAAAA,gBAAA,CACE,SAAAnB,GACCgB,EAAAA,IAAC,MAAA,CAAI,UAAU,uCACZ,SAAA,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,CAACI,EAAGC,IACtBL,EAAAA,IAACM,EAAAA,cAAA,CAAsB,MAAOD,CAAA,EAAVA,CAAa,CAClC,CAAA,CACH,CAAA,CAEJ,CAAA,EACF,GAEE3B,IAAkB,UAAYA,IAAkB,UAChDP,UACGoC,EAAAA,MAAA,CAAM,QAASnB,EAAS,UAAWQ,EACjC,SAAA,CAAAzB,EACAC,SACE2B,UAAA,CAAQ,QAAS3B,EAChB,SAAA4B,EAAAA,IAACC,EAAAA,KAAA,CAAK,UAAU,oBAAA,CAAqB,CAAA,CACvC,CAAA,CAAA,CAEJ,CAAA,EAEN,EAEC5B,GACC2B,EAAAA,IAAC,MAAA,CAAI,UAAU,kDACZ,SAAA3B,GACC2B,EAAAA,IAAC,IAAA,CACC,UAAWH,EAAAA,GACT,UACAvB,EAAQe,IAAmBf,CAAK,EAAI,EAAA,EAGrC,SAAAD,CAAA,CAAA,CACH,CAEJ,CAAA,EAEJ,CAEJ,CACF,EAEAN,EAAS,YAAc"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),l=require("react"),n=require("@dsui/ui/components/collapsible"),t=require("@dsui/ui/lib/utils"),x=require("lucide-react"),y=l.forwardRef((j,a)=>{const{trigger:i,content:c,showIcon:p=!0,iconPosition:d="right",iconRotation:g=!0,triggerClassName:v,contentClassName:N,variant:O="default",className:u,open:s,defaultOpen:q,onOpenChange:w,children:b,...f}=j,[r,C]=l.useState(q??!1);l.useEffect(()=>{s!==void 0&&C(s)},[s]);const m=h=>{C(h),w?.(h)},o={default:{root:"rounded-lg border bg-card",trigger:"px-4 py-3 hover:bg-accent/50",content:"px-4 py-3 border-t"},bordered:{root:"rounded-lg border-2",trigger:"px-4 py-3 font-semibold hover:bg-accent",content:"px-4 py-3 border-t-2"},ghost:{root:"",trigger:"px-2 py-2 hover:bg-accent/30 rounded-md",content:"px-2 py-2"}}[O];return b&&!i&&!c?e.jsx(n.Collapsible,{ref:a,open:r,onOpenChange:m,className:t.cn(o.root,u),...f,children:b}):e.jsxs(n.Collapsible,{ref:a,open:r,onOpenChange:m,className:t.cn(o.root,u),...f,children:[e.jsxs(n.CollapsibleTrigger,{className:t.cn("flex w-full items-center justify-between transition-colors",o.trigger,v),children:[d==="left"&&p&&e.jsx(x.ChevronDown,{className:t.cn("size-4 transition-transform duration-200",g&&r&&"rotate-180")}),e.jsx("span",{className:"flex-1 text-left",children:i}),d==="right"&&p&&e.jsx(x.ChevronDown,{className:t.cn("size-4 transition-transform duration-200",g&&r&&"rotate-180")})]}),e.jsx(n.CollapsibleContent,{className:t.cn(o.content,N),children:c})]})});y.displayName="Collapsible";Object.defineProperty(exports,"CollapsibleContent",{enumerable:!0,get:()=>n.CollapsibleContent});Object.defineProperty(exports,"CollapsibleTrigger",{enumerable:!0,get:()=>n.CollapsibleTrigger});exports.default=y;
2
+ //# sourceMappingURL=Collapsible.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.cjs","sources":["../../../../src/components/Collapsible/Collapsible.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Collapsible as SCollapsible,\n CollapsibleTrigger,\n CollapsibleContent,\n} from \"@dsui/ui/components/collapsible\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ChevronDown } from \"lucide-react\";\n\nexport type CollapsibleProps = Omit<\n React.ComponentProps<typeof SCollapsible>,\n \"children\" | \"content\"\n> & {\n trigger?: React.ReactNode;\n content?: React.ReactNode;\n showIcon?: boolean;\n iconPosition?: \"left\" | \"right\";\n iconRotation?: boolean;\n triggerClassName?: string;\n contentClassName?: string;\n variant?: \"default\" | \"bordered\" | \"ghost\";\n children?: React.ReactNode;\n};\n\nconst Collapsible = React.forwardRef<\n React.ElementRef<typeof SCollapsible>,\n CollapsibleProps\n>((props, ref) => {\n const {\n trigger,\n content,\n showIcon = true,\n iconPosition = \"right\",\n iconRotation = true,\n triggerClassName,\n contentClassName,\n variant = \"default\",\n className,\n open,\n defaultOpen,\n onOpenChange,\n children,\n ...rest\n } = props;\n\n const [isOpen, setIsOpen] = React.useState(defaultOpen ?? false);\n\n React.useEffect(() => {\n if (open !== undefined) {\n setIsOpen(open);\n }\n }, [open]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setIsOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const variantStyles = {\n default: {\n root: \"rounded-lg border bg-card\",\n trigger: \"px-4 py-3 hover:bg-accent/50\",\n content: \"px-4 py-3 border-t\",\n },\n bordered: {\n root: \"rounded-lg border-2\",\n trigger: \"px-4 py-3 font-semibold hover:bg-accent\",\n content: \"px-4 py-3 border-t-2\",\n },\n ghost: {\n root: \"\",\n trigger: \"px-2 py-2 hover:bg-accent/30 rounded-md\",\n content: \"px-2 py-2\",\n },\n };\n\n const styles = variantStyles[variant];\n\n // If children are provided, use them directly (custom implementation)\n if (children && !trigger && !content) {\n return (\n <SCollapsible\n ref={ref}\n open={isOpen}\n onOpenChange={handleOpenChange}\n className={cn(styles.root, className)}\n {...rest}\n >\n {children}\n </SCollapsible>\n );\n }\n\n // Default implementation with trigger and content\n return (\n <SCollapsible\n ref={ref}\n open={isOpen}\n onOpenChange={handleOpenChange}\n className={cn(styles.root, className)}\n {...rest}\n >\n <CollapsibleTrigger\n className={cn(\n \"flex w-full items-center justify-between transition-colors\",\n styles.trigger,\n triggerClassName,\n )}\n >\n {iconPosition === \"left\" && showIcon && (\n <ChevronDown\n className={cn(\n \"size-4 transition-transform duration-200\",\n iconRotation && isOpen && \"rotate-180\",\n )}\n />\n )}\n <span className=\"flex-1 text-left\">{trigger}</span>\n {iconPosition === \"right\" && showIcon && (\n <ChevronDown\n className={cn(\n \"size-4 transition-transform duration-200\",\n iconRotation && isOpen && \"rotate-180\",\n )}\n />\n )}\n </CollapsibleTrigger>\n <CollapsibleContent className={cn(styles.content, contentClassName)}>\n {content}\n </CollapsibleContent>\n </SCollapsible>\n );\n});\n\nCollapsible.displayName = \"Collapsible\";\n\nexport default Collapsible;\nexport { CollapsibleTrigger, CollapsibleContent };\n"],"names":["Collapsible","React","props","ref","trigger","content","showIcon","iconPosition","iconRotation","triggerClassName","contentClassName","variant","className","open","defaultOpen","onOpenChange","children","rest","isOpen","setIsOpen","handleOpenChange","newOpen","styles","jsx","SCollapsible","cn","jsxs","CollapsibleTrigger","ChevronDown","CollapsibleContent"],"mappings":"2QAwBMA,EAAcC,EAAM,WAGxB,CAACC,EAAOC,IAAQ,CAChB,KAAM,CACJ,QAAAC,EACA,QAAAC,EACA,SAAAC,EAAW,GACX,aAAAC,EAAe,QACf,aAAAC,EAAe,GACf,iBAAAC,EACA,iBAAAC,EACA,QAAAC,EAAU,UACV,UAAAC,EACA,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,SAAAC,EACA,GAAGC,CAAA,EACDf,EAEE,CAACgB,EAAQC,CAAS,EAAIlB,EAAM,SAASa,GAAe,EAAK,EAE/Db,EAAM,UAAU,IAAM,CAChBY,IAAS,QACXM,EAAUN,CAAI,CAElB,EAAG,CAACA,CAAI,CAAC,EAET,MAAMO,EAAoBC,GAAqB,CAC7CF,EAAUE,CAAO,EACjBN,IAAeM,CAAO,CACxB,EAoBMC,EAlBgB,CACpB,QAAS,CACP,KAAM,4BACN,QAAS,+BACT,QAAS,oBAAA,EAEX,SAAU,CACR,KAAM,sBACN,QAAS,0CACT,QAAS,sBAAA,EAEX,MAAO,CACL,KAAM,GACN,QAAS,0CACT,QAAS,WAAA,CACX,EAG2BX,CAAO,EAGpC,OAAIK,GAAY,CAACZ,GAAW,CAACC,EAEzBkB,EAAAA,IAACC,EAAAA,YAAA,CACC,IAAArB,EACA,KAAMe,EACN,aAAcE,EACd,UAAWK,EAAAA,GAAGH,EAAO,KAAMV,CAAS,EACnC,GAAGK,EAEH,SAAAD,CAAA,CAAA,EAOLU,EAAAA,KAACF,EAAAA,YAAA,CACC,IAAArB,EACA,KAAMe,EACN,aAAcE,EACd,UAAWK,EAAAA,GAAGH,EAAO,KAAMV,CAAS,EACnC,GAAGK,EAEJ,SAAA,CAAAS,EAAAA,KAACC,EAAAA,mBAAA,CACC,UAAWF,EAAAA,GACT,6DACAH,EAAO,QACPb,CAAA,EAGD,SAAA,CAAAF,IAAiB,QAAUD,GAC1BiB,EAAAA,IAACK,EAAAA,YAAA,CACC,UAAWH,EAAAA,GACT,2CACAjB,GAAgBU,GAAU,YAAA,CAC5B,CAAA,EAGJK,EAAAA,IAAC,OAAA,CAAK,UAAU,mBAAoB,SAAAnB,EAAQ,EAC3CG,IAAiB,SAAWD,GAC3BiB,EAAAA,IAACK,EAAAA,YAAA,CACC,UAAWH,EAAAA,GACT,2CACAjB,GAAgBU,GAAU,YAAA,CAC5B,CAAA,CACF,CAAA,CAAA,EAGJK,MAACM,EAAAA,oBAAmB,UAAWJ,EAAAA,GAAGH,EAAO,QAASZ,CAAgB,EAC/D,SAAAL,CAAA,CACH,CAAA,CAAA,CAAA,CAGN,CAAC,EAEDL,EAAY,YAAc"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),y=require("react"),r=require("@dsui/ui/components/command"),q=require("@dsui/ui/lib/utils"),c=y.forwardRef((p,j)=>{const{className:d,children:x,items:s,search:o,open:t,defaultOpen:m,onOpenChange:i,modal:h=!1,title:C="Command Palette",description:f="Search for a command to run...",showCloseButton:g=!0,...u}=p,N=v=>v.map((n,l)=>{switch(n.type){case"item":return e.jsx(r.CommandItem,{disabled:n.disabled,className:n.className,onSelect:n.onClick,children:n.children?n.children:e.jsxs(e.Fragment,{children:[n.icon&&e.jsx(n.icon,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:n.label}),n.shortcut&&e.jsx(r.CommandShortcut,{children:n.shortcut})]})},l);case"group":return e.jsx(r.CommandGroup,{heading:n.heading,className:n.className,children:n.items.map((a,w)=>e.jsx(r.CommandItem,{disabled:a.disabled,className:a.className,onSelect:a.onClick,children:a.children?a.children:e.jsxs(e.Fragment,{children:[a.icon&&e.jsx(a.icon,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:a.label}),a.shortcut&&e.jsx(r.CommandShortcut,{children:a.shortcut})]})},w))},l);case"separator":return e.jsx(r.CommandSeparator,{},l);default:return null}}),S=e.jsxs(r.Command,{ref:j,className:q.cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",d),...u,children:[o&&e.jsx(r.CommandInput,{placeholder:typeof o=="string"?o:"Type a command or search..."}),e.jsx(r.CommandList,{children:s?e.jsxs(e.Fragment,{children:[e.jsx(r.CommandEmpty,{children:"No results found."}),N(s)]}):x})]});return h&&(t!==void 0||i||m!==void 0)?e.jsx(r.CommandDialog,{open:t,defaultOpen:m,onOpenChange:i,modal:h,title:C,description:f,showCloseButton:g,children:e.jsx(c,{className:d,items:s,search:o,...u})}):S});c.displayName="Command";exports.default=c;
2
+ //# sourceMappingURL=Command.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.cjs","sources":["../../../../src/components/Command/Command.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Command as SCommand,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandSeparator,\n CommandItem,\n CommandShortcut,\n} from \"@dsui/ui/components/command\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport interface CommandItem {\n readonly type: \"item\";\n label?: string;\n icon?: React.ComponentType<{ className?: string }>;\n shortcut?: string;\n disabled?: boolean;\n className?: string;\n onClick?: () => void;\n children?: React.ReactNode;\n}\n\nexport interface CommandGroup {\n readonly type: \"group\";\n heading: string;\n className?: string;\n items: CommandItem[];\n}\n\nexport interface CommandSeparator {\n readonly type: \"separator\";\n}\n\nexport type CommandItemType = CommandItem | CommandGroup | CommandSeparator;\n\nexport interface CommandProps {\n className?: string;\n children?: React.ReactNode;\n items?: CommandItemType[];\n search?: boolean | string;\n\n // Dialog mode props\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n title?: string;\n description?: string;\n showCloseButton?: boolean;\n}\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>((props, ref) => {\n const {\n className,\n children,\n items,\n search,\n open,\n defaultOpen,\n onOpenChange,\n modal = false,\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n showCloseButton = true,\n ...rest\n } = props;\n\n const renderItems = (items: CommandItemType[]) => {\n return items.map((item, index) => {\n switch (item.type) {\n case \"item\":\n return (\n <CommandItem\n key={index}\n disabled={item.disabled}\n className={item.className}\n onSelect={item.onClick}\n >\n {item.children ? (\n item.children\n ) : (\n <>\n {item.icon && <item.icon className=\"mr-2 h-4 w-4\" />}\n <span>{item.label}</span>\n {item.shortcut && (\n <CommandShortcut>{item.shortcut}</CommandShortcut>\n )}\n </>\n )}\n </CommandItem>\n );\n case \"group\":\n return (\n <CommandGroup\n key={index}\n heading={item.heading}\n className={item.className}\n >\n {item.items.map((subItem, subIndex) => (\n <CommandItem\n key={subIndex}\n disabled={subItem.disabled}\n className={subItem.className}\n onSelect={subItem.onClick}\n >\n {subItem.children ? (\n subItem.children\n ) : (\n <>\n {subItem.icon && (\n <subItem.icon className=\"mr-2 h-4 w-4\" />\n )}\n <span>{subItem.label}</span>\n {subItem.shortcut && (\n <CommandShortcut>{subItem.shortcut}</CommandShortcut>\n )}\n </>\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n );\n case \"separator\":\n return <CommandSeparator key={index} />;\n default:\n return null;\n }\n });\n };\n\n const commandContent = (\n <SCommand\n ref={ref}\n className={cn(\n \"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\",\n className,\n )}\n {...rest}\n >\n {search && (\n <CommandInput\n placeholder={\n typeof search === \"string\" ? search : \"Type a command or search...\"\n }\n />\n )}\n <CommandList>\n {items ? (\n <>\n <CommandEmpty>No results found.</CommandEmpty>\n {renderItems(items)}\n </>\n ) : (\n children\n )}\n </CommandList>\n </SCommand>\n );\n\n // If dialog props are provided, render as dialog\n if (\n modal &&\n (open !== undefined || onOpenChange || defaultOpen !== undefined)\n ) {\n return (\n <CommandDialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n modal={modal}\n title={title}\n description={description}\n showCloseButton={showCloseButton}\n >\n <Command\n className={className}\n items={items}\n search={search}\n {...rest}\n />\n </CommandDialog>\n );\n }\n\n // Otherwise, render as regular command\n return commandContent;\n});\n\nCommand.displayName = \"Command\";\n\nexport default Command;\n"],"names":["Command","React","props","ref","className","children","items","search","open","defaultOpen","onOpenChange","modal","title","description","showCloseButton","rest","renderItems","item","index","jsx","CommandItem","jsxs","Fragment","CommandShortcut","CommandGroup","subItem","subIndex","CommandSeparator","commandContent","SCommand","cn","CommandInput","CommandList","CommandEmpty","CommandDialog"],"mappings":"6OAsDMA,EAAUC,EAAM,WAAyC,CAACC,EAAOC,IAAQ,CAC7E,KAAM,CACJ,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,OAAAC,EACA,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,MAAAC,EAAQ,GACR,MAAAC,EAAQ,kBACR,YAAAC,EAAc,iCACd,gBAAAC,EAAkB,GAClB,GAAGC,CAAA,EACDb,EAEEc,EAAeV,GACZA,EAAM,IAAI,CAACW,EAAMC,IAAU,CAChC,OAAQD,EAAK,KAAA,CACX,IAAK,OACH,OACEE,EAAAA,IAACC,EAAAA,YAAA,CAEC,SAAUH,EAAK,SACf,UAAWA,EAAK,UAChB,SAAUA,EAAK,QAEd,SAAAA,EAAK,SACJA,EAAK,SAELI,OAAAC,EAAAA,SAAA,CACG,SAAA,CAAAL,EAAK,MAAQE,MAACF,EAAK,KAAL,CAAU,UAAU,eAAe,EAClDE,EAAAA,IAAC,OAAA,CAAM,SAAAF,EAAK,KAAA,CAAM,EACjBA,EAAK,UACJE,MAACI,EAAAA,gBAAA,CAAiB,WAAK,QAAA,CAAS,CAAA,CAAA,CAEpC,CAAA,EAdGL,CAAA,EAkBX,IAAK,QACH,OACEC,EAAAA,IAACK,EAAAA,aAAA,CAEC,QAASP,EAAK,QACd,UAAWA,EAAK,UAEf,SAAAA,EAAK,MAAM,IAAI,CAACQ,EAASC,IACxBP,EAAAA,IAACC,EAAAA,YAAA,CAEC,SAAUK,EAAQ,SAClB,UAAWA,EAAQ,UACnB,SAAUA,EAAQ,QAEjB,SAAAA,EAAQ,SACPA,EAAQ,SAERJ,OAAAC,EAAAA,SAAA,CACG,SAAA,CAAAG,EAAQ,MACPN,MAACM,EAAQ,KAAR,CAAa,UAAU,eAAe,EAEzCN,EAAAA,IAAC,OAAA,CAAM,SAAAM,EAAQ,KAAA,CAAM,EACpBA,EAAQ,UACPN,MAACI,EAAAA,gBAAA,CAAiB,WAAQ,QAAA,CAAS,CAAA,CAAA,CAEvC,CAAA,EAhBGG,CAAA,CAmBR,CAAA,EAzBIR,CAAA,EA4BX,IAAK,YACH,OAAOC,MAACQ,EAAAA,oBAAsBT,CAAO,EACvC,QACE,OAAO,IAAA,CAEb,CAAC,EAGGU,EACJP,EAAAA,KAACQ,EAAAA,QAAA,CACC,IAAA1B,EACA,UAAW2B,EAAAA,GACT,4FACA1B,CAAA,EAED,GAAGW,EAEH,SAAA,CAAAR,GACCY,EAAAA,IAACY,EAAAA,aAAA,CACC,YACE,OAAOxB,GAAW,SAAWA,EAAS,6BAAA,CAAA,EAI5CY,EAAAA,IAACa,EAAAA,YAAA,CACE,SAAA1B,EACCe,OAAAC,EAAAA,SAAA,CACE,SAAA,CAAAH,EAAAA,IAACc,EAAAA,cAAa,SAAA,mBAAA,CAAiB,EAC9BjB,EAAYV,CAAK,CAAA,CAAA,CACpB,EAEAD,CAAA,CAEJ,CAAA,CAAA,CAAA,EAKJ,OACEM,IACCH,IAAS,QAAaE,GAAgBD,IAAgB,QAGrDU,EAAAA,IAACe,EAAAA,cAAA,CACC,KAAA1B,EACA,YAAAC,EACA,aAAAC,EACA,MAAAC,EACA,MAAAC,EACA,YAAAC,EACA,gBAAAC,EAEA,SAAAK,EAAAA,IAACnB,EAAA,CACC,UAAAI,EACA,MAAAE,EACA,OAAAC,EACC,GAAGQ,CAAA,CAAA,CACN,CAAA,EAMCa,CACT,CAAC,EAED5B,EAAQ,YAAc"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./Command.cjs"),m=require("@dsui/ui/components/command"),t=Object.assign(o.default,{Dialog:m.CommandDialog,Input:m.CommandInput,List:m.CommandList,Empty:m.CommandEmpty,Group:m.CommandGroup,Separator:m.CommandSeparator,Item:m.CommandItem,Shortcut:m.CommandShortcut});exports.Command=t;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/Command/index.ts"],"sourcesContent":["import CommandWrapper, {\n type CommandProps,\n type CommandItemType,\n} from \"./Command\";\nimport {\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandSeparator,\n CommandItem,\n CommandShortcut,\n} from \"@dsui/ui/components/command\";\n\nconst Command = Object.assign(CommandWrapper, {\n Dialog: CommandDialog,\n Input: CommandInput,\n List: CommandList,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Separator: CommandSeparator,\n Item: CommandItem,\n Shortcut: CommandShortcut,\n});\n\nexport { Command };\nexport type { CommandProps, CommandItemType };\n"],"names":["Command","CommandWrapper","CommandDialog","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"0JAeMA,EAAU,OAAO,OAAOC,UAAgB,CAC5C,OAAQC,EAAAA,cACR,MAAOC,EAAAA,aACP,KAAMC,EAAAA,YACN,MAAOC,EAAAA,aACP,MAAOC,EAAAA,aACP,UAAWC,EAAAA,iBACX,KAAMC,EAAAA,YACN,SAAUC,EAAAA,eACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),k=require("react"),s=require("@dsui/ui/components/context-menu"),c=require("@dsui/ui/lib/utils"),h=k.forwardRef((x,C)=>{const{onOpenChange:r,modal:o=!1,children:t,trigger:u,content:d,items:l,className:b,contentClassName:j,triggerClassName:i}=x;if(t)return n.jsx(s.ContextMenu,{onOpenChange:r,modal:o,children:t});const a=g=>g.map(e=>{switch(e.type){case"separator":return n.jsx(s.ContextMenuSeparator,{},e.key);case"label":return n.jsx(s.ContextMenuLabel,{inset:e.inset,className:e.className,children:e.label},e.key);case"group":return n.jsxs(s.ContextMenuGroup,{children:[e.label&&n.jsx(s.ContextMenuLabel,{children:e.label}),a(e.children)]},e.key);case"checkbox":return n.jsxs(s.ContextMenuCheckboxItem,{checked:e.checked,disabled:e.disabled,className:e.className,onCheckedChange:e.onCheckedChange,children:[e.icon&&n.jsx("span",{className:"mr-2",children:e.icon}),e.label,e.shortcut&&n.jsx(s.ContextMenuShortcut,{children:e.shortcut})]},e.key);case"radio":return n.jsx(s.ContextMenuRadioGroup,{value:e.value||e.group,children:n.jsxs(s.ContextMenuRadioItem,{value:e.value||e.key,disabled:e.disabled,onClick:e.onClick,className:e.className,children:[e.icon&&n.jsx("span",{className:"mr-2",children:e.icon}),e.label,e.shortcut&&n.jsx(s.ContextMenuShortcut,{children:e.shortcut})]})},e.key);default:return e.children&&e.children.length>0?n.jsxs(s.ContextMenuSub,{children:[n.jsxs(s.ContextMenuSubTrigger,{disabled:e.disabled,className:c.cn(e.disabled?"opacity-50 cursor-not-allowed":"",e.className),children:[e.icon&&n.jsx("span",{className:"mr-2",children:e.icon}),e.label]}),n.jsx(s.ContextMenuSubContent,{children:a(e.children)})]},e.key):n.jsxs(s.ContextMenuItem,{disabled:e.disabled,variant:e.variant,onClick:e.onClick,className:e.className,children:[e.icon&&n.jsx("span",{className:"mr-2",children:e.icon}),e.label,e.shortcut&&n.jsx(s.ContextMenuShortcut,{children:e.shortcut})]},e.key)}}),M=u?n.jsx(s.ContextMenuTrigger,{asChild:!0,className:c.cn(i),children:u}):null,N=d||l?n.jsxs(s.ContextMenuContent,{ref:C,className:c.cn(b,j),children:[d,l&&a(l)]}):null;return n.jsxs(s.ContextMenu,{onOpenChange:r,modal:o,children:[M,N]})});h.displayName="ContextMenu";exports.default=h;
2
+ //# sourceMappingURL=ContextMenu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMenu.cjs","sources":["../../../../src/components/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ContextMenu as SContextMenu,\n ContextMenuTrigger as SContextMenuTrigger,\n ContextMenuContent as SContextMenuContent,\n ContextMenuItem as SContextMenuItem,\n ContextMenuCheckboxItem as SContextMenuCheckboxItem,\n ContextMenuRadioItem as SContextMenuRadioItem,\n ContextMenuRadioGroup as SContextMenuRadioGroup,\n ContextMenuLabel as SContextMenuLabel,\n ContextMenuSeparator as SContextMenuSeparator,\n ContextMenuGroup as SContextMenuGroup,\n ContextMenuSub as SContextMenuSub,\n ContextMenuSubTrigger as SContextMenuSubTrigger,\n ContextMenuSubContent as SContextMenuSubContent,\n ContextMenuShortcut as SContextMenuShortcut,\n} from \"@dsui/ui/components/context-menu\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport type ContextMenuItem =\n | {\n key: string;\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n children?: ContextMenuItem[];\n type?: \"item\";\n checked?: boolean;\n disabled?: boolean;\n variant?: \"default\" | \"destructive\";\n onClick?: () => void;\n className?: string;\n }\n | {\n key: string;\n type: \"checkbox\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n className?: string;\n }\n | {\n key: string;\n type: \"radio\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n group: string;\n value?: string;\n disabled?: boolean;\n onClick?: () => void;\n className?: string;\n }\n | {\n key: string;\n type: \"separator\";\n }\n | {\n key: string;\n type: \"group\";\n label?: string;\n children: ContextMenuItem[];\n disabled?: boolean;\n }\n | {\n key: string;\n type: \"label\";\n label: string;\n inset?: boolean;\n className?: string;\n };\n\nexport interface ContextMenuProps {\n // Core props\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n\n // Content\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n content?: React.ReactNode;\n items?: ContextMenuItem[];\n\n // Styling\n className?: string;\n contentClassName?: string;\n triggerClassName?: string;\n}\n\nconst ContextMenu = React.forwardRef<HTMLDivElement, ContextMenuProps>(\n (props, ref) => {\n const {\n onOpenChange,\n modal = false,\n children,\n trigger,\n content,\n items,\n className,\n contentClassName,\n triggerClassName,\n } = props;\n\n // If children are provided (compound pattern), render them directly\n if (children) {\n return (\n <SContextMenu onOpenChange={onOpenChange} modal={modal}>\n {children}\n </SContextMenu>\n );\n }\n\n // Render items if provided\n const renderItems = (menuItems: ContextMenuItem[]): React.ReactNode => {\n return menuItems.map((item) => {\n switch (item.type) {\n case \"separator\":\n return <SContextMenuSeparator key={item.key} />;\n\n case \"label\":\n return (\n <SContextMenuLabel\n key={item.key}\n inset={item.inset}\n className={item.className}\n >\n {item.label}\n </SContextMenuLabel>\n );\n\n case \"group\":\n return (\n <SContextMenuGroup key={item.key}>\n {item.label && (\n <SContextMenuLabel>{item.label}</SContextMenuLabel>\n )}\n {renderItems(item.children)}\n </SContextMenuGroup>\n );\n\n case \"checkbox\":\n return (\n <SContextMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={item.className}\n onCheckedChange={item.onCheckedChange}\n >\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuCheckboxItem>\n );\n\n case \"radio\":\n return (\n <SContextMenuRadioGroup\n key={item.key}\n value={item.value || item.group}\n >\n <SContextMenuRadioItem\n value={item.value || item.key}\n disabled={item.disabled}\n onClick={item.onClick}\n className={item.className}\n >\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuRadioItem>\n </SContextMenuRadioGroup>\n );\n\n default: {\n // item or undefined type\n if (item.children && item.children.length > 0) {\n // Submenu\n return (\n <SContextMenuSub key={item.key}>\n <SContextMenuSubTrigger\n disabled={item.disabled}\n className={cn(\n item.disabled ? \"opacity-50 cursor-not-allowed\" : \"\",\n item.className,\n )}\n >\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n </SContextMenuSubTrigger>\n <SContextMenuSubContent>\n {renderItems(item.children)}\n </SContextMenuSubContent>\n </SContextMenuSub>\n );\n } else {\n // Regular item\n return (\n <SContextMenuItem\n key={item.key}\n disabled={item.disabled}\n variant={item.variant}\n onClick={item.onClick}\n className={item.className}\n >\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n {item.shortcut && (\n <SContextMenuShortcut>{item.shortcut}</SContextMenuShortcut>\n )}\n </SContextMenuItem>\n );\n }\n }\n }\n });\n };\n\n // Props-based pattern with trigger and items\n const triggerElement = trigger ? (\n <SContextMenuTrigger asChild className={cn(triggerClassName)}>\n {trigger}\n </SContextMenuTrigger>\n ) : null;\n\n const contentElement =\n content || items ? (\n <SContextMenuContent\n ref={ref}\n className={cn(className, contentClassName)}\n >\n {content}\n {items && renderItems(items)}\n </SContextMenuContent>\n ) : null;\n\n return (\n <SContextMenu onOpenChange={onOpenChange} modal={modal}>\n {triggerElement}\n {contentElement}\n </SContextMenu>\n );\n },\n);\n\nContextMenu.displayName = \"ContextMenu\";\n\nexport default ContextMenu;\n"],"names":["ContextMenu","React","props","ref","onOpenChange","modal","children","trigger","content","items","className","contentClassName","triggerClassName","jsx","SContextMenu","renderItems","menuItems","item","SContextMenuSeparator","SContextMenuLabel","SContextMenuGroup","jsxs","SContextMenuCheckboxItem","SContextMenuShortcut","SContextMenuRadioGroup","SContextMenuRadioItem","SContextMenuSub","SContextMenuSubTrigger","cn","SContextMenuSubContent","SContextMenuItem","triggerElement","SContextMenuTrigger","contentElement","SContextMenuContent"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ContextMenu.cjs"),t=require("@dsui/ui/components/context-menu"),n=Object.assign(e.default,{Root:t.ContextMenu,Portal:t.ContextMenuPortal,Trigger:t.ContextMenuTrigger,Content:t.ContextMenuContent,Group:t.ContextMenuGroup,Label:t.ContextMenuLabel,Item:t.ContextMenuItem,CheckboxItem:t.ContextMenuCheckboxItem,RadioGroup:t.ContextMenuRadioGroup,RadioItem:t.ContextMenuRadioItem,Separator:t.ContextMenuSeparator,Shortcut:t.ContextMenuShortcut,Sub:t.ContextMenuSub,SubTrigger:t.ContextMenuSubTrigger,SubContent:t.ContextMenuSubContent});exports.ContextMenu=n;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/ContextMenu/index.ts"],"sourcesContent":["import ContextMenuWrapper, { type ContextMenuProps } from \"./ContextMenu\";\nimport {\n ContextMenu as ContextMenuPrimitive,\n ContextMenuPortal,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n} from \"@dsui/ui/components/context-menu\";\n\nconst ContextMenu = Object.assign(ContextMenuWrapper, {\n // Primitives\n Root: ContextMenuPrimitive,\n Portal: ContextMenuPortal,\n Trigger: ContextMenuTrigger,\n Content: ContextMenuContent,\n Group: ContextMenuGroup,\n Label: ContextMenuLabel,\n Item: ContextMenuItem,\n CheckboxItem: ContextMenuCheckboxItem,\n RadioGroup: ContextMenuRadioGroup,\n RadioItem: ContextMenuRadioItem,\n Separator: ContextMenuSeparator,\n Shortcut: ContextMenuShortcut,\n Sub: ContextMenuSub,\n SubTrigger: ContextMenuSubTrigger,\n SubContent: ContextMenuSubContent,\n});\n\nexport { ContextMenu };\nexport type { ContextMenuProps };\nexport type { ContextMenuItem } from \"./ContextMenu\";\n"],"names":["ContextMenu","ContextMenuWrapper","ContextMenuPrimitive","ContextMenuPortal","ContextMenuTrigger","ContextMenuContent","ContextMenuGroup","ContextMenuLabel","ContextMenuItem","ContextMenuCheckboxItem","ContextMenuRadioGroup","ContextMenuRadioItem","ContextMenuSeparator","ContextMenuShortcut","ContextMenuSub","ContextMenuSubTrigger","ContextMenuSubContent"],"mappings":"mKAmBMA,EAAc,OAAO,OAAOC,UAAoB,CAEpD,KAAMC,EAAAA,YACN,OAAQC,EAAAA,kBACR,QAASC,EAAAA,mBACT,QAASC,EAAAA,mBACT,MAAOC,EAAAA,iBACP,MAAOC,EAAAA,iBACP,KAAMC,EAAAA,gBACN,aAAcC,EAAAA,wBACd,WAAYC,EAAAA,sBACZ,UAAWC,EAAAA,qBACX,UAAWC,EAAAA,qBACX,SAAUC,EAAAA,oBACV,IAAKC,EAAAA,eACL,WAAYC,EAAAA,sBACZ,WAAYC,EAAAA,qBACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),j=require("@dsui/ui/index"),De=require("class-variance-authority"),He=require("react");function Be(o){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const c in o)if(c!=="default"){const b=Object.getOwnPropertyDescriptor(o,c);Object.defineProperty(t,c,b.get?b:{enumerable:!0,get:()=>o[c]})}}return t.default=o,Object.freeze(t)}const s=Be(He),ke="Cropper",Ce="CropperContent",ye="CropperImage",Re="CropperVideo",Xe="CropperArea",V=200,te=typeof window<"u"&&window.devicePixelRatio||1,ve=new Map,Me=new Map,oe=new Map,ne=new Map;function pe(o,t,c){return Math.min(Math.max(o,t),c)}function A(o,t=2/te){return Math.round(o/t)*t}function re(o,t=4/te){return Math.round(o/t)*t}function Le(o,t=.01){return Math.round(o/t)*t}function ce(o,t=1){return Math.round(o/t)*t}function ie(o){return Math.round(o*te)/te}function ae(o,t){const c=o.get(t);return c!==void 0&&(o.delete(t),o.set(t,c)),c}function ue(o,t,c,b=V){if(o.has(t)&&o.delete(t),o.set(t,c),o.size>b){const f=o.keys().next().value;f!==void 0&&o.delete(f)}}function ze(o,t){return Math.sqrt((o.y-t.y)**2+(o.x-t.x)**2)}function Pe(o,t){return{x:(t.x+o.x)*.5,y:(t.y+o.y)*.5}}function Ee(o,t){return Math.atan2(t.y-o.y,t.x-o.x)*180/Math.PI}function Ye(o){return o*Math.PI/180}function se(o,t,c){const b=`${A(o)}-${A(t)}-${ce(c)}`,f=ae(ve,b);if(f)return f;const a=Ye(c),n=Math.cos(a),m=Math.sin(a),i={width:Math.abs(n*o)+Math.abs(m*t),height:Math.abs(m*o)+Math.abs(n*t)};return ue(ve,b,i,V),i}function Ue(o,t,c,b,f,a=0){const n=`${A(o,8)}-${A(t,8)}-${A(c,8)}-${A(b,8)}-${A(f,.01)}-${ce(a)}`,m=ae(Me,n);if(m)return m;const{width:i,height:h}=se(o,t,a),g=Math.min(i,c),u=Math.min(h,b),C=g>u*f?{width:u*f,height:u}:{width:g,height:g/f};return ue(Me,n,C,V),C}function B(o,t,c,b,f=0){const a=re(o.x),n=re(o.y),m=`${a}-${n}-${A(t.width)}-${A(t.height)}-${A(c.width)}-${A(c.height)}-${Le(b)}-${ce(f)}`,i=ae(ne,m);if(i)return i;const{width:h,height:g}=se(t.width,t.height,f),u=h*b*.5-c.width*.5,C=g*b*.5-c.height*.5,p={x:pe(o.x,-u,u),y:pe(o.y,-C,C)};return ue(ne,m,p,V),p}function Ae(o,t,c,b,f,a=0,n=!1){const m=`${re(o.x)}-${re(o.y)}-${A(t.width)}-${A(t.height)}-${A(t.naturalWidth)}-${A(t.naturalHeight)}-${A(c.width)}-${A(c.height)}-${A(b,.01)}-${Le(f)}-${ce(a)}-${n}`,i=ae(oe,m);if(i)return i;const h=n?(y,l)=>l:(y,l)=>Math.min(y,Math.max(0,l)),g=se(t.width,t.height,a),u=se(t.naturalWidth,t.naturalHeight,a),C={x:h(100,((g.width-c.width/f)/2-o.x/f)/g.width*100),y:h(100,((g.height-c.height/f)/2-o.y/f)/g.height*100),width:h(100,c.width/g.width*100/f),height:h(100,c.height/g.height*100/f)},p=Math.round(h(u.width,C.width*u.width/100)),x=Math.round(h(u.height,C.height*u.height/100)),M=u.width>=u.height*b?{width:Math.round(x*b),height:x}:{width:p,height:Math.round(p/b)},r={...M,x:Math.round(h(u.width-M.width,C.x*u.width/100)),y:Math.round(h(u.height-M.height,C.y*u.height/100))},d={croppedAreaPercentages:C,croppedAreaPixels:r};return ue(oe,m,d,V),d}function $e(o){const t=s.useRef(null);return t.current===null&&(t.current=o()),t}const Je=typeof window<"u"?s.useLayoutEffect:s.useEffect;function Qe(o,t,c,b,f,a,n,m,i,h,g,u,C){let p=!1,x=null;function $(){x==null&&(x=requestAnimationFrame(()=>{x=null;const r=t.current;if(r?.mediaSize&&r.cropSize&&n){const{croppedAreaPercentages:d,croppedAreaPixels:y}=Ae(r.crop,r.mediaSize,r.cropSize,c,r.zoom,r.rotation,b);n(d,y)}}))}const M={subscribe:r=>o.current?(o.current.add(r),()=>o.current?.delete(r)):()=>{},getState:()=>t.current??{crop:{x:0,y:0},zoom:1,rotation:0,mediaSize:null,cropSize:null,isDragging:!1,isWheelZooming:!1},setState:(r,d)=>{const y=t.current;if(!(!y||Object.is(y[r],d))){if(y[r]=d,r==="crop"&&typeof d=="object"&&d&&"x"in d)f?.(d);else if(r==="zoom"&&typeof d=="number")i?.(d);else if(r==="rotation"&&typeof d=="number")h?.(d);else if(r==="cropSize"&&typeof d=="object"&&d&&"width"in d)a?.(d);else if(r==="mediaSize"&&typeof d=="object"&&d&&"naturalWidth"in d)g?.(d);else if(r==="isDragging")if(d)u?.();else{C?.();const l=t.current;if(l?.mediaSize&&l.cropSize&&m){const{croppedAreaPercentages:z,croppedAreaPixels:E}=Ae(l.crop,l.mediaSize,l.cropSize,c,l.zoom,l.rotation,b);m(z,E)}}(r==="crop"||r==="zoom"||r==="rotation"||r==="mediaSize"||r==="cropSize")&&n&&$(),p||M.notify()}},notify:()=>{if(o.current)for(const r of o.current)r()},batch:r=>{if(p){r();return}p=!0;try{r()}finally{p=!1,M.notify()}}};return M}const je=s.createContext(null);function le(o){const t=s.useContext(je);if(!t)throw new Error(`\`${o}\` must be used within \`${ke}\``);return t}function L(o){const t=le("useStore"),c=s.useCallback(()=>o(t.getState()),[t,o]);return s.useSyncExternalStore(t.subscribe,c,c)}const Ze=s.createContext(null);function fe(o){const t=s.useContext(Ze);if(!t)throw new Error(`\`${o}\` must be used within \`${ke}\``);return t}function Oe(o){const{crop:t={x:0,y:0},zoom:c=1,minZoom:b=1,maxZoom:f=3,zoomSpeed:a=1,rotation:n=0,keyboardStep:m=1,aspectRatio:i=4/3,shape:h="rectangle",objectFit:g="contain",allowOverflow:u=!1,preventScrollZoom:C=!1,withGrid:p=!1,onCropChange:x,onCropSizeChange:$,onCropAreaChange:M,onCropComplete:r,onZoomChange:d,onRotationChange:y,onMediaLoaded:l,onInteractionStart:z,onInteractionEnd:E,className:T,...D}=o,X=$e(()=>new Set),F=$e(()=>({crop:t,zoom:c,rotation:n,mediaSize:null,cropSize:null,isDragging:!1,isWheelZooming:!1})),Z=s.useRef(null),k=s.useMemo(()=>Qe(X,F,i,u,x,$,M,r,d,y,l,z,E),[X,F,i,u,x,$,M,r,d,y,l,z,E]);Je(()=>{const _={};let K=!1,N=!1;if(t!==void 0){const R=k.getState();Object.is(R.crop,t)||(_.crop=t,K=!0)}c!==void 0&&k.getState().zoom!==c&&(_.zoom=c,K=!0,N=!0),n!==void 0&&k.getState().rotation!==n&&(_.rotation=n,K=!0,N=!0),K&&(k.batch(()=>{Object.entries(_).forEach(([R,O])=>{k.setState(R,O)})}),N&&Z.current&&requestAnimationFrame(()=>{const R=k.getState();if(R.cropSize&&R.mediaSize){const O=u?R.crop:B(R.crop,R.mediaSize,R.cropSize,R.zoom,R.rotation);(Math.abs(O.x-R.crop.x)>.001||Math.abs(O.y-R.crop.y)>.001)&&k.setState("crop",O)}}))},[t,c,n,k,u]);const U=s.useMemo(()=>({minZoom:b,maxZoom:f,zoomSpeed:a,keyboardStep:m,aspectRatio:i,shape:h,objectFit:g,preventScrollZoom:C,allowOverflow:u,withGrid:p,rootRef:Z}),[b,f,a,m,i,h,g,C,u,p]);return q.jsx(je.Provider,{value:k,children:q.jsx(Ze.Provider,{value:U,children:q.jsx("div",{"data-slot":"cropper-wrapper",className:j.cn("relative size-full overflow-hidden",T),children:q.jsx(et,{...D})})})})}function et(o){const{className:t,asChild:c,ref:b,...f}=o,a=fe(Ce),n=le(Ce),m=L(e=>e.crop),i=L(e=>e.zoom),h=L(e=>e.rotation),g=L(e=>e.mediaSize),u=L(e=>e.cropSize),C=j.useComposedRefs(b,a.rootRef),p=s.useRef({x:0,y:0}),x=s.useRef({x:0,y:0}),$=s.useRef({x:0,y:0}),M=s.useRef(0),r=s.useRef(0),d=s.useRef(null),y=s.useRef(null),l=s.useRef(null),z=s.useRef(!1),E=s.useRef(0),T=s.useRef(0),D=s.useCallback(()=>{d.current&&(cancelAnimationFrame(d.current),d.current=null),y.current&&(cancelAnimationFrame(y.current),y.current=null),l.current&&(clearTimeout(l.current),l.current=null),z.current=!1},[]),X=s.useCallback(()=>{ne.size>V*1.5&&ne.clear(),oe.size>V*1.5&&oe.clear()},[]),F=s.useCallback(e=>({x:Number(e.clientX),y:Number(e.clientY)}),[]),Z=s.useCallback(e=>({x:Number(e.clientX),y:Number(e.clientY)}),[]),k=s.useCallback(()=>{if(a.rootRef?.current){const e=a.rootRef.current.getBoundingClientRect();$.current={x:e.left,y:e.top}}},[a.rootRef]),U=s.useCallback(({x:e,y:w},v)=>{if(!a.rootRef?.current)return{x:0,y:0};const S=a.rootRef.current.getBoundingClientRect();return{x:S.width/2-(e-v.x),y:S.height/2-(w-v.y)}},[a.rootRef]),_=s.useCallback(({x:e,y:w})=>({x:(e+m.x)/i,y:(w+m.y)/i}),[m,i]),K=s.useCallback(()=>{if(!u||!g)return;const e=a.allowOverflow?m:B(m,g,u,i,h);(Math.abs(e.x-m.x)>.001||Math.abs(e.y-m.y)>.001)&&n.setState("crop",e)},[u,g,a.allowOverflow,m,i,h,n]),N=s.useCallback((e,w,v=!0)=>{if(!u||!g)return;const S=pe(e,a.minZoom,a.maxZoom);n.batch(()=>{if(v){const P=U(w,$.current),W=_(P),I={x:W.x*S-P.x,y:W.y*S-P.y},ee=a.allowOverflow?I:B(I,g,u,S,h);n.setState("crop",ee)}n.setState("zoom",S)}),requestAnimationFrame(()=>{K()})},[u,g,a.minZoom,a.maxZoom,a.allowOverflow,U,_,h,n,K]),R=s.useCallback(({x:e,y:w})=>{p.current={x:e,y:w},x.current={...m},n.setState("isDragging",!0)},[m,n]),O=s.useCallback(({x:e,y:w})=>{d.current&&cancelAnimationFrame(d.current),d.current=requestAnimationFrame(()=>{if(!u||!g||e===void 0||w===void 0)return;const v=e-p.current.x,S=w-p.current.y;if(Math.abs(v)<2&&Math.abs(S)<2)return;const P={x:x.current.x+v,y:x.current.y+S},W=a.allowOverflow?P:B(P,g,u,i,h),I=n.getState().crop;(Math.abs(W.x-I.x)>1||Math.abs(W.y-I.y)>1)&&n.setState("crop",W)})},[u,g,a.allowOverflow,i,h,n]),J=s.useCallback(e=>O(F(e)),[F,O]),Q=s.useCallback(e=>{if(e.preventDefault(),e.touches.length===2){const[w,v]=e.touches??[];if(w&&v){const S=Z(w),P=Z(v),W=Pe(S,P);O(W),y.current&&cancelAnimationFrame(y.current),y.current=requestAnimationFrame(()=>{const I=ze(S,P),ee=I/M.current;if(Math.abs(ee-1)>.01){const ge=i*ee;N(ge,W,!1),M.current=I}const xe=Ee(S,P),Se=xe-r.current;if(Math.abs(Se)>.5){const ge=h+Se;n.setState("rotation",ge),r.current=xe}})}}else if(e.touches.length===1){const w=e.touches[0];w&&O(Z(w))}},[Z,O,i,N,h,n]),G=s.useCallback(e=>{if(e.preventDefault(),z.current)return;const w={x:Number(e.clientX),y:Number(e.clientY)},v=E.current-1+e.scale;N(v,w,!0);const S=T.current+e.rotation;n.setState("rotation",S)},[N,n]),Y=s.useCallback(()=>{document.removeEventListener("gesturechange",G),document.removeEventListener("gestureend",Y)},[G]),he=s.useCallback(e=>{e.preventDefault(),document.addEventListener("gesturechange",G),document.addEventListener("gestureend",Y),E.current=i,T.current=h},[i,h,G,Y]),de=s.useCallback(e=>e.preventDefault(),[]),we=s.useCallback(()=>{document.removeEventListener("mousemove",J),document.removeEventListener("touchmove",Q),document.removeEventListener("gesturechange",G),document.removeEventListener("gestureend",Y)},[J,Q,G,Y]),H=s.useCallback(()=>{z.current=!1,n.setState("isDragging",!1),D(),document.removeEventListener("mouseup",H),document.removeEventListener("touchend",H),we()},[n,we,D]),be=s.useCallback(e=>{let w=e.deltaX,v=e.deltaY,S=e.deltaZ;return e.deltaMode===1?(w*=16,v*=16,S*=16):e.deltaMode===2&&(w*=400,v*=400,S*=400),{deltaX:w,deltaY:v,deltaZ:S}},[]),me=s.useCallback(e=>{if(f.onWheelZoom?.(e),e.defaultPrevented)return;e.preventDefault();const w=F(e),{deltaY:v}=be(e),S=i-v*a.zoomSpeed/200;N(S,w,!0),n.batch(()=>{const P=n.getState();P.isWheelZooming||n.setState("isWheelZooming",!0),P.isDragging||n.setState("isDragging",!0)}),l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{n.batch(()=>{n.setState("isWheelZooming",!1),n.setState("isDragging",!1)})},250)},[f.onWheelZoom,F,i,a.zoomSpeed,N,be,n]),qe=s.useCallback(e=>{if(f.onKeyUp?.(e),e.defaultPrevented)return;new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"]).has(e.key)&&(e.preventDefault(),n.setState("isDragging",!1))},[f.onKeyUp,n]),_e=s.useCallback(e=>{if(f.onKeyDown?.(e),e.defaultPrevented||!u||!g)return;let w=a.keyboardStep;e.shiftKey&&(w*=.2);const S={ArrowUp:()=>({...m,y:m.y-w}),ArrowDown:()=>({...m,y:m.y+w}),ArrowLeft:()=>({...m,x:m.x-w}),ArrowRight:()=>({...m,x:m.x+w})}[e.key];if(!S)return;e.preventDefault();let P=S();a.allowOverflow||(P=B(P,g,u,i,h)),e.repeat||n.setState("isDragging",!0),n.setState("crop",P)},[f.onKeyDown,u,g,a.keyboardStep,a.allowOverflow,m,i,h,n]),Ke=s.useCallback(e=>{f.onMouseDown?.(e),!e.defaultPrevented&&(e.preventDefault(),document.addEventListener("mousemove",J),document.addEventListener("mouseup",H),k(),R(F(e)))},[f.onMouseDown,F,R,H,J,k]),Ve=s.useCallback(e=>{if(f.onTouchStart?.(e),!e.defaultPrevented){if(z.current=!0,document.addEventListener("touchmove",Q,{passive:!1}),document.addEventListener("touchend",H),k(),e.touches.length===2){const[w,v]=e.touches?Array.from(e.touches):[];if(w&&v){const S=Z(w),P=Z(v);M.current=ze(S,P),r.current=Ee(S,P),R(Pe(S,P))}}else if(e.touches.length===1){const w=e.touches[0];w&&R(Z(w))}}},[f.onTouchStart,H,Q,k,Z,R]);s.useEffect(()=>{const e=a.rootRef?.current;if(e)return a.preventScrollZoom||e.addEventListener("wheel",me,{passive:!1}),e.addEventListener("gesturestart",de),e.addEventListener("gesturestart",he),()=>{a.preventScrollZoom||e.removeEventListener("wheel",me),e.removeEventListener("gesturestart",de),e.removeEventListener("gesturestart",he),D()}},[a.rootRef,a.preventScrollZoom,me,D,de,he]),s.useEffect(()=>()=>{D(),X()},[D,X]);const Ge=c?j.Slot:"div";return q.jsx(Ge,{"data-slot":"cropper",tabIndex:0,...f,ref:C,className:j.cn("absolute inset-0 flex cursor-move touch-none select-none items-center justify-center overflow-hidden outline-none",t),onKeyUp:qe,onKeyDown:_e,onMouseDown:Ke,onTouchStart:Ve})}const Te=De.cva("will-change-transform",{variants:{objectFit:{contain:"absolute inset-0 m-auto max-h-full max-w-full",cover:"h-auto w-full","horizontal-cover":"h-auto w-full","vertical-cover":"h-full w-auto"}},defaultVariants:{objectFit:"contain"}});function Ne({mediaRef:o,context:t,store:c,rotation:b,getNaturalDimensions:f}){return{computeSizes:s.useCallback(()=>{const n=o.current,m=t.rootRef?.current;if(!n||!m)return;const i=m.getBoundingClientRect(),h=i.width/i.height,{width:g,height:u}=f(n),C=n.offsetWidth<g||n.offsetHeight<u,p=g/u;let x;if(C){const d={contain:()=>h>p?{width:i.height*p,height:i.height}:{width:i.width,height:i.width/p},"horizontal-cover":()=>({width:i.width,height:i.width/p}),"vertical-cover":()=>({width:i.height*p,height:i.height}),cover:()=>h<p?{width:i.width,height:i.width/p}:{width:i.height*p,height:i.height}}[t.objectFit];x=d?d():h>p?{width:i.height*p,height:i.height}:{width:i.width,height:i.width/p}}else x={width:n.offsetWidth,height:n.offsetHeight};const $={...x,naturalWidth:g,naturalHeight:u};c.setState("mediaSize",$);const M=Ue($.width,$.height,i.width,i.height,t.aspectRatio,b);return c.setState("cropSize",M),requestAnimationFrame(()=>{const r=c.getState();if(r.cropSize&&r.mediaSize){const d=B(r.crop,r.mediaSize,r.cropSize,r.zoom,r.rotation);(Math.abs(d.x-r.crop.x)>.001||Math.abs(d.y-r.crop.y)>.001)&&c.setState("crop",d)}}),{mediaSize:$,cropSize:M}},[o,t.aspectRatio,t.rootRef,t.objectFit,c,b,f])}}function Fe(o){const{className:t,style:c,asChild:b,ref:f,onLoad:a,objectFit:n,snapPixels:m=!1,...i}=o,h=fe(ye),g=le(ye),u=L(l=>l.crop),C=L(l=>l.zoom),p=L(l=>l.rotation),x=s.useRef(null),$=j.useComposedRefs(f,x),M=s.useCallback(l=>({width:l.naturalWidth,height:l.naturalHeight}),[]),{computeSizes:r}=Ne({mediaRef:x,context:h,store:g,rotation:p,getNaturalDimensions:M}),d=s.useCallback(()=>{x.current&&(r(),a?.(new Event("load")))},[r,a]);s.useEffect(()=>{const l=x.current;l?.complete&&l.naturalWidth>0&&d()},[d]),s.useEffect(()=>{const l=h.rootRef?.current;if(l)if(typeof ResizeObserver<"u"){let z=!0;const E=new ResizeObserver(()=>{if(z){z=!1;return}const T=()=>{const D=x.current;D?.complete&&D.naturalWidth>0&&r()};"requestIdleCallback"in window?requestIdleCallback(T):setTimeout(T,16)});return E.observe(l),()=>{E.disconnect()}}else{const z=()=>{const E=x.current;E?.complete&&E.naturalWidth>0&&r()};return window.addEventListener("resize",z),()=>{window.removeEventListener("resize",z)}}},[h.rootRef,r]);const y=b?j.Slot:"img";return q.jsx(y,{"data-slot":"cropper-image",...i,ref:$,className:j.cn(Te({objectFit:n??h.objectFit,className:t})),style:{transform:m?`translate(${ie(u.x)}px, ${ie(u.y)}px) rotate(${p}deg) scale(${C})`:`translate(${u.x}px, ${u.y}px) rotate(${p}deg) scale(${C})`,...c},onLoad:d})}function We(o){const{className:t,style:c,asChild:b,ref:f,onLoadedMetadata:a,objectFit:n,snapPixels:m=!1,...i}=o,h=fe(Re),g=le(Re),u=L(l=>l.crop),C=L(l=>l.zoom),p=L(l=>l.rotation),x=s.useRef(null),$=j.useComposedRefs(f,x),M=s.useCallback(l=>({width:l.videoWidth,height:l.videoHeight}),[]),{computeSizes:r}=Ne({mediaRef:x,context:h,store:g,rotation:p,getNaturalDimensions:M}),d=s.useCallback(()=>{x.current&&(r(),a?.(new Event("loadedmetadata")))},[r,a]);s.useEffect(()=>{const l=h.rootRef?.current;if(l)if(typeof ResizeObserver<"u"){let z=!0;const E=new ResizeObserver(()=>{if(z){z=!1;return}const T=()=>{const D=x.current;D&&D.videoWidth>0&&D.videoHeight>0&&r()};"requestIdleCallback"in window?requestIdleCallback(T):setTimeout(T,16)});return E.observe(l),()=>{E.disconnect()}}else{const z=()=>{const E=x.current;E&&E.videoWidth>0&&E.videoHeight>0&&r()};return window.addEventListener("resize",z),()=>{window.removeEventListener("resize",z)}}},[h.rootRef,r]);const y=b?j.Slot:"video";return q.jsx(y,{"data-slot":"cropper-video",autoPlay:!0,playsInline:!0,loop:!0,muted:!0,controls:!1,...i,ref:$,className:j.cn(Te({objectFit:n??h.objectFit,className:t})),style:{transform:m?`translate(${ie(u.x)}px, ${ie(u.y)}px) rotate(${p}deg) scale(${C})`:`translate(${u.x}px, ${u.y}px) rotate(${p}deg) scale(${C})`,...c},onLoadedMetadata:d})}const tt=De.cva("-translate-x-1/2 -translate-y-1/2 absolute top-1/2 left-1/2 box-border overflow-hidden border border-[2.5px] border-white/90 shadow-[0_0_0_9999em_rgba(0,0,0,0.5)]",{variants:{shape:{rectangle:"",circle:"rounded-full"},withGrid:{true:"before:absolute before:top-0 before:right-1/3 before:bottom-0 before:left-1/3 before:box-border before:border before:border-white/50 before:border-t-0 before:border-b-0 before:content-[''] after:absolute after:top-1/3 after:right-0 after:bottom-1/3 after:left-0 after:box-border after:border after:border-white/50 after:border-r-0 after:border-l-0 after:content-['']",false:""}},defaultVariants:{shape:"rectangle",withGrid:!1}});function Ie(o){const{className:t,style:c,asChild:b,ref:f,snapPixels:a=!1,shape:n,withGrid:m,...i}=o,h=fe(Xe),g=L(C=>C.cropSize);if(!g)return null;const u=b?j.Slot:"div";return q.jsx(u,{"data-slot":"cropper-area",...i,ref:f,className:j.cn(tt({shape:n??h.shape,withGrid:m??h.withGrid,className:t})),style:{width:a?Math.round(g.width):g.width,height:a?Math.round(g.height):g.height,...c}})}exports.Area=Ie;exports.Cropper=Oe;exports.CropperArea=Ie;exports.CropperImage=Fe;exports.CropperVideo=We;exports.Image=Fe;exports.Root=Oe;exports.Video=We;exports.useCropper=L;
2
+ //# sourceMappingURL=Cropper.cjs.map