@unif/react-native-design 0.8.1 → 0.9.0
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/README.md +3 -4
- package/lib/module/components/business/AvatarWithRing/AvatarWithRing.js +6 -4
- package/lib/module/components/business/AvatarWithRing/AvatarWithRing.js.map +1 -1
- package/lib/module/components/business/AvatarWithRing/styles.js +15 -3
- package/lib/module/components/business/AvatarWithRing/styles.js.map +1 -1
- package/lib/module/components/business/Decorations/GradientWash.js +50 -36
- package/lib/module/components/business/Decorations/GradientWash.js.map +1 -1
- package/lib/module/components/business/Decorations/RadialHalo.js +10 -4
- package/lib/module/components/business/Decorations/RadialHalo.js.map +1 -1
- package/lib/module/components/business/Decorations/ScreenBackdrop.js +22 -14
- package/lib/module/components/business/Decorations/ScreenBackdrop.js.map +1 -1
- package/lib/module/components/business/Decorations/index.js +3 -0
- package/lib/module/components/business/Decorations/index.js.map +1 -1
- package/lib/module/components/business/GlassStats/GlassStats.js +7 -4
- package/lib/module/components/business/GlassStats/GlassStats.js.map +1 -1
- package/lib/module/components/business/GlassStats/types.js +2 -0
- package/lib/module/components/business/VersionPill/VersionPill.js +23 -5
- package/lib/module/components/business/VersionPill/VersionPill.js.map +1 -1
- package/lib/module/components/business/VersionPill/styles.js +1 -1
- package/lib/module/components/business/index.js.map +1 -1
- package/lib/module/components/business/useSvgId.js +20 -0
- package/lib/module/components/business/useSvgId.js.map +1 -0
- package/lib/module/components/ui/Avatar/Avatar.js +13 -8
- package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/ui/Avatar/styles.js +7 -7
- package/lib/module/components/ui/Avatar/styles.js.map +1 -1
- package/lib/module/components/ui/BlurLayer/BlurLayer.js +5 -1
- package/lib/module/components/ui/BlurLayer/BlurLayer.js.map +1 -1
- package/lib/module/components/ui/BlurLayer/BlurLayer.web.js +7 -1
- package/lib/module/components/ui/BlurLayer/BlurLayer.web.js.map +1 -1
- package/lib/module/components/ui/Button/Button.js +2 -1
- package/lib/module/components/ui/Button/Button.js.map +1 -1
- package/lib/module/components/ui/Button/ButtonBase.js +36 -2
- package/lib/module/components/ui/Button/ButtonBase.js.map +1 -1
- package/lib/module/components/ui/Button/styles.js +27 -25
- package/lib/module/components/ui/Button/styles.js.map +1 -1
- package/lib/module/components/ui/Card/Card.js +17 -8
- package/lib/module/components/ui/Card/Card.js.map +1 -1
- package/lib/module/components/ui/Card/styles.js +6 -1
- package/lib/module/components/ui/Card/styles.js.map +1 -1
- package/lib/module/components/ui/Carousel/Carousel.js +36 -6
- package/lib/module/components/ui/Carousel/Carousel.js.map +1 -1
- package/lib/module/components/ui/Cell/Cell.js +23 -5
- package/lib/module/components/ui/Cell/Cell.js.map +1 -1
- package/lib/module/components/ui/Cell/Leading.js +2 -2
- package/lib/module/components/ui/Cell/Leading.js.map +1 -1
- package/lib/module/components/ui/Cell/List.js +10 -5
- package/lib/module/components/ui/Cell/List.js.map +1 -1
- package/lib/module/components/ui/Cell/styles.js +7 -6
- package/lib/module/components/ui/Cell/styles.js.map +1 -1
- package/lib/module/components/ui/Checkbox/Checkbox.js +10 -8
- package/lib/module/components/ui/Checkbox/Checkbox.js.map +1 -1
- package/lib/module/components/ui/Checkbox/styles.js +9 -1
- package/lib/module/components/ui/Checkbox/styles.js.map +1 -1
- package/lib/module/components/ui/Chip/Chip.js +19 -5
- package/lib/module/components/ui/Chip/Chip.js.map +1 -1
- package/lib/module/components/ui/Confirm/ConfirmHost.js +28 -11
- package/lib/module/components/ui/Confirm/ConfirmHost.js.map +1 -1
- package/lib/module/components/ui/Confirm/confirm.js +6 -0
- package/lib/module/components/ui/Confirm/confirm.js.map +1 -1
- package/lib/module/components/ui/DrawerHeader/DrawerHeader.js +14 -9
- package/lib/module/components/ui/DrawerHeader/DrawerHeader.js.map +1 -1
- package/lib/module/components/ui/DrawerHeader/styles.js +10 -6
- package/lib/module/components/ui/DrawerHeader/styles.js.map +1 -1
- package/lib/module/components/ui/Empty/Empty.js +5 -4
- package/lib/module/components/ui/Empty/Empty.js.map +1 -1
- package/lib/module/components/ui/EntryCard/EntryCard.js +5 -3
- package/lib/module/components/ui/EntryCard/EntryCard.js.map +1 -1
- package/lib/module/components/ui/EntryCard/styles.js +4 -4
- package/lib/module/components/ui/EntryCard/styles.js.map +1 -1
- package/lib/module/components/ui/Form/FormRow.js +1 -0
- package/lib/module/components/ui/Form/FormRow.js.map +1 -1
- package/lib/module/components/ui/Form/styles.js +3 -1
- package/lib/module/components/ui/Form/styles.js.map +1 -1
- package/lib/module/components/ui/Grid/Grid.js +39 -24
- package/lib/module/components/ui/Grid/Grid.js.map +1 -1
- package/lib/module/components/ui/Grid/styles.js +35 -46
- package/lib/module/components/ui/Grid/styles.js.map +1 -1
- package/lib/module/components/ui/Icon/Icon.js +46 -29
- package/lib/module/components/ui/Icon/Icon.js.map +1 -1
- package/lib/module/components/ui/IconButton/IconButton.js +2 -0
- package/lib/module/components/ui/IconButton/IconButton.js.map +1 -1
- package/lib/module/components/ui/Logo/Logo.js +2 -1
- package/lib/module/components/ui/Logo/Logo.js.map +1 -1
- package/lib/module/components/ui/NavBar/NavBar.js +15 -3
- package/lib/module/components/ui/NavBar/NavBar.js.map +1 -1
- package/lib/module/components/ui/PasswordInput/PasswordInput.js +43 -14
- package/lib/module/components/ui/PasswordInput/PasswordInput.js.map +1 -1
- package/lib/module/components/ui/PasswordInput/styles.js +1 -1
- package/lib/module/components/ui/Pulse/Pulse.js +2 -1
- package/lib/module/components/ui/Pulse/Pulse.js.map +1 -1
- package/lib/module/components/ui/Pulse/PulseDot.js +8 -10
- package/lib/module/components/ui/Pulse/PulseDot.js.map +1 -1
- package/lib/module/components/ui/Pulse/types.js +2 -0
- package/lib/module/components/ui/Pulse/usePulse.web.js +51 -30
- package/lib/module/components/ui/Pulse/usePulse.web.js.map +1 -1
- package/lib/module/components/ui/Radio/Radio.js +19 -5
- package/lib/module/components/ui/Radio/Radio.js.map +1 -1
- package/lib/module/components/ui/Radio/RadioGroup.js +10 -6
- package/lib/module/components/ui/Radio/RadioGroup.js.map +1 -1
- package/lib/module/components/ui/Radio/styles.js +10 -3
- package/lib/module/components/ui/Radio/styles.js.map +1 -1
- package/lib/module/components/ui/Reveal/Reveal.web.js +18 -3
- package/lib/module/components/ui/Reveal/Reveal.web.js.map +1 -1
- package/lib/module/components/ui/Search/Search.js +26 -10
- package/lib/module/components/ui/Search/Search.js.map +1 -1
- package/lib/module/components/ui/Segmented/Segmented.js +40 -30
- package/lib/module/components/ui/Segmented/Segmented.js.map +1 -1
- package/lib/module/components/ui/Segmented/styles.js +4 -2
- package/lib/module/components/ui/Segmented/styles.js.map +1 -1
- package/lib/module/components/ui/Skeleton/Skeleton.js +9 -8
- package/lib/module/components/ui/Skeleton/Skeleton.js.map +1 -1
- package/lib/module/components/ui/Spinner/Spinner.js +15 -16
- package/lib/module/components/ui/Spinner/Spinner.js.map +1 -1
- package/lib/module/components/ui/Spinner/Spinner.web.js +10 -14
- package/lib/module/components/ui/Spinner/Spinner.web.js.map +1 -1
- package/lib/module/components/ui/Spinner/shared.js +31 -0
- package/lib/module/components/ui/Spinner/shared.js.map +1 -0
- package/lib/module/components/ui/StatusDot/StatusDot.js +21 -4
- package/lib/module/components/ui/StatusDot/StatusDot.js.map +1 -1
- package/lib/module/components/ui/StatusDot/styles.js +1 -1
- package/lib/module/components/ui/StatusDot/types.js +2 -0
- package/lib/module/components/ui/Stepper/Stepper.js +46 -10
- package/lib/module/components/ui/Stepper/Stepper.js.map +1 -1
- package/lib/module/components/ui/Switch/Switch.js +6 -11
- package/lib/module/components/ui/Switch/Switch.js.map +1 -1
- package/lib/module/components/ui/Switch/Switch.web.js +2 -8
- package/lib/module/components/ui/Switch/Switch.web.js.map +1 -1
- package/lib/module/components/ui/Switch/styles.js +12 -3
- package/lib/module/components/ui/Switch/styles.js.map +1 -1
- package/lib/module/components/ui/TabBar/TabBar.js +10 -6
- package/lib/module/components/ui/TabBar/TabBar.js.map +1 -1
- package/lib/module/components/ui/TabBar/styles.js +28 -39
- package/lib/module/components/ui/TabBar/styles.js.map +1 -1
- package/lib/module/components/ui/Tabs/Tabs.js +19 -5
- package/lib/module/components/ui/Tabs/Tabs.js.map +1 -1
- package/lib/module/components/ui/Tabs/styles.js +6 -2
- package/lib/module/components/ui/Tabs/styles.js.map +1 -1
- package/lib/module/components/ui/Tabs/types.js +2 -0
- package/lib/module/components/ui/Tag/styles.js +15 -14
- package/lib/module/components/ui/Tag/styles.js.map +1 -1
- package/lib/module/components/ui/TextField/TextFieldBase.js +24 -6
- package/lib/module/components/ui/TextField/TextFieldBase.js.map +1 -1
- package/lib/module/components/ui/Thumbnail/Thumbnail.js +11 -3
- package/lib/module/components/ui/Thumbnail/Thumbnail.js.map +1 -1
- package/lib/module/components/ui/Thumbnail/styles.js +6 -2
- package/lib/module/components/ui/Thumbnail/styles.js.map +1 -1
- package/lib/module/components/ui/Toast/ToastHost.js +16 -5
- package/lib/module/components/ui/Toast/ToastHost.js.map +1 -1
- package/lib/module/components/ui/Toast/ToastHost.web.js +21 -4
- package/lib/module/components/ui/Toast/ToastHost.web.js.map +1 -1
- package/lib/module/components/ui/Toast/styles.js +2 -0
- package/lib/module/components/ui/Toast/styles.js.map +1 -1
- package/lib/module/components/ui/Toast/toast.js +23 -3
- package/lib/module/components/ui/Toast/toast.js.map +1 -1
- package/lib/module/components/ui/shared/badgeStyles.js +31 -0
- package/lib/module/components/ui/shared/badgeStyles.js.map +1 -0
- package/lib/module/icons/data.js +43 -18
- package/lib/module/icons/data.js.map +1 -1
- package/lib/module/theme/colors.js +28 -10
- package/lib/module/theme/colors.js.map +1 -1
- package/lib/module/theme/index.js +6 -2
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/scale.js +9 -1
- package/lib/module/theme/scale.js.map +1 -1
- package/lib/module/theme/shadow.js +24 -41
- package/lib/module/theme/shadow.js.map +1 -1
- package/lib/module/theme/tokens.js +10 -5
- package/lib/module/theme/tokens.js.map +1 -1
- package/lib/module/theme/usePrefersReducedMotion.js +12 -0
- package/lib/module/theme/usePrefersReducedMotion.js.map +1 -0
- package/lib/module/theme/usePrefersReducedMotion.web.js +25 -0
- package/lib/module/theme/usePrefersReducedMotion.web.js.map +1 -0
- package/lib/module/theme/useTheme.js +13 -0
- package/lib/module/theme/useTheme.js.map +1 -1
- package/lib/module/utils/logger/logger.js +5 -1
- package/lib/module/utils/logger/logger.js.map +1 -1
- package/lib/module/utils/testID/testID.js +6 -3
- package/lib/module/utils/testID/testID.js.map +1 -1
- package/lib/typescript/src/components/business/AvatarWithRing/AvatarWithRing.d.ts +1 -1
- package/lib/typescript/src/components/business/AvatarWithRing/AvatarWithRing.d.ts.map +1 -1
- package/lib/typescript/src/components/business/AvatarWithRing/styles.d.ts +5 -5
- package/lib/typescript/src/components/business/AvatarWithRing/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/business/AvatarWithRing/types.d.ts +3 -1
- package/lib/typescript/src/components/business/AvatarWithRing/types.d.ts.map +1 -1
- package/lib/typescript/src/components/business/Decorations/GradientWash.d.ts +25 -0
- package/lib/typescript/src/components/business/Decorations/GradientWash.d.ts.map +1 -1
- package/lib/typescript/src/components/business/Decorations/RadialHalo.d.ts.map +1 -1
- package/lib/typescript/src/components/business/Decorations/ScreenBackdrop.d.ts +1 -1
- package/lib/typescript/src/components/business/Decorations/ScreenBackdrop.d.ts.map +1 -1
- package/lib/typescript/src/components/business/Decorations/index.d.ts +1 -1
- package/lib/typescript/src/components/business/Decorations/index.d.ts.map +1 -1
- package/lib/typescript/src/components/business/Decorations/types.d.ts +2 -0
- package/lib/typescript/src/components/business/Decorations/types.d.ts.map +1 -1
- package/lib/typescript/src/components/business/GlassStats/GlassStats.d.ts +1 -1
- package/lib/typescript/src/components/business/GlassStats/GlassStats.d.ts.map +1 -1
- package/lib/typescript/src/components/business/GlassStats/styles.d.ts +2 -2
- package/lib/typescript/src/components/business/GlassStats/types.d.ts +5 -0
- package/lib/typescript/src/components/business/GlassStats/types.d.ts.map +1 -1
- package/lib/typescript/src/components/business/VersionPill/VersionPill.d.ts +1 -1
- package/lib/typescript/src/components/business/VersionPill/VersionPill.d.ts.map +1 -1
- package/lib/typescript/src/components/business/VersionPill/styles.d.ts +1 -1
- package/lib/typescript/src/components/business/VersionPill/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/business/VersionPill/types.d.ts +13 -1
- package/lib/typescript/src/components/business/VersionPill/types.d.ts.map +1 -1
- package/lib/typescript/src/components/business/index.d.ts +1 -1
- package/lib/typescript/src/components/business/index.d.ts.map +1 -1
- package/lib/typescript/src/components/business/useSvgId.d.ts +12 -0
- package/lib/typescript/src/components/business/useSvgId.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/Avatar/Avatar.d.ts +1 -1
- package/lib/typescript/src/components/ui/Avatar/Avatar.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Avatar/styles.d.ts +1 -1
- package/lib/typescript/src/components/ui/Avatar/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Avatar/types.d.ts +3 -1
- package/lib/typescript/src/components/ui/Avatar/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.d.ts +1 -1
- package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Button/Button.d.ts +1 -1
- package/lib/typescript/src/components/ui/Button/Button.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Button/ButtonBase.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Button/styles.d.ts +2 -1
- package/lib/typescript/src/components/ui/Button/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Button/types.d.ts +1 -1
- package/lib/typescript/src/components/ui/Button/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Card/Card.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Card/styles.d.ts +2 -0
- package/lib/typescript/src/components/ui/Card/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Card/types.d.ts +4 -4
- package/lib/typescript/src/components/ui/Card/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Carousel/Carousel.d.ts +4 -11
- package/lib/typescript/src/components/ui/Carousel/Carousel.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Carousel/index.d.ts +1 -1
- package/lib/typescript/src/components/ui/Carousel/index.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Carousel/types.d.ts +4 -0
- package/lib/typescript/src/components/ui/Carousel/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/Cell.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/List.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/styles.d.ts +1 -1
- package/lib/typescript/src/components/ui/Cell/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/types.d.ts +5 -2
- package/lib/typescript/src/components/ui/Cell/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Checkbox/Checkbox.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Checkbox/styles.d.ts +6 -0
- package/lib/typescript/src/components/ui/Checkbox/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Chip/Chip.d.ts +4 -3
- package/lib/typescript/src/components/ui/Chip/Chip.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Chip/types.d.ts +2 -0
- package/lib/typescript/src/components/ui/Chip/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Confirm/confirm.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Confirm/types.d.ts +4 -2
- package/lib/typescript/src/components/ui/Confirm/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/DrawerHeader/DrawerHeader.d.ts +1 -1
- package/lib/typescript/src/components/ui/DrawerHeader/DrawerHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/DrawerHeader/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/DrawerHeader/types.d.ts +3 -1
- package/lib/typescript/src/components/ui/DrawerHeader/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Empty/Empty.d.ts +2 -2
- package/lib/typescript/src/components/ui/Empty/Empty.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Empty/types.d.ts +3 -0
- package/lib/typescript/src/components/ui/Empty/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/EntryCard/EntryCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/EntryCard/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/EntryCard/types.d.ts +2 -2
- package/lib/typescript/src/components/ui/EntryCard/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Form/FormRow.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Form/styles.d.ts +1 -0
- package/lib/typescript/src/components/ui/Form/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Form/types.d.ts +7 -2
- package/lib/typescript/src/components/ui/Form/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Grid/Grid.d.ts +1 -1
- package/lib/typescript/src/components/ui/Grid/Grid.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Grid/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Grid/types.d.ts +4 -1
- package/lib/typescript/src/components/ui/Grid/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Icon/Icon.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/IconButton/IconButton.d.ts +1 -1
- package/lib/typescript/src/components/ui/IconButton/IconButton.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/IconButton/types.d.ts +7 -2
- package/lib/typescript/src/components/ui/IconButton/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Input/Input.d.ts +16 -16
- package/lib/typescript/src/components/ui/Input/types.d.ts +3 -2
- package/lib/typescript/src/components/ui/Input/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Logo/Logo.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/NavBar/NavBar.d.ts +8 -1
- package/lib/typescript/src/components/ui/NavBar/NavBar.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/NavBar/types.d.ts +5 -1
- package/lib/typescript/src/components/ui/NavBar/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/PasswordInput/PasswordInput.d.ts +13 -5
- package/lib/typescript/src/components/ui/PasswordInput/PasswordInput.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/PasswordInput/styles.d.ts +1 -1
- package/lib/typescript/src/components/ui/PasswordInput/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/PasswordInput/types.d.ts +7 -2
- package/lib/typescript/src/components/ui/PasswordInput/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Pulse/Pulse.d.ts +1 -1
- package/lib/typescript/src/components/ui/Pulse/Pulse.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Pulse/PulseDot.d.ts +1 -1
- package/lib/typescript/src/components/ui/Pulse/PulseDot.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Pulse/types.d.ts +5 -0
- package/lib/typescript/src/components/ui/Pulse/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Pulse/usePulse.web.d.ts +12 -8
- package/lib/typescript/src/components/ui/Pulse/usePulse.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Radio/Radio.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Radio/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Radio/styles.d.ts +4 -2
- package/lib/typescript/src/components/ui/Radio/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Reveal/Reveal.web.d.ts +9 -0
- package/lib/typescript/src/components/ui/Reveal/Reveal.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Search/Search.d.ts +16 -15
- package/lib/typescript/src/components/ui/Search/Search.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Search/types.d.ts +3 -1
- package/lib/typescript/src/components/ui/Search/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Segmented/Segmented.d.ts +1 -1
- package/lib/typescript/src/components/ui/Segmented/Segmented.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Segmented/styles.d.ts +1 -1
- package/lib/typescript/src/components/ui/Segmented/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Segmented/types.d.ts +2 -0
- package/lib/typescript/src/components/ui/Segmented/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Skeleton/Skeleton.d.ts +3 -2
- package/lib/typescript/src/components/ui/Skeleton/Skeleton.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Spinner/Spinner.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Spinner/Spinner.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Spinner/shared.d.ts +5 -0
- package/lib/typescript/src/components/ui/Spinner/shared.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/StatusDot/StatusDot.d.ts +1 -5
- package/lib/typescript/src/components/ui/StatusDot/StatusDot.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/StatusDot/styles.d.ts +1 -1
- package/lib/typescript/src/components/ui/StatusDot/types.d.ts +13 -1
- package/lib/typescript/src/components/ui/StatusDot/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Stepper/Stepper.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Switch/Switch.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Switch/Switch.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Switch/styles.d.ts +7 -1
- package/lib/typescript/src/components/ui/Switch/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/TabBar/TabBar.d.ts +2 -2
- package/lib/typescript/src/components/ui/TabBar/TabBar.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/TabBar/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/TabBar/types.d.ts +3 -0
- package/lib/typescript/src/components/ui/TabBar/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Tabs/Tabs.d.ts +1 -1
- package/lib/typescript/src/components/ui/Tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Tabs/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Tabs/types.d.ts +9 -1
- package/lib/typescript/src/components/ui/Tabs/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Tag/styles.d.ts +2 -1
- package/lib/typescript/src/components/ui/Tag/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Tag/types.d.ts +6 -2
- package/lib/typescript/src/components/ui/Tag/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts +16 -16
- package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Textarea/Textarea.d.ts +16 -16
- package/lib/typescript/src/components/ui/Textarea/types.d.ts +2 -1
- package/lib/typescript/src/components/ui/Textarea/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts +3 -0
- package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/ToastHost.web.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/toast.d.ts +0 -5
- package/lib/typescript/src/components/ui/Toast/toast.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Toast/types.d.ts +1 -1
- package/lib/typescript/src/components/ui/Toast/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/shared/badgeStyles.d.ts +27 -0
- package/lib/typescript/src/components/ui/shared/badgeStyles.d.ts.map +1 -0
- package/lib/typescript/src/icons/data.d.ts.map +1 -1
- package/lib/typescript/src/icons/types.d.ts +18 -12
- package/lib/typescript/src/icons/types.d.ts.map +1 -1
- package/lib/typescript/src/theme/colors.d.ts +9 -3
- package/lib/typescript/src/theme/colors.d.ts.map +1 -1
- package/lib/typescript/src/theme/index.d.ts +3 -2
- package/lib/typescript/src/theme/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/scale.d.ts.map +1 -1
- package/lib/typescript/src/theme/shadow.d.ts +8 -8
- package/lib/typescript/src/theme/shadow.d.ts.map +1 -1
- package/lib/typescript/src/theme/tokens.d.ts +7 -3
- package/lib/typescript/src/theme/tokens.d.ts.map +1 -1
- package/lib/typescript/src/theme/usePrefersReducedMotion.d.ts +8 -0
- package/lib/typescript/src/theme/usePrefersReducedMotion.d.ts.map +1 -0
- package/lib/typescript/src/theme/usePrefersReducedMotion.web.d.ts +6 -0
- package/lib/typescript/src/theme/usePrefersReducedMotion.web.d.ts.map +1 -0
- package/lib/typescript/src/theme/useTheme.d.ts.map +1 -1
- package/lib/typescript/src/utils/logger/logger.d.ts.map +1 -1
- package/lib/typescript/src/utils/testID/testID.d.ts +6 -3
- package/lib/typescript/src/utils/testID/testID.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/business/AvatarWithRing/AvatarWithRing.tsx +5 -4
- package/src/components/business/AvatarWithRing/styles.ts +21 -3
- package/src/components/business/AvatarWithRing/types.ts +3 -1
- package/src/components/business/Decorations/GradientWash.tsx +46 -22
- package/src/components/business/Decorations/RadialHalo.tsx +8 -4
- package/src/components/business/Decorations/ScreenBackdrop.tsx +23 -5
- package/src/components/business/Decorations/index.ts +4 -0
- package/src/components/business/Decorations/types.ts +2 -0
- package/src/components/business/GlassStats/GlassStats.tsx +8 -4
- package/src/components/business/GlassStats/types.ts +6 -0
- package/src/components/business/VersionPill/VersionPill.tsx +46 -6
- package/src/components/business/VersionPill/styles.ts +1 -1
- package/src/components/business/VersionPill/types.ts +13 -1
- package/src/components/business/index.ts +1 -0
- package/src/components/business/useSvgId.ts +17 -0
- package/src/components/ui/Avatar/Avatar.tsx +17 -10
- package/src/components/ui/Avatar/styles.ts +7 -7
- package/src/components/ui/Avatar/types.ts +3 -1
- package/src/components/ui/BlurLayer/BlurLayer.tsx +4 -1
- package/src/components/ui/BlurLayer/BlurLayer.web.tsx +7 -1
- package/src/components/ui/Button/Button.tsx +2 -1
- package/src/components/ui/Button/ButtonBase.tsx +26 -2
- package/src/components/ui/Button/styles.ts +27 -25
- package/src/components/ui/Button/types.ts +1 -1
- package/src/components/ui/Card/Card.tsx +17 -7
- package/src/components/ui/Card/styles.ts +5 -0
- package/src/components/ui/Card/types.ts +4 -4
- package/src/components/ui/Carousel/Carousel.tsx +44 -15
- package/src/components/ui/Carousel/index.ts +1 -1
- package/src/components/ui/Carousel/types.ts +5 -0
- package/src/components/ui/Cell/Cell.tsx +28 -6
- package/src/components/ui/Cell/Leading.tsx +2 -2
- package/src/components/ui/Cell/List.tsx +14 -8
- package/src/components/ui/Cell/styles.ts +8 -5
- package/src/components/ui/Cell/types.ts +5 -2
- package/src/components/ui/Checkbox/Checkbox.tsx +18 -5
- package/src/components/ui/Checkbox/styles.ts +8 -0
- package/src/components/ui/Chip/Chip.tsx +20 -5
- package/src/components/ui/Chip/types.ts +2 -0
- package/src/components/ui/Confirm/ConfirmHost.tsx +26 -10
- package/src/components/ui/Confirm/confirm.ts +8 -0
- package/src/components/ui/Confirm/types.ts +4 -2
- package/src/components/ui/DrawerHeader/DrawerHeader.tsx +18 -12
- package/src/components/ui/DrawerHeader/styles.ts +10 -6
- package/src/components/ui/DrawerHeader/types.ts +3 -1
- package/src/components/ui/Empty/Empty.tsx +5 -4
- package/src/components/ui/Empty/types.ts +3 -0
- package/src/components/ui/EntryCard/EntryCard.tsx +5 -3
- package/src/components/ui/EntryCard/styles.ts +13 -4
- package/src/components/ui/EntryCard/types.ts +2 -2
- package/src/components/ui/Form/FormRow.tsx +7 -1
- package/src/components/ui/Form/styles.ts +2 -0
- package/src/components/ui/Form/types.ts +7 -2
- package/src/components/ui/Grid/Grid.tsx +42 -25
- package/src/components/ui/Grid/styles.ts +8 -20
- package/src/components/ui/Grid/types.ts +4 -1
- package/src/components/ui/Icon/Icon.tsx +42 -27
- package/src/components/ui/IconButton/IconButton.tsx +2 -0
- package/src/components/ui/IconButton/types.ts +8 -2
- package/src/components/ui/Input/types.ts +3 -2
- package/src/components/ui/Logo/Logo.tsx +2 -1
- package/src/components/ui/NavBar/NavBar.tsx +16 -2
- package/src/components/ui/NavBar/types.ts +5 -1
- package/src/components/ui/PasswordInput/PasswordInput.tsx +77 -43
- package/src/components/ui/PasswordInput/styles.ts +1 -1
- package/src/components/ui/PasswordInput/types.ts +7 -2
- package/src/components/ui/Pulse/Pulse.tsx +2 -1
- package/src/components/ui/Pulse/PulseDot.tsx +7 -6
- package/src/components/ui/Pulse/types.ts +6 -0
- package/src/components/ui/Pulse/usePulse.web.ts +50 -33
- package/src/components/ui/Radio/Radio.tsx +29 -6
- package/src/components/ui/Radio/RadioGroup.tsx +10 -3
- package/src/components/ui/Radio/styles.ts +9 -2
- package/src/components/ui/Reveal/Reveal.web.tsx +18 -3
- package/src/components/ui/Search/Search.tsx +22 -9
- package/src/components/ui/Search/types.ts +7 -1
- package/src/components/ui/Segmented/Segmented.tsx +8 -3
- package/src/components/ui/Segmented/styles.ts +4 -2
- package/src/components/ui/Segmented/types.ts +2 -0
- package/src/components/ui/Skeleton/Skeleton.tsx +9 -8
- package/src/components/ui/Spinner/Spinner.tsx +17 -17
- package/src/components/ui/Spinner/Spinner.web.tsx +7 -15
- package/src/components/ui/Spinner/shared.ts +37 -0
- package/src/components/ui/StatusDot/StatusDot.tsx +21 -3
- package/src/components/ui/StatusDot/styles.ts +1 -1
- package/src/components/ui/StatusDot/types.ts +14 -1
- package/src/components/ui/Stepper/Stepper.tsx +45 -10
- package/src/components/ui/Switch/Switch.tsx +4 -10
- package/src/components/ui/Switch/Switch.web.tsx +2 -8
- package/src/components/ui/Switch/styles.ts +10 -1
- package/src/components/ui/TabBar/TabBar.tsx +14 -6
- package/src/components/ui/TabBar/styles.ts +9 -21
- package/src/components/ui/TabBar/types.ts +3 -0
- package/src/components/ui/Tabs/Tabs.tsx +24 -5
- package/src/components/ui/Tabs/styles.ts +6 -2
- package/src/components/ui/Tabs/types.ts +10 -1
- package/src/components/ui/Tag/styles.ts +18 -10
- package/src/components/ui/Tag/types.ts +6 -2
- package/src/components/ui/TextField/TextFieldBase.tsx +31 -6
- package/src/components/ui/Textarea/types.ts +2 -1
- package/src/components/ui/Thumbnail/Thumbnail.tsx +14 -3
- package/src/components/ui/Thumbnail/styles.ts +6 -2
- package/src/components/ui/Toast/ToastHost.tsx +16 -8
- package/src/components/ui/Toast/ToastHost.web.tsx +26 -4
- package/src/components/ui/Toast/styles.ts +2 -0
- package/src/components/ui/Toast/toast.ts +35 -2
- package/src/components/ui/Toast/types.ts +1 -1
- package/src/components/ui/shared/badgeStyles.ts +36 -0
- package/src/icons/data.ts +27 -0
- package/src/icons/types.ts +25 -10
- package/src/theme/colors.ts +29 -10
- package/src/theme/index.ts +10 -1
- package/src/theme/scale.ts +5 -1
- package/src/theme/shadow.ts +33 -24
- package/src/theme/tokens.ts +10 -5
- package/src/theme/usePrefersReducedMotion.ts +9 -0
- package/src/theme/usePrefersReducedMotion.web.ts +27 -0
- package/src/theme/useTheme.ts +15 -0
- package/src/utils/logger/logger.ts +5 -1
- package/src/utils/testID/testID.ts +6 -3
- package/lib/module/components/index.js +0 -5
- package/lib/module/components/index.js.map +0 -1
- package/lib/typescript/src/components/index.d.ts +0 -3
- package/lib/typescript/src/components/index.d.ts.map +0 -1
- package/src/components/index.ts +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useEffect,
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
4
|
import { Image, Text, View } from 'react-native';
|
|
5
5
|
import { useColors } from "../../../theme/index.js";
|
|
6
6
|
import { paletteFor, sizingFor, styles } from "./styles.js";
|
|
@@ -16,17 +16,21 @@ export function Avatar({
|
|
|
16
16
|
size = 'md',
|
|
17
17
|
variant = 'neutral',
|
|
18
18
|
source,
|
|
19
|
+
style,
|
|
19
20
|
testID
|
|
20
21
|
}) {
|
|
21
22
|
const c = useColors();
|
|
22
23
|
const [imageFailed, setImageFailed] = useState(false);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
|
|
25
|
+
// [M-20] React 18+ 已移除 unmount 后 setState 的 warning,mountedRef 守卫为死码,删除。
|
|
26
|
+
// [L-44] source 变化时重置 imageFailed,否则换图 URL 后仍展示 fallback 文字。
|
|
27
|
+
// source 可能是对象形态({ uri }),按 uri 字段做细粒度比较。
|
|
28
|
+
const uri = source != null && typeof source === 'object' && 'uri' in source ? source.uri : null;
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
setImageFailed(false);
|
|
31
|
+
}, [uri, source]);
|
|
28
32
|
const handleImageError = () => {
|
|
29
|
-
|
|
33
|
+
setImageFailed(true);
|
|
30
34
|
};
|
|
31
35
|
const dims = sizingFor(size);
|
|
32
36
|
const palette = paletteFor(variant, c);
|
|
@@ -37,7 +41,8 @@ export function Avatar({
|
|
|
37
41
|
height: dims.box,
|
|
38
42
|
borderRadius: dims.box / 2,
|
|
39
43
|
backgroundColor: palette.bg
|
|
40
|
-
}],
|
|
44
|
+
}, style],
|
|
45
|
+
accessible: !!label,
|
|
41
46
|
accessibilityLabel: label,
|
|
42
47
|
testID: testID,
|
|
43
48
|
children: showImage ? /*#__PURE__*/_jsx(Image, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","Image","Text","View","useColors","paletteFor","sizingFor","styles","jsx","_jsx","Avatar","label","size","variant","source","style","testID","c","imageFailed","setImageFailed","uri","handleImageError","dims","palette","showImage","base","width","box","height","borderRadius","backgroundColor","bg","accessible","accessibilityLabel","children","onError","image","resizeMode","fontSize","fs","color","fg","numberOfLines"],"sourceRoot":"../../../../../src","sources":["components/ui/Avatar/Avatar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,KAAK,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAChD,SAASC,SAAS,QAAQ,yBAAgB;AAC1C,SAASC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,IAAI,GAAG,IAAI;EACXC,OAAO,GAAG,SAAS;EACnBC,MAAM;EACNC,KAAK;EACLC;AACW,CAAC,EAAqB;EACjC,MAAMC,CAAC,GAAGb,SAAS,CAAC,CAAC;EACrB,MAAM,CAACc,WAAW,EAAEC,cAAc,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;;EAErD;EACA;EACA;EACA,MAAMoB,GAAG,GACPN,MAAM,IAAI,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAIA,MAAM,GAC1DA,MAAM,CAAsBM,GAAG,GAChC,IAAI;EACVrB,SAAS,CAAC,MAAM;IACdoB,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,CAACC,GAAG,EAAEN,MAAM,CAAC,CAAC;EAEjB,MAAMO,gBAAgB,GAAGA,CAAA,KAAM;IAC7BF,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC;EACD,MAAMG,IAAI,GAAGhB,SAAS,CAACM,IAAI,CAAC;EAC5B,MAAMW,OAAO,GAAGlB,UAAU,CAACQ,OAAO,EAAEI,CAAC,CAAC;EAEtC,MAAMO,SAAS,GAAGV,MAAM,IAAI,IAAI,IAAI,CAACI,WAAW;EAEhD,oBACET,IAAA,CAACN,IAAI;IACHY,KAAK,EAAE,CACLR,MAAM,CAACkB,IAAI,EACX;MACEC,KAAK,EAAEJ,IAAI,CAACK,GAAG;MACfC,MAAM,EAAEN,IAAI,CAACK,GAAG;MAChBE,YAAY,EAAEP,IAAI,CAACK,GAAG,GAAG,CAAC;MAC1BG,eAAe,EAAEP,OAAO,CAACQ;IAC3B,CAAC,EACDhB,KAAK,CACL;IACFiB,UAAU,EAAE,CAAC,CAACrB,KAAM;IACpBsB,kBAAkB,EAAEtB,KAAM;IAC1BK,MAAM,EAAEA,MAAO;IAAAkB,QAAA,EAEdV,SAAS,gBACRf,IAAA,CAACR,KAAK;MACJa,MAAM,EAAEA,MAAO;MACfqB,OAAO,EAAEd,gBAAiB;MAC1BN,KAAK,EAAER,MAAM,CAAC6B,KAAM;MACpBC,UAAU,EAAC;IAAO,CACnB,CAAC,gBAEF5B,IAAA,CAACP,IAAI;MACHa,KAAK,EAAE,CAACR,MAAM,CAACI,KAAK,EAAE;QAAE2B,QAAQ,EAAEhB,IAAI,CAACiB,EAAE;QAAEC,KAAK,EAAEjB,OAAO,CAACkB;MAAG,CAAC,CAAE;MAChEC,aAAa,EAAE,CAAE;MAAAR,QAAA,EAEhBvB;IAAK,CACF;EACP,CACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
|
-
import { avatar, fw } from "../../../theme/index.js";
|
|
4
|
+
import { avatar, fw, rf } from "../../../theme/index.js";
|
|
5
5
|
/** Avatar 静态 base —— 圆形容器(borderRadius / 尺寸由 sizingFor 派生)。 */
|
|
6
6
|
export const styles = StyleSheet.create({
|
|
7
7
|
base: {
|
|
@@ -26,32 +26,32 @@ export function sizingFor(size) {
|
|
|
26
26
|
case 'xs':
|
|
27
27
|
return {
|
|
28
28
|
box: avatar.xs,
|
|
29
|
-
fs: 10
|
|
29
|
+
fs: rf(10)
|
|
30
30
|
};
|
|
31
31
|
case 'sm':
|
|
32
32
|
return {
|
|
33
33
|
box: avatar.sm,
|
|
34
|
-
fs: 12
|
|
34
|
+
fs: rf(12)
|
|
35
35
|
};
|
|
36
36
|
case 'md':
|
|
37
37
|
return {
|
|
38
38
|
box: avatar.md,
|
|
39
|
-
fs: 13
|
|
39
|
+
fs: rf(13)
|
|
40
40
|
};
|
|
41
41
|
case 'lg':
|
|
42
42
|
return {
|
|
43
43
|
box: avatar.lg,
|
|
44
|
-
fs: 15
|
|
44
|
+
fs: rf(15)
|
|
45
45
|
};
|
|
46
46
|
case 'xl':
|
|
47
47
|
return {
|
|
48
48
|
box: avatar.xl,
|
|
49
|
-
fs: 20
|
|
49
|
+
fs: rf(20)
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/** Avatar 配色推导:4 种 variant → { bg, fg }。签名与 Tag/
|
|
54
|
+
/** Avatar 配色推导:4 种 variant → { bg, fg }。签名与 Tag/Button 的 paletteFor 一致。 */
|
|
55
55
|
export function paletteFor(variant, c) {
|
|
56
56
|
switch (variant) {
|
|
57
57
|
case 'brand':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","avatar","fw","styles","create","base","alignItems","justifyContent","overflow","label","fontWeight","semi","lineHeight","undefined","image","width","height","sizingFor","size","box","xs","fs","sm","md","lg","xl","paletteFor","variant","c","bg","primary","fg","onPrimary","info","onInfo","primaryContainer","surfaceContainerHighest","foreground"],"sourceRoot":"../../../../../src","sources":["components/ui/Avatar/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,MAAM,EAAEC,EAAE,QAA0B,yBAAgB;
|
|
1
|
+
{"version":3,"names":["StyleSheet","avatar","fw","rf","styles","create","base","alignItems","justifyContent","overflow","label","fontWeight","semi","lineHeight","undefined","image","width","height","sizingFor","size","box","xs","fs","sm","md","lg","xl","paletteFor","variant","c","bg","primary","fg","onPrimary","info","onInfo","primaryContainer","surfaceContainerHighest","foreground"],"sourceRoot":"../../../../../src","sources":["components/ui/Avatar/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAA0B,yBAAgB;AAGjE;AACA,OAAO,MAAMC,MAAM,GAAGJ,UAAU,CAACK,MAAM,CAAC;EACtCC,IAAI,EAAE;IACJC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAET,EAAE,CAACU,IAAI;IACnBC,UAAU,EAAEC;EACd,CAAC;EACDC,KAAK,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;;AAEF;AACA;AACA,OAAO,SAASC,SAASA,CAACC,IAAgB,EAA+B;EACvE,QAAQA,IAAI;IACV,KAAK,IAAI;MACP,OAAO;QAAEC,GAAG,EAAEnB,MAAM,CAACoB,EAAE;QAAEC,EAAE,EAAEnB,EAAE,CAAC,EAAE;MAAE,CAAC;IACvC,KAAK,IAAI;MACP,OAAO;QAAEiB,GAAG,EAAEnB,MAAM,CAACsB,EAAE;QAAED,EAAE,EAAEnB,EAAE,CAAC,EAAE;MAAE,CAAC;IACvC,KAAK,IAAI;MACP,OAAO;QAAEiB,GAAG,EAAEnB,MAAM,CAACuB,EAAE;QAAEF,EAAE,EAAEnB,EAAE,CAAC,EAAE;MAAE,CAAC;IACvC,KAAK,IAAI;MACP,OAAO;QAAEiB,GAAG,EAAEnB,MAAM,CAACwB,EAAE;QAAEH,EAAE,EAAEnB,EAAE,CAAC,EAAE;MAAE,CAAC;IACvC,KAAK,IAAI;MACP,OAAO;QAAEiB,GAAG,EAAEnB,MAAM,CAACyB,EAAE;QAAEJ,EAAE,EAAEnB,EAAE,CAAC,EAAE;MAAE,CAAC;EACzC;AACF;;AAEA;AACA,OAAO,SAASwB,UAAUA,CACxBC,OAAsB,EACtBC,CAAc,EACc;EAC5B,QAAQD,OAAO;IACb,KAAK,OAAO;MACV,OAAO;QAAEE,EAAE,EAAED,CAAC,CAACE,OAAO;QAAEC,EAAE,EAAEH,CAAC,CAACI;MAAU,CAAC;IAC3C,KAAK,MAAM;MACT,OAAO;QAAEH,EAAE,EAAED,CAAC,CAACK,IAAI;QAAEF,EAAE,EAAEH,CAAC,CAACM;MAAO,CAAC;IACrC,KAAK,MAAM;MACT,OAAO;QAAEL,EAAE,EAAED,CAAC,CAACO,gBAAgB;QAAEJ,EAAE,EAAEH,CAAC,CAACE;MAAQ,CAAC;IAClD,KAAK,SAAS;MACZ,OAAO;QAAED,EAAE,EAAED,CAAC,CAACQ,uBAAuB;QAAEL,EAAE,EAAEH,CAAC,CAACS;MAAW,CAAC;EAC9D;AACF","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
* blurType 跟 scheme 自动切(亮 'light' / 暗 'dark',避免暗色奶白雾)。
|
|
11
11
|
*
|
|
12
12
|
* - `'soft'` 玻璃数据条 / 小区域
|
|
13
|
-
* - `'strong'` 焦点引导 backdrop(
|
|
13
|
+
* - `'strong'` 焦点引导 backdrop(sheet 类浮层) */
|
|
14
14
|
export function BlurLayer({
|
|
15
15
|
intensity,
|
|
16
16
|
tint,
|
|
@@ -31,6 +31,10 @@ export function BlurLayer({
|
|
|
31
31
|
style: StyleSheet.absoluteFill,
|
|
32
32
|
blurType: blurType,
|
|
33
33
|
blurAmount: blurTokens[intensity]
|
|
34
|
+
// iOS「降低透明度」开启时 BlurView 用纯色替换模糊;库默认 #FFFFFF 在暗色 scheme
|
|
35
|
+
// 下整面刺眼白底。传随 scheme 的 surface 色,与下方 tint 层视觉一致([M-6])。
|
|
36
|
+
,
|
|
37
|
+
reducedTransparencyFallbackColor: c.surface
|
|
34
38
|
}), /*#__PURE__*/_jsx(View, {
|
|
35
39
|
style: [StyleSheet.absoluteFill, {
|
|
36
40
|
backgroundColor: tint ?? defaultTint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","BlurView","blur","blurTokens","useColors","useTheme","jsx","_jsx","jsxs","_jsxs","BlurLayer","intensity","tint","style","testID","c","scheme","blurType","defaultTint","sheetBackdrop","glassTintLight","absoluteFill","pointerEvents","children","blurAmount","backgroundColor"],"sourceRoot":"../../../../../src","sources":["components/ui/BlurLayer/BlurLayer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,QAAQ,QAAQ,+BAA+B;AACxD,SAASC,IAAI,IAAIC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGzE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGX,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEY;EAAO,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAC7B,MAAMY,QAAQ,GAAGD,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO;EACrD,MAAME,WAAW,GACfP,SAAS,KAAK,QAAQ,GAAGI,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,cAAc;EAE7D,oBACEX,KAAA,CAACT,IAAI;IACHa,KAAK,EAAE,CAACd,UAAU,CAACsB,YAAY,EAAER,KAAK,CAAE;IACxCS,aAAa,EAAC,MAAM;IACpBR,MAAM,EAAEA,MAAO;IAAAS,QAAA,gBAEfhB,IAAA,CAACN,QAAQ;MACPY,KAAK,EAAEd,UAAU,CAACsB,YAAa;MAC/BJ,QAAQ,EAAEA,QAAS;MACnBO,UAAU,EAAErB,UAAU,CAACQ,SAAS;
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","BlurView","blur","blurTokens","useColors","useTheme","jsx","_jsx","jsxs","_jsxs","BlurLayer","intensity","tint","style","testID","c","scheme","blurType","defaultTint","sheetBackdrop","glassTintLight","absoluteFill","pointerEvents","children","blurAmount","reducedTransparencyFallbackColor","surface","backgroundColor"],"sourceRoot":"../../../../../src","sources":["components/ui/BlurLayer/BlurLayer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,QAAQ,QAAQ,+BAA+B;AACxD,SAASC,IAAI,IAAIC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGzE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGX,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEY;EAAO,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAC7B,MAAMY,QAAQ,GAAGD,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO;EACrD,MAAME,WAAW,GACfP,SAAS,KAAK,QAAQ,GAAGI,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,cAAc;EAE7D,oBACEX,KAAA,CAACT,IAAI;IACHa,KAAK,EAAE,CAACd,UAAU,CAACsB,YAAY,EAAER,KAAK,CAAE;IACxCS,aAAa,EAAC,MAAM;IACpBR,MAAM,EAAEA,MAAO;IAAAS,QAAA,gBAEfhB,IAAA,CAACN,QAAQ;MACPY,KAAK,EAAEd,UAAU,CAACsB,YAAa;MAC/BJ,QAAQ,EAAEA,QAAS;MACnBO,UAAU,EAAErB,UAAU,CAACQ,SAAS;MAChC;MACA;MAAA;MACAc,gCAAgC,EAAEV,CAAC,CAACW;IAAQ,CAC7C,CAAC,eACFnB,IAAA,CAACP,IAAI;MACHa,KAAK,EAAE,CACLd,UAAU,CAACsB,YAAY,EACvB;QAAEM,eAAe,EAAEf,IAAI,IAAIM;MAAY,CAAC;IACxC,CACH,CAAC;EAAA,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -24,7 +24,13 @@ export function BlurLayer({
|
|
|
24
24
|
} = useTheme();
|
|
25
25
|
const blurAmount = blurTokens[intensity];
|
|
26
26
|
const defaultTint = intensity === 'strong' ? c.sheetBackdrop : c.glassTintLight;
|
|
27
|
-
// RN style typedef 不识别 web-only 属性,cast 绕过 TS;RN-Web
|
|
27
|
+
// RN style typedef 不识别 web-only 属性,cast 绕过 TS;RN-Web 浏览器侧原样输出。
|
|
28
|
+
// [L-15] saturate(180%):苹果 HIG 玻璃效果的标准值,增强模糊后的颜色鲜艳度,
|
|
29
|
+
// 与 macOS / iOS 系统 vibrancy 视觉一致;降低会让玻璃面板显得灰暗脱色。
|
|
30
|
+
// [L-15] opacity:0.96(暗色):暗色 scheme 下 backdrop-filter 在 Chromium 中
|
|
31
|
+
// opacity=1 时存在渲染 artifact(模糊层与底层内容边界锯齿),降到 0.96 消除;
|
|
32
|
+
// 亮色 scheme 不受影响故保持 1。native 端 BlurLayer.tsx 用双层 View 实现,
|
|
33
|
+
// 语义等价(tint 层覆盖 BlurView),无需此 opacity 补丁。
|
|
28
34
|
const webBlurStyle = {
|
|
29
35
|
backdropFilter: `blur(${blurAmount}px) saturate(180%)`,
|
|
30
36
|
WebkitBackdropFilter: `blur(${blurAmount}px) saturate(180%)`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","blur","blurTokens","useColors","useTheme","jsx","_jsx","BlurLayer","intensity","tint","style","testID","c","scheme","blurAmount","defaultTint","sheetBackdrop","glassTintLight","webBlurStyle","backdropFilter","WebkitBackdropFilter","backgroundColor","opacity","absoluteFill","pointerEvents"],"sourceRoot":"../../../../../src","sources":["components/ui/BlurLayer/BlurLayer.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAwC,cAAc;AAC/E,SAASC,IAAI,IAAIC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzE,OAAO,SAASC,SAASA,CAAC;EACxBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGT,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEU;EAAO,CAAC,GAAGT,QAAQ,CAAC,CAAC;EAC7B,MAAMU,UAAU,GAAGZ,UAAU,CAACM,SAAS,CAAC;EACxC,MAAMO,WAAW,GACfP,SAAS,KAAK,QAAQ,GAAGI,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,cAAc;EAC7D;EACA,MAAMC,YAAY,GAAG;IACnBC,cAAc,EAAE,QAAQL,UAAU,oBAAoB;IACtDM,oBAAoB,EAAE,QAAQN,UAAU,oBAAoB;IAC5DO,eAAe,EAAEZ,IAAI,IAAIM,WAAW;IACpCO,OAAO,EAAET,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG;EACtC,CAAoC;EAEpC,oBACEP,IAAA,CAACN,IAAI;IACHU,KAAK,EAAE,CAACX,UAAU,CAACwB,YAAY,EAAEL,YAAY,EAAER,KAAK,CAAE;IACtDc,aAAa,EAAC,MAAM;IACpBb,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","blur","blurTokens","useColors","useTheme","jsx","_jsx","BlurLayer","intensity","tint","style","testID","c","scheme","blurAmount","defaultTint","sheetBackdrop","glassTintLight","webBlurStyle","backdropFilter","WebkitBackdropFilter","backgroundColor","opacity","absoluteFill","pointerEvents"],"sourceRoot":"../../../../../src","sources":["components/ui/BlurLayer/BlurLayer.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAwC,cAAc;AAC/E,SAASC,IAAI,IAAIC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzE,OAAO,SAASC,SAASA,CAAC;EACxBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGT,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEU;EAAO,CAAC,GAAGT,QAAQ,CAAC,CAAC;EAC7B,MAAMU,UAAU,GAAGZ,UAAU,CAACM,SAAS,CAAC;EACxC,MAAMO,WAAW,GACfP,SAAS,KAAK,QAAQ,GAAGI,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,cAAc;EAC7D;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,YAAY,GAAG;IACnBC,cAAc,EAAE,QAAQL,UAAU,oBAAoB;IACtDM,oBAAoB,EAAE,QAAQN,UAAU,oBAAoB;IAC5DO,eAAe,EAAEZ,IAAI,IAAIM,WAAW;IACpCO,OAAO,EAAET,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG;EACtC,CAAoC;EAEpC,oBACEP,IAAA,CAACN,IAAI;IACHU,KAAK,EAAE,CAACX,UAAU,CAACwB,YAAY,EAAEL,YAAY,EAAER,KAAK,CAAE;IACtDc,aAAa,EAAC,MAAM;IACpBb,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import { ButtonBase } from "./ButtonBase.js";
|
|
|
8
8
|
import { makeStyles } from "./styles.js";
|
|
9
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* 7 variant × 3 size 文本按钮。
|
|
12
12
|
* 内部组合 ButtonBase + content(label + 可选 leftIcon / rightIcon),
|
|
13
13
|
* ButtonBase 接管 chrome(sizing / palette / disabled / loading / a11y)。
|
|
14
14
|
*
|
|
@@ -53,6 +53,7 @@ export function Button({
|
|
|
53
53
|
color: palette.fg,
|
|
54
54
|
fontSize: sizing.fs
|
|
55
55
|
}],
|
|
56
|
+
numberOfLines: 1,
|
|
56
57
|
children: label
|
|
57
58
|
}), rightIcon ? /*#__PURE__*/_jsx(Icon, {
|
|
58
59
|
name: rightIcon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","useThemedStyles","Icon","ButtonBase","makeStyles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Button","label","onPress","size","variant","block","disabled","loading","leftIcon","rightIcon","style","testID","accessibilityHint","styles","accessibilityLabel","children","sizing","palette","name","fs","color","fg","fontSize"],"sourceRoot":"../../../../../src","sources":["components/ui/Button/Button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,eAAe,QAAQ,yBAAgB;AAChD,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,OAAO;EACPC,IAAI;EACJC,OAAO;EACPC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC;AACW,CAAC,EAAqB;EACjC,MAAMC,MAAM,GAAGvB,eAAe,CAACG,UAAU,CAAC;EAC1C,oBACEE,IAAA,CAACH,UAAU;IACTU,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAEA,OAAQ;IACjBO,kBAAkB,EAAEb,KAAM;IAC1BW,iBAAiB,EAAEA,iBAAkB;IACrCF,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IAAAI,QAAA,EAEdA,CAAC;MAAEC,MAAM;MAAEC;IAAQ,CAAC,kBACnBlB,KAAA,CAAAF,SAAA;MAAAkB,QAAA,GACGP,QAAQ,gBACPb,IAAA,CAACJ,IAAI;QAAC2B,IAAI,EAAEV,QAAS;QAACL,IAAI,EAAEa,MAAM,CAACG,EAAE,GAAG,CAAE;QAACC,KAAK,EAAEH,OAAO,CAACI;MAAG,CAAE,CAAC,GAC9D,IAAI,eACR1B,IAAA,CAACN,IAAI;QACHqB,KAAK,EAAE,CAACG,MAAM,CAACZ,KAAK,EAAE;UAAEmB,KAAK,EAAEH,OAAO,CAACI,EAAE;UAAEC,QAAQ,EAAEN,MAAM,CAACG;QAAG,CAAC,CAAE;
|
|
1
|
+
{"version":3,"names":["React","Text","useThemedStyles","Icon","ButtonBase","makeStyles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Button","label","onPress","size","variant","block","disabled","loading","leftIcon","rightIcon","style","testID","accessibilityHint","styles","accessibilityLabel","children","sizing","palette","name","fs","color","fg","fontSize","numberOfLines"],"sourceRoot":"../../../../../src","sources":["components/ui/Button/Button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,eAAe,QAAQ,yBAAgB;AAChD,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,OAAO;EACPC,IAAI;EACJC,OAAO;EACPC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC;AACW,CAAC,EAAqB;EACjC,MAAMC,MAAM,GAAGvB,eAAe,CAACG,UAAU,CAAC;EAC1C,oBACEE,IAAA,CAACH,UAAU;IACTU,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAEA,OAAQ;IACjBO,kBAAkB,EAAEb,KAAM;IAC1BW,iBAAiB,EAAEA,iBAAkB;IACrCF,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IAAAI,QAAA,EAEdA,CAAC;MAAEC,MAAM;MAAEC;IAAQ,CAAC,kBACnBlB,KAAA,CAAAF,SAAA;MAAAkB,QAAA,GACGP,QAAQ,gBACPb,IAAA,CAACJ,IAAI;QAAC2B,IAAI,EAAEV,QAAS;QAACL,IAAI,EAAEa,MAAM,CAACG,EAAE,GAAG,CAAE;QAACC,KAAK,EAAEH,OAAO,CAACI;MAAG,CAAE,CAAC,GAC9D,IAAI,eACR1B,IAAA,CAACN,IAAI;QACHqB,KAAK,EAAE,CAACG,MAAM,CAACZ,KAAK,EAAE;UAAEmB,KAAK,EAAEH,OAAO,CAACI,EAAE;UAAEC,QAAQ,EAAEN,MAAM,CAACG;QAAG,CAAC,CAAE;QAClEI,aAAa,EAAE,CAAE;QAAAR,QAAA,EAEhBd;MAAK,CACF,CAAC,EACNQ,SAAS,gBACRd,IAAA,CAACJ,IAAI;QAAC2B,IAAI,EAAET,SAAU;QAACN,IAAI,EAAEa,MAAM,CAACG,EAAE,GAAG,CAAE;QAACC,KAAK,EAAEH,OAAO,CAACI;MAAG,CAAE,CAAC,GAC/D,IAAI;IAAA,CACR;EACH,CACS,CAAC;AAEjB","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { ActivityIndicator } from 'react-native';
|
|
5
5
|
import { Pressable } from 'react-native-gesture-handler';
|
|
6
|
-
import { useColors, useThemedStyles } from "../../../theme/index.js";
|
|
6
|
+
import { fixed, pressedOpacity, useColors, useThemedStyles } from "../../../theme/index.js";
|
|
7
7
|
import { makeStyles, paletteFor, sizingFor } from "./styles.js";
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
/** ButtonBase —— Button / IconButton 共享的 internal primitive。
|
|
@@ -30,6 +30,39 @@ export function ButtonBase({
|
|
|
30
30
|
const palette = useMemo(() => paletteFor(variant, c), [variant, c]);
|
|
31
31
|
const isText = variant === 'text';
|
|
32
32
|
const isInteractive = !disabled && !loading;
|
|
33
|
+
|
|
34
|
+
// [M-7] 触控目标补偿:hitSlop 向外扩展命中区域到 fixed.hitTarget(44pt)。
|
|
35
|
+
// 公式:vertical slop = max(0, (hitTarget - h) / 2);square 时同补 horizontal。
|
|
36
|
+
// text variant height=undefined(仅行内文字高 ~18pt),无法从 sizing.h 推算,
|
|
37
|
+
// 保守固定补到 44pt 等效(top+bottom ≈ 13pt each)。
|
|
38
|
+
// ⚠ hitSlop 不越父边界;相邻可按压元素建议间距 ≥ 2×slop 以防重叠裁决。
|
|
39
|
+
const hitSlop = useMemo(() => {
|
|
40
|
+
if (isText) {
|
|
41
|
+
// text 无 chrome,仅靠行高无法可靠获取实际高度,固定补至 44pt
|
|
42
|
+
const v = Math.round((fixed.hitTarget - 18) / 2);
|
|
43
|
+
return {
|
|
44
|
+
top: v,
|
|
45
|
+
bottom: v,
|
|
46
|
+
left: 0,
|
|
47
|
+
right: 0
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const v = Math.max(0, Math.round((fixed.hitTarget - sizing.h) / 2));
|
|
51
|
+
if (square) {
|
|
52
|
+
return {
|
|
53
|
+
top: v,
|
|
54
|
+
bottom: v,
|
|
55
|
+
left: v,
|
|
56
|
+
right: v
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
top: v,
|
|
61
|
+
bottom: v,
|
|
62
|
+
left: 0,
|
|
63
|
+
right: 0
|
|
64
|
+
};
|
|
65
|
+
}, [isText, sizing.h, square]);
|
|
33
66
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
34
67
|
accessibilityRole: accessibilityRole,
|
|
35
68
|
accessibilityState: {
|
|
@@ -39,6 +72,7 @@ export function ButtonBase({
|
|
|
39
72
|
accessibilityHint: accessibilityHint,
|
|
40
73
|
disabled: !isInteractive,
|
|
41
74
|
onPress: onPress,
|
|
75
|
+
hitSlop: hitSlop,
|
|
42
76
|
testID: testID,
|
|
43
77
|
style: ({
|
|
44
78
|
pressed
|
|
@@ -52,7 +86,7 @@ export function ButtonBase({
|
|
|
52
86
|
backgroundColor: palette.bg,
|
|
53
87
|
borderColor: palette.border ?? 'transparent',
|
|
54
88
|
borderWidth: palette.border ? 1 : 0,
|
|
55
|
-
opacity: disabled ? 0.5 : pressed ?
|
|
89
|
+
opacity: disabled ? 0.5 : pressed ? pressedOpacity : 1,
|
|
56
90
|
alignSelf: block ? 'stretch' : 'flex-start',
|
|
57
91
|
// 非 block 用 undefined 而非硬编码 0:Yoga 的 resolveFlexGrow 里显式 flexGrow
|
|
58
92
|
// 优先级高于 flex 简写,写死 0 会让调用方 style={{ flex: 1 }} 失效(按钮撑不开 /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","ActivityIndicator","Pressable","useColors","useThemedStyles","makeStyles","paletteFor","sizingFor","jsx","_jsx","ButtonBase","onPress","size","variant","disabled","loading","block","square","accessibilityLabel","accessibilityRole","accessibilityHint","style","testID","children","c","styles","sizing","palette","isText","isInteractive","accessibilityState","pressed","base","height","undefined","
|
|
1
|
+
{"version":3,"names":["React","useMemo","ActivityIndicator","Pressable","fixed","pressedOpacity","useColors","useThemedStyles","makeStyles","paletteFor","sizingFor","jsx","_jsx","ButtonBase","onPress","size","variant","disabled","loading","block","square","accessibilityLabel","accessibilityRole","accessibilityHint","style","testID","children","c","styles","sizing","palette","isText","isInteractive","hitSlop","v","Math","round","hitTarget","top","bottom","left","right","max","h","accessibilityState","pressed","base","height","undefined","width","paddingHorizontal","px","borderRadius","br","backgroundColor","bg","borderColor","border","borderWidth","opacity","alignSelf","flexGrow","gap","color","fg"],"sourceRoot":"../../../../../src","sources":["components/ui/Button/ButtonBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,35 +19,37 @@ export const makeStyles = _c => StyleSheet.create({
|
|
|
19
19
|
* h 走 control.<size>,br 走 radius.<size>,gap / px 走 space[].
|
|
20
20
|
* 新增 size 在 types.ts 加 union + 这里加 case。 */
|
|
21
21
|
export function sizingFor(size) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
22
|
+
switch (size) {
|
|
23
|
+
case 'lg':
|
|
24
|
+
return {
|
|
25
|
+
h: control.lg,
|
|
26
|
+
px: r(18),
|
|
27
|
+
fs: t.body,
|
|
28
|
+
br: radius.lg,
|
|
29
|
+
gap: space['2']
|
|
30
|
+
};
|
|
31
|
+
case 'sm':
|
|
32
|
+
return {
|
|
33
|
+
h: control.sm,
|
|
34
|
+
px: space['4'],
|
|
35
|
+
fs: t.xxs,
|
|
36
|
+
br: radius.sm,
|
|
37
|
+
gap: space['1']
|
|
38
|
+
};
|
|
39
|
+
case 'md':
|
|
40
|
+
return {
|
|
41
|
+
h: control.md,
|
|
42
|
+
px: space['6'],
|
|
43
|
+
fs: t.sm,
|
|
44
|
+
br: radius.md,
|
|
45
|
+
gap: space['2']
|
|
46
|
+
};
|
|
39
47
|
}
|
|
40
|
-
return {
|
|
41
|
-
h: control.md,
|
|
42
|
-
px: space['6'],
|
|
43
|
-
fs: t.sm,
|
|
44
|
-
br: radius.md,
|
|
45
|
-
gap: space['2']
|
|
46
|
-
};
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
/** Button 配色推导:7 种 variant → { bg, fg, border }。签名与 Tag/Avatar 的 paletteFor 一致。
|
|
50
|
-
* text / ghost / neutral 共用 'transparent'
|
|
51
|
+
* text / ghost / neutral 共用 'transparent' 底;ghost↔text palette 字节级同一,
|
|
52
|
+
* 差异在几何:text variant 在 ButtonBase 撕除高度与内边距。 */
|
|
51
53
|
export function paletteFor(variant, c) {
|
|
52
54
|
switch (variant) {
|
|
53
55
|
case 'primary':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","control","fw","r","radius","space","type","t","makeStyles","_c","create","base","flexDirection","alignItems","justifyContent","label","fontWeight","semi","sizingFor","size","h","lg","px","fs","body","br","gap","sm","xxs","md","paletteFor","variant","c","bg","primary","fg","onPrimary","border","undefined","surfaceContainerHigh","foreground","surface","outline","error","onError"],"sourceRoot":"../../../../../src","sources":["components/ui/Button/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SACEC,OAAO,EACPC,EAAE,EACFC,CAAC,EACDC,MAAM,EACNC,KAAK,EACLC,IAAI,IAAIC,CAAC,QAEJ,yBAAgB;AAQvB;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,EAAe,IACxCT,UAAU,CAACU,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAEd,EAAE,CAACe;EACjB;AACF,CAAC,CAAC;;AAEJ;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAACC,IAAgB,EAAgB;EACxD,
|
|
1
|
+
{"version":3,"names":["StyleSheet","control","fw","r","radius","space","type","t","makeStyles","_c","create","base","flexDirection","alignItems","justifyContent","label","fontWeight","semi","sizingFor","size","h","lg","px","fs","body","br","gap","sm","xxs","md","paletteFor","variant","c","bg","primary","fg","onPrimary","border","undefined","surfaceContainerHigh","foreground","surface","outline","error","onError"],"sourceRoot":"../../../../../src","sources":["components/ui/Button/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SACEC,OAAO,EACPC,EAAE,EACFC,CAAC,EACDC,MAAM,EACNC,KAAK,EACLC,IAAI,IAAIC,CAAC,QAEJ,yBAAgB;AAQvB;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,EAAe,IACxCT,UAAU,CAACU,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAEd,EAAE,CAACe;EACjB;AACF,CAAC,CAAC;;AAEJ;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAACC,IAAgB,EAAgB;EACxD,QAAQA,IAAI;IACV,KAAK,IAAI;MACP,OAAO;QACLC,CAAC,EAAEnB,OAAO,CAACoB,EAAE;QACbC,EAAE,EAAEnB,CAAC,CAAC,EAAE,CAAC;QACToB,EAAE,EAAEhB,CAAC,CAACiB,IAAI;QACVC,EAAE,EAAErB,MAAM,CAACiB,EAAE;QACbK,GAAG,EAAErB,KAAK,CAAC,GAAG;MAChB,CAAC;IACH,KAAK,IAAI;MACP,OAAO;QACLe,CAAC,EAAEnB,OAAO,CAAC0B,EAAE;QACbL,EAAE,EAAEjB,KAAK,CAAC,GAAG,CAAC;QACdkB,EAAE,EAAEhB,CAAC,CAACqB,GAAG;QACTH,EAAE,EAAErB,MAAM,CAACuB,EAAE;QACbD,GAAG,EAAErB,KAAK,CAAC,GAAG;MAChB,CAAC;IACH,KAAK,IAAI;MACP,OAAO;QACLe,CAAC,EAAEnB,OAAO,CAAC4B,EAAE;QACbP,EAAE,EAAEjB,KAAK,CAAC,GAAG,CAAC;QACdkB,EAAE,EAAEhB,CAAC,CAACoB,EAAE;QACRF,EAAE,EAAErB,MAAM,CAACyB,EAAE;QACbH,GAAG,EAAErB,KAAK,CAAC,GAAG;MAChB,CAAC;EACL;AACF;;AAEA;AACA;AACA;AACA,OAAO,SAASyB,UAAUA,CACxBC,OAAsB,EACtBC,CAAc,EACC;EACf,QAAQD,OAAO;IACb,KAAK,SAAS;MACZ,OAAO;QAAEE,EAAE,EAAED,CAAC,CAACE,OAAO;QAAEC,EAAE,EAAEH,CAAC,CAACI,SAAS;QAAEC,MAAM,EAAEC;MAAU,CAAC;IAC9D,KAAK,WAAW;MACd,OAAO;QACLL,EAAE,EAAED,CAAC,CAACO,oBAAoB;QAC1BJ,EAAE,EAAEH,CAAC,CAACQ,UAAU;QAChBH,MAAM,EAAEC;MACV,CAAC;IACH,KAAK,OAAO;MACV,OAAO;QAAEL,EAAE,EAAE,aAAa;QAAEE,EAAE,EAAEH,CAAC,CAACE,OAAO;QAAEG,MAAM,EAAEC;MAAU,CAAC;IAChE,KAAK,SAAS;MACZ,OAAO;QAAEL,EAAE,EAAE,aAAa;QAAEE,EAAE,EAAEH,CAAC,CAACQ,UAAU;QAAEH,MAAM,EAAEC;MAAU,CAAC;IACnE,KAAK,SAAS;MACZ,OAAO;QAAEL,EAAE,EAAED,CAAC,CAACS,OAAO;QAAEN,EAAE,EAAEH,CAAC,CAACQ,UAAU;QAAEH,MAAM,EAAEL,CAAC,CAACU;MAAQ,CAAC;IAC/D,KAAK,QAAQ;MACX,OAAO;QAAET,EAAE,EAAED,CAAC,CAACW,KAAK;QAAER,EAAE,EAAEH,CAAC,CAACY,OAAO;QAAEP,MAAM,EAAEC;MAAU,CAAC;IAC1D,KAAK,MAAM;MACT,OAAO;QAAEL,EAAE,EAAE,aAAa;QAAEE,EAAE,EAAEH,CAAC,CAACE,OAAO;QAAEG,MAAM,EAAEC;MAAU,CAAC;EAClE;AACF","ignoreList":[]}
|
|
@@ -18,17 +18,26 @@ export function Card({
|
|
|
18
18
|
}) {
|
|
19
19
|
const styles = useThemedStyles(makeStyles);
|
|
20
20
|
const shadow = useShadow();
|
|
21
|
+
const br = borderRadius ?? radius.xl;
|
|
22
|
+
|
|
23
|
+
// 双层:外层持底色 + 阴影 + 圆角(无 overflow,阴影不被裁);内层持 overflow hidden
|
|
24
|
+
// 按圆角裁内容 + padding + 可选边框。[H-4] iOS 上 overflow 与阴影同层会裁掉阴影。
|
|
21
25
|
return /*#__PURE__*/_jsx(View, {
|
|
22
26
|
testID: testID,
|
|
23
27
|
style: [styles.base, {
|
|
24
|
-
borderRadius:
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
borderRadius: br
|
|
29
|
+
}, variantToStyle(variant, shadow, styles), style],
|
|
30
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
31
|
+
style: [styles.clip, {
|
|
32
|
+
borderRadius: br
|
|
33
|
+
}, !bare && {
|
|
34
|
+
padding: padding ?? space[6]
|
|
35
|
+
}, borderColor != null && {
|
|
36
|
+
borderColor,
|
|
37
|
+
borderWidth: borderWidth ?? 2
|
|
38
|
+
}],
|
|
39
|
+
children: children
|
|
40
|
+
})
|
|
32
41
|
});
|
|
33
42
|
}
|
|
34
43
|
//# sourceMappingURL=Card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","radius","space","useShadow","useThemedStyles","makeStyles","variantToStyle","jsx","_jsx","Card","children","variant","padding","borderRadius","borderColor","borderWidth","bare","style","testID","styles","shadow","
|
|
1
|
+
{"version":3,"names":["React","View","radius","space","useShadow","useThemedStyles","makeStyles","variantToStyle","jsx","_jsx","Card","children","variant","padding","borderRadius","borderColor","borderWidth","bare","style","testID","styles","shadow","br","xl","base","clip"],"sourceRoot":"../../../../../src","sources":["components/ui/Card/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,eAAe,QAAQ,yBAAgB;AAC1E,SAASC,UAAU,EAAEC,cAAc,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtD,OAAO,SAASC,IAAIA,CAAC;EACnBC,QAAQ;EACRC,OAAO,GAAG,SAAS;EACnBC,OAAO;EACPC,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC,IAAI;EACJC,KAAK;EACLC;AACS,CAAC,EAAqB;EAC/B,MAAMC,MAAM,GAAGf,eAAe,CAACC,UAAU,CAAC;EAC1C,MAAMe,MAAM,GAAGjB,SAAS,CAAC,CAAC;EAC1B,MAAMkB,EAAE,GAAGR,YAAY,IAAIZ,MAAM,CAACqB,EAAE;;EAEpC;EACA;EACA,oBACEd,IAAA,CAACR,IAAI;IACHkB,MAAM,EAAEA,MAAO;IACfD,KAAK,EAAE,CACLE,MAAM,CAACI,IAAI,EACX;MAAEV,YAAY,EAAEQ;IAAG,CAAC,EACpBf,cAAc,CAACK,OAAO,EAAES,MAAM,EAAED,MAAM,CAAC,EACvCF,KAAK,CACL;IAAAP,QAAA,eAEFF,IAAA,CAACR,IAAI;MACHiB,KAAK,EAAE,CACLE,MAAM,CAACK,IAAI,EACX;QAAEX,YAAY,EAAEQ;MAAG,CAAC,EACpB,CAACL,IAAI,IAAI;QAAEJ,OAAO,EAAEA,OAAO,IAAIV,KAAK,CAAC,CAAC;MAAE,CAAC,EACzCY,WAAW,IAAI,IAAI,IAAI;QACrBA,WAAW;QACXC,WAAW,EAAEA,WAAW,IAAI;MAC9B,CAAC,CACD;MAAAL,QAAA,EAEDA;IAAQ,CACL;EAAC,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
4
|
export const makeStyles = c => StyleSheet.create({
|
|
5
|
+
// 外层:底色 + 阴影(iOS 阴影需不透明背景才投影)。overflow hidden 不放这层 ——
|
|
6
|
+
// 否则 iOS 会把 View 自己的卡片阴影一起裁掉([H-4])。
|
|
5
7
|
base: {
|
|
6
|
-
backgroundColor: c.surface
|
|
8
|
+
backgroundColor: c.surface
|
|
9
|
+
},
|
|
10
|
+
// 内层:overflow hidden 按圆角裁剪内容(如贴边媒体),不影响外层阴影。
|
|
11
|
+
clip: {
|
|
7
12
|
overflow: 'hidden'
|
|
8
13
|
},
|
|
9
14
|
flat: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","makeStyles","c","create","base","backgroundColor","surface","overflow","flat","variantToStyle","v","s","styles","card","undefined"],"sourceRoot":"../../../../../src","sources":["components/ui/Card/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAwC,cAAc;AAIzE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCF,UAAU,CAACG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"names":["StyleSheet","makeStyles","c","create","base","backgroundColor","surface","clip","overflow","flat","variantToStyle","v","s","styles","card","undefined"],"sourceRoot":"../../../../../src","sources":["components/ui/Card/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAwC,cAAc;AAIzE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCF,UAAU,CAACG,MAAM,CAAC;EAChB;EACA;EACAC,IAAI,EAAE;IACJC,eAAe,EAAEH,CAAC,CAACI;EACrB,CAAC;EACD;EACAC,IAAI,EAAE;IACJC,QAAQ,EAAE;EACZ,CAAC;EACDC,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,CAAc,EACdC,CAAe,EACfC,MAAqC,EACf;EACtB,QAAQF,CAAC;IACP,KAAK,SAAS;MACZ,OAAOC,CAAC,CAACE,IAAI;IACf,KAAK,MAAM;MACT,OAAOD,MAAM,CAACJ,IAAI;IACpB,KAAK,OAAO;MACV,OAAOM,SAAS;EACpB;AACF","ignoreList":[]}
|
|
@@ -15,21 +15,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
* 用 Pagination.Custom 而非 Basic:Basic 的 activeDot 用 translateX 推进
|
|
16
16
|
* 内层 fill,外壳宽度等于 dotStyle.width,activeDotStyle.width 只影响内层,
|
|
17
17
|
* 做不出"active 4 → 12 长条"。Custom 自己 interpolate width/height/bg。
|
|
18
|
+
*
|
|
19
|
+
* forwardRef 透传 ICarouselInstance —— 解锁 a11y 暂停(ref.current.scrollTo)
|
|
20
|
+
* 以及宿主页面的命令式 scrollTo / prev / next。
|
|
18
21
|
*/
|
|
19
22
|
// T 约束 object —— `Pagination.Basic<T extends {}>` 需要 object
|
|
20
|
-
|
|
23
|
+
function CarouselInner({
|
|
21
24
|
items,
|
|
22
25
|
renderItem,
|
|
23
26
|
height,
|
|
24
27
|
itemWidth,
|
|
25
28
|
autoPlay,
|
|
29
|
+
loop = true,
|
|
26
30
|
showIndicator = true,
|
|
27
31
|
indicatorPosition = 'bottom',
|
|
28
32
|
onPressItem,
|
|
29
33
|
getAccessibilityLabel,
|
|
30
34
|
style,
|
|
31
35
|
testID
|
|
32
|
-
}) {
|
|
36
|
+
}, ref) {
|
|
33
37
|
const {
|
|
34
38
|
width: screenWidth
|
|
35
39
|
} = useWindowDimensions();
|
|
@@ -56,19 +60,32 @@ export function Carousel({
|
|
|
56
60
|
height
|
|
57
61
|
},
|
|
58
62
|
data: data,
|
|
59
|
-
loop:
|
|
63
|
+
loop: loop,
|
|
60
64
|
autoPlay: !!autoPlay,
|
|
61
65
|
autoPlayInterval: autoPlay,
|
|
62
66
|
onProgressChange: progress,
|
|
67
|
+
ref: ref,
|
|
63
68
|
renderItem: ({
|
|
64
69
|
item,
|
|
65
70
|
index
|
|
66
|
-
}) =>
|
|
71
|
+
}) =>
|
|
72
|
+
/*#__PURE__*/
|
|
73
|
+
// RN Pressable 而非 RNGH Pressable:Carousel 的 GestureDetector 已挂在
|
|
74
|
+
// ReanimatedCarousel 内部,外层再套 RNGH Pressable 会产生手势冲突;
|
|
75
|
+
// 用 RN 原生 Pressable 让库自己的拖拽手势优先,tap 仍正常触发。
|
|
76
|
+
_jsx(Pressable, {
|
|
67
77
|
onPress: () => onPressItem?.(item, index),
|
|
68
78
|
style: {
|
|
69
79
|
width,
|
|
70
80
|
height
|
|
71
|
-
}
|
|
81
|
+
}
|
|
82
|
+
// [L-92] 恒产出兜底:testID 缺失时用 'carousel' 前缀而非 undefined。
|
|
83
|
+
// 与 childTestID「父缺失返 undefined」语义不同,不替换为 childTestID。
|
|
84
|
+
// 原因:renderItem 须向 ReanimatedCarousel 提供稳定可预期的子项 testID
|
|
85
|
+
// 用于 E2E 定位,哪怕调用方未传 testID 也能用 carousel-item-0 等定位;
|
|
86
|
+
// 副作用:同屏两个未传 testID 的 Carousel 会碰撞 carousel-item-N。
|
|
87
|
+
// 建议:多 Carousel 场景请务必传 testID 以避免碰撞。
|
|
88
|
+
,
|
|
72
89
|
testID: `${testID ?? 'carousel'}-item-${index}`
|
|
73
90
|
// 只在真正可点时声明 button 语义,纯展示型不标 button 避免读屏器误导
|
|
74
91
|
,
|
|
@@ -78,13 +95,26 @@ export function Carousel({
|
|
|
78
95
|
} : null),
|
|
79
96
|
children: renderItem(item, index)
|
|
80
97
|
})
|
|
81
|
-
}), showIndicator && items.length > 1 ?
|
|
98
|
+
}), showIndicator && items.length > 1 ?
|
|
99
|
+
/*#__PURE__*/
|
|
100
|
+
// importantForAccessibility="no" —— dots 仅视觉辅助,SR 不需要读出
|
|
101
|
+
// 每个 dot 的状态(已由 accessibilityRole=tab / accessibilityState.selected 表达
|
|
102
|
+
// 的场景另论,这里 Pagination.Custom 无内置 a11y 语义,对 SR 隐藏比误读更优)。
|
|
103
|
+
_jsx(Pagination.Custom, {
|
|
82
104
|
progress: progress,
|
|
83
105
|
data: data,
|
|
84
106
|
dotStyle: styles.dot,
|
|
85
107
|
activeDotStyle: styles.dotActive,
|
|
86
108
|
containerStyle: indicatorPosition === 'overlay-bottom-right' ? styles.dotsWrapOverlay : styles.dotsWrapBottom
|
|
109
|
+
// @ts-expect-error — importantForAccessibility 是 RN View prop,
|
|
110
|
+
// Pagination.Custom containerStyle 走 ViewStyle 但 TS 类型未收录该 prop
|
|
111
|
+
,
|
|
112
|
+
importantForAccessibility: "no-hide-descendants",
|
|
113
|
+
accessibilityElementsHidden: true
|
|
87
114
|
}) : null]
|
|
88
115
|
});
|
|
89
116
|
}
|
|
117
|
+
|
|
118
|
+
// forwardRef 不支持泛型函数组件直接推断 T,需要手动标注 + 类型断言
|
|
119
|
+
export const Carousel = /*#__PURE__*/React.forwardRef(CarouselInner);
|
|
90
120
|
//# sourceMappingURL=Carousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","useWindowDimensions","View","ReanimatedCarousel","Pagination","useSharedValue","space","useThemedStyles","makeCarouselStyles","jsx","_jsx","jsxs","_jsxs","
|
|
1
|
+
{"version":3,"names":["React","Pressable","useWindowDimensions","View","ReanimatedCarousel","Pagination","useSharedValue","space","useThemedStyles","makeCarouselStyles","jsx","_jsx","jsxs","_jsxs","CarouselInner","items","renderItem","height","itemWidth","autoPlay","loop","showIndicator","indicatorPosition","onPressItem","getAccessibilityLabel","style","testID","ref","width","screenWidth","styles","progress","indicatorReservedHeight","data","children","autoPlayInterval","onProgressChange","item","index","onPress","accessibilityRole","accessibilityLabel","length","Custom","dotStyle","dot","activeDotStyle","dotActive","containerStyle","dotsWrapOverlay","dotsWrapBottom","importantForAccessibility","accessibilityElementsHidden","Carousel","forwardRef"],"sourceRoot":"../../../../../src","sources":["components/ui/Carousel/Carousel.tsx"],"mappings":"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","ignoreList":[]}
|