@arolariu/components 0.0.38 → 0.0.40
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 -0
- package/DEBUGGING.md +401 -0
- package/EXAMPLES.md +1035 -0
- package/LICENSE +21 -21
- package/changelog.md +85 -29
- package/dist/cjs/components/ui/accordion.cjs +2 -2
- package/dist/cjs/components/ui/accordion.cjs.map +1 -1
- package/dist/cjs/components/ui/alert-dialog.cjs +7 -7
- package/dist/cjs/components/ui/alert-dialog.cjs.map +1 -1
- package/dist/cjs/components/ui/alert.cjs +2 -2
- package/dist/cjs/components/ui/alert.cjs.map +1 -1
- package/dist/cjs/components/ui/aspect-ratio.cjs.map +1 -1
- package/dist/cjs/components/ui/avatar.cjs +2 -2
- package/dist/cjs/components/ui/avatar.cjs.map +1 -1
- package/dist/cjs/components/ui/background-beams.cjs.map +1 -1
- package/dist/cjs/components/ui/badge.cjs +2 -2
- package/dist/cjs/components/ui/badge.cjs.map +1 -1
- package/dist/cjs/components/ui/breadcrumb.cjs +5 -5
- package/dist/cjs/components/ui/breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/ui/bubble-background.cjs +1 -2
- package/dist/cjs/components/ui/bubble-background.cjs.map +1 -1
- package/dist/cjs/components/ui/button.cjs.map +1 -1
- package/dist/cjs/components/ui/calendar.cjs +89 -35
- package/dist/cjs/components/ui/calendar.cjs.map +1 -1
- package/dist/cjs/components/ui/card.cjs +5 -5
- package/dist/cjs/components/ui/card.cjs.map +1 -1
- package/dist/cjs/components/ui/carousel.cjs +3 -3
- package/dist/cjs/components/ui/carousel.cjs.map +1 -1
- package/dist/cjs/components/ui/chart.cjs +14 -14
- package/dist/cjs/components/ui/chart.cjs.map +1 -1
- package/dist/cjs/components/ui/checkbox.cjs.map +1 -1
- package/dist/cjs/components/ui/collapsible.cjs +2 -2
- package/dist/cjs/components/ui/collapsible.cjs.map +1 -1
- package/dist/cjs/components/ui/command.cjs +8 -7
- package/dist/cjs/components/ui/command.cjs.map +1 -1
- package/dist/cjs/components/ui/context-menu.cjs +9 -9
- package/dist/cjs/components/ui/context-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/counting-number.cjs.map +1 -1
- package/dist/cjs/components/ui/dialog.cjs +8 -7
- package/dist/cjs/components/ui/dialog.cjs.map +1 -1
- package/dist/cjs/components/ui/dot-background.cjs.map +1 -1
- package/dist/cjs/components/ui/drawer.cjs +6 -6
- package/dist/cjs/components/ui/drawer.cjs.map +1 -1
- package/dist/cjs/components/ui/dropdown-menu.cjs +10 -10
- package/dist/cjs/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/dropdrawer.cjs +8 -8
- package/dist/cjs/components/ui/dropdrawer.cjs.map +1 -1
- package/dist/cjs/components/ui/fireworks-background.cjs.map +1 -1
- package/dist/cjs/components/ui/flip-button.cjs.map +1 -1
- package/dist/cjs/components/ui/form.cjs +5 -5
- package/dist/cjs/components/ui/form.cjs.map +1 -1
- package/dist/cjs/components/ui/gradient-background.cjs.map +1 -1
- package/dist/cjs/components/ui/gradient-text.cjs.map +1 -1
- package/dist/cjs/components/ui/highlight-text.cjs.map +1 -1
- package/dist/cjs/components/ui/hole-background.cjs.map +1 -1
- package/dist/cjs/components/ui/hover-card.cjs +2 -2
- package/dist/cjs/components/ui/hover-card.cjs.map +1 -1
- package/dist/cjs/components/ui/input-otp.cjs +3 -3
- package/dist/cjs/components/ui/input-otp.cjs.map +1 -1
- package/dist/cjs/components/ui/input.cjs.map +1 -1
- package/dist/cjs/components/ui/label.cjs.map +1 -1
- package/dist/cjs/components/ui/menubar.cjs +9 -9
- package/dist/cjs/components/ui/menubar.cjs.map +1 -1
- package/dist/cjs/components/ui/navigation-menu.cjs +4 -4
- package/dist/cjs/components/ui/navigation-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/pagination.cjs +3 -3
- package/dist/cjs/components/ui/pagination.cjs.map +1 -1
- package/dist/cjs/components/ui/popover.cjs.map +1 -1
- package/dist/cjs/components/ui/progress.cjs.map +1 -1
- package/dist/cjs/components/ui/radio-group.cjs.map +1 -1
- package/dist/cjs/components/ui/resizable.cjs +1 -1
- package/dist/cjs/components/ui/resizable.cjs.map +1 -1
- package/dist/cjs/components/ui/ripple-button.cjs.map +1 -1
- package/dist/cjs/components/ui/scratcher.cjs.map +1 -1
- package/dist/cjs/components/ui/scroll-area.cjs.map +1 -1
- package/dist/cjs/components/ui/select.cjs +5 -5
- package/dist/cjs/components/ui/select.cjs.map +1 -1
- package/dist/cjs/components/ui/separator.cjs +1 -1
- package/dist/cjs/components/ui/separator.cjs.map +1 -1
- package/dist/cjs/components/ui/sheet.cjs +5 -5
- package/dist/cjs/components/ui/sheet.cjs.map +1 -1
- package/dist/cjs/components/ui/sidebar.cjs +19 -19
- package/dist/cjs/components/ui/sidebar.cjs.map +1 -1
- package/dist/cjs/components/ui/skeleton.cjs.map +1 -1
- package/dist/cjs/components/ui/slider.cjs.map +1 -1
- package/dist/cjs/components/ui/sonner.cjs +2 -2
- package/dist/cjs/components/ui/sonner.cjs.map +1 -1
- package/dist/cjs/components/ui/switch.cjs.map +1 -1
- package/dist/cjs/components/ui/table.cjs +6 -6
- package/dist/cjs/components/ui/table.cjs.map +1 -1
- package/dist/cjs/components/ui/tabs.cjs +2 -2
- package/dist/cjs/components/ui/tabs.cjs.map +1 -1
- package/dist/cjs/components/ui/textarea.cjs.map +1 -1
- package/dist/cjs/components/ui/toggle-group.cjs +2 -2
- package/dist/cjs/components/ui/toggle-group.cjs.map +1 -1
- package/dist/cjs/components/ui/toggle.cjs +2 -2
- package/dist/cjs/components/ui/toggle.cjs.map +1 -1
- package/dist/cjs/components/ui/tooltip.cjs +3 -3
- package/dist/cjs/components/ui/tooltip.cjs.map +1 -1
- package/dist/cjs/hooks/use-mobile.cjs.map +1 -1
- package/dist/cjs/index.cjs +243 -241
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.css +400 -150
- package/dist/cjs/index.css.map +1 -0
- package/dist/cjs/lib/utils.cjs.map +1 -1
- package/dist/esm/components/ui/accordion.js +14 -14
- package/dist/esm/components/ui/accordion.js.map +1 -1
- package/dist/esm/components/ui/alert-dialog.js +25 -25
- package/dist/esm/components/ui/alert-dialog.js.map +1 -1
- package/dist/esm/components/ui/alert.js +10 -10
- package/dist/esm/components/ui/alert.js.map +1 -1
- package/dist/esm/components/ui/aspect-ratio.js +3 -3
- package/dist/esm/components/ui/aspect-ratio.js.map +1 -1
- package/dist/esm/components/ui/avatar.js +9 -9
- package/dist/esm/components/ui/avatar.js.map +1 -1
- package/dist/esm/components/ui/background-beams.js +20 -20
- package/dist/esm/components/ui/background-beams.js.map +1 -1
- package/dist/esm/components/ui/badge.js +8 -8
- package/dist/esm/components/ui/badge.js.map +1 -1
- package/dist/esm/components/ui/breadcrumb.js +21 -21
- package/dist/esm/components/ui/breadcrumb.js.map +1 -1
- package/dist/esm/components/ui/bubble-background.js +32 -33
- package/dist/esm/components/ui/bubble-background.js.map +1 -1
- package/dist/esm/components/ui/button.js +8 -8
- package/dist/esm/components/ui/button.js.map +1 -1
- package/dist/esm/components/ui/calendar.js +93 -42
- package/dist/esm/components/ui/calendar.js.map +1 -1
- package/dist/esm/components/ui/card.js +16 -16
- package/dist/esm/components/ui/card.js.map +1 -1
- package/dist/esm/components/ui/carousel.js +33 -33
- package/dist/esm/components/ui/carousel.js.map +1 -1
- package/dist/esm/components/ui/chart.js +45 -45
- package/dist/esm/components/ui/chart.js.map +1 -1
- package/dist/esm/components/ui/checkbox.js +8 -8
- package/dist/esm/components/ui/checkbox.js.map +1 -1
- package/dist/esm/components/ui/collapsible.js +8 -8
- package/dist/esm/components/ui/collapsible.js.map +1 -1
- package/dist/esm/components/ui/command.js +33 -32
- package/dist/esm/components/ui/command.js.map +1 -1
- package/dist/esm/components/ui/context-menu.js +36 -36
- package/dist/esm/components/ui/context-menu.js.map +1 -1
- package/dist/esm/components/ui/counting-number.js +12 -12
- package/dist/esm/components/ui/counting-number.js.map +1 -1
- package/dist/esm/components/ui/dialog.js +27 -26
- package/dist/esm/components/ui/dialog.js.map +1 -1
- package/dist/esm/components/ui/dot-background.js +15 -15
- package/dist/esm/components/ui/dot-background.js.map +1 -1
- package/dist/esm/components/ui/drawer.js +24 -24
- package/dist/esm/components/ui/drawer.js.map +1 -1
- package/dist/esm/components/ui/dropdown-menu.js +36 -36
- package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
- package/dist/esm/components/ui/dropdrawer.js +104 -104
- package/dist/esm/components/ui/dropdrawer.js.map +1 -1
- package/dist/esm/components/ui/fireworks-background.js +12 -12
- package/dist/esm/components/ui/fireworks-background.js.map +1 -1
- package/dist/esm/components/ui/flip-button.js +12 -12
- package/dist/esm/components/ui/flip-button.js.map +1 -1
- package/dist/esm/components/ui/form.js +26 -26
- package/dist/esm/components/ui/form.js.map +1 -1
- package/dist/esm/components/ui/gradient-background.js +7 -7
- package/dist/esm/components/ui/gradient-background.js.map +1 -1
- package/dist/esm/components/ui/gradient-text.js +9 -9
- package/dist/esm/components/ui/gradient-text.js.map +1 -1
- package/dist/esm/components/ui/highlight-text.js +10 -10
- package/dist/esm/components/ui/highlight-text.js.map +1 -1
- package/dist/esm/components/ui/hole-background.js +30 -30
- package/dist/esm/components/ui/hole-background.js.map +1 -1
- package/dist/esm/components/ui/hover-card.js +8 -8
- package/dist/esm/components/ui/hover-card.js.map +1 -1
- package/dist/esm/components/ui/input-otp.js +17 -17
- package/dist/esm/components/ui/input-otp.js.map +1 -1
- package/dist/esm/components/ui/input.js +4 -4
- package/dist/esm/components/ui/input.js.map +1 -1
- package/dist/esm/components/ui/label.js +5 -5
- package/dist/esm/components/ui/label.js.map +1 -1
- package/dist/esm/components/ui/menubar.js +39 -39
- package/dist/esm/components/ui/menubar.js.map +1 -1
- package/dist/esm/components/ui/navigation-menu.js +27 -27
- package/dist/esm/components/ui/navigation-menu.js.map +1 -1
- package/dist/esm/components/ui/pagination.js +23 -23
- package/dist/esm/components/ui/pagination.js.map +1 -1
- package/dist/esm/components/ui/popover.js +9 -9
- package/dist/esm/components/ui/popover.js.map +1 -1
- package/dist/esm/components/ui/progress.js +6 -6
- package/dist/esm/components/ui/progress.js.map +1 -1
- package/dist/esm/components/ui/radio-group.js +10 -10
- package/dist/esm/components/ui/radio-group.js.map +1 -1
- package/dist/esm/components/ui/resizable.js +11 -11
- package/dist/esm/components/ui/resizable.js.map +1 -1
- package/dist/esm/components/ui/ripple-button.js +14 -14
- package/dist/esm/components/ui/ripple-button.js.map +1 -1
- package/dist/esm/components/ui/scratcher.js +13 -13
- package/dist/esm/components/ui/scratcher.js.map +1 -1
- package/dist/esm/components/ui/scroll-area.js +11 -11
- package/dist/esm/components/ui/scroll-area.js.map +1 -1
- package/dist/esm/components/ui/select.js +34 -34
- package/dist/esm/components/ui/select.js.map +1 -1
- package/dist/esm/components/ui/separator.js +6 -6
- package/dist/esm/components/ui/separator.js.map +1 -1
- package/dist/esm/components/ui/sheet.js +25 -25
- package/dist/esm/components/ui/sheet.js.map +1 -1
- package/dist/esm/components/ui/sidebar.js +96 -96
- package/dist/esm/components/ui/sidebar.js.map +1 -1
- package/dist/esm/components/ui/skeleton.js +4 -4
- package/dist/esm/components/ui/skeleton.js.map +1 -1
- package/dist/esm/components/ui/slider.js +12 -12
- package/dist/esm/components/ui/slider.js.map +1 -1
- package/dist/esm/components/ui/sonner.js +7 -8
- package/dist/esm/components/ui/sonner.js.map +1 -1
- package/dist/esm/components/ui/switch.js +7 -7
- package/dist/esm/components/ui/switch.js.map +1 -1
- package/dist/esm/components/ui/table.js +19 -19
- package/dist/esm/components/ui/table.js.map +1 -1
- package/dist/esm/components/ui/tabs.js +11 -11
- package/dist/esm/components/ui/tabs.js.map +1 -1
- package/dist/esm/components/ui/textarea.js +4 -4
- package/dist/esm/components/ui/textarea.js.map +1 -1
- package/dist/esm/components/ui/toggle-group.js +12 -12
- package/dist/esm/components/ui/toggle-group.js.map +1 -1
- package/dist/esm/components/ui/toggle.js +7 -7
- package/dist/esm/components/ui/toggle.js.map +1 -1
- package/dist/esm/components/ui/tooltip.js +11 -11
- package/dist/esm/components/ui/tooltip.js.map +1 -1
- package/dist/esm/hooks/use-mobile.js +3 -3
- package/dist/esm/hooks/use-mobile.js.map +1 -1
- package/dist/esm/index.css +400 -150
- package/dist/esm/index.css.map +1 -0
- package/dist/esm/index.js +62 -332
- package/dist/esm/lib/utils.js +3 -3
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/index.css +400 -150
- package/dist/index.js +62 -332
- package/dist/types/components/ui/accordion.d.ts +1 -0
- package/dist/types/components/ui/accordion.d.ts.map +1 -0
- package/dist/types/components/ui/alert-dialog.d.ts +1 -0
- package/dist/types/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/types/components/ui/alert.d.ts +1 -0
- package/dist/types/components/ui/alert.d.ts.map +1 -0
- package/dist/types/components/ui/aspect-ratio.d.ts +1 -0
- package/dist/types/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/types/components/ui/avatar.d.ts +1 -0
- package/dist/types/components/ui/avatar.d.ts.map +1 -0
- package/dist/types/components/ui/background-beams.d.ts +1 -0
- package/dist/types/components/ui/background-beams.d.ts.map +1 -0
- package/dist/types/components/ui/badge.d.ts +1 -0
- package/dist/types/components/ui/badge.d.ts.map +1 -0
- package/dist/types/components/ui/breadcrumb.d.ts +1 -0
- package/dist/types/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/types/components/ui/bubble-background.d.ts +1 -0
- package/dist/types/components/ui/bubble-background.d.ts.map +1 -0
- package/dist/types/components/ui/button.d.ts +1 -0
- package/dist/types/components/ui/button.d.ts.map +1 -0
- package/dist/types/components/ui/calendar.d.ts +8 -3
- package/dist/types/components/ui/calendar.d.ts.map +1 -0
- package/dist/types/components/ui/card.d.ts +1 -0
- package/dist/types/components/ui/card.d.ts.map +1 -0
- package/dist/types/components/ui/carousel.d.ts +1 -0
- package/dist/types/components/ui/carousel.d.ts.map +1 -0
- package/dist/types/components/ui/chart.d.ts +19 -4
- package/dist/types/components/ui/chart.d.ts.map +1 -0
- package/dist/types/components/ui/checkbox.d.ts +1 -0
- package/dist/types/components/ui/checkbox.d.ts.map +1 -0
- package/dist/types/components/ui/collapsible.d.ts +1 -0
- package/dist/types/components/ui/collapsible.d.ts.map +1 -0
- package/dist/types/components/ui/command.d.ts +4 -1
- package/dist/types/components/ui/command.d.ts.map +1 -0
- package/dist/types/components/ui/context-menu.d.ts +1 -0
- package/dist/types/components/ui/context-menu.d.ts.map +1 -0
- package/dist/types/components/ui/counting-number.d.ts +1 -0
- package/dist/types/components/ui/counting-number.d.ts.map +1 -0
- package/dist/types/components/ui/dialog.d.ts +4 -1
- package/dist/types/components/ui/dialog.d.ts.map +1 -0
- package/dist/types/components/ui/dot-background.d.ts +1 -0
- package/dist/types/components/ui/dot-background.d.ts.map +1 -0
- package/dist/types/components/ui/drawer.d.ts +1 -0
- package/dist/types/components/ui/drawer.d.ts.map +1 -0
- package/dist/types/components/ui/dropdown-menu.d.ts +1 -0
- package/dist/types/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/types/components/ui/dropdrawer.d.ts +1 -0
- package/dist/types/components/ui/dropdrawer.d.ts.map +1 -0
- package/dist/types/components/ui/fireworks-background.d.ts +1 -0
- package/dist/types/components/ui/fireworks-background.d.ts.map +1 -0
- package/dist/types/components/ui/flip-button.d.ts +1 -0
- package/dist/types/components/ui/flip-button.d.ts.map +1 -0
- package/dist/types/components/ui/form.d.ts +1 -0
- package/dist/types/components/ui/form.d.ts.map +1 -0
- package/dist/types/components/ui/gradient-background.d.ts +1 -0
- package/dist/types/components/ui/gradient-background.d.ts.map +1 -0
- package/dist/types/components/ui/gradient-text.d.ts +1 -0
- package/dist/types/components/ui/gradient-text.d.ts.map +1 -0
- package/dist/types/components/ui/highlight-text.d.ts +1 -0
- package/dist/types/components/ui/highlight-text.d.ts.map +1 -0
- package/dist/types/components/ui/hole-background.d.ts +1 -0
- package/dist/types/components/ui/hole-background.d.ts.map +1 -0
- package/dist/types/components/ui/hover-card.d.ts +1 -0
- package/dist/types/components/ui/hover-card.d.ts.map +1 -0
- package/dist/types/components/ui/input-otp.d.ts +1 -0
- package/dist/types/components/ui/input-otp.d.ts.map +1 -0
- package/dist/types/components/ui/input.d.ts +1 -0
- package/dist/types/components/ui/input.d.ts.map +1 -0
- package/dist/types/components/ui/label.d.ts +1 -0
- package/dist/types/components/ui/label.d.ts.map +1 -0
- package/dist/types/components/ui/menubar.d.ts +1 -0
- package/dist/types/components/ui/menubar.d.ts.map +1 -0
- package/dist/types/components/ui/navigation-menu.d.ts +1 -0
- package/dist/types/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/types/components/ui/pagination.d.ts +1 -0
- package/dist/types/components/ui/pagination.d.ts.map +1 -0
- package/dist/types/components/ui/popover.d.ts +1 -0
- package/dist/types/components/ui/popover.d.ts.map +1 -0
- package/dist/types/components/ui/progress.d.ts +1 -0
- package/dist/types/components/ui/progress.d.ts.map +1 -0
- package/dist/types/components/ui/radio-group.d.ts +1 -0
- package/dist/types/components/ui/radio-group.d.ts.map +1 -0
- package/dist/types/components/ui/resizable.d.ts +1 -0
- package/dist/types/components/ui/resizable.d.ts.map +1 -0
- package/dist/types/components/ui/ripple-button.d.ts +1 -0
- package/dist/types/components/ui/ripple-button.d.ts.map +1 -0
- package/dist/types/components/ui/scratcher.d.ts +1 -0
- package/dist/types/components/ui/scratcher.d.ts.map +1 -0
- package/dist/types/components/ui/scroll-area.d.ts +1 -0
- package/dist/types/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/types/components/ui/select.d.ts +1 -0
- package/dist/types/components/ui/select.d.ts.map +1 -0
- package/dist/types/components/ui/separator.d.ts +1 -0
- package/dist/types/components/ui/separator.d.ts.map +1 -0
- package/dist/types/components/ui/sheet.d.ts +1 -0
- package/dist/types/components/ui/sheet.d.ts.map +1 -0
- package/dist/types/components/ui/sidebar.d.ts +1 -0
- package/dist/types/components/ui/sidebar.d.ts.map +1 -0
- package/dist/types/components/ui/skeleton.d.ts +1 -0
- package/dist/types/components/ui/skeleton.d.ts.map +1 -0
- package/dist/types/components/ui/slider.d.ts +1 -0
- package/dist/types/components/ui/slider.d.ts.map +1 -0
- package/dist/types/components/ui/sonner.d.ts +1 -0
- package/dist/types/components/ui/sonner.d.ts.map +1 -0
- package/dist/types/components/ui/switch.d.ts +1 -0
- package/dist/types/components/ui/switch.d.ts.map +1 -0
- package/dist/types/components/ui/table.d.ts +1 -0
- package/dist/types/components/ui/table.d.ts.map +1 -0
- package/dist/types/components/ui/tabs.d.ts +1 -0
- package/dist/types/components/ui/tabs.d.ts.map +1 -0
- package/dist/types/components/ui/textarea.d.ts +1 -0
- package/dist/types/components/ui/textarea.d.ts.map +1 -0
- package/dist/types/components/ui/toggle-group.d.ts +1 -0
- package/dist/types/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/types/components/ui/toggle.d.ts +1 -0
- package/dist/types/components/ui/toggle.d.ts.map +1 -0
- package/dist/types/components/ui/tooltip.d.ts +1 -0
- package/dist/types/components/ui/tooltip.d.ts.map +1 -0
- package/dist/types/hooks/use-mobile.d.ts +1 -0
- package/dist/types/hooks/use-mobile.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +1 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/package.json +90 -72
- package/readme.md +627 -215
- package/src/components/ui/accordion.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +4 -4
- package/src/components/ui/alert.tsx +3 -3
- package/src/components/ui/avatar.tsx +2 -2
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bubble-background.tsx +189 -187
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/calendar.tsx +189 -51
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/carousel.tsx +6 -6
- package/src/components/ui/chart.tsx +380 -353
- package/src/components/ui/checkbox.tsx +1 -1
- package/src/components/ui/command.tsx +14 -7
- package/src/components/ui/context-menu.tsx +9 -9
- package/src/components/ui/counting-number.tsx +4 -4
- package/src/components/ui/dialog.tsx +17 -9
- package/src/components/ui/dot-background.tsx +2 -2
- package/src/components/ui/drawer.tsx +141 -138
- package/src/components/ui/dropdrawer.tsx +2 -2
- package/src/components/ui/fireworks-background.tsx +12 -12
- package/src/components/ui/flip-button.tsx +6 -6
- package/src/components/ui/form.tsx +6 -6
- package/src/components/ui/gradient-background.tsx +3 -3
- package/src/components/ui/gradient-text.tsx +2 -2
- package/src/components/ui/highlight-text.tsx +3 -3
- package/src/components/ui/hole-background.tsx +9 -9
- package/src/components/ui/hover-card.tsx +1 -1
- package/src/components/ui/input-otp.tsx +2 -2
- package/src/components/ui/input.tsx +22 -23
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/menubar.tsx +11 -11
- package/src/components/ui/navigation-menu.tsx +8 -8
- package/src/components/ui/pagination.tsx +1 -1
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/progress.tsx +1 -1
- package/src/components/ui/radio-group.tsx +1 -1
- package/src/components/ui/resizable.tsx +3 -3
- package/src/components/ui/ripple-button.tsx +111 -111
- package/src/components/ui/scratcher.tsx +171 -171
- package/src/components/ui/scroll-area.tsx +1 -1
- package/src/components/ui/select.tsx +8 -8
- package/src/components/ui/separator.tsx +2 -2
- package/src/components/ui/sheet.tsx +4 -4
- package/src/components/ui/sidebar.tsx +18 -18
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/slider.tsx +6 -6
- package/src/components/ui/switch.tsx +2 -2
- package/src/components/ui/table.tsx +5 -5
- package/src/components/ui/tabs.tsx +2 -2
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle-group.tsx +2 -2
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/hooks/use-mobile.tsx +44 -44
- package/src/index.css +68 -68
- package/src/index.ts +400 -400
- package/src/lib/utils.ts +10 -10
- package/tailwind.config.mjs +65 -65
- package/tsconfig.json +8 -0
|
@@ -37,7 +37,7 @@ function SheetOverlay({
|
|
|
37
37
|
data-slot="sheet-overlay"
|
|
38
38
|
className={cn(
|
|
39
39
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
40
|
-
className
|
|
40
|
+
className,
|
|
41
41
|
)}
|
|
42
42
|
{...props}
|
|
43
43
|
/>
|
|
@@ -67,7 +67,7 @@ function SheetContent({
|
|
|
67
67
|
"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
|
|
68
68
|
side === "bottom" &&
|
|
69
69
|
"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
|
|
70
|
-
className
|
|
70
|
+
className,
|
|
71
71
|
)}
|
|
72
72
|
{...props}
|
|
73
73
|
>
|
|
@@ -110,7 +110,7 @@ function SheetTitle({
|
|
|
110
110
|
data-slot="sheet-title"
|
|
111
111
|
className={cn(
|
|
112
112
|
"text-neutral-950 font-semibold dark:text-neutral-50",
|
|
113
|
-
className
|
|
113
|
+
className,
|
|
114
114
|
)}
|
|
115
115
|
{...props}
|
|
116
116
|
/>
|
|
@@ -126,7 +126,7 @@ function SheetDescription({
|
|
|
126
126
|
data-slot="sheet-description"
|
|
127
127
|
className={cn(
|
|
128
128
|
"text-neutral-500 text-sm dark:text-neutral-400",
|
|
129
|
-
className
|
|
129
|
+
className,
|
|
130
130
|
)}
|
|
131
131
|
{...props}
|
|
132
132
|
/>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
-
import {
|
|
5
|
+
import { cva, VariantProps } from "class-variance-authority";
|
|
6
6
|
import { PanelLeftIcon } from "lucide-react";
|
|
7
7
|
|
|
8
8
|
import { useIsMobile } from "@/hooks/use-mobile";
|
|
@@ -85,7 +85,7 @@ function SidebarProvider({
|
|
|
85
85
|
// This sets the cookie to keep the sidebar state.
|
|
86
86
|
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
87
87
|
},
|
|
88
|
-
[setOpenProp, open]
|
|
88
|
+
[setOpenProp, open],
|
|
89
89
|
);
|
|
90
90
|
|
|
91
91
|
// Helper to toggle the sidebar.
|
|
@@ -123,7 +123,7 @@ function SidebarProvider({
|
|
|
123
123
|
setOpenMobile,
|
|
124
124
|
toggleSidebar,
|
|
125
125
|
}),
|
|
126
|
-
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
126
|
+
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],
|
|
127
127
|
);
|
|
128
128
|
|
|
129
129
|
return (
|
|
@@ -140,7 +140,7 @@ function SidebarProvider({
|
|
|
140
140
|
}
|
|
141
141
|
className={cn(
|
|
142
142
|
"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
|
|
143
|
-
className
|
|
143
|
+
className,
|
|
144
144
|
)}
|
|
145
145
|
{...props}
|
|
146
146
|
>
|
|
@@ -171,7 +171,7 @@ function Sidebar({
|
|
|
171
171
|
data-slot="sidebar"
|
|
172
172
|
className={cn(
|
|
173
173
|
"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
|
|
174
|
-
className
|
|
174
|
+
className,
|
|
175
175
|
)}
|
|
176
176
|
{...props}
|
|
177
177
|
>
|
|
@@ -223,7 +223,7 @@ function Sidebar({
|
|
|
223
223
|
"group-data-[side=right]:rotate-180",
|
|
224
224
|
variant === "floating" || variant === "inset"
|
|
225
225
|
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
|
|
226
|
-
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
|
|
226
|
+
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon)",
|
|
227
227
|
)}
|
|
228
228
|
/>
|
|
229
229
|
<div
|
|
@@ -237,7 +237,7 @@ function Sidebar({
|
|
|
237
237
|
variant === "floating" || variant === "inset"
|
|
238
238
|
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
|
|
239
239
|
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
240
|
-
className
|
|
240
|
+
className,
|
|
241
241
|
)}
|
|
242
242
|
{...props}
|
|
243
243
|
>
|
|
@@ -297,7 +297,7 @@ function SidebarRail({ className, ...props }: React.ComponentProps<"button">) {
|
|
|
297
297
|
"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
|
|
298
298
|
"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
|
|
299
299
|
"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
|
|
300
|
-
className
|
|
300
|
+
className,
|
|
301
301
|
)}
|
|
302
302
|
{...props}
|
|
303
303
|
/>
|
|
@@ -311,7 +311,7 @@ function SidebarInset({ className, ...props }: React.ComponentProps<"main">) {
|
|
|
311
311
|
className={cn(
|
|
312
312
|
"bg-white relative flex w-full flex-1 flex-col dark:bg-neutral-950",
|
|
313
313
|
"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
|
|
314
|
-
className
|
|
314
|
+
className,
|
|
315
315
|
)}
|
|
316
316
|
{...props}
|
|
317
317
|
/>
|
|
@@ -328,7 +328,7 @@ function SidebarInput({
|
|
|
328
328
|
data-sidebar="input"
|
|
329
329
|
className={cn(
|
|
330
330
|
"bg-white h-8 w-full shadow-none dark:bg-neutral-950",
|
|
331
|
-
className
|
|
331
|
+
className,
|
|
332
332
|
)}
|
|
333
333
|
{...props}
|
|
334
334
|
/>
|
|
@@ -378,7 +378,7 @@ function SidebarContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
378
378
|
data-sidebar="content"
|
|
379
379
|
className={cn(
|
|
380
380
|
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
381
|
-
className
|
|
381
|
+
className,
|
|
382
382
|
)}
|
|
383
383
|
{...props}
|
|
384
384
|
/>
|
|
@@ -410,7 +410,7 @@ function SidebarGroupLabel({
|
|
|
410
410
|
className={cn(
|
|
411
411
|
"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
412
412
|
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
|
|
413
|
-
className
|
|
413
|
+
className,
|
|
414
414
|
)}
|
|
415
415
|
{...props}
|
|
416
416
|
/>
|
|
@@ -433,7 +433,7 @@ function SidebarGroupAction({
|
|
|
433
433
|
// Increases the hit area of the button on mobile.
|
|
434
434
|
"after:absolute after:-inset-2 md:after:hidden",
|
|
435
435
|
"group-data-[collapsible=icon]:hidden",
|
|
436
|
-
className
|
|
436
|
+
className,
|
|
437
437
|
)}
|
|
438
438
|
{...props}
|
|
439
439
|
/>
|
|
@@ -495,7 +495,7 @@ const sidebarMenuButtonVariants = cva(
|
|
|
495
495
|
variant: "default",
|
|
496
496
|
size: "default",
|
|
497
497
|
},
|
|
498
|
-
}
|
|
498
|
+
},
|
|
499
499
|
);
|
|
500
500
|
|
|
501
501
|
function SidebarMenuButton({
|
|
@@ -573,7 +573,7 @@ function SidebarMenuAction({
|
|
|
573
573
|
"group-data-[collapsible=icon]:hidden",
|
|
574
574
|
showOnHover &&
|
|
575
575
|
"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
|
|
576
|
-
className
|
|
576
|
+
className,
|
|
577
577
|
)}
|
|
578
578
|
{...props}
|
|
579
579
|
/>
|
|
@@ -595,7 +595,7 @@ function SidebarMenuBadge({
|
|
|
595
595
|
"peer-data-[size=default]/menu-button:top-1.5",
|
|
596
596
|
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
597
597
|
"group-data-[collapsible=icon]:hidden",
|
|
598
|
-
className
|
|
598
|
+
className,
|
|
599
599
|
)}
|
|
600
600
|
{...props}
|
|
601
601
|
/>
|
|
@@ -648,7 +648,7 @@ function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) {
|
|
|
648
648
|
className={cn(
|
|
649
649
|
"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5",
|
|
650
650
|
"group-data-[collapsible=icon]:hidden",
|
|
651
|
-
className
|
|
651
|
+
className,
|
|
652
652
|
)}
|
|
653
653
|
{...props}
|
|
654
654
|
/>
|
|
@@ -694,7 +694,7 @@ function SidebarMenuSubButton({
|
|
|
694
694
|
size === "sm" && "text-xs",
|
|
695
695
|
size === "md" && "text-sm",
|
|
696
696
|
"group-data-[collapsible=icon]:hidden",
|
|
697
|
-
className
|
|
697
|
+
className,
|
|
698
698
|
)}
|
|
699
699
|
{...props}
|
|
700
700
|
/>
|
|
@@ -18,9 +18,9 @@ function Slider({
|
|
|
18
18
|
Array.isArray(value)
|
|
19
19
|
? value
|
|
20
20
|
: Array.isArray(defaultValue)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
[value, defaultValue, min, max]
|
|
21
|
+
? defaultValue
|
|
22
|
+
: [min, max],
|
|
23
|
+
[value, defaultValue, min, max],
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -32,20 +32,20 @@ function Slider({
|
|
|
32
32
|
max={max}
|
|
33
33
|
className={cn(
|
|
34
34
|
"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
35
|
-
className
|
|
35
|
+
className,
|
|
36
36
|
)}
|
|
37
37
|
{...props}
|
|
38
38
|
>
|
|
39
39
|
<SliderPrimitive.Track
|
|
40
40
|
data-slot="slider-track"
|
|
41
41
|
className={cn(
|
|
42
|
-
"bg-neutral-100 relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5 dark:bg-neutral-800"
|
|
42
|
+
"bg-neutral-100 relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5 dark:bg-neutral-800",
|
|
43
43
|
)}
|
|
44
44
|
>
|
|
45
45
|
<SliderPrimitive.Range
|
|
46
46
|
data-slot="slider-range"
|
|
47
47
|
className={cn(
|
|
48
|
-
"bg-neutral-900 absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full dark:bg-neutral-50"
|
|
48
|
+
"bg-neutral-900 absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full dark:bg-neutral-50",
|
|
49
49
|
)}
|
|
50
50
|
/>
|
|
51
51
|
</SliderPrimitive.Track>
|
|
@@ -14,14 +14,14 @@ function Switch({
|
|
|
14
14
|
data-slot="switch"
|
|
15
15
|
className={cn(
|
|
16
16
|
"peer data-[state=checked]:bg-neutral-900 data-[state=unchecked]:bg-neutral-200 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 dark:data-[state=unchecked]:bg-neutral-200/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-neutral-200 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=unchecked]:bg-neutral-800 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:dark:data-[state=unchecked]:bg-neutral-800/80 dark:border-neutral-800",
|
|
17
|
-
className
|
|
17
|
+
className,
|
|
18
18
|
)}
|
|
19
19
|
{...props}
|
|
20
20
|
>
|
|
21
21
|
<SwitchPrimitive.Thumb
|
|
22
22
|
data-slot="switch-thumb"
|
|
23
23
|
className={cn(
|
|
24
|
-
"bg-white dark:data-[state=unchecked]:bg-neutral-950 dark:data-[state=checked]:bg-neutral-50 pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:bg-neutral-950 dark:dark:data-[state=unchecked]:bg-neutral-50 dark:dark:data-[state=checked]:bg-neutral-900"
|
|
24
|
+
"bg-white dark:data-[state=unchecked]:bg-neutral-950 dark:data-[state=checked]:bg-neutral-50 pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:bg-neutral-950 dark:dark:data-[state=unchecked]:bg-neutral-50 dark:dark:data-[state=checked]:bg-neutral-900",
|
|
25
25
|
)}
|
|
26
26
|
/>
|
|
27
27
|
</SwitchPrimitive.Root>
|
|
@@ -45,7 +45,7 @@ function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
|
|
|
45
45
|
data-slot="table-footer"
|
|
46
46
|
className={cn(
|
|
47
47
|
"bg-neutral-100/50 border-t font-medium [&>tr]:last:border-b-0 dark:bg-neutral-800/50",
|
|
48
|
-
className
|
|
48
|
+
className,
|
|
49
49
|
)}
|
|
50
50
|
{...props}
|
|
51
51
|
/>
|
|
@@ -58,7 +58,7 @@ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
|
|
|
58
58
|
data-slot="table-row"
|
|
59
59
|
className={cn(
|
|
60
60
|
"hover:bg-neutral-100/50 data-[state=selected]:bg-neutral-100 border-b transition-colors dark:hover:bg-neutral-800/50 dark:data-[state=selected]:bg-neutral-800",
|
|
61
|
-
className
|
|
61
|
+
className,
|
|
62
62
|
)}
|
|
63
63
|
{...props}
|
|
64
64
|
/>
|
|
@@ -71,7 +71,7 @@ function TableHead({ className, ...props }: React.ComponentProps<"th">) {
|
|
|
71
71
|
data-slot="table-head"
|
|
72
72
|
className={cn(
|
|
73
73
|
"text-neutral-950 h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] dark:text-neutral-50",
|
|
74
|
-
className
|
|
74
|
+
className,
|
|
75
75
|
)}
|
|
76
76
|
{...props}
|
|
77
77
|
/>
|
|
@@ -84,7 +84,7 @@ function TableCell({ className, ...props }: React.ComponentProps<"td">) {
|
|
|
84
84
|
data-slot="table-cell"
|
|
85
85
|
className={cn(
|
|
86
86
|
"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
87
|
-
className
|
|
87
|
+
className,
|
|
88
88
|
)}
|
|
89
89
|
{...props}
|
|
90
90
|
/>
|
|
@@ -100,7 +100,7 @@ function TableCaption({
|
|
|
100
100
|
data-slot="table-caption"
|
|
101
101
|
className={cn(
|
|
102
102
|
"text-neutral-500 mt-4 text-sm dark:text-neutral-400",
|
|
103
|
-
className
|
|
103
|
+
className,
|
|
104
104
|
)}
|
|
105
105
|
{...props}
|
|
106
106
|
/>
|
|
@@ -27,7 +27,7 @@ function TabsList({
|
|
|
27
27
|
data-slot="tabs-list"
|
|
28
28
|
className={cn(
|
|
29
29
|
"bg-neutral-100 text-neutral-500 inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px] dark:bg-neutral-800 dark:text-neutral-400",
|
|
30
|
-
className
|
|
30
|
+
className,
|
|
31
31
|
)}
|
|
32
32
|
{...props}
|
|
33
33
|
/>
|
|
@@ -43,7 +43,7 @@ function TabsTrigger({
|
|
|
43
43
|
data-slot="tabs-trigger"
|
|
44
44
|
className={cn(
|
|
45
45
|
"data-[state=active]:bg-white dark:data-[state=active]:text-neutral-950 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 focus-visible:outline-ring dark:data-[state=active]:border-neutral-200 dark:data-[state=active]:bg-neutral-200/30 text-neutral-950 dark:text-neutral-500 inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-neutral-200 border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:data-[state=active]:bg-neutral-950 dark:dark:data-[state=active]:text-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:dark:data-[state=active]:border-neutral-800 dark:dark:data-[state=active]:bg-neutral-800/30 dark:text-neutral-50 dark:dark:text-neutral-400 dark:border-neutral-800",
|
|
46
|
-
className
|
|
46
|
+
className,
|
|
47
47
|
)}
|
|
48
48
|
{...props}
|
|
49
49
|
/>
|
|
@@ -10,7 +10,7 @@ function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
|
|
|
10
10
|
data-slot="textarea"
|
|
11
11
|
className={cn(
|
|
12
12
|
"border-neutral-200 placeholder:text-neutral-500 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:bg-neutral-200/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-neutral-800 dark:placeholder:text-neutral-400 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900 dark:dark:bg-neutral-800/30",
|
|
13
|
-
className
|
|
13
|
+
className,
|
|
14
14
|
)}
|
|
15
15
|
{...props}
|
|
16
16
|
/>
|
|
@@ -29,7 +29,7 @@ function ToggleGroup({
|
|
|
29
29
|
data-size={size}
|
|
30
30
|
className={cn(
|
|
31
31
|
"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs",
|
|
32
|
-
className
|
|
32
|
+
className,
|
|
33
33
|
)}
|
|
34
34
|
{...props}
|
|
35
35
|
>
|
|
@@ -61,7 +61,7 @@ function ToggleGroupItem({
|
|
|
61
61
|
size: context.size || size,
|
|
62
62
|
}),
|
|
63
63
|
"min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l",
|
|
64
|
-
className
|
|
64
|
+
className,
|
|
65
65
|
)}
|
|
66
66
|
{...props}
|
|
67
67
|
>
|
|
@@ -47,7 +47,7 @@ function TooltipContent({
|
|
|
47
47
|
sideOffset={sideOffset}
|
|
48
48
|
className={cn(
|
|
49
49
|
"bg-neutral-900 text-neutral-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance dark:bg-neutral-50 dark:text-neutral-900",
|
|
50
|
-
className
|
|
50
|
+
className,
|
|
51
51
|
)}
|
|
52
52
|
{...props}
|
|
53
53
|
>
|
package/src/hooks/use-mobile.tsx
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
const MOBILE_BREAKPOINT = 768;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A custom React hook that detects whether the current device is a mobile device
|
|
7
|
-
* based on the screen width.
|
|
8
|
-
*
|
|
9
|
-
* This hook uses a media query to check if the viewport width is less than the defined
|
|
10
|
-
* mobile breakpoint (768px). It updates the state when the window size changes.
|
|
11
|
-
*
|
|
12
|
-
* @returns {boolean} Returns true if the viewport width is less than the mobile breakpoint,
|
|
13
|
-
* false otherwise.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```tsx
|
|
17
|
-
* function MyComponent() {
|
|
18
|
-
* const isMobile = useIsMobile();
|
|
19
|
-
*
|
|
20
|
-
* return (
|
|
21
|
-
* <div>
|
|
22
|
-
* {isMobile ? 'Mobile View' : 'Desktop View'}
|
|
23
|
-
* </div>
|
|
24
|
-
* );
|
|
25
|
-
* }
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export function useIsMobile(): boolean {
|
|
29
|
-
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(
|
|
30
|
-
undefined,
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
React.useEffect(() => {
|
|
34
|
-
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
35
|
-
const onChange = () => {
|
|
36
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
37
|
-
};
|
|
38
|
-
mql.addEventListener("change", onChange);
|
|
39
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
40
|
-
return () => mql.removeEventListener("change", onChange);
|
|
41
|
-
}, []);
|
|
42
|
-
|
|
43
|
-
return !!isMobile;
|
|
44
|
-
}
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
const MOBILE_BREAKPOINT = 768;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A custom React hook that detects whether the current device is a mobile device
|
|
7
|
+
* based on the screen width.
|
|
8
|
+
*
|
|
9
|
+
* This hook uses a media query to check if the viewport width is less than the defined
|
|
10
|
+
* mobile breakpoint (768px). It updates the state when the window size changes.
|
|
11
|
+
*
|
|
12
|
+
* @returns {boolean} Returns true if the viewport width is less than the mobile breakpoint,
|
|
13
|
+
* false otherwise.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* function MyComponent() {
|
|
18
|
+
* const isMobile = useIsMobile();
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <div>
|
|
22
|
+
* {isMobile ? 'Mobile View' : 'Desktop View'}
|
|
23
|
+
* </div>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useIsMobile(): boolean {
|
|
29
|
+
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(
|
|
30
|
+
undefined,
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
React.useEffect(() => {
|
|
34
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
35
|
+
const onChange = () => {
|
|
36
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
37
|
+
};
|
|
38
|
+
mql.addEventListener("change", onChange);
|
|
39
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
40
|
+
return () => mql.removeEventListener("change", onChange);
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
return !!isMobile;
|
|
44
|
+
}
|
package/src/index.css
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
@import 'tailwindcss';
|
|
1
|
+
@import 'tailwindcss';
|
|
2
2
|
|
|
3
|
-
@config '../tailwind.config.mjs';
|
|
3
|
+
@config '../tailwind.config.mjs';
|
|
4
4
|
|
|
5
|
-
@custom-variant dark (&:is(.dark *));
|
|
5
|
+
@custom-variant dark (&:is(.dark *));
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
The default border color has changed to `currentcolor` in Tailwind CSS v4,
|
|
9
|
-
so we've added these compatibility styles to make sure everything still
|
|
10
|
-
looks the same as it did with Tailwind CSS v3.
|
|
7
|
+
/*
|
|
8
|
+
The default border color has changed to `currentcolor` in Tailwind CSS v4,
|
|
9
|
+
so we've added these compatibility styles to make sure everything still
|
|
10
|
+
looks the same as it did with Tailwind CSS v3.
|
|
11
11
|
|
|
12
|
-
If we ever want to remove these styles, we need to add an explicit border
|
|
13
|
-
color utility to any element that depends on these defaults.
|
|
14
|
-
*/
|
|
15
|
-
@layer base {
|
|
16
|
-
*,
|
|
17
|
-
::after,
|
|
18
|
-
::before,
|
|
19
|
-
::backdrop,
|
|
20
|
-
::file-selector-button {
|
|
21
|
-
border-color: var(--color-gray-200, currentcolor);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
12
|
+
If we ever want to remove these styles, we need to add an explicit border
|
|
13
|
+
color utility to any element that depends on these defaults.
|
|
14
|
+
*/
|
|
15
|
+
@layer base {
|
|
16
|
+
*,
|
|
17
|
+
::after,
|
|
18
|
+
::before,
|
|
19
|
+
::backdrop,
|
|
20
|
+
::file-selector-button {
|
|
21
|
+
border-color: var(--color-gray-200, currentcolor);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
24
|
|
|
25
|
-
:root {
|
|
26
|
-
--sidebar: hsl(0 0% 98%);
|
|
27
|
-
--sidebar-foreground: hsl(240 5.3% 26.1%);
|
|
28
|
-
--sidebar-primary: hsl(240 5.9% 10%);
|
|
29
|
-
--sidebar-primary-foreground: hsl(0 0% 98%);
|
|
30
|
-
--sidebar-accent: hsl(240 4.8% 95.9%);
|
|
31
|
-
--sidebar-accent-foreground: hsl(240 5.9% 10%);
|
|
32
|
-
--sidebar-border: hsl(220 13% 91%);
|
|
33
|
-
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
34
|
-
}
|
|
35
|
-
.dark {
|
|
36
|
-
--sidebar: hsl(240 5.9% 10%);
|
|
37
|
-
--sidebar-foreground: hsl(240 4.8% 95.9%);
|
|
38
|
-
--sidebar-primary: hsl(224.3 76.3% 48%);
|
|
39
|
-
--sidebar-primary-foreground: hsl(0 0% 100%);
|
|
40
|
-
--sidebar-accent: hsl(240 3.7% 15.9%);
|
|
41
|
-
--sidebar-accent-foreground: hsl(240 4.8% 95.9%);
|
|
42
|
-
--sidebar-border: hsl(240 3.7% 15.9%);
|
|
43
|
-
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
44
|
-
}
|
|
25
|
+
:root {
|
|
26
|
+
--sidebar: hsl(0 0% 98%);
|
|
27
|
+
--sidebar-foreground: hsl(240 5.3% 26.1%);
|
|
28
|
+
--sidebar-primary: hsl(240 5.9% 10%);
|
|
29
|
+
--sidebar-primary-foreground: hsl(0 0% 98%);
|
|
30
|
+
--sidebar-accent: hsl(240 4.8% 95.9%);
|
|
31
|
+
--sidebar-accent-foreground: hsl(240 5.9% 10%);
|
|
32
|
+
--sidebar-border: hsl(220 13% 91%);
|
|
33
|
+
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
34
|
+
}
|
|
35
|
+
.dark {
|
|
36
|
+
--sidebar: hsl(240 5.9% 10%);
|
|
37
|
+
--sidebar-foreground: hsl(240 4.8% 95.9%);
|
|
38
|
+
--sidebar-primary: hsl(224.3 76.3% 48%);
|
|
39
|
+
--sidebar-primary-foreground: hsl(0 0% 100%);
|
|
40
|
+
--sidebar-accent: hsl(240 3.7% 15.9%);
|
|
41
|
+
--sidebar-accent-foreground: hsl(240 4.8% 95.9%);
|
|
42
|
+
--sidebar-border: hsl(240 3.7% 15.9%);
|
|
43
|
+
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
44
|
+
}
|
|
45
45
|
|
|
46
|
-
@theme inline {
|
|
47
|
-
--color-sidebar: var(--sidebar);
|
|
48
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
49
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
50
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
51
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
52
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
53
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
54
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
55
|
-
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
56
|
-
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
46
|
+
@theme inline {
|
|
47
|
+
--color-sidebar: var(--sidebar);
|
|
48
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
49
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
50
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
51
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
52
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
53
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
54
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
55
|
+
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
56
|
+
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
57
57
|
|
|
58
|
-
@keyframes accordion-down {
|
|
59
|
-
from {
|
|
60
|
-
height: 0;
|
|
61
|
-
}
|
|
62
|
-
to {
|
|
63
|
-
height: var(--radix-accordion-content-height);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@keyframes accordion-up {
|
|
68
|
-
from {
|
|
69
|
-
height: var(--radix-accordion-content-height);
|
|
70
|
-
}
|
|
71
|
-
to {
|
|
72
|
-
height: 0;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
58
|
+
@keyframes accordion-down {
|
|
59
|
+
from {
|
|
60
|
+
height: 0;
|
|
61
|
+
}
|
|
62
|
+
to {
|
|
63
|
+
height: var(--radix-accordion-content-height);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@keyframes accordion-up {
|
|
68
|
+
from {
|
|
69
|
+
height: var(--radix-accordion-content-height);
|
|
70
|
+
}
|
|
71
|
+
to {
|
|
72
|
+
height: 0;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|