@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,353 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Dimensions,
|
|
4
|
+
type LayoutRectangle,
|
|
5
|
+
type ScaledSize,
|
|
6
|
+
} from 'react-native';
|
|
7
|
+
import type { Insets } from '../types';
|
|
8
|
+
|
|
9
|
+
type UseRelativePositionArgs = Omit<
|
|
10
|
+
GetContentStyleArgs,
|
|
11
|
+
'triggerPosition' | 'contentLayout' | 'dimensions'
|
|
12
|
+
> & {
|
|
13
|
+
triggerPosition: LayoutPosition | null;
|
|
14
|
+
contentLayout: LayoutRectangle | null;
|
|
15
|
+
disablePositioningStyle?: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export function useRelativePosition({
|
|
19
|
+
align,
|
|
20
|
+
avoidCollisions,
|
|
21
|
+
triggerPosition,
|
|
22
|
+
contentLayout,
|
|
23
|
+
alignOffset,
|
|
24
|
+
insets,
|
|
25
|
+
offset,
|
|
26
|
+
placement,
|
|
27
|
+
disablePositioningStyle,
|
|
28
|
+
}: UseRelativePositionArgs) {
|
|
29
|
+
const dimensions = Dimensions.get('screen');
|
|
30
|
+
|
|
31
|
+
return React.useMemo(() => {
|
|
32
|
+
if (disablePositioningStyle) {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
if (!triggerPosition || !contentLayout) {
|
|
36
|
+
return {
|
|
37
|
+
position: 'absolute',
|
|
38
|
+
opacity: 0,
|
|
39
|
+
top: dimensions.height,
|
|
40
|
+
} as const;
|
|
41
|
+
}
|
|
42
|
+
return getContentStyle({
|
|
43
|
+
align,
|
|
44
|
+
avoidCollisions,
|
|
45
|
+
contentLayout,
|
|
46
|
+
placement,
|
|
47
|
+
triggerPosition,
|
|
48
|
+
alignOffset,
|
|
49
|
+
insets,
|
|
50
|
+
offset,
|
|
51
|
+
dimensions,
|
|
52
|
+
});
|
|
53
|
+
}, [
|
|
54
|
+
align,
|
|
55
|
+
avoidCollisions,
|
|
56
|
+
placement,
|
|
57
|
+
alignOffset,
|
|
58
|
+
insets,
|
|
59
|
+
triggerPosition,
|
|
60
|
+
contentLayout,
|
|
61
|
+
dimensions,
|
|
62
|
+
disablePositioningStyle,
|
|
63
|
+
offset,
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface LayoutPosition {
|
|
68
|
+
pageY: number;
|
|
69
|
+
pageX: number;
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface GetPositionArgs {
|
|
75
|
+
dimensions: ScaledSize;
|
|
76
|
+
avoidCollisions: boolean;
|
|
77
|
+
triggerPosition: LayoutPosition;
|
|
78
|
+
contentLayout: LayoutRectangle;
|
|
79
|
+
insets?: Insets;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface GetSidePositionArgs extends GetPositionArgs {
|
|
83
|
+
placement: 'top' | 'bottom' | 'left' | 'right';
|
|
84
|
+
offset: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function getSidePosition({
|
|
88
|
+
placement,
|
|
89
|
+
triggerPosition,
|
|
90
|
+
contentLayout,
|
|
91
|
+
offset,
|
|
92
|
+
insets,
|
|
93
|
+
avoidCollisions,
|
|
94
|
+
dimensions,
|
|
95
|
+
}: GetSidePositionArgs) {
|
|
96
|
+
const insetTop = insets?.top ?? 0;
|
|
97
|
+
const insetBottom = insets?.bottom ?? 0;
|
|
98
|
+
const insetLeft = insets?.left ?? 0;
|
|
99
|
+
const insetRight = insets?.right ?? 0;
|
|
100
|
+
|
|
101
|
+
// Handle vertical sides (top/bottom)
|
|
102
|
+
if (placement === 'top' || placement === 'bottom') {
|
|
103
|
+
const positionTop = triggerPosition?.pageY - offset - contentLayout.height;
|
|
104
|
+
const positionBottom =
|
|
105
|
+
triggerPosition.pageY + triggerPosition.height + offset;
|
|
106
|
+
|
|
107
|
+
if (!avoidCollisions) {
|
|
108
|
+
return {
|
|
109
|
+
top: placement === 'top' ? positionTop : positionBottom,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (placement === 'top') {
|
|
114
|
+
return {
|
|
115
|
+
top: Math.min(
|
|
116
|
+
Math.max(insetTop, positionTop),
|
|
117
|
+
dimensions.height - insetBottom - contentLayout.height
|
|
118
|
+
),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
top: Math.min(
|
|
124
|
+
dimensions.height - insetBottom - contentLayout.height,
|
|
125
|
+
positionBottom
|
|
126
|
+
),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Handle horizontal sides (left/right)
|
|
131
|
+
const maxContentWidth = dimensions.width - insetLeft - insetRight;
|
|
132
|
+
const contentWidth = Math.min(contentLayout.width, maxContentWidth);
|
|
133
|
+
|
|
134
|
+
const positionLeft = triggerPosition.pageX - offset - contentWidth;
|
|
135
|
+
const positionRight = triggerPosition.pageX + triggerPosition.width + offset;
|
|
136
|
+
|
|
137
|
+
if (!avoidCollisions) {
|
|
138
|
+
return {
|
|
139
|
+
left: placement === 'left' ? positionLeft : positionRight,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (placement === 'left') {
|
|
144
|
+
return {
|
|
145
|
+
left: Math.min(
|
|
146
|
+
Math.max(insetLeft, positionLeft),
|
|
147
|
+
dimensions.width - insetRight - contentWidth
|
|
148
|
+
),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// For right placement, ensure content doesn't go beyond left inset
|
|
153
|
+
return {
|
|
154
|
+
left: Math.max(
|
|
155
|
+
insetLeft,
|
|
156
|
+
Math.min(dimensions.width - insetRight - contentWidth, positionRight)
|
|
157
|
+
),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
interface GetAlignPositionArgs extends GetPositionArgs {
|
|
162
|
+
align: 'start' | 'center' | 'end';
|
|
163
|
+
alignOffset: number;
|
|
164
|
+
placement: 'top' | 'bottom' | 'left' | 'right';
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function getAlignPosition({
|
|
168
|
+
align,
|
|
169
|
+
avoidCollisions,
|
|
170
|
+
contentLayout,
|
|
171
|
+
triggerPosition,
|
|
172
|
+
alignOffset,
|
|
173
|
+
insets,
|
|
174
|
+
dimensions,
|
|
175
|
+
placement,
|
|
176
|
+
}: GetAlignPositionArgs) {
|
|
177
|
+
const insetLeft = insets?.left ?? 0;
|
|
178
|
+
const insetRight = insets?.right ?? 0;
|
|
179
|
+
const insetTop = insets?.top ?? 0;
|
|
180
|
+
const insetBottom = insets?.bottom ?? 0;
|
|
181
|
+
|
|
182
|
+
// For top/bottom sides, align horizontally
|
|
183
|
+
if (placement === 'top' || placement === 'bottom') {
|
|
184
|
+
const maxContentWidth = dimensions.width - insetLeft - insetRight;
|
|
185
|
+
const contentWidth = Math.min(contentLayout.width, maxContentWidth);
|
|
186
|
+
|
|
187
|
+
let left = getHorizontalAlignPosition(
|
|
188
|
+
align,
|
|
189
|
+
triggerPosition.pageX,
|
|
190
|
+
triggerPosition.width,
|
|
191
|
+
contentWidth,
|
|
192
|
+
alignOffset,
|
|
193
|
+
insetLeft,
|
|
194
|
+
insetRight,
|
|
195
|
+
dimensions
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
if (avoidCollisions) {
|
|
199
|
+
const doesCollide =
|
|
200
|
+
left < insetLeft || left + contentWidth > dimensions.width - insetRight;
|
|
201
|
+
if (doesCollide) {
|
|
202
|
+
const spaceLeft = left - insetLeft;
|
|
203
|
+
const spaceRight =
|
|
204
|
+
dimensions.width - insetRight - (left + contentWidth);
|
|
205
|
+
|
|
206
|
+
if (spaceLeft > spaceRight && spaceLeft >= contentWidth) {
|
|
207
|
+
left = insetLeft;
|
|
208
|
+
} else if (spaceRight >= contentWidth) {
|
|
209
|
+
left = dimensions.width - insetRight - contentWidth;
|
|
210
|
+
} else {
|
|
211
|
+
const centeredPosition = Math.max(
|
|
212
|
+
insetLeft,
|
|
213
|
+
(dimensions.width - contentWidth - insetRight) / 2
|
|
214
|
+
);
|
|
215
|
+
left = centeredPosition;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return { left, maxWidth: maxContentWidth };
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// For left/right sides, align vertically and constrain width
|
|
224
|
+
const maxContentHeight = dimensions.height - insetTop - insetBottom;
|
|
225
|
+
const maxContentWidth = dimensions.width - insetLeft - insetRight;
|
|
226
|
+
const contentHeight = Math.min(contentLayout.height, maxContentHeight);
|
|
227
|
+
|
|
228
|
+
let top = getVerticalAlignPosition(
|
|
229
|
+
align,
|
|
230
|
+
triggerPosition.pageY,
|
|
231
|
+
triggerPosition.height,
|
|
232
|
+
contentHeight,
|
|
233
|
+
alignOffset,
|
|
234
|
+
insetTop,
|
|
235
|
+
insetBottom,
|
|
236
|
+
dimensions
|
|
237
|
+
);
|
|
238
|
+
|
|
239
|
+
if (avoidCollisions) {
|
|
240
|
+
const doesCollide =
|
|
241
|
+
top < insetTop || top + contentHeight > dimensions.height - insetBottom;
|
|
242
|
+
if (doesCollide) {
|
|
243
|
+
const spaceTop = top - insetTop;
|
|
244
|
+
const spaceBottom =
|
|
245
|
+
dimensions.height - insetBottom - (top + contentHeight);
|
|
246
|
+
|
|
247
|
+
if (spaceTop > spaceBottom && spaceTop >= contentHeight) {
|
|
248
|
+
top = insetTop;
|
|
249
|
+
} else if (spaceBottom >= contentHeight) {
|
|
250
|
+
top = dimensions.height - insetBottom - contentHeight;
|
|
251
|
+
} else {
|
|
252
|
+
const centeredPosition = Math.max(
|
|
253
|
+
insetTop,
|
|
254
|
+
(dimensions.height - contentHeight - insetBottom) / 2
|
|
255
|
+
);
|
|
256
|
+
top = centeredPosition;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return { top, maxHeight: maxContentHeight, maxWidth: maxContentWidth };
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function getHorizontalAlignPosition(
|
|
265
|
+
align: 'start' | 'center' | 'end',
|
|
266
|
+
triggerPageX: number,
|
|
267
|
+
triggerWidth: number,
|
|
268
|
+
contentWidth: number,
|
|
269
|
+
alignOffset: number,
|
|
270
|
+
insetLeft: number,
|
|
271
|
+
insetRight: number,
|
|
272
|
+
dimensions: ScaledSize
|
|
273
|
+
) {
|
|
274
|
+
let left = 0;
|
|
275
|
+
if (align === 'start') {
|
|
276
|
+
left = triggerPageX;
|
|
277
|
+
}
|
|
278
|
+
if (align === 'center') {
|
|
279
|
+
left = triggerPageX + triggerWidth / 2 - contentWidth / 2;
|
|
280
|
+
}
|
|
281
|
+
if (align === 'end') {
|
|
282
|
+
left = triggerPageX + triggerWidth - contentWidth;
|
|
283
|
+
}
|
|
284
|
+
return Math.max(
|
|
285
|
+
insetLeft,
|
|
286
|
+
Math.min(left + alignOffset, dimensions.width - contentWidth - insetRight)
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
function getVerticalAlignPosition(
|
|
291
|
+
align: 'start' | 'center' | 'end',
|
|
292
|
+
triggerPageY: number,
|
|
293
|
+
triggerHeight: number,
|
|
294
|
+
contentHeight: number,
|
|
295
|
+
alignOffset: number,
|
|
296
|
+
insetTop: number,
|
|
297
|
+
insetBottom: number,
|
|
298
|
+
dimensions: ScaledSize
|
|
299
|
+
) {
|
|
300
|
+
let top = 0;
|
|
301
|
+
if (align === 'start') {
|
|
302
|
+
top = triggerPageY;
|
|
303
|
+
}
|
|
304
|
+
if (align === 'center') {
|
|
305
|
+
top = triggerPageY + triggerHeight / 2 - contentHeight / 2;
|
|
306
|
+
}
|
|
307
|
+
if (align === 'end') {
|
|
308
|
+
top = triggerPageY + triggerHeight - contentHeight;
|
|
309
|
+
}
|
|
310
|
+
return Math.max(
|
|
311
|
+
insetTop,
|
|
312
|
+
Math.min(top + alignOffset, dimensions.height - contentHeight - insetBottom)
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
type GetContentStyleArgs = GetPositionArgs &
|
|
317
|
+
GetSidePositionArgs &
|
|
318
|
+
GetAlignPositionArgs;
|
|
319
|
+
|
|
320
|
+
function getContentStyle({
|
|
321
|
+
align,
|
|
322
|
+
avoidCollisions,
|
|
323
|
+
contentLayout,
|
|
324
|
+
placement,
|
|
325
|
+
triggerPosition,
|
|
326
|
+
alignOffset,
|
|
327
|
+
insets,
|
|
328
|
+
offset,
|
|
329
|
+
dimensions,
|
|
330
|
+
}: GetContentStyleArgs) {
|
|
331
|
+
return Object.assign(
|
|
332
|
+
{ position: 'absolute' } as const,
|
|
333
|
+
getSidePosition({
|
|
334
|
+
placement,
|
|
335
|
+
triggerPosition,
|
|
336
|
+
contentLayout,
|
|
337
|
+
offset,
|
|
338
|
+
insets,
|
|
339
|
+
avoidCollisions,
|
|
340
|
+
dimensions,
|
|
341
|
+
}),
|
|
342
|
+
getAlignPosition({
|
|
343
|
+
align,
|
|
344
|
+
avoidCollisions,
|
|
345
|
+
triggerPosition,
|
|
346
|
+
contentLayout,
|
|
347
|
+
alignOffset,
|
|
348
|
+
insets,
|
|
349
|
+
dimensions,
|
|
350
|
+
placement,
|
|
351
|
+
})
|
|
352
|
+
);
|
|
353
|
+
}
|
package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-resolved-style-property.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import type { ImageStyle, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { useResolveClassNames } from 'uniwind';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Combined style type from React Native
|
|
8
|
+
*/
|
|
9
|
+
type Style = ViewStyle | TextStyle | ImageStyle;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Parameters for single property resolution
|
|
13
|
+
*/
|
|
14
|
+
interface UseResolvedStylePropertyParamsSingle<K extends keyof Style> {
|
|
15
|
+
/** The className string to resolve styles from */
|
|
16
|
+
className?: string;
|
|
17
|
+
/** The style prop (can be object, array, or null) */
|
|
18
|
+
style?: StyleProp<ViewStyle> | StyleProp<TextStyle> | StyleProp<ImageStyle>;
|
|
19
|
+
/** The name of the style property to resolve */
|
|
20
|
+
propertyName: K;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Parameters for multiple properties resolution
|
|
25
|
+
*/
|
|
26
|
+
interface UseResolvedStylePropertyParamsMultiple<K extends keyof Style> {
|
|
27
|
+
/** The className string to resolve styles from */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** The style prop (can be object, array, or null) */
|
|
30
|
+
style?: StyleProp<ViewStyle> | StyleProp<TextStyle> | StyleProp<ImageStyle>;
|
|
31
|
+
/** Array of style property names to resolve */
|
|
32
|
+
propertyNames: readonly K[];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A hook that resolves specific style properties from both className and style props.
|
|
37
|
+
* The style prop takes precedence over className.
|
|
38
|
+
*
|
|
39
|
+
* This is useful when you need to extract specific style values (like width, height)
|
|
40
|
+
* that might come from either Tailwind classes or inline styles.
|
|
41
|
+
*
|
|
42
|
+
* @param params - Configuration object with className, style, and propertyName(s)
|
|
43
|
+
* @returns The resolved style property value(s) or undefined if not found
|
|
44
|
+
*
|
|
45
|
+
* @example Single property
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const width = useResolvedStyleProperty({
|
|
48
|
+
* className: 'w-10 h-8',
|
|
49
|
+
* style: { width: 50 },
|
|
50
|
+
* propertyName: 'width',
|
|
51
|
+
* });
|
|
52
|
+
* // Returns: 50 (from style, takes precedence)
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example Multiple properties
|
|
56
|
+
* ```tsx
|
|
57
|
+
* const [width, left] = useResolvedStyleProperty({
|
|
58
|
+
* className: 'w-10 left-2',
|
|
59
|
+
* propertyNames: ['width', 'left'],
|
|
60
|
+
* });
|
|
61
|
+
* // Returns: [40, 8] (from className)
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
function useResolvedStyleProperty<K extends keyof Style>(
|
|
65
|
+
params: UseResolvedStylePropertyParamsSingle<K>
|
|
66
|
+
): Style[K] | undefined;
|
|
67
|
+
function useResolvedStyleProperty<K extends keyof Style>(
|
|
68
|
+
params: UseResolvedStylePropertyParamsMultiple<K>
|
|
69
|
+
): (Style[K] | undefined)[];
|
|
70
|
+
function useResolvedStyleProperty<K extends keyof Style>(
|
|
71
|
+
params:
|
|
72
|
+
| UseResolvedStylePropertyParamsSingle<K>
|
|
73
|
+
| UseResolvedStylePropertyParamsMultiple<K>
|
|
74
|
+
): Style[K] | undefined | (Style[K] | undefined)[] {
|
|
75
|
+
const { className, style } = params;
|
|
76
|
+
|
|
77
|
+
const resolvedClassName = useResolveClassNames(className ?? '');
|
|
78
|
+
const resolvedStyle = useMemo(
|
|
79
|
+
() => (style ? StyleSheet.flatten(style) : undefined),
|
|
80
|
+
[style]
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
return useMemo(() => {
|
|
84
|
+
// Check if we're resolving multiple properties
|
|
85
|
+
if ('propertyNames' in params) {
|
|
86
|
+
return params.propertyNames.map((propertyName) => {
|
|
87
|
+
// Style prop takes precedence over className
|
|
88
|
+
if (resolvedStyle && propertyName in resolvedStyle) {
|
|
89
|
+
return resolvedStyle[propertyName];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Fall back to className-resolved styles
|
|
93
|
+
if (resolvedClassName && propertyName in resolvedClassName) {
|
|
94
|
+
return resolvedClassName[propertyName];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return undefined;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Single property resolution
|
|
102
|
+
const propertyName = params.propertyName;
|
|
103
|
+
|
|
104
|
+
// Style prop takes precedence over className
|
|
105
|
+
if (resolvedStyle && propertyName in resolvedStyle) {
|
|
106
|
+
return resolvedStyle[propertyName];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Fall back to className-resolved styles
|
|
110
|
+
if (resolvedClassName && propertyName in resolvedClassName) {
|
|
111
|
+
return resolvedClassName[propertyName];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return undefined;
|
|
115
|
+
}, [resolvedStyle, resolvedClassName, params]);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export { useResolvedStyleProperty };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
BaseAnimationBuilder,
|
|
3
|
+
EntryOrExitLayoutType,
|
|
4
|
+
LayoutAnimationFunction,
|
|
5
|
+
WithSpringConfig,
|
|
6
|
+
WithTimingConfig,
|
|
7
|
+
} from 'react-native-reanimated';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Universal animation prop type
|
|
11
|
+
* - `true` or `undefined`: Use default animations
|
|
12
|
+
* - `false` or `"disabled"`: Disable all animations
|
|
13
|
+
* - `object`: Custom animation configuration
|
|
14
|
+
* - Can include `state?: 'disabled' | boolean | undefined` to disable animations while customizing properties
|
|
15
|
+
*/
|
|
16
|
+
export type Animation<
|
|
17
|
+
TConfig extends Record<string, any> = Record<string, any>,
|
|
18
|
+
> = boolean | 'disabled' | (TConfig & { state?: 'disabled' | boolean });
|
|
19
|
+
|
|
20
|
+
export type AnimationDisabled = 'disabled' | false;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Root-level animation prop type with cascading control
|
|
24
|
+
* - `true` or `undefined`: Use default animations
|
|
25
|
+
* - `false` or `"disabled"`: Disable only root animations (children can still animate)
|
|
26
|
+
* - `"disable-all"`: Disable all animations including children (cascades down)
|
|
27
|
+
* - `object`: Custom animation configuration
|
|
28
|
+
* - Can include `state?: 'disabled' | 'disable-all' | boolean` to disable animations while customizing properties
|
|
29
|
+
*/
|
|
30
|
+
export type AnimationRoot<
|
|
31
|
+
TConfig extends Record<string, any> = Record<string, any>,
|
|
32
|
+
> =
|
|
33
|
+
| boolean
|
|
34
|
+
| 'disabled'
|
|
35
|
+
| 'disable-all'
|
|
36
|
+
| (TConfig & { state?: 'disabled' | 'disable-all' | boolean });
|
|
37
|
+
|
|
38
|
+
export type AnimationRootDisableAll = Extract<AnimationRoot, 'disable-all'>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Animation value that can be a custom config
|
|
42
|
+
* Used for granular animation control within a component
|
|
43
|
+
*/
|
|
44
|
+
export type AnimationValue<
|
|
45
|
+
TConfig extends Record<string, any> = Record<string, any>,
|
|
46
|
+
> = TConfig;
|
|
47
|
+
|
|
48
|
+
export type LayoutTransition =
|
|
49
|
+
| BaseAnimationBuilder
|
|
50
|
+
| LayoutAnimationFunction
|
|
51
|
+
| typeof BaseAnimationBuilder
|
|
52
|
+
| undefined;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Spring animation configuration
|
|
56
|
+
*/
|
|
57
|
+
export interface SpringAnimationConfig {
|
|
58
|
+
type: 'spring';
|
|
59
|
+
config?: WithSpringConfig;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Timing animation configuration
|
|
64
|
+
*/
|
|
65
|
+
export interface TimingAnimationConfig {
|
|
66
|
+
type: 'timing';
|
|
67
|
+
config?: WithTimingConfig;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Animation configuration for popup overlay components (Dialog, Select, BottomSheet, Popover, etc.)
|
|
72
|
+
* Supports both progress-based opacity animation and entering/exiting animations
|
|
73
|
+
*/
|
|
74
|
+
export type PopupOverlayAnimation = Animation<{
|
|
75
|
+
/**
|
|
76
|
+
* Opacity animation configuration (progress-based)
|
|
77
|
+
* Takes effect for bottom-sheet/dialog presentation
|
|
78
|
+
* @default [0, 1, 0] - opacity values for [idle, open, close] states
|
|
79
|
+
*/
|
|
80
|
+
opacity?: AnimationValue<{
|
|
81
|
+
/**
|
|
82
|
+
* Opacity values [idle, open, close]
|
|
83
|
+
* @default [0, 1, 0]
|
|
84
|
+
*/
|
|
85
|
+
value?: [number, number, number];
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Takes effect for popover presentation
|
|
89
|
+
* @default FadeIn with duration 200ms
|
|
90
|
+
*/
|
|
91
|
+
entering?: EntryOrExitLayoutType;
|
|
92
|
+
/**
|
|
93
|
+
* Takes effect for popover presentation
|
|
94
|
+
* @default FadeOut with duration 150ms
|
|
95
|
+
*/
|
|
96
|
+
exiting?: EntryOrExitLayoutType;
|
|
97
|
+
}>;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Animation configuration for popup dialog content components (Dialog, Select dialog presentation)
|
|
101
|
+
* Supports opacity and scale animations
|
|
102
|
+
*/
|
|
103
|
+
export type PopupDialogContentAnimation = Animation<{
|
|
104
|
+
/**
|
|
105
|
+
* Custom Keyframe animation for entering transition
|
|
106
|
+
* @default Keyframe with scale, and opacity (200ms)
|
|
107
|
+
*/
|
|
108
|
+
entering?: EntryOrExitLayoutType;
|
|
109
|
+
/**
|
|
110
|
+
* Custom Keyframe animation for exiting transition
|
|
111
|
+
* @default Keyframe mirroring entering animation (150ms)
|
|
112
|
+
*/
|
|
113
|
+
exiting?: EntryOrExitLayoutType;
|
|
114
|
+
}>;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Animation configuration for popup popover content components (Popover, Select popover presentation)
|
|
118
|
+
* Supports custom Keyframe animations for entering and exiting transitions
|
|
119
|
+
*/
|
|
120
|
+
export type PopupPopoverContentAnimation = Animation<{
|
|
121
|
+
/**
|
|
122
|
+
* Custom Keyframe animation for entering transition
|
|
123
|
+
* @default Keyframe with translateY/translateX, scale, and opacity (200ms)
|
|
124
|
+
*/
|
|
125
|
+
entering?: EntryOrExitLayoutType;
|
|
126
|
+
/**
|
|
127
|
+
* Custom Keyframe animation for exiting transition
|
|
128
|
+
* @default Keyframe mirroring entering animation (150ms)
|
|
129
|
+
*/
|
|
130
|
+
exiting?: EntryOrExitLayoutType;
|
|
131
|
+
}>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { BottomSheetViewProps } from '@gorhom/bottom-sheet/lib/typescript/components/bottomSheetView/types';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { SharedValue } from 'react-native-reanimated';
|
|
4
|
+
import type { AnimationDisabled } from './animation';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* State type for bottom sheet content container animation coordination
|
|
8
|
+
*/
|
|
9
|
+
export type BottomSheetContentContainerState = 'idle' | 'open' | 'close';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Props for the reusable BottomSheetContentContainer component
|
|
13
|
+
*/
|
|
14
|
+
export interface BottomSheetContentContainerProps {
|
|
15
|
+
/**
|
|
16
|
+
* The content to be rendered inside the container
|
|
17
|
+
*/
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Additional CSS class for the content container
|
|
21
|
+
*/
|
|
22
|
+
contentContainerClassName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Props for the content container
|
|
25
|
+
*/
|
|
26
|
+
contentContainerProps?: Omit<BottomSheetViewProps, 'children'>;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the bottom sheet is open
|
|
29
|
+
*/
|
|
30
|
+
isOpen: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Animation progress shared value (0=idle, 1=open, 2=close)
|
|
33
|
+
*/
|
|
34
|
+
progress: SharedValue<number>;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the bottom sheet is dragging
|
|
37
|
+
*/
|
|
38
|
+
isDragging: SharedValue<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the bottom sheet is pan activated
|
|
41
|
+
*/
|
|
42
|
+
isPanActivated: SharedValue<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the bottom sheet is closing on swipe
|
|
45
|
+
*/
|
|
46
|
+
isClosingOnSwipe: SharedValue<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* Initial index of the bottom sheet
|
|
49
|
+
*/
|
|
50
|
+
initialIndex: number;
|
|
51
|
+
/**
|
|
52
|
+
* Callback when the bottom sheet is opened
|
|
53
|
+
*/
|
|
54
|
+
onOpenChange: (open: boolean) => void;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Base props shared across BottomSheet Content components
|
|
59
|
+
* Used by BottomSheet, Popover, and Select components when using bottom-sheet presentation
|
|
60
|
+
*/
|
|
61
|
+
export interface BaseBottomSheetContentProps {
|
|
62
|
+
/**
|
|
63
|
+
* The bottom sheet content
|
|
64
|
+
*/
|
|
65
|
+
children?: ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* Additional CSS class for the bottom sheet
|
|
68
|
+
*/
|
|
69
|
+
className?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Additional CSS class for the container
|
|
72
|
+
*/
|
|
73
|
+
containerClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Additional CSS class for the content container
|
|
76
|
+
*/
|
|
77
|
+
contentContainerClassName?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Additional CSS class for the background
|
|
80
|
+
*/
|
|
81
|
+
backgroundClassName?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Additional CSS class for the handle
|
|
84
|
+
*/
|
|
85
|
+
handleClassName?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Additional CSS class for the handle indicator
|
|
88
|
+
*/
|
|
89
|
+
handleIndicatorClassName?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Props for the content container
|
|
92
|
+
*/
|
|
93
|
+
contentContainerProps?: Omit<BottomSheetViewProps, 'children'>;
|
|
94
|
+
/**
|
|
95
|
+
* Animation configuration for bottom sheet content
|
|
96
|
+
* - `false` or `"disabled"`: Disable all animations
|
|
97
|
+
*/
|
|
98
|
+
animation?: AnimationDisabled;
|
|
99
|
+
}
|