@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,129 @@
|
|
|
1
|
+
# Description
|
|
2
|
+
|
|
3
|
+
Text component for providing accessible descriptions and helper text for form fields and other UI elements.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Description } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Description>...</Description>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- **Description**: Text component that displays description or helper text with muted styling. Can be linked to form fields via `nativeID` for accessibility support.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### Basic Usage
|
|
22
|
+
|
|
23
|
+
Display description text with default muted styling.
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
<Description>This is a helpful description.</Description>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### With Form Fields
|
|
30
|
+
|
|
31
|
+
Provide accessible descriptions for form fields using the `nativeID` prop.
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<TextField>
|
|
35
|
+
<Label>Email address</Label>
|
|
36
|
+
<Input
|
|
37
|
+
placeholder="Enter your email"
|
|
38
|
+
keyboardType="email-address"
|
|
39
|
+
autoCapitalize="none"
|
|
40
|
+
/>
|
|
41
|
+
<Description nativeID="email-desc">
|
|
42
|
+
We'll never share your email with anyone else.
|
|
43
|
+
</Description>
|
|
44
|
+
</TextField>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Accessibility Linking
|
|
48
|
+
|
|
49
|
+
Link descriptions to form fields for screen reader support by using `nativeID` and `aria-describedby`.
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<TextField>
|
|
53
|
+
<Label>Password</Label>
|
|
54
|
+
<Input
|
|
55
|
+
placeholder="Create a password"
|
|
56
|
+
secureTextEntry
|
|
57
|
+
aria-describedby="password-desc"
|
|
58
|
+
/>
|
|
59
|
+
<Description nativeID="password-desc">
|
|
60
|
+
Use at least 8 characters with a mix of letters, numbers, and symbols.
|
|
61
|
+
</Description>
|
|
62
|
+
</TextField>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Hiding on Invalid State
|
|
66
|
+
|
|
67
|
+
Control whether the description should be hidden when the form field is invalid using the `hideOnInvalid` prop.
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<TextField isInvalid={isInvalid}>
|
|
71
|
+
<Label>Email</Label>
|
|
72
|
+
<Input placeholder="Enter your email" />
|
|
73
|
+
<Description hideOnInvalid>
|
|
74
|
+
We'll never share your email with anyone else.
|
|
75
|
+
</Description>
|
|
76
|
+
<FieldError>Please enter a valid email address</FieldError>
|
|
77
|
+
</TextField>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
When `hideOnInvalid` is `true`, the description will be hidden when the field is invalid. When `false` (default), the description remains visible even when invalid.
|
|
81
|
+
|
|
82
|
+
## Example
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { Description, TextField } from '@/heroui';
|
|
86
|
+
import { View } from 'react-native';
|
|
87
|
+
|
|
88
|
+
export default function DescriptionExample() {
|
|
89
|
+
return (
|
|
90
|
+
<View className="flex-1 justify-center px-5 gap-8">
|
|
91
|
+
<TextField>
|
|
92
|
+
<Label>Email address</Label>
|
|
93
|
+
<Input
|
|
94
|
+
placeholder="Enter your email"
|
|
95
|
+
keyboardType="email-address"
|
|
96
|
+
autoCapitalize="none"
|
|
97
|
+
/>
|
|
98
|
+
<Description nativeID="email-desc">
|
|
99
|
+
We'll never share your email with anyone else.
|
|
100
|
+
</Description>
|
|
101
|
+
</TextField>
|
|
102
|
+
<TextField>
|
|
103
|
+
<Label>Password</Label>
|
|
104
|
+
<Input placeholder="Create a password" secureTextEntry />
|
|
105
|
+
<Description nativeID="password-desc">
|
|
106
|
+
Use at least 8 characters with a mix of letters, numbers, and symbols.
|
|
107
|
+
</Description>
|
|
108
|
+
</TextField>
|
|
109
|
+
</View>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/description.tsx>).
|
|
115
|
+
|
|
116
|
+
## API Reference
|
|
117
|
+
|
|
118
|
+
### Description
|
|
119
|
+
|
|
120
|
+
| prop | type | default | description |
|
|
121
|
+
| --------------- | ----------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
|
|
122
|
+
| `children` | `React.ReactNode` | - | Description text content |
|
|
123
|
+
| `className` | `string` | - | Additional CSS classes to apply |
|
|
124
|
+
| `nativeID` | `string` | - | Native ID for accessibility. Used to link description to form fields via aria-describedby. |
|
|
125
|
+
| `isInvalid` | `boolean` | - | Whether the description is in an invalid state (overrides context) |
|
|
126
|
+
| `isDisabled` | `boolean` | - | Whether the description is disabled (overrides context) |
|
|
127
|
+
| `hideOnInvalid` | `boolean` | `false` | Whether to hide the description when invalid |
|
|
128
|
+
| `animation` | `DescriptionAnimation \| undefined` | - | Animation configuration for description transitions |
|
|
129
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
import { combineStyles } from '../../helpers/internal/utils';
|
|
3
|
+
|
|
4
|
+
const root = tv({
|
|
5
|
+
base: 'text-sm text-muted',
|
|
6
|
+
variants: {
|
|
7
|
+
isInsideField: {
|
|
8
|
+
true: 'px-1.5',
|
|
9
|
+
},
|
|
10
|
+
isInvalid: {
|
|
11
|
+
true: 'text-danger',
|
|
12
|
+
},
|
|
13
|
+
isDisabled: {
|
|
14
|
+
true: 'opacity-disabled',
|
|
15
|
+
false: '',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
isDisabled: false,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const descriptionClassNames = combineStyles({
|
|
24
|
+
root,
|
|
25
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
|
+
import { HeroText } from '../../helpers/internal/components';
|
|
4
|
+
import { useFormField } from '../../helpers/internal/contexts';
|
|
5
|
+
import type { TextRef } from '../../helpers/internal/types';
|
|
6
|
+
import { useDescriptionAnimation } from './description.animation';
|
|
7
|
+
import { DISPLAY_NAME } from './description.constants';
|
|
8
|
+
import { descriptionClassNames } from './description.styles';
|
|
9
|
+
import type { DescriptionProps } from './description.types';
|
|
10
|
+
|
|
11
|
+
const AnimatedText = Animated.createAnimatedComponent(HeroText);
|
|
12
|
+
|
|
13
|
+
// --------------------------------------------------
|
|
14
|
+
|
|
15
|
+
const Description = forwardRef<TextRef, DescriptionProps>((props, ref) => {
|
|
16
|
+
const {
|
|
17
|
+
children,
|
|
18
|
+
className,
|
|
19
|
+
nativeID,
|
|
20
|
+
isInvalid: localIsInvalid,
|
|
21
|
+
isDisabled: localIsDisabled,
|
|
22
|
+
hideOnInvalid = false,
|
|
23
|
+
animation,
|
|
24
|
+
...restProps
|
|
25
|
+
} = props;
|
|
26
|
+
|
|
27
|
+
const formField = useFormField();
|
|
28
|
+
|
|
29
|
+
const isInvalid =
|
|
30
|
+
localIsInvalid !== undefined
|
|
31
|
+
? localIsInvalid
|
|
32
|
+
: (formField?.isInvalid ?? false);
|
|
33
|
+
|
|
34
|
+
const isDisabled =
|
|
35
|
+
localIsDisabled !== undefined
|
|
36
|
+
? localIsDisabled
|
|
37
|
+
: (formField?.isDisabled ?? false);
|
|
38
|
+
|
|
39
|
+
const isInsideField = formField?.hasFieldPadding ?? false;
|
|
40
|
+
|
|
41
|
+
const rootClassName = descriptionClassNames.root({
|
|
42
|
+
isInvalid,
|
|
43
|
+
isDisabled,
|
|
44
|
+
isInsideField,
|
|
45
|
+
className,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const { entering, exiting } = useDescriptionAnimation({
|
|
49
|
+
animation,
|
|
50
|
+
hideOnInvalid,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (isInvalid && hideOnInvalid) return null;
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<AnimatedText
|
|
57
|
+
ref={ref}
|
|
58
|
+
entering={entering}
|
|
59
|
+
exiting={exiting}
|
|
60
|
+
className={rootClassName}
|
|
61
|
+
nativeID={nativeID}
|
|
62
|
+
{...restProps}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
</AnimatedText>
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// --------------------------------------------------
|
|
70
|
+
|
|
71
|
+
Description.displayName = DISPLAY_NAME.DESCRIPTION;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Description component for form fields and other UI elements.
|
|
75
|
+
*
|
|
76
|
+
* Provides accessible description text with proper styling. Can be linked to
|
|
77
|
+
* form fields via the nativeID prop for accessibility support.
|
|
78
|
+
*
|
|
79
|
+
* @see Full documentation: https://v3.heroui.com/docs/native/components/description
|
|
80
|
+
*/
|
|
81
|
+
export default Description;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { TextProps } from 'react-native';
|
|
2
|
+
import type {
|
|
3
|
+
AnimatedProps,
|
|
4
|
+
EntryOrExitLayoutType,
|
|
5
|
+
} from 'react-native-reanimated';
|
|
6
|
+
import type {
|
|
7
|
+
AnimationRoot,
|
|
8
|
+
AnimationValue,
|
|
9
|
+
TextRef,
|
|
10
|
+
} from '../../helpers/internal/types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Animation configuration for Description component
|
|
14
|
+
* Used by the Description component for animation support
|
|
15
|
+
*/
|
|
16
|
+
export type DescriptionAnimation = AnimationRoot<{
|
|
17
|
+
entering?: AnimationValue<{
|
|
18
|
+
/**
|
|
19
|
+
* Custom entering animation for description
|
|
20
|
+
*/
|
|
21
|
+
value?: EntryOrExitLayoutType;
|
|
22
|
+
}>;
|
|
23
|
+
exiting?: AnimationValue<{
|
|
24
|
+
/**
|
|
25
|
+
* Custom exiting animation for description
|
|
26
|
+
*/
|
|
27
|
+
value?: EntryOrExitLayoutType;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Props for the Description component
|
|
33
|
+
*/
|
|
34
|
+
export interface DescriptionProps
|
|
35
|
+
extends Omit<AnimatedProps<TextProps>, 'entering' | 'exiting'> {
|
|
36
|
+
/**
|
|
37
|
+
* Description text content
|
|
38
|
+
*/
|
|
39
|
+
children?: React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the description is in an invalid state (overrides context)
|
|
42
|
+
* @default undefined
|
|
43
|
+
*/
|
|
44
|
+
isInvalid?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the description is disabled (overrides context)
|
|
47
|
+
* @default undefined
|
|
48
|
+
*/
|
|
49
|
+
isDisabled?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Whether to hide the description when invalid
|
|
52
|
+
* @default false
|
|
53
|
+
*/
|
|
54
|
+
hideOnInvalid?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Additional CSS classes
|
|
57
|
+
*/
|
|
58
|
+
className?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Native ID for accessibility. Used to link description to form fields via aria-describedby.
|
|
61
|
+
* When provided, form fields can reference this description using aria-describedby={nativeID}.
|
|
62
|
+
*/
|
|
63
|
+
nativeID?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Animation configuration for description
|
|
66
|
+
* - `true` or `undefined`: Use default animations
|
|
67
|
+
* - `false` or `"disabled"`: Disable only description animations (children can still animate)
|
|
68
|
+
* - `"disable-all"`: Disable all animations including children (cascades down)
|
|
69
|
+
* - `object`: Custom animation configuration
|
|
70
|
+
*/
|
|
71
|
+
animation?: DescriptionAnimation;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Reference type for the Description component
|
|
76
|
+
*/
|
|
77
|
+
export type DescriptionRef = TextRef;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext } from '../../helpers/internal/utils';
|
|
2
|
+
import type { DialogAnimationContextValue } from './dialog.types';
|
|
3
|
+
|
|
4
|
+
const [DialogAnimationProvider, useDialogAnimation] =
|
|
5
|
+
createContext<DialogAnimationContextValue>({
|
|
6
|
+
name: 'DialogAnimationContext',
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export { DialogAnimationProvider, useDialogAnimation };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display names for Dialog components
|
|
3
|
+
*/
|
|
4
|
+
export const DISPLAY_NAME = {
|
|
5
|
+
ROOT: 'HeroUINative.Dialog.Root',
|
|
6
|
+
TRIGGER: 'HeroUINative.Dialog.Trigger',
|
|
7
|
+
PORTAL: 'HeroUINative.Dialog.Portal',
|
|
8
|
+
OVERLAY: 'HeroUINative.Dialog.Overlay',
|
|
9
|
+
CONTENT: 'HeroUINative.Dialog.Content',
|
|
10
|
+
CLOSE: 'HeroUINative.Dialog.Close',
|
|
11
|
+
TITLE: 'HeroUINative.Dialog.Title',
|
|
12
|
+
DESCRIPTION: 'HeroUINative.Dialog.Description',
|
|
13
|
+
};
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# Dialog
|
|
2
|
+
|
|
3
|
+
Displays a modal overlay with animated transitions and gesture-based dismissal.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Dialog } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Dialog>
|
|
15
|
+
<Dialog.Trigger>...</Dialog.Trigger>
|
|
16
|
+
<Dialog.Portal>
|
|
17
|
+
<Dialog.Overlay>...</Dialog.Overlay>
|
|
18
|
+
<Dialog.Content>
|
|
19
|
+
<Dialog.Close>...</Dialog.Close>
|
|
20
|
+
<Dialog.Title>...</Dialog.Title>
|
|
21
|
+
<Dialog.Description>...</Dialog.Description>
|
|
22
|
+
</Dialog.Content>
|
|
23
|
+
</Dialog.Portal>
|
|
24
|
+
</Dialog>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- **Dialog**: Root component that manages open state and provides context to child components.
|
|
28
|
+
- **Dialog.Trigger**: Pressable element that opens the dialog when pressed.
|
|
29
|
+
- **Dialog.Portal**: Renders dialog content in a portal with centered layout and animation control.
|
|
30
|
+
- **Dialog.Overlay**: Background overlay that appears behind the dialog content, typically closes dialog when pressed.
|
|
31
|
+
- **Dialog.Content**: Main dialog container with gesture support for drag-to-dismiss.
|
|
32
|
+
- **Dialog.Close**: Close button for the dialog. Can accept custom children or uses default close icon.
|
|
33
|
+
- **Dialog.Title**: Dialog title text with semantic heading role.
|
|
34
|
+
- **Dialog.Description**: Dialog description text that provides additional context.
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
### Basic Dialog
|
|
39
|
+
|
|
40
|
+
Simple dialog with title, description, and close button.
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
<Dialog isOpen={isOpen} onOpenChange={setIsOpen}>
|
|
44
|
+
<Dialog.Trigger asChild>
|
|
45
|
+
<Button>Open Dialog</Button>
|
|
46
|
+
</Dialog.Trigger>
|
|
47
|
+
<Dialog.Portal>
|
|
48
|
+
<Dialog.Overlay />
|
|
49
|
+
<Dialog.Content>
|
|
50
|
+
<Dialog.Close />
|
|
51
|
+
<Dialog.Title>...</Dialog.Title>
|
|
52
|
+
<Dialog.Description>...</Dialog.Description>
|
|
53
|
+
</Dialog.Content>
|
|
54
|
+
</Dialog.Portal>
|
|
55
|
+
</Dialog>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Scrollable Content
|
|
59
|
+
|
|
60
|
+
Handle long content with scroll views.
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<Dialog isOpen={isOpen} onOpenChange={setIsOpen}>
|
|
64
|
+
<Dialog.Trigger>...</Dialog.Trigger>
|
|
65
|
+
<Dialog.Portal>
|
|
66
|
+
<Dialog.Overlay />
|
|
67
|
+
<Dialog.Content>
|
|
68
|
+
<Dialog.Close />
|
|
69
|
+
<Dialog.Title>...</Dialog.Title>
|
|
70
|
+
<View className="h-[300px]">
|
|
71
|
+
<ScrollView>...</ScrollView>
|
|
72
|
+
</View>
|
|
73
|
+
</Dialog.Content>
|
|
74
|
+
</Dialog.Portal>
|
|
75
|
+
</Dialog>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Form Dialog
|
|
79
|
+
|
|
80
|
+
Dialog with text inputs and keyboard handling.
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
<Dialog isOpen={isOpen} onOpenChange={setIsOpen}>
|
|
84
|
+
<Dialog.Trigger>...</Dialog.Trigger>
|
|
85
|
+
<Dialog.Portal>
|
|
86
|
+
<Dialog.Overlay />
|
|
87
|
+
<KeyboardAvoidingView behavior="padding">
|
|
88
|
+
<Dialog.Content>
|
|
89
|
+
<Dialog.Close />
|
|
90
|
+
<Dialog.Title>...</Dialog.Title>
|
|
91
|
+
<TextField>...</TextField>
|
|
92
|
+
<Button onPress={handleSubmit}>Submit</Button>
|
|
93
|
+
</Dialog.Content>
|
|
94
|
+
</KeyboardAvoidingView>
|
|
95
|
+
</Dialog.Portal>
|
|
96
|
+
</Dialog>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Example
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import { Button, Dialog } from '@/heroui';
|
|
103
|
+
import { View } from 'react-native';
|
|
104
|
+
import { useState } from 'react';
|
|
105
|
+
|
|
106
|
+
export default function DialogExample() {
|
|
107
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
108
|
+
|
|
109
|
+
return (
|
|
110
|
+
<Dialog isOpen={isOpen} onOpenChange={setIsOpen}>
|
|
111
|
+
<Dialog.Trigger asChild>
|
|
112
|
+
<Button variant="primary">Open Dialog</Button>
|
|
113
|
+
</Dialog.Trigger>
|
|
114
|
+
<Dialog.Portal>
|
|
115
|
+
<Dialog.Overlay />
|
|
116
|
+
<Dialog.Content>
|
|
117
|
+
<Dialog.Close variant="ghost" />
|
|
118
|
+
<View className="mb-5 gap-1.5">
|
|
119
|
+
<Dialog.Title>Confirm Action</Dialog.Title>
|
|
120
|
+
<Dialog.Description>
|
|
121
|
+
Are you sure you want to proceed with this action? This cannot be
|
|
122
|
+
undone.
|
|
123
|
+
</Dialog.Description>
|
|
124
|
+
</View>
|
|
125
|
+
<View className="flex-row justify-end gap-3">
|
|
126
|
+
<Button variant="ghost" size="sm" onPress={() => setIsOpen(false)}>
|
|
127
|
+
Cancel
|
|
128
|
+
</Button>
|
|
129
|
+
<Button size="sm">Confirm</Button>
|
|
130
|
+
</View>
|
|
131
|
+
</Dialog.Content>
|
|
132
|
+
</Dialog.Portal>
|
|
133
|
+
</Dialog>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/dialog.tsx>).
|
|
139
|
+
|
|
140
|
+
## API Reference
|
|
141
|
+
|
|
142
|
+
### Dialog
|
|
143
|
+
|
|
144
|
+
| prop | type | default | description |
|
|
145
|
+
| --------------- | -------------------------- | ------- | -------------------------------------------------- |
|
|
146
|
+
| `children` | `React.ReactNode` | - | Dialog content and trigger elements |
|
|
147
|
+
| `isOpen` | `boolean` | - | Controlled open state of the dialog |
|
|
148
|
+
| `isDefaultOpen` | `boolean` | `false` | Initial open state when uncontrolled |
|
|
149
|
+
| `animation` | `AnimationRootDisableAll` | - | Animation configuration |
|
|
150
|
+
| `onOpenChange` | `(value: boolean) => void` | - | Callback when open state changes |
|
|
151
|
+
| `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
|
|
152
|
+
|
|
153
|
+
#### AnimationRootDisableAll
|
|
154
|
+
|
|
155
|
+
Animation configuration for dialog root component. Can be:
|
|
156
|
+
|
|
157
|
+
- `false` or `"disabled"`: Disable only root animations
|
|
158
|
+
- `"disable-all"`: Disable all animations including children
|
|
159
|
+
- `true` or `undefined`: Use default animations
|
|
160
|
+
|
|
161
|
+
### Dialog.Trigger
|
|
162
|
+
|
|
163
|
+
| prop | type | default | description |
|
|
164
|
+
| -------------------------- | ----------------------- | ------- | -------------------------------------------------------------- |
|
|
165
|
+
| `children` | `React.ReactNode` | - | Trigger element content |
|
|
166
|
+
| `asChild` | `boolean` | - | Render as child element without wrapper |
|
|
167
|
+
| `...TouchableOpacityProps` | `TouchableOpacityProps` | - | All standard React Native TouchableOpacity props are supported |
|
|
168
|
+
|
|
169
|
+
### Dialog.Portal
|
|
170
|
+
|
|
171
|
+
| prop | type | default | description |
|
|
172
|
+
| -------------------------- | ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
173
|
+
| `children` | `React.ReactNode` | - | Portal content (overlay and dialog) |
|
|
174
|
+
| `disableFullWindowOverlay` | `boolean` | `false` | When true on iOS, uses View instead of FullWindowOverlay. Enables element inspector; overlay won't appear above native modals |
|
|
175
|
+
| `className` | `string` | - | Additional CSS classes for portal container |
|
|
176
|
+
| `style` | `StyleProp<ViewStyle>` | - | Additional styles for portal container |
|
|
177
|
+
| `hostName` | `string` | - | Optional portal host name for specific container |
|
|
178
|
+
| `forceMount` | `boolean` | - | Force mount when closed for animation purposes |
|
|
179
|
+
|
|
180
|
+
### Dialog.Overlay
|
|
181
|
+
|
|
182
|
+
| prop | type | default | description |
|
|
183
|
+
| ----------------------- | ------------------------ | ------- | ------------------------------------------------------------ |
|
|
184
|
+
| `children` | `React.ReactNode` | - | Custom overlay content |
|
|
185
|
+
| `className` | `string` | - | Additional CSS classes for overlay |
|
|
186
|
+
| `style` | `ViewStyle` | - | Additional styles for overlay container |
|
|
187
|
+
| `animation` | `DialogOverlayAnimation` | - | Animation configuration |
|
|
188
|
+
| `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
|
|
189
|
+
| `isCloseOnPress` | `boolean` | `true` | Whether pressing overlay closes dialog |
|
|
190
|
+
| `forceMount` | `boolean` | - | Force mount when closed for animation purposes |
|
|
191
|
+
| `...PressableProps` | `PressableProps` | - | All standard React Native Pressable props are supported |
|
|
192
|
+
|
|
193
|
+
#### DialogOverlayAnimation
|
|
194
|
+
|
|
195
|
+
Animation configuration for dialog overlay component. Can be:
|
|
196
|
+
|
|
197
|
+
- `false` or `"disabled"`: Disable all animations
|
|
198
|
+
- `true` or `undefined`: Use default animations
|
|
199
|
+
- `object`: Custom animation configuration
|
|
200
|
+
|
|
201
|
+
| prop | type | default | description |
|
|
202
|
+
| --------------- | -------------------------- | ----------------------- | ---------------------------------------------------------------------------- |
|
|
203
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
204
|
+
| `opacity.value` | `[number, number, number]` | `[0, 1, 0]` | Opacity values [idle, open, close] (progress-based, for dialog presentation) |
|
|
205
|
+
| `entering` | `EntryOrExitLayoutType` | `FadeIn.duration(200)` | Custom entering animation (for popover presentation) |
|
|
206
|
+
| `exiting` | `EntryOrExitLayoutType` | `FadeOut.duration(150)` | Custom exiting animation (for popover presentation) |
|
|
207
|
+
|
|
208
|
+
### Dialog.Content
|
|
209
|
+
|
|
210
|
+
| prop | type | default | description |
|
|
211
|
+
| ----------------------- | ------------------------ | ------- | --------------------------------------------------- |
|
|
212
|
+
| `children` | `React.ReactNode` | - | Dialog content |
|
|
213
|
+
| `className` | `string` | - | Additional CSS classes for content container |
|
|
214
|
+
| `style` | `StyleProp<ViewStyle>` | - | Additional styles for content container |
|
|
215
|
+
| `animation` | `DialogContentAnimation` | - | Animation configuration |
|
|
216
|
+
| `isSwipeable` | `boolean` | `true` | Whether the dialog content can be swiped to dismiss |
|
|
217
|
+
| `forceMount` | `boolean` | - | Force mount when closed for animation purposes |
|
|
218
|
+
| `...Animated.ViewProps` | `Animated.ViewProps` | - | All Reanimated Animated.View props are supported |
|
|
219
|
+
|
|
220
|
+
#### DialogContentAnimation
|
|
221
|
+
|
|
222
|
+
Animation configuration for dialog content component. Can be:
|
|
223
|
+
|
|
224
|
+
- `false` or `"disabled"`: Disable all animations
|
|
225
|
+
- `true` or `undefined`: Use default animations
|
|
226
|
+
- `object`: Custom animation configuration
|
|
227
|
+
|
|
228
|
+
| prop | type | default | description |
|
|
229
|
+
| ---------- | ----------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
230
|
+
| `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
|
|
231
|
+
| `entering` | `EntryOrExitLayoutType` | Keyframe with `scale: 0.96→1` and `opacity: 0→1` (200ms, easing: `Easing.out(Easing.ease)`) | Custom entering animation |
|
|
232
|
+
| `exiting` | `EntryOrExitLayoutType` | Keyframe with `scale: 1→0.96` and `opacity: 1→0` (150ms, easing: `Easing.in(Easing.ease)`) | Custom exiting animation |
|
|
233
|
+
|
|
234
|
+
### Dialog.Close
|
|
235
|
+
|
|
236
|
+
Dialog.Close extends [CloseButton](../close-button/close-button.md) and automatically handles dialog dismissal when pressed.
|
|
237
|
+
|
|
238
|
+
### Dialog.Title
|
|
239
|
+
|
|
240
|
+
| prop | type | default | description |
|
|
241
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
242
|
+
| `children` | `React.ReactNode` | - | Title content |
|
|
243
|
+
| `className` | `string` | - | Additional CSS classes for title |
|
|
244
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
245
|
+
|
|
246
|
+
### Dialog.Description
|
|
247
|
+
|
|
248
|
+
| prop | type | default | description |
|
|
249
|
+
| -------------- | ----------------- | ------- | -------------------------------------------------- |
|
|
250
|
+
| `children` | `React.ReactNode` | - | Description content |
|
|
251
|
+
| `className` | `string` | - | Additional CSS classes for description |
|
|
252
|
+
| `...TextProps` | `TextProps` | - | All standard React Native Text props are supported |
|
|
253
|
+
|
|
254
|
+
## Hooks
|
|
255
|
+
|
|
256
|
+
### useDialog
|
|
257
|
+
|
|
258
|
+
Hook to access dialog primitive context.
|
|
259
|
+
|
|
260
|
+
```tsx
|
|
261
|
+
const { isOpen, onOpenChange } = useDialog();
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
| property | type | description |
|
|
265
|
+
| -------------- | -------------------------- | ----------------------------- |
|
|
266
|
+
| `isOpen` | `boolean` | Current open state |
|
|
267
|
+
| `onOpenChange` | `(value: boolean) => void` | Function to change open state |
|
|
268
|
+
|
|
269
|
+
### useDialogAnimation
|
|
270
|
+
|
|
271
|
+
Hook to access dialog animation context for advanced customization.
|
|
272
|
+
|
|
273
|
+
```tsx
|
|
274
|
+
const { progress, isDragging, isGestureReleaseAnimationRunning } =
|
|
275
|
+
useDialogAnimation();
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
| property | type | description |
|
|
279
|
+
| ---------------------------------- | ---------------------- | -------------------------------------------- |
|
|
280
|
+
| `progress` | `SharedValue<number>` | Animation progress (0=idle, 1=open, 2=close) |
|
|
281
|
+
| `isDragging` | `SharedValue<boolean>` | Whether dialog is being dragged |
|
|
282
|
+
| `isGestureReleaseAnimationRunning` | `SharedValue<boolean>` | Whether gesture release animation is running |
|
|
283
|
+
|
|
284
|
+
## Special Notes
|
|
285
|
+
|
|
286
|
+
### Element Inspector (iOS)
|
|
287
|
+
|
|
288
|
+
Dialog uses FullWindowOverlay on iOS. To enable the React Native element inspector during development, set `disableFullWindowOverlay={true}` on `Dialog.Portal`. Tradeoff: the dialog will not appear above native modals when disabled.
|