@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,420 @@
|
|
|
1
|
+
# Toast
|
|
2
|
+
|
|
3
|
+
Displays temporary notification messages that appear at the top or bottom of the screen.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Toast, useToast } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Toast>
|
|
15
|
+
<Toast.Title>...</Toast.Title>
|
|
16
|
+
<Toast.Description>...</Toast.Description>
|
|
17
|
+
<Toast.Action>...</Toast.Action>
|
|
18
|
+
<Toast.Close />
|
|
19
|
+
</Toast>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- **Toast**: Main container that displays notification messages. Handles positioning, animations, and swipe gestures.
|
|
23
|
+
- **Toast.Title**: Title text of the toast notification. Inherits variant styling from parent Toast context.
|
|
24
|
+
- **Toast.Description**: Descriptive text content displayed below the title.
|
|
25
|
+
- **Toast.Action**: Action button within the toast. Button variant is automatically determined based on toast variant but can be overridden.
|
|
26
|
+
- **Toast.Close**: Close button for dismissing the toast. Renders as an icon-only button that calls hide when pressed.
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
### Usage Pattern 1: Simple String
|
|
31
|
+
|
|
32
|
+
Show a toast with a simple string message.
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
const { toast } = useToast();
|
|
36
|
+
|
|
37
|
+
toast.show('This is a toast message');
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Usage Pattern 2: Config Object
|
|
41
|
+
|
|
42
|
+
Show a toast with label, description, variant, and action button using a config object.
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
const { toast } = useToast();
|
|
46
|
+
|
|
47
|
+
toast.show({
|
|
48
|
+
variant: 'success',
|
|
49
|
+
label: 'You have upgraded your plan',
|
|
50
|
+
description: 'You can continue using HeroUI Chat',
|
|
51
|
+
icon: <Icon name="check" />,
|
|
52
|
+
actionLabel: 'Close',
|
|
53
|
+
onActionPress: ({ hide }) => hide(),
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Usage Pattern 3: Custom Component
|
|
58
|
+
|
|
59
|
+
Show a toast with a fully custom component for complete control over styling and layout.
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
const { toast } = useToast();
|
|
63
|
+
|
|
64
|
+
toast.show({
|
|
65
|
+
component: (props) => (
|
|
66
|
+
<Toast variant="accent" placement="top" {...props}>
|
|
67
|
+
<Toast.Title>Custom Toast</Toast.Title>
|
|
68
|
+
<Toast.Description>This is a custom toast component</Toast.Description>
|
|
69
|
+
<Toast.Close />
|
|
70
|
+
</Toast>
|
|
71
|
+
),
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Note**: Toast items are memoized for performance. If you need to pass external state (like loading state) to a custom toast component, it will not update automatically. Use shared state techniques instead, such as React Context, state management libraries, or refs to ensure state updates propagate to the toast component.
|
|
76
|
+
|
|
77
|
+
### Disabling All Animations
|
|
78
|
+
|
|
79
|
+
Disable all animations including children by using `"disable-all"`. This cascades down to all child components (like Button in Toast.Action).
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
const { toast } = useToast();
|
|
83
|
+
|
|
84
|
+
toast.show({
|
|
85
|
+
variant: 'success',
|
|
86
|
+
label: 'Operation completed',
|
|
87
|
+
description: 'All animations are disabled',
|
|
88
|
+
animation: 'disable-all',
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Or with a custom component:
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
const { toast } = useToast();
|
|
96
|
+
|
|
97
|
+
toast.show({
|
|
98
|
+
component: (props) => (
|
|
99
|
+
<Toast variant="accent" animation="disable-all" {...props}>
|
|
100
|
+
<Toast.Title>No animations</Toast.Title>
|
|
101
|
+
<Toast.Description>
|
|
102
|
+
This toast has all animations disabled
|
|
103
|
+
</Toast.Description>
|
|
104
|
+
<Toast.Action>Action</Toast.Action>
|
|
105
|
+
</Toast>
|
|
106
|
+
),
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Example
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
import { Button, Toast, useToast, useThemeColor } from '@/heroui';
|
|
114
|
+
import { View } from 'react-native';
|
|
115
|
+
|
|
116
|
+
export default function ToastExample() {
|
|
117
|
+
const { toast } = useToast();
|
|
118
|
+
const themeColorForeground = useThemeColor('foreground');
|
|
119
|
+
|
|
120
|
+
return (
|
|
121
|
+
<View className="gap-4 p-4">
|
|
122
|
+
<Button
|
|
123
|
+
onPress={() =>
|
|
124
|
+
toast.show({
|
|
125
|
+
variant: 'success',
|
|
126
|
+
label: 'You have upgraded your plan',
|
|
127
|
+
description: 'You can continue using HeroUI Chat',
|
|
128
|
+
actionLabel: 'Close',
|
|
129
|
+
onActionPress: ({ hide }) => hide(),
|
|
130
|
+
})
|
|
131
|
+
}
|
|
132
|
+
>
|
|
133
|
+
Show Success Toast
|
|
134
|
+
</Button>
|
|
135
|
+
|
|
136
|
+
<Button
|
|
137
|
+
onPress={() =>
|
|
138
|
+
toast.show({
|
|
139
|
+
component: (props) => (
|
|
140
|
+
<Toast variant="accent" {...props}>
|
|
141
|
+
<Toast.Title>Custom Toast</Toast.Title>
|
|
142
|
+
<Toast.Description>
|
|
143
|
+
This uses a custom component
|
|
144
|
+
</Toast.Description>
|
|
145
|
+
<Toast.Action onPress={() => props.hide()}>Undo</Toast.Action>
|
|
146
|
+
<Toast.Close className="absolute top-0 right-0" />
|
|
147
|
+
</Toast>
|
|
148
|
+
),
|
|
149
|
+
})
|
|
150
|
+
}
|
|
151
|
+
>
|
|
152
|
+
Show Custom Toast
|
|
153
|
+
</Button>
|
|
154
|
+
</View>
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/toast.tsx>).
|
|
160
|
+
|
|
161
|
+
## Global Configuration
|
|
162
|
+
|
|
163
|
+
Configure toast behavior globally using `HeroUINativeProvider` config prop. Global configs serve as defaults for all toasts unless overridden locally.
|
|
164
|
+
|
|
165
|
+
> **Note**: For complete provider configuration options, see the [Provider documentation](../../providers/hero-ui-native/provider.md).
|
|
166
|
+
|
|
167
|
+
### Insets
|
|
168
|
+
|
|
169
|
+
Insets control the distance of toast sides from screen edges. Insets are added to safe area insets. To set all toasts to have a side distance of 20px from screen edges, configure insets:
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
<HeroUINativeProvider
|
|
173
|
+
config={{
|
|
174
|
+
toast: {
|
|
175
|
+
insets: {
|
|
176
|
+
top: 20,
|
|
177
|
+
bottom: 20,
|
|
178
|
+
left: 20,
|
|
179
|
+
right: 20,
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
}}
|
|
183
|
+
>
|
|
184
|
+
{children}
|
|
185
|
+
</HeroUINativeProvider>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Content Wrapper with KeyboardAvoidingView
|
|
189
|
+
|
|
190
|
+
Wrap toast content with KeyboardAvoidingView to ensure toasts adjust when the keyboard appears:
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
import {
|
|
194
|
+
KeyboardAvoidingView,
|
|
195
|
+
KeyboardProvider,
|
|
196
|
+
} from 'react-native-keyboard-controller';
|
|
197
|
+
import { HeroUINativeProvider } from '@/heroui';
|
|
198
|
+
import { useCallback } from 'react';
|
|
199
|
+
|
|
200
|
+
function AppContent() {
|
|
201
|
+
const contentWrapper = useCallback(
|
|
202
|
+
(children: React.ReactNode) => (
|
|
203
|
+
<KeyboardAvoidingView
|
|
204
|
+
pointerEvents="box-none"
|
|
205
|
+
behavior="padding"
|
|
206
|
+
keyboardVerticalOffset={12}
|
|
207
|
+
className="flex-1"
|
|
208
|
+
>
|
|
209
|
+
{children}
|
|
210
|
+
</KeyboardAvoidingView>
|
|
211
|
+
),
|
|
212
|
+
[]
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
return (
|
|
216
|
+
<KeyboardProvider>
|
|
217
|
+
<HeroUINativeProvider
|
|
218
|
+
config={{
|
|
219
|
+
toast: {
|
|
220
|
+
contentWrapper,
|
|
221
|
+
},
|
|
222
|
+
}}
|
|
223
|
+
>
|
|
224
|
+
{children}
|
|
225
|
+
</HeroUINativeProvider>
|
|
226
|
+
</KeyboardProvider>
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Default Props
|
|
232
|
+
|
|
233
|
+
Set global defaults for variant, placement, animation, and swipe behavior:
|
|
234
|
+
|
|
235
|
+
```tsx
|
|
236
|
+
<HeroUINativeProvider
|
|
237
|
+
config={{
|
|
238
|
+
toast: {
|
|
239
|
+
defaultProps: {
|
|
240
|
+
variant: 'accent',
|
|
241
|
+
placement: 'bottom',
|
|
242
|
+
isSwipeable: false,
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
}}
|
|
246
|
+
>
|
|
247
|
+
{children}
|
|
248
|
+
</HeroUINativeProvider>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## API Reference
|
|
252
|
+
|
|
253
|
+
### Toast
|
|
254
|
+
|
|
255
|
+
| prop | type | default | description |
|
|
256
|
+
| ----------------------- | ------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------- |
|
|
257
|
+
| `variant` | `'default' \| 'accent' \| 'success' \| 'warning' \| 'danger'` | `'default'` | Visual variant of the toast |
|
|
258
|
+
| `placement` | `'top' \| 'bottom'` | `'top'` | Placement of the toast on screen |
|
|
259
|
+
| `isSwipeable` | `boolean` | `true` | Whether the toast can be swiped to dismiss and dragged with rubber effect |
|
|
260
|
+
| `animation` | `ToastRootAnimation` | - | Animation configuration |
|
|
261
|
+
| `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
|
|
262
|
+
| `className` | `string` | - | Additional CSS class for the toast container |
|
|
263
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
264
|
+
|
|
265
|
+
#### ToastRootAnimation
|
|
266
|
+
|
|
267
|
+
Animation configuration for Toast component. Can be:
|
|
268
|
+
|
|
269
|
+
- `false` or `"disabled"`: Disable only root animations
|
|
270
|
+
- `"disable-all"`: Disable all animations including children
|
|
271
|
+
- `true` or `undefined`: Use default animations
|
|
272
|
+
- `object`: Custom animation configuration
|
|
273
|
+
|
|
274
|
+
| prop | type | default | description |
|
|
275
|
+
| ------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
276
|
+
| `state` | `'disabled' \| 'disable-all' \| boolean` | - | Disable animations while customizing properties |
|
|
277
|
+
| `opacity.value` | `[number, number]` | `[1, 0]` | Opacity interpolation values for fade effect as toasts move beyond visible stack |
|
|
278
|
+
| `opacity.timingConfig` | `WithTimingConfig` | `{ duration: 300 }` | Animation timing configuration for opacity transitions |
|
|
279
|
+
| `translateY.value` | `[number, number]` | `[0, 10]` | Translate Y interpolation values for peek effect of stacked toasts |
|
|
280
|
+
| `translateY.timingConfig` | `WithTimingConfig` | `{ duration: 300 }` | Animation timing configuration for translateY transitions |
|
|
281
|
+
| `scale.value` | `[number, number]` | `[1, 0.97]` | Scale interpolation values for depth effect of stacked toasts |
|
|
282
|
+
| `scale.timingConfig` | `WithTimingConfig` | `{ duration: 300 }` | Animation timing configuration for scale transitions |
|
|
283
|
+
| `entering.top` | `EntryOrExitLayoutType` | `FadeInUp`<br/>`.springify()`<br/>`.withInitialValues({ opacity: 1, transform: [{ translateY: -100 }] })`<br/>`.mass(3)` | Custom entering animation for top placement |
|
|
284
|
+
| `entering.bottom` | `EntryOrExitLayoutType` | `FadeInDown`<br/>`.springify()`<br/>`.withInitialValues({ opacity: 1, transform: [{ translateY: 100 }] })`<br/>`.mass(3)` | Custom entering animation for bottom placement |
|
|
285
|
+
| `exiting.top` | `EntryOrExitLayoutType` | Keyframe animation with<br/>`translateY: -100, scale: 0.97, opacity: 0.5` | Custom exiting animation for top placement |
|
|
286
|
+
| `exiting.bottom` | `EntryOrExitLayoutType` | Keyframe animation with<br/>`translateY: 100, scale: 0.97, opacity: 0.5` | Custom exiting animation for bottom placement |
|
|
287
|
+
|
|
288
|
+
### Toast.Title
|
|
289
|
+
|
|
290
|
+
| prop | type | default | description |
|
|
291
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
292
|
+
| `children` | `React.ReactNode` | - | Content to be rendered as title |
|
|
293
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
294
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
295
|
+
|
|
296
|
+
### Toast.Description
|
|
297
|
+
|
|
298
|
+
| prop | type | default | description |
|
|
299
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
300
|
+
| `children` | `React.ReactNode` | - | Content to be rendered as description |
|
|
301
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
302
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
303
|
+
|
|
304
|
+
### Toast.Action
|
|
305
|
+
|
|
306
|
+
Toast.Action extends all props from [Button](../button/button.md) component. Button variant is automatically determined based on toast variant but can be overridden.
|
|
307
|
+
|
|
308
|
+
| prop | type | default | description |
|
|
309
|
+
| ----------- | ---------------------- | ------- | ---------------------------------------------------------------------------- |
|
|
310
|
+
| `children` | `React.ReactNode` | - | Content to be rendered as action button label |
|
|
311
|
+
| `variant` | `ButtonVariant` | - | Button variant. If not provided, automatically determined from toast variant |
|
|
312
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` | Size of the action button |
|
|
313
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
314
|
+
|
|
315
|
+
For inherited props including `onPress`, `isDisabled`, and all Button props, see [Button API Reference](../button/button.md#api-reference).
|
|
316
|
+
|
|
317
|
+
### Toast.Close
|
|
318
|
+
|
|
319
|
+
Toast.Close extends all props from [Button](../button/button.md) component.
|
|
320
|
+
|
|
321
|
+
| prop | type | default | description |
|
|
322
|
+
| ----------- | ----------------------------------- | ------- | ---------------------------------------------- |
|
|
323
|
+
| `children` | `React.ReactNode` | - | Custom close icon. Defaults to CloseIcon |
|
|
324
|
+
| `iconProps` | `{ size?: number; color?: string }` | - | Props for the default close icon |
|
|
325
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` | Size of the close button |
|
|
326
|
+
| `className` | `string` | - | Additional CSS classes |
|
|
327
|
+
| `onPress` | `(event: any) => void` | - | Custom press handler. Defaults to hiding toast |
|
|
328
|
+
|
|
329
|
+
For inherited props including `isDisabled` and all Button props, see [Button API Reference](../button/button.md#api-reference).
|
|
330
|
+
|
|
331
|
+
### ToastProviderProps
|
|
332
|
+
|
|
333
|
+
Props for configuring toast behavior globally via `HeroUINativeProvider` config prop.
|
|
334
|
+
|
|
335
|
+
| prop | type | default | description |
|
|
336
|
+
| -------------------------- | --------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
337
|
+
| `defaultProps` | `ToastGlobalConfig` | - | Global toast configuration used as defaults for all toasts |
|
|
338
|
+
| `disableFullWindowOverlay` | `boolean` | `false` | When true on iOS, uses View instead of FullWindowOverlay. Enables element inspector; toasts won't appear above native modals |
|
|
339
|
+
| `insets` | `ToastInsets` | - | Insets for spacing from screen edges (added to safe area insets) |
|
|
340
|
+
| `maxVisibleToasts` | `number` | `3` | Maximum number of visible toasts before opacity starts fading |
|
|
341
|
+
| `contentWrapper` | `(children: React.ReactNode) => React.ReactElement` | - | Custom wrapper function to wrap toast content |
|
|
342
|
+
| `children` | `React.ReactNode` | - | Children to render |
|
|
343
|
+
|
|
344
|
+
#### ToastGlobalConfig
|
|
345
|
+
|
|
346
|
+
Global toast configuration used as defaults for all toasts unless overridden locally.
|
|
347
|
+
|
|
348
|
+
| prop | type | description |
|
|
349
|
+
| ------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
|
350
|
+
| `variant` | `'default' \| 'accent' \| 'success' \| 'warning' \| 'danger'` | Visual variant of the toast |
|
|
351
|
+
| `placement` | `'top' \| 'bottom'` | Placement of the toast on screen |
|
|
352
|
+
| `isSwipeable` | `boolean` | Whether the toast can be swiped to dismiss and dragged with rubber effect |
|
|
353
|
+
| `animation` | `ToastRootAnimation` | Animation configuration for toast |
|
|
354
|
+
|
|
355
|
+
#### ToastInsets
|
|
356
|
+
|
|
357
|
+
Insets for spacing from screen edges. Values are added to safe area insets.
|
|
358
|
+
|
|
359
|
+
| prop | type | default | description |
|
|
360
|
+
| -------- | -------- | ------- | --------------------------------------------------------------------------------------------------------- |
|
|
361
|
+
| `top` | `number` | - | Inset from the top edge in pixels (added to safe area inset). Platform-specific: iOS = 0, Android = 12 |
|
|
362
|
+
| `bottom` | `number` | - | Inset from the bottom edge in pixels (added to safe area inset). Platform-specific: iOS = 6, Android = 12 |
|
|
363
|
+
| `left` | `number` | - | Inset from the left edge in pixels (added to safe area inset). Default: 12 |
|
|
364
|
+
| `right` | `number` | - | Inset from the right edge in pixels (added to safe area inset). Default: 12 |
|
|
365
|
+
|
|
366
|
+
## Hooks
|
|
367
|
+
|
|
368
|
+
### useToast
|
|
369
|
+
|
|
370
|
+
Hook to access toast functionality. Must be used within a `ToastProvider` (provided by `HeroUINativeProvider`).
|
|
371
|
+
|
|
372
|
+
| return value | type | description |
|
|
373
|
+
| ---------------- | -------------- | ---------------------------------------- |
|
|
374
|
+
| `toast` | `ToastManager` | Toast manager with show and hide methods |
|
|
375
|
+
| `isToastVisible` | `boolean` | Whether any toast is currently visible |
|
|
376
|
+
|
|
377
|
+
#### ToastManager
|
|
378
|
+
|
|
379
|
+
| method | type | description |
|
|
380
|
+
| ------ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
381
|
+
| `show` | `(options: string \| ToastShowOptions) => string` | Show a toast. Returns the ID of the shown toast. Supports three usage patterns: simple string, config object, or custom component |
|
|
382
|
+
| `hide` | `(ids?: string \| string[] \| 'all') => void` | Hide one or more toasts. No argument hides the last toast, 'all' hides all toasts, single ID or array of IDs hides specific toast(s) |
|
|
383
|
+
|
|
384
|
+
#### ToastShowOptions
|
|
385
|
+
|
|
386
|
+
Options for showing a toast. Can be either a config object with default styling or a custom component.
|
|
387
|
+
|
|
388
|
+
**When using config object (without component):**
|
|
389
|
+
|
|
390
|
+
| prop | type | default | description |
|
|
391
|
+
| --------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------- |
|
|
392
|
+
| `variant` | `'default' \| 'accent' \| 'success' \| 'warning' \| 'danger'` | - | Visual variant of the toast |
|
|
393
|
+
| `placement` | `'top' \| 'bottom'` | - | Placement of the toast on screen |
|
|
394
|
+
| `isSwipeable` | `boolean` | - | Whether the toast can be swiped to dismiss |
|
|
395
|
+
| `animation` | `ToastRootAnimation \| false \| "disabled" \| "disable-all"` | - | Animation configuration for toast |
|
|
396
|
+
| `duration` | `number \| 'persistent'` | `4000` | Duration in milliseconds before auto-hide. Set to 'persistent' to prevent auto-hide |
|
|
397
|
+
| `id` | `string` | - | Optional ID for the toast. If not provided, one will be generated |
|
|
398
|
+
| `label` | `string` | - | Label text for the toast |
|
|
399
|
+
| `description` | `string` | - | Description text for the toast |
|
|
400
|
+
| `actionLabel` | `string` | - | Action button label text |
|
|
401
|
+
| `onActionPress` | `(helpers: { show: (options: string \| ToastShowOptions) => string; hide: (ids?: string \| string[] \| 'all') => void }) => void` | - | Callback function called when the action button is pressed |
|
|
402
|
+
| `icon` | `React.ReactNode` | - | Icon element to display in the toast |
|
|
403
|
+
| `onShow` | `() => void` | - | Callback function called when the toast is shown |
|
|
404
|
+
| `onHide` | `() => void` | - | Callback function called when the toast is hidden |
|
|
405
|
+
|
|
406
|
+
**When using custom component:**
|
|
407
|
+
|
|
408
|
+
| prop | type | default | description |
|
|
409
|
+
| ----------- | ---------------------------------------------------- | ------- | ----------------------------------------------------------------------------------- |
|
|
410
|
+
| `id` | `string` | - | Optional ID for the toast. If not provided, one will be generated |
|
|
411
|
+
| `component` | `(props: ToastComponentProps) => React.ReactElement` | - | A function that receives toast props and returns a React element |
|
|
412
|
+
| `duration` | `number \| 'persistent'` | `4000` | Duration in milliseconds before auto-hide. Set to 'persistent' to prevent auto-hide |
|
|
413
|
+
| `onShow` | `() => void` | - | Callback function called when the toast is shown |
|
|
414
|
+
| `onHide` | `() => void` | - | Callback function called when the toast is hidden |
|
|
415
|
+
|
|
416
|
+
## Special Notes
|
|
417
|
+
|
|
418
|
+
### Element Inspector (iOS)
|
|
419
|
+
|
|
420
|
+
Toast uses FullWindowOverlay on iOS. To enable the React Native element inspector during development, set `disableFullWindowOverlay={true}` on `ToastProvider` (via `config.toast` when using HeroUINativeProvider). Tradeoff: toasts will not appear above native modals when disabled.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { tv } from 'tailwind-variants';
|
|
3
|
+
import { combineStyles } from '../../helpers/internal/utils';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Toast root styles
|
|
7
|
+
*
|
|
8
|
+
* @note ANIMATED PROPERTIES (cannot be set via className):
|
|
9
|
+
* The following properties are animated and cannot be overridden using Tailwind classes:
|
|
10
|
+
* - `opacity` - Animated for visibility transitions when toasts are pushed beyond visible stack limits
|
|
11
|
+
* - `transform` (translateY) - Animated for vertical position transitions when toasts are stacked, and for swipe-to-dismiss gestures
|
|
12
|
+
* - `transform` (scale) - Animated for size scaling transitions when toasts are stacked (toasts behind active one are scaled down)
|
|
13
|
+
* - `height` - Animated for height transitions when toast content changes
|
|
14
|
+
*
|
|
15
|
+
* To customize these properties, use the `animation` prop on `Toast.Root`:
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <Toast.Root
|
|
18
|
+
* animation={{
|
|
19
|
+
* opacity: {
|
|
20
|
+
* value: [1, 0],
|
|
21
|
+
* timingConfig: { duration: 300 }
|
|
22
|
+
* },
|
|
23
|
+
* translateY: {
|
|
24
|
+
* value: [0, 10],
|
|
25
|
+
* timingConfig: { duration: 300 }
|
|
26
|
+
* },
|
|
27
|
+
* scale: {
|
|
28
|
+
* value: [1, 0.97],
|
|
29
|
+
* timingConfig: { duration: 300 }
|
|
30
|
+
* }
|
|
31
|
+
* }}
|
|
32
|
+
* />
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* To completely disable animated styles and apply your own via className or style prop,
|
|
36
|
+
* set `isAnimatedStyleActive={false}` on `Toast.Root`.
|
|
37
|
+
*/
|
|
38
|
+
const root = tv({
|
|
39
|
+
base: 'bg-surface rounded-3xl p-4 shadow-overlay overflow-hidden',
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const label = tv({
|
|
43
|
+
base: 'text-base font-medium',
|
|
44
|
+
variants: {
|
|
45
|
+
variant: {
|
|
46
|
+
default: 'text-foreground',
|
|
47
|
+
accent: 'text-foreground',
|
|
48
|
+
success: 'text-success',
|
|
49
|
+
warning: 'text-warning',
|
|
50
|
+
danger: 'text-danger',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
variant: 'default',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
const description = tv({
|
|
59
|
+
base: 'text-sm text-muted',
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
const action = tv({
|
|
63
|
+
base: '',
|
|
64
|
+
variants: {
|
|
65
|
+
variant: {
|
|
66
|
+
default: '',
|
|
67
|
+
accent: '',
|
|
68
|
+
success: 'bg-success',
|
|
69
|
+
warning: 'bg-warning',
|
|
70
|
+
danger: '',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
defaultVariants: {
|
|
74
|
+
variant: 'default',
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
export const toastClassNames = combineStyles({
|
|
79
|
+
root,
|
|
80
|
+
label,
|
|
81
|
+
description,
|
|
82
|
+
action,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
export const toastStyleSheet = StyleSheet.create({
|
|
86
|
+
root: {
|
|
87
|
+
borderCurve: 'continuous',
|
|
88
|
+
},
|
|
89
|
+
});
|