@arolariu/components 0.5.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{changelog.md → CHANGELOG.md} +25 -0
- package/CONTRIBUTING.md +344 -265
- package/DEBUGGING.md +185 -103
- package/EXAMPLES.md +470 -345
- package/{readme.md → README.md} +306 -203
- package/dist/components/ui/accordion.d.ts +157 -5
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +100 -22
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/accordion.module.js +12 -0
- package/dist/components/ui/accordion.module.js.map +1 -0
- package/dist/components/ui/accordion_module.css +72 -0
- package/dist/components/ui/accordion_module.css.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +321 -18
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +145 -52
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert-dialog.module.js +13 -0
- package/dist/components/ui/alert-dialog.module.js.map +1 -0
- package/dist/components/ui/alert-dialog_module.css +89 -0
- package/dist/components/ui/alert-dialog_module.css.map +1 -0
- package/dist/components/ui/alert.d.ts +109 -6
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/alert.js +12 -21
- package/dist/components/ui/alert.js.map +1 -1
- package/dist/components/ui/alert.module.js +11 -0
- package/dist/components/ui/alert.module.js.map +1 -0
- package/dist/components/ui/alert_module.css +59 -0
- package/dist/components/ui/alert_module.css.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +24 -2
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio.js +14 -3
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/aspect-ratio.module.js +7 -0
- package/dist/components/ui/aspect-ratio.module.js.map +1 -0
- package/dist/components/ui/aspect-ratio_module.css +10 -0
- package/dist/components/ui/aspect-ratio_module.css.map +1 -0
- package/dist/components/ui/async-boundary.js +17 -0
- package/dist/components/ui/async-boundary.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +97 -4
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +50 -21
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/avatar.module.js +9 -0
- package/dist/components/ui/avatar.module.js.map +1 -0
- package/dist/components/ui/avatar_module.css +35 -0
- package/dist/components/ui/avatar_module.css.map +1 -0
- package/dist/components/ui/background-beams.d.ts +21 -3
- package/dist/components/ui/background-beams.d.ts.map +1 -1
- package/dist/components/ui/background-beams.js +22 -11
- package/dist/components/ui/background-beams.js.map +1 -1
- package/dist/components/ui/background-beams.module.js +8 -0
- package/dist/components/ui/background-beams.module.js.map +1 -0
- package/dist/components/ui/background-beams_module.css +22 -0
- package/dist/components/ui/background-beams_module.css.map +1 -0
- package/dist/components/ui/badge.d.ts +79 -6
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +19 -23
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/badge.module.js +11 -0
- package/dist/components/ui/badge.module.js.map +1 -0
- package/dist/components/ui/badge_module.css +63 -0
- package/dist/components/ui/badge_module.css.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +158 -13
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.js +39 -30
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/breadcrumb.module.js +14 -0
- package/dist/components/ui/breadcrumb.module.js.map +1 -0
- package/dist/components/ui/breadcrumb_module.css +90 -0
- package/dist/components/ui/breadcrumb_module.css.map +1 -0
- package/dist/components/ui/bubble-background.d.ts +38 -10
- package/dist/components/ui/bubble-background.d.ts.map +1 -1
- package/dist/components/ui/bubble-background.js +33 -35
- package/dist/components/ui/bubble-background.js.map +1 -1
- package/dist/components/ui/bubble-background.module.js +20 -0
- package/dist/components/ui/bubble-background.module.js.map +1 -0
- package/dist/components/ui/bubble-background_module.css +99 -0
- package/dist/components/ui/bubble-background_module.css.map +1 -0
- package/dist/components/ui/button-group.d.ts +88 -8
- package/dist/components/ui/button-group.d.ts.map +1 -1
- package/dist/components/ui/button-group.js +35 -32
- package/dist/components/ui/button-group.js.map +1 -1
- package/dist/components/ui/button-group.module.js +11 -0
- package/dist/components/ui/button-group.module.js.map +1 -0
- package/dist/components/ui/button-group_module.css +79 -0
- package/dist/components/ui/button-group_module.css.map +1 -0
- package/dist/components/ui/button.d.ts +82 -7
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +69 -34
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/button.module.js +17 -0
- package/dist/components/ui/button.module.js.map +1 -0
- package/dist/components/ui/button_module.css +137 -0
- package/dist/components/ui/button_module.css.map +1 -0
- package/dist/components/ui/calendar.d.ts +39 -5
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +72 -61
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/calendar.module.js +35 -0
- package/dist/components/ui/calendar.module.js.map +1 -0
- package/dist/components/ui/calendar_module.css +245 -0
- package/dist/components/ui/calendar_module.css.map +1 -0
- package/dist/components/ui/card-skeleton.js +41 -0
- package/dist/components/ui/card-skeleton.js.map +1 -0
- package/dist/components/ui/card-skeleton.module.js +15 -0
- package/dist/components/ui/card-skeleton.module.js.map +1 -0
- package/dist/components/ui/card-skeleton_module.css +54 -0
- package/dist/components/ui/card-skeleton_module.css.map +1 -0
- package/dist/components/ui/card.d.ts +162 -7
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +13 -13
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/card.module.js +13 -0
- package/dist/components/ui/card.module.js.map +1 -0
- package/dist/components/ui/card_module.css +43 -0
- package/dist/components/ui/card_module.css.map +1 -0
- package/dist/components/ui/carousel.d.ts +127 -3
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +63 -36
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/carousel.module.js +17 -0
- package/dist/components/ui/carousel.module.js.map +1 -0
- package/dist/components/ui/carousel_module.css +82 -0
- package/dist/components/ui/carousel_module.css.map +1 -0
- package/dist/components/ui/chart.d.ts +323 -13
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/chart.js +158 -53
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/chart.module.js +27 -0
- package/dist/components/ui/chart.module.js.map +1 -0
- package/dist/components/ui/chart_module.css +159 -0
- package/dist/components/ui/chart_module.css.map +1 -0
- package/dist/components/ui/checkbox-group.d.ts +31 -0
- package/dist/components/ui/checkbox-group.d.ts.map +1 -0
- package/dist/components/ui/checkbox-group.js +25 -0
- package/dist/components/ui/checkbox-group.js.map +1 -0
- package/dist/components/ui/checkbox-group.module.js +7 -0
- package/dist/components/ui/checkbox-group.module.js.map +1 -0
- package/dist/components/ui/checkbox-group_module.css +11 -0
- package/dist/components/ui/checkbox-group_module.css.map +1 -0
- package/dist/components/ui/checkbox.d.ts +33 -2
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +37 -12
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/checkbox.module.js +8 -0
- package/dist/components/ui/checkbox.module.js.map +1 -0
- package/dist/components/ui/checkbox_module.css +45 -0
- package/dist/components/ui/checkbox_module.css.map +1 -0
- package/dist/components/ui/collapsible.d.ts +87 -3
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +46 -32
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/collapsible.module.js +8 -0
- package/dist/components/ui/collapsible.module.js.map +1 -0
- package/dist/components/ui/collapsible_module.css +26 -0
- package/dist/components/ui/collapsible_module.css.map +1 -0
- package/dist/components/ui/command.d.ts +284 -51
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +387 -51
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/command.module.js +20 -0
- package/dist/components/ui/command.module.js.map +1 -0
- package/dist/components/ui/command_module.css +194 -0
- package/dist/components/ui/command_module.css.map +1 -0
- package/dist/components/ui/context-menu.d.ts +414 -21
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +190 -68
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/context-menu.module.js +19 -0
- package/dist/components/ui/context-menu.module.js.map +1 -0
- package/dist/components/ui/context-menu_module.css +114 -0
- package/dist/components/ui/context-menu_module.css.map +1 -0
- package/dist/components/ui/copy-button.d.ts +41 -0
- package/dist/components/ui/copy-button.d.ts.map +1 -0
- package/dist/components/ui/copy-button.js +51 -0
- package/dist/components/ui/copy-button.js.map +1 -0
- package/dist/components/ui/copy-button.module.js +8 -0
- package/dist/components/ui/copy-button.module.js.map +1 -0
- package/dist/components/ui/copy-button_module.css +37 -0
- package/dist/components/ui/copy-button_module.css.map +1 -0
- package/dist/components/ui/counting-number.d.ts +28 -2
- package/dist/components/ui/counting-number.d.ts.map +1 -1
- package/dist/components/ui/counting-number.js +31 -27
- package/dist/components/ui/counting-number.js.map +1 -1
- package/dist/components/ui/counting-number.module.js +7 -0
- package/dist/components/ui/counting-number.module.js.map +1 -0
- package/dist/components/ui/counting-number_module.css +7 -0
- package/dist/components/ui/counting-number_module.css.map +1 -0
- package/dist/components/ui/dialog.d.ts +287 -17
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +129 -52
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/dialog.module.js +13 -0
- package/dist/components/ui/dialog.module.js.map +1 -0
- package/dist/components/ui/dialog_module.css +114 -0
- package/dist/components/ui/dialog_module.css.map +1 -0
- package/dist/components/ui/dot-background.d.ts +25 -35
- package/dist/components/ui/dot-background.d.ts.map +1 -1
- package/dist/components/ui/dot-background.js +31 -22
- package/dist/components/ui/dot-background.js.map +1 -1
- package/dist/components/ui/dot-background.module.js +8 -0
- package/dist/components/ui/dot-background.module.js.map +1 -0
- package/dist/components/ui/dot-background_module.css +15 -0
- package/dist/components/ui/dot-background_module.css.map +1 -0
- package/dist/components/ui/drawer.d.ts +287 -18
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +117 -40
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/drawer.module.js +14 -0
- package/dist/components/ui/drawer.module.js.map +1 -0
- package/dist/components/ui/drawer_module.css +86 -0
- package/dist/components/ui/drawer_module.css.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +414 -21
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +189 -68
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/dropdown-menu.module.js +19 -0
- package/dist/components/ui/dropdown-menu.module.js.map +1 -0
- package/dist/components/ui/dropdown-menu_module.css +114 -0
- package/dist/components/ui/dropdown-menu_module.css.map +1 -0
- package/dist/components/ui/dropdrawer.d.ts +313 -17
- package/dist/components/ui/dropdrawer.d.ts.map +1 -1
- package/dist/components/ui/dropdrawer.js +423 -159
- package/dist/components/ui/dropdrawer.js.map +1 -1
- package/dist/components/ui/dropdrawer.module.js +43 -0
- package/dist/components/ui/dropdrawer.module.js.map +1 -0
- package/dist/components/ui/dropdrawer_module.css +307 -0
- package/dist/components/ui/dropdrawer_module.css.map +1 -0
- package/dist/components/ui/empty.d.ts +129 -10
- package/dist/components/ui/empty.d.ts.map +1 -1
- package/dist/components/ui/empty.js +32 -47
- package/dist/components/ui/empty.js.map +1 -1
- package/dist/components/ui/empty.module.js +13 -0
- package/dist/components/ui/empty.module.js.map +1 -0
- package/dist/components/ui/empty_module.css +85 -0
- package/dist/components/ui/empty_module.css.map +1 -0
- package/dist/components/ui/error-boundary.js +61 -0
- package/dist/components/ui/error-boundary.js.map +1 -0
- package/dist/components/ui/error-boundary.module.js +10 -0
- package/dist/components/ui/error-boundary.module.js.map +1 -0
- package/dist/components/ui/error-boundary_module.css +41 -0
- package/dist/components/ui/error-boundary_module.css.map +1 -0
- package/dist/components/ui/field.d.ts +222 -23
- package/dist/components/ui/field.d.ts.map +1 -1
- package/dist/components/ui/field.js +76 -86
- package/dist/components/ui/field.js.map +1 -1
- package/dist/components/ui/field.module.js +24 -0
- package/dist/components/ui/field.module.js.map +1 -0
- package/dist/components/ui/field_module.css +185 -0
- package/dist/components/ui/field_module.css.map +1 -0
- package/dist/components/ui/fireworks-background.d.ts +27 -3
- package/dist/components/ui/fireworks-background.d.ts.map +1 -1
- package/dist/components/ui/fireworks-background.js +36 -35
- package/dist/components/ui/fireworks-background.js.map +1 -1
- package/dist/components/ui/fireworks-background.module.js +8 -0
- package/dist/components/ui/fireworks-background.module.js.map +1 -0
- package/dist/components/ui/fireworks-background_module.css +17 -0
- package/dist/components/ui/fireworks-background_module.css.map +1 -0
- package/dist/components/ui/flip-button.d.ts +27 -3
- package/dist/components/ui/flip-button.d.ts.map +1 -1
- package/dist/components/ui/flip-button.js +27 -17
- package/dist/components/ui/flip-button.js.map +1 -1
- package/dist/components/ui/flip-button.module.js +11 -0
- package/dist/components/ui/flip-button.module.js.map +1 -0
- package/dist/components/ui/flip-button_module.css +47 -0
- package/dist/components/ui/flip-button_module.css.map +1 -0
- package/dist/components/ui/focus-scope.js +70 -0
- package/dist/components/ui/focus-scope.js.map +1 -0
- package/dist/components/ui/focus-scope.module.js +7 -0
- package/dist/components/ui/focus-scope.module.js.map +1 -0
- package/dist/components/ui/focus-scope_module.css +6 -0
- package/dist/components/ui/focus-scope_module.css.map +1 -0
- package/dist/components/ui/form-skeleton.js +32 -0
- package/dist/components/ui/form-skeleton.js.map +1 -0
- package/dist/components/ui/form-skeleton.module.js +11 -0
- package/dist/components/ui/form-skeleton.module.js.map +1 -0
- package/dist/components/ui/form-skeleton_module.css +30 -0
- package/dist/components/ui/form-skeleton_module.css.map +1 -0
- package/dist/components/ui/form.d.ts +143 -13
- package/dist/components/ui/form.d.ts.map +1 -1
- package/dist/components/ui/form.js +55 -21
- package/dist/components/ui/form.js.map +1 -1
- package/dist/components/ui/form.module.js +10 -0
- package/dist/components/ui/form.module.js.map +1 -0
- package/dist/components/ui/form_module.css +22 -0
- package/dist/components/ui/form_module.css.map +1 -0
- package/dist/components/ui/gradient-background.d.ts +21 -3
- package/dist/components/ui/gradient-background.d.ts.map +1 -1
- package/dist/components/ui/gradient-background.js +8 -4
- package/dist/components/ui/gradient-background.js.map +1 -1
- package/dist/components/ui/gradient-background.module.js +7 -0
- package/dist/components/ui/gradient-background.module.js.map +1 -0
- package/dist/components/ui/gradient-background_module.css +9 -0
- package/dist/components/ui/gradient-background_module.css.map +1 -0
- package/dist/components/ui/gradient-text.d.ts +23 -2
- package/dist/components/ui/gradient-text.d.ts.map +1 -1
- package/dist/components/ui/gradient-text.js +8 -6
- package/dist/components/ui/gradient-text.js.map +1 -1
- package/dist/components/ui/gradient-text.module.js +9 -0
- package/dist/components/ui/gradient-text.module.js.map +1 -0
- package/dist/components/ui/gradient-text_module.css +24 -0
- package/dist/components/ui/gradient-text_module.css.map +1 -0
- package/dist/components/ui/highlight-text.d.ts +24 -2
- package/dist/components/ui/highlight-text.d.ts.map +1 -1
- package/dist/components/ui/highlight-text.js +7 -10
- package/dist/components/ui/highlight-text.js.map +1 -1
- package/dist/components/ui/highlight-text.module.js +7 -0
- package/dist/components/ui/highlight-text.module.js.map +1 -0
- package/dist/components/ui/highlight-text_module.css +16 -0
- package/dist/components/ui/highlight-text_module.css.map +1 -0
- package/dist/components/ui/hole-background.d.ts +23 -2
- package/dist/components/ui/hole-background.d.ts.map +1 -1
- package/dist/components/ui/hole-background.js +155 -118
- package/dist/components/ui/hole-background.js.map +1 -1
- package/dist/components/ui/hole-background.module.js +10 -0
- package/dist/components/ui/hole-background.module.js.map +1 -0
- package/dist/components/ui/hole-background_module.css +85 -0
- package/dist/components/ui/hole-background_module.css.map +1 -0
- package/dist/components/ui/hover-card.d.ts +85 -4
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +52 -10
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/hover-card.module.js +8 -0
- package/dist/components/ui/hover-card.module.js.map +1 -0
- package/dist/components/ui/hover-card_module.css +23 -0
- package/dist/components/ui/hover-card_module.css.map +1 -0
- package/dist/components/ui/input-group.d.ts +132 -13
- package/dist/components/ui/input-group.d.ts.map +1 -1
- package/dist/components/ui/input-group.js +62 -66
- package/dist/components/ui/input-group.js.map +1 -1
- package/dist/components/ui/input-group.module.js +20 -0
- package/dist/components/ui/input-group.module.js.map +1 -0
- package/dist/components/ui/input-group_module.css +150 -0
- package/dist/components/ui/input-group_module.css.map +1 -0
- package/dist/components/ui/input-otp.d.ts +110 -30
- package/dist/components/ui/input-otp.d.ts.map +1 -1
- package/dist/components/ui/input-otp.js +24 -15
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input-otp.module.js +17 -0
- package/dist/components/ui/input-otp.module.js.map +1 -0
- package/dist/components/ui/input-otp_module.css +89 -0
- package/dist/components/ui/input-otp_module.css.map +1 -0
- package/dist/components/ui/input.d.ts +31 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +21 -8
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/input.module.js +7 -0
- package/dist/components/ui/input.module.js.map +1 -0
- package/dist/components/ui/input_module.css +40 -0
- package/dist/components/ui/input_module.css.map +1 -0
- package/dist/components/ui/item.d.ts +221 -19
- package/dist/components/ui/item.d.ts.map +1 -1
- package/dist/components/ui/item.js +66 -90
- package/dist/components/ui/item.js.map +1 -1
- package/dist/components/ui/item.module.js +22 -0
- package/dist/components/ui/item.module.js.map +1 -0
- package/dist/components/ui/item_module.css +143 -0
- package/dist/components/ui/item_module.css.map +1 -0
- package/dist/components/ui/kbd.d.ts +43 -2
- package/dist/components/ui/kbd.d.ts.map +1 -1
- package/dist/components/ui/kbd.js +12 -12
- package/dist/components/ui/kbd.js.map +1 -1
- package/dist/components/ui/kbd.module.js +8 -0
- package/dist/components/ui/kbd.module.js.map +1 -0
- package/dist/components/ui/kbd_module.css +35 -0
- package/dist/components/ui/kbd_module.css.map +1 -0
- package/dist/components/ui/label.d.ts +30 -3
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +7 -8
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/label.module.js +7 -0
- package/dist/components/ui/label.module.js.map +1 -0
- package/dist/components/ui/label_module.css +17 -0
- package/dist/components/ui/label_module.css.map +1 -0
- package/dist/components/ui/list-skeleton.js +35 -0
- package/dist/components/ui/list-skeleton.js.map +1 -0
- package/dist/components/ui/list-skeleton.module.js +12 -0
- package/dist/components/ui/list-skeleton.module.js.map +1 -0
- package/dist/components/ui/list-skeleton_module.css +39 -0
- package/dist/components/ui/list-skeleton_module.css.map +1 -0
- package/dist/components/ui/loading-overlay.js +21 -0
- package/dist/components/ui/loading-overlay.js.map +1 -0
- package/dist/components/ui/loading-overlay.module.js +9 -0
- package/dist/components/ui/loading-overlay.module.js.map +1 -0
- package/dist/components/ui/loading-overlay_module.css +22 -0
- package/dist/components/ui/loading-overlay_module.css.map +1 -0
- package/dist/components/ui/menubar.d.ts +422 -22
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +199 -100
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/menubar.module.js +21 -0
- package/dist/components/ui/menubar.module.js.map +1 -0
- package/dist/components/ui/menubar_module.css +145 -0
- package/dist/components/ui/menubar_module.css.map +1 -0
- package/dist/components/ui/meter.d.ts +101 -0
- package/dist/components/ui/meter.d.ts.map +1 -0
- package/dist/components/ui/meter.js +71 -0
- package/dist/components/ui/meter.js.map +1 -0
- package/dist/components/ui/meter.module.js +10 -0
- package/dist/components/ui/meter.module.js.map +1 -0
- package/dist/components/ui/meter_module.css +31 -0
- package/dist/components/ui/meter_module.css.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +242 -11
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +135 -49
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/navigation-menu.module.js +18 -0
- package/dist/components/ui/navigation-menu.module.js.map +1 -0
- package/dist/components/ui/navigation-menu_module.css +112 -0
- package/dist/components/ui/navigation-menu_module.css.map +1 -0
- package/dist/components/ui/number-field.d.ts +144 -0
- package/dist/components/ui/number-field.d.ts.map +1 -0
- package/dist/components/ui/number-field.js +111 -0
- package/dist/components/ui/number-field.js.map +1 -0
- package/dist/components/ui/number-field.module.js +15 -0
- package/dist/components/ui/number-field.module.js.map +1 -0
- package/dist/components/ui/number-field_module.css +125 -0
- package/dist/components/ui/number-field_module.css.map +1 -0
- package/dist/components/ui/pagination.d.ts +150 -24
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +41 -38
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/pagination.module.js +14 -0
- package/dist/components/ui/pagination.module.js.map +1 -0
- package/dist/components/ui/pagination_module.css +66 -0
- package/dist/components/ui/pagination_module.css.map +1 -0
- package/dist/components/ui/popover.d.ts +133 -5
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +68 -14
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/popover.module.js +9 -0
- package/dist/components/ui/popover.module.js.map +1 -0
- package/dist/components/ui/popover_module.css +28 -0
- package/dist/components/ui/popover_module.css.map +1 -0
- package/dist/components/ui/progress.d.ts +34 -2
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +22 -14
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/progress.module.js +8 -0
- package/dist/components/ui/progress.module.js.map +1 -0
- package/dist/components/ui/progress_module.css +20 -0
- package/dist/components/ui/progress_module.css.map +1 -0
- package/dist/components/ui/radio-group.d.ts +44 -3
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +38 -16
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/radio-group.module.js +10 -0
- package/dist/components/ui/radio-group.module.js.map +1 -0
- package/dist/components/ui/radio-group_module.css +44 -0
- package/dist/components/ui/radio-group_module.css.map +1 -0
- package/dist/components/ui/resizable.d.ts +79 -6
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +23 -13
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/resizable.module.js +10 -0
- package/dist/components/ui/resizable.module.js.map +1 -0
- package/dist/components/ui/resizable_module.css +70 -0
- package/dist/components/ui/resizable_module.css.map +1 -0
- package/dist/components/ui/ripple-button.d.ts +23 -2
- package/dist/components/ui/ripple-button.d.ts.map +1 -1
- package/dist/components/ui/ripple-button.js +26 -11
- package/dist/components/ui/ripple-button.js.map +1 -1
- package/dist/components/ui/ripple-button.module.js +9 -0
- package/dist/components/ui/ripple-button.module.js.map +1 -0
- package/dist/components/ui/ripple-button_module.css +38 -0
- package/dist/components/ui/ripple-button_module.css.map +1 -0
- package/dist/components/ui/scratcher.d.ts +25 -2
- package/dist/components/ui/scratcher.d.ts.map +1 -1
- package/dist/components/ui/scratcher.js +85 -87
- package/dist/components/ui/scratcher.js.map +1 -1
- package/dist/components/ui/scratcher.module.js +8 -0
- package/dist/components/ui/scratcher.module.js.map +1 -0
- package/dist/components/ui/scratcher_module.css +13 -0
- package/dist/components/ui/scratcher_module.css.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +46 -3
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +44 -19
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/scroll-area.module.js +14 -0
- package/dist/components/ui/scroll-area.module.js.map +1 -0
- package/dist/components/ui/scroll-area_module.css +51 -0
- package/dist/components/ui/scroll-area_module.css.map +1 -0
- package/dist/components/ui/select.d.ts +269 -11
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +152 -67
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/select.module.js +20 -0
- package/dist/components/ui/select.module.js.map +1 -0
- package/dist/components/ui/select_module.css +134 -0
- package/dist/components/ui/select_module.css.map +1 -0
- package/dist/components/ui/separator.d.ts +36 -2
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +20 -10
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/separator.module.js +9 -0
- package/dist/components/ui/separator.module.js.map +1 -0
- package/dist/components/ui/separator_module.css +17 -0
- package/dist/components/ui/separator_module.css.map +1 -0
- package/dist/components/ui/sheet.d.ts +297 -23
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +121 -63
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sheet.module.js +18 -0
- package/dist/components/ui/sheet.module.js.map +1 -0
- package/dist/components/ui/sheet_module.css +136 -0
- package/dist/components/ui/sheet_module.css.map +1 -0
- package/dist/components/ui/sidebar.d.ts +491 -23
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +214 -143
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/sidebar.module.js +50 -0
- package/dist/components/ui/sidebar.module.js.map +1 -0
- package/dist/components/ui/sidebar_module.css +569 -0
- package/dist/components/ui/sidebar_module.css.map +1 -0
- package/dist/components/ui/skeleton.d.ts +30 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +7 -7
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/skeleton.module.js +8 -0
- package/dist/components/ui/skeleton.module.js.map +1 -0
- package/dist/components/ui/skeleton_module.css +18 -0
- package/dist/components/ui/skeleton_module.css.map +1 -0
- package/dist/components/ui/slider.d.ts +48 -2
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +44 -17
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/slider.module.js +11 -0
- package/dist/components/ui/slider.module.js.map +1 -0
- package/dist/components/ui/slider_module.css +55 -0
- package/dist/components/ui/slider_module.css.map +1 -0
- package/dist/components/ui/sonner.d.ts +137 -4
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +450 -18
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/sonner.module.js +34 -0
- package/dist/components/ui/sonner.module.js.map +1 -0
- package/dist/components/ui/sonner_module.css +233 -0
- package/dist/components/ui/sonner_module.css.map +1 -0
- package/dist/components/ui/spinner.d.ts +20 -1
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +29 -11
- package/dist/components/ui/spinner.js.map +1 -1
- package/dist/components/ui/spinner.module.js +10 -0
- package/dist/components/ui/spinner.module.js.map +1 -0
- package/dist/components/ui/spinner_module.css +28 -0
- package/dist/components/ui/spinner_module.css.map +1 -0
- package/dist/components/ui/stepper.d.ts +48 -0
- package/dist/components/ui/stepper.d.ts.map +1 -0
- package/dist/components/ui/stepper.js +41 -0
- package/dist/components/ui/stepper.js.map +1 -0
- package/dist/components/ui/stepper.module.js +12 -0
- package/dist/components/ui/stepper.module.js.map +1 -0
- package/dist/components/ui/stepper_module.css +75 -0
- package/dist/components/ui/stepper_module.css.map +1 -0
- package/dist/components/ui/switch.d.ts +29 -2
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +21 -9
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/switch.module.js +8 -0
- package/dist/components/ui/switch.module.js.map +1 -0
- package/dist/components/ui/switch_module.css +45 -0
- package/dist/components/ui/switch_module.css.map +1 -0
- package/dist/components/ui/table-skeleton.js +34 -0
- package/dist/components/ui/table-skeleton.js.map +1 -0
- package/dist/components/ui/table-skeleton.module.js +11 -0
- package/dist/components/ui/table-skeleton.module.js.map +1 -0
- package/dist/components/ui/table-skeleton_module.css +32 -0
- package/dist/components/ui/table-skeleton_module.css.map +1 -0
- package/dist/components/ui/table.d.ts +170 -8
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/table.js +17 -17
- package/dist/components/ui/table.js.map +1 -1
- package/dist/components/ui/table.module.js +15 -0
- package/dist/components/ui/table.module.js.map +1 -0
- package/dist/components/ui/table_module.css +71 -0
- package/dist/components/ui/table_module.css.map +1 -0
- package/dist/components/ui/tabs.d.ts +114 -5
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +71 -20
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/tabs.module.js +10 -0
- package/dist/components/ui/tabs.module.js.map +1 -0
- package/dist/components/ui/tabs_module.css +89 -0
- package/dist/components/ui/tabs_module.css.map +1 -0
- package/dist/components/ui/textarea.d.ts +24 -1
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +2 -2
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/textarea.module.js +7 -0
- package/dist/components/ui/textarea.module.js.map +1 -0
- package/dist/components/ui/textarea_module.css +33 -0
- package/dist/components/ui/textarea_module.css.map +1 -0
- package/dist/components/ui/timeline.d.ts +111 -0
- package/dist/components/ui/timeline.d.ts.map +1 -0
- package/dist/components/ui/timeline.js +34 -0
- package/dist/components/ui/timeline.js.map +1 -0
- package/dist/components/ui/timeline.module.js +10 -0
- package/dist/components/ui/timeline.module.js.map +1 -0
- package/dist/components/ui/timeline_module.css +47 -0
- package/dist/components/ui/timeline_module.css.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +81 -10
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +32 -23
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle-group.module.js +7 -0
- package/dist/components/ui/toggle-group.module.js.map +1 -0
- package/dist/components/ui/toggle-group_module.css +8 -0
- package/dist/components/ui/toggle-group_module.css.map +1 -0
- package/dist/components/ui/toggle.d.ts +60 -11
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +29 -29
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/toggle.module.js +12 -0
- package/dist/components/ui/toggle.module.js.map +1 -0
- package/dist/components/ui/toggle_module.css +62 -0
- package/dist/components/ui/toggle_module.css.map +1 -0
- package/dist/components/ui/toolbar.d.ts +127 -0
- package/dist/components/ui/toolbar.d.ts.map +1 -0
- package/dist/components/ui/toolbar.js +85 -0
- package/dist/components/ui/toolbar.js.map +1 -0
- package/dist/components/ui/toolbar.module.js +12 -0
- package/dist/components/ui/toolbar.module.js.map +1 -0
- package/dist/components/ui/toolbar_module.css +115 -0
- package/dist/components/ui/toolbar_module.css.map +1 -0
- package/dist/components/ui/tooltip.d.ts +119 -5
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +48 -13
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/tooltip.module.js +9 -0
- package/dist/components/ui/tooltip.module.js.map +1 -0
- package/dist/components/ui/tooltip_module.css +35 -0
- package/dist/components/ui/tooltip_module.css.map +1 -0
- package/dist/components/ui/typewriter.d.ts +48 -13
- package/dist/components/ui/typewriter.d.ts.map +1 -1
- package/dist/components/ui/typewriter.js +46 -49
- package/dist/components/ui/typewriter.js.map +1 -1
- package/dist/components/ui/typewriter.module.js +16 -0
- package/dist/components/ui/typewriter.module.js.map +1 -0
- package/dist/components/ui/typewriter_module.css +102 -0
- package/dist/components/ui/typewriter_module.css.map +1 -0
- package/dist/components/ui/visually-hidden.d.ts +38 -0
- package/dist/components/ui/visually-hidden.d.ts.map +1 -0
- package/dist/components/ui/visually-hidden.js +13 -0
- package/dist/components/ui/visually-hidden.js.map +1 -0
- package/dist/components/ui/visually-hidden.module.js +7 -0
- package/dist/components/ui/visually-hidden.module.js.map +1 -0
- package/dist/components/ui/visually-hidden_module.css +14 -0
- package/dist/components/ui/visually-hidden_module.css.map +1 -0
- package/dist/hooks/useAnnounce.js +46 -0
- package/dist/hooks/useAnnounce.js.map +1 -0
- package/dist/hooks/useBreakpoint.d.ts +17 -0
- package/dist/hooks/useBreakpoint.d.ts.map +1 -0
- package/dist/hooks/useBreakpoint.js +16 -0
- package/dist/hooks/useBreakpoint.js.map +1 -0
- package/dist/hooks/useColorScheme.d.ts +14 -0
- package/dist/hooks/useColorScheme.d.ts.map +1 -0
- package/dist/hooks/useColorScheme.js +9 -0
- package/dist/hooks/useColorScheme.js.map +1 -0
- package/dist/hooks/useFocusManager.js +51 -0
- package/dist/hooks/useFocusManager.js.map +1 -0
- package/dist/hooks/useFocusVisible.d.ts +50 -0
- package/dist/hooks/useFocusVisible.d.ts.map +1 -0
- package/dist/hooks/useFocusVisible.js +35 -0
- package/dist/hooks/useFocusVisible.js.map +1 -0
- package/dist/hooks/useIsMobile.d.ts +5 -11
- package/dist/hooks/useIsMobile.d.ts.map +1 -1
- package/dist/hooks/useIsMobile.js +2 -13
- package/dist/hooks/useIsMobile.js.map +1 -1
- package/dist/hooks/useMediaQuery.d.ts +14 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +20 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks/usePrefersContrast.d.ts +19 -0
- package/dist/hooks/usePrefersContrast.d.ts.map +1 -0
- package/dist/hooks/usePrefersContrast.js +8 -0
- package/dist/hooks/usePrefersContrast.js.map +1 -0
- package/dist/hooks/useReducedMotion.d.ts +19 -0
- package/dist/hooks/useReducedMotion.d.ts.map +1 -0
- package/dist/hooks/useReducedMotion.js +2 -0
- package/dist/index.css +104 -5363
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +38 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -72
- package/dist/lib/utilities.d.ts +5 -4
- package/dist/lib/utilities.d.ts.map +1 -1
- package/dist/lib/utilities.js +1 -2
- package/dist/lib/utilities.js.map +1 -1
- package/dist/motion/Collapse.js +19 -0
- package/dist/motion/Collapse.js.map +1 -0
- package/dist/motion/Collapse.module.js +8 -0
- package/dist/motion/Collapse.module.js.map +1 -0
- package/dist/motion/Collapse_module.css +25 -0
- package/dist/motion/Collapse_module.css.map +1 -0
- package/dist/motion/Presence.js +14 -0
- package/dist/motion/Presence.js.map +1 -0
- package/dist/motion/index.js +5 -0
- package/dist/motion/presets.js +117 -0
- package/dist/motion/presets.js.map +1 -0
- package/dist/motion/tokens.js +41 -0
- package/dist/motion/tokens.js.map +1 -0
- package/package.json +154 -67
- package/src/components/ui/accordion.module.css +70 -0
- package/src/components/ui/accordion.tsx +278 -44
- package/src/components/ui/alert-dialog.module.css +87 -0
- package/src/components/ui/alert-dialog.tsx +474 -99
- package/src/components/ui/alert.module.css +57 -0
- package/src/components/ui/alert.tsx +136 -43
- package/src/components/ui/aspect-ratio.module.css +7 -0
- package/src/components/ui/aspect-ratio.tsx +38 -3
- package/src/components/ui/async-boundary.tsx +56 -0
- package/src/components/ui/avatar.module.css +31 -0
- package/src/components/ui/avatar.tsx +146 -36
- package/src/components/ui/background-beams.module.css +20 -0
- package/src/components/ui/background-beams.tsx +173 -134
- package/src/components/ui/badge.module.css +60 -0
- package/src/components/ui/badge.tsx +100 -32
- package/src/components/ui/breadcrumb.module.css +87 -0
- package/src/components/ui/breadcrumb.tsx +256 -74
- package/src/components/ui/bubble-background.module.css +97 -0
- package/src/components/ui/bubble-background.tsx +92 -52
- package/src/components/ui/button-group.module.css +76 -0
- package/src/components/ui/button-group.tsx +135 -46
- package/src/components/ui/button.module.css +138 -0
- package/src/components/ui/button.tsx +159 -41
- package/src/components/ui/calendar.module.css +250 -0
- package/src/components/ui/calendar.tsx +133 -103
- package/src/components/ui/card-skeleton.module.css +50 -0
- package/src/components/ui/card-skeleton.tsx +69 -0
- package/src/components/ui/card.module.css +41 -0
- package/src/components/ui/card.tsx +175 -22
- package/src/components/ui/carousel.module.css +80 -0
- package/src/components/ui/carousel.tsx +184 -43
- package/src/components/ui/chart.module.css +164 -0
- package/src/components/ui/chart.tsx +444 -102
- package/src/components/ui/checkbox-group.module.css +8 -0
- package/src/components/ui/checkbox-group.tsx +54 -0
- package/src/components/ui/checkbox.module.css +43 -0
- package/src/components/ui/checkbox.tsx +73 -19
- package/src/components/ui/collapsible.module.css +24 -0
- package/src/components/ui/collapsible.tsx +139 -3
- package/src/components/ui/command.module.css +193 -0
- package/src/components/ui/command.tsx +877 -114
- package/src/components/ui/context-menu.module.css +113 -0
- package/src/components/ui/context-menu.tsx +616 -157
- package/src/components/ui/copy-button.module.css +34 -0
- package/src/components/ui/copy-button.tsx +116 -0
- package/src/components/ui/counting-number.module.css +4 -0
- package/src/components/ui/counting-number.tsx +69 -31
- package/src/components/ui/dialog.module.css +113 -0
- package/src/components/ui/dialog.tsx +427 -81
- package/src/components/ui/dot-background.module.css +12 -0
- package/src/components/ui/dot-background.tsx +134 -126
- package/src/components/ui/drawer.module.css +85 -0
- package/src/components/ui/drawer.tsx +408 -80
- package/src/components/ui/dropdown-menu.module.css +113 -0
- package/src/components/ui/dropdown-menu.tsx +616 -159
- package/src/components/ui/dropdrawer.module.css +322 -0
- package/src/components/ui/dropdrawer.tsx +850 -398
- package/src/components/ui/empty.module.css +84 -0
- package/src/components/ui/empty.tsx +176 -52
- package/src/components/ui/error-boundary.module.css +36 -0
- package/src/components/ui/error-boundary.tsx +127 -0
- package/src/components/ui/field.module.css +179 -0
- package/src/components/ui/field.tsx +345 -139
- package/src/components/ui/fireworks-background.module.css +13 -0
- package/src/components/ui/fireworks-background.tsx +89 -51
- package/src/components/ui/flip-button.module.css +44 -0
- package/src/components/ui/flip-button.tsx +59 -28
- package/src/components/ui/focus-scope.module.css +3 -0
- package/src/components/ui/focus-scope.tsx +160 -0
- package/src/components/ui/form-skeleton.module.css +28 -0
- package/src/components/ui/form-skeleton.tsx +62 -0
- package/src/components/ui/form.module.css +20 -0
- package/src/components/ui/form.tsx +244 -33
- package/src/components/ui/gradient-background.module.css +6 -0
- package/src/components/ui/gradient-background.tsx +27 -5
- package/src/components/ui/gradient-text.module.css +23 -0
- package/src/components/ui/gradient-text.tsx +36 -9
- package/src/components/ui/highlight-text.module.css +14 -0
- package/src/components/ui/highlight-text.tsx +37 -15
- package/src/components/ui/hole-background.module.css +84 -0
- package/src/components/ui/hole-background.tsx +290 -162
- package/src/components/ui/hover-card.module.css +21 -0
- package/src/components/ui/hover-card.tsx +142 -21
- package/src/components/ui/input-group.module.css +148 -0
- package/src/components/ui/input-group.tsx +222 -98
- package/src/components/ui/input-otp.module.css +92 -0
- package/src/components/ui/input-otp.tsx +159 -33
- package/src/components/ui/input.module.css +37 -0
- package/src/components/ui/input.tsx +56 -14
- package/src/components/ui/item.module.css +143 -0
- package/src/components/ui/item.tsx +331 -104
- package/src/components/ui/kbd.module.css +31 -0
- package/src/components/ui/kbd.tsx +60 -17
- package/src/components/ui/label.module.css +13 -0
- package/src/components/ui/label.tsx +38 -14
- package/src/components/ui/list-skeleton.module.css +35 -0
- package/src/components/ui/list-skeleton.tsx +70 -0
- package/src/components/ui/loading-overlay.module.css +19 -0
- package/src/components/ui/loading-overlay.tsx +72 -0
- package/src/components/ui/menubar.module.css +144 -0
- package/src/components/ui/menubar.tsx +605 -192
- package/src/components/ui/meter.module.css +32 -0
- package/src/components/ui/meter.tsx +170 -0
- package/src/components/ui/navigation-menu.module.css +110 -0
- package/src/components/ui/navigation-menu.tsx +375 -101
- package/src/components/ui/number-field.module.css +126 -0
- package/src/components/ui/number-field.tsx +254 -0
- package/src/components/ui/pagination.module.css +64 -0
- package/src/components/ui/pagination.tsx +250 -72
- package/src/components/ui/popover.module.css +26 -0
- package/src/components/ui/popover.tsx +207 -25
- package/src/components/ui/progress.module.css +15 -0
- package/src/components/ui/progress.tsx +53 -16
- package/src/components/ui/radio-group.module.css +41 -0
- package/src/components/ui/radio-group.tsx +91 -34
- package/src/components/ui/resizable.module.css +67 -0
- package/src/components/ui/resizable.tsx +106 -26
- package/src/components/ui/ripple-button.module.css +35 -0
- package/src/components/ui/ripple-button.tsx +55 -21
- package/src/components/ui/scratcher.module.css +9 -0
- package/src/components/ui/scratcher.tsx +129 -99
- package/src/components/ui/scroll-area.module.css +47 -0
- package/src/components/ui/scroll-area.tsx +96 -34
- package/src/components/ui/select.module.css +131 -0
- package/src/components/ui/select.tsx +435 -124
- package/src/components/ui/separator.module.css +14 -0
- package/src/components/ui/separator.tsx +59 -18
- package/src/components/ui/sheet.module.css +138 -0
- package/src/components/ui/sheet.tsx +424 -95
- package/src/components/ui/sidebar.module.css +594 -0
- package/src/components/ui/sidebar.tsx +899 -425
- package/src/components/ui/skeleton.module.css +14 -0
- package/src/components/ui/skeleton.tsx +39 -9
- package/src/components/ui/slider.module.css +48 -0
- package/src/components/ui/slider.tsx +89 -16
- package/src/components/ui/sonner.module.css +246 -0
- package/src/components/ui/sonner.tsx +769 -25
- package/src/components/ui/spinner.module.css +25 -0
- package/src/components/ui/spinner.tsx +51 -12
- package/src/components/ui/stepper.module.css +72 -0
- package/src/components/ui/stepper.tsx +95 -0
- package/src/components/ui/switch.module.css +42 -0
- package/src/components/ui/switch.tsx +53 -20
- package/src/components/ui/table-skeleton.module.css +29 -0
- package/src/components/ui/table-skeleton.tsx +79 -0
- package/src/components/ui/table.module.css +66 -0
- package/src/components/ui/table.tsx +235 -61
- package/src/components/ui/tabs.module.css +89 -0
- package/src/components/ui/tabs.tsx +192 -45
- package/src/components/ui/textarea.module.css +30 -0
- package/src/components/ui/textarea.tsx +30 -10
- package/src/components/ui/timeline.module.css +43 -0
- package/src/components/ui/timeline.tsx +153 -0
- package/src/components/ui/toggle-group.module.css +5 -0
- package/src/components/ui/toggle-group.tsx +116 -35
- package/src/components/ui/toggle.module.css +57 -0
- package/src/components/ui/toggle.tsx +89 -33
- package/src/components/ui/toolbar.module.css +112 -0
- package/src/components/ui/toolbar.tsx +210 -0
- package/src/components/ui/tooltip.module.css +39 -0
- package/src/components/ui/tooltip.tsx +181 -24
- package/src/components/ui/typewriter.module.css +101 -0
- package/src/components/ui/typewriter.tsx +130 -128
- package/src/components/ui/visually-hidden.module.css +11 -0
- package/src/components/ui/visually-hidden.tsx +50 -0
- package/src/css-modules.d.ts +9 -0
- package/src/hooks/useAnnounce.tsx +73 -0
- package/src/hooks/useBreakpoint.tsx +41 -0
- package/src/hooks/useColorScheme.tsx +23 -0
- package/src/hooks/useFocusManager.tsx +89 -0
- package/src/hooks/useFocusVisible.tsx +88 -0
- package/src/hooks/useIsMobile.tsx +7 -28
- package/src/hooks/useMediaQuery.tsx +34 -0
- package/src/hooks/usePrefersContrast.tsx +24 -0
- package/src/hooks/useReducedMotion.tsx +20 -0
- package/src/index.css +127 -65
- package/src/index.ts +196 -18
- package/src/lib/utilities.ts +7 -6
- package/src/motion/Collapse.module.css +22 -0
- package/src/motion/Collapse.tsx +52 -0
- package/src/motion/Presence.tsx +44 -0
- package/src/motion/index.ts +13 -0
- package/src/motion/presets.ts +77 -0
- package/src/motion/tokens.ts +37 -0
- package/src/hooks/useIsMobile.test.tsx +0 -96
- package/src/hooks/useWindowSize.test.tsx +0 -57
- package/src/index.test.ts +0 -537
- package/src/lib/color-conversion-utilities.test.ts +0 -225
- package/src/lib/utilities.test.ts +0 -37
|
@@ -1,21 +1,51 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
/* eslint-disable */
|
|
3
|
+
/* eslint-disable complexity, react/no-object-type-as-default-prop, react/no-danger, react-dom/no-dangerously-set-innerhtml, unicorn/no-negated-condition */
|
|
4
4
|
|
|
5
|
-
import {cn} from "@/lib/utilities";
|
|
6
5
|
import * as React from "react";
|
|
6
|
+
import type {DefaultTooltipContentProps, LegendPayload, ResponsiveContainerProps, TooltipValueType} from "recharts";
|
|
7
7
|
import * as RechartsPrimitive from "recharts";
|
|
8
|
-
import type {NameType, ValueType} from "recharts/types/component/DefaultTooltipContent";
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
import {cn} from "@/lib/utilities";
|
|
10
|
+
|
|
11
|
+
import styles from "./chart.module.css";
|
|
12
|
+
|
|
11
13
|
const THEMES = {light: "", dark: ".dark"} as const;
|
|
12
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Describes per-series chart metadata used by legend and tooltip renderers.
|
|
17
|
+
*/
|
|
18
|
+
type ChartConfigItem = {
|
|
19
|
+
/**
|
|
20
|
+
* Label rendered by shared legends and tooltips for the series.
|
|
21
|
+
* @default undefined
|
|
22
|
+
*/
|
|
23
|
+
label?: React.ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Optional icon rendered in legends and tooltips instead of the color swatch.
|
|
26
|
+
* @default undefined
|
|
27
|
+
*/
|
|
28
|
+
icon?: React.ComponentType;
|
|
29
|
+
/**
|
|
30
|
+
* Unit suffix appended to rendered values when the payload does not provide one.
|
|
31
|
+
* @default undefined
|
|
32
|
+
*/
|
|
33
|
+
unit?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Shared numeric formatter used by helper content renderers when no Recharts tooltip formatter is supplied.
|
|
36
|
+
* @default undefined
|
|
37
|
+
*/
|
|
38
|
+
formatter?: (value: number) => string;
|
|
39
|
+
/**
|
|
40
|
+
* Recharts stack identifier that consuming chart primitives can read from config.
|
|
41
|
+
* @default undefined
|
|
42
|
+
*/
|
|
43
|
+
stackId?: string;
|
|
44
|
+
};
|
|
45
|
+
|
|
13
46
|
export type ChartConfig = Record<
|
|
14
47
|
string,
|
|
15
|
-
{
|
|
16
|
-
label?: React.ReactNode;
|
|
17
|
-
icon?: React.ComponentType;
|
|
18
|
-
} & ({color?: string; theme?: never} | {color?: never; theme: Record<keyof typeof THEMES, string>})
|
|
48
|
+
ChartConfigItem & ({color?: string; theme?: never} | {color?: never; theme: Record<keyof typeof THEMES, string>})
|
|
19
49
|
>;
|
|
20
50
|
|
|
21
51
|
interface ChartContextProps {
|
|
@@ -24,7 +54,7 @@ interface ChartContextProps {
|
|
|
24
54
|
|
|
25
55
|
const ChartContext = React.createContext<ChartContextProps | null>(null);
|
|
26
56
|
|
|
27
|
-
function useChart() {
|
|
57
|
+
function useChart(): ChartContextProps {
|
|
28
58
|
const context = React.useContext(ChartContext);
|
|
29
59
|
|
|
30
60
|
if (!context) {
|
|
@@ -36,48 +66,124 @@ function useChart() {
|
|
|
36
66
|
|
|
37
67
|
interface ChartContainerProps
|
|
38
68
|
extends
|
|
39
|
-
Omit<React.ComponentProps<"div">, "children">,
|
|
69
|
+
Omit<React.ComponentProps<"div">, "children" | "className" | "id">,
|
|
40
70
|
Pick<
|
|
41
|
-
|
|
42
|
-
|
|
71
|
+
ResponsiveContainerProps,
|
|
72
|
+
| "initialDimension"
|
|
73
|
+
| "aspect"
|
|
74
|
+
| "debounce"
|
|
75
|
+
| "minHeight"
|
|
76
|
+
| "minWidth"
|
|
77
|
+
| "maxHeight"
|
|
78
|
+
| "height"
|
|
79
|
+
| "width"
|
|
80
|
+
| "onResize"
|
|
81
|
+
| "children"
|
|
82
|
+
| "className"
|
|
83
|
+
| "id"
|
|
43
84
|
> {
|
|
85
|
+
/**
|
|
86
|
+
* Series configuration used to resolve labels, icons, and colors.
|
|
87
|
+
* @default undefined
|
|
88
|
+
*/
|
|
44
89
|
config: ChartConfig;
|
|
90
|
+
/**
|
|
91
|
+
* Inline styles applied to the inner `ResponsiveContainer`.
|
|
92
|
+
* @default undefined
|
|
93
|
+
*/
|
|
45
94
|
innerResponsiveContainerStyle?: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["style"];
|
|
46
95
|
}
|
|
47
96
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Provides responsive chart layout and series config context for Recharts content.
|
|
99
|
+
*
|
|
100
|
+
* @remarks
|
|
101
|
+
* - Renders a wrapping `<div>` element
|
|
102
|
+
* - Built on `recharts` `ResponsiveContainer`
|
|
103
|
+
* - Injects CSS variables so legends and tooltips can share theme-aware colors
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```tsx
|
|
107
|
+
* <ChartContainer config={{sales: {label: "Sales", color: "#2563eb"}}}>
|
|
108
|
+
* <RechartsPrimitive.BarChart data={data}>...</RechartsPrimitive.BarChart>
|
|
109
|
+
* </ChartContainer>
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @see {@link https://recharts.org/en-US/api/ResponsiveContainer | Recharts ResponsiveContainer Docs}
|
|
113
|
+
*/
|
|
114
|
+
const ChartContainer = React.forwardRef<HTMLDivElement, ChartContainerProps>(
|
|
115
|
+
(
|
|
116
|
+
{
|
|
117
|
+
id,
|
|
118
|
+
config,
|
|
119
|
+
initialDimension = {width: 320, height: 200},
|
|
120
|
+
className,
|
|
121
|
+
children,
|
|
122
|
+
innerResponsiveContainerStyle,
|
|
123
|
+
aspect,
|
|
124
|
+
debounce,
|
|
125
|
+
height,
|
|
126
|
+
maxHeight,
|
|
127
|
+
minHeight,
|
|
128
|
+
minWidth,
|
|
129
|
+
onResize,
|
|
130
|
+
width,
|
|
131
|
+
...props
|
|
132
|
+
},
|
|
133
|
+
ref,
|
|
134
|
+
) => {
|
|
135
|
+
const uniqueId = React.useId();
|
|
136
|
+
const chartId = `chart-${id ?? uniqueId.replaceAll(":", "")}`;
|
|
137
|
+
|
|
138
|
+
return (
|
|
139
|
+
<ChartContext.Provider value={{config}}>
|
|
140
|
+
<div
|
|
141
|
+
data-slot='chart'
|
|
142
|
+
data-chart={chartId}
|
|
143
|
+
className={cn(styles.container, className)}
|
|
144
|
+
{...props}>
|
|
145
|
+
<ChartStyle
|
|
146
|
+
id={chartId}
|
|
147
|
+
config={config}
|
|
148
|
+
/>
|
|
149
|
+
<RechartsPrimitive.ResponsiveContainer
|
|
150
|
+
ref={ref}
|
|
151
|
+
id={id}
|
|
152
|
+
className={className}
|
|
153
|
+
initialDimension={initialDimension}
|
|
154
|
+
aspect={aspect}
|
|
155
|
+
debounce={debounce}
|
|
156
|
+
height={height}
|
|
157
|
+
maxHeight={maxHeight}
|
|
158
|
+
minHeight={minHeight}
|
|
159
|
+
minWidth={minWidth}
|
|
160
|
+
onResize={onResize}
|
|
161
|
+
style={innerResponsiveContainerStyle}
|
|
162
|
+
width={width}>
|
|
163
|
+
{children}
|
|
164
|
+
</RechartsPrimitive.ResponsiveContainer>
|
|
165
|
+
</div>
|
|
166
|
+
</ChartContext.Provider>
|
|
167
|
+
);
|
|
168
|
+
},
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Emits theme-aware CSS variables for configured chart series colors.
|
|
173
|
+
*
|
|
174
|
+
* @remarks
|
|
175
|
+
* - Renders a `<style>` element
|
|
176
|
+
* - Built on the shared chart configuration contract
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```tsx
|
|
180
|
+
* <ChartStyle id='chart-sales' config={config} />
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
183
|
+
* @see {@link https://recharts.org | Recharts Docs}
|
|
184
|
+
*/
|
|
185
|
+
const ChartStyle = ({id, config}: Readonly<{id: string; config: ChartConfig}>): React.JSX.Element | null => {
|
|
186
|
+
const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme ?? itemConfig.color);
|
|
81
187
|
|
|
82
188
|
if (!colorConfig.length) {
|
|
83
189
|
return null;
|
|
@@ -105,8 +211,40 @@ ${colorConfig
|
|
|
105
211
|
);
|
|
106
212
|
};
|
|
107
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Re-exports the Recharts tooltip primitive for use with shared chart helpers.
|
|
216
|
+
*
|
|
217
|
+
* @remarks
|
|
218
|
+
* - Renders the Recharts tooltip container
|
|
219
|
+
* - Built on `recharts`
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* <ChartTooltip content={<ChartTooltipContent />} />
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* @see {@link https://recharts.org/en-US/api/Tooltip | Recharts Tooltip Docs}
|
|
227
|
+
*/
|
|
108
228
|
const ChartTooltip = RechartsPrimitive.Tooltip;
|
|
109
229
|
|
|
230
|
+
/**
|
|
231
|
+
* Renders shared tooltip content for charts configured with {@link ChartContainer}.
|
|
232
|
+
*
|
|
233
|
+
* @remarks
|
|
234
|
+
* - Renders a `<div>` element when active
|
|
235
|
+
* - Built on `recharts` tooltip payloads and shared chart config context
|
|
236
|
+
* - Honors `active`, `payload`, `label`, `labelFormatter`, `formatter`, `separator`,
|
|
237
|
+
* `className`, `labelClassName`, `color`, `nameKey`, and `labelKey`
|
|
238
|
+
* - Ignores `wrapperClassName`, `contentStyle`, `itemStyle`, `labelStyle`, and
|
|
239
|
+
* `accessibilityLayer` because this helper renders its own DOM structure
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```tsx
|
|
243
|
+
* <ChartTooltip content={<ChartTooltipContent indicator='line' />} />
|
|
244
|
+
* ```
|
|
245
|
+
*
|
|
246
|
+
* @see {@link https://recharts.org/en-US/api/Tooltip | Recharts Tooltip Docs}
|
|
247
|
+
*/
|
|
110
248
|
function ChartTooltipContent({
|
|
111
249
|
active,
|
|
112
250
|
payload,
|
|
@@ -121,6 +259,7 @@ function ChartTooltipContent({
|
|
|
121
259
|
color,
|
|
122
260
|
nameKey,
|
|
123
261
|
labelKey,
|
|
262
|
+
separator,
|
|
124
263
|
}: React.ComponentProps<typeof RechartsPrimitive.Tooltip>
|
|
125
264
|
& React.ComponentProps<"div"> & {
|
|
126
265
|
hideLabel?: boolean;
|
|
@@ -128,7 +267,7 @@ function ChartTooltipContent({
|
|
|
128
267
|
indicator?: "line" | "dot" | "dashed";
|
|
129
268
|
nameKey?: string;
|
|
130
269
|
labelKey?: string;
|
|
131
|
-
} & Omit<
|
|
270
|
+
} & Omit<DefaultTooltipContentProps, "accessibilityLayer">): React.JSX.Element | null {
|
|
132
271
|
const {config} = useChart();
|
|
133
272
|
|
|
134
273
|
const tooltipLabel = React.useMemo(() => {
|
|
@@ -142,15 +281,15 @@ function ChartTooltipContent({
|
|
|
142
281
|
const value = !labelKey && typeof label === "string" ? (config[label]?.label ?? label) : itemConfig?.label;
|
|
143
282
|
|
|
144
283
|
if (labelFormatter) {
|
|
145
|
-
return <div className={cn(
|
|
284
|
+
return <div className={cn(styles.tooltipLabel, labelClassName)}>{labelFormatter(value, payload)}</div>;
|
|
146
285
|
}
|
|
147
286
|
|
|
148
|
-
if (
|
|
287
|
+
if (value === null || value === undefined) {
|
|
149
288
|
return null;
|
|
150
289
|
}
|
|
151
290
|
|
|
152
|
-
return <div className={cn(
|
|
153
|
-
}, [
|
|
291
|
+
return <div className={cn(styles.tooltipLabel, labelClassName)}>{value}</div>;
|
|
292
|
+
}, [config, hideLabel, label, labelClassName, labelFormatter, labelKey, payload]);
|
|
154
293
|
|
|
155
294
|
if (!active || !payload?.length) {
|
|
156
295
|
return null;
|
|
@@ -159,29 +298,35 @@ function ChartTooltipContent({
|
|
|
159
298
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
160
299
|
|
|
161
300
|
return (
|
|
162
|
-
<div
|
|
163
|
-
className={cn(
|
|
164
|
-
"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",
|
|
165
|
-
className,
|
|
166
|
-
)}>
|
|
301
|
+
<div className={cn(styles.tooltip, className)}>
|
|
167
302
|
{!nestLabel ? tooltipLabel : null}
|
|
168
|
-
<div className=
|
|
303
|
+
<div className={styles.tooltipBody}>
|
|
169
304
|
{payload
|
|
170
305
|
.filter((item) => item.type !== "none")
|
|
171
306
|
.map((item, index) => {
|
|
172
|
-
const key = `${nameKey ?? item.
|
|
307
|
+
const key = `${nameKey ?? item.dataKey ?? item.name ?? "value"}`;
|
|
173
308
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
174
|
-
const indicatorColor = color ?? item.payload?.fill ?? item.color;
|
|
309
|
+
const indicatorColor = color ?? item.payload?.fill ?? item.color ?? "transparent";
|
|
310
|
+
const indicatorStyle = {
|
|
311
|
+
"--ac-chart-indicator-background": indicatorColor,
|
|
312
|
+
"--ac-chart-indicator-border": indicatorColor,
|
|
313
|
+
} as React.CSSProperties & Record<"--ac-chart-indicator-background" | "--ac-chart-indicator-border", string>;
|
|
314
|
+
|
|
315
|
+
const itemFormatter = formatter ?? item.formatter;
|
|
316
|
+
const hasFormatter = typeof itemFormatter === "function" && item.value !== undefined && item.name !== undefined;
|
|
317
|
+
const formatterResult = hasFormatter ? itemFormatter(item.value, item.name, item, index, payload) : undefined;
|
|
318
|
+
const formattedEntry = Array.isArray(formatterResult) && formatterResult.length === 2 ? formatterResult : undefined;
|
|
319
|
+
const resolvedName = formattedEntry?.[1] ?? itemConfig?.label ?? item.name;
|
|
320
|
+
const resolvedUnit = item.unit ?? itemConfig?.unit;
|
|
321
|
+
const resolvedValue =
|
|
322
|
+
formattedEntry?.[0] ?? (item.value !== null && item.value !== undefined ? formatChartValue(item.value, itemConfig) : null);
|
|
175
323
|
|
|
176
324
|
return (
|
|
177
325
|
<div
|
|
178
|
-
key={index}
|
|
179
|
-
className={cn(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
)}>
|
|
183
|
-
{formatter && item?.value !== undefined && item.name ? (
|
|
184
|
-
formatter(item.value, item.name, item, index, item.payload)
|
|
326
|
+
key={`${key}-${index}`}
|
|
327
|
+
className={cn(styles.tooltipItem, indicator === "dot" && styles.tooltipItemCenter)}>
|
|
328
|
+
{formatterResult !== null && formatterResult !== undefined && !formattedEntry ? (
|
|
329
|
+
formatterResult
|
|
185
330
|
) : (
|
|
186
331
|
<>
|
|
187
332
|
{itemConfig?.icon ? (
|
|
@@ -189,29 +334,29 @@ function ChartTooltipContent({
|
|
|
189
334
|
) : (
|
|
190
335
|
!hideIndicator && (
|
|
191
336
|
<div
|
|
192
|
-
className={cn(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
"--color-bg": indicatorColor,
|
|
201
|
-
"--color-border": indicatorColor,
|
|
202
|
-
} as React.CSSProperties
|
|
203
|
-
}
|
|
337
|
+
className={cn(
|
|
338
|
+
styles.tooltipIndicator,
|
|
339
|
+
indicator === "dot" && styles.tooltipIndicatorDot,
|
|
340
|
+
indicator === "line" && styles.tooltipIndicatorLine,
|
|
341
|
+
indicator === "dashed" && styles.tooltipIndicatorDashed,
|
|
342
|
+
nestLabel && indicator === "dashed" && styles.tooltipIndicatorDashedNested,
|
|
343
|
+
)}
|
|
344
|
+
style={indicatorStyle}
|
|
204
345
|
/>
|
|
205
346
|
)
|
|
206
347
|
)}
|
|
207
|
-
<div className={cn(
|
|
208
|
-
<div className=
|
|
348
|
+
<div className={cn(styles.tooltipValueRow, nestLabel && styles.tooltipValueRowNested)}>
|
|
349
|
+
<div className={styles.tooltipNameWrapper}>
|
|
209
350
|
{nestLabel ? tooltipLabel : null}
|
|
210
|
-
<span className=
|
|
351
|
+
{resolvedName !== null && resolvedName !== undefined && <span className={styles.tooltipName}>{resolvedName}</span>}
|
|
211
352
|
</div>
|
|
212
|
-
{
|
|
213
|
-
<span className=
|
|
214
|
-
{
|
|
353
|
+
{resolvedValue !== null && resolvedValue !== undefined && (
|
|
354
|
+
<span className={styles.tooltipValue}>
|
|
355
|
+
{resolvedName !== null && resolvedName !== undefined && separator ? (
|
|
356
|
+
<span aria-hidden='true'>{separator}</span>
|
|
357
|
+
) : null}
|
|
358
|
+
{resolvedValue}
|
|
359
|
+
{resolvedUnit !== null && resolvedUnit !== undefined ? <span> {resolvedUnit}</span> : null}
|
|
215
360
|
</span>
|
|
216
361
|
)}
|
|
217
362
|
</div>
|
|
@@ -225,8 +370,40 @@ function ChartTooltipContent({
|
|
|
225
370
|
);
|
|
226
371
|
}
|
|
227
372
|
|
|
373
|
+
/**
|
|
374
|
+
* Re-exports the Recharts legend primitive for use with shared chart helpers.
|
|
375
|
+
*
|
|
376
|
+
* @remarks
|
|
377
|
+
* - Renders the Recharts legend container
|
|
378
|
+
* - Built on `recharts`
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* ```tsx
|
|
382
|
+
* <ChartLegend content={<ChartLegendContent />} />
|
|
383
|
+
* ```
|
|
384
|
+
*
|
|
385
|
+
* @see {@link https://recharts.org/en-US/api/Legend | Recharts Legend Docs}
|
|
386
|
+
*/
|
|
228
387
|
const ChartLegend = RechartsPrimitive.Legend;
|
|
229
388
|
|
|
389
|
+
/**
|
|
390
|
+
* Renders shared legend content for charts configured with {@link ChartContainer}.
|
|
391
|
+
*
|
|
392
|
+
* @remarks
|
|
393
|
+
* - Renders a `<div>` element when legend payload exists
|
|
394
|
+
* - Built on `recharts` legend payloads and shared chart config context
|
|
395
|
+
* - Honors `payload`, `verticalAlign`, `className`, and the custom `hideIcon`
|
|
396
|
+
* and `nameKey` props
|
|
397
|
+
* - Ignores Recharts presentational props such as `align`, `layout`, `iconSize`,
|
|
398
|
+
* `iconType`, `formatter`, and item mouse handlers because it renders custom markup
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```tsx
|
|
402
|
+
* <ChartLegend content={<ChartLegendContent />} />
|
|
403
|
+
* ```
|
|
404
|
+
*
|
|
405
|
+
* @see {@link https://recharts.org/en-US/api/Legend | Recharts Legend Docs}
|
|
406
|
+
*/
|
|
230
407
|
function ChartLegendContent({
|
|
231
408
|
className,
|
|
232
409
|
hideIcon = false,
|
|
@@ -236,7 +413,7 @@ function ChartLegendContent({
|
|
|
236
413
|
}: React.ComponentProps<"div"> & {
|
|
237
414
|
hideIcon?: boolean;
|
|
238
415
|
nameKey?: string;
|
|
239
|
-
} & RechartsPrimitive.DefaultLegendContentProps) {
|
|
416
|
+
} & RechartsPrimitive.DefaultLegendContentProps): React.JSX.Element | null {
|
|
240
417
|
const {config} = useChart();
|
|
241
418
|
|
|
242
419
|
if (!payload?.length) {
|
|
@@ -244,7 +421,7 @@ function ChartLegendContent({
|
|
|
244
421
|
}
|
|
245
422
|
|
|
246
423
|
return (
|
|
247
|
-
<div className={cn(
|
|
424
|
+
<div className={cn(styles.legend, verticalAlign === "top" ? styles.legendTop : styles.legendBottom, className)}>
|
|
248
425
|
{payload
|
|
249
426
|
.filter((item) => item.type !== "none")
|
|
250
427
|
.map((item) => {
|
|
@@ -253,19 +430,17 @@ function ChartLegendContent({
|
|
|
253
430
|
|
|
254
431
|
return (
|
|
255
432
|
<div
|
|
256
|
-
key={item.value}
|
|
257
|
-
className={
|
|
433
|
+
key={String(item.value)}
|
|
434
|
+
className={styles.legendItem}>
|
|
258
435
|
{itemConfig?.icon && !hideIcon ? (
|
|
259
436
|
<itemConfig.icon />
|
|
260
437
|
) : (
|
|
261
438
|
<div
|
|
262
|
-
className=
|
|
263
|
-
style={{
|
|
264
|
-
backgroundColor: item.color,
|
|
265
|
-
}}
|
|
439
|
+
className={styles.legendColor}
|
|
440
|
+
style={{backgroundColor: item.color}}
|
|
266
441
|
/>
|
|
267
442
|
)}
|
|
268
|
-
{itemConfig?.label}
|
|
443
|
+
{itemConfig?.label ?? item.value ?? formatLegendDataKey(item.dataKey)}
|
|
269
444
|
</div>
|
|
270
445
|
);
|
|
271
446
|
})}
|
|
@@ -273,24 +448,191 @@ function ChartLegendContent({
|
|
|
273
448
|
);
|
|
274
449
|
}
|
|
275
450
|
|
|
276
|
-
|
|
277
|
-
|
|
451
|
+
function formatChartValue(value: TooltipValueType, itemConfig: ChartConfig[string] | undefined): React.ReactNode {
|
|
452
|
+
if (typeof value === "number") {
|
|
453
|
+
return itemConfig?.formatter ? itemConfig.formatter(value) : value.toLocaleString();
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
return String(value);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
function formatLegendDataKey(dataKey: LegendPayload["dataKey"]): string | null {
|
|
460
|
+
return typeof dataKey === "number" || typeof dataKey === "string" ? String(dataKey) : null;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string): ChartConfig[string] | undefined {
|
|
278
464
|
if (typeof payload !== "object" || payload === null) {
|
|
279
465
|
return undefined;
|
|
280
466
|
}
|
|
281
467
|
|
|
282
|
-
const
|
|
283
|
-
|
|
468
|
+
const payloadObject = payload as Record<string, unknown>;
|
|
469
|
+
const nestedPayload =
|
|
470
|
+
typeof payloadObject["payload"] === "object" && payloadObject["payload"] !== null
|
|
471
|
+
? (payloadObject["payload"] as Record<string, unknown>)
|
|
472
|
+
: undefined;
|
|
284
473
|
|
|
285
|
-
let configLabelKey
|
|
474
|
+
let configLabelKey = key;
|
|
286
475
|
|
|
287
|
-
if (
|
|
288
|
-
configLabelKey =
|
|
289
|
-
} else if (
|
|
290
|
-
configLabelKey =
|
|
476
|
+
if (typeof payloadObject[key] === "string") {
|
|
477
|
+
configLabelKey = payloadObject[key] as string;
|
|
478
|
+
} else if (nestedPayload && typeof nestedPayload[key] === "string") {
|
|
479
|
+
configLabelKey = nestedPayload[key] as string;
|
|
291
480
|
}
|
|
292
481
|
|
|
293
|
-
return
|
|
482
|
+
return config[configLabelKey] ?? config[key];
|
|
294
483
|
}
|
|
295
484
|
|
|
485
|
+
ChartContainer.displayName = "ChartContainer";
|
|
486
|
+
ChartStyle.displayName = "ChartStyle";
|
|
487
|
+
Object.assign(ChartTooltip, {displayName: "ChartTooltip"});
|
|
488
|
+
ChartTooltipContent.displayName = "ChartTooltipContent";
|
|
489
|
+
Object.assign(ChartLegend, {displayName: "ChartLegend"});
|
|
490
|
+
ChartLegendContent.displayName = "ChartLegendContent";
|
|
491
|
+
|
|
296
492
|
export {ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent};
|
|
493
|
+
|
|
494
|
+
// ---------------------------------------------------------------------------
|
|
495
|
+
// Recharts v3.8+ primitive re-exports
|
|
496
|
+
// Consumers should import chart primitives from "@arolariu/components/chart"
|
|
497
|
+
// instead of importing directly from "recharts".
|
|
498
|
+
// ---------------------------------------------------------------------------
|
|
499
|
+
|
|
500
|
+
// -- Chart containers -------------------------------------------------------
|
|
501
|
+
/** @see {@link https://recharts.github.io/en-US/api/AreaChart | AreaChart API} */
|
|
502
|
+
export const AreaChart = RechartsPrimitive.AreaChart;
|
|
503
|
+
/** @see {@link https://recharts.github.io/en-US/api/BarChart | BarChart API} */
|
|
504
|
+
export const BarChart = RechartsPrimitive.BarChart;
|
|
505
|
+
/** @see {@link https://recharts.github.io/en-US/api/ComposedChart | ComposedChart API} */
|
|
506
|
+
export const ComposedChart = RechartsPrimitive.ComposedChart;
|
|
507
|
+
/** @see {@link https://recharts.github.io/en-US/api/FunnelChart | FunnelChart API} */
|
|
508
|
+
export const FunnelChart = RechartsPrimitive.FunnelChart;
|
|
509
|
+
/** @see {@link https://recharts.github.io/en-US/api/LineChart | LineChart API} */
|
|
510
|
+
export const LineChart = RechartsPrimitive.LineChart;
|
|
511
|
+
/** @see {@link https://recharts.github.io/en-US/api/PieChart | PieChart API} */
|
|
512
|
+
export const PieChart = RechartsPrimitive.PieChart;
|
|
513
|
+
/** @see {@link https://recharts.github.io/en-US/api/RadarChart | RadarChart API} */
|
|
514
|
+
export const RadarChart = RechartsPrimitive.RadarChart;
|
|
515
|
+
/** @see {@link https://recharts.github.io/en-US/api/RadialBarChart | RadialBarChart API} */
|
|
516
|
+
export const RadialBarChart = RechartsPrimitive.RadialBarChart;
|
|
517
|
+
/** @see {@link https://recharts.github.io/en-US/api/ScatterChart | ScatterChart API} */
|
|
518
|
+
export const ScatterChart = RechartsPrimitive.ScatterChart;
|
|
519
|
+
/** @see {@link https://recharts.github.io/en-US/api/Sankey | Sankey API} */
|
|
520
|
+
export const Sankey = RechartsPrimitive.Sankey;
|
|
521
|
+
/** @see {@link https://recharts.github.io/en-US/api/SunburstChart | SunburstChart API} */
|
|
522
|
+
export const SunburstChart = RechartsPrimitive.SunburstChart;
|
|
523
|
+
/** @see {@link https://recharts.github.io/en-US/api/Treemap | Treemap API} */
|
|
524
|
+
export const Treemap = RechartsPrimitive.Treemap;
|
|
525
|
+
|
|
526
|
+
// -- Series elements --------------------------------------------------------
|
|
527
|
+
/** @see {@link https://recharts.github.io/en-US/api/Area | Area API} */
|
|
528
|
+
export const Area = RechartsPrimitive.Area;
|
|
529
|
+
/** @see {@link https://recharts.github.io/en-US/api/Bar | Bar API} */
|
|
530
|
+
export const Bar = RechartsPrimitive.Bar;
|
|
531
|
+
/**
|
|
532
|
+
* Groups stacked bars and configures shared stack properties such as radius.
|
|
533
|
+
* @since recharts 3.6
|
|
534
|
+
* @see {@link https://recharts.github.io/en-US/guide/roundedBars | BarStack Guide}
|
|
535
|
+
*/
|
|
536
|
+
export const BarStack = RechartsPrimitive.BarStack;
|
|
537
|
+
/** @see {@link https://recharts.github.io/en-US/api/Funnel | Funnel API} */
|
|
538
|
+
export const Funnel = RechartsPrimitive.Funnel;
|
|
539
|
+
/** @see {@link https://recharts.github.io/en-US/api/Line | Line API} */
|
|
540
|
+
export const Line = RechartsPrimitive.Line;
|
|
541
|
+
/** @see {@link https://recharts.github.io/en-US/api/Pie | Pie API} */
|
|
542
|
+
export const Pie = RechartsPrimitive.Pie;
|
|
543
|
+
/** @see {@link https://recharts.github.io/en-US/api/Radar | Radar API} */
|
|
544
|
+
export const Radar = RechartsPrimitive.Radar;
|
|
545
|
+
/** @see {@link https://recharts.github.io/en-US/api/RadialBar | RadialBar API} */
|
|
546
|
+
export const RadialBar = RechartsPrimitive.RadialBar;
|
|
547
|
+
/** @see {@link https://recharts.github.io/en-US/api/Scatter | Scatter API} */
|
|
548
|
+
export const Scatter = RechartsPrimitive.Scatter;
|
|
549
|
+
|
|
550
|
+
// -- Axis & grid ------------------------------------------------------------
|
|
551
|
+
/** @see {@link https://recharts.github.io/en-US/api/CartesianGrid | CartesianGrid API} */
|
|
552
|
+
export const CartesianGrid = RechartsPrimitive.CartesianGrid;
|
|
553
|
+
/** @see {@link https://recharts.github.io/en-US/api/PolarAngleAxis | PolarAngleAxis API} */
|
|
554
|
+
export const PolarAngleAxis = RechartsPrimitive.PolarAngleAxis;
|
|
555
|
+
/** @see {@link https://recharts.github.io/en-US/api/PolarGrid | PolarGrid API} */
|
|
556
|
+
export const PolarGrid = RechartsPrimitive.PolarGrid;
|
|
557
|
+
/** @see {@link https://recharts.github.io/en-US/api/PolarRadiusAxis | PolarRadiusAxis API} */
|
|
558
|
+
export const PolarRadiusAxis = RechartsPrimitive.PolarRadiusAxis;
|
|
559
|
+
/** @see {@link https://recharts.github.io/en-US/api/XAxis | XAxis API} – supports `type: "auto"` since v3.7. */
|
|
560
|
+
export const XAxis = RechartsPrimitive.XAxis;
|
|
561
|
+
/** @see {@link https://recharts.github.io/en-US/api/YAxis | YAxis API} – supports `type: "auto"` since v3.7. */
|
|
562
|
+
export const YAxis = RechartsPrimitive.YAxis;
|
|
563
|
+
/** @see {@link https://recharts.github.io/en-US/api/ZAxis | ZAxis API} */
|
|
564
|
+
export const ZAxis = RechartsPrimitive.ZAxis;
|
|
565
|
+
|
|
566
|
+
// -- Annotations & overlays ------------------------------------------------
|
|
567
|
+
/** @see {@link https://recharts.github.io/en-US/api/Brush | Brush API} */
|
|
568
|
+
export const Brush = RechartsPrimitive.Brush;
|
|
569
|
+
/** @see {@link https://recharts.github.io/en-US/api/ErrorBar | ErrorBar API} */
|
|
570
|
+
export const ErrorBar = RechartsPrimitive.ErrorBar;
|
|
571
|
+
/** @see {@link https://recharts.github.io/en-US/api/Label | Label API} */
|
|
572
|
+
export const RechartsLabel = RechartsPrimitive.Label;
|
|
573
|
+
/** @see {@link https://recharts.github.io/en-US/api/LabelList | LabelList API} */
|
|
574
|
+
export const LabelList = RechartsPrimitive.LabelList;
|
|
575
|
+
/** @see {@link https://recharts.github.io/en-US/api/ReferenceArea | ReferenceArea API} */
|
|
576
|
+
export const ReferenceArea = RechartsPrimitive.ReferenceArea;
|
|
577
|
+
/** @see {@link https://recharts.github.io/en-US/api/ReferenceDot | ReferenceDot API} */
|
|
578
|
+
export const ReferenceDot = RechartsPrimitive.ReferenceDot;
|
|
579
|
+
/** @see {@link https://recharts.github.io/en-US/api/ReferenceLine | ReferenceLine API} */
|
|
580
|
+
export const ReferenceLine = RechartsPrimitive.ReferenceLine;
|
|
581
|
+
|
|
582
|
+
// -- Layout -----------------------------------------------------------------
|
|
583
|
+
/**
|
|
584
|
+
* Wraps a chart in a responsive container. Since recharts 3.3+, you can
|
|
585
|
+
* alternatively use the `responsive` prop directly on chart containers.
|
|
586
|
+
* @see {@link https://recharts.github.io/en-US/api/ResponsiveContainer | ResponsiveContainer API}
|
|
587
|
+
*/
|
|
588
|
+
export const ResponsiveContainer = RechartsPrimitive.ResponsiveContainer;
|
|
589
|
+
/** @see {@link https://recharts.github.io/en-US/api/Customized | Customized API} */
|
|
590
|
+
export const Customized = RechartsPrimitive.Customized;
|
|
591
|
+
|
|
592
|
+
// -- Shapes -----------------------------------------------------------------
|
|
593
|
+
/**
|
|
594
|
+
* @deprecated Since recharts 3.7. Use the `shape` prop on chart series elements instead.
|
|
595
|
+
* @see {@link https://recharts.github.io/en-US/api/Cell | Cell API}
|
|
596
|
+
*/
|
|
597
|
+
export const Cell = RechartsPrimitive.Cell;
|
|
598
|
+
export const Cross = RechartsPrimitive.Cross;
|
|
599
|
+
export const Curve = RechartsPrimitive.Curve;
|
|
600
|
+
export const Dot = RechartsPrimitive.Dot;
|
|
601
|
+
export const Polygon = RechartsPrimitive.Polygon;
|
|
602
|
+
export const Rectangle = RechartsPrimitive.Rectangle;
|
|
603
|
+
export const Sector = RechartsPrimitive.Sector;
|
|
604
|
+
export const Symbols = RechartsPrimitive.Symbols;
|
|
605
|
+
export const Trapezoid = RechartsPrimitive.Trapezoid;
|
|
606
|
+
|
|
607
|
+
// -- Z-index (v3.4+) -------------------------------------------------------
|
|
608
|
+
/** @since recharts 3.4 @see {@link https://recharts.github.io/en-US/guide/zIndex | Z-Index Guide} */
|
|
609
|
+
export const ZIndexLayer = RechartsPrimitive.ZIndexLayer;
|
|
610
|
+
/** Default z-index ordering constants. @since recharts 3.4 */
|
|
611
|
+
export const DefaultZIndexes = RechartsPrimitive.DefaultZIndexes;
|
|
612
|
+
|
|
613
|
+
// -- Hooks (v3+) ------------------------------------------------------------
|
|
614
|
+
/** Returns the current chart width in pixels. */
|
|
615
|
+
export const useChartWidth = RechartsPrimitive.useChartWidth;
|
|
616
|
+
/** Returns the current chart height in pixels. */
|
|
617
|
+
export const useChartHeight = RechartsPrimitive.useChartHeight;
|
|
618
|
+
/** Returns the chart offset (margins, axes). */
|
|
619
|
+
export const useOffset = RechartsPrimitive.useOffset;
|
|
620
|
+
/** Returns the plot area dimensions. */
|
|
621
|
+
export const usePlotArea = RechartsPrimitive.usePlotArea;
|
|
622
|
+
/** Returns the chart margin. */
|
|
623
|
+
export const useMargin = RechartsPrimitive.useMargin;
|
|
624
|
+
/** Returns whether the tooltip is currently active. @since recharts 3.7 */
|
|
625
|
+
export const useIsTooltipActive = RechartsPrimitive.useIsTooltipActive;
|
|
626
|
+
/** Returns the active tooltip coordinate. @since recharts 3.7 */
|
|
627
|
+
export const useActiveTooltipCoordinate = RechartsPrimitive.useActiveTooltipCoordinate;
|
|
628
|
+
/** Returns the active tooltip data points. */
|
|
629
|
+
export const useActiveTooltipDataPoints = RechartsPrimitive.useActiveTooltipDataPoints;
|
|
630
|
+
/** Returns the active tooltip label. */
|
|
631
|
+
export const useActiveTooltipLabel = RechartsPrimitive.useActiveTooltipLabel;
|
|
632
|
+
/** Returns the current X-axis domain. */
|
|
633
|
+
export const useXAxisDomain = RechartsPrimitive.useXAxisDomain;
|
|
634
|
+
/** Returns the current Y-axis domain. */
|
|
635
|
+
export const useYAxisDomain = RechartsPrimitive.useYAxisDomain;
|
|
636
|
+
|
|
637
|
+
// -- Type re-exports --------------------------------------------------------
|
|
638
|
+
export type {DefaultLegendContentProps, DefaultTooltipContentProps, TooltipValueType} from "recharts";
|