@tamagui/web 2.0.0-rc.3 → 2.0.0-rc.30
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/.turbo/turbo-build.log +2 -0
- package/.turbo/turbo-test$colon$web.log +15 -0
- package/dist/cjs/Tamagui.cjs +2 -2
- package/dist/cjs/Tamagui.native.js +2 -2
- package/dist/cjs/Tamagui.native.js.map +1 -1
- package/dist/cjs/_withStableStyle.cjs +17 -6
- package/dist/cjs/_withStableStyle.native.js +18 -5
- package/dist/cjs/_withStableStyle.native.js.map +1 -1
- package/dist/cjs/animationDriverTypes.test-d.cjs +11 -0
- package/dist/cjs/animationDriverTypes.test-d.native.js +11 -0
- package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -1
- package/dist/cjs/config.cjs +5 -1
- package/dist/cjs/config.native.js +5 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants/constants.cjs +2 -16
- package/dist/cjs/constants/constants.native.js +1 -14
- package/dist/cjs/constants/constants.native.js.map +1 -1
- package/dist/cjs/createComponent.cjs +92 -79
- package/dist/cjs/createComponent.native.js +112 -88
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createTamagui.cjs +38 -37
- package/dist/cjs/createTamagui.native.js +41 -37
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/createVariable.native.js.map +1 -1
- package/dist/cjs/eventHandling.cjs +1 -1
- package/dist/cjs/eventHandling.native.js +84 -57
- package/dist/cjs/eventHandling.native.js.map +1 -1
- package/dist/cjs/helpers/createDesignSystem.cjs +44 -7
- package/dist/cjs/helpers/createDesignSystem.native.js +36 -6
- package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/cjs/helpers/createMediaStyle.cjs +8 -5
- package/dist/cjs/helpers/createMediaStyle.native.js +10 -7
- package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -1
- package/dist/cjs/helpers/createStyledContext.cjs +11 -7
- package/dist/cjs/helpers/createStyledContext.native.js +50 -46
- package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
- package/dist/cjs/helpers/defaultAnimationDriver.cjs +0 -2
- package/dist/cjs/helpers/defaultAnimationDriver.native.js +0 -2
- package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyle.cjs +2 -1
- package/dist/cjs/helpers/expandStyle.native.js +9 -0
- package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomic.cjs +8 -8
- package/dist/cjs/helpers/getDefaultProps.cjs +3 -9
- package/dist/cjs/helpers/getDefaultProps.native.js +3 -4
- package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
- package/dist/cjs/helpers/getGroupPropParts.cjs +2 -2
- package/dist/cjs/helpers/getGroupPropParts.native.js +2 -2
- package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +59 -28
- package/dist/cjs/helpers/getSplitStyles.native.js +114 -77
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.cjs +17 -9
- package/dist/cjs/helpers/getTokenForKey.cjs +127 -0
- package/dist/cjs/helpers/getTokenForKey.native.js +145 -0
- package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -0
- package/dist/cjs/helpers/insertStyleRule.cjs +1 -1
- package/dist/cjs/helpers/insertStyleRule.native.js +1 -1
- package/dist/cjs/helpers/mainThreadPressEvents.native.js +1 -1
- package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/cjs/helpers/mediaObjectToString.cjs +35 -0
- package/dist/cjs/helpers/mediaObjectToString.native.js +43 -0
- package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -0
- package/dist/cjs/helpers/mediaState.cjs +45 -0
- package/dist/cjs/helpers/mediaState.native.js +50 -0
- package/dist/cjs/helpers/mediaState.native.js.map +1 -0
- package/dist/cjs/helpers/normalizeColor.cjs +6 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.cjs +2 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js +2 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/cjs/helpers/parseNativeStyle.cjs +133 -0
- package/dist/cjs/helpers/parseNativeStyle.native.js +151 -0
- package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -0
- package/dist/cjs/{createTheme.cjs → helpers/parseOutlineShorthand.cjs} +5 -5
- package/dist/cjs/helpers/parseOutlineShorthand.native.js +58 -0
- package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -0
- package/dist/cjs/helpers/platformResolveValue.cjs +33 -0
- package/dist/cjs/helpers/platformResolveValue.native.js +62 -0
- package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -0
- package/dist/cjs/helpers/propMapper.cjs +26 -96
- package/dist/cjs/helpers/propMapper.native.js +61 -108
- package/dist/cjs/helpers/propMapper.native.js.map +1 -1
- package/dist/cjs/helpers/pseudoTransitions.cjs +65 -0
- package/dist/cjs/helpers/pseudoTransitions.native.js +72 -0
- package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -0
- package/dist/cjs/{constants/webToNativeProps.cjs → helpers/resolveAnimationDriver.cjs} +7 -7
- package/dist/cjs/{views/Stack.native.js → helpers/resolveAnimationDriver.native.js} +9 -14
- package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -0
- package/dist/cjs/{views/Stack.cjs → helpers/resolveCompoundTokens.cjs} +16 -13
- package/dist/cjs/helpers/resolveCompoundTokens.native.js +40 -0
- package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -0
- package/dist/cjs/helpers/skipProps.cjs +1 -0
- package/dist/cjs/helpers/skipProps.native.js +1 -0
- package/dist/cjs/helpers/skipProps.native.js.map +1 -1
- package/dist/cjs/helpers/themeable.cjs +4 -2
- package/dist/cjs/helpers/themeable.native.js +4 -2
- package/dist/cjs/helpers/themeable.native.js.map +1 -1
- package/dist/cjs/helpers/useRenderElement.native.js +1 -1
- package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.cjs +9 -5
- package/dist/cjs/hooks/useComponentState.native.js +10 -6
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +25 -48
- package/dist/cjs/hooks/useMedia.native.js +25 -55
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/hooks/useProps.cjs +3 -2
- package/dist/cjs/hooks/useProps.native.js +3 -2
- package/dist/cjs/hooks/useProps.native.js.map +1 -1
- package/dist/cjs/hooks/useTheme.cjs +4 -0
- package/dist/cjs/hooks/useTheme.native.js +4 -0
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/hooks/useThemeState.cjs +30 -12
- package/dist/cjs/hooks/useThemeState.native.js +28 -12
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -5
- package/dist/cjs/index.js +86 -74
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +9 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/styled.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.cjs +20 -33
- package/dist/cjs/views/TamaguiProvider.native.js +28 -39
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/TamaguiRoot.cjs +68 -0
- package/dist/cjs/{createTheme.native.js → views/TamaguiRoot.native.js} +8 -8
- package/dist/cjs/views/TamaguiRoot.native.js.map +1 -0
- package/dist/cjs/views/Text.cjs +2 -10
- package/dist/cjs/views/Text.native.js +0 -1
- package/dist/cjs/views/Text.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +2 -0
- package/dist/cjs/views/Theme.native.js +2 -0
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeProvider.cjs +3 -1
- package/dist/cjs/views/ThemeProvider.native.js +2 -0
- package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
- package/dist/cjs/views/View.cjs +0 -2
- package/dist/cjs/views/View.native.js +0 -2
- package/dist/cjs/views/View.native.js.map +1 -1
- package/dist/esm/Tamagui.mjs +1 -1
- package/dist/esm/Tamagui.native.js +1 -1
- package/dist/esm/_withStableStyle.mjs +18 -7
- package/dist/esm/_withStableStyle.mjs.map +1 -1
- package/dist/esm/_withStableStyle.native.js +19 -6
- package/dist/esm/_withStableStyle.native.js.map +1 -1
- package/dist/esm/animationDriverTypes.test-d.mjs +11 -0
- package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
- package/dist/esm/animationDriverTypes.test-d.native.js +11 -0
- package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
- package/dist/esm/config.mjs +5 -1
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +5 -1
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/constants/constants.mjs +2 -14
- package/dist/esm/constants/constants.mjs.map +1 -1
- package/dist/esm/constants/constants.native.js +1 -12
- package/dist/esm/constants/constants.native.js.map +1 -1
- package/dist/esm/createComponent.mjs +91 -79
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +112 -89
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createTamagui.mjs +38 -37
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +41 -37
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/createVariable.mjs.map +1 -1
- package/dist/esm/eventHandling.mjs +1 -1
- package/dist/esm/eventHandling.mjs.map +1 -1
- package/dist/esm/eventHandling.native.js +84 -57
- package/dist/esm/eventHandling.native.js.map +1 -1
- package/dist/esm/helpers/createDesignSystem.mjs +43 -7
- package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
- package/dist/esm/helpers/createDesignSystem.native.js +35 -7
- package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/esm/helpers/createMediaStyle.mjs +7 -4
- package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
- package/dist/esm/helpers/createMediaStyle.native.js +9 -6
- package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
- package/dist/esm/helpers/createStyledContext.mjs +12 -8
- package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.native.js +11 -7
- package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
- package/dist/esm/helpers/defaultAnimationDriver.mjs +0 -2
- package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
- package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -2
- package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
- package/dist/esm/helpers/expandStyle.mjs +0 -1
- package/dist/esm/helpers/expandStyle.mjs.map +1 -1
- package/dist/esm/helpers/expandStyle.native.js +9 -1
- package/dist/esm/helpers/expandStyle.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.mjs +8 -8
- package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
- package/dist/esm/helpers/getDefaultProps.mjs +3 -9
- package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
- package/dist/esm/helpers/getDefaultProps.native.js +3 -4
- package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
- package/dist/esm/helpers/getGroupPropParts.mjs +1 -1
- package/dist/esm/helpers/getGroupPropParts.native.js +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +59 -29
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +113 -77
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.mjs +17 -9
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
- package/dist/esm/helpers/getTokenForKey.mjs +101 -0
- package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
- package/dist/esm/helpers/getTokenForKey.native.js +116 -0
- package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
- package/dist/esm/helpers/insertStyleRule.mjs +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.native.js +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/esm/helpers/mediaObjectToString.mjs +12 -0
- package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -0
- package/dist/esm/helpers/mediaObjectToString.native.js +17 -0
- package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -0
- package/dist/esm/helpers/mediaState.mjs +18 -0
- package/dist/esm/helpers/mediaState.mjs.map +1 -0
- package/dist/esm/helpers/mediaState.native.js +20 -0
- package/dist/esm/helpers/mediaState.native.js.map +1 -0
- package/dist/esm/helpers/normalizeColor.mjs +6 -1
- package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +2 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +2 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/esm/helpers/parseNativeStyle.mjs +110 -0
- package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
- package/dist/esm/helpers/parseNativeStyle.native.js +125 -0
- package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -0
- package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -0
- package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -0
- package/dist/esm/helpers/parseOutlineShorthand.native.js +32 -0
- package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -0
- package/dist/esm/helpers/platformResolveValue.mjs +10 -0
- package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
- package/dist/esm/helpers/platformResolveValue.native.js +36 -0
- package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
- package/dist/esm/helpers/propMapper.mjs +24 -96
- package/dist/esm/helpers/propMapper.mjs.map +1 -1
- package/dist/esm/helpers/propMapper.native.js +60 -107
- package/dist/esm/helpers/propMapper.native.js.map +1 -1
- package/dist/esm/helpers/pseudoTransitions.mjs +41 -0
- package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
- package/dist/esm/helpers/pseudoTransitions.native.js +45 -0
- package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
- package/dist/esm/helpers/resolveAnimationDriver.mjs +5 -0
- package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
- package/dist/esm/helpers/resolveAnimationDriver.native.js +6 -0
- package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
- package/dist/esm/helpers/resolveCompoundTokens.mjs +14 -0
- package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
- package/dist/esm/helpers/resolveCompoundTokens.native.js +14 -0
- package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
- package/dist/esm/helpers/skipProps.mjs +1 -1
- package/dist/esm/helpers/skipProps.mjs.map +1 -1
- package/dist/esm/helpers/skipProps.native.js +1 -1
- package/dist/esm/helpers/skipProps.native.js.map +1 -1
- package/dist/esm/helpers/themeable.mjs +4 -2
- package/dist/esm/helpers/themeable.mjs.map +1 -1
- package/dist/esm/helpers/themeable.native.js +4 -2
- package/dist/esm/helpers/themeable.native.js.map +1 -1
- package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
- package/dist/esm/helpers/useRenderElement.native.js +1 -1
- package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.native.js +0 -2
- package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/esm/hooks/getThemeProxied.mjs +0 -3
- package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +9 -5
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +10 -6
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +21 -39
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +22 -47
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useProps.mjs +2 -1
- package/dist/esm/hooks/useProps.mjs.map +1 -1
- package/dist/esm/hooks/useProps.native.js +2 -1
- package/dist/esm/hooks/useProps.native.js.map +1 -1
- package/dist/esm/hooks/useTheme.mjs +4 -0
- package/dist/esm/hooks/useTheme.mjs.map +1 -1
- package/dist/esm/hooks/useTheme.native.js +4 -0
- package/dist/esm/hooks/useTheme.native.js.map +1 -1
- package/dist/esm/hooks/useThemeState.mjs +30 -13
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +28 -12
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +67 -107
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +5 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/insertFont.native.js +0 -1
- package/dist/esm/insertFont.native.js.map +1 -1
- package/dist/esm/styled.mjs.map +1 -1
- package/dist/esm/styled.native.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +21 -34
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js +28 -40
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/TamaguiRoot.mjs +34 -0
- package/dist/esm/views/TamaguiRoot.mjs.map +1 -0
- package/dist/esm/views/TamaguiRoot.native.js +5 -0
- package/dist/esm/views/TamaguiRoot.native.js.map +1 -0
- package/dist/esm/views/Text.mjs +1 -9
- package/dist/esm/views/Text.mjs.map +1 -1
- package/dist/esm/views/Text.native.js +0 -1
- package/dist/esm/views/Text.native.js.map +1 -1
- package/dist/esm/views/Theme.mjs +2 -0
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +2 -0
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeProvider.mjs +3 -1
- package/dist/esm/views/ThemeProvider.mjs.map +1 -1
- package/dist/esm/views/ThemeProvider.native.js +2 -2
- package/dist/esm/views/ThemeProvider.native.js.map +1 -1
- package/dist/esm/views/View.mjs +0 -2
- package/dist/esm/views/View.mjs.map +1 -1
- package/dist/esm/views/View.native.js +0 -2
- package/dist/esm/views/View.native.js.map +1 -1
- package/inject-styles/index.cjs +2 -0
- package/inject-styles/index.js +2 -0
- package/inject-styles.cjs +1 -0
- package/package.json +21 -27
- package/src/Tamagui.ts +1 -1
- package/src/_withStableStyle.tsx +44 -16
- package/src/animationDriverTypes.test-d.ts +76 -0
- package/src/config.ts +5 -1
- package/src/constants/constants.ts +0 -17
- package/src/createComponent.tsx +224 -93
- package/src/createTamagui.ts +20 -11
- package/src/createVariable.ts +1 -1
- package/src/eventHandling.native.ts +78 -50
- package/src/eventHandling.ts +2 -1
- package/src/helpers/createDesignSystem.ts +77 -6
- package/src/helpers/createMediaStyle.ts +12 -4
- package/src/helpers/createStyledContext.tsx +27 -18
- package/src/helpers/defaultAnimationDriver.tsx +0 -2
- package/src/helpers/expandStyle.ts +11 -0
- package/src/helpers/getCSSStylesAtomic.ts +13 -14
- package/src/helpers/getDefaultProps.ts +4 -15
- package/src/helpers/getGroupPropParts.ts +1 -1
- package/src/helpers/getSplitStyles.tsx +174 -40
- package/src/helpers/getThemeCSSRules.ts +16 -14
- package/src/helpers/getTokenForKey.ts +223 -0
- package/src/helpers/insertStyleRule.tsx +1 -1
- package/src/helpers/mainThreadPressEvents.native.ts +2 -1
- package/src/helpers/mediaObjectToString.ts +30 -0
- package/src/helpers/mediaState.ts +32 -0
- package/src/helpers/normalizeColor.ts +12 -8
- package/src/helpers/normalizeValueWithProperty.ts +8 -1
- package/src/helpers/parseNativeStyle.ts +193 -0
- package/src/helpers/parseOutlineShorthand.native.ts +62 -0
- package/src/helpers/parseOutlineShorthand.ts +6 -0
- package/src/helpers/platformResolveValue.native.ts +72 -0
- package/src/helpers/platformResolveValue.ts +22 -0
- package/src/helpers/propMapper.ts +65 -221
- package/src/helpers/pseudoTransitions.ts +97 -0
- package/src/helpers/resolveAnimationDriver.ts +23 -0
- package/src/helpers/resolveCompoundTokens.ts +28 -0
- package/src/helpers/skipProps.ts +1 -0
- package/src/helpers/themeable.tsx +7 -5
- package/src/helpers/useRenderElement.tsx +7 -0
- package/src/hooks/useComponentState.ts +11 -8
- package/src/hooks/useMedia.tsx +28 -75
- package/src/hooks/useProps.tsx +2 -1
- package/src/hooks/useTheme.tsx +4 -0
- package/src/hooks/useThemeState.ts +57 -14
- package/src/index.ts +4 -4
- package/src/styled.tsx +2 -2
- package/src/types.tsx +205 -57
- package/src/views/TamaguiProvider.tsx +35 -54
- package/src/views/TamaguiRoot.native.tsx +9 -0
- package/src/views/TamaguiRoot.tsx +64 -0
- package/src/views/Text.tsx +1 -9
- package/src/views/Theme.tsx +2 -0
- package/src/views/ThemeProvider.tsx +3 -1
- package/src/views/View.tsx +0 -2
- package/tsconfig.json +44 -0
- package/tsconfig.test.json +9 -0
- package/types/_withStableStyle.d.ts +1 -1
- package/types/_withStableStyle.d.ts.map +1 -1
- package/types/config.d.ts.map +1 -1
- package/types/constants/constants.d.ts +0 -3
- package/types/constants/constants.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createVariable.d.ts +1 -1
- package/types/createVariable.d.ts.map +1 -1
- package/types/eventHandling.d.ts +1 -1
- package/types/eventHandling.d.ts.map +1 -1
- package/types/eventHandling.native.d.ts +1 -1
- package/types/eventHandling.native.d.ts.map +1 -1
- package/types/helpers/createDesignSystem.d.ts +5 -2
- package/types/helpers/createDesignSystem.d.ts.map +1 -1
- package/types/helpers/createMediaStyle.d.ts.map +1 -1
- package/types/helpers/createStyledContext.d.ts +1 -1
- package/types/helpers/createStyledContext.d.ts.map +1 -1
- package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
- package/types/helpers/expandStyle.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getDefaultProps.d.ts +1 -1
- package/types/helpers/getDefaultProps.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +2 -2
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
- package/types/helpers/getTokenForKey.d.ts +6 -0
- package/types/helpers/getTokenForKey.d.ts.map +1 -0
- package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
- package/types/helpers/mediaObjectToString.d.ts +3 -0
- package/types/helpers/mediaObjectToString.d.ts.map +1 -0
- package/types/helpers/mediaState.d.ts +7 -0
- package/types/helpers/mediaState.d.ts.map +1 -0
- package/types/helpers/normalizeColor.d.ts +1 -1
- package/types/helpers/normalizeColor.d.ts.map +1 -1
- package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
- package/types/helpers/parseNativeStyle.d.ts +14 -0
- package/types/helpers/parseNativeStyle.d.ts.map +1 -0
- package/types/helpers/parseOutlineShorthand.d.ts +3 -0
- package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
- package/types/helpers/parseOutlineShorthand.native.d.ts +3 -0
- package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
- package/types/helpers/platformResolveValue.d.ts +6 -0
- package/types/helpers/platformResolveValue.d.ts.map +1 -0
- package/types/helpers/platformResolveValue.native.d.ts +7 -0
- package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
- package/types/helpers/propMapper.d.ts +2 -2
- package/types/helpers/propMapper.d.ts.map +1 -1
- package/types/helpers/pseudoTransitions.d.ts +29 -0
- package/types/helpers/pseudoTransitions.d.ts.map +1 -0
- package/types/helpers/resolveAnimationDriver.d.ts +7 -0
- package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
- package/types/helpers/resolveCompoundTokens.d.ts +9 -0
- package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
- package/types/helpers/skipProps.d.ts +1 -0
- package/types/helpers/skipProps.d.ts.map +1 -1
- package/types/helpers/themeable.d.ts.map +1 -1
- package/types/helpers/useRenderElement.d.ts.map +1 -1
- package/types/helpers/webPropsToSkip.native.d.ts +20 -20
- package/types/hooks/useComponentState.d.ts +2 -1
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +1 -6
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useProps.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/index.d.ts +5 -1
- package/types/index.d.ts.map +1 -1
- package/types/styled.d.ts +2 -2
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +105 -30
- package/types/types.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts +1 -4
- package/types/views/TamaguiProvider.d.ts.map +1 -1
- package/types/views/TamaguiRoot.d.ts +15 -0
- package/types/views/TamaguiRoot.d.ts.map +1 -0
- package/types/views/TamaguiRoot.native.d.ts +7 -0
- package/types/views/TamaguiRoot.native.d.ts.map +1 -0
- package/types/views/Text.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
- package/types/views/ThemeProvider.d.ts.map +1 -1
- package/types/views/View.d.ts.map +1 -1
- package/vitest.config.d.ts +3 -0
- package/vitest.config.d.ts.map +1 -0
- package/vitest.config.ts +14 -0
- package/dist/cjs/Tamagui.js +0 -56
- package/dist/cjs/Tamagui.js.map +0 -6
- package/dist/cjs/_withStableStyle.js +0 -33
- package/dist/cjs/_withStableStyle.js.map +0 -6
- package/dist/cjs/animationDriverTypes.test-d.js +0 -51
- package/dist/cjs/animationDriverTypes.test-d.js.map +0 -6
- package/dist/cjs/config.js +0 -109
- package/dist/cjs/config.js.map +0 -6
- package/dist/cjs/constants/accessibilityDirectMap.js +0 -25
- package/dist/cjs/constants/accessibilityDirectMap.js.map +0 -6
- package/dist/cjs/constants/constants.js +0 -43
- package/dist/cjs/constants/constants.js.map +0 -6
- package/dist/cjs/constants/isDevTools.js +0 -28
- package/dist/cjs/constants/isDevTools.js.map +0 -6
- package/dist/cjs/constants/webToNativeProps.js +0 -22
- package/dist/cjs/constants/webToNativeProps.js.map +0 -6
- package/dist/cjs/constants/webToNativeProps.native.js +0 -115
- package/dist/cjs/constants/webToNativeProps.native.js.map +0 -1
- package/dist/cjs/contexts/ComponentContext.js +0 -30
- package/dist/cjs/contexts/ComponentContext.js.map +0 -6
- package/dist/cjs/contexts/GroupContext.js +0 -22
- package/dist/cjs/contexts/GroupContext.js.map +0 -6
- package/dist/cjs/createComponent.js +0 -697
- package/dist/cjs/createComponent.js.map +0 -6
- package/dist/cjs/createFont.js +0 -53
- package/dist/cjs/createFont.js.map +0 -6
- package/dist/cjs/createShorthands.js +0 -23
- package/dist/cjs/createShorthands.js.map +0 -6
- package/dist/cjs/createTamagui.js +0 -190
- package/dist/cjs/createTamagui.js.map +0 -6
- package/dist/cjs/createTheme.js +0 -21
- package/dist/cjs/createTheme.js.map +0 -6
- package/dist/cjs/createTheme.native.js.map +0 -1
- package/dist/cjs/createTokens.js +0 -24
- package/dist/cjs/createTokens.js.map +0 -6
- package/dist/cjs/createVariable.js +0 -89
- package/dist/cjs/createVariable.js.map +0 -6
- package/dist/cjs/createVariables.js +0 -56
- package/dist/cjs/createVariables.js.map +0 -6
- package/dist/cjs/defaultComponentState.js +0 -38
- package/dist/cjs/defaultComponentState.js.map +0 -6
- package/dist/cjs/eventHandling.js +0 -41
- package/dist/cjs/eventHandling.js.map +0 -6
- package/dist/cjs/helpers/createDesignSystem.js +0 -120
- package/dist/cjs/helpers/createDesignSystem.js.map +0 -6
- package/dist/cjs/helpers/createMediaStyle.js +0 -74
- package/dist/cjs/helpers/createMediaStyle.js.map +0 -6
- package/dist/cjs/helpers/createStyledContext.js +0 -52
- package/dist/cjs/helpers/createStyledContext.js.map +0 -6
- package/dist/cjs/helpers/defaultAnimationDriver.js +0 -39
- package/dist/cjs/helpers/defaultAnimationDriver.js.map +0 -6
- package/dist/cjs/helpers/defaultOffset.js +0 -21
- package/dist/cjs/helpers/defaultOffset.js.map +0 -6
- package/dist/cjs/helpers/expandStyle.js +0 -73
- package/dist/cjs/helpers/expandStyle.js.map +0 -6
- package/dist/cjs/helpers/expandStyles.js +0 -34
- package/dist/cjs/helpers/expandStyles.js.map +0 -6
- package/dist/cjs/helpers/getCSSStylesAtomic.js +0 -156
- package/dist/cjs/helpers/getCSSStylesAtomic.js.map +0 -6
- package/dist/cjs/helpers/getDefaultProps.js +0 -31
- package/dist/cjs/helpers/getDefaultProps.js.map +0 -6
- package/dist/cjs/helpers/getDynamicVal.js +0 -62
- package/dist/cjs/helpers/getDynamicVal.js.map +0 -6
- package/dist/cjs/helpers/getExpandedShorthands.js +0 -34
- package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -6
- package/dist/cjs/helpers/getFontLanguage.js +0 -21
- package/dist/cjs/helpers/getFontLanguage.js.map +0 -6
- package/dist/cjs/helpers/getGroupPropParts.js +0 -34
- package/dist/cjs/helpers/getGroupPropParts.js.map +0 -6
- package/dist/cjs/helpers/getShorthandValue.js +0 -23
- package/dist/cjs/helpers/getShorthandValue.js.map +0 -6
- package/dist/cjs/helpers/getSplitStyles.js +0 -630
- package/dist/cjs/helpers/getSplitStyles.js.map +0 -6
- package/dist/cjs/helpers/getThemeCSSRules.js +0 -89
- package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -6
- package/dist/cjs/helpers/getVariantExtras.js +0 -59
- package/dist/cjs/helpers/getVariantExtras.js.map +0 -6
- package/dist/cjs/helpers/insertStyleRule.js +0 -196
- package/dist/cjs/helpers/insertStyleRule.js.map +0 -6
- package/dist/cjs/helpers/isActivePlatform.js +0 -31
- package/dist/cjs/helpers/isActivePlatform.js.map +0 -6
- package/dist/cjs/helpers/isActiveTheme.js +0 -24
- package/dist/cjs/helpers/isActiveTheme.js.map +0 -6
- package/dist/cjs/helpers/isObj.js +0 -21
- package/dist/cjs/helpers/isObj.js.map +0 -6
- package/dist/cjs/helpers/isTamaguiComponent.js +0 -24
- package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -6
- package/dist/cjs/helpers/isTamaguiElement.js +0 -30
- package/dist/cjs/helpers/isTamaguiElement.js.map +0 -6
- package/dist/cjs/helpers/log.js +0 -33
- package/dist/cjs/helpers/log.js.map +0 -6
- package/dist/cjs/helpers/mainThreadPressEvents.js +0 -22
- package/dist/cjs/helpers/mainThreadPressEvents.js.map +0 -6
- package/dist/cjs/helpers/matchMedia.js +0 -34
- package/dist/cjs/helpers/matchMedia.js.map +0 -6
- package/dist/cjs/helpers/mergeProps.js +0 -55
- package/dist/cjs/helpers/mergeProps.js.map +0 -6
- package/dist/cjs/helpers/mergeRenderElementProps.js +0 -25
- package/dist/cjs/helpers/mergeRenderElementProps.js.map +0 -6
- package/dist/cjs/helpers/mergeSlotStyleProps.js +0 -29
- package/dist/cjs/helpers/mergeSlotStyleProps.js.map +0 -6
- package/dist/cjs/helpers/mergeVariants.js +0 -38
- package/dist/cjs/helpers/mergeVariants.js.map +0 -6
- package/dist/cjs/helpers/nativeOnlyProps.js +0 -55
- package/dist/cjs/helpers/nativeOnlyProps.js.map +0 -6
- package/dist/cjs/helpers/normalizeColor.js +0 -26
- package/dist/cjs/helpers/normalizeColor.js.map +0 -6
- package/dist/cjs/helpers/normalizeShadow.js +0 -40
- package/dist/cjs/helpers/normalizeShadow.js.map +0 -6
- package/dist/cjs/helpers/normalizeStyle.js +0 -36
- package/dist/cjs/helpers/normalizeStyle.js.map +0 -6
- package/dist/cjs/helpers/normalizeStylePropKeys.js +0 -21
- package/dist/cjs/helpers/normalizeStylePropKeys.js.map +0 -6
- package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -32
- package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -6
- package/dist/cjs/helpers/objectIdentityKey.js +0 -38
- package/dist/cjs/helpers/objectIdentityKey.js.map +0 -6
- package/dist/cjs/helpers/parseBorderShorthand.js +0 -22
- package/dist/cjs/helpers/parseBorderShorthand.js.map +0 -6
- package/dist/cjs/helpers/pointerEvents.js +0 -22
- package/dist/cjs/helpers/pointerEvents.js.map +0 -6
- package/dist/cjs/helpers/propMapper.js +0 -257
- package/dist/cjs/helpers/propMapper.js.map +0 -6
- package/dist/cjs/helpers/proxyThemeToParents.js +0 -40
- package/dist/cjs/helpers/proxyThemeToParents.js.map +0 -6
- package/dist/cjs/helpers/proxyThemeVariables.js +0 -31
- package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -6
- package/dist/cjs/helpers/pseudoDescriptors.js +0 -72
- package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -6
- package/dist/cjs/helpers/registerCSSVariable.js +0 -47
- package/dist/cjs/helpers/registerCSSVariable.js.map +0 -6
- package/dist/cjs/helpers/resolveRem.js +0 -27
- package/dist/cjs/helpers/resolveRem.js.map +0 -6
- package/dist/cjs/helpers/resolveSafeArea.js +0 -29
- package/dist/cjs/helpers/resolveSafeArea.js.map +0 -6
- package/dist/cjs/helpers/setElementProps.js +0 -24
- package/dist/cjs/helpers/setElementProps.js.map +0 -6
- package/dist/cjs/helpers/skipProps.js +0 -38
- package/dist/cjs/helpers/skipProps.js.map +0 -6
- package/dist/cjs/helpers/sortString.js +0 -21
- package/dist/cjs/helpers/sortString.js.map +0 -6
- package/dist/cjs/helpers/subscribeToContextGroup.js +0 -74
- package/dist/cjs/helpers/subscribeToContextGroup.js.map +0 -6
- package/dist/cjs/helpers/themeable.js +0 -56
- package/dist/cjs/helpers/themeable.js.map +0 -6
- package/dist/cjs/helpers/themes.js +0 -33
- package/dist/cjs/helpers/themes.js.map +0 -6
- package/dist/cjs/helpers/timer.js +0 -27
- package/dist/cjs/helpers/timer.js.map +0 -6
- package/dist/cjs/helpers/transformsToString.js +0 -33
- package/dist/cjs/helpers/transformsToString.js.map +0 -6
- package/dist/cjs/helpers/useRenderElement.js +0 -42
- package/dist/cjs/helpers/useRenderElement.js.map +0 -6
- package/dist/cjs/helpers/webPropsToSkip.js +0 -21
- package/dist/cjs/helpers/webPropsToSkip.js.map +0 -6
- package/dist/cjs/helpers/wrapStyleTags.js +0 -38
- package/dist/cjs/helpers/wrapStyleTags.js.map +0 -6
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.js +0 -23
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.js.map +0 -6
- package/dist/cjs/hooks/getThemeProxied.js +0 -56
- package/dist/cjs/hooks/getThemeProxied.js.map +0 -6
- package/dist/cjs/hooks/useComponentState.js +0 -96
- package/dist/cjs/hooks/useComponentState.js.map +0 -6
- package/dist/cjs/hooks/useDisableSSR.js +0 -24
- package/dist/cjs/hooks/useDisableSSR.js.map +0 -6
- package/dist/cjs/hooks/useIsTouchDevice.js +0 -22
- package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -6
- package/dist/cjs/hooks/useMedia.js +0 -183
- package/dist/cjs/hooks/useMedia.js.map +0 -6
- package/dist/cjs/hooks/useProps.js +0 -106
- package/dist/cjs/hooks/useProps.js.map +0 -6
- package/dist/cjs/hooks/useTheme.js +0 -35
- package/dist/cjs/hooks/useTheme.js.map +0 -6
- package/dist/cjs/hooks/useThemeName.js +0 -25
- package/dist/cjs/hooks/useThemeName.js.map +0 -6
- package/dist/cjs/hooks/useThemeState.js +0 -218
- package/dist/cjs/hooks/useThemeState.js.map +0 -6
- package/dist/cjs/inject-styles.js +0 -28
- package/dist/cjs/inject-styles.js.map +0 -6
- package/dist/cjs/insertFont.js +0 -68
- package/dist/cjs/insertFont.js.map +0 -6
- package/dist/cjs/interfaces/CSSColorNames.js +0 -14
- package/dist/cjs/interfaces/CSSColorNames.js.map +0 -6
- package/dist/cjs/interfaces/GetRef.js +0 -14
- package/dist/cjs/interfaces/GetRef.js.map +0 -6
- package/dist/cjs/interfaces/RNExclusiveTypes.js +0 -14
- package/dist/cjs/interfaces/RNExclusiveTypes.js.map +0 -6
- package/dist/cjs/interfaces/TamaguiComponentEvents.js +0 -14
- package/dist/cjs/interfaces/TamaguiComponentEvents.js.map +0 -6
- package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js +0 -14
- package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
- package/dist/cjs/setupHooks.js +0 -25
- package/dist/cjs/setupHooks.js.map +0 -6
- package/dist/cjs/setupReactNative.js +0 -43
- package/dist/cjs/setupReactNative.js.map +0 -6
- package/dist/cjs/styled.js +0 -116
- package/dist/cjs/styled.js.map +0 -6
- package/dist/cjs/styledHtml.test-d.js +0 -136
- package/dist/cjs/styledHtml.test-d.js.map +0 -6
- package/dist/cjs/type-utils.js +0 -14
- package/dist/cjs/type-utils.js.map +0 -6
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/cjs/views/Configuration.js +0 -33
- package/dist/cjs/views/Configuration.js.map +0 -6
- package/dist/cjs/views/FontLanguage.js +0 -32
- package/dist/cjs/views/FontLanguage.js.map +0 -6
- package/dist/cjs/views/Slot.js +0 -55
- package/dist/cjs/views/Slot.js.map +0 -6
- package/dist/cjs/views/Stack.js +0 -27
- package/dist/cjs/views/Stack.js.map +0 -6
- package/dist/cjs/views/Stack.native.js.map +0 -1
- package/dist/cjs/views/TamaguiProvider.js +0 -93
- package/dist/cjs/views/TamaguiProvider.js.map +0 -6
- package/dist/cjs/views/Text.js +0 -59
- package/dist/cjs/views/Text.js.map +0 -6
- package/dist/cjs/views/Theme.js +0 -124
- package/dist/cjs/views/Theme.js.map +0 -6
- package/dist/cjs/views/ThemeDebug.js +0 -81
- package/dist/cjs/views/ThemeDebug.js.map +0 -6
- package/dist/cjs/views/ThemeProvider.js +0 -42
- package/dist/cjs/views/ThemeProvider.js.map +0 -6
- package/dist/cjs/views/View.js +0 -26
- package/dist/cjs/views/View.js.map +0 -6
- package/dist/esm/Tamagui.js +0 -35
- package/dist/esm/Tamagui.js.map +0 -6
- package/dist/esm/_withStableStyle.js +0 -12
- package/dist/esm/_withStableStyle.js.map +0 -6
- package/dist/esm/animationDriverTypes.test-d.js +0 -51
- package/dist/esm/animationDriverTypes.test-d.js.map +0 -6
- package/dist/esm/config.js +0 -94
- package/dist/esm/config.js.map +0 -6
- package/dist/esm/constants/accessibilityDirectMap.js +0 -9
- package/dist/esm/constants/accessibilityDirectMap.js.map +0 -6
- package/dist/esm/constants/constants.js +0 -27
- package/dist/esm/constants/constants.js.map +0 -6
- package/dist/esm/constants/isDevTools.js +0 -12
- package/dist/esm/constants/isDevTools.js.map +0 -6
- package/dist/esm/constants/webToNativeProps.js +0 -6
- package/dist/esm/constants/webToNativeProps.js.map +0 -6
- package/dist/esm/constants/webToNativeProps.mjs +0 -4
- package/dist/esm/constants/webToNativeProps.mjs.map +0 -1
- package/dist/esm/constants/webToNativeProps.native.js +0 -88
- package/dist/esm/constants/webToNativeProps.native.js.map +0 -1
- package/dist/esm/contexts/ComponentContext.js +0 -15
- package/dist/esm/contexts/ComponentContext.js.map +0 -6
- package/dist/esm/contexts/GroupContext.js +0 -6
- package/dist/esm/contexts/GroupContext.js.map +0 -6
- package/dist/esm/createComponent.js +0 -702
- package/dist/esm/createComponent.js.map +0 -6
- package/dist/esm/createFont.js +0 -37
- package/dist/esm/createFont.js.map +0 -6
- package/dist/esm/createShorthands.js +0 -7
- package/dist/esm/createShorthands.js.map +0 -6
- package/dist/esm/createTamagui.js +0 -189
- package/dist/esm/createTamagui.js.map +0 -6
- package/dist/esm/createTheme.js +0 -5
- package/dist/esm/createTheme.js.map +0 -6
- package/dist/esm/createTheme.mjs +0 -3
- package/dist/esm/createTheme.mjs.map +0 -1
- package/dist/esm/createTheme.native.js +0 -5
- package/dist/esm/createTheme.native.js.map +0 -1
- package/dist/esm/createTokens.js +0 -8
- package/dist/esm/createTokens.js.map +0 -6
- package/dist/esm/createVariable.js +0 -75
- package/dist/esm/createVariable.js.map +0 -6
- package/dist/esm/createVariables.js +0 -42
- package/dist/esm/createVariables.js.map +0 -6
- package/dist/esm/defaultComponentState.js +0 -22
- package/dist/esm/defaultComponentState.js.map +0 -6
- package/dist/esm/eventHandling.js +0 -25
- package/dist/esm/eventHandling.js.map +0 -6
- package/dist/esm/helpers/createDesignSystem.js +0 -107
- package/dist/esm/helpers/createDesignSystem.js.map +0 -6
- package/dist/esm/helpers/createMediaStyle.js +0 -60
- package/dist/esm/helpers/createMediaStyle.js.map +0 -6
- package/dist/esm/helpers/createStyledContext.js +0 -31
- package/dist/esm/helpers/createStyledContext.js.map +0 -6
- package/dist/esm/helpers/defaultAnimationDriver.js +0 -23
- package/dist/esm/helpers/defaultAnimationDriver.js.map +0 -6
- package/dist/esm/helpers/defaultOffset.js +0 -5
- package/dist/esm/helpers/defaultOffset.js.map +0 -6
- package/dist/esm/helpers/expandStyle.js +0 -59
- package/dist/esm/helpers/expandStyle.js.map +0 -6
- package/dist/esm/helpers/expandStyles.js +0 -19
- package/dist/esm/helpers/expandStyles.js.map +0 -6
- package/dist/esm/helpers/getCSSStylesAtomic.js +0 -147
- package/dist/esm/helpers/getCSSStylesAtomic.js.map +0 -6
- package/dist/esm/helpers/getDefaultProps.js +0 -15
- package/dist/esm/helpers/getDefaultProps.js.map +0 -6
- package/dist/esm/helpers/getDynamicVal.js +0 -46
- package/dist/esm/helpers/getDynamicVal.js.map +0 -6
- package/dist/esm/helpers/getExpandedShorthands.js +0 -18
- package/dist/esm/helpers/getExpandedShorthands.js.map +0 -6
- package/dist/esm/helpers/getFontLanguage.js +0 -5
- package/dist/esm/helpers/getFontLanguage.js.map +0 -6
- package/dist/esm/helpers/getGroupPropParts.js +0 -19
- package/dist/esm/helpers/getGroupPropParts.js.map +0 -6
- package/dist/esm/helpers/getShorthandValue.js +0 -7
- package/dist/esm/helpers/getShorthandValue.js.map +0 -6
- package/dist/esm/helpers/getSplitStyles.js +0 -650
- package/dist/esm/helpers/getSplitStyles.js.map +0 -6
- package/dist/esm/helpers/getThemeCSSRules.js +0 -78
- package/dist/esm/helpers/getThemeCSSRules.js.map +0 -6
- package/dist/esm/helpers/getVariantExtras.js +0 -44
- package/dist/esm/helpers/getVariantExtras.js.map +0 -6
- package/dist/esm/helpers/insertStyleRule.js +0 -181
- package/dist/esm/helpers/insertStyleRule.js.map +0 -6
- package/dist/esm/helpers/isActivePlatform.js +0 -15
- package/dist/esm/helpers/isActivePlatform.js.map +0 -6
- package/dist/esm/helpers/isActiveTheme.js +0 -8
- package/dist/esm/helpers/isActiveTheme.js.map +0 -6
- package/dist/esm/helpers/isObj.js +0 -5
- package/dist/esm/helpers/isObj.js.map +0 -6
- package/dist/esm/helpers/isTamaguiComponent.js +0 -8
- package/dist/esm/helpers/isTamaguiComponent.js.map +0 -6
- package/dist/esm/helpers/isTamaguiElement.js +0 -7
- package/dist/esm/helpers/isTamaguiElement.js.map +0 -6
- package/dist/esm/helpers/log.js +0 -17
- package/dist/esm/helpers/log.js.map +0 -6
- package/dist/esm/helpers/mainThreadPressEvents.js +0 -6
- package/dist/esm/helpers/mainThreadPressEvents.js.map +0 -6
- package/dist/esm/helpers/matchMedia.js +0 -18
- package/dist/esm/helpers/matchMedia.js.map +0 -6
- package/dist/esm/helpers/mergeProps.js +0 -39
- package/dist/esm/helpers/mergeProps.js.map +0 -6
- package/dist/esm/helpers/mergeRenderElementProps.js +0 -9
- package/dist/esm/helpers/mergeRenderElementProps.js.map +0 -6
- package/dist/esm/helpers/mergeSlotStyleProps.js +0 -14
- package/dist/esm/helpers/mergeSlotStyleProps.js.map +0 -6
- package/dist/esm/helpers/mergeVariants.js +0 -22
- package/dist/esm/helpers/mergeVariants.js.map +0 -6
- package/dist/esm/helpers/nativeOnlyProps.js +0 -39
- package/dist/esm/helpers/nativeOnlyProps.js.map +0 -6
- package/dist/esm/helpers/normalizeColor.js +0 -10
- package/dist/esm/helpers/normalizeColor.js.map +0 -6
- package/dist/esm/helpers/normalizeShadow.js +0 -24
- package/dist/esm/helpers/normalizeShadow.js.map +0 -6
- package/dist/esm/helpers/normalizeStyle.js +0 -24
- package/dist/esm/helpers/normalizeStyle.js.map +0 -6
- package/dist/esm/helpers/normalizeStylePropKeys.js +0 -5
- package/dist/esm/helpers/normalizeStylePropKeys.js.map +0 -6
- package/dist/esm/helpers/normalizeValueWithProperty.js +0 -17
- package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -6
- package/dist/esm/helpers/objectIdentityKey.js +0 -22
- package/dist/esm/helpers/objectIdentityKey.js.map +0 -6
- package/dist/esm/helpers/parseBorderShorthand.js +0 -6
- package/dist/esm/helpers/parseBorderShorthand.js.map +0 -6
- package/dist/esm/helpers/pointerEvents.js +0 -6
- package/dist/esm/helpers/pointerEvents.js.map +0 -6
- package/dist/esm/helpers/propMapper.js +0 -251
- package/dist/esm/helpers/propMapper.js.map +0 -6
- package/dist/esm/helpers/proxyThemeToParents.js +0 -24
- package/dist/esm/helpers/proxyThemeToParents.js.map +0 -6
- package/dist/esm/helpers/proxyThemeVariables.js +0 -15
- package/dist/esm/helpers/proxyThemeVariables.js.map +0 -6
- package/dist/esm/helpers/pseudoDescriptors.js +0 -56
- package/dist/esm/helpers/pseudoDescriptors.js.map +0 -6
- package/dist/esm/helpers/registerCSSVariable.js +0 -31
- package/dist/esm/helpers/registerCSSVariable.js.map +0 -6
- package/dist/esm/helpers/resolveRem.js +0 -11
- package/dist/esm/helpers/resolveRem.js.map +0 -6
- package/dist/esm/helpers/resolveSafeArea.js +0 -13
- package/dist/esm/helpers/resolveSafeArea.js.map +0 -6
- package/dist/esm/helpers/setElementProps.js +0 -8
- package/dist/esm/helpers/setElementProps.js.map +0 -6
- package/dist/esm/helpers/skipProps.js +0 -23
- package/dist/esm/helpers/skipProps.js.map +0 -6
- package/dist/esm/helpers/sortString.js +0 -5
- package/dist/esm/helpers/sortString.js.map +0 -6
- package/dist/esm/helpers/subscribeToContextGroup.js +0 -59
- package/dist/esm/helpers/subscribeToContextGroup.js.map +0 -6
- package/dist/esm/helpers/themeable.js +0 -35
- package/dist/esm/helpers/themeable.js.map +0 -6
- package/dist/esm/helpers/themes.js +0 -17
- package/dist/esm/helpers/themes.js.map +0 -6
- package/dist/esm/helpers/timer.js +0 -11
- package/dist/esm/helpers/timer.js.map +0 -6
- package/dist/esm/helpers/transformsToString.js +0 -17
- package/dist/esm/helpers/transformsToString.js.map +0 -6
- package/dist/esm/helpers/useRenderElement.js +0 -28
- package/dist/esm/helpers/useRenderElement.js.map +0 -6
- package/dist/esm/helpers/webPropsToSkip.js +0 -5
- package/dist/esm/helpers/webPropsToSkip.js.map +0 -6
- package/dist/esm/helpers/wrapStyleTags.js +0 -23
- package/dist/esm/helpers/wrapStyleTags.js.map +0 -6
- package/dist/esm/hooks/doesRootSchemeMatchSystem.js +0 -7
- package/dist/esm/hooks/doesRootSchemeMatchSystem.js.map +0 -6
- package/dist/esm/hooks/getThemeProxied.js +0 -44
- package/dist/esm/hooks/getThemeProxied.js.map +0 -6
- package/dist/esm/hooks/useComponentState.js +0 -91
- package/dist/esm/hooks/useComponentState.js.map +0 -6
- package/dist/esm/hooks/useDisableSSR.js +0 -8
- package/dist/esm/hooks/useDisableSSR.js.map +0 -6
- package/dist/esm/hooks/useIsTouchDevice.js +0 -7
- package/dist/esm/hooks/useIsTouchDevice.js.map +0 -6
- package/dist/esm/hooks/useMedia.js +0 -172
- package/dist/esm/hooks/useMedia.js.map +0 -6
- package/dist/esm/hooks/useProps.js +0 -92
- package/dist/esm/hooks/useProps.js.map +0 -6
- package/dist/esm/hooks/useTheme.js +0 -21
- package/dist/esm/hooks/useTheme.js.map +0 -6
- package/dist/esm/hooks/useThemeName.js +0 -9
- package/dist/esm/hooks/useThemeName.js.map +0 -6
- package/dist/esm/hooks/useThemeState.js +0 -212
- package/dist/esm/hooks/useThemeState.js.map +0 -6
- package/dist/esm/inject-styles.js +0 -12
- package/dist/esm/inject-styles.js.map +0 -6
- package/dist/esm/insertFont.js +0 -56
- package/dist/esm/insertFont.js.map +0 -6
- package/dist/esm/interfaces/CSSColorNames.js +0 -1
- package/dist/esm/interfaces/CSSColorNames.js.map +0 -6
- package/dist/esm/interfaces/GetRef.js +0 -1
- package/dist/esm/interfaces/GetRef.js.map +0 -6
- package/dist/esm/interfaces/RNExclusiveTypes.js +0 -1
- package/dist/esm/interfaces/RNExclusiveTypes.js.map +0 -6
- package/dist/esm/interfaces/TamaguiComponentEvents.js +0 -1
- package/dist/esm/interfaces/TamaguiComponentEvents.js.map +0 -6
- package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js +0 -1
- package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
- package/dist/esm/setupHooks.js +0 -9
- package/dist/esm/setupHooks.js.map +0 -6
- package/dist/esm/setupReactNative.js +0 -27
- package/dist/esm/setupReactNative.js.map +0 -6
- package/dist/esm/styled.js +0 -102
- package/dist/esm/styled.js.map +0 -6
- package/dist/esm/styledHtml.test-d.js +0 -137
- package/dist/esm/styledHtml.test-d.js.map +0 -6
- package/dist/esm/type-utils.js +0 -1
- package/dist/esm/type-utils.js.map +0 -6
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/dist/esm/views/Configuration.js +0 -12
- package/dist/esm/views/Configuration.js.map +0 -6
- package/dist/esm/views/FontLanguage.js +0 -16
- package/dist/esm/views/FontLanguage.js.map +0 -6
- package/dist/esm/views/Slot.js +0 -43
- package/dist/esm/views/Slot.js.map +0 -6
- package/dist/esm/views/Stack.js +0 -13
- package/dist/esm/views/Stack.js.map +0 -6
- package/dist/esm/views/Stack.mjs +0 -11
- package/dist/esm/views/Stack.mjs.map +0 -1
- package/dist/esm/views/Stack.native.js +0 -11
- package/dist/esm/views/Stack.native.js.map +0 -1
- package/dist/esm/views/TamaguiProvider.js +0 -77
- package/dist/esm/views/TamaguiProvider.js.map +0 -6
- package/dist/esm/views/Text.js +0 -44
- package/dist/esm/views/Text.js.map +0 -6
- package/dist/esm/views/Theme.js +0 -110
- package/dist/esm/views/Theme.js.map +0 -6
- package/dist/esm/views/ThemeDebug.js +0 -69
- package/dist/esm/views/ThemeDebug.js.map +0 -6
- package/dist/esm/views/ThemeProvider.js +0 -31
- package/dist/esm/views/ThemeProvider.js.map +0 -6
- package/dist/esm/views/View.js +0 -12
- package/dist/esm/views/View.js.map +0 -6
- package/types/constants/webToNativeProps.d.ts.map +0 -1
- package/types/constants/webToNativeProps.native.d.ts.map +0 -1
- package/types/createTheme.d.ts.map +0 -1
- package/types/helpers/expandStyle.native.d.ts.map +0 -1
- package/types/helpers/propMapper.native.d.ts.map +0 -1
- package/types/views/Stack.d.ts.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { GetStyleState, SplitStyleProps } from '../types'
|
|
2
|
+
import { getTokenForKey } from './getTokenForKey'
|
|
3
|
+
|
|
4
|
+
const tokenPattern = /(\$[\w.-]+)/g
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* web: resolves embedded $tokens in compound CSS strings via simple regex replacement.
|
|
8
|
+
*/
|
|
9
|
+
export function platformResolveValue(
|
|
10
|
+
_key: string,
|
|
11
|
+
value: string,
|
|
12
|
+
styleProps: SplitStyleProps,
|
|
13
|
+
styleState: Partial<GetStyleState>
|
|
14
|
+
): string {
|
|
15
|
+
return value.replace(tokenPattern, (t) => {
|
|
16
|
+
let r = getTokenForKey('size', t, styleProps, styleState)
|
|
17
|
+
if (r == null) {
|
|
18
|
+
r = getTokenForKey('color', t, styleProps, styleState)
|
|
19
|
+
}
|
|
20
|
+
return r != null ? String(r) : t
|
|
21
|
+
})
|
|
22
|
+
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { isAndroid } from '@tamagui/constants'
|
|
2
|
-
import { tokenCategories } from '@tamagui/helpers'
|
|
3
|
-
import { getConfig } from '../config'
|
|
4
2
|
import { getVariableValue, isVariable } from '../createVariable'
|
|
5
3
|
import type {
|
|
6
4
|
GetStyleState,
|
|
7
5
|
PropMapper,
|
|
8
|
-
ResolveVariableAs,
|
|
9
6
|
SplitStyleProps,
|
|
10
7
|
StyleResolver,
|
|
11
8
|
TamaguiInternalConfig,
|
|
@@ -13,20 +10,29 @@ import type {
|
|
|
13
10
|
VariantSpreadFunction,
|
|
14
11
|
} from '../types'
|
|
15
12
|
import { expandStyle } from './expandStyle'
|
|
13
|
+
import {
|
|
14
|
+
getLastFontFamilyToken,
|
|
15
|
+
getTokenForKey,
|
|
16
|
+
resolveVariableValue,
|
|
17
|
+
setLastFontFamilyToken,
|
|
18
|
+
} from './getTokenForKey'
|
|
16
19
|
import { getFontsForLanguage, getVariantExtras } from './getVariantExtras'
|
|
17
20
|
import { isObj } from './isObj'
|
|
18
21
|
import { normalizeStyle } from './normalizeStyle'
|
|
22
|
+
import { parseNativeStyle } from './parseNativeStyle'
|
|
19
23
|
import { pseudoDescriptors } from './pseudoDescriptors'
|
|
24
|
+
import { resolveCompoundTokens } from './resolveCompoundTokens'
|
|
20
25
|
import { isRemValue, resolveRem } from './resolveRem'
|
|
21
|
-
// import { resolveSafeAreaValue } from './resolveSafeArea'
|
|
22
26
|
import { skipProps } from './skipProps'
|
|
23
27
|
|
|
28
|
+
export { getTokenForKey } from './getTokenForKey'
|
|
29
|
+
|
|
24
30
|
export const propMapper: PropMapper = (key, value, styleState, disabled, map) => {
|
|
25
31
|
if (disabled) {
|
|
26
32
|
return map(key, value)
|
|
27
33
|
}
|
|
28
34
|
|
|
29
|
-
|
|
35
|
+
setLastFontFamilyToken(null)
|
|
30
36
|
|
|
31
37
|
if (!(process.env.TAMAGUI_TARGET === 'native' && isAndroid)) {
|
|
32
38
|
// this shouldnt be necessary and handled in the outer loop
|
|
@@ -57,26 +63,14 @@ export const propMapper: PropMapper = (key, value, styleState, disabled, map) =>
|
|
|
57
63
|
const originalValue = value
|
|
58
64
|
|
|
59
65
|
if (value != null) {
|
|
60
|
-
if (typeof value === 'string'
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
key
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
typeof value === 'string' &&
|
|
69
|
-
value.includes('$')
|
|
70
|
-
) {
|
|
71
|
-
// boxShadow/filter/backgroundImage/border with embedded $tokens - resolve each token
|
|
72
|
-
// Try size first (for dimensions), then color (for the color value)
|
|
73
|
-
value = value.replace(/(\$[\w.-]+)/g, (t) => {
|
|
74
|
-
let r = getTokenForKey('size', t, styleProps, styleState)
|
|
75
|
-
if (r == null) {
|
|
76
|
-
r = getTokenForKey('color', t, styleProps, styleState)
|
|
77
|
-
}
|
|
78
|
-
return r != null ? String(r) : t
|
|
79
|
-
})
|
|
66
|
+
if (typeof value === 'string') {
|
|
67
|
+
if (value[0] === '$') {
|
|
68
|
+
value = getTokenForKey(key, value, styleProps, styleState)
|
|
69
|
+
} else {
|
|
70
|
+
const resolved = resolveCompoundTokens(key, value, styleProps, styleState)
|
|
71
|
+
value =
|
|
72
|
+
resolved !== value ? resolved : isRemValue(value) ? resolveRem(value) : value
|
|
73
|
+
}
|
|
80
74
|
} else if (isVariable(value)) {
|
|
81
75
|
value = resolveVariableValue(key, value, styleProps.resolveValues)
|
|
82
76
|
} else if (isRemValue(value)) {
|
|
@@ -84,9 +78,31 @@ export const propMapper: PropMapper = (key, value, styleState, disabled, map) =>
|
|
|
84
78
|
}
|
|
85
79
|
}
|
|
86
80
|
|
|
81
|
+
// on native, parse string backgroundImage/boxShadow/textShadow to RN object format
|
|
82
|
+
// this handles both token-resolved strings and plain strings without tokens
|
|
83
|
+
if (
|
|
84
|
+
process.env.TAMAGUI_TARGET === 'native' &&
|
|
85
|
+
value != null &&
|
|
86
|
+
typeof value === 'string' &&
|
|
87
|
+
(key === 'backgroundImage' || key === 'boxShadow' || key === 'textShadow')
|
|
88
|
+
) {
|
|
89
|
+
const parsed = parseNativeStyle(key, value)
|
|
90
|
+
if (parsed) {
|
|
91
|
+
// textShadow returns [key, value] pairs to expand into separate properties
|
|
92
|
+
if (key === 'textShadow' && Array.isArray(parsed) && Array.isArray(parsed[0])) {
|
|
93
|
+
for (const [nkey, nvalue] of parsed) {
|
|
94
|
+
map(nkey, nvalue, originalValue)
|
|
95
|
+
}
|
|
96
|
+
return
|
|
97
|
+
}
|
|
98
|
+
value = parsed
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
87
102
|
if (value != null) {
|
|
88
|
-
|
|
89
|
-
|
|
103
|
+
const fontToken = getLastFontFamilyToken()
|
|
104
|
+
if (key === 'fontFamily' && fontToken) {
|
|
105
|
+
styleState.fontFamily = fontToken
|
|
90
106
|
}
|
|
91
107
|
|
|
92
108
|
const expanded = styleProps.noExpand ? null : expandStyle(key, value)
|
|
@@ -114,7 +130,7 @@ const resolveVariants: StyleResolver = (
|
|
|
114
130
|
const { variants } = staticConfig
|
|
115
131
|
if (!variants) return
|
|
116
132
|
|
|
117
|
-
let variantValue = getVariantDefinition(variants[key], value, conf)
|
|
133
|
+
let variantValue = getVariantDefinition(variants[key], value, conf, styleState)
|
|
118
134
|
|
|
119
135
|
if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
|
|
120
136
|
console.groupCollapsed(`♦️♦️♦️ resolve variant ${key}`)
|
|
@@ -192,7 +208,7 @@ const resolveVariants: StyleResolver = (
|
|
|
192
208
|
|
|
193
209
|
// store any changed font family (only support variables for now)
|
|
194
210
|
if (fontFamilyResult && fontFamilyResult[0] === '$') {
|
|
195
|
-
|
|
211
|
+
setLastFontFamilyToken(getVariableValue(fontFamilyResult))
|
|
196
212
|
}
|
|
197
213
|
|
|
198
214
|
return next
|
|
@@ -269,7 +285,6 @@ const resolveTokensAndVariants: StyleResolver<object> = (
|
|
|
269
285
|
// eg: { variants: { flex: { true: { flex: 2 } } } }
|
|
270
286
|
if (parentVariantKey && parentVariantKey === key) {
|
|
271
287
|
res[subKey] =
|
|
272
|
-
// SYNC WITH *1
|
|
273
288
|
val[0] === '$' ? getTokenForKey(subKey, val, styleProps, styleState) : val
|
|
274
289
|
} else {
|
|
275
290
|
const variantOut = resolveVariants(subKey, val, styleProps, styleState, key)
|
|
@@ -301,15 +316,12 @@ const resolveTokensAndVariants: StyleResolver<object> = (
|
|
|
301
316
|
}
|
|
302
317
|
|
|
303
318
|
if (typeof val === 'string') {
|
|
304
|
-
// SYNC WITH *1
|
|
305
319
|
const fVal =
|
|
306
320
|
val[0] === '$'
|
|
307
321
|
? getTokenForKey(subKey, val, styleProps, styleState)
|
|
308
|
-
:
|
|
309
|
-
? resolveRem(val)
|
|
310
|
-
: val
|
|
322
|
+
: resolveCompoundTokens(subKey, val, styleProps, styleState)
|
|
311
323
|
|
|
312
|
-
res[subKey] = fVal
|
|
324
|
+
res[subKey] = fVal === val && isRemValue(val) ? resolveRem(val) : fVal
|
|
313
325
|
continue
|
|
314
326
|
}
|
|
315
327
|
|
|
@@ -351,7 +363,12 @@ const tokenCats = ['size', 'color', 'radius', 'space', 'zIndex'].map((name) => (
|
|
|
351
363
|
}))
|
|
352
364
|
|
|
353
365
|
// goes through specificity finding best matching variant function
|
|
354
|
-
function getVariantDefinition(
|
|
366
|
+
function getVariantDefinition(
|
|
367
|
+
variant: any,
|
|
368
|
+
value: any,
|
|
369
|
+
conf: TamaguiInternalConfig,
|
|
370
|
+
{ theme }: Partial<GetStyleState>
|
|
371
|
+
) {
|
|
355
372
|
if (!variant) return
|
|
356
373
|
if (typeof variant === 'function') {
|
|
357
374
|
return variant
|
|
@@ -363,8 +380,18 @@ function getVariantDefinition(variant: any, value: any, conf: TamaguiInternalCon
|
|
|
363
380
|
if (value != null) {
|
|
364
381
|
const { tokensParsed } = conf
|
|
365
382
|
for (const { name, spreadName } of tokenCats) {
|
|
366
|
-
if (spreadName in variant
|
|
367
|
-
|
|
383
|
+
if (spreadName in variant) {
|
|
384
|
+
// check tokens first
|
|
385
|
+
if (name in tokensParsed && value in tokensParsed[name]) {
|
|
386
|
+
return variant[spreadName]
|
|
387
|
+
}
|
|
388
|
+
// or check theme (only color lives in theme, others are in tokens)
|
|
389
|
+
if (name === 'color' && theme && typeof value === 'string' && value[0] === '$') {
|
|
390
|
+
const themeKey = value.slice(1)
|
|
391
|
+
if (themeKey in theme) {
|
|
392
|
+
return variant[spreadName]
|
|
393
|
+
}
|
|
394
|
+
}
|
|
368
395
|
}
|
|
369
396
|
}
|
|
370
397
|
const fontSizeVariant = variant['...fontSize']
|
|
@@ -375,186 +402,3 @@ function getVariantDefinition(variant: any, value: any, conf: TamaguiInternalCon
|
|
|
375
402
|
// fallback to catch all | size
|
|
376
403
|
return variant[`:${typeof value}`] || variant['...']
|
|
377
404
|
}
|
|
378
|
-
|
|
379
|
-
const fontShorthand = {
|
|
380
|
-
fontSize: 'size',
|
|
381
|
-
fontWeight: 'weight',
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
let lastFontFamilyToken: any = null
|
|
385
|
-
let didLogMissingToken = false
|
|
386
|
-
|
|
387
|
-
export const getTokenForKey = (
|
|
388
|
-
key: string,
|
|
389
|
-
value: string,
|
|
390
|
-
styleProps: SplitStyleProps,
|
|
391
|
-
styleState: Partial<GetStyleState>
|
|
392
|
-
) => {
|
|
393
|
-
let resolveAs = styleProps.resolveValues || 'none'
|
|
394
|
-
|
|
395
|
-
if (resolveAs === 'none') {
|
|
396
|
-
return value
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// handle safe area tokens: $safeAreaTop, $safeAreaBottom, $safeAreaLeft, $safeAreaRight
|
|
400
|
-
// const safeAreaValue = resolveSafeAreaValue(value)
|
|
401
|
-
// if (safeAreaValue !== undefined) {
|
|
402
|
-
// return safeAreaValue
|
|
403
|
-
// }
|
|
404
|
-
|
|
405
|
-
const { theme, conf = getConfig(), context, fontFamily, staticConfig } = styleState
|
|
406
|
-
|
|
407
|
-
const themeValue = theme ? theme[value] || theme[value.slice(1)] : undefined
|
|
408
|
-
|
|
409
|
-
const tokensParsed = conf.tokensParsed
|
|
410
|
-
let valOrVar: any
|
|
411
|
-
let hasSet = false
|
|
412
|
-
|
|
413
|
-
const customTokenAccept = staticConfig?.accept?.[key]
|
|
414
|
-
if (customTokenAccept) {
|
|
415
|
-
const val = themeValue ?? tokensParsed[customTokenAccept][value]
|
|
416
|
-
if (val != null) {
|
|
417
|
-
resolveAs = 'value' // always resolve custom tokens as values
|
|
418
|
-
valOrVar = val
|
|
419
|
-
hasSet = true
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
if (themeValue) {
|
|
424
|
-
if (resolveAs === 'except-theme') {
|
|
425
|
-
return value
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
valOrVar = themeValue
|
|
429
|
-
if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
|
|
430
|
-
globalThis.tamaguiAvoidTracking = true
|
|
431
|
-
console.info(
|
|
432
|
-
` - resolving ${key} to theme value ${value} resolveAs ${resolveAs}`,
|
|
433
|
-
valOrVar
|
|
434
|
-
)
|
|
435
|
-
globalThis.tamaguiAvoidTracking = false
|
|
436
|
-
}
|
|
437
|
-
hasSet = true
|
|
438
|
-
} else {
|
|
439
|
-
if (value in conf.specificTokens) {
|
|
440
|
-
hasSet = true
|
|
441
|
-
valOrVar = conf.specificTokens[value]
|
|
442
|
-
} else {
|
|
443
|
-
switch (key) {
|
|
444
|
-
case 'fontFamily': {
|
|
445
|
-
const fontsParsed = context?.language
|
|
446
|
-
? getFontsForLanguage(conf.fontsParsed, context.language)
|
|
447
|
-
: conf.fontsParsed
|
|
448
|
-
valOrVar = fontsParsed[value]?.family || value
|
|
449
|
-
lastFontFamilyToken = value
|
|
450
|
-
hasSet = true
|
|
451
|
-
break
|
|
452
|
-
}
|
|
453
|
-
case 'fontSize':
|
|
454
|
-
case 'lineHeight':
|
|
455
|
-
case 'letterSpacing':
|
|
456
|
-
case 'fontWeight': {
|
|
457
|
-
const fam = fontFamily || conf.defaultFontToken
|
|
458
|
-
if (fam) {
|
|
459
|
-
const fontsParsed = context?.language
|
|
460
|
-
? getFontsForLanguage(conf.fontsParsed, context.language)
|
|
461
|
-
: conf.fontsParsed
|
|
462
|
-
const font = fontsParsed[fam] || fontsParsed[conf.defaultFontToken]
|
|
463
|
-
valOrVar = font?.[fontShorthand[key] || key]?.[value] || value
|
|
464
|
-
hasSet = true
|
|
465
|
-
}
|
|
466
|
-
break
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
for (const cat in tokenCategories) {
|
|
470
|
-
if (key in tokenCategories[cat]) {
|
|
471
|
-
const res = tokensParsed[cat]?.[value]
|
|
472
|
-
|
|
473
|
-
if (res != null) {
|
|
474
|
-
valOrVar = res
|
|
475
|
-
hasSet = true
|
|
476
|
-
} else {
|
|
477
|
-
if (process.env.NODE_ENV === 'development') {
|
|
478
|
-
if (process.env.TAMAGUI_DISABLE_MISSING_TOKEN_LOG !== '1') {
|
|
479
|
-
if (!didLogMissingToken) {
|
|
480
|
-
didLogMissingToken = true
|
|
481
|
-
console.groupCollapsed(
|
|
482
|
-
`[tamagui] Warning: missing token ${key} in category ${cat} - ${value} (open for details)`
|
|
483
|
-
)
|
|
484
|
-
console.info(
|
|
485
|
-
`Note: this could just be due to you not setting all the theme tokens Tamagui expects, which is harmless, but
|
|
486
|
-
it also often can be because you have a duplicated Tamagui in your bundle, which can cause tricky bugs.`
|
|
487
|
-
)
|
|
488
|
-
console.info(
|
|
489
|
-
`To see if you have duplicated dependencies, in Chrome DevTools hit CMD+P and type TamaguiProvider.
|
|
490
|
-
If you see both a .cjs and a .mjs entry, it's duplicated.`
|
|
491
|
-
)
|
|
492
|
-
console.info(
|
|
493
|
-
`You can debug that issue by opening the .mjs and .cjs files and setting a breakpoint at the top of each.`
|
|
494
|
-
)
|
|
495
|
-
console.info(
|
|
496
|
-
`We only log this warning one time as it's sometimes harmless, to disable this log entirely set process.env.TAMAGUI_DISABLE_MISSING_TOKEN_LOG=1.`
|
|
497
|
-
)
|
|
498
|
-
console.groupEnd()
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
if (!hasSet) {
|
|
508
|
-
const spaceVar = tokensParsed.space[value]
|
|
509
|
-
if (spaceVar != null) {
|
|
510
|
-
valOrVar = spaceVar
|
|
511
|
-
hasSet = true
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
if (hasSet) {
|
|
517
|
-
const out = resolveVariableValue(key, valOrVar, resolveAs)
|
|
518
|
-
if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
|
|
519
|
-
globalThis.tamaguiAvoidTracking = true
|
|
520
|
-
console.info(`resolved`, resolveAs, valOrVar, out)
|
|
521
|
-
globalThis.tamaguiAvoidTracking = false
|
|
522
|
-
}
|
|
523
|
-
return out
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
// they didn't define this token don't return anything, we could warn?
|
|
527
|
-
|
|
528
|
-
if (process.env.NODE_ENV === 'development' && styleState.debug === 'verbose') {
|
|
529
|
-
console.warn(`Warning: no token found for ${key}, omitting`)
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
function resolveVariableValue(
|
|
534
|
-
key: string,
|
|
535
|
-
valOrVar: Variable | any,
|
|
536
|
-
resolveValues?: ResolveVariableAs
|
|
537
|
-
) {
|
|
538
|
-
if (resolveValues === 'none') {
|
|
539
|
-
return valOrVar
|
|
540
|
-
}
|
|
541
|
-
if (isVariable(valOrVar)) {
|
|
542
|
-
if (resolveValues === 'value') {
|
|
543
|
-
return valOrVar.val
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
// @ts-expect-error this is fine until we can type better
|
|
547
|
-
const get = valOrVar?.get
|
|
548
|
-
|
|
549
|
-
// shadowColor doesn't support dynamic style
|
|
550
|
-
if (process.env.TAMAGUI_TARGET !== 'native' || key !== 'shadowColor') {
|
|
551
|
-
if (typeof get === 'function') {
|
|
552
|
-
const resolveDynamicFor = resolveValues === 'web' ? 'web' : undefined
|
|
553
|
-
return get(resolveDynamicFor)
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
return process.env.TAMAGUI_TARGET === 'native' ? valOrVar.val : valOrVar.variable
|
|
558
|
-
}
|
|
559
|
-
return valOrVar
|
|
560
|
-
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { TransitionProp, PseudoTransitions, TamaguiComponentState } from '../types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Pseudo state for tracking enter/exit transitions
|
|
5
|
+
*/
|
|
6
|
+
export type PseudoState = {
|
|
7
|
+
hover?: boolean
|
|
8
|
+
press?: boolean
|
|
9
|
+
focus?: boolean
|
|
10
|
+
// track group pseudo states: { groupName: { hover: boolean, press: boolean } }
|
|
11
|
+
groups?: Record<string, { hover?: boolean; press?: boolean; focus?: boolean }>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Resolves the effective transition based on pseudo state changes.
|
|
16
|
+
* When entering a pseudo state (e.g., hover), use that pseudo's transition.
|
|
17
|
+
* When exiting (returning to base), use the base transition.
|
|
18
|
+
*
|
|
19
|
+
* CSS-like semantics:
|
|
20
|
+
* - Enter hover: Uses hover's transition (fast snap)
|
|
21
|
+
* - Exit hover: Uses base transition (slow fade)
|
|
22
|
+
*/
|
|
23
|
+
export function resolveEffectivePseudoTransition(
|
|
24
|
+
prev: PseudoState | undefined,
|
|
25
|
+
next: TamaguiComponentState,
|
|
26
|
+
pseudoTransitions: PseudoTransitions | undefined | null,
|
|
27
|
+
baseTransition: TransitionProp | undefined | null
|
|
28
|
+
): TransitionProp | undefined | null {
|
|
29
|
+
if (!pseudoTransitions) {
|
|
30
|
+
return baseTransition
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// treat undefined prev as all-false so first interaction detects entering
|
|
34
|
+
const prevState = prev || { hover: false, press: false, focus: false, groups: {} }
|
|
35
|
+
|
|
36
|
+
// check which pseudo states are being entered (priority: press > hover > focus)
|
|
37
|
+
if (next.press && !prevState.press && pseudoTransitions.pressStyle) {
|
|
38
|
+
return pseudoTransitions.pressStyle
|
|
39
|
+
}
|
|
40
|
+
if (next.hover && !prevState.hover && pseudoTransitions.hoverStyle) {
|
|
41
|
+
return pseudoTransitions.hoverStyle
|
|
42
|
+
}
|
|
43
|
+
if (next.focus && !prevState.focus && pseudoTransitions.focusStyle) {
|
|
44
|
+
return pseudoTransitions.focusStyle
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// check group pseudo transitions (e.g., $group-scenario4-hover)
|
|
48
|
+
for (const key in pseudoTransitions) {
|
|
49
|
+
if (key.startsWith('$group-')) {
|
|
50
|
+
// parse $group-{name}-{pseudo} format
|
|
51
|
+
const match = key.match(/^\$group-(.+)-(hover|press|focus)$/)
|
|
52
|
+
if (!match) continue
|
|
53
|
+
|
|
54
|
+
const groupName = match[1]
|
|
55
|
+
const pseudoType = match[2] as 'hover' | 'press' | 'focus'
|
|
56
|
+
|
|
57
|
+
// get current and previous group pseudo state
|
|
58
|
+
const nextGroupPseudo = next.group?.[groupName]?.pseudo
|
|
59
|
+
const prevGroupPseudo = prevState.groups?.[groupName]
|
|
60
|
+
|
|
61
|
+
// check if entering this group pseudo state
|
|
62
|
+
if (nextGroupPseudo?.[pseudoType] && !prevGroupPseudo?.[pseudoType]) {
|
|
63
|
+
return pseudoTransitions[key as `$group-${string}-${'hover' | 'press' | 'focus'}`]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// exiting uses base transition
|
|
69
|
+
return baseTransition
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Extracts pseudo state from TamaguiComponentState for storage in prevPseudoState
|
|
74
|
+
*/
|
|
75
|
+
export function extractPseudoState(state: TamaguiComponentState): PseudoState {
|
|
76
|
+
const groups: PseudoState['groups'] = {}
|
|
77
|
+
|
|
78
|
+
if (state.group) {
|
|
79
|
+
for (const groupName in state.group) {
|
|
80
|
+
const pseudo = state.group[groupName]?.pseudo
|
|
81
|
+
if (pseudo) {
|
|
82
|
+
groups[groupName] = {
|
|
83
|
+
hover: pseudo.hover,
|
|
84
|
+
press: pseudo.press,
|
|
85
|
+
focus: pseudo.focus,
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
hover: state.hover,
|
|
93
|
+
press: state.press,
|
|
94
|
+
focus: state.focus,
|
|
95
|
+
groups,
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AnimationDriver } from '../types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Resolves a value that might be an AnimationDriver or a multi-driver config object
|
|
5
|
+
* like { default: motionDriver, css: cssDriver } into an actual AnimationDriver.
|
|
6
|
+
*/
|
|
7
|
+
export function resolveAnimationDriver(
|
|
8
|
+
driver: AnimationDriver | Record<string, AnimationDriver> | null | undefined
|
|
9
|
+
): AnimationDriver | null {
|
|
10
|
+
if (!driver) return null
|
|
11
|
+
// valid driver
|
|
12
|
+
if (typeof (driver as any).useAnimations === 'function') {
|
|
13
|
+
return driver as AnimationDriver
|
|
14
|
+
}
|
|
15
|
+
// multi-driver object - extract default
|
|
16
|
+
if (
|
|
17
|
+
'default' in driver &&
|
|
18
|
+
typeof (driver as any).default?.useAnimations === 'function'
|
|
19
|
+
) {
|
|
20
|
+
return (driver as any).default
|
|
21
|
+
}
|
|
22
|
+
return null
|
|
23
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GetStyleState, SplitStyleProps } from '../types'
|
|
2
|
+
import { platformResolveValue } from './platformResolveValue'
|
|
3
|
+
|
|
4
|
+
const compoundKeys: Record<string, boolean> = {
|
|
5
|
+
boxShadow: true,
|
|
6
|
+
textShadow: true,
|
|
7
|
+
filter: true,
|
|
8
|
+
backgroundImage: true,
|
|
9
|
+
border: true,
|
|
10
|
+
outline: true,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* resolves embedded $tokens in compound CSS string values like
|
|
15
|
+
* boxShadow, textShadow, filter, backgroundImage, border, outline.
|
|
16
|
+
*
|
|
17
|
+
* returns the original value unchanged if no resolution is needed.
|
|
18
|
+
*/
|
|
19
|
+
export function resolveCompoundTokens(
|
|
20
|
+
key: string,
|
|
21
|
+
value: string,
|
|
22
|
+
styleProps: SplitStyleProps,
|
|
23
|
+
styleState: Partial<GetStyleState>
|
|
24
|
+
): any {
|
|
25
|
+
if (!value.includes('$')) return value
|
|
26
|
+
if (!compoundKeys[key]) return value
|
|
27
|
+
return platformResolveValue(key, value, styleProps, styleState)
|
|
28
|
+
}
|
package/src/helpers/skipProps.ts
CHANGED
|
@@ -13,6 +13,8 @@ export function themeable<ComponentType extends (props: any) => any>(
|
|
|
13
13
|
props: ThemeableProps,
|
|
14
14
|
ref
|
|
15
15
|
) {
|
|
16
|
+
'use no memo'
|
|
17
|
+
|
|
16
18
|
const userDefaults = getDefaultProps(staticConfig, props.componentName)
|
|
17
19
|
const defaultTheme = userDefaults?.theme
|
|
18
20
|
const defaultResetTheme = userDefaults?.themeReset
|
|
@@ -24,7 +26,7 @@ export function themeable<ComponentType extends (props: any) => any>(
|
|
|
24
26
|
for (const key in context.props) {
|
|
25
27
|
const val = props[key]
|
|
26
28
|
if (val !== undefined) {
|
|
27
|
-
overriddenContextProps
|
|
29
|
+
overriddenContextProps = overriddenContextProps || {}
|
|
28
30
|
overriddenContextProps[key] = val
|
|
29
31
|
}
|
|
30
32
|
}
|
|
@@ -48,19 +50,19 @@ export function themeable<ComponentType extends (props: any) => any>(
|
|
|
48
50
|
|
|
49
51
|
const compName = componentName || staticConfig?.componentName
|
|
50
52
|
if (compName) {
|
|
51
|
-
filteredProps
|
|
53
|
+
filteredProps = filteredProps || {}
|
|
52
54
|
filteredProps.componentName = compName
|
|
53
55
|
}
|
|
54
56
|
if ('debug' in props) {
|
|
55
|
-
filteredProps
|
|
57
|
+
filteredProps = filteredProps || {}
|
|
56
58
|
filteredProps.debug = props.debug
|
|
57
59
|
}
|
|
58
60
|
if ('theme' in props || defaultTheme) {
|
|
59
|
-
filteredProps
|
|
61
|
+
filteredProps = filteredProps || {}
|
|
60
62
|
filteredProps.name = 'theme' in props ? props.theme : defaultTheme
|
|
61
63
|
}
|
|
62
64
|
if ('themeReset' in props || defaultResetTheme) {
|
|
63
|
-
filteredProps
|
|
65
|
+
filteredProps = filteredProps || {}
|
|
64
66
|
filteredProps.reset = 'themeReset' in props ? themeReset : defaultResetTheme
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -31,6 +31,13 @@ export function evaluateRenderProp(
|
|
|
31
31
|
|
|
32
32
|
// String tag - swap element type, reuse props from defaultElement
|
|
33
33
|
if (typeof render === 'string') {
|
|
34
|
+
// on native, ignore lowercase tags (html/jsx elements like "div", "span")
|
|
35
|
+
if (
|
|
36
|
+
process.env.TAMAGUI_TARGET === 'native' &&
|
|
37
|
+
render[0] === render[0].toLowerCase()
|
|
38
|
+
) {
|
|
39
|
+
return defaultElement
|
|
40
|
+
}
|
|
34
41
|
return createElement(render, props, defaultChildren)
|
|
35
42
|
}
|
|
36
43
|
|
|
@@ -27,6 +27,8 @@ export const useComponentState = (
|
|
|
27
27
|
staticConfig: StaticConfig,
|
|
28
28
|
config: TamaguiInternalConfig
|
|
29
29
|
) => {
|
|
30
|
+
'use no memo'
|
|
31
|
+
|
|
30
32
|
const isHydrated = useDidFinishSSR()
|
|
31
33
|
const needsHydration = !useIsClientOnly()
|
|
32
34
|
|
|
@@ -53,10 +55,8 @@ export const useComponentState = (
|
|
|
53
55
|
(props.style && hasAnimatedStyleValue(props.style))
|
|
54
56
|
)
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
animationDriver?.inputStyle ?? (animationDriver?.supportsCSS ? 'css' : 'inline')
|
|
59
|
-
const supportsCSS = inputStyle === 'css'
|
|
58
|
+
const inputStyle = animationDriver?.inputStyle ?? 'css'
|
|
59
|
+
const outputStyle = animationDriver?.outputStyle ?? 'css'
|
|
60
60
|
const curStateRef = stateRef.current
|
|
61
61
|
|
|
62
62
|
if (!needsHydration && hasAnimationProp) {
|
|
@@ -92,7 +92,9 @@ export const useComponentState = (
|
|
|
92
92
|
const hasEnterStyle = !!props.enterStyle
|
|
93
93
|
|
|
94
94
|
const hasAnimationThatNeedsHydrate =
|
|
95
|
-
hasAnimationProp &&
|
|
95
|
+
hasAnimationProp &&
|
|
96
|
+
!isHydrated &&
|
|
97
|
+
(animationDriver?.isReactNative || inputStyle !== 'css')
|
|
96
98
|
|
|
97
99
|
const canImmediatelyEnter = hasEnterStyle || isEntering
|
|
98
100
|
|
|
@@ -206,8 +208,8 @@ export const useComponentState = (
|
|
|
206
208
|
const isDisabledManually = disableClassName && !state.unmounted
|
|
207
209
|
|
|
208
210
|
if (
|
|
209
|
-
// Only disable className for animation drivers that
|
|
210
|
-
(isAnimatedAndHydrated &&
|
|
211
|
+
// Only disable className for animation drivers that output inline styles (not css)
|
|
212
|
+
(isAnimatedAndHydrated && outputStyle !== 'css') ||
|
|
211
213
|
isDisabledManually ||
|
|
212
214
|
isClassNameDisabled
|
|
213
215
|
) {
|
|
@@ -241,7 +243,8 @@ export const useComponentState = (
|
|
|
241
243
|
noClass,
|
|
242
244
|
state,
|
|
243
245
|
stateRef,
|
|
244
|
-
|
|
246
|
+
inputStyle,
|
|
247
|
+
outputStyle,
|
|
245
248
|
willBeAnimated,
|
|
246
249
|
willBeAnimatedClient,
|
|
247
250
|
}
|