@coze-arch/cli 0.0.10 → 0.0.11
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/lib/__templates__/expo/AGENTS.md +3 -3
- package/lib/__templates__/expo/README.md +3 -3
- package/lib/__templates__/expo/client/components/Provider.tsx +4 -1
- package/lib/__templates__/expo/client/components/Screen.tsx +4 -1
- package/lib/__templates__/expo/client/eslint.config.mjs +2 -0
- package/lib/__templates__/expo/client/global.css +1 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.animation.ts +178 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.constants.ts +62 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.md +437 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.styles.ts +95 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.tsx +340 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/accordion.types.ts +267 -0
- package/lib/__templates__/expo/client/heroui/components/accordion/index.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.constants.ts +13 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.hooks.ts +28 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.md +263 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.styles.ts +65 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.tsx +181 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.types.ts +99 -0
- package/lib/__templates__/expo/client/heroui/components/alert/alert.utils.tsx +25 -0
- package/lib/__templates__/expo/client/heroui/components/alert/default-icon.tsx +28 -0
- package/lib/__templates__/expo/client/heroui/components/alert/index.ts +15 -0
- package/lib/__templates__/expo/client/heroui/components/alert/success-icon.tsx +28 -0
- package/lib/__templates__/expo/client/heroui/components/alert/warning-icon.tsx +28 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.animation.ts +123 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.constants.ts +19 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.context.ts +11 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.md +386 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.styles.ts +145 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.tsx +307 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/avatar.types.ts +239 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/index.ts +13 -0
- package/lib/__templates__/expo/client/heroui/components/avatar/person-icon.tsx +23 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.animation.ts +42 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.constants.ts +13 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.md +349 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.styles.ts +66 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.tsx +351 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.types.ts +150 -0
- package/lib/__templates__/expo/client/heroui/components/bottom-sheet/index.ts +16 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.md +381 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.styles.ts +89 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.tsx +284 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.types.ts +175 -0
- package/lib/__templates__/expo/client/heroui/components/button/button.utils.ts +34 -0
- package/lib/__templates__/expo/client/heroui/components/button/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/card/card.constants.ts +11 -0
- package/lib/__templates__/expo/client/heroui/components/card/card.md +186 -0
- package/lib/__templates__/expo/client/heroui/components/card/card.styles.ts +35 -0
- package/lib/__templates__/expo/client/heroui/components/card/card.tsx +153 -0
- package/lib/__templates__/expo/client/heroui/components/card/card.types.ts +77 -0
- package/lib/__templates__/expo/client/heroui/components/card/index.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.animation.ts +202 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.md +311 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.styles.ts +105 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.tsx +251 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.types.ts +216 -0
- package/lib/__templates__/expo/client/heroui/components/checkbox/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.animation.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.md +190 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.styles.ts +234 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.tsx +125 -0
- package/lib/__templates__/expo/client/heroui/components/chip/chip.types.ts +69 -0
- package/lib/__templates__/expo/client/heroui/components/chip/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/close-button.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/close-button.md +109 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/close-button.styles.ts +13 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/close-button.tsx +57 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/close-button.types.ts +30 -0
- package/lib/__templates__/expo/client/heroui/components/close-button/index.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.animation.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.context.ts +14 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.md +241 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.styles.ts +15 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.tsx +245 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/control-field.types.ts +67 -0
- package/lib/__templates__/expo/client/heroui/components/control-field/index.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.animation.ts +53 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.constants.ts +30 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.md +129 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.styles.ts +25 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.tsx +81 -0
- package/lib/__templates__/expo/client/heroui/components/description/description.types.ts +77 -0
- package/lib/__templates__/expo/client/heroui/components/description/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.animation.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.constants.ts +13 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.md +288 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.styles.ts +77 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.tsx +379 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/dialog.types.ts +199 -0
- package/lib/__templates__/expo/client/heroui/components/dialog/index.ts +12 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.animation.ts +50 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.constants.ts +31 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.md +204 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.styles.ts +23 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.tsx +91 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/field-error.types.ts +79 -0
- package/lib/__templates__/expo/client/heroui/components/field-error/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/input/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/input/input.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/input/input.md +193 -0
- package/lib/__templates__/expo/client/heroui/components/input/input.styles.ts +51 -0
- package/lib/__templates__/expo/client/heroui/components/input/input.tsx +96 -0
- package/lib/__templates__/expo/client/heroui/components/input/input.types.ts +44 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.animation.ts +14 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.md +197 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.styles.ts +31 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.tsx +239 -0
- package/lib/__templates__/expo/client/heroui/components/input-group/input-group.types.ts +98 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.animation.ts +199 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.constants.ts +12 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.md +376 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.styles.ts +68 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.tsx +414 -0
- package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.types.ts +275 -0
- package/lib/__templates__/expo/client/heroui/components/label/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.animation.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.md +187 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.styles.ts +44 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.tsx +172 -0
- package/lib/__templates__/expo/client/heroui/components/label/label.types.ts +86 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/index.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/list-group.constants.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/list-group.md +387 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/list-group.styles.ts +40 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/list-group.tsx +206 -0
- package/lib/__templates__/expo/client/heroui/components/list-group/list-group.types.ts +132 -0
- package/lib/__templates__/expo/client/heroui/components/menu/index.ts +38 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.animation.ts +121 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.constants.ts +37 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.md +620 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.styles.ts +107 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.tsx +664 -0
- package/lib/__templates__/expo/client/heroui/components/menu/menu.types.ts +394 -0
- package/lib/__templates__/expo/client/heroui/components/popover/arrow-svg.tsx +180 -0
- package/lib/__templates__/expo/client/heroui/components/popover/index.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.animation.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.constants.ts +34 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.md +508 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.styles.ts +98 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.tsx +624 -0
- package/lib/__templates__/expo/client/heroui/components/popover/popover.types.ts +290 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.animation.ts +450 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.constants.ts +12 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.md +328 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.styles.ts +84 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.tsx +330 -0
- package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.types.ts +386 -0
- package/lib/__templates__/expo/client/heroui/components/radio/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.animation.ts +92 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.constants.ts +11 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.md +339 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.styles.ts +80 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.tsx +217 -0
- package/lib/__templates__/expo/client/heroui/components/radio/radio.types.ts +106 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.animation.ts +20 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.context.ts +14 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.md +273 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.styles.ts +15 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.tsx +220 -0
- package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.types.ts +64 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/index.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.animation.ts +132 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.constants.ts +21 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.md +206 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.styles.ts +52 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.tsx +262 -0
- package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.types.ts +121 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/index.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.animation.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.constants.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.md +231 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.styles.ts +35 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.tsx +253 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-field.types.ts +160 -0
- package/lib/__templates__/expo/client/heroui/components/search-field/search-icon.tsx +37 -0
- package/lib/__templates__/expo/client/heroui/components/select/index.ts +28 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.animation.ts +92 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.constants.ts +53 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.md +796 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.styles.ts +149 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.tsx +828 -0
- package/lib/__templates__/expo/client/heroui/components/select/select.types.ts +438 -0
- package/lib/__templates__/expo/client/heroui/components/separator/index.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/separator/separator.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/separator/separator.md +106 -0
- package/lib/__templates__/expo/client/heroui/components/separator/separator.styles.ts +50 -0
- package/lib/__templates__/expo/client/heroui/components/separator/separator.tsx +62 -0
- package/lib/__templates__/expo/client/heroui/components/separator/separator.types.ts +40 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/index.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/linear-gradient.tsx +45 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.animation.ts +351 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.constants.ts +39 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.md +208 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.styles.ts +49 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.tsx +183 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.types.ts +191 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/index.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.constants.ts +7 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.md +247 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.styles.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.tsx +94 -0
- package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.types.ts +28 -0
- package/lib/__templates__/expo/client/heroui/components/slider/index.ts +23 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.animation.ts +87 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.constants.ts +24 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.md +348 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.styles.ts +85 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.tsx +413 -0
- package/lib/__templates__/expo/client/heroui/components/slider/slider.types.ts +120 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/index.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner-icon.tsx +49 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.animation.ts +150 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.constants.ts +36 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.md +199 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.styles.ts +44 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.tsx +198 -0
- package/lib/__templates__/expo/client/heroui/components/spinner/spinner.types.ts +158 -0
- package/lib/__templates__/expo/client/heroui/components/surface/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.animation.ts +18 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.md +136 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.styles.ts +28 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.tsx +66 -0
- package/lib/__templates__/expo/client/heroui/components/surface/surface.types.ts +46 -0
- package/lib/__templates__/expo/client/heroui/components/switch/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.animation.ts +243 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.constants.ts +26 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.md +334 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.styles.ts +83 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.tsx +280 -0
- package/lib/__templates__/expo/client/heroui/components/switch/switch.types.ts +208 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/index.ts +8 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.animation.ts +246 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.constants.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.context.ts +28 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.md +565 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.styles.ts +168 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.tsx +445 -0
- package/lib/__templates__/expo/client/heroui/components/tabs/tabs.types.ts +341 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/index.ts +15 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.animation.ts +17 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.constants.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.md +404 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.styles.ts +74 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.tsx +325 -0
- package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.types.ts +125 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/text-area.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/text-area.md +133 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/text-area.styles.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/text-area.tsx +44 -0
- package/lib/__templates__/expo/client/heroui/components/text-area/text-area.types.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.animation.ts +20 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.constants.ts +6 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.md +256 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.styles.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.tsx +82 -0
- package/lib/__templates__/expo/client/heroui/components/text-field/text-field.types.ts +56 -0
- package/lib/__templates__/expo/client/heroui/components/toast/index.ts +4 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.animation.ts +381 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.constants.ts +10 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.hooks.ts +73 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.md +420 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.styles.ts +89 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.tsx +472 -0
- package/lib/__templates__/expo/client/heroui/components/toast/toast.types.ts +320 -0
- package/lib/__templates__/expo/client/heroui/docs.md +47 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/hooks/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-is-on-surface.ts +8 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-theme-color.ts +137 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/utils/cn.ts +12 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/index.ts +2395 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/types.ts +212 -0
- package/lib/__templates__/expo/client/heroui/helpers/external/utils/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/animated-check-icon.tsx +78 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content-container.tsx +97 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content.tsx +158 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/check-icon.tsx +28 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-down-icon.tsx +28 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-right-icon.tsx +29 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/close-icon.tsx +29 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/full-window-overlay.tsx +48 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/hero-text.tsx +71 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/components/index.ts +9 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/animation-settings-context.ts +19 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/bottom-sheet-is-dragging-context.ts +11 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/form-field-context.ts +36 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/index.ts +14 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-augmented-ref.ts +32 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-aware-handlers.ts +94 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-gesture-handlers.ts +52 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-combined-animation-disabled-state.ts +49 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-controllable-state.ts +124 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-dev-info.ts +38 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-keyboard-status.ts +22 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-bottom-sheet-content-animation.ts +67 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-dialog-content-animation.ts +296 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-overlay-animation.ts +91 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-popover-content-animation.ts +199 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-root-animation.ts +26 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-relative-position.ts +353 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-resolved-style-property.ts +118 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/animation.ts +131 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/bottom-sheet.ts +99 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/index.ts +5 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/misc.ts +10 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/primitives.ts +146 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/types/theme.ts +18 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/animation.ts +266 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/children-to-string.ts +117 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/combine-styles.ts +17 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/create-context.ts +60 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/create-interpolation.ts +35 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/index.ts +97 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-by-display-name.ts +15 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-with-default.ts +17 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/has-prop.ts +18 -0
- package/lib/__templates__/expo/client/heroui/helpers/internal/utils/index.ts +8 -0
- package/lib/__templates__/expo/client/heroui/index.tsx +51 -0
- package/lib/__templates__/expo/client/heroui/primitives/README.md +27 -0
- package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.tsx +270 -0
- package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.types.ts +117 -0
- package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.utils.ts +12 -0
- package/lib/__templates__/expo/client/heroui/primitives/accordion/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.tsx +50 -0
- package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.types.ts +24 -0
- package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/alert/alert.tsx +124 -0
- package/lib/__templates__/expo/client/heroui/primitives/alert/alert.types.ts +87 -0
- package/lib/__templates__/expo/client/heroui/primitives/alert/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.tsx +171 -0
- package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.types.ts +62 -0
- package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.utils.ts +102 -0
- package/lib/__templates__/expo/client/heroui/primitives/avatar/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.tsx +235 -0
- package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.types.ts +127 -0
- package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.tsx +119 -0
- package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.types.ts +37 -0
- package/lib/__templates__/expo/client/heroui/primitives/checkbox/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.tsx +274 -0
- package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.types.ts +129 -0
- package/lib/__templates__/expo/client/heroui/primitives/dialog/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/input-otp/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.tsx +431 -0
- package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.types.ts +169 -0
- package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.utils.ts +31 -0
- package/lib/__templates__/expo/client/heroui/primitives/label/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/label/label.tsx +24 -0
- package/lib/__templates__/expo/client/heroui/primitives/label/label.types.ts +39 -0
- package/lib/__templates__/expo/client/heroui/primitives/menu/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/menu/menu.tsx +765 -0
- package/lib/__templates__/expo/client/heroui/primitives/menu/menu.types.ts +401 -0
- package/lib/__templates__/expo/client/heroui/primitives/popover/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/popover/popover.tsx +382 -0
- package/lib/__templates__/expo/client/heroui/primitives/popover/popover.types.ts +201 -0
- package/lib/__templates__/expo/client/heroui/primitives/portal/index.ts +1 -0
- package/lib/__templates__/expo/client/heroui/primitives/portal/portal.tsx +126 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio/radio.tsx +133 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio/radio.types.ts +47 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio-group/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.tsx +114 -0
- package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.types.ts +65 -0
- package/lib/__templates__/expo/client/heroui/primitives/select/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/select/select.tsx +705 -0
- package/lib/__templates__/expo/client/heroui/primitives/select/select.types.ts +409 -0
- package/lib/__templates__/expo/client/heroui/primitives/select/select.utils.ts +35 -0
- package/lib/__templates__/expo/client/heroui/primitives/slider/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/primitives/slider/slider.tsx +464 -0
- package/lib/__templates__/expo/client/heroui/primitives/slider/slider.types.ts +208 -0
- package/lib/__templates__/expo/client/heroui/primitives/slider/slider.utils.ts +93 -0
- package/lib/__templates__/expo/client/heroui/primitives/slot/index.ts +1 -0
- package/lib/__templates__/expo/client/heroui/primitives/slot/slot.tsx +122 -0
- package/lib/__templates__/expo/client/heroui/primitives/slot/types.ts +19 -0
- package/lib/__templates__/expo/client/heroui/primitives/slot/utils.ts +96 -0
- package/lib/__templates__/expo/client/heroui/primitives/switch/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/switch/switch.tsx +61 -0
- package/lib/__templates__/expo/client/heroui/primitives/switch/switch.types.ts +55 -0
- package/lib/__templates__/expo/client/heroui/primitives/tabs/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.tsx +202 -0
- package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.types.ts +77 -0
- package/lib/__templates__/expo/client/heroui/primitives/tag-group/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.tsx +324 -0
- package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.types.ts +119 -0
- package/lib/__templates__/expo/client/heroui/primitives/toast/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/primitives/toast/toast.tsx +138 -0
- package/lib/__templates__/expo/client/heroui/primitives/toast/toast.types.ts +86 -0
- package/lib/__templates__/expo/client/heroui/providers/animation-settings/index.ts +8 -0
- package/lib/__templates__/expo/client/heroui/providers/animation-settings/provider.tsx +47 -0
- package/lib/__templates__/expo/client/heroui/providers/animation-settings/types.ts +27 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/provider.tsx +67 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/types.ts +114 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/provider.tsx +50 -0
- package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/types.ts +39 -0
- package/lib/__templates__/expo/client/heroui/providers/text-component/index.ts +2 -0
- package/lib/__templates__/expo/client/heroui/providers/text-component/provider.tsx +9 -0
- package/lib/__templates__/expo/client/heroui/providers/text-component/types.ts +52 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/index.ts +3 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/insets-container.tsx +87 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/provider.tsx +431 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/reducer.ts +34 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/toast-config.context.ts +27 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/toast-item-renderer.tsx +45 -0
- package/lib/__templates__/expo/client/heroui/providers/toast/types.ts +373 -0
- package/lib/__templates__/expo/client/heroui/styles/index.css +3 -0
- package/lib/__templates__/expo/client/heroui/styles/theme.css +112 -0
- package/lib/__templates__/expo/client/heroui/styles/utilities.css +8 -0
- package/lib/__templates__/expo/client/heroui/styles/variables.css +146 -0
- package/lib/__templates__/expo/client/package.json +4 -1
- package/lib/__templates__/expo/package.json +1 -1
- package/lib/__templates__/expo/pnpm-lock.yaml +68 -0
- package/lib/__templates__/nextjs/AGENTS.md +6 -4
- package/lib/__templates__/nextjs/eslint.config.mjs +9 -0
- package/lib/__templates__/taro/.coze +2 -0
- package/lib/__templates__/taro/.cozeproj/scripts/pack.sh +1 -2
- package/lib/__templates__/taro/config/index.ts +1 -1
- package/lib/__templates__/taro/package.json +1 -0
- package/lib/__templates__/taro/project.config.json +1 -1
- package/lib/cli.js +246 -252
- package/package.json +3 -2
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
# Tabs
|
|
2
|
+
|
|
3
|
+
Organize content into tabbed views with animated transitions and indicators.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Tabs } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Tabs>
|
|
15
|
+
<Tabs.List>
|
|
16
|
+
<Tabs.ScrollView>
|
|
17
|
+
<Tabs.Indicator />
|
|
18
|
+
<Tabs.Trigger>
|
|
19
|
+
<Tabs.Label>...</Tabs.Label>
|
|
20
|
+
</Tabs.Trigger>
|
|
21
|
+
<Tabs.Separator />
|
|
22
|
+
<Tabs.Trigger>
|
|
23
|
+
<Tabs.Label>...</Tabs.Label>
|
|
24
|
+
</Tabs.Trigger>
|
|
25
|
+
</Tabs.ScrollView>
|
|
26
|
+
</Tabs.List>
|
|
27
|
+
<Tabs.Content>...</Tabs.Content>
|
|
28
|
+
</Tabs>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- **Tabs**: Main container that manages tab state and selection. Controls active tab, handles value changes, and provides context to child components.
|
|
32
|
+
- **Tabs.List**: Container for tab triggers. Groups triggers together with optional styling variants (primary or secondary).
|
|
33
|
+
- **Tabs.ScrollView**: Optional scrollable wrapper for tab triggers. Enables horizontal scrolling when tabs overflow with automatic centering of active tab.
|
|
34
|
+
- **Tabs.Trigger**: Interactive button for each tab. Handles press events to change active tab and measures its position for indicator animation.
|
|
35
|
+
- **Tabs.Label**: Text content for tab triggers. Displays the tab title with appropriate styling.
|
|
36
|
+
- **Tabs.Indicator**: Animated visual indicator for active tab. Smoothly transitions between tabs using spring or timing animations.
|
|
37
|
+
- **Tabs.Separator**: Visual separator between tabs. Shows when the current tab value is not in the `betweenValues` array, with animated opacity transitions.
|
|
38
|
+
- **Tabs.Content**: Container for tab panel content. Shows content when its value matches the active tab.
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
### Basic Usage
|
|
43
|
+
|
|
44
|
+
The Tabs component uses compound parts to create navigable content sections.
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<Tabs value="tab1" onValueChange={setActiveTab}>
|
|
48
|
+
<Tabs.List>
|
|
49
|
+
<Tabs.Indicator />
|
|
50
|
+
<Tabs.Trigger value="tab1">
|
|
51
|
+
<Tabs.Label>Tab 1</Tabs.Label>
|
|
52
|
+
</Tabs.Trigger>
|
|
53
|
+
<Tabs.Trigger value="tab2">
|
|
54
|
+
<Tabs.Label>Tab 2</Tabs.Label>
|
|
55
|
+
</Tabs.Trigger>
|
|
56
|
+
</Tabs.List>
|
|
57
|
+
<Tabs.Content value="tab1">...</Tabs.Content>
|
|
58
|
+
<Tabs.Content value="tab2">...</Tabs.Content>
|
|
59
|
+
</Tabs>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Primary Variant
|
|
63
|
+
|
|
64
|
+
Default rounded primary style for tab triggers.
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
<Tabs value={activeTab} onValueChange={setActiveTab} variant="primary">
|
|
68
|
+
<Tabs.List>
|
|
69
|
+
<Tabs.Indicator />
|
|
70
|
+
<Tabs.Trigger value="settings">
|
|
71
|
+
<Tabs.Label>Settings</Tabs.Label>
|
|
72
|
+
</Tabs.Trigger>
|
|
73
|
+
<Tabs.Trigger value="profile">
|
|
74
|
+
<Tabs.Label>Profile</Tabs.Label>
|
|
75
|
+
</Tabs.Trigger>
|
|
76
|
+
</Tabs.List>
|
|
77
|
+
<Tabs.Content value="settings">...</Tabs.Content>
|
|
78
|
+
<Tabs.Content value="profile">...</Tabs.Content>
|
|
79
|
+
</Tabs>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Secondary Variant
|
|
83
|
+
|
|
84
|
+
Underline style indicator for a more minimal appearance.
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
<Tabs value={activeTab} onValueChange={setActiveTab} variant="secondary">
|
|
88
|
+
<Tabs.List>
|
|
89
|
+
<Tabs.Indicator />
|
|
90
|
+
<Tabs.Trigger value="overview">
|
|
91
|
+
<Tabs.Label>Overview</Tabs.Label>
|
|
92
|
+
</Tabs.Trigger>
|
|
93
|
+
<Tabs.Trigger value="analytics">
|
|
94
|
+
<Tabs.Label>Analytics</Tabs.Label>
|
|
95
|
+
</Tabs.Trigger>
|
|
96
|
+
</Tabs.List>
|
|
97
|
+
<Tabs.Content value="overview">...</Tabs.Content>
|
|
98
|
+
<Tabs.Content value="analytics">...</Tabs.Content>
|
|
99
|
+
</Tabs>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Scrollable Tabs
|
|
103
|
+
|
|
104
|
+
Handle many tabs with horizontal scrolling.
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
108
|
+
<Tabs.List>
|
|
109
|
+
<Tabs.ScrollView scrollAlign="center">
|
|
110
|
+
<Tabs.Indicator />
|
|
111
|
+
<Tabs.Trigger value="tab1">
|
|
112
|
+
<Tabs.Label>First Tab</Tabs.Label>
|
|
113
|
+
</Tabs.Trigger>
|
|
114
|
+
<Tabs.Trigger value="tab2">
|
|
115
|
+
<Tabs.Label>Second Tab</Tabs.Label>
|
|
116
|
+
</Tabs.Trigger>
|
|
117
|
+
<Tabs.Trigger value="tab3">
|
|
118
|
+
<Tabs.Label>Third Tab</Tabs.Label>
|
|
119
|
+
</Tabs.Trigger>
|
|
120
|
+
<Tabs.Trigger value="tab4">
|
|
121
|
+
<Tabs.Label>Fourth Tab</Tabs.Label>
|
|
122
|
+
</Tabs.Trigger>
|
|
123
|
+
<Tabs.Trigger value="tab5">
|
|
124
|
+
<Tabs.Label>Fifth Tab</Tabs.Label>
|
|
125
|
+
</Tabs.Trigger>
|
|
126
|
+
</Tabs.ScrollView>
|
|
127
|
+
</Tabs.List>
|
|
128
|
+
<Tabs.Content value="tab1">...</Tabs.Content>
|
|
129
|
+
<Tabs.Content value="tab2">...</Tabs.Content>
|
|
130
|
+
<Tabs.Content value="tab3">...</Tabs.Content>
|
|
131
|
+
<Tabs.Content value="tab4">...</Tabs.Content>
|
|
132
|
+
<Tabs.Content value="tab5">...</Tabs.Content>
|
|
133
|
+
</Tabs>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Disabled Tabs
|
|
137
|
+
|
|
138
|
+
Disable specific tabs to prevent interaction.
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
142
|
+
<Tabs.List>
|
|
143
|
+
<Tabs.Indicator />
|
|
144
|
+
<Tabs.Trigger value="active">
|
|
145
|
+
<Tabs.Label>Active</Tabs.Label>
|
|
146
|
+
</Tabs.Trigger>
|
|
147
|
+
<Tabs.Trigger value="disabled" isDisabled>
|
|
148
|
+
<Tabs.Label>Disabled</Tabs.Label>
|
|
149
|
+
</Tabs.Trigger>
|
|
150
|
+
<Tabs.Trigger value="another">
|
|
151
|
+
<Tabs.Label>Another</Tabs.Label>
|
|
152
|
+
</Tabs.Trigger>
|
|
153
|
+
</Tabs.List>
|
|
154
|
+
<Tabs.Content value="active">...</Tabs.Content>
|
|
155
|
+
<Tabs.Content value="another">...</Tabs.Content>
|
|
156
|
+
</Tabs>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### With Icons
|
|
160
|
+
|
|
161
|
+
Combine icons with labels for enhanced visual context.
|
|
162
|
+
|
|
163
|
+
```tsx
|
|
164
|
+
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
165
|
+
<Tabs.List>
|
|
166
|
+
<Tabs.Indicator />
|
|
167
|
+
<Tabs.Trigger value="home">
|
|
168
|
+
<Icon name="home" size={16} />
|
|
169
|
+
<Tabs.Label>Home</Tabs.Label>
|
|
170
|
+
</Tabs.Trigger>
|
|
171
|
+
<Tabs.Trigger value="search">
|
|
172
|
+
<Icon name="search" size={16} />
|
|
173
|
+
<Tabs.Label>Search</Tabs.Label>
|
|
174
|
+
</Tabs.Trigger>
|
|
175
|
+
</Tabs.List>
|
|
176
|
+
<Tabs.Content value="home">...</Tabs.Content>
|
|
177
|
+
<Tabs.Content value="search">...</Tabs.Content>
|
|
178
|
+
</Tabs>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### With Render Function
|
|
182
|
+
|
|
183
|
+
Use a render function on `Tabs.Trigger` to access state and customize content based on selection.
|
|
184
|
+
|
|
185
|
+
```tsx
|
|
186
|
+
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
187
|
+
<Tabs.List>
|
|
188
|
+
<Tabs.Indicator />
|
|
189
|
+
<Tabs.Trigger value="settings">
|
|
190
|
+
{({ isSelected, value, isDisabled }) => (
|
|
191
|
+
<Tabs.Label
|
|
192
|
+
className={isSelected ? 'text-accent font-medium' : 'text-foreground'}
|
|
193
|
+
>
|
|
194
|
+
Settings
|
|
195
|
+
</Tabs.Label>
|
|
196
|
+
)}
|
|
197
|
+
</Tabs.Trigger>
|
|
198
|
+
<Tabs.Trigger value="profile">
|
|
199
|
+
{({ isSelected }) => (
|
|
200
|
+
<>
|
|
201
|
+
<Icon name="user" size={16} />
|
|
202
|
+
<Tabs.Label className={isSelected ? 'text-accent' : 'text-muted'}>
|
|
203
|
+
Profile
|
|
204
|
+
</Tabs.Label>
|
|
205
|
+
</>
|
|
206
|
+
)}
|
|
207
|
+
</Tabs.Trigger>
|
|
208
|
+
</Tabs.List>
|
|
209
|
+
<Tabs.Content value="settings">...</Tabs.Content>
|
|
210
|
+
<Tabs.Content value="profile">...</Tabs.Content>
|
|
211
|
+
</Tabs>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### With Separators
|
|
215
|
+
|
|
216
|
+
Add visual separators between tabs that show when the active tab is not between specified values.
|
|
217
|
+
|
|
218
|
+
```tsx
|
|
219
|
+
<Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
220
|
+
<Tabs.List>
|
|
221
|
+
<Tabs.ScrollView>
|
|
222
|
+
<Tabs.Indicator />
|
|
223
|
+
<Tabs.Trigger value="general">
|
|
224
|
+
<Tabs.Label>General</Tabs.Label>
|
|
225
|
+
</Tabs.Trigger>
|
|
226
|
+
<Tabs.Separator betweenValues={['general', 'notifications']} />
|
|
227
|
+
<Tabs.Trigger value="notifications">
|
|
228
|
+
<Tabs.Label>Notifications</Tabs.Label>
|
|
229
|
+
</Tabs.Trigger>
|
|
230
|
+
<Tabs.Separator betweenValues={['notifications', 'profile']} />
|
|
231
|
+
<Tabs.Trigger value="profile">
|
|
232
|
+
<Tabs.Label>Profile</Tabs.Label>
|
|
233
|
+
</Tabs.Trigger>
|
|
234
|
+
</Tabs.ScrollView>
|
|
235
|
+
</Tabs.List>
|
|
236
|
+
<Tabs.Content value="general">...</Tabs.Content>
|
|
237
|
+
<Tabs.Content value="notifications">...</Tabs.Content>
|
|
238
|
+
<Tabs.Content value="profile">...</Tabs.Content>
|
|
239
|
+
</Tabs>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Example
|
|
243
|
+
|
|
244
|
+
```tsx
|
|
245
|
+
import {
|
|
246
|
+
Button,
|
|
247
|
+
Checkbox,
|
|
248
|
+
Description,
|
|
249
|
+
ControlField,
|
|
250
|
+
Label,
|
|
251
|
+
Tabs,
|
|
252
|
+
TextField,
|
|
253
|
+
} from '@/heroui';
|
|
254
|
+
import { useState } from 'react';
|
|
255
|
+
import { View, Text } from 'react-native';
|
|
256
|
+
import Animated, {
|
|
257
|
+
FadeIn,
|
|
258
|
+
FadeOut,
|
|
259
|
+
LinearTransition,
|
|
260
|
+
} from 'react-native-reanimated';
|
|
261
|
+
|
|
262
|
+
const AnimatedContentContainer = ({
|
|
263
|
+
children,
|
|
264
|
+
}: {
|
|
265
|
+
children: React.ReactNode;
|
|
266
|
+
}) => (
|
|
267
|
+
<Animated.View
|
|
268
|
+
entering={FadeIn.duration(200)}
|
|
269
|
+
exiting={FadeOut.duration(200)}
|
|
270
|
+
className="gap-6"
|
|
271
|
+
>
|
|
272
|
+
{children}
|
|
273
|
+
</Animated.View>
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
export default function TabsExample() {
|
|
277
|
+
const [activeTab, setActiveTab] = useState('general');
|
|
278
|
+
|
|
279
|
+
const [showSidebar, setShowSidebar] = useState(true);
|
|
280
|
+
const [accountActivity, setAccountActivity] = useState(true);
|
|
281
|
+
const [name, setName] = useState('');
|
|
282
|
+
|
|
283
|
+
return (
|
|
284
|
+
<Tabs value={activeTab} onValueChange={setActiveTab} variant="primary">
|
|
285
|
+
<Tabs.List>
|
|
286
|
+
<Tabs.ScrollView>
|
|
287
|
+
<Tabs.Indicator />
|
|
288
|
+
<Tabs.Trigger value="general">
|
|
289
|
+
<Tabs.Label>General</Tabs.Label>
|
|
290
|
+
</Tabs.Trigger>
|
|
291
|
+
<Tabs.Trigger value="notifications">
|
|
292
|
+
<Tabs.Label>Notifications</Tabs.Label>
|
|
293
|
+
</Tabs.Trigger>
|
|
294
|
+
<Tabs.Trigger value="profile">
|
|
295
|
+
<Tabs.Label>Profile</Tabs.Label>
|
|
296
|
+
</Tabs.Trigger>
|
|
297
|
+
</Tabs.ScrollView>
|
|
298
|
+
</Tabs.List>
|
|
299
|
+
|
|
300
|
+
<Animated.View
|
|
301
|
+
layout={LinearTransition.duration(200)}
|
|
302
|
+
className="px-4 py-6 border border-border rounded-xl"
|
|
303
|
+
>
|
|
304
|
+
<Tabs.Content value="general">
|
|
305
|
+
<AnimatedContentContainer>
|
|
306
|
+
<ControlField
|
|
307
|
+
isSelected={showSidebar}
|
|
308
|
+
onSelectedChange={setShowSidebar}
|
|
309
|
+
>
|
|
310
|
+
<ControlField.Indicator variant="checkbox" />
|
|
311
|
+
<View className="flex-1">
|
|
312
|
+
<Label>Show sidebar</Label>
|
|
313
|
+
<Description>Display the sidebar navigation panel</Description>
|
|
314
|
+
</View>
|
|
315
|
+
</ControlField>
|
|
316
|
+
</AnimatedContentContainer>
|
|
317
|
+
</Tabs.Content>
|
|
318
|
+
|
|
319
|
+
<Tabs.Content value="notifications">
|
|
320
|
+
<AnimatedContentContainer>
|
|
321
|
+
<ControlField
|
|
322
|
+
isSelected={accountActivity}
|
|
323
|
+
onSelectedChange={setAccountActivity}
|
|
324
|
+
>
|
|
325
|
+
<ControlField.Indicator variant="checkbox" />
|
|
326
|
+
<View className="flex-1">
|
|
327
|
+
<Label>Account activity</Label>
|
|
328
|
+
<Description>
|
|
329
|
+
Notifications about your account activity
|
|
330
|
+
</Description>
|
|
331
|
+
</View>
|
|
332
|
+
</ControlField>
|
|
333
|
+
</AnimatedContentContainer>
|
|
334
|
+
</Tabs.Content>
|
|
335
|
+
|
|
336
|
+
<Tabs.Content value="profile">
|
|
337
|
+
<AnimatedContentContainer>
|
|
338
|
+
<TextField isRequired>
|
|
339
|
+
<Label>Name</Label>
|
|
340
|
+
<Input
|
|
341
|
+
value={name}
|
|
342
|
+
onChangeText={setName}
|
|
343
|
+
placeholder="Enter your full name"
|
|
344
|
+
/>
|
|
345
|
+
</TextField>
|
|
346
|
+
<Button size="sm" className="self-start">
|
|
347
|
+
<Button.Label>Update profile</Button.Label>
|
|
348
|
+
</Button>
|
|
349
|
+
</AnimatedContentContainer>
|
|
350
|
+
</Tabs.Content>
|
|
351
|
+
</Animated.View>
|
|
352
|
+
</Tabs>
|
|
353
|
+
);
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/tabs.tsx>).
|
|
358
|
+
|
|
359
|
+
## API Reference
|
|
360
|
+
|
|
361
|
+
### Tabs
|
|
362
|
+
|
|
363
|
+
| prop | type | default | description |
|
|
364
|
+
| --------------- | ---------------------------- | ----------- | ----------------------------------------------------------------------------------------- |
|
|
365
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside tabs |
|
|
366
|
+
| `value` | `string` | - | Currently active tab value |
|
|
367
|
+
| `variant` | `'primary' \| 'secondary'` | `'primary'` | Visual variant of the tabs |
|
|
368
|
+
| `className` | `string` | - | Additional CSS classes for the container |
|
|
369
|
+
| `animation` | `"disable-all" \| undefined` | `undefined` | Animation configuration. Use `"disable-all"` to disable all animations including children |
|
|
370
|
+
| `onValueChange` | `(value: string) => void` | - | Callback when the active tab changes |
|
|
371
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
372
|
+
|
|
373
|
+
### Tabs.List
|
|
374
|
+
|
|
375
|
+
| prop | type | default | description |
|
|
376
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
377
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the list |
|
|
378
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
379
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
380
|
+
|
|
381
|
+
### Tabs.ScrollView
|
|
382
|
+
|
|
383
|
+
| prop | type | default | description |
|
|
384
|
+
| --------------------------- | ---------------------------------------- | ---------- | -------------------------------------------------------- |
|
|
385
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the scroll view |
|
|
386
|
+
| `scrollAlign` | `'start' \| 'center' \| 'end' \| 'none'` | `'center'` | Scroll alignment variant for the selected item |
|
|
387
|
+
| `className` | `string` | - | Additional CSS classes for the scroll view |
|
|
388
|
+
| `contentContainerClassName` | `string` | - | Additional CSS classes for the content container |
|
|
389
|
+
| `...ScrollViewProps` | `ScrollViewProps` | - | All standard React Native ScrollView props are supported |
|
|
390
|
+
|
|
391
|
+
### Tabs.Trigger
|
|
392
|
+
|
|
393
|
+
| prop | type | default | description |
|
|
394
|
+
| ------------------- | ------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------- |
|
|
395
|
+
| `children` | `React.ReactNode \| ((props: TabsTriggerRenderProps) => React.ReactNode)` | - | Children elements to be rendered inside the trigger, or a render function |
|
|
396
|
+
| `value` | `string` | - | The unique value identifying this tab |
|
|
397
|
+
| `isDisabled` | `boolean` | `false` | Whether the trigger is disabled |
|
|
398
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
399
|
+
| `...PressableProps` | `PressableProps` | - | All standard React Native Pressable props are supported |
|
|
400
|
+
|
|
401
|
+
#### TabsTriggerRenderProps
|
|
402
|
+
|
|
403
|
+
When using a render function for `children`, the following props are provided:
|
|
404
|
+
|
|
405
|
+
| property | type | description |
|
|
406
|
+
| ------------ | --------- | ------------------------------------------ |
|
|
407
|
+
| `isSelected` | `boolean` | Whether this trigger is currently selected |
|
|
408
|
+
| `value` | `string` | The value of the trigger |
|
|
409
|
+
| `isDisabled` | `boolean` | Whether the trigger is disabled |
|
|
410
|
+
|
|
411
|
+
### Tabs.Label
|
|
412
|
+
|
|
413
|
+
| prop | type | default | description |
|
|
414
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
415
|
+
| `children` | `React.ReactNode` | - | Text content to be rendered as label |
|
|
416
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
417
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
418
|
+
|
|
419
|
+
### Tabs.Indicator
|
|
420
|
+
|
|
421
|
+
| prop | type | default | description |
|
|
422
|
+
| ----------------------- | ------------------------ | ------- | ------------------------------------------------------------ |
|
|
423
|
+
| `children` | `React.ReactNode` | - | Custom indicator content |
|
|
424
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
425
|
+
| `animation` | `TabsIndicatorAnimation` | - | Animation configuration |
|
|
426
|
+
| `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
|
|
427
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
428
|
+
|
|
429
|
+
#### TabsIndicatorAnimation
|
|
430
|
+
|
|
431
|
+
Animation configuration for Tabs.Indicator component. Can be:
|
|
432
|
+
|
|
433
|
+
- `false` or `"disabled"`: Disable all animations
|
|
434
|
+
- `true` or `undefined`: Use default animations
|
|
435
|
+
- `object`: Custom animation configuration
|
|
436
|
+
|
|
437
|
+
| prop | type | default | description |
|
|
438
|
+
| ------------------- | -------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
439
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
440
|
+
| `width.type` | `'spring' \| 'timing'` | `'spring'` | Type of animation to use |
|
|
441
|
+
| `width.config` | `WithSpringConfig \| WithTimingConfig` | `{ stiffness: 1200, damping: 120 }` (spring) or `{ duration: 200 }` (timing) | Reanimated animation configuration |
|
|
442
|
+
| `height.type` | `'spring' \| 'timing'` | `'spring'` | Type of animation to use |
|
|
443
|
+
| `height.config` | `WithSpringConfig \| WithTimingConfig` | `{ stiffness: 1200, damping: 120 }` (spring) or `{ duration: 200 }` (timing) | Reanimated animation configuration |
|
|
444
|
+
| `translateX.type` | `'spring' \| 'timing'` | `'spring'` | Type of animation to use |
|
|
445
|
+
| `translateX.config` | `WithSpringConfig \| WithTimingConfig` | `{ stiffness: 1200, damping: 120 }` (spring) or `{ duration: 200 }` (timing) | Reanimated animation configuration |
|
|
446
|
+
|
|
447
|
+
### Tabs.Separator
|
|
448
|
+
|
|
449
|
+
| prop | type | default | description |
|
|
450
|
+
| ----------------------- | ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
451
|
+
| `betweenValues` | `string[]` | - | Array of tab values between which the separator should be visible. The separator shows when the current tab value is NOT in this array |
|
|
452
|
+
| `isAlwaysVisible` | `boolean` | `false` | If true, opacity is always 1 regardless of the current tab value |
|
|
453
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
454
|
+
| `animation` | `TabsSeparatorAnimation` | - | Animation configuration |
|
|
455
|
+
| `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
|
|
456
|
+
| `children` | `React.ReactNode` | - | Custom separator content |
|
|
457
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
458
|
+
|
|
459
|
+
**Note:** The following style properties are occupied by animations and cannot be set via className:
|
|
460
|
+
|
|
461
|
+
- `opacity` - Animated for separator visibility transitions (0 when current tab is in `betweenValues`, 1 when not)
|
|
462
|
+
|
|
463
|
+
To customize these properties, use the `animation` prop. To completely disable animated styles and use your own via className or style prop, set `isAnimatedStyleActive={false}`.
|
|
464
|
+
|
|
465
|
+
#### TabsSeparatorAnimation
|
|
466
|
+
|
|
467
|
+
Animation configuration for Tabs.Separator component. Can be:
|
|
468
|
+
|
|
469
|
+
- `false` or `"disabled"`: Disable all animations
|
|
470
|
+
- `true` or `undefined`: Use default animations
|
|
471
|
+
- `object`: Custom animation configuration
|
|
472
|
+
|
|
473
|
+
| prop | type | default | description |
|
|
474
|
+
| ---------------------- | ----------------------- | ------------------- | ----------------------------------------------- |
|
|
475
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
476
|
+
| `opacity.value` | `[number, number]` | `[0, 1]` | Opacity values [hidden, visible] |
|
|
477
|
+
| `opacity.timingConfig` | `WithTimingConfig` | `{ duration: 200 }` | Animation timing configuration |
|
|
478
|
+
|
|
479
|
+
### Tabs.Content
|
|
480
|
+
|
|
481
|
+
| prop | type | default | description |
|
|
482
|
+
| -------------- | ----------------- | ------- | --------------------------------------------------- |
|
|
483
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the content |
|
|
484
|
+
| `value` | `string` | - | The value of the tab this content belongs to |
|
|
485
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
486
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
487
|
+
|
|
488
|
+
## Hooks
|
|
489
|
+
|
|
490
|
+
### useTabs
|
|
491
|
+
|
|
492
|
+
Hook to access tabs root context values within custom components or compound components.
|
|
493
|
+
|
|
494
|
+
```tsx
|
|
495
|
+
import { useTabs } from '@/heroui';
|
|
496
|
+
|
|
497
|
+
const CustomComponent = () => {
|
|
498
|
+
const { value, onValueChange, nativeID } = useTabs();
|
|
499
|
+
// ... your implementation
|
|
500
|
+
};
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
**Returns:** `UseTabsReturn`
|
|
504
|
+
|
|
505
|
+
| property | type | description |
|
|
506
|
+
| --------------- | ------------------------- | ------------------------------------------ |
|
|
507
|
+
| `value` | `string` | Currently active tab value |
|
|
508
|
+
| `onValueChange` | `(value: string) => void` | Callback function to change the active tab |
|
|
509
|
+
| `nativeID` | `string` | Unique identifier for the tabs instance |
|
|
510
|
+
|
|
511
|
+
**Note:** This hook must be used within a `Tabs` component. It will throw an error if called outside of the tabs context.
|
|
512
|
+
|
|
513
|
+
### useTabsMeasurements
|
|
514
|
+
|
|
515
|
+
Hook to access tab measurements context values for managing tab trigger positions and dimensions.
|
|
516
|
+
|
|
517
|
+
```tsx
|
|
518
|
+
import { useTabsMeasurements } from '@/heroui';
|
|
519
|
+
|
|
520
|
+
const CustomIndicator = () => {
|
|
521
|
+
const { measurements, variant } = useTabsMeasurements();
|
|
522
|
+
// ... your implementation
|
|
523
|
+
};
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
**Returns:** `UseTabsMeasurementsReturn`
|
|
527
|
+
|
|
528
|
+
| property | type | description |
|
|
529
|
+
| ----------------- | ------------------------------------------------------- | ------------------------------------------------- |
|
|
530
|
+
| `measurements` | `Record<string, ItemMeasurements>` | Record of measurements for each tab trigger |
|
|
531
|
+
| `setMeasurements` | `(key: string, measurements: ItemMeasurements) => void` | Function to update measurements for a tab trigger |
|
|
532
|
+
| `variant` | `'primary' \| 'secondary'` | Visual variant of the tabs |
|
|
533
|
+
|
|
534
|
+
#### ItemMeasurements
|
|
535
|
+
|
|
536
|
+
| property | type | description |
|
|
537
|
+
| -------- | -------- | ----------------------------------- |
|
|
538
|
+
| `width` | `number` | Width of the tab trigger in pixels |
|
|
539
|
+
| `height` | `number` | Height of the tab trigger in pixels |
|
|
540
|
+
| `x` | `number` | X position of the tab trigger |
|
|
541
|
+
|
|
542
|
+
**Note:** This hook must be used within a `Tabs` component. It will throw an error if called outside of the tabs context.
|
|
543
|
+
|
|
544
|
+
### useTabsTrigger
|
|
545
|
+
|
|
546
|
+
Hook to access tab trigger context values within custom components or compound components.
|
|
547
|
+
|
|
548
|
+
```tsx
|
|
549
|
+
import { useTabsTrigger } from '@/heroui';
|
|
550
|
+
|
|
551
|
+
const CustomLabel = () => {
|
|
552
|
+
const { value, isSelected, nativeID } = useTabsTrigger();
|
|
553
|
+
// ... your implementation
|
|
554
|
+
};
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
**Returns:** `UseTabsTriggerReturn`
|
|
558
|
+
|
|
559
|
+
| property | type | description |
|
|
560
|
+
| ------------ | --------- | ------------------------------------------ |
|
|
561
|
+
| `value` | `string` | The value of this trigger |
|
|
562
|
+
| `nativeID` | `string` | Unique identifier for this trigger |
|
|
563
|
+
| `isSelected` | `boolean` | Whether this trigger is currently selected |
|
|
564
|
+
|
|
565
|
+
**Note:** This hook must be used within a `Tabs.Trigger` component. It will throw an error if called outside of the trigger context.
|