@arolariu/components 0.0.37 → 0.0.39

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/CHANGELOG.md +94 -0
  2. package/CONTRIBUTING.md +371 -0
  3. package/DEBUGGING.md +401 -0
  4. package/EXAMPLES.md +1035 -0
  5. package/LICENSE +21 -21
  6. package/README.md +627 -0
  7. package/dist/cjs/components/ui/accordion.cjs +2 -2
  8. package/dist/cjs/components/ui/accordion.cjs.map +1 -1
  9. package/dist/cjs/components/ui/alert-dialog.cjs +7 -7
  10. package/dist/cjs/components/ui/alert-dialog.cjs.map +1 -1
  11. package/dist/cjs/components/ui/alert.cjs +2 -2
  12. package/dist/cjs/components/ui/alert.cjs.map +1 -1
  13. package/dist/cjs/components/ui/aspect-ratio.cjs.map +1 -1
  14. package/dist/cjs/components/ui/avatar.cjs +2 -2
  15. package/dist/cjs/components/ui/avatar.cjs.map +1 -1
  16. package/dist/cjs/components/ui/background-beams.cjs +1 -11
  17. package/dist/cjs/components/ui/background-beams.cjs.map +1 -1
  18. package/dist/cjs/components/ui/badge.cjs +2 -2
  19. package/dist/cjs/components/ui/badge.cjs.map +1 -1
  20. package/dist/cjs/components/ui/breadcrumb.cjs +5 -5
  21. package/dist/cjs/components/ui/breadcrumb.cjs.map +1 -1
  22. package/dist/cjs/components/ui/bubble-background.cjs.map +1 -1
  23. package/dist/cjs/components/ui/button.cjs.map +1 -1
  24. package/dist/cjs/components/ui/calendar.cjs +89 -35
  25. package/dist/cjs/components/ui/calendar.cjs.map +1 -1
  26. package/dist/cjs/components/ui/card.cjs +5 -5
  27. package/dist/cjs/components/ui/card.cjs.map +1 -1
  28. package/dist/cjs/components/ui/carousel.cjs +3 -3
  29. package/dist/cjs/components/ui/carousel.cjs.map +1 -1
  30. package/dist/cjs/components/ui/chart.cjs +14 -14
  31. package/dist/cjs/components/ui/chart.cjs.map +1 -1
  32. package/dist/cjs/components/ui/checkbox.cjs.map +1 -1
  33. package/dist/cjs/components/ui/collapsible.cjs +2 -2
  34. package/dist/cjs/components/ui/collapsible.cjs.map +1 -1
  35. package/dist/cjs/components/ui/command.cjs +8 -7
  36. package/dist/cjs/components/ui/command.cjs.map +1 -1
  37. package/dist/cjs/components/ui/context-menu.cjs +9 -9
  38. package/dist/cjs/components/ui/context-menu.cjs.map +1 -1
  39. package/dist/cjs/components/ui/counting-number.cjs.map +1 -1
  40. package/dist/cjs/components/ui/dialog.cjs +8 -7
  41. package/dist/cjs/components/ui/dialog.cjs.map +1 -1
  42. package/dist/cjs/components/ui/dot-background.cjs.map +1 -1
  43. package/dist/cjs/components/ui/drawer.cjs +6 -6
  44. package/dist/cjs/components/ui/drawer.cjs.map +1 -1
  45. package/dist/cjs/components/ui/dropdown-menu.cjs +10 -10
  46. package/dist/cjs/components/ui/dropdown-menu.cjs.map +1 -1
  47. package/dist/cjs/components/ui/dropdrawer.cjs +627 -0
  48. package/dist/cjs/components/ui/dropdrawer.cjs.map +1 -0
  49. package/dist/cjs/components/ui/fireworks-background.cjs.map +1 -1
  50. package/dist/cjs/components/ui/flip-button.cjs.map +1 -1
  51. package/dist/cjs/components/ui/form.cjs +5 -5
  52. package/dist/cjs/components/ui/form.cjs.map +1 -1
  53. package/dist/cjs/components/ui/gradient-background.cjs.map +1 -1
  54. package/dist/cjs/components/ui/gradient-text.cjs.map +1 -1
  55. package/dist/cjs/components/ui/highlight-text.cjs.map +1 -1
  56. package/dist/cjs/components/ui/hole-background.cjs.map +1 -1
  57. package/dist/cjs/components/ui/hover-card.cjs +2 -2
  58. package/dist/cjs/components/ui/hover-card.cjs.map +1 -1
  59. package/dist/cjs/components/ui/input-otp.cjs +3 -3
  60. package/dist/cjs/components/ui/input-otp.cjs.map +1 -1
  61. package/dist/cjs/components/ui/input.cjs.map +1 -1
  62. package/dist/cjs/components/ui/label.cjs.map +1 -1
  63. package/dist/cjs/components/ui/menubar.cjs +9 -9
  64. package/dist/cjs/components/ui/menubar.cjs.map +1 -1
  65. package/dist/cjs/components/ui/navigation-menu.cjs +4 -4
  66. package/dist/cjs/components/ui/navigation-menu.cjs.map +1 -1
  67. package/dist/cjs/components/ui/pagination.cjs +3 -3
  68. package/dist/cjs/components/ui/pagination.cjs.map +1 -1
  69. package/dist/cjs/components/ui/popover.cjs.map +1 -1
  70. package/dist/cjs/components/ui/progress.cjs.map +1 -1
  71. package/dist/cjs/components/ui/radio-group.cjs.map +1 -1
  72. package/dist/cjs/components/ui/resizable.cjs +1 -1
  73. package/dist/cjs/components/ui/resizable.cjs.map +1 -1
  74. package/dist/cjs/components/ui/ripple-button.cjs.map +1 -1
  75. package/dist/cjs/components/ui/scratcher.cjs.map +1 -1
  76. package/dist/cjs/components/ui/scroll-area.cjs.map +1 -1
  77. package/dist/cjs/components/ui/select.cjs +5 -5
  78. package/dist/cjs/components/ui/select.cjs.map +1 -1
  79. package/dist/cjs/components/ui/separator.cjs +1 -1
  80. package/dist/cjs/components/ui/separator.cjs.map +1 -1
  81. package/dist/cjs/components/ui/sheet.cjs +5 -5
  82. package/dist/cjs/components/ui/sheet.cjs.map +1 -1
  83. package/dist/cjs/components/ui/sidebar.cjs +19 -19
  84. package/dist/cjs/components/ui/sidebar.cjs.map +1 -1
  85. package/dist/cjs/components/ui/skeleton.cjs.map +1 -1
  86. package/dist/cjs/components/ui/slider.cjs.map +1 -1
  87. package/dist/cjs/components/ui/sonner.cjs.map +1 -1
  88. package/dist/cjs/components/ui/switch.cjs.map +1 -1
  89. package/dist/cjs/components/ui/table.cjs +6 -6
  90. package/dist/cjs/components/ui/table.cjs.map +1 -1
  91. package/dist/cjs/components/ui/tabs.cjs +2 -2
  92. package/dist/cjs/components/ui/tabs.cjs.map +1 -1
  93. package/dist/cjs/components/ui/textarea.cjs.map +1 -1
  94. package/dist/cjs/components/ui/toggle-group.cjs +2 -2
  95. package/dist/cjs/components/ui/toggle-group.cjs.map +1 -1
  96. package/dist/cjs/components/ui/toggle.cjs +2 -2
  97. package/dist/cjs/components/ui/toggle.cjs.map +1 -1
  98. package/dist/cjs/components/ui/tooltip.cjs +2 -2
  99. package/dist/cjs/components/ui/tooltip.cjs.map +1 -1
  100. package/dist/cjs/hooks/use-mobile.cjs.map +1 -1
  101. package/dist/cjs/index.cjs +268 -232
  102. package/dist/cjs/index.cjs.map +1 -0
  103. package/dist/cjs/index.css +2558 -193
  104. package/dist/cjs/index.css.map +1 -0
  105. package/dist/cjs/lib/utils.cjs.map +1 -1
  106. package/dist/esm/components/ui/accordion.js +14 -14
  107. package/dist/esm/components/ui/accordion.js.map +1 -1
  108. package/dist/esm/components/ui/alert-dialog.js +25 -25
  109. package/dist/esm/components/ui/alert-dialog.js.map +1 -1
  110. package/dist/esm/components/ui/alert.js +10 -10
  111. package/dist/esm/components/ui/alert.js.map +1 -1
  112. package/dist/esm/components/ui/aspect-ratio.js +3 -3
  113. package/dist/esm/components/ui/aspect-ratio.js.map +1 -1
  114. package/dist/esm/components/ui/avatar.js +9 -9
  115. package/dist/esm/components/ui/avatar.js.map +1 -1
  116. package/dist/esm/components/ui/background-beams.js +20 -20
  117. package/dist/esm/components/ui/background-beams.js.map +1 -1
  118. package/dist/esm/components/ui/badge.js +8 -8
  119. package/dist/esm/components/ui/badge.js.map +1 -1
  120. package/dist/esm/components/ui/breadcrumb.js +21 -21
  121. package/dist/esm/components/ui/breadcrumb.js.map +1 -1
  122. package/dist/esm/components/ui/bubble-background.js +31 -31
  123. package/dist/esm/components/ui/bubble-background.js.map +1 -1
  124. package/dist/esm/components/ui/button.js +8 -8
  125. package/dist/esm/components/ui/button.js.map +1 -1
  126. package/dist/esm/components/ui/calendar.js +93 -42
  127. package/dist/esm/components/ui/calendar.js.map +1 -1
  128. package/dist/esm/components/ui/card.js +16 -16
  129. package/dist/esm/components/ui/card.js.map +1 -1
  130. package/dist/esm/components/ui/carousel.js +33 -33
  131. package/dist/esm/components/ui/carousel.js.map +1 -1
  132. package/dist/esm/components/ui/chart.js +45 -45
  133. package/dist/esm/components/ui/chart.js.map +1 -1
  134. package/dist/esm/components/ui/checkbox.js +8 -8
  135. package/dist/esm/components/ui/checkbox.js.map +1 -1
  136. package/dist/esm/components/ui/collapsible.js +8 -8
  137. package/dist/esm/components/ui/collapsible.js.map +1 -1
  138. package/dist/esm/components/ui/command.js +33 -32
  139. package/dist/esm/components/ui/command.js.map +1 -1
  140. package/dist/esm/components/ui/context-menu.js +36 -36
  141. package/dist/esm/components/ui/context-menu.js.map +1 -1
  142. package/dist/esm/components/ui/counting-number.js +12 -12
  143. package/dist/esm/components/ui/counting-number.js.map +1 -1
  144. package/dist/esm/components/ui/dialog.js +27 -26
  145. package/dist/esm/components/ui/dialog.js.map +1 -1
  146. package/dist/esm/components/ui/dot-background.js +15 -15
  147. package/dist/esm/components/ui/dot-background.js.map +1 -1
  148. package/dist/esm/components/ui/drawer.js +24 -24
  149. package/dist/esm/components/ui/drawer.js.map +1 -1
  150. package/dist/esm/components/ui/dropdown-menu.js +36 -36
  151. package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
  152. package/dist/esm/components/ui/dropdrawer.js +563 -0
  153. package/dist/esm/components/ui/dropdrawer.js.map +1 -0
  154. package/dist/esm/components/ui/fireworks-background.js +12 -12
  155. package/dist/esm/components/ui/fireworks-background.js.map +1 -1
  156. package/dist/esm/components/ui/flip-button.js +12 -12
  157. package/dist/esm/components/ui/flip-button.js.map +1 -1
  158. package/dist/esm/components/ui/form.js +26 -26
  159. package/dist/esm/components/ui/form.js.map +1 -1
  160. package/dist/esm/components/ui/gradient-background.js +7 -7
  161. package/dist/esm/components/ui/gradient-background.js.map +1 -1
  162. package/dist/esm/components/ui/gradient-text.js +9 -9
  163. package/dist/esm/components/ui/gradient-text.js.map +1 -1
  164. package/dist/esm/components/ui/highlight-text.js +10 -10
  165. package/dist/esm/components/ui/highlight-text.js.map +1 -1
  166. package/dist/esm/components/ui/hole-background.js +30 -30
  167. package/dist/esm/components/ui/hole-background.js.map +1 -1
  168. package/dist/esm/components/ui/hover-card.js +8 -8
  169. package/dist/esm/components/ui/hover-card.js.map +1 -1
  170. package/dist/esm/components/ui/input-otp.js +17 -17
  171. package/dist/esm/components/ui/input-otp.js.map +1 -1
  172. package/dist/esm/components/ui/input.js +4 -4
  173. package/dist/esm/components/ui/input.js.map +1 -1
  174. package/dist/esm/components/ui/label.js +5 -5
  175. package/dist/esm/components/ui/label.js.map +1 -1
  176. package/dist/esm/components/ui/menubar.js +39 -39
  177. package/dist/esm/components/ui/menubar.js.map +1 -1
  178. package/dist/esm/components/ui/navigation-menu.js +27 -27
  179. package/dist/esm/components/ui/navigation-menu.js.map +1 -1
  180. package/dist/esm/components/ui/pagination.js +23 -23
  181. package/dist/esm/components/ui/pagination.js.map +1 -1
  182. package/dist/esm/components/ui/popover.js +9 -9
  183. package/dist/esm/components/ui/popover.js.map +1 -1
  184. package/dist/esm/components/ui/progress.js +6 -6
  185. package/dist/esm/components/ui/progress.js.map +1 -1
  186. package/dist/esm/components/ui/radio-group.js +10 -10
  187. package/dist/esm/components/ui/radio-group.js.map +1 -1
  188. package/dist/esm/components/ui/resizable.js +11 -11
  189. package/dist/esm/components/ui/resizable.js.map +1 -1
  190. package/dist/esm/components/ui/ripple-button.js +14 -14
  191. package/dist/esm/components/ui/ripple-button.js.map +1 -1
  192. package/dist/esm/components/ui/scratcher.js +13 -13
  193. package/dist/esm/components/ui/scratcher.js.map +1 -1
  194. package/dist/esm/components/ui/scroll-area.js +11 -11
  195. package/dist/esm/components/ui/scroll-area.js.map +1 -1
  196. package/dist/esm/components/ui/select.js +34 -34
  197. package/dist/esm/components/ui/select.js.map +1 -1
  198. package/dist/esm/components/ui/separator.js +6 -6
  199. package/dist/esm/components/ui/separator.js.map +1 -1
  200. package/dist/esm/components/ui/sheet.js +25 -25
  201. package/dist/esm/components/ui/sheet.js.map +1 -1
  202. package/dist/esm/components/ui/sidebar.js +96 -96
  203. package/dist/esm/components/ui/sidebar.js.map +1 -1
  204. package/dist/esm/components/ui/skeleton.js +4 -4
  205. package/dist/esm/components/ui/skeleton.js.map +1 -1
  206. package/dist/esm/components/ui/slider.js +12 -12
  207. package/dist/esm/components/ui/slider.js.map +1 -1
  208. package/dist/esm/components/ui/sonner.js +7 -8
  209. package/dist/esm/components/ui/sonner.js.map +1 -1
  210. package/dist/esm/components/ui/switch.js +7 -7
  211. package/dist/esm/components/ui/switch.js.map +1 -1
  212. package/dist/esm/components/ui/table.js +19 -19
  213. package/dist/esm/components/ui/table.js.map +1 -1
  214. package/dist/esm/components/ui/tabs.js +11 -11
  215. package/dist/esm/components/ui/tabs.js.map +1 -1
  216. package/dist/esm/components/ui/textarea.js +4 -4
  217. package/dist/esm/components/ui/textarea.js.map +1 -1
  218. package/dist/esm/components/ui/toggle-group.js +12 -12
  219. package/dist/esm/components/ui/toggle-group.js.map +1 -1
  220. package/dist/esm/components/ui/toggle.js +7 -7
  221. package/dist/esm/components/ui/toggle.js.map +1 -1
  222. package/dist/esm/components/ui/tooltip.js +11 -11
  223. package/dist/esm/components/ui/tooltip.js.map +1 -1
  224. package/dist/esm/hooks/use-mobile.js +3 -3
  225. package/dist/esm/hooks/use-mobile.js.map +1 -1
  226. package/dist/esm/index.css +2558 -193
  227. package/dist/esm/index.css.map +1 -0
  228. package/dist/esm/index.js +62 -320
  229. package/dist/esm/lib/utils.js +3 -3
  230. package/dist/esm/lib/utils.js.map +1 -1
  231. package/dist/index.css +2558 -193
  232. package/dist/index.js +62 -320
  233. package/dist/types/components/ui/accordion.d.ts +1 -0
  234. package/dist/types/components/ui/accordion.d.ts.map +1 -0
  235. package/dist/types/components/ui/alert-dialog.d.ts +1 -0
  236. package/dist/types/components/ui/alert-dialog.d.ts.map +1 -0
  237. package/dist/types/components/ui/alert.d.ts +1 -0
  238. package/dist/types/components/ui/alert.d.ts.map +1 -0
  239. package/dist/types/components/ui/aspect-ratio.d.ts +1 -0
  240. package/dist/types/components/ui/aspect-ratio.d.ts.map +1 -0
  241. package/dist/types/components/ui/avatar.d.ts +1 -0
  242. package/dist/types/components/ui/avatar.d.ts.map +1 -0
  243. package/dist/types/components/ui/background-beams.d.ts +2 -1
  244. package/dist/types/components/ui/background-beams.d.ts.map +1 -0
  245. package/dist/types/components/ui/badge.d.ts +1 -0
  246. package/dist/types/components/ui/badge.d.ts.map +1 -0
  247. package/dist/types/components/ui/breadcrumb.d.ts +1 -0
  248. package/dist/types/components/ui/breadcrumb.d.ts.map +1 -0
  249. package/dist/types/components/ui/bubble-background.d.ts +1 -0
  250. package/dist/types/components/ui/bubble-background.d.ts.map +1 -0
  251. package/dist/types/components/ui/button.d.ts +1 -0
  252. package/dist/types/components/ui/button.d.ts.map +1 -0
  253. package/dist/types/components/ui/calendar.d.ts +8 -3
  254. package/dist/types/components/ui/calendar.d.ts.map +1 -0
  255. package/dist/types/components/ui/card.d.ts +1 -0
  256. package/dist/types/components/ui/card.d.ts.map +1 -0
  257. package/dist/types/components/ui/carousel.d.ts +1 -0
  258. package/dist/types/components/ui/carousel.d.ts.map +1 -0
  259. package/dist/types/components/ui/chart.d.ts +19 -4
  260. package/dist/types/components/ui/chart.d.ts.map +1 -0
  261. package/dist/types/components/ui/checkbox.d.ts +1 -0
  262. package/dist/types/components/ui/checkbox.d.ts.map +1 -0
  263. package/dist/types/components/ui/collapsible.d.ts +1 -0
  264. package/dist/types/components/ui/collapsible.d.ts.map +1 -0
  265. package/dist/types/components/ui/command.d.ts +4 -1
  266. package/dist/types/components/ui/command.d.ts.map +1 -0
  267. package/dist/types/components/ui/context-menu.d.ts +1 -0
  268. package/dist/types/components/ui/context-menu.d.ts.map +1 -0
  269. package/dist/types/components/ui/counting-number.d.ts +1 -0
  270. package/dist/types/components/ui/counting-number.d.ts.map +1 -0
  271. package/dist/types/components/ui/dialog.d.ts +4 -1
  272. package/dist/types/components/ui/dialog.d.ts.map +1 -0
  273. package/dist/types/components/ui/dot-background.d.ts +1 -0
  274. package/dist/types/components/ui/dot-background.d.ts.map +1 -0
  275. package/dist/types/components/ui/drawer.d.ts +1 -0
  276. package/dist/types/components/ui/drawer.d.ts.map +1 -0
  277. package/dist/types/components/ui/dropdown-menu.d.ts +1 -0
  278. package/dist/types/components/ui/dropdown-menu.d.ts.map +1 -0
  279. package/dist/types/components/ui/dropdrawer.d.ts +24 -0
  280. package/dist/types/components/ui/dropdrawer.d.ts.map +1 -0
  281. package/dist/types/components/ui/fireworks-background.d.ts +1 -0
  282. package/dist/types/components/ui/fireworks-background.d.ts.map +1 -0
  283. package/dist/types/components/ui/flip-button.d.ts +1 -0
  284. package/dist/types/components/ui/flip-button.d.ts.map +1 -0
  285. package/dist/types/components/ui/form.d.ts +1 -0
  286. package/dist/types/components/ui/form.d.ts.map +1 -0
  287. package/dist/types/components/ui/gradient-background.d.ts +1 -0
  288. package/dist/types/components/ui/gradient-background.d.ts.map +1 -0
  289. package/dist/types/components/ui/gradient-text.d.ts +1 -0
  290. package/dist/types/components/ui/gradient-text.d.ts.map +1 -0
  291. package/dist/types/components/ui/highlight-text.d.ts +1 -0
  292. package/dist/types/components/ui/highlight-text.d.ts.map +1 -0
  293. package/dist/types/components/ui/hole-background.d.ts +1 -0
  294. package/dist/types/components/ui/hole-background.d.ts.map +1 -0
  295. package/dist/types/components/ui/hover-card.d.ts +1 -0
  296. package/dist/types/components/ui/hover-card.d.ts.map +1 -0
  297. package/dist/types/components/ui/input-otp.d.ts +1 -0
  298. package/dist/types/components/ui/input-otp.d.ts.map +1 -0
  299. package/dist/types/components/ui/input.d.ts +1 -0
  300. package/dist/types/components/ui/input.d.ts.map +1 -0
  301. package/dist/types/components/ui/label.d.ts +1 -0
  302. package/dist/types/components/ui/label.d.ts.map +1 -0
  303. package/dist/types/components/ui/menubar.d.ts +1 -0
  304. package/dist/types/components/ui/menubar.d.ts.map +1 -0
  305. package/dist/types/components/ui/navigation-menu.d.ts +1 -0
  306. package/dist/types/components/ui/navigation-menu.d.ts.map +1 -0
  307. package/dist/types/components/ui/pagination.d.ts +1 -0
  308. package/dist/types/components/ui/pagination.d.ts.map +1 -0
  309. package/dist/types/components/ui/popover.d.ts +1 -0
  310. package/dist/types/components/ui/popover.d.ts.map +1 -0
  311. package/dist/types/components/ui/progress.d.ts +1 -0
  312. package/dist/types/components/ui/progress.d.ts.map +1 -0
  313. package/dist/types/components/ui/radio-group.d.ts +1 -0
  314. package/dist/types/components/ui/radio-group.d.ts.map +1 -0
  315. package/dist/types/components/ui/resizable.d.ts +1 -0
  316. package/dist/types/components/ui/resizable.d.ts.map +1 -0
  317. package/dist/types/components/ui/ripple-button.d.ts +1 -0
  318. package/dist/types/components/ui/ripple-button.d.ts.map +1 -0
  319. package/dist/types/components/ui/scratcher.d.ts +1 -0
  320. package/dist/types/components/ui/scratcher.d.ts.map +1 -0
  321. package/dist/types/components/ui/scroll-area.d.ts +1 -0
  322. package/dist/types/components/ui/scroll-area.d.ts.map +1 -0
  323. package/dist/types/components/ui/select.d.ts +1 -0
  324. package/dist/types/components/ui/select.d.ts.map +1 -0
  325. package/dist/types/components/ui/separator.d.ts +1 -0
  326. package/dist/types/components/ui/separator.d.ts.map +1 -0
  327. package/dist/types/components/ui/sheet.d.ts +1 -0
  328. package/dist/types/components/ui/sheet.d.ts.map +1 -0
  329. package/dist/types/components/ui/sidebar.d.ts +1 -0
  330. package/dist/types/components/ui/sidebar.d.ts.map +1 -0
  331. package/dist/types/components/ui/skeleton.d.ts +1 -0
  332. package/dist/types/components/ui/skeleton.d.ts.map +1 -0
  333. package/dist/types/components/ui/slider.d.ts +1 -0
  334. package/dist/types/components/ui/slider.d.ts.map +1 -0
  335. package/dist/types/components/ui/sonner.d.ts +1 -0
  336. package/dist/types/components/ui/sonner.d.ts.map +1 -0
  337. package/dist/types/components/ui/switch.d.ts +1 -0
  338. package/dist/types/components/ui/switch.d.ts.map +1 -0
  339. package/dist/types/components/ui/table.d.ts +1 -0
  340. package/dist/types/components/ui/table.d.ts.map +1 -0
  341. package/dist/types/components/ui/tabs.d.ts +1 -0
  342. package/dist/types/components/ui/tabs.d.ts.map +1 -0
  343. package/dist/types/components/ui/textarea.d.ts +1 -0
  344. package/dist/types/components/ui/textarea.d.ts.map +1 -0
  345. package/dist/types/components/ui/toggle-group.d.ts +1 -0
  346. package/dist/types/components/ui/toggle-group.d.ts.map +1 -0
  347. package/dist/types/components/ui/toggle.d.ts +1 -0
  348. package/dist/types/components/ui/toggle.d.ts.map +1 -0
  349. package/dist/types/components/ui/tooltip.d.ts +1 -0
  350. package/dist/types/components/ui/tooltip.d.ts.map +1 -0
  351. package/dist/types/hooks/use-mobile.d.ts +24 -0
  352. package/dist/types/hooks/use-mobile.d.ts.map +1 -0
  353. package/dist/types/index.d.ts +2 -0
  354. package/dist/types/index.d.ts.map +1 -0
  355. package/dist/types/lib/utils.d.ts +1 -0
  356. package/dist/types/lib/utils.d.ts.map +1 -0
  357. package/package.json +103 -71
  358. package/src/components/ui/accordion.tsx +1 -1
  359. package/src/components/ui/alert-dialog.tsx +4 -4
  360. package/src/components/ui/alert.tsx +3 -3
  361. package/src/components/ui/avatar.tsx +2 -2
  362. package/src/components/ui/background-beams.tsx +3 -3
  363. package/src/components/ui/badge.tsx +1 -1
  364. package/src/components/ui/breadcrumb.tsx +3 -3
  365. package/src/components/ui/bubble-background.tsx +4 -4
  366. package/src/components/ui/button.tsx +1 -1
  367. package/src/components/ui/calendar.tsx +213 -75
  368. package/src/components/ui/card.tsx +4 -4
  369. package/src/components/ui/carousel.tsx +6 -6
  370. package/src/components/ui/chart.tsx +66 -39
  371. package/src/components/ui/checkbox.tsx +1 -1
  372. package/src/components/ui/command.tsx +14 -7
  373. package/src/components/ui/context-menu.tsx +9 -9
  374. package/src/components/ui/counting-number.tsx +4 -4
  375. package/src/components/ui/dialog.tsx +17 -9
  376. package/src/components/ui/dot-background.tsx +2 -2
  377. package/src/components/ui/drawer.tsx +8 -5
  378. package/src/components/ui/dropdown-menu.tsx +9 -9
  379. package/src/components/ui/dropdrawer.tsx +973 -0
  380. package/src/components/ui/fireworks-background.tsx +12 -12
  381. package/src/components/ui/flip-button.tsx +6 -6
  382. package/src/components/ui/form.tsx +6 -6
  383. package/src/components/ui/gradient-background.tsx +3 -3
  384. package/src/components/ui/gradient-text.tsx +2 -2
  385. package/src/components/ui/highlight-text.tsx +3 -3
  386. package/src/components/ui/hole-background.tsx +9 -9
  387. package/src/components/ui/hover-card.tsx +1 -1
  388. package/src/components/ui/input-otp.tsx +2 -2
  389. package/src/components/ui/input.tsx +5 -6
  390. package/src/components/ui/label.tsx +1 -1
  391. package/src/components/ui/menubar.tsx +11 -11
  392. package/src/components/ui/navigation-menu.tsx +8 -8
  393. package/src/components/ui/pagination.tsx +1 -1
  394. package/src/components/ui/popover.tsx +1 -1
  395. package/src/components/ui/progress.tsx +1 -1
  396. package/src/components/ui/radio-group.tsx +1 -1
  397. package/src/components/ui/resizable.tsx +3 -3
  398. package/src/components/ui/ripple-button.tsx +7 -7
  399. package/src/components/ui/scratcher.tsx +1 -1
  400. package/src/components/ui/scroll-area.tsx +1 -1
  401. package/src/components/ui/select.tsx +8 -8
  402. package/src/components/ui/separator.tsx +2 -2
  403. package/src/components/ui/sheet.tsx +4 -4
  404. package/src/components/ui/sidebar.tsx +18 -18
  405. package/src/components/ui/skeleton.tsx +1 -1
  406. package/src/components/ui/slider.tsx +6 -6
  407. package/src/components/ui/switch.tsx +2 -2
  408. package/src/components/ui/table.tsx +5 -5
  409. package/src/components/ui/tabs.tsx +2 -2
  410. package/src/components/ui/textarea.tsx +1 -1
  411. package/src/components/ui/toggle-group.tsx +2 -2
  412. package/src/components/ui/toggle.tsx +1 -1
  413. package/src/components/ui/tooltip.tsx +1 -1
  414. package/src/hooks/use-mobile.tsx +44 -19
  415. package/src/index.css +68 -68
  416. package/src/index.ts +400 -385
  417. package/src/lib/utils.ts +10 -10
  418. package/tailwind.config.mjs +65 -65
  419. package/tsconfig.json +58 -50
  420. package/changelog.md +0 -38
  421. package/readme.md +0 -214
@@ -1,33 +1,33 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__ from "@radix-ui/react-popover";
5
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
+ import { Anchor, Content, Portal, Root, Trigger } from "@radix-ui/react-popover";
5
+ import { cn } from "../../lib/utils.js";
6
6
  function Popover({ ...props }) {
7
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__.Root, {
7
+ return /*#__PURE__*/ jsx(Root, {
8
8
  "data-slot": "popover",
9
9
  ...props
10
10
  });
11
11
  }
12
12
  function PopoverTrigger({ ...props }) {
13
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__.Trigger, {
13
+ return /*#__PURE__*/ jsx(Trigger, {
14
14
  "data-slot": "popover-trigger",
15
15
  ...props
16
16
  });
17
17
  }
18
18
  function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
19
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__.Portal, {
20
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__.Content, {
19
+ return /*#__PURE__*/ jsx(Portal, {
20
+ children: /*#__PURE__*/ jsx(Content, {
21
21
  "data-slot": "popover-content",
22
22
  align: align,
23
23
  sideOffset: sideOffset,
24
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
24
+ className: cn("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
25
25
  ...props
26
26
  })
27
27
  });
28
28
  }
29
29
  function PopoverAnchor({ ...props }) {
30
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_popover_e2827c9f__.Anchor, {
30
+ return /*#__PURE__*/ jsx(Anchor, {
31
31
  "data-slot": "popover-anchor",
32
32
  ...props
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\popover.js","sources":["webpack://@arolariu/components/./src/components/ui/popover.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","PopoverAnchor"],"mappings":";;;;;AAOA,SAASA,QAAQ,EACf,GAAGC,OACgD;IACnD,OAAO,WAAP,GAAO,gEAACC,6DAAAA,IAAqB;QAAC,aAAU;QAAW,GAAGD,KAAK;;AAC7D;AAEA,SAASE,eAAe,EACtB,GAAGF,OACmD;IACtD,OAAO,WAAP,GAAO,gEAACC,6DAAAA,OAAwB;QAAC,aAAU;QAAmB,GAAGD,KAAK;;AACxE;AAEA,SAASG,eAAe,EACtBC,SAAS,EACTC,QAAQ,QAAQ,EAChBC,aAAa,CAAC,EACd,GAAGN,OACmD;IACtD,OACE,WADF,GACE,gEAACC,6DAAAA,MAAuB;kBACtB,8EAACA,6DAAAA,OAAwB;YACvB,aAAU;YACV,OAAOI;YACP,YAAYC;YACZ,WAAWC,IAAAA,mDAAAA,EAAAA,EACT,6iBACAH;YAED,GAAGJ,KAAK;;;AAIjB;AAEA,SAASQ,cAAc,EACrB,GAAGR,OACkD;IACrD,OAAO,WAAP,GAAO,gEAACC,6DAAAA,MAAuB;QAAC,aAAU;QAAkB,GAAGD,KAAK;;AACtE"}
1
+ {"version":3,"file":"components\\ui\\popover.js","sources":["webpack://@arolariu/components/./src/components/ui/popover.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","cn","PopoverAnchor"],"mappings":";;;;;AAOA,SAASA,QAAQ,EACf,GAAGC,OACgD;IACnD,OAAO,WAAP,GAAO,IAACC,MAAqB;QAAC,aAAU;QAAW,GAAGD,KAAK;;AAC7D;AAEA,SAASE,eAAe,EACtB,GAAGF,OACmD;IACtD,OAAO,WAAP,GAAO,IAACC,SAAwB;QAAC,aAAU;QAAmB,GAAGD,KAAK;;AACxE;AAEA,SAASG,eAAe,EACtBC,SAAS,EACTC,QAAQ,QAAQ,EAChBC,aAAa,CAAC,EACd,GAAGN,OACmD;IACtD,OAAO,WAAP,GACE,IAACC,QAAuB;kBACtB,kBAACA,SAAwB;YACvB,aAAU;YACV,OAAOI;YACP,YAAYC;YACZ,WAAWC,GACT,6iBACAH;YAED,GAAGJ,KAAK;;;AAIjB;AAEA,SAASQ,cAAc,EACrB,GAAGR,OACkD;IACrD,OAAO,WAAP,GAAO,IAACC,QAAuB;QAAC,aAAU;QAAkB,GAAGD,KAAK;;AACtE"}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE__radix_ui_react_progress_84970133__ from "@radix-ui/react-progress";
5
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
+ import { Indicator, Root } from "@radix-ui/react-progress";
5
+ import { cn } from "../../lib/utils.js";
6
6
  function Progress({ className, value, ...props }) {
7
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_progress_84970133__.Root, {
7
+ return /*#__PURE__*/ jsx(Root, {
8
8
  "data-slot": "progress",
9
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("bg-neutral-900/20 relative h-2 w-full overflow-hidden rounded-full dark:bg-neutral-50/20", className),
9
+ className: cn("bg-neutral-900/20 relative h-2 w-full overflow-hidden rounded-full dark:bg-neutral-50/20", className),
10
10
  ...props,
11
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_progress_84970133__.Indicator, {
11
+ children: /*#__PURE__*/ jsx(Indicator, {
12
12
  "data-slot": "progress-indicator",
13
13
  className: "bg-neutral-900 h-full w-full flex-1 transition-all dark:bg-neutral-50",
14
14
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\progress.js","sources":["webpack://@arolariu/components/./src/components/ui/progress.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-neutral-900/20 relative h-2 w-full overflow-hidden rounded-full dark:bg-neutral-50/20\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-neutral-900 h-full w-full flex-1 transition-all dark:bg-neutral-50\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n"],"names":["Progress","className","value","props","ProgressPrimitive","cn"],"mappings":";;;;;AAOA,SAASA,SAAS,EAChBC,SAAS,EACTC,KAAK,EACL,GAAGC,OACiD;IACpD,OACE,WADF,GACE,gEAACC,8DAAAA,IAAsB;QACrB,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EACT,4FACAJ;QAED,GAAGE,KAAK;kBAET,8EAACC,8DAAAA,SAA2B;YAC1B,aAAU;YACV,WAAU;YACV,OAAO;gBAAE,WAAW,CAAC,YAAY,EAAE,MAAOF,CAAAA,SAAS,GAAG,EAAE,CAAC;YAAC;;;AAIlE"}
1
+ {"version":3,"file":"components\\ui\\progress.js","sources":["webpack://@arolariu/components/./src/components/ui/progress.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-neutral-900/20 relative h-2 w-full overflow-hidden rounded-full dark:bg-neutral-50/20\",\n className,\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-neutral-900 h-full w-full flex-1 transition-all dark:bg-neutral-50\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n"],"names":["Progress","className","value","props","ProgressPrimitive","cn"],"mappings":";;;;;AAOA,SAASA,SAAS,EAChBC,SAAS,EACTC,KAAK,EACL,GAAGC,OACiD;IACpD,OAAO,WAAP,GACE,IAACC,MAAsB;QACrB,aAAU;QACV,WAAWC,GACT,4FACAJ;QAED,GAAGE,KAAK;kBAET,kBAACC,WAA2B;YAC1B,aAAU;YACV,WAAU;YACV,OAAO;gBAAE,WAAW,CAAC,YAAY,EAAE,MAAOF,CAAAA,SAAS,GAAG,EAAE,CAAC;YAAC;;;AAIlE"}
@@ -1,25 +1,25 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE__radix_ui_react_radio_group_e8f239af__ from "@radix-ui/react-radio-group";
5
- import * as __WEBPACK_EXTERNAL_MODULE_lucide_react_f128bbbb__ from "lucide-react";
6
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
+ import { Indicator, Item, Root } from "@radix-ui/react-radio-group";
5
+ import { CircleIcon } from "lucide-react";
6
+ import { cn } from "../../lib/utils.js";
7
7
  function RadioGroup({ className, ...props }) {
8
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_radio_group_e8f239af__.Root, {
8
+ return /*#__PURE__*/ jsx(Root, {
9
9
  "data-slot": "radio-group",
10
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("grid gap-3", className),
10
+ className: cn("grid gap-3", className),
11
11
  ...props
12
12
  });
13
13
  }
14
14
  function RadioGroupItem({ className, ...props }) {
15
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_radio_group_e8f239af__.Item, {
15
+ return /*#__PURE__*/ jsx(Item, {
16
16
  "data-slot": "radio-group-item",
17
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("border-neutral-200 text-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:bg-neutral-200/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 dark:dark:bg-neutral-800/30", className),
17
+ className: cn("border-neutral-200 text-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:bg-neutral-200/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 dark:dark:bg-neutral-800/30", className),
18
18
  ...props,
19
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_radio_group_e8f239af__.Indicator, {
19
+ children: /*#__PURE__*/ jsx(Indicator, {
20
20
  "data-slot": "radio-group-indicator",
21
21
  className: "relative flex items-center justify-center",
22
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_lucide_react_f128bbbb__.CircleIcon, {
22
+ children: /*#__PURE__*/ jsx(CircleIcon, {
23
23
  className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"
24
24
  })
25
25
  })
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\radio-group.js","sources":["webpack://@arolariu/components/./src/components/ui/radio-group.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-neutral-200 text-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:bg-neutral-200/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 dark:dark:bg-neutral-800/30\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["RadioGroup","className","props","RadioGroupPrimitive","cn","RadioGroupItem","CircleIcon"],"mappings":";;;;;;AAQA,SAASA,WAAW,EAClBC,SAAS,EACT,GAAGC,OACmD;IACtD,OACE,WADF,GACE,gEAACC,iEAAAA,IAAwB;QACvB,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EAAG,cAAcH;QAC3B,GAAGC,KAAK;;AAGf;AAEA,SAASG,eAAe,EACtBJ,SAAS,EACT,GAAGC,OACmD;IACtD,OACE,WADF,GACE,gEAACC,iEAAAA,IAAwB;QACvB,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EACT,4oBACAH;QAED,GAAGC,KAAK;kBAET,8EAACC,iEAAAA,SAA6B;YAC5B,aAAU;YACV,WAAU;sBAEV,8EAACG,kDAAAA,UAAUA,EAAAA;gBAAC,WAAU;;;;AAI9B"}
1
+ {"version":3,"file":"components\\ui\\radio-group.js","sources":["webpack://@arolariu/components/./src/components/ui/radio-group.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-neutral-200 text-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:bg-neutral-200/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 dark:dark:bg-neutral-800/30\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["RadioGroup","className","props","RadioGroupPrimitive","cn","RadioGroupItem","CircleIcon"],"mappings":";;;;;;AAQA,SAASA,WAAW,EAClBC,SAAS,EACT,GAAGC,OACmD;IACtD,OAAO,WAAP,GACE,IAACC,MAAwB;QACvB,aAAU;QACV,WAAWC,GAAG,cAAcH;QAC3B,GAAGC,KAAK;;AAGf;AAEA,SAASG,eAAe,EACtBJ,SAAS,EACT,GAAGC,OACmD;IACtD,OAAO,WAAP,GACE,IAACC,MAAwB;QACvB,aAAU;QACV,WAAWC,GACT,4oBACAH;QAED,GAAGC,KAAK;kBAET,kBAACC,WAA6B;YAC5B,aAAU;YACV,WAAU;sBAEV,kBAACG,YAAUA;gBAAC,WAAU;;;;AAI9B"}
@@ -1,30 +1,30 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE_lucide_react_f128bbbb__ from "lucide-react";
5
- import * as __WEBPACK_EXTERNAL_MODULE_react_resizable_panels_8d5960a0__ from "react-resizable-panels";
6
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
+ import { GripVerticalIcon } from "lucide-react";
5
+ import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
6
+ import { cn } from "../../lib/utils.js";
7
7
  function ResizablePanelGroup({ className, ...props }) {
8
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_resizable_panels_8d5960a0__.PanelGroup, {
8
+ return /*#__PURE__*/ jsx(PanelGroup, {
9
9
  "data-slot": "resizable-panel-group",
10
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
10
+ className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
11
11
  ...props
12
12
  });
13
13
  }
14
14
  function ResizablePanel({ ...props }) {
15
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_resizable_panels_8d5960a0__.Panel, {
15
+ return /*#__PURE__*/ jsx(Panel, {
16
16
  "data-slot": "resizable-panel",
17
17
  ...props
18
18
  });
19
19
  }
20
20
  function ResizableHandle({ withHandle, className, ...props }) {
21
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_resizable_panels_8d5960a0__.PanelResizeHandle, {
21
+ return /*#__PURE__*/ jsx(PanelResizeHandle, {
22
22
  "data-slot": "resizable-handle",
23
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("bg-neutral-200 focus-visible:ring-neutral-950 relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90 dark:bg-neutral-800 dark:focus-visible:ring-neutral-300", className),
23
+ className: cn("bg-neutral-200 focus-visible:ring-neutral-950 relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90 dark:bg-neutral-800 dark:focus-visible:ring-neutral-300", className),
24
24
  ...props,
25
- children: withHandle && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
25
+ children: withHandle && /*#__PURE__*/ jsx("div", {
26
26
  className: "bg-neutral-200 z-10 flex h-4 w-3 items-center justify-center rounded-xs border dark:bg-neutral-800",
27
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_lucide_react_f128bbbb__.GripVerticalIcon, {
27
+ children: /*#__PURE__*/ jsx(GripVerticalIcon, {
28
28
  className: "size-2.5"
29
29
  })
30
30
  })
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\resizable.js","sources":["webpack://@arolariu/components/./src/components/ui/resizable.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport { GripVerticalIcon } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {\n return (\n <ResizablePrimitive.PanelGroup\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.PanelResizeHandle\n data-slot=\"resizable-handle\"\n className={cn(\n \"bg-neutral-200 focus-visible:ring-neutral-950 relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90 dark:bg-neutral-800 dark:focus-visible:ring-neutral-300\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"bg-neutral-200 z-10 flex h-4 w-3 items-center justify-center rounded-xs border dark:bg-neutral-800\">\n <GripVerticalIcon className=\"size-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","ResizablePrimitive","cn","ResizablePanel","ResizableHandle","withHandle","GripVerticalIcon"],"mappings":";;;;;;AAQA,SAASA,oBAAoB,EAC3BC,SAAS,EACT,GAAGC,OACwD;IAC3D,OACE,WADF,GACE,gEAACC,4DAAAA,UAA6B;QAC5B,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EACT,qEACAH;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASG,eAAe,EACtB,GAAGH,OACmD;IACtD,OAAO,WAAP,GAAO,gEAACC,4DAAAA,KAAwB;QAAC,aAAU;QAAmB,GAAGD,KAAK;;AACxE;AAEA,SAASI,gBAAgB,EACvBC,UAAU,EACVN,SAAS,EACT,GAAGC,OAGJ;IACC,OACE,WADF,GACE,gEAACC,4DAAAA,iBAAoC;QACnC,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EACT,itBACAH;QAED,GAAGC,KAAK;kBAERK,cACC,WADDA,GACC,gEAAC;YAAI,WAAU;sBACb,8EAACC,kDAAAA,gBAAgBA,EAAAA;gBAAC,WAAU;;;;AAKtC"}
1
+ {"version":3,"file":"components\\ui\\resizable.js","sources":["webpack://@arolariu/components/./src/components/ui/resizable.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport { GripVerticalIcon } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {\n return (\n <ResizablePrimitive.PanelGroup\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.PanelResizeHandle\n data-slot=\"resizable-handle\"\n className={cn(\n \"bg-neutral-200 focus-visible:ring-neutral-950 relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90 dark:bg-neutral-800 dark:focus-visible:ring-neutral-300\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"bg-neutral-200 z-10 flex h-4 w-3 items-center justify-center rounded-xs border dark:bg-neutral-800\">\n <GripVerticalIcon className=\"size-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","ResizablePrimitive","cn","ResizablePanel","ResizableHandle","withHandle","GripVerticalIcon"],"mappings":";;;;;;AAQA,SAASA,oBAAoB,EAC3BC,SAAS,EACT,GAAGC,OACwD;IAC3D,OAAO,WAAP,GACE,IAACC,YAA6B;QAC5B,aAAU;QACV,WAAWC,GACT,qEACAH;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASG,eAAe,EACtB,GAAGH,OACmD;IACtD,OAAO,WAAP,GAAO,IAACC,OAAwB;QAAC,aAAU;QAAmB,GAAGD,KAAK;;AACxE;AAEA,SAASI,gBAAgB,EACvBC,UAAU,EACVN,SAAS,EACT,GAAGC,OAGJ;IACC,OAAO,WAAP,GACE,IAACC,mBAAoC;QACnC,aAAU;QACV,WAAWC,GACT,itBACAH;QAED,GAAGC,KAAK;kBAERK,cAAc,WAAdA,GACC,IAAC;YAAI,WAAU;sBACb,kBAACC,kBAAgBA;gBAAC,WAAU;;;;AAKtC"}
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
- import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__ from "motion/react";
5
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
6
- const RippleButton = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__.forwardRef(({ children, onClick, className, rippleClassName, scale = 10, transition = {
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useCallback, useImperativeHandle, useRef, useState } from "react";
4
+ import { motion } from "motion/react";
5
+ import { cn } from "../../lib/utils.js";
6
+ const RippleButton = /*#__PURE__*/ forwardRef(({ children, onClick, className, rippleClassName, scale = 10, transition = {
7
7
  duration: 0.6,
8
8
  ease: "easeOut"
9
9
  }, ...props }, ref)=>{
10
- const [ripples, setRipples] = __WEBPACK_EXTERNAL_MODULE_react__.useState([]);
11
- const buttonRef = __WEBPACK_EXTERNAL_MODULE_react__.useRef(null);
12
- __WEBPACK_EXTERNAL_MODULE_react__.useImperativeHandle(ref, ()=>buttonRef.current);
13
- const createRipple = __WEBPACK_EXTERNAL_MODULE_react__.useCallback((event)=>{
10
+ const [ripples, setRipples] = useState([]);
11
+ const buttonRef = useRef(null);
12
+ useImperativeHandle(ref, ()=>buttonRef.current);
13
+ const createRipple = useCallback((event)=>{
14
14
  const button = buttonRef.current;
15
15
  if (!button) return;
16
16
  const rect = button.getBoundingClientRect();
@@ -29,14 +29,14 @@ const RippleButton = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__.forwardRef(
29
29
  setRipples((prev)=>prev.filter((r)=>r.id !== newRipple.id));
30
30
  }, 600);
31
31
  }, []);
32
- const handleClick = __WEBPACK_EXTERNAL_MODULE_react__.useCallback((event)=>{
32
+ const handleClick = useCallback((event)=>{
33
33
  createRipple(event);
34
34
  if (onClick) onClick(event);
35
35
  }, [
36
36
  createRipple,
37
37
  onClick
38
38
  ]);
39
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__.motion.button, {
39
+ return /*#__PURE__*/ jsxs(motion.button, {
40
40
  ref: buttonRef,
41
41
  onClick: handleClick,
42
42
  whileTap: {
@@ -45,11 +45,11 @@ const RippleButton = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__.forwardRef(
45
45
  whileHover: {
46
46
  scale: 1.05
47
47
  },
48
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("relative h-10 px-4 py-2 text-sm font-medium text-primary-foreground overflow-hidden bg-primary cursor-pointer rounded-lg focus:outline-none", className),
48
+ className: cn("relative h-10 px-4 py-2 text-sm font-medium text-primary-foreground overflow-hidden bg-primary cursor-pointer rounded-lg focus:outline-none", className),
49
49
  ...props,
50
50
  children: [
51
51
  children,
52
- ripples.map((ripple)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__.motion.span, {
52
+ ripples.map((ripple)=>/*#__PURE__*/ jsx(motion.span, {
53
53
  initial: {
54
54
  scale: 0,
55
55
  opacity: 0.5
@@ -59,7 +59,7 @@ const RippleButton = /*#__PURE__*/ __WEBPACK_EXTERNAL_MODULE_react__.forwardRef(
59
59
  opacity: 0
60
60
  },
61
61
  transition: transition,
62
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("absolute bg-primary-foreground rounded-full size-5 pointer-events-none", rippleClassName),
62
+ className: cn("absolute bg-primary-foreground rounded-full size-5 pointer-events-none", rippleClassName),
63
63
  style: {
64
64
  top: ripple.y - 10,
65
65
  left: ripple.x - 10
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\ripple-button.js","sources":["webpack://@arolariu/components/./src/components/ui/ripple-button.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport { type HTMLMotionProps, motion, type Transition } from \"motion/react\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface Ripple {\n id: number;\n x: number;\n y: number;\n}\n\ninterface RippleButtonProps extends HTMLMotionProps<\"button\"> {\n children: React.ReactNode;\n rippleClassName?: string;\n scale?: number;\n transition?: Transition;\n}\n\nconst RippleButton = React.forwardRef<HTMLButtonElement, RippleButtonProps>(\n (\n {\n children,\n onClick,\n className,\n rippleClassName,\n scale = 10,\n transition = { duration: 0.6, ease: \"easeOut\" },\n ...props\n },\n ref\n ) => {\n const [ripples, setRipples] = React.useState<Ripple[]>([]);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n React.useImperativeHandle(\n ref,\n () => buttonRef.current as HTMLButtonElement\n );\n\n const createRipple = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const button = buttonRef.current;\n if (!button) return;\n\n const rect = button.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n const newRipple: Ripple = {\n id: Date.now(),\n x,\n y,\n };\n\n setRipples((prev) => [...prev, newRipple]);\n\n setTimeout(() => {\n setRipples((prev) => prev.filter((r) => r.id !== newRipple.id));\n }, 600);\n },\n []\n );\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n createRipple(event);\n if (onClick) {\n onClick(event);\n }\n },\n [createRipple, onClick]\n );\n\n return (\n <motion.button\n ref={buttonRef}\n onClick={handleClick}\n whileTap={{ scale: 0.95 }}\n whileHover={{ scale: 1.05 }}\n className={cn(\n \"relative h-10 px-4 py-2 text-sm font-medium text-primary-foreground overflow-hidden bg-primary cursor-pointer rounded-lg focus:outline-none\",\n className\n )}\n {...props}\n >\n {children}\n {ripples.map((ripple) => (\n <motion.span\n key={ripple.id}\n initial={{ scale: 0, opacity: 0.5 }}\n animate={{ scale, opacity: 0 }}\n transition={transition}\n className={cn(\n \"absolute bg-primary-foreground rounded-full size-5 pointer-events-none\",\n rippleClassName\n )}\n style={{\n top: ripple.y - 10,\n left: ripple.x - 10,\n }}\n />\n ))}\n </motion.button>\n );\n }\n);\n\nRippleButton.displayName = \"RippleButton\";\n\nexport { RippleButton, type RippleButtonProps };\n"],"names":["RippleButton","React","children","onClick","className","rippleClassName","scale","transition","props","ref","ripples","setRipples","buttonRef","createRipple","event","button","rect","x","y","newRipple","Date","prev","setTimeout","r","handleClick","motion","cn","ripple"],"mappings":";;;;;AAoBA,MAAMA,eAAe,WAAfA,GAAeC,kCAAAA,UAAgB,CACnC,CACE,EACEC,QAAQ,EACRC,OAAO,EACPC,SAAS,EACTC,eAAe,EACfC,QAAQ,EAAE,EACVC,aAAa;IAAE,UAAU;IAAK,MAAM;AAAU,CAAC,EAC/C,GAAGC,OACJ,EACDC;IAEA,MAAM,CAACC,SAASC,WAAW,GAAGV,kCAAAA,QAAc,CAAW,EAAE;IACzD,MAAMW,YAAYX,kCAAAA,MAAY,CAAoB;IAClDA,kCAAAA,mBAAyB,CACvBQ,KACA,IAAMG,UAAU,OAAO;IAGzB,MAAMC,eAAeZ,kCAAAA,WAAiB,CACpC,CAACa;QACC,MAAMC,SAASH,UAAU,OAAO;QAChC,IAAI,CAACG,QAAQ;QAEb,MAAMC,OAAOD,OAAO,qBAAqB;QACzC,MAAME,IAAIH,MAAM,OAAO,GAAGE,KAAK,IAAI;QACnC,MAAME,IAAIJ,MAAM,OAAO,GAAGE,KAAK,GAAG;QAElC,MAAMG,YAAoB;YACxB,IAAIC,KAAK,GAAG;YACZH;YACAC;QACF;QAEAP,WAAW,CAACU,OAAS;mBAAIA;gBAAMF;aAAU;QAEzCG,WAAW;YACTX,WAAW,CAACU,OAASA,KAAK,MAAM,CAAC,CAACE,IAAMA,EAAE,EAAE,KAAKJ,UAAU,EAAE;QAC/D,GAAG;IACL,GACA,EAAE;IAGJ,MAAMK,cAAcvB,kCAAAA,WAAiB,CACnC,CAACa;QACCD,aAAaC;QACb,IAAIX,SACFA,QAAQW;IAEZ,GACA;QAACD;QAAcV;KAAQ;IAGzB,OACE,WADF,GACE,iEAACsB,kDAAAA,MAAAA,CAAAA,MAAa;QACZ,KAAKb;QACL,SAASY;QACT,UAAU;YAAE,OAAO;QAAK;QACxB,YAAY;YAAE,OAAO;QAAK;QAC1B,WAAWE,IAAAA,mDAAAA,EAAAA,EACT,+IACAtB;QAED,GAAGI,KAAK;;YAERN;YACAQ,QAAQ,GAAG,CAAC,CAACiB,SACZ,WADYA,GACZ,gEAACF,kDAAAA,MAAAA,CAAAA,IAAW;oBAEV,SAAS;wBAAE,OAAO;wBAAG,SAAS;oBAAI;oBAClC,SAAS;wBAAEnB;wBAAO,SAAS;oBAAE;oBAC7B,YAAYC;oBACZ,WAAWmB,IAAAA,mDAAAA,EAAAA,EACT,0EACArB;oBAEF,OAAO;wBACL,KAAKsB,OAAO,CAAC,GAAG;wBAChB,MAAMA,OAAO,CAAC,GAAG;oBACnB;mBAXKA,OAAO,EAAE;;;AAgBxB;AAGF3B,aAAa,WAAW,GAAG"}
1
+ {"version":3,"file":"components\\ui\\ripple-button.js","sources":["webpack://@arolariu/components/./src/components/ui/ripple-button.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport { type HTMLMotionProps, motion, type Transition } from \"motion/react\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface Ripple {\n id: number;\n x: number;\n y: number;\n}\n\ninterface RippleButtonProps extends HTMLMotionProps<\"button\"> {\n children: React.ReactNode;\n rippleClassName?: string;\n scale?: number;\n transition?: Transition;\n}\n\nconst RippleButton = React.forwardRef<HTMLButtonElement, RippleButtonProps>(\n (\n {\n children,\n onClick,\n className,\n rippleClassName,\n scale = 10,\n transition = { duration: 0.6, ease: \"easeOut\" },\n ...props\n },\n ref,\n ) => {\n const [ripples, setRipples] = React.useState<Ripple[]>([]);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n React.useImperativeHandle(\n ref,\n () => buttonRef.current as HTMLButtonElement,\n );\n\n const createRipple = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const button = buttonRef.current;\n if (!button) return;\n\n const rect = button.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n const newRipple: Ripple = {\n id: Date.now(),\n x,\n y,\n };\n\n setRipples((prev) => [...prev, newRipple]);\n\n setTimeout(() => {\n setRipples((prev) => prev.filter((r) => r.id !== newRipple.id));\n }, 600);\n },\n [],\n );\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n createRipple(event);\n if (onClick) {\n onClick(event);\n }\n },\n [createRipple, onClick],\n );\n\n return (\n <motion.button\n ref={buttonRef}\n onClick={handleClick}\n whileTap={{ scale: 0.95 }}\n whileHover={{ scale: 1.05 }}\n className={cn(\n \"relative h-10 px-4 py-2 text-sm font-medium text-primary-foreground overflow-hidden bg-primary cursor-pointer rounded-lg focus:outline-none\",\n className,\n )}\n {...props}\n >\n {children}\n {ripples.map((ripple) => (\n <motion.span\n key={ripple.id}\n initial={{ scale: 0, opacity: 0.5 }}\n animate={{ scale, opacity: 0 }}\n transition={transition}\n className={cn(\n \"absolute bg-primary-foreground rounded-full size-5 pointer-events-none\",\n rippleClassName,\n )}\n style={{\n top: ripple.y - 10,\n left: ripple.x - 10,\n }}\n />\n ))}\n </motion.button>\n );\n },\n);\n\nRippleButton.displayName = \"RippleButton\";\n\nexport { RippleButton, type RippleButtonProps };\n"],"names":["RippleButton","React","children","onClick","className","rippleClassName","scale","transition","props","ref","ripples","setRipples","buttonRef","createRipple","event","button","rect","x","y","newRipple","Date","prev","setTimeout","r","handleClick","motion","cn","ripple"],"mappings":";;;;;AAoBA,MAAMA,eAAe,WAAfA,GAAeC,WACnB,CACE,EACEC,QAAQ,EACRC,OAAO,EACPC,SAAS,EACTC,eAAe,EACfC,QAAQ,EAAE,EACVC,aAAa;IAAE,UAAU;IAAK,MAAM;AAAU,CAAC,EAC/C,GAAGC,OACJ,EACDC;IAEA,MAAM,CAACC,SAASC,WAAW,GAAGV,SAAyB,EAAE;IACzD,MAAMW,YAAYX,OAAgC;IAClDA,oBACEQ,KACA,IAAMG,UAAU,OAAO;IAGzB,MAAMC,eAAeZ,YACnB,CAACa;QACC,MAAMC,SAASH,UAAU,OAAO;QAChC,IAAI,CAACG,QAAQ;QAEb,MAAMC,OAAOD,OAAO,qBAAqB;QACzC,MAAME,IAAIH,MAAM,OAAO,GAAGE,KAAK,IAAI;QACnC,MAAME,IAAIJ,MAAM,OAAO,GAAGE,KAAK,GAAG;QAElC,MAAMG,YAAoB;YACxB,IAAIC,KAAK,GAAG;YACZH;YACAC;QACF;QAEAP,WAAW,CAACU,OAAS;mBAAIA;gBAAMF;aAAU;QAEzCG,WAAW;YACTX,WAAW,CAACU,OAASA,KAAK,MAAM,CAAC,CAACE,IAAMA,EAAE,EAAE,KAAKJ,UAAU,EAAE;QAC/D,GAAG;IACL,GACA,EAAE;IAGJ,MAAMK,cAAcvB,YAClB,CAACa;QACCD,aAAaC;QACb,IAAIX,SACFA,QAAQW;IAEZ,GACA;QAACD;QAAcV;KAAQ;IAGzB,OAAO,WAAP,GACE,KAACsB,OAAO,MAAM;QACZ,KAAKb;QACL,SAASY;QACT,UAAU;YAAE,OAAO;QAAK;QACxB,YAAY;YAAE,OAAO;QAAK;QAC1B,WAAWE,GACT,+IACAtB;QAED,GAAGI,KAAK;;YAERN;YACAQ,QAAQ,GAAG,CAAC,CAACiB,SAAAA,WAAAA,GACZ,IAACF,OAAO,IAAI;oBAEV,SAAS;wBAAE,OAAO;wBAAG,SAAS;oBAAI;oBAClC,SAAS;wBAAEnB;wBAAO,SAAS;oBAAE;oBAC7B,YAAYC;oBACZ,WAAWmB,GACT,0EACArB;oBAEF,OAAO;wBACL,KAAKsB,OAAO,CAAC,GAAG;wBAChB,MAAMA,OAAO,CAAC,GAAG;oBACnB;mBAXKA,OAAO,EAAE;;;AAgBxB;AAGF3B,aAAa,WAAW,GAAG"}
@@ -1,18 +1,18 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
- import * as __WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__ from "motion/react";
5
- import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../../lib/utils.js";
4
+ import { motion, useAnimation } from "motion/react";
5
+ import { useEffect, useRef, useState } from "react";
6
6
  const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, children, className, gradientColors = [
7
7
  "#A97CF8",
8
8
  "#F38CB8",
9
9
  "#FDCC92"
10
10
  ] })=>{
11
- const canvasRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
12
- const [isScratching, setIsScratching] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
13
- const [isComplete, setIsComplete] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
14
- const controls = (0, __WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__.useAnimation)();
15
- (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
11
+ const canvasRef = useRef(null);
12
+ const [isScratching, setIsScratching] = useState(false);
13
+ const [isComplete, setIsComplete] = useState(false);
14
+ const controls = useAnimation();
15
+ useEffect(()=>{
16
16
  const canvas = canvasRef.current;
17
17
  const ctx = canvas?.getContext("2d");
18
18
  if (canvas && ctx) {
@@ -28,7 +28,7 @@ const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, child
28
28
  }, [
29
29
  gradientColors
30
30
  ]);
31
- (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
31
+ useEffect(()=>{
32
32
  const handleDocumentMouseMove = (event)=>{
33
33
  if (!isScratching) return;
34
34
  scratch(event.clientX, event.clientY);
@@ -119,8 +119,8 @@ const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, child
119
119
  }
120
120
  }
121
121
  };
122
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__.motion.div, {
123
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("relative select-none", className),
122
+ return /*#__PURE__*/ jsxs(motion.div, {
123
+ className: cn("relative select-none", className),
124
124
  style: {
125
125
  width,
126
126
  height,
@@ -128,7 +128,7 @@ const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, child
128
128
  },
129
129
  animate: controls,
130
130
  children: [
131
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("canvas", {
131
+ /*#__PURE__*/ jsx("canvas", {
132
132
  ref: canvasRef,
133
133
  width: width,
134
134
  height: height,
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\scratcher.js","sources":["webpack://@arolariu/components/./src/components/ui/scratcher.tsx"],"sourcesContent":["\n\nimport { cn } from \"@/lib/utils\";\nimport { motion, useAnimation } from \"motion/react\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\ninterface ScratcherProps {\n children: React.ReactNode;\n width: number;\n height: number;\n minScratchPercentage?: number;\n className?: string;\n onComplete?: () => void;\n gradientColors?: [string, string, string];\n}\n\nexport const Scratcher: React.FC<ScratcherProps> = ({\n width,\n height,\n minScratchPercentage = 50,\n onComplete,\n children,\n className,\n gradientColors = [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"],\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [isScratching, setIsScratching] = useState(false);\n const [isComplete, setIsComplete] = useState(false);\n\n const controls = useAnimation();\n\n useEffect(() => {\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n ctx.fillStyle = \"#ccc\";\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const gradient = ctx.createLinearGradient(\n 0,\n 0,\n canvas.width,\n canvas.height\n );\n gradient.addColorStop(0, gradientColors[0]);\n gradient.addColorStop(0.5, gradientColors[1]);\n gradient.addColorStop(1, gradientColors[2]);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n }, [gradientColors]);\n\n useEffect(() => {\n const handleDocumentMouseMove = (event: MouseEvent) => {\n if (!isScratching) return;\n scratch(event.clientX, event.clientY);\n };\n\n const handleDocumentTouchMove = (event: TouchEvent) => {\n if (!isScratching) return;\n const touch = event.touches[0];\n scratch(touch.clientX, touch.clientY);\n };\n\n const handleDocumentMouseUp = () => {\n setIsScratching(false);\n checkCompletion();\n };\n\n const handleDocumentTouchEnd = () => {\n setIsScratching(false);\n checkCompletion();\n };\n\n document.addEventListener(\"mousedown\", handleDocumentMouseMove);\n document.addEventListener(\"mousemove\", handleDocumentMouseMove);\n document.addEventListener(\"touchstart\", handleDocumentTouchMove);\n document.addEventListener(\"touchmove\", handleDocumentTouchMove);\n document.addEventListener(\"mouseup\", handleDocumentMouseUp);\n document.addEventListener(\"touchend\", handleDocumentTouchEnd);\n document.addEventListener(\"touchcancel\", handleDocumentTouchEnd);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleDocumentMouseMove);\n document.removeEventListener(\"mousemove\", handleDocumentMouseMove);\n document.removeEventListener(\"touchstart\", handleDocumentTouchMove);\n document.removeEventListener(\"touchmove\", handleDocumentTouchMove);\n document.removeEventListener(\"mouseup\", handleDocumentMouseUp);\n document.removeEventListener(\"touchend\", handleDocumentTouchEnd);\n document.removeEventListener(\"touchcancel\", handleDocumentTouchEnd);\n };\n }, [isScratching]);\n\n const handleMouseDown = () => setIsScratching(true);\n\n const handleTouchStart = () => setIsScratching(true);\n\n const scratch = (clientX: number, clientY: number) => {\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n const rect = canvas.getBoundingClientRect();\n const x = clientX - rect.left + 16;\n const y = clientY - rect.top + 16;\n ctx.globalCompositeOperation = \"destination-out\";\n ctx.beginPath();\n ctx.arc(x, y, 30, 0, Math.PI * 2);\n ctx.fill();\n }\n };\n\n const startAnimation = async () => {\n await controls.start({\n scale: [1, 1.5, 1],\n rotate: [0, 10, -10, 10, -10, 0],\n transition: { duration: 0.5 },\n });\n\n // Call onComplete after animation finishes\n if (onComplete) {\n onComplete();\n }\n };\n\n const checkCompletion = () => {\n if (isComplete) return;\n\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const pixels = imageData.data;\n const totalPixels = pixels.length / 4;\n let clearPixels = 0;\n\n for (let i = 3; i < pixels.length; i += 4) {\n if (pixels[i] === 0) clearPixels++;\n }\n\n const percentage = (clearPixels / totalPixels) * 100;\n\n if (percentage >= minScratchPercentage) {\n setIsComplete(true);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n startAnimation();\n }\n }\n };\n\n return (\n <motion.div\n className={cn(\"relative select-none\", className)}\n style={{\n width,\n height,\n cursor:\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto\",\n }}\n animate={controls}\n >\n <canvas\n ref={canvasRef}\n width={width}\n height={height}\n className=\"absolute left-0 top-0\"\n onMouseDown={handleMouseDown}\n onTouchStart={handleTouchStart}\n ></canvas>\n {children}\n </motion.div>\n );\n};\n"],"names":["Scratcher","width","height","minScratchPercentage","onComplete","children","className","gradientColors","canvasRef","useRef","isScratching","setIsScratching","useState","isComplete","setIsComplete","controls","useAnimation","useEffect","canvas","ctx","gradient","handleDocumentMouseMove","event","scratch","handleDocumentTouchMove","touch","handleDocumentMouseUp","checkCompletion","handleDocumentTouchEnd","document","handleMouseDown","handleTouchStart","clientX","clientY","rect","x","y","Math","startAnimation","imageData","pixels","totalPixels","clearPixels","i","percentage","motion","cn"],"mappings":"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"}
1
+ {"version":3,"file":"components\\ui\\scratcher.js","sources":["webpack://@arolariu/components/./src/components/ui/scratcher.tsx"],"sourcesContent":["\n\nimport { cn } from \"@/lib/utils\";\nimport { motion, useAnimation } from \"motion/react\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\ninterface ScratcherProps {\n children: React.ReactNode;\n width: number;\n height: number;\n minScratchPercentage?: number;\n className?: string;\n onComplete?: () => void;\n gradientColors?: [string, string, string];\n}\n\nexport const Scratcher: React.FC<ScratcherProps> = ({\n width,\n height,\n minScratchPercentage = 50,\n onComplete,\n children,\n className,\n gradientColors = [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"],\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [isScratching, setIsScratching] = useState(false);\n const [isComplete, setIsComplete] = useState(false);\n\n const controls = useAnimation();\n\n useEffect(() => {\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n ctx.fillStyle = \"#ccc\";\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const gradient = ctx.createLinearGradient(\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n gradient.addColorStop(0, gradientColors[0]);\n gradient.addColorStop(0.5, gradientColors[1]);\n gradient.addColorStop(1, gradientColors[2]);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n }, [gradientColors]);\n\n useEffect(() => {\n const handleDocumentMouseMove = (event: MouseEvent) => {\n if (!isScratching) return;\n scratch(event.clientX, event.clientY);\n };\n\n const handleDocumentTouchMove = (event: TouchEvent) => {\n if (!isScratching) return;\n const touch = event.touches[0];\n scratch(touch.clientX, touch.clientY);\n };\n\n const handleDocumentMouseUp = () => {\n setIsScratching(false);\n checkCompletion();\n };\n\n const handleDocumentTouchEnd = () => {\n setIsScratching(false);\n checkCompletion();\n };\n\n document.addEventListener(\"mousedown\", handleDocumentMouseMove);\n document.addEventListener(\"mousemove\", handleDocumentMouseMove);\n document.addEventListener(\"touchstart\", handleDocumentTouchMove);\n document.addEventListener(\"touchmove\", handleDocumentTouchMove);\n document.addEventListener(\"mouseup\", handleDocumentMouseUp);\n document.addEventListener(\"touchend\", handleDocumentTouchEnd);\n document.addEventListener(\"touchcancel\", handleDocumentTouchEnd);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleDocumentMouseMove);\n document.removeEventListener(\"mousemove\", handleDocumentMouseMove);\n document.removeEventListener(\"touchstart\", handleDocumentTouchMove);\n document.removeEventListener(\"touchmove\", handleDocumentTouchMove);\n document.removeEventListener(\"mouseup\", handleDocumentMouseUp);\n document.removeEventListener(\"touchend\", handleDocumentTouchEnd);\n document.removeEventListener(\"touchcancel\", handleDocumentTouchEnd);\n };\n }, [isScratching]);\n\n const handleMouseDown = () => setIsScratching(true);\n\n const handleTouchStart = () => setIsScratching(true);\n\n const scratch = (clientX: number, clientY: number) => {\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n const rect = canvas.getBoundingClientRect();\n const x = clientX - rect.left + 16;\n const y = clientY - rect.top + 16;\n ctx.globalCompositeOperation = \"destination-out\";\n ctx.beginPath();\n ctx.arc(x, y, 30, 0, Math.PI * 2);\n ctx.fill();\n }\n };\n\n const startAnimation = async () => {\n await controls.start({\n scale: [1, 1.5, 1],\n rotate: [0, 10, -10, 10, -10, 0],\n transition: { duration: 0.5 },\n });\n\n // Call onComplete after animation finishes\n if (onComplete) {\n onComplete();\n }\n };\n\n const checkCompletion = () => {\n if (isComplete) return;\n\n const canvas = canvasRef.current;\n const ctx = canvas?.getContext(\"2d\");\n if (canvas && ctx) {\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const pixels = imageData.data;\n const totalPixels = pixels.length / 4;\n let clearPixels = 0;\n\n for (let i = 3; i < pixels.length; i += 4) {\n if (pixels[i] === 0) clearPixels++;\n }\n\n const percentage = (clearPixels / totalPixels) * 100;\n\n if (percentage >= minScratchPercentage) {\n setIsComplete(true);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n startAnimation();\n }\n }\n };\n\n return (\n <motion.div\n className={cn(\"relative select-none\", className)}\n style={{\n width,\n height,\n cursor:\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto\",\n }}\n animate={controls}\n >\n <canvas\n ref={canvasRef}\n width={width}\n height={height}\n className=\"absolute left-0 top-0\"\n onMouseDown={handleMouseDown}\n onTouchStart={handleTouchStart}\n ></canvas>\n {children}\n </motion.div>\n );\n};\n"],"names":["Scratcher","width","height","minScratchPercentage","onComplete","children","className","gradientColors","canvasRef","useRef","isScratching","setIsScratching","useState","isComplete","setIsComplete","controls","useAnimation","useEffect","canvas","ctx","gradient","handleDocumentMouseMove","event","scratch","handleDocumentTouchMove","touch","handleDocumentMouseUp","checkCompletion","handleDocumentTouchEnd","document","handleMouseDown","handleTouchStart","clientX","clientY","rect","x","y","Math","startAnimation","imageData","pixels","totalPixels","clearPixels","i","percentage","motion","cn"],"mappings":"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"}
@@ -1,31 +1,31 @@
1
1
  "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import "react";
4
- import * as __WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__ from "@radix-ui/react-scroll-area";
5
- import * as __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__ from "../../lib/utils.js";
4
+ import { Corner, Root, ScrollAreaScrollbar, ScrollAreaThumb, Viewport } from "@radix-ui/react-scroll-area";
5
+ import { cn } from "../../lib/utils.js";
6
6
  function ScrollArea({ className, children, ...props }) {
7
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__.Root, {
7
+ return /*#__PURE__*/ jsxs(Root, {
8
8
  "data-slot": "scroll-area",
9
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("relative", className),
9
+ className: cn("relative", className),
10
10
  ...props,
11
11
  children: [
12
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__.Viewport, {
12
+ /*#__PURE__*/ jsx(Viewport, {
13
13
  "data-slot": "scroll-area-viewport",
14
14
  className: "focus-visible:ring-neutral-950/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 dark:focus-visible:ring-neutral-300/50",
15
15
  children: children
16
16
  }),
17
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ScrollBar, {}),
18
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__.Corner, {})
17
+ /*#__PURE__*/ jsx(ScrollBar, {}),
18
+ /*#__PURE__*/ jsx(Corner, {})
19
19
  ]
20
20
  });
21
21
  }
22
22
  function ScrollBar({ className, orientation = "vertical", ...props }) {
23
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__.ScrollAreaScrollbar, {
23
+ return /*#__PURE__*/ jsx(ScrollAreaScrollbar, {
24
24
  "data-slot": "scroll-area-scrollbar",
25
25
  orientation: orientation,
26
- className: (0, __WEBPACK_EXTERNAL_MODULE__lib_utils_js_c09d30d7__.cn)("flex touch-none p-px transition-colors select-none", "vertical" === orientation && "h-full w-2.5 border-l border-l-transparent", "horizontal" === orientation && "h-2.5 flex-col border-t border-t-transparent", className),
26
+ className: cn("flex touch-none p-px transition-colors select-none", "vertical" === orientation && "h-full w-2.5 border-l border-l-transparent", "horizontal" === orientation && "h-2.5 flex-col border-t border-t-transparent", className),
27
27
  ...props,
28
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__radix_ui_react_scroll_area_93228e9e__.ScrollAreaThumb, {
28
+ children: /*#__PURE__*/ jsx(ScrollAreaThumb, {
29
29
  "data-slot": "scroll-area-thumb",
30
30
  className: "bg-neutral-200 relative flex-1 rounded-full dark:bg-neutral-800"
31
31
  })
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\scroll-area.js","sources":["webpack://@arolariu/components/./src/components/ui/scroll-area.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-neutral-950/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 dark:focus-visible:ring-neutral-300/50\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-neutral-200 relative flex-1 rounded-full dark:bg-neutral-800\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","props","ScrollAreaPrimitive","cn","ScrollBar","orientation"],"mappings":";;;;;AAOA,SAASA,WAAW,EAClBC,SAAS,EACTC,QAAQ,EACR,GAAGC,OACmD;IACtD,OACE,WADF,GACE,iEAACC,iEAAAA,IAAwB;QACvB,aAAU;QACV,WAAWC,IAAAA,mDAAAA,EAAAA,EAAG,YAAYJ;QACzB,GAAGE,KAAK;;0BAET,gEAACC,iEAAAA,QAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAETF;;0BAEH,gEAACI,WAAAA,CAAAA;0BACD,gEAACF,iEAAAA,MAA0B;;;AAGjC;AAEA,SAASE,UAAU,EACjBL,SAAS,EACTM,cAAc,UAAU,EACxB,GAAGJ,OACkE;IACrE,OACE,WADF,GACE,gEAACC,iEAAAA,mBAAuC;QACtC,aAAU;QACV,aAAaG;QACb,WAAWF,IAAAA,mDAAAA,EAAAA,EACT,sDACAE,eAAAA,eACE,8CACFA,iBAAAA,eACE,gDACFN;QAED,GAAGE,KAAK;kBAET,8EAACC,iEAAAA,eAAmC;YAClC,aAAU;YACV,WAAU;;;AAIlB"}
1
+ {"version":3,"file":"components\\ui\\scroll-area.js","sources":["webpack://@arolariu/components/./src/components/ui/scroll-area.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-neutral-950/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 dark:focus-visible:ring-neutral-300/50\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-neutral-200 relative flex-1 rounded-full dark:bg-neutral-800\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","props","ScrollAreaPrimitive","cn","ScrollBar","orientation"],"mappings":";;;;;AAOA,SAASA,WAAW,EAClBC,SAAS,EACTC,QAAQ,EACR,GAAGC,OACmD;IACtD,OAAO,WAAP,GACE,KAACC,MAAwB;QACvB,aAAU;QACV,WAAWC,GAAG,YAAYJ;QACzB,GAAGE,KAAK;;0BAET,IAACC,UAA4B;gBAC3B,aAAU;gBACV,WAAU;0BAETF;;0BAEH,IAACI,WAAAA,CAAAA;0BACD,IAACF,QAA0B;;;AAGjC;AAEA,SAASE,UAAU,EACjBL,SAAS,EACTM,cAAc,UAAU,EACxB,GAAGJ,OACkE;IACrE,OAAO,WAAP,GACE,IAACC,qBAAuC;QACtC,aAAU;QACV,aAAaG;QACb,WAAWF,GACT,sDACAE,eAAAA,eACE,8CACFA,iBAAAA,eACE,gDACFN;QAED,GAAGE,KAAK;kBAET,kBAACC,iBAAmC;YAClC,aAAU;YACV,WAAU;;;AAIlB"}