@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,414 @@
|
|
|
1
|
+
import { forwardRef, useMemo } from 'react';
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
|
+
import { useIsOnSurface } from '../../helpers/external/hooks';
|
|
4
|
+
import { HeroText } from '../../helpers/internal/components';
|
|
5
|
+
import { AnimationSettingsProvider } from '../../helpers/internal/contexts';
|
|
6
|
+
import { useBottomSheetAwareHandlers } from '../../helpers/internal/hooks';
|
|
7
|
+
import { createContext } from '../../helpers/internal/utils';
|
|
8
|
+
import * as InputOTPPrimitives from '../../primitives/input-otp';
|
|
9
|
+
import {
|
|
10
|
+
useInputOTPRootAnimation,
|
|
11
|
+
useInputOTPSlotCaretAnimation,
|
|
12
|
+
useInputOTPSlotValueAnimation,
|
|
13
|
+
} from './input-otp.animation';
|
|
14
|
+
import { DISPLAY_NAME } from './input-otp.constants';
|
|
15
|
+
import { inputOTPClassNames, inputOTPStyleSheet } from './input-otp.styles';
|
|
16
|
+
import type {
|
|
17
|
+
InputOTPGroupProps,
|
|
18
|
+
InputOTPGroupRef,
|
|
19
|
+
InputOTPGroupRenderProps,
|
|
20
|
+
InputOTPRef,
|
|
21
|
+
InputOTPRootProps,
|
|
22
|
+
InputOTPSeparatorProps,
|
|
23
|
+
InputOTPSeparatorRef,
|
|
24
|
+
InputOTPSlotCaretProps,
|
|
25
|
+
InputOTPSlotCaretRef,
|
|
26
|
+
InputOTPSlotContextValue,
|
|
27
|
+
InputOTPSlotPlaceholderProps,
|
|
28
|
+
InputOTPSlotPlaceholderRef,
|
|
29
|
+
InputOTPSlotProps,
|
|
30
|
+
InputOTPSlotRef,
|
|
31
|
+
InputOTPSlotValueProps,
|
|
32
|
+
InputOTPSlotValueRef,
|
|
33
|
+
} from './input-otp.types';
|
|
34
|
+
|
|
35
|
+
const AnimatedText = Animated.createAnimatedComponent(HeroText);
|
|
36
|
+
|
|
37
|
+
const [InputOTPSlotProvider, useInputOTPSlot] =
|
|
38
|
+
createContext<InputOTPSlotContextValue>({
|
|
39
|
+
name: 'InputOTPSlotContext',
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const useInputOTP = InputOTPPrimitives.useInputOTPContext;
|
|
43
|
+
|
|
44
|
+
const REGEXP_ONLY_CHARS = InputOTPPrimitives.REGEXP_ONLY_CHARS;
|
|
45
|
+
const REGEXP_ONLY_DIGITS = InputOTPPrimitives.REGEXP_ONLY_DIGITS;
|
|
46
|
+
const REGEXP_ONLY_DIGITS_AND_CHARS =
|
|
47
|
+
InputOTPPrimitives.REGEXP_ONLY_DIGITS_AND_CHARS;
|
|
48
|
+
|
|
49
|
+
// --------------------------------------------------
|
|
50
|
+
|
|
51
|
+
const InputOTPRoot = forwardRef<InputOTPRef, InputOTPRootProps>(
|
|
52
|
+
(props, ref) => {
|
|
53
|
+
const {
|
|
54
|
+
className,
|
|
55
|
+
animation,
|
|
56
|
+
isBottomSheetAware,
|
|
57
|
+
onFocus: onFocusProp,
|
|
58
|
+
onBlur: onBlurProp,
|
|
59
|
+
...restProps
|
|
60
|
+
} = props;
|
|
61
|
+
|
|
62
|
+
const rootClassName = inputOTPClassNames.root({ className });
|
|
63
|
+
|
|
64
|
+
const { isAllAnimationsDisabled } = useInputOTPRootAnimation({
|
|
65
|
+
animation,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
/** Merge user-provided onFocus/onBlur with bottom sheet keyboard handlers */
|
|
69
|
+
const { onFocus, onBlur } = useBottomSheetAwareHandlers({
|
|
70
|
+
onFocus: onFocusProp,
|
|
71
|
+
onBlur: onBlurProp,
|
|
72
|
+
isBottomSheetAware,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const animationSettingsContextValue = useMemo(
|
|
76
|
+
() => ({
|
|
77
|
+
isAllAnimationsDisabled,
|
|
78
|
+
}),
|
|
79
|
+
[isAllAnimationsDisabled]
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<AnimationSettingsProvider value={animationSettingsContextValue}>
|
|
84
|
+
<InputOTPPrimitives.Root
|
|
85
|
+
ref={ref}
|
|
86
|
+
className={rootClassName}
|
|
87
|
+
onFocus={onFocus}
|
|
88
|
+
onBlur={onBlur}
|
|
89
|
+
{...restProps}
|
|
90
|
+
/>
|
|
91
|
+
</AnimationSettingsProvider>
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
// --------------------------------------------------
|
|
97
|
+
|
|
98
|
+
const InputOTPGroup = forwardRef<InputOTPGroupRef, InputOTPGroupProps>(
|
|
99
|
+
(props, ref) => {
|
|
100
|
+
const { className, children, ...restProps } = props;
|
|
101
|
+
|
|
102
|
+
const { slots, maxLength, value, isFocused, isDisabled, isInvalid } =
|
|
103
|
+
useInputOTP();
|
|
104
|
+
|
|
105
|
+
const groupClassName = inputOTPClassNames.group({ className });
|
|
106
|
+
|
|
107
|
+
const renderProps: InputOTPGroupRenderProps = {
|
|
108
|
+
slots,
|
|
109
|
+
maxLength,
|
|
110
|
+
value,
|
|
111
|
+
isFocused,
|
|
112
|
+
isDisabled,
|
|
113
|
+
isInvalid,
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const content =
|
|
117
|
+
typeof children === 'function' ? children(renderProps) : children;
|
|
118
|
+
|
|
119
|
+
return (
|
|
120
|
+
<InputOTPPrimitives.Group
|
|
121
|
+
ref={ref}
|
|
122
|
+
className={groupClassName}
|
|
123
|
+
{...restProps}
|
|
124
|
+
>
|
|
125
|
+
{content}
|
|
126
|
+
</InputOTPPrimitives.Group>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
// --------------------------------------------------
|
|
132
|
+
|
|
133
|
+
const InputOTPSlot = forwardRef<InputOTPSlotRef, InputOTPSlotProps>(
|
|
134
|
+
(props, ref) => {
|
|
135
|
+
const { className, style, index, variant, children, ...restProps } = props;
|
|
136
|
+
|
|
137
|
+
const {
|
|
138
|
+
slots,
|
|
139
|
+
isDisabled,
|
|
140
|
+
isInvalid,
|
|
141
|
+
variant: groupVariant,
|
|
142
|
+
} = useInputOTP();
|
|
143
|
+
|
|
144
|
+
const slot = slots[index];
|
|
145
|
+
const isActive = slot?.isActive ?? false;
|
|
146
|
+
const isCaretVisible = slot?.isCaretVisible ?? false;
|
|
147
|
+
|
|
148
|
+
const isOnSurfaceAutoDetected = useIsOnSurface();
|
|
149
|
+
const finalVariant =
|
|
150
|
+
variant !== undefined
|
|
151
|
+
? variant
|
|
152
|
+
: groupVariant !== undefined
|
|
153
|
+
? groupVariant
|
|
154
|
+
: isOnSurfaceAutoDetected
|
|
155
|
+
? 'secondary'
|
|
156
|
+
: 'primary';
|
|
157
|
+
|
|
158
|
+
const slotClassName = inputOTPClassNames.slot({
|
|
159
|
+
variant: finalVariant,
|
|
160
|
+
isActive,
|
|
161
|
+
isInvalid,
|
|
162
|
+
isDisabled,
|
|
163
|
+
className,
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
const slotContextValue = useMemo<InputOTPSlotContextValue>(
|
|
167
|
+
() => ({
|
|
168
|
+
slot,
|
|
169
|
+
isActive,
|
|
170
|
+
isCaretVisible,
|
|
171
|
+
variant: finalVariant,
|
|
172
|
+
}),
|
|
173
|
+
[slot, isActive, isCaretVisible, finalVariant]
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
return (
|
|
177
|
+
<InputOTPSlotProvider value={slotContextValue}>
|
|
178
|
+
<InputOTPPrimitives.Slot
|
|
179
|
+
ref={ref}
|
|
180
|
+
index={index}
|
|
181
|
+
className={slotClassName}
|
|
182
|
+
style={[inputOTPStyleSheet.slotRoot, style]}
|
|
183
|
+
{...restProps}
|
|
184
|
+
>
|
|
185
|
+
{children !== undefined ? (
|
|
186
|
+
children
|
|
187
|
+
) : (
|
|
188
|
+
<>
|
|
189
|
+
<InputOTPSlotPlaceholder />
|
|
190
|
+
<InputOTPSlotValue />
|
|
191
|
+
<InputOTPSlotCaret />
|
|
192
|
+
</>
|
|
193
|
+
)}
|
|
194
|
+
</InputOTPPrimitives.Slot>
|
|
195
|
+
</InputOTPSlotProvider>
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
// --------------------------------------------------
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Component that displays the placeholder character for an InputOTP slot
|
|
204
|
+
* Used when the slot is empty and should show a placeholder
|
|
205
|
+
*/
|
|
206
|
+
const InputOTPSlotPlaceholder = forwardRef<
|
|
207
|
+
InputOTPSlotPlaceholderRef,
|
|
208
|
+
InputOTPSlotPlaceholderProps
|
|
209
|
+
>((props, ref) => {
|
|
210
|
+
const { className, style, children, ...restProps } = props;
|
|
211
|
+
|
|
212
|
+
const { slot, isActive } = useInputOTPSlot();
|
|
213
|
+
const { placeholderTextColor, placeholderTextClassName } = useInputOTP();
|
|
214
|
+
|
|
215
|
+
const displayChar = children ?? slot?.placeholderChar ?? '';
|
|
216
|
+
|
|
217
|
+
if (slot?.char || isActive || !displayChar) {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const slotPlaceholderTextStyle = placeholderTextColor
|
|
222
|
+
? { color: placeholderTextColor }
|
|
223
|
+
: undefined;
|
|
224
|
+
|
|
225
|
+
const slotPlaceholderTextClassName = placeholderTextClassName
|
|
226
|
+
? placeholderTextClassName
|
|
227
|
+
: undefined;
|
|
228
|
+
|
|
229
|
+
const slotPlaceholderClassName = inputOTPClassNames.slotPlaceholder({
|
|
230
|
+
className: [slotPlaceholderTextClassName, className],
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
return (
|
|
234
|
+
<HeroText
|
|
235
|
+
ref={ref}
|
|
236
|
+
className={slotPlaceholderClassName}
|
|
237
|
+
style={[slotPlaceholderTextStyle, style]}
|
|
238
|
+
{...restProps}
|
|
239
|
+
>
|
|
240
|
+
{displayChar}
|
|
241
|
+
</HeroText>
|
|
242
|
+
);
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
// --------------------------------------------------
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Component that displays the actual character value for an InputOTP slot
|
|
249
|
+
* Used when the slot has a value and should display it with animations
|
|
250
|
+
*/
|
|
251
|
+
const InputOTPSlotValue = forwardRef<
|
|
252
|
+
InputOTPSlotValueRef,
|
|
253
|
+
InputOTPSlotValueProps
|
|
254
|
+
>((props, ref) => {
|
|
255
|
+
const { className, children, animation, ...restProps } = props;
|
|
256
|
+
|
|
257
|
+
const { slot } = useInputOTPSlot();
|
|
258
|
+
|
|
259
|
+
const displayChar = children ?? slot?.char ?? '';
|
|
260
|
+
|
|
261
|
+
const { wrapperEntering, wrapperExiting, textEntering, textExiting } =
|
|
262
|
+
useInputOTPSlotValueAnimation({
|
|
263
|
+
animation,
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
const slotValueClassName = inputOTPClassNames.slotValue({
|
|
267
|
+
className,
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
if (!displayChar) {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return (
|
|
275
|
+
<Animated.View entering={wrapperEntering} exiting={wrapperExiting}>
|
|
276
|
+
<AnimatedText
|
|
277
|
+
ref={ref}
|
|
278
|
+
entering={textEntering}
|
|
279
|
+
exiting={textExiting}
|
|
280
|
+
className={slotValueClassName}
|
|
281
|
+
{...restProps}
|
|
282
|
+
>
|
|
283
|
+
{displayChar}
|
|
284
|
+
</AnimatedText>
|
|
285
|
+
</Animated.View>
|
|
286
|
+
);
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
// --------------------------------------------------
|
|
290
|
+
|
|
291
|
+
const InputOTPSlotCaret = forwardRef<
|
|
292
|
+
InputOTPSlotCaretRef,
|
|
293
|
+
InputOTPSlotCaretProps
|
|
294
|
+
>((props, ref) => {
|
|
295
|
+
const {
|
|
296
|
+
className,
|
|
297
|
+
animation,
|
|
298
|
+
isAnimatedStyleActive = true,
|
|
299
|
+
pointerEvents = 'none',
|
|
300
|
+
style,
|
|
301
|
+
...restProps
|
|
302
|
+
} = props;
|
|
303
|
+
const { isCaretVisible } = useInputOTPSlot();
|
|
304
|
+
|
|
305
|
+
const { rContainerStyle } = useInputOTPSlotCaretAnimation({
|
|
306
|
+
animation,
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
const slotCaretClassName = inputOTPClassNames.slotCaret({ className });
|
|
310
|
+
|
|
311
|
+
const containerStyle = isAnimatedStyleActive
|
|
312
|
+
? [rContainerStyle, style]
|
|
313
|
+
: style;
|
|
314
|
+
|
|
315
|
+
if (!isCaretVisible) return null;
|
|
316
|
+
|
|
317
|
+
return (
|
|
318
|
+
<Animated.View
|
|
319
|
+
ref={ref}
|
|
320
|
+
className={slotCaretClassName}
|
|
321
|
+
style={containerStyle}
|
|
322
|
+
pointerEvents={pointerEvents}
|
|
323
|
+
{...restProps}
|
|
324
|
+
/>
|
|
325
|
+
);
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
// --------------------------------------------------
|
|
329
|
+
|
|
330
|
+
const InputOTPSeparator = forwardRef<
|
|
331
|
+
InputOTPSeparatorRef,
|
|
332
|
+
InputOTPSeparatorProps
|
|
333
|
+
>((props, ref) => {
|
|
334
|
+
const { className, ...restProps } = props;
|
|
335
|
+
|
|
336
|
+
const separatorClassName = inputOTPClassNames.separator({ className });
|
|
337
|
+
|
|
338
|
+
return (
|
|
339
|
+
<InputOTPPrimitives.Separator
|
|
340
|
+
ref={ref}
|
|
341
|
+
className={separatorClassName}
|
|
342
|
+
{...restProps}
|
|
343
|
+
/>
|
|
344
|
+
);
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
// --------------------------------------------------
|
|
348
|
+
|
|
349
|
+
// Display names
|
|
350
|
+
InputOTPRoot.displayName = DISPLAY_NAME.ROOT;
|
|
351
|
+
InputOTPGroup.displayName = DISPLAY_NAME.GROUP;
|
|
352
|
+
InputOTPSlot.displayName = DISPLAY_NAME.SLOT;
|
|
353
|
+
InputOTPSlotPlaceholder.displayName = DISPLAY_NAME.SLOT_PLACEHOLDER;
|
|
354
|
+
InputOTPSlotValue.displayName = DISPLAY_NAME.SLOT_VALUE;
|
|
355
|
+
InputOTPSlotCaret.displayName = DISPLAY_NAME.SLOT_CARET;
|
|
356
|
+
InputOTPSeparator.displayName = DISPLAY_NAME.SEPARATOR;
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Compound InputOTP component with sub-components
|
|
360
|
+
*
|
|
361
|
+
* @component InputOTP - Main container for OTP input. Manages the input state,
|
|
362
|
+
* handles text changes, and provides context to child components.
|
|
363
|
+
*
|
|
364
|
+
* @component InputOTP.Group - Container for grouping multiple slots together.
|
|
365
|
+
* Use this to visually group related slots (e.g., groups of 3 digits).
|
|
366
|
+
*
|
|
367
|
+
* @component InputOTP.Slot - Individual slot that displays a single character
|
|
368
|
+
* or placeholder. Each slot must have a unique index matching its position
|
|
369
|
+
* in the OTP sequence.
|
|
370
|
+
*
|
|
371
|
+
* @component InputOTP.SlotPlaceholder - Text component that displays the
|
|
372
|
+
* placeholder character for a slot when it's empty. Used by default in Slot
|
|
373
|
+
* if no children provided.
|
|
374
|
+
*
|
|
375
|
+
* @component InputOTP.SlotValue - Text component that displays the actual
|
|
376
|
+
* character value for a slot with animations. Used by default in Slot
|
|
377
|
+
* if no children provided.
|
|
378
|
+
*
|
|
379
|
+
* @component InputOTP.SlotCaret - Animated caret indicator that shows the
|
|
380
|
+
* current input position. Place this inside a Slot to show where the user
|
|
381
|
+
* is currently typing.
|
|
382
|
+
*
|
|
383
|
+
* @component InputOTP.Separator - Visual separator between groups of slots.
|
|
384
|
+
* Use this to visually separate different groups of OTP digits.
|
|
385
|
+
*
|
|
386
|
+
* Props flow from InputOTP to sub-components via context (value, isDisabled,
|
|
387
|
+
* isInvalid, slots). The component handles focus management, text input,
|
|
388
|
+
* and validation automatically.
|
|
389
|
+
*
|
|
390
|
+
* @see Full documentation: https://v3.heroui.com/docs/native/components/input-otp
|
|
391
|
+
*/
|
|
392
|
+
const InputOTP = Object.assign(InputOTPRoot, {
|
|
393
|
+
/** @optional Container for grouping multiple slots together */
|
|
394
|
+
Group: InputOTPGroup,
|
|
395
|
+
/** @optional Individual slot that displays a single character or placeholder */
|
|
396
|
+
Slot: InputOTPSlot,
|
|
397
|
+
/** @optional Text component that displays the placeholder character for a slot */
|
|
398
|
+
SlotPlaceholder: InputOTPSlotPlaceholder,
|
|
399
|
+
/** @optional Text component that displays the actual character value for a slot */
|
|
400
|
+
SlotValue: InputOTPSlotValue,
|
|
401
|
+
/** @optional Animated caret indicator for the current input position */
|
|
402
|
+
SlotCaret: InputOTPSlotCaret,
|
|
403
|
+
/** @optional Visual separator between groups of slots */
|
|
404
|
+
Separator: InputOTPSeparator,
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
export default InputOTP;
|
|
408
|
+
export {
|
|
409
|
+
REGEXP_ONLY_CHARS,
|
|
410
|
+
REGEXP_ONLY_DIGITS,
|
|
411
|
+
REGEXP_ONLY_DIGITS_AND_CHARS,
|
|
412
|
+
useInputOTP,
|
|
413
|
+
useInputOTPSlot,
|
|
414
|
+
};
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import type { TextProps, ViewProps } from 'react-native';
|
|
2
|
+
import type { EntryOrExitLayoutType } from 'react-native-reanimated';
|
|
3
|
+
import type {
|
|
4
|
+
Animation,
|
|
5
|
+
AnimationRootDisableAll,
|
|
6
|
+
AnimationValue,
|
|
7
|
+
TextRef,
|
|
8
|
+
ViewRef,
|
|
9
|
+
} from '../../helpers/internal/types';
|
|
10
|
+
import type * as InputOTPPrimitivesTypes from '../../primitives/input-otp/input-otp.types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Render function props for InputOTP.Group children
|
|
14
|
+
*/
|
|
15
|
+
export interface InputOTPGroupRenderProps {
|
|
16
|
+
/** Array of slot data for each position */
|
|
17
|
+
slots: InputOTPPrimitivesTypes.SlotData[];
|
|
18
|
+
/** Maximum length of the OTP */
|
|
19
|
+
maxLength: number;
|
|
20
|
+
/** Current OTP value */
|
|
21
|
+
value: string;
|
|
22
|
+
/** Whether the input is currently focused */
|
|
23
|
+
isFocused: boolean;
|
|
24
|
+
/** Whether the input is disabled */
|
|
25
|
+
isDisabled: boolean;
|
|
26
|
+
/** Whether the input is in an invalid state */
|
|
27
|
+
isInvalid: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Props for the InputOTP.Root component
|
|
32
|
+
* Extends the primitive RootProps
|
|
33
|
+
*/
|
|
34
|
+
export interface InputOTPRootProps extends InputOTPPrimitivesTypes.RootProps {
|
|
35
|
+
/**
|
|
36
|
+
* Whether the InputOTP automatically handles keyboard state when rendered
|
|
37
|
+
* inside a BottomSheet. When `true` (default), onFocus/onBlur handlers
|
|
38
|
+
* are automatically wired to the bottom sheet's keyboard avoidance system.
|
|
39
|
+
* Set to `false` to disable this automatic behavior.
|
|
40
|
+
* @default true
|
|
41
|
+
*/
|
|
42
|
+
isBottomSheetAware?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Additional CSS classes
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Animation configuration for InputOTP
|
|
49
|
+
* - `"disable-all"`: Disable all animations including children
|
|
50
|
+
* - `undefined`: Use default animations
|
|
51
|
+
*/
|
|
52
|
+
animation?: AnimationRootDisableAll;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Ref type for InputOTP.Root component
|
|
57
|
+
*/
|
|
58
|
+
export type InputOTPRef = InputOTPPrimitivesTypes.RootRef;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Props for the InputOTP.Group component
|
|
62
|
+
* Extends the primitive GroupProps
|
|
63
|
+
*/
|
|
64
|
+
export interface InputOTPGroupProps
|
|
65
|
+
extends Omit<InputOTPPrimitivesTypes.GroupProps, 'children'> {
|
|
66
|
+
/**
|
|
67
|
+
* Additional CSS classes
|
|
68
|
+
*/
|
|
69
|
+
className?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Children elements to be rendered inside the group, or a render function
|
|
72
|
+
* that receives slot data and other context values
|
|
73
|
+
*/
|
|
74
|
+
children?:
|
|
75
|
+
| React.ReactNode
|
|
76
|
+
| ((props: InputOTPGroupRenderProps) => React.ReactNode);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Ref type for InputOTP.Group component
|
|
81
|
+
*/
|
|
82
|
+
export type InputOTPGroupRef = InputOTPPrimitivesTypes.GroupRef;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Props for the InputOTP.Slot component
|
|
86
|
+
* Extends the primitive SlotProps
|
|
87
|
+
*/
|
|
88
|
+
export interface InputOTPSlotProps extends InputOTPPrimitivesTypes.SlotProps {
|
|
89
|
+
/**
|
|
90
|
+
* Variant style for the slot
|
|
91
|
+
* @default 'primary'
|
|
92
|
+
*/
|
|
93
|
+
variant?: 'primary' | 'secondary';
|
|
94
|
+
/**
|
|
95
|
+
* Additional CSS classes
|
|
96
|
+
*/
|
|
97
|
+
className?: string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Ref type for InputOTP.Slot component
|
|
102
|
+
*/
|
|
103
|
+
export type InputOTPSlotRef = InputOTPPrimitivesTypes.SlotRef;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Context value for InputOTP.Slot component
|
|
107
|
+
*/
|
|
108
|
+
export interface InputOTPSlotContextValue {
|
|
109
|
+
/** Slot data for the current slot */
|
|
110
|
+
slot: InputOTPPrimitivesTypes.SlotData | undefined;
|
|
111
|
+
/** Whether this slot is currently active (where cursor is) */
|
|
112
|
+
isActive: boolean;
|
|
113
|
+
/** Whether to show fake caret (when active but empty) */
|
|
114
|
+
isCaretVisible: boolean;
|
|
115
|
+
/** Variant style for the slot */
|
|
116
|
+
variant?: 'primary' | 'secondary';
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Props for the InputOTP.SlotPlaceholder component
|
|
121
|
+
*/
|
|
122
|
+
export interface InputOTPSlotPlaceholderProps extends TextProps {
|
|
123
|
+
/**
|
|
124
|
+
* Text content to display (optional, defaults to slot.placeholderChar)
|
|
125
|
+
*/
|
|
126
|
+
children?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Additional CSS classes
|
|
129
|
+
*/
|
|
130
|
+
className?: string;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Ref type for InputOTP.SlotPlaceholder component
|
|
135
|
+
*/
|
|
136
|
+
export type InputOTPSlotPlaceholderRef = TextRef;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Animation configuration for InputOTP.SlotValue component
|
|
140
|
+
*/
|
|
141
|
+
export type InputOTPSlotValueAnimation = Animation<{
|
|
142
|
+
/**
|
|
143
|
+
* Wrapper animation configuration (fade in/out for the container)
|
|
144
|
+
*/
|
|
145
|
+
wrapper?: AnimationValue<{
|
|
146
|
+
/**
|
|
147
|
+
* Entering animation for wrapper
|
|
148
|
+
* @default FadeIn.duration(250)
|
|
149
|
+
*/
|
|
150
|
+
entering?: EntryOrExitLayoutType;
|
|
151
|
+
/**
|
|
152
|
+
* Exiting animation for wrapper
|
|
153
|
+
* @default FadeOut.duration(100)
|
|
154
|
+
*/
|
|
155
|
+
exiting?: EntryOrExitLayoutType;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Text animation configuration (flip animations for the text)
|
|
159
|
+
*/
|
|
160
|
+
text?: AnimationValue<{
|
|
161
|
+
/**
|
|
162
|
+
* Entering animation for text
|
|
163
|
+
* @default FlipInXDown.duration(250).easing(...)
|
|
164
|
+
*/
|
|
165
|
+
entering?: EntryOrExitLayoutType;
|
|
166
|
+
/**
|
|
167
|
+
* Exiting animation for text
|
|
168
|
+
* @default FlipOutXDown.duration(250).easing(...)
|
|
169
|
+
*/
|
|
170
|
+
exiting?: EntryOrExitLayoutType;
|
|
171
|
+
}>;
|
|
172
|
+
}>;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Props for the InputOTP.SlotValue component
|
|
176
|
+
*/
|
|
177
|
+
export interface InputOTPSlotValueProps extends TextProps {
|
|
178
|
+
/**
|
|
179
|
+
* Text content to display (optional, defaults to slot.char)
|
|
180
|
+
*/
|
|
181
|
+
children?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Additional CSS classes
|
|
184
|
+
*/
|
|
185
|
+
className?: string;
|
|
186
|
+
/**
|
|
187
|
+
* Animation configuration for SlotValue
|
|
188
|
+
* Controls both wrapper (fade) and text (flip) animations
|
|
189
|
+
*/
|
|
190
|
+
animation?: InputOTPSlotValueAnimation;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Ref type for InputOTP.SlotValue component
|
|
195
|
+
*/
|
|
196
|
+
export type InputOTPSlotValueRef = TextRef;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Animation configuration for InputOTP.SlotCaret component
|
|
200
|
+
*/
|
|
201
|
+
export type InputOTPSlotCaretAnimation = Animation<{
|
|
202
|
+
/**
|
|
203
|
+
* Opacity animation configuration
|
|
204
|
+
*/
|
|
205
|
+
opacity?: AnimationValue<{
|
|
206
|
+
/**
|
|
207
|
+
* Opacity values [min, max]
|
|
208
|
+
* @default [0, 1]
|
|
209
|
+
*/
|
|
210
|
+
value?: [number, number];
|
|
211
|
+
/**
|
|
212
|
+
* Animation duration in milliseconds
|
|
213
|
+
* @default 500
|
|
214
|
+
*/
|
|
215
|
+
duration?: number;
|
|
216
|
+
}>;
|
|
217
|
+
/**
|
|
218
|
+
* Height animation configuration
|
|
219
|
+
*/
|
|
220
|
+
height?: AnimationValue<{
|
|
221
|
+
/**
|
|
222
|
+
* Height values [min, max]
|
|
223
|
+
* @default [16, 18]
|
|
224
|
+
*/
|
|
225
|
+
value?: [number, number];
|
|
226
|
+
/**
|
|
227
|
+
* Animation duration in milliseconds
|
|
228
|
+
* @default 500
|
|
229
|
+
*/
|
|
230
|
+
duration?: number;
|
|
231
|
+
}>;
|
|
232
|
+
}>;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Props for the InputOTP.SlotCaret component
|
|
236
|
+
*/
|
|
237
|
+
export interface InputOTPSlotCaretProps extends ViewProps {
|
|
238
|
+
/**
|
|
239
|
+
* Additional CSS classes
|
|
240
|
+
*/
|
|
241
|
+
className?: string;
|
|
242
|
+
/**
|
|
243
|
+
* Animation configuration for SlotCaret
|
|
244
|
+
*/
|
|
245
|
+
animation?: InputOTPSlotCaretAnimation;
|
|
246
|
+
/**
|
|
247
|
+
* Whether animated styles (react-native-reanimated) are active
|
|
248
|
+
* When `false`, the animated style is removed and you can implement custom logic
|
|
249
|
+
* This prop should only be used when you want to write custom styling logic instead of the default animated styles
|
|
250
|
+
* @default true
|
|
251
|
+
*/
|
|
252
|
+
isAnimatedStyleActive?: boolean;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Ref type for InputOTP.SlotCaret component
|
|
257
|
+
*/
|
|
258
|
+
export type InputOTPSlotCaretRef = ViewRef;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Props for the InputOTP.Separator component
|
|
262
|
+
* Extends the primitive SeparatorProps
|
|
263
|
+
*/
|
|
264
|
+
export interface InputOTPSeparatorProps
|
|
265
|
+
extends InputOTPPrimitivesTypes.SeparatorProps {
|
|
266
|
+
/**
|
|
267
|
+
* Additional CSS classes
|
|
268
|
+
*/
|
|
269
|
+
className?: string;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Ref type for InputOTP.Separator component
|
|
274
|
+
*/
|
|
275
|
+
export type InputOTPSeparatorRef = InputOTPPrimitivesTypes.SeparatorRef;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useCombinedAnimationDisabledState } from '../../helpers/internal/hooks';
|
|
2
|
+
import type { AnimationRootDisableAll } from '../../helpers/internal/types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Animation hook for Label root component
|
|
6
|
+
* Handles root-level animation configuration and provides context for child components
|
|
7
|
+
*/
|
|
8
|
+
export function useLabelRootAnimation(options: {
|
|
9
|
+
animation: AnimationRootDisableAll | undefined;
|
|
10
|
+
}) {
|
|
11
|
+
const { animation } = options;
|
|
12
|
+
|
|
13
|
+
const isAllAnimationsDisabled = useCombinedAnimationDisabledState(animation);
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
isAllAnimationsDisabled,
|
|
17
|
+
};
|
|
18
|
+
}
|