@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,86 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
PressableRef,
|
|
3
|
+
SlottablePressableProps,
|
|
4
|
+
SlottableTextProps,
|
|
5
|
+
SlottableViewProps,
|
|
6
|
+
TextRef,
|
|
7
|
+
ViewRef,
|
|
8
|
+
} from '../../helpers/internal/types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Context for the toast root component
|
|
12
|
+
*/
|
|
13
|
+
type RootContext = {
|
|
14
|
+
/** Unique identifier for the toast */
|
|
15
|
+
nativeID: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Props for the toast root component
|
|
20
|
+
*/
|
|
21
|
+
type RootProps = SlottableViewProps & {
|
|
22
|
+
/** Unique identifier for the toast */
|
|
23
|
+
id?: string | number;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Props for the toast title component
|
|
28
|
+
*/
|
|
29
|
+
type TitleProps = SlottableTextProps;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Props for the toast description component
|
|
33
|
+
*/
|
|
34
|
+
type DescriptionProps = SlottableTextProps;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Props for the toast action component
|
|
38
|
+
*/
|
|
39
|
+
type ActionProps = SlottablePressableProps & {
|
|
40
|
+
/** Alternative label for the action button for accessibility */
|
|
41
|
+
altText?: string;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Props for the toast close button component
|
|
46
|
+
*/
|
|
47
|
+
type CloseProps = SlottablePressableProps;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Ref type for the toast root
|
|
51
|
+
*/
|
|
52
|
+
type RootRef = ViewRef;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Ref type for the toast title
|
|
56
|
+
*/
|
|
57
|
+
type TitleRef = TextRef;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Ref type for the toast description
|
|
61
|
+
*/
|
|
62
|
+
type DescriptionRef = TextRef;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Ref type for the toast action button
|
|
66
|
+
*/
|
|
67
|
+
type ActionRef = PressableRef;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Ref type for the toast close button
|
|
71
|
+
*/
|
|
72
|
+
type CloseRef = PressableRef;
|
|
73
|
+
|
|
74
|
+
export type {
|
|
75
|
+
ActionProps,
|
|
76
|
+
ActionRef,
|
|
77
|
+
CloseProps,
|
|
78
|
+
CloseRef,
|
|
79
|
+
DescriptionProps,
|
|
80
|
+
DescriptionRef,
|
|
81
|
+
RootContext,
|
|
82
|
+
RootProps,
|
|
83
|
+
RootRef,
|
|
84
|
+
TitleProps,
|
|
85
|
+
TitleRef,
|
|
86
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useReducedMotion } from 'react-native-reanimated';
|
|
3
|
+
import { createContext } from '../../helpers/internal/utils';
|
|
4
|
+
import type {
|
|
5
|
+
GlobalAnimationSettingsContextValue,
|
|
6
|
+
GlobalAnimationSettingsProviderProps,
|
|
7
|
+
} from './types';
|
|
8
|
+
|
|
9
|
+
const [GlobalAnimationSettingsProvider, useGlobalAnimationSettings] =
|
|
10
|
+
createContext<GlobalAnimationSettingsContextValue>({
|
|
11
|
+
name: 'GlobalAnimationSettingsContext',
|
|
12
|
+
strict: false,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export { useGlobalAnimationSettings };
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* GlobalAnimationSettingsProvider Component
|
|
19
|
+
*
|
|
20
|
+
* @description
|
|
21
|
+
* Provider component that controls global animation settings across the application.
|
|
22
|
+
* When animation is set to 'disable-all', all animations will be disabled globally.
|
|
23
|
+
* Additionally, if the user has enabled reduce motion in accessibility settings,
|
|
24
|
+
* all animations will be disabled automatically.
|
|
25
|
+
*
|
|
26
|
+
* This provider wraps AnimationSettingsProvider to cascade the global setting
|
|
27
|
+
* down through the component tree.
|
|
28
|
+
*
|
|
29
|
+
* @param {GlobalAnimationSettingsProviderProps} props - Provider props
|
|
30
|
+
* @param {AnimationRootDisableAll} [props.animation] - Global animation setting
|
|
31
|
+
* @param {ReactNode} props.children - Child components to wrap
|
|
32
|
+
*/
|
|
33
|
+
export const GlobalAnimationSettingsProviderComponent: React.FC<
|
|
34
|
+
GlobalAnimationSettingsProviderProps
|
|
35
|
+
> = ({ animation, children }) => {
|
|
36
|
+
const reducedMotion = useReducedMotion();
|
|
37
|
+
const globalIsAllAnimationsDisabled =
|
|
38
|
+
animation === 'disable-all' || reducedMotion;
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<GlobalAnimationSettingsProvider value={{ globalIsAllAnimationsDisabled }}>
|
|
42
|
+
{children}
|
|
43
|
+
</GlobalAnimationSettingsProvider>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default GlobalAnimationSettingsProviderComponent;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { AnimationRootDisableAll } from '../../helpers/internal/types/animation';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Props for GlobalAnimationSettingsProvider component
|
|
6
|
+
*/
|
|
7
|
+
export interface GlobalAnimationSettingsProviderProps {
|
|
8
|
+
/**
|
|
9
|
+
* Global animation setting
|
|
10
|
+
* When set to 'disable-all', all animations across the app will be disabled
|
|
11
|
+
*/
|
|
12
|
+
animation?: AnimationRootDisableAll;
|
|
13
|
+
/**
|
|
14
|
+
* Child components to render within the provider
|
|
15
|
+
*/
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Context value for global animation settings
|
|
21
|
+
*/
|
|
22
|
+
export interface GlobalAnimationSettingsContextValue {
|
|
23
|
+
/**
|
|
24
|
+
* Whether all animations should be disabled globally
|
|
25
|
+
*/
|
|
26
|
+
globalIsAllAnimationsDisabled: boolean;
|
|
27
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SafeAreaListener } from 'react-native-safe-area-context';
|
|
3
|
+
import { Uniwind } from 'uniwind';
|
|
4
|
+
import { useDevInfo } from '../../helpers/internal/hooks';
|
|
5
|
+
import { PortalHost } from '../../primitives/portal';
|
|
6
|
+
import { GlobalAnimationSettingsProvider } from '../animation-settings';
|
|
7
|
+
import { TextComponentProvider } from '../text-component/provider';
|
|
8
|
+
import { ToastProvider } from '../toast/provider';
|
|
9
|
+
import type { HeroUINativeProviderProps } from './types';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* HeroUINativeProvider Component
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* Main provider component for HeroUI Native that configures the application
|
|
16
|
+
* with global settings. This component should wrap your entire application
|
|
17
|
+
* or the section where you want to use HeroUI Native components.
|
|
18
|
+
*
|
|
19
|
+
* Currently provides:
|
|
20
|
+
* - Global animation settings
|
|
21
|
+
* - Global text component configuration
|
|
22
|
+
* - Toast notification system
|
|
23
|
+
* - Portal management for overlays
|
|
24
|
+
*
|
|
25
|
+
* @param {HeroUINativeProviderProps} props - Provider configuration props
|
|
26
|
+
* @param {ReactNode} props.children - Child components to wrap
|
|
27
|
+
* @param {HeroUINativeConfig} [props.config] - Configuration object
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
const HeroUINativeProvider: React.FC<HeroUINativeProviderProps> = ({
|
|
31
|
+
children,
|
|
32
|
+
config = {},
|
|
33
|
+
}) => {
|
|
34
|
+
const { textProps, toast, animation, devInfo } = config;
|
|
35
|
+
|
|
36
|
+
useDevInfo(devInfo);
|
|
37
|
+
|
|
38
|
+
// Determine if toast should be enabled and get props
|
|
39
|
+
const isToastEnabled = toast !== false && toast !== 'disabled';
|
|
40
|
+
const toastProps = typeof toast === 'object' ? toast : {};
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<SafeAreaListener
|
|
44
|
+
onChange={({ insets }) => {
|
|
45
|
+
Uniwind.updateInsets(insets);
|
|
46
|
+
}}
|
|
47
|
+
>
|
|
48
|
+
<GlobalAnimationSettingsProvider animation={animation}>
|
|
49
|
+
<TextComponentProvider value={{ textProps }}>
|
|
50
|
+
{isToastEnabled ? (
|
|
51
|
+
<ToastProvider {...toastProps}>
|
|
52
|
+
{children}
|
|
53
|
+
<PortalHost />
|
|
54
|
+
</ToastProvider>
|
|
55
|
+
) : (
|
|
56
|
+
<>
|
|
57
|
+
{children}
|
|
58
|
+
<PortalHost />
|
|
59
|
+
</>
|
|
60
|
+
)}
|
|
61
|
+
</TextComponentProvider>
|
|
62
|
+
</GlobalAnimationSettingsProvider>
|
|
63
|
+
</SafeAreaListener>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export default HeroUINativeProvider;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { AnimationRootDisableAll } from '../../helpers/internal/types';
|
|
3
|
+
import type { TextComponentContextValue } from '../text-component/types';
|
|
4
|
+
import type { ToastProviderProps } from '../toast/types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Developer information messages configuration
|
|
8
|
+
*
|
|
9
|
+
* @interface DevInfoConfig
|
|
10
|
+
*
|
|
11
|
+
* @description
|
|
12
|
+
* Controls developer-facing informational messages displayed in the console.
|
|
13
|
+
* These messages provide important guidance and best practices.
|
|
14
|
+
*/
|
|
15
|
+
export interface DevInfoConfig {
|
|
16
|
+
/**
|
|
17
|
+
* Show styling principles information message
|
|
18
|
+
*
|
|
19
|
+
* @description
|
|
20
|
+
* When set to `false`, disables the styling principles information message
|
|
21
|
+
* that appears in the console during development.
|
|
22
|
+
*
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
stylingPrinciples?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Configuration object for HeroUINativeProvider
|
|
30
|
+
*
|
|
31
|
+
* @interface HeroUINativeConfig
|
|
32
|
+
* @extends TextComponentContextValue
|
|
33
|
+
*
|
|
34
|
+
* @description
|
|
35
|
+
* Contains configuration options for the HeroUI Native provider.
|
|
36
|
+
* Additional configuration options can be added in future versions.
|
|
37
|
+
*/
|
|
38
|
+
export interface HeroUINativeConfig extends TextComponentContextValue {
|
|
39
|
+
/**
|
|
40
|
+
* Global animation configuration
|
|
41
|
+
*
|
|
42
|
+
* @description
|
|
43
|
+
* When set to 'disable-all', all animations across the application will be disabled.
|
|
44
|
+
*/
|
|
45
|
+
animation?: AnimationRootDisableAll;
|
|
46
|
+
/**
|
|
47
|
+
* Toast configuration
|
|
48
|
+
*
|
|
49
|
+
* @description
|
|
50
|
+
* Configure the global toast system including insets and wrapper components.
|
|
51
|
+
* Set to `false` or `'disabled'` to disable the toast provider entirely.
|
|
52
|
+
* Provide a `ToastProviderProps` object for custom configuration.
|
|
53
|
+
*/
|
|
54
|
+
toast?: boolean | 'disabled' | ToastProviderProps;
|
|
55
|
+
/**
|
|
56
|
+
* Developer information messages configuration
|
|
57
|
+
*
|
|
58
|
+
* @description
|
|
59
|
+
* Controls developer-facing informational messages displayed in the console.
|
|
60
|
+
* Use this to disable specific informational messages during development.
|
|
61
|
+
*/
|
|
62
|
+
devInfo?: DevInfoConfig;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Props for HeroUINativeProvider component
|
|
67
|
+
*
|
|
68
|
+
* @interface HeroUINativeProviderProps
|
|
69
|
+
*
|
|
70
|
+
* @description
|
|
71
|
+
* Main provider component props that wraps the entire application
|
|
72
|
+
* or a section of it to provide HeroUI Native functionality.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* <HeroUINativeProvider config={{
|
|
77
|
+
* textProps: {
|
|
78
|
+
* allowFontScaling: false,
|
|
79
|
+
* maxFontSizeMultiplier: 1.5
|
|
80
|
+
* }
|
|
81
|
+
* }}>
|
|
82
|
+
* <App />
|
|
83
|
+
* </HeroUINativeProvider>
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export interface HeroUINativeProviderProps {
|
|
87
|
+
/**
|
|
88
|
+
* Child components to render within the provider
|
|
89
|
+
*
|
|
90
|
+
* @description
|
|
91
|
+
* All children will have access to HeroUI Native theme
|
|
92
|
+
* and configuration through the provider.
|
|
93
|
+
*/
|
|
94
|
+
children: ReactNode;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Configuration object for the provider
|
|
98
|
+
*
|
|
99
|
+
* @description
|
|
100
|
+
* Contains all configuration options including global text component configuration.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```tsx
|
|
104
|
+
* const config: HeroUINativeConfig = {
|
|
105
|
+
* textProps: {
|
|
106
|
+
* allowFontScaling: false,
|
|
107
|
+
* adjustsFontSizeToFit: false,
|
|
108
|
+
* maxFontSizeMultiplier: 1.5
|
|
109
|
+
* }
|
|
110
|
+
* };
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
config?: HeroUINativeConfig;
|
|
114
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SafeAreaListener } from 'react-native-safe-area-context';
|
|
3
|
+
import { Uniwind } from 'uniwind';
|
|
4
|
+
import { useDevInfo } from '../../helpers/internal/hooks';
|
|
5
|
+
import { GlobalAnimationSettingsProvider } from '../animation-settings';
|
|
6
|
+
import { TextComponentProvider } from '../text-component/provider';
|
|
7
|
+
import type { HeroUINativeProviderRawProps } from './types';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* HeroUINativeProviderRaw Component
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* Raw provider component for HeroUI Native that configures the application
|
|
14
|
+
* with global settings but without ToastProvider and PortalHost.
|
|
15
|
+
* Use this when you need to manage toast and portal functionality separately
|
|
16
|
+
* (e.g. nested providers or custom setups).
|
|
17
|
+
*
|
|
18
|
+
* Currently provides:
|
|
19
|
+
* - Global animation settings
|
|
20
|
+
* - Global text component configuration
|
|
21
|
+
*
|
|
22
|
+
* @param {HeroUINativeProviderRawProps} props - Provider configuration props
|
|
23
|
+
* @param {ReactNode} props.children - Child components to wrap
|
|
24
|
+
* @param {HeroUINativeConfigRaw} [props.config] - Configuration object
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
const HeroUINativeProviderRaw: React.FC<HeroUINativeProviderRawProps> = ({
|
|
28
|
+
children,
|
|
29
|
+
config = {},
|
|
30
|
+
}) => {
|
|
31
|
+
const { textProps, animation, devInfo } = config;
|
|
32
|
+
|
|
33
|
+
useDevInfo(devInfo);
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<SafeAreaListener
|
|
37
|
+
onChange={({ insets }) => {
|
|
38
|
+
Uniwind.updateInsets(insets);
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<GlobalAnimationSettingsProvider animation={animation}>
|
|
42
|
+
<TextComponentProvider value={{ textProps }}>
|
|
43
|
+
{children}
|
|
44
|
+
</TextComponentProvider>
|
|
45
|
+
</GlobalAnimationSettingsProvider>
|
|
46
|
+
</SafeAreaListener>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default HeroUINativeProviderRaw;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { HeroUINativeConfig } from '../hero-ui-native/types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Configuration object for HeroUINativeProviderRaw
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* A subset of {@link HeroUINativeConfig} containing only the configuration
|
|
9
|
+
* options supported by the raw provider.
|
|
10
|
+
*/
|
|
11
|
+
export type HeroUINativeConfigRaw = Pick<
|
|
12
|
+
HeroUINativeConfig,
|
|
13
|
+
'textProps' | 'animation' | 'devInfo'
|
|
14
|
+
>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Props for HeroUINativeProviderRaw component
|
|
18
|
+
*
|
|
19
|
+
* @interface HeroUINativeProviderRawProps
|
|
20
|
+
*
|
|
21
|
+
* @description
|
|
22
|
+
* Props for the raw variant of the provider that includes only
|
|
23
|
+
* a subset of functionality from {@link HeroUINativeProviderProps}.
|
|
24
|
+
*/
|
|
25
|
+
export interface HeroUINativeProviderRawProps {
|
|
26
|
+
/**
|
|
27
|
+
* Child components to render within the raw provider
|
|
28
|
+
*/
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Configuration object for the raw provider
|
|
33
|
+
*
|
|
34
|
+
* @description
|
|
35
|
+
* A subset of configuration options supported by the raw provider.
|
|
36
|
+
* See {@link HeroUINativeConfigRaw} for available options.
|
|
37
|
+
*/
|
|
38
|
+
config?: HeroUINativeConfigRaw;
|
|
39
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext } from '../../helpers/internal/utils';
|
|
2
|
+
import type { TextComponentContextValue } from './types';
|
|
3
|
+
|
|
4
|
+
const [TextComponentProvider, useTextComponent] =
|
|
5
|
+
createContext<TextComponentContextValue>({
|
|
6
|
+
name: 'TextComponentContext',
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export { TextComponentProvider, useTextComponent };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { TextProps } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Global text component configuration props.
|
|
5
|
+
* These props are carefully selected to include only those that make sense
|
|
6
|
+
* to configure globally across all Text components in the application.
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* Includes accessibility and font scaling settings that typically
|
|
10
|
+
* should be consistent throughout the app for better UX.
|
|
11
|
+
*/
|
|
12
|
+
export type TextComponentProps = {
|
|
13
|
+
/**
|
|
14
|
+
* Specifies whether fonts should be scaled down automatically to fit given style constraints.
|
|
15
|
+
*
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
adjustsFontSizeToFit?: TextProps['adjustsFontSizeToFit'];
|
|
19
|
+
/**
|
|
20
|
+
* Specifies whether fonts should scale to respect Text Size accessibility settings.
|
|
21
|
+
*
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
allowFontScaling?: TextProps['allowFontScaling'];
|
|
25
|
+
/**
|
|
26
|
+
* Specifies the largest possible scale a font can reach when `allowFontScaling` is enabled.
|
|
27
|
+
*
|
|
28
|
+
* Possible values:
|
|
29
|
+
*
|
|
30
|
+
* - `null` or `undefined`: inherit from the parent node or the global default (0)
|
|
31
|
+
* - `0`: no max, ignore parent/global default
|
|
32
|
+
* - `>= 1`: sets the `maxFontSizeMultiplier` of this node to this value
|
|
33
|
+
*
|
|
34
|
+
* @default `undefined`
|
|
35
|
+
*/
|
|
36
|
+
maxFontSizeMultiplier?: TextProps['maxFontSizeMultiplier'];
|
|
37
|
+
/**
|
|
38
|
+
* Specifies the smallest possible scale a font can reach when adjustsFontSizeToFit is enabled. (values 0.01-1.0).
|
|
39
|
+
*
|
|
40
|
+
* iOS only
|
|
41
|
+
*
|
|
42
|
+
* @default `undefined`
|
|
43
|
+
*/
|
|
44
|
+
minimumFontScale?: TextProps['minimumFontScale'];
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Context value for text component configuration
|
|
49
|
+
*/
|
|
50
|
+
export interface TextComponentContextValue {
|
|
51
|
+
textProps?: TextComponentProps;
|
|
52
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { Platform, View } from 'react-native';
|
|
4
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
|
+
import { FullWindowOverlay } from '../../helpers/internal/components';
|
|
6
|
+
import type { ToastInsets } from './types';
|
|
7
|
+
|
|
8
|
+
interface InsetsContainerProps {
|
|
9
|
+
/**
|
|
10
|
+
* When true, uses a regular View instead of FullWindowOverlay on iOS.
|
|
11
|
+
* Enables element inspector but toasts won't appear above native modals.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
disableFullWindowOverlay: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Optional inset values for all edges
|
|
17
|
+
* If not provided, defaults to platform-specific values:
|
|
18
|
+
* - iOS: safe area insets + 0px (top), + 6px (bottom), + 12px (left/right)
|
|
19
|
+
* - Android: safe area insets + 12px (all edges)
|
|
20
|
+
*/
|
|
21
|
+
insets?: ToastInsets;
|
|
22
|
+
/**
|
|
23
|
+
* Custom wrapper function to wrap the toast content
|
|
24
|
+
* Receives children and should return a component that wraps them
|
|
25
|
+
* The wrapper should apply flex: 1 (via className or style) to ensure proper layout
|
|
26
|
+
* Can be any component wrapper - KeyboardAvoidingView, View, or any custom component
|
|
27
|
+
*/
|
|
28
|
+
contentWrapper?: (children: ReactNode) => React.ReactElement;
|
|
29
|
+
/**
|
|
30
|
+
* Children to render inside the container
|
|
31
|
+
*/
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Container component that applies inset padding to position toasts
|
|
37
|
+
* away from screen edges and safe areas
|
|
38
|
+
*
|
|
39
|
+
* Combines custom insets with safe area insets:
|
|
40
|
+
* - If custom inset is provided, it overrides safe area + default padding
|
|
41
|
+
* - If not provided, uses platform-specific defaults:
|
|
42
|
+
* - iOS: safe area inset + 0px for top, + 6px for bottom, + 12px for left/right
|
|
43
|
+
* - Android: safe area inset + 12px for all edges
|
|
44
|
+
*/
|
|
45
|
+
export function InsetsContainer({
|
|
46
|
+
insets,
|
|
47
|
+
contentWrapper,
|
|
48
|
+
children,
|
|
49
|
+
disableFullWindowOverlay,
|
|
50
|
+
}: InsetsContainerProps) {
|
|
51
|
+
const safeAreaInsets = useSafeAreaInsets();
|
|
52
|
+
|
|
53
|
+
const finalInsets = useMemo(() => {
|
|
54
|
+
return {
|
|
55
|
+
top: insets?.top ?? safeAreaInsets.top + (Platform.OS === 'ios' ? 0 : 12),
|
|
56
|
+
bottom:
|
|
57
|
+
insets?.bottom ??
|
|
58
|
+
safeAreaInsets.bottom + (Platform.OS === 'ios' ? 6 : 12),
|
|
59
|
+
left: insets?.left ?? safeAreaInsets.left + 12,
|
|
60
|
+
right: insets?.right ?? safeAreaInsets.right + 12,
|
|
61
|
+
};
|
|
62
|
+
}, [safeAreaInsets, insets]);
|
|
63
|
+
|
|
64
|
+
const content = (
|
|
65
|
+
<View
|
|
66
|
+
className="absolute inset-0 pointer-events-box-none"
|
|
67
|
+
style={{
|
|
68
|
+
paddingTop: finalInsets.top,
|
|
69
|
+
paddingBottom: finalInsets.bottom,
|
|
70
|
+
paddingLeft: finalInsets.left,
|
|
71
|
+
paddingRight: finalInsets.right,
|
|
72
|
+
}}
|
|
73
|
+
>
|
|
74
|
+
{contentWrapper ? contentWrapper(children) : children}
|
|
75
|
+
</View>
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
if (Platform.OS !== 'ios') {
|
|
79
|
+
return content;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<FullWindowOverlay disableFullWindowOverlay={disableFullWindowOverlay}>
|
|
84
|
+
{content}
|
|
85
|
+
</FullWindowOverlay>
|
|
86
|
+
);
|
|
87
|
+
}
|