@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 @@
1
+ {"version":3,"file":"Rate.js","sources":["../../../../src/components/Rate/Rate.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState, useRef } from \"react\";\nimport type { KeyboardEvent } from \"react\";\nimport { Star, StarHalf } from \"lucide-react\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport interface RateProps {\n // Display\n count?: number;\n value?: number;\n defaultValue?: number;\n allowHalf?: boolean;\n allowClear?: boolean;\n\n // Appearance\n size?: \"small\" | \"middle\" | \"large\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n character?: React.ReactNode | ((rateProps: RateProps) => React.ReactNode);\n className?: string;\n style?: React.CSSProperties;\n\n // Interaction\n disabled?: boolean;\n autoFocus?: boolean;\n keyboard?: boolean;\n\n // Tooltips\n tooltips?: string[];\n\n // Callbacks\n onChange?: (value: number) => void;\n onHoverChange?: (value: number) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onKeyDown?: (event: KeyboardEvent<HTMLDivElement>) => void;\n}\n\nconst Rate = React.forwardRef<HTMLDivElement, RateProps>(\n (\n {\n count = 5,\n value: controlledValue,\n defaultValue = 0,\n allowHalf = false,\n allowClear = true,\n size = \"middle\",\n color = \"warning\",\n character,\n className,\n style,\n disabled = false,\n autoFocus = false,\n keyboard = true,\n tooltips,\n onChange,\n onHoverChange,\n onFocus,\n onBlur,\n onKeyDown,\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const [hoverValue, setHoverValue] = useState<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Use controlled or uncontrolled value\n const value =\n controlledValue !== undefined ? controlledValue : internalValue;\n\n // Size in pixels\n const sizeMap = {\n small: 20,\n middle: 24,\n large: 32,\n };\n\n // Color mapping for filled stars\n const colorMap = {\n primary: \"text-primary [&_svg]:fill-primary\",\n secondary: \"text-secondary [&_svg]:fill-secondary\",\n accent: \"text-accent [&_svg]:fill-accent\",\n destructive: \"text-destructive [&_svg]:fill-destructive\",\n muted: \"text-muted-foreground [&_svg]:fill-muted-foreground\",\n success: \"text-success [&_svg]:fill-success\",\n error: \"text-error [&_svg]:fill-error\",\n warning: \"text-yellow-400 [&_svg]:fill-yellow-400\",\n };\n\n // Handle star click\n const handleStarClick = (starIndex: number, isHalf: boolean) => {\n if (disabled) return;\n\n const newValue = isHalf ? starIndex + 0.5 : starIndex + 1;\n\n // If clicking the same value and allowClear is true, clear the rating\n if (allowClear && newValue === value) {\n setInternalValue(0);\n onChange?.(0);\n } else {\n setInternalValue(newValue);\n onChange?.(newValue);\n }\n };\n\n // Handle star hover\n const handleStarHover = (starIndex: number, isHalf: boolean) => {\n if (disabled) return;\n\n const newHoverValue = isHalf ? starIndex + 0.5 : starIndex + 1;\n setHoverValue(newHoverValue);\n onHoverChange?.(newHoverValue);\n };\n\n // Handle mouse leave\n const handleMouseLeave = () => {\n setHoverValue(null);\n onHoverChange?.(0);\n };\n\n // Handle keyboard navigation\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!keyboard || disabled) return;\n\n onKeyDown?.(event);\n\n const step = allowHalf ? 0.5 : 1;\n let newValue = value;\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n event.preventDefault();\n newValue = Math.min(value + step, count);\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n event.preventDefault();\n newValue = Math.max(value - step, 0);\n break;\n case \"Home\":\n event.preventDefault();\n newValue = allowHalf ? 0.5 : 1;\n break;\n case \"End\":\n event.preventDefault();\n newValue = count;\n break;\n default:\n return;\n }\n\n setInternalValue(newValue);\n onChange?.(newValue);\n };\n\n // Handle focus\n const handleFocus = () => {\n onFocus?.();\n };\n\n // Handle blur\n const handleBlur = () => {\n onBlur?.();\n };\n\n // Get star fill percentage\n const getStarFill = (starIndex: number) => {\n const currentValue = hoverValue !== null ? hoverValue : value;\n\n if (currentValue >= starIndex + 1) {\n return 100; // Full star\n } else if (currentValue > starIndex && currentValue < starIndex + 1) {\n return (currentValue - starIndex) * 100; // Partial star\n }\n return 0; // Empty star\n };\n\n // Check if star should show as half\n const isHalfStar = (starIndex: number) => {\n if (!allowHalf) return false;\n const currentValue = hoverValue !== null ? hoverValue : value;\n const fill = currentValue - starIndex;\n return fill > 0 && fill <= 0.5;\n };\n\n // Render character\n const renderCharacter = (isHalf: boolean = false) => {\n if (typeof character === \"function\") {\n return character({\n count,\n value,\n defaultValue,\n allowHalf,\n allowClear,\n size,\n disabled,\n });\n }\n if (isHalf) {\n return <StarHalf className=\"w-full h-full\" />;\n }\n return character || <Star className=\"w-full h-full\" />;\n };\n\n // Get tooltip for star\n const getTooltip = (starIndex: number) => {\n if (!tooltips || !tooltips[starIndex]) return undefined;\n return tooltips[starIndex];\n };\n\n return (\n <div\n ref={(node) => {\n containerRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n className={cn(\n \"inline-flex items-center gap-1\",\n disabled && \"opacity-50 cursor-not-allowed\",\n !disabled && \"cursor-pointer\",\n className\n )}\n style={style}\n onMouseLeave={handleMouseLeave}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={disabled ? -1 : 0}\n role=\"slider\"\n aria-label=\"Rate\"\n aria-valuemin={0}\n aria-valuemax={count}\n aria-valuenow={value}\n aria-disabled={disabled}\n autoFocus={autoFocus}\n >\n {Array.from({ length: count }, (_, index) => {\n const fillPercentage = getStarFill(index);\n const tooltip = getTooltip(index);\n const showHalfStar = isHalfStar(index);\n\n return (\n <div key={index} className=\"relative group\" title={tooltip}>\n {/* Container for half stars */}\n <div\n className=\"relative inline-flex\"\n style={{\n width: `${sizeMap[size]}px`,\n height: `${sizeMap[size]}px`,\n }}\n >\n {/* Empty star background */}\n <div className=\"text-muted-foreground/30 pointer-events-none\">\n {renderCharacter(false)}\n </div>\n\n {/* Filled star overlay */}\n {fillPercentage > 0 && (\n <div\n className={cn(\n \"absolute inset-0 pointer-events-none\",\n colorMap[color]\n )}\n >\n {showHalfStar ? (\n renderCharacter(true)\n ) : (\n <div\n className=\"overflow-hidden\"\n style={{ width: `${fillPercentage}%` }}\n >\n {renderCharacter(false)}\n </div>\n )}\n </div>\n )}\n\n {/* Interactive overlay for clicking and hovering */}\n {!disabled && (\n <>\n {allowHalf ? (\n <>\n {/* Left half */}\n <div\n className=\"absolute inset-0 w-1/2 cursor-pointer\"\n onClick={() => handleStarClick(index, true)}\n onMouseEnter={() => handleStarHover(index, true)}\n />\n {/* Right half */}\n <div\n className=\"absolute inset-0 left-1/2 w-1/2 cursor-pointer\"\n onClick={() => handleStarClick(index, false)}\n onMouseEnter={() => handleStarHover(index, false)}\n />\n </>\n ) : (\n <div\n className=\"absolute inset-0 cursor-pointer\"\n onClick={() => handleStarClick(index, false)}\n onMouseEnter={() => handleStarHover(index, false)}\n />\n )}\n </>\n )}\n </div>\n\n {/* Show tooltip text below star on hover */}\n {tooltip &&\n (hoverValue === index + 1 ||\n (allowHalf && hoverValue === index + 0.5)) && (\n <div className=\"absolute top-full left-1/2 -translate-x-1/2 mt-1 px-2 py-1 text-xs bg-foreground text-background rounded whitespace-nowrap z-10\">\n {tooltip}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n);\n\nRate.displayName = \"Rate\";\n\nexport default Rate;\n"],"names":["Rate","React","count","controlledValue","defaultValue","allowHalf","allowClear","size","color","character","className","style","disabled","autoFocus","keyboard","tooltips","onChange","onHoverChange","onFocus","onBlur","onKeyDown","ref","internalValue","setInternalValue","useState","hoverValue","setHoverValue","containerRef","useRef","value","sizeMap","colorMap","handleStarClick","starIndex","isHalf","newValue","handleStarHover","newHoverValue","handleMouseLeave","handleKeyDown","event","step","handleFocus","handleBlur","getStarFill","currentValue","isHalfStar","fill","renderCharacter","jsx","StarHalf","Star","getTooltip","node","cn","_","index","fillPercentage","tooltip","showHalfStar","jsxs","Fragment"],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { jsx as l, jsxs as P } from "react/jsx-runtime";
2
+ import g from "react";
3
+ import { ResizablePanel as u, ResizableHandle as f, ResizablePanelGroup as i } from "@dsui/ui/components/resizable";
4
+ import { ResizableHandle as _, ResizablePanel as k, ResizablePanelGroup as B } from "@dsui/ui/components/resizable";
5
+ import { cn as s } from "@dsui/ui/lib/utils";
6
+ const h = (b) => {
7
+ const {
8
+ direction: o = "horizontal",
9
+ panels: a,
10
+ withHandle: R = !0,
11
+ handleVariant: p,
12
+ handleIcon: N,
13
+ autoSaveId: n,
14
+ onLayout: r,
15
+ className: t,
16
+ panelClassName: S,
17
+ handleClassName: x,
18
+ children: d,
19
+ keyboardResizeBy: c,
20
+ storage: m
21
+ } = b;
22
+ return d && !a ? /* @__PURE__ */ l(
23
+ i,
24
+ {
25
+ direction: o,
26
+ autoSaveId: n,
27
+ onLayout: r,
28
+ className: s("h-full w-full", t),
29
+ keyboardResizeBy: c,
30
+ storage: m,
31
+ children: d
32
+ }
33
+ ) : !a || a.length === 0 ? null : /* @__PURE__ */ l(
34
+ i,
35
+ {
36
+ direction: o,
37
+ autoSaveId: n,
38
+ onLayout: r,
39
+ className: s("h-full w-full", t),
40
+ keyboardResizeBy: c,
41
+ storage: m,
42
+ children: a.map((e, z) => /* @__PURE__ */ P(g.Fragment, { children: [
43
+ /* @__PURE__ */ l(
44
+ u,
45
+ {
46
+ id: e.id,
47
+ defaultSize: e.defaultSize,
48
+ minSize: e.minSize,
49
+ maxSize: e.maxSize,
50
+ collapsible: e.collapsible,
51
+ collapsedSize: e.collapsedSize,
52
+ onCollapse: e.onCollapse,
53
+ onExpand: e.onExpand,
54
+ onResize: e.onResize,
55
+ order: e.order,
56
+ className: s(S, e.className),
57
+ children: e.children
58
+ }
59
+ ),
60
+ z < a.length - 1 && /* @__PURE__ */ l(
61
+ f,
62
+ {
63
+ withHandle: R,
64
+ variant: p,
65
+ icon: N,
66
+ className: x
67
+ }
68
+ )
69
+ ] }, e.id || `panel-${z}`))
70
+ }
71
+ );
72
+ };
73
+ h.displayName = "Resizable";
74
+ const y = u, C = f, v = Object.assign(h, {
75
+ Panel: y,
76
+ Handle: C,
77
+ PanelGroup: i
78
+ });
79
+ export {
80
+ C as Handle,
81
+ y as Panel,
82
+ v as Resizable,
83
+ _ as ResizableHandle,
84
+ k as ResizablePanel,
85
+ B as ResizablePanelGroup,
86
+ h as ResizableWrapper,
87
+ v as default
88
+ };
89
+ //# sourceMappingURL=Resizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resizable.js","sources":["../../../../src/components/Resizable/Resizable.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ResizablePanelGroup,\n ResizablePanel,\n ResizableHandle,\n resizableHandleVariants,\n} from \"@dsui/ui/components/resizable\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport type { VariantProps } from \"class-variance-authority\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ResizableDirection = \"horizontal\" | \"vertical\";\n\nexport type ResizableHandleVariant = VariantProps<\n typeof resizableHandleVariants\n>[\"variant\"];\n\nexport interface ResizablePanelConfig {\n id?: string;\n defaultSize?: number;\n minSize?: number;\n maxSize?: number;\n collapsible?: boolean;\n collapsedSize?: number;\n onCollapse?: () => void;\n onExpand?: () => void;\n onResize?: (size: number) => void;\n className?: string;\n children?: React.ReactNode;\n order?: number;\n}\n\ntype PanelGroupOnLayout = (sizes: number[]) => void;\n\nexport interface ResizableProps {\n /** Direction of the resizable panels */\n direction?: ResizableDirection;\n /** Configuration for panels when using wrapper mode */\n panels?: ResizablePanelConfig[];\n /** Show handle with grip icon */\n withHandle?: boolean;\n /** Handle variant: 'default' shows icon, 'line' highlights on hover */\n handleVariant?: ResizableHandleVariant;\n /** Custom icon for the handle (only works with default variant) */\n handleIcon?: React.ReactNode;\n /** Auto save layout to localStorage with this id */\n autoSaveId?: string;\n /** Callback when layout changes */\n onLayout?: PanelGroupOnLayout;\n /** Additional class for the panel group */\n className?: string;\n /** Additional class for each panel */\n panelClassName?: string;\n /** Additional class for handles */\n handleClassName?: string;\n /** Children for primitive usage */\n children?: React.ReactNode;\n /** Keyboard resize by delta percentage (default: 10) */\n keyboardResizeBy?: number;\n /** Storage object for saving layout (default: localStorage) */\n storage?: {\n getItem: (name: string) => string | null;\n setItem: (name: string, value: string) => void;\n };\n}\n\n// ============================================================================\n// Wrapper Component\n// ============================================================================\n\nconst ResizableWrapper = (props: ResizableProps) => {\n const {\n direction = \"horizontal\",\n panels,\n withHandle = true,\n handleVariant,\n handleIcon,\n autoSaveId,\n onLayout,\n className,\n panelClassName,\n handleClassName,\n children,\n keyboardResizeBy,\n storage,\n } = props;\n\n // If children are provided, use primitive mode\n if (children && !panels) {\n return (\n <ResizablePanelGroup\n direction={direction}\n autoSaveId={autoSaveId}\n onLayout={onLayout}\n className={cn(\"h-full w-full\", className)}\n keyboardResizeBy={keyboardResizeBy}\n storage={storage}\n >\n {children}\n </ResizablePanelGroup>\n );\n }\n\n // Wrapper mode with panels config\n if (!panels || panels.length === 0) {\n return null;\n }\n\n return (\n <ResizablePanelGroup\n direction={direction}\n autoSaveId={autoSaveId}\n onLayout={onLayout}\n className={cn(\"h-full w-full\", className)}\n keyboardResizeBy={keyboardResizeBy}\n storage={storage}\n >\n {panels.map((panel, index) => (\n <React.Fragment key={panel.id || `panel-${index}`}>\n <ResizablePanel\n id={panel.id}\n defaultSize={panel.defaultSize}\n minSize={panel.minSize}\n maxSize={panel.maxSize}\n collapsible={panel.collapsible}\n collapsedSize={panel.collapsedSize}\n onCollapse={panel.onCollapse}\n onExpand={panel.onExpand}\n onResize={panel.onResize}\n order={panel.order}\n className={cn(panelClassName, panel.className)}\n >\n {panel.children}\n </ResizablePanel>\n {index < panels.length - 1 && (\n <ResizableHandle\n withHandle={withHandle}\n variant={handleVariant}\n icon={handleIcon}\n className={handleClassName}\n />\n )}\n </React.Fragment>\n ))}\n </ResizablePanelGroup>\n );\n};\n\nResizableWrapper.displayName = \"Resizable\";\n\n// ============================================================================\n// Sub-components for primitive usage\n// ============================================================================\n\nexport type ResizablePanelProps = React.ComponentProps<typeof ResizablePanel>;\nexport type ResizableHandleProps = React.ComponentProps<typeof ResizableHandle>;\nexport type ResizablePanelGroupProps = React.ComponentProps<\n typeof ResizablePanelGroup\n>;\n\n// Re-export Panel and Handle from shadcn for primitive usage\nconst Panel = ResizablePanel;\nconst Handle = ResizableHandle;\n\n// ============================================================================\n// Export with Object.assign pattern\n// ============================================================================\n\nconst Resizable = Object.assign(ResizableWrapper, {\n Panel,\n Handle,\n PanelGroup: ResizablePanelGroup,\n});\n\nexport default Resizable;\nexport {\n Resizable,\n ResizableWrapper,\n ResizablePanelGroup,\n ResizablePanel,\n ResizableHandle,\n Panel,\n Handle,\n};\n"],"names":["ResizableWrapper","props","direction","panels","withHandle","handleVariant","handleIcon","autoSaveId","onLayout","className","panelClassName","handleClassName","children","keyboardResizeBy","storage","jsx","ResizablePanelGroup","cn","panel","index","jsxs","React","ResizablePanel","ResizableHandle","Panel","Handle","Resizable"],"mappings":";;;;;AAyEA,MAAMA,IAAmB,CAACC,MAA0B;AAClD,QAAM;AAAA,IACJ,WAAAC,IAAY;AAAA,IACZ,QAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEb;AAGJ,SAAIW,KAAY,CAACT,IAEb,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAAd;AAAA,MACA,YAAAK;AAAA,MACA,UAAAC;AAAA,MACA,WAAWS,EAAG,iBAAiBR,CAAS;AAAA,MACxC,kBAAAI;AAAA,MACA,SAAAC;AAAA,MAEC,UAAAF;AAAA,IAAA;AAAA,EAAA,IAMH,CAACT,KAAUA,EAAO,WAAW,IACxB,OAIP,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAAd;AAAA,MACA,YAAAK;AAAA,MACA,UAAAC;AAAA,MACA,WAAWS,EAAG,iBAAiBR,CAAS;AAAA,MACxC,kBAAAI;AAAA,MACA,SAAAC;AAAA,MAEC,UAAAX,EAAO,IAAI,CAACe,GAAOC,MAClB,gBAAAC,EAACC,EAAM,UAAN,EACC,UAAA;AAAA,QAAA,gBAAAN;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,IAAIJ,EAAM;AAAA,YACV,aAAaA,EAAM;AAAA,YACnB,SAASA,EAAM;AAAA,YACf,SAASA,EAAM;AAAA,YACf,aAAaA,EAAM;AAAA,YACnB,eAAeA,EAAM;AAAA,YACrB,YAAYA,EAAM;AAAA,YAClB,UAAUA,EAAM;AAAA,YAChB,UAAUA,EAAM;AAAA,YAChB,OAAOA,EAAM;AAAA,YACb,WAAWD,EAAGP,GAAgBQ,EAAM,SAAS;AAAA,YAE5C,UAAAA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAERC,IAAQhB,EAAO,SAAS,KACvB,gBAAAY;AAAA,UAACQ;AAAA,UAAA;AAAA,YACC,YAAAnB;AAAA,YACA,SAASC;AAAA,YACT,MAAMC;AAAA,YACN,WAAWK;AAAA,UAAA;AAAA,QAAA;AAAA,MACb,EAAA,GAtBiBO,EAAM,MAAM,SAASC,CAAK,EAwB/C,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAnB,EAAiB,cAAc;AAa/B,MAAMwB,IAAQF,GACRG,IAASF,GAMTG,IAAY,OAAO,OAAO1B,GAAkB;AAAA,EAChD,OAAAwB;AAAA,EACA,QAAAC;AAAA,EACA,YAAYT;AACd,CAAC;"}
@@ -0,0 +1,45 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import i, { useRef as S, useEffect as p } from "react";
3
+ import { ScrollArea as d, ScrollBar as A } from "@dsui/ui/components/scroll-area";
4
+ import { cn as l } from "@dsui/ui/lib/utils";
5
+ const R = i.forwardRef(
6
+ ({ className: c, children: s, snapType: a, viewportClassName: t, ...m }, o) => {
7
+ const n = S(null), f = i.useMemo(() => {
8
+ if (!a || a === "none") return "snap-none";
9
+ const [r, e] = a.split(" ");
10
+ return l(`snap-${r}`, e && `snap-${e}`);
11
+ }, [a]);
12
+ return p(() => {
13
+ if (n.current && (f || t)) {
14
+ const r = n.current.querySelector(
15
+ "[data-radix-scroll-area-viewport]"
16
+ );
17
+ if (r) {
18
+ const e = l(f, t);
19
+ e && (r.className = l(r.className, e));
20
+ }
21
+ }
22
+ }, [f, t]), /* @__PURE__ */ u(
23
+ d,
24
+ {
25
+ ref: (r) => {
26
+ n.current = r, typeof o == "function" ? o(r) : o && (o.current = r);
27
+ },
28
+ className: l(c),
29
+ ...m,
30
+ children: s
31
+ }
32
+ );
33
+ }
34
+ );
35
+ R.displayName = "ScrollArea";
36
+ const x = i.forwardRef(
37
+ ({ className: c, ...s }, a) => /* @__PURE__ */ u(A, { ref: a, className: l(c), ...s })
38
+ );
39
+ x.displayName = "ScrollBar";
40
+ export {
41
+ R as ScrollArea,
42
+ x as ScrollBar,
43
+ R as default
44
+ };
45
+ //# sourceMappingURL=ScrollArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollArea.js","sources":["../../../../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport {\n ScrollArea as SScrollArea,\n ScrollBar as SScrollBar,\n} from \"@dsui/ui/components/scroll-area\";\nimport { cn } from \"@dsui/ui/lib/utils\";\n\nexport interface ScrollAreaProps extends React.ComponentProps<\n typeof SScrollArea\n> {\n /**\n * Type of scroll snap behavior\n * @default undefined\n */\n snapType?:\n | \"none\"\n | \"x\"\n | \"y\"\n | \"both\"\n | \"x mandatory\"\n | \"y mandatory\"\n | \"both mandatory\"\n | \"x proximity\"\n | \"y proximity\"\n | \"both proximity\";\n /**\n * Additional className for the viewport (where scroll happens)\n */\n viewportClassName?: string;\n}\n\nexport type ScrollBarProps = React.ComponentProps<typeof SScrollBar>;\n\nconst ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(\n ({ className, children, snapType, viewportClassName, ...props }, ref) => {\n const scrollAreaRef = useRef<HTMLDivElement>(null);\n\n const snapClass = React.useMemo(() => {\n if (!snapType || snapType === \"none\") return \"snap-none\";\n\n const [axis, alignment] = snapType.split(\" \");\n return cn(`snap-${axis}`, alignment && `snap-${alignment}`);\n }, [snapType]);\n\n // const snapClass = snapType\n // ? snapType === \"none\"\n // ? \"snap-none\"\n // : snapType === \"x\"\n // ? \"snap-x\"\n // : snapType === \"y\"\n // ? \"snap-y\"\n // : snapType === \"both\"\n // ? \"snap-both\"\n // : snapType === \"x mandatory\"\n // ? \"snap-x snap-mandatory\"\n // : snapType === \"y mandatory\"\n // ? \"snap-y snap-mandatory\"\n // : snapType === \"both mandatory\"\n // ? \"snap-both snap-mandatory\"\n // : snapType === \"x proximity\"\n // ? \"snap-x snap-proximity\"\n // : snapType === \"y proximity\"\n // ? \"snap-y snap-proximity\"\n // : snapType === \"both proximity\"\n // ? \"snap-both snap-proximity\"\n // : \"\"\n // : \"\";\n\n useEffect(() => {\n if (scrollAreaRef.current && (snapClass || viewportClassName)) {\n const viewport = scrollAreaRef.current.querySelector(\n \"[data-radix-scroll-area-viewport]\",\n );\n if (viewport) {\n const classes = cn(snapClass, viewportClassName);\n if (classes) {\n viewport.className = cn(viewport.className, classes);\n }\n }\n }\n }, [snapClass, viewportClassName]);\n\n return (\n <SScrollArea\n ref={(node) => {\n scrollAreaRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n className={cn(className)}\n {...props}\n >\n {children}\n </SScrollArea>\n );\n },\n);\nScrollArea.displayName = \"ScrollArea\";\n\nconst ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, ...props }, ref) => {\n return <SScrollBar ref={ref} className={cn(className)} {...props} />;\n },\n);\nScrollBar.displayName = \"ScrollBar\";\n\nexport { ScrollArea, ScrollBar };\nexport default ScrollArea;\n"],"names":["ScrollArea","React","className","children","snapType","viewportClassName","props","ref","scrollAreaRef","useRef","snapClass","axis","alignment","cn","useEffect","viewport","classes","jsx","SScrollArea","node","ScrollBar","SScrollBar"],"mappings":";;;;AAiCA,MAAMA,IAAaC,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,mBAAAC,GAAmB,GAAGC,EAAA,GAASC,MAAQ;AACvE,UAAMC,IAAgBC,EAAuB,IAAI,GAE3CC,IAAYT,EAAM,QAAQ,MAAM;AACpC,UAAI,CAACG,KAAYA,MAAa,OAAQ,QAAO;AAE7C,YAAM,CAACO,GAAMC,CAAS,IAAIR,EAAS,MAAM,GAAG;AAC5C,aAAOS,EAAG,QAAQF,CAAI,IAAIC,KAAa,QAAQA,CAAS,EAAE;AAAA,IAC5D,GAAG,CAACR,CAAQ,CAAC;AA0Bb,WAAAU,EAAU,MAAM;AACd,UAAIN,EAAc,YAAYE,KAAaL,IAAoB;AAC7D,cAAMU,IAAWP,EAAc,QAAQ;AAAA,UACrC;AAAA,QAAA;AAEF,YAAIO,GAAU;AACZ,gBAAMC,IAAUH,EAAGH,GAAWL,CAAiB;AAC/C,UAAIW,MACFD,EAAS,YAAYF,EAAGE,EAAS,WAAWC,CAAO;AAAA,QAEvD;AAAA,MACF;AAAA,IACF,GAAG,CAACN,GAAWL,CAAiB,CAAC,GAG/B,gBAAAY;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAK,CAACC,MAAS;AACb,UAAAX,EAAc,UAAUW,GACpB,OAAOZ,KAAQ,aACjBA,EAAIY,CAAI,IACCZ,MACTA,EAAI,UAAUY;AAAA,QAElB;AAAA,QACA,WAAWN,EAAGX,CAAS;AAAA,QACtB,GAAGI;AAAA,QAEH,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AACAH,EAAW,cAAc;AAEzB,MAAMoB,IAAYnB,EAAM;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAA,GAASC,MACjB,gBAAAU,EAACI,KAAW,KAAAd,GAAU,WAAWM,EAAGX,CAAS,GAAI,GAAGI,GAAO;AAEtE;AACAc,EAAU,cAAc;"}
@@ -0,0 +1,199 @@
1
+ import { jsx as r, jsxs as m, Fragment as D } from "react/jsx-runtime";
2
+ import d from "react";
3
+ import { MultiSelect as F, MultiSelectTrigger as J, MultiSelectValue as K, MultiSelectContent as P, MultiSelectGroup as Q, MultiSelectItem as k, MultiSelectSeparator as U } from "@dsui/ui/components/select";
4
+ import { Combobox as W } from "@dsui/ui/components/combobox";
5
+ import { cn as o } from "@dsui/ui/lib/utils";
6
+ import { FloatingLabel as E } from "../FloatLabel.js";
7
+ import { Info as X } from "lucide-react";
8
+ import { Tooltip as Y } from "../Tooltip/Tooltip.js";
9
+ const Z = d.forwardRef(
10
+ ({
11
+ className: v,
12
+ label: u,
13
+ helperText: w,
14
+ state: f = "default",
15
+ size: t = "normal",
16
+ isFloatLabel: c,
17
+ infoTooltip: p,
18
+ clearable: y = !1,
19
+ placeholder: M = "",
20
+ options: g = [],
21
+ tagRender: s,
22
+ multiple: x = !1,
23
+ value: n,
24
+ defaultValue: V,
25
+ onValueChange: N,
26
+ values: _,
27
+ defaultValues: S,
28
+ onValuesChange: G,
29
+ search: h,
30
+ clickToRemove: H = !0,
31
+ overflowBehavior: O = "wrap-when-open",
32
+ disabled: b
33
+ }, T) => {
34
+ const i = d.useId(), [C, I] = d.useState(
35
+ n ?? V ?? ""
36
+ );
37
+ d.useEffect(() => {
38
+ !x && n !== void 0 && I(n);
39
+ }, [x, n]);
40
+ const q = d.useCallback(
41
+ (l) => {
42
+ const a = l || "";
43
+ n === void 0 && I(a), N?.(a);
44
+ },
45
+ [N, n]
46
+ ), A = {
47
+ default: "text-muted-foreground",
48
+ success: "text-success",
49
+ warning: "text-warning",
50
+ error: "text-error"
51
+ }, j = c ? t === "xl" || t === "lg" ? t : "xl" : t, B = d.useMemo(() => {
52
+ const l = /* @__PURE__ */ new Map();
53
+ return g.forEach((a) => {
54
+ const e = a.group;
55
+ l.has(e) || l.set(e, []), l.get(e).push(a);
56
+ }), l;
57
+ }, [g]);
58
+ return /* @__PURE__ */ r("div", { className: v, children: /* @__PURE__ */ m(
59
+ "div",
60
+ {
61
+ ref: T,
62
+ className: o("flex flex-col gap-1.5 relative", {
63
+ "floating-label relative": c
64
+ }),
65
+ children: [
66
+ !c && u && /* @__PURE__ */ m(
67
+ "label",
68
+ {
69
+ htmlFor: i,
70
+ className: "flex gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
71
+ children: [
72
+ u,
73
+ p && /* @__PURE__ */ r(Y, { content: p, children: /* @__PURE__ */ r(X, { className: "size-3.5 min-w-3.5" }) })
74
+ ]
75
+ }
76
+ ),
77
+ /* @__PURE__ */ r("div", { className: "relative", children: x ? (
78
+ // Multi Mode
79
+ /* @__PURE__ */ m(
80
+ F,
81
+ {
82
+ values: _,
83
+ defaultValues: typeof S == "string" ? [S] : S,
84
+ onValuesChange: G,
85
+ children: [
86
+ /* @__PURE__ */ r(
87
+ J,
88
+ {
89
+ id: i,
90
+ disabled: b,
91
+ className: o(
92
+ "peer w-full",
93
+ {
94
+ "pt-5 pb-1": c && t !== "lg"
95
+ },
96
+ v
97
+ ),
98
+ size: j,
99
+ state: f,
100
+ children: /* @__PURE__ */ r(
101
+ K,
102
+ {
103
+ placeholder: M,
104
+ clickToRemove: H && y,
105
+ overflowBehavior: O
106
+ }
107
+ )
108
+ }
109
+ ),
110
+ c && /* @__PURE__ */ r(
111
+ E,
112
+ {
113
+ htmlFor: i,
114
+ size: t,
115
+ infoTooltip: p,
116
+ children: u
117
+ }
118
+ ),
119
+ /* @__PURE__ */ r(P, { search: h, children: [...B.entries()].map(([l, a]) => l ? /* @__PURE__ */ m(d.Fragment, { children: [
120
+ /* @__PURE__ */ r(Q, { heading: l, children: a.map((e) => /* @__PURE__ */ r(
121
+ k,
122
+ {
123
+ value: e.value,
124
+ disabled: e?.disabled,
125
+ icon: e?.icon,
126
+ tagRender: !!s,
127
+ children: s ? s(e) : e.label
128
+ },
129
+ e.value
130
+ )) }),
131
+ /* @__PURE__ */ r(U, {})
132
+ ] }, l) : a.map((e) => /* @__PURE__ */ r(
133
+ k,
134
+ {
135
+ value: e.value,
136
+ disabled: e?.disabled,
137
+ icon: e?.icon,
138
+ tagRender: !!s,
139
+ children: s ? s(e) : e.label
140
+ },
141
+ e.value
142
+ ))) })
143
+ ]
144
+ }
145
+ )
146
+ ) : (
147
+ // Single Mode
148
+ /* @__PURE__ */ m(D, { children: [
149
+ /* @__PURE__ */ r(
150
+ W,
151
+ {
152
+ value: n ?? C,
153
+ options: g,
154
+ placeHolder: M,
155
+ emptyText: typeof h == "object" ? h.emptyMessage : "No results found",
156
+ onChange: q,
157
+ clearable: y,
158
+ disabled: b,
159
+ id: i,
160
+ className: o(
161
+ "peer w-full justify-start",
162
+ {
163
+ "pt-5 pb-1": c && t !== "lg"
164
+ }
165
+ // className,
166
+ ),
167
+ size: j,
168
+ state: f,
169
+ dropdownClassName: o("opacity-40", {
170
+ "translate-y-[-8px]": c && t !== "lg"
171
+ }),
172
+ searchable: !!h,
173
+ tagRender: s
174
+ }
175
+ ),
176
+ c && /* @__PURE__ */ r(
177
+ E,
178
+ {
179
+ htmlFor: i,
180
+ size: t,
181
+ infoTooltip: p,
182
+ shouldFloat: !!(n ?? C),
183
+ className: "pointer-events-none",
184
+ children: u
185
+ }
186
+ )
187
+ ] })
188
+ ) }),
189
+ w && /* @__PURE__ */ r("p", { className: o("text-xs", f ? A[f] : ""), children: w })
190
+ ]
191
+ }
192
+ ) });
193
+ }
194
+ );
195
+ Z.displayName = "Select";
196
+ export {
197
+ Z as default
198
+ };
199
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n MultiSelect as BaseMultiSelect,\n MultiSelectTrigger as BaseMultiSelectTrigger,\n MultiSelectValue as BaseMultiSelectValue,\n MultiSelectContent as BaseMultiSelectContent,\n MultiSelectItem as BaseMultiSelectItem,\n MultiSelectGroup as BaseMultiSelectGroup,\n MultiSelectSeparator as BaseMultiSelectSeparator,\n} from \"@dsui/ui/components/select\";\nimport {\n Combobox,\n type ComboboxProps,\n type SelectOption as SSelectOption,\n} from \"@dsui/ui/components/combobox\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { FloatingLabel } from \"@/components/FloatLabel\";\nimport { Info } from \"lucide-react\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\n\nexport type SelectOption = SSelectOption;\n\nexport type SelectProps = ComboboxProps & {\n label?: string;\n helperText?: React.ReactNode;\n state?: \"default\" | \"success\" | \"warning\" | \"error\";\n size?: \"xs\" | \"sm\" | \"normal\" | \"lg\" | \"xl\";\n isFloatLabel?: boolean;\n infoTooltip?: React.ReactNode;\n clearable?: boolean;\n placeholder?: string;\n options?: SelectOption[];\n tagRender?: (option: SelectOption) => React.ReactNode;\n multiple?: boolean;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n values?: string[];\n defaultValues?: string | string[];\n onValuesChange?: (values: string[]) => void;\n search?: boolean | { placeholder?: string; emptyMessage?: string };\n clickToRemove?: boolean;\n overflowBehavior?: \"wrap\" | \"wrap-when-open\" | \"cutoff\";\n className?: string;\n disabled?: boolean;\n};\n\nconst Select = React.forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n className,\n label,\n helperText,\n state = \"default\",\n size = \"normal\",\n isFloatLabel,\n infoTooltip,\n clearable = false,\n placeholder = \"\",\n options = [],\n tagRender,\n multiple = false,\n value,\n defaultValue,\n onValueChange,\n values,\n defaultValues,\n onValuesChange,\n search,\n clickToRemove = true,\n overflowBehavior = \"wrap-when-open\",\n disabled,\n },\n ref,\n ) => {\n const selectId = React.useId();\n\n // For single select, use controlled value or internal state\n const [internalValue, setInternalValue] = React.useState(\n value ?? defaultValue ?? \"\",\n );\n\n React.useEffect(() => {\n if (!multiple && value !== undefined) {\n setInternalValue(value);\n }\n }, [multiple, value]);\n\n // Handle single select value change\n const handleSingleValueChange = React.useCallback(\n (newValue?: string | null) => {\n const val = newValue || \"\";\n if (value === undefined) {\n setInternalValue(val);\n }\n onValueChange?.(val);\n },\n [onValueChange, value],\n );\n\n // Helper text styles\n const helperTextStyles = {\n default: \"text-muted-foreground\",\n success: \"text-success\",\n warning: \"text-warning\",\n error: \"text-error\",\n };\n\n // Calculate current size\n const currentSize = isFloatLabel\n ? size === \"xl\" || size === \"lg\"\n ? size\n : \"xl\"\n : size;\n\n // Group options by group property\n const groupedOptions = React.useMemo(() => {\n const groups = new Map<string | undefined, SelectOption[]>();\n options.forEach((option) => {\n const group = option.group;\n if (!groups.has(group)) {\n groups.set(group, []);\n }\n groups.get(group)!.push(option);\n });\n return groups;\n }, [options]);\n\n return (\n <div className={className}>\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-1.5 relative\", {\n \"floating-label relative\": isFloatLabel,\n })}\n >\n {!isFloatLabel && label && (\n <label\n htmlFor={selectId}\n className=\"flex gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\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\">\n {!multiple ? (\n // Single Mode\n <>\n <Combobox\n value={value ?? internalValue}\n options={options}\n placeHolder={placeholder}\n emptyText={\n typeof search === \"object\"\n ? search.emptyMessage\n : \"No results found\"\n }\n onChange={handleSingleValueChange}\n clearable={clearable}\n disabled={disabled}\n id={selectId}\n className={cn(\n \"peer w-full justify-start\",\n {\n \"pt-5 pb-1\": isFloatLabel && size !== \"lg\",\n },\n // className,\n )}\n size={currentSize}\n state={state}\n dropdownClassName={cn(\"opacity-40\", {\n \"translate-y-[-8px]\": isFloatLabel && size !== \"lg\",\n })}\n searchable={!!search}\n tagRender={tagRender}\n />\n {isFloatLabel && (\n <FloatingLabel\n htmlFor={selectId}\n size={size}\n infoTooltip={infoTooltip}\n shouldFloat={!!(value ?? internalValue)}\n className=\"pointer-events-none\"\n >\n {label}\n </FloatingLabel>\n )}\n </>\n ) : (\n // Multi Mode\n <BaseMultiSelect\n values={values}\n defaultValues={\n typeof defaultValues === \"string\"\n ? [defaultValues]\n : defaultValues\n }\n onValuesChange={onValuesChange}\n >\n <BaseMultiSelectTrigger\n id={selectId}\n disabled={disabled}\n className={cn(\n \"peer w-full\",\n {\n \"pt-5 pb-1\": isFloatLabel && size !== \"lg\",\n },\n className,\n )}\n size={currentSize}\n state={state}\n >\n <BaseMultiSelectValue\n placeholder={placeholder}\n clickToRemove={clickToRemove && clearable}\n overflowBehavior={overflowBehavior}\n />\n </BaseMultiSelectTrigger>\n\n {isFloatLabel && (\n <FloatingLabel\n htmlFor={selectId}\n size={size}\n infoTooltip={infoTooltip}\n >\n {label}\n </FloatingLabel>\n )}\n\n <BaseMultiSelectContent search={search}>\n {[...groupedOptions.entries()].map(([group, items]) => {\n if (group) {\n return (\n <React.Fragment key={group}>\n <BaseMultiSelectGroup heading={group}>\n {items.map((option) => (\n <BaseMultiSelectItem\n key={option.value}\n value={option.value}\n disabled={option?.disabled}\n icon={option?.icon}\n tagRender={!!tagRender}\n >\n {tagRender ? tagRender(option) : option.label}\n </BaseMultiSelectItem>\n ))}\n </BaseMultiSelectGroup>\n <BaseMultiSelectSeparator />\n </React.Fragment>\n );\n }\n return items.map((option) => (\n <BaseMultiSelectItem\n key={option.value}\n value={option.value}\n disabled={option?.disabled}\n icon={option?.icon}\n tagRender={!!tagRender}\n >\n {tagRender ? tagRender(option) : option.label}\n </BaseMultiSelectItem>\n ));\n })}\n </BaseMultiSelectContent>\n </BaseMultiSelect>\n )}\n </div>\n\n {helperText && (\n <p className={cn(\"text-xs\", state ? helperTextStyles[state] : \"\")}>\n {helperText}\n </p>\n )}\n </div>\n </div>\n );\n },\n);\n\nSelect.displayName = \"Select\";\nexport default Select;\n"],"names":["Select","React","className","label","helperText","state","size","isFloatLabel","infoTooltip","clearable","placeholder","options","tagRender","multiple","value","defaultValue","onValueChange","values","defaultValues","onValuesChange","search","clickToRemove","overflowBehavior","disabled","ref","selectId","internalValue","setInternalValue","handleSingleValueChange","newValue","val","helperTextStyles","currentSize","groupedOptions","groups","option","group","jsx","jsxs","cn","Tooltip","Info","BaseMultiSelect","BaseMultiSelectTrigger","BaseMultiSelectValue","FloatingLabel","BaseMultiSelectContent","items","BaseMultiSelectGroup","BaseMultiSelectItem","BaseMultiSelectSeparator","Fragment","Combobox"],"mappings":";;;;;;;;AA+CA,MAAMA,IAASC,EAAM;AAAA,EACnB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,cAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,aAAAC,IAAc;AAAA,IACd,SAAAC,IAAU,CAAA;AAAA,IACV,WAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,QAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,kBAAAC,IAAmB;AAAA,IACnB,UAAAC;AAAA,EAAA,GAEFC,MACG;AACH,UAAMC,IAAWxB,EAAM,MAAA,GAGjB,CAACyB,GAAeC,CAAgB,IAAI1B,EAAM;AAAA,MAC9Ca,KAASC,KAAgB;AAAA,IAAA;AAG3Bd,IAAAA,EAAM,UAAU,MAAM;AACpB,MAAI,CAACY,KAAYC,MAAU,UACzBa,EAAiBb,CAAK;AAAA,IAE1B,GAAG,CAACD,GAAUC,CAAK,CAAC;AAGpB,UAAMc,IAA0B3B,EAAM;AAAA,MACpC,CAAC4B,MAA6B;AAC5B,cAAMC,IAAMD,KAAY;AACxB,QAAIf,MAAU,UACZa,EAAiBG,CAAG,GAEtBd,IAAgBc,CAAG;AAAA,MACrB;AAAA,MACA,CAACd,GAAeF,CAAK;AAAA,IAAA,GAIjBiB,IAAmB;AAAA,MACvB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,GAIHC,IAAczB,IAChBD,MAAS,QAAQA,MAAS,OACxBA,IACA,OACFA,GAGE2B,IAAiBhC,EAAM,QAAQ,MAAM;AACzC,YAAMiC,wBAAa,IAAA;AACnB,aAAAvB,EAAQ,QAAQ,CAACwB,MAAW;AAC1B,cAAMC,IAAQD,EAAO;AACrB,QAAKD,EAAO,IAAIE,CAAK,KACnBF,EAAO,IAAIE,GAAO,EAAE,GAEtBF,EAAO,IAAIE,CAAK,EAAG,KAAKD,CAAM;AAAA,MAChC,CAAC,GACMD;AAAA,IACT,GAAG,CAACvB,CAAO,CAAC;AAEZ,WACE,gBAAA0B,EAAC,SAAI,WAAAnC,GACH,UAAA,gBAAAoC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAd;AAAA,QACA,WAAWe,EAAG,kCAAkC;AAAA,UAC9C,2BAA2BhC;AAAA,QAAA,CAC5B;AAAA,QAEA,UAAA;AAAA,UAAA,CAACA,KAAgBJ,KAChB,gBAAAmC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAASb;AAAA,cACT,WAAU;AAAA,cAET,UAAA;AAAA,gBAAAtB;AAAA,gBACAK,uBACEgC,GAAA,EAAQ,SAAShC,GAChB,UAAA,gBAAA6B,EAACI,GAAA,EAAK,WAAU,qBAAA,CAAqB,EAAA,CACvC;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAKN,gBAAAJ,EAAC,OAAA,EAAI,WAAU,YACZ,UAACxB;AAAA;AAAA,YA6CA,gBAAAyB;AAAA,cAACI;AAAAA,cAAA;AAAA,gBACC,QAAAzB;AAAA,gBACA,eACE,OAAOC,KAAkB,WACrB,CAACA,CAAa,IACdA;AAAA,gBAEN,gBAAAC;AAAA,gBAEA,UAAA;AAAA,kBAAA,gBAAAkB;AAAA,oBAACM;AAAAA,oBAAA;AAAA,sBACC,IAAIlB;AAAA,sBACJ,UAAAF;AAAA,sBACA,WAAWgB;AAAA,wBACT;AAAA,wBACA;AAAA,0BACE,aAAahC,KAAgBD,MAAS;AAAA,wBAAA;AAAA,wBAExCJ;AAAA,sBAAA;AAAA,sBAEF,MAAM8B;AAAA,sBACN,OAAA3B;AAAA,sBAEA,UAAA,gBAAAgC;AAAA,wBAACO;AAAAA,wBAAA;AAAA,0BACC,aAAAlC;AAAA,0BACA,eAAeW,KAAiBZ;AAAA,0BAChC,kBAAAa;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACF;AAAA,kBAAA;AAAA,kBAGDf,KACC,gBAAA8B;AAAA,oBAACQ;AAAA,oBAAA;AAAA,sBACC,SAASpB;AAAA,sBACT,MAAAnB;AAAA,sBACA,aAAAE;AAAA,sBAEC,UAAAL;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAIL,gBAAAkC,EAACS,GAAA,EAAuB,QAAA1B,GACrB,UAAA,CAAC,GAAGa,EAAe,QAAA,CAAS,EAAE,IAAI,CAAC,CAACG,GAAOW,CAAK,MAC3CX,IAEA,gBAAAE,EAACrC,EAAM,UAAN,EACC,UAAA;AAAA,oBAAA,gBAAAoC,EAACW,KAAqB,SAASZ,GAC5B,UAAAW,EAAM,IAAI,CAACZ,MACV,gBAAAE;AAAA,sBAACY;AAAAA,sBAAA;AAAA,wBAEC,OAAOd,EAAO;AAAA,wBACd,UAAUA,GAAQ;AAAA,wBAClB,MAAMA,GAAQ;AAAA,wBACd,WAAW,CAAC,CAACvB;AAAA,wBAEZ,UAAAA,IAAYA,EAAUuB,CAAM,IAAIA,EAAO;AAAA,sBAAA;AAAA,sBANnCA,EAAO;AAAA,oBAAA,CAQf,GACH;AAAA,sCACCe,GAAA,CAAA,CAAyB;AAAA,kBAAA,EAAA,GAdPd,CAerB,IAGGW,EAAM,IAAI,CAACZ,MAChB,gBAAAE;AAAA,oBAACY;AAAAA,oBAAA;AAAA,sBAEC,OAAOd,EAAO;AAAA,sBACd,UAAUA,GAAQ;AAAA,sBAClB,MAAMA,GAAQ;AAAA,sBACd,WAAW,CAAC,CAACvB;AAAA,sBAEZ,UAAAA,IAAYA,EAAUuB,CAAM,IAAIA,EAAO;AAAA,oBAAA;AAAA,oBANnCA,EAAO;AAAA,kBAAA,CAQf,CACF,EAAA,CACH;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA;AAAA;AAAA,YApHF,gBAAAG,EAAAa,GAAA,EACE,UAAA;AAAA,cAAA,gBAAAd;AAAA,gBAACe;AAAA,gBAAA;AAAA,kBACC,OAAOtC,KAASY;AAAA,kBAChB,SAAAf;AAAA,kBACA,aAAaD;AAAA,kBACb,WACE,OAAOU,KAAW,WACdA,EAAO,eACP;AAAA,kBAEN,UAAUQ;AAAA,kBACV,WAAAnB;AAAA,kBACA,UAAAc;AAAA,kBACA,IAAIE;AAAA,kBACJ,WAAWc;AAAA,oBACT;AAAA,oBACA;AAAA,sBACE,aAAahC,KAAgBD,MAAS;AAAA,oBAAA;AAAA;AAAA,kBACxC;AAAA,kBAGF,MAAM0B;AAAA,kBACN,OAAA3B;AAAA,kBACA,mBAAmBkC,EAAG,cAAc;AAAA,oBAClC,sBAAsBhC,KAAgBD,MAAS;AAAA,kBAAA,CAChD;AAAA,kBACD,YAAY,CAAC,CAACc;AAAA,kBACd,WAAAR;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEDL,KACC,gBAAA8B;AAAA,gBAACQ;AAAA,gBAAA;AAAA,kBACC,SAASpB;AAAA,kBACT,MAAAnB;AAAA,kBACA,aAAAE;AAAA,kBACA,aAAa,CAAC,EAAEM,KAASY;AAAA,kBACzB,WAAU;AAAA,kBAET,UAAAvB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH,EAAA,CAEJ;AAAA,aA+EJ;AAAA,UAECC,KACC,gBAAAiC,EAAC,KAAA,EAAE,WAAWE,EAAG,WAAWlC,IAAQ0B,EAAiB1B,CAAK,IAAI,EAAE,GAC7D,UAAAD,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,EAEJ;AACF;AAEAJ,EAAO,cAAc;"}
@@ -0,0 +1,7 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { Separator as o } from "@dsui/ui/components/separator";
3
+ const p = (r) => /* @__PURE__ */ a(o, { ...r });
4
+ export {
5
+ p as default
6
+ };
7
+ //# sourceMappingURL=Separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Separator.js","sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import {\n Separator as SSeparator,\n type SeparatorProps,\n} from \"@dsui/ui/components/separator\";\n\nconst Separator = (props: SeparatorProps) => {\n return <SSeparator {...props} />;\n};\n\nexport default Separator;\nexport type { SeparatorProps };\n"],"names":["Separator","props","jsx","SSeparator"],"mappings":";;AAKA,MAAMA,IAAY,CAACC,MACV,gBAAAC,EAACC,GAAA,EAAY,GAAGF,EAAA,CAAO;"}
@@ -0,0 +1,141 @@
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import I, { useMemo as w } from "react";
3
+ import { SheetHeader as K, SheetTitle as V, SheetDescription as $, SheetFooter as q, Sheet as G, SheetTrigger as J, SheetContent as L } from "@dsui/ui/components/sheet";
4
+ import { SheetClose as fe } from "@dsui/ui/components/sheet";
5
+ import { Drawer as P, DrawerTrigger as Q, DrawerContent as U, DrawerHeader as W, DrawerTitle as X, DrawerDescription as Y, DrawerFooter as Z } from "@dsui/ui/components/drawer";
6
+ import { DrawerClose as xe } from "@dsui/ui/components/drawer";
7
+ import { cn as s } from "@dsui/ui/lib/utils";
8
+ import { ScrollArea as T } from "@dsui/ui/components/scroll-area";
9
+ import { animationClass as ee } from "../../utils/animations.js";
10
+ import { isMobile as se } from "react-device-detect";
11
+ const j = (f, o) => {
12
+ const t = o === "top" || o === "bottom";
13
+ return {
14
+ sm: t ? "max-h-[20vh]!" : "sm:max-w-sm",
15
+ md: t ? "max-h-[40vh]!" : "sm:max-w-md",
16
+ lg: t ? "max-h-[60vh]!" : "sm:max-w-lg",
17
+ xl: t ? "max-h-[80vh]!" : "sm:max-w-xl",
18
+ full: t ? "max-h-full!" : "sm:max-w-full"
19
+ }[f];
20
+ }, te = I.forwardRef((f, o) => {
21
+ const {
22
+ open: t,
23
+ onOpenChange: p,
24
+ title: a,
25
+ description: r,
26
+ children: c,
27
+ trigger: i,
28
+ footer: n,
29
+ side: D = "right",
30
+ closeOnEsc: F = !0,
31
+ closeOnOutside: R = !0,
32
+ showCloseButton: k = !0,
33
+ autoDrawerOnMobile: E = !0,
34
+ size: g = "md",
35
+ stickyHeader: h = !1,
36
+ stickyFooter: d = !1,
37
+ autoHeight: _ = !0,
38
+ animation: x,
39
+ className: u,
40
+ contentClassName: v,
41
+ headerClassName: y,
42
+ titleClassName: N,
43
+ descriptionClassName: C,
44
+ footerClassName: S,
45
+ overlayClassName: A
46
+ } = f, b = w(() => x ? ee(x) : { className: "" }, [x]), B = s(
47
+ // Remove default padding and gap to allow custom header/footer
48
+ "!p-0 !gap-0 flex flex-col",
49
+ j(g, D),
50
+ b.className,
51
+ u
52
+ ), O = s("px-6 pt-6 text-left", y), M = s(
53
+ "px-6 pb-6 flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
54
+ S
55
+ ), z = w(() => a || r ? /* @__PURE__ */ l(
56
+ K,
57
+ {
58
+ className: s("py-4", { "border-b": h }, O),
59
+ children: [
60
+ a && /* @__PURE__ */ e(V, { className: N, children: a }),
61
+ r && /* @__PURE__ */ e($, { className: C, children: r })
62
+ ]
63
+ }
64
+ ) : null, [
65
+ a,
66
+ r,
67
+ O,
68
+ N,
69
+ C,
70
+ h
71
+ ]), H = w(() => n ? /* @__PURE__ */ e(
72
+ q,
73
+ {
74
+ className: s("py-4", { "border-t": d }, M),
75
+ children: n
76
+ }
77
+ ) : null, [n, M, d]);
78
+ if (se && E) {
79
+ const m = s(
80
+ "flex flex-col",
81
+ b.className,
82
+ u
83
+ );
84
+ return /* @__PURE__ */ l(P, { open: t, onOpenChange: p, direction: "bottom", children: [
85
+ i && /* @__PURE__ */ e(Q, { asChild: !0, children: i }),
86
+ /* @__PURE__ */ l(
87
+ U,
88
+ {
89
+ ref: o,
90
+ className: s(
91
+ m,
92
+ _ ? "" : j(g, "bottom")
93
+ ),
94
+ children: [
95
+ (a || r) && /* @__PURE__ */ l(W, { className: y, children: [
96
+ a && /* @__PURE__ */ e(X, { className: N, children: a }),
97
+ r && /* @__PURE__ */ e(Y, { className: C, children: r })
98
+ ] }),
99
+ /* @__PURE__ */ e(T, { className: s("flex flex-col overflow-hidden"), children: c && /* @__PURE__ */ e("div", { className: s("px-4 py-2", v), children: c }) }),
100
+ n && /* @__PURE__ */ e(Z, { className: S, children: n })
101
+ ]
102
+ }
103
+ )
104
+ ] });
105
+ }
106
+ return /* @__PURE__ */ l(G, { open: t, onOpenChange: p, children: [
107
+ i && /* @__PURE__ */ e(J, { asChild: !0, children: i }),
108
+ /* @__PURE__ */ l(
109
+ L,
110
+ {
111
+ ref: o,
112
+ side: D,
113
+ className: s(u, B),
114
+ onEscapeKeyDown: (m) => !F && m.preventDefault(),
115
+ onInteractOutside: (m) => !R && m.preventDefault(),
116
+ overlayClassName: s(A),
117
+ children: [
118
+ !k && /* @__PURE__ */ e("style", { children: `
119
+ [data-slot="sheet-content"] > [data-slot="sheet-close"] {
120
+ display: none;
121
+ }
122
+ ` }),
123
+ h && z,
124
+ /* @__PURE__ */ l(T, { className: "flex max-h-full flex-col overflow-hidden", children: [
125
+ !h && z,
126
+ c && /* @__PURE__ */ e("div", { className: s("px-6 py-4", v), children: c }),
127
+ !d && H
128
+ ] }),
129
+ d && H
130
+ ]
131
+ }
132
+ )
133
+ ] });
134
+ });
135
+ te.displayName = "Sheet";
136
+ export {
137
+ xe as DrawerClose,
138
+ fe as SheetClose,
139
+ te as default
140
+ };
141
+ //# sourceMappingURL=Sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet.js","sources":["../../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n Sheet as SSheet,\n SheetContent as SSheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n SheetClose,\n} from \"@dsui/ui/components/sheet\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@dsui/ui/components/drawer\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { ScrollArea } from \"@dsui/ui/components/scroll-area\";\nimport type { BasicAnimation } from \"@/types/variables\";\nimport { animationClass } from \"@/utils/animations\";\nimport { isMobile } from \"react-device-detect\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\nexport type SheetSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface SheetProps {\n // Core props\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n // Content\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Behavior\n side?: SheetSide;\n closeOnEsc?: boolean;\n closeOnOutside?: boolean;\n showCloseButton?: boolean;\n autoDrawerOnMobile?: boolean;\n\n // Layout\n size?: SheetSize;\n stickyHeader?: boolean;\n stickyFooter?: boolean;\n autoHeight?: boolean;\n\n // Animation\n animation?: BasicAnimation;\n\n // Styling\n className?: string;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n overlayClassName?: string;\n}\n\nconst getSizeClasses = (size: SheetSize, side: SheetSide): string => {\n const isVertical = side === \"top\" || side === \"bottom\";\n const sizeMap: Record<SheetSize, string> = {\n sm: isVertical ? \"max-h-[20vh]!\" : \"sm:max-w-sm\",\n md: isVertical ? \"max-h-[40vh]!\" : \"sm:max-w-md\",\n lg: isVertical ? \"max-h-[60vh]!\" : \"sm:max-w-lg\",\n xl: isVertical ? \"max-h-[80vh]!\" : \"sm:max-w-xl\",\n full: isVertical ? \"max-h-full!\" : \"sm:max-w-full\",\n };\n return sizeMap[size];\n};\n\nconst Sheet = React.forwardRef<HTMLDivElement, SheetProps>((props, ref) => {\n const {\n open,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n footer,\n side = \"right\",\n closeOnEsc = true,\n closeOnOutside = true,\n showCloseButton = true,\n autoDrawerOnMobile = true,\n size = \"md\",\n stickyHeader = false,\n stickyFooter = false,\n autoHeight = true,\n animation,\n className,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n overlayClassName,\n } = props;\n\n const animationResult = useMemo(() => {\n return animation ? animationClass(animation) : { className: \"\" };\n }, [animation]);\n\n const contentClasses = cn(\n // Remove default padding and gap to allow custom header/footer\n \"!p-0 !gap-0 flex flex-col\",\n getSizeClasses(size, side),\n animationResult.className,\n className,\n );\n\n const headerClasses = cn(\"px-6 pt-6 text-left\", headerClassName);\n\n const footerClasses = cn(\n \"px-6 pb-6 flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n footerClassName,\n );\n\n const headerComponents = useMemo(() => {\n return title || description ? (\n <SheetHeader\n className={cn(\"py-4\", { \"border-b\": stickyHeader }, headerClasses)}\n >\n {title && <SheetTitle className={titleClassName}>{title}</SheetTitle>}\n {description && (\n <SheetDescription className={descriptionClassName}>\n {description}\n </SheetDescription>\n )}\n </SheetHeader>\n ) : null;\n }, [\n title,\n description,\n headerClasses,\n titleClassName,\n descriptionClassName,\n stickyHeader,\n ]);\n\n const footerComponents = useMemo(() => {\n return footer ? (\n <SheetFooter\n className={cn(\"py-4\", { \"border-t\": stickyFooter }, footerClasses)}\n >\n {footer}\n </SheetFooter>\n ) : null;\n }, [footer, footerClasses, stickyFooter]);\n\n // Mobile: use drawer with bottom direction if enabled\n if (isMobile && autoDrawerOnMobile) {\n const drawerContentClasses = cn(\n \"flex flex-col\",\n animationResult.className,\n className,\n );\n\n return (\n <Drawer open={open} onOpenChange={onOpenChange} direction=\"bottom\">\n {trigger && <DrawerTrigger asChild>{trigger}</DrawerTrigger>}\n <DrawerContent\n ref={ref}\n className={cn(\n drawerContentClasses,\n autoHeight ? \"\" : getSizeClasses(size, \"bottom\"),\n )}\n >\n {(title || description) && (\n <DrawerHeader className={headerClassName}>\n {title && (\n <DrawerTitle className={titleClassName}>{title}</DrawerTitle>\n )}\n {description && (\n <DrawerDescription className={descriptionClassName}>\n {description}\n </DrawerDescription>\n )}\n </DrawerHeader>\n )}\n\n <ScrollArea className={cn(\"flex flex-col overflow-hidden\")}>\n {children && (\n <div className={cn(\"px-4 py-2\", contentClassName)}>\n {children}\n </div>\n )}\n </ScrollArea>\n\n {footer && (\n <DrawerFooter className={footerClassName}>{footer}</DrawerFooter>\n )}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // Desktop: use sheet with original behavior\n return (\n <SSheet open={open} onOpenChange={onOpenChange}>\n {trigger && <SheetTrigger asChild>{trigger}</SheetTrigger>}\n <SSheetContent\n ref={ref}\n side={side}\n className={cn(className, contentClasses)}\n onEscapeKeyDown={(e) => !closeOnEsc && e.preventDefault()}\n onInteractOutside={(e) => !closeOnOutside && e.preventDefault()}\n overlayClassName={cn(overlayClassName)}\n >\n {/* Hide default close button if showCloseButton is false */}\n {!showCloseButton && (\n <style>{`\n [data-slot=\"sheet-content\"] > [data-slot=\"sheet-close\"] {\n display: none;\n }\n `}</style>\n )}\n\n {stickyHeader && headerComponents}\n\n <ScrollArea className=\"flex max-h-full flex-col overflow-hidden\">\n {!stickyHeader && headerComponents}\n {children && (\n <div className={cn(\"px-6 py-4\", contentClassName)}>{children}</div>\n )}\n {!stickyFooter && footerComponents}\n </ScrollArea>\n\n {stickyFooter && footerComponents}\n </SSheetContent>\n </SSheet>\n );\n});\n\nSheet.displayName = \"Sheet\";\n\nexport { SheetClose, DrawerClose };\nexport default Sheet;\n"],"names":["getSizeClasses","size","side","isVertical","Sheet","React","props","ref","open","onOpenChange","title","description","children","trigger","footer","closeOnEsc","closeOnOutside","showCloseButton","autoDrawerOnMobile","stickyHeader","stickyFooter","autoHeight","animation","className","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","overlayClassName","animationResult","useMemo","animationClass","contentClasses","cn","headerClasses","footerClasses","headerComponents","jsxs","SheetHeader","jsx","SheetTitle","SheetDescription","footerComponents","SheetFooter","isMobile","drawerContentClasses","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","ScrollArea","DrawerFooter","SSheet","SheetTrigger","SSheetContent","e"],"mappings":";;;;;;;;;;AAoEA,MAAMA,IAAiB,CAACC,GAAiBC,MAA4B;AACnE,QAAMC,IAAaD,MAAS,SAASA,MAAS;AAQ9C,SAP2C;AAAA,IACzC,IAAIC,IAAa,kBAAkB;AAAA,IACnC,IAAIA,IAAa,kBAAkB;AAAA,IACnC,IAAIA,IAAa,kBAAkB;AAAA,IACnC,IAAIA,IAAa,kBAAkB;AAAA,IACnC,MAAMA,IAAa,gBAAgB;AAAA,EAAA,EAEtBF,CAAI;AACrB,GAEMG,KAAQC,EAAM,WAAuC,CAACC,GAAOC,MAAQ;AACzE,QAAM;AAAA,IACJ,MAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAZ,IAAO;AAAA,IACP,YAAAa,IAAa;AAAA,IACb,gBAAAC,IAAiB;AAAA,IACjB,iBAAAC,IAAkB;AAAA,IAClB,oBAAAC,IAAqB;AAAA,IACrB,MAAAjB,IAAO;AAAA,IACP,cAAAkB,IAAe;AAAA,IACf,cAAAC,IAAe;AAAA,IACf,YAAAC,IAAa;AAAA,IACb,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACEvB,GAEEwB,IAAkBC,EAAQ,MACvBT,IAAYU,GAAeV,CAAS,IAAI,EAAE,WAAW,GAAA,GAC3D,CAACA,CAAS,CAAC,GAERW,IAAiBC;AAAA;AAAA,IAErB;AAAA,IACAlC,EAAeC,GAAMC,CAAI;AAAA,IACzB4B,EAAgB;AAAA,IAChBP;AAAA,EAAA,GAGIY,IAAgBD,EAAG,uBAAuBT,CAAe,GAEzDW,IAAgBF;AAAA,IACpB;AAAA,IACAN;AAAA,EAAA,GAGIS,IAAmBN,EAAQ,MACxBrB,KAASC,IACd,gBAAA2B;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWL,EAAG,QAAQ,EAAE,YAAYf,EAAA,GAAgBgB,CAAa;AAAA,MAEhE,UAAA;AAAA,QAAAzB,KAAS,gBAAA8B,EAACC,GAAA,EAAW,WAAWf,GAAiB,UAAAhB,GAAM;AAAA,QACvDC,KACC,gBAAA6B,EAACE,GAAA,EAAiB,WAAWf,GAC1B,UAAAhB,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAGF,MACH;AAAA,IACDD;AAAA,IACAC;AAAA,IACAwB;AAAA,IACAT;AAAA,IACAC;AAAA,IACAR;AAAA,EAAA,CACD,GAEKwB,IAAmBZ,EAAQ,MACxBjB,IACL,gBAAA0B;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAWV,EAAG,QAAQ,EAAE,YAAYd,EAAA,GAAgBgB,CAAa;AAAA,MAEhE,UAAAtB;AAAA,IAAA;AAAA,EAAA,IAED,MACH,CAACA,GAAQsB,GAAehB,CAAY,CAAC;AAGxC,MAAIyB,MAAY3B,GAAoB;AAClC,UAAM4B,IAAuBZ;AAAA,MAC3B;AAAA,MACAJ,EAAgB;AAAA,MAChBP;AAAA,IAAA;AAGF,WACE,gBAAAe,EAACS,GAAA,EAAO,MAAAvC,GAAY,cAAAC,GAA4B,WAAU,UACvD,UAAA;AAAA,MAAAI,KAAW,gBAAA2B,EAACQ,GAAA,EAAc,SAAO,IAAE,UAAAnC,GAAQ;AAAA,MAC5C,gBAAAyB;AAAA,QAACW;AAAA,QAAA;AAAA,UACC,KAAA1C;AAAA,UACA,WAAW2B;AAAA,YACTY;AAAA,YACAzB,IAAa,KAAKrB,EAAeC,GAAM,QAAQ;AAAA,UAAA;AAAA,UAG/C,UAAA;AAAA,aAAAS,KAASC,MACT,gBAAA2B,EAACY,GAAA,EAAa,WAAWzB,GACtB,UAAA;AAAA,cAAAf,KACC,gBAAA8B,EAACW,GAAA,EAAY,WAAWzB,GAAiB,UAAAhB,GAAM;AAAA,cAEhDC,KACC,gBAAA6B,EAACY,GAAA,EAAkB,WAAWzB,GAC3B,UAAAhB,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YAGF,gBAAA6B,EAACa,GAAA,EAAW,WAAWnB,EAAG,+BAA+B,GACtD,UAAAtB,KACC,gBAAA4B,EAAC,OAAA,EAAI,WAAWN,EAAG,aAAaV,CAAgB,GAC7C,UAAAZ,GACH,GAEJ;AAAA,YAECE,KACC,gBAAA0B,EAACc,GAAA,EAAa,WAAW1B,GAAkB,UAAAd,EAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEtD,GACF;AAAA,EAEJ;AAGA,SACE,gBAAAwB,EAACiB,GAAA,EAAO,MAAA/C,GAAY,cAAAC,GACjB,UAAA;AAAA,IAAAI,KAAW,gBAAA2B,EAACgB,GAAA,EAAa,SAAO,IAAE,UAAA3C,GAAQ;AAAA,IAC3C,gBAAAyB;AAAA,MAACmB;AAAAA,MAAA;AAAA,QACC,KAAAlD;AAAA,QACA,MAAAL;AAAA,QACA,WAAWgC,EAAGX,GAAWU,CAAc;AAAA,QACvC,iBAAiB,CAACyB,MAAM,CAAC3C,KAAc2C,EAAE,eAAA;AAAA,QACzC,mBAAmB,CAACA,MAAM,CAAC1C,KAAkB0C,EAAE,eAAA;AAAA,QAC/C,kBAAkBxB,EAAGL,CAAgB;AAAA,QAGpC,UAAA;AAAA,UAAA,CAACZ,uBACC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA,aAIN;AAAA,UAGHE,KAAgBkB;AAAA,UAEjB,gBAAAC,EAACe,GAAA,EAAW,WAAU,4CACnB,UAAA;AAAA,YAAA,CAAClC,KAAgBkB;AAAA,YACjBzB,uBACE,OAAA,EAAI,WAAWsB,EAAG,aAAaV,CAAgB,GAAI,UAAAZ,GAAS;AAAA,YAE9D,CAACQ,KAAgBuB;AAAA,UAAA,GACpB;AAAA,UAECvB,KAAgBuB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GACF;AAEJ,CAAC;AAEDvC,GAAM,cAAc;"}