@tamagui/web 2.0.0-rc.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -0
- package/.turbo/turbo-test$colon$web.log +15 -0
- package/dist/cjs/Tamagui.cjs +57 -53
- package/dist/cjs/Tamagui.native.js +95 -79
- package/dist/cjs/Tamagui.native.js.map +1 -1
- package/dist/cjs/_withStableStyle.cjs +56 -35
- package/dist/cjs/_withStableStyle.native.js +64 -46
- package/dist/cjs/_withStableStyle.native.js.map +1 -1
- package/dist/cjs/animationDriverTypes.test-d.cjs +39 -11
- package/dist/cjs/animationDriverTypes.test-d.native.js +39 -11
- package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -1
- package/dist/cjs/config.cjs +135 -75
- package/dist/cjs/config.native.js +158 -106
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants/accessibilityDirectMap.cjs +17 -15
- package/dist/cjs/constants/accessibilityDirectMap.native.js +17 -15
- package/dist/cjs/constants/accessibilityDirectMap.native.js.map +1 -1
- package/dist/cjs/constants/constants.cjs +17 -29
- package/dist/cjs/constants/constants.native.js +18 -29
- package/dist/cjs/constants/constants.native.js.map +1 -1
- package/dist/cjs/constants/isDevTools.cjs +18 -14
- package/dist/cjs/constants/isDevTools.native.js +18 -14
- package/dist/cjs/constants/isDevTools.native.js.map +1 -1
- package/dist/cjs/contexts/ComponentContext.cjs +24 -20
- package/dist/cjs/contexts/ComponentContext.native.js +25 -23
- package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
- package/dist/cjs/contexts/GroupContext.cjs +12 -10
- package/dist/cjs/contexts/GroupContext.native.js +14 -12
- package/dist/cjs/contexts/GroupContext.native.js.map +1 -1
- package/dist/cjs/createComponent.cjs +916 -636
- package/dist/cjs/createComponent.native.js +917 -692
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createFont.cjs +33 -27
- package/dist/cjs/createFont.native.js +35 -32
- package/dist/cjs/createFont.native.js.map +1 -1
- package/dist/cjs/createShorthands.cjs +12 -10
- package/dist/cjs/createShorthands.native.js +12 -10
- package/dist/cjs/createShorthands.native.js.map +1 -1
- package/dist/cjs/createTamagui.cjs +118 -97
- package/dist/cjs/createTamagui.native.js +155 -141
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/createTokens.cjs +12 -10
- package/dist/cjs/createTokens.native.js +12 -10
- package/dist/cjs/createTokens.native.js.map +1 -1
- package/dist/cjs/createVariable.cjs +57 -31
- package/dist/cjs/createVariable.native.js +67 -42
- package/dist/cjs/createVariable.native.js.map +1 -1
- package/dist/cjs/createVariables.cjs +55 -49
- package/dist/cjs/createVariables.native.js +57 -51
- package/dist/cjs/createVariables.native.js.map +1 -1
- package/dist/cjs/defaultComponentState.cjs +29 -27
- package/dist/cjs/defaultComponentState.native.js +29 -27
- package/dist/cjs/defaultComponentState.native.js.map +1 -1
- package/dist/cjs/eventHandling.cjs +15 -13
- package/dist/cjs/eventHandling.native.js +198 -92
- package/dist/cjs/eventHandling.native.js.map +1 -1
- package/dist/cjs/helpers/consoleLog.native.js +14 -12
- package/dist/cjs/helpers/consoleLog.native.js.map +1 -1
- package/dist/cjs/helpers/createDesignSystem.cjs +84 -44
- package/dist/cjs/helpers/createDesignSystem.native.js +118 -88
- package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/cjs/helpers/createMediaStyle.cjs +91 -61
- package/dist/cjs/helpers/createMediaStyle.native.js +97 -68
- package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -1
- package/dist/cjs/helpers/createStyledContext.cjs +84 -61
- package/dist/cjs/helpers/createStyledContext.native.js +88 -68
- package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
- package/dist/cjs/helpers/defaultAnimationDriver.cjs +29 -28
- package/dist/cjs/helpers/defaultAnimationDriver.native.js +45 -42
- package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
- package/dist/cjs/helpers/defaultOffset.cjs +12 -10
- package/dist/cjs/helpers/defaultOffset.native.js +12 -10
- package/dist/cjs/helpers/defaultOffset.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyle.cjs +54 -39
- package/dist/cjs/helpers/expandStyle.native.js +68 -77
- package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyles.cjs +24 -23
- package/dist/cjs/helpers/expandStyles.native.js +27 -21
- package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomic.cjs +110 -73
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js +17 -15
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/cjs/helpers/getDefaultProps.cjs +22 -23
- package/dist/cjs/helpers/getDefaultProps.native.js +27 -23
- package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
- package/dist/cjs/helpers/getDynamicVal.cjs +32 -27
- package/dist/cjs/helpers/getDynamicVal.native.js +37 -32
- package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/cjs/helpers/getExpandedShorthands.cjs +15 -11
- package/dist/cjs/helpers/getExpandedShorthands.native.js +17 -13
- package/dist/cjs/helpers/getExpandedShorthands.native.js.map +1 -1
- package/dist/cjs/helpers/getFontLanguage.cjs +12 -10
- package/dist/cjs/helpers/getFontLanguage.native.js +12 -10
- package/dist/cjs/helpers/getFontLanguage.native.js.map +1 -1
- package/dist/cjs/helpers/getGroupPropParts.cjs +27 -18
- package/dist/cjs/helpers/getGroupPropParts.native.js +28 -19
- package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -1
- package/dist/cjs/helpers/getShorthandValue.cjs +16 -11
- package/dist/cjs/helpers/getShorthandValue.native.js +19 -17
- package/dist/cjs/helpers/getShorthandValue.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +638 -395
- package/dist/cjs/helpers/getSplitStyles.native.js +754 -598
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.cjs +94 -88
- package/dist/cjs/helpers/getThemeCSSRules.native.js +12 -10
- package/dist/cjs/helpers/getThemeCSSRules.native.js.map +1 -1
- package/dist/cjs/helpers/getTokenForKey.cjs +174 -0
- package/dist/cjs/helpers/getTokenForKey.native.js +186 -0
- package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -0
- package/dist/cjs/helpers/getVariantExtras.cjs +60 -44
- package/dist/cjs/helpers/getVariantExtras.native.js +60 -44
- package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.cjs +109 -75
- package/dist/cjs/helpers/insertStyleRule.native.js +52 -263
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/cjs/helpers/isActivePlatform.cjs +21 -17
- package/dist/cjs/helpers/isActivePlatform.native.js +21 -17
- package/dist/cjs/helpers/isActivePlatform.native.js.map +1 -1
- package/dist/cjs/helpers/isActiveTheme.cjs +14 -11
- package/dist/cjs/helpers/isActiveTheme.native.js +14 -11
- package/dist/cjs/helpers/isActiveTheme.native.js.map +1 -1
- package/dist/cjs/helpers/isObj.cjs +13 -11
- package/dist/cjs/helpers/isObj.native.js +14 -12
- package/dist/cjs/helpers/isObj.native.js.map +1 -1
- package/dist/cjs/helpers/isTamaguiComponent.cjs +14 -12
- package/dist/cjs/helpers/isTamaguiComponent.native.js +14 -12
- package/dist/cjs/helpers/isTamaguiComponent.native.js.map +1 -1
- package/dist/cjs/helpers/isTamaguiElement.cjs +29 -25
- package/dist/cjs/helpers/isTamaguiElement.native.js +29 -27
- package/dist/cjs/helpers/isTamaguiElement.native.js.map +1 -1
- package/dist/cjs/helpers/log.cjs +20 -19
- package/dist/cjs/helpers/log.native.js +20 -19
- package/dist/cjs/helpers/log.native.js.map +1 -1
- package/dist/cjs/helpers/mainThreadPressEvents.cjs +13 -11
- package/dist/cjs/helpers/mainThreadPressEvents.native.js +111 -26
- package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/cjs/helpers/matchMedia.cjs +15 -13
- package/dist/cjs/helpers/matchMedia.native.js +34 -19
- package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
- package/dist/cjs/helpers/mediaObjectToString.cjs +30 -14
- package/dist/cjs/helpers/mediaObjectToString.native.js +28 -14
- package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -1
- package/dist/cjs/helpers/mediaState.cjs +21 -17
- package/dist/cjs/helpers/mediaState.native.js +30 -26
- package/dist/cjs/helpers/mediaState.native.js.map +1 -1
- package/dist/cjs/helpers/mergeProps.cjs +54 -30
- package/dist/cjs/helpers/mergeProps.native.js +55 -30
- package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
- package/dist/cjs/helpers/mergeRenderElementProps.cjs +14 -11
- package/dist/cjs/helpers/mergeRenderElementProps.native.js +14 -11
- package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -1
- package/dist/cjs/helpers/mergeSlotStyleProps.cjs +31 -18
- package/dist/cjs/helpers/mergeSlotStyleProps.native.js +32 -19
- package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -1
- package/dist/cjs/helpers/mergeVariants.cjs +28 -16
- package/dist/cjs/helpers/mergeVariants.native.js +30 -18
- package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
- package/dist/cjs/helpers/nativeOnlyProps.cjs +12 -10
- package/dist/cjs/helpers/nativeOnlyProps.native.js +12 -10
- package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeColor.cjs +30 -13
- package/dist/cjs/helpers/normalizeColor.native.js +33 -30
- package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeShadow.cjs +12 -10
- package/dist/cjs/helpers/normalizeShadow.native.js +25 -23
- package/dist/cjs/helpers/normalizeShadow.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeStyle.cjs +48 -20
- package/dist/cjs/helpers/normalizeStyle.native.js +73 -27
- package/dist/cjs/helpers/normalizeStyle.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeStylePropKeys.cjs +12 -10
- package/dist/cjs/helpers/normalizeStylePropKeys.native.js +22 -20
- package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.cjs +33 -17
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js +34 -18
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/cjs/helpers/objectIdentityKey.cjs +19 -12
- package/dist/cjs/helpers/objectIdentityKey.native.js +22 -15
- package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
- package/dist/cjs/helpers/parseBorderShorthand.cjs +15 -11
- package/dist/cjs/helpers/parseBorderShorthand.native.js +52 -24
- package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/parseNativeStyle.cjs +84 -49
- package/dist/cjs/helpers/parseNativeStyle.native.js +130 -88
- package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -1
- package/dist/cjs/helpers/parseOutlineShorthand.cjs +15 -11
- package/dist/cjs/helpers/parseOutlineShorthand.native.js +46 -24
- package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/platformResolveValue.cjs +38 -0
- package/dist/cjs/helpers/platformResolveValue.native.js +74 -0
- package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -0
- package/dist/cjs/helpers/pointerEvents.cjs +12 -10
- package/dist/cjs/helpers/pointerEvents.native.js +124 -89
- package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
- package/dist/cjs/helpers/propMapper.cjs +216 -211
- package/dist/cjs/helpers/propMapper.native.js +297 -339
- package/dist/cjs/helpers/propMapper.native.js.map +1 -1
- package/dist/cjs/helpers/proxyThemeToParents.cjs +33 -19
- package/dist/cjs/helpers/proxyThemeToParents.native.js +84 -55
- package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
- package/dist/cjs/helpers/proxyThemeVariables.cjs +13 -11
- package/dist/cjs/helpers/proxyThemeVariables.native.js +13 -11
- package/dist/cjs/helpers/proxyThemeVariables.native.js.map +1 -1
- package/dist/cjs/helpers/pseudoDescriptors.cjs +60 -58
- package/dist/cjs/helpers/pseudoDescriptors.native.js +60 -58
- package/dist/cjs/helpers/pseudoDescriptors.native.js.map +1 -1
- package/dist/cjs/helpers/pseudoTransitions.cjs +83 -0
- package/dist/cjs/helpers/pseudoTransitions.native.js +88 -0
- package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -0
- package/dist/cjs/helpers/registerCSSVariable.cjs +55 -38
- package/dist/cjs/helpers/registerCSSVariable.native.js +60 -45
- package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -1
- package/dist/cjs/helpers/resolveAnimationDriver.cjs +37 -0
- package/dist/cjs/helpers/resolveAnimationDriver.native.js +41 -0
- package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -0
- package/dist/cjs/helpers/resolveCompoundTokens.cjs +41 -0
- package/dist/cjs/helpers/resolveCompoundTokens.native.js +44 -0
- package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -0
- package/dist/cjs/helpers/resolveRem.cjs +13 -11
- package/dist/cjs/helpers/resolveRem.native.js +31 -22
- package/dist/cjs/helpers/resolveRem.native.js.map +1 -1
- package/dist/cjs/helpers/resolveSafeArea.cjs +12 -10
- package/dist/cjs/helpers/resolveSafeArea.native.js +18 -14
- package/dist/cjs/helpers/resolveSafeArea.native.js.map +1 -1
- package/dist/cjs/helpers/setElementProps.cjs +12 -10
- package/dist/cjs/helpers/setElementProps.native.js +19 -13
- package/dist/cjs/helpers/setElementProps.native.js.map +1 -1
- package/dist/cjs/helpers/skipProps.cjs +16 -14
- package/dist/cjs/helpers/skipProps.native.js +30 -28
- package/dist/cjs/helpers/skipProps.native.js.map +1 -1
- package/dist/cjs/helpers/sortString.cjs +12 -10
- package/dist/cjs/helpers/sortString.native.js +12 -10
- package/dist/cjs/helpers/sortString.native.js.map +1 -1
- package/dist/cjs/helpers/styleOriginalValues.cjs +28 -0
- package/dist/cjs/helpers/styleOriginalValues.native.js +31 -0
- package/dist/cjs/helpers/styleOriginalValues.native.js.map +1 -0
- package/dist/cjs/helpers/subscribeToContextGroup.cjs +83 -55
- package/dist/cjs/helpers/subscribeToContextGroup.native.js +118 -92
- package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
- package/dist/cjs/helpers/themeable.cjs +77 -48
- package/dist/cjs/helpers/themeable.native.js +97 -69
- package/dist/cjs/helpers/themeable.native.js.map +1 -1
- package/dist/cjs/helpers/themes.cjs +27 -19
- package/dist/cjs/helpers/themes.native.js +27 -19
- package/dist/cjs/helpers/themes.native.js.map +1 -1
- package/dist/cjs/helpers/timer.cjs +13 -11
- package/dist/cjs/helpers/timer.native.js +13 -11
- package/dist/cjs/helpers/timer.native.js.map +1 -1
- package/dist/cjs/helpers/transformsToString.cjs +18 -13
- package/dist/cjs/helpers/transformsToString.native.js +18 -13
- package/dist/cjs/helpers/transformsToString.native.js.map +1 -1
- package/dist/cjs/helpers/useRenderElement.cjs +29 -24
- package/dist/cjs/helpers/useRenderElement.native.js +33 -25
- package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
- package/dist/cjs/helpers/webPropsToSkip.cjs +12 -10
- package/dist/cjs/helpers/webPropsToSkip.native.js +60 -58
- package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -1
- package/dist/cjs/helpers/wrapStyleTags.cjs +16 -15
- package/dist/cjs/helpers/wrapStyleTags.native.js +14 -12
- package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.cjs +13 -11
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js +14 -12
- package/dist/cjs/hooks/doesRootSchemeMatchSystem.native.js.map +1 -1
- package/dist/cjs/hooks/getThemeProxied.cjs +45 -27
- package/dist/cjs/hooks/getThemeProxied.native.js +79 -65
- package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.cjs +141 -86
- package/dist/cjs/hooks/useComponentState.native.js +145 -97
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useDisableSSR.cjs +12 -10
- package/dist/cjs/hooks/useDisableSSR.native.js +13 -11
- package/dist/cjs/hooks/useDisableSSR.native.js.map +1 -1
- package/dist/cjs/hooks/useIsTouchDevice.cjs +17 -13
- package/dist/cjs/hooks/useIsTouchDevice.native.js +17 -15
- package/dist/cjs/hooks/useIsTouchDevice.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +153 -93
- package/dist/cjs/hooks/useMedia.native.js +164 -108
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/hooks/useProps.cjs +83 -77
- package/dist/cjs/hooks/useProps.native.js +85 -79
- package/dist/cjs/hooks/useProps.native.js.map +1 -1
- package/dist/cjs/hooks/useTheme.cjs +40 -25
- package/dist/cjs/hooks/useTheme.native.js +40 -28
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/hooks/useThemeName.cjs +20 -18
- package/dist/cjs/hooks/useThemeName.native.js +24 -22
- package/dist/cjs/hooks/useThemeName.native.js.map +1 -1
- package/dist/cjs/hooks/useThemeState.cjs +248 -172
- package/dist/cjs/hooks/useThemeState.native.js +315 -248
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +22 -18
- package/dist/cjs/index.native.js +22 -18
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/inject-styles.cjs +27 -22
- package/dist/cjs/inject-styles.native.js +28 -23
- package/dist/cjs/inject-styles.native.js.map +1 -1
- package/dist/cjs/insertFont.cjs +37 -28
- package/dist/cjs/insertFont.native.js +35 -30
- package/dist/cjs/insertFont.native.js.map +1 -1
- package/dist/cjs/interfaces/CSSColorNames.cjs +7 -5
- package/dist/cjs/interfaces/CSSColorNames.native.js +7 -5
- package/dist/cjs/interfaces/CSSColorNames.native.js.map +1 -1
- package/dist/cjs/interfaces/GetRef.cjs +7 -5
- package/dist/cjs/interfaces/GetRef.native.js +7 -5
- package/dist/cjs/interfaces/GetRef.native.js.map +1 -1
- package/dist/cjs/interfaces/RNExclusiveTypes.cjs +7 -5
- package/dist/cjs/interfaces/RNExclusiveTypes.native.js +7 -5
- package/dist/cjs/interfaces/RNExclusiveTypes.native.js.map +1 -1
- package/dist/cjs/interfaces/TamaguiComponentEvents.cjs +7 -5
- package/dist/cjs/interfaces/TamaguiComponentEvents.native.js +7 -5
- package/dist/cjs/interfaces/TamaguiComponentEvents.native.js.map +1 -1
- package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.cjs +7 -5
- package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js +7 -5
- package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.native.js.map +1 -1
- package/dist/cjs/setupHooks.cjs +12 -10
- package/dist/cjs/setupHooks.native.js +12 -10
- package/dist/cjs/setupHooks.native.js.map +1 -1
- package/dist/cjs/setupReactNative.cjs +25 -18
- package/dist/cjs/setupReactNative.native.js +25 -21
- package/dist/cjs/setupReactNative.native.js.map +1 -1
- package/dist/cjs/styled.cjs +121 -77
- package/dist/cjs/styled.native.js +125 -87
- package/dist/cjs/styled.native.js.map +1 -1
- package/dist/cjs/styledHtml.test-d.cjs +58 -27
- package/dist/cjs/styledHtml.test-d.native.js +58 -27
- package/dist/cjs/styledHtml.test-d.native.js.map +1 -1
- package/dist/cjs/styledNonStyleProps.test-d.cjs +63 -0
- package/dist/cjs/styledNonStyleProps.test-d.native.js +66 -0
- package/dist/cjs/styledNonStyleProps.test-d.native.js.map +1 -0
- package/dist/cjs/type-utils.cjs +7 -5
- package/dist/cjs/type-utils.native.js +7 -5
- package/dist/cjs/type-utils.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/views/Configuration.cjs +28 -26
- package/dist/cjs/views/Configuration.native.js +39 -37
- package/dist/cjs/views/Configuration.native.js.map +1 -1
- package/dist/cjs/views/FontLanguage.cjs +22 -18
- package/dist/cjs/views/FontLanguage.native.js +34 -32
- package/dist/cjs/views/FontLanguage.native.js.map +1 -1
- package/dist/cjs/views/Slot.cjs +55 -37
- package/dist/cjs/views/Slot.native.js +57 -41
- package/dist/cjs/views/Slot.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.cjs +65 -53
- package/dist/cjs/views/TamaguiProvider.native.js +69 -55
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/TamaguiRoot.cjs +60 -42
- package/dist/cjs/views/TamaguiRoot.native.js +12 -10
- package/dist/cjs/views/TamaguiRoot.native.js.map +1 -1
- package/dist/cjs/views/Text.cjs +44 -48
- package/dist/cjs/views/Text.native.js +32 -32
- package/dist/cjs/views/Text.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +139 -101
- package/dist/cjs/views/Theme.native.js +148 -113
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeDebug.cjs +39 -18
- package/dist/cjs/views/ThemeDebug.native.js +13 -11
- package/dist/cjs/views/ThemeDebug.native.js.map +1 -1
- package/dist/cjs/views/ThemeProvider.cjs +25 -20
- package/dist/cjs/views/ThemeProvider.native.js +30 -28
- package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
- package/dist/cjs/views/View.cjs +15 -15
- package/dist/cjs/views/View.native.js +18 -18
- package/dist/cjs/views/View.native.js.map +1 -1
- package/dist/esm/Tamagui.mjs +29 -27
- package/dist/esm/Tamagui.mjs.map +1 -1
- package/dist/esm/Tamagui.native.js +67 -53
- package/dist/esm/Tamagui.native.js.map +1 -1
- package/dist/esm/_withStableStyle.mjs +29 -10
- package/dist/esm/_withStableStyle.mjs.map +1 -1
- package/dist/esm/_withStableStyle.native.js +32 -16
- package/dist/esm/_withStableStyle.native.js.map +1 -1
- package/dist/esm/animationDriverTypes.test-d.mjs +39 -11
- package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
- package/dist/esm/animationDriverTypes.test-d.native.js +39 -11
- package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
- package/dist/esm/config.mjs +121 -64
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +144 -95
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/constants/accessibilityDirectMap.mjs +5 -5
- package/dist/esm/constants/accessibilityDirectMap.mjs.map +1 -1
- package/dist/esm/constants/accessibilityDirectMap.native.js +5 -5
- package/dist/esm/constants/accessibilityDirectMap.native.js.map +1 -1
- package/dist/esm/constants/constants.mjs +5 -17
- package/dist/esm/constants/constants.mjs.map +1 -1
- package/dist/esm/constants/constants.native.js +6 -17
- package/dist/esm/constants/constants.native.js.map +1 -1
- package/dist/esm/constants/isDevTools.mjs +6 -4
- package/dist/esm/constants/isDevTools.mjs.map +1 -1
- package/dist/esm/constants/isDevTools.native.js +6 -4
- package/dist/esm/constants/isDevTools.native.js.map +1 -1
- package/dist/esm/contexts/ComponentContext.mjs +10 -8
- package/dist/esm/contexts/ComponentContext.mjs.map +1 -1
- package/dist/esm/contexts/ComponentContext.native.js +10 -10
- package/dist/esm/contexts/ComponentContext.native.js.map +1 -1
- package/dist/esm/createComponent.mjs +861 -586
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +864 -645
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createFont.mjs +21 -17
- package/dist/esm/createFont.mjs.map +1 -1
- package/dist/esm/createFont.native.js +23 -22
- package/dist/esm/createFont.native.js.map +1 -1
- package/dist/esm/createTamagui.mjs +94 -77
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +130 -121
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/createVariable.mjs +42 -18
- package/dist/esm/createVariable.mjs.map +1 -1
- package/dist/esm/createVariable.native.js +52 -29
- package/dist/esm/createVariable.native.js.map +1 -1
- package/dist/esm/createVariables.mjs +40 -36
- package/dist/esm/createVariables.mjs.map +1 -1
- package/dist/esm/createVariables.native.js +42 -38
- package/dist/esm/createVariables.native.js.map +1 -1
- package/dist/esm/defaultComponentState.mjs +17 -17
- package/dist/esm/defaultComponentState.mjs.map +1 -1
- package/dist/esm/defaultComponentState.native.js +17 -17
- package/dist/esm/defaultComponentState.native.js.map +1 -1
- package/dist/esm/eventHandling.mjs +3 -3
- package/dist/esm/eventHandling.mjs.map +1 -1
- package/dist/esm/eventHandling.native.js +170 -66
- package/dist/esm/eventHandling.native.js.map +1 -1
- package/dist/esm/helpers/consoleLog.native.js +2 -2
- package/dist/esm/helpers/consoleLog.native.js.map +1 -1
- package/dist/esm/helpers/createDesignSystem.mjs +67 -30
- package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
- package/dist/esm/helpers/createDesignSystem.native.js +103 -76
- package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/esm/helpers/createMediaStyle.mjs +76 -48
- package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
- package/dist/esm/helpers/createMediaStyle.native.js +82 -55
- package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
- package/dist/esm/helpers/createStyledContext.mjs +57 -36
- package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.native.js +61 -43
- package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
- package/dist/esm/helpers/defaultAnimationDriver.mjs +17 -18
- package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
- package/dist/esm/helpers/defaultAnimationDriver.native.js +33 -32
- package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
- package/dist/esm/helpers/expandStyle.mjs +42 -29
- package/dist/esm/helpers/expandStyle.mjs.map +1 -1
- package/dist/esm/helpers/expandStyle.native.js +48 -59
- package/dist/esm/helpers/expandStyle.native.js.map +1 -1
- package/dist/esm/helpers/expandStyles.mjs +10 -11
- package/dist/esm/helpers/expandStyles.mjs.map +1 -1
- package/dist/esm/helpers/expandStyles.native.js +13 -9
- package/dist/esm/helpers/expandStyles.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.mjs +89 -54
- package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.native.js +5 -5
- package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/esm/helpers/getDefaultProps.mjs +10 -13
- package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
- package/dist/esm/helpers/getDefaultProps.native.js +14 -12
- package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
- package/dist/esm/helpers/getDynamicVal.mjs +20 -17
- package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
- package/dist/esm/helpers/getDynamicVal.native.js +25 -22
- package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/esm/helpers/getExpandedShorthands.mjs +3 -1
- package/dist/esm/helpers/getExpandedShorthands.mjs.map +1 -1
- package/dist/esm/helpers/getExpandedShorthands.native.js +5 -3
- package/dist/esm/helpers/getExpandedShorthands.native.js.map +1 -1
- package/dist/esm/helpers/getGroupPropParts.mjs +13 -6
- package/dist/esm/helpers/getGroupPropParts.mjs.map +1 -1
- package/dist/esm/helpers/getGroupPropParts.native.js +14 -7
- package/dist/esm/helpers/getGroupPropParts.native.js.map +1 -1
- package/dist/esm/helpers/getShorthandValue.mjs +4 -1
- package/dist/esm/helpers/getShorthandValue.mjs.map +1 -1
- package/dist/esm/helpers/getShorthandValue.native.js +6 -6
- package/dist/esm/helpers/getShorthandValue.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +595 -355
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +708 -556
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.mjs +76 -72
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
- package/dist/esm/helpers/getTokenForKey.mjs +146 -0
- package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
- package/dist/esm/helpers/getTokenForKey.native.js +155 -0
- package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
- package/dist/esm/helpers/getVariantExtras.mjs +46 -32
- package/dist/esm/helpers/getVariantExtras.mjs.map +1 -1
- package/dist/esm/helpers/getVariantExtras.native.js +46 -32
- package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +95 -63
- package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +38 -251
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/helpers/isActivePlatform.mjs +10 -9
- package/dist/esm/helpers/isActivePlatform.mjs.map +1 -1
- package/dist/esm/helpers/isActivePlatform.native.js +10 -9
- package/dist/esm/helpers/isActivePlatform.native.js.map +1 -1
- package/dist/esm/helpers/isActiveTheme.mjs +2 -1
- package/dist/esm/helpers/isActiveTheme.mjs.map +1 -1
- package/dist/esm/helpers/isActiveTheme.native.js +2 -1
- package/dist/esm/helpers/isActiveTheme.native.js.map +1 -1
- package/dist/esm/helpers/isObj.mjs +1 -1
- package/dist/esm/helpers/isObj.mjs.map +1 -1
- package/dist/esm/helpers/isObj.native.js +2 -2
- package/dist/esm/helpers/isTamaguiComponent.mjs +2 -2
- package/dist/esm/helpers/isTamaguiComponent.mjs.map +1 -1
- package/dist/esm/helpers/isTamaguiComponent.native.js +2 -2
- package/dist/esm/helpers/isTamaguiComponent.native.js.map +1 -1
- package/dist/esm/helpers/isTamaguiElement.mjs +3 -1
- package/dist/esm/helpers/isTamaguiElement.mjs.map +1 -1
- package/dist/esm/helpers/isTamaguiElement.native.js.map +1 -1
- package/dist/esm/helpers/log.mjs +8 -9
- package/dist/esm/helpers/log.mjs.map +1 -1
- package/dist/esm/helpers/log.native.js +8 -9
- package/dist/esm/helpers/log.native.js.map +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.mjs +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.mjs.map +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.native.js +99 -16
- package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/esm/helpers/matchMedia.mjs +3 -3
- package/dist/esm/helpers/matchMedia.mjs.map +1 -1
- package/dist/esm/helpers/matchMedia.native.js +22 -9
- package/dist/esm/helpers/matchMedia.native.js.map +1 -1
- package/dist/esm/helpers/mediaObjectToString.mjs +18 -4
- package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -1
- package/dist/esm/helpers/mediaObjectToString.native.js +16 -4
- package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -1
- package/dist/esm/helpers/mediaState.mjs +9 -7
- package/dist/esm/helpers/mediaState.mjs.map +1 -1
- package/dist/esm/helpers/mediaState.native.js +18 -16
- package/dist/esm/helpers/mediaState.native.js.map +1 -1
- package/dist/esm/helpers/mergeProps.mjs +42 -20
- package/dist/esm/helpers/mergeProps.mjs.map +1 -1
- package/dist/esm/helpers/mergeProps.native.js +43 -20
- package/dist/esm/helpers/mergeProps.native.js.map +1 -1
- package/dist/esm/helpers/mergeRenderElementProps.mjs +2 -1
- package/dist/esm/helpers/mergeRenderElementProps.mjs.map +1 -1
- package/dist/esm/helpers/mergeRenderElementProps.native.js +2 -1
- package/dist/esm/helpers/mergeRenderElementProps.native.js.map +1 -1
- package/dist/esm/helpers/mergeSlotStyleProps.mjs +17 -6
- package/dist/esm/helpers/mergeSlotStyleProps.mjs.map +1 -1
- package/dist/esm/helpers/mergeSlotStyleProps.native.js +17 -6
- package/dist/esm/helpers/mergeSlotStyleProps.native.js.map +1 -1
- package/dist/esm/helpers/mergeVariants.mjs +16 -6
- package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
- package/dist/esm/helpers/mergeVariants.native.js +18 -8
- package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
- package/dist/esm/helpers/normalizeColor.mjs +18 -3
- package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
- package/dist/esm/helpers/normalizeColor.native.js +18 -17
- package/dist/esm/helpers/normalizeColor.native.js.map +1 -1
- package/dist/esm/helpers/normalizeShadow.native.js +11 -11
- package/dist/esm/helpers/normalizeShadow.native.js.map +1 -1
- package/dist/esm/helpers/normalizeStyle.mjs +31 -5
- package/dist/esm/helpers/normalizeStyle.mjs.map +1 -1
- package/dist/esm/helpers/normalizeStyle.native.js +56 -12
- package/dist/esm/helpers/normalizeStyle.native.js.map +1 -1
- package/dist/esm/helpers/normalizeStylePropKeys.native.js +10 -10
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +19 -5
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +20 -6
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/esm/helpers/objectIdentityKey.mjs +7 -2
- package/dist/esm/helpers/objectIdentityKey.mjs.map +1 -1
- package/dist/esm/helpers/objectIdentityKey.native.js +10 -5
- package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -1
- package/dist/esm/helpers/parseBorderShorthand.mjs +3 -1
- package/dist/esm/helpers/parseBorderShorthand.mjs.map +1 -1
- package/dist/esm/helpers/parseBorderShorthand.native.js +40 -14
- package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/esm/helpers/parseNativeStyle.mjs +72 -39
- package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -1
- package/dist/esm/helpers/parseNativeStyle.native.js +118 -78
- package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
- package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -1
- package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -1
- package/dist/esm/helpers/parseOutlineShorthand.native.js +34 -14
- package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/esm/helpers/platformResolveValue.mjs +13 -0
- package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
- package/dist/esm/helpers/platformResolveValue.native.js +46 -0
- package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
- package/dist/esm/helpers/pointerEvents.native.js +110 -77
- package/dist/esm/helpers/pointerEvents.native.js.map +1 -1
- package/dist/esm/helpers/propMapper.mjs +197 -194
- package/dist/esm/helpers/propMapper.mjs.map +1 -1
- package/dist/esm/helpers/propMapper.native.js +276 -320
- package/dist/esm/helpers/propMapper.native.js.map +1 -1
- package/dist/esm/helpers/proxyThemeToParents.mjs +21 -9
- package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
- package/dist/esm/helpers/proxyThemeToParents.native.js +72 -45
- package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
- package/dist/esm/helpers/proxyThemeVariables.mjs +1 -1
- package/dist/esm/helpers/proxyThemeVariables.mjs.map +1 -1
- package/dist/esm/helpers/proxyThemeVariables.native.js +1 -1
- package/dist/esm/helpers/pseudoDescriptors.mjs +48 -48
- package/dist/esm/helpers/pseudoDescriptors.mjs.map +1 -1
- package/dist/esm/helpers/pseudoDescriptors.native.js +48 -48
- package/dist/esm/helpers/pseudoDescriptors.native.js.map +1 -1
- package/dist/esm/helpers/pseudoTransitions.mjs +57 -0
- package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
- package/dist/esm/helpers/pseudoTransitions.native.js +59 -0
- package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
- package/dist/esm/helpers/registerCSSVariable.mjs +42 -27
- package/dist/esm/helpers/registerCSSVariable.mjs.map +1 -1
- package/dist/esm/helpers/registerCSSVariable.native.js +46 -33
- package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
- package/dist/esm/helpers/resolveAnimationDriver.mjs +12 -0
- package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
- package/dist/esm/helpers/resolveAnimationDriver.native.js +13 -0
- package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
- package/dist/esm/helpers/resolveCompoundTokens.mjs +16 -0
- package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
- package/dist/esm/helpers/resolveCompoundTokens.native.js +16 -0
- package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
- package/dist/esm/helpers/resolveRem.mjs +1 -1
- package/dist/esm/helpers/resolveRem.mjs.map +1 -1
- package/dist/esm/helpers/resolveRem.native.js +16 -9
- package/dist/esm/helpers/resolveRem.native.js.map +1 -1
- package/dist/esm/helpers/resolveSafeArea.native.js +6 -4
- package/dist/esm/helpers/resolveSafeArea.native.js.map +1 -1
- package/dist/esm/helpers/setElementProps.native.js +7 -3
- package/dist/esm/helpers/setElementProps.native.js.map +1 -1
- package/dist/esm/helpers/skipProps.mjs +3 -3
- package/dist/esm/helpers/skipProps.mjs.map +1 -1
- package/dist/esm/helpers/skipProps.native.js +3 -3
- package/dist/esm/helpers/skipProps.native.js.map +1 -1
- package/dist/esm/helpers/styleOriginalValues.mjs +3 -0
- package/dist/esm/helpers/styleOriginalValues.mjs.map +1 -0
- package/dist/esm/helpers/styleOriginalValues.native.js +3 -0
- package/dist/esm/helpers/styleOriginalValues.native.js.map +1 -0
- package/dist/esm/helpers/subscribeToContextGroup.mjs +68 -42
- package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.native.js +103 -79
- package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
- package/dist/esm/helpers/themeable.mjs +47 -20
- package/dist/esm/helpers/themeable.mjs.map +1 -1
- package/dist/esm/helpers/themeable.native.js +69 -43
- package/dist/esm/helpers/themeable.native.js.map +1 -1
- package/dist/esm/helpers/themes.mjs +15 -9
- package/dist/esm/helpers/themes.mjs.map +1 -1
- package/dist/esm/helpers/themes.native.js +15 -9
- package/dist/esm/helpers/themes.native.js.map +1 -1
- package/dist/esm/helpers/timer.mjs +1 -1
- package/dist/esm/helpers/timer.native.js +1 -1
- package/dist/esm/helpers/transformsToString.mjs +6 -3
- package/dist/esm/helpers/transformsToString.mjs.map +1 -1
- package/dist/esm/helpers/transformsToString.native.js +6 -3
- package/dist/esm/helpers/transformsToString.native.js.map +1 -1
- package/dist/esm/helpers/useRenderElement.mjs +14 -13
- package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
- package/dist/esm/helpers/useRenderElement.native.js +18 -13
- package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
- package/dist/esm/helpers/webPropsToSkip.native.js +46 -46
- package/dist/esm/helpers/webPropsToSkip.native.js.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.mjs +2 -3
- package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.native.js +2 -2
- package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/esm/hooks/doesRootSchemeMatchSystem.mjs +1 -1
- package/dist/esm/hooks/getThemeProxied.mjs +32 -16
- package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
- package/dist/esm/hooks/getThemeProxied.native.js +62 -50
- package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +121 -68
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +125 -79
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useDisableSSR.native.js +1 -1
- package/dist/esm/hooks/useDisableSSR.native.js.map +1 -1
- package/dist/esm/hooks/useIsTouchDevice.mjs +3 -1
- package/dist/esm/hooks/useIsTouchDevice.mjs.map +1 -1
- package/dist/esm/hooks/useIsTouchDevice.native.js +1 -1
- package/dist/esm/hooks/useIsTouchDevice.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +133 -75
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +144 -90
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useProps.mjs +47 -43
- package/dist/esm/hooks/useProps.mjs.map +1 -1
- package/dist/esm/hooks/useProps.native.js +49 -45
- package/dist/esm/hooks/useProps.native.js.map +1 -1
- package/dist/esm/hooks/useTheme.mjs +25 -12
- package/dist/esm/hooks/useTheme.mjs.map +1 -1
- package/dist/esm/hooks/useTheme.native.js +25 -15
- package/dist/esm/hooks/useTheme.native.js.map +1 -1
- package/dist/esm/hooks/useThemeName.mjs +8 -8
- package/dist/esm/hooks/useThemeName.mjs.map +1 -1
- package/dist/esm/hooks/useThemeName.native.js +10 -10
- package/dist/esm/hooks/useThemeName.native.js.map +1 -1
- package/dist/esm/hooks/useThemeState.mjs +233 -159
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +298 -233
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +67 -106
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +3 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/inject-styles.mjs +15 -12
- package/dist/esm/inject-styles.mjs.map +1 -1
- package/dist/esm/inject-styles.native.js +16 -13
- package/dist/esm/inject-styles.native.js.map +1 -1
- package/dist/esm/insertFont.mjs +19 -13
- package/dist/esm/insertFont.mjs.map +1 -1
- package/dist/esm/insertFont.native.js +18 -16
- package/dist/esm/insertFont.native.js.map +1 -1
- package/dist/esm/setupReactNative.mjs +13 -8
- package/dist/esm/setupReactNative.mjs.map +1 -1
- package/dist/esm/setupReactNative.native.js +13 -11
- package/dist/esm/setupReactNative.native.js.map +1 -1
- package/dist/esm/styled.mjs +106 -64
- package/dist/esm/styled.mjs.map +1 -1
- package/dist/esm/styled.native.js +109 -73
- package/dist/esm/styled.native.js.map +1 -1
- package/dist/esm/styledHtml.test-d.mjs +56 -25
- package/dist/esm/styledHtml.test-d.mjs.map +1 -1
- package/dist/esm/styledHtml.test-d.native.js +56 -25
- package/dist/esm/styledHtml.test-d.native.js.map +1 -1
- package/dist/esm/styledNonStyleProps.test-d.mjs +64 -0
- package/dist/esm/styledNonStyleProps.test-d.mjs.map +1 -0
- package/dist/esm/styledNonStyleProps.test-d.native.js +64 -0
- package/dist/esm/styledNonStyleProps.test-d.native.js.map +1 -0
- package/dist/esm/views/Configuration.native.js +2 -2
- package/dist/esm/views/Configuration.native.js.map +1 -1
- package/dist/esm/views/FontLanguage.mjs +10 -8
- package/dist/esm/views/FontLanguage.mjs.map +1 -1
- package/dist/esm/views/FontLanguage.native.js +7 -7
- package/dist/esm/views/FontLanguage.native.js.map +1 -1
- package/dist/esm/views/Slot.mjs +38 -22
- package/dist/esm/views/Slot.mjs.map +1 -1
- package/dist/esm/views/Slot.native.js +40 -26
- package/dist/esm/views/Slot.native.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +30 -20
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js +35 -23
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/TamaguiRoot.mjs +33 -17
- package/dist/esm/views/TamaguiRoot.mjs.map +1 -1
- package/dist/esm/views/Text.mjs +30 -36
- package/dist/esm/views/Text.mjs.map +1 -1
- package/dist/esm/views/Text.native.js +19 -20
- package/dist/esm/views/Text.native.js.map +1 -1
- package/dist/esm/views/Theme.mjs +108 -72
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +114 -81
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +22 -3
- package/dist/esm/views/ThemeDebug.mjs.map +1 -1
- package/dist/esm/views/ThemeDebug.native.js +1 -1
- package/dist/esm/views/ThemeDebug.native.js.map +1 -1
- package/dist/esm/views/ThemeProvider.mjs +7 -4
- package/dist/esm/views/ThemeProvider.mjs.map +1 -1
- package/dist/esm/views/ThemeProvider.native.js +5 -5
- package/dist/esm/views/ThemeProvider.native.js.map +1 -1
- package/dist/esm/views/View.mjs +1 -3
- package/dist/esm/views/View.mjs.map +1 -1
- package/dist/esm/views/View.native.js +1 -3
- 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/package.json +21 -25
- package/src/_withStableStyle.tsx +54 -19
- package/src/animationDriverTypes.test-d.ts +76 -0
- package/src/config.ts +12 -1
- package/src/constants/constants.ts +0 -17
- package/src/createComponent.tsx +287 -102
- package/src/createTamagui.ts +37 -20
- package/src/createVariable.ts +1 -1
- package/src/eventHandling.native.ts +219 -61
- package/src/eventHandling.ts +6 -2
- package/src/helpers/createDesignSystem.ts +79 -8
- package/src/helpers/createMediaStyle.ts +8 -2
- package/src/helpers/createStyledContext.tsx +27 -18
- package/src/helpers/defaultAnimationDriver.tsx +1 -2
- package/src/helpers/expandStyle.ts +56 -7
- package/src/helpers/getCSSStylesAtomic.ts +5 -10
- package/src/helpers/getDefaultProps.ts +4 -15
- package/src/helpers/getSplitStyles.tsx +302 -84
- package/src/helpers/getTokenForKey.ts +236 -0
- package/src/helpers/getVariantExtras.tsx +5 -4
- package/src/helpers/insertStyleRule.tsx +1 -1
- package/src/helpers/isActivePlatform.ts +33 -4
- package/src/helpers/mainThreadPressEvents.native.ts +122 -25
- package/src/helpers/mainThreadPressEvents.ts +2 -1
- package/src/helpers/normalizeColor.ts +12 -8
- package/src/helpers/normalizeStyle.ts +23 -1
- package/src/helpers/parseNativeStyle.ts +10 -11
- package/src/helpers/platformResolveValue.native.ts +72 -0
- package/src/helpers/platformResolveValue.ts +22 -0
- package/src/helpers/propMapper.ts +60 -258
- 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/styleOriginalValues.ts +2 -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 +2 -0
- package/src/hooks/useTheme.tsx +4 -0
- package/src/hooks/useThemeState.ts +44 -12
- package/src/index.ts +3 -0
- package/src/styled.tsx +2 -2
- package/src/styledNonStyleProps.test-d.ts +106 -0
- package/src/types.tsx +140 -59
- package/src/views/TamaguiProvider.tsx +32 -21
- package/src/views/TamaguiRoot.tsx +40 -14
- package/src/views/Text.tsx +3 -9
- package/src/views/Theme.tsx +2 -0
- package/src/views/ThemeProvider.tsx +2 -0
- package/src/views/View.tsx +0 -2
- package/tsconfig.json +44 -0
- package/tsconfig.test.json +9 -0
- package/types/_withStableStyle.d.ts +1 -2
- package/types/_withStableStyle.d.ts.map +1 -1
- package/types/config.d.ts +2 -0
- 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 +2 -2
- package/types/eventHandling.d.ts.map +1 -1
- package/types/eventHandling.native.d.ts +3 -3
- 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 +2 -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 +4 -4
- package/types/helpers/getSplitStyles.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/getVariantExtras.d.ts.map +1 -1
- package/types/helpers/isActivePlatform.d.ts +14 -0
- package/types/helpers/isActivePlatform.d.ts.map +1 -1
- package/types/helpers/mainThreadPressEvents.d.ts +1 -1
- package/types/helpers/mainThreadPressEvents.d.ts.map +1 -1
- package/types/helpers/mainThreadPressEvents.native.d.ts +5 -6
- package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
- package/types/helpers/normalizeColor.d.ts +1 -1
- package/types/helpers/normalizeColor.d.ts.map +1 -1
- package/types/helpers/normalizeStyle.d.ts.map +1 -1
- 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/styleOriginalValues.d.ts +2 -0
- package/types/helpers/styleOriginalValues.d.ts.map +1 -0
- 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.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 +2 -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 +68 -34
- 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 +5 -2
- package/types/views/TamaguiRoot.d.ts.map +1 -1
- 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.cjs +0 -28
- 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.cjs +0 -26
- package/dist/cjs/createTheme.js +0 -21
- package/dist/cjs/createTheme.js.map +0 -6
- package/dist/cjs/createTheme.native.js +0 -31
- 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 -98
- 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/mediaObjectToString.js +0 -32
- package/dist/cjs/helpers/mediaObjectToString.js.map +0 -6
- package/dist/cjs/helpers/mediaState.js +0 -41
- package/dist/cjs/helpers/mediaState.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 -37
- 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/parseNativeStyle.js +0 -116
- package/dist/cjs/helpers/parseNativeStyle.js.map +0 -6
- package/dist/cjs/helpers/parseOutlineShorthand.js +0 -22
- package/dist/cjs/helpers/parseOutlineShorthand.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 -153
- 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 -226
- package/dist/cjs/hooks/useThemeState.js.map +0 -6
- package/dist/cjs/index.js +0 -109
- 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.cjs +0 -34
- package/dist/cjs/views/Stack.js +0 -27
- package/dist/cjs/views/Stack.js.map +0 -6
- package/dist/cjs/views/Stack.native.js +0 -37
- package/dist/cjs/views/Stack.native.js.map +0 -1
- package/dist/cjs/views/TamaguiProvider.js +0 -73
- package/dist/cjs/views/TamaguiProvider.js.map +0 -6
- package/dist/cjs/views/TamaguiRoot.js +0 -40
- package/dist/cjs/views/TamaguiRoot.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 -60
- 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 -649
- package/dist/esm/helpers/getSplitStyles.js.map +0 -6
- package/dist/esm/helpers/getThemeCSSRules.js +0 -87
- 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/mediaObjectToString.js +0 -16
- package/dist/esm/helpers/mediaObjectToString.js.map +0 -6
- package/dist/esm/helpers/mediaState.js +0 -25
- package/dist/esm/helpers/mediaState.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 -22
- 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/parseNativeStyle.js +0 -100
- package/dist/esm/helpers/parseNativeStyle.js.map +0 -6
- package/dist/esm/helpers/parseOutlineShorthand.js +0 -6
- package/dist/esm/helpers/parseOutlineShorthand.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 -252
- 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 -149
- package/dist/esm/hooks/useMedia.js.map +0 -6
- package/dist/esm/hooks/useProps.js +0 -93
- 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 -220
- 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 -58
- package/dist/esm/views/TamaguiProvider.js.map +0 -6
- package/dist/esm/views/TamaguiRoot.js +0 -18
- package/dist/esm/views/TamaguiRoot.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/createComponent.tsx
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { composeRefs } from '@tamagui/compose-refs'
|
|
2
2
|
import { isClient, isServer, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
3
|
+
import { NativeMenuContext } from '@tamagui/native'
|
|
3
4
|
import { composeEventHandlers } from '@tamagui/helpers'
|
|
4
5
|
import { isEqualShallow } from '@tamagui/is-equal-shallow'
|
|
5
|
-
import React, { useMemo } from 'react'
|
|
6
|
+
import React, { ReactElement, ReactNode, useMemo } from 'react'
|
|
6
7
|
import { devConfig, getConfig } from './config'
|
|
7
8
|
import { isDevTools } from './constants/isDevTools'
|
|
8
9
|
import { ComponentContext } from './contexts/ComponentContext'
|
|
@@ -11,12 +12,17 @@ import { didGetVariableValue, setDidGetVariableValue } from './createVariable'
|
|
|
11
12
|
import { defaultComponentStateMounted } from './defaultComponentState'
|
|
12
13
|
import { getWebEvents, useEvents, wrapWithGestureDetector } from './eventHandling'
|
|
13
14
|
import { getDefaultProps } from './helpers/getDefaultProps'
|
|
15
|
+
import { resolveAnimationDriver } from './helpers/resolveAnimationDriver'
|
|
14
16
|
import { getSplitStyles, useSplitStyles } from './helpers/getSplitStyles'
|
|
15
17
|
import { log } from './helpers/log'
|
|
16
|
-
import { usePointerEvents } from './helpers/pointerEvents'
|
|
17
18
|
import { type GenericProps, mergeComponentProps } from './helpers/mergeProps'
|
|
18
19
|
import { mergeRenderElementProps } from './helpers/mergeRenderElementProps'
|
|
19
20
|
import { objectIdentityKey } from './helpers/objectIdentityKey'
|
|
21
|
+
import { usePointerEvents } from './helpers/pointerEvents'
|
|
22
|
+
import {
|
|
23
|
+
extractPseudoState,
|
|
24
|
+
resolveEffectivePseudoTransition,
|
|
25
|
+
} from './helpers/pseudoTransitions'
|
|
20
26
|
import { setElementProps } from './helpers/setElementProps'
|
|
21
27
|
import { subscribeToContextGroup } from './helpers/subscribeToContextGroup'
|
|
22
28
|
import { themeable } from './helpers/themeable'
|
|
@@ -46,9 +52,9 @@ import type {
|
|
|
46
52
|
UseStyleEmitter,
|
|
47
53
|
UseThemeWithStateProps,
|
|
48
54
|
} from './types'
|
|
49
|
-
import type { ViewProps } from './views/View'
|
|
50
55
|
import { Slot } from './views/Slot'
|
|
51
56
|
import { getThemedChildren } from './views/Theme'
|
|
57
|
+
import type { ViewProps } from './views/View'
|
|
52
58
|
|
|
53
59
|
/**
|
|
54
60
|
* All things that need one-time setup after createTamagui is called
|
|
@@ -229,7 +235,9 @@ export function createComponent<
|
|
|
229
235
|
const { Component, isText, isHOC } = staticConfig
|
|
230
236
|
|
|
231
237
|
const component = React.forwardRef<Ref, ComponentPropTypes>((propsIn, forwardedRef) => {
|
|
232
|
-
|
|
238
|
+
'use no memo'
|
|
239
|
+
|
|
240
|
+
config = config || getConfig()
|
|
233
241
|
|
|
234
242
|
const internalID = process.env.NODE_ENV === 'development' ? React.useId() : ''
|
|
235
243
|
|
|
@@ -255,7 +263,8 @@ export function createComponent<
|
|
|
255
263
|
// test only
|
|
256
264
|
if (process.env.NODE_ENV === 'test') {
|
|
257
265
|
if (propsIn['data-test-renders']) {
|
|
258
|
-
propsIn['data-test-renders']['current']
|
|
266
|
+
propsIn['data-test-renders']['current'] =
|
|
267
|
+
propsIn['data-test-renders']['current'] ?? 0
|
|
259
268
|
propsIn['data-test-renders']['current'] += 1
|
|
260
269
|
}
|
|
261
270
|
}
|
|
@@ -273,6 +282,14 @@ export function createComponent<
|
|
|
273
282
|
const componentContext = React.useContext(ComponentContext)
|
|
274
283
|
const hasTextAncestor = !!(isWeb && isText ? componentContext.inText : false)
|
|
275
284
|
|
|
285
|
+
// On Android, skip RNGH GestureDetector inside native menus (zeego) and use
|
|
286
|
+
// direct press events instead — GestureDetector consumes touches before they
|
|
287
|
+
// reach MenuView's native handler, preventing the menu from opening
|
|
288
|
+
const isInsideNativeMenu =
|
|
289
|
+
process.env.TAMAGUI_TARGET === 'native'
|
|
290
|
+
? React.useContext(NativeMenuContext)
|
|
291
|
+
: false
|
|
292
|
+
|
|
276
293
|
if (
|
|
277
294
|
!process.env.TAMAGUI_IS_CORE_NODE &&
|
|
278
295
|
process.env.NODE_ENV === 'development' &&
|
|
@@ -283,6 +300,10 @@ export function createComponent<
|
|
|
283
300
|
time = timer.start()
|
|
284
301
|
globalThis['time'] = time
|
|
285
302
|
}
|
|
303
|
+
// pick up globalThis.time if set externally (e.g. by a profiling harness)
|
|
304
|
+
if (process.env.NODE_ENV === 'development' && !time && (globalThis as any).time) {
|
|
305
|
+
time = (globalThis as any).time
|
|
306
|
+
}
|
|
286
307
|
if (process.env.NODE_ENV === 'development' && time) time`non-tamagui time (ignore)`
|
|
287
308
|
|
|
288
309
|
// React inserts default props after your props for some reason...
|
|
@@ -292,11 +313,7 @@ export function createComponent<
|
|
|
292
313
|
const componentName = props.componentName || staticConfig.componentName
|
|
293
314
|
|
|
294
315
|
// merge both default props and styled context props - ensure order is preserved
|
|
295
|
-
const defaultProps = getDefaultProps(
|
|
296
|
-
staticConfig,
|
|
297
|
-
props.componentName,
|
|
298
|
-
isText && hasTextAncestor
|
|
299
|
-
)
|
|
316
|
+
const defaultProps = getDefaultProps(staticConfig, props.componentName)
|
|
300
317
|
|
|
301
318
|
// merge styled context props over defaults, ensure order is preserved
|
|
302
319
|
const [nextProps, overrides] = mergeComponentProps(
|
|
@@ -361,7 +378,7 @@ export function createComponent<
|
|
|
361
378
|
}
|
|
362
379
|
}
|
|
363
380
|
|
|
364
|
-
debugKeyListeners
|
|
381
|
+
debugKeyListeners = debugKeyListeners || new Set()
|
|
365
382
|
debugKeyListeners.add(debugVisualizerHandler)
|
|
366
383
|
|
|
367
384
|
return () => {
|
|
@@ -373,20 +390,26 @@ export function createComponent<
|
|
|
373
390
|
|
|
374
391
|
const groupContextParent = React.useContext(GroupContext)
|
|
375
392
|
|
|
376
|
-
// Get animation driver - either from animatedBy prop lookup or context
|
|
393
|
+
// Get animation driver - either from animatedBy prop lookup or context/config fallback
|
|
377
394
|
const animationDriver = (() => {
|
|
378
|
-
if (props.animatedBy && config
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
if ('default' in animations) {
|
|
395
|
+
if (props.animatedBy && config) {
|
|
396
|
+
// check animationDrivers for multi-driver config
|
|
397
|
+
if (config.animationDrivers) {
|
|
382
398
|
return (
|
|
383
|
-
(
|
|
399
|
+
(config.animationDrivers as Record<string, any>)[props.animatedBy] ??
|
|
400
|
+
config.animations
|
|
384
401
|
)
|
|
385
402
|
}
|
|
386
|
-
//
|
|
387
|
-
return props.animatedBy === 'default' ? animations : null
|
|
403
|
+
// single driver config - only 'default' makes sense
|
|
404
|
+
return props.animatedBy === 'default' ? config.animations : null
|
|
388
405
|
}
|
|
389
|
-
|
|
406
|
+
// fall back to context driver, then config.animations
|
|
407
|
+
// resolveAnimationDriver validates it's a real driver (not a raw multi-driver object)
|
|
408
|
+
return (
|
|
409
|
+
resolveAnimationDriver(componentContext.animationDriver) ??
|
|
410
|
+
resolveAnimationDriver(config?.animations) ??
|
|
411
|
+
null
|
|
412
|
+
)
|
|
390
413
|
})()
|
|
391
414
|
|
|
392
415
|
const useAnimations = animationDriver?.useAnimations as UseAnimationHook | undefined
|
|
@@ -412,17 +435,26 @@ export function createComponent<
|
|
|
412
435
|
noClass,
|
|
413
436
|
state,
|
|
414
437
|
stateRef,
|
|
415
|
-
|
|
438
|
+
inputStyle,
|
|
439
|
+
outputStyle,
|
|
416
440
|
willBeAnimated,
|
|
417
441
|
willBeAnimatedClient,
|
|
418
442
|
startedUnhydrated,
|
|
419
443
|
} = componentState
|
|
420
444
|
|
|
421
|
-
if (
|
|
445
|
+
if (animationDriver?.avoidReRenders) {
|
|
446
|
+
// post-commit reconciliation of `nextState` with the committed React state.
|
|
447
|
+
// `nextState` is the source of truth for the fast `setStateShallow` path; it
|
|
448
|
+
// must stay populated until React actually commits the corresponding update,
|
|
449
|
+
// otherwise a follow-up update in the same JS task would read a stale closure
|
|
450
|
+
// `state` and bail on a false shallow-equal. once committed state matches
|
|
451
|
+
// `nextState`, clear it. if they diverge (animated components' fast path never
|
|
452
|
+
// calls into React), flush via componentState.setStateShallow here.
|
|
422
453
|
useIsomorphicLayoutEffect(() => {
|
|
423
454
|
const pendingState = stateRef.current.nextState
|
|
424
|
-
if (pendingState)
|
|
425
|
-
|
|
455
|
+
if (!pendingState) return
|
|
456
|
+
stateRef.current.nextState = undefined
|
|
457
|
+
if (!isEqualShallow(state, pendingState)) {
|
|
426
458
|
componentState.setStateShallow(pendingState)
|
|
427
459
|
}
|
|
428
460
|
})
|
|
@@ -478,25 +510,27 @@ export function createComponent<
|
|
|
478
510
|
|
|
479
511
|
if (process.env.NODE_ENV === 'development' && time) time`use-state`
|
|
480
512
|
|
|
481
|
-
|
|
513
|
+
// web-only - string-style not valid for native
|
|
482
514
|
const renderProp = props.render
|
|
515
|
+
const isRenderString = !Component || typeof Component === 'string'
|
|
516
|
+
|
|
483
517
|
// default to render prop, fallback to component (when both strings)
|
|
484
|
-
const element = isWeb
|
|
518
|
+
const element = isWeb
|
|
519
|
+
? isRenderString
|
|
520
|
+
? renderProp || Component
|
|
521
|
+
: Component
|
|
522
|
+
: Component
|
|
485
523
|
|
|
486
524
|
const BaseTextComponent = BaseText || element || 'span'
|
|
487
525
|
const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')
|
|
526
|
+
const BaseComponent = isText ? BaseTextComponent : BaseViewComponent
|
|
488
527
|
|
|
489
|
-
let elementType =
|
|
528
|
+
let elementType = BaseComponent
|
|
490
529
|
|
|
491
|
-
|
|
492
|
-
animationDriver &&
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
// "needsWebStyles" basically with motion we just animate a plain div, but
|
|
496
|
-
// we still have animated.View/Text for Sheet which wants to control
|
|
497
|
-
// things declaratively
|
|
498
|
-
!animationDriver.needsWebStyles
|
|
499
|
-
) {
|
|
530
|
+
const isAnimatedCustomComponent =
|
|
531
|
+
animationDriver && isAnimated && animationDriver.needsCustomComponent
|
|
532
|
+
|
|
533
|
+
if (isAnimatedCustomComponent) {
|
|
500
534
|
elementType = animationDriver[isText ? 'Text' : 'View'] || elementType
|
|
501
535
|
}
|
|
502
536
|
|
|
@@ -563,7 +597,7 @@ export function createComponent<
|
|
|
563
597
|
if (isWeb) {
|
|
564
598
|
console.info(`%c ${banner}`, 'background: green; color: white;')
|
|
565
599
|
if (isServer) {
|
|
566
|
-
log({ noClass, isAnimated, isWeb,
|
|
600
|
+
log({ noClass, isAnimated, isWeb, inputStyle })
|
|
567
601
|
} else {
|
|
568
602
|
// if strict mode or something messes with our nesting this fixes:
|
|
569
603
|
console.groupEnd()
|
|
@@ -586,7 +620,7 @@ export function createComponent<
|
|
|
586
620
|
)
|
|
587
621
|
log(`children:`, props.children)
|
|
588
622
|
log({ overriddenContextProps, styledContextValue })
|
|
589
|
-
log({ noClass, isAnimated, isWeb,
|
|
623
|
+
log({ noClass, isAnimated, isWeb, inputStyle })
|
|
590
624
|
}
|
|
591
625
|
}
|
|
592
626
|
}
|
|
@@ -608,7 +642,7 @@ export function createComponent<
|
|
|
608
642
|
|
|
609
643
|
const resolveValues =
|
|
610
644
|
// if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
|
|
611
|
-
(isAnimated &&
|
|
645
|
+
(isAnimated && inputStyle !== 'css') ||
|
|
612
646
|
(isHOC && state.unmounted == false && hasAnimationProp)
|
|
613
647
|
? 'value'
|
|
614
648
|
: 'auto'
|
|
@@ -639,7 +673,8 @@ export function createComponent<
|
|
|
639
673
|
allGroupContexts,
|
|
640
674
|
elementType,
|
|
641
675
|
startedUnhydrated,
|
|
642
|
-
debugProp
|
|
676
|
+
debugProp,
|
|
677
|
+
animationDriver
|
|
643
678
|
)
|
|
644
679
|
|
|
645
680
|
const isPassthrough = !splitStyles
|
|
@@ -656,7 +691,7 @@ export function createComponent<
|
|
|
656
691
|
staticConfig.context || staticConfig.parentStaticConfig?.context
|
|
657
692
|
if (contextForProps) {
|
|
658
693
|
for (const key in splitStyles.overriddenContextProps) {
|
|
659
|
-
overriddenContextProps
|
|
694
|
+
overriddenContextProps = overriddenContextProps || {}
|
|
660
695
|
overriddenContextProps[key] = splitStyles.overriddenContextProps[key]
|
|
661
696
|
}
|
|
662
697
|
// Use parent's context if this component doesn't have its own
|
|
@@ -689,10 +724,21 @@ export function createComponent<
|
|
|
689
724
|
|
|
690
725
|
// avoids re-rendering if animation driver supports it
|
|
691
726
|
// TODO believe we need to set some sort of "pendingState" in case it re-renders
|
|
727
|
+
// CRITICAL: Skip avoidReRenders for components with enter/exit transitions
|
|
728
|
+
// The exit state comes from AnimatePresence context, not local state, so
|
|
729
|
+
// updateStyleListener can fire before the component re-renders with the new
|
|
730
|
+
// presence value, causing wrong animation timing (e.g., using enter timing for exit)
|
|
731
|
+
const hasEnterExitTransition =
|
|
732
|
+
props.transition &&
|
|
733
|
+
typeof props.transition === 'object' &&
|
|
734
|
+
!Array.isArray(props.transition) &&
|
|
735
|
+
('enter' in props.transition || 'exit' in props.transition)
|
|
736
|
+
|
|
692
737
|
if (
|
|
693
738
|
!isPassthrough &&
|
|
694
739
|
(hasAnimationProp || groupName) &&
|
|
695
|
-
animationDriver?.avoidReRenders
|
|
740
|
+
animationDriver?.avoidReRenders &&
|
|
741
|
+
!hasEnterExitTransition
|
|
696
742
|
) {
|
|
697
743
|
const ogSetStateShallow = setStateShallow
|
|
698
744
|
|
|
@@ -700,11 +746,15 @@ export function createComponent<
|
|
|
700
746
|
const useStyleListener = stateRef.current.useStyleListener
|
|
701
747
|
|
|
702
748
|
// if no animation driver is listening for style updates, fall back to normal re-render
|
|
703
|
-
// this happens when a component has group prop but no transition/animation prop
|
|
749
|
+
// this happens when a component has group prop but no transition/animation prop.
|
|
750
|
+
// keep nextState populated until React actually commits the update — clearing it
|
|
751
|
+
// here lets a subsequent setStateShallow in the same JS task (e.g. press-out
|
|
752
|
+
// right after press-in) compare against a stale closure `state` and bail out,
|
|
753
|
+
// losing the update. the post-commit layoutEffect below clears nextState once
|
|
754
|
+
// React state has caught up.
|
|
704
755
|
if (!useStyleListener) {
|
|
705
756
|
const pendingState = stateRef.current.nextState
|
|
706
757
|
if (pendingState) {
|
|
707
|
-
stateRef.current.nextState = undefined
|
|
708
758
|
ogSetStateShallow(pendingState)
|
|
709
759
|
}
|
|
710
760
|
return
|
|
@@ -725,10 +775,22 @@ export function createComponent<
|
|
|
725
775
|
allGroupContexts,
|
|
726
776
|
elementType,
|
|
727
777
|
startedUnhydrated,
|
|
728
|
-
debugProp
|
|
778
|
+
debugProp,
|
|
779
|
+
animationDriver
|
|
780
|
+
)
|
|
781
|
+
|
|
782
|
+
// compute effective transition based on entering/exiting pseudo states
|
|
783
|
+
const effectiveTransition = resolveEffectivePseudoTransition(
|
|
784
|
+
stateRef.current.prevPseudoState,
|
|
785
|
+
updatedState,
|
|
786
|
+
nextStyles?.pseudoTransitions,
|
|
787
|
+
props.transition
|
|
729
788
|
)
|
|
730
789
|
|
|
731
|
-
|
|
790
|
+
// update prev state for next comparison (includes group states)
|
|
791
|
+
stateRef.current.prevPseudoState = extractPseudoState(updatedState)
|
|
792
|
+
|
|
793
|
+
useStyleListener((nextStyles?.style || {}) as any, effectiveTransition)
|
|
732
794
|
}
|
|
733
795
|
|
|
734
796
|
function updateGroupListeners() {
|
|
@@ -751,7 +813,8 @@ export function createComponent<
|
|
|
751
813
|
|
|
752
814
|
// don't change this ever or else you break ComponentContext and cause re-rendering
|
|
753
815
|
// use a Set of listeners so multiple components can register
|
|
754
|
-
componentContext.mediaEmitListeners
|
|
816
|
+
componentContext.mediaEmitListeners =
|
|
817
|
+
componentContext.mediaEmitListeners || new Set()
|
|
755
818
|
|
|
756
819
|
// only register once per component instance
|
|
757
820
|
if (!stateRef.current.mediaEmitCleanup) {
|
|
@@ -765,12 +828,14 @@ export function createComponent<
|
|
|
765
828
|
}
|
|
766
829
|
}
|
|
767
830
|
|
|
768
|
-
componentContext.mediaEmit
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
831
|
+
componentContext.mediaEmit =
|
|
832
|
+
componentContext.mediaEmit ||
|
|
833
|
+
((next) => {
|
|
834
|
+
// notify all registered components
|
|
835
|
+
for (const listener of componentContext.mediaEmitListeners!) {
|
|
836
|
+
listener(next)
|
|
837
|
+
}
|
|
838
|
+
})
|
|
774
839
|
|
|
775
840
|
stateRef.current.setStateShallow = (nextOrGetNext) => {
|
|
776
841
|
const prev = stateRef.current.nextState || state
|
|
@@ -835,7 +900,7 @@ export function createComponent<
|
|
|
835
900
|
props.untilMeasured === 'hide' &&
|
|
836
901
|
!stateRef.current.hasMeasured
|
|
837
902
|
) {
|
|
838
|
-
splitStyles.style
|
|
903
|
+
splitStyles.style = splitStyles.style || {}
|
|
839
904
|
splitStyles.style.opacity = 0
|
|
840
905
|
}
|
|
841
906
|
|
|
@@ -903,7 +968,7 @@ export function createComponent<
|
|
|
903
968
|
// so the type is pretty loose
|
|
904
969
|
let viewProps = nonTamaguiProps
|
|
905
970
|
|
|
906
|
-
if (
|
|
971
|
+
if (props.forceStyle) {
|
|
907
972
|
viewProps.forceStyle = props.forceStyle
|
|
908
973
|
}
|
|
909
974
|
|
|
@@ -916,16 +981,14 @@ export function createComponent<
|
|
|
916
981
|
}
|
|
917
982
|
}
|
|
918
983
|
|
|
919
|
-
if (renderProp && elementType['acceptTagProp']) {
|
|
920
|
-
viewProps.render = renderProp
|
|
921
|
-
}
|
|
922
|
-
|
|
923
984
|
// once you set animation prop don't remove it, you can set to undefined/false
|
|
924
985
|
// reason is animations are heavy - no way around it, and must be run inline here (🙅 loading as a sub-component)
|
|
925
986
|
let animationStyles: any
|
|
926
987
|
const shouldUseAnimation =
|
|
927
988
|
// if it supports css vars we run it on server too to get matching initial style
|
|
928
|
-
(
|
|
989
|
+
(inputStyle === 'css' ? willBeAnimatedClient : willBeAnimated) &&
|
|
990
|
+
useAnimations &&
|
|
991
|
+
!isHOC
|
|
929
992
|
|
|
930
993
|
let animatedRef
|
|
931
994
|
|
|
@@ -936,10 +999,29 @@ export function createComponent<
|
|
|
936
999
|
}
|
|
937
1000
|
: undefined
|
|
938
1001
|
|
|
1002
|
+
// compute effective transition once here (single source of truth)
|
|
1003
|
+
// avoidReRenders path also computes this in updateStyleListener
|
|
1004
|
+
const effectiveTransition = resolveEffectivePseudoTransition(
|
|
1005
|
+
stateRef.current.prevPseudoState,
|
|
1006
|
+
state,
|
|
1007
|
+
splitStyles?.pseudoTransitions,
|
|
1008
|
+
props.transition
|
|
1009
|
+
)
|
|
1010
|
+
|
|
1011
|
+
// add effectiveTransition to splitStyles for drivers to consume
|
|
1012
|
+
if (splitStyles) {
|
|
1013
|
+
splitStyles.effectiveTransition = effectiveTransition
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
// update prev state for next comparison (needed for non-avoidReRenders drivers like CSS)
|
|
1017
|
+
// avoidReRenders path also updates this in updateStyleListener
|
|
1018
|
+
stateRef.current.prevPseudoState = extractPseudoState(state)
|
|
1019
|
+
|
|
939
1020
|
const animations = useAnimations({
|
|
940
1021
|
props: propsWithAnimation,
|
|
941
|
-
//
|
|
942
|
-
style
|
|
1022
|
+
// clone style to prevent animation driver mutations from leaking to viewProps
|
|
1023
|
+
// during SSR/pre-hydration (CSS driver mutates style.transition in place)
|
|
1024
|
+
style: isHydrated ? splitStylesStyle || {} : { ...splitStylesStyle },
|
|
943
1025
|
// @ts-ignore
|
|
944
1026
|
styleState: splitStyles,
|
|
945
1027
|
useStyleEmitter,
|
|
@@ -1087,7 +1169,7 @@ export function createComponent<
|
|
|
1087
1169
|
// For CSS transitions, we need browser to paint enterStyle before removing it.
|
|
1088
1170
|
// Double RAF guarantees paint: first RAF schedules after current frame,
|
|
1089
1171
|
// second RAF schedules after that frame completes (including paint).
|
|
1090
|
-
if (
|
|
1172
|
+
if (inputStyle === 'css') {
|
|
1091
1173
|
let cancelled = false
|
|
1092
1174
|
requestAnimationFrame(() => {
|
|
1093
1175
|
if (cancelled) return
|
|
@@ -1108,7 +1190,7 @@ export function createComponent<
|
|
|
1108
1190
|
componentSetStates.delete(setState)
|
|
1109
1191
|
stateRef.current.mediaEmitCleanup?.()
|
|
1110
1192
|
}
|
|
1111
|
-
}, [state.unmounted,
|
|
1193
|
+
}, [state.unmounted, inputStyle])
|
|
1112
1194
|
|
|
1113
1195
|
useIsomorphicLayoutEffect(() => {
|
|
1114
1196
|
if (disabled) return
|
|
@@ -1140,6 +1222,7 @@ export function createComponent<
|
|
|
1140
1222
|
const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle
|
|
1141
1223
|
const runtimeFocusStyle = !disabled && noClass && pseudos?.focusStyle
|
|
1142
1224
|
const runtimeFocusVisibleStyle = !disabled && noClass && pseudos?.focusVisibleStyle
|
|
1225
|
+
|
|
1143
1226
|
const attachFocus = Boolean(
|
|
1144
1227
|
runtimePressStyle ||
|
|
1145
1228
|
runtimeFocusStyle ||
|
|
@@ -1258,11 +1341,19 @@ export function createComponent<
|
|
|
1258
1341
|
}
|
|
1259
1342
|
}
|
|
1260
1343
|
: undefined,
|
|
1344
|
+
|
|
1261
1345
|
onPress: attachPress
|
|
1262
1346
|
? (e) => {
|
|
1263
1347
|
unPress()
|
|
1264
|
-
|
|
1265
|
-
|
|
1348
|
+
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
1349
|
+
// @ts-ignore
|
|
1350
|
+
onClick?.(e)
|
|
1351
|
+
// matches RN pressable behavior - only when an explicit press
|
|
1352
|
+
// handler is set, so pressStyle alone doesn't swallow clicks
|
|
1353
|
+
if (onPress || onClick) {
|
|
1354
|
+
e.stopPropagation()
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1266
1357
|
onPress?.(e)
|
|
1267
1358
|
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
1268
1359
|
onLongPress?.(e)
|
|
@@ -1281,6 +1372,7 @@ export function createComponent<
|
|
|
1281
1372
|
onFocus: (e) => {
|
|
1282
1373
|
const next: Partial<typeof state> = {}
|
|
1283
1374
|
if (componentContext.setParentFocusState) {
|
|
1375
|
+
componentContext.setParentFocusState({ focusWithin: true })
|
|
1284
1376
|
next.focusWithin = true
|
|
1285
1377
|
}
|
|
1286
1378
|
if (pseudos?.focusVisibleStyle) {
|
|
@@ -1334,17 +1426,41 @@ export function createComponent<
|
|
|
1334
1426
|
log(`events`, { events, attachHover, attachPress })
|
|
1335
1427
|
}
|
|
1336
1428
|
|
|
1429
|
+
const propsWithHref = props as typeof props & { href?: unknown }
|
|
1430
|
+
const propsInWithHref = propsIn as typeof propsIn & { href?: unknown }
|
|
1431
|
+
|
|
1432
|
+
const pressDebugDetail =
|
|
1433
|
+
props.testID ??
|
|
1434
|
+
propsIn.testID ??
|
|
1435
|
+
props.accessibilityLabel ??
|
|
1436
|
+
propsIn.accessibilityLabel ??
|
|
1437
|
+
(typeof propsWithHref.href === 'string' ? propsWithHref.href : null) ??
|
|
1438
|
+
(typeof propsInWithHref.href === 'string' ? propsInWithHref.href : null)
|
|
1439
|
+
|
|
1440
|
+
const pressDebugName =
|
|
1441
|
+
[componentName, pressDebugDetail].filter(Boolean).join(':') || null
|
|
1442
|
+
|
|
1337
1443
|
// EVENTS native - handles focus/blur, input special cases, and RNGH press handling
|
|
1338
1444
|
// Skip gesture setup for HOC components - they may return null which crashes GestureDetector
|
|
1445
|
+
// hasRealPressEvents distinguishes user-provided handlers from events.onPress
|
|
1446
|
+
// synthesized for pressStyle alone — only the former should claim the responder.
|
|
1447
|
+
const hasRealPressEvents = !!(onPress || onPressIn || onPressOut || onLongPress)
|
|
1339
1448
|
const pressGesture =
|
|
1340
1449
|
process.env.TAMAGUI_TARGET === 'native'
|
|
1341
|
-
? useEvents(
|
|
1450
|
+
? useEvents(
|
|
1451
|
+
events,
|
|
1452
|
+
viewProps,
|
|
1453
|
+
stateRef,
|
|
1454
|
+
staticConfig,
|
|
1455
|
+
isHOC,
|
|
1456
|
+
isInsideNativeMenu,
|
|
1457
|
+
pressDebugName,
|
|
1458
|
+
hasRealPressEvents
|
|
1459
|
+
)
|
|
1342
1460
|
: null
|
|
1343
1461
|
|
|
1344
1462
|
if (process.env.NODE_ENV === 'development' && time) time`hooks`
|
|
1345
1463
|
|
|
1346
|
-
let content = children
|
|
1347
|
-
|
|
1348
1464
|
if (asChild) {
|
|
1349
1465
|
elementType = Slot
|
|
1350
1466
|
// on native this is already merged into viewProps in useEvents
|
|
@@ -1371,49 +1487,66 @@ export function createComponent<
|
|
|
1371
1487
|
|
|
1372
1488
|
if (process.env.NODE_ENV === 'development' && time) time`spaced-as-child`
|
|
1373
1489
|
|
|
1490
|
+
let content: ReactNode | undefined
|
|
1491
|
+
|
|
1374
1492
|
if (isPassthrough) {
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1493
|
+
// avoid re-parenting but avoid layout changes
|
|
1494
|
+
content = React.createElement(
|
|
1495
|
+
BaseComponent,
|
|
1496
|
+
{
|
|
1497
|
+
style: {
|
|
1498
|
+
display: 'contents',
|
|
1499
|
+
},
|
|
1380
1500
|
},
|
|
1501
|
+
propsIn.children
|
|
1502
|
+
)
|
|
1503
|
+
} else {
|
|
1504
|
+
// here elementType is either the custom animated driver view, or base view
|
|
1505
|
+
if (hooks.useChildren) {
|
|
1506
|
+
// ONLY native:
|
|
1507
|
+
content = hooks.useChildren(elementType, content || children, viewProps)
|
|
1381
1508
|
}
|
|
1382
|
-
}
|
|
1383
1509
|
|
|
1384
|
-
|
|
1385
|
-
if (hooks.useChildren) {
|
|
1386
|
-
useChildrenResult = hooks.useChildren(elementType, content, viewProps)
|
|
1387
|
-
}
|
|
1510
|
+
const isRenderPropString = typeof renderProp === 'string'
|
|
1388
1511
|
|
|
1389
|
-
|
|
1512
|
+
// this ONLY handles the case where render is NOT a string
|
|
1513
|
+
// either direct JSX, or a function that returns JSX, we always clone
|
|
1514
|
+
if (renderProp && !isRenderPropString) {
|
|
1515
|
+
const out = getCustomRender(
|
|
1516
|
+
renderProp,
|
|
1517
|
+
content || children,
|
|
1518
|
+
viewProps,
|
|
1519
|
+
componentState
|
|
1520
|
+
)
|
|
1521
|
+
if (out) {
|
|
1522
|
+
viewProps = out.viewProps
|
|
1523
|
+
elementType = out.elementType
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1390
1526
|
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
content = renderProp(renderProps, state)
|
|
1399
|
-
} else if (
|
|
1400
|
-
renderProp &&
|
|
1401
|
-
typeof renderProp === 'object' &&
|
|
1402
|
-
React.isValidElement(renderProp)
|
|
1403
|
-
) {
|
|
1404
|
-
// JSX element: clone with merged props
|
|
1405
|
-
const elementProps = (renderProp as React.ReactElement).props || {}
|
|
1406
|
-
const mergedProps = mergeRenderElementProps(elementProps, viewProps, content)
|
|
1407
|
-
content = React.cloneElement(renderProp as React.ReactElement, mergedProps)
|
|
1408
|
-
} else {
|
|
1409
|
-
content = React.createElement(elementType, viewProps, content)
|
|
1527
|
+
if (!content) {
|
|
1528
|
+
// web-only, handle render === string passing to custom animated component
|
|
1529
|
+
if (isRenderPropString) {
|
|
1530
|
+
viewProps.render === renderProp
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1533
|
+
content = React.createElement(elementType, viewProps, content || children)
|
|
1410
1534
|
}
|
|
1535
|
+
|
|
1536
|
+
if (process.env.NODE_ENV === 'development' && time) time`use-children`
|
|
1411
1537
|
}
|
|
1412
1538
|
|
|
1413
1539
|
// wrap with GestureDetector for RNGH press handling (native only, no-op on web)
|
|
1414
|
-
// Skip for HOC components - they pass press events to inner component instead
|
|
1540
|
+
// Skip for HOC and composite components - they pass press events to inner component instead
|
|
1415
1541
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
1416
|
-
|
|
1542
|
+
const isCompositeComponent = !isHOC && Component && typeof Component !== 'string'
|
|
1543
|
+
content = wrapWithGestureDetector(
|
|
1544
|
+
content,
|
|
1545
|
+
pressGesture,
|
|
1546
|
+
stateRef,
|
|
1547
|
+
isHOC,
|
|
1548
|
+
isCompositeComponent
|
|
1549
|
+
)
|
|
1417
1550
|
}
|
|
1418
1551
|
|
|
1419
1552
|
// needs to reset the presence state for nested children
|
|
@@ -1442,7 +1575,7 @@ export function createComponent<
|
|
|
1442
1575
|
|
|
1443
1576
|
if (process.env.NODE_ENV === 'development' && time) time`create-element`
|
|
1444
1577
|
|
|
1445
|
-
if ('focusWithinStyle' in propsIn) {
|
|
1578
|
+
if ('focusWithinStyle' in propsIn || pseudos?.focusWithinStyle) {
|
|
1446
1579
|
content = (
|
|
1447
1580
|
<ComponentContext.Provider
|
|
1448
1581
|
{...componentContext}
|
|
@@ -1673,3 +1806,55 @@ const fromPx = (val?: any): number => {
|
|
|
1673
1806
|
if (typeof val === 'string') return +val.replace('px', '')
|
|
1674
1807
|
return 0
|
|
1675
1808
|
}
|
|
1809
|
+
|
|
1810
|
+
// handles all render logic - returns a new component
|
|
1811
|
+
const getCustomRender = (
|
|
1812
|
+
renderProp: ViewProps['render'],
|
|
1813
|
+
content: ReactNode,
|
|
1814
|
+
viewProps: Record<string, unknown>,
|
|
1815
|
+
state: any
|
|
1816
|
+
):
|
|
1817
|
+
| undefined
|
|
1818
|
+
| {
|
|
1819
|
+
viewProps: Record<string, any>
|
|
1820
|
+
elementType: any
|
|
1821
|
+
} => {
|
|
1822
|
+
// Handle render prop variants: function, JSX element, or string
|
|
1823
|
+
if (typeof renderProp === 'function') {
|
|
1824
|
+
// Render function: full control with props and state
|
|
1825
|
+
const out = renderProp(viewProps, state)
|
|
1826
|
+
renderProp = getRenderElementForPlatform(out)
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1829
|
+
if (renderProp) {
|
|
1830
|
+
if (typeof renderProp === 'object' && React.isValidElement(renderProp)) {
|
|
1831
|
+
// JSX element: clone with merged props
|
|
1832
|
+
const renderElement = getRenderElementForPlatform(renderProp)
|
|
1833
|
+
if (renderElement) {
|
|
1834
|
+
const elementProps = renderProp.props as Record<string, any> | undefined
|
|
1835
|
+
const mergedProps = elementProps
|
|
1836
|
+
? mergeRenderElementProps(elementProps, viewProps, content)
|
|
1837
|
+
: viewProps
|
|
1838
|
+
|
|
1839
|
+
return {
|
|
1840
|
+
elementType: renderProp.type,
|
|
1841
|
+
viewProps: mergedProps,
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
}
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
// avoid passing web-only elements to native
|
|
1849
|
+
function getRenderElementForPlatform(potential: ReactElement) {
|
|
1850
|
+
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
1851
|
+
if (isHTMLElement(potential)) {
|
|
1852
|
+
return
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
return potential
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
function isHTMLElement(el: ReactElement) {
|
|
1859
|
+
return typeof el['type'] === 'string' && el['type'][0] === el['type'][0].toLowerCase()
|
|
1860
|
+
}
|