@tamagui/web 2.0.0-rc.3 → 2.0.0-rc.31
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 +63 -16
- 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.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 +63 -16
- 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 +80 -53
- 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 +118 -25
- 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 +2 -2
- 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 +4 -5
- 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/index.js +0 -108
- package/dist/cjs/index.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
package/src/types.tsx
CHANGED
|
@@ -426,7 +426,7 @@ export type FontLanguageProps = LanguageContextType & {
|
|
|
426
426
|
|
|
427
427
|
export type ThemeProviderProps = {
|
|
428
428
|
className?: string
|
|
429
|
-
defaultTheme: string
|
|
429
|
+
defaultTheme: string | null | undefined
|
|
430
430
|
/** @deprecated moved to createTamagui({ settings: { disableRootThemeClass } }) */
|
|
431
431
|
disableRootThemeClass?: boolean
|
|
432
432
|
/** @deprecated moved to createTamagui({ settings: { themeClassNameOnRoot } }) */
|
|
@@ -612,6 +612,14 @@ export type TamaguiComponentStateRef = {
|
|
|
612
612
|
|
|
613
613
|
// cleanup function for media emit listener
|
|
614
614
|
mediaEmitCleanup?: () => void
|
|
615
|
+
|
|
616
|
+
// previous pseudo state for detecting enter vs exit transitions
|
|
617
|
+
prevPseudoState?: {
|
|
618
|
+
hover?: boolean
|
|
619
|
+
press?: boolean
|
|
620
|
+
focus?: boolean
|
|
621
|
+
groups?: Record<string, { hover?: boolean; press?: boolean; focus?: boolean }>
|
|
622
|
+
}
|
|
615
623
|
}
|
|
616
624
|
|
|
617
625
|
export type ComponentGroupEmitter = {
|
|
@@ -789,6 +797,12 @@ export type OnlyAllowShorthandsSetting = TamaguiConfig['settings'] extends {
|
|
|
789
797
|
? X
|
|
790
798
|
: false
|
|
791
799
|
|
|
800
|
+
export type OnlyShorthandStylePropsSetting = TamaguiConfig['settings'] extends {
|
|
801
|
+
onlyShorthandStyleProps: infer X
|
|
802
|
+
}
|
|
803
|
+
? X
|
|
804
|
+
: false
|
|
805
|
+
|
|
792
806
|
export type CreateTamaguiConfig<
|
|
793
807
|
A extends GenericTokens,
|
|
794
808
|
B extends GenericThemes,
|
|
@@ -797,6 +811,9 @@ export type CreateTamaguiConfig<
|
|
|
797
811
|
E extends GenericAnimations = GenericAnimations,
|
|
798
812
|
F extends GenericFonts = GenericFonts,
|
|
799
813
|
H extends GenericTamaguiSettings = GenericTamaguiSettings,
|
|
814
|
+
// preserve the raw animation driver keys ('default' | 'css' | etc)
|
|
815
|
+
// defaults to string so generic TamaguiInternalConfig accepts any driver keys
|
|
816
|
+
AnimDriverKeys extends string = string,
|
|
800
817
|
> = {
|
|
801
818
|
fonts: RemoveLanguagePostfixes<F>
|
|
802
819
|
fontLanguages: GetLanguagePostfixes<F> extends never
|
|
@@ -815,6 +832,8 @@ export type CreateTamaguiConfig<
|
|
|
815
832
|
// Multi-driver: { default: cssDriver, spring: motiDriver }
|
|
816
833
|
// Single: AnimationDriver<E>
|
|
817
834
|
animations: AnimationDriver<E> | AnimationsConfigObject
|
|
835
|
+
// phantom type for preserving driver keys - never set at runtime, only for type inference
|
|
836
|
+
animationDriverKeys?: AnimDriverKeys
|
|
818
837
|
settings: H
|
|
819
838
|
}
|
|
820
839
|
|
|
@@ -880,6 +899,16 @@ type ExtractAnimationConfig<E> =
|
|
|
880
899
|
? E
|
|
881
900
|
: EmptyAnimations
|
|
882
901
|
|
|
902
|
+
// Helper to extract animation driver keys from raw animations prop
|
|
903
|
+
// Single driver: returns 'default'
|
|
904
|
+
// Multi-driver { default: x, css: y }: returns 'default' | 'css'
|
|
905
|
+
type ExtractAnimationDriverKeys<E> =
|
|
906
|
+
E extends AnimationDriver<any>
|
|
907
|
+
? 'default'
|
|
908
|
+
: E extends { default: AnimationDriver<any> }
|
|
909
|
+
? Extract<keyof E, string>
|
|
910
|
+
: 'default'
|
|
911
|
+
|
|
883
912
|
export type InferTamaguiConfig<Conf> =
|
|
884
913
|
Conf extends ConfProps<infer A, infer B, infer C, infer D, infer E, infer F, infer H>
|
|
885
914
|
? TamaguiInternalConfig<
|
|
@@ -889,7 +918,8 @@ export type InferTamaguiConfig<Conf> =
|
|
|
889
918
|
D extends GenericMedia ? D : EmptyMedia,
|
|
890
919
|
ExtractAnimationConfig<E>,
|
|
891
920
|
F extends GenericFonts ? F : EmptyFonts,
|
|
892
|
-
H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings
|
|
921
|
+
H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings,
|
|
922
|
+
ExtractAnimationDriverKeys<E>
|
|
893
923
|
>
|
|
894
924
|
: unknown
|
|
895
925
|
|
|
@@ -948,7 +978,10 @@ export type ThemeTokens = `$${ThemeKeys}`
|
|
|
948
978
|
// Animation names (slow, fast, bouncy) for the `transition` prop
|
|
949
979
|
// Extract animation keys from the driver's `animations` property
|
|
950
980
|
// The AnimationDriver<Config> has an `animations: Config` property
|
|
951
|
-
|
|
981
|
+
// Use Extract<keyof A, string> to filter out number/symbol keys from fallback case
|
|
982
|
+
type GetAnimationsFromDriver<T> = T extends { animations: infer A }
|
|
983
|
+
? Extract<keyof A, string>
|
|
984
|
+
: never
|
|
952
985
|
|
|
953
986
|
// For multi-driver configs like { default: AnimationDriver, css: AnimationDriver }
|
|
954
987
|
// Extract from the 'default' driver or first driver found
|
|
@@ -970,21 +1003,18 @@ type InferredTransitionKeys =
|
|
|
970
1003
|
export type TransitionKeys = InferredTransitionKeys
|
|
971
1004
|
|
|
972
1005
|
// Driver keys (default, css, spring) for the `animatedBy` prop
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
? keyof TamaguiConfig['animations']
|
|
978
|
-
: 'default'
|
|
979
|
-
|
|
980
|
-
// Combine inferred keys from config with TypeOverride keys
|
|
981
|
-
// This ensures both config-defined drivers AND lazy-loaded drivers are available
|
|
1006
|
+
// Gets driver keys directly from TamaguiConfig.animationDriverKeys
|
|
1007
|
+
// Falls back to 'default' only when TamaguiCustomConfig is empty (no augmentation)
|
|
1008
|
+
// The Exclude<X, undefined> handles optional property, then we intersect with string
|
|
1009
|
+
// to ensure only string keys (not symbols/numbers)
|
|
982
1010
|
export type AnimationDriverKeys =
|
|
983
1011
|
| 'default'
|
|
984
|
-
|
|
|
1012
|
+
| Extract<Exclude<TamaguiConfig['animationDriverKeys'], undefined>, string>
|
|
1013
|
+
// add TypeOverride keys for lazy-loaded drivers
|
|
985
1014
|
| (ReturnType<TypeOverride['animationDrivers']> extends 1
|
|
986
1015
|
? never
|
|
987
1016
|
: ReturnType<TypeOverride['animationDrivers']>)
|
|
1017
|
+
|
|
988
1018
|
export type FontLanguages = ArrayIntersection<TamaguiConfig['fontLanguages']>
|
|
989
1019
|
|
|
990
1020
|
export interface ThemeProps {
|
|
@@ -1208,6 +1238,23 @@ export interface GenericTamaguiSettings {
|
|
|
1208
1238
|
* @default 16
|
|
1209
1239
|
*/
|
|
1210
1240
|
remBaseFontSize?: number
|
|
1241
|
+
|
|
1242
|
+
/**
|
|
1243
|
+
* When true, removes the individual longhand style props for border,
|
|
1244
|
+
* outline, and shadow (borderWidth, borderStyle, borderColor,
|
|
1245
|
+
* outlineWidth, outlineStyle, outlineColor, outlineOffset,
|
|
1246
|
+
* shadowColor, shadowOffset, shadowOpacity, shadowRadius) from the
|
|
1247
|
+
* type system, encouraging use of the combined shorthand props instead
|
|
1248
|
+
* (`border`, `outline`, `boxShadow`).
|
|
1249
|
+
*
|
|
1250
|
+
* This avoids specificity issues when mixing shorthand and longhand
|
|
1251
|
+
* props in atomic CSS output.
|
|
1252
|
+
*
|
|
1253
|
+
* Note: this is type-level only - it does not change runtime behavior.
|
|
1254
|
+
*
|
|
1255
|
+
* @default false
|
|
1256
|
+
*/
|
|
1257
|
+
onlyShorthandStyleProps?: boolean
|
|
1211
1258
|
}
|
|
1212
1259
|
|
|
1213
1260
|
export type TamaguiSettings = TamaguiConfig['settings']
|
|
@@ -1282,8 +1329,11 @@ export type TamaguiInternalConfig<
|
|
|
1282
1329
|
E extends GenericAnimations = GenericAnimations,
|
|
1283
1330
|
F extends GenericFonts = GenericFonts,
|
|
1284
1331
|
G extends GenericTamaguiSettings = GenericTamaguiSettings,
|
|
1332
|
+
// preserve the raw animation driver keys ('default' | 'css' | etc)
|
|
1333
|
+
// defaults to string so generic TamaguiInternalConfig accepts any driver keys
|
|
1334
|
+
AnimDriverKeys extends string = string,
|
|
1285
1335
|
> = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &
|
|
1286
|
-
Omit<CreateTamaguiConfig<A, B, C, D, E, F, G>, 'tokens'> & {
|
|
1336
|
+
Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, AnimDriverKeys>, 'tokens'> & {
|
|
1287
1337
|
// TODO need to make it this but this breaks types, revisit
|
|
1288
1338
|
// animations: E //AnimationDriver<E>
|
|
1289
1339
|
// with $ prefixes for fast lookups (one time cost at startup vs every render)
|
|
@@ -1302,6 +1352,9 @@ export type TamaguiInternalConfig<
|
|
|
1302
1352
|
settings: Omit<GenericTamaguiSettings, keyof G> & G
|
|
1303
1353
|
defaultFont?: string
|
|
1304
1354
|
defaultFontToken: `${string}`
|
|
1355
|
+
// multi-driver animation config (e.g., { default: motionDriver, css: cssDriver })
|
|
1356
|
+
// used for component-level driver selection via animatedBy prop
|
|
1357
|
+
animationDrivers?: Record<string, AnimationDriver>
|
|
1305
1358
|
}
|
|
1306
1359
|
|
|
1307
1360
|
export type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']
|
|
@@ -1414,29 +1467,58 @@ export type MatchMedia = (query: string) => MediaQueryList
|
|
|
1414
1467
|
// TODO can override for better types
|
|
1415
1468
|
export type AnimationConfigType = any
|
|
1416
1469
|
|
|
1470
|
+
/**
|
|
1471
|
+
* Spring configuration parameters that can override preset defaults.
|
|
1472
|
+
* Use with array syntax: transition={['bouncy', { stiffness: 1000, damping: 70 }]}
|
|
1473
|
+
*/
|
|
1474
|
+
export type TransitionSpringConfig = {
|
|
1475
|
+
stiffness?: number
|
|
1476
|
+
damping?: number
|
|
1477
|
+
mass?: number
|
|
1478
|
+
tension?: number
|
|
1479
|
+
friction?: number
|
|
1480
|
+
velocity?: number
|
|
1481
|
+
overshootClamping?: boolean
|
|
1482
|
+
duration?: number
|
|
1483
|
+
bounciness?: number
|
|
1484
|
+
speed?: number
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1417
1487
|
export type TransitionProp =
|
|
1418
1488
|
| TransitionKeys
|
|
1419
|
-
| {
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
}
|
|
1426
|
-
}
|
|
1427
|
-
| [
|
|
1428
|
-
TransitionKeys,
|
|
1429
|
-
{
|
|
1430
|
-
delay?: number
|
|
1489
|
+
| ({
|
|
1490
|
+
default?: TransitionKeys
|
|
1491
|
+
enter?: TransitionKeys
|
|
1492
|
+
exit?: TransitionKeys
|
|
1493
|
+
delay?: number
|
|
1494
|
+
} & TransitionSpringConfig & {
|
|
1431
1495
|
[key: string]:
|
|
1432
1496
|
| TransitionKeys
|
|
1433
1497
|
| {
|
|
1434
|
-
type
|
|
1498
|
+
type: TransitionKeys
|
|
1435
1499
|
[key: string]: any
|
|
1436
1500
|
}
|
|
1437
1501
|
| number
|
|
1502
|
+
| boolean
|
|
1438
1503
|
| undefined
|
|
1439
|
-
}
|
|
1504
|
+
})
|
|
1505
|
+
| [
|
|
1506
|
+
TransitionKeys,
|
|
1507
|
+
{
|
|
1508
|
+
delay?: number
|
|
1509
|
+
enter?: TransitionKeys
|
|
1510
|
+
exit?: TransitionKeys
|
|
1511
|
+
} & TransitionSpringConfig & {
|
|
1512
|
+
[key: string]:
|
|
1513
|
+
| TransitionKeys
|
|
1514
|
+
| {
|
|
1515
|
+
type?: TransitionKeys
|
|
1516
|
+
[key: string]: any
|
|
1517
|
+
}
|
|
1518
|
+
| number
|
|
1519
|
+
| boolean
|
|
1520
|
+
| undefined
|
|
1521
|
+
},
|
|
1440
1522
|
]
|
|
1441
1523
|
|
|
1442
1524
|
/**
|
|
@@ -1615,11 +1697,13 @@ export type ColorTokens =
|
|
|
1615
1697
|
export type ZIndexTokens =
|
|
1616
1698
|
| SpecificTokensSpecial
|
|
1617
1699
|
| GetTokenString<keyof Tokens['zIndex']>
|
|
1700
|
+
| ThemeValueFallbackZIndex
|
|
1618
1701
|
| number
|
|
1619
1702
|
|
|
1620
1703
|
export type RadiusTokens =
|
|
1621
1704
|
| SpecificTokensSpecial
|
|
1622
1705
|
| GetTokenString<keyof Tokens['radius']>
|
|
1706
|
+
| ThemeValueFallbackRadius
|
|
1623
1707
|
| number
|
|
1624
1708
|
| RemString
|
|
1625
1709
|
|
|
@@ -1719,16 +1803,18 @@ export type ThemeValueByCategory<K extends string | number | symbol> = K extends
|
|
|
1719
1803
|
? ColorTokens
|
|
1720
1804
|
: K extends 'zIndex'
|
|
1721
1805
|
? ZIndexTokens
|
|
1722
|
-
: K extends '
|
|
1723
|
-
?
|
|
1724
|
-
: K extends '
|
|
1725
|
-
?
|
|
1726
|
-
: K extends '
|
|
1727
|
-
?
|
|
1728
|
-
: K extends
|
|
1729
|
-
?
|
|
1730
|
-
|
|
1731
|
-
|
|
1806
|
+
: K extends 'radius'
|
|
1807
|
+
? RadiusTokens
|
|
1808
|
+
: K extends 'lineHeight'
|
|
1809
|
+
? FontLineHeightTokens
|
|
1810
|
+
: K extends 'fontWeight'
|
|
1811
|
+
? FontWeightTokens
|
|
1812
|
+
: K extends 'letterSpacing'
|
|
1813
|
+
? FontLetterSpacingTokens
|
|
1814
|
+
: K extends keyof Tokens
|
|
1815
|
+
? // fallback to user-defined tokens
|
|
1816
|
+
GetTokenString<keyof Tokens[K]>
|
|
1817
|
+
: never
|
|
1732
1818
|
|
|
1733
1819
|
export type FontKeys = 'fontFamily'
|
|
1734
1820
|
export type FontSizeKeys = 'fontSize'
|
|
@@ -1741,21 +1827,21 @@ export type OpacityKeys = 'opacity'
|
|
|
1741
1827
|
export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme'
|
|
1742
1828
|
? ThemeTokens
|
|
1743
1829
|
: K extends SizeKeys
|
|
1744
|
-
? SizeTokens
|
|
1830
|
+
? SizeTokens
|
|
1745
1831
|
: K extends FontKeys
|
|
1746
1832
|
? FontTokens
|
|
1747
1833
|
: K extends FontSizeKeys
|
|
1748
1834
|
? FontSizeTokens
|
|
1749
1835
|
: K extends `${`border${string | ''}Radius`}`
|
|
1750
|
-
? RadiusTokens
|
|
1836
|
+
? RadiusTokens
|
|
1751
1837
|
: K extends SpaceKeys
|
|
1752
1838
|
? K extends 'shadowOffset'
|
|
1753
1839
|
? { width: SpaceTokens; height: SpaceTokens }
|
|
1754
|
-
: SpaceTokens
|
|
1840
|
+
: SpaceTokens
|
|
1755
1841
|
: K extends ColorKeys
|
|
1756
1842
|
? ColorTokens | ThemeValueFallbackColor
|
|
1757
1843
|
: K extends ZIndexKeys
|
|
1758
|
-
? ZIndexTokens
|
|
1844
|
+
? ZIndexTokens
|
|
1759
1845
|
: K extends LineHeightKeys
|
|
1760
1846
|
? FontLineHeightTokens
|
|
1761
1847
|
: K extends FontWeightKeys
|
|
@@ -1787,6 +1873,21 @@ export type NarrowShorthands = Narrow<Shorthands>
|
|
|
1787
1873
|
export type Longhands = NarrowShorthands[keyof NarrowShorthands]
|
|
1788
1874
|
|
|
1789
1875
|
type OnlyAllowShorthands = TamaguiConfig['settings']['onlyAllowShorthands']
|
|
1876
|
+
type OnlyShorthandStyleProps = TamaguiConfig['settings']['onlyShorthandStyleProps']
|
|
1877
|
+
|
|
1878
|
+
// longhand style props that overlap with border/outline/shadow shorthands
|
|
1879
|
+
type ShorthandLonghandProps =
|
|
1880
|
+
| 'borderWidth'
|
|
1881
|
+
| 'borderStyle'
|
|
1882
|
+
| 'borderColor'
|
|
1883
|
+
| 'outlineWidth'
|
|
1884
|
+
| 'outlineStyle'
|
|
1885
|
+
| 'outlineColor'
|
|
1886
|
+
| 'outlineOffset'
|
|
1887
|
+
| 'shadowColor'
|
|
1888
|
+
| 'shadowOffset'
|
|
1889
|
+
| 'shadowOpacity'
|
|
1890
|
+
| 'shadowRadius'
|
|
1790
1891
|
|
|
1791
1892
|
// adds shorthand props
|
|
1792
1893
|
export type WithShorthands<StyleProps> = {
|
|
@@ -1796,15 +1897,30 @@ export type WithShorthands<StyleProps> = {
|
|
|
1796
1897
|
}
|
|
1797
1898
|
|
|
1798
1899
|
// adds pseudo props
|
|
1900
|
+
// PseudoStyleWithTransition allows transition inside pseudo-style props for enter/exit timing
|
|
1901
|
+
export type PseudoStyleWithTransition<A> = A & { transition?: TransitionProp | null }
|
|
1902
|
+
|
|
1799
1903
|
export type WithPseudoProps<A> = {
|
|
1800
|
-
hoverStyle?: A | null
|
|
1801
|
-
pressStyle?: A | null
|
|
1802
|
-
focusStyle?: A | null
|
|
1803
|
-
focusWithinStyle?: A | null
|
|
1804
|
-
focusVisibleStyle?: A | null
|
|
1805
|
-
disabledStyle?: A | null
|
|
1806
|
-
exitStyle?: A | null
|
|
1807
|
-
enterStyle?: A | null
|
|
1904
|
+
hoverStyle?: PseudoStyleWithTransition<A> | null
|
|
1905
|
+
pressStyle?: PseudoStyleWithTransition<A> | null
|
|
1906
|
+
focusStyle?: PseudoStyleWithTransition<A> | null
|
|
1907
|
+
focusWithinStyle?: PseudoStyleWithTransition<A> | null
|
|
1908
|
+
focusVisibleStyle?: PseudoStyleWithTransition<A> | null
|
|
1909
|
+
disabledStyle?: PseudoStyleWithTransition<A> | null
|
|
1910
|
+
exitStyle?: PseudoStyleWithTransition<A> | null
|
|
1911
|
+
enterStyle?: PseudoStyleWithTransition<A> | null
|
|
1912
|
+
}
|
|
1913
|
+
|
|
1914
|
+
// type for transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
|
|
1915
|
+
// includes $group-*-hover, $group-*-press, $group-*-focus patterns
|
|
1916
|
+
export type PseudoTransitions = Partial<
|
|
1917
|
+
Record<keyof WithPseudoProps<any>, TransitionProp | null>
|
|
1918
|
+
> & {
|
|
1919
|
+
// allow $group-{name}-{pseudo} keys dynamically
|
|
1920
|
+
[key: `$group-${string}-${'hover' | 'press' | 'focus'}`]:
|
|
1921
|
+
| TransitionProp
|
|
1922
|
+
| null
|
|
1923
|
+
| undefined
|
|
1808
1924
|
}
|
|
1809
1925
|
|
|
1810
1926
|
export type PseudoPropKeys = keyof WithPseudoProps<any>
|
|
@@ -1827,12 +1943,18 @@ export type AllPlatforms = 'web' | 'native' | 'android' | 'ios'
|
|
|
1827
1943
|
//
|
|
1828
1944
|
// add both theme and shorthands
|
|
1829
1945
|
//
|
|
1946
|
+
type MaybeOmitLonghands<A> = OnlyShorthandStyleProps extends true
|
|
1947
|
+
? Omit<A, ShorthandLonghandProps>
|
|
1948
|
+
: A
|
|
1949
|
+
|
|
1830
1950
|
export type WithThemeAndShorthands<
|
|
1831
1951
|
A extends object,
|
|
1832
1952
|
Variants = {},
|
|
1833
1953
|
> = OnlyAllowShorthands extends true
|
|
1834
|
-
? WithThemeValues<Omit<A, Longhands
|
|
1835
|
-
|
|
1954
|
+
? WithThemeValues<MaybeOmitLonghands<Omit<A, Longhands>>> &
|
|
1955
|
+
Variants &
|
|
1956
|
+
WithShorthands<WithThemeValues<A>>
|
|
1957
|
+
: WithThemeValues<MaybeOmitLonghands<A>> & Variants & WithShorthands<WithThemeValues<A>>
|
|
1836
1958
|
|
|
1837
1959
|
//
|
|
1838
1960
|
// combines all of theme, shorthands, pseudos...
|
|
@@ -1932,6 +2054,18 @@ type BorderPreset =
|
|
|
1932
2054
|
// Note: on native, only supports a single border (all sides)
|
|
1933
2055
|
export type BorderValue = BorderPreset | (string & {})
|
|
1934
2056
|
|
|
2057
|
+
// outline shorthand presets - examples for autocomplete hints
|
|
2058
|
+
type OutlinePreset =
|
|
2059
|
+
| '1px solid' // width + style
|
|
2060
|
+
| '1px solid $outlineColor' // width + style + color token
|
|
2061
|
+
| '2px dashed $outlineColor' // width + style + color
|
|
2062
|
+
| '1px dotted red' // width + style + color
|
|
2063
|
+
| 'none'
|
|
2064
|
+
|
|
2065
|
+
// Outline - CSS shorthand string format (e.g. "2px solid $outlineColor")
|
|
2066
|
+
// Expands to outlineWidth, outlineStyle, outlineColor on native
|
|
2067
|
+
export type OutlineValue = OutlinePreset | (string & {})
|
|
2068
|
+
|
|
1935
2069
|
interface ExtraStyleProps {
|
|
1936
2070
|
/**
|
|
1937
2071
|
* Controls the curve style of rounded corners.
|
|
@@ -1965,6 +2099,12 @@ interface ExtraStyleProps {
|
|
|
1965
2099
|
* Outline width. Supported on web and native.
|
|
1966
2100
|
*/
|
|
1967
2101
|
outlineWidth?: SpaceValue
|
|
2102
|
+
/**
|
|
2103
|
+
* CSS outline shorthand string. Supports tokens: "2px solid $outlineColor"
|
|
2104
|
+
* Expands to outlineWidth, outlineStyle, outlineColor on native.
|
|
2105
|
+
* Works on web and native.
|
|
2106
|
+
*/
|
|
2107
|
+
outline?: OutlineValue
|
|
1968
2108
|
/**
|
|
1969
2109
|
* On native, maps to the `selectable` prop on Text (userSelect !== 'none')
|
|
1970
2110
|
*/
|
|
@@ -2613,6 +2753,10 @@ export type GetStyleState = {
|
|
|
2613
2753
|
// Track original token values (like '$8') before they get resolved to CSS vars
|
|
2614
2754
|
// This is used to preserve token strings in overriddenContextProps
|
|
2615
2755
|
originalContextPropValues?: Record<string, any>
|
|
2756
|
+
// Transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
|
|
2757
|
+
pseudoTransitions?: PseudoTransitions | null
|
|
2758
|
+
// Resolved animation driver (respects animatedBy prop)
|
|
2759
|
+
animationDriver?: AnimationDriver | null
|
|
2616
2760
|
}
|
|
2617
2761
|
|
|
2618
2762
|
export type StyleResolver<Response = PropMappedValue> = (
|
|
@@ -3051,18 +3195,15 @@ export type UseAnimatedNumber<
|
|
|
3051
3195
|
|
|
3052
3196
|
export type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {
|
|
3053
3197
|
isReactNative?: boolean
|
|
3054
|
-
supportsCSS?: boolean
|
|
3055
3198
|
/** What style format the driver expects as input: 'css' (CSS variables) or 'value' (resolved values) */
|
|
3056
3199
|
inputStyle?: 'css' | 'value'
|
|
3057
3200
|
/** How the driver outputs styles: 'css' (className-based) or 'inline' (style object) */
|
|
3058
3201
|
outputStyle?: 'css' | 'inline'
|
|
3059
|
-
|
|
3202
|
+
needsCustomComponent?: boolean
|
|
3060
3203
|
avoidReRenders?: boolean
|
|
3061
3204
|
onMount?: () => void
|
|
3062
3205
|
/** When true, this is a stub driver with no real animation support */
|
|
3063
3206
|
isStub?: boolean
|
|
3064
|
-
/** When true, the driver uses CSS classes for animations (doesn't need inline styles) */
|
|
3065
|
-
classNameAnimation?: boolean
|
|
3066
3207
|
useAnimations: UseAnimationHook
|
|
3067
3208
|
usePresence: () => UsePresenceResult
|
|
3068
3209
|
ResetPresence: (props: {
|
|
@@ -3079,7 +3220,10 @@ export type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {
|
|
|
3079
3220
|
|
|
3080
3221
|
export type UseAnimationProps = TamaguiComponentPropsBase & Record<string, any>
|
|
3081
3222
|
|
|
3082
|
-
type UseStyleListener = (
|
|
3223
|
+
type UseStyleListener = (
|
|
3224
|
+
nextStyle: Record<string, unknown>,
|
|
3225
|
+
effectiveTransition?: TransitionProp | null
|
|
3226
|
+
) => void
|
|
3083
3227
|
export type UseStyleEmitter = (cb: UseStyleListener) => void
|
|
3084
3228
|
|
|
3085
3229
|
export type UseAnimationHook = (props: {
|
|
@@ -3123,6 +3267,10 @@ export type GetStyleResult = {
|
|
|
3123
3267
|
mediaGroups?: Set<string>
|
|
3124
3268
|
// Style values that override context props (for issues #3670, #3676)
|
|
3125
3269
|
overriddenContextProps?: Record<string, any>
|
|
3270
|
+
// Transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
|
|
3271
|
+
pseudoTransitions?: PseudoTransitions | null
|
|
3272
|
+
// Effective transition to use (accounts for entering pseudo states)
|
|
3273
|
+
effectiveTransition?: TransitionProp | null
|
|
3126
3274
|
}
|
|
3127
3275
|
|
|
3128
3276
|
export type ClassNamesObject = Record<string, string>
|
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
2
2
|
import { ClientOnly } from '@tamagui/use-did-finish-ssr'
|
|
3
3
|
import React, { useEffect } from 'react'
|
|
4
|
-
import {
|
|
4
|
+
import { getSetting } from '../config'
|
|
5
5
|
import { ComponentContext } from '../contexts/ComponentContext'
|
|
6
6
|
import { stopAccumulatingRules } from '../helpers/insertStyleRule'
|
|
7
7
|
import { updateMediaListeners } from '../hooks/useMedia'
|
|
8
|
+
import { resolveAnimationDriver } from '../helpers/resolveAnimationDriver'
|
|
8
9
|
import type { AnimationDriver, TamaguiProviderProps } from '../types'
|
|
10
|
+
import { TamaguiRoot } from './TamaguiRoot'
|
|
9
11
|
import { ThemeProvider } from './ThemeProvider'
|
|
10
12
|
|
|
13
|
+
// cache first theme key per config to avoid Object.keys allocation on every render
|
|
14
|
+
let _cachedFirstKey: string | undefined
|
|
15
|
+
let _cachedConfig: any
|
|
16
|
+
|
|
17
|
+
function firstThemeKey(config: any): string | undefined {
|
|
18
|
+
if (config !== _cachedConfig) {
|
|
19
|
+
_cachedConfig = config
|
|
20
|
+
_cachedFirstKey = config?.themes ? Object.keys(config.themes)[0] : undefined
|
|
21
|
+
}
|
|
22
|
+
return _cachedFirstKey
|
|
23
|
+
}
|
|
24
|
+
|
|
11
25
|
export function TamaguiProvider({
|
|
12
26
|
children,
|
|
13
27
|
disableInjectCSS,
|
|
14
28
|
config,
|
|
15
29
|
className,
|
|
16
|
-
defaultTheme,
|
|
30
|
+
defaultTheme: defaultThemeProp,
|
|
17
31
|
reset,
|
|
18
32
|
insets,
|
|
19
33
|
}: TamaguiProviderProps) {
|
|
34
|
+
// fall back to first theme when defaultTheme is null/undefined
|
|
35
|
+
// (e.g. useColorScheme() returns null on first render in RN 0.83+)
|
|
36
|
+
const defaultTheme = defaultThemeProp || firstThemeKey(config) || 'light'
|
|
20
37
|
useIsomorphicLayoutEffect(() => {
|
|
21
38
|
stopAccumulatingRules()
|
|
22
39
|
updateMediaListeners()
|
|
@@ -28,31 +45,28 @@ export function TamaguiProvider({
|
|
|
28
45
|
)
|
|
29
46
|
|
|
30
47
|
// Get the default animation driver from config
|
|
31
|
-
// animations
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
return animations
|
|
39
|
-
}, [config?.animations])
|
|
48
|
+
// config.animations is already normalized to the default driver in createTamagui
|
|
49
|
+
// resolveAnimationDriver handles edge cases where raw multi-driver object leaks through
|
|
50
|
+
const defaultAnimationDriver: AnimationDriver | null = React.useMemo(
|
|
51
|
+
() => resolveAnimationDriver(config?.animations),
|
|
52
|
+
[config?.animations]
|
|
53
|
+
)
|
|
40
54
|
|
|
41
55
|
useEffect(() => {
|
|
42
56
|
defaultAnimationDriver?.onMount?.()
|
|
43
57
|
}, [])
|
|
44
58
|
|
|
45
59
|
let contents = (
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
>
|
|
51
|
-
<
|
|
60
|
+
<ComponentContext.Provider
|
|
61
|
+
animationDriver={defaultAnimationDriver}
|
|
62
|
+
insets={memoizedInsets}
|
|
63
|
+
>
|
|
64
|
+
<ThemeProvider defaultTheme={defaultTheme} reset={reset} className={className}>
|
|
65
|
+
<TamaguiRoot theme={defaultTheme} isRootRoot>
|
|
52
66
|
{children}
|
|
53
|
-
</
|
|
54
|
-
</
|
|
55
|
-
</
|
|
67
|
+
</TamaguiRoot>
|
|
68
|
+
</ThemeProvider>
|
|
69
|
+
</ComponentContext.Provider>
|
|
56
70
|
)
|
|
57
71
|
|
|
58
72
|
if (getSetting('disableSSR')) {
|
|
@@ -79,36 +93,3 @@ export function TamaguiProvider({
|
|
|
79
93
|
</>
|
|
80
94
|
)
|
|
81
95
|
}
|
|
82
|
-
|
|
83
|
-
// for CSS animations and default font inheritance
|
|
84
|
-
function UnmountedClassName(props: { children: React.ReactNode }) {
|
|
85
|
-
const [mounted, setMounted] = React.useState(false)
|
|
86
|
-
|
|
87
|
-
React.useEffect(() => {
|
|
88
|
-
setMounted(true)
|
|
89
|
-
}, [])
|
|
90
|
-
|
|
91
|
-
if (!isWeb) {
|
|
92
|
-
return props.children
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const config = getConfig()
|
|
96
|
-
const defaultFont = config.defaultFont
|
|
97
|
-
const fontClass = defaultFont ? `font_${defaultFont}` : ''
|
|
98
|
-
const className = [mounted ? '' : 't_unmounted', fontClass].filter(Boolean).join(' ')
|
|
99
|
-
|
|
100
|
-
return (
|
|
101
|
-
<span
|
|
102
|
-
style={{
|
|
103
|
-
display: 'contents',
|
|
104
|
-
// set default font so nested text inherits
|
|
105
|
-
fontFamily: defaultFont ? 'var(--f-family)' : undefined,
|
|
106
|
-
}}
|
|
107
|
-
className={className || undefined}
|
|
108
|
-
>
|
|
109
|
-
{props.children}
|
|
110
|
-
</span>
|
|
111
|
-
)
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
TamaguiProvider['displayName'] = 'TamaguiProvider'
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { getConfig } from '../config'
|
|
3
|
+
import { ThemeName } from '../types'
|
|
4
|
+
import { Theme } from './Theme'
|
|
5
|
+
|
|
6
|
+
let defaultFontClass = ''
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Applies default font class and CSS variable inheritance via display:contents.
|
|
10
|
+
* Used by TamaguiProvider at the root and by portals to re-establish font scope.
|
|
11
|
+
* Pass trackMount to also handle the t_unmounted class for CSS animation gating.
|
|
12
|
+
*/
|
|
13
|
+
export function TamaguiRoot({
|
|
14
|
+
children,
|
|
15
|
+
theme,
|
|
16
|
+
isRootRoot,
|
|
17
|
+
passThrough,
|
|
18
|
+
style,
|
|
19
|
+
}: {
|
|
20
|
+
children: React.ReactNode
|
|
21
|
+
theme: ThemeName
|
|
22
|
+
isRootRoot?: boolean
|
|
23
|
+
passThrough?: boolean
|
|
24
|
+
style?: React.CSSProperties
|
|
25
|
+
}) {
|
|
26
|
+
const [mounted, setMounted] = React.useState(!isRootRoot)
|
|
27
|
+
|
|
28
|
+
React.useEffect(() => {
|
|
29
|
+
if (!mounted) {
|
|
30
|
+
setMounted(true)
|
|
31
|
+
}
|
|
32
|
+
}, [])
|
|
33
|
+
|
|
34
|
+
// cache the font class name
|
|
35
|
+
if (!defaultFontClass) {
|
|
36
|
+
const config = getConfig()
|
|
37
|
+
const defaultFont = config.defaultFont
|
|
38
|
+
if (defaultFont) {
|
|
39
|
+
defaultFontClass = `font_${defaultFont}`
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const contents = (
|
|
44
|
+
<span
|
|
45
|
+
style={style}
|
|
46
|
+
// font_body (or default font) sets all font properties via shared CSS rule
|
|
47
|
+
className={`_dsp_contents ${mounted ? '' : 't_unmounted'} ${defaultFontClass}`}
|
|
48
|
+
>
|
|
49
|
+
{children}
|
|
50
|
+
</span>
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
// at root, ThemeProvider already applied theme - skip re-wrapping
|
|
54
|
+
// for portals/modals, we re-thread the theme so each root gets the right className setup
|
|
55
|
+
if (isRootRoot) {
|
|
56
|
+
return contents
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<Theme passThrough={passThrough} contain forceClassName name={theme}>
|
|
61
|
+
{contents}
|
|
62
|
+
</Theme>
|
|
63
|
+
)
|
|
64
|
+
}
|