@arolariu/components 0.4.2 → 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} +36 -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 +391 -50
- 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 +225 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- 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 -5355
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +40 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -70
- package/dist/lib/color-conversion-utilities.d.ts +82 -0
- package/dist/lib/color-conversion-utilities.d.ts.map +1 -0
- package/dist/lib/color-conversion-utilities.js +94 -0
- package/dist/lib/color-conversion-utilities.js.map +1 -0
- 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 +159 -65
- 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 -113
- 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 +223 -16
- package/src/lib/color-conversion-utilities.ts +165 -0
- 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/CONTRIBUTING.md
CHANGED
|
@@ -1,371 +1,450 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Contributing to `@arolariu/components`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Thank you for contributing to the component library.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This package is built around a **Base UI + CSS Modules** architecture. The goal is to keep components accessible, composable, well-typed, and easy to maintain across the monorepo.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-

|
|
9
|
-

|
|
7
|
+
If you are adding or updating a component, this document is the source of truth for how component code in `packages/components` should be authored.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What This Package Uses
|
|
12
|
+
|
|
13
|
+
- **Base UI** for accessible primitives and composition APIs
|
|
14
|
+
- **CSS Modules** for scoped component styling
|
|
15
|
+
- **TypeScript** for public API safety
|
|
16
|
+
- **Vitest + Testing Library** for unit and interaction tests
|
|
17
|
+
- **RSLib** for package builds
|
|
12
18
|
|
|
13
|
-
|
|
19
|
+
Please align new contributions with the current source architecture in:
|
|
14
20
|
|
|
15
|
-
|
|
21
|
+
- `src/components/ui/button.tsx`
|
|
22
|
+
- `src/components/ui/input.tsx`
|
|
23
|
+
- `src/components/ui/switch.tsx`
|
|
24
|
+
- `src/index.css`
|
|
16
25
|
|
|
17
26
|
---
|
|
18
27
|
|
|
19
|
-
##
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
### Prerequisites
|
|
31
|
+
|
|
32
|
+
- Node.js 22+
|
|
33
|
+
- npm
|
|
34
|
+
- Git
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
### Setup
|
|
22
37
|
|
|
23
38
|
```bash
|
|
24
|
-
# 1. Fork the repository on GitHub
|
|
25
|
-
# 2. Clone your fork
|
|
26
39
|
git clone https://github.com/arolariu/arolariu.ro.git
|
|
27
|
-
cd arolariu.ro
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
cd arolariu.ro
|
|
41
|
+
npm install
|
|
42
|
+
cd packages/components
|
|
43
|
+
```
|
|
31
44
|
|
|
32
|
-
|
|
33
|
-
yarn storybook # 🎨 Component playground at http://localhost:6006
|
|
34
|
-
yarn build # 🔨 Build the library
|
|
45
|
+
### Useful Commands
|
|
35
46
|
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
```bash
|
|
48
|
+
npm run build
|
|
49
|
+
npm run test
|
|
50
|
+
npm run build:clean
|
|
38
51
|
```
|
|
39
52
|
|
|
40
53
|
---
|
|
41
54
|
|
|
42
|
-
##
|
|
55
|
+
## Contribution Scope
|
|
56
|
+
|
|
57
|
+
Good contributions include:
|
|
43
58
|
|
|
44
|
-
|
|
59
|
+
- fixing bugs in existing components
|
|
60
|
+
- improving accessibility behavior
|
|
61
|
+
- adding tests
|
|
62
|
+
- improving JSDoc and usage documentation
|
|
63
|
+
- adding new components that fit the package architecture
|
|
64
|
+
- refining CSS token usage or state styling patterns
|
|
45
65
|
|
|
46
|
-
|
|
66
|
+
Before opening a pull request, make sure your changes:
|
|
47
67
|
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
68
|
+
- build successfully
|
|
69
|
+
- include or update tests
|
|
70
|
+
- preserve accessibility semantics
|
|
71
|
+
- follow the authoring pattern documented below
|
|
51
72
|
|
|
52
|
-
|
|
73
|
+
---
|
|
53
74
|
|
|
54
|
-
|
|
75
|
+
## Source Layout
|
|
55
76
|
|
|
56
|
-
|
|
77
|
+
New UI components belong in `src/components/ui/`.
|
|
57
78
|
|
|
58
|
-
|
|
59
|
-
- **Explain the solution** you'd like to see
|
|
60
|
-
- **Consider alternatives** and their trade-offs
|
|
61
|
-
- **Check accessibility** requirements
|
|
79
|
+
Canonical component file structure:
|
|
62
80
|
|
|
63
|
-
|
|
81
|
+
```text
|
|
82
|
+
src/components/ui/
|
|
83
|
+
component.tsx ← Component implementation
|
|
84
|
+
component.module.css ← Scoped styles
|
|
85
|
+
component.test.tsx ← Unit tests
|
|
86
|
+
```
|
|
64
87
|
|
|
65
|
-
|
|
88
|
+
When adding a new public component:
|
|
66
89
|
|
|
67
|
-
|
|
90
|
+
1. Create the implementation in `src/components/ui/`.
|
|
91
|
+
2. Create a colocated CSS Module.
|
|
92
|
+
3. Create a colocated test file.
|
|
93
|
+
4. Export the public API from `src/index.ts`.
|
|
68
94
|
|
|
69
|
-
|
|
70
|
-
- 🟡 **Help wanted** - We need your expertise
|
|
71
|
-
- 🔴 **Bug fixes** - Critical issues needing attention
|
|
95
|
+
---
|
|
72
96
|
|
|
73
|
-
|
|
97
|
+
## Architecture Principles
|
|
74
98
|
|
|
75
|
-
|
|
99
|
+
### 1. Prefer Base UI Primitives
|
|
76
100
|
|
|
77
|
-
|
|
78
|
-
- **Accessible by default** (WAI-ARIA compliant)
|
|
79
|
-
- **TypeScript support** with full type definitions
|
|
80
|
-
- **Responsive design** with mobile-first approach
|
|
81
|
-
- **Tailwind CSS** integration for styling
|
|
82
|
-
- **Storybook stories** documenting all variants
|
|
83
|
-
- **Comprehensive tests** ensuring reliability
|
|
101
|
+
Use Base UI when a primitive exists for the behavior you need. This ensures:
|
|
84
102
|
|
|
85
|
-
|
|
103
|
+
- keyboard support
|
|
104
|
+
- accessible state attributes
|
|
105
|
+
- correct ARIA semantics
|
|
106
|
+
- predictable composition via `render`
|
|
86
107
|
|
|
87
|
-
|
|
108
|
+
Examples in the current codebase:
|
|
88
109
|
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
- **Tutorials** - Step-by-step guides for common use cases
|
|
110
|
+
- `src/components/ui/input.tsx`
|
|
111
|
+
- `src/components/ui/switch.tsx`
|
|
112
|
+
- `src/components/ui/accordion.tsx`
|
|
113
|
+
- `src/components/ui/button.tsx`
|
|
94
114
|
|
|
95
|
-
|
|
115
|
+
### 2. Use CSS Modules for Styling
|
|
96
116
|
|
|
97
|
-
|
|
117
|
+
All component styles should live in a colocated `*.module.css` file.
|
|
98
118
|
|
|
99
|
-
|
|
119
|
+
Do not introduce alternate styling systems for library component surfaces when a CSS Module belongs with the component.
|
|
100
120
|
|
|
101
|
-
|
|
102
|
-
- **Yarn** 4.9+ (preferred package manager)
|
|
103
|
-
- **Git** for version control
|
|
121
|
+
### 3. Keep Public APIs Typed and Documented
|
|
104
122
|
|
|
105
|
-
|
|
123
|
+
Public props and state types should be explicit, exported when needed, and documented with JSDoc according to RFC 1002.
|
|
106
124
|
|
|
107
|
-
|
|
108
|
-
# Clone the repository
|
|
109
|
-
git clone https://github.com/arolariu/arolariu.ro.git
|
|
110
|
-
cd arolariu.ro/packages/components
|
|
125
|
+
### 4. Preserve Composition
|
|
111
126
|
|
|
112
|
-
|
|
113
|
-
yarn install
|
|
127
|
+
Components should support Base UI's composition model through `render` where appropriate. When wrapping a Base UI primitive, the wrapper should preserve the primitive's semantics and state exposure.
|
|
114
128
|
|
|
115
|
-
|
|
116
|
-
yarn storybook # 🎨 Component development at http://localhost:6006
|
|
117
|
-
yarn build # 🔨 Build for production
|
|
118
|
-
yarn build:clean # 🧹 Clean build artifacts
|
|
119
|
-
```
|
|
129
|
+
---
|
|
120
130
|
|
|
121
|
-
|
|
131
|
+
## Canonical Component Authoring Pattern
|
|
122
132
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
For new primitive-like components and wrappers, follow this pattern:
|
|
134
|
+
|
|
135
|
+
```tsx
|
|
136
|
+
// 1. Import Base UI primitive + utilities
|
|
137
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
138
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
139
|
+
import { cn } from "@/lib/utilities";
|
|
140
|
+
import styles from "./component.module.css";
|
|
141
|
+
|
|
142
|
+
// 2. Define state and props interfaces with JSDoc
|
|
143
|
+
export interface ComponentState { ... }
|
|
144
|
+
export interface ComponentProps extends useRender.ComponentProps<"div", ComponentState> { ... }
|
|
145
|
+
|
|
146
|
+
// 3. Implement with useRender
|
|
147
|
+
function Component(props: Component.Props) {
|
|
148
|
+
const { render, className, children, ...otherProps } = props;
|
|
149
|
+
return useRender({
|
|
150
|
+
defaultTagName: "div",
|
|
151
|
+
render,
|
|
152
|
+
props: mergeProps({ className: cn(styles.root, className) }, otherProps, { children }),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
Component.displayName = "Component";
|
|
156
|
+
|
|
157
|
+
// 4. Add namespace types
|
|
158
|
+
export namespace Component {
|
|
159
|
+
export type State = ComponentState;
|
|
160
|
+
export type Props = ComponentProps;
|
|
161
|
+
}
|
|
136
162
|
```
|
|
137
163
|
|
|
138
|
-
###
|
|
164
|
+
### Implementation Notes
|
|
139
165
|
|
|
140
|
-
|
|
166
|
+
- Import `useRender` and `mergeProps` from `@base-ui/react`.
|
|
167
|
+
- Merge consumer `className` values with module classes via `cn`.
|
|
168
|
+
- Set a stable `displayName`.
|
|
169
|
+
- Add the `Component` namespace with `State` and `Props` aliases for the public typing pattern used in this package.
|
|
170
|
+
- Keep state serializable and focused on what the render callback needs.
|
|
141
171
|
|
|
142
|
-
|
|
143
|
-
git checkout -b feature/amazing-new-component
|
|
144
|
-
```
|
|
172
|
+
### Wrapping an Existing Base UI Primitive
|
|
145
173
|
|
|
146
|
-
|
|
174
|
+
When a Base UI primitive already provides behavior, wrap it instead of recreating it. In that case, follow the pattern used in files such as:
|
|
147
175
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
176
|
+
- `src/components/ui/input.tsx`
|
|
177
|
+
- `src/components/ui/switch.tsx`
|
|
178
|
+
- `src/components/ui/accordion.tsx`
|
|
151
179
|
|
|
152
|
-
|
|
180
|
+
That usually means:
|
|
153
181
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
182
|
+
1. render the Base UI primitive
|
|
183
|
+
2. pass the wrapper styles through the primitive's `render` prop
|
|
184
|
+
3. merge consumer props with `mergeProps`
|
|
185
|
+
4. preserve Base UI state and accessibility behavior
|
|
158
186
|
|
|
159
|
-
|
|
160
|
-
- Write a clear description
|
|
161
|
-
- Include screenshots/GIFs for UI changes
|
|
162
|
-
- Link related issues
|
|
187
|
+
### Backward Compatibility
|
|
163
188
|
|
|
164
|
-
|
|
189
|
+
Some components still carry compatibility shims from older APIs, such as `asChild` support in `src/components/ui/button.tsx`. Do not add compatibility props unless they are required for an existing public contract.
|
|
165
190
|
|
|
166
|
-
|
|
191
|
+
For new components, prefer the Base UI `render` model first.
|
|
167
192
|
|
|
168
|
-
|
|
193
|
+
---
|
|
169
194
|
|
|
170
|
-
|
|
195
|
+
## Type and JSDoc Requirements
|
|
171
196
|
|
|
172
|
-
|
|
173
|
-
- Include proper **ARIA attributes** and roles
|
|
174
|
-
- Support **keyboard navigation**
|
|
175
|
-
- Ensure **screen reader compatibility**
|
|
176
|
-
- Test with accessibility tools
|
|
197
|
+
Document public component APIs so the code explains behavior, not just signatures.
|
|
177
198
|
|
|
178
|
-
|
|
199
|
+
At minimum:
|
|
179
200
|
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
201
|
+
- document exported props interfaces
|
|
202
|
+
- document exported state interfaces and type aliases
|
|
203
|
+
- document the component itself
|
|
204
|
+
- include examples for non-trivial APIs
|
|
205
|
+
- document behavior, constraints, and accessibility implications
|
|
185
206
|
|
|
186
|
-
|
|
207
|
+
### Recommended Pattern
|
|
187
208
|
|
|
188
209
|
```tsx
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
const buttonVariants = cva(
|
|
195
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors",
|
|
196
|
-
{
|
|
197
|
-
variants: {
|
|
198
|
-
variant: {
|
|
199
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
200
|
-
destructive:
|
|
201
|
-
"bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
202
|
-
},
|
|
203
|
-
size: {
|
|
204
|
-
default: "h-10 px-4 py-2",
|
|
205
|
-
sm: "h-9 rounded-md px-3",
|
|
206
|
-
lg: "h-11 rounded-md px-8",
|
|
207
|
-
},
|
|
208
|
-
},
|
|
209
|
-
defaultVariants: {
|
|
210
|
-
variant: "default",
|
|
211
|
-
size: "default",
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
);
|
|
215
|
-
|
|
216
|
-
export interface ButtonProps
|
|
217
|
-
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
218
|
-
VariantProps<typeof buttonVariants> {
|
|
219
|
-
asChild?: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Serializable state exposed to Base UI render callbacks.
|
|
212
|
+
*/
|
|
213
|
+
export interface ComponentState extends Record<string, unknown> {
|
|
214
|
+
disabled: boolean;
|
|
220
215
|
}
|
|
221
216
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
217
|
+
/**
|
|
218
|
+
* Props for the shared component wrapper.
|
|
219
|
+
*/
|
|
220
|
+
export interface ComponentProps extends useRender.ComponentProps<"div", ComponentState> {
|
|
221
|
+
/**
|
|
222
|
+
* Additional CSS classes merged with the root styles.
|
|
223
|
+
*/
|
|
224
|
+
className?: string;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Renders a styled component wrapper with Base UI composition support.
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```tsx
|
|
232
|
+
* <Component />
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
function Component(props: Readonly<Component.Props>): React.ReactElement {
|
|
236
|
+
// implementation
|
|
237
|
+
}
|
|
236
238
|
```
|
|
237
239
|
|
|
238
|
-
|
|
240
|
+
Avoid documentation that only restates the symbol name.
|
|
239
241
|
|
|
240
|
-
|
|
241
|
-
- **JSDoc comments** for complex components
|
|
242
|
-
- **Storybook stories** showing all variants
|
|
243
|
-
- **Usage examples** in README
|
|
244
|
-
- **Accessibility notes** when relevant
|
|
242
|
+
---
|
|
245
243
|
|
|
246
|
-
|
|
244
|
+
## CSS Module Authoring Rules
|
|
247
245
|
|
|
248
|
-
|
|
246
|
+
CSS Modules are the canonical styling approach for this package.
|
|
249
247
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
export const AllVariants: Story = {
|
|
290
|
-
render: () => (
|
|
291
|
-
<div className="flex gap-2">
|
|
292
|
-
<Button variant="default">Default</Button>
|
|
293
|
-
<Button variant="destructive">Destructive</Button>
|
|
294
|
-
<Button variant="outline">Outline</Button>
|
|
295
|
-
</div>
|
|
296
|
-
),
|
|
297
|
-
};
|
|
248
|
+
### Use Design Tokens from `src/index.css`
|
|
249
|
+
|
|
250
|
+
Use the shared `--ac-*` custom properties defined in:
|
|
251
|
+
|
|
252
|
+
- `src/index.css`
|
|
253
|
+
|
|
254
|
+
Examples:
|
|
255
|
+
|
|
256
|
+
- `--ac-primary`
|
|
257
|
+
- `--ac-foreground`
|
|
258
|
+
- `--ac-border`
|
|
259
|
+
- `--ac-radius-md`
|
|
260
|
+
- `--ac-space-3`
|
|
261
|
+
- `--ac-transition-fast`
|
|
262
|
+
|
|
263
|
+
Do not hardcode values that should come from the token system unless the value is truly component-specific.
|
|
264
|
+
|
|
265
|
+
### Style State Through `data-*` Attributes
|
|
266
|
+
|
|
267
|
+
Base UI exposes state through attributes such as:
|
|
268
|
+
|
|
269
|
+
- `[data-checked]`
|
|
270
|
+
- `[data-disabled]`
|
|
271
|
+
- `[data-panel-open]`
|
|
272
|
+
|
|
273
|
+
Use those attributes as the primary styling contract.
|
|
274
|
+
|
|
275
|
+
Example:
|
|
276
|
+
|
|
277
|
+
```css
|
|
278
|
+
.root[data-checked] {
|
|
279
|
+
background-color: var(--ac-primary);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.root[data-disabled] {
|
|
283
|
+
opacity: 0.5;
|
|
284
|
+
cursor: not-allowed;
|
|
285
|
+
}
|
|
298
286
|
```
|
|
299
287
|
|
|
300
|
-
|
|
288
|
+
Current examples:
|
|
301
289
|
|
|
302
|
-
|
|
290
|
+
- `src/components/ui/switch.module.css`
|
|
291
|
+
- `src/components/ui/accordion.module.css`
|
|
292
|
+
- `src/components/ui/button.module.css`
|
|
303
293
|
|
|
304
|
-
|
|
305
|
-
# Features
|
|
306
|
-
feat: add new Button component with variants
|
|
307
|
-
feat(input): add password visibility toggle
|
|
294
|
+
### Guard Hover Styles with Pointer-Capable Media Queries
|
|
308
295
|
|
|
309
|
-
|
|
310
|
-
fix: resolve accessibility issue in Dialog component
|
|
311
|
-
fix(button): prevent double-click on async actions
|
|
296
|
+
Hover styles should be wrapped in:
|
|
312
297
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
298
|
+
```css
|
|
299
|
+
@media (hover: hover) {
|
|
300
|
+
.root:hover {
|
|
301
|
+
/* hover styles */
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
```
|
|
316
305
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
306
|
+
This matches the current package styling approach and avoids misleading hover behavior on touch-first devices.
|
|
307
|
+
|
|
308
|
+
### Use `color-mix(in oklch, ...)` for Dynamic Color Treatments
|
|
309
|
+
|
|
310
|
+
When deriving hover or softened surfaces from tokens, prefer:
|
|
311
|
+
|
|
312
|
+
```css
|
|
313
|
+
background-color: color-mix(in oklch, var(--ac-primary), transparent 10%);
|
|
320
314
|
```
|
|
321
315
|
|
|
316
|
+
This is already used in the package and keeps color transformations consistent with the OKLCH token system.
|
|
317
|
+
|
|
318
|
+
### Keep Styles Scoped
|
|
319
|
+
|
|
320
|
+
- use local class names from the module
|
|
321
|
+
- avoid global selectors unless there is a strong package-level need
|
|
322
|
+
- avoid introducing resets in component CSS
|
|
323
|
+
- keep structure and state selectors easy to read
|
|
324
|
+
|
|
322
325
|
---
|
|
323
326
|
|
|
324
|
-
##
|
|
327
|
+
## Testing Requirements
|
|
328
|
+
|
|
329
|
+
Every component must include a colocated `*.test.tsx` file.
|
|
330
|
+
|
|
331
|
+
Minimum required coverage for each component:
|
|
332
|
+
|
|
333
|
+
1. **Smoke test**
|
|
334
|
+
Confirms the component renders without crashing.
|
|
325
335
|
|
|
326
|
-
|
|
336
|
+
2. **Ref forwarding test**
|
|
337
|
+
Confirms refs reach the expected DOM node when the component supports refs.
|
|
327
338
|
|
|
328
|
-
|
|
339
|
+
3. **`className` merge test**
|
|
340
|
+
Confirms custom classes are preserved alongside default module styling.
|
|
329
341
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
- **You could be next!** 🌟
|
|
342
|
+
4. **State change or interaction test**
|
|
343
|
+
Confirms the component updates correctly for clicks, keyboard input, open/closed state, checked state, or other interactive behavior.
|
|
333
344
|
|
|
334
|
-
|
|
345
|
+
5. **Accessibility test**
|
|
346
|
+
Confirms expected roles, labels, ARIA attributes, and accessible naming.
|
|
335
347
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
-
|
|
348
|
+
Reference tests in the current codebase:
|
|
349
|
+
|
|
350
|
+
- `src/components/ui/input.test.tsx`
|
|
351
|
+
- `src/components/ui/switch.test.tsx`
|
|
352
|
+
- `src/components/ui/button.test.tsx`
|
|
353
|
+
|
|
354
|
+
### Testing Stack
|
|
355
|
+
|
|
356
|
+
- Vitest
|
|
357
|
+
- `@testing-library/react`
|
|
358
|
+
- `@testing-library/jest-dom`
|
|
359
|
+
- `@testing-library/user-event` for interactions
|
|
360
|
+
|
|
361
|
+
### Testing Guidance
|
|
362
|
+
|
|
363
|
+
- prefer role-based queries
|
|
364
|
+
- verify accessible names
|
|
365
|
+
- cover keyboard behavior for interactive controls
|
|
366
|
+
- assert state attributes such as `aria-checked` or `data-disabled`
|
|
367
|
+
- keep tests focused on public behavior rather than internal implementation details
|
|
339
368
|
|
|
340
369
|
---
|
|
341
370
|
|
|
342
|
-
##
|
|
371
|
+
## Accessibility Expectations
|
|
343
372
|
|
|
344
|
-
|
|
373
|
+
Accessibility is a release requirement, not a follow-up task.
|
|
345
374
|
|
|
346
|
-
|
|
347
|
-
- 🐛 **GitHub Issues** - Report bugs and request features
|
|
348
|
-
- 📧 **Email** - [admin@arolariu.ro](mailto:admin@arolariu.ro) for private matters
|
|
375
|
+
When contributing a component:
|
|
349
376
|
|
|
350
|
-
|
|
377
|
+
- use the appropriate Base UI primitive when available
|
|
378
|
+
- preserve keyboard interaction
|
|
379
|
+
- preserve focus visibility
|
|
380
|
+
- preserve or improve ARIA semantics
|
|
381
|
+
- verify labels, roles, and descriptions in tests
|
|
351
382
|
|
|
352
|
-
|
|
353
|
-
- 🎨 **[Tailwind CSS Docs](https://tailwindcss.com/docs)**
|
|
354
|
-
- ♿ **[WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/)**
|
|
355
|
-
- 📚 **[Storybook Documentation](https://storybook.js.org/docs)**
|
|
383
|
+
If a component is presentational only, it should still avoid introducing inaccessible structure or misleading semantics.
|
|
356
384
|
|
|
357
385
|
---
|
|
358
386
|
|
|
359
|
-
|
|
387
|
+
## Styling and Naming Conventions
|
|
388
|
+
|
|
389
|
+
### File Naming
|
|
390
|
+
|
|
391
|
+
Use lowercase kebab-case:
|
|
392
|
+
|
|
393
|
+
- `button.tsx`
|
|
394
|
+
- `button.module.css`
|
|
395
|
+
- `button.test.tsx`
|
|
396
|
+
|
|
397
|
+
### CSS Class Naming
|
|
398
|
+
|
|
399
|
+
Prefer simple, local names that match the component structure:
|
|
360
400
|
|
|
361
|
-
|
|
401
|
+
- `root`
|
|
402
|
+
- `trigger`
|
|
403
|
+
- `thumb`
|
|
404
|
+
- `panel`
|
|
405
|
+
- `icon`
|
|
406
|
+
- `content`
|
|
362
407
|
|
|
363
|
-
|
|
408
|
+
Use variant or size names only when they represent real styling branches:
|
|
364
409
|
|
|
365
|
-
|
|
410
|
+
- `default`
|
|
411
|
+
- `destructive`
|
|
412
|
+
- `outline`
|
|
413
|
+
- `sizeSm`
|
|
414
|
+
- `sizeLg`
|
|
415
|
+
|
|
416
|
+
### Export Naming
|
|
417
|
+
|
|
418
|
+
- component names use PascalCase
|
|
419
|
+
- exported prop and state types use PascalCase
|
|
420
|
+
- colocated helpers should have clear names such as `buttonVariants`
|
|
366
421
|
|
|
367
422
|
---
|
|
368
423
|
|
|
369
|
-
|
|
424
|
+
## Pull Request Checklist
|
|
425
|
+
|
|
426
|
+
Before opening a pull request, verify that you have:
|
|
427
|
+
|
|
428
|
+
- [ ] followed the Base UI + CSS Modules architecture
|
|
429
|
+
- [ ] added or updated JSDoc for public APIs
|
|
430
|
+
- [ ] added `component.test.tsx`
|
|
431
|
+
- [ ] covered smoke, ref, className, interaction, and accessibility cases
|
|
432
|
+
- [ ] used `--ac-*` tokens from `src/index.css`
|
|
433
|
+
- [ ] styled component states with `data-*` attributes where applicable
|
|
434
|
+
- [ ] wrapped hover styles in `@media (hover: hover)`
|
|
435
|
+
- [ ] used `color-mix(in oklch, ...)` when deriving dynamic colors
|
|
436
|
+
- [ ] exported the component from `src/index.ts`
|
|
437
|
+
- [ ] confirmed the package builds and tests pass
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## Need Help?
|
|
442
|
+
|
|
443
|
+
If you are unsure how to structure a contribution:
|
|
444
|
+
|
|
445
|
+
1. start by reviewing an existing component with similar behavior
|
|
446
|
+
2. follow the patterns in `button.tsx`, `input.tsx`, or `switch.tsx`
|
|
447
|
+
3. keep the implementation small and well-documented
|
|
448
|
+
4. open a draft pull request early if you want feedback
|
|
370
449
|
|
|
371
|
-
|
|
450
|
+
Thank you for helping keep `@arolariu/components` consistent, accessible, and maintainable.
|