@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,146 @@
|
|
|
1
|
+
import type { Pressable, Text, View, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
// Base utility types
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Component props with optional asChild prop for polymorphic components
|
|
7
|
+
* Allows components to render as different elements when asChild is true
|
|
8
|
+
*/
|
|
9
|
+
type ComponentPropsWithAsChild<T extends React.ElementType<any>> =
|
|
10
|
+
React.ComponentPropsWithoutRef<T> & { asChild?: boolean };
|
|
11
|
+
|
|
12
|
+
// Ref types
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Reference type for React Native View component
|
|
16
|
+
* Used for forwarding refs to View elements
|
|
17
|
+
*/
|
|
18
|
+
type ViewRef = React.ComponentRef<typeof View>;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Reference type for React Native Pressable component
|
|
22
|
+
* Used for forwarding refs to Pressable elements
|
|
23
|
+
*/
|
|
24
|
+
type PressableRef = React.ComponentRef<typeof Pressable>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Reference type for React Native Text component
|
|
28
|
+
* Used for forwarding refs to Text elements
|
|
29
|
+
*/
|
|
30
|
+
type TextRef = React.ComponentRef<typeof Text>;
|
|
31
|
+
|
|
32
|
+
// Slottable component props
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* View component props with asChild support for slot composition
|
|
36
|
+
* Enables View components to be used with the Slot pattern
|
|
37
|
+
*/
|
|
38
|
+
type SlottableViewProps = ComponentPropsWithAsChild<typeof View>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Pressable component props with asChild support for slot composition
|
|
42
|
+
* Enables Pressable components to be used with the Slot pattern
|
|
43
|
+
*/
|
|
44
|
+
type SlottablePressableProps = ComponentPropsWithAsChild<typeof Pressable>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Text component props with asChild support for slot composition
|
|
48
|
+
* Enables Text components to be used with the Slot pattern
|
|
49
|
+
*/
|
|
50
|
+
type SlottableTextProps = ComponentPropsWithAsChild<typeof Text>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Interface for components that can be force mounted even when normally hidden
|
|
54
|
+
*/
|
|
55
|
+
interface ForceMountable {
|
|
56
|
+
/**
|
|
57
|
+
* Whether to force mount the component in the DOM
|
|
58
|
+
* Useful for animation purposes when component needs to be present but hidden
|
|
59
|
+
*/
|
|
60
|
+
forceMount?: true | undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Interface for defining spacing/padding from screen edges
|
|
65
|
+
*/
|
|
66
|
+
interface Insets {
|
|
67
|
+
/**
|
|
68
|
+
* Distance from the top edge in pixels
|
|
69
|
+
*/
|
|
70
|
+
top?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Distance from the bottom edge in pixels
|
|
73
|
+
*/
|
|
74
|
+
bottom?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Distance from the left edge in pixels
|
|
77
|
+
*/
|
|
78
|
+
left?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Distance from the right edge in pixels
|
|
81
|
+
*/
|
|
82
|
+
right?: number;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Props for components that need to be positioned relative to a trigger element
|
|
87
|
+
* Certain props are only available on the native version of the component.
|
|
88
|
+
* @docs For the web version, see the Radix documentation https://www.radix-ui.com/primitives
|
|
89
|
+
*/
|
|
90
|
+
interface PositionedContentProps {
|
|
91
|
+
/**
|
|
92
|
+
* Whether to force mount the component in the DOM
|
|
93
|
+
*/
|
|
94
|
+
forceMount?: true | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Custom styles to apply to the positioned content
|
|
97
|
+
*/
|
|
98
|
+
style?: ViewStyle;
|
|
99
|
+
/**
|
|
100
|
+
* Offset along the alignment axis in pixels
|
|
101
|
+
*/
|
|
102
|
+
alignOffset?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Screen edge insets to respect when positioning
|
|
105
|
+
*/
|
|
106
|
+
insets?: Insets;
|
|
107
|
+
/**
|
|
108
|
+
* Whether to automatically adjust position to avoid screen edges
|
|
109
|
+
* @default true
|
|
110
|
+
*/
|
|
111
|
+
avoidCollisions?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Alignment relative to the trigger element
|
|
114
|
+
* @default 'start'
|
|
115
|
+
*/
|
|
116
|
+
align?: 'start' | 'center' | 'end';
|
|
117
|
+
/**
|
|
118
|
+
* Preferred placement of the trigger element to position against
|
|
119
|
+
* @default 'bottom'
|
|
120
|
+
*/
|
|
121
|
+
placement?: 'top' | 'bottom' | 'left' | 'right';
|
|
122
|
+
/**
|
|
123
|
+
* Offset from the trigger element in pixels
|
|
124
|
+
* @default 0
|
|
125
|
+
*/
|
|
126
|
+
offset?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Whether to disable the automatic positioning styles
|
|
129
|
+
* Useful when you want to handle positioning manually
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
132
|
+
disablePositioningStyle?: boolean;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export type {
|
|
136
|
+
ComponentPropsWithAsChild,
|
|
137
|
+
ForceMountable,
|
|
138
|
+
Insets,
|
|
139
|
+
PositionedContentProps,
|
|
140
|
+
PressableRef,
|
|
141
|
+
SlottablePressableProps,
|
|
142
|
+
SlottableTextProps,
|
|
143
|
+
SlottableViewProps,
|
|
144
|
+
TextRef,
|
|
145
|
+
ViewRef,
|
|
146
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ClassValue } from 'tailwind-variants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This Typescript utility transform a list of slots into a list of {slot: classes}
|
|
5
|
+
*/
|
|
6
|
+
type ElementSlots<S extends string> = {
|
|
7
|
+
[key in S]?: Exclude<ClassValue, 0n>;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Type helper that preserves the exact type of combined style objects
|
|
12
|
+
* This ensures that VariantProps inference works correctly for each style
|
|
13
|
+
*/
|
|
14
|
+
type CombinedStyles<T extends Record<string, any>> = {
|
|
15
|
+
[K in keyof T]: T[K];
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type { CombinedStyles, ElementSlots };
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Animation,
|
|
3
|
+
AnimationRoot,
|
|
4
|
+
AnimationValue,
|
|
5
|
+
} from '../types/animation';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Check if the entire animation is disabled
|
|
9
|
+
* @param animation - Animation configuration
|
|
10
|
+
* @returns true if animation is disabled
|
|
11
|
+
*/
|
|
12
|
+
export function isAnimationDisabled<TConfig extends Record<string, any>>(
|
|
13
|
+
animation: Animation<TConfig> | AnimationRoot<TConfig> | undefined
|
|
14
|
+
): boolean {
|
|
15
|
+
// Check top-level disabled values
|
|
16
|
+
if (animation === false || animation === 'disabled') {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Check state property in config objects
|
|
21
|
+
if (
|
|
22
|
+
typeof animation === 'object' &&
|
|
23
|
+
animation !== null &&
|
|
24
|
+
'state' in animation
|
|
25
|
+
) {
|
|
26
|
+
const state = animation.state;
|
|
27
|
+
return state === false || state === 'disabled';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Check if root animation should cascade disable to all children
|
|
35
|
+
* @param animation - Root animation configuration
|
|
36
|
+
* @returns true if all animations should be disabled (including children)
|
|
37
|
+
*/
|
|
38
|
+
export function shouldDisableAll<TConfig extends Record<string, any>>(
|
|
39
|
+
animation: AnimationRoot<TConfig> | undefined
|
|
40
|
+
): boolean {
|
|
41
|
+
// Check top-level disable-all value
|
|
42
|
+
if (animation === 'disable-all') {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Check state property in config objects
|
|
47
|
+
if (
|
|
48
|
+
typeof animation === 'object' &&
|
|
49
|
+
animation !== null &&
|
|
50
|
+
'state' in animation
|
|
51
|
+
) {
|
|
52
|
+
const state = animation.state;
|
|
53
|
+
return state === 'disable-all';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get animation state including config and disabled status
|
|
61
|
+
* @param animation - Animation configuration
|
|
62
|
+
* @returns Object with animationConfig and isAnimationDisabled
|
|
63
|
+
*/
|
|
64
|
+
export function getAnimationState<TConfig extends Record<string, any>>(
|
|
65
|
+
animation: Animation<TConfig> | undefined
|
|
66
|
+
): {
|
|
67
|
+
animationConfig: TConfig | undefined;
|
|
68
|
+
isAnimationDisabled: boolean;
|
|
69
|
+
} {
|
|
70
|
+
const isDisabled = isAnimationDisabled(animation);
|
|
71
|
+
// Always extract config when it's an object, regardless of disabled state
|
|
72
|
+
// This allows users to customize colors/properties even when animations are disabled
|
|
73
|
+
const config =
|
|
74
|
+
typeof animation === 'object' && animation !== null
|
|
75
|
+
? (animation as TConfig)
|
|
76
|
+
: undefined;
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
animationConfig: config,
|
|
80
|
+
isAnimationDisabled: isDisabled,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Get root animation state including config, disabled status, and cascade flag
|
|
86
|
+
* @param animation - Root animation configuration
|
|
87
|
+
* @returns Object with animationConfig, isAnimationDisabled, and isAllAnimationsDisabled
|
|
88
|
+
*/
|
|
89
|
+
export function getRootAnimationState<TConfig extends Record<string, any>>(
|
|
90
|
+
animation: AnimationRoot<TConfig> | undefined
|
|
91
|
+
): {
|
|
92
|
+
animationConfig: TConfig | undefined;
|
|
93
|
+
isAnimationDisabled: boolean;
|
|
94
|
+
isAllAnimationsDisabled: boolean;
|
|
95
|
+
} {
|
|
96
|
+
const shouldCascade = shouldDisableAll(animation);
|
|
97
|
+
const isDisabled = isAnimationDisabled(animation) || shouldCascade;
|
|
98
|
+
// Always extract config when it's an object, regardless of disabled state
|
|
99
|
+
// This allows users to customize colors/properties even when animations are disabled
|
|
100
|
+
const config =
|
|
101
|
+
typeof animation === 'object' && animation !== null
|
|
102
|
+
? (animation as TConfig)
|
|
103
|
+
: undefined;
|
|
104
|
+
|
|
105
|
+
return {
|
|
106
|
+
animationConfig: config,
|
|
107
|
+
isAnimationDisabled: isDisabled,
|
|
108
|
+
isAllAnimationsDisabled: shouldCascade,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Get animation value property or return default
|
|
114
|
+
* Extracts a property from the animation value config object
|
|
115
|
+
*
|
|
116
|
+
* @param options - Object containing animationValue, property, and defaultValue
|
|
117
|
+
* @param options.animationValue - The animation value configuration
|
|
118
|
+
* @param options.property - Property name to extract
|
|
119
|
+
* @param options.defaultValue - Default value if property is not found
|
|
120
|
+
* @returns The property value or default (never undefined)
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* const scaleValue = getAnimationValueProperty({
|
|
124
|
+
* animationValue: animation?.scale,
|
|
125
|
+
* property: 'value',
|
|
126
|
+
* defaultValue: 0.95
|
|
127
|
+
* });
|
|
128
|
+
*/
|
|
129
|
+
export function getAnimationValueProperty<
|
|
130
|
+
TConfig extends Record<string, any>,
|
|
131
|
+
K extends keyof TConfig,
|
|
132
|
+
D extends NonNullable<TConfig[K]>,
|
|
133
|
+
>(options: {
|
|
134
|
+
animationValue: AnimationValue<TConfig> | undefined;
|
|
135
|
+
property: K;
|
|
136
|
+
defaultValue: D;
|
|
137
|
+
}): NonNullable<TConfig[K]> {
|
|
138
|
+
// If animation value is undefined, return default
|
|
139
|
+
if (options.animationValue === undefined) {
|
|
140
|
+
return options.defaultValue;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Return the property value if it exists, otherwise return default
|
|
144
|
+
return (options.animationValue[options.property] ??
|
|
145
|
+
options.defaultValue) as NonNullable<TConfig[K]>;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Get animation value merged config or return default
|
|
150
|
+
* Merges the animation value config with defaults, useful when you need multiple properties
|
|
151
|
+
*
|
|
152
|
+
* @param options - Object containing animationValue, property, and defaultValue
|
|
153
|
+
* @param options.animationValue - The animation value configuration
|
|
154
|
+
* @param options.property - Property name to extract from the config
|
|
155
|
+
* @param options.defaultValue - Default configuration object
|
|
156
|
+
* @returns The merged config object or default
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* const scaleConfig = getAnimationValueMergedConfig({
|
|
160
|
+
* animationValue: animation?.scale,
|
|
161
|
+
* property: 'timingConfig',
|
|
162
|
+
* defaultValue: { duration: 150 }
|
|
163
|
+
* });
|
|
164
|
+
*/
|
|
165
|
+
export function getAnimationValueMergedConfig<
|
|
166
|
+
TConfig extends Record<string, any>,
|
|
167
|
+
K extends keyof TConfig,
|
|
168
|
+
>(options: {
|
|
169
|
+
animationValue: AnimationValue<TConfig> | undefined;
|
|
170
|
+
property: K;
|
|
171
|
+
defaultValue: TConfig[K];
|
|
172
|
+
}): TConfig[K] {
|
|
173
|
+
// If animation value is undefined, return default
|
|
174
|
+
if (options.animationValue === undefined) {
|
|
175
|
+
return options.defaultValue;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const value = options.animationValue[options.property];
|
|
179
|
+
|
|
180
|
+
// If the specific property value is undefined or not an object, return default
|
|
181
|
+
if (value === undefined || typeof value !== 'object') {
|
|
182
|
+
return options.defaultValue;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Merge with defaults to ensure all properties exist
|
|
186
|
+
return { ...options.defaultValue, ...value };
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Determine if animations should be disabled based on disabled flags
|
|
191
|
+
* Priority: isAllAnimationsDisabled > isAnimationDisabled
|
|
192
|
+
*
|
|
193
|
+
* @param options - Object containing isAnimationDisabled and isAllAnimationsDisabled
|
|
194
|
+
* @param options.isAnimationDisabled - Whether animation is explicitly disabled
|
|
195
|
+
* @param options.isAllAnimationsDisabled - Whether all animations should be disabled (cascading from root/global)
|
|
196
|
+
* @returns true if animations should be disabled, false otherwise
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* const isDisabled = getIsAnimationDisabledValue({
|
|
200
|
+
* isAnimationDisabled: false,
|
|
201
|
+
* isAllAnimationsDisabled: true
|
|
202
|
+
* });
|
|
203
|
+
* // Returns: true (all animations disabled takes priority)
|
|
204
|
+
*/
|
|
205
|
+
export function getIsAnimationDisabledValue(options: {
|
|
206
|
+
isAnimationDisabled: boolean;
|
|
207
|
+
isAllAnimationsDisabled: boolean | undefined;
|
|
208
|
+
}): boolean {
|
|
209
|
+
const { isAnimationDisabled: isDisabled, isAllAnimationsDisabled } = options;
|
|
210
|
+
|
|
211
|
+
// First priority: if all animations are disabled, return true
|
|
212
|
+
if (isAllAnimationsDisabled === true) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Second priority: if this animation is disabled, return true
|
|
217
|
+
if (isDisabled) {
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Default: animations are enabled
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Combine global, parent, and own animation disabled states
|
|
227
|
+
* Priority: Global > Parent > Own (global wins if enabled)
|
|
228
|
+
*
|
|
229
|
+
* @param options - Object containing globalIsAllAnimationsDisabled, parentIsAllAnimationsDisabled, and ownIsAllAnimationsDisabled
|
|
230
|
+
* @param options.globalIsAllAnimationsDisabled - Whether global provider has disable-all (from GlobalAnimationSettingsProvider)
|
|
231
|
+
* @param options.parentIsAllAnimationsDisabled - Whether parent context has disable-all (from AnimationSettingsContext)
|
|
232
|
+
* @param options.ownIsAllAnimationsDisabled - Whether own animation prop has disable-all
|
|
233
|
+
* @returns Combined isAllAnimationsDisabled value (global || parent || own)
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* const combined = getCombinedAnimationDisabledState({
|
|
237
|
+
* globalIsAllAnimationsDisabled: true,
|
|
238
|
+
* parentIsAllAnimationsDisabled: false,
|
|
239
|
+
* ownIsAllAnimationsDisabled: false
|
|
240
|
+
* });
|
|
241
|
+
* // Returns: true (global wins)
|
|
242
|
+
*/
|
|
243
|
+
export function getCombinedAnimationDisabledState(options: {
|
|
244
|
+
globalIsAllAnimationsDisabled?: boolean;
|
|
245
|
+
parentIsAllAnimationsDisabled: boolean | undefined;
|
|
246
|
+
ownIsAllAnimationsDisabled: boolean;
|
|
247
|
+
}): boolean {
|
|
248
|
+
const {
|
|
249
|
+
globalIsAllAnimationsDisabled,
|
|
250
|
+
parentIsAllAnimationsDisabled,
|
|
251
|
+
ownIsAllAnimationsDisabled,
|
|
252
|
+
} = options;
|
|
253
|
+
|
|
254
|
+
// Global always wins if it has disable-all
|
|
255
|
+
if (globalIsAllAnimationsDisabled === true) {
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Parent wins if it has disable-all
|
|
260
|
+
if (parentIsAllAnimationsDisabled === true) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// Otherwise use own value
|
|
265
|
+
return ownIsAllAnimationsDisabled;
|
|
266
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Children, isValidElement, type ReactNode } from 'react';
|
|
2
|
+
import type { SharedValue } from 'react-native-reanimated';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Recursively checks if children contain any React elements.
|
|
6
|
+
* Used to determine if children can be stringified.
|
|
7
|
+
*
|
|
8
|
+
* @param children - React children to check
|
|
9
|
+
* @returns True if children contain React elements, false otherwise
|
|
10
|
+
*/
|
|
11
|
+
function hasReactElements(children: ReactNode): boolean {
|
|
12
|
+
if (children == null || typeof children === 'boolean') {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (isValidElement(children)) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (Array.isArray(children)) {
|
|
21
|
+
return children.some((child) => hasReactElements(child));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Converts React children to a string representation.
|
|
29
|
+
* Handles cases where children might be an array of mixed types (strings, numbers, variables).
|
|
30
|
+
*
|
|
31
|
+
* @param children - React children that might be string, number, array, or React elements
|
|
32
|
+
* @returns A string representation of the children or null if not convertible
|
|
33
|
+
*/
|
|
34
|
+
export function childrenToString(
|
|
35
|
+
children: ReactNode | SharedValue<ReactNode>
|
|
36
|
+
): string | null {
|
|
37
|
+
// Handle null/undefined
|
|
38
|
+
if (children == null) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Handle string directly
|
|
43
|
+
if (typeof children === 'string') {
|
|
44
|
+
return children;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Handle number
|
|
48
|
+
if (typeof children === 'number') {
|
|
49
|
+
return String(children);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Handle boolean (usually we don't want to render true/false as text)
|
|
53
|
+
if (typeof children === 'boolean') {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Check if children is a React element - if so, cannot be stringified
|
|
58
|
+
if (isValidElement(children)) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Handle array of children (e.g., {someVar} text)
|
|
63
|
+
if (Array.isArray(children)) {
|
|
64
|
+
// Check if array contains any React elements - if so, cannot be stringified
|
|
65
|
+
// This handles cases where conditional children create arrays with React elements
|
|
66
|
+
if (hasReactElements(children)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const stringified = children
|
|
71
|
+
.map((child) => {
|
|
72
|
+
// Recursively handle each child
|
|
73
|
+
if (typeof child === 'string' || typeof child === 'number') {
|
|
74
|
+
return String(child);
|
|
75
|
+
}
|
|
76
|
+
// Skip booleans, null, undefined
|
|
77
|
+
if (child == null || typeof child === 'boolean') {
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
80
|
+
// Recursively process nested arrays (only if they don't contain React elements)
|
|
81
|
+
if (Array.isArray(child)) {
|
|
82
|
+
const nested = childrenToString(child);
|
|
83
|
+
return nested ?? '';
|
|
84
|
+
}
|
|
85
|
+
return String(child);
|
|
86
|
+
})
|
|
87
|
+
.join('');
|
|
88
|
+
|
|
89
|
+
return stringified || null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Handle React fragments and other iterable children
|
|
93
|
+
try {
|
|
94
|
+
const childArray = Children.toArray(children as ReactNode);
|
|
95
|
+
if (childArray.length > 0) {
|
|
96
|
+
// Check if any children are React elements
|
|
97
|
+
if (hasReactElements(childArray)) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return childrenToString(childArray);
|
|
101
|
+
}
|
|
102
|
+
} catch {
|
|
103
|
+
// Not iterable or other error, return null
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Checks if React children can be converted to a string.
|
|
111
|
+
*
|
|
112
|
+
* @param children - React children to check
|
|
113
|
+
* @returns True if children can be converted to string, false otherwise
|
|
114
|
+
*/
|
|
115
|
+
export function isStringifiableChildren(children: ReactNode): boolean {
|
|
116
|
+
return childrenToString(children) !== null;
|
|
117
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CombinedStyles } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Helper function to combine style objects with proper type inference
|
|
5
|
+
* This preserves the exact types of each style object, including VariantProps
|
|
6
|
+
* @example
|
|
7
|
+
* const styles = combineStyles({
|
|
8
|
+
* root,
|
|
9
|
+
* item,
|
|
10
|
+
* content
|
|
11
|
+
* });
|
|
12
|
+
*/
|
|
13
|
+
export function combineStyles<T extends Record<string, any>>(
|
|
14
|
+
styles: T
|
|
15
|
+
): CombinedStyles<T> {
|
|
16
|
+
return styles as CombinedStyles<T>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
export interface CreateContextOptions {
|
|
4
|
+
/**
|
|
5
|
+
* If `true`, React will throw if context is `null` or `undefined`
|
|
6
|
+
* In some cases, you might want to support nested context, so you can set it to `false`
|
|
7
|
+
*/
|
|
8
|
+
strict?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Error message to throw if the context is `undefined`
|
|
11
|
+
*/
|
|
12
|
+
errorMessage?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The display name of the context
|
|
15
|
+
*/
|
|
16
|
+
name?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type CreateContextReturn<T> = [
|
|
20
|
+
React.Provider<T>,
|
|
21
|
+
() => T,
|
|
22
|
+
React.Context<T>,
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates a named context, provider, and hook.
|
|
27
|
+
*
|
|
28
|
+
* @param options create context options
|
|
29
|
+
*/
|
|
30
|
+
export function createContext<ContextType>(options: CreateContextOptions = {}) {
|
|
31
|
+
const {
|
|
32
|
+
strict = true,
|
|
33
|
+
errorMessage = 'useContext: `context` is undefined. Seems you forgot to wrap component within the Provider',
|
|
34
|
+
name,
|
|
35
|
+
} = options;
|
|
36
|
+
|
|
37
|
+
const Context = React.createContext<ContextType | undefined>(undefined);
|
|
38
|
+
|
|
39
|
+
Context.displayName = name;
|
|
40
|
+
|
|
41
|
+
function useContext() {
|
|
42
|
+
const context = React.useContext(Context);
|
|
43
|
+
|
|
44
|
+
if (!context && strict) {
|
|
45
|
+
const error = new Error(errorMessage);
|
|
46
|
+
|
|
47
|
+
error.name = 'ContextError';
|
|
48
|
+
Error.captureStackTrace?.(error, useContext);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return context;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return [
|
|
56
|
+
Context.Provider,
|
|
57
|
+
useContext,
|
|
58
|
+
Context,
|
|
59
|
+
] as CreateContextReturn<ContextType>;
|
|
60
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Easing gradient utilities for React Native
|
|
3
|
+
*
|
|
4
|
+
* Original source: https://github.com/phamfoo/react-native-easing-gradient
|
|
5
|
+
* Author: @phamfoo
|
|
6
|
+
* License: MIT
|
|
7
|
+
*
|
|
8
|
+
* This code has been adapted for use in HeroUI Native with modifications
|
|
9
|
+
* for TypeScript compatibility and integration with the animation system.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { Animated } from 'react-native';
|
|
13
|
+
// @ts-expect-error
|
|
14
|
+
const AnimatedInterpolation = Animated.Interpolation;
|
|
15
|
+
|
|
16
|
+
type ColorInterpolateFunction = (input: number) => string;
|
|
17
|
+
|
|
18
|
+
function createInterpolation(
|
|
19
|
+
config: Animated.InterpolationConfigType
|
|
20
|
+
): ColorInterpolateFunction {
|
|
21
|
+
if (AnimatedInterpolation.__createInterpolation) {
|
|
22
|
+
return AnimatedInterpolation.__createInterpolation(config);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return (input) => {
|
|
26
|
+
const interpolation = new AnimatedInterpolation(
|
|
27
|
+
{ __getValue: () => input },
|
|
28
|
+
config
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
return interpolation.__getValue();
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { createInterpolation };
|