@masaraxui/react 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/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/components/accordion/accordion.d.ts +30 -0
- package/dist/components/accordion/accordion.js +191 -0
- package/dist/components/accordion/index.d.ts +25 -0
- package/dist/components/accordion/index.js +18 -0
- package/dist/components/alert/alert.d.ts +15 -0
- package/dist/components/alert/alert.js +152 -0
- package/dist/components/alert/index.d.ts +21 -0
- package/dist/components/alert/index.js +16 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +65 -0
- package/dist/components/alert-dialog/alert-dialog.js +309 -0
- package/dist/components/alert-dialog/index.d.ts +33 -0
- package/dist/components/alert-dialog/index.js +22 -0
- package/dist/components/autocomplete/autocomplete.d.ts +31 -0
- package/dist/components/autocomplete/autocomplete.js +241 -0
- package/dist/components/autocomplete/index.d.ts +25 -0
- package/dist/components/autocomplete/index.js +18 -0
- package/dist/components/avatar/avatar.d.ts +15 -0
- package/dist/components/avatar/avatar.js +93 -0
- package/dist/components/avatar/index.d.ts +17 -0
- package/dist/components/avatar/index.js +14 -0
- package/dist/components/badge/badge.d.ts +19 -0
- package/dist/components/badge/badge.js +87 -0
- package/dist/components/badge/index.d.ts +17 -0
- package/dist/components/badge/index.js +14 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +14 -0
- package/dist/components/breadcrumbs/breadcrumbs.js +84 -0
- package/dist/components/breadcrumbs/index.d.ts +15 -0
- package/dist/components/breadcrumbs/index.js +13 -0
- package/dist/components/button/button.d.ts +10 -0
- package/dist/components/button/button.js +49 -0
- package/dist/components/button/index.d.ts +15 -0
- package/dist/components/button/index.js +13 -0
- package/dist/components/button-group/button-group.d.ts +26 -0
- package/dist/components/button-group/button-group.js +82 -0
- package/dist/components/button-group/index.d.ts +16 -0
- package/dist/components/button-group/index.js +14 -0
- package/dist/components/calendar/calendar.d.ts +71 -0
- package/dist/components/calendar/calendar.js +283 -0
- package/dist/components/calendar/index.d.ts +91 -0
- package/dist/components/calendar/index.js +29 -0
- package/dist/components/calendar-year-picker/calendar-year-picker.d.ts +61 -0
- package/dist/components/calendar-year-picker/calendar-year-picker.js +411 -0
- package/dist/components/calendar-year-picker/index.d.ts +43 -0
- package/dist/components/calendar-year-picker/index.js +18 -0
- package/dist/components/calendar-year-picker/year-picker-context.d.ts +28 -0
- package/dist/components/calendar-year-picker/year-picker-context.js +39 -0
- package/dist/components/card/card.d.ts +22 -0
- package/dist/components/card/card.js +141 -0
- package/dist/components/card/index.d.ts +23 -0
- package/dist/components/card/index.js +17 -0
- package/dist/components/checkbox/checkbox.d.ts +22 -0
- package/dist/components/checkbox/checkbox.js +124 -0
- package/dist/components/checkbox/index.d.ts +19 -0
- package/dist/components/checkbox/index.js +15 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
- package/dist/components/checkbox-group/checkbox-group.js +33 -0
- package/dist/components/checkbox-group/index.d.ts +3 -0
- package/dist/components/checkbox-group/index.js +3 -0
- package/dist/components/chip/chip.d.ts +14 -0
- package/dist/components/chip/chip.js +67 -0
- package/dist/components/chip/index.d.ts +15 -0
- package/dist/components/chip/index.js +13 -0
- package/dist/components/close-button/close-button.d.ts +8 -0
- package/dist/components/close-button/close-button.js +33 -0
- package/dist/components/close-button/index.d.ts +13 -0
- package/dist/components/close-button/index.js +12 -0
- package/dist/components/color-area/color-area.d.ts +11 -0
- package/dist/components/color-area/color-area.js +70 -0
- package/dist/components/color-area/index.d.ts +15 -0
- package/dist/components/color-area/index.js +13 -0
- package/dist/components/color-field/color-field.d.ts +9 -0
- package/dist/components/color-field/color-field.js +29 -0
- package/dist/components/color-field/index.d.ts +22 -0
- package/dist/components/color-field/index.js +18 -0
- package/dist/components/color-input-group/color-input-group.d.ts +19 -0
- package/dist/components/color-input-group/color-input-group.js +98 -0
- package/dist/components/color-input-group/index.d.ts +19 -0
- package/dist/components/color-input-group/index.js +15 -0
- package/dist/components/color-picker/color-picker.d.ts +21 -0
- package/dist/components/color-picker/color-picker.js +86 -0
- package/dist/components/color-picker/index.d.ts +17 -0
- package/dist/components/color-picker/index.js +14 -0
- package/dist/components/color-slider/color-slider.d.ts +50 -0
- package/dist/components/color-slider/color-slider.js +205 -0
- package/dist/components/color-slider/index.d.ts +19 -0
- package/dist/components/color-slider/index.js +15 -0
- package/dist/components/color-swatch/color-swatch.d.ts +8 -0
- package/dist/components/color-swatch/color-swatch.js +31 -0
- package/dist/components/color-swatch/index.d.ts +13 -0
- package/dist/components/color-swatch/index.js +12 -0
- package/dist/components/color-swatch-picker/color-swatch-picker.d.ts +20 -0
- package/dist/components/color-swatch-picker/color-swatch-picker.js +149 -0
- package/dist/components/color-swatch-picker/index.d.ts +19 -0
- package/dist/components/color-swatch-picker/index.js +15 -0
- package/dist/components/combo-box/combo-box.d.ts +34 -0
- package/dist/components/combo-box/combo-box.js +116 -0
- package/dist/components/combo-box/index.d.ts +20 -0
- package/dist/components/combo-box/index.js +16 -0
- package/dist/components/date-field/date-field.d.ts +9 -0
- package/dist/components/date-field/date-field.js +29 -0
- package/dist/components/date-field/index.d.ts +26 -0
- package/dist/components/date-field/index.js +20 -0
- package/dist/components/date-input-group/date-input-group.d.ts +25 -0
- package/dist/components/date-input-group/date-input-group.js +146 -0
- package/dist/components/date-input-group/index.d.ts +23 -0
- package/dist/components/date-input-group/index.js +17 -0
- package/dist/components/date-picker/date-picker.d.ts +30 -0
- package/dist/components/date-picker/date-picker.js +151 -0
- package/dist/components/date-picker/index.d.ts +31 -0
- package/dist/components/date-picker/index.js +15 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +36 -0
- package/dist/components/date-range-picker/date-range-picker.js +173 -0
- package/dist/components/date-range-picker/index.d.ts +36 -0
- package/dist/components/date-range-picker/index.js +16 -0
- package/dist/components/description/description.d.ts +9 -0
- package/dist/components/description/description.js +22 -0
- package/dist/components/description/index.d.ts +13 -0
- package/dist/components/description/index.js +12 -0
- package/dist/components/disclosure/disclosure.d.ts +27 -0
- package/dist/components/disclosure/disclosure.js +157 -0
- package/dist/components/disclosure/index.d.ts +23 -0
- package/dist/components/disclosure/index.js +17 -0
- package/dist/components/disclosure-group/disclosure-group.d.ts +8 -0
- package/dist/components/disclosure-group/disclosure-group.js +35 -0
- package/dist/components/disclosure-group/index.d.ts +15 -0
- package/dist/components/disclosure-group/index.js +13 -0
- package/dist/components/disclosure-group/use-disclosure-group-navigation.d.ts +14 -0
- package/dist/components/disclosure-group/use-disclosure-group-navigation.js +51 -0
- package/dist/components/drawer/drawer.d.ts +84 -0
- package/dist/components/drawer/drawer.js +439 -0
- package/dist/components/drawer/index.d.ts +69 -0
- package/dist/components/drawer/index.js +22 -0
- package/dist/components/dropdown/dropdown.d.ts +38 -0
- package/dist/components/dropdown/dropdown.js +156 -0
- package/dist/components/dropdown/index.d.ts +29 -0
- package/dist/components/dropdown/index.js +20 -0
- package/dist/components/empty-state/empty-state.d.ts +7 -0
- package/dist/components/empty-state/empty-state.js +20 -0
- package/dist/components/empty-state/index.d.ts +13 -0
- package/dist/components/empty-state/index.js +12 -0
- package/dist/components/error-message/error-message.d.ts +9 -0
- package/dist/components/error-message/error-message.js +22 -0
- package/dist/components/error-message/index.d.ts +13 -0
- package/dist/components/error-message/index.js +12 -0
- package/dist/components/field-error/field-error.d.ts +8 -0
- package/dist/components/field-error/field-error.js +21 -0
- package/dist/components/field-error/index.d.ts +13 -0
- package/dist/components/field-error/index.js +12 -0
- package/dist/components/fieldset/fieldset.d.ts +16 -0
- package/dist/components/fieldset/fieldset.js +88 -0
- package/dist/components/fieldset/index.d.ts +19 -0
- package/dist/components/fieldset/index.js +15 -0
- package/dist/components/form/form.d.ts +7 -0
- package/dist/components/form/form.js +13 -0
- package/dist/components/form/index.d.ts +11 -0
- package/dist/components/form/index.js +11 -0
- package/dist/components/header/header.d.ts +7 -0
- package/dist/components/header/header.js +21 -0
- package/dist/components/header/index.d.ts +9 -0
- package/dist/components/header/index.js +10 -0
- package/dist/components/icons.d.ts +18 -0
- package/dist/components/icons.js +243 -0
- package/dist/components/index.d.ts +84 -0
- package/dist/components/input/index.d.ts +13 -0
- package/dist/components/input/index.js +12 -0
- package/dist/components/input/input.d.ts +8 -0
- package/dist/components/input/input.js +31 -0
- package/dist/components/input-group/index.d.ts +21 -0
- package/dist/components/input-group/index.js +16 -0
- package/dist/components/input-group/input-group.d.ts +20 -0
- package/dist/components/input-group/input-group.js +129 -0
- package/dist/components/input-otp/index.d.ts +22 -0
- package/dist/components/input-otp/index.js +21 -0
- package/dist/components/input-otp/input-otp.d.ts +26 -0
- package/dist/components/input-otp/input-otp.js +139 -0
- package/dist/components/kbd/index.d.ts +19 -0
- package/dist/components/kbd/index.js +15 -0
- package/dist/components/kbd/kbd.constants.d.ts +3 -0
- package/dist/components/kbd/kbd.constants.js +51 -0
- package/dist/components/kbd/kbd.d.ts +24 -0
- package/dist/components/kbd/kbd.js +76 -0
- package/dist/components/label/index.d.ts +13 -0
- package/dist/components/label/index.js +12 -0
- package/dist/components/label/label.d.ts +8 -0
- package/dist/components/label/label.js +27 -0
- package/dist/components/link/index.d.ts +15 -0
- package/dist/components/link/index.js +13 -0
- package/dist/components/link/link.d.ts +10 -0
- package/dist/components/link/link.js +59 -0
- package/dist/components/list-box/index.d.ts +23 -0
- package/dist/components/list-box/index.js +18 -0
- package/dist/components/list-box/list-box.d.ts +9 -0
- package/dist/components/list-box/list-box.js +23 -0
- package/dist/components/list-box-item/index.d.ts +15 -0
- package/dist/components/list-box-item/index.js +13 -0
- package/dist/components/list-box-item/list-box-item.d.ts +15 -0
- package/dist/components/list-box-item/list-box-item.js +77 -0
- package/dist/components/list-box-section/index.d.ts +10 -0
- package/dist/components/list-box-section/index.js +10 -0
- package/dist/components/list-box-section/list-box-section.d.ts +8 -0
- package/dist/components/list-box-section/list-box-section.js +22 -0
- package/dist/components/menu/index.d.ts +24 -0
- package/dist/components/menu/index.js +18 -0
- package/dist/components/menu/menu.d.ts +9 -0
- package/dist/components/menu/menu.js +20 -0
- package/dist/components/menu-item/index.d.ts +17 -0
- package/dist/components/menu-item/index.js +14 -0
- package/dist/components/menu-item/menu-item.d.ts +20 -0
- package/dist/components/menu-item/menu-item.js +123 -0
- package/dist/components/menu-section/index.d.ts +10 -0
- package/dist/components/menu-section/index.js +10 -0
- package/dist/components/menu-section/menu-section.d.ts +8 -0
- package/dist/components/menu-section/menu-section.js +22 -0
- package/dist/components/meter/index.d.ts +34 -0
- package/dist/components/meter/index.js +15 -0
- package/dist/components/meter/meter.d.ts +29 -0
- package/dist/components/meter/meter.js +108 -0
- package/dist/components/modal/index.d.ts +33 -0
- package/dist/components/modal/index.js +22 -0
- package/dist/components/modal/modal.d.ts +53 -0
- package/dist/components/modal/modal.js +288 -0
- package/dist/components/number-field/index.d.ts +21 -0
- package/dist/components/number-field/index.js +16 -0
- package/dist/components/number-field/number-field.d.ts +20 -0
- package/dist/components/number-field/number-field.js +127 -0
- package/dist/components/pagination/index.d.ts +64 -0
- package/dist/components/pagination/index.js +21 -0
- package/dist/components/pagination/pagination.d.ts +84 -0
- package/dist/components/pagination/pagination.js +230 -0
- package/dist/components/popover/index.d.ts +23 -0
- package/dist/components/popover/index.js +17 -0
- package/dist/components/popover/popover.d.ts +24 -0
- package/dist/components/popover/popover.js +153 -0
- package/dist/components/progress-bar/index.d.ts +34 -0
- package/dist/components/progress-bar/index.js +15 -0
- package/dist/components/progress-bar/progress-bar.d.ts +29 -0
- package/dist/components/progress-bar/progress-bar.js +108 -0
- package/dist/components/progress-circle/index.d.ts +34 -0
- package/dist/components/progress-circle/index.js +15 -0
- package/dist/components/progress-circle/progress-circle.d.ts +29 -0
- package/dist/components/progress-circle/progress-circle.js +126 -0
- package/dist/components/rac/components.d.ts +1 -0
- package/dist/components/rac/index.d.ts +5 -0
- package/dist/components/rac/index.js +3 -0
- package/dist/components/rac/types.d.ts +3 -0
- package/dist/components/rac/utils.d.ts +1 -0
- package/dist/components/radio/index.d.ts +19 -0
- package/dist/components/radio/index.js +15 -0
- package/dist/components/radio/radio.d.ts +21 -0
- package/dist/components/radio/radio.js +97 -0
- package/dist/components/radio-group/index.d.ts +13 -0
- package/dist/components/radio-group/index.js +12 -0
- package/dist/components/radio-group/radio-group.d.ts +8 -0
- package/dist/components/radio-group/radio-group.js +27 -0
- package/dist/components/range-calendar/index.d.ts +91 -0
- package/dist/components/range-calendar/index.js +29 -0
- package/dist/components/range-calendar/range-calendar.d.ts +71 -0
- package/dist/components/range-calendar/range-calendar.js +298 -0
- package/dist/components/scroll-shadow/index.d.ts +21 -0
- package/dist/components/scroll-shadow/index.js +13 -0
- package/dist/components/scroll-shadow/scroll-shadow.d.ts +32 -0
- package/dist/components/scroll-shadow/scroll-shadow.js +76 -0
- package/dist/components/scroll-shadow/use-scroll-shadow.d.ts +11 -0
- package/dist/components/scroll-shadow/use-scroll-shadow.js +121 -0
- package/dist/components/search-field/index.d.ts +21 -0
- package/dist/components/search-field/index.js +16 -0
- package/dist/components/search-field/search-field.d.ts +23 -0
- package/dist/components/search-field/search-field.js +127 -0
- package/dist/components/select/index.d.ts +21 -0
- package/dist/components/select/index.js +16 -0
- package/dist/components/select/select.d.ts +24 -0
- package/dist/components/select/select.js +140 -0
- package/dist/components/separator/index.d.ts +13 -0
- package/dist/components/separator/index.js +12 -0
- package/dist/components/separator/separator.d.ts +8 -0
- package/dist/components/separator/separator.js +27 -0
- package/dist/components/skeleton/index.d.ts +13 -0
- package/dist/components/skeleton/index.js +12 -0
- package/dist/components/skeleton/skeleton.d.ts +7 -0
- package/dist/components/skeleton/skeleton.js +25 -0
- package/dist/components/slider/index.d.ts +23 -0
- package/dist/components/slider/index.js +17 -0
- package/dist/components/slider/slider.d.ts +23 -0
- package/dist/components/slider/slider.js +177 -0
- package/dist/components/spinner/index.d.ts +13 -0
- package/dist/components/spinner/index.js +12 -0
- package/dist/components/spinner/spinner.d.ts +7 -0
- package/dist/components/spinner/spinner.js +88 -0
- package/dist/components/surface/index.d.ts +14 -0
- package/dist/components/surface/index.js +13 -0
- package/dist/components/surface/surface.d.ts +12 -0
- package/dist/components/surface/surface.js +34 -0
- package/dist/components/switch/index.d.ts +21 -0
- package/dist/components/switch/index.js +16 -0
- package/dist/components/switch/switch.d.ts +20 -0
- package/dist/components/switch/switch.js +118 -0
- package/dist/components/switch-group/index.d.ts +13 -0
- package/dist/components/switch-group/index.js +12 -0
- package/dist/components/switch-group/switch-group.d.ts +7 -0
- package/dist/components/switch-group/switch-group.js +25 -0
- package/dist/components/table/index.d.ts +38 -0
- package/dist/components/table/index.js +25 -0
- package/dist/components/table/table.d.ts +50 -0
- package/dist/components/table/table.js +283 -0
- package/dist/components/tabs/index.d.ts +25 -0
- package/dist/components/tabs/index.js +18 -0
- package/dist/components/tabs/tabs.d.ts +37 -0
- package/dist/components/tabs/tabs.js +156 -0
- package/dist/components/tag/index.d.ts +15 -0
- package/dist/components/tag/index.js +13 -0
- package/dist/components/tag/tag.d.ts +14 -0
- package/dist/components/tag/tag.js +85 -0
- package/dist/components/tag-group/index.d.ts +15 -0
- package/dist/components/tag-group/index.js +14 -0
- package/dist/components/tag-group/tag-group.d.ts +20 -0
- package/dist/components/tag-group/tag-group.js +59 -0
- package/dist/components/text/index.d.ts +13 -0
- package/dist/components/text/index.js +12 -0
- package/dist/components/text/text.d.ts +8 -0
- package/dist/components/text/text.js +25 -0
- package/dist/components/textarea/index.d.ts +13 -0
- package/dist/components/textarea/index.js +12 -0
- package/dist/components/textarea/textarea.d.ts +8 -0
- package/dist/components/textarea/textarea.js +27 -0
- package/dist/components/textfield/index.d.ts +14 -0
- package/dist/components/textfield/index.js +13 -0
- package/dist/components/textfield/textfield.d.ts +18 -0
- package/dist/components/textfield/textfield.js +39 -0
- package/dist/components/time-field/index.d.ts +26 -0
- package/dist/components/time-field/index.js +20 -0
- package/dist/components/time-field/time-field.d.ts +9 -0
- package/dist/components/time-field/time-field.js +29 -0
- package/dist/components/toast/constants.d.ts +6 -0
- package/dist/components/toast/constants.js +15 -0
- package/dist/components/toast/index.d.ts +75 -0
- package/dist/components/toast/index.js +23 -0
- package/dist/components/toast/toast-queue.d.ts +70 -0
- package/dist/components/toast/toast-queue.js +147 -0
- package/dist/components/toast/toast.d.ts +69 -0
- package/dist/components/toast/toast.js +365 -0
- package/dist/components/toggle-button/index.d.ts +13 -0
- package/dist/components/toggle-button/index.js +12 -0
- package/dist/components/toggle-button/toggle-button.d.ts +8 -0
- package/dist/components/toggle-button/toggle-button.js +36 -0
- package/dist/components/toggle-button-group/index.d.ts +16 -0
- package/dist/components/toggle-button-group/index.js +14 -0
- package/dist/components/toggle-button-group/toggle-button-group.d.ts +25 -0
- package/dist/components/toggle-button-group/toggle-button-group.js +70 -0
- package/dist/components/toolbar/index.d.ts +19 -0
- package/dist/components/toolbar/index.js +12 -0
- package/dist/components/toolbar/toolbar.d.ts +11 -0
- package/dist/components/toolbar/toolbar.js +39 -0
- package/dist/components/tooltip/index.d.ts +19 -0
- package/dist/components/tooltip/index.js +15 -0
- package/dist/components/tooltip/tooltip.d.ts +20 -0
- package/dist/components/tooltip/tooltip.js +106 -0
- package/dist/hooks/index.d.ts +9 -0
- package/dist/hooks/use-css-variable.d.ts +36 -0
- package/dist/hooks/use-css-variable.js +72 -0
- package/dist/hooks/use-is-hydrated.d.ts +19 -0
- package/dist/hooks/use-is-hydrated.js +28 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/hooks/use-isomorphic-layout-effect.js +6 -0
- package/dist/hooks/use-list-data.d.ts +111 -0
- package/dist/hooks/use-list-data.js +296 -0
- package/dist/hooks/use-measured-height.d.ts +4 -0
- package/dist/hooks/use-measured-height.js +47 -0
- package/dist/hooks/use-media-query.d.ts +6 -0
- package/dist/hooks/use-media-query.js +50 -0
- package/dist/hooks/use-mounted.d.ts +1 -0
- package/dist/hooks/use-mounted.js +15 -0
- package/dist/hooks/use-overlay-state.d.ts +52 -0
- package/dist/hooks/use-overlay-state.js +70 -0
- package/dist/hooks/use-safe-layout-effect.d.ts +2 -0
- package/dist/hooks/use-safe-layout-effect.js +6 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +190 -0
- package/dist/prerelease.d.ts +4 -0
- package/dist/prerelease.js +50 -0
- package/dist/styles.css +2 -0
- package/dist/utils/assertion.d.ts +9 -0
- package/dist/utils/assertion.js +3 -0
- package/dist/utils/calendar.d.ts +12 -0
- package/dist/utils/calendar.js +52 -0
- package/dist/utils/children.d.ts +9 -0
- package/dist/utils/children.js +17 -0
- package/dist/utils/compose.d.ts +7 -0
- package/dist/utils/compose.js +18 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/logger.d.ts +23 -0
- package/dist/utils/logger.js +78 -0
- package/dist/utils/tv.d.ts +3 -0
- package/dist/utils/variants.d.ts +73 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +5 -0
- package/package.json +406 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { toggleButtonVariants } from '@masaraxui/styles';
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
import { ToggleButton } from 'react-aria-components';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { ToggleButtonGroupContext } from '../toggle-button-group/toggle-button-group.js';
|
|
7
|
+
import { composeTwRenderProps } from '../../utils/compose.js';
|
|
8
|
+
|
|
9
|
+
const ToggleButtonRoot = ({
|
|
10
|
+
children,
|
|
11
|
+
className,
|
|
12
|
+
isIconOnly,
|
|
13
|
+
size,
|
|
14
|
+
style,
|
|
15
|
+
variant,
|
|
16
|
+
...rest
|
|
17
|
+
}) => {
|
|
18
|
+
const groupContext = useContext(ToggleButtonGroupContext);
|
|
19
|
+
|
|
20
|
+
// Merge props with precedence: direct props > context props
|
|
21
|
+
const finalSize = size ?? groupContext?.size;
|
|
22
|
+
const styles = toggleButtonVariants({
|
|
23
|
+
isIconOnly,
|
|
24
|
+
size: finalSize,
|
|
25
|
+
variant
|
|
26
|
+
});
|
|
27
|
+
return /*#__PURE__*/jsx(ToggleButton, {
|
|
28
|
+
className: composeTwRenderProps(className, styles),
|
|
29
|
+
"data-slot": "toggle-button",
|
|
30
|
+
style: style,
|
|
31
|
+
...rest,
|
|
32
|
+
children: renderProps => typeof children === "function" ? children(renderProps) : children
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export { ToggleButtonRoot };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { ToggleButtonGroupRoot, ToggleButtonGroupSeparator } from "./toggle-button-group";
|
|
3
|
+
export declare const ToggleButtonGroup: (({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: import("./toggle-button-group").ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
4
|
+
Root: ({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: import("./toggle-button-group").ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
Separator: ({ className, ...props }: import("./toggle-button-group").ToggleButtonGroupSeparatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
};
|
|
7
|
+
export type ToggleButtonGroup = {
|
|
8
|
+
Props: ComponentProps<typeof ToggleButtonGroupRoot>;
|
|
9
|
+
RootProps: ComponentProps<typeof ToggleButtonGroupRoot>;
|
|
10
|
+
SeparatorProps: ComponentProps<typeof ToggleButtonGroupSeparator>;
|
|
11
|
+
};
|
|
12
|
+
export { ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
|
|
13
|
+
export type { ToggleButtonGroupRootProps, ToggleButtonGroupRootProps as ToggleButtonGroupProps, ToggleButtonGroupSeparatorProps, } from "./toggle-button-group";
|
|
14
|
+
export { ToggleButtonGroupContext, TOGGLE_BUTTON_GROUP_CHILD } from "./toggle-button-group";
|
|
15
|
+
export { toggleButtonGroupVariants } from "@masaraxui/styles";
|
|
16
|
+
export type { ToggleButtonGroupVariants } from "@masaraxui/styles";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { ToggleButtonGroupRoot, ToggleButtonGroupSeparator } from './toggle-button-group.js';
|
|
3
|
+
export { TOGGLE_BUTTON_GROUP_CHILD, ToggleButtonGroupContext } from './toggle-button-group.js';
|
|
4
|
+
export { toggleButtonGroupVariants } from '@masaraxui/styles';
|
|
5
|
+
|
|
6
|
+
/* -------------------------------------------------------------------------------------------------
|
|
7
|
+
* Compound Component
|
|
8
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
9
|
+
const ToggleButtonGroup = Object.assign(ToggleButtonGroupRoot, {
|
|
10
|
+
Root: ToggleButtonGroupRoot,
|
|
11
|
+
Separator: ToggleButtonGroupSeparator
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export { ToggleButtonGroup, ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ToggleButtonGroupVariants, ToggleButtonVariants } from "@masaraxui/styles";
|
|
2
|
+
import type { ComponentPropsWithRef } from "react";
|
|
3
|
+
import { toggleButtonGroupVariants } from "@masaraxui/styles";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { ToggleButtonGroup as ToggleButtonGroupPrimitive } from "react-aria-components";
|
|
6
|
+
type ToggleButtonGroupContext = {
|
|
7
|
+
slots?: ReturnType<typeof toggleButtonGroupVariants>;
|
|
8
|
+
size?: ToggleButtonVariants["size"];
|
|
9
|
+
isDisabled?: boolean;
|
|
10
|
+
};
|
|
11
|
+
declare const ToggleButtonGroupContext: React.Context<ToggleButtonGroupContext>;
|
|
12
|
+
export declare const TOGGLE_BUTTON_GROUP_CHILD = "__toggle_button_group_child";
|
|
13
|
+
interface ToggleButtonGroupRootProps extends ComponentPropsWithRef<typeof ToggleButtonGroupPrimitive>, ToggleButtonGroupVariants {
|
|
14
|
+
/** Size to propagate to all child ToggleButtons */
|
|
15
|
+
size?: ToggleButtonVariants["size"];
|
|
16
|
+
/** Whether the group buttons are visually separated (detached) instead of connected */
|
|
17
|
+
isDetached?: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const ToggleButtonGroupRoot: ({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
interface ToggleButtonGroupSeparatorProps extends ComponentPropsWithRef<"span"> {
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
declare const ToggleButtonGroupSeparator: ({ className, ...props }: ToggleButtonGroupSeparatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export { ToggleButtonGroupRoot, ToggleButtonGroupSeparator, ToggleButtonGroupContext };
|
|
25
|
+
export type { ToggleButtonGroupRootProps, ToggleButtonGroupSeparatorProps };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { toggleButtonGroupVariants } from '@masaraxui/styles';
|
|
3
|
+
import React__default, { createContext, useContext } from 'react';
|
|
4
|
+
import { useSlottedContext, ToggleButtonGroupContext as ToggleButtonGroupContext$1, ToggleButtonGroup } from 'react-aria-components';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
|
|
7
|
+
|
|
8
|
+
const ToggleButtonGroupContext = /*#__PURE__*/createContext({});
|
|
9
|
+
|
|
10
|
+
// Property name to mark direct children of ToggleButtonGroup
|
|
11
|
+
const TOGGLE_BUTTON_GROUP_CHILD = "__toggle_button_group_child";
|
|
12
|
+
|
|
13
|
+
/* -------------------------------------------------------------------------------------------------
|
|
14
|
+
* ToggleButtonGroup Root
|
|
15
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
16
|
+
|
|
17
|
+
const ToggleButtonGroupRoot = ({
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
fullWidth,
|
|
21
|
+
isDetached = false,
|
|
22
|
+
isDisabled,
|
|
23
|
+
orientation: orientationProp,
|
|
24
|
+
size,
|
|
25
|
+
...rest
|
|
26
|
+
}) => {
|
|
27
|
+
const racContext = useSlottedContext(ToggleButtonGroupContext$1);
|
|
28
|
+
const orientation = orientationProp ?? racContext?.orientation ?? "horizontal";
|
|
29
|
+
const slots = React__default.useMemo(() => toggleButtonGroupVariants({
|
|
30
|
+
fullWidth,
|
|
31
|
+
isDetached,
|
|
32
|
+
orientation
|
|
33
|
+
}), [fullWidth, isDetached, orientation]);
|
|
34
|
+
return /*#__PURE__*/jsx(ToggleButtonGroupContext, {
|
|
35
|
+
value: {
|
|
36
|
+
slots,
|
|
37
|
+
size,
|
|
38
|
+
isDisabled
|
|
39
|
+
},
|
|
40
|
+
children: /*#__PURE__*/jsx(ToggleButtonGroup, {
|
|
41
|
+
className: composeTwRenderProps(className, slots.base()),
|
|
42
|
+
"data-slot": "toggle-button-group",
|
|
43
|
+
isDisabled: isDisabled,
|
|
44
|
+
orientation: orientation,
|
|
45
|
+
...rest,
|
|
46
|
+
children: children
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/* -------------------------------------------------------------------------------------------------
|
|
52
|
+
* ToggleButtonGroup Separator
|
|
53
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
54
|
+
|
|
55
|
+
const ToggleButtonGroupSeparator = ({
|
|
56
|
+
className,
|
|
57
|
+
...props
|
|
58
|
+
}) => {
|
|
59
|
+
const {
|
|
60
|
+
slots
|
|
61
|
+
} = useContext(ToggleButtonGroupContext);
|
|
62
|
+
return /*#__PURE__*/jsx("span", {
|
|
63
|
+
"aria-hidden": "true",
|
|
64
|
+
className: composeSlotClassName(slots?.separator, className),
|
|
65
|
+
"data-slot": "toggle-button-group-separator",
|
|
66
|
+
...props
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { TOGGLE_BUTTON_GROUP_CHILD, ToggleButtonGroupContext, ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { ToolbarRoot } from "./toolbar";
|
|
3
|
+
export declare const Toolbar: {
|
|
4
|
+
({ children, className, isAttached, orientation, ...props }: import("./toolbar").ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
} & {
|
|
7
|
+
Root: {
|
|
8
|
+
({ children, className, isAttached, orientation, ...props }: import("./toolbar").ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type Toolbar = {
|
|
13
|
+
Props: ComponentProps<typeof ToolbarRoot>;
|
|
14
|
+
RootProps: ComponentProps<typeof ToolbarRoot>;
|
|
15
|
+
};
|
|
16
|
+
export { ToolbarRoot } from "./toolbar";
|
|
17
|
+
export type { ToolbarRootProps, ToolbarRootProps as ToolbarProps } from "./toolbar";
|
|
18
|
+
export { toolbarVariants } from "@masaraxui/styles";
|
|
19
|
+
export type { ToolbarVariants } from "@masaraxui/styles";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { ToolbarRoot } from './toolbar.js';
|
|
3
|
+
export { toolbarVariants } from '@masaraxui/styles';
|
|
4
|
+
|
|
5
|
+
/* -------------------------------------------------------------------------------------------------
|
|
6
|
+
* Compound Component
|
|
7
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
8
|
+
const Toolbar = Object.assign(ToolbarRoot, {
|
|
9
|
+
Root: ToolbarRoot
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export { Toolbar, ToolbarRoot };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolbarVariants } from "@masaraxui/styles";
|
|
2
|
+
import type { ComponentPropsWithRef } from "react";
|
|
3
|
+
import { Toolbar as ToolbarPrimitive } from "react-aria-components";
|
|
4
|
+
interface ToolbarRootProps extends ComponentPropsWithRef<typeof ToolbarPrimitive>, ToolbarVariants {
|
|
5
|
+
}
|
|
6
|
+
declare const ToolbarRoot: {
|
|
7
|
+
({ children, className, isAttached, orientation, ...props }: ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
export { ToolbarRoot };
|
|
11
|
+
export type { ToolbarRootProps };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { toolbarVariants } from '@masaraxui/styles';
|
|
3
|
+
import React__default from 'react';
|
|
4
|
+
import { ToggleButtonGroupContext, SeparatorContext, Toolbar } from 'react-aria-components';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { composeTwRenderProps } from '../../utils/compose.js';
|
|
7
|
+
|
|
8
|
+
const ToolbarRoot = ({
|
|
9
|
+
children,
|
|
10
|
+
className,
|
|
11
|
+
isAttached,
|
|
12
|
+
orientation = "horizontal",
|
|
13
|
+
...props
|
|
14
|
+
}) => {
|
|
15
|
+
const styles = React__default.useMemo(() => toolbarVariants({
|
|
16
|
+
isAttached,
|
|
17
|
+
orientation
|
|
18
|
+
}), [isAttached, orientation]);
|
|
19
|
+
return /*#__PURE__*/jsx(ToggleButtonGroupContext.Provider, {
|
|
20
|
+
value: {
|
|
21
|
+
orientation
|
|
22
|
+
},
|
|
23
|
+
children: /*#__PURE__*/jsx(SeparatorContext.Provider, {
|
|
24
|
+
value: {
|
|
25
|
+
orientation: orientation === "horizontal" ? "vertical" : "horizontal"
|
|
26
|
+
},
|
|
27
|
+
children: /*#__PURE__*/jsx(Toolbar, {
|
|
28
|
+
className: composeTwRenderProps(className, styles),
|
|
29
|
+
"data-slot": "toolbar",
|
|
30
|
+
orientation: orientation,
|
|
31
|
+
...props,
|
|
32
|
+
children: children
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
ToolbarRoot.displayName = "MasaraxUI.Toolbar";
|
|
38
|
+
|
|
39
|
+
export { ToolbarRoot };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger } from "./tooltip";
|
|
3
|
+
export declare const Tooltip: (({ children, ...props }: import("react").ComponentPropsWithRef<typeof import("react-aria-components").TooltipTrigger>) => import("react/jsx-runtime").JSX.Element) & {
|
|
4
|
+
Root: ({ children, ...props }: import("react").ComponentPropsWithRef<typeof import("react-aria-components").TooltipTrigger>) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
Trigger: ({ children, className, ...props }: import("./tooltip").TooltipTriggerProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
Content: ({ children, className, offset: offsetProp, showArrow, ...props }: import("./tooltip").TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
Arrow: ({ children, className, ...props }: import("./tooltip").TooltipArrowProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
};
|
|
9
|
+
export type Tooltip = {
|
|
10
|
+
Props: ComponentProps<typeof TooltipRoot>;
|
|
11
|
+
RootProps: ComponentProps<typeof TooltipRoot>;
|
|
12
|
+
TriggerProps: ComponentProps<typeof TooltipTrigger>;
|
|
13
|
+
ContentProps: ComponentProps<typeof TooltipContent>;
|
|
14
|
+
ArrowProps: ComponentProps<typeof TooltipArrow>;
|
|
15
|
+
};
|
|
16
|
+
export { TooltipRoot, TooltipTrigger, TooltipContent, TooltipArrow };
|
|
17
|
+
export type { TooltipRootProps, TooltipRootProps as TooltipProps, TooltipArrowProps, TooltipContentProps, TooltipTriggerProps, } from "./tooltip";
|
|
18
|
+
export { tooltipVariants } from "@masaraxui/styles";
|
|
19
|
+
export type { TooltipVariants } from "@masaraxui/styles";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { TooltipRoot, TooltipArrow, TooltipContent, TooltipTrigger } from './tooltip.js';
|
|
3
|
+
export { tooltipVariants } from '@masaraxui/styles';
|
|
4
|
+
|
|
5
|
+
/* -------------------------------------------------------------------------------------------------
|
|
6
|
+
* Compound Component
|
|
7
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
8
|
+
const Tooltip = Object.assign(TooltipRoot, {
|
|
9
|
+
Root: TooltipRoot,
|
|
10
|
+
Trigger: TooltipTrigger,
|
|
11
|
+
Content: TooltipContent,
|
|
12
|
+
Arrow: TooltipArrow
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export { Tooltip, TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TooltipVariants } from "@masaraxui/styles";
|
|
2
|
+
import type { ComponentPropsWithRef } from "react";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { OverlayArrow, Tooltip as TooltipPrimitive, TooltipTrigger as TooltipTriggerPrimitive } from "react-aria-components";
|
|
5
|
+
type TooltipRootProps = ComponentPropsWithRef<typeof TooltipTriggerPrimitive>;
|
|
6
|
+
declare const TooltipRoot: ({ children, ...props }: ComponentPropsWithRef<typeof TooltipTriggerPrimitive>) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
interface TooltipContentProps extends Omit<ComponentPropsWithRef<typeof TooltipPrimitive>, "children">, TooltipVariants {
|
|
8
|
+
showArrow?: boolean;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
declare const TooltipContent: ({ children, className, offset: offsetProp, showArrow, ...props }: TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
type TooltipArrowProps = Omit<ComponentPropsWithRef<typeof OverlayArrow>, "children"> & {
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
};
|
|
15
|
+
declare const TooltipArrow: ({ children, className, ...props }: TooltipArrowProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
interface TooltipTriggerProps extends ComponentPropsWithRef<"div"> {
|
|
17
|
+
}
|
|
18
|
+
declare const TooltipTrigger: ({ children, className, ...props }: TooltipTriggerProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export { TooltipRoot, TooltipTrigger, TooltipContent, TooltipArrow };
|
|
20
|
+
export type { TooltipRootProps, TooltipArrowProps, TooltipContentProps, TooltipTriggerProps };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { tooltipVariants } from '@masaraxui/styles';
|
|
3
|
+
import React__default, { createContext, useContext } from 'react';
|
|
4
|
+
import { TooltipTrigger as TooltipTrigger$1, OverlayArrow, Tooltip, Focusable } from 'react-aria-components';
|
|
5
|
+
import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
const TooltipContext = /*#__PURE__*/createContext({});
|
|
9
|
+
|
|
10
|
+
/* -------------------------------------------------------------------------------------------------
|
|
11
|
+
* Tooltip Root
|
|
12
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
13
|
+
|
|
14
|
+
const TooltipRoot = ({
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
}) => {
|
|
18
|
+
const slots = React__default.useMemo(() => tooltipVariants(), []);
|
|
19
|
+
return /*#__PURE__*/jsx(TooltipContext, {
|
|
20
|
+
value: {
|
|
21
|
+
slots
|
|
22
|
+
},
|
|
23
|
+
children: /*#__PURE__*/jsx(TooltipTrigger$1, {
|
|
24
|
+
"data-slot": "tooltip-root",
|
|
25
|
+
...props,
|
|
26
|
+
children: children
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/* -------------------------------------------------------------------------------------------------
|
|
32
|
+
* Tooltip Content
|
|
33
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
34
|
+
|
|
35
|
+
const TooltipContent = ({
|
|
36
|
+
children,
|
|
37
|
+
className,
|
|
38
|
+
offset: offsetProp,
|
|
39
|
+
showArrow = false,
|
|
40
|
+
...props
|
|
41
|
+
}) => {
|
|
42
|
+
const {
|
|
43
|
+
slots
|
|
44
|
+
} = useContext(TooltipContext);
|
|
45
|
+
const offset = offsetProp ? offsetProp : showArrow ? 7 : 3;
|
|
46
|
+
return /*#__PURE__*/jsx(Tooltip, {
|
|
47
|
+
...props,
|
|
48
|
+
className: composeTwRenderProps(className, slots?.base()),
|
|
49
|
+
offset: offset,
|
|
50
|
+
children: children
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/* -------------------------------------------------------------------------------------------------
|
|
55
|
+
* Tooltip Arrow
|
|
56
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
57
|
+
|
|
58
|
+
const TooltipArrow = ({
|
|
59
|
+
children,
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}) => {
|
|
63
|
+
const defaultArrow = /*#__PURE__*/jsx("svg", {
|
|
64
|
+
"data-slot": "overlay-arrow",
|
|
65
|
+
height: 12,
|
|
66
|
+
viewBox: "0 0 12 12",
|
|
67
|
+
width: 12,
|
|
68
|
+
children: /*#__PURE__*/jsx("path", {
|
|
69
|
+
d: "M0 0 Q6 9 12 0"
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
const arrow = /*#__PURE__*/React__default.isValidElement(children) ? /*#__PURE__*/React__default.cloneElement(children, {
|
|
73
|
+
"data-slot": "overlay-arrow"
|
|
74
|
+
}) : defaultArrow;
|
|
75
|
+
return /*#__PURE__*/jsx(OverlayArrow, {
|
|
76
|
+
"data-slot": "tooltip-arrow",
|
|
77
|
+
...props,
|
|
78
|
+
className: className,
|
|
79
|
+
children: arrow
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/* -------------------------------------------------------------------------------------------------
|
|
84
|
+
* Tooltip Trigger
|
|
85
|
+
* -----------------------------------------------------------------------------------------------*/
|
|
86
|
+
|
|
87
|
+
const TooltipTrigger = ({
|
|
88
|
+
children,
|
|
89
|
+
className,
|
|
90
|
+
...props
|
|
91
|
+
}) => {
|
|
92
|
+
const {
|
|
93
|
+
slots
|
|
94
|
+
} = useContext(TooltipContext);
|
|
95
|
+
return /*#__PURE__*/jsx(Focusable, {
|
|
96
|
+
children: /*#__PURE__*/jsx("div", {
|
|
97
|
+
className: composeSlotClassName(slots?.trigger, className),
|
|
98
|
+
"data-slot": "tooltip-trigger",
|
|
99
|
+
role: "button",
|
|
100
|
+
...props,
|
|
101
|
+
children: children
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./use-css-variable";
|
|
2
|
+
export * from "./use-is-hydrated";
|
|
3
|
+
export * from "./use-list-data";
|
|
4
|
+
export * from "./use-measured-height";
|
|
5
|
+
export * from "./use-mounted";
|
|
6
|
+
export * from "./use-overlay-state";
|
|
7
|
+
export * from "./use-safe-layout-effect";
|
|
8
|
+
export * from "./use-isomorphic-layout-effect";
|
|
9
|
+
export * from "./use-media-query";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A hook that safely retrieves CSS custom property values from the document element
|
|
3
|
+
* with SSR support, automatic fallback handling, and optional caching.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```jsx
|
|
7
|
+
* function Component() {
|
|
8
|
+
* const animationType = useCSSVariable('--skeleton-animation')
|
|
9
|
+
* // Returns the CSS variable value or undefined (cached by default)
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```jsx
|
|
15
|
+
* function Component({ color }) {
|
|
16
|
+
* // Override with prop if provided
|
|
17
|
+
* const themeColor = useCSSVariable('--theme-color', color)
|
|
18
|
+
* // Returns color prop if defined, otherwise CSS variable value
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```jsx
|
|
24
|
+
* function Component() {
|
|
25
|
+
* // Disable caching for dynamic CSS variables
|
|
26
|
+
* const dynamicValue = useCSSVariable('--dynamic-value', undefined, false)
|
|
27
|
+
* // Will always query the DOM for fresh value
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @param variableName - The CSS custom property name (e.g., '--my-variable')
|
|
32
|
+
* @param override - Optional override value that takes precedence over CSS variable
|
|
33
|
+
* @param cache - Whether to cache the CSS variable value (default: true)
|
|
34
|
+
* @returns The CSS variable value, override value, or undefined
|
|
35
|
+
*/
|
|
36
|
+
export declare function useCSSVariable(variableName: string, override?: string, cache?: boolean): string | undefined;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { useIsSSR } from '@react-aria/ssr';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
// Cache for CSS variable values to avoid repeated DOM queries
|
|
6
|
+
const cssVariableCache = new Map();
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A hook that safely retrieves CSS custom property values from the document element
|
|
10
|
+
* with SSR support, automatic fallback handling, and optional caching.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```jsx
|
|
14
|
+
* function Component() {
|
|
15
|
+
* const animationType = useCSSVariable('--skeleton-animation')
|
|
16
|
+
* // Returns the CSS variable value or undefined (cached by default)
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```jsx
|
|
22
|
+
* function Component({ color }) {
|
|
23
|
+
* // Override with prop if provided
|
|
24
|
+
* const themeColor = useCSSVariable('--theme-color', color)
|
|
25
|
+
* // Returns color prop if defined, otherwise CSS variable value
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```jsx
|
|
31
|
+
* function Component() {
|
|
32
|
+
* // Disable caching for dynamic CSS variables
|
|
33
|
+
* const dynamicValue = useCSSVariable('--dynamic-value', undefined, false)
|
|
34
|
+
* // Will always query the DOM for fresh value
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @param variableName - The CSS custom property name (e.g., '--my-variable')
|
|
39
|
+
* @param override - Optional override value that takes precedence over CSS variable
|
|
40
|
+
* @param cache - Whether to cache the CSS variable value (default: true)
|
|
41
|
+
* @returns The CSS variable value, override value, or undefined
|
|
42
|
+
*/
|
|
43
|
+
function useCSSVariable(variableName, override, cache = true) {
|
|
44
|
+
const isSSR = useIsSSR();
|
|
45
|
+
return React.useMemo(() => {
|
|
46
|
+
// Return override if provided
|
|
47
|
+
if (override !== undefined) return override;
|
|
48
|
+
|
|
49
|
+
// Return undefined during SSR
|
|
50
|
+
if (isSSR) return undefined;
|
|
51
|
+
|
|
52
|
+
// Check cache first if caching is enabled
|
|
53
|
+
if (cache && cssVariableCache.has(variableName)) {
|
|
54
|
+
return cssVariableCache.get(variableName);
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const root = document.documentElement;
|
|
58
|
+
const value = getComputedStyle(root).getPropertyValue(variableName).trim() || undefined;
|
|
59
|
+
|
|
60
|
+
// Cache the value if caching is enabled
|
|
61
|
+
if (cache) {
|
|
62
|
+
cssVariableCache.set(variableName, value);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
} catch {
|
|
66
|
+
// Return undefined if any error occurs (e.g., document not available)
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}, [variableName, override, isSSR, cache]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export { useCSSVariable };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A hook that returns true if the component is mounted on the client (hydrated)
|
|
3
|
+
* and false when rendering on the server.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```jsx
|
|
7
|
+
* function Component() {
|
|
8
|
+
* const isHydrated = useIsHydrated()
|
|
9
|
+
*
|
|
10
|
+
* if (!isHydrated) {
|
|
11
|
+
* return <div>Loading...</div>
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* return <div>Client rendered content</div>
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
* @returns boolean indicating if the component is hydrated
|
|
18
|
+
*/
|
|
19
|
+
export declare function useIsHydrated(): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A hook that returns true if the component is mounted on the client (hydrated)
|
|
6
|
+
* and false when rendering on the server.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```jsx
|
|
10
|
+
* function Component() {
|
|
11
|
+
* const isHydrated = useIsHydrated()
|
|
12
|
+
*
|
|
13
|
+
* if (!isHydrated) {
|
|
14
|
+
* return <div>Loading...</div>
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* return <div>Client rendered content</div>
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
* @returns boolean indicating if the component is hydrated
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function useIsHydrated() {
|
|
24
|
+
const subscribe = () => () => {};
|
|
25
|
+
return React.useSyncExternalStore(subscribe, () => true, () => false);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { useIsHydrated };
|