@arolariu/components 0.0.39 → 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 (459) hide show
  1. package/CONTRIBUTING.md +371 -371
  2. package/DEBUGGING.md +3 -8
  3. package/EXAMPLES.md +1035 -1035
  4. package/README.md +1 -1
  5. package/{CHANGELOG.md → changelog.md} +15 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -0
  7. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  10. package/dist/components/ui/avatar.d.ts.map +1 -0
  11. package/dist/components/ui/background-beams.d.ts.map +1 -0
  12. package/dist/components/ui/badge.d.ts.map +1 -0
  13. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  14. package/dist/components/ui/bubble-background.d.ts.map +1 -0
  15. package/dist/{esm/components → components}/ui/bubble-background.js +1 -2
  16. package/dist/components/ui/bubble-background.js.map +1 -0
  17. package/dist/components/ui/button.d.ts.map +1 -0
  18. package/dist/components/ui/calendar.d.ts.map +1 -0
  19. package/dist/{esm/components → components}/ui/calendar.js +1 -1
  20. package/dist/components/ui/calendar.js.map +1 -0
  21. package/dist/components/ui/card.d.ts.map +1 -0
  22. package/dist/components/ui/carousel.d.ts.map +1 -0
  23. package/dist/components/ui/chart.d.ts +41 -0
  24. package/dist/components/ui/chart.d.ts.map +1 -0
  25. package/dist/{esm/components → components}/ui/chart.js +10 -10
  26. package/dist/components/ui/chart.js.map +1 -0
  27. package/dist/components/ui/checkbox.d.ts.map +1 -0
  28. package/dist/components/ui/collapsible.d.ts.map +1 -0
  29. package/dist/components/ui/command.d.ts.map +1 -0
  30. package/dist/components/ui/context-menu.d.ts.map +1 -0
  31. package/dist/components/ui/counting-number.d.ts.map +1 -0
  32. package/dist/components/ui/dialog.d.ts.map +1 -0
  33. package/dist/components/ui/dot-background.d.ts.map +1 -0
  34. package/dist/components/ui/drawer.d.ts.map +1 -0
  35. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  36. package/dist/components/ui/dropdrawer.d.ts.map +1 -0
  37. package/dist/components/ui/dropdrawer.js.map +1 -0
  38. package/dist/components/ui/fireworks-background.d.ts.map +1 -0
  39. package/dist/components/ui/flip-button.d.ts.map +1 -0
  40. package/dist/components/ui/form.d.ts.map +1 -0
  41. package/dist/components/ui/gradient-background.d.ts.map +1 -0
  42. package/dist/components/ui/gradient-text.d.ts.map +1 -0
  43. package/dist/components/ui/highlight-text.d.ts.map +1 -0
  44. package/dist/components/ui/hole-background.d.ts.map +1 -0
  45. package/dist/components/ui/hover-card.d.ts.map +1 -0
  46. package/dist/components/ui/input-otp.d.ts.map +1 -0
  47. package/dist/components/ui/input.d.ts.map +1 -0
  48. package/dist/components/ui/label.d.ts.map +1 -0
  49. package/dist/components/ui/menubar.d.ts.map +1 -0
  50. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  51. package/dist/components/ui/pagination.d.ts.map +1 -0
  52. package/dist/components/ui/popover.d.ts.map +1 -0
  53. package/dist/components/ui/progress.d.ts.map +1 -0
  54. package/dist/components/ui/radio-group.d.ts.map +1 -0
  55. package/dist/components/ui/resizable.d.ts.map +1 -0
  56. package/dist/components/ui/ripple-button.d.ts.map +1 -0
  57. package/dist/components/ui/scratcher.d.ts.map +1 -0
  58. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  59. package/dist/components/ui/select.d.ts.map +1 -0
  60. package/dist/components/ui/separator.d.ts.map +1 -0
  61. package/dist/components/ui/sheet.d.ts.map +1 -0
  62. package/dist/components/ui/sidebar.d.ts.map +1 -0
  63. package/dist/components/ui/skeleton.d.ts.map +1 -0
  64. package/dist/components/ui/slider.d.ts.map +1 -0
  65. package/dist/components/ui/sonner.d.ts.map +1 -0
  66. package/dist/components/ui/switch.d.ts.map +1 -0
  67. package/dist/components/ui/table.d.ts.map +1 -0
  68. package/dist/components/ui/tabs.d.ts.map +1 -0
  69. package/dist/components/ui/textarea.d.ts.map +1 -0
  70. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  71. package/dist/components/ui/toggle.d.ts.map +1 -0
  72. package/dist/components/ui/tooltip.d.ts.map +1 -0
  73. package/dist/hooks/use-mobile.d.ts.map +1 -0
  74. package/dist/index.css +26 -2
  75. package/dist/index.css.map +1 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +61 -61
  78. package/dist/lib/utils.d.ts.map +1 -0
  79. package/package.json +261 -332
  80. package/src/components/ui/bubble-background.tsx +189 -187
  81. package/src/components/ui/calendar.tsx +4 -1
  82. package/src/components/ui/chart.tsx +31 -58
  83. package/src/components/ui/dropdrawer.tsx +973 -973
  84. package/src/index.css +67 -69
  85. package/dist/cjs/components/ui/accordion.cjs +0 -92
  86. package/dist/cjs/components/ui/accordion.cjs.map +0 -1
  87. package/dist/cjs/components/ui/alert-dialog.cjs +0 -152
  88. package/dist/cjs/components/ui/alert-dialog.cjs.map +0 -1
  89. package/dist/cjs/components/ui/alert.cjs +0 -83
  90. package/dist/cjs/components/ui/alert.cjs.map +0 -1
  91. package/dist/cjs/components/ui/aspect-ratio.cjs +0 -47
  92. package/dist/cjs/components/ui/aspect-ratio.cjs.map +0 -1
  93. package/dist/cjs/components/ui/avatar.cjs +0 -69
  94. package/dist/cjs/components/ui/avatar.cjs.map +0 -1
  95. package/dist/cjs/components/ui/background-beams.cjs +0 -200
  96. package/dist/cjs/components/ui/background-beams.cjs.map +0 -1
  97. package/dist/cjs/components/ui/badge.cjs +0 -69
  98. package/dist/cjs/components/ui/badge.cjs.map +0 -1
  99. package/dist/cjs/components/ui/breadcrumb.cjs +0 -128
  100. package/dist/cjs/components/ui/breadcrumb.cjs.map +0 -1
  101. package/dist/cjs/components/ui/bubble-background.cjs +0 -214
  102. package/dist/cjs/components/ui/bubble-background.cjs.map +0 -1
  103. package/dist/cjs/components/ui/button.cjs +0 -80
  104. package/dist/cjs/components/ui/button.cjs.map +0 -1
  105. package/dist/cjs/components/ui/calendar.cjs +0 -146
  106. package/dist/cjs/components/ui/calendar.cjs.map +0 -1
  107. package/dist/cjs/components/ui/card.cjs +0 -108
  108. package/dist/cjs/components/ui/card.cjs.map +0 -1
  109. package/dist/cjs/components/ui/carousel.cjs +0 -207
  110. package/dist/cjs/components/ui/carousel.cjs.map +0 -1
  111. package/dist/cjs/components/ui/chart.cjs +0 -221
  112. package/dist/cjs/components/ui/chart.cjs.map +0 -1
  113. package/dist/cjs/components/ui/checkbox.cjs +0 -57
  114. package/dist/cjs/components/ui/checkbox.cjs.map +0 -1
  115. package/dist/cjs/components/ui/collapsible.cjs +0 -65
  116. package/dist/cjs/components/ui/collapsible.cjs.map +0 -1
  117. package/dist/cjs/components/ui/command.cjs +0 -159
  118. package/dist/cjs/components/ui/command.cjs.map +0 -1
  119. package/dist/cjs/components/ui/context-menu.cjs +0 -219
  120. package/dist/cjs/components/ui/context-menu.cjs.map +0 -1
  121. package/dist/cjs/components/ui/counting-number.cjs +0 -95
  122. package/dist/cjs/components/ui/counting-number.cjs.map +0 -1
  123. package/dist/cjs/components/ui/dialog.cjs +0 -156
  124. package/dist/cjs/components/ui/dialog.cjs.map +0 -1
  125. package/dist/cjs/components/ui/dot-background.cjs +0 -131
  126. package/dist/cjs/components/ui/dot-background.cjs.map +0 -1
  127. package/dist/cjs/components/ui/drawer.cjs +0 -147
  128. package/dist/cjs/components/ui/drawer.cjs.map +0 -1
  129. package/dist/cjs/components/ui/dropdown-menu.cjs +0 -220
  130. package/dist/cjs/components/ui/dropdown-menu.cjs.map +0 -1
  131. package/dist/cjs/components/ui/dropdrawer.cjs +0 -627
  132. package/dist/cjs/components/ui/dropdrawer.cjs.map +0 -1
  133. package/dist/cjs/components/ui/fireworks-background.cjs +0 -259
  134. package/dist/cjs/components/ui/fireworks-background.cjs.map +0 -1
  135. package/dist/cjs/components/ui/flip-button.cjs +0 -100
  136. package/dist/cjs/components/ui/flip-button.cjs.map +0 -1
  137. package/dist/cjs/components/ui/form.cjs +0 -149
  138. package/dist/cjs/components/ui/form.cjs.map +0 -1
  139. package/dist/cjs/components/ui/gradient-background.cjs +0 -60
  140. package/dist/cjs/components/ui/gradient-background.cjs.map +0 -1
  141. package/dist/cjs/components/ui/gradient-text.cjs +0 -83
  142. package/dist/cjs/components/ui/gradient-text.cjs.map +0 -1
  143. package/dist/cjs/components/ui/highlight-text.cjs +0 -74
  144. package/dist/cjs/components/ui/highlight-text.cjs.map +0 -1
  145. package/dist/cjs/components/ui/hole-background.cjs +0 -361
  146. package/dist/cjs/components/ui/hole-background.cjs.map +0 -1
  147. package/dist/cjs/components/ui/hover-card.cjs +0 -72
  148. package/dist/cjs/components/ui/hover-card.cjs.map +0 -1
  149. package/dist/cjs/components/ui/input-otp.cjs +0 -94
  150. package/dist/cjs/components/ui/input-otp.cjs.map +0 -1
  151. package/dist/cjs/components/ui/input.cjs +0 -49
  152. package/dist/cjs/components/ui/input.cjs.map +0 -1
  153. package/dist/cjs/components/ui/label.cjs +0 -49
  154. package/dist/cjs/components/ui/label.cjs.map +0 -1
  155. package/dist/cjs/components/ui/menubar.cjs +0 -233
  156. package/dist/cjs/components/ui/menubar.cjs.map +0 -1
  157. package/dist/cjs/components/ui/navigation-menu.cjs +0 -144
  158. package/dist/cjs/components/ui/navigation-menu.cjs.map +0 -1
  159. package/dist/cjs/components/ui/pagination.cjs +0 -142
  160. package/dist/cjs/components/ui/pagination.cjs.map +0 -1
  161. package/dist/cjs/components/ui/popover.cjs +0 -80
  162. package/dist/cjs/components/ui/popover.cjs.map +0 -1
  163. package/dist/cjs/components/ui/progress.cjs +0 -56
  164. package/dist/cjs/components/ui/progress.cjs.map +0 -1
  165. package/dist/cjs/components/ui/radio-group.cjs +0 -67
  166. package/dist/cjs/components/ui/radio-group.cjs.map +0 -1
  167. package/dist/cjs/components/ui/resizable.cjs +0 -75
  168. package/dist/cjs/components/ui/resizable.cjs.map +0 -1
  169. package/dist/cjs/components/ui/ripple-button.cjs +0 -108
  170. package/dist/cjs/components/ui/ripple-button.cjs.map +0 -1
  171. package/dist/cjs/components/ui/scratcher.cjs +0 -179
  172. package/dist/cjs/components/ui/scratcher.cjs.map +0 -1
  173. package/dist/cjs/components/ui/scroll-area.cjs +0 -73
  174. package/dist/cjs/components/ui/scroll-area.cjs.map +0 -1
  175. package/dist/cjs/components/ui/select.cjs +0 -177
  176. package/dist/cjs/components/ui/select.cjs.map +0 -1
  177. package/dist/cjs/components/ui/separator.cjs +0 -51
  178. package/dist/cjs/components/ui/separator.cjs.map +0 -1
  179. package/dist/cjs/components/ui/sheet.cjs +0 -150
  180. package/dist/cjs/components/ui/sheet.cjs.map +0 -1
  181. package/dist/cjs/components/ui/sidebar.cjs +0 -513
  182. package/dist/cjs/components/ui/sidebar.cjs.map +0 -1
  183. package/dist/cjs/components/ui/skeleton.cjs +0 -48
  184. package/dist/cjs/components/ui/skeleton.cjs.map +0 -1
  185. package/dist/cjs/components/ui/slider.cjs +0 -78
  186. package/dist/cjs/components/ui/slider.cjs.map +0 -1
  187. package/dist/cjs/components/ui/sonner.cjs +0 -58
  188. package/dist/cjs/components/ui/sonner.cjs.map +0 -1
  189. package/dist/cjs/components/ui/switch.cjs +0 -53
  190. package/dist/cjs/components/ui/switch.cjs.map +0 -1
  191. package/dist/cjs/components/ui/table.cjs +0 -122
  192. package/dist/cjs/components/ui/table.cjs.map +0 -1
  193. package/dist/cjs/components/ui/tabs.cjs +0 -79
  194. package/dist/cjs/components/ui/tabs.cjs.map +0 -1
  195. package/dist/cjs/components/ui/textarea.cjs +0 -48
  196. package/dist/cjs/components/ui/textarea.cjs.map +0 -1
  197. package/dist/cjs/components/ui/toggle-group.cjs +0 -80
  198. package/dist/cjs/components/ui/toggle-group.cjs.map +0 -1
  199. package/dist/cjs/components/ui/toggle.cjs +0 -74
  200. package/dist/cjs/components/ui/toggle.cjs.map +0 -1
  201. package/dist/cjs/components/ui/tooltip.cjs +0 -88
  202. package/dist/cjs/components/ui/tooltip.cjs.map +0 -1
  203. package/dist/cjs/hooks/use-mobile.cjs +0 -52
  204. package/dist/cjs/hooks/use-mobile.cjs.map +0 -1
  205. package/dist/cjs/index.cjs +0 -905
  206. package/dist/cjs/index.cjs.map +0 -1
  207. package/dist/cjs/index.css +0 -7309
  208. package/dist/cjs/index.css.map +0 -1
  209. package/dist/cjs/lib/utils.cjs +0 -42
  210. package/dist/cjs/lib/utils.cjs.map +0 -1
  211. package/dist/esm/components/ui/bubble-background.js.map +0 -1
  212. package/dist/esm/components/ui/calendar.js.map +0 -1
  213. package/dist/esm/components/ui/chart.js.map +0 -1
  214. package/dist/esm/components/ui/dropdrawer.js.map +0 -1
  215. package/dist/esm/index.css +0 -7309
  216. package/dist/esm/index.css.map +0 -1
  217. package/dist/esm/index.js +0 -62
  218. package/dist/types/components/ui/accordion.d.ts.map +0 -1
  219. package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
  220. package/dist/types/components/ui/alert.d.ts.map +0 -1
  221. package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
  222. package/dist/types/components/ui/avatar.d.ts.map +0 -1
  223. package/dist/types/components/ui/background-beams.d.ts.map +0 -1
  224. package/dist/types/components/ui/badge.d.ts.map +0 -1
  225. package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
  226. package/dist/types/components/ui/bubble-background.d.ts.map +0 -1
  227. package/dist/types/components/ui/button.d.ts.map +0 -1
  228. package/dist/types/components/ui/calendar.d.ts.map +0 -1
  229. package/dist/types/components/ui/card.d.ts.map +0 -1
  230. package/dist/types/components/ui/carousel.d.ts.map +0 -1
  231. package/dist/types/components/ui/chart.d.ts +0 -55
  232. package/dist/types/components/ui/chart.d.ts.map +0 -1
  233. package/dist/types/components/ui/checkbox.d.ts.map +0 -1
  234. package/dist/types/components/ui/collapsible.d.ts.map +0 -1
  235. package/dist/types/components/ui/command.d.ts.map +0 -1
  236. package/dist/types/components/ui/context-menu.d.ts.map +0 -1
  237. package/dist/types/components/ui/counting-number.d.ts.map +0 -1
  238. package/dist/types/components/ui/dialog.d.ts.map +0 -1
  239. package/dist/types/components/ui/dot-background.d.ts.map +0 -1
  240. package/dist/types/components/ui/drawer.d.ts.map +0 -1
  241. package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
  242. package/dist/types/components/ui/dropdrawer.d.ts.map +0 -1
  243. package/dist/types/components/ui/fireworks-background.d.ts.map +0 -1
  244. package/dist/types/components/ui/flip-button.d.ts.map +0 -1
  245. package/dist/types/components/ui/form.d.ts.map +0 -1
  246. package/dist/types/components/ui/gradient-background.d.ts.map +0 -1
  247. package/dist/types/components/ui/gradient-text.d.ts.map +0 -1
  248. package/dist/types/components/ui/highlight-text.d.ts.map +0 -1
  249. package/dist/types/components/ui/hole-background.d.ts.map +0 -1
  250. package/dist/types/components/ui/hover-card.d.ts.map +0 -1
  251. package/dist/types/components/ui/input-otp.d.ts.map +0 -1
  252. package/dist/types/components/ui/input.d.ts.map +0 -1
  253. package/dist/types/components/ui/label.d.ts.map +0 -1
  254. package/dist/types/components/ui/menubar.d.ts.map +0 -1
  255. package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
  256. package/dist/types/components/ui/pagination.d.ts.map +0 -1
  257. package/dist/types/components/ui/popover.d.ts.map +0 -1
  258. package/dist/types/components/ui/progress.d.ts.map +0 -1
  259. package/dist/types/components/ui/radio-group.d.ts.map +0 -1
  260. package/dist/types/components/ui/resizable.d.ts.map +0 -1
  261. package/dist/types/components/ui/ripple-button.d.ts.map +0 -1
  262. package/dist/types/components/ui/scratcher.d.ts.map +0 -1
  263. package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
  264. package/dist/types/components/ui/select.d.ts.map +0 -1
  265. package/dist/types/components/ui/separator.d.ts.map +0 -1
  266. package/dist/types/components/ui/sheet.d.ts.map +0 -1
  267. package/dist/types/components/ui/sidebar.d.ts.map +0 -1
  268. package/dist/types/components/ui/skeleton.d.ts.map +0 -1
  269. package/dist/types/components/ui/slider.d.ts.map +0 -1
  270. package/dist/types/components/ui/sonner.d.ts.map +0 -1
  271. package/dist/types/components/ui/switch.d.ts.map +0 -1
  272. package/dist/types/components/ui/table.d.ts.map +0 -1
  273. package/dist/types/components/ui/tabs.d.ts.map +0 -1
  274. package/dist/types/components/ui/textarea.d.ts.map +0 -1
  275. package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
  276. package/dist/types/components/ui/toggle.d.ts.map +0 -1
  277. package/dist/types/components/ui/tooltip.d.ts.map +0 -1
  278. package/dist/types/hooks/use-mobile.d.ts.map +0 -1
  279. package/dist/types/index.d.ts.map +0 -1
  280. package/dist/types/lib/utils.d.ts.map +0 -1
  281. package/tailwind.config.mjs +0 -65
  282. package/tsconfig.json +0 -58
  283. /package/{LICENSE → LICENSE.md} +0 -0
  284. /package/dist/{types/components → components}/ui/accordion.d.ts +0 -0
  285. /package/dist/{esm/components → components}/ui/accordion.js +0 -0
  286. /package/dist/{esm/components → components}/ui/accordion.js.map +0 -0
  287. /package/dist/{types/components → components}/ui/alert-dialog.d.ts +0 -0
  288. /package/dist/{esm/components → components}/ui/alert-dialog.js +0 -0
  289. /package/dist/{esm/components → components}/ui/alert-dialog.js.map +0 -0
  290. /package/dist/{types/components → components}/ui/alert.d.ts +0 -0
  291. /package/dist/{esm/components → components}/ui/alert.js +0 -0
  292. /package/dist/{esm/components → components}/ui/alert.js.map +0 -0
  293. /package/dist/{types/components → components}/ui/aspect-ratio.d.ts +0 -0
  294. /package/dist/{esm/components → components}/ui/aspect-ratio.js +0 -0
  295. /package/dist/{esm/components → components}/ui/aspect-ratio.js.map +0 -0
  296. /package/dist/{types/components → components}/ui/avatar.d.ts +0 -0
  297. /package/dist/{esm/components → components}/ui/avatar.js +0 -0
  298. /package/dist/{esm/components → components}/ui/avatar.js.map +0 -0
  299. /package/dist/{types/components → components}/ui/background-beams.d.ts +0 -0
  300. /package/dist/{esm/components → components}/ui/background-beams.js +0 -0
  301. /package/dist/{esm/components → components}/ui/background-beams.js.map +0 -0
  302. /package/dist/{types/components → components}/ui/badge.d.ts +0 -0
  303. /package/dist/{esm/components → components}/ui/badge.js +0 -0
  304. /package/dist/{esm/components → components}/ui/badge.js.map +0 -0
  305. /package/dist/{types/components → components}/ui/breadcrumb.d.ts +0 -0
  306. /package/dist/{esm/components → components}/ui/breadcrumb.js +0 -0
  307. /package/dist/{esm/components → components}/ui/breadcrumb.js.map +0 -0
  308. /package/dist/{types/components → components}/ui/bubble-background.d.ts +0 -0
  309. /package/dist/{types/components → components}/ui/button.d.ts +0 -0
  310. /package/dist/{esm/components → components}/ui/button.js +0 -0
  311. /package/dist/{esm/components → components}/ui/button.js.map +0 -0
  312. /package/dist/{types/components → components}/ui/calendar.d.ts +0 -0
  313. /package/dist/{types/components → components}/ui/card.d.ts +0 -0
  314. /package/dist/{esm/components → components}/ui/card.js +0 -0
  315. /package/dist/{esm/components → components}/ui/card.js.map +0 -0
  316. /package/dist/{types/components → components}/ui/carousel.d.ts +0 -0
  317. /package/dist/{esm/components → components}/ui/carousel.js +0 -0
  318. /package/dist/{esm/components → components}/ui/carousel.js.map +0 -0
  319. /package/dist/{types/components → components}/ui/checkbox.d.ts +0 -0
  320. /package/dist/{esm/components → components}/ui/checkbox.js +0 -0
  321. /package/dist/{esm/components → components}/ui/checkbox.js.map +0 -0
  322. /package/dist/{types/components → components}/ui/collapsible.d.ts +0 -0
  323. /package/dist/{esm/components → components}/ui/collapsible.js +0 -0
  324. /package/dist/{esm/components → components}/ui/collapsible.js.map +0 -0
  325. /package/dist/{types/components → components}/ui/command.d.ts +0 -0
  326. /package/dist/{esm/components → components}/ui/command.js +0 -0
  327. /package/dist/{esm/components → components}/ui/command.js.map +0 -0
  328. /package/dist/{types/components → components}/ui/context-menu.d.ts +0 -0
  329. /package/dist/{esm/components → components}/ui/context-menu.js +0 -0
  330. /package/dist/{esm/components → components}/ui/context-menu.js.map +0 -0
  331. /package/dist/{types/components → components}/ui/counting-number.d.ts +0 -0
  332. /package/dist/{esm/components → components}/ui/counting-number.js +0 -0
  333. /package/dist/{esm/components → components}/ui/counting-number.js.map +0 -0
  334. /package/dist/{types/components → components}/ui/dialog.d.ts +0 -0
  335. /package/dist/{esm/components → components}/ui/dialog.js +0 -0
  336. /package/dist/{esm/components → components}/ui/dialog.js.map +0 -0
  337. /package/dist/{types/components → components}/ui/dot-background.d.ts +0 -0
  338. /package/dist/{esm/components → components}/ui/dot-background.js +0 -0
  339. /package/dist/{esm/components → components}/ui/dot-background.js.map +0 -0
  340. /package/dist/{types/components → components}/ui/drawer.d.ts +0 -0
  341. /package/dist/{esm/components → components}/ui/drawer.js +0 -0
  342. /package/dist/{esm/components → components}/ui/drawer.js.map +0 -0
  343. /package/dist/{types/components → components}/ui/dropdown-menu.d.ts +0 -0
  344. /package/dist/{esm/components → components}/ui/dropdown-menu.js +0 -0
  345. /package/dist/{esm/components → components}/ui/dropdown-menu.js.map +0 -0
  346. /package/dist/{types/components → components}/ui/dropdrawer.d.ts +0 -0
  347. /package/dist/{esm/components → components}/ui/dropdrawer.js +0 -0
  348. /package/dist/{types/components → components}/ui/fireworks-background.d.ts +0 -0
  349. /package/dist/{esm/components → components}/ui/fireworks-background.js +0 -0
  350. /package/dist/{esm/components → components}/ui/fireworks-background.js.map +0 -0
  351. /package/dist/{types/components → components}/ui/flip-button.d.ts +0 -0
  352. /package/dist/{esm/components → components}/ui/flip-button.js +0 -0
  353. /package/dist/{esm/components → components}/ui/flip-button.js.map +0 -0
  354. /package/dist/{types/components → components}/ui/form.d.ts +0 -0
  355. /package/dist/{esm/components → components}/ui/form.js +0 -0
  356. /package/dist/{esm/components → components}/ui/form.js.map +0 -0
  357. /package/dist/{types/components → components}/ui/gradient-background.d.ts +0 -0
  358. /package/dist/{esm/components → components}/ui/gradient-background.js +0 -0
  359. /package/dist/{esm/components → components}/ui/gradient-background.js.map +0 -0
  360. /package/dist/{types/components → components}/ui/gradient-text.d.ts +0 -0
  361. /package/dist/{esm/components → components}/ui/gradient-text.js +0 -0
  362. /package/dist/{esm/components → components}/ui/gradient-text.js.map +0 -0
  363. /package/dist/{types/components → components}/ui/highlight-text.d.ts +0 -0
  364. /package/dist/{esm/components → components}/ui/highlight-text.js +0 -0
  365. /package/dist/{esm/components → components}/ui/highlight-text.js.map +0 -0
  366. /package/dist/{types/components → components}/ui/hole-background.d.ts +0 -0
  367. /package/dist/{esm/components → components}/ui/hole-background.js +0 -0
  368. /package/dist/{esm/components → components}/ui/hole-background.js.map +0 -0
  369. /package/dist/{types/components → components}/ui/hover-card.d.ts +0 -0
  370. /package/dist/{esm/components → components}/ui/hover-card.js +0 -0
  371. /package/dist/{esm/components → components}/ui/hover-card.js.map +0 -0
  372. /package/dist/{types/components → components}/ui/input-otp.d.ts +0 -0
  373. /package/dist/{esm/components → components}/ui/input-otp.js +0 -0
  374. /package/dist/{esm/components → components}/ui/input-otp.js.map +0 -0
  375. /package/dist/{types/components → components}/ui/input.d.ts +0 -0
  376. /package/dist/{esm/components → components}/ui/input.js +0 -0
  377. /package/dist/{esm/components → components}/ui/input.js.map +0 -0
  378. /package/dist/{types/components → components}/ui/label.d.ts +0 -0
  379. /package/dist/{esm/components → components}/ui/label.js +0 -0
  380. /package/dist/{esm/components → components}/ui/label.js.map +0 -0
  381. /package/dist/{types/components → components}/ui/menubar.d.ts +0 -0
  382. /package/dist/{esm/components → components}/ui/menubar.js +0 -0
  383. /package/dist/{esm/components → components}/ui/menubar.js.map +0 -0
  384. /package/dist/{types/components → components}/ui/navigation-menu.d.ts +0 -0
  385. /package/dist/{esm/components → components}/ui/navigation-menu.js +0 -0
  386. /package/dist/{esm/components → components}/ui/navigation-menu.js.map +0 -0
  387. /package/dist/{types/components → components}/ui/pagination.d.ts +0 -0
  388. /package/dist/{esm/components → components}/ui/pagination.js +0 -0
  389. /package/dist/{esm/components → components}/ui/pagination.js.map +0 -0
  390. /package/dist/{types/components → components}/ui/popover.d.ts +0 -0
  391. /package/dist/{esm/components → components}/ui/popover.js +0 -0
  392. /package/dist/{esm/components → components}/ui/popover.js.map +0 -0
  393. /package/dist/{types/components → components}/ui/progress.d.ts +0 -0
  394. /package/dist/{esm/components → components}/ui/progress.js +0 -0
  395. /package/dist/{esm/components → components}/ui/progress.js.map +0 -0
  396. /package/dist/{types/components → components}/ui/radio-group.d.ts +0 -0
  397. /package/dist/{esm/components → components}/ui/radio-group.js +0 -0
  398. /package/dist/{esm/components → components}/ui/radio-group.js.map +0 -0
  399. /package/dist/{types/components → components}/ui/resizable.d.ts +0 -0
  400. /package/dist/{esm/components → components}/ui/resizable.js +0 -0
  401. /package/dist/{esm/components → components}/ui/resizable.js.map +0 -0
  402. /package/dist/{types/components → components}/ui/ripple-button.d.ts +0 -0
  403. /package/dist/{esm/components → components}/ui/ripple-button.js +0 -0
  404. /package/dist/{esm/components → components}/ui/ripple-button.js.map +0 -0
  405. /package/dist/{types/components → components}/ui/scratcher.d.ts +0 -0
  406. /package/dist/{esm/components → components}/ui/scratcher.js +0 -0
  407. /package/dist/{esm/components → components}/ui/scratcher.js.map +0 -0
  408. /package/dist/{types/components → components}/ui/scroll-area.d.ts +0 -0
  409. /package/dist/{esm/components → components}/ui/scroll-area.js +0 -0
  410. /package/dist/{esm/components → components}/ui/scroll-area.js.map +0 -0
  411. /package/dist/{types/components → components}/ui/select.d.ts +0 -0
  412. /package/dist/{esm/components → components}/ui/select.js +0 -0
  413. /package/dist/{esm/components → components}/ui/select.js.map +0 -0
  414. /package/dist/{types/components → components}/ui/separator.d.ts +0 -0
  415. /package/dist/{esm/components → components}/ui/separator.js +0 -0
  416. /package/dist/{esm/components → components}/ui/separator.js.map +0 -0
  417. /package/dist/{types/components → components}/ui/sheet.d.ts +0 -0
  418. /package/dist/{esm/components → components}/ui/sheet.js +0 -0
  419. /package/dist/{esm/components → components}/ui/sheet.js.map +0 -0
  420. /package/dist/{types/components → components}/ui/sidebar.d.ts +0 -0
  421. /package/dist/{esm/components → components}/ui/sidebar.js +0 -0
  422. /package/dist/{esm/components → components}/ui/sidebar.js.map +0 -0
  423. /package/dist/{types/components → components}/ui/skeleton.d.ts +0 -0
  424. /package/dist/{esm/components → components}/ui/skeleton.js +0 -0
  425. /package/dist/{esm/components → components}/ui/skeleton.js.map +0 -0
  426. /package/dist/{types/components → components}/ui/slider.d.ts +0 -0
  427. /package/dist/{esm/components → components}/ui/slider.js +0 -0
  428. /package/dist/{esm/components → components}/ui/slider.js.map +0 -0
  429. /package/dist/{types/components → components}/ui/sonner.d.ts +0 -0
  430. /package/dist/{esm/components → components}/ui/sonner.js +0 -0
  431. /package/dist/{esm/components → components}/ui/sonner.js.map +0 -0
  432. /package/dist/{types/components → components}/ui/switch.d.ts +0 -0
  433. /package/dist/{esm/components → components}/ui/switch.js +0 -0
  434. /package/dist/{esm/components → components}/ui/switch.js.map +0 -0
  435. /package/dist/{types/components → components}/ui/table.d.ts +0 -0
  436. /package/dist/{esm/components → components}/ui/table.js +0 -0
  437. /package/dist/{esm/components → components}/ui/table.js.map +0 -0
  438. /package/dist/{types/components → components}/ui/tabs.d.ts +0 -0
  439. /package/dist/{esm/components → components}/ui/tabs.js +0 -0
  440. /package/dist/{esm/components → components}/ui/tabs.js.map +0 -0
  441. /package/dist/{types/components → components}/ui/textarea.d.ts +0 -0
  442. /package/dist/{esm/components → components}/ui/textarea.js +0 -0
  443. /package/dist/{esm/components → components}/ui/textarea.js.map +0 -0
  444. /package/dist/{types/components → components}/ui/toggle-group.d.ts +0 -0
  445. /package/dist/{esm/components → components}/ui/toggle-group.js +0 -0
  446. /package/dist/{esm/components → components}/ui/toggle-group.js.map +0 -0
  447. /package/dist/{types/components → components}/ui/toggle.d.ts +0 -0
  448. /package/dist/{esm/components → components}/ui/toggle.js +0 -0
  449. /package/dist/{esm/components → components}/ui/toggle.js.map +0 -0
  450. /package/dist/{types/components → components}/ui/tooltip.d.ts +0 -0
  451. /package/dist/{esm/components → components}/ui/tooltip.js +0 -0
  452. /package/dist/{esm/components → components}/ui/tooltip.js.map +0 -0
  453. /package/dist/{types/hooks → hooks}/use-mobile.d.ts +0 -0
  454. /package/dist/{esm/hooks → hooks}/use-mobile.js +0 -0
  455. /package/dist/{esm/hooks → hooks}/use-mobile.js.map +0 -0
  456. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  457. /package/dist/{types/lib → lib}/utils.d.ts +0 -0
  458. /package/dist/{esm/lib → lib}/utils.js +0 -0
  459. /package/dist/{esm/lib → lib}/utils.js.map +0 -0
package/CONTRIBUTING.md CHANGED
@@ -1,371 +1,371 @@
1
- # 🤝 Contributing to @arolariu/components
2
-
3
- > **Join our mission to build the best React component library!** Every contribution, no matter the size, makes a difference.
4
-
5
- <div align="center">
6
-
7
- ![Contributors Welcome](https://img.shields.io/badge/Contributors-Welcome-brightgreen?style=for-the-badge)
8
- ![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-blue?style=for-the-badge)
9
- ![Good First Issues](https://img.shields.io/badge/Good%20First%20Issues-Available-orange?style=for-the-badge)
10
-
11
- **Help us build beautiful, accessible components for the React community**
12
-
13
- [🚀 Quick Start](#-quick-start-for-contributors) • [💡 Ways to Contribute](#-ways-to-contribute) • [🛠️ Development Setup](#️-development-setup) • [📋 Guidelines](#-guidelines)
14
-
15
- </div>
16
-
17
- ---
18
-
19
- ## 🚀 Quick Start for Contributors
20
-
21
- **Get contributing in under 5 minutes:**
22
-
23
- ```bash
24
- # 1. Fork the repository on GitHub
25
- # 2. Clone your fork
26
- git clone https://github.com/arolariu/arolariu.ro.git
27
- cd arolariu.ro/packages/components
28
-
29
- # 3. Install dependencies
30
- yarn install
31
-
32
- # 4. Start development environment
33
- yarn storybook # 🎨 Component playground at http://localhost:6006
34
- yarn build # 🔨 Build the library
35
-
36
- # 5. Make your amazing changes!
37
- # 6. Test and submit a PR
38
- ```
39
-
40
- ---
41
-
42
- ## 💡 Ways to Contribute
43
-
44
- ### 🐛 Report Bugs
45
-
46
- Found something broken? Help us fix it!
47
-
48
- - **Before reporting**: Search [existing issues](https://github.com/arolariu/arolariu.ro/issues) to avoid duplicates
49
- - **Include**: Steps to reproduce, expected vs actual behavior, environment details
50
- - **Bonus points**: Provide a minimal reproduction case
51
-
52
- **[📝 Report a Bug →](https://github.com/arolariu/arolariu.ro/issues/new?template=bug_report.md)**
53
-
54
- ### ✨ Suggest Features
55
-
56
- Have a great idea for a new component or feature?
57
-
58
- - **Describe the problem** it solves
59
- - **Explain the solution** you'd like to see
60
- - **Consider alternatives** and their trade-offs
61
- - **Check accessibility** requirements
62
-
63
- **[💡 Request a Feature →](https://github.com/arolariu/arolariu.ro/issues/new?template=feature_request.md)**
64
-
65
- ### 🔧 Fix Issues
66
-
67
- Browse our [open issues](https://github.com/arolariu/arolariu.ro/issues) and help solve them:
68
-
69
- - 🟢 **Good first issues** - Perfect for newcomers
70
- - 🟡 **Help wanted** - We need your expertise
71
- - 🔴 **Bug fixes** - Critical issues needing attention
72
-
73
- ### 🎨 Add Components
74
-
75
- Want to contribute a new component? Here's what we look for:
76
-
77
- - **Built on Radix UI** primitives when possible
78
- - **Accessible by default** (WAI-ARIA compliant)
79
- - **TypeScript support** with full type definitions
80
- - **Responsive design** with mobile-first approach
81
- - **Tailwind CSS** integration for styling
82
- - **Storybook stories** documenting all variants
83
- - **Comprehensive tests** ensuring reliability
84
-
85
- ### 📖 Improve Documentation
86
-
87
- Help make our docs even better:
88
-
89
- - **README improvements** - Clearer explanations and examples
90
- - **API documentation** - Better prop descriptions and usage
91
- - **Storybook stories** - More comprehensive examples
92
- - **Debugging guides** - Help developers troubleshoot
93
- - **Tutorials** - Step-by-step guides for common use cases
94
-
95
- ---
96
-
97
- ## 🛠️ Development Setup
98
-
99
- ### Prerequisites
100
-
101
- - **Node.js** 22+
102
- - **Yarn** 4.9+ (preferred package manager)
103
- - **Git** for version control
104
-
105
- ### Getting Started
106
-
107
- ```bash
108
- # Clone the repository
109
- git clone https://github.com/arolariu/arolariu.ro.git
110
- cd arolariu.ro/packages/components
111
-
112
- # Install dependencies
113
- yarn install
114
-
115
- # Start development tools
116
- yarn storybook # 🎨 Component development at http://localhost:6006
117
- yarn build # 🔨 Build for production
118
- yarn build:clean # 🧹 Clean build artifacts
119
- ```
120
-
121
- ### Project Structure
122
-
123
- ```
124
- packages/components/
125
- ├── 📁 src/
126
- │ ├── 📁 components/ui/ # Component implementations
127
- │ ├── 📁 hooks/ # Reusable React hooks
128
- │ ├── 📁 lib/ # Utility functions
129
- │ ├── 📄 index.ts # Main entry point
130
- │ └── 📄 index.css # Global styles
131
- ├── 📁 stories/ # Storybook stories
132
- ├── 📁 dist/ # Built output (generated)
133
- ├── 📄 package.json # Package configuration
134
- ├── 📄 README.md # Main documentation
135
- └── 📄 tsconfig.json # TypeScript configuration
136
- ```
137
-
138
- ### Development Workflow
139
-
140
- 1. **Create a feature branch**
141
-
142
- ```bash
143
- git checkout -b feature/amazing-new-component
144
- ```
145
-
146
- 2. **Develop your component**
147
-
148
- - Add component to `src/components/ui/`
149
- - Export from `src/index.ts`
150
- - Create Storybook story in `stories/`
151
-
152
- 3. **Test your changes**
153
-
154
- ```bash
155
- yarn build # Ensure it builds
156
- yarn storybook # Visual testing
157
- ```
158
-
159
- 4. **Submit a pull request**
160
- - Write a clear description
161
- - Include screenshots/GIFs for UI changes
162
- - Link related issues
163
-
164
- ---
165
-
166
- ## 📋 Guidelines
167
-
168
- ### Component Development
169
-
170
- #### 🎯 Accessibility First
171
-
172
- - Use **Radix UI primitives** as the foundation
173
- - Include proper **ARIA attributes** and roles
174
- - Support **keyboard navigation**
175
- - Ensure **screen reader compatibility**
176
- - Test with accessibility tools
177
-
178
- #### 🎨 Design Principles
179
-
180
- - **Mobile-first** responsive design
181
- - **Consistent spacing** using Tailwind CSS
182
- - **Theme-aware** components (light/dark mode)
183
- - **Semantic HTML** structure
184
- - **Consistent naming** conventions
185
-
186
- #### 💻 Code Standards
187
-
188
- ```tsx
189
- // ✅ Good: Well-structured component
190
- import * as React from "react";
191
- import { cva, type VariantProps } from "class-variance-authority";
192
- import { cn } from "@/lib/utils";
193
-
194
- const buttonVariants = cva(
195
- "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors",
196
- {
197
- variants: {
198
- variant: {
199
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
200
- destructive:
201
- "bg-destructive text-destructive-foreground hover:bg-destructive/90",
202
- },
203
- size: {
204
- default: "h-10 px-4 py-2",
205
- sm: "h-9 rounded-md px-3",
206
- lg: "h-11 rounded-md px-8",
207
- },
208
- },
209
- defaultVariants: {
210
- variant: "default",
211
- size: "default",
212
- },
213
- },
214
- );
215
-
216
- export interface ButtonProps
217
- extends React.ButtonHTMLAttributes<HTMLButtonElement>,
218
- VariantProps<typeof buttonVariants> {
219
- asChild?: boolean;
220
- }
221
-
222
- const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
223
- ({ className, variant, size, asChild = false, ...props }, ref) => {
224
- return (
225
- <button
226
- className={cn(buttonVariants({ variant, size, className }))}
227
- ref={ref}
228
- {...props}
229
- />
230
- );
231
- },
232
- );
233
- Button.displayName = "Button";
234
-
235
- export { Button, buttonVariants };
236
- ```
237
-
238
- #### 📚 Documentation Requirements
239
-
240
- - **TypeScript definitions** for all props
241
- - **JSDoc comments** for complex components
242
- - **Storybook stories** showing all variants
243
- - **Usage examples** in README
244
- - **Accessibility notes** when relevant
245
-
246
- ### Storybook Stories
247
-
248
- Create comprehensive stories for your components:
249
-
250
- ```tsx
251
- import type { Meta, StoryObj } from "@storybook/react";
252
- import { Button } from "../src/components/ui/button";
253
-
254
- const meta: Meta<typeof Button> = {
255
- title: "Components/Button",
256
- component: Button,
257
- parameters: {
258
- docs: {
259
- description: {
260
- component:
261
- "A versatile button component with multiple variants and sizes.",
262
- },
263
- },
264
- },
265
- argTypes: {
266
- variant: {
267
- control: { type: "select" },
268
- options: [
269
- "default",
270
- "destructive",
271
- "outline",
272
- "secondary",
273
- "ghost",
274
- "link",
275
- ],
276
- },
277
- },
278
- };
279
-
280
- export default meta;
281
- type Story = StoryObj<typeof meta>;
282
-
283
- export const Default: Story = {
284
- args: {
285
- children: "Button",
286
- },
287
- };
288
-
289
- export const AllVariants: Story = {
290
- render: () => (
291
- <div className="flex gap-2">
292
- <Button variant="default">Default</Button>
293
- <Button variant="destructive">Destructive</Button>
294
- <Button variant="outline">Outline</Button>
295
- </div>
296
- ),
297
- };
298
- ```
299
-
300
- ### Commit Messages
301
-
302
- Follow [Conventional Commits](https://www.conventionalcommits.org/):
303
-
304
- ```bash
305
- # Features
306
- feat: add new Button component with variants
307
- feat(input): add password visibility toggle
308
-
309
- # Bug fixes
310
- fix: resolve accessibility issue in Dialog component
311
- fix(button): prevent double-click on async actions
312
-
313
- # Documentation
314
- docs: update README with new component examples
315
- docs(storybook): add comprehensive Button stories
316
-
317
- # Refactoring
318
- refactor: simplify component prop interfaces
319
- refactor(utils): optimize class name merging utility
320
- ```
321
-
322
- ---
323
-
324
- ## 🏆 Recognition
325
-
326
- ### Hall of Fame
327
-
328
- Contributors who have made significant impacts:
329
-
330
- - **[Alexandru-Razvan Olariu](https://github.com/arolariu)** - Project Creator & Maintainer
331
- - **[Jia Wei Ng](https://github.com/jiaweing)** - DropDrawer Component
332
- - **You could be next!** 🌟
333
-
334
- ### Ways We Say Thanks
335
-
336
- - 📛 **Contributor badge** in README
337
- - 🎉 **Shoutouts** in release notes
338
- - 🏷️ **GitHub issue assignment** priority
339
-
340
- ---
341
-
342
- ## 🤔 Need Help?
343
-
344
- ### Getting Support
345
-
346
- - 💬 **GitHub Discussions** - Ask questions and share ideas
347
- - 🐛 **GitHub Issues** - Report bugs and request features
348
- - 📧 **Email** - [admin@arolariu.ro](mailto:admin@arolariu.ro) for private matters
349
-
350
- ### Useful Resources
351
-
352
- - 📖 **[Radix UI Documentation](https://www.radix-ui.com/primitives/docs/overview/introduction)**
353
- - 🎨 **[Tailwind CSS Docs](https://tailwindcss.com/docs)**
354
- - ♿ **[WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/)**
355
- - 📚 **[Storybook Documentation](https://storybook.js.org/docs)**
356
-
357
- ---
358
-
359
- <div align="center">
360
-
361
- ## 🙏 Thank You
362
-
363
- **Every contribution makes @arolariu/components better for the entire React community.**
364
-
365
- **Ready to contribute?** [🚀 **Start with a good first issue**](https://github.com/arolariu/arolariu.ro/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
366
-
367
- ---
368
-
369
- **Built with ❤️ by contributors like you**
370
-
371
- </div>
1
+ # 🤝 Contributing to @arolariu/components
2
+
3
+ > **Join our mission to build the best React component library!** Every contribution, no matter the size, makes a difference.
4
+
5
+ <div align="center">
6
+
7
+ ![Contributors Welcome](https://img.shields.io/badge/Contributors-Welcome-brightgreen?style=for-the-badge)
8
+ ![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-blue?style=for-the-badge)
9
+ ![Good First Issues](https://img.shields.io/badge/Good%20First%20Issues-Available-orange?style=for-the-badge)
10
+
11
+ **Help us build beautiful, accessible components for the React community**
12
+
13
+ [🚀 Quick Start](#-quick-start-for-contributors) • [💡 Ways to Contribute](#-ways-to-contribute) • [🛠️ Development Setup](#️-development-setup) • [📋 Guidelines](#-guidelines)
14
+
15
+ </div>
16
+
17
+ ---
18
+
19
+ ## 🚀 Quick Start for Contributors
20
+
21
+ **Get contributing in under 5 minutes:**
22
+
23
+ ```bash
24
+ # 1. Fork the repository on GitHub
25
+ # 2. Clone your fork
26
+ git clone https://github.com/arolariu/arolariu.ro.git
27
+ cd arolariu.ro/packages/components
28
+
29
+ # 3. Install dependencies
30
+ yarn install
31
+
32
+ # 4. Start development environment
33
+ yarn storybook # 🎨 Component playground at http://localhost:6006
34
+ yarn build # 🔨 Build the library
35
+
36
+ # 5. Make your amazing changes!
37
+ # 6. Test and submit a PR
38
+ ```
39
+
40
+ ---
41
+
42
+ ## 💡 Ways to Contribute
43
+
44
+ ### 🐛 Report Bugs
45
+
46
+ Found something broken? Help us fix it!
47
+
48
+ - **Before reporting**: Search [existing issues](https://github.com/arolariu/arolariu.ro/issues) to avoid duplicates
49
+ - **Include**: Steps to reproduce, expected vs actual behavior, environment details
50
+ - **Bonus points**: Provide a minimal reproduction case
51
+
52
+ **[📝 Report a Bug →](https://github.com/arolariu/arolariu.ro/issues/new?template=bug_report.md)**
53
+
54
+ ### ✨ Suggest Features
55
+
56
+ Have a great idea for a new component or feature?
57
+
58
+ - **Describe the problem** it solves
59
+ - **Explain the solution** you'd like to see
60
+ - **Consider alternatives** and their trade-offs
61
+ - **Check accessibility** requirements
62
+
63
+ **[💡 Request a Feature →](https://github.com/arolariu/arolariu.ro/issues/new?template=feature_request.md)**
64
+
65
+ ### 🔧 Fix Issues
66
+
67
+ Browse our [open issues](https://github.com/arolariu/arolariu.ro/issues) and help solve them:
68
+
69
+ - 🟢 **Good first issues** - Perfect for newcomers
70
+ - 🟡 **Help wanted** - We need your expertise
71
+ - 🔴 **Bug fixes** - Critical issues needing attention
72
+
73
+ ### 🎨 Add Components
74
+
75
+ Want to contribute a new component? Here's what we look for:
76
+
77
+ - **Built on Radix UI** primitives when possible
78
+ - **Accessible by default** (WAI-ARIA compliant)
79
+ - **TypeScript support** with full type definitions
80
+ - **Responsive design** with mobile-first approach
81
+ - **Tailwind CSS** integration for styling
82
+ - **Storybook stories** documenting all variants
83
+ - **Comprehensive tests** ensuring reliability
84
+
85
+ ### 📖 Improve Documentation
86
+
87
+ Help make our docs even better:
88
+
89
+ - **README improvements** - Clearer explanations and examples
90
+ - **API documentation** - Better prop descriptions and usage
91
+ - **Storybook stories** - More comprehensive examples
92
+ - **Debugging guides** - Help developers troubleshoot
93
+ - **Tutorials** - Step-by-step guides for common use cases
94
+
95
+ ---
96
+
97
+ ## 🛠️ Development Setup
98
+
99
+ ### Prerequisites
100
+
101
+ - **Node.js** 22+
102
+ - **Yarn** 4.9+ (preferred package manager)
103
+ - **Git** for version control
104
+
105
+ ### Getting Started
106
+
107
+ ```bash
108
+ # Clone the repository
109
+ git clone https://github.com/arolariu/arolariu.ro.git
110
+ cd arolariu.ro/packages/components
111
+
112
+ # Install dependencies
113
+ yarn install
114
+
115
+ # Start development tools
116
+ yarn storybook # 🎨 Component development at http://localhost:6006
117
+ yarn build # 🔨 Build for production
118
+ yarn build:clean # 🧹 Clean build artifacts
119
+ ```
120
+
121
+ ### Project Structure
122
+
123
+ ```
124
+ packages/components/
125
+ ├── 📁 src/
126
+ │ ├── 📁 components/ui/ # Component implementations
127
+ │ ├── 📁 hooks/ # Reusable React hooks
128
+ │ ├── 📁 lib/ # Utility functions
129
+ │ ├── 📄 index.ts # Main entry point
130
+ │ └── 📄 index.css # Global styles
131
+ ├── 📁 stories/ # Storybook stories
132
+ ├── 📁 dist/ # Built output (generated)
133
+ ├── 📄 package.json # Package configuration
134
+ ├── 📄 README.md # Main documentation
135
+ └── 📄 tsconfig.json # TypeScript configuration
136
+ ```
137
+
138
+ ### Development Workflow
139
+
140
+ 1. **Create a feature branch**
141
+
142
+ ```bash
143
+ git checkout -b feature/amazing-new-component
144
+ ```
145
+
146
+ 2. **Develop your component**
147
+
148
+ - Add component to `src/components/ui/`
149
+ - Export from `src/index.ts`
150
+ - Create Storybook story in `stories/`
151
+
152
+ 3. **Test your changes**
153
+
154
+ ```bash
155
+ yarn build # Ensure it builds
156
+ yarn storybook # Visual testing
157
+ ```
158
+
159
+ 4. **Submit a pull request**
160
+ - Write a clear description
161
+ - Include screenshots/GIFs for UI changes
162
+ - Link related issues
163
+
164
+ ---
165
+
166
+ ## 📋 Guidelines
167
+
168
+ ### Component Development
169
+
170
+ #### 🎯 Accessibility First
171
+
172
+ - Use **Radix UI primitives** as the foundation
173
+ - Include proper **ARIA attributes** and roles
174
+ - Support **keyboard navigation**
175
+ - Ensure **screen reader compatibility**
176
+ - Test with accessibility tools
177
+
178
+ #### 🎨 Design Principles
179
+
180
+ - **Mobile-first** responsive design
181
+ - **Consistent spacing** using Tailwind CSS
182
+ - **Theme-aware** components (light/dark mode)
183
+ - **Semantic HTML** structure
184
+ - **Consistent naming** conventions
185
+
186
+ #### 💻 Code Standards
187
+
188
+ ```tsx
189
+ // ✅ Good: Well-structured component
190
+ import * as React from "react";
191
+ import { cva, type VariantProps } from "class-variance-authority";
192
+ import { cn } from "@/lib/utils";
193
+
194
+ const buttonVariants = cva(
195
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors",
196
+ {
197
+ variants: {
198
+ variant: {
199
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
200
+ destructive:
201
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90",
202
+ },
203
+ size: {
204
+ default: "h-10 px-4 py-2",
205
+ sm: "h-9 rounded-md px-3",
206
+ lg: "h-11 rounded-md px-8",
207
+ },
208
+ },
209
+ defaultVariants: {
210
+ variant: "default",
211
+ size: "default",
212
+ },
213
+ },
214
+ );
215
+
216
+ export interface ButtonProps
217
+ extends React.ButtonHTMLAttributes<HTMLButtonElement>,
218
+ VariantProps<typeof buttonVariants> {
219
+ asChild?: boolean;
220
+ }
221
+
222
+ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
223
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
224
+ return (
225
+ <button
226
+ className={cn(buttonVariants({ variant, size, className }))}
227
+ ref={ref}
228
+ {...props}
229
+ />
230
+ );
231
+ },
232
+ );
233
+ Button.displayName = "Button";
234
+
235
+ export { Button, buttonVariants };
236
+ ```
237
+
238
+ #### 📚 Documentation Requirements
239
+
240
+ - **TypeScript definitions** for all props
241
+ - **JSDoc comments** for complex components
242
+ - **Storybook stories** showing all variants
243
+ - **Usage examples** in README
244
+ - **Accessibility notes** when relevant
245
+
246
+ ### Storybook Stories
247
+
248
+ Create comprehensive stories for your components:
249
+
250
+ ```tsx
251
+ import type { Meta, StoryObj } from "@storybook/react";
252
+ import { Button } from "../src/components/ui/button";
253
+
254
+ const meta: Meta<typeof Button> = {
255
+ title: "Components/Button",
256
+ component: Button,
257
+ parameters: {
258
+ docs: {
259
+ description: {
260
+ component:
261
+ "A versatile button component with multiple variants and sizes.",
262
+ },
263
+ },
264
+ },
265
+ argTypes: {
266
+ variant: {
267
+ control: { type: "select" },
268
+ options: [
269
+ "default",
270
+ "destructive",
271
+ "outline",
272
+ "secondary",
273
+ "ghost",
274
+ "link",
275
+ ],
276
+ },
277
+ },
278
+ };
279
+
280
+ export default meta;
281
+ type Story = StoryObj<typeof meta>;
282
+
283
+ export const Default: Story = {
284
+ args: {
285
+ children: "Button",
286
+ },
287
+ };
288
+
289
+ export const AllVariants: Story = {
290
+ render: () => (
291
+ <div className="flex gap-2">
292
+ <Button variant="default">Default</Button>
293
+ <Button variant="destructive">Destructive</Button>
294
+ <Button variant="outline">Outline</Button>
295
+ </div>
296
+ ),
297
+ };
298
+ ```
299
+
300
+ ### Commit Messages
301
+
302
+ Follow [Conventional Commits](https://www.conventionalcommits.org/):
303
+
304
+ ```bash
305
+ # Features
306
+ feat: add new Button component with variants
307
+ feat(input): add password visibility toggle
308
+
309
+ # Bug fixes
310
+ fix: resolve accessibility issue in Dialog component
311
+ fix(button): prevent double-click on async actions
312
+
313
+ # Documentation
314
+ docs: update README with new component examples
315
+ docs(storybook): add comprehensive Button stories
316
+
317
+ # Refactoring
318
+ refactor: simplify component prop interfaces
319
+ refactor(utils): optimize class name merging utility
320
+ ```
321
+
322
+ ---
323
+
324
+ ## 🏆 Recognition
325
+
326
+ ### Hall of Fame
327
+
328
+ Contributors who have made significant impacts:
329
+
330
+ - **[Alexandru-Razvan Olariu](https://github.com/arolariu)** - Project Creator & Maintainer
331
+ - **[Jia Wei Ng](https://github.com/jiaweing)** - DropDrawer Component
332
+ - **You could be next!** 🌟
333
+
334
+ ### Ways We Say Thanks
335
+
336
+ - 📛 **Contributor badge** in README
337
+ - 🎉 **Shoutouts** in release notes
338
+ - 🏷️ **GitHub issue assignment** priority
339
+
340
+ ---
341
+
342
+ ## 🤔 Need Help?
343
+
344
+ ### Getting Support
345
+
346
+ - 💬 **GitHub Discussions** - Ask questions and share ideas
347
+ - 🐛 **GitHub Issues** - Report bugs and request features
348
+ - 📧 **Email** - [admin@arolariu.ro](mailto:admin@arolariu.ro) for private matters
349
+
350
+ ### Useful Resources
351
+
352
+ - 📖 **[Radix UI Documentation](https://www.radix-ui.com/primitives/docs/overview/introduction)**
353
+ - 🎨 **[Tailwind CSS Docs](https://tailwindcss.com/docs)**
354
+ - ♿ **[WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/)**
355
+ - 📚 **[Storybook Documentation](https://storybook.js.org/docs)**
356
+
357
+ ---
358
+
359
+ <div align="center">
360
+
361
+ ## 🙏 Thank You
362
+
363
+ **Every contribution makes @arolariu/components better for the entire React community.**
364
+
365
+ **Ready to contribute?** [🚀 **Start with a good first issue**](https://github.com/arolariu/arolariu.ro/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
366
+
367
+ ---
368
+
369
+ **Built with ❤️ by contributors like you**
370
+
371
+ </div>