@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\ui\\calendar.js","sources":["webpack://@arolariu/components/./src/components/ui/calendar.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\r\nimport { DayPicker } from \"react-day-picker\";\r\nimport { cn } from \"./../../lib/utils\";\r\nimport { buttonVariants } from \"./button\";\r\n\r\nfunction Calendar({\r\n className,\r\n classNames,\r\n showOutsideDays = true,\r\n ...props\r\n}: React.ComponentProps<typeof DayPicker>) {\r\n return (\r\n <DayPicker\r\n showOutsideDays={showOutsideDays}\r\n className={cn(\"p-3\", className)}\r\n classNames={{\r\n months: \"flex flex-col sm:flex-row gap-2\",\r\n month: \"flex flex-col gap-4\",\r\n month_caption: \"flex justify-center pt-1 relative items-center w-full\",\r\n caption_label: \"text-sm font-medium\",\r\n nav: \"flex items-center gap-1\",\r\n nav_button: cn(\r\n buttonVariants({ variant: \"outline\" }),\r\n \"size-7 bg-transparent p-0 opacity-50 hover:opacity-100\"\r\n ),\r\n button_previous: \"absolute left-1\",\r\n button_next: \"absolute right-1\",\r\n month_grid: \"w-full border-collapse space-x-1\",\r\n weekdays: \"flex\",\r\n weekday:\r\n \"text-neutral-500 rounded-md w-8 font-normal text-[0.8rem] dark:text-neutral-400\",\r\n row: \"flex w-full mt-2\",\r\n day: cn(\r\n \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-neutral-100 [&:has([aria-selected].day-range-end)]:rounded-r-md dark:[&:has([aria-selected])]:bg-neutral-800\",\r\n props.mode === \"range\"\r\n ? \"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md\"\r\n : \"[&:has([aria-selected])]:rounded-md\"\r\n ),\r\n day_button: cn(\r\n buttonVariants({ variant: \"ghost\" }),\r\n \"size-8 p-0 font-normal aria-selected:opacity-100\"\r\n ),\r\n range_start:\r\n \"day-range-start aria-selected:bg-neutral-900 aria-selected:text-neutral-50 dark:aria-selected:bg-neutral-50 dark:aria-selected:text-neutral-900\",\r\n range_end:\r\n \"day-range-end aria-selected:bg-neutral-900 aria-selected:text-neutral-50 dark:aria-selected:bg-neutral-50 dark:aria-selected:text-neutral-900\",\r\n selected:\r\n \"bg-neutral-900 text-neutral-50 hover:bg-neutral-900 hover:text-neutral-50 focus:bg-neutral-900 focus:text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50 dark:hover:text-neutral-900 dark:focus:bg-neutral-50 dark:focus:text-neutral-900\",\r\n today:\r\n \"bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50\",\r\n outside:\r\n \"day-outside text-neutral-500 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:text-neutral-400\",\r\n disabled: \"text-neutral-500 opacity-50 dark:text-neutral-400\",\r\n range_middle:\r\n \"aria-selected:bg-neutral-100 aria-selected:text-neutral-900 dark:aria-selected:bg-neutral-800 dark:aria-selected:text-neutral-50\",\r\n hidden: \"invisible\",\r\n ...classNames,\r\n }}\r\n components={{\r\n Chevron: ({ className, ...props }) => {\r\n if (props.orientation === \"left\") {\r\n return <ChevronLeft className={cn(\"size-4\", className)} {...props} />\r\n }\r\n return <ChevronRight className={cn(\"size-4\", className)} {...props} />\r\n }\r\n }}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Calendar };\r\n"],"names":["Calendar","className","classNames","showOutsideDays","props","DayPicker","cn","buttonVariants","ChevronLeft","ChevronRight"],"mappings":";;;;;;;AAQA,SAASA,SAAS,EAChBC,SAAS,EACTC,UAAU,EACVC,kBAAkB,IAAI,EACtB,GAAGC,OACoC;IACvC,OACE,WADF,GACE,gEAACC,sDAAAA,SAASA,EAAAA;QACR,iBAAiBF;QACjB,WAAWG,IAAAA,mDAAAA,EAAAA,EAAG,OAAOL;QACrB,YAAY;YACV,QAAQ;YACR,OAAO;YACP,eAAe;YACf,eAAe;YACf,KAAK;YACL,YAAYK,IAAAA,mDAAAA,EAAAA,EACVC,IAAAA,gDAAAA,cAAAA,EAAe;gBAAE,SAAS;YAAU,IACpC;YAEF,iBAAiB;YACjB,aAAa;YACb,YAAY;YACZ,UAAU;YACV,SACE;YACF,KAAK;YACL,KAAKD,IAAAA,mDAAAA,EAAAA,EACH,qNACAF,YAAAA,MAAM,IAAI,GACN,yKACA;YAEN,YAAYE,IAAAA,mDAAAA,EAAAA,EACVC,IAAAA,gDAAAA,cAAAA,EAAe;gBAAE,SAAS;YAAQ,IAClC;YAEF,aACE;YACF,WACE;YACF,UACE;YACF,OACE;YACF,SACE;YACF,UAAU;YACV,cACE;YACF,QAAQ;YACR,GAAGL,UAAU;QACf;QACA,YAAY;YACV,SAAS,CAAC,EAAED,SAAS,EAAE,GAAGG,OAAO;gBAC/B,IAAIA,WAAAA,MAAM,WAAW,EACrB,OAAO,WAAP,GAAO,gEAACI,kDAAAA,WAAWA,EAAAA;oBAAC,WAAWF,IAAAA,mDAAAA,EAAAA,EAAG,UAAUL;oBAAa,GAAGG,KAAK;;gBAEjE,OAAO,WAAP,GAAO,gEAACK,kDAAAA,YAAYA,EAAAA;oBAAC,WAAWH,IAAAA,mDAAAA,EAAAA,EAAG,UAAUL;oBAAa,GAAGG,KAAK;;YACpE;QACF;QACC,GAAGA,KAAK;;AAGf"}
|
|
1
|
+
{"version":3,"file":"components\\ui\\calendar.js","sources":["webpack://@arolariu/components/./src/components/ui/calendar.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n ChevronDownIcon,\r\n ChevronLeftIcon,\r\n ChevronRightIcon,\r\n} from \"lucide-react\";\r\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Button, buttonVariants } from \"@/components/ui/button\";\r\n\r\nfunction Calendar({\r\n className,\r\n classNames,\r\n showOutsideDays = true,\r\n captionLayout = \"label\",\r\n buttonVariant = \"ghost\",\r\n formatters,\r\n components,\r\n ...props\r\n}: React.ComponentProps<typeof DayPicker> & {\r\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\r\n}) {\r\n const defaultClassNames = getDefaultClassNames();\r\n\r\n return (\r\n <DayPicker\r\n showOutsideDays={showOutsideDays}\r\n className={cn(\r\n \"bg-white group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent dark:bg-neutral-950\",\r\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\r\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\r\n className,\r\n )}\r\n captionLayout={captionLayout}\r\n formatters={{\r\n formatMonthDropdown: (date) =>\r\n date.toLocaleString(\"default\", { month: \"short\" }),\r\n ...formatters,\r\n }}\r\n classNames={{\r\n root: cn(\"w-fit\", defaultClassNames.root),\r\n months: cn(\r\n \"flex gap-4 flex-col md:flex-row relative\",\r\n defaultClassNames.months,\r\n ),\r\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\r\n nav: cn(\r\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\r\n defaultClassNames.nav,\r\n ),\r\n button_previous: cn(\r\n buttonVariants({ variant: buttonVariant }),\r\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\r\n defaultClassNames.button_previous,\r\n ),\r\n button_next: cn(\r\n buttonVariants({ variant: buttonVariant }),\r\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\r\n defaultClassNames.button_next,\r\n ),\r\n month_caption: cn(\r\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\r\n defaultClassNames.month_caption,\r\n ),\r\n dropdowns: cn(\r\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\r\n defaultClassNames.dropdowns,\r\n ),\r\n dropdown_root: cn(\r\n \"relative has-focus:border-neutral-950 border border-neutral-200 shadow-xs has-focus:ring-neutral-950/50 has-focus:ring-[3px] rounded-md dark:has-focus:border-neutral-300 dark:border-neutral-800 dark:has-focus:ring-neutral-300/50\",\r\n defaultClassNames.dropdown_root,\r\n ),\r\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\r\n caption_label: cn(\r\n \"select-none font-medium\",\r\n captionLayout === \"label\"\r\n ? \"text-sm\"\r\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-neutral-500 [&>svg]:size-3.5 dark:[&>svg]:text-neutral-400\",\r\n defaultClassNames.caption_label,\r\n ),\r\n table: \"w-full border-collapse\",\r\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\r\n weekday: cn(\r\n \"text-neutral-500 rounded-md flex-1 font-normal text-[0.8rem] select-none dark:text-neutral-400\",\r\n defaultClassNames.weekday,\r\n ),\r\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\r\n week_number_header: cn(\r\n \"select-none w-(--cell-size)\",\r\n defaultClassNames.week_number_header,\r\n ),\r\n week_number: cn(\r\n \"text-[0.8rem] select-none text-neutral-500 dark:text-neutral-400\",\r\n defaultClassNames.week_number,\r\n ),\r\n day: cn(\r\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\r\n defaultClassNames.day,\r\n ),\r\n range_start: cn(\r\n \"rounded-l-md bg-neutral-100 dark:bg-neutral-800\",\r\n defaultClassNames.range_start,\r\n ),\r\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\r\n range_end: cn(\r\n \"rounded-r-md bg-neutral-100 dark:bg-neutral-800\",\r\n defaultClassNames.range_end,\r\n ),\r\n today: cn(\r\n \"bg-neutral-100 text-neutral-900 rounded-md data-[selected=true]:rounded-none dark:bg-neutral-800 dark:text-neutral-50\",\r\n defaultClassNames.today,\r\n ),\r\n outside: cn(\r\n \"text-neutral-500 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:text-neutral-400\",\r\n defaultClassNames.outside,\r\n ),\r\n disabled: cn(\r\n \"text-neutral-500 opacity-50 dark:text-neutral-400\",\r\n defaultClassNames.disabled,\r\n ),\r\n hidden: cn(\"invisible\", defaultClassNames.hidden),\r\n ...classNames,\r\n }}\r\n components={{\r\n Root: ({ className, rootRef, ...props }) => {\r\n return (\r\n <div\r\n data-slot=\"calendar\"\r\n ref={rootRef}\r\n className={cn(className)}\r\n {...props}\r\n />\r\n );\r\n },\r\n Chevron: ({ className, orientation, ...props }) => {\r\n if (orientation === \"left\") {\r\n return (\r\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\r\n );\r\n }\r\n\r\n if (orientation === \"right\") {\r\n return (\r\n <ChevronRightIcon\r\n className={cn(\"size-4\", className)}\r\n {...props}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\r\n );\r\n },\r\n DayButton: CalendarDayButton,\r\n WeekNumber: ({ children, ...props }) => {\r\n return (\r\n <td {...props}>\r\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\r\n {children}\r\n </div>\r\n </td>\r\n );\r\n },\r\n ...components,\r\n }}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CalendarDayButton({\r\n className,\r\n day,\r\n modifiers,\r\n ...props\r\n}: React.ComponentProps<typeof DayButton>) {\r\n const defaultClassNames = getDefaultClassNames();\r\n\r\n const ref = React.useRef<HTMLButtonElement>(null);\r\n React.useEffect(() => {\r\n if (modifiers[\"focused\"]) ref.current?.focus();\r\n }, [modifiers[\"focused\"]]);\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n data-day={day.date.toLocaleDateString()}\r\n data-selected-single={\r\n modifiers[\"selected\"] &&\r\n !modifiers[\"range_start\"] &&\r\n !modifiers[\"range_end\"] &&\r\n !modifiers[\"range_middle\"]\r\n }\r\n data-range-start={modifiers[\"range_start\"]}\r\n data-range-end={modifiers[\"range_end\"]}\r\n data-range-middle={modifiers[\"range_middle\"]}\r\n className={cn(\r\n \"data-[selected-single=true]:bg-neutral-900 data-[selected-single=true]:text-neutral-50 data-[range-middle=true]:bg-neutral-100 data-[range-middle=true]:text-neutral-900 data-[range-start=true]:bg-neutral-900 data-[range-start=true]:text-neutral-50 data-[range-end=true]:bg-neutral-900 data-[range-end=true]:text-neutral-50 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-neutral-900 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70 dark:data-[selected-single=true]:bg-neutral-50 dark:data-[selected-single=true]:text-neutral-900 dark:data-[range-middle=true]:bg-neutral-800 dark:data-[range-middle=true]:text-neutral-50 dark:data-[range-start=true]:bg-neutral-50 dark:data-[range-start=true]:text-neutral-900 dark:data-[range-end=true]:bg-neutral-50 dark:data-[range-end=true]:text-neutral-900 dark:dark:hover:text-neutral-50\",\r\n defaultClassNames.day,\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Calendar, CalendarDayButton };\r\n"],"names":["Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","DayPicker","cn","String","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","React","Button"],"mappings":"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"}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import "react";
|
|
4
|
-
import
|
|
4
|
+
import { cn } from "../../lib/utils.js";
|
|
5
5
|
function Card({ className, ...props }) {
|
|
6
|
-
return /*#__PURE__*/
|
|
6
|
+
return /*#__PURE__*/ jsx("div", {
|
|
7
7
|
"data-slot": "card",
|
|
8
|
-
className:
|
|
8
|
+
className: cn("bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-sm dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
|
|
9
9
|
...props
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
function CardHeader({ className, ...props }) {
|
|
13
|
-
return /*#__PURE__*/
|
|
13
|
+
return /*#__PURE__*/ jsx("div", {
|
|
14
14
|
"data-slot": "card-header",
|
|
15
|
-
className:
|
|
15
|
+
className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className),
|
|
16
16
|
...props
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
function CardTitle({ className, ...props }) {
|
|
20
|
-
return /*#__PURE__*/
|
|
20
|
+
return /*#__PURE__*/ jsx("div", {
|
|
21
21
|
"data-slot": "card-title",
|
|
22
|
-
className:
|
|
22
|
+
className: cn("leading-none font-semibold", className),
|
|
23
23
|
...props
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
function CardDescription({ className, ...props }) {
|
|
27
|
-
return /*#__PURE__*/
|
|
27
|
+
return /*#__PURE__*/ jsx("div", {
|
|
28
28
|
"data-slot": "card-description",
|
|
29
|
-
className:
|
|
29
|
+
className: cn("text-neutral-500 text-sm dark:text-neutral-400", className),
|
|
30
30
|
...props
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
function CardAction({ className, ...props }) {
|
|
34
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/ jsx("div", {
|
|
35
35
|
"data-slot": "card-action",
|
|
36
|
-
className:
|
|
36
|
+
className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
|
|
37
37
|
...props
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
function CardContent({ className, ...props }) {
|
|
41
|
-
return /*#__PURE__*/
|
|
41
|
+
return /*#__PURE__*/ jsx("div", {
|
|
42
42
|
"data-slot": "card-content",
|
|
43
|
-
className:
|
|
43
|
+
className: cn("px-6", className),
|
|
44
44
|
...props
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
function CardFooter({ className, ...props }) {
|
|
48
|
-
return /*#__PURE__*/
|
|
48
|
+
return /*#__PURE__*/ jsx("div", {
|
|
49
49
|
"data-slot": "card-footer",
|
|
50
|
-
className:
|
|
50
|
+
className: cn("flex items-center px-6 [.border-t]:pt-6", className),
|
|
51
51
|
...props
|
|
52
52
|
});
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\ui\\card.js","sources":["webpack://@arolariu/components/./src/components/ui/card.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-sm dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className
|
|
1
|
+
{"version":3,"file":"components\\ui\\card.js","sources":["webpack://@arolariu/components/./src/components/ui/card.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-sm dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\n \"text-neutral-500 text-sm dark:text-neutral-400\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"],"names":["Card","className","props","cn","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter"],"mappings":";;;;AAMA,SAASA,KAAK,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IAChE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GACT,sKACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASE,WAAW,EAAEH,SAAS,EAAE,GAAGC,OAAoC;IACtE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GACT,8JACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASG,UAAU,EAAEJ,SAAS,EAAE,GAAGC,OAAoC;IACrE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GAAG,8BAA8BF;QAC3C,GAAGC,KAAK;;AAGf;AAEA,SAASI,gBAAgB,EAAEL,SAAS,EAAE,GAAGC,OAAoC;IAC3E,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GACT,kDACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASK,WAAW,EAAEN,SAAS,EAAE,GAAGC,OAAoC;IACtE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GACT,kEACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASM,YAAY,EAAEP,SAAS,EAAE,GAAGC,OAAoC;IACvE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GAAG,QAAQF;QACrB,GAAGC,KAAK;;AAGf;AAEA,SAASO,WAAW,EAAER,SAAS,EAAE,GAAGC,OAAoC;IACtE,OAAO,WAAP,GACE,IAAC;QACC,aAAU;QACV,WAAWC,GAAG,2CAA2CF;QACxD,GAAGC,KAAK;;AAGf"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
const CarouselContext = /*#__PURE__*/
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
4
|
+
import embla_carousel_react from "embla-carousel-react";
|
|
5
|
+
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
6
|
+
import { cn } from "../../lib/utils.js";
|
|
7
|
+
import { Button } from "./button.js";
|
|
8
|
+
const CarouselContext = /*#__PURE__*/ createContext(null);
|
|
9
9
|
function useCarousel() {
|
|
10
|
-
const context =
|
|
10
|
+
const context = useContext(CarouselContext);
|
|
11
11
|
if (!context) throw new Error("useCarousel must be used within a <Carousel />");
|
|
12
12
|
return context;
|
|
13
13
|
}
|
|
14
14
|
function Carousel({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }) {
|
|
15
|
-
const [carouselRef, api] = (
|
|
15
|
+
const [carouselRef, api] = embla_carousel_react({
|
|
16
16
|
...opts,
|
|
17
17
|
axis: "horizontal" === orientation ? "x" : "y"
|
|
18
18
|
}, plugins);
|
|
19
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
20
|
-
const [canScrollNext, setCanScrollNext] =
|
|
21
|
-
const onSelect =
|
|
19
|
+
const [canScrollPrev, setCanScrollPrev] = useState(false);
|
|
20
|
+
const [canScrollNext, setCanScrollNext] = useState(false);
|
|
21
|
+
const onSelect = useCallback((api)=>{
|
|
22
22
|
if (!api) return;
|
|
23
23
|
setCanScrollPrev(api.canScrollPrev());
|
|
24
24
|
setCanScrollNext(api.canScrollNext());
|
|
25
25
|
}, []);
|
|
26
|
-
const scrollPrev =
|
|
26
|
+
const scrollPrev = useCallback(()=>{
|
|
27
27
|
api?.scrollPrev();
|
|
28
28
|
}, [
|
|
29
29
|
api
|
|
30
30
|
]);
|
|
31
|
-
const scrollNext =
|
|
31
|
+
const scrollNext = useCallback(()=>{
|
|
32
32
|
api?.scrollNext();
|
|
33
33
|
}, [
|
|
34
34
|
api
|
|
35
35
|
]);
|
|
36
|
-
const handleKeyDown =
|
|
36
|
+
const handleKeyDown = useCallback((event)=>{
|
|
37
37
|
if ("ArrowLeft" === event.key) {
|
|
38
38
|
event.preventDefault();
|
|
39
39
|
scrollPrev();
|
|
@@ -45,14 +45,14 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
45
45
|
scrollPrev,
|
|
46
46
|
scrollNext
|
|
47
47
|
]);
|
|
48
|
-
|
|
48
|
+
useEffect(()=>{
|
|
49
49
|
if (!api || !setApi) return;
|
|
50
50
|
setApi(api);
|
|
51
51
|
}, [
|
|
52
52
|
api,
|
|
53
53
|
setApi
|
|
54
54
|
]);
|
|
55
|
-
|
|
55
|
+
useEffect(()=>{
|
|
56
56
|
if (!api) return;
|
|
57
57
|
onSelect(api);
|
|
58
58
|
api.on("reInit", onSelect);
|
|
@@ -64,7 +64,7 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
64
64
|
api,
|
|
65
65
|
onSelect
|
|
66
66
|
]);
|
|
67
|
-
return /*#__PURE__*/
|
|
67
|
+
return /*#__PURE__*/ jsx(CarouselContext.Provider, {
|
|
68
68
|
value: {
|
|
69
69
|
carouselRef,
|
|
70
70
|
api: api,
|
|
@@ -75,9 +75,9 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
75
75
|
canScrollPrev,
|
|
76
76
|
canScrollNext
|
|
77
77
|
},
|
|
78
|
-
children: /*#__PURE__*/
|
|
78
|
+
children: /*#__PURE__*/ jsx("div", {
|
|
79
79
|
onKeyDownCapture: handleKeyDown,
|
|
80
|
-
className:
|
|
80
|
+
className: cn("relative", className),
|
|
81
81
|
role: "region",
|
|
82
82
|
"aria-roledescription": "carousel",
|
|
83
83
|
"data-slot": "carousel",
|
|
@@ -88,39 +88,39 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
88
88
|
}
|
|
89
89
|
function CarouselContent({ className, ...props }) {
|
|
90
90
|
const { carouselRef, orientation } = useCarousel();
|
|
91
|
-
return /*#__PURE__*/
|
|
91
|
+
return /*#__PURE__*/ jsx("div", {
|
|
92
92
|
ref: carouselRef,
|
|
93
93
|
className: "overflow-hidden",
|
|
94
94
|
"data-slot": "carousel-content",
|
|
95
|
-
children: /*#__PURE__*/
|
|
96
|
-
className:
|
|
95
|
+
children: /*#__PURE__*/ jsx("div", {
|
|
96
|
+
className: cn("flex", "horizontal" === orientation ? "-ml-4" : "-mt-4 flex-col", className),
|
|
97
97
|
...props
|
|
98
98
|
})
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
function CarouselItem({ className, ...props }) {
|
|
102
102
|
const { orientation } = useCarousel();
|
|
103
|
-
return /*#__PURE__*/
|
|
103
|
+
return /*#__PURE__*/ jsx("div", {
|
|
104
104
|
role: "group",
|
|
105
105
|
"aria-roledescription": "slide",
|
|
106
106
|
"data-slot": "carousel-item",
|
|
107
|
-
className:
|
|
107
|
+
className: cn("min-w-0 shrink-0 grow-0 basis-full", "horizontal" === orientation ? "pl-4" : "pt-4", className),
|
|
108
108
|
...props
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
function CarouselPrevious({ className, variant = "outline", size = "icon", ...props }) {
|
|
112
112
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
113
|
-
return /*#__PURE__*/
|
|
113
|
+
return /*#__PURE__*/ jsxs(Button, {
|
|
114
114
|
"data-slot": "carousel-previous",
|
|
115
115
|
variant: variant,
|
|
116
116
|
size: size,
|
|
117
|
-
className:
|
|
117
|
+
className: cn("absolute size-8 rounded-full", "horizontal" === orientation ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
118
118
|
disabled: !canScrollPrev,
|
|
119
119
|
onClick: scrollPrev,
|
|
120
120
|
...props,
|
|
121
121
|
children: [
|
|
122
|
-
/*#__PURE__*/
|
|
123
|
-
/*#__PURE__*/
|
|
122
|
+
/*#__PURE__*/ jsx(ArrowLeft, {}),
|
|
123
|
+
/*#__PURE__*/ jsx("span", {
|
|
124
124
|
className: "sr-only",
|
|
125
125
|
children: "Previous slide"
|
|
126
126
|
})
|
|
@@ -129,17 +129,17 @@ function CarouselPrevious({ className, variant = "outline", size = "icon", ...pr
|
|
|
129
129
|
}
|
|
130
130
|
function CarouselNext({ className, variant = "outline", size = "icon", ...props }) {
|
|
131
131
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
132
|
-
return /*#__PURE__*/
|
|
132
|
+
return /*#__PURE__*/ jsxs(Button, {
|
|
133
133
|
"data-slot": "carousel-next",
|
|
134
134
|
variant: variant,
|
|
135
135
|
size: size,
|
|
136
|
-
className:
|
|
136
|
+
className: cn("absolute size-8 rounded-full", "horizontal" === orientation ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
137
137
|
disabled: !canScrollNext,
|
|
138
138
|
onClick: scrollNext,
|
|
139
139
|
...props,
|
|
140
140
|
children: [
|
|
141
|
-
/*#__PURE__*/
|
|
142
|
-
/*#__PURE__*/
|
|
141
|
+
/*#__PURE__*/ jsx(ArrowRight, {}),
|
|
142
|
+
/*#__PURE__*/ jsx("span", {
|
|
143
143
|
className: "sr-only",
|
|
144
144
|
children: "Next slide"
|
|
145
145
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\ui\\carousel.js","sources":["webpack://@arolariu/components/./src/components/ui/carousel.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins
|
|
1
|
+
{"version":3,"file":"components\\ui\\carousel.js","sources":["webpack://@arolariu/components/./src/components/ui/carousel.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n"],"names":["CarouselContext","React","useCarousel","context","Error","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useId, useMemo } from "react";
|
|
4
|
+
import { Legend, ResponsiveContainer, Tooltip } from "recharts";
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
6
|
const THEMES = {
|
|
7
7
|
light: "",
|
|
8
8
|
dark: ".dark"
|
|
9
9
|
};
|
|
10
|
-
const ChartContext = /*#__PURE__*/
|
|
10
|
+
const ChartContext = /*#__PURE__*/ createContext(null);
|
|
11
11
|
function useChart() {
|
|
12
|
-
const context =
|
|
12
|
+
const context = useContext(ChartContext);
|
|
13
13
|
if (!context) throw new Error("useChart must be used within a <ChartContainer />");
|
|
14
14
|
return context;
|
|
15
15
|
}
|
|
16
16
|
function ChartContainer({ id, className, children, config, ...props }) {
|
|
17
|
-
const uniqueId =
|
|
17
|
+
const uniqueId = useId();
|
|
18
18
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
19
|
-
return /*#__PURE__*/
|
|
19
|
+
return /*#__PURE__*/ jsx(ChartContext.Provider, {
|
|
20
20
|
value: {
|
|
21
21
|
config
|
|
22
22
|
},
|
|
23
|
-
children: /*#__PURE__*/
|
|
23
|
+
children: /*#__PURE__*/ jsxs("div", {
|
|
24
24
|
"data-slot": "chart",
|
|
25
25
|
"data-chart": chartId,
|
|
26
|
-
className:
|
|
26
|
+
className: cn("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
|
|
27
27
|
...props,
|
|
28
28
|
children: [
|
|
29
|
-
/*#__PURE__*/
|
|
29
|
+
/*#__PURE__*/ jsx(ChartStyle, {
|
|
30
30
|
id: chartId,
|
|
31
31
|
config: config
|
|
32
32
|
}),
|
|
33
|
-
/*#__PURE__*/
|
|
33
|
+
/*#__PURE__*/ jsx(ResponsiveContainer, {
|
|
34
34
|
children: children
|
|
35
35
|
})
|
|
36
36
|
]
|
|
@@ -40,35 +40,35 @@ function ChartContainer({ id, className, children, config, ...props }) {
|
|
|
40
40
|
const ChartStyle = ({ id, config })=>{
|
|
41
41
|
const colorConfig = Object.entries(config).filter(([, config])=>config.theme || config.color);
|
|
42
42
|
if (!colorConfig.length) return null;
|
|
43
|
-
return /*#__PURE__*/
|
|
43
|
+
return /*#__PURE__*/ jsx("style", {
|
|
44
44
|
dangerouslySetInnerHTML: {
|
|
45
45
|
__html: Object.entries(THEMES).map(([theme, prefix])=>`
|
|
46
|
-
${prefix} [data-chart=${id}] {
|
|
47
|
-
${colorConfig.map(([key, itemConfig])=>{
|
|
46
|
+
${prefix} [data-chart=${id}] {
|
|
47
|
+
${colorConfig.map(([key, itemConfig])=>{
|
|
48
48
|
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
49
49
|
return color ? ` --color-${key}: ${color};` : null;
|
|
50
50
|
}).join("\n")}
|
|
51
|
-
}
|
|
52
|
-
`).join("\n")
|
|
51
|
+
}
|
|
52
|
+
`).join("\n")
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
-
const ChartTooltip =
|
|
57
|
-
function ChartTooltipContent({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false,
|
|
56
|
+
const ChartTooltip = Tooltip;
|
|
57
|
+
function ChartTooltipContent({ active, payload, label, className, indicator = "dot", hideLabel = false, hideIndicator = false, labelFormatter, formatter, labelClassName, color, nameKey, labelKey }) {
|
|
58
58
|
const { config } = useChart();
|
|
59
|
-
const tooltipLabel =
|
|
59
|
+
const tooltipLabel = useMemo(()=>{
|
|
60
60
|
if (hideLabel || !payload?.length) return null;
|
|
61
61
|
const [item] = payload;
|
|
62
62
|
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
63
63
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
64
64
|
const value = labelKey || "string" != typeof label ? itemConfig?.label : config[label]?.label || label;
|
|
65
|
-
if (labelFormatter) return /*#__PURE__*/
|
|
66
|
-
className:
|
|
65
|
+
if (labelFormatter) return /*#__PURE__*/ jsx("div", {
|
|
66
|
+
className: cn("font-medium", labelClassName),
|
|
67
67
|
children: labelFormatter(value, payload)
|
|
68
68
|
});
|
|
69
69
|
if (!value) return null;
|
|
70
|
-
return /*#__PURE__*/
|
|
71
|
-
className:
|
|
70
|
+
return /*#__PURE__*/ jsx("div", {
|
|
71
|
+
className: cn("font-medium", labelClassName),
|
|
72
72
|
children: value
|
|
73
73
|
});
|
|
74
74
|
}, [
|
|
@@ -82,22 +82,22 @@ function ChartTooltipContent({ active, payload, className, indicator = "dot", hi
|
|
|
82
82
|
]);
|
|
83
83
|
if (!active || !payload?.length) return null;
|
|
84
84
|
const nestLabel = 1 === payload.length && "dot" !== indicator;
|
|
85
|
-
return /*#__PURE__*/
|
|
86
|
-
className:
|
|
85
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
86
|
+
className: cn("border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl", className),
|
|
87
87
|
children: [
|
|
88
88
|
nestLabel ? null : tooltipLabel,
|
|
89
|
-
/*#__PURE__*/
|
|
89
|
+
/*#__PURE__*/ jsx("div", {
|
|
90
90
|
className: "grid gap-1.5",
|
|
91
91
|
children: payload.map((item, index)=>{
|
|
92
92
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
93
93
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
94
94
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
95
|
-
return /*#__PURE__*/
|
|
96
|
-
className:
|
|
97
|
-
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /*#__PURE__*/
|
|
95
|
+
return /*#__PURE__*/ jsx("div", {
|
|
96
|
+
className: cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", "dot" === indicator && "items-center"),
|
|
97
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /*#__PURE__*/ jsxs(Fragment, {
|
|
98
98
|
children: [
|
|
99
|
-
itemConfig?.icon ? /*#__PURE__*/
|
|
100
|
-
className:
|
|
99
|
+
itemConfig?.icon ? /*#__PURE__*/ jsx(itemConfig.icon, {}) : !hideIndicator && /*#__PURE__*/ jsx("div", {
|
|
100
|
+
className: cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
|
|
101
101
|
"h-2.5 w-2.5": "dot" === indicator,
|
|
102
102
|
"w-1": "line" === indicator,
|
|
103
103
|
"w-0 border-[1.5px] border-dashed bg-transparent": "dashed" === indicator,
|
|
@@ -108,21 +108,21 @@ function ChartTooltipContent({ active, payload, className, indicator = "dot", hi
|
|
|
108
108
|
"--color-border": indicatorColor
|
|
109
109
|
}
|
|
110
110
|
}),
|
|
111
|
-
/*#__PURE__*/
|
|
112
|
-
className:
|
|
111
|
+
/*#__PURE__*/ jsxs("div", {
|
|
112
|
+
className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"),
|
|
113
113
|
children: [
|
|
114
|
-
/*#__PURE__*/
|
|
114
|
+
/*#__PURE__*/ jsxs("div", {
|
|
115
115
|
className: "grid gap-1.5",
|
|
116
116
|
children: [
|
|
117
117
|
nestLabel ? tooltipLabel : null,
|
|
118
|
-
/*#__PURE__*/
|
|
119
|
-
className: "text-
|
|
118
|
+
/*#__PURE__*/ jsx("span", {
|
|
119
|
+
className: "text-muted-foreground",
|
|
120
120
|
children: itemConfig?.label || item.name
|
|
121
121
|
})
|
|
122
122
|
]
|
|
123
123
|
}),
|
|
124
|
-
item.value && /*#__PURE__*/
|
|
125
|
-
className: "text-
|
|
124
|
+
item.value && /*#__PURE__*/ jsx("span", {
|
|
125
|
+
className: "text-foreground font-mono font-medium tabular-nums",
|
|
126
126
|
children: item.value.toLocaleString()
|
|
127
127
|
})
|
|
128
128
|
]
|
|
@@ -135,19 +135,19 @@ function ChartTooltipContent({ active, payload, className, indicator = "dot", hi
|
|
|
135
135
|
]
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
-
const ChartLegend =
|
|
138
|
+
const ChartLegend = Legend;
|
|
139
139
|
function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }) {
|
|
140
140
|
const { config } = useChart();
|
|
141
141
|
if (!payload?.length) return null;
|
|
142
|
-
return /*#__PURE__*/
|
|
143
|
-
className:
|
|
142
|
+
return /*#__PURE__*/ jsx("div", {
|
|
143
|
+
className: cn("flex items-center justify-center gap-4", "top" === verticalAlign ? "pb-3" : "pt-3", className),
|
|
144
144
|
children: payload.map((item)=>{
|
|
145
145
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
146
146
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
147
|
-
return /*#__PURE__*/
|
|
148
|
-
className:
|
|
147
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
148
|
+
className: cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
|
|
149
149
|
children: [
|
|
150
|
-
itemConfig?.icon && !hideIcon ? /*#__PURE__*/
|
|
150
|
+
itemConfig?.icon && !hideIcon ? /*#__PURE__*/ jsx(itemConfig.icon, {}) : /*#__PURE__*/ jsx("div", {
|
|
151
151
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
152
152
|
style: {
|
|
153
153
|
backgroundColor: item.color
|