@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,401 @@
|
|
|
1
|
+
import type { LayoutRectangle } from 'react-native';
|
|
2
|
+
import type { LayoutPosition } from '../../helpers/internal/hooks';
|
|
3
|
+
import type {
|
|
4
|
+
ForceMountable,
|
|
5
|
+
PositionedContentProps,
|
|
6
|
+
PressableRef,
|
|
7
|
+
SlottablePressableProps,
|
|
8
|
+
SlottableTextProps,
|
|
9
|
+
SlottableViewProps,
|
|
10
|
+
TextRef,
|
|
11
|
+
ViewRef,
|
|
12
|
+
} from '../../helpers/internal/types';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Content sizing strategy
|
|
16
|
+
* - 'content-fit': Auto-size to content width (default)
|
|
17
|
+
* - 'trigger': Match trigger width exactly
|
|
18
|
+
* - 'full': 100% width
|
|
19
|
+
* - number: Fixed width in pixels
|
|
20
|
+
*/
|
|
21
|
+
type ContentSizing = 'trigger' | 'content-fit' | 'full' | number;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Internal context interface for managing menu state and positioning
|
|
25
|
+
*/
|
|
26
|
+
interface IRootContext {
|
|
27
|
+
/**
|
|
28
|
+
* Whether the menu is currently open
|
|
29
|
+
*/
|
|
30
|
+
isOpen: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Callback to change the open state of the menu
|
|
33
|
+
*/
|
|
34
|
+
onOpenChange: (open: boolean) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the menu should be open by default (uncontrolled mode)
|
|
37
|
+
*/
|
|
38
|
+
isDefaultOpen?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the menu is disabled
|
|
41
|
+
*/
|
|
42
|
+
isDisabled?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The position of the trigger element relative to the viewport
|
|
45
|
+
*/
|
|
46
|
+
triggerPosition: LayoutPosition | null;
|
|
47
|
+
/**
|
|
48
|
+
* Updates the trigger element's position
|
|
49
|
+
*/
|
|
50
|
+
setTriggerPosition: (triggerPosition: LayoutPosition | null) => void;
|
|
51
|
+
/**
|
|
52
|
+
* The layout measurements of the menu content
|
|
53
|
+
*/
|
|
54
|
+
contentLayout: LayoutRectangle | null;
|
|
55
|
+
/**
|
|
56
|
+
* Updates the content layout measurements
|
|
57
|
+
*/
|
|
58
|
+
setContentLayout: (contentLayout: LayoutRectangle | null) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Unique identifier for the menu instance
|
|
61
|
+
*/
|
|
62
|
+
nativeID: string;
|
|
63
|
+
/**
|
|
64
|
+
* Presentation mode for the menu content
|
|
65
|
+
* - 'popover': Default floating popover with positioning
|
|
66
|
+
* - 'bottom-sheet': Bottom sheet modal presentation
|
|
67
|
+
* @default 'popover'
|
|
68
|
+
*/
|
|
69
|
+
presentation: 'popover' | 'bottom-sheet';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Props for the Menu Root component
|
|
74
|
+
*/
|
|
75
|
+
type RootProps = SlottableViewProps & {
|
|
76
|
+
/**
|
|
77
|
+
* Presentation mode for the menu content
|
|
78
|
+
* - 'popover': Default floating popover with positioning
|
|
79
|
+
* - 'bottom-sheet': Bottom sheet modal presentation
|
|
80
|
+
* @default 'popover'
|
|
81
|
+
*/
|
|
82
|
+
presentation?: 'popover' | 'bottom-sheet';
|
|
83
|
+
/**
|
|
84
|
+
* The controlled open state of the menu
|
|
85
|
+
*/
|
|
86
|
+
isOpen?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The open state of the menu when initially rendered (uncontrolled)
|
|
89
|
+
*/
|
|
90
|
+
isDefaultOpen?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Whether the menu is disabled
|
|
93
|
+
*/
|
|
94
|
+
isDisabled?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Callback fired when the menu open state changes
|
|
97
|
+
* @param open - Whether the menu is open or closed
|
|
98
|
+
*/
|
|
99
|
+
onOpenChange?: (open: boolean) => void;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Props for the Menu Portal component
|
|
103
|
+
*/
|
|
104
|
+
interface PortalProps extends ForceMountable {
|
|
105
|
+
/**
|
|
106
|
+
* The content to render within the portal
|
|
107
|
+
*/
|
|
108
|
+
children: React.ReactNode;
|
|
109
|
+
/**
|
|
110
|
+
* Optional name of the host element for the portal
|
|
111
|
+
*/
|
|
112
|
+
hostName?: string;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Props for the Menu Overlay component
|
|
117
|
+
*/
|
|
118
|
+
type OverlayProps = ForceMountable &
|
|
119
|
+
SlottablePressableProps & {
|
|
120
|
+
/**
|
|
121
|
+
* Whether to close the menu when the overlay is pressed
|
|
122
|
+
* @default true
|
|
123
|
+
*/
|
|
124
|
+
closeOnPress?: boolean;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Props for the Menu Trigger component
|
|
129
|
+
*/
|
|
130
|
+
type TriggerProps = Omit<SlottablePressableProps, 'disabled'> & {
|
|
131
|
+
isDisabled?: boolean;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Props for the Menu Content component
|
|
136
|
+
*/
|
|
137
|
+
type ContentProps = SlottableViewProps &
|
|
138
|
+
PositionedContentProps & {
|
|
139
|
+
/**
|
|
140
|
+
* Content width sizing strategy
|
|
141
|
+
* - 'content-fit': Auto-size to content width (default)
|
|
142
|
+
* - 'trigger': Match trigger width exactly
|
|
143
|
+
* - 'full': 100% width
|
|
144
|
+
* - number: Fixed width in pixels
|
|
145
|
+
* @default 'content-fit'
|
|
146
|
+
*/
|
|
147
|
+
width?: ContentSizing;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Props for the Menu Close component
|
|
152
|
+
*/
|
|
153
|
+
type CloseProps = SlottablePressableProps;
|
|
154
|
+
|
|
155
|
+
// --------------------------------------------------
|
|
156
|
+
// Menu Key
|
|
157
|
+
// --------------------------------------------------
|
|
158
|
+
|
|
159
|
+
/** Key type for identifying items within a Menu Group */
|
|
160
|
+
type MenuKey = string | number;
|
|
161
|
+
|
|
162
|
+
/** Selection mode for a Menu Group */
|
|
163
|
+
type GroupSelectionMode = 'none' | 'single' | 'multiple';
|
|
164
|
+
|
|
165
|
+
// --------------------------------------------------
|
|
166
|
+
// Group
|
|
167
|
+
// --------------------------------------------------
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Props for the Menu Group component.
|
|
171
|
+
* Manages selection state and disabled keys for grouped menu items.
|
|
172
|
+
*
|
|
173
|
+
* @extends SlottableViewProps Inherits view props with asChild support
|
|
174
|
+
*/
|
|
175
|
+
type GroupProps = SlottableViewProps & {
|
|
176
|
+
/** The type of selection allowed in the group @default "none" */
|
|
177
|
+
selectionMode?: GroupSelectionMode;
|
|
178
|
+
/** The currently selected keys (controlled) */
|
|
179
|
+
selectedKeys?: Iterable<MenuKey>;
|
|
180
|
+
/** The initial selected keys (uncontrolled) */
|
|
181
|
+
defaultSelectedKeys?: Iterable<MenuKey>;
|
|
182
|
+
/** Handler called when the selection changes */
|
|
183
|
+
onSelectionChange?: (keys: Set<MenuKey>) => void;
|
|
184
|
+
/** Keys of items that should be disabled */
|
|
185
|
+
disabledKeys?: Iterable<MenuKey>;
|
|
186
|
+
/** Whether the entire group is disabled */
|
|
187
|
+
isDisabled?: boolean;
|
|
188
|
+
/**
|
|
189
|
+
* Whether selecting an item in this group should close the menu.
|
|
190
|
+
* Applied to all child items unless overridden at the item level.
|
|
191
|
+
* When `undefined`, falls back to the default behavior based on `selectionMode`
|
|
192
|
+
* (`false` for `"multiple"`, `true` otherwise).
|
|
193
|
+
*/
|
|
194
|
+
shouldCloseOnSelect?: boolean;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Internal context value for a Menu Group.
|
|
199
|
+
* Holds resolved selection state and callbacks.
|
|
200
|
+
*/
|
|
201
|
+
type GroupContextValue = Required<
|
|
202
|
+
Pick<GroupProps, 'selectionMode' | 'isDisabled'>
|
|
203
|
+
> & {
|
|
204
|
+
/** Resolved set of currently selected keys */
|
|
205
|
+
selectedKeys: Set<MenuKey>;
|
|
206
|
+
/** Resolved set of disabled keys */
|
|
207
|
+
disabledKeys: Set<MenuKey>;
|
|
208
|
+
/** Callback to update the selection */
|
|
209
|
+
onSelectionChange: NonNullable<GroupProps['onSelectionChange']>;
|
|
210
|
+
/**
|
|
211
|
+
* Group-level close-on-select preference.
|
|
212
|
+
* `undefined` means no group-level override (use default behavior).
|
|
213
|
+
*/
|
|
214
|
+
shouldCloseOnSelect: boolean | undefined;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
// --------------------------------------------------
|
|
218
|
+
// Item
|
|
219
|
+
// --------------------------------------------------
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Visual variant for a menu item.
|
|
223
|
+
* - `'default'` – Standard menu item styling.
|
|
224
|
+
* - `'danger'` – Destructive-action styling (e.g. red text).
|
|
225
|
+
*/
|
|
226
|
+
type ItemVariant = 'default' | 'danger';
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Internal context value exposed to Menu Item children
|
|
230
|
+
* (ItemTitle, ItemDescription, ItemIndicator).
|
|
231
|
+
*/
|
|
232
|
+
interface IItemContext {
|
|
233
|
+
/** Item identifier (undefined for standalone items without id) */
|
|
234
|
+
id: MenuKey | undefined;
|
|
235
|
+
/** Whether the item is currently selected */
|
|
236
|
+
isSelected: boolean;
|
|
237
|
+
/** Whether the item is disabled */
|
|
238
|
+
isDisabled: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* Visual variant of the item.
|
|
241
|
+
* @default 'default'
|
|
242
|
+
*/
|
|
243
|
+
variant: ItemVariant;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Props for the Menu Item component.
|
|
248
|
+
* When used standalone, acts as a regular pressable with optional selection.
|
|
249
|
+
* When used inside a Menu Group, participates in the group's selection logic.
|
|
250
|
+
*
|
|
251
|
+
* @extends SlottablePressableProps Inherits pressable props except 'disabled'
|
|
252
|
+
*/
|
|
253
|
+
type ItemProps = Omit<SlottablePressableProps, 'disabled'> & {
|
|
254
|
+
/**
|
|
255
|
+
* Unique identifier for this item. Required when inside a Menu Group.
|
|
256
|
+
*/
|
|
257
|
+
id?: MenuKey;
|
|
258
|
+
/** Whether this item is disabled */
|
|
259
|
+
isDisabled?: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Whether pressing this item should close the menu.
|
|
262
|
+
* Defaults to `true`. Forced to `false` when inside a Group with
|
|
263
|
+
* `selectionMode="multiple"`.
|
|
264
|
+
* @default true
|
|
265
|
+
*/
|
|
266
|
+
shouldCloseOnSelect?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* Controlled selected state for standalone items.
|
|
269
|
+
* Enables ItemIndicator support without a Group.
|
|
270
|
+
* Ignored when inside a Group (selection is managed by Group).
|
|
271
|
+
*/
|
|
272
|
+
isSelected?: boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Callback fired when the standalone item's selected state changes.
|
|
275
|
+
* Ignored when inside a Group (selection is managed by Group).
|
|
276
|
+
* @param selected - The new selected state
|
|
277
|
+
*/
|
|
278
|
+
onSelectedChange?: (selected: boolean) => void;
|
|
279
|
+
/**
|
|
280
|
+
* Visual variant of the menu item.
|
|
281
|
+
* @default 'default'
|
|
282
|
+
*/
|
|
283
|
+
variant?: ItemVariant;
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
// --------------------------------------------------
|
|
287
|
+
// Label
|
|
288
|
+
// --------------------------------------------------
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Props for the Menu Label component.
|
|
292
|
+
* Renders a non-interactive text label within the menu (e.g. section heading).
|
|
293
|
+
*
|
|
294
|
+
* @extends SlottableTextProps Inherits text props with asChild support
|
|
295
|
+
*/
|
|
296
|
+
type LabelProps = SlottableTextProps;
|
|
297
|
+
|
|
298
|
+
// --------------------------------------------------
|
|
299
|
+
// Item sub-components
|
|
300
|
+
// --------------------------------------------------
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Props for the Menu ItemTitle component.
|
|
304
|
+
* Renders the primary label text of a menu item.
|
|
305
|
+
*
|
|
306
|
+
* @extends SlottableTextProps Inherits text props with asChild support
|
|
307
|
+
*/
|
|
308
|
+
type ItemTitleProps = SlottableTextProps;
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Props for the Menu ItemDescription component.
|
|
312
|
+
* Renders secondary description text of a menu item.
|
|
313
|
+
*
|
|
314
|
+
* @extends SlottableTextProps Inherits text props with asChild support
|
|
315
|
+
*/
|
|
316
|
+
type ItemDescriptionProps = SlottableTextProps;
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Props for the Menu ItemIndicator component.
|
|
320
|
+
* Renders a visual selection indicator (e.g. checkmark) within a menu item.
|
|
321
|
+
* Only visible when the parent item is selected unless `forceMount` is set.
|
|
322
|
+
*
|
|
323
|
+
* @extends SlottableViewProps Inherits view props with asChild support
|
|
324
|
+
* @extends ForceMountable Supports forced mounting behavior
|
|
325
|
+
*/
|
|
326
|
+
type ItemIndicatorProps = SlottableViewProps & ForceMountable;
|
|
327
|
+
|
|
328
|
+
// --------------------------------------------------
|
|
329
|
+
// Ref types
|
|
330
|
+
// --------------------------------------------------
|
|
331
|
+
|
|
332
|
+
/** Ref type for the Menu Close component */
|
|
333
|
+
type CloseRef = PressableRef;
|
|
334
|
+
|
|
335
|
+
/** Ref type for the Menu Content component */
|
|
336
|
+
type ContentRef = ViewRef;
|
|
337
|
+
|
|
338
|
+
/** Ref type for the Menu Overlay component */
|
|
339
|
+
type OverlayRef = PressableRef;
|
|
340
|
+
|
|
341
|
+
/** Ref type for the Menu Root component */
|
|
342
|
+
type RootRef = ViewRef;
|
|
343
|
+
|
|
344
|
+
/** Ref type for the Menu Trigger component */
|
|
345
|
+
type TriggerRef = PressableRef & {
|
|
346
|
+
/** Programmatically open the menu */
|
|
347
|
+
open: () => void;
|
|
348
|
+
/** Programmatically close the menu */
|
|
349
|
+
close: () => void;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
/** Ref type for the Menu Group component */
|
|
353
|
+
type GroupRef = ViewRef;
|
|
354
|
+
|
|
355
|
+
/** Ref type for the Menu Label component */
|
|
356
|
+
type LabelRef = TextRef;
|
|
357
|
+
|
|
358
|
+
/** Ref type for the Menu Item component */
|
|
359
|
+
type ItemRef = PressableRef;
|
|
360
|
+
|
|
361
|
+
/** Ref type for the Menu ItemTitle component */
|
|
362
|
+
type ItemTitleRef = TextRef;
|
|
363
|
+
|
|
364
|
+
/** Ref type for the Menu ItemDescription component */
|
|
365
|
+
type ItemDescriptionRef = TextRef;
|
|
366
|
+
|
|
367
|
+
/** Ref type for the Menu ItemIndicator component */
|
|
368
|
+
type ItemIndicatorRef = ViewRef;
|
|
369
|
+
|
|
370
|
+
export type {
|
|
371
|
+
CloseProps,
|
|
372
|
+
CloseRef,
|
|
373
|
+
ContentProps,
|
|
374
|
+
ContentRef,
|
|
375
|
+
ContentSizing,
|
|
376
|
+
GroupContextValue,
|
|
377
|
+
GroupProps,
|
|
378
|
+
GroupRef,
|
|
379
|
+
GroupSelectionMode,
|
|
380
|
+
IItemContext,
|
|
381
|
+
IRootContext,
|
|
382
|
+
ItemDescriptionProps,
|
|
383
|
+
ItemDescriptionRef,
|
|
384
|
+
ItemIndicatorProps,
|
|
385
|
+
ItemIndicatorRef,
|
|
386
|
+
ItemProps,
|
|
387
|
+
ItemRef,
|
|
388
|
+
ItemTitleProps,
|
|
389
|
+
ItemTitleRef,
|
|
390
|
+
ItemVariant,
|
|
391
|
+
LabelProps,
|
|
392
|
+
LabelRef,
|
|
393
|
+
MenuKey,
|
|
394
|
+
OverlayProps,
|
|
395
|
+
OverlayRef,
|
|
396
|
+
PortalProps,
|
|
397
|
+
RootProps,
|
|
398
|
+
RootRef,
|
|
399
|
+
TriggerProps,
|
|
400
|
+
TriggerRef,
|
|
401
|
+
};
|