@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,183 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
useCallback,
|
|
3
|
+
useMemo,
|
|
4
|
+
useState,
|
|
5
|
+
type PropsWithChildren,
|
|
6
|
+
} from 'react';
|
|
7
|
+
import {
|
|
8
|
+
StyleSheet,
|
|
9
|
+
useWindowDimensions,
|
|
10
|
+
type LayoutChangeEvent,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
import Animated, { useSharedValue } from 'react-native-reanimated';
|
|
13
|
+
|
|
14
|
+
import { AnimationSettingsProvider } from '../../helpers/internal/contexts';
|
|
15
|
+
|
|
16
|
+
import LinearGradientComponent from './linear-gradient';
|
|
17
|
+
import {
|
|
18
|
+
SkeletonAnimationProvider,
|
|
19
|
+
useSkeletonAnimation,
|
|
20
|
+
useSkeletonPulseAnimation,
|
|
21
|
+
useSkeletonRootAnimation,
|
|
22
|
+
useSkeletonShimmerAnimation,
|
|
23
|
+
} from './skeleton.animation';
|
|
24
|
+
import { DISPLAY_NAME } from './skeleton.constants';
|
|
25
|
+
import { skeletonClassNames, skeletonStyleSheet } from './skeleton.styles';
|
|
26
|
+
import type { SkeletonProps } from './skeleton.types';
|
|
27
|
+
|
|
28
|
+
// --------------------------------------------------
|
|
29
|
+
|
|
30
|
+
const ShimmerAnimation: React.FC<{
|
|
31
|
+
animation: SkeletonProps['animation'];
|
|
32
|
+
isAnimatedStyleActive?: boolean;
|
|
33
|
+
}> = ({ animation, isAnimatedStyleActive = true }) => {
|
|
34
|
+
const { rContainerStyle, gradientColors } = useSkeletonShimmerAnimation({
|
|
35
|
+
animation,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const shimmerStyle = isAnimatedStyleActive
|
|
39
|
+
? [StyleSheet.absoluteFill, skeletonStyleSheet.borderCurve, rContainerStyle]
|
|
40
|
+
: [StyleSheet.absoluteFill, skeletonStyleSheet.borderCurve];
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<Animated.View style={shimmerStyle}>
|
|
44
|
+
<LinearGradientComponent colors={gradientColors} />
|
|
45
|
+
</Animated.View>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// --------------------------------------------------
|
|
50
|
+
|
|
51
|
+
const PulseAnimation: React.FC<
|
|
52
|
+
PropsWithChildren<{
|
|
53
|
+
animation: SkeletonProps['animation'];
|
|
54
|
+
isAnimatedStyleActive?: boolean;
|
|
55
|
+
}>
|
|
56
|
+
> = ({ children, animation, isAnimatedStyleActive = true }) => {
|
|
57
|
+
const { variant } = useSkeletonAnimation();
|
|
58
|
+
|
|
59
|
+
const { rContainerStyle } = useSkeletonPulseAnimation({
|
|
60
|
+
animation,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
if (variant === 'pulse') {
|
|
64
|
+
const pulseStyle = isAnimatedStyleActive ? rContainerStyle : undefined;
|
|
65
|
+
return <Animated.View style={pulseStyle}>{children}</Animated.View>;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return children;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// --------------------------------------------------
|
|
72
|
+
|
|
73
|
+
const Skeleton: React.FC<SkeletonProps> = (props) => {
|
|
74
|
+
const {
|
|
75
|
+
children,
|
|
76
|
+
isLoading = true,
|
|
77
|
+
variant = 'shimmer',
|
|
78
|
+
animation,
|
|
79
|
+
isAnimatedStyleActive = true,
|
|
80
|
+
className,
|
|
81
|
+
style,
|
|
82
|
+
...restProps
|
|
83
|
+
} = props;
|
|
84
|
+
|
|
85
|
+
const [componentWidth, setComponentWidth] = useState(0);
|
|
86
|
+
const [offset, setOffset] = useState(0);
|
|
87
|
+
|
|
88
|
+
const progress = useSharedValue(0);
|
|
89
|
+
|
|
90
|
+
const { width: screenWidth } = useWindowDimensions();
|
|
91
|
+
|
|
92
|
+
const { isAllAnimationsDisabled, entering, exiting } =
|
|
93
|
+
useSkeletonRootAnimation({
|
|
94
|
+
animation,
|
|
95
|
+
isLoading,
|
|
96
|
+
variant,
|
|
97
|
+
progress,
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const rootClassName = skeletonClassNames.root({ className });
|
|
101
|
+
|
|
102
|
+
const handleLayout = useCallback(
|
|
103
|
+
(event: LayoutChangeEvent) => {
|
|
104
|
+
if (componentWidth === 0) {
|
|
105
|
+
const { width, x } = event.nativeEvent.layout;
|
|
106
|
+
setComponentWidth(width);
|
|
107
|
+
setOffset(x);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
[componentWidth]
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
const animationContextValue = useMemo(
|
|
114
|
+
() => ({
|
|
115
|
+
isLoading,
|
|
116
|
+
variant,
|
|
117
|
+
progress,
|
|
118
|
+
componentWidth,
|
|
119
|
+
offset,
|
|
120
|
+
screenWidth,
|
|
121
|
+
}),
|
|
122
|
+
[isLoading, variant, progress, componentWidth, offset, screenWidth]
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
const animationSettingsContextValue = useMemo(
|
|
126
|
+
() => ({
|
|
127
|
+
isAllAnimationsDisabled,
|
|
128
|
+
}),
|
|
129
|
+
[isAllAnimationsDisabled]
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
if (!isLoading) {
|
|
133
|
+
return (
|
|
134
|
+
<Animated.View key="content" entering={entering} exiting={exiting}>
|
|
135
|
+
{children}
|
|
136
|
+
</Animated.View>
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<AnimationSettingsProvider value={animationSettingsContextValue}>
|
|
142
|
+
<SkeletonAnimationProvider value={animationContextValue}>
|
|
143
|
+
<PulseAnimation
|
|
144
|
+
animation={animation}
|
|
145
|
+
isAnimatedStyleActive={isAnimatedStyleActive}
|
|
146
|
+
>
|
|
147
|
+
<Animated.View
|
|
148
|
+
key="skeleton"
|
|
149
|
+
entering={entering}
|
|
150
|
+
exiting={exiting}
|
|
151
|
+
onLayout={handleLayout}
|
|
152
|
+
style={[skeletonStyleSheet.borderCurve, style]}
|
|
153
|
+
className={rootClassName}
|
|
154
|
+
{...restProps}
|
|
155
|
+
>
|
|
156
|
+
{variant === 'shimmer' && componentWidth > 0 && (
|
|
157
|
+
<ShimmerAnimation
|
|
158
|
+
animation={animation}
|
|
159
|
+
isAnimatedStyleActive={isAnimatedStyleActive}
|
|
160
|
+
/>
|
|
161
|
+
)}
|
|
162
|
+
</Animated.View>
|
|
163
|
+
</PulseAnimation>
|
|
164
|
+
</SkeletonAnimationProvider>
|
|
165
|
+
</AnimationSettingsProvider>
|
|
166
|
+
);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
// --------------------------------------------------
|
|
170
|
+
|
|
171
|
+
Skeleton.displayName = DISPLAY_NAME.SKELETON;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Skeleton component for displaying loading placeholders
|
|
175
|
+
*
|
|
176
|
+
* @component Skeleton - Animated loading placeholder that can display shimmer or pulse effects.
|
|
177
|
+
* Shows skeleton state when isLoading is true, otherwise displays children content.
|
|
178
|
+
* Supports customizable animations through the animation prop with shimmer and pulse configurations.
|
|
179
|
+
* Shape and size are controlled via className for maximum flexibility.
|
|
180
|
+
*
|
|
181
|
+
* @see Full documentation: https://v3.heroui.com/docs/native/components/skeleton
|
|
182
|
+
*/
|
|
183
|
+
export default Skeleton;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
import type {
|
|
3
|
+
AnimatedProps,
|
|
4
|
+
EasingFunction,
|
|
5
|
+
EntryOrExitLayoutType,
|
|
6
|
+
SharedValue,
|
|
7
|
+
} from 'react-native-reanimated';
|
|
8
|
+
import type { Animation, AnimationRoot } from '../../helpers/internal/types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton animation type - defines the animation style
|
|
12
|
+
*/
|
|
13
|
+
export type SkeletonAnimation = 'shimmer' | 'pulse' | 'none';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Shimmer animation configuration for Skeleton root component
|
|
17
|
+
*/
|
|
18
|
+
export type SkeletonShimmerAnimation = Animation<{
|
|
19
|
+
/**
|
|
20
|
+
* Animation duration in milliseconds
|
|
21
|
+
* @default 1500
|
|
22
|
+
*/
|
|
23
|
+
duration?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Speed multiplier for the animation
|
|
26
|
+
* @default 1
|
|
27
|
+
*/
|
|
28
|
+
speed?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Highlight color for the shimmer effect
|
|
31
|
+
*/
|
|
32
|
+
highlightColor?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Easing function for the animation
|
|
35
|
+
*/
|
|
36
|
+
easing?: EasingFunction;
|
|
37
|
+
}>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Pulse animation configuration for Skeleton root component
|
|
41
|
+
*/
|
|
42
|
+
export type SkeletonPulseAnimation = Animation<{
|
|
43
|
+
/**
|
|
44
|
+
* Animation duration in milliseconds
|
|
45
|
+
* @default 1000
|
|
46
|
+
*/
|
|
47
|
+
duration?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Minimum opacity value
|
|
50
|
+
* @default 0.5
|
|
51
|
+
*/
|
|
52
|
+
minOpacity?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum opacity value
|
|
55
|
+
* @default 1
|
|
56
|
+
*/
|
|
57
|
+
maxOpacity?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Easing function for the animation
|
|
60
|
+
*/
|
|
61
|
+
easing?: EasingFunction;
|
|
62
|
+
}>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Animation configuration for Skeleton root component
|
|
66
|
+
*/
|
|
67
|
+
export type SkeletonRootAnimation = AnimationRoot<{
|
|
68
|
+
entering?: Animation<{
|
|
69
|
+
/**
|
|
70
|
+
* Custom entering animation for skeleton
|
|
71
|
+
*/
|
|
72
|
+
value?: EntryOrExitLayoutType;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Exiting animation for the skeleton
|
|
76
|
+
*/
|
|
77
|
+
exiting?: Animation<{
|
|
78
|
+
/**
|
|
79
|
+
* Custom exiting animation for skeleton
|
|
80
|
+
*/
|
|
81
|
+
value?: EntryOrExitLayoutType;
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* Shimmer animation configuration
|
|
85
|
+
*/
|
|
86
|
+
shimmer?: SkeletonShimmerAnimation;
|
|
87
|
+
/**
|
|
88
|
+
* Pulse animation configuration
|
|
89
|
+
*/
|
|
90
|
+
pulse?: SkeletonPulseAnimation;
|
|
91
|
+
/**
|
|
92
|
+
* Entering animation for the skeleton
|
|
93
|
+
*/
|
|
94
|
+
}>;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Props for the main Skeleton component
|
|
98
|
+
*/
|
|
99
|
+
export interface SkeletonProps extends AnimatedProps<ViewProps> {
|
|
100
|
+
/**
|
|
101
|
+
* Child components to show when not loading
|
|
102
|
+
*/
|
|
103
|
+
children?: React.ReactNode;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Whether the skeleton is currently loading
|
|
107
|
+
* @default true
|
|
108
|
+
*/
|
|
109
|
+
isLoading?: boolean;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Animation variant
|
|
113
|
+
* @default 'shimmer'
|
|
114
|
+
*/
|
|
115
|
+
variant?: SkeletonAnimation;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Animation configuration
|
|
119
|
+
*/
|
|
120
|
+
animation?: SkeletonRootAnimation;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Whether animated styles (react-native-reanimated) are active
|
|
124
|
+
* When `false`, the animated style is removed and you can implement custom logic
|
|
125
|
+
* This prop should only be used when you want to write custom styling logic instead of the default animated styles
|
|
126
|
+
* @default true
|
|
127
|
+
*/
|
|
128
|
+
isAnimatedStyleActive?: boolean;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Additional CSS classes for styling
|
|
132
|
+
*
|
|
133
|
+
* @note The following style properties are occupied by animations and cannot be set via className:
|
|
134
|
+
* - `opacity` - Animated for pulse variant transitions (min: 0.5, max: 1)
|
|
135
|
+
*
|
|
136
|
+
* The shimmer variant uses an internal overlay with `transform` (translateX) animation, which doesn't affect the className prop.
|
|
137
|
+
*
|
|
138
|
+
* To customize these properties, use the `animation` prop:
|
|
139
|
+
* ```tsx
|
|
140
|
+
* <Skeleton
|
|
141
|
+
* variant="pulse"
|
|
142
|
+
* animation={{
|
|
143
|
+
* pulse: { minOpacity: 0.5, maxOpacity: 1, duration: 1000, easing: Easing.inOut(Easing.ease) }
|
|
144
|
+
* }}
|
|
145
|
+
* />
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* For shimmer variant:
|
|
149
|
+
* ```tsx
|
|
150
|
+
* <Skeleton
|
|
151
|
+
* variant="shimmer"
|
|
152
|
+
* animation={{
|
|
153
|
+
* shimmer: { duration: 1500, speed: 1, highlightColor: '#ffffff', easing: Easing.linear }
|
|
154
|
+
* }}
|
|
155
|
+
* />
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* To completely disable animated styles and use your own via className or style prop, set `isAnimatedStyleActive={false}`.
|
|
159
|
+
*/
|
|
160
|
+
className?: string;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Context value for skeleton animation provider
|
|
165
|
+
*/
|
|
166
|
+
export interface SkeletonAnimationContextValue {
|
|
167
|
+
/**
|
|
168
|
+
* Whether the skeleton is currently loading
|
|
169
|
+
*/
|
|
170
|
+
isLoading: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Animation variant
|
|
173
|
+
*/
|
|
174
|
+
variant: SkeletonAnimation;
|
|
175
|
+
/**
|
|
176
|
+
* Shared animation progress value
|
|
177
|
+
*/
|
|
178
|
+
progress: SharedValue<number>;
|
|
179
|
+
/**
|
|
180
|
+
* Component width for shimmer calculation
|
|
181
|
+
*/
|
|
182
|
+
componentWidth: number;
|
|
183
|
+
/**
|
|
184
|
+
* Component offset for shimmer calculation
|
|
185
|
+
*/
|
|
186
|
+
offset: number;
|
|
187
|
+
/**
|
|
188
|
+
* Screen width for animation calculation
|
|
189
|
+
*/
|
|
190
|
+
screenWidth: number;
|
|
191
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# SkeletonGroup
|
|
2
|
+
|
|
3
|
+
Coordinates multiple skeleton loading placeholders with centralized animation control.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { SkeletonGroup } from '@/heroui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Anatomy
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<SkeletonGroup>
|
|
15
|
+
<SkeletonGroup.Item />
|
|
16
|
+
</SkeletonGroup>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- **SkeletonGroup**: Root container that provides centralized control for all skeleton items
|
|
20
|
+
- **SkeletonGroup.Item**: Individual skeleton item that inherits props from the parent group
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
### Basic Usage
|
|
25
|
+
|
|
26
|
+
The SkeletonGroup component manages multiple skeleton items with shared loading state and animation.
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
<SkeletonGroup isLoading={isLoading}>
|
|
30
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md" />
|
|
31
|
+
<SkeletonGroup.Item className="h-4 w-3/4 rounded-md" />
|
|
32
|
+
<SkeletonGroup.Item className="h-4 w-1/2 rounded-md" />
|
|
33
|
+
</SkeletonGroup>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### With Container Layout
|
|
37
|
+
|
|
38
|
+
Use className on the group to control layout of skeleton items.
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<SkeletonGroup isLoading={isLoading} className="flex-row items-center gap-3">
|
|
42
|
+
<SkeletonGroup.Item className="h-12 w-12 rounded-lg" />
|
|
43
|
+
<View className="flex-1 gap-1.5">
|
|
44
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md" />
|
|
45
|
+
<SkeletonGroup.Item className="h-3 w-2/3 rounded-md" />
|
|
46
|
+
</View>
|
|
47
|
+
</SkeletonGroup>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### With isSkeletonOnly for Pure Skeleton Layouts
|
|
51
|
+
|
|
52
|
+
Use `isSkeletonOnly` when the group contains only skeleton placeholders with layout wrappers (like View) that have no content to render in the loaded state. This prop hides the entire group when `isLoading` is false, preventing empty containers from affecting your layout.
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<SkeletonGroup
|
|
56
|
+
isLoading={isLoading}
|
|
57
|
+
isSkeletonOnly // Hides entire group when isLoading is false
|
|
58
|
+
className="flex-row items-center gap-3"
|
|
59
|
+
>
|
|
60
|
+
<SkeletonGroup.Item className="h-12 w-12 rounded-lg" />
|
|
61
|
+
{/* This View is only for layout, no content */}
|
|
62
|
+
<View className="flex-1 gap-1.5">
|
|
63
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md" />
|
|
64
|
+
<SkeletonGroup.Item className="h-3 w-2/3 rounded-md" />
|
|
65
|
+
</View>
|
|
66
|
+
</SkeletonGroup>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### With Animation Variants
|
|
70
|
+
|
|
71
|
+
Control animation style for all items in the group.
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<SkeletonGroup isLoading={isLoading} variant="pulse">
|
|
75
|
+
<SkeletonGroup.Item className="h-10 w-10 rounded-full" />
|
|
76
|
+
<SkeletonGroup.Item className="h-4 w-32 rounded-md" />
|
|
77
|
+
<SkeletonGroup.Item className="h-3 w-24 rounded-md" />
|
|
78
|
+
</SkeletonGroup>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### With Custom Animation Configuration
|
|
82
|
+
|
|
83
|
+
Configure shimmer or pulse animations for the entire group.
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
<SkeletonGroup
|
|
87
|
+
isLoading={isLoading}
|
|
88
|
+
variant="shimmer"
|
|
89
|
+
animation={{
|
|
90
|
+
shimmer: {
|
|
91
|
+
duration: 2000,
|
|
92
|
+
highlightColor: 'rgba(59, 130, 246, 0.3)',
|
|
93
|
+
},
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<SkeletonGroup.Item className="h-16 w-full rounded-lg" />
|
|
97
|
+
<SkeletonGroup.Item className="h-4 w-3/4 rounded-md" />
|
|
98
|
+
</SkeletonGroup>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### With Enter/Exit Animations
|
|
102
|
+
|
|
103
|
+
Apply Reanimated transitions when the group appears or disappears.
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
<SkeletonGroup
|
|
107
|
+
entering={FadeInLeft}
|
|
108
|
+
exiting={FadeOutRight}
|
|
109
|
+
isLoading={isLoading}
|
|
110
|
+
className="w-full gap-2"
|
|
111
|
+
>
|
|
112
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md" />
|
|
113
|
+
<SkeletonGroup.Item className="h-4 w-3/4 rounded-md" />
|
|
114
|
+
</SkeletonGroup>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Example
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
import { Card, SkeletonGroup, Avatar } from '@/heroui';
|
|
121
|
+
import { useState } from 'react';
|
|
122
|
+
import { Text, View, Image } from 'react-native';
|
|
123
|
+
|
|
124
|
+
export default function SkeletonGroupExample() {
|
|
125
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<SkeletonGroup isLoading={isLoading}>
|
|
129
|
+
<Card className="p-4">
|
|
130
|
+
<Card.Header>
|
|
131
|
+
<View className="flex-row items-center gap-3 mb-4">
|
|
132
|
+
<SkeletonGroup.Item className="h-10 w-10 rounded-full">
|
|
133
|
+
<Avatar size="sm" alt="Avatar">
|
|
134
|
+
<Avatar.Image
|
|
135
|
+
source={{ uri: 'https://i.pravatar.cc/150?img=4' }}
|
|
136
|
+
/>
|
|
137
|
+
<Avatar.Fallback />
|
|
138
|
+
</Avatar>
|
|
139
|
+
</SkeletonGroup.Item>
|
|
140
|
+
|
|
141
|
+
<View className="flex-1 gap-1">
|
|
142
|
+
<SkeletonGroup.Item className="h-3 w-32 rounded-md">
|
|
143
|
+
<Text className="font-semibold text-foreground">John Doe</Text>
|
|
144
|
+
</SkeletonGroup.Item>
|
|
145
|
+
<SkeletonGroup.Item className="h-3 w-24 rounded-md">
|
|
146
|
+
<Text className="text-sm text-muted">@johndoe</Text>
|
|
147
|
+
</SkeletonGroup.Item>
|
|
148
|
+
</View>
|
|
149
|
+
</View>
|
|
150
|
+
|
|
151
|
+
<View className="mb-4 gap-1.5">
|
|
152
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md">
|
|
153
|
+
<Text className="text-base text-foreground">
|
|
154
|
+
This is the first line of the post content.
|
|
155
|
+
</Text>
|
|
156
|
+
</SkeletonGroup.Item>
|
|
157
|
+
<SkeletonGroup.Item className="h-4 w-full rounded-md">
|
|
158
|
+
<Text className="text-base text-foreground">
|
|
159
|
+
Second line with more interesting content to read.
|
|
160
|
+
</Text>
|
|
161
|
+
</SkeletonGroup.Item>
|
|
162
|
+
<SkeletonGroup.Item className="h-4 w-2/3 rounded-md">
|
|
163
|
+
<Text className="text-base text-foreground">
|
|
164
|
+
Last line is shorter.
|
|
165
|
+
</Text>
|
|
166
|
+
</SkeletonGroup.Item>
|
|
167
|
+
</View>
|
|
168
|
+
</Card.Header>
|
|
169
|
+
|
|
170
|
+
<SkeletonGroup.Item className="h-48 w-full rounded-lg">
|
|
171
|
+
<View className="h-48 bg-surface-tertiary rounded-lg overflow-hidden">
|
|
172
|
+
<Image
|
|
173
|
+
source={{
|
|
174
|
+
uri: 'https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/backgrounds/cards/car1.jpg',
|
|
175
|
+
}}
|
|
176
|
+
className="h-full w-full"
|
|
177
|
+
/>
|
|
178
|
+
</View>
|
|
179
|
+
</SkeletonGroup.Item>
|
|
180
|
+
</Card>
|
|
181
|
+
</SkeletonGroup>
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/skeleton-group.tsx>).
|
|
187
|
+
|
|
188
|
+
## API Reference
|
|
189
|
+
|
|
190
|
+
### SkeletonGroup
|
|
191
|
+
|
|
192
|
+
| prop | type | default | description |
|
|
193
|
+
| ----------------------- | -------------------------------- | ----------- | ---------------------------------------------------------------------- |
|
|
194
|
+
| `children` | `React.ReactNode` | - | SkeletonGroup.Item components and layout elements |
|
|
195
|
+
| `isLoading` | `boolean` | `true` | Whether the skeleton items are currently loading |
|
|
196
|
+
| `isSkeletonOnly` | `boolean` | `false` | Hides entire group when isLoading is false (for skeleton-only layouts) |
|
|
197
|
+
| `variant` | `'shimmer' \| 'pulse' \| 'none'` | `'shimmer'` | Animation variant for all items in the group |
|
|
198
|
+
| `animation` | `SkeletonRootAnimation` | - | Animation configuration |
|
|
199
|
+
| `className` | `string` | - | Additional CSS classes for the group container |
|
|
200
|
+
| `style` | `StyleProp<ViewStyle>` | - | Custom styles for the group container |
|
|
201
|
+
| `...Animated.ViewProps` | `AnimatedProps<ViewProps>` | - | All Reanimated Animated.View props are supported |
|
|
202
|
+
|
|
203
|
+
#### SkeletonRootAnimation
|
|
204
|
+
|
|
205
|
+
Animation configuration for SkeletonGroup component. Can be:
|
|
206
|
+
|
|
207
|
+
- `false` or `"disabled"`: Disable only root animations
|
|
208
|
+
- `"disable-all"`: Disable all animations including children
|
|
209
|
+
- `true` or `undefined`: Use default animations
|
|
210
|
+
- `object`: Custom animation configuration
|
|
211
|
+
|
|
212
|
+
| prop | type | default | description |
|
|
213
|
+
| ------------------------ | ---------------------------------------- | --------------------------- | ----------------------------------------------- |
|
|
214
|
+
| `state` | `'disabled' \| 'disable-all' \| boolean` | - | Disable animations while customizing properties |
|
|
215
|
+
| `entering.value` | `EntryOrExitLayoutType` | `FadeIn` | Custom entering animation |
|
|
216
|
+
| `exiting.value` | `EntryOrExitLayoutType` | `FadeOut` | Custom exiting animation |
|
|
217
|
+
| `shimmer.duration` | `number` | `1500` | Animation duration in milliseconds |
|
|
218
|
+
| `shimmer.speed` | `number` | `1` | Speed multiplier for the animation |
|
|
219
|
+
| `shimmer.highlightColor` | `string` | - | Highlight color for the shimmer effect |
|
|
220
|
+
| `shimmer.easing` | `EasingFunction` | `Easing.linear` | Easing function for the animation |
|
|
221
|
+
| `pulse.duration` | `number` | `1000` | Animation duration in milliseconds |
|
|
222
|
+
| `pulse.minOpacity` | `number` | `0.5` | Minimum opacity value |
|
|
223
|
+
| `pulse.maxOpacity` | `number` | `1` | Maximum opacity value |
|
|
224
|
+
| `pulse.easing` | `EasingFunction` | `Easing.inOut(Easing.ease)` | Easing function for the animation |
|
|
225
|
+
|
|
226
|
+
### SkeletonGroup.Item
|
|
227
|
+
|
|
228
|
+
| prop | type | default | description |
|
|
229
|
+
| ----------------------- | -------------------------------- | --------- | ------------------------------------------------------------------- |
|
|
230
|
+
| `children` | `React.ReactNode` | - | Content to show when not loading |
|
|
231
|
+
| `isLoading` | `boolean` | inherited | Whether the skeleton is currently loading (overrides group setting) |
|
|
232
|
+
| `variant` | `'shimmer' \| 'pulse' \| 'none'` | inherited | Animation variant (overrides group setting) |
|
|
233
|
+
| `animation` | `SkeletonRootAnimation` | inherited | Animation configuration (overrides group setting) |
|
|
234
|
+
| `className` | `string` | - | Additional CSS classes for styling the item |
|
|
235
|
+
| `...Animated.ViewProps` | `AnimatedProps<ViewProps>` | - | All Reanimated Animated.View props are supported |
|
|
236
|
+
|
|
237
|
+
## Special Notes
|
|
238
|
+
|
|
239
|
+
### Props Inheritance
|
|
240
|
+
|
|
241
|
+
SkeletonGroup.Item components inherit all animation-related props from their parent SkeletonGroup:
|
|
242
|
+
|
|
243
|
+
- `isLoading`
|
|
244
|
+
- `variant`
|
|
245
|
+
- `animation`
|
|
246
|
+
|
|
247
|
+
Individual items can override any inherited prop by providing their own value.
|