@sth87/shadcn-design-system 0.0.35 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/README.md +20 -2
  2. package/dist/AI_CONTEXT.md +212 -214
  3. package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
  4. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
  6. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  7. package/dist/cjs/components/Badge/Badge.cjs +1 -1
  8. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  11. package/dist/cjs/components/Button/Button.cjs +1 -1
  12. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  13. package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
  14. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  15. package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
  16. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  17. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  19. package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
  20. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
  21. package/dist/cjs/components/Command/Command.cjs +1 -1
  22. package/dist/cjs/components/Command/Command.cjs.map +1 -1
  23. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
  24. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
  25. package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
  26. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
  27. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  28. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  29. package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
  30. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
  31. package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
  32. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
  34. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  35. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
  36. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  37. package/dist/cjs/components/FloatLabel.cjs +1 -1
  38. package/dist/cjs/components/FloatLabel.cjs.map +1 -1
  39. package/dist/cjs/components/Glass/Glass.cjs +1 -1
  40. package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
  41. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
  42. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
  43. package/dist/cjs/components/Input/Input.cjs +1 -1
  44. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  45. package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
  46. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
  47. package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
  48. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
  49. package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
  50. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
  51. package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
  52. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  53. package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
  54. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
  55. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  56. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  57. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  58. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  59. package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
  60. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
  61. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
  62. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  63. package/dist/cjs/components/Select/Select.cjs +1 -1
  64. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  65. package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
  66. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  67. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  68. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  69. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  70. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  71. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  72. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  73. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  74. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  75. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
  76. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  77. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
  78. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  79. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
  80. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  81. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  82. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  83. package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
  84. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
  85. package/dist/cjs/components/Table/data-table.cjs +1 -1
  86. package/dist/cjs/components/Table/data-table.cjs.map +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
  88. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  89. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  90. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  91. package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
  92. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  93. package/dist/cjs/components/TimeGridView.cjs +1 -1
  94. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  95. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  96. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  97. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  98. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  99. package/dist/cjs/components/Tour/Tour.cjs +1 -1
  100. package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
  101. package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
  102. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
  103. package/dist/cjs/components/Upload/Upload.cjs +3 -3
  104. package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
  105. package/dist/cjs/components/WheelColumn.cjs +1 -1
  106. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  107. package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
  108. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
  109. package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
  110. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
  111. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
  112. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
  113. package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
  114. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
  115. package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
  116. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
  117. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
  118. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
  119. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
  120. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
  121. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
  122. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
  123. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
  124. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
  125. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
  126. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
  127. package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
  128. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
  129. package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
  130. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
  131. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +1 -0
  132. package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
  133. package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
  134. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
  135. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
  136. package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
  137. package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
  138. package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
  139. package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
  140. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
  141. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
  142. package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
  143. package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
  144. package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
  145. package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
  146. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  147. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  148. package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
  149. package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
  150. package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
  151. package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
  152. package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
  153. package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
  154. package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
  155. package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
  156. package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
  157. package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
  158. package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
  159. package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
  160. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
  161. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
  162. package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
  163. package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
  164. package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
  165. package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
  166. package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
  167. package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
  168. package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
  169. package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
  170. package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
  171. package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
  172. package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
  173. package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
  174. package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
  175. package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
  176. package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
  177. package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
  178. package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
  179. package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
  180. package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
  181. package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
  182. package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
  183. package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
  184. package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
  185. package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
  186. package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
  187. package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
  188. package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
  189. package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
  190. package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
  191. package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
  192. package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
  193. package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
  194. package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
  195. package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
  196. package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
  197. package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
  198. package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
  199. package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
  200. package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
  201. package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
  202. package/dist/cjs/styles/index.css +1 -1
  203. package/dist/cjs/utils/animations.cjs +1 -1
  204. package/dist/cjs/utils/animations.cjs.map +1 -1
  205. package/dist/cjs/utils/css.cjs +1 -1
  206. package/dist/cjs/utils/css.cjs.map +1 -1
  207. package/dist/cjs/utils/parsers.cjs +1 -1
  208. package/dist/cjs/utils/parsers.cjs.map +1 -1
  209. package/dist/esm/components/Accordion/Accordion.js +60 -60
  210. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  211. package/dist/esm/components/Avatar/Avatar.js +40 -40
  212. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  213. package/dist/esm/components/Badge/Badge.js +1 -1
  214. package/dist/esm/components/Badge/Badge.js.map +1 -1
  215. package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
  216. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  217. package/dist/esm/components/Button/Button.js +9 -9
  218. package/dist/esm/components/Button/Button.js.map +1 -1
  219. package/dist/esm/components/Calendar/Calendar.js +4 -4
  220. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  221. package/dist/esm/components/Carousel/Carousel.js +165 -165
  222. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  223. package/dist/esm/components/Checkbox/Checkbox.js +26 -26
  224. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  225. package/dist/esm/components/Collapsible/Collapsible.js +43 -43
  226. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
  227. package/dist/esm/components/Command/Command.js +28 -28
  228. package/dist/esm/components/Command/Command.js.map +1 -1
  229. package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
  230. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
  231. package/dist/esm/components/Cropper/Cropper.js +132 -132
  232. package/dist/esm/components/Cropper/Cropper.js.map +1 -1
  233. package/dist/esm/components/DatePicker/DatePicker.js +75 -75
  234. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  235. package/dist/esm/components/DatePicker/RangePicker.js +136 -136
  236. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
  237. package/dist/esm/components/DatePicker/TimePicker.js +150 -150
  238. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
  239. package/dist/esm/components/Dialog/Dialog.js +114 -114
  240. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  241. package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
  242. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  243. package/dist/esm/components/FloatLabel.js +44 -44
  244. package/dist/esm/components/FloatLabel.js.map +1 -1
  245. package/dist/esm/components/Glass/Glass.js +15 -15
  246. package/dist/esm/components/Glass/Glass.js.map +1 -1
  247. package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
  248. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
  249. package/dist/esm/components/Input/Input.js +104 -104
  250. package/dist/esm/components/Input/Input.js.map +1 -1
  251. package/dist/esm/components/InputOTP/InputOTP.js +16 -16
  252. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
  253. package/dist/esm/components/Interactive/CursorFollow.js +49 -49
  254. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
  255. package/dist/esm/components/Marquee/Marquee.js +130 -130
  256. package/dist/esm/components/Marquee/Marquee.js.map +1 -1
  257. package/dist/esm/components/Pagination/Pagination.js +68 -68
  258. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  259. package/dist/esm/components/QrCode/QrCode.js +37 -37
  260. package/dist/esm/components/QrCode/QrCode.js.map +1 -1
  261. package/dist/esm/components/Radio/Radio.js +16 -16
  262. package/dist/esm/components/Radio/Radio.js.map +1 -1
  263. package/dist/esm/components/Rate/Rate.js +62 -62
  264. package/dist/esm/components/Rate/Rate.js.map +1 -1
  265. package/dist/esm/components/Resizable/Resizable.js +6 -6
  266. package/dist/esm/components/Resizable/Resizable.js.map +1 -1
  267. package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
  268. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  269. package/dist/esm/components/Select/Select.js +64 -64
  270. package/dist/esm/components/Select/Select.js.map +1 -1
  271. package/dist/esm/components/Sheet/Sheet.js +21 -21
  272. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  273. package/dist/esm/components/Slider/Slider.js +54 -54
  274. package/dist/esm/components/Slider/Slider.js.map +1 -1
  275. package/dist/esm/components/Stepper/Stepper.js +198 -198
  276. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  277. package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
  278. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  279. package/dist/esm/components/Switch/Switch.js +38 -38
  280. package/dist/esm/components/Switch/Switch.js.map +1 -1
  281. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
  282. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  283. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
  284. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  285. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
  286. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  287. package/dist/esm/components/Table/data-table-column-header.js +18 -18
  288. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  289. package/dist/esm/components/Table/data-table-pagination.js +21 -21
  290. package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
  291. package/dist/esm/components/Table/data-table.js +18 -18
  292. package/dist/esm/components/Table/data-table.js.map +1 -1
  293. package/dist/esm/components/Tabs/Tabs.js +242 -242
  294. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  295. package/dist/esm/components/Tabs/classes.js +51 -51
  296. package/dist/esm/components/Tabs/classes.js.map +1 -1
  297. package/dist/esm/components/Textarea/Textarea.js +49 -49
  298. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  299. package/dist/esm/components/TimeGridView.js +12 -12
  300. package/dist/esm/components/TimeGridView.js.map +1 -1
  301. package/dist/esm/components/Toast/Toast.js +45 -45
  302. package/dist/esm/components/Toast/Toast.js.map +1 -1
  303. package/dist/esm/components/Tooltip/Tooltip.js +19 -19
  304. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  305. package/dist/esm/components/Tour/Tour.js +11 -11
  306. package/dist/esm/components/Tour/Tour.js.map +1 -1
  307. package/dist/esm/components/Tour/TourWrapper.js +15 -15
  308. package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
  309. package/dist/esm/components/Upload/Upload.js +405 -405
  310. package/dist/esm/components/Upload/Upload.js.map +1 -1
  311. package/dist/esm/components/WheelColumn.js +47 -47
  312. package/dist/esm/components/WheelColumn.js.map +1 -1
  313. package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
  314. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
  315. package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
  316. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
  317. package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
  318. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
  319. package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
  320. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
  321. package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
  322. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
  323. package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
  324. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
  325. package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
  326. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
  327. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
  328. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
  329. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
  330. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
  331. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
  332. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
  333. package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
  334. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
  335. package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
  336. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
  337. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +1 -0
  338. package/dist/esm/packages/ui/src/components/accordion.js +31 -31
  339. package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
  340. package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
  341. package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
  342. package/dist/esm/packages/ui/src/components/avatar.js +20 -20
  343. package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
  344. package/dist/esm/packages/ui/src/components/badge.js +53 -53
  345. package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
  346. package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
  347. package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
  348. package/dist/esm/packages/ui/src/components/button-group.js +31 -31
  349. package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
  350. package/dist/esm/packages/ui/src/components/button.js +90 -90
  351. package/dist/esm/packages/ui/src/components/button.js.map +1 -1
  352. package/dist/esm/packages/ui/src/components/calendar.js +94 -94
  353. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  354. package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
  355. package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
  356. package/dist/esm/packages/ui/src/components/combobox.js +64 -64
  357. package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
  358. package/dist/esm/packages/ui/src/components/command.js +77 -77
  359. package/dist/esm/packages/ui/src/components/command.js.map +1 -1
  360. package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
  361. package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
  362. package/dist/esm/packages/ui/src/components/dialog.js +54 -54
  363. package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
  364. package/dist/esm/packages/ui/src/components/drawer.js +39 -39
  365. package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
  366. package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
  367. package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
  368. package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
  369. package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
  370. package/dist/esm/packages/ui/src/components/input.js +19 -19
  371. package/dist/esm/packages/ui/src/components/input.js.map +1 -1
  372. package/dist/esm/packages/ui/src/components/label.js +9 -9
  373. package/dist/esm/packages/ui/src/components/label.js.map +1 -1
  374. package/dist/esm/packages/ui/src/components/pagination.js +26 -26
  375. package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
  376. package/dist/esm/packages/ui/src/components/popover.js +13 -13
  377. package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
  378. package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
  379. package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
  380. package/dist/esm/packages/ui/src/components/resizable.js +18 -18
  381. package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
  382. package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
  383. package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
  384. package/dist/esm/packages/ui/src/components/select.js +119 -119
  385. package/dist/esm/packages/ui/src/components/select.js.map +1 -1
  386. package/dist/esm/packages/ui/src/components/separator.js +86 -86
  387. package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
  388. package/dist/esm/packages/ui/src/components/sheet.js +50 -50
  389. package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
  390. package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
  391. package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
  392. package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
  393. package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
  394. package/dist/esm/packages/ui/src/components/switch.js +57 -57
  395. package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
  396. package/dist/esm/packages/ui/src/components/table.js +17 -17
  397. package/dist/esm/packages/ui/src/components/table.js.map +1 -1
  398. package/dist/esm/packages/ui/src/components/tabs.js +33 -33
  399. package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
  400. package/dist/esm/packages/ui/src/components/textarea.js +17 -17
  401. package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
  402. package/dist/esm/packages/ui/src/components/toggle.js +36 -36
  403. package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
  404. package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
  405. package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
  406. package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
  407. package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
  408. package/dist/esm/styles/index.css +1 -1
  409. package/dist/esm/utils/animations.js +55 -55
  410. package/dist/esm/utils/animations.js.map +1 -1
  411. package/dist/esm/utils/css.js +7 -7
  412. package/dist/esm/utils/css.js.map +1 -1
  413. package/dist/esm/utils/parsers.js +1 -1
  414. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
  415. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
  416. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
  417. package/package.json +1 -1
  418. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +0 -1
  419. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +0 -1
  420. /package/dist/cjs/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.cjs +0 -0
  421. /package/dist/esm/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.js +0 -0
@@ -60,9 +60,9 @@ function be(o) {
60
60
  const {
61
61
  value: e,
62
62
  size: t = 200,
63
- level: s = "M",
63
+ level: n = "M",
64
64
  margin: i = 1,
65
- quality: n = 0.92,
65
+ quality: s = 0.92,
66
66
  backgroundColor: r = "#ffffff",
67
67
  foregroundColor: a = "#000000",
68
68
  onError: d,
@@ -97,9 +97,9 @@ function be(o) {
97
97
  }
98
98
  }), [P, x]), S = l.useMemo(
99
99
  () => ({
100
- errorCorrectionLevel: s,
100
+ errorCorrectionLevel: n,
101
101
  type: "image/png",
102
- quality: n,
102
+ quality: s,
103
103
  margin: i,
104
104
  color: {
105
105
  dark: a,
@@ -107,16 +107,16 @@ function be(o) {
107
107
  },
108
108
  width: t
109
109
  }),
110
- [s, i, a, r, t, n]
110
+ [n, i, a, r, t, s]
111
111
  ), q = l.useMemo(() => e ? JSON.stringify({
112
112
  value: e,
113
113
  size: t,
114
- level: s,
114
+ level: n,
115
115
  margin: i,
116
- quality: n,
116
+ quality: s,
117
117
  foregroundColor: a,
118
118
  backgroundColor: r
119
- }) : "", [e, s, i, a, r, t, n]), z = l.useCallback(
119
+ }) : "", [e, n, i, a, r, t, s]), z = l.useCallback(
120
120
  async (c) => {
121
121
  if (!e || !c) return;
122
122
  const C = p.getState();
@@ -161,13 +161,13 @@ function be(o) {
161
161
  () => ({
162
162
  value: e,
163
163
  size: t,
164
- level: s,
164
+ level: n,
165
165
  margin: i,
166
166
  backgroundColor: r,
167
167
  foregroundColor: a,
168
168
  canvasRef: k
169
169
  }),
170
- [e, t, r, a, s, i]
170
+ [e, t, r, a, n, i]
171
171
  );
172
172
  l.useLayoutEffect(() => {
173
173
  if (q) {
@@ -183,7 +183,7 @@ function be(o) {
183
183
  {
184
184
  "data-slot": "qr-code",
185
185
  ...b,
186
- className: w(Q, "relative flex flex-col items-center gap-2"),
186
+ className: w(Q, "ds:relative ds:flex ds:flex-col ds:items-center ds:gap-2"),
187
187
  style: {
188
188
  "--qr-code-size": `${t}px`,
189
189
  ...m
@@ -193,41 +193,41 @@ function be(o) {
193
193
  ) }) });
194
194
  }
195
195
  function D(o) {
196
- const { asChild: e, className: t, ref: s, ...i } = o, n = N(G), r = h((R) => R.generationKey), a = I(s, n.canvasRef);
196
+ const { asChild: e, className: t, ref: n, ...i } = o, s = N(G), r = h((R) => R.generationKey), a = I(n, s.canvasRef);
197
197
  return /* @__PURE__ */ v(
198
198
  e ? y : "canvas",
199
199
  {
200
200
  "data-slot": "qr-code-canvas",
201
201
  ...i,
202
202
  ref: a,
203
- width: n.size,
204
- height: n.size,
203
+ width: s.size,
204
+ height: s.size,
205
205
  className: w(
206
- "relative max-h-(--qr-code-size) max-w-(--qr-code-size)",
207
- !r && "invisible",
206
+ "ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)",
207
+ !r && "ds:invisible",
208
208
  t
209
209
  )
210
210
  }
211
211
  );
212
212
  }
213
213
  function Pe(o) {
214
- const { asChild: e, className: t, style: s, ...i } = o, n = N(K), r = h((d) => d.svgString);
214
+ const { asChild: e, className: t, style: n, ...i } = o, s = N(K), r = h((d) => d.svgString);
215
215
  return r ? /* @__PURE__ */ v(
216
216
  e ? y : "div",
217
217
  {
218
218
  "data-slot": "qr-code-svg",
219
219
  ...i,
220
220
  className: w(
221
- "relative max-h-(--qr-code-size) max-w-(--qr-code-size)",
221
+ "ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)",
222
222
  t
223
223
  ),
224
- style: { width: n.size, height: n.size, ...s },
224
+ style: { width: s.size, height: s.size, ...n },
225
225
  dangerouslySetInnerHTML: { __html: r }
226
226
  }
227
227
  ) : null;
228
228
  }
229
229
  function Ne(o) {
230
- const { alt: e = "QR Code", asChild: t, className: s, ...i } = o, n = N(_), r = h((d) => d.dataUrl);
230
+ const { alt: e = "QR Code", asChild: t, className: n, ...i } = o, s = N(_), r = h((d) => d.dataUrl);
231
231
  return r ? /* @__PURE__ */ v(
232
232
  t ? y : "img",
233
233
  {
@@ -235,11 +235,11 @@ function Ne(o) {
235
235
  ...i,
236
236
  src: r,
237
237
  alt: e,
238
- width: n.size,
239
- height: n.size,
238
+ width: s.size,
239
+ height: s.size,
240
240
  className: w(
241
- "relative max-h-(--qr-code-size) max-w-(--qr-code-size)",
242
- s
241
+ "ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)",
242
+ n
243
243
  )
244
244
  }
245
245
  ) : null;
@@ -248,9 +248,9 @@ function Qe(o) {
248
248
  const {
249
249
  filename: e = "qrcode",
250
250
  format: t = "png",
251
- asChild: s,
251
+ asChild: n,
252
252
  className: i,
253
- children: n,
253
+ children: s,
254
254
  ...r
255
255
  } = o, a = h((m) => m.dataUrl), d = h((m) => m.svgString), R = l.useCallback(
256
256
  (m) => {
@@ -268,46 +268,46 @@ function Qe(o) {
268
268
  [a, d, e, t, r.onClick]
269
269
  );
270
270
  return /* @__PURE__ */ v(
271
- s ? y : "button",
271
+ n ? y : "button",
272
272
  {
273
273
  type: "button",
274
274
  "data-slot": "qr-code-download",
275
275
  ...r,
276
- className: w("max-w-(--qr-code-size)", i),
276
+ className: w("ds:max-w-(--qr-code-size)", i),
277
277
  onClick: R,
278
- children: n ?? `Download ${t.toUpperCase()}`
278
+ children: s ?? `Download ${t.toUpperCase()}`
279
279
  }
280
280
  );
281
281
  }
282
282
  function ke(o) {
283
- const { asChild: e, className: t, ...s } = o;
283
+ const { asChild: e, className: t, ...n } = o;
284
284
  return /* @__PURE__ */ v(
285
285
  e ? y : "div",
286
286
  {
287
287
  "data-slot": "qr-code-overlay",
288
- ...s,
288
+ ...n,
289
289
  className: w(
290
- "-translate-x-1/2 -translate-y-1/2 absolute top-1/2 left-1/2 flex items-center justify-center rounded-sm bg-background",
290
+ "ds:-translate-x-1/2 ds:-translate-y-1/2 ds:absolute ds:top-1/2 ds:left-1/2 ds:flex ds:items-center ds:justify-center ds:rounded-sm ds:bg-background",
291
291
  t
292
292
  )
293
293
  }
294
294
  );
295
295
  }
296
296
  function qe(o) {
297
- const { asChild: e, className: t, style: s, ...i } = o, n = N($), r = h((m) => m.dataUrl), a = h((m) => m.svgString), d = h((m) => m.generationKey);
297
+ const { asChild: e, className: t, style: n, ...i } = o, s = N($), r = h((m) => m.dataUrl), a = h((m) => m.svgString), d = h((m) => m.generationKey);
298
298
  return r || a || d ? null : /* @__PURE__ */ v(
299
299
  e ? y : "div",
300
300
  {
301
301
  "data-slot": "qr-code-skeleton",
302
302
  ...i,
303
303
  className: w(
304
- "absolute max-h-(--qr-code-size) max-w-(--qr-code-size) animate-pulse bg-accent",
304
+ "ds:absolute ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size) ds:animate-pulse ds:bg-accent",
305
305
  t
306
306
  ),
307
307
  style: {
308
- width: n.size,
309
- height: n.size,
310
- ...s
308
+ width: s.size,
309
+ height: s.size,
310
+ ...n
311
311
  }
312
312
  }
313
313
  );
@@ -1 +1 @@
1
- {"version":3,"file":"QrCode.js","sources":["../../../../src/components/QrCode/QrCode.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn, Slot, useComposedRefs } from \"@dsui/ui/index\";\nimport * as React from \"react\";\n\nconst ROOT_NAME = \"QRCode\";\nconst CANVAS_NAME = \"QRCodeCanvas\";\nconst SVG_NAME = \"QRCodeSvg\";\nconst IMAGE_NAME = \"QRCodeImage\";\nconst SKELETON_NAME = \"QRCodeSkeleton\";\n\ntype QRCodeLevel = \"L\" | \"M\" | \"Q\" | \"H\";\n\ninterface QRCodeCanvasOpts {\n errorCorrectionLevel: QRCodeLevel;\n type?: \"image/png\" | \"image/jpeg\" | \"image/webp\";\n quality?: number;\n margin?: number;\n color?: {\n dark: string;\n light: string;\n };\n width?: number;\n rendererOpts?: {\n quality?: number;\n };\n}\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\ninterface StoreState {\n dataUrl: string | null;\n svgString: string | null;\n isGenerating: boolean;\n error: Error | null;\n generationKey: string;\n}\n\ninterface Store {\n subscribe: (callback: () => void) => () => void;\n getState: () => StoreState;\n setState: <K extends keyof StoreState>(key: K, value: StoreState[K]) => void;\n setStates: (updates: Partial<StoreState>) => void;\n notify: () => void;\n}\n\ninterface QRCodeContextValue {\n value: string;\n size: number;\n margin: number;\n level: QRCodeLevel;\n backgroundColor: string;\n foregroundColor: string;\n canvasRef: React.RefObject<HTMLCanvasElement | null>;\n}\n\nconst StoreContext = React.createContext<Store | null>(null);\n\nfunction useStore<T>(selector: (state: StoreState) => T): T {\n const store = React.useContext(StoreContext);\n if (!store) {\n throw new Error(`\\`useQRCode\\` must be used within \\`${ROOT_NAME}\\``);\n }\n\n const getSnapshot = React.useCallback(\n () => selector(store.getState()),\n [store, selector]\n );\n\n return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n}\n\nconst QRCodeContext = React.createContext<QRCodeContextValue | null>(null);\n\nfunction useQRCodeContext(consumerName: string) {\n const context = React.useContext(QRCodeContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface QRCodeRootProps extends Omit<React.ComponentProps<\"div\">, \"onError\"> {\n value: string;\n size?: number;\n level?: QRCodeLevel;\n margin?: number;\n quality?: number;\n backgroundColor?: string;\n foregroundColor?: string;\n onError?: (error: Error) => void;\n onGenerated?: () => void;\n asChild?: boolean;\n}\n\nfunction QRCodeRoot(props: QRCodeRootProps) {\n const {\n value,\n size = 200,\n level = \"M\",\n margin = 1,\n quality = 0.92,\n backgroundColor = \"#ffffff\",\n foregroundColor = \"#000000\",\n onError,\n onGenerated,\n className,\n style,\n asChild,\n ...rootProps\n } = props;\n\n const canvasRef = React.useRef<HTMLCanvasElement>(null);\n\n const listenersRef = useLazyRef(() => new Set<() => void>());\n const stateRef = useLazyRef<StoreState>(() => ({\n dataUrl: null,\n svgString: null,\n isGenerating: false,\n error: null,\n generationKey: \"\",\n }));\n\n const store = React.useMemo<Store>(() => {\n return {\n subscribe: (cb) => {\n listenersRef.current.add(cb);\n return () => listenersRef.current.delete(cb);\n },\n getState: () => stateRef.current,\n setState: (key, value) => {\n if (Object.is(stateRef.current[key], value)) return;\n stateRef.current[key] = value;\n store.notify();\n },\n setStates: (updates) => {\n let hasChanged = false;\n\n for (const key of Object.keys(updates) as Array<keyof StoreState>) {\n const value = updates[key];\n if (value !== undefined && !Object.is(stateRef.current[key], value)) {\n Object.assign(stateRef.current, { [key]: value });\n hasChanged = true;\n }\n }\n\n if (hasChanged) {\n store.notify();\n }\n },\n notify: () => {\n for (const cb of listenersRef.current) {\n cb();\n }\n },\n };\n }, [listenersRef, stateRef]);\n\n const canvasOpts = React.useMemo<QRCodeCanvasOpts>(\n () => ({\n errorCorrectionLevel: level,\n type: \"image/png\",\n quality,\n margin,\n color: {\n dark: foregroundColor,\n light: backgroundColor,\n },\n width: size,\n }),\n [level, margin, foregroundColor, backgroundColor, size, quality]\n );\n\n const generationKey = React.useMemo(() => {\n if (!value) return \"\";\n\n return JSON.stringify({\n value,\n size,\n level,\n margin,\n quality,\n foregroundColor,\n backgroundColor,\n });\n }, [value, level, margin, foregroundColor, backgroundColor, size, quality]);\n\n const onQRCodeGenerate = React.useCallback(\n async (targetGenerationKey: string) => {\n if (!value || !targetGenerationKey) return;\n\n const currentState = store.getState();\n if (\n currentState.isGenerating ||\n currentState.generationKey === targetGenerationKey\n )\n return;\n\n store.setStates({\n isGenerating: true,\n error: null,\n });\n\n try {\n const QRCode = (await import(\"qrcode\")).default;\n\n let dataUrl: string | null = null;\n\n try {\n dataUrl = await QRCode.toDataURL(value, canvasOpts);\n } catch {\n dataUrl = null;\n }\n\n if (canvasRef.current) {\n await QRCode.toCanvas(canvasRef.current, value, canvasOpts);\n }\n\n const svgString = await QRCode.toString(value, {\n errorCorrectionLevel: canvasOpts.errorCorrectionLevel,\n margin: canvasOpts.margin,\n color: canvasOpts.color,\n width: canvasOpts.width,\n type: \"svg\",\n });\n\n store.setStates({\n dataUrl,\n svgString,\n isGenerating: false,\n generationKey: targetGenerationKey,\n });\n\n onGenerated?.();\n } catch (error) {\n const parsedError =\n error instanceof Error\n ? error\n : new Error(\"Failed to generate QR code\");\n store.setStates({\n error: parsedError,\n isGenerating: false,\n });\n onError?.(parsedError);\n }\n },\n [value, canvasOpts, store, onError, onGenerated]\n );\n\n const contextValue = React.useMemo<QRCodeContextValue>(\n () => ({\n value,\n size,\n level,\n margin,\n backgroundColor,\n foregroundColor,\n canvasRef,\n }),\n [value, size, backgroundColor, foregroundColor, level, margin]\n );\n\n React.useLayoutEffect(() => {\n if (generationKey) {\n const rafId = requestAnimationFrame(() => {\n onQRCodeGenerate(generationKey);\n });\n\n return () => cancelAnimationFrame(rafId);\n }\n }, [generationKey, onQRCodeGenerate]);\n\n const RootPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StoreContext.Provider value={store}>\n <QRCodeContext.Provider value={contextValue}>\n <RootPrimitive\n data-slot=\"qr-code\"\n {...rootProps}\n className={cn(className, \"relative flex flex-col items-center gap-2\")}\n style={\n {\n \"--qr-code-size\": `${size}px`,\n ...style,\n } as React.CSSProperties\n }\n >\n {rootProps?.children ? rootProps.children : <QRCodeCanvas />}\n </RootPrimitive>\n </QRCodeContext.Provider>\n </StoreContext.Provider>\n );\n}\n\ninterface QRCodeCanvasProps extends React.ComponentProps<\"canvas\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeCanvas(props: QRCodeCanvasProps) {\n const { asChild, className, ref, ...canvasProps } = props;\n\n const context = useQRCodeContext(CANVAS_NAME);\n const generationKey = useStore((state) => state.generationKey);\n\n const composedRef = useComposedRefs(ref, context.canvasRef);\n\n const CanvasPrimitive = asChild ? Slot : \"canvas\";\n\n return (\n <CanvasPrimitive\n data-slot=\"qr-code-canvas\"\n {...canvasProps}\n ref={composedRef}\n width={context.size}\n height={context.size}\n className={cn(\n \"relative max-h-(--qr-code-size) max-w-(--qr-code-size)\",\n !generationKey && \"invisible\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeSvgProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeSvg(props: QRCodeSvgProps) {\n const { asChild, className, style, ...svgProps } = props;\n\n const context = useQRCodeContext(SVG_NAME);\n const svgString = useStore((state) => state.svgString);\n\n if (!svgString) return null;\n\n const SvgPrimitive = asChild ? Slot : \"div\";\n\n return (\n <SvgPrimitive\n data-slot=\"qr-code-svg\"\n {...svgProps}\n className={cn(\n \"relative max-h-(--qr-code-size) max-w-(--qr-code-size)\",\n className\n )}\n style={{ width: context.size, height: context.size, ...style }}\n dangerouslySetInnerHTML={{ __html: svgString }}\n />\n );\n}\n\ninterface QRCodeImageProps extends React.ComponentProps<\"img\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeImage(props: QRCodeImageProps) {\n const { alt = \"QR Code\", asChild, className, ...imageProps } = props;\n\n const context = useQRCodeContext(IMAGE_NAME);\n const dataUrl = useStore((state) => state.dataUrl);\n\n if (!dataUrl) return null;\n\n const ImagePrimitive = asChild ? Slot : \"img\";\n\n return (\n <ImagePrimitive\n data-slot=\"qr-code-image\"\n {...imageProps}\n src={dataUrl}\n alt={alt}\n width={context.size}\n height={context.size}\n className={cn(\n \"relative max-h-(--qr-code-size) max-w-(--qr-code-size)\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeDownloadProps extends React.ComponentProps<\"button\"> {\n filename?: string;\n format?: \"png\" | \"svg\";\n asChild?: boolean;\n}\n\nfunction QRCodeDownload(props: QRCodeDownloadProps) {\n const {\n filename = \"qrcode\",\n format = \"png\",\n asChild,\n className,\n children,\n ...buttonProps\n } = props;\n\n const dataUrl = useStore((state) => state.dataUrl);\n const svgString = useStore((state) => state.svgString);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n buttonProps.onClick?.(event);\n if (event.defaultPrevented) return;\n\n const link = document.createElement(\"a\");\n\n if (format === \"png\" && dataUrl) {\n link.href = dataUrl;\n link.download = `${filename}.png`;\n } else if (format === \"svg\" && svgString) {\n const blob = new Blob([svgString], { type: \"image/svg+xml\" });\n link.href = URL.createObjectURL(blob);\n link.download = `${filename}.svg`;\n } else {\n return;\n }\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n if (format === \"svg\" && svgString) {\n URL.revokeObjectURL(link.href);\n }\n },\n [dataUrl, svgString, filename, format, buttonProps.onClick]\n );\n\n const ButtonPrimitive = asChild ? Slot : \"button\";\n\n return (\n <ButtonPrimitive\n type=\"button\"\n data-slot=\"qr-code-download\"\n {...buttonProps}\n className={cn(\"max-w-(--qr-code-size)\", className)}\n onClick={onClick}\n >\n {children ?? `Download ${format.toUpperCase()}`}\n </ButtonPrimitive>\n );\n}\n\ninterface QRCodeOverlayProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeOverlay(props: QRCodeOverlayProps) {\n const { asChild, className, ...overlayProps } = props;\n\n const OverlayPrimitive = asChild ? Slot : \"div\";\n\n return (\n <OverlayPrimitive\n data-slot=\"qr-code-overlay\"\n {...overlayProps}\n className={cn(\n \"-translate-x-1/2 -translate-y-1/2 absolute top-1/2 left-1/2 flex items-center justify-center rounded-sm bg-background\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeSkeletonProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeSkeleton(props: QRCodeSkeletonProps) {\n const { asChild, className, style, ...skeletonProps } = props;\n\n const context = useQRCodeContext(SKELETON_NAME);\n const dataUrl = useStore((state) => state.dataUrl);\n const svgString = useStore((state) => state.svgString);\n const generationKey = useStore((state) => state.generationKey);\n\n const isLoaded = dataUrl || svgString || generationKey;\n\n if (isLoaded) return null;\n\n const SkeletonPrimitive = asChild ? Slot : \"div\";\n\n return (\n <SkeletonPrimitive\n data-slot=\"qr-code-skeleton\"\n {...skeletonProps}\n className={cn(\n \"absolute max-h-(--qr-code-size) max-w-(--qr-code-size) animate-pulse bg-accent\",\n className\n )}\n style={{\n width: context.size,\n height: context.size,\n ...style,\n }}\n />\n );\n}\n\nexport {\n QRCodeRoot as Root,\n QRCodeCanvas as Canvas,\n QRCodeSvg as Svg,\n QRCodeImage as Image,\n QRCodeOverlay as Overlay,\n QRCodeSkeleton as Skeleton,\n QRCodeDownload as Download,\n //\n QRCodeRoot as QRCode,\n QRCodeCanvas,\n QRCodeSvg,\n QRCodeImage,\n QRCodeOverlay,\n QRCodeSkeleton,\n QRCodeDownload,\n //\n useStore as useQRCode,\n //\n type QRCodeRootProps as QRCodeProps,\n};\n"],"names":["ROOT_NAME","CANVAS_NAME","SVG_NAME","IMAGE_NAME","SKELETON_NAME","useLazyRef","fn","ref","React","StoreContext","useStore","selector","store","getSnapshot","QRCodeContext","useQRCodeContext","consumerName","context","QRCodeRoot","props","value","size","level","margin","quality","backgroundColor","foregroundColor","onError","onGenerated","className","style","asChild","rootProps","canvasRef","listenersRef","stateRef","cb","key","updates","hasChanged","canvasOpts","generationKey","onQRCodeGenerate","targetGenerationKey","currentState","QRCode","dataUrl","svgString","error","parsedError","contextValue","rafId","RootPrimitive","Slot","jsx","cn","QRCodeCanvas","canvasProps","state","composedRef","useComposedRefs","QRCodeSvg","svgProps","QRCodeImage","alt","imageProps","QRCodeDownload","filename","format","children","buttonProps","onClick","event","link","blob","QRCodeOverlay","overlayProps","QRCodeSkeleton","skeletonProps"],"mappings":"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"}
1
+ {"version":3,"file":"QrCode.js","sources":["../../../../src/components/QrCode/QrCode.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn, Slot, useComposedRefs } from \"@dsui/ui/index\";\nimport * as React from \"react\";\n\nconst ROOT_NAME = \"QRCode\";\nconst CANVAS_NAME = \"QRCodeCanvas\";\nconst SVG_NAME = \"QRCodeSvg\";\nconst IMAGE_NAME = \"QRCodeImage\";\nconst SKELETON_NAME = \"QRCodeSkeleton\";\n\ntype QRCodeLevel = \"L\" | \"M\" | \"Q\" | \"H\";\n\ninterface QRCodeCanvasOpts {\n errorCorrectionLevel: QRCodeLevel;\n type?: \"image/png\" | \"image/jpeg\" | \"image/webp\";\n quality?: number;\n margin?: number;\n color?: {\n dark: string;\n light: string;\n };\n width?: number;\n rendererOpts?: {\n quality?: number;\n };\n}\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\ninterface StoreState {\n dataUrl: string | null;\n svgString: string | null;\n isGenerating: boolean;\n error: Error | null;\n generationKey: string;\n}\n\ninterface Store {\n subscribe: (callback: () => void) => () => void;\n getState: () => StoreState;\n setState: <K extends keyof StoreState>(key: K, value: StoreState[K]) => void;\n setStates: (updates: Partial<StoreState>) => void;\n notify: () => void;\n}\n\ninterface QRCodeContextValue {\n value: string;\n size: number;\n margin: number;\n level: QRCodeLevel;\n backgroundColor: string;\n foregroundColor: string;\n canvasRef: React.RefObject<HTMLCanvasElement | null>;\n}\n\nconst StoreContext = React.createContext<Store | null>(null);\n\nfunction useStore<T>(selector: (state: StoreState) => T): T {\n const store = React.useContext(StoreContext);\n if (!store) {\n throw new Error(`\\`useQRCode\\` must be used within \\`${ROOT_NAME}\\``);\n }\n\n const getSnapshot = React.useCallback(\n () => selector(store.getState()),\n [store, selector]\n );\n\n return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n}\n\nconst QRCodeContext = React.createContext<QRCodeContextValue | null>(null);\n\nfunction useQRCodeContext(consumerName: string) {\n const context = React.useContext(QRCodeContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface QRCodeRootProps extends Omit<React.ComponentProps<\"div\">, \"onError\"> {\n value: string;\n size?: number;\n level?: QRCodeLevel;\n margin?: number;\n quality?: number;\n backgroundColor?: string;\n foregroundColor?: string;\n onError?: (error: Error) => void;\n onGenerated?: () => void;\n asChild?: boolean;\n}\n\nfunction QRCodeRoot(props: QRCodeRootProps) {\n const {\n value,\n size = 200,\n level = \"M\",\n margin = 1,\n quality = 0.92,\n backgroundColor = \"#ffffff\",\n foregroundColor = \"#000000\",\n onError,\n onGenerated,\n className,\n style,\n asChild,\n ...rootProps\n } = props;\n\n const canvasRef = React.useRef<HTMLCanvasElement>(null);\n\n const listenersRef = useLazyRef(() => new Set<() => void>());\n const stateRef = useLazyRef<StoreState>(() => ({\n dataUrl: null,\n svgString: null,\n isGenerating: false,\n error: null,\n generationKey: \"\",\n }));\n\n const store = React.useMemo<Store>(() => {\n return {\n subscribe: (cb) => {\n listenersRef.current.add(cb);\n return () => listenersRef.current.delete(cb);\n },\n getState: () => stateRef.current,\n setState: (key, value) => {\n if (Object.is(stateRef.current[key], value)) return;\n stateRef.current[key] = value;\n store.notify();\n },\n setStates: (updates) => {\n let hasChanged = false;\n\n for (const key of Object.keys(updates) as Array<keyof StoreState>) {\n const value = updates[key];\n if (value !== undefined && !Object.is(stateRef.current[key], value)) {\n Object.assign(stateRef.current, { [key]: value });\n hasChanged = true;\n }\n }\n\n if (hasChanged) {\n store.notify();\n }\n },\n notify: () => {\n for (const cb of listenersRef.current) {\n cb();\n }\n },\n };\n }, [listenersRef, stateRef]);\n\n const canvasOpts = React.useMemo<QRCodeCanvasOpts>(\n () => ({\n errorCorrectionLevel: level,\n type: \"image/png\",\n quality,\n margin,\n color: {\n dark: foregroundColor,\n light: backgroundColor,\n },\n width: size,\n }),\n [level, margin, foregroundColor, backgroundColor, size, quality]\n );\n\n const generationKey = React.useMemo(() => {\n if (!value) return \"\";\n\n return JSON.stringify({\n value,\n size,\n level,\n margin,\n quality,\n foregroundColor,\n backgroundColor,\n });\n }, [value, level, margin, foregroundColor, backgroundColor, size, quality]);\n\n const onQRCodeGenerate = React.useCallback(\n async (targetGenerationKey: string) => {\n if (!value || !targetGenerationKey) return;\n\n const currentState = store.getState();\n if (\n currentState.isGenerating ||\n currentState.generationKey === targetGenerationKey\n )\n return;\n\n store.setStates({\n isGenerating: true,\n error: null,\n });\n\n try {\n const QRCode = (await import(\"qrcode\")).default;\n\n let dataUrl: string | null = null;\n\n try {\n dataUrl = await QRCode.toDataURL(value, canvasOpts);\n } catch {\n dataUrl = null;\n }\n\n if (canvasRef.current) {\n await QRCode.toCanvas(canvasRef.current, value, canvasOpts);\n }\n\n const svgString = await QRCode.toString(value, {\n errorCorrectionLevel: canvasOpts.errorCorrectionLevel,\n margin: canvasOpts.margin,\n color: canvasOpts.color,\n width: canvasOpts.width,\n type: \"svg\",\n });\n\n store.setStates({\n dataUrl,\n svgString,\n isGenerating: false,\n generationKey: targetGenerationKey,\n });\n\n onGenerated?.();\n } catch (error) {\n const parsedError =\n error instanceof Error\n ? error\n : new Error(\"Failed to generate QR code\");\n store.setStates({\n error: parsedError,\n isGenerating: false,\n });\n onError?.(parsedError);\n }\n },\n [value, canvasOpts, store, onError, onGenerated]\n );\n\n const contextValue = React.useMemo<QRCodeContextValue>(\n () => ({\n value,\n size,\n level,\n margin,\n backgroundColor,\n foregroundColor,\n canvasRef,\n }),\n [value, size, backgroundColor, foregroundColor, level, margin]\n );\n\n React.useLayoutEffect(() => {\n if (generationKey) {\n const rafId = requestAnimationFrame(() => {\n onQRCodeGenerate(generationKey);\n });\n\n return () => cancelAnimationFrame(rafId);\n }\n }, [generationKey, onQRCodeGenerate]);\n\n const RootPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StoreContext.Provider value={store}>\n <QRCodeContext.Provider value={contextValue}>\n <RootPrimitive\n data-slot=\"qr-code\"\n {...rootProps}\n className={cn(className, \"ds:relative ds:flex ds:flex-col ds:items-center ds:gap-2\")}\n style={\n {\n \"--qr-code-size\": `${size}px`,\n ...style,\n } as React.CSSProperties\n }\n >\n {rootProps?.children ? rootProps.children : <QRCodeCanvas />}\n </RootPrimitive>\n </QRCodeContext.Provider>\n </StoreContext.Provider>\n );\n}\n\ninterface QRCodeCanvasProps extends React.ComponentProps<\"canvas\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeCanvas(props: QRCodeCanvasProps) {\n const { asChild, className, ref, ...canvasProps } = props;\n\n const context = useQRCodeContext(CANVAS_NAME);\n const generationKey = useStore((state) => state.generationKey);\n\n const composedRef = useComposedRefs(ref, context.canvasRef);\n\n const CanvasPrimitive = asChild ? Slot : \"canvas\";\n\n return (\n <CanvasPrimitive\n data-slot=\"qr-code-canvas\"\n {...canvasProps}\n ref={composedRef}\n width={context.size}\n height={context.size}\n className={cn(\n \"ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)\",\n !generationKey && \"ds:invisible\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeSvgProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeSvg(props: QRCodeSvgProps) {\n const { asChild, className, style, ...svgProps } = props;\n\n const context = useQRCodeContext(SVG_NAME);\n const svgString = useStore((state) => state.svgString);\n\n if (!svgString) return null;\n\n const SvgPrimitive = asChild ? Slot : \"div\";\n\n return (\n <SvgPrimitive\n data-slot=\"qr-code-svg\"\n {...svgProps}\n className={cn(\n \"ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)\",\n className\n )}\n style={{ width: context.size, height: context.size, ...style }}\n dangerouslySetInnerHTML={{ __html: svgString }}\n />\n );\n}\n\ninterface QRCodeImageProps extends React.ComponentProps<\"img\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeImage(props: QRCodeImageProps) {\n const { alt = \"QR Code\", asChild, className, ...imageProps } = props;\n\n const context = useQRCodeContext(IMAGE_NAME);\n const dataUrl = useStore((state) => state.dataUrl);\n\n if (!dataUrl) return null;\n\n const ImagePrimitive = asChild ? Slot : \"img\";\n\n return (\n <ImagePrimitive\n data-slot=\"qr-code-image\"\n {...imageProps}\n src={dataUrl}\n alt={alt}\n width={context.size}\n height={context.size}\n className={cn(\n \"ds:relative ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size)\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeDownloadProps extends React.ComponentProps<\"button\"> {\n filename?: string;\n format?: \"png\" | \"svg\";\n asChild?: boolean;\n}\n\nfunction QRCodeDownload(props: QRCodeDownloadProps) {\n const {\n filename = \"qrcode\",\n format = \"png\",\n asChild,\n className,\n children,\n ...buttonProps\n } = props;\n\n const dataUrl = useStore((state) => state.dataUrl);\n const svgString = useStore((state) => state.svgString);\n\n const onClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n buttonProps.onClick?.(event);\n if (event.defaultPrevented) return;\n\n const link = document.createElement(\"a\");\n\n if (format === \"png\" && dataUrl) {\n link.href = dataUrl;\n link.download = `${filename}.png`;\n } else if (format === \"svg\" && svgString) {\n const blob = new Blob([svgString], { type: \"image/svg+xml\" });\n link.href = URL.createObjectURL(blob);\n link.download = `${filename}.svg`;\n } else {\n return;\n }\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n if (format === \"svg\" && svgString) {\n URL.revokeObjectURL(link.href);\n }\n },\n [dataUrl, svgString, filename, format, buttonProps.onClick]\n );\n\n const ButtonPrimitive = asChild ? Slot : \"button\";\n\n return (\n <ButtonPrimitive\n type=\"button\"\n data-slot=\"qr-code-download\"\n {...buttonProps}\n className={cn(\"ds:max-w-(--qr-code-size)\", className)}\n onClick={onClick}\n >\n {children ?? `Download ${format.toUpperCase()}`}\n </ButtonPrimitive>\n );\n}\n\ninterface QRCodeOverlayProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeOverlay(props: QRCodeOverlayProps) {\n const { asChild, className, ...overlayProps } = props;\n\n const OverlayPrimitive = asChild ? Slot : \"div\";\n\n return (\n <OverlayPrimitive\n data-slot=\"qr-code-overlay\"\n {...overlayProps}\n className={cn(\n \"ds:-translate-x-1/2 ds:-translate-y-1/2 ds:absolute ds:top-1/2 ds:left-1/2 ds:flex ds:items-center ds:justify-center ds:rounded-sm ds:bg-background\",\n className\n )}\n />\n );\n}\n\ninterface QRCodeSkeletonProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\nfunction QRCodeSkeleton(props: QRCodeSkeletonProps) {\n const { asChild, className, style, ...skeletonProps } = props;\n\n const context = useQRCodeContext(SKELETON_NAME);\n const dataUrl = useStore((state) => state.dataUrl);\n const svgString = useStore((state) => state.svgString);\n const generationKey = useStore((state) => state.generationKey);\n\n const isLoaded = dataUrl || svgString || generationKey;\n\n if (isLoaded) return null;\n\n const SkeletonPrimitive = asChild ? Slot : \"div\";\n\n return (\n <SkeletonPrimitive\n data-slot=\"qr-code-skeleton\"\n {...skeletonProps}\n className={cn(\n \"ds:absolute ds:max-h-(--qr-code-size) ds:max-w-(--qr-code-size) ds:animate-pulse ds:bg-accent\",\n className\n )}\n style={{\n width: context.size,\n height: context.size,\n ...style,\n }}\n />\n );\n}\n\nexport {\n QRCodeRoot as Root,\n QRCodeCanvas as Canvas,\n QRCodeSvg as Svg,\n QRCodeImage as Image,\n QRCodeOverlay as Overlay,\n QRCodeSkeleton as Skeleton,\n QRCodeDownload as Download,\n //\n QRCodeRoot as QRCode,\n QRCodeCanvas,\n QRCodeSvg,\n QRCodeImage,\n QRCodeOverlay,\n QRCodeSkeleton,\n QRCodeDownload,\n //\n useStore as useQRCode,\n //\n type QRCodeRootProps as QRCodeProps,\n};\n"],"names":["ROOT_NAME","CANVAS_NAME","SVG_NAME","IMAGE_NAME","SKELETON_NAME","useLazyRef","fn","ref","React","StoreContext","useStore","selector","store","getSnapshot","QRCodeContext","useQRCodeContext","consumerName","context","QRCodeRoot","props","value","size","level","margin","quality","backgroundColor","foregroundColor","onError","onGenerated","className","style","asChild","rootProps","canvasRef","listenersRef","stateRef","cb","key","updates","hasChanged","canvasOpts","generationKey","onQRCodeGenerate","targetGenerationKey","currentState","QRCode","dataUrl","svgString","error","parsedError","contextValue","rafId","RootPrimitive","Slot","jsx","cn","QRCodeCanvas","canvasProps","state","composedRef","useComposedRefs","QRCodeSvg","svgProps","QRCodeImage","alt","imageProps","QRCodeDownload","filename","format","children","buttonProps","onClick","event","link","blob","QRCodeOverlay","overlayProps","QRCodeSkeleton","skeletonProps"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
- import d from "react";
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import p from "react";
3
3
  import { RadioGroup as f, RadioGroupItem as I } from "../../packages/ui/src/components/radio-group.js";
4
4
  import "@radix-ui/react-slot";
5
5
  import "../../packages/ui/src/components/button.js";
@@ -32,25 +32,25 @@ import "../../packages/ui/src/components/sidebar.js";
32
32
  import "@radix-ui/react-slider";
33
33
  import "../../packages/ui/src/components/tabs.js";
34
34
  import "../../packages/ui/src/components/toggle.js";
35
- const c = d.forwardRef(
36
- (l, p) => {
37
- const { label: o, variant: r = "option", rootClassName: t, ...i } = l, a = d.useId();
38
- return /* @__PURE__ */ s("div", { className: n("flex items-center space-x-2", t), children: [
39
- /* @__PURE__ */ e(I, { ref: p, id: a, ...i }),
35
+ const c = p.forwardRef(
36
+ (s, d) => {
37
+ const { label: o, variant: r = "option", rootClassName: t, ...i } = s, a = p.useId();
38
+ return /* @__PURE__ */ l("div", { className: n("ds:flex ds:items-center ds:space-x-2", t), children: [
39
+ /* @__PURE__ */ e(I, { ref: d, id: a, ...i }),
40
40
  r === "option" && o && /* @__PURE__ */ e(
41
41
  "label",
42
42
  {
43
43
  htmlFor: a,
44
- className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
44
+ className: "ds:text-sm ds:font-medium ds:leading-none ds:peer-disabled:cursor-not-allowed ds:peer-disabled:opacity-70",
45
45
  children: o
46
46
  }
47
47
  ),
48
- r === "button-group" && o && /* @__PURE__ */ e("span", { className: "sr-only", children: o })
48
+ r === "button-group" && o && /* @__PURE__ */ e("span", { className: "ds:sr-only", children: o })
49
49
  ] });
50
50
  }
51
51
  );
52
52
  c.displayName = "RadioItem";
53
- const u = d.forwardRef((l, p) => {
53
+ const u = p.forwardRef((s, d) => {
54
54
  const {
55
55
  options: o,
56
56
  label: r,
@@ -64,13 +64,13 @@ const u = d.forwardRef((l, p) => {
64
64
  className: R,
65
65
  rootClassName: v,
66
66
  disabled: g
67
- } = l;
68
- return /* @__PURE__ */ s("div", { className: n("flex flex-col gap-1.5", v), children: [
69
- r && /* @__PURE__ */ e("label", { className: "text-sm font-medium", children: r }),
70
- /* @__PURE__ */ s(
67
+ } = s;
68
+ return /* @__PURE__ */ l("div", { className: n("ds:flex ds:flex-col ds:gap-1.5", v), children: [
69
+ r && /* @__PURE__ */ e("label", { className: "ds:text-sm ds:font-medium", children: r }),
70
+ /* @__PURE__ */ l(
71
71
  f,
72
72
  {
73
- ref: p,
73
+ ref: d,
74
74
  value: b,
75
75
  onValueChange: N,
76
76
  variant: i,
@@ -92,7 +92,7 @@ const u = d.forwardRef((l, p) => {
92
92
  ]
93
93
  }
94
94
  ),
95
- t && /* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground", children: t })
95
+ t && /* @__PURE__ */ e("p", { className: "ds:text-xs ds:text-muted-foreground", children: t })
96
96
  ] });
97
97
  });
98
98
  u.displayName = "Radio";
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n RadioGroupItem as SRadioGroupItem,\n RadioGroup as SRadioGroup,\n type RadioGroupProps,\n type RadioGroupItemProps,\n} from \"@dsui/ui/components/radio-group\";\nimport { cn } from \"@dsui/ui/index\";\n\nexport type RadioItemProps = RadioGroupItemProps & {\n label?: React.ReactNode;\n variant?: \"option\" | \"button-group\";\n size?: \"default\" | \"sm\" | \"lg\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n rootClassName?: string;\n};\n\nconst RadioItem = React.forwardRef<HTMLButtonElement, RadioItemProps>(\n (props, ref) => {\n const { label, variant = \"option\", rootClassName, ...itemProps } = props;\n const id = React.useId();\n\n return (\n <div className={cn(\"flex items-center space-x-2\", rootClassName)}>\n <SRadioGroupItem ref={ref} id={id} {...itemProps} />\n {variant === \"option\" && label && (\n <label\n htmlFor={id}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n </label>\n )}\n {variant === \"button-group\" && label && (\n <span className=\"sr-only\">{label}</span>\n )}\n </div>\n );\n }\n);\n\nRadioItem.displayName = \"RadioItem\";\n\nexport type RadioProps = {\n options?: Array<{\n label: React.ReactNode;\n value: string;\n disabled?: boolean;\n }>;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n variant?: \"option\" | \"button-group\";\n size?: \"default\" | \"sm\" | \"lg\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n value?: string;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n className?: string;\n rootClassName?: string;\n disabled?: boolean;\n} & RadioGroupProps;\n\nconst Radio = React.forwardRef<HTMLDivElement, RadioProps>((props, ref) => {\n const {\n options,\n label,\n helperText,\n variant = \"option\",\n size = \"default\",\n color,\n value,\n onValueChange,\n children,\n className,\n rootClassName,\n disabled,\n } = props;\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", rootClassName)}>\n {label && <label className=\"text-sm font-medium\">{label}</label>}\n\n <SRadioGroup\n ref={ref}\n value={value}\n onValueChange={onValueChange}\n variant={variant}\n className={cn(className)}\n >\n {options &&\n options.map((option) => (\n <RadioItem\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n variant={variant}\n size={size}\n color={color}\n />\n ))}\n {children}\n </SRadioGroup>\n\n {helperText && (\n <p className=\"text-xs text-muted-foreground\">{helperText}</p>\n )}\n </div>\n );\n}) as React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLDivElement>\n> & {\n Group: typeof SRadioGroup;\n Item: typeof RadioItem;\n};\n\nRadio.displayName = \"Radio\";\n\nRadio.Group = SRadioGroup;\nRadio.Item = RadioItem;\n\nexport default Radio;\nexport { type RadioGroupProps, type RadioGroupItemProps };\n"],"names":["RadioItem","React","props","ref","label","variant","rootClassName","itemProps","id","cn","jsx","SRadioGroupItem","Radio","options","helperText","size","color","value","onValueChange","children","className","disabled","jsxs","SRadioGroup","option"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAMA,IAAYC,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAQ;AACd,UAAM,EAAE,OAAAC,GAAO,SAAAC,IAAU,UAAU,eAAAC,GAAe,GAAGC,MAAcL,GAC7DM,IAAKP,EAAM,MAAA;AAEjB,6BACG,OAAA,EAAI,WAAWQ,EAAG,+BAA+BH,CAAa,GAC7D,UAAA;AAAA,MAAA,gBAAAI,EAACC,GAAA,EAAgB,KAAAR,GAAU,IAAAK,GAAS,GAAGD,EAAA,CAAW;AAAA,MACjDF,MAAY,YAAYD,KACvB,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASF;AAAA,UACT,WAAU;AAAA,UAET,UAAAJ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJC,MAAY,kBAAkBD,uBAC5B,QAAA,EAAK,WAAU,WAAW,UAAAA,EAAA,CAAM;AAAA,IAAA,GAErC;AAAA,EAEJ;AACF;AAEAJ,EAAU,cAAc;AA6BxB,MAAMY,IAAQX,EAAM,WAAuC,CAACC,GAAOC,MAAQ;AACzE,QAAM;AAAA,IACJ,SAAAU;AAAA,IACA,OAAAT;AAAA,IACA,YAAAU;AAAA,IACA,SAAAT,IAAU;AAAA,IACV,MAAAU,IAAO;AAAA,IACP,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAd;AAAA,IACA,UAAAe;AAAA,EAAA,IACEnB;AAEJ,2BACG,OAAA,EAAI,WAAWO,EAAG,yBAAyBH,CAAa,GACtD,UAAA;AAAA,IAAAF,KAAS,gBAAAM,EAAC,SAAA,EAAM,WAAU,uBAAuB,UAAAN,GAAM;AAAA,IAExD,gBAAAkB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAApB;AAAA,QACA,OAAAc;AAAA,QACA,eAAAC;AAAA,QACA,SAAAb;AAAA,QACA,WAAWI,EAAGW,CAAS;AAAA,QAEtB,UAAA;AAAA,UAAAP,KACCA,EAAQ,IAAI,CAACW,MACX,gBAAAd;AAAA,YAACV;AAAA,YAAA;AAAA,cAEC,OAAOwB,EAAO;AAAA,cACd,OAAOA,EAAO;AAAA,cACd,UAAUH,KAAYG,EAAO;AAAA,cAC7B,SAAAnB;AAAA,cACA,MAAAU;AAAA,cACA,OAAAC;AAAA,YAAA;AAAA,YANKQ,EAAO;AAAA,UAAA,CAQf;AAAA,UACFL;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGFL,KACC,gBAAAJ,EAAC,KAAA,EAAE,WAAU,iCAAiC,UAAAI,EAAA,CAAW;AAAA,EAAA,GAE7D;AAEJ,CAAC;AAODF,EAAM,cAAc;AAEpBA,EAAM,QAAQW;AACdX,EAAM,OAAOZ;"}
1
+ {"version":3,"file":"Radio.js","sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n RadioGroupItem as SRadioGroupItem,\n RadioGroup as SRadioGroup,\n type RadioGroupProps,\n type RadioGroupItemProps,\n} from \"@dsui/ui/components/radio-group\";\nimport { cn } from \"@dsui/ui/index\";\n\nexport type RadioItemProps = RadioGroupItemProps & {\n label?: React.ReactNode;\n variant?: \"option\" | \"button-group\";\n size?: \"default\" | \"sm\" | \"lg\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n rootClassName?: string;\n};\n\nconst RadioItem = React.forwardRef<HTMLButtonElement, RadioItemProps>(\n (props, ref) => {\n const { label, variant = \"option\", rootClassName, ...itemProps } = props;\n const id = React.useId();\n\n return (\n <div className={cn(\"ds:flex ds:items-center ds:space-x-2\", rootClassName)}>\n <SRadioGroupItem ref={ref} id={id} {...itemProps} />\n {variant === \"option\" && label && (\n <label\n htmlFor={id}\n className=\"ds:text-sm ds:font-medium ds:leading-none ds:peer-disabled:cursor-not-allowed ds:peer-disabled:opacity-70\"\n >\n {label}\n </label>\n )}\n {variant === \"button-group\" && label && (\n <span className=\"ds:sr-only\">{label}</span>\n )}\n </div>\n );\n }\n);\n\nRadioItem.displayName = \"RadioItem\";\n\nexport type RadioProps = {\n options?: Array<{\n label: React.ReactNode;\n value: string;\n disabled?: boolean;\n }>;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n variant?: \"option\" | \"button-group\";\n size?: \"default\" | \"sm\" | \"lg\";\n color?:\n | \"primary\"\n | \"secondary\"\n | \"accent\"\n | \"destructive\"\n | \"muted\"\n | \"success\"\n | \"error\"\n | \"warning\";\n value?: string;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n className?: string;\n rootClassName?: string;\n disabled?: boolean;\n} & RadioGroupProps;\n\nconst Radio = React.forwardRef<HTMLDivElement, RadioProps>((props, ref) => {\n const {\n options,\n label,\n helperText,\n variant = \"option\",\n size = \"default\",\n color,\n value,\n onValueChange,\n children,\n className,\n rootClassName,\n disabled,\n } = props;\n\n return (\n <div className={cn(\"ds:flex ds:flex-col ds:gap-1.5\", rootClassName)}>\n {label && <label className=\"ds:text-sm ds:font-medium\">{label}</label>}\n\n <SRadioGroup\n ref={ref}\n value={value}\n onValueChange={onValueChange}\n variant={variant}\n className={cn(className)}\n >\n {options &&\n options.map((option) => (\n <RadioItem\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n variant={variant}\n size={size}\n color={color}\n />\n ))}\n {children}\n </SRadioGroup>\n\n {helperText && (\n <p className=\"ds:text-xs ds:text-muted-foreground\">{helperText}</p>\n )}\n </div>\n );\n}) as React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLDivElement>\n> & {\n Group: typeof SRadioGroup;\n Item: typeof RadioItem;\n};\n\nRadio.displayName = \"Radio\";\n\nRadio.Group = SRadioGroup;\nRadio.Item = RadioItem;\n\nexport default Radio;\nexport { type RadioGroupProps, type RadioGroupItemProps };\n"],"names":["RadioItem","React","props","ref","label","variant","rootClassName","itemProps","id","cn","jsx","SRadioGroupItem","Radio","options","helperText","size","color","value","onValueChange","children","className","disabled","jsxs","SRadioGroup","option"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAMA,IAAYC,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAQ;AACd,UAAM,EAAE,OAAAC,GAAO,SAAAC,IAAU,UAAU,eAAAC,GAAe,GAAGC,MAAcL,GAC7DM,IAAKP,EAAM,MAAA;AAEjB,6BACG,OAAA,EAAI,WAAWQ,EAAG,wCAAwCH,CAAa,GACtE,UAAA;AAAA,MAAA,gBAAAI,EAACC,GAAA,EAAgB,KAAAR,GAAU,IAAAK,GAAS,GAAGD,EAAA,CAAW;AAAA,MACjDF,MAAY,YAAYD,KACvB,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASF;AAAA,UACT,WAAU;AAAA,UAET,UAAAJ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJC,MAAY,kBAAkBD,uBAC5B,QAAA,EAAK,WAAU,cAAc,UAAAA,EAAA,CAAM;AAAA,IAAA,GAExC;AAAA,EAEJ;AACF;AAEAJ,EAAU,cAAc;AA6BxB,MAAMY,IAAQX,EAAM,WAAuC,CAACC,GAAOC,MAAQ;AACzE,QAAM;AAAA,IACJ,SAAAU;AAAA,IACA,OAAAT;AAAA,IACA,YAAAU;AAAA,IACA,SAAAT,IAAU;AAAA,IACV,MAAAU,IAAO;AAAA,IACP,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAd;AAAA,IACA,UAAAe;AAAA,EAAA,IACEnB;AAEJ,2BACG,OAAA,EAAI,WAAWO,EAAG,kCAAkCH,CAAa,GAC/D,UAAA;AAAA,IAAAF,KAAS,gBAAAM,EAAC,SAAA,EAAM,WAAU,6BAA6B,UAAAN,GAAM;AAAA,IAE9D,gBAAAkB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAApB;AAAA,QACA,OAAAc;AAAA,QACA,eAAAC;AAAA,QACA,SAAAb;AAAA,QACA,WAAWI,EAAGW,CAAS;AAAA,QAEtB,UAAA;AAAA,UAAAP,KACCA,EAAQ,IAAI,CAACW,MACX,gBAAAd;AAAA,YAACV;AAAA,YAAA;AAAA,cAEC,OAAOwB,EAAO;AAAA,cACd,OAAOA,EAAO;AAAA,cACd,UAAUH,KAAYG,EAAO;AAAA,cAC7B,SAAAnB;AAAA,cACA,MAAAU;AAAA,cACA,OAAAC;AAAA,YAAA;AAAA,YANKQ,EAAO;AAAA,UAAA,CAQf;AAAA,UACFL;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGFL,KACC,gBAAAJ,EAAC,KAAA,EAAE,WAAU,uCAAuC,UAAAI,EAAA,CAAW;AAAA,EAAA,GAEnE;AAEJ,CAAC;AAODF,EAAM,cAAc;AAEpBA,EAAM,QAAQW;AACdX,EAAM,OAAOZ;"}