@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.
- package/CONTRIBUTING.md +371 -371
- package/DEBUGGING.md +3 -8
- package/EXAMPLES.md +1035 -1035
- package/README.md +1 -1
- package/{CHANGELOG.md → changelog.md} +15 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/background-beams.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/bubble-background.d.ts.map +1 -0
- package/dist/{esm/components → components}/ui/bubble-background.js +1 -2
- package/dist/components/ui/bubble-background.js.map +1 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/{esm/components → components}/ui/calendar.js +1 -1
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/chart.d.ts +41 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/{esm/components → components}/ui/chart.js +10 -10
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/counting-number.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dot-background.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdrawer.d.ts.map +1 -0
- package/dist/components/ui/dropdrawer.js.map +1 -0
- package/dist/components/ui/fireworks-background.d.ts.map +1 -0
- package/dist/components/ui/flip-button.d.ts.map +1 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/gradient-background.d.ts.map +1 -0
- package/dist/components/ui/gradient-text.d.ts.map +1 -0
- package/dist/components/ui/highlight-text.d.ts.map +1 -0
- package/dist/components/ui/hole-background.d.ts.map +1 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/ripple-button.d.ts.map +1 -0
- package/dist/components/ui/scratcher.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/index.css +26 -2
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -61
- package/dist/lib/utils.d.ts.map +1 -0
- package/package.json +261 -332
- package/src/components/ui/bubble-background.tsx +189 -187
- package/src/components/ui/calendar.tsx +4 -1
- package/src/components/ui/chart.tsx +31 -58
- package/src/components/ui/dropdrawer.tsx +973 -973
- package/src/index.css +67 -69
- package/dist/cjs/components/ui/accordion.cjs +0 -92
- package/dist/cjs/components/ui/accordion.cjs.map +0 -1
- package/dist/cjs/components/ui/alert-dialog.cjs +0 -152
- package/dist/cjs/components/ui/alert-dialog.cjs.map +0 -1
- package/dist/cjs/components/ui/alert.cjs +0 -83
- package/dist/cjs/components/ui/alert.cjs.map +0 -1
- package/dist/cjs/components/ui/aspect-ratio.cjs +0 -47
- package/dist/cjs/components/ui/aspect-ratio.cjs.map +0 -1
- package/dist/cjs/components/ui/avatar.cjs +0 -69
- package/dist/cjs/components/ui/avatar.cjs.map +0 -1
- package/dist/cjs/components/ui/background-beams.cjs +0 -200
- package/dist/cjs/components/ui/background-beams.cjs.map +0 -1
- package/dist/cjs/components/ui/badge.cjs +0 -69
- package/dist/cjs/components/ui/badge.cjs.map +0 -1
- package/dist/cjs/components/ui/breadcrumb.cjs +0 -128
- package/dist/cjs/components/ui/breadcrumb.cjs.map +0 -1
- package/dist/cjs/components/ui/bubble-background.cjs +0 -214
- package/dist/cjs/components/ui/bubble-background.cjs.map +0 -1
- package/dist/cjs/components/ui/button.cjs +0 -80
- package/dist/cjs/components/ui/button.cjs.map +0 -1
- package/dist/cjs/components/ui/calendar.cjs +0 -146
- package/dist/cjs/components/ui/calendar.cjs.map +0 -1
- package/dist/cjs/components/ui/card.cjs +0 -108
- package/dist/cjs/components/ui/card.cjs.map +0 -1
- package/dist/cjs/components/ui/carousel.cjs +0 -207
- package/dist/cjs/components/ui/carousel.cjs.map +0 -1
- package/dist/cjs/components/ui/chart.cjs +0 -221
- package/dist/cjs/components/ui/chart.cjs.map +0 -1
- package/dist/cjs/components/ui/checkbox.cjs +0 -57
- package/dist/cjs/components/ui/checkbox.cjs.map +0 -1
- package/dist/cjs/components/ui/collapsible.cjs +0 -65
- package/dist/cjs/components/ui/collapsible.cjs.map +0 -1
- package/dist/cjs/components/ui/command.cjs +0 -159
- package/dist/cjs/components/ui/command.cjs.map +0 -1
- package/dist/cjs/components/ui/context-menu.cjs +0 -219
- package/dist/cjs/components/ui/context-menu.cjs.map +0 -1
- package/dist/cjs/components/ui/counting-number.cjs +0 -95
- package/dist/cjs/components/ui/counting-number.cjs.map +0 -1
- package/dist/cjs/components/ui/dialog.cjs +0 -156
- package/dist/cjs/components/ui/dialog.cjs.map +0 -1
- package/dist/cjs/components/ui/dot-background.cjs +0 -131
- package/dist/cjs/components/ui/dot-background.cjs.map +0 -1
- package/dist/cjs/components/ui/drawer.cjs +0 -147
- package/dist/cjs/components/ui/drawer.cjs.map +0 -1
- package/dist/cjs/components/ui/dropdown-menu.cjs +0 -220
- package/dist/cjs/components/ui/dropdown-menu.cjs.map +0 -1
- package/dist/cjs/components/ui/dropdrawer.cjs +0 -627
- package/dist/cjs/components/ui/dropdrawer.cjs.map +0 -1
- package/dist/cjs/components/ui/fireworks-background.cjs +0 -259
- package/dist/cjs/components/ui/fireworks-background.cjs.map +0 -1
- package/dist/cjs/components/ui/flip-button.cjs +0 -100
- package/dist/cjs/components/ui/flip-button.cjs.map +0 -1
- package/dist/cjs/components/ui/form.cjs +0 -149
- package/dist/cjs/components/ui/form.cjs.map +0 -1
- package/dist/cjs/components/ui/gradient-background.cjs +0 -60
- package/dist/cjs/components/ui/gradient-background.cjs.map +0 -1
- package/dist/cjs/components/ui/gradient-text.cjs +0 -83
- package/dist/cjs/components/ui/gradient-text.cjs.map +0 -1
- package/dist/cjs/components/ui/highlight-text.cjs +0 -74
- package/dist/cjs/components/ui/highlight-text.cjs.map +0 -1
- package/dist/cjs/components/ui/hole-background.cjs +0 -361
- package/dist/cjs/components/ui/hole-background.cjs.map +0 -1
- package/dist/cjs/components/ui/hover-card.cjs +0 -72
- package/dist/cjs/components/ui/hover-card.cjs.map +0 -1
- package/dist/cjs/components/ui/input-otp.cjs +0 -94
- package/dist/cjs/components/ui/input-otp.cjs.map +0 -1
- package/dist/cjs/components/ui/input.cjs +0 -49
- package/dist/cjs/components/ui/input.cjs.map +0 -1
- package/dist/cjs/components/ui/label.cjs +0 -49
- package/dist/cjs/components/ui/label.cjs.map +0 -1
- package/dist/cjs/components/ui/menubar.cjs +0 -233
- package/dist/cjs/components/ui/menubar.cjs.map +0 -1
- package/dist/cjs/components/ui/navigation-menu.cjs +0 -144
- package/dist/cjs/components/ui/navigation-menu.cjs.map +0 -1
- package/dist/cjs/components/ui/pagination.cjs +0 -142
- package/dist/cjs/components/ui/pagination.cjs.map +0 -1
- package/dist/cjs/components/ui/popover.cjs +0 -80
- package/dist/cjs/components/ui/popover.cjs.map +0 -1
- package/dist/cjs/components/ui/progress.cjs +0 -56
- package/dist/cjs/components/ui/progress.cjs.map +0 -1
- package/dist/cjs/components/ui/radio-group.cjs +0 -67
- package/dist/cjs/components/ui/radio-group.cjs.map +0 -1
- package/dist/cjs/components/ui/resizable.cjs +0 -75
- package/dist/cjs/components/ui/resizable.cjs.map +0 -1
- package/dist/cjs/components/ui/ripple-button.cjs +0 -108
- package/dist/cjs/components/ui/ripple-button.cjs.map +0 -1
- package/dist/cjs/components/ui/scratcher.cjs +0 -179
- package/dist/cjs/components/ui/scratcher.cjs.map +0 -1
- package/dist/cjs/components/ui/scroll-area.cjs +0 -73
- package/dist/cjs/components/ui/scroll-area.cjs.map +0 -1
- package/dist/cjs/components/ui/select.cjs +0 -177
- package/dist/cjs/components/ui/select.cjs.map +0 -1
- package/dist/cjs/components/ui/separator.cjs +0 -51
- package/dist/cjs/components/ui/separator.cjs.map +0 -1
- package/dist/cjs/components/ui/sheet.cjs +0 -150
- package/dist/cjs/components/ui/sheet.cjs.map +0 -1
- package/dist/cjs/components/ui/sidebar.cjs +0 -513
- package/dist/cjs/components/ui/sidebar.cjs.map +0 -1
- package/dist/cjs/components/ui/skeleton.cjs +0 -48
- package/dist/cjs/components/ui/skeleton.cjs.map +0 -1
- package/dist/cjs/components/ui/slider.cjs +0 -78
- package/dist/cjs/components/ui/slider.cjs.map +0 -1
- package/dist/cjs/components/ui/sonner.cjs +0 -58
- package/dist/cjs/components/ui/sonner.cjs.map +0 -1
- package/dist/cjs/components/ui/switch.cjs +0 -53
- package/dist/cjs/components/ui/switch.cjs.map +0 -1
- package/dist/cjs/components/ui/table.cjs +0 -122
- package/dist/cjs/components/ui/table.cjs.map +0 -1
- package/dist/cjs/components/ui/tabs.cjs +0 -79
- package/dist/cjs/components/ui/tabs.cjs.map +0 -1
- package/dist/cjs/components/ui/textarea.cjs +0 -48
- package/dist/cjs/components/ui/textarea.cjs.map +0 -1
- package/dist/cjs/components/ui/toggle-group.cjs +0 -80
- package/dist/cjs/components/ui/toggle-group.cjs.map +0 -1
- package/dist/cjs/components/ui/toggle.cjs +0 -74
- package/dist/cjs/components/ui/toggle.cjs.map +0 -1
- package/dist/cjs/components/ui/tooltip.cjs +0 -88
- package/dist/cjs/components/ui/tooltip.cjs.map +0 -1
- package/dist/cjs/hooks/use-mobile.cjs +0 -52
- package/dist/cjs/hooks/use-mobile.cjs.map +0 -1
- package/dist/cjs/index.cjs +0 -905
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.css +0 -7309
- package/dist/cjs/index.css.map +0 -1
- package/dist/cjs/lib/utils.cjs +0 -42
- package/dist/cjs/lib/utils.cjs.map +0 -1
- package/dist/esm/components/ui/bubble-background.js.map +0 -1
- package/dist/esm/components/ui/calendar.js.map +0 -1
- package/dist/esm/components/ui/chart.js.map +0 -1
- package/dist/esm/components/ui/dropdrawer.js.map +0 -1
- package/dist/esm/index.css +0 -7309
- package/dist/esm/index.css.map +0 -1
- package/dist/esm/index.js +0 -62
- package/dist/types/components/ui/accordion.d.ts.map +0 -1
- package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
- package/dist/types/components/ui/alert.d.ts.map +0 -1
- package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
- package/dist/types/components/ui/avatar.d.ts.map +0 -1
- package/dist/types/components/ui/background-beams.d.ts.map +0 -1
- package/dist/types/components/ui/badge.d.ts.map +0 -1
- package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
- package/dist/types/components/ui/bubble-background.d.ts.map +0 -1
- package/dist/types/components/ui/button.d.ts.map +0 -1
- package/dist/types/components/ui/calendar.d.ts.map +0 -1
- package/dist/types/components/ui/card.d.ts.map +0 -1
- package/dist/types/components/ui/carousel.d.ts.map +0 -1
- package/dist/types/components/ui/chart.d.ts +0 -55
- package/dist/types/components/ui/chart.d.ts.map +0 -1
- package/dist/types/components/ui/checkbox.d.ts.map +0 -1
- package/dist/types/components/ui/collapsible.d.ts.map +0 -1
- package/dist/types/components/ui/command.d.ts.map +0 -1
- package/dist/types/components/ui/context-menu.d.ts.map +0 -1
- package/dist/types/components/ui/counting-number.d.ts.map +0 -1
- package/dist/types/components/ui/dialog.d.ts.map +0 -1
- package/dist/types/components/ui/dot-background.d.ts.map +0 -1
- package/dist/types/components/ui/drawer.d.ts.map +0 -1
- package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/types/components/ui/dropdrawer.d.ts.map +0 -1
- package/dist/types/components/ui/fireworks-background.d.ts.map +0 -1
- package/dist/types/components/ui/flip-button.d.ts.map +0 -1
- package/dist/types/components/ui/form.d.ts.map +0 -1
- package/dist/types/components/ui/gradient-background.d.ts.map +0 -1
- package/dist/types/components/ui/gradient-text.d.ts.map +0 -1
- package/dist/types/components/ui/highlight-text.d.ts.map +0 -1
- package/dist/types/components/ui/hole-background.d.ts.map +0 -1
- package/dist/types/components/ui/hover-card.d.ts.map +0 -1
- package/dist/types/components/ui/input-otp.d.ts.map +0 -1
- package/dist/types/components/ui/input.d.ts.map +0 -1
- package/dist/types/components/ui/label.d.ts.map +0 -1
- package/dist/types/components/ui/menubar.d.ts.map +0 -1
- package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
- package/dist/types/components/ui/pagination.d.ts.map +0 -1
- package/dist/types/components/ui/popover.d.ts.map +0 -1
- package/dist/types/components/ui/progress.d.ts.map +0 -1
- package/dist/types/components/ui/radio-group.d.ts.map +0 -1
- package/dist/types/components/ui/resizable.d.ts.map +0 -1
- package/dist/types/components/ui/ripple-button.d.ts.map +0 -1
- package/dist/types/components/ui/scratcher.d.ts.map +0 -1
- package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
- package/dist/types/components/ui/select.d.ts.map +0 -1
- package/dist/types/components/ui/separator.d.ts.map +0 -1
- package/dist/types/components/ui/sheet.d.ts.map +0 -1
- package/dist/types/components/ui/sidebar.d.ts.map +0 -1
- package/dist/types/components/ui/skeleton.d.ts.map +0 -1
- package/dist/types/components/ui/slider.d.ts.map +0 -1
- package/dist/types/components/ui/sonner.d.ts.map +0 -1
- package/dist/types/components/ui/switch.d.ts.map +0 -1
- package/dist/types/components/ui/table.d.ts.map +0 -1
- package/dist/types/components/ui/tabs.d.ts.map +0 -1
- package/dist/types/components/ui/textarea.d.ts.map +0 -1
- package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
- package/dist/types/components/ui/toggle.d.ts.map +0 -1
- package/dist/types/components/ui/tooltip.d.ts.map +0 -1
- package/dist/types/hooks/use-mobile.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/lib/utils.d.ts.map +0 -1
- package/tailwind.config.mjs +0 -65
- package/tsconfig.json +0 -58
- /package/{LICENSE → LICENSE.md} +0 -0
- /package/dist/{types/components → components}/ui/accordion.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/accordion.js +0 -0
- /package/dist/{esm/components → components}/ui/accordion.js.map +0 -0
- /package/dist/{types/components → components}/ui/alert-dialog.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/alert-dialog.js +0 -0
- /package/dist/{esm/components → components}/ui/alert-dialog.js.map +0 -0
- /package/dist/{types/components → components}/ui/alert.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/alert.js +0 -0
- /package/dist/{esm/components → components}/ui/alert.js.map +0 -0
- /package/dist/{types/components → components}/ui/aspect-ratio.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/aspect-ratio.js +0 -0
- /package/dist/{esm/components → components}/ui/aspect-ratio.js.map +0 -0
- /package/dist/{types/components → components}/ui/avatar.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/avatar.js +0 -0
- /package/dist/{esm/components → components}/ui/avatar.js.map +0 -0
- /package/dist/{types/components → components}/ui/background-beams.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/background-beams.js +0 -0
- /package/dist/{esm/components → components}/ui/background-beams.js.map +0 -0
- /package/dist/{types/components → components}/ui/badge.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/badge.js +0 -0
- /package/dist/{esm/components → components}/ui/badge.js.map +0 -0
- /package/dist/{types/components → components}/ui/breadcrumb.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/breadcrumb.js +0 -0
- /package/dist/{esm/components → components}/ui/breadcrumb.js.map +0 -0
- /package/dist/{types/components → components}/ui/bubble-background.d.ts +0 -0
- /package/dist/{types/components → components}/ui/button.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/button.js +0 -0
- /package/dist/{esm/components → components}/ui/button.js.map +0 -0
- /package/dist/{types/components → components}/ui/calendar.d.ts +0 -0
- /package/dist/{types/components → components}/ui/card.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/card.js +0 -0
- /package/dist/{esm/components → components}/ui/card.js.map +0 -0
- /package/dist/{types/components → components}/ui/carousel.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/carousel.js +0 -0
- /package/dist/{esm/components → components}/ui/carousel.js.map +0 -0
- /package/dist/{types/components → components}/ui/checkbox.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/checkbox.js +0 -0
- /package/dist/{esm/components → components}/ui/checkbox.js.map +0 -0
- /package/dist/{types/components → components}/ui/collapsible.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/collapsible.js +0 -0
- /package/dist/{esm/components → components}/ui/collapsible.js.map +0 -0
- /package/dist/{types/components → components}/ui/command.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/command.js +0 -0
- /package/dist/{esm/components → components}/ui/command.js.map +0 -0
- /package/dist/{types/components → components}/ui/context-menu.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/context-menu.js +0 -0
- /package/dist/{esm/components → components}/ui/context-menu.js.map +0 -0
- /package/dist/{types/components → components}/ui/counting-number.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/counting-number.js +0 -0
- /package/dist/{esm/components → components}/ui/counting-number.js.map +0 -0
- /package/dist/{types/components → components}/ui/dialog.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/dialog.js +0 -0
- /package/dist/{esm/components → components}/ui/dialog.js.map +0 -0
- /package/dist/{types/components → components}/ui/dot-background.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/dot-background.js +0 -0
- /package/dist/{esm/components → components}/ui/dot-background.js.map +0 -0
- /package/dist/{types/components → components}/ui/drawer.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/drawer.js +0 -0
- /package/dist/{esm/components → components}/ui/drawer.js.map +0 -0
- /package/dist/{types/components → components}/ui/dropdown-menu.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/dropdown-menu.js +0 -0
- /package/dist/{esm/components → components}/ui/dropdown-menu.js.map +0 -0
- /package/dist/{types/components → components}/ui/dropdrawer.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/dropdrawer.js +0 -0
- /package/dist/{types/components → components}/ui/fireworks-background.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/fireworks-background.js +0 -0
- /package/dist/{esm/components → components}/ui/fireworks-background.js.map +0 -0
- /package/dist/{types/components → components}/ui/flip-button.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/flip-button.js +0 -0
- /package/dist/{esm/components → components}/ui/flip-button.js.map +0 -0
- /package/dist/{types/components → components}/ui/form.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/form.js +0 -0
- /package/dist/{esm/components → components}/ui/form.js.map +0 -0
- /package/dist/{types/components → components}/ui/gradient-background.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/gradient-background.js +0 -0
- /package/dist/{esm/components → components}/ui/gradient-background.js.map +0 -0
- /package/dist/{types/components → components}/ui/gradient-text.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/gradient-text.js +0 -0
- /package/dist/{esm/components → components}/ui/gradient-text.js.map +0 -0
- /package/dist/{types/components → components}/ui/highlight-text.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/highlight-text.js +0 -0
- /package/dist/{esm/components → components}/ui/highlight-text.js.map +0 -0
- /package/dist/{types/components → components}/ui/hole-background.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/hole-background.js +0 -0
- /package/dist/{esm/components → components}/ui/hole-background.js.map +0 -0
- /package/dist/{types/components → components}/ui/hover-card.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/hover-card.js +0 -0
- /package/dist/{esm/components → components}/ui/hover-card.js.map +0 -0
- /package/dist/{types/components → components}/ui/input-otp.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/input-otp.js +0 -0
- /package/dist/{esm/components → components}/ui/input-otp.js.map +0 -0
- /package/dist/{types/components → components}/ui/input.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/input.js +0 -0
- /package/dist/{esm/components → components}/ui/input.js.map +0 -0
- /package/dist/{types/components → components}/ui/label.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/label.js +0 -0
- /package/dist/{esm/components → components}/ui/label.js.map +0 -0
- /package/dist/{types/components → components}/ui/menubar.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/menubar.js +0 -0
- /package/dist/{esm/components → components}/ui/menubar.js.map +0 -0
- /package/dist/{types/components → components}/ui/navigation-menu.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/navigation-menu.js +0 -0
- /package/dist/{esm/components → components}/ui/navigation-menu.js.map +0 -0
- /package/dist/{types/components → components}/ui/pagination.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/pagination.js +0 -0
- /package/dist/{esm/components → components}/ui/pagination.js.map +0 -0
- /package/dist/{types/components → components}/ui/popover.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/popover.js +0 -0
- /package/dist/{esm/components → components}/ui/popover.js.map +0 -0
- /package/dist/{types/components → components}/ui/progress.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/progress.js +0 -0
- /package/dist/{esm/components → components}/ui/progress.js.map +0 -0
- /package/dist/{types/components → components}/ui/radio-group.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/radio-group.js +0 -0
- /package/dist/{esm/components → components}/ui/radio-group.js.map +0 -0
- /package/dist/{types/components → components}/ui/resizable.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/resizable.js +0 -0
- /package/dist/{esm/components → components}/ui/resizable.js.map +0 -0
- /package/dist/{types/components → components}/ui/ripple-button.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/ripple-button.js +0 -0
- /package/dist/{esm/components → components}/ui/ripple-button.js.map +0 -0
- /package/dist/{types/components → components}/ui/scratcher.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/scratcher.js +0 -0
- /package/dist/{esm/components → components}/ui/scratcher.js.map +0 -0
- /package/dist/{types/components → components}/ui/scroll-area.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/scroll-area.js +0 -0
- /package/dist/{esm/components → components}/ui/scroll-area.js.map +0 -0
- /package/dist/{types/components → components}/ui/select.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/select.js +0 -0
- /package/dist/{esm/components → components}/ui/select.js.map +0 -0
- /package/dist/{types/components → components}/ui/separator.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/separator.js +0 -0
- /package/dist/{esm/components → components}/ui/separator.js.map +0 -0
- /package/dist/{types/components → components}/ui/sheet.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/sheet.js +0 -0
- /package/dist/{esm/components → components}/ui/sheet.js.map +0 -0
- /package/dist/{types/components → components}/ui/sidebar.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/sidebar.js +0 -0
- /package/dist/{esm/components → components}/ui/sidebar.js.map +0 -0
- /package/dist/{types/components → components}/ui/skeleton.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/skeleton.js +0 -0
- /package/dist/{esm/components → components}/ui/skeleton.js.map +0 -0
- /package/dist/{types/components → components}/ui/slider.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/slider.js +0 -0
- /package/dist/{esm/components → components}/ui/slider.js.map +0 -0
- /package/dist/{types/components → components}/ui/sonner.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/sonner.js +0 -0
- /package/dist/{esm/components → components}/ui/sonner.js.map +0 -0
- /package/dist/{types/components → components}/ui/switch.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/switch.js +0 -0
- /package/dist/{esm/components → components}/ui/switch.js.map +0 -0
- /package/dist/{types/components → components}/ui/table.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/table.js +0 -0
- /package/dist/{esm/components → components}/ui/table.js.map +0 -0
- /package/dist/{types/components → components}/ui/tabs.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/tabs.js +0 -0
- /package/dist/{esm/components → components}/ui/tabs.js.map +0 -0
- /package/dist/{types/components → components}/ui/textarea.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/textarea.js +0 -0
- /package/dist/{esm/components → components}/ui/textarea.js.map +0 -0
- /package/dist/{types/components → components}/ui/toggle-group.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/toggle-group.js +0 -0
- /package/dist/{esm/components → components}/ui/toggle-group.js.map +0 -0
- /package/dist/{types/components → components}/ui/toggle.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/toggle.js +0 -0
- /package/dist/{esm/components → components}/ui/toggle.js.map +0 -0
- /package/dist/{types/components → components}/ui/tooltip.d.ts +0 -0
- /package/dist/{esm/components → components}/ui/tooltip.js +0 -0
- /package/dist/{esm/components → components}/ui/tooltip.js.map +0 -0
- /package/dist/{types/hooks → hooks}/use-mobile.d.ts +0 -0
- /package/dist/{esm/hooks → hooks}/use-mobile.js +0 -0
- /package/dist/{esm/hooks → hooks}/use-mobile.js.map +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/lib → lib}/utils.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils.js +0 -0
- /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
|
-

|
|
8
|
-

|
|
9
|
-

|
|
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
|
+

|
|
8
|
+

|
|
9
|
+

|
|
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>
|