@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,437 @@
|
|
|
1
|
+
# Accordion
|
|
2
|
+
|
|
3
|
+
A collapsible content panel for organizing information in a compact space.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Accordion } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Accordion>
|
|
15
|
+
<Accordion.Item>
|
|
16
|
+
<Accordion.Trigger>
|
|
17
|
+
...
|
|
18
|
+
<Accordion.Indicator>...</Accordion.Indicator>
|
|
19
|
+
</Accordion.Trigger>
|
|
20
|
+
<Accordion.Content>...</Accordion.Content>
|
|
21
|
+
</Accordion.Item>
|
|
22
|
+
</Accordion>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- **Accordion**: Main container that manages the accordion state and behavior. Controls expansion/collapse of items, supports single or multiple selection modes, and provides variant styling (default or surface).
|
|
26
|
+
- **Accordion.Item**: Container for individual accordion items. Wraps the trigger and content, managing the expanded state for each item.
|
|
27
|
+
- **Accordion.Trigger**: Interactive element that toggles item expansion. Built on Header and Trigger primitives.
|
|
28
|
+
- **Accordion.Indicator**: Optional visual indicator showing expansion state. Defaults to an animated chevron icon that rotates based on item state.
|
|
29
|
+
- **Accordion.Content**: Container for expandable content. Animated with layout transitions for smooth expand/collapse effects.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
### Basic Usage
|
|
34
|
+
|
|
35
|
+
The Accordion component uses compound parts to create expandable content sections.
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<Accordion selectionMode="single">
|
|
39
|
+
<Accordion.Item value="1">
|
|
40
|
+
<Accordion.Trigger>
|
|
41
|
+
...
|
|
42
|
+
<Accordion.Indicator />
|
|
43
|
+
</Accordion.Trigger>
|
|
44
|
+
<Accordion.Content>...</Accordion.Content>
|
|
45
|
+
</Accordion.Item>
|
|
46
|
+
</Accordion>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Single Selection Mode
|
|
50
|
+
|
|
51
|
+
Allow only one item to be expanded at a time.
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<Accordion selectionMode="single" defaultValue="2">
|
|
55
|
+
<Accordion.Item value="1">
|
|
56
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
57
|
+
<Accordion.Content>...</Accordion.Content>
|
|
58
|
+
</Accordion.Item>
|
|
59
|
+
<Accordion.Item value="2">
|
|
60
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
61
|
+
<Accordion.Content>...</Accordion.Content>
|
|
62
|
+
</Accordion.Item>
|
|
63
|
+
</Accordion>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Multiple Selection Mode
|
|
67
|
+
|
|
68
|
+
Allow multiple items to be expanded simultaneously.
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
<Accordion selectionMode="multiple" defaultValue={['1', '3']}>
|
|
72
|
+
<Accordion.Item value="1">
|
|
73
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
74
|
+
<Accordion.Content>...</Accordion.Content>
|
|
75
|
+
</Accordion.Item>
|
|
76
|
+
<Accordion.Item value="2">
|
|
77
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
78
|
+
<Accordion.Content>...</Accordion.Content>
|
|
79
|
+
</Accordion.Item>
|
|
80
|
+
<Accordion.Item value="3">
|
|
81
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
82
|
+
<Accordion.Content>...</Accordion.Content>
|
|
83
|
+
</Accordion.Item>
|
|
84
|
+
</Accordion>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Surface Variant
|
|
88
|
+
|
|
89
|
+
Apply a surface container style to the accordion.
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<Accordion selectionMode="single" variant="surface">
|
|
93
|
+
<Accordion.Item value="1">
|
|
94
|
+
<Accordion.Trigger>
|
|
95
|
+
...
|
|
96
|
+
<Accordion.Indicator />
|
|
97
|
+
</Accordion.Trigger>
|
|
98
|
+
<Accordion.Content>...</Accordion.Content>
|
|
99
|
+
</Accordion.Item>
|
|
100
|
+
</Accordion>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Custom Indicator
|
|
104
|
+
|
|
105
|
+
Replace the default chevron indicator with custom content.
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
<Accordion selectionMode="single">
|
|
109
|
+
<Accordion.Item value="1">
|
|
110
|
+
<Accordion.Trigger>
|
|
111
|
+
...
|
|
112
|
+
<Accordion.Indicator>
|
|
113
|
+
<CustomIndicator />
|
|
114
|
+
</Accordion.Indicator>
|
|
115
|
+
</Accordion.Trigger>
|
|
116
|
+
<Accordion.Content>...</Accordion.Content>
|
|
117
|
+
</Accordion.Item>
|
|
118
|
+
</Accordion>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Without Separators
|
|
122
|
+
|
|
123
|
+
Hide the separators between accordion items.
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
<Accordion selectionMode="single" hideSeparator>
|
|
127
|
+
<Accordion.Item value="1">
|
|
128
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
129
|
+
<Accordion.Content>...</Accordion.Content>
|
|
130
|
+
</Accordion.Item>
|
|
131
|
+
<Accordion.Item value="2">
|
|
132
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
133
|
+
<Accordion.Content>...</Accordion.Content>
|
|
134
|
+
</Accordion.Item>
|
|
135
|
+
</Accordion>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Custom Styling
|
|
139
|
+
|
|
140
|
+
Apply custom styles using className, classNames, or styles props.
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
<Accordion
|
|
144
|
+
className="rounded-lg"
|
|
145
|
+
classNames={{
|
|
146
|
+
container: 'bg-surface',
|
|
147
|
+
separator: 'bg-separator/50',
|
|
148
|
+
}}
|
|
149
|
+
styles={{
|
|
150
|
+
container: { padding: 16 },
|
|
151
|
+
separator: { height: 2 },
|
|
152
|
+
}}
|
|
153
|
+
>
|
|
154
|
+
<Accordion.Item value="1">
|
|
155
|
+
<Accordion.Trigger>...</Accordion.Trigger>
|
|
156
|
+
<Accordion.Content>...</Accordion.Content>
|
|
157
|
+
</Accordion.Item>
|
|
158
|
+
</Accordion>
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### With PressableFeedback
|
|
162
|
+
|
|
163
|
+
Use `Accordion.Trigger` with `asChild` prop and wrap content with `PressableFeedback` to add custom press feedback animations.
|
|
164
|
+
|
|
165
|
+
```tsx
|
|
166
|
+
import { Accordion, PressableFeedback } from '@/heroui';
|
|
167
|
+
import { View } from 'react-native';
|
|
168
|
+
|
|
169
|
+
<Accordion>
|
|
170
|
+
<Accordion.Item value="1">
|
|
171
|
+
<Accordion.Trigger asChild>
|
|
172
|
+
<PressableFeedback animation={{ scale: false }}>
|
|
173
|
+
<PressableFeedback.Scale className="flex-row items-center flex-1 gap-3">
|
|
174
|
+
<Text>Item Title</Text>
|
|
175
|
+
</PressableFeedback.Scale>
|
|
176
|
+
<Accordion.Indicator />
|
|
177
|
+
<PressableFeedback.Highlight
|
|
178
|
+
animation={{ opacity: { value: [0, 0.05] } }}
|
|
179
|
+
/>
|
|
180
|
+
</PressableFeedback>
|
|
181
|
+
</Accordion.Trigger>
|
|
182
|
+
<Accordion.Content>...</Accordion.Content>
|
|
183
|
+
</Accordion.Item>
|
|
184
|
+
</Accordion>;
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Example
|
|
188
|
+
|
|
189
|
+
```tsx
|
|
190
|
+
import { Accordion, useThemeColor } from '@/heroui';
|
|
191
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
192
|
+
import { View, Text } from 'react-native';
|
|
193
|
+
|
|
194
|
+
export default function AccordionExample() {
|
|
195
|
+
const themeColorMuted = useThemeColor('muted');
|
|
196
|
+
|
|
197
|
+
const accordionData = [
|
|
198
|
+
{
|
|
199
|
+
id: '1',
|
|
200
|
+
title: 'How do I place an order?',
|
|
201
|
+
icon: <Ionicons name="bag-outline" size={16} color={themeColorMuted} />,
|
|
202
|
+
content:
|
|
203
|
+
'Lorem ipsum dolor sit amet consectetur. Netus nunc mauris risus consequat. Libero placerat dignissim consectetur nisl.',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: '2',
|
|
207
|
+
title: 'What payment methods do you accept?',
|
|
208
|
+
icon: <Ionicons name="card-outline" size={16} color={themeColorMuted} />,
|
|
209
|
+
content:
|
|
210
|
+
'Lorem ipsum dolor sit amet consectetur. Netus nunc mauris risus consequat. Libero placerat dignissim consectetur nisl.',
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
id: '3',
|
|
214
|
+
title: 'How much does shipping cost?',
|
|
215
|
+
icon: <Ionicons name="cube-outline" size={16} color={themeColorMuted} />,
|
|
216
|
+
content:
|
|
217
|
+
'Lorem ipsum dolor sit amet consectetur. Netus nunc mauris risus consequat. Libero placerat dignissim consectetur nisl.',
|
|
218
|
+
},
|
|
219
|
+
];
|
|
220
|
+
|
|
221
|
+
return (
|
|
222
|
+
<Accordion selectionMode="single" variant="surface" defaultValue="2">
|
|
223
|
+
{accordionData.map((item) => (
|
|
224
|
+
<Accordion.Item key={item.id} value={item.id}>
|
|
225
|
+
<Accordion.Trigger>
|
|
226
|
+
<View className="flex-row items-center flex-1 gap-3">
|
|
227
|
+
{item.icon}
|
|
228
|
+
<Text className="text-foreground text-base flex-1">
|
|
229
|
+
{item.title}
|
|
230
|
+
</Text>
|
|
231
|
+
</View>
|
|
232
|
+
<Accordion.Indicator />
|
|
233
|
+
</Accordion.Trigger>
|
|
234
|
+
<Accordion.Content>
|
|
235
|
+
<Text className="text-muted text-base/relaxed px-[25px]">
|
|
236
|
+
{item.content}
|
|
237
|
+
</Text>
|
|
238
|
+
</Accordion.Content>
|
|
239
|
+
</Accordion.Item>
|
|
240
|
+
))}
|
|
241
|
+
</Accordion>
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/accordion.tsx>).
|
|
247
|
+
|
|
248
|
+
## API Reference
|
|
249
|
+
|
|
250
|
+
### Accordion
|
|
251
|
+
|
|
252
|
+
| prop | type | default | description |
|
|
253
|
+
| ----------------------- | -------------------------------------------------- | ----------- | -------------------------------------------------------------- |
|
|
254
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the accordion |
|
|
255
|
+
| `selectionMode` | `'single' \| 'multiple'` | - | Whether the accordion allows single or multiple expanded items |
|
|
256
|
+
| `variant` | `'default' \| 'surface'` | `'default'` | Visual variant of the accordion |
|
|
257
|
+
| `hideSeparator` | `boolean` | `false` | Whether to hide the separator between accordion items |
|
|
258
|
+
| `defaultValue` | `string \| string[] \| undefined` | - | Default expanded item(s) in uncontrolled mode |
|
|
259
|
+
| `value` | `string \| string[] \| undefined` | - | Controlled expanded item(s) |
|
|
260
|
+
| `isDisabled` | `boolean` | - | Whether all accordion items are disabled |
|
|
261
|
+
| `isCollapsible` | `boolean` | `true` | Whether expanded items can be collapsed |
|
|
262
|
+
| `animation` | `AccordionRootAnimation` | - | Animation configuration for accordion |
|
|
263
|
+
| `className` | `string` | - | Additional CSS classes for the container |
|
|
264
|
+
| `classNames` | `ElementSlots<RootSlots>` | - | Additional CSS classes for the slots |
|
|
265
|
+
| `styles` | `Partial<Record<RootSlots, ViewStyle>>` | - | Styles for different parts of the accordion root |
|
|
266
|
+
| `onValueChange` | `(value: string \| string[] \| undefined) => void` | - | Callback when expanded items change |
|
|
267
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
268
|
+
|
|
269
|
+
#### `ElementSlots<RootSlots>`
|
|
270
|
+
|
|
271
|
+
| prop | type | description |
|
|
272
|
+
| ----------- | -------- | ------------------------------------------------- |
|
|
273
|
+
| `container` | `string` | Custom class name for the accordion container |
|
|
274
|
+
| `separator` | `string` | Custom class name for the separator between items |
|
|
275
|
+
|
|
276
|
+
#### `styles`
|
|
277
|
+
|
|
278
|
+
| prop | type | description |
|
|
279
|
+
| ----------- | ----------- | -------------------------------------- |
|
|
280
|
+
| `container` | `ViewStyle` | Styles for the accordion container |
|
|
281
|
+
| `separator` | `ViewStyle` | Styles for the separator between items |
|
|
282
|
+
|
|
283
|
+
#### AccordionRootAnimation
|
|
284
|
+
|
|
285
|
+
Animation configuration for accordion root component. Can be:
|
|
286
|
+
|
|
287
|
+
- `false` or `"disabled"`: Disable only root animations
|
|
288
|
+
- `"disable-all"`: Disable all animations including children
|
|
289
|
+
- `true` or `undefined`: Use default animations
|
|
290
|
+
- `object`: Custom animation configuration
|
|
291
|
+
|
|
292
|
+
| prop | type | default | description |
|
|
293
|
+
| -------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
294
|
+
| `state` | `'disabled' \| 'disable-all' \| boolean` | - | Disable animations while customizing properties |
|
|
295
|
+
| `layout.value` | `LayoutTransition` | `LinearTransition`<br/>`.springify()`<br/>`.damping(140)`<br/>`.stiffness(1600)`<br/>`.mass(4)` | Custom layout animation for accordion transitions |
|
|
296
|
+
|
|
297
|
+
### Accordion.Item
|
|
298
|
+
|
|
299
|
+
| prop | type | default | description |
|
|
300
|
+
| ----------------------- | --------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------- |
|
|
301
|
+
| `children` | `React.ReactNode \| ((props: AccordionItemRenderProps) => React.ReactNode)` | - | Children elements to be rendered inside the accordion item, or a render function |
|
|
302
|
+
| `value` | `string` | - | Unique value to identify this item |
|
|
303
|
+
| `isDisabled` | `boolean` | - | Whether this specific item is disabled |
|
|
304
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
305
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
306
|
+
|
|
307
|
+
#### AccordionItemRenderProps
|
|
308
|
+
|
|
309
|
+
| prop | type | description |
|
|
310
|
+
| ------------ | --------- | ------------------------------------------------ |
|
|
311
|
+
| `isExpanded` | `boolean` | Whether the accordion item is currently expanded |
|
|
312
|
+
| `value` | `string` | Unique value identifier for this accordion item |
|
|
313
|
+
|
|
314
|
+
### Accordion.Trigger
|
|
315
|
+
|
|
316
|
+
| prop | type | default | description |
|
|
317
|
+
| ------------------- | ----------------- | ------- | ------------------------------------------------------- |
|
|
318
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the trigger |
|
|
319
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
320
|
+
| `isDisabled` | `boolean` | - | Whether the trigger is disabled |
|
|
321
|
+
| `...PressableProps` | `PressableProps` | - | All standard React Native Pressable props are supported |
|
|
322
|
+
|
|
323
|
+
### Accordion.Indicator
|
|
324
|
+
|
|
325
|
+
| prop | type | default | description |
|
|
326
|
+
| ----------------------- | ----------------------------- | ------- | ---------------------------------------------------------------------- |
|
|
327
|
+
| `children` | `React.ReactNode` | - | Custom indicator content, if not provided defaults to animated chevron |
|
|
328
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
329
|
+
| `iconProps` | `AccordionIndicatorIconProps` | - | Icon configuration |
|
|
330
|
+
| `animation` | `AccordionIndicatorAnimation` | - | Animation configuration for indicator |
|
|
331
|
+
| `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
|
|
332
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
333
|
+
|
|
334
|
+
#### AccordionIndicatorIconProps
|
|
335
|
+
|
|
336
|
+
| prop | type | default | description |
|
|
337
|
+
| ------- | -------- | ------------ | ----------------- |
|
|
338
|
+
| `size` | `number` | `16` | Size of the icon |
|
|
339
|
+
| `color` | `string` | `foreground` | Color of the icon |
|
|
340
|
+
|
|
341
|
+
#### AccordionIndicatorAnimation
|
|
342
|
+
|
|
343
|
+
Animation configuration for accordion indicator component. Can be:
|
|
344
|
+
|
|
345
|
+
- `false` or `"disabled"`: Disable all animations
|
|
346
|
+
- `true` or `undefined`: Use default animations
|
|
347
|
+
- `object`: Custom animation configuration
|
|
348
|
+
|
|
349
|
+
| prop | type | default | description |
|
|
350
|
+
| ----------------------- | ----------------------- | -------------------------------------------- | ------------------------------------------------ |
|
|
351
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
352
|
+
| `rotation.value` | `[number, number]` | `[0, -180]` | Rotation values [collapsed, expanded] in degrees |
|
|
353
|
+
| `rotation.springConfig` | `WithSpringConfig` | `{ damping: 140, stiffness: 1000, mass: 4 }` | Spring animation configuration for rotation |
|
|
354
|
+
|
|
355
|
+
### Accordion.Content
|
|
356
|
+
|
|
357
|
+
| prop | type | default | description |
|
|
358
|
+
| -------------- | --------------------------- | ------- | --------------------------------------------------- |
|
|
359
|
+
| `children` | `React.ReactNode` | - | Children elements to be rendered inside the content |
|
|
360
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
361
|
+
| `animation` | `AccordionContentAnimation` | - | Animation configuration for content |
|
|
362
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
363
|
+
|
|
364
|
+
#### AccordionContentAnimation
|
|
365
|
+
|
|
366
|
+
Animation configuration for accordion content component. Can be:
|
|
367
|
+
|
|
368
|
+
- `false` or `"disabled"`: Disable all animations
|
|
369
|
+
- `true` or `undefined`: Use default animations
|
|
370
|
+
- `object`: Custom animation configuration
|
|
371
|
+
|
|
372
|
+
| prop | type | default | description |
|
|
373
|
+
| ---------------- | ----------------------- | -------------------------------------------------------------------- | ----------------------------------------------- |
|
|
374
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
375
|
+
| `entering.value` | `EntryOrExitLayoutType` | `FadeIn`<br/>`.duration(200)`<br/>`.easing(Easing.out(Easing.ease))` | Custom entering animation for content |
|
|
376
|
+
| `exiting.value` | `EntryOrExitLayoutType` | `FadeOut`<br/>`.duration(200)`<br/>`.easing(Easing.in(Easing.ease))` | Custom exiting animation for content |
|
|
377
|
+
|
|
378
|
+
## Hooks
|
|
379
|
+
|
|
380
|
+
### useAccordion
|
|
381
|
+
|
|
382
|
+
Hook to access the accordion root context. Must be used within an `Accordion` component.
|
|
383
|
+
|
|
384
|
+
```tsx
|
|
385
|
+
import { useAccordion } from '@/heroui';
|
|
386
|
+
|
|
387
|
+
const { value, onValueChange, selectionMode, isCollapsible, isDisabled } =
|
|
388
|
+
useAccordion();
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
#### Returns
|
|
392
|
+
|
|
393
|
+
| property | type | description |
|
|
394
|
+
| --------------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
395
|
+
| `selectionMode` | `'single' \| 'multiple' \| undefined` | Whether the accordion allows single or multiple expanded items |
|
|
396
|
+
| `value` | `(string \| undefined) \| string[]` | Currently expanded item(s) - string for single mode, array for multiple mode |
|
|
397
|
+
| `onValueChange` | `(value: string \| undefined) => void \| ((value: string[]) => void)` | Callback function to update expanded items |
|
|
398
|
+
| `isCollapsible` | `boolean` | Whether expanded items can be collapsed |
|
|
399
|
+
| `isDisabled` | `boolean \| undefined` | Whether all accordion items are disabled |
|
|
400
|
+
|
|
401
|
+
### useAccordionItem
|
|
402
|
+
|
|
403
|
+
Hook to access the accordion item context. Must be used within an `Accordion.Item` component.
|
|
404
|
+
|
|
405
|
+
```tsx
|
|
406
|
+
import { useAccordionItem } from '@/heroui';
|
|
407
|
+
|
|
408
|
+
const { value, isExpanded, isDisabled, nativeID } = useAccordionItem();
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
#### Returns
|
|
412
|
+
|
|
413
|
+
| property | type | description |
|
|
414
|
+
| ------------ | ---------------------- | ---------------------------------------------------- |
|
|
415
|
+
| `value` | `string` | Unique value identifier for this accordion item |
|
|
416
|
+
| `isExpanded` | `boolean` | Whether the accordion item is currently expanded |
|
|
417
|
+
| `isDisabled` | `boolean \| undefined` | Whether this specific item is disabled |
|
|
418
|
+
| `nativeID` | `string` | Native ID used for accessibility and ARIA attributes |
|
|
419
|
+
|
|
420
|
+
## Special Notes
|
|
421
|
+
|
|
422
|
+
When using the Accordion component alongside other components in the same view, you should import and apply `AccordionLayoutTransition` to those components to ensure smooth and consistent layout animations across the entire screen.
|
|
423
|
+
|
|
424
|
+
```jsx
|
|
425
|
+
import { Accordion, AccordionLayoutTransition } from '@/heroui';
|
|
426
|
+
import Animated from 'react-native-reanimated';
|
|
427
|
+
|
|
428
|
+
<Animated.ScrollView layout={AccordionLayoutTransition}>
|
|
429
|
+
<Animated.View layout={AccordionLayoutTransition}>
|
|
430
|
+
{/* Other content */}
|
|
431
|
+
</Animated.View>
|
|
432
|
+
|
|
433
|
+
<Accordion>{/* Accordion items */}</Accordion>
|
|
434
|
+
</Animated.ScrollView>;
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
This ensures that when the accordion expands or collapses, all components on the screen animate with the same timing and easing, creating a cohesive user experience.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { tv } from 'tailwind-variants';
|
|
3
|
+
import { combineStyles } from '../../helpers/internal/utils';
|
|
4
|
+
|
|
5
|
+
const root = tv({
|
|
6
|
+
slots: {
|
|
7
|
+
container: 'flex-col overflow-hidden',
|
|
8
|
+
separator: 'h-hairline bg-separator',
|
|
9
|
+
},
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: {
|
|
13
|
+
container: '',
|
|
14
|
+
separator: '',
|
|
15
|
+
},
|
|
16
|
+
surface: {
|
|
17
|
+
container:
|
|
18
|
+
'bg-surface rounded-3xl border border-surface shadow-surface',
|
|
19
|
+
separator: 'mx-3',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
variant: 'default',
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const item = tv({
|
|
29
|
+
base: 'flex-col overflow-hidden',
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const trigger = tv({
|
|
33
|
+
base: 'flex-row items-center justify-between py-4 px-3 gap-4 bg-transparent z-10',
|
|
34
|
+
variants: {
|
|
35
|
+
variant: {
|
|
36
|
+
default: '',
|
|
37
|
+
surface: 'px-5',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
variant: 'default',
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Indicator style definition
|
|
47
|
+
*
|
|
48
|
+
* @note ANIMATED PROPERTIES (cannot be set via className):
|
|
49
|
+
* The following property is animated and cannot be overridden using Tailwind classes:
|
|
50
|
+
* - `transform` (specifically `rotate`) - Animated for expand/collapse rotation transitions
|
|
51
|
+
*
|
|
52
|
+
* To customize this property, use the `animation` prop on `Accordion.Indicator`:
|
|
53
|
+
* ```tsx
|
|
54
|
+
* <Accordion.Indicator
|
|
55
|
+
* animation={{
|
|
56
|
+
* rotation: { value: [0, -180], springConfig: { damping: 140, stiffness: 1000, mass: 4 } }
|
|
57
|
+
* }}
|
|
58
|
+
* />
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* To completely disable animated styles and apply your own via className or style prop,
|
|
62
|
+
* set `isAnimatedStyleActive={false}` on `Accordion.Indicator`.
|
|
63
|
+
*/
|
|
64
|
+
const indicator = tv({
|
|
65
|
+
base: 'items-center justify-center',
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const content = tv({
|
|
69
|
+
base: 'px-3 pb-4 bg-transparent',
|
|
70
|
+
variants: {
|
|
71
|
+
variant: {
|
|
72
|
+
default: '',
|
|
73
|
+
surface: 'px-5',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
defaultVariants: {
|
|
77
|
+
variant: 'default',
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
export const accordionClassNames = combineStyles({
|
|
82
|
+
root,
|
|
83
|
+
item,
|
|
84
|
+
trigger,
|
|
85
|
+
indicator,
|
|
86
|
+
content,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
export const accordionStyleSheet = StyleSheet.create({
|
|
90
|
+
root: {
|
|
91
|
+
borderCurve: 'continuous',
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
export type RootSlots = keyof ReturnType<typeof root>;
|