blend-native 0.0.1-beta.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 +404 -0
- package/lib/commonjs/a11y/announcement.js +42 -0
- package/lib/commonjs/a11y/announcement.js.map +1 -0
- package/lib/commonjs/a11y/useLiveRegion.js +37 -0
- package/lib/commonjs/a11y/useLiveRegion.js.map +1 -0
- package/lib/commonjs/adapters/cssStringAdapter.js +363 -0
- package/lib/commonjs/adapters/cssStringAdapter.js.map +1 -0
- package/lib/commonjs/adapters/optionalGradient.js +33 -0
- package/lib/commonjs/adapters/optionalGradient.js.map +1 -0
- package/lib/commonjs/adapters/surfaceStyle.js +159 -0
- package/lib/commonjs/adapters/surfaceStyle.js.map +1 -0
- package/lib/commonjs/components/Alert/Alert.js +130 -0
- package/lib/commonjs/components/Alert/Alert.js.map +1 -0
- package/lib/commonjs/components/Alert/AlertActions.js +74 -0
- package/lib/commonjs/components/Alert/AlertActions.js.map +1 -0
- package/lib/commonjs/components/Alert/AlertClose.js +48 -0
- package/lib/commonjs/components/Alert/AlertClose.js.map +1 -0
- package/lib/commonjs/components/Alert/AlertText.js +49 -0
- package/lib/commonjs/components/Alert/AlertText.js.map +1 -0
- package/lib/commonjs/components/Alert/alert.tokens.js +6 -0
- package/lib/commonjs/components/Alert/alert.tokens.js.map +1 -0
- package/lib/commonjs/components/Alert/alert.types.js +6 -0
- package/lib/commonjs/components/Alert/alert.types.js.map +1 -0
- package/lib/commonjs/components/Alert/alert.utils.js +80 -0
- package/lib/commonjs/components/Alert/alert.utils.js.map +1 -0
- package/lib/commonjs/components/Alert/index.js +51 -0
- package/lib/commonjs/components/Alert/index.js.map +1 -0
- package/lib/commonjs/components/Button/Button.js +125 -0
- package/lib/commonjs/components/Button/Button.js.map +1 -0
- package/lib/commonjs/components/Button/button.types.js +6 -0
- package/lib/commonjs/components/Button/button.types.js.map +1 -0
- package/lib/commonjs/components/Button/button.utils.js +129 -0
- package/lib/commonjs/components/Button/button.utils.js.map +1 -0
- package/lib/commonjs/components/Button/index.js +57 -0
- package/lib/commonjs/components/Button/index.js.map +1 -0
- package/lib/commonjs/components/Skeleton/Skeleton.js +154 -0
- package/lib/commonjs/components/Skeleton/Skeleton.js.map +1 -0
- package/lib/commonjs/components/Skeleton/index.js +20 -0
- package/lib/commonjs/components/Skeleton/index.js.map +1 -0
- package/lib/commonjs/components/Skeleton/skeleton.types.js +6 -0
- package/lib/commonjs/components/Skeleton/skeleton.types.js.map +1 -0
- package/lib/commonjs/components/Skeleton/skeleton.utils.js +45 -0
- package/lib/commonjs/components/Skeleton/skeleton.utils.js.map +1 -0
- package/lib/commonjs/components/Tag/Tag.js +161 -0
- package/lib/commonjs/components/Tag/Tag.js.map +1 -0
- package/lib/commonjs/components/Tag/index.js +33 -0
- package/lib/commonjs/components/Tag/index.js.map +1 -0
- package/lib/commonjs/components/Tag/tag.types.js +6 -0
- package/lib/commonjs/components/Tag/tag.types.js.map +1 -0
- package/lib/commonjs/components/Tag/tag.utils.js +69 -0
- package/lib/commonjs/components/Tag/tag.utils.js.map +1 -0
- package/lib/commonjs/components/TextInput/TextInput.js +138 -0
- package/lib/commonjs/components/TextInput/TextInput.js.map +1 -0
- package/lib/commonjs/components/TextInput/index.js +14 -0
- package/lib/commonjs/components/TextInput/index.js.map +1 -0
- package/lib/commonjs/components/TextInput/textInput.types.js +6 -0
- package/lib/commonjs/components/TextInput/textInput.types.js.map +1 -0
- package/lib/commonjs/components/TextInput/textInput.utils.js +40 -0
- package/lib/commonjs/components/TextInput/textInput.utils.js.map +1 -0
- package/lib/commonjs/components/shared/field/FieldFooter.js +51 -0
- package/lib/commonjs/components/shared/field/FieldFooter.js.map +1 -0
- package/lib/commonjs/components/shared/field/FieldLabels.js +67 -0
- package/lib/commonjs/components/shared/field/FieldLabels.js.map +1 -0
- package/lib/commonjs/components/shared/field/fieldState.js +37 -0
- package/lib/commonjs/components/shared/field/fieldState.js.map +1 -0
- package/lib/commonjs/components/shared/group.js +73 -0
- package/lib/commonjs/components/shared/group.js.map +1 -0
- package/lib/commonjs/index.js +256 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/motion/motion.js +128 -0
- package/lib/commonjs/motion/motion.js.map +1 -0
- package/lib/commonjs/motion/useReduceMotion.js +37 -0
- package/lib/commonjs/motion/useReduceMotion.js.map +1 -0
- package/lib/commonjs/overlay/portal.js +110 -0
- package/lib/commonjs/overlay/portal.js.map +1 -0
- package/lib/commonjs/overlay/positioning.js +122 -0
- package/lib/commonjs/overlay/positioning.js.map +1 -0
- package/lib/commonjs/overlay/safeAreaInsets.js +30 -0
- package/lib/commonjs/overlay/safeAreaInsets.js.map +1 -0
- package/lib/commonjs/overlay/sheet/BottomSheet.js +196 -0
- package/lib/commonjs/overlay/sheet/BottomSheet.js.map +1 -0
- package/lib/commonjs/overlay/sheet/sheetMath.js +60 -0
- package/lib/commonjs/overlay/sheet/sheetMath.js.map +1 -0
- package/lib/commonjs/overlay/toast/ToastOutlet.js +106 -0
- package/lib/commonjs/overlay/toast/ToastOutlet.js.map +1 -0
- package/lib/commonjs/overlay/toast/toastStore.js +76 -0
- package/lib/commonjs/overlay/toast/toastStore.js.map +1 -0
- package/lib/commonjs/overlay/useAnchoredPosition.js +85 -0
- package/lib/commonjs/overlay/useAnchoredPosition.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/primitives/Block.js +112 -0
- package/lib/commonjs/primitives/Block.js.map +1 -0
- package/lib/commonjs/primitives/Pressable.js +348 -0
- package/lib/commonjs/primitives/Pressable.js.map +1 -0
- package/lib/commonjs/primitives/PrimitiveInput.js +66 -0
- package/lib/commonjs/primitives/PrimitiveInput.js.map +1 -0
- package/lib/commonjs/primitives/Separator.js +55 -0
- package/lib/commonjs/primitives/Separator.js.map +1 -0
- package/lib/commonjs/primitives/Slot.js +78 -0
- package/lib/commonjs/primitives/Slot.js.map +1 -0
- package/lib/commonjs/primitives/Text.js +73 -0
- package/lib/commonjs/primitives/Text.js.map +1 -0
- package/lib/commonjs/primitives/pressFeedback.js +53 -0
- package/lib/commonjs/primitives/pressFeedback.js.map +1 -0
- package/lib/commonjs/primitives/textStyle.js +27 -0
- package/lib/commonjs/primitives/textStyle.js.map +1 -0
- package/lib/commonjs/primitives/tintSlot.js +45 -0
- package/lib/commonjs/primitives/tintSlot.js.map +1 -0
- package/lib/commonjs/primitives/touchTarget.js +64 -0
- package/lib/commonjs/primitives/touchTarget.js.map +1 -0
- package/lib/commonjs/theme/BlendNativeProvider.js +90 -0
- package/lib/commonjs/theme/BlendNativeProvider.js.map +1 -0
- package/lib/commonjs/theme/breakpoint.js +36 -0
- package/lib/commonjs/theme/breakpoint.js.map +1 -0
- package/lib/commonjs/theme/fonts.js +58 -0
- package/lib/commonjs/theme/fonts.js.map +1 -0
- package/lib/commonjs/theme/nativeTokenRegistry.js +44 -0
- package/lib/commonjs/theme/nativeTokenRegistry.js.map +1 -0
- package/lib/commonjs/theme/systemTheme.js +35 -0
- package/lib/commonjs/theme/systemTheme.js.map +1 -0
- package/lib/commonjs/theme/useNativeBreakpoint.js +33 -0
- package/lib/commonjs/theme/useNativeBreakpoint.js.map +1 -0
- package/lib/commonjs/theme/useNativeTokens.js +71 -0
- package/lib/commonjs/theme/useNativeTokens.js.map +1 -0
- package/lib/module/a11y/announcement.js +38 -0
- package/lib/module/a11y/announcement.js.map +1 -0
- package/lib/module/a11y/useLiveRegion.js +33 -0
- package/lib/module/a11y/useLiveRegion.js.map +1 -0
- package/lib/module/adapters/cssStringAdapter.js +352 -0
- package/lib/module/adapters/cssStringAdapter.js.map +1 -0
- package/lib/module/adapters/optionalGradient.js +29 -0
- package/lib/module/adapters/optionalGradient.js.map +1 -0
- package/lib/module/adapters/surfaceStyle.js +155 -0
- package/lib/module/adapters/surfaceStyle.js.map +1 -0
- package/lib/module/components/Alert/Alert.js +126 -0
- package/lib/module/components/Alert/Alert.js.map +1 -0
- package/lib/module/components/Alert/AlertActions.js +70 -0
- package/lib/module/components/Alert/AlertActions.js.map +1 -0
- package/lib/module/components/Alert/AlertClose.js +44 -0
- package/lib/module/components/Alert/AlertClose.js.map +1 -0
- package/lib/module/components/Alert/AlertText.js +45 -0
- package/lib/module/components/Alert/AlertText.js.map +1 -0
- package/lib/module/components/Alert/alert.tokens.js +4 -0
- package/lib/module/components/Alert/alert.tokens.js.map +1 -0
- package/lib/module/components/Alert/alert.types.js +4 -0
- package/lib/module/components/Alert/alert.types.js.map +1 -0
- package/lib/module/components/Alert/alert.utils.js +72 -0
- package/lib/module/components/Alert/alert.utils.js.map +1 -0
- package/lib/module/components/Alert/index.js +6 -0
- package/lib/module/components/Alert/index.js.map +1 -0
- package/lib/module/components/Button/Button.js +121 -0
- package/lib/module/components/Button/Button.js.map +1 -0
- package/lib/module/components/Button/button.types.js +4 -0
- package/lib/module/components/Button/button.types.js.map +1 -0
- package/lib/module/components/Button/button.utils.js +120 -0
- package/lib/module/components/Button/button.utils.js.map +1 -0
- package/lib/module/components/Button/index.js +5 -0
- package/lib/module/components/Button/index.js.map +1 -0
- package/lib/module/components/Skeleton/Skeleton.js +149 -0
- package/lib/module/components/Skeleton/Skeleton.js.map +1 -0
- package/lib/module/components/Skeleton/index.js +4 -0
- package/lib/module/components/Skeleton/index.js.map +1 -0
- package/lib/module/components/Skeleton/skeleton.types.js +4 -0
- package/lib/module/components/Skeleton/skeleton.types.js.map +1 -0
- package/lib/module/components/Skeleton/skeleton.utils.js +40 -0
- package/lib/module/components/Skeleton/skeleton.utils.js.map +1 -0
- package/lib/module/components/Tag/Tag.js +157 -0
- package/lib/module/components/Tag/Tag.js.map +1 -0
- package/lib/module/components/Tag/index.js +5 -0
- package/lib/module/components/Tag/index.js.map +1 -0
- package/lib/module/components/Tag/tag.types.js +4 -0
- package/lib/module/components/Tag/tag.types.js.map +1 -0
- package/lib/module/components/Tag/tag.utils.js +64 -0
- package/lib/module/components/Tag/tag.utils.js.map +1 -0
- package/lib/module/components/TextInput/TextInput.js +134 -0
- package/lib/module/components/TextInput/TextInput.js.map +1 -0
- package/lib/module/components/TextInput/index.js +4 -0
- package/lib/module/components/TextInput/index.js.map +1 -0
- package/lib/module/components/TextInput/textInput.types.js +4 -0
- package/lib/module/components/TextInput/textInput.types.js.map +1 -0
- package/lib/module/components/TextInput/textInput.utils.js +36 -0
- package/lib/module/components/TextInput/textInput.utils.js.map +1 -0
- package/lib/module/components/shared/field/FieldFooter.js +47 -0
- package/lib/module/components/shared/field/FieldFooter.js.map +1 -0
- package/lib/module/components/shared/field/FieldLabels.js +63 -0
- package/lib/module/components/shared/field/FieldLabels.js.map +1 -0
- package/lib/module/components/shared/field/fieldState.js +33 -0
- package/lib/module/components/shared/field/fieldState.js.map +1 -0
- package/lib/module/components/shared/group.js +68 -0
- package/lib/module/components/shared/group.js.map +1 -0
- package/lib/module/index.js +80 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/motion/motion.js +123 -0
- package/lib/module/motion/motion.js.map +1 -0
- package/lib/module/motion/useReduceMotion.js +33 -0
- package/lib/module/motion/useReduceMotion.js.map +1 -0
- package/lib/module/overlay/portal.js +104 -0
- package/lib/module/overlay/portal.js.map +1 -0
- package/lib/module/overlay/positioning.js +118 -0
- package/lib/module/overlay/positioning.js.map +1 -0
- package/lib/module/overlay/safeAreaInsets.js +27 -0
- package/lib/module/overlay/safeAreaInsets.js.map +1 -0
- package/lib/module/overlay/sheet/BottomSheet.js +190 -0
- package/lib/module/overlay/sheet/BottomSheet.js.map +1 -0
- package/lib/module/overlay/sheet/sheetMath.js +53 -0
- package/lib/module/overlay/sheet/sheetMath.js.map +1 -0
- package/lib/module/overlay/toast/ToastOutlet.js +101 -0
- package/lib/module/overlay/toast/ToastOutlet.js.map +1 -0
- package/lib/module/overlay/toast/toastStore.js +66 -0
- package/lib/module/overlay/toast/toastStore.js.map +1 -0
- package/lib/module/overlay/useAnchoredPosition.js +82 -0
- package/lib/module/overlay/useAnchoredPosition.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/primitives/Block.js +107 -0
- package/lib/module/primitives/Block.js.map +1 -0
- package/lib/module/primitives/Pressable.js +339 -0
- package/lib/module/primitives/Pressable.js.map +1 -0
- package/lib/module/primitives/PrimitiveInput.js +62 -0
- package/lib/module/primitives/PrimitiveInput.js.map +1 -0
- package/lib/module/primitives/Separator.js +50 -0
- package/lib/module/primitives/Separator.js.map +1 -0
- package/lib/module/primitives/Slot.js +69 -0
- package/lib/module/primitives/Slot.js.map +1 -0
- package/lib/module/primitives/Text.js +68 -0
- package/lib/module/primitives/Text.js.map +1 -0
- package/lib/module/primitives/pressFeedback.js +48 -0
- package/lib/module/primitives/pressFeedback.js.map +1 -0
- package/lib/module/primitives/textStyle.js +23 -0
- package/lib/module/primitives/textStyle.js.map +1 -0
- package/lib/module/primitives/tintSlot.js +42 -0
- package/lib/module/primitives/tintSlot.js.map +1 -0
- package/lib/module/primitives/touchTarget.js +58 -0
- package/lib/module/primitives/touchTarget.js.map +1 -0
- package/lib/module/theme/BlendNativeProvider.js +78 -0
- package/lib/module/theme/BlendNativeProvider.js.map +1 -0
- package/lib/module/theme/breakpoint.js +33 -0
- package/lib/module/theme/breakpoint.js.map +1 -0
- package/lib/module/theme/fonts.js +55 -0
- package/lib/module/theme/fonts.js.map +1 -0
- package/lib/module/theme/nativeTokenRegistry.js +40 -0
- package/lib/module/theme/nativeTokenRegistry.js.map +1 -0
- package/lib/module/theme/systemTheme.js +31 -0
- package/lib/module/theme/systemTheme.js.map +1 -0
- package/lib/module/theme/useNativeBreakpoint.js +24 -0
- package/lib/module/theme/useNativeBreakpoint.js.map +1 -0
- package/lib/module/theme/useNativeTokens.js +67 -0
- package/lib/module/theme/useNativeTokens.js.map +1 -0
- package/lib/typescript/commonjs/a11y/announcement.d.ts +26 -0
- package/lib/typescript/commonjs/a11y/announcement.d.ts.map +1 -0
- package/lib/typescript/commonjs/a11y/useLiveRegion.d.ts +17 -0
- package/lib/typescript/commonjs/a11y/useLiveRegion.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapters/cssStringAdapter.d.ts +119 -0
- package/lib/typescript/commonjs/adapters/cssStringAdapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapters/optionalGradient.d.ts +32 -0
- package/lib/typescript/commonjs/adapters/optionalGradient.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapters/surfaceStyle.d.ts +75 -0
- package/lib/typescript/commonjs/adapters/surfaceStyle.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/Alert.d.ts +14 -0
- package/lib/typescript/commonjs/components/Alert/Alert.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/AlertActions.d.ts +13 -0
- package/lib/typescript/commonjs/components/Alert/AlertActions.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/AlertClose.d.ts +22 -0
- package/lib/typescript/commonjs/components/Alert/AlertClose.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/AlertText.d.ts +19 -0
- package/lib/typescript/commonjs/components/Alert/AlertText.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/alert.tokens.d.ts +17 -0
- package/lib/typescript/commonjs/components/Alert/alert.tokens.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/alert.types.d.ts +70 -0
- package/lib/typescript/commonjs/components/Alert/alert.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/alert.utils.d.ts +58 -0
- package/lib/typescript/commonjs/components/Alert/alert.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Alert/index.d.ts +7 -0
- package/lib/typescript/commonjs/components/Alert/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Button/Button.d.ts +22 -0
- package/lib/typescript/commonjs/components/Button/Button.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Button/button.types.d.ts +37 -0
- package/lib/typescript/commonjs/components/Button/button.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Button/button.utils.d.ts +98 -0
- package/lib/typescript/commonjs/components/Button/button.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Button/index.d.ts +5 -0
- package/lib/typescript/commonjs/components/Button/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +7 -0
- package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Skeleton/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/Skeleton/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Skeleton/skeleton.types.d.ts +25 -0
- package/lib/typescript/commonjs/components/Skeleton/skeleton.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Skeleton/skeleton.utils.d.ts +21 -0
- package/lib/typescript/commonjs/components/Skeleton/skeleton.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Tag/Tag.d.ts +21 -0
- package/lib/typescript/commonjs/components/Tag/Tag.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Tag/index.d.ts +4 -0
- package/lib/typescript/commonjs/components/Tag/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Tag/tag.types.d.ts +56 -0
- package/lib/typescript/commonjs/components/Tag/tag.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Tag/tag.utils.d.ts +41 -0
- package/lib/typescript/commonjs/components/Tag/tag.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/TextInput/TextInput.d.ts +33 -0
- package/lib/typescript/commonjs/components/TextInput/TextInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/TextInput/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/TextInput/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/TextInput/textInput.types.d.ts +45 -0
- package/lib/typescript/commonjs/components/TextInput/textInput.types.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/TextInput/textInput.utils.d.ts +35 -0
- package/lib/typescript/commonjs/components/TextInput/textInput.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/shared/field/FieldFooter.d.ts +22 -0
- package/lib/typescript/commonjs/components/shared/field/FieldFooter.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/shared/field/FieldLabels.d.ts +27 -0
- package/lib/typescript/commonjs/components/shared/field/FieldLabels.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/shared/field/fieldState.d.ts +23 -0
- package/lib/typescript/commonjs/components/shared/field/fieldState.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/shared/group.d.ts +50 -0
- package/lib/typescript/commonjs/components/shared/group.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +74 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/motion/motion.d.ts +121 -0
- package/lib/typescript/commonjs/motion/motion.d.ts.map +1 -0
- package/lib/typescript/commonjs/motion/useReduceMotion.d.ts +14 -0
- package/lib/typescript/commonjs/motion/useReduceMotion.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/portal.d.ts +20 -0
- package/lib/typescript/commonjs/overlay/portal.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/positioning.d.ts +65 -0
- package/lib/typescript/commonjs/overlay/positioning.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/safeAreaInsets.d.ts +19 -0
- package/lib/typescript/commonjs/overlay/safeAreaInsets.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/sheet/BottomSheet.d.ts +56 -0
- package/lib/typescript/commonjs/overlay/sheet/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/sheet/sheetMath.d.ts +32 -0
- package/lib/typescript/commonjs/overlay/sheet/sheetMath.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/toast/ToastOutlet.d.ts +17 -0
- package/lib/typescript/commonjs/overlay/toast/ToastOutlet.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/toast/toastStore.d.ts +45 -0
- package/lib/typescript/commonjs/overlay/toast/toastStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/useAnchoredPosition.d.ts +40 -0
- package/lib/typescript/commonjs/overlay/useAnchoredPosition.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/primitives/Block.d.ts +37 -0
- package/lib/typescript/commonjs/primitives/Block.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/Pressable.d.ts +135 -0
- package/lib/typescript/commonjs/primitives/Pressable.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/PrimitiveInput.d.ts +42 -0
- package/lib/typescript/commonjs/primitives/PrimitiveInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/Separator.d.ts +28 -0
- package/lib/typescript/commonjs/primitives/Separator.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/Slot.d.ts +48 -0
- package/lib/typescript/commonjs/primitives/Slot.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/Text.d.ts +50 -0
- package/lib/typescript/commonjs/primitives/Text.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/pressFeedback.d.ts +39 -0
- package/lib/typescript/commonjs/primitives/pressFeedback.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/textStyle.d.ts +13 -0
- package/lib/typescript/commonjs/primitives/textStyle.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/tintSlot.d.ts +10 -0
- package/lib/typescript/commonjs/primitives/tintSlot.d.ts.map +1 -0
- package/lib/typescript/commonjs/primitives/touchTarget.d.ts +43 -0
- package/lib/typescript/commonjs/primitives/touchTarget.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/BlendNativeProvider.d.ts +69 -0
- package/lib/typescript/commonjs/theme/BlendNativeProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/breakpoint.d.ts +27 -0
- package/lib/typescript/commonjs/theme/breakpoint.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/fonts.d.ts +34 -0
- package/lib/typescript/commonjs/theme/fonts.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/nativeTokenRegistry.d.ts +34 -0
- package/lib/typescript/commonjs/theme/nativeTokenRegistry.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/systemTheme.d.ts +25 -0
- package/lib/typescript/commonjs/theme/systemTheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/useNativeBreakpoint.d.ts +17 -0
- package/lib/typescript/commonjs/theme/useNativeBreakpoint.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/useNativeTokens.d.ts +4 -0
- package/lib/typescript/commonjs/theme/useNativeTokens.d.ts.map +1 -0
- package/lib/typescript/module/a11y/announcement.d.ts +26 -0
- package/lib/typescript/module/a11y/announcement.d.ts.map +1 -0
- package/lib/typescript/module/a11y/useLiveRegion.d.ts +17 -0
- package/lib/typescript/module/a11y/useLiveRegion.d.ts.map +1 -0
- package/lib/typescript/module/adapters/cssStringAdapter.d.ts +119 -0
- package/lib/typescript/module/adapters/cssStringAdapter.d.ts.map +1 -0
- package/lib/typescript/module/adapters/optionalGradient.d.ts +32 -0
- package/lib/typescript/module/adapters/optionalGradient.d.ts.map +1 -0
- package/lib/typescript/module/adapters/surfaceStyle.d.ts +75 -0
- package/lib/typescript/module/adapters/surfaceStyle.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/Alert.d.ts +14 -0
- package/lib/typescript/module/components/Alert/Alert.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/AlertActions.d.ts +13 -0
- package/lib/typescript/module/components/Alert/AlertActions.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/AlertClose.d.ts +22 -0
- package/lib/typescript/module/components/Alert/AlertClose.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/AlertText.d.ts +19 -0
- package/lib/typescript/module/components/Alert/AlertText.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/alert.tokens.d.ts +17 -0
- package/lib/typescript/module/components/Alert/alert.tokens.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/alert.types.d.ts +70 -0
- package/lib/typescript/module/components/Alert/alert.types.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/alert.utils.d.ts +58 -0
- package/lib/typescript/module/components/Alert/alert.utils.d.ts.map +1 -0
- package/lib/typescript/module/components/Alert/index.d.ts +7 -0
- package/lib/typescript/module/components/Alert/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Button/Button.d.ts +22 -0
- package/lib/typescript/module/components/Button/Button.d.ts.map +1 -0
- package/lib/typescript/module/components/Button/button.types.d.ts +37 -0
- package/lib/typescript/module/components/Button/button.types.d.ts.map +1 -0
- package/lib/typescript/module/components/Button/button.utils.d.ts +98 -0
- package/lib/typescript/module/components/Button/button.utils.d.ts.map +1 -0
- package/lib/typescript/module/components/Button/index.d.ts +5 -0
- package/lib/typescript/module/components/Button/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +7 -0
- package/lib/typescript/module/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/lib/typescript/module/components/Skeleton/index.d.ts +3 -0
- package/lib/typescript/module/components/Skeleton/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Skeleton/skeleton.types.d.ts +25 -0
- package/lib/typescript/module/components/Skeleton/skeleton.types.d.ts.map +1 -0
- package/lib/typescript/module/components/Skeleton/skeleton.utils.d.ts +21 -0
- package/lib/typescript/module/components/Skeleton/skeleton.utils.d.ts.map +1 -0
- package/lib/typescript/module/components/Tag/Tag.d.ts +21 -0
- package/lib/typescript/module/components/Tag/Tag.d.ts.map +1 -0
- package/lib/typescript/module/components/Tag/index.d.ts +4 -0
- package/lib/typescript/module/components/Tag/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Tag/tag.types.d.ts +56 -0
- package/lib/typescript/module/components/Tag/tag.types.d.ts.map +1 -0
- package/lib/typescript/module/components/Tag/tag.utils.d.ts +41 -0
- package/lib/typescript/module/components/Tag/tag.utils.d.ts.map +1 -0
- package/lib/typescript/module/components/TextInput/TextInput.d.ts +33 -0
- package/lib/typescript/module/components/TextInput/TextInput.d.ts.map +1 -0
- package/lib/typescript/module/components/TextInput/index.d.ts +3 -0
- package/lib/typescript/module/components/TextInput/index.d.ts.map +1 -0
- package/lib/typescript/module/components/TextInput/textInput.types.d.ts +45 -0
- package/lib/typescript/module/components/TextInput/textInput.types.d.ts.map +1 -0
- package/lib/typescript/module/components/TextInput/textInput.utils.d.ts +35 -0
- package/lib/typescript/module/components/TextInput/textInput.utils.d.ts.map +1 -0
- package/lib/typescript/module/components/shared/field/FieldFooter.d.ts +22 -0
- package/lib/typescript/module/components/shared/field/FieldFooter.d.ts.map +1 -0
- package/lib/typescript/module/components/shared/field/FieldLabels.d.ts +27 -0
- package/lib/typescript/module/components/shared/field/FieldLabels.d.ts.map +1 -0
- package/lib/typescript/module/components/shared/field/fieldState.d.ts +23 -0
- package/lib/typescript/module/components/shared/field/fieldState.d.ts.map +1 -0
- package/lib/typescript/module/components/shared/group.d.ts +50 -0
- package/lib/typescript/module/components/shared/group.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +74 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/motion/motion.d.ts +121 -0
- package/lib/typescript/module/motion/motion.d.ts.map +1 -0
- package/lib/typescript/module/motion/useReduceMotion.d.ts +14 -0
- package/lib/typescript/module/motion/useReduceMotion.d.ts.map +1 -0
- package/lib/typescript/module/overlay/portal.d.ts +20 -0
- package/lib/typescript/module/overlay/portal.d.ts.map +1 -0
- package/lib/typescript/module/overlay/positioning.d.ts +65 -0
- package/lib/typescript/module/overlay/positioning.d.ts.map +1 -0
- package/lib/typescript/module/overlay/safeAreaInsets.d.ts +19 -0
- package/lib/typescript/module/overlay/safeAreaInsets.d.ts.map +1 -0
- package/lib/typescript/module/overlay/sheet/BottomSheet.d.ts +56 -0
- package/lib/typescript/module/overlay/sheet/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/module/overlay/sheet/sheetMath.d.ts +32 -0
- package/lib/typescript/module/overlay/sheet/sheetMath.d.ts.map +1 -0
- package/lib/typescript/module/overlay/toast/ToastOutlet.d.ts +17 -0
- package/lib/typescript/module/overlay/toast/ToastOutlet.d.ts.map +1 -0
- package/lib/typescript/module/overlay/toast/toastStore.d.ts +45 -0
- package/lib/typescript/module/overlay/toast/toastStore.d.ts.map +1 -0
- package/lib/typescript/module/overlay/useAnchoredPosition.d.ts +40 -0
- package/lib/typescript/module/overlay/useAnchoredPosition.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/primitives/Block.d.ts +37 -0
- package/lib/typescript/module/primitives/Block.d.ts.map +1 -0
- package/lib/typescript/module/primitives/Pressable.d.ts +135 -0
- package/lib/typescript/module/primitives/Pressable.d.ts.map +1 -0
- package/lib/typescript/module/primitives/PrimitiveInput.d.ts +42 -0
- package/lib/typescript/module/primitives/PrimitiveInput.d.ts.map +1 -0
- package/lib/typescript/module/primitives/Separator.d.ts +28 -0
- package/lib/typescript/module/primitives/Separator.d.ts.map +1 -0
- package/lib/typescript/module/primitives/Slot.d.ts +48 -0
- package/lib/typescript/module/primitives/Slot.d.ts.map +1 -0
- package/lib/typescript/module/primitives/Text.d.ts +50 -0
- package/lib/typescript/module/primitives/Text.d.ts.map +1 -0
- package/lib/typescript/module/primitives/pressFeedback.d.ts +39 -0
- package/lib/typescript/module/primitives/pressFeedback.d.ts.map +1 -0
- package/lib/typescript/module/primitives/textStyle.d.ts +13 -0
- package/lib/typescript/module/primitives/textStyle.d.ts.map +1 -0
- package/lib/typescript/module/primitives/tintSlot.d.ts +10 -0
- package/lib/typescript/module/primitives/tintSlot.d.ts.map +1 -0
- package/lib/typescript/module/primitives/touchTarget.d.ts +43 -0
- package/lib/typescript/module/primitives/touchTarget.d.ts.map +1 -0
- package/lib/typescript/module/theme/BlendNativeProvider.d.ts +69 -0
- package/lib/typescript/module/theme/BlendNativeProvider.d.ts.map +1 -0
- package/lib/typescript/module/theme/breakpoint.d.ts +27 -0
- package/lib/typescript/module/theme/breakpoint.d.ts.map +1 -0
- package/lib/typescript/module/theme/fonts.d.ts +34 -0
- package/lib/typescript/module/theme/fonts.d.ts.map +1 -0
- package/lib/typescript/module/theme/nativeTokenRegistry.d.ts +34 -0
- package/lib/typescript/module/theme/nativeTokenRegistry.d.ts.map +1 -0
- package/lib/typescript/module/theme/systemTheme.d.ts +25 -0
- package/lib/typescript/module/theme/systemTheme.d.ts.map +1 -0
- package/lib/typescript/module/theme/useNativeBreakpoint.d.ts +17 -0
- package/lib/typescript/module/theme/useNativeBreakpoint.d.ts.map +1 -0
- package/lib/typescript/module/theme/useNativeTokens.d.ts +4 -0
- package/lib/typescript/module/theme/useNativeTokens.d.ts.map +1 -0
- package/package.json +137 -0
- package/src/a11y/announcement.ts +41 -0
- package/src/a11y/useLiveRegion.ts +36 -0
- package/src/adapters/cssStringAdapter.ts +403 -0
- package/src/adapters/optionalGradient.ts +39 -0
- package/src/adapters/surfaceStyle.ts +209 -0
- package/src/components/Alert/Alert.tsx +167 -0
- package/src/components/Alert/AlertActions.tsx +98 -0
- package/src/components/Alert/AlertClose.tsx +53 -0
- package/src/components/Alert/AlertText.tsx +58 -0
- package/src/components/Alert/alert.tokens.ts +24 -0
- package/src/components/Alert/alert.types.ts +81 -0
- package/src/components/Alert/alert.utils.ts +94 -0
- package/src/components/Alert/index.ts +21 -0
- package/src/components/Button/Button.tsx +180 -0
- package/src/components/Button/button.types.ts +44 -0
- package/src/components/Button/button.utils.ts +213 -0
- package/src/components/Button/index.ts +12 -0
- package/src/components/Skeleton/Skeleton.tsx +196 -0
- package/src/components/Skeleton/index.ts +2 -0
- package/src/components/Skeleton/skeleton.types.ts +28 -0
- package/src/components/Skeleton/skeleton.utils.ts +56 -0
- package/src/components/Tag/Tag.tsx +204 -0
- package/src/components/Tag/index.ts +7 -0
- package/src/components/Tag/tag.types.ts +63 -0
- package/src/components/Tag/tag.utils.ts +82 -0
- package/src/components/TextInput/TextInput.tsx +165 -0
- package/src/components/TextInput/index.ts +2 -0
- package/src/components/TextInput/textInput.types.ts +54 -0
- package/src/components/TextInput/textInput.utils.ts +68 -0
- package/src/components/shared/field/FieldFooter.tsx +66 -0
- package/src/components/shared/field/FieldLabels.tsx +86 -0
- package/src/components/shared/field/fieldState.ts +39 -0
- package/src/components/shared/group.ts +72 -0
- package/src/index.ts +144 -0
- package/src/motion/motion.ts +115 -0
- package/src/motion/useReduceMotion.ts +36 -0
- package/src/overlay/portal.tsx +122 -0
- package/src/overlay/positioning.ts +196 -0
- package/src/overlay/safeAreaInsets.ts +36 -0
- package/src/overlay/sheet/BottomSheet.tsx +276 -0
- package/src/overlay/sheet/sheetMath.ts +58 -0
- package/src/overlay/toast/ToastOutlet.tsx +127 -0
- package/src/overlay/toast/toastStore.ts +96 -0
- package/src/overlay/useAnchoredPosition.ts +92 -0
- package/src/primitives/Block.tsx +129 -0
- package/src/primitives/Pressable.tsx +528 -0
- package/src/primitives/PrimitiveInput.tsx +87 -0
- package/src/primitives/Separator.tsx +65 -0
- package/src/primitives/Slot.tsx +94 -0
- package/src/primitives/Text.tsx +98 -0
- package/src/primitives/pressFeedback.ts +78 -0
- package/src/primitives/textStyle.ts +24 -0
- package/src/primitives/tintSlot.ts +44 -0
- package/src/primitives/touchTarget.ts +72 -0
- package/src/theme/BlendNativeProvider.tsx +147 -0
- package/src/theme/breakpoint.ts +38 -0
- package/src/theme/fonts.ts +63 -0
- package/src/theme/nativeTokenRegistry.ts +57 -0
- package/src/theme/systemTheme.ts +34 -0
- package/src/theme/useNativeBreakpoint.ts +27 -0
- package/src/theme/useNativeTokens.ts +99 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.mergeStyles = mergeStyles;
|
|
7
|
+
exports.parseBackground = parseBackground;
|
|
8
|
+
exports.parseBorder = parseBorder;
|
|
9
|
+
exports.parseBorderRadius = parseBorderRadius;
|
|
10
|
+
exports.parseBoxShadow = parseBoxShadow;
|
|
11
|
+
exports.parseDimension = parseDimension;
|
|
12
|
+
exports.parseDuration = parseDuration;
|
|
13
|
+
exports.parseSize = parseSize;
|
|
14
|
+
/**
|
|
15
|
+
* CSS-string token adapter for React Native.
|
|
16
|
+
*
|
|
17
|
+
* Blend's token factories emit CSS string values (`"6px"`,
|
|
18
|
+
* `"1px solid #E1E4EA"`, `"linear-gradient(180deg, #1A56DB -5%, #2563EB 107.5%)"`).
|
|
19
|
+
* RN's stylesheet engine accepts only numbers or platform-specific style
|
|
20
|
+
* objects, so every token value that touches layout/decoration must be
|
|
21
|
+
* translated here.
|
|
22
|
+
*
|
|
23
|
+
* Every function is pure and defensive: unparseable input returns a safe
|
|
24
|
+
* fallback (usually `undefined`) rather than throwing, so a single bad token
|
|
25
|
+
* never crashes the whole button.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A decimal number, in a form the regex engine cannot backtrack over.
|
|
30
|
+
*
|
|
31
|
+
* The obvious spellings — `\d*\.?\d+` and `\d+\.?\d*` — are **ambiguous**:
|
|
32
|
+
* with no `.` present, a run of digits can be divided between the two
|
|
33
|
+
* quantifiers in as many ways as there are digits, so a long non-matching
|
|
34
|
+
* input costs O(n^2). CodeQL flags both as `js/polynomial-redos`, correctly.
|
|
35
|
+
*
|
|
36
|
+
* Here the `.` inside the optional group is mandatory, so each digit run has
|
|
37
|
+
* exactly one valid division and matching stays linear.
|
|
38
|
+
*/
|
|
39
|
+
const NUMBER = String.raw`-?(?:\d+(?:\.\d+)?|\.\d+)`;
|
|
40
|
+
|
|
41
|
+
/** `"6px"`, `"1.5px"`, `"0"` — a length, with the unit optional. */
|
|
42
|
+
const DIMENSION_RE = new RegExp(`^(${NUMBER})(?:px)?$`);
|
|
43
|
+
|
|
44
|
+
/** `"50%"`, `"33.5%"`, `"-5%"` — a percentage. */
|
|
45
|
+
const PERCENT_RE = new RegExp(`^(${NUMBER})%$`);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Result of parsing a background token.
|
|
49
|
+
*
|
|
50
|
+
* - `flat` — solid color, apply via `backgroundColor`.
|
|
51
|
+
* - `gradient` — linear gradient, requires a `<LinearGradient>` wrapper.
|
|
52
|
+
* - `null` — `none` / transparent / unparseable; no background.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Parse a CSS dimension string (`"6px"`, `"1.5px"`, `"0"`) into a number.
|
|
57
|
+
* Returns `undefined` for non-numeric input.
|
|
58
|
+
*
|
|
59
|
+
* `parseDimension("6px") → 6`
|
|
60
|
+
* `parseDimension("1.5px") → 1.5`
|
|
61
|
+
* `parseDimension("0") → 0`
|
|
62
|
+
*/
|
|
63
|
+
function parseDimension(value) {
|
|
64
|
+
if (value === undefined || value === null) return undefined;
|
|
65
|
+
if (typeof value === 'number') return Number.isFinite(value) ? value : undefined;
|
|
66
|
+
const match = value.trim().match(DIMENSION_RE);
|
|
67
|
+
if (!match) return undefined;
|
|
68
|
+
const n = parseFloat(match[1]);
|
|
69
|
+
return Number.isNaN(n) ? undefined : n;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* RN's type for anything that accepts a length or a percentage
|
|
74
|
+
* (`width`, `maxHeight`, `flexBasis`, ...).
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Parse a CSS size value — `width`, `height`, `maxHeight`, `minWidth`, ... —
|
|
79
|
+
* into something RN's stylesheet actually understands.
|
|
80
|
+
*
|
|
81
|
+
* This is deliberately strict. `parseFloat` is NOT a safe fallback here: it
|
|
82
|
+
* turns `"100%"` into `100`, which RN renders as **100 pixels** rather than
|
|
83
|
+
* full width, and it silently accepts `"12abc"` (→ `12`) and `"50em"` (→ `50`).
|
|
84
|
+
* Anything not explicitly understood returns `undefined` so the caller skips
|
|
85
|
+
* the prop instead of laying out a wrong value.
|
|
86
|
+
*
|
|
87
|
+
* ```
|
|
88
|
+
* parseSize(24) → 24
|
|
89
|
+
* parseSize('24px') → 24
|
|
90
|
+
* parseSize('50%') → '50%'
|
|
91
|
+
* parseSize('100%') → '100%'
|
|
92
|
+
* parseSize('auto') → 'auto'
|
|
93
|
+
* parseSize('fit-content') → 'auto' // RN's nearest equivalent
|
|
94
|
+
* parseSize('min-content') → undefined
|
|
95
|
+
* parseSize('calc(1+2)') → undefined
|
|
96
|
+
* parseSize('50em') → undefined
|
|
97
|
+
* parseSize('12abc') → undefined
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
function parseSize(value) {
|
|
101
|
+
if (value === undefined || value === null) return undefined;
|
|
102
|
+
if (typeof value === 'number') {
|
|
103
|
+
return Number.isFinite(value) ? value : undefined;
|
|
104
|
+
}
|
|
105
|
+
const trimmed = value.trim();
|
|
106
|
+
if (trimmed === '') return undefined;
|
|
107
|
+
|
|
108
|
+
// `fit-content` has no RN equivalent; `auto` is the closest behaviour
|
|
109
|
+
// (shrink-to-fit within the parent's constraints).
|
|
110
|
+
if (trimmed === 'auto' || trimmed === 'fit-content') return 'auto';
|
|
111
|
+
|
|
112
|
+
// Percentages. See `NUMBER` — linear, so a long adversarial input cannot
|
|
113
|
+
// degrade this.
|
|
114
|
+
const pct = trimmed.match(PERCENT_RE);
|
|
115
|
+
if (pct) {
|
|
116
|
+
const n = parseFloat(pct[1]);
|
|
117
|
+
return Number.isNaN(n) ? undefined : `${n}%`;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Bare numbers and `px` lengths.
|
|
121
|
+
return parseDimension(trimmed);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Parse a CSS time value (`"1.5s"`, `"200ms"`, `1500`) into milliseconds.
|
|
126
|
+
* Returns `undefined` for unparseable input so callers fall back to their
|
|
127
|
+
* own default duration.
|
|
128
|
+
*
|
|
129
|
+
* `parseDuration('1.5s') → 1500`
|
|
130
|
+
* `parseDuration('200ms') → 200`
|
|
131
|
+
*/
|
|
132
|
+
function parseDuration(value) {
|
|
133
|
+
if (value === undefined || value === null) return undefined;
|
|
134
|
+
if (typeof value === 'number') return Number.isFinite(value) ? value : undefined;
|
|
135
|
+
const match = value.trim().match(new RegExp(`^(${NUMBER})(ms|s)$`));
|
|
136
|
+
if (!match) return undefined;
|
|
137
|
+
const n = parseFloat(match[1]);
|
|
138
|
+
if (Number.isNaN(n)) return undefined;
|
|
139
|
+
return match[2] === 's' ? n * 1000 : n;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Parse a CSS `border` shorthand (`"1px solid #E1E4EA"`) into RN border props.
|
|
144
|
+
* Returns `{ borderWidth, borderColor }` — the only two border properties RN
|
|
145
|
+
* supports uniformly across iOS/Android.
|
|
146
|
+
*
|
|
147
|
+
* `parseBorder("1.5px solid #1A56DB") → { borderWidth: 1.5, borderColor: "#1A56DB" }`
|
|
148
|
+
* `parseBorder("none") → {}`
|
|
149
|
+
*/
|
|
150
|
+
function parseBorder(value) {
|
|
151
|
+
if (!value || value === 'none' || value === 'transparent') {
|
|
152
|
+
return {};
|
|
153
|
+
}
|
|
154
|
+
// Match: <width> <style> <color>
|
|
155
|
+
// width: "1px" / "1.5px"
|
|
156
|
+
// style: "solid" / "dashed" / "dotted" (RN only renders solid reliably)
|
|
157
|
+
// color: hex / rgb / rgba / named
|
|
158
|
+
const match = value.trim().match(/^(\d*\.?\d+)px\s+(?:solid|dashed|dotted)\s+(.+)$/);
|
|
159
|
+
if (!match) return {};
|
|
160
|
+
const width = parseFloat(match[1]);
|
|
161
|
+
const color = match[2].trim();
|
|
162
|
+
if (Number.isNaN(width) || !color) return {};
|
|
163
|
+
return {
|
|
164
|
+
borderWidth: width,
|
|
165
|
+
borderColor: color
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Parse a CSS `border-radius` value into a number or corner-tuple for RN.
|
|
171
|
+
*
|
|
172
|
+
* Single value: `"10px" → 10`
|
|
173
|
+
* Four values (per CSS order TL TR BR BL): `"10px 0 0 10px" → { topLeft: 10, topRight: 0, bottomRight: 0, bottomLeft: 10 }`
|
|
174
|
+
*
|
|
175
|
+
* Returns `undefined` for unparseable input so callers can skip the prop.
|
|
176
|
+
*/
|
|
177
|
+
function parseBorderRadius(value) {
|
|
178
|
+
if (value === undefined || value === null) return undefined;
|
|
179
|
+
if (typeof value === 'number') return value;
|
|
180
|
+
const trimmed = value.trim();
|
|
181
|
+
if (trimmed === '' || trimmed === 'none') return undefined;
|
|
182
|
+
const parts = trimmed.split(/\s+/).map(p => parseFloat(p));
|
|
183
|
+
if (parts.some(p => Number.isNaN(p))) return undefined;
|
|
184
|
+
if (parts.length === 1) return parts[0];
|
|
185
|
+
if (parts.length === 4) {
|
|
186
|
+
// CSS order: top-left, top-right, bottom-right, bottom-left
|
|
187
|
+
return {
|
|
188
|
+
borderTopLeftRadius: parts[0],
|
|
189
|
+
borderTopRightRadius: parts[1],
|
|
190
|
+
borderBottomRightRadius: parts[2],
|
|
191
|
+
borderBottomLeftRadius: parts[3]
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// 2 or 3 value shorthands are rare in tokens; fall back to single.
|
|
195
|
+
return parts[0];
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Parse one or more CSS `box-shadow` declarations into RN shadow/elevation props.
|
|
200
|
+
*
|
|
201
|
+
* RN does NOT support `inset` shadows — any `inset` declaration returns `null`
|
|
202
|
+
* (the caller should treat that as "no shadow"). Multiple comma-separated
|
|
203
|
+
* shadows are collapsed into the first non-inset shadow, because RN's shadow
|
|
204
|
+
* API models a single shadow.
|
|
205
|
+
*
|
|
206
|
+
* Focus-ring shadows (`"0 0 0 3px #EFF6FF"`) are parsed normally and become
|
|
207
|
+
* outer shadows — visually acceptable on native.
|
|
208
|
+
*
|
|
209
|
+
* Returns a `ViewStyle` subset: `shadowColor`, `shadowOffset`, `shadowOpacity`,
|
|
210
|
+
* `shadowRadius` (iOS) + `elevation` (Android).
|
|
211
|
+
*/
|
|
212
|
+
function parseBoxShadow(value) {
|
|
213
|
+
if (!value || value === 'none') return null;
|
|
214
|
+
|
|
215
|
+
// Split on commas that separate multiple shadow declarations — but NOT
|
|
216
|
+
// commas inside rgba()/rgb() parens, which are part of a color, not
|
|
217
|
+
// separators. `(?![^(]*\))` = skip commas inside parens.
|
|
218
|
+
const shadows = value.split(/,(?![^(]*\))/).map(s => s.trim()).filter(Boolean);
|
|
219
|
+
|
|
220
|
+
// Find the first non-inset shadow — RN cannot render inset shadows at all.
|
|
221
|
+
const outer = shadows.find(s => !/\binset\b/i.test(s));
|
|
222
|
+
if (!outer) return null;
|
|
223
|
+
|
|
224
|
+
// Extract the color first, then parse numbers from the remainder.
|
|
225
|
+
// This avoids picking up digits from inside rgba(...) as offsets.
|
|
226
|
+
const colorMatch = outer.match(/#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)/i);
|
|
227
|
+
const numericPart = outer.replace(/#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)/gi, ' ').replace(/\binset\b/gi, ' ');
|
|
228
|
+
const nums = numericPart.match(/-?\d*\.?\d+/g)?.map(t => parseFloat(t)) ?? [];
|
|
229
|
+
const [offsetX = 0, offsetY = 0, blur = 0, spread = 0] = nums;
|
|
230
|
+
|
|
231
|
+
// RN's shadowRadius is the blur radius, not the spread.
|
|
232
|
+
// Elevation approximates the combined shadow depth on Android.
|
|
233
|
+
const shadowColor = colorMatch?.[0] ?? '#000000';
|
|
234
|
+
|
|
235
|
+
// If shadowColor is rgba(), extract the rgb for shadowColor and keep the
|
|
236
|
+
// alpha separately for shadowOpacity (iOS multiplies them).
|
|
237
|
+
let resolvedColor = shadowColor;
|
|
238
|
+
let resolvedOpacity = 1;
|
|
239
|
+
const rgbaMatch = shadowColor.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/i);
|
|
240
|
+
if (rgbaMatch) {
|
|
241
|
+
const [, r, g, b, a] = rgbaMatch;
|
|
242
|
+
resolvedColor = `rgb(${r}, ${g}, ${b})`;
|
|
243
|
+
resolvedOpacity = a ? parseFloat(a) : 1;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Elevation: a rough heuristic — use blur + |offsetY| as the depth cue.
|
|
247
|
+
// Spread on focus rings (e.g. `0 0 0 3px`) should still produce visible
|
|
248
|
+
// elevation, so include it.
|
|
249
|
+
const elevation = Math.max(blur, spread, Math.abs(offsetY));
|
|
250
|
+
return {
|
|
251
|
+
shadowColor: resolvedColor,
|
|
252
|
+
shadowOffset: {
|
|
253
|
+
width: offsetX,
|
|
254
|
+
height: offsetY
|
|
255
|
+
},
|
|
256
|
+
shadowOpacity: resolvedOpacity,
|
|
257
|
+
shadowRadius: blur + spread,
|
|
258
|
+
elevation
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Parse a CSS `background` value into a `ParsedBackground`.
|
|
264
|
+
*
|
|
265
|
+
* - `"linear-gradient(180deg, #1A56DB -5%, #2563EB 107.5%)"` → gradient descriptor
|
|
266
|
+
* (percentage midpoints outside [0,1] are clamped — known limitation)
|
|
267
|
+
* - `"#FFFFFF"` / `"rgb(255,255,255)"` → flat color
|
|
268
|
+
* - `"none"` / `"transparent"` → null
|
|
269
|
+
*/
|
|
270
|
+
function parseBackground(value) {
|
|
271
|
+
if (!value || value === 'none' || value === 'transparent') return null;
|
|
272
|
+
|
|
273
|
+
// Gradient?
|
|
274
|
+
const gradientMatch = value.match(/linear-gradient\(\s*(\d+)deg\s*,\s*(.+)\s*\)/i);
|
|
275
|
+
if (gradientMatch) {
|
|
276
|
+
const angle = parseFloat(gradientMatch[1]);
|
|
277
|
+
const stopsStr = gradientMatch[2];
|
|
278
|
+
|
|
279
|
+
// Parse color stops: "<color> <position>?" separated by commas.
|
|
280
|
+
// Blend gradient tokens use hex colors (no embedded commas), so a
|
|
281
|
+
// simple split on "," is safe. Each stop is trimmed, then split on
|
|
282
|
+
// whitespace to separate color from its optional percentage position.
|
|
283
|
+
// Positions may be outside [0,1] (e.g. "-5%", "107.5%") — clamped.
|
|
284
|
+
const stopStrs = stopsStr.split(',').map(s => s.trim()).filter(Boolean);
|
|
285
|
+
const colors = [];
|
|
286
|
+
const locations = [];
|
|
287
|
+
for (const stop of stopStrs) {
|
|
288
|
+
// "color" or "color position%"
|
|
289
|
+
const parts = stop.split(/\s+/);
|
|
290
|
+
colors.push(parts[0]);
|
|
291
|
+
if (parts[1]) {
|
|
292
|
+
const pct = parseFloat(parts[1]) / 100;
|
|
293
|
+
locations.push(Math.min(1, Math.max(0, pct)));
|
|
294
|
+
} else {
|
|
295
|
+
locations.push(0);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (colors.length < 2) {
|
|
299
|
+
// Degenerate gradient — treat as flat color.
|
|
300
|
+
return colors[0] ? {
|
|
301
|
+
type: 'flat',
|
|
302
|
+
color: colors[0]
|
|
303
|
+
} : null;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// If locations weren't specified, distribute evenly.
|
|
307
|
+
const allZero = locations.every(l => l === 0);
|
|
308
|
+
let resolvedLocations = locations;
|
|
309
|
+
if (allZero) {
|
|
310
|
+
resolvedLocations = colors.map((_, i) => i / (colors.length - 1));
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Convert CSS angle (0deg = bottom→top) to RN {start, end} coords.
|
|
314
|
+
// RN's LinearGradient uses normalized [0,1] coordinates on the bounding box.
|
|
315
|
+
// 0deg → start={x:0.5,y:1} end={x:0.5,y:0}
|
|
316
|
+
// 90deg → start={x:0,y:0.5} end={x:1,y:0.5}
|
|
317
|
+
// 180deg → start={x:0.5,y:0} end={x:0.5,y:1}
|
|
318
|
+
const rad = angle * Math.PI / 180;
|
|
319
|
+
const start = {
|
|
320
|
+
x: 0.5 - Math.sin(rad) * 0.5,
|
|
321
|
+
y: 0.5 + Math.cos(rad) * 0.5
|
|
322
|
+
};
|
|
323
|
+
const end = {
|
|
324
|
+
x: 0.5 + Math.sin(rad) * 0.5,
|
|
325
|
+
y: 0.5 - Math.cos(rad) * 0.5
|
|
326
|
+
};
|
|
327
|
+
return {
|
|
328
|
+
type: 'gradient',
|
|
329
|
+
colors,
|
|
330
|
+
locations: resolvedLocations,
|
|
331
|
+
start,
|
|
332
|
+
end
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Solid color (hex / rgb / rgba / named)
|
|
337
|
+
if (/^(#[0-9a-fA-F]{3,8}|rgba?\(|[a-z]+)/i.test(value)) {
|
|
338
|
+
return {
|
|
339
|
+
type: 'flat',
|
|
340
|
+
color: value
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
return null;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Merge multiple style objects into one, skipping `undefined` values.
|
|
348
|
+
* Helper for composing adapter output with caller-provided overrides.
|
|
349
|
+
*/
|
|
350
|
+
function mergeStyles(...styles) {
|
|
351
|
+
const result = {};
|
|
352
|
+
for (const s of styles) {
|
|
353
|
+
if (!s) continue;
|
|
354
|
+
for (const key of Object.keys(s)) {
|
|
355
|
+
const val = s[key];
|
|
356
|
+
if (val !== undefined && val !== null) {
|
|
357
|
+
result[key] = val;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=cssStringAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NUMBER","String","raw","DIMENSION_RE","RegExp","PERCENT_RE","parseDimension","value","undefined","Number","isFinite","match","trim","n","parseFloat","isNaN","parseSize","trimmed","pct","parseDuration","parseBorder","width","color","borderWidth","borderColor","parseBorderRadius","parts","split","map","p","some","length","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","parseBoxShadow","shadows","s","filter","Boolean","outer","find","test","colorMatch","numericPart","replace","nums","t","offsetX","offsetY","blur","spread","shadowColor","resolvedColor","resolvedOpacity","rgbaMatch","r","g","b","a","elevation","Math","max","abs","shadowOffset","height","shadowOpacity","shadowRadius","parseBackground","gradientMatch","angle","stopsStr","stopStrs","colors","locations","stop","push","min","type","allZero","every","l","resolvedLocations","_","i","rad","PI","start","x","sin","y","cos","end","mergeStyles","styles","result","key","Object","keys","val"],"sourceRoot":"../../../src","sources":["adapters/cssStringAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LinearGradient = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Optional `expo-linear-gradient` probe, shared by every surface that can
|
|
9
|
+
* render a gradient (Pressable's gradient buttons, Skeleton's wave sweep).
|
|
10
|
+
*
|
|
11
|
+
* The probe must survive every build target this package ships:
|
|
12
|
+
*
|
|
13
|
+
* - **Metro (`react-native` condition, raw `src/`)** and the **CJS build**
|
|
14
|
+
* (`require`/`default` conditions): `require` exists, the module loads
|
|
15
|
+
* when installed, and the `catch` absorbs its absence.
|
|
16
|
+
* - **The ESM build** (`import` condition): there is no `require` in module
|
|
17
|
+
* scope. The `typeof` guard makes the degradation explicit — gradient
|
|
18
|
+
* surfaces fall back to a flat fill — instead of relying on a caught
|
|
19
|
+
* `ReferenceError`. Bundlers that polyfill `require` in ESM (webpack)
|
|
20
|
+
* still resolve the real module.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
let LinearGradient = exports.LinearGradient = null;
|
|
24
|
+
try {
|
|
25
|
+
if (typeof require === 'function') {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
27
|
+
const mod = require('expo-linear-gradient');
|
|
28
|
+
exports.LinearGradient = LinearGradient = mod.LinearGradient;
|
|
29
|
+
}
|
|
30
|
+
} catch {
|
|
31
|
+
exports.LinearGradient = LinearGradient = null;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=optionalGradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LinearGradient","exports","require","mod"],"sourceRoot":"../../../src","sources":["adapters/optionalGradient.ts"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYO,IAAIA,cAAwC,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAI;AAC1D,IAAI;EACA,IAAI,OAAOE,OAAO,KAAK,UAAU,EAAE;IAC/B;IACA,MAAMC,GAAmB,GAAGD,OAAO,CAAC,sBAAsB,CAAC;IAC3DD,OAAA,CAAAD,cAAA,GAAAA,cAAc,GAAGG,GAAG,CAACH,cAAc;EACvC;AACJ,CAAC,CAAC,MAAM;EACJC,OAAA,CAAAD,cAAA,GAAAA,cAAc,GAAG,IAAI;AACzB","ignoreList":[]}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveBackground = resolveBackground;
|
|
7
|
+
exports.resolveSurfaceStyle = resolveSurfaceStyle;
|
|
8
|
+
var _cssStringAdapter = require("./cssStringAdapter.js");
|
|
9
|
+
/**
|
|
10
|
+
* Shared CSS-string → `ViewStyle` resolution for every native surface.
|
|
11
|
+
*
|
|
12
|
+
* Both `Block` (a plain `View`) and `Pressable` (an interactive surface) need
|
|
13
|
+
* to turn the same token-shaped CSS strings into RN styles. Before this
|
|
14
|
+
* existed, `Pressable` inlined the whole translation and `Block` had none at
|
|
15
|
+
* all — which meant a non-interactive container could not render a border,
|
|
16
|
+
* a radius, or a height. Components that switch between the two depending on
|
|
17
|
+
* whether they are interactive (web's `TagElement = onClick ? PrimitiveButton
|
|
18
|
+
* : Block` pattern) would have rendered differently in each branch.
|
|
19
|
+
*
|
|
20
|
+
* Pure and total: unparseable input is dropped rather than thrown, and no key
|
|
21
|
+
* is emitted for a value that could not be resolved, so `undefined`/`NaN`
|
|
22
|
+
* never reaches RN's stylesheet.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Which platform's shadow model to emit.
|
|
27
|
+
*
|
|
28
|
+
* Passed in rather than read from `Platform.OS` so this module stays free of
|
|
29
|
+
* any `react-native` value import and remains unit-testable outside a
|
|
30
|
+
* renderer — the same constraint that shapes `theme/breakpoint.ts` and
|
|
31
|
+
* `primitives/touchTarget.ts`.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Assign `value` to `target[key]` only when it is a usable style value.
|
|
36
|
+
* Keeps `undefined` and `NaN` out of the emitted `ViewStyle`.
|
|
37
|
+
*/
|
|
38
|
+
function put(target, key, value) {
|
|
39
|
+
if (value === undefined || value === null) return;
|
|
40
|
+
if (typeof value === 'number' && Number.isNaN(value)) return;
|
|
41
|
+
target[key] = value;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Resolve the parsed background into `backgroundColor`, and report whether a
|
|
46
|
+
* gradient was requested. Gradients cannot be expressed as a `ViewStyle`, so
|
|
47
|
+
* callers that support them (`Pressable`) render a `<LinearGradient>` layer
|
|
48
|
+
* and callers that do not fall back to the gradient's first colour.
|
|
49
|
+
*/
|
|
50
|
+
function resolveBackground(background, explicitBackgroundColor) {
|
|
51
|
+
if (explicitBackgroundColor) {
|
|
52
|
+
return {
|
|
53
|
+
backgroundColor: explicitBackgroundColor
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const parsed = (0, _cssStringAdapter.parseBackground)(background);
|
|
57
|
+
if (!parsed) return {};
|
|
58
|
+
if (parsed.type === 'flat') return {
|
|
59
|
+
backgroundColor: parsed.color
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// Gradient — hand it back for the caller to render, and supply the first
|
|
63
|
+
// stop as a static fallback so a non-gradient-capable surface still shows
|
|
64
|
+
// something in the right colour family rather than transparent.
|
|
65
|
+
return {
|
|
66
|
+
backgroundColor: parsed.colors[0],
|
|
67
|
+
gradient: parsed
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Apply the shadow model the platform actually understands.
|
|
73
|
+
*
|
|
74
|
+
* The two are mutually exclusive in practice:
|
|
75
|
+
*
|
|
76
|
+
* - **iOS** renders `shadowColor` / `shadowOffset` / `shadowOpacity` /
|
|
77
|
+
* `shadowRadius` and ignores `elevation` entirely.
|
|
78
|
+
* - **Android** renders only `elevation`, and before API 28 it ignores
|
|
79
|
+
* `shadowColor` — so emitting the iOS keys alongside it is at best dead
|
|
80
|
+
* weight and at worst misleading to anyone reading the resolved style.
|
|
81
|
+
* - **Web** (react-native-web) maps the iOS keys onto `box-shadow`, as do
|
|
82
|
+
* RN-Windows and RN-macOS — so Android is the only platform that diverges.
|
|
83
|
+
*
|
|
84
|
+
* Emitting both unconditionally, as this used to, meant every surface carried
|
|
85
|
+
* four properties the running platform would never read.
|
|
86
|
+
*/
|
|
87
|
+
function applyShadow(style, shadow, platform) {
|
|
88
|
+
if (!shadow) return;
|
|
89
|
+
if (platform === 'android') {
|
|
90
|
+
put(style, 'elevation', shadow.elevation);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
put(style, 'shadowColor', shadow.shadowColor);
|
|
94
|
+
put(style, 'shadowOffset', shadow.shadowOffset);
|
|
95
|
+
put(style, 'shadowOpacity', shadow.shadowOpacity);
|
|
96
|
+
put(style, 'shadowRadius', shadow.shadowRadius);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Translate token-shaped surface props into a `ViewStyle`.
|
|
101
|
+
*
|
|
102
|
+
* Gradients are reported separately via `resolveBackground` — this function
|
|
103
|
+
* emits only the flat-colour fallback, so it is safe for any `View`.
|
|
104
|
+
*/
|
|
105
|
+
function resolveSurfaceStyle(props, platform = 'ios') {
|
|
106
|
+
const style = {};
|
|
107
|
+
|
|
108
|
+
// ---- Background -----------------------------------------------------
|
|
109
|
+
const {
|
|
110
|
+
backgroundColor
|
|
111
|
+
} = resolveBackground(props.background, props.backgroundColor);
|
|
112
|
+
put(style, 'backgroundColor', backgroundColor);
|
|
113
|
+
|
|
114
|
+
// ---- Border ---------------------------------------------------------
|
|
115
|
+
const borderStyle = (0, _cssStringAdapter.parseBorder)(props.border);
|
|
116
|
+
put(style, 'borderWidth', borderStyle.borderWidth);
|
|
117
|
+
put(style, 'borderColor', borderStyle.borderColor);
|
|
118
|
+
|
|
119
|
+
// ---- Radius ---------------------------------------------------------
|
|
120
|
+
const radius = (0, _cssStringAdapter.parseBorderRadius)(props.borderRadius);
|
|
121
|
+
if (typeof radius === 'number') {
|
|
122
|
+
put(style, 'borderRadius', radius);
|
|
123
|
+
} else if (radius && typeof radius === 'object') {
|
|
124
|
+
put(style, 'borderTopLeftRadius', radius.borderTopLeftRadius);
|
|
125
|
+
put(style, 'borderTopRightRadius', radius.borderTopRightRadius);
|
|
126
|
+
put(style, 'borderBottomRightRadius', radius.borderBottomRightRadius);
|
|
127
|
+
put(style, 'borderBottomLeftRadius', radius.borderBottomLeftRadius);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// ---- Shadow ---------------------------------------------------------
|
|
131
|
+
applyShadow(style, (0, _cssStringAdapter.parseBoxShadow)(props.boxShadow), platform);
|
|
132
|
+
|
|
133
|
+
// ---- Spacing --------------------------------------------------------
|
|
134
|
+
put(style, 'paddingTop', (0, _cssStringAdapter.parseDimension)(props.paddingTop));
|
|
135
|
+
put(style, 'paddingRight', (0, _cssStringAdapter.parseDimension)(props.paddingRight));
|
|
136
|
+
put(style, 'paddingBottom', (0, _cssStringAdapter.parseDimension)(props.paddingBottom));
|
|
137
|
+
put(style, 'paddingLeft', (0, _cssStringAdapter.parseDimension)(props.paddingLeft));
|
|
138
|
+
put(style, 'gap', (0, _cssStringAdapter.parseDimension)(props.gap));
|
|
139
|
+
|
|
140
|
+
// ---- Sizing ---------------------------------------------------------
|
|
141
|
+
put(style, 'width', (0, _cssStringAdapter.parseSize)(props.width));
|
|
142
|
+
put(style, 'minWidth', (0, _cssStringAdapter.parseSize)(props.minWidth));
|
|
143
|
+
put(style, 'maxWidth', (0, _cssStringAdapter.parseSize)(props.maxWidth));
|
|
144
|
+
put(style, 'height', (0, _cssStringAdapter.parseSize)(props.height));
|
|
145
|
+
put(style, 'minHeight', (0, _cssStringAdapter.parseSize)(props.minHeight));
|
|
146
|
+
put(style, 'maxHeight', (0, _cssStringAdapter.parseSize)(props.maxHeight));
|
|
147
|
+
|
|
148
|
+
// ---- Layout (already RN-shaped) -------------------------------------
|
|
149
|
+
put(style, 'flexDirection', props.flexDirection);
|
|
150
|
+
put(style, 'alignItems', props.alignItems);
|
|
151
|
+
put(style, 'justifyContent', props.justifyContent);
|
|
152
|
+
put(style, 'alignSelf', props.alignSelf);
|
|
153
|
+
put(style, 'flexShrink', props.flexShrink);
|
|
154
|
+
put(style, 'flexGrow', props.flexGrow);
|
|
155
|
+
put(style, 'opacity', props.opacity);
|
|
156
|
+
put(style, 'overflow', props.overflow);
|
|
157
|
+
return style;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=surfaceStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_cssStringAdapter","require","put","target","key","value","undefined","Number","isNaN","resolveBackground","background","explicitBackgroundColor","backgroundColor","parsed","parseBackground","type","color","colors","gradient","applyShadow","style","shadow","platform","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","resolveSurfaceStyle","props","borderStyle","parseBorder","border","borderWidth","borderColor","radius","parseBorderRadius","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","parseBoxShadow","boxShadow","parseDimension","paddingTop","paddingRight","paddingBottom","paddingLeft","gap","parseSize","width","minWidth","maxWidth","height","minHeight","maxHeight","flexDirection","alignItems","justifyContent","alignSelf","flexShrink","flexGrow","opacity","overflow"],"sourceRoot":"../../../src","sources":["adapters/surfaceStyle.ts"],"mappings":"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","ignoreList":[]}
|