@tamagui/web 3.0.0-beta.922.1 → 3.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/dist/cjs/_withNativeStyle.cjs +3 -0
- package/dist/cjs/_withNativeStyle.native.cjs +3 -0
- package/dist/cjs/_withNativeStyle.native.js +3 -0
- package/dist/cjs/_withNativeStyle.native.js.map +1 -1
- package/dist/cjs/_withStableStyle.native.cjs +1 -5
- package/dist/cjs/_withStableStyle.native.js +1 -5
- package/dist/cjs/_withStableStyle.native.js.map +1 -1
- package/dist/cjs/config.cjs +6 -3
- package/dist/cjs/config.native.cjs +7 -5
- package/dist/cjs/config.native.js +7 -5
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/contexts/ComponentContext.cjs +1 -0
- package/dist/cjs/contexts/ComponentContext.native.cjs +8 -0
- package/dist/cjs/contexts/ComponentContext.native.js +8 -0
- package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
- package/dist/cjs/createComponent.cjs +46 -32
- package/dist/cjs/createComponent.native.cjs +92 -72
- package/dist/cjs/createComponent.native.js +92 -72
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createTamagui.cjs +32 -14
- package/dist/cjs/createTamagui.native.cjs +33 -19
- package/dist/cjs/createTamagui.native.js +33 -19
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/createTokens.native.cjs +1 -5
- package/dist/cjs/createTokens.native.js +1 -5
- package/dist/cjs/createTokens.native.js.map +1 -1
- package/dist/cjs/createVariable.native.cjs +1 -5
- package/dist/cjs/createVariable.native.js +1 -5
- package/dist/cjs/createVariable.native.js.map +1 -1
- package/dist/cjs/createVariables.native.cjs +2 -6
- package/dist/cjs/createVariables.native.js +2 -6
- package/dist/cjs/createVariables.native.js.map +1 -1
- package/dist/cjs/dom/html.cjs +87 -329
- package/dist/cjs/dom/html.native.cjs +53 -2
- package/dist/cjs/dom/html.native.js +53 -2
- package/dist/cjs/dom/html.native.js.map +1 -1
- package/dist/cjs/{helpers/timer.native.js → dom/htmlReset.cjs} +6 -12
- package/dist/cjs/{helpers/timer.native.cjs → dom/htmlReset.native.cjs} +6 -8
- package/dist/cjs/dom/htmlReset.native.js +30 -0
- package/dist/cjs/dom/htmlReset.native.js.map +1 -0
- package/dist/cjs/dom/htmlRuntime.native.cjs +4 -0
- package/dist/cjs/dom/htmlRuntime.native.js +4 -0
- package/dist/cjs/dom/htmlRuntime.native.js.map +1 -1
- package/dist/cjs/dom/htmlStaticConfig.cjs +44 -0
- package/dist/cjs/dom/htmlStaticConfig.native.cjs +46 -0
- package/dist/cjs/dom/htmlStaticConfig.native.js +48 -0
- package/dist/cjs/dom/htmlStaticConfig.native.js.map +1 -0
- package/dist/cjs/dom/primitives.native.cjs +81 -34
- package/dist/cjs/dom/primitives.native.js +81 -34
- package/dist/cjs/dom/primitives.native.js.map +1 -1
- package/dist/cjs/eventHandling.cjs +10 -4
- package/dist/cjs/eventHandling.native.cjs +52 -16
- package/dist/cjs/eventHandling.native.js +52 -16
- package/dist/cjs/eventHandling.native.js.map +1 -1
- package/dist/cjs/helpers/NativeTextBinding.cjs +36 -0
- package/dist/cjs/helpers/NativeTextBinding.native.cjs +39 -0
- package/dist/cjs/helpers/NativeTextBinding.native.js +41 -0
- package/dist/cjs/helpers/NativeTextBinding.native.js.map +1 -0
- package/dist/cjs/helpers/configVariables.native.cjs +2 -6
- package/dist/cjs/helpers/configVariables.native.js +2 -6
- package/dist/cjs/helpers/configVariables.native.js.map +1 -1
- package/dist/cjs/helpers/createDesignSystem.cjs +14 -10
- package/dist/cjs/helpers/createDesignSystem.native.cjs +5 -4
- package/dist/cjs/helpers/createDesignSystem.native.js +5 -4
- package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/cjs/helpers/createStyledContext.native.cjs +1 -5
- package/dist/cjs/helpers/createStyledContext.native.js +1 -5
- package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyle.cjs +45 -1
- package/dist/cjs/helpers/expandStyle.native.cjs +38 -2
- package/dist/cjs/helpers/expandStyle.native.js +38 -2
- package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
- package/dist/cjs/helpers/expandStyles.cjs +15 -3
- package/dist/cjs/helpers/expandStyles.native.cjs +14 -8
- package/dist/cjs/helpers/expandStyles.native.js +14 -8
- package/dist/cjs/helpers/expandStyles.native.js.map +1 -1
- package/dist/cjs/helpers/fluid.cjs +56 -0
- package/dist/cjs/helpers/fluid.native.cjs +58 -0
- package/dist/cjs/helpers/fluid.native.js +60 -0
- package/dist/cjs/helpers/fluid.native.js.map +1 -0
- package/dist/cjs/helpers/formatDiagnostic.native.cjs +2 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js +2 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomic.cjs +6 -6
- package/dist/cjs/helpers/getSplitStyles.cjs +366 -150
- package/dist/cjs/helpers/getSplitStyles.native.cjs +584 -184
- package/dist/cjs/helpers/getSplitStyles.native.js +584 -184
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.cjs +37 -25
- package/dist/cjs/helpers/grammarConfig.cjs +6 -14
- package/dist/cjs/helpers/grammarConfig.native.cjs +32 -22
- package/dist/cjs/helpers/grammarConfig.native.js +32 -22
- package/dist/cjs/helpers/grammarConfig.native.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.cjs +11 -4
- package/dist/cjs/helpers/insertStyleRule.native.cjs +8 -11
- package/dist/cjs/helpers/insertStyleRule.native.js +8 -11
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/cjs/helpers/isObj.native.cjs +1 -5
- package/dist/cjs/helpers/isObj.native.js +1 -5
- package/dist/cjs/helpers/isObj.native.js.map +1 -1
- package/dist/cjs/helpers/mainThreadPressEvents.native.cjs +48 -100
- package/dist/cjs/helpers/mainThreadPressEvents.native.js +48 -100
- package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/cjs/helpers/mergeProps.cjs +18 -21
- package/dist/cjs/helpers/mergeProps.native.cjs +20 -23
- package/dist/cjs/helpers/mergeProps.native.js +20 -23
- package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
- package/dist/cjs/helpers/nativeOnlyProps.cjs +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.cjs +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.js +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
- package/dist/cjs/helpers/nativeTextMetrics.cjs +74 -0
- package/dist/cjs/helpers/nativeTextMetrics.native.cjs +77 -0
- package/dist/cjs/helpers/nativeTextMetrics.native.js +79 -0
- package/dist/cjs/helpers/nativeTextMetrics.native.js.map +1 -0
- package/dist/cjs/helpers/normalizeColor.native.cjs +17 -2
- package/dist/cjs/helpers/normalizeColor.native.js +17 -2
- package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.cjs +2 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.native.cjs +3 -6
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js +3 -6
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/cjs/helpers/objectIdentityKey.native.cjs +1 -5
- package/dist/cjs/helpers/objectIdentityKey.native.js +1 -5
- package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
- package/dist/cjs/helpers/parseNativeStyle.cjs +187 -0
- package/dist/cjs/helpers/parseNativeStyle.native.cjs +6 -4
- package/dist/cjs/helpers/parseNativeStyle.native.js +6 -4
- package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -1
- package/dist/cjs/helpers/proxyThemeToParents.cjs +9 -2
- package/dist/cjs/helpers/proxyThemeToParents.native.cjs +28 -2
- package/dist/cjs/helpers/proxyThemeToParents.native.js +28 -2
- package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
- package/dist/cjs/helpers/resolveAnimationDriver.native.cjs +1 -5
- package/dist/cjs/helpers/resolveAnimationDriver.native.js +1 -5
- package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -1
- package/dist/cjs/helpers/{timer.cjs → resolveNativeUnits.cjs} +12 -8
- package/dist/cjs/helpers/resolveNativeUnits.native.cjs +205 -0
- package/dist/cjs/helpers/resolveNativeUnits.native.js +207 -0
- package/dist/cjs/helpers/resolveNativeUnits.native.js.map +1 -0
- package/dist/cjs/helpers/resolveRem.native.cjs +18 -21
- package/dist/cjs/helpers/resolveRem.native.js +18 -21
- package/dist/cjs/helpers/resolveRem.native.js.map +1 -1
- package/dist/cjs/helpers/resolveSizing.cjs +124 -0
- package/dist/cjs/helpers/resolveSizing.native.cjs +133 -0
- package/dist/cjs/helpers/resolveSizing.native.js +135 -0
- package/dist/cjs/helpers/resolveSizing.native.js.map +1 -0
- package/dist/cjs/helpers/resolveVariableValue.cjs +7 -7
- package/dist/cjs/helpers/resolveVariableValue.native.cjs +7 -9
- package/dist/cjs/helpers/resolveVariableValue.native.js +7 -9
- package/dist/cjs/helpers/resolveVariableValue.native.js.map +1 -1
- package/dist/cjs/helpers/resolveVariantStyle.native.cjs +2 -6
- package/dist/cjs/helpers/resolveVariantStyle.native.js +2 -6
- package/dist/cjs/helpers/resolveVariantStyle.native.js.map +1 -1
- package/dist/cjs/helpers/skipProps.cjs +0 -1
- package/dist/cjs/helpers/skipProps.native.cjs +0 -1
- package/dist/cjs/helpers/skipProps.native.js +0 -1
- package/dist/cjs/helpers/skipProps.native.js.map +1 -1
- package/dist/cjs/helpers/styleFrontend.cjs +23 -1
- package/dist/cjs/helpers/styleFrontend.native.cjs +23 -1
- package/dist/cjs/helpers/styleFrontend.native.js +23 -1
- package/dist/cjs/helpers/styleFrontend.native.js.map +1 -1
- package/dist/cjs/helpers/styleStaticConfigCore.cjs +5 -4
- package/dist/cjs/helpers/styleStaticConfigCore.native.cjs +7 -4
- package/dist/cjs/helpers/styleStaticConfigCore.native.js +7 -4
- package/dist/cjs/helpers/styleStaticConfigCore.native.js.map +1 -1
- package/dist/cjs/helpers/styledDynamic.cjs +5 -0
- package/dist/cjs/helpers/styledDynamic.native.cjs +8 -7
- package/dist/cjs/helpers/styledDynamic.native.js +8 -7
- package/dist/cjs/helpers/styledDynamic.native.js.map +1 -1
- package/dist/cjs/helpers/subscribeToContextGroup.cjs +16 -7
- package/dist/cjs/helpers/subscribeToContextGroup.native.cjs +18 -8
- package/dist/cjs/helpers/subscribeToContextGroup.native.js +18 -8
- package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +1 -1
- package/dist/cjs/helpers/themeRef.native.cjs +1 -5
- package/dist/cjs/helpers/themeRef.native.js +1 -5
- package/dist/cjs/helpers/themeRef.native.js.map +1 -1
- package/dist/cjs/helpers/themes.cjs +26 -11
- package/dist/cjs/helpers/themes.native.cjs +26 -11
- package/dist/cjs/helpers/themes.native.js +26 -11
- package/dist/cjs/helpers/themes.native.js.map +1 -1
- package/dist/cjs/helpers/tokenCategories.cjs +2 -2
- package/dist/cjs/helpers/tokenCategories.native.cjs +2 -2
- package/dist/cjs/helpers/tokenCategories.native.js +2 -2
- package/dist/cjs/helpers/tokenCategories.native.js.map +1 -1
- package/dist/cjs/helpers/variables.cjs +1 -1
- package/dist/cjs/helpers/variables.native.cjs +4 -8
- package/dist/cjs/helpers/variables.native.js +4 -8
- package/dist/cjs/helpers/variables.native.js.map +1 -1
- package/dist/cjs/helpers/warnOnce.cjs +6 -0
- package/dist/cjs/helpers/warnOnce.native.cjs +6 -0
- package/dist/cjs/helpers/warnOnce.native.js +6 -0
- package/dist/cjs/helpers/warnOnce.native.js.map +1 -1
- package/dist/cjs/helpers/webPropsToSkip.native.cjs +3 -3
- package/dist/cjs/helpers/webPropsToSkip.native.js +3 -3
- package/dist/cjs/helpers/webPropsToSkip.native.js.map +1 -1
- package/dist/cjs/helpers/wrapStyleTags.cjs +1 -1
- package/dist/cjs/helpers/wrapStyleTags.native.cjs +1 -1
- package/dist/cjs/helpers/wrapStyleTags.native.js +1 -1
- package/dist/cjs/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.native.cjs +1 -5
- package/dist/cjs/hooks/useComponentState.native.js +1 -5
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +27 -34
- package/dist/cjs/hooks/useMedia.native.cjs +45 -51
- package/dist/cjs/hooks/useMedia.native.js +45 -51
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/hooks/useSplitStyles.cjs +1 -1
- package/dist/cjs/hooks/useSplitStyles.native.cjs +1 -1
- package/dist/cjs/hooks/useSplitStyles.native.js +1 -1
- package/dist/cjs/hooks/useSplitStyles.native.js.map +1 -1
- package/dist/cjs/hooks/useThemeState.cjs +37 -47
- package/dist/cjs/hooks/useThemeState.native.cjs +44 -50
- package/dist/cjs/hooks/useThemeState.native.js +44 -50
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -0
- package/dist/cjs/index.native.cjs +7 -0
- package/dist/cjs/index.native.js +7 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/internal-runtime.cjs +22 -0
- package/dist/cjs/internal-runtime.native.cjs +22 -0
- package/dist/cjs/internal-runtime.native.js +22 -0
- package/dist/cjs/internal-runtime.native.js.map +1 -1
- package/dist/cjs/static-resolve.native.cjs +2 -9
- package/dist/cjs/static-resolve.native.js +2 -9
- package/dist/cjs/static-resolve.native.js.map +1 -1
- package/dist/cjs/style.cjs +1 -1
- package/dist/cjs/style.native.cjs +4 -7
- package/dist/cjs/style.native.js +4 -7
- package/dist/cjs/style.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +10 -17
- package/dist/cjs/views/Theme.native.cjs +9 -11
- package/dist/cjs/views/Theme.native.js +9 -11
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeDebug.cjs +1 -1
- package/dist/cjs/views/ThemeUpdate.cjs +1 -1
- package/dist/cjs/views/ThemeUpdate.native.cjs +1 -1
- package/dist/cjs/views/ThemeUpdate.native.js +1 -1
- package/dist/cjs/views/ThemeUpdate.native.js.map +1 -1
- package/dist/esm/_withNativeStyle.mjs +4 -1
- package/dist/esm/_withNativeStyle.mjs.map +1 -1
- package/dist/esm/_withNativeStyle.native.js +4 -1
- package/dist/esm/_withNativeStyle.native.js.map +1 -1
- package/dist/esm/_withStableStyle.native.js +1 -5
- package/dist/esm/_withStableStyle.native.js.map +1 -1
- package/dist/esm/config.mjs +6 -3
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +7 -5
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/contexts/ComponentContext.mjs +9 -9
- package/dist/esm/contexts/ComponentContext.mjs.map +1 -1
- package/dist/esm/contexts/ComponentContext.native.js +16 -9
- package/dist/esm/contexts/ComponentContext.native.js.map +1 -1
- package/dist/esm/createComponent.mjs +45 -42
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +93 -82
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createTamagui.mjs +33 -15
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +34 -20
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/createTokens.native.js +1 -5
- package/dist/esm/createTokens.native.js.map +1 -1
- package/dist/esm/createVariable.native.js +1 -5
- package/dist/esm/createVariable.native.js.map +1 -1
- package/dist/esm/createVariables.native.js +2 -6
- package/dist/esm/createVariables.native.js.map +1 -1
- package/dist/esm/dom/html.mjs +87 -329
- package/dist/esm/dom/html.mjs.map +1 -1
- package/dist/esm/dom/html.native.js +53 -2
- package/dist/esm/dom/html.native.js.map +1 -1
- package/dist/esm/dom/htmlReset.mjs +6 -0
- package/dist/esm/dom/htmlReset.mjs.map +1 -0
- package/dist/esm/dom/htmlReset.native.js +6 -0
- package/dist/esm/dom/htmlReset.native.js.map +1 -0
- package/dist/esm/dom/htmlRuntime.native.js +4 -0
- package/dist/esm/dom/htmlRuntime.native.js.map +1 -1
- package/dist/esm/dom/htmlStaticConfig.mjs +22 -0
- package/dist/esm/dom/htmlStaticConfig.mjs.map +1 -0
- package/dist/esm/dom/htmlStaticConfig.native.js +22 -0
- package/dist/esm/dom/htmlStaticConfig.native.js.map +1 -0
- package/dist/esm/dom/primitives.native.js +81 -34
- package/dist/esm/dom/primitives.native.js.map +1 -1
- package/dist/esm/eventHandling.mjs +10 -4
- package/dist/esm/eventHandling.mjs.map +1 -1
- package/dist/esm/eventHandling.native.js +52 -16
- package/dist/esm/eventHandling.native.js.map +1 -1
- package/dist/esm/helpers/NativeTextBinding.mjs +17 -0
- package/dist/esm/helpers/NativeTextBinding.mjs.map +1 -0
- package/dist/esm/helpers/NativeTextBinding.native.js +18 -0
- package/dist/esm/helpers/NativeTextBinding.native.js.map +1 -0
- package/dist/esm/helpers/configVariables.native.js +2 -6
- package/dist/esm/helpers/configVariables.native.js.map +1 -1
- package/dist/esm/helpers/createDesignSystem.mjs +14 -10
- package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
- package/dist/esm/helpers/createDesignSystem.native.js +4 -4
- package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
- package/dist/esm/helpers/createStyledContext.native.js +1 -5
- package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
- package/dist/esm/helpers/expandStyle.mjs +41 -1
- package/dist/esm/helpers/expandStyle.mjs.map +1 -1
- package/dist/esm/helpers/expandStyle.native.js +36 -3
- package/dist/esm/helpers/expandStyle.native.js.map +1 -1
- package/dist/esm/helpers/expandStyles.mjs +15 -3
- package/dist/esm/helpers/expandStyles.mjs.map +1 -1
- package/dist/esm/helpers/expandStyles.native.js +14 -8
- package/dist/esm/helpers/expandStyles.native.js.map +1 -1
- package/dist/esm/helpers/fluid.mjs +36 -0
- package/dist/esm/helpers/fluid.mjs.map +1 -0
- package/dist/esm/helpers/fluid.native.js +36 -0
- package/dist/esm/helpers/fluid.native.js.map +1 -0
- package/dist/esm/helpers/formatDiagnostic.native.js +2 -6
- package/dist/esm/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.mjs +6 -6
- package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +364 -150
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +588 -188
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.mjs +37 -25
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
- package/dist/esm/helpers/grammarConfig.mjs +6 -14
- package/dist/esm/helpers/grammarConfig.mjs.map +1 -1
- package/dist/esm/helpers/grammarConfig.native.js +32 -22
- package/dist/esm/helpers/grammarConfig.native.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +11 -4
- package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +4 -4
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/helpers/isObj.native.js +1 -5
- package/dist/esm/helpers/isObj.native.js.map +1 -1
- package/dist/esm/helpers/mainThreadPressEvents.native.js +48 -100
- package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
- package/dist/esm/helpers/mergeProps.mjs +18 -21
- package/dist/esm/helpers/mergeProps.mjs.map +1 -1
- package/dist/esm/helpers/mergeProps.native.js +20 -23
- package/dist/esm/helpers/mergeProps.native.js.map +1 -1
- package/dist/esm/helpers/nativeOnlyProps.mjs +0 -1
- package/dist/esm/helpers/nativeOnlyProps.mjs.map +1 -1
- package/dist/esm/helpers/nativeOnlyProps.native.js +0 -1
- package/dist/esm/helpers/nativeOnlyProps.native.js.map +1 -1
- package/dist/esm/helpers/nativeTextMetrics.mjs +55 -0
- package/dist/esm/helpers/nativeTextMetrics.mjs.map +1 -0
- package/dist/esm/helpers/nativeTextMetrics.native.js +56 -0
- package/dist/esm/helpers/nativeTextMetrics.native.js.map +1 -0
- package/dist/esm/helpers/normalizeColor.native.js +17 -2
- package/dist/esm/helpers/normalizeColor.native.js.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +2 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +3 -6
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/esm/helpers/objectIdentityKey.native.js +1 -5
- package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -1
- package/dist/esm/helpers/parseNativeStyle.mjs +168 -0
- package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
- package/dist/esm/helpers/parseNativeStyle.native.js +4 -1
- package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -1
- package/dist/esm/helpers/proxyThemeToParents.mjs +10 -2
- package/dist/esm/helpers/proxyThemeToParents.mjs.map +1 -1
- package/dist/esm/helpers/proxyThemeToParents.native.js +29 -2
- package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
- package/dist/esm/helpers/resolveAnimationDriver.native.js +1 -5
- package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -1
- package/dist/esm/helpers/resolveNativeUnits.mjs +9 -0
- package/dist/esm/helpers/resolveNativeUnits.mjs.map +1 -0
- package/dist/esm/helpers/resolveNativeUnits.native.js +178 -0
- package/dist/esm/helpers/resolveNativeUnits.native.js.map +1 -0
- package/dist/esm/helpers/resolveRem.native.js +18 -21
- package/dist/esm/helpers/resolveRem.native.js.map +1 -1
- package/dist/esm/helpers/resolveSizing.mjs +102 -0
- package/dist/esm/helpers/resolveSizing.mjs.map +1 -0
- package/dist/esm/helpers/resolveSizing.native.js +109 -0
- package/dist/esm/helpers/resolveSizing.native.js.map +1 -0
- package/dist/esm/helpers/resolveVariableValue.mjs +7 -7
- package/dist/esm/helpers/resolveVariableValue.mjs.map +1 -1
- package/dist/esm/helpers/resolveVariableValue.native.js +7 -9
- package/dist/esm/helpers/resolveVariableValue.native.js.map +1 -1
- package/dist/esm/helpers/resolveVariantStyle.native.js +2 -6
- package/dist/esm/helpers/resolveVariantStyle.native.js.map +1 -1
- package/dist/esm/helpers/skipProps.mjs +0 -1
- package/dist/esm/helpers/skipProps.mjs.map +1 -1
- package/dist/esm/helpers/skipProps.native.js +0 -1
- package/dist/esm/helpers/skipProps.native.js.map +1 -1
- package/dist/esm/helpers/styleFrontend.mjs +20 -1
- package/dist/esm/helpers/styleFrontend.mjs.map +1 -1
- package/dist/esm/helpers/styleFrontend.native.js +20 -1
- package/dist/esm/helpers/styleFrontend.native.js.map +1 -1
- package/dist/esm/helpers/styleStaticConfigCore.mjs +5 -4
- package/dist/esm/helpers/styleStaticConfigCore.mjs.map +1 -1
- package/dist/esm/helpers/styleStaticConfigCore.native.js +7 -4
- package/dist/esm/helpers/styleStaticConfigCore.native.js.map +1 -1
- package/dist/esm/helpers/styledDynamic.mjs +5 -0
- package/dist/esm/helpers/styledDynamic.mjs.map +1 -1
- package/dist/esm/helpers/styledDynamic.native.js +8 -7
- package/dist/esm/helpers/styledDynamic.native.js.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.mjs +16 -7
- package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
- package/dist/esm/helpers/subscribeToContextGroup.native.js +18 -8
- package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
- package/dist/esm/helpers/themeRef.native.js +1 -5
- package/dist/esm/helpers/themeRef.native.js.map +1 -1
- package/dist/esm/helpers/themes.mjs +20 -11
- package/dist/esm/helpers/themes.mjs.map +1 -1
- package/dist/esm/helpers/themes.native.js +20 -11
- package/dist/esm/helpers/themes.native.js.map +1 -1
- package/dist/esm/helpers/tokenCategories.mjs +2 -2
- package/dist/esm/helpers/tokenCategories.mjs.map +1 -1
- package/dist/esm/helpers/tokenCategories.native.js +2 -2
- package/dist/esm/helpers/tokenCategories.native.js.map +1 -1
- package/dist/esm/helpers/variables.mjs +1 -1
- package/dist/esm/helpers/variables.mjs.map +1 -1
- package/dist/esm/helpers/variables.native.js +4 -8
- package/dist/esm/helpers/variables.native.js.map +1 -1
- package/dist/esm/helpers/warnOnce.mjs +6 -1
- package/dist/esm/helpers/warnOnce.mjs.map +1 -1
- package/dist/esm/helpers/warnOnce.native.js +6 -1
- package/dist/esm/helpers/warnOnce.native.js.map +1 -1
- package/dist/esm/helpers/webPropsToSkip.native.js +3 -3
- package/dist/esm/helpers/webPropsToSkip.native.js.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.mjs +1 -1
- package/dist/esm/helpers/wrapStyleTags.mjs.map +1 -1
- package/dist/esm/helpers/wrapStyleTags.native.js +1 -1
- package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +1 -5
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +27 -34
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +45 -51
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useSplitStyles.mjs +1 -1
- package/dist/esm/hooks/useSplitStyles.mjs.map +1 -1
- package/dist/esm/hooks/useSplitStyles.native.js +1 -1
- package/dist/esm/hooks/useSplitStyles.native.js.map +1 -1
- package/dist/esm/hooks/useThemeState.mjs +36 -48
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +44 -50
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.mjs +4 -1
- package/dist/esm/index.native.js +4 -1
- package/dist/esm/internal-runtime.mjs +22 -3
- package/dist/esm/internal-runtime.mjs.map +1 -1
- package/dist/esm/internal-runtime.native.js +22 -3
- package/dist/esm/internal-runtime.native.js.map +1 -1
- package/dist/esm/static-resolve.native.js +2 -9
- package/dist/esm/static-resolve.native.js.map +1 -1
- package/dist/esm/style.mjs +1 -1
- package/dist/esm/style.mjs.map +1 -1
- package/dist/esm/style.native.js +4 -7
- package/dist/esm/style.native.js.map +1 -1
- package/dist/esm/views/Theme.mjs +15 -14
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +15 -15
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +1 -1
- package/dist/esm/views/ThemeDebug.mjs.map +1 -1
- package/dist/esm/views/ThemeUpdate.mjs +1 -1
- package/dist/esm/views/ThemeUpdate.mjs.map +1 -1
- package/dist/esm/views/ThemeUpdate.native.js +1 -1
- package/dist/esm/views/ThemeUpdate.native.js.map +1 -1
- package/package.json +20 -18
- package/reset.css +11 -0
- package/src/_withNativeStyle.tsx +6 -1
- package/src/config.ts +6 -6
- package/src/contexts/ComponentContext.tsx +8 -0
- package/src/createComponent.tsx +177 -57
- package/src/createStyledHOC.tsx +25 -26
- package/src/createTamagui.ts +47 -28
- package/src/dom/contract.ts +4 -1
- package/src/dom/html.native.tsx +55 -2
- package/src/dom/html.tsx +189 -388
- package/src/dom/htmlReset.ts +15 -0
- package/src/dom/htmlRuntime.native.tsx +5 -0
- package/src/dom/htmlStaticConfig.ts +40 -0
- package/src/dom/primitives.native.tsx +138 -33
- package/src/dom/standalone.ts +2 -1
- package/src/dom/styleTypes.ts +82 -92
- package/src/eventHandling.native.ts +61 -11
- package/src/eventHandling.ts +19 -4
- package/src/helpers/NativeTextBinding.tsx +26 -0
- package/src/helpers/createDesignSystem.ts +24 -8
- package/src/helpers/expandStyle.ts +88 -4
- package/src/helpers/expandStyles.ts +6 -11
- package/src/helpers/fluid.ts +66 -0
- package/src/helpers/getCSSStylesAtomic.ts +11 -6
- package/src/helpers/getSplitStyles.tsx +1032 -296
- package/src/helpers/getThemeCSSRules.ts +73 -35
- package/src/helpers/grammarConfig.ts +23 -8
- package/src/helpers/insertStyleRule.tsx +14 -8
- package/src/helpers/mainThreadPressEvents.native.ts +65 -141
- package/src/helpers/mergeProps.ts +29 -62
- package/src/helpers/nativeOnlyProps.ts +0 -1
- package/src/helpers/nativeTextMetrics.ts +77 -0
- package/src/helpers/normalizeColor.native.ts +29 -4
- package/src/helpers/normalizeValueWithProperty.ts +2 -1
- package/src/helpers/{parseNativeStyle.native.ts → parseNativeStyle.ts} +8 -1
- package/src/helpers/proxyThemeToParents.ts +13 -2
- package/src/helpers/resolveNativeUnits.native.ts +247 -0
- package/src/helpers/resolveNativeUnits.ts +10 -0
- package/src/helpers/resolveRem.native.ts +25 -26
- package/src/helpers/resolveSizing.ts +167 -0
- package/src/helpers/resolveVariableValue.ts +21 -17
- package/src/helpers/skipProps.ts +0 -1
- package/src/helpers/styleFrontend.ts +39 -0
- package/src/helpers/styleProvenance.ts +1 -1
- package/src/helpers/styleStaticConfigCore.ts +15 -4
- package/src/helpers/styledDynamic.ts +3 -1
- package/src/helpers/subscribeToContextGroup.tsx +16 -7
- package/src/helpers/themes.ts +27 -11
- package/src/helpers/tokenCategories.ts +15 -3
- package/src/helpers/variables.ts +2 -2
- package/src/helpers/warnOnce.ts +6 -0
- package/src/helpers/webPropsToSkip.native.ts +9 -3
- package/src/helpers/wrapStyleTags.tsx +4 -1
- package/src/hooks/useMedia.tsx +36 -47
- package/src/hooks/useSplitStyles.tsx +4 -1
- package/src/hooks/useThemeState.ts +69 -74
- package/src/index.ts +13 -0
- package/src/interfaces/RNExclusiveTypes.ts +1 -3
- package/src/internal-runtime.ts +43 -2
- package/src/style.ts +4 -1
- package/src/styled.tsx +34 -3
- package/src/types.tsx +412 -132
- package/src/views/Theme.tsx +18 -21
- package/src/views/ThemeDebug.tsx +1 -1
- package/src/views/ThemeUpdate.tsx +1 -1
- package/types/_withNativeStyle.d.ts.map +1 -1
- package/types/config.d.ts.map +1 -1
- package/types/contexts/ComponentContext.d.ts +1 -1
- package/types/contexts/ComponentContext.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createStyledHOC.d.ts +5 -2
- package/types/createStyledHOC.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/dom/contract.d.ts +4 -1
- package/types/dom/contract.d.ts.map +1 -1
- package/types/dom/html.d.ts +60 -51
- package/types/dom/html.d.ts.map +1 -1
- package/types/dom/html.native.d.ts.map +1 -1
- package/types/dom/htmlReset.d.ts +10 -0
- package/types/dom/htmlReset.d.ts.map +1 -0
- package/types/dom/htmlRuntime.native.d.ts.map +1 -1
- package/types/dom/htmlStaticConfig.d.ts +22 -0
- package/types/dom/htmlStaticConfig.d.ts.map +1 -0
- package/types/dom/primitives.native.d.ts.map +1 -1
- package/types/dom/standalone.d.ts +2 -1
- package/types/dom/standalone.d.ts.map +1 -1
- package/types/dom/styleTypes.d.ts +63 -84
- package/types/dom/styleTypes.d.ts.map +1 -1
- package/types/eventHandling.d.ts +12 -4
- package/types/eventHandling.d.ts.map +1 -1
- package/types/eventHandling.native.d.ts.map +1 -1
- package/types/helpers/NativeTextBinding.d.ts +11 -0
- package/types/helpers/NativeTextBinding.d.ts.map +1 -0
- package/types/helpers/createDesignSystem.d.ts.map +1 -1
- package/types/helpers/expandStyle.d.ts +1 -0
- package/types/helpers/expandStyle.d.ts.map +1 -1
- package/types/helpers/expandStyles.d.ts.map +1 -1
- package/types/helpers/fluid.d.ts +21 -0
- package/types/helpers/fluid.d.ts.map +1 -0
- package/types/helpers/getCSSStylesAtomic.d.ts +3 -1
- package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +2 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
- package/types/helpers/grammarConfig.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/mainThreadPressEvents.native.d.ts +0 -7
- package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
- package/types/helpers/mergeProps.d.ts +1 -15
- package/types/helpers/mergeProps.d.ts.map +1 -1
- package/types/helpers/nativeOnlyProps.d.ts +0 -1
- package/types/helpers/nativeOnlyProps.d.ts.map +1 -1
- package/types/helpers/nativeTextMetrics.d.ts +16 -0
- package/types/helpers/nativeTextMetrics.d.ts.map +1 -0
- package/types/helpers/normalizeColor.native.d.ts +4 -1
- package/types/helpers/normalizeColor.native.d.ts.map +1 -1
- package/types/helpers/normalizeShadow.native.d.ts +3 -1
- package/types/helpers/normalizeShadow.native.d.ts.map +1 -1
- package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
- package/types/helpers/{parseNativeStyle.native.d.ts → parseNativeStyle.d.ts} +1 -1
- package/types/helpers/parseNativeStyle.d.ts.map +1 -0
- package/types/helpers/proxyThemeToParents.d.ts +1 -1
- package/types/helpers/proxyThemeToParents.d.ts.map +1 -1
- package/types/helpers/resolveNativeUnits.d.ts +6 -0
- package/types/helpers/resolveNativeUnits.d.ts.map +1 -0
- package/types/helpers/resolveNativeUnits.native.d.ts +16 -0
- package/types/helpers/resolveNativeUnits.native.d.ts.map +1 -0
- package/types/helpers/resolveRem.native.d.ts +6 -4
- package/types/helpers/resolveRem.native.d.ts.map +1 -1
- package/types/helpers/resolveSizing.d.ts +90 -0
- package/types/helpers/resolveSizing.d.ts.map +1 -0
- package/types/helpers/resolveVariableValue.d.ts.map +1 -1
- package/types/helpers/skipProps.d.ts +0 -1
- package/types/helpers/skipProps.d.ts.map +1 -1
- package/types/helpers/styleFrontend.d.ts +21 -0
- package/types/helpers/styleFrontend.d.ts.map +1 -1
- package/types/helpers/styleProvenance.d.ts +1 -1
- package/types/helpers/styleProvenance.d.ts.map +1 -1
- package/types/helpers/styleStaticConfigCore.d.ts.map +1 -1
- package/types/helpers/styledDynamic.d.ts +1 -1
- package/types/helpers/styledDynamic.d.ts.map +1 -1
- package/types/helpers/themes.d.ts +4 -0
- package/types/helpers/themes.d.ts.map +1 -1
- package/types/helpers/tokenCategories.d.ts +1 -1
- package/types/helpers/tokenCategories.d.ts.map +1 -1
- package/types/helpers/warnOnce.d.ts +1 -0
- package/types/helpers/warnOnce.d.ts.map +1 -1
- package/types/helpers/webPropsToSkip.native.d.ts +6 -2
- package/types/helpers/webPropsToSkip.native.d.ts.map +1 -1
- package/types/helpers/wrapStyleTags.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +5 -2
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useSplitStyles.d.ts.map +1 -1
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/index.d.ts +4 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/RNExclusiveTypes.d.ts +2 -3
- package/types/interfaces/RNExclusiveTypes.d.ts.map +1 -1
- package/types/internal-runtime.d.ts +12 -1
- package/types/internal-runtime.d.ts.map +1 -1
- package/types/style.d.ts.map +1 -1
- package/types/styled.d.ts +7 -4
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +258 -102
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
- package/dist/cjs/helpers/timer.native.js.map +0 -1
- package/dist/esm/helpers/timer.mjs +0 -13
- package/dist/esm/helpers/timer.mjs.map +0 -1
- package/dist/esm/helpers/timer.native.js +0 -13
- package/dist/esm/helpers/timer.native.js.map +0 -1
- package/src/helpers/timer.ts +0 -9
- package/types/helpers/parseNativeStyle.native.d.ts.map +0 -1
- package/types/helpers/timer.d.ts +0 -2
- package/types/helpers/timer.d.ts.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Generated by @tamagui/dom scripts/generate-html.ts from the tables in
|
|
2
|
+
// that package. Run `bun run generate:html` there after changing a table.
|
|
3
|
+
// Do not edit by hand.
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Zero-specificity reset for html.* hosts, generated from the `display`
|
|
7
|
+
* column of the tag table. Every host carries `is_DOM` (see
|
|
8
|
+
* `htmlStaticConfig.ts`); `:where()` keeps these rules at zero specificity
|
|
9
|
+
* so page CSS like `p { margin: 1em }` still reaches html.* on web.
|
|
10
|
+
* No rule sets `display`: block vs inline stays with the browser
|
|
11
|
+
* stylesheet, which is what keeps `html.p` a block and `[hidden]` working.
|
|
12
|
+
*/
|
|
13
|
+
export const htmlResetCSS = `:where(.is_DOM) { margin: 0; padding: 0; }
|
|
14
|
+
:where(a.is_DOM, b.is_DOM, bdi.is_DOM, bdo.is_DOM, br.is_DOM, code.is_DOM, del.is_DOM, em.is_DOM, i.is_DOM, img.is_DOM, ins.is_DOM, kbd.is_DOM, label.is_DOM, mark.is_DOM, s.is_DOM, span.is_DOM, strong.is_DOM, sub.is_DOM, sup.is_DOM, u.is_DOM) { text-decoration: none; }
|
|
15
|
+
:where(button.is_DOM, input.is_DOM, select.is_DOM, textarea.is_DOM) { border-style: solid; }`
|
|
@@ -205,6 +205,11 @@ export function createDOMTagFactory(tables: DOMPropTables) {
|
|
|
205
205
|
jsx(Component, resolveDOMProps(props, tag, spec, tables))
|
|
206
206
|
Tag.displayName = tag
|
|
207
207
|
;(Tag as any)[componentDisplayName] = tag
|
|
208
|
+
// the styling component sits inside this wrapper on native, so another style
|
|
209
|
+
// frontend reads its config here and re-wraps its rebuild with the same dom
|
|
210
|
+
// prop mapping. see `createFrontendHTML`.
|
|
211
|
+
;(Tag as any).staticConfig = (Component as any).staticConfig
|
|
212
|
+
;(Tag as any).rebindDOMTag = (next: ComponentType<any>) => domTag(tag, next, spec)
|
|
208
213
|
return Tag as unknown as Frame
|
|
209
214
|
}
|
|
210
215
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { stylePropsTextOnly, validStyles } from '@tamagui/helpers'
|
|
2
|
+
|
|
3
|
+
import type { StaticConfig } from '../types'
|
|
4
|
+
import { textStaticConfig } from '../views/Text'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The static configs for the regular-Tamagui `html` namespace (see the
|
|
8
|
+
* generated `html.tsx`, which spreads these instead of `viewStaticConfig` /
|
|
9
|
+
* `textStaticConfig`).
|
|
10
|
+
*
|
|
11
|
+
* html.* hosts used to spread those two configs, so on web they carried
|
|
12
|
+
* `is_View` / `is_Text` and the design-system rules behind those classes
|
|
13
|
+
* (`display: flex` / `display: inline`) beat the browser stylesheet:
|
|
14
|
+
* `html.p`, `html.h1`..`html.h6` and `html.pre` rendered inline. These configs
|
|
15
|
+
* carry `isDOM` instead, which `getSplitStyles` maps to the `is_DOM` host
|
|
16
|
+
* class, whose `:where()` reset (see `htmlReset.ts`) never sets `display` and
|
|
17
|
+
* leaves it to the browser.
|
|
18
|
+
*
|
|
19
|
+
* The text-backed config keeps `isText` and the text variants: that flag also
|
|
20
|
+
* drives font classes, the `inText` ancestor channel and the dev-only raw
|
|
21
|
+
* string warning, all of which still apply to real text elements. Only the
|
|
22
|
+
* emitted host class changed.
|
|
23
|
+
*/
|
|
24
|
+
export const htmlStaticConfig: StaticConfig = {
|
|
25
|
+
acceptsClassName: true,
|
|
26
|
+
isDOM: true,
|
|
27
|
+
validStyles,
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const htmlTextStaticConfig: StaticConfig = {
|
|
31
|
+
acceptsClassName: true,
|
|
32
|
+
isDOM: true,
|
|
33
|
+
isText: true,
|
|
34
|
+
inlineProps: textStaticConfig.inlineProps,
|
|
35
|
+
variants: textStaticConfig.variants,
|
|
36
|
+
validStyles: {
|
|
37
|
+
...validStyles,
|
|
38
|
+
...stylePropsTextOnly,
|
|
39
|
+
},
|
|
40
|
+
}
|
|
@@ -34,12 +34,21 @@ import type {
|
|
|
34
34
|
import { createComponent } from '../createComponent'
|
|
35
35
|
import { textStaticConfig } from '../views/Text'
|
|
36
36
|
import { viewStaticConfig } from '../views/View'
|
|
37
|
+
import { ComponentContext } from '../contexts/ComponentContext'
|
|
38
|
+
import { getConfig } from '../config'
|
|
39
|
+
import { NativeTextBinding } from '../helpers/NativeTextBinding'
|
|
40
|
+
import {
|
|
41
|
+
resolveTextMetrics,
|
|
42
|
+
type NativeTextContext,
|
|
43
|
+
type NativeTextMetrics,
|
|
44
|
+
} from '../helpers/nativeTextMetrics'
|
|
37
45
|
|
|
38
46
|
type DOMMetadata = {
|
|
39
47
|
__inherit?: boolean
|
|
40
48
|
__inheritedStyles?: Record<string, unknown>
|
|
41
49
|
__tag?: string
|
|
42
50
|
__styles?: ReadonlyArray<Record<string, unknown> | false | null | undefined>
|
|
51
|
+
__textMetrics?: NativeTextMetrics
|
|
43
52
|
ref?: Ref<unknown>
|
|
44
53
|
children?: unknown
|
|
45
54
|
}
|
|
@@ -52,7 +61,6 @@ const refFacades = new WeakMap<object, Map<string, object>>()
|
|
|
52
61
|
const viewportScaleContext = createContext({ scale: 1 })
|
|
53
62
|
type InheritedTextStyle = {
|
|
54
63
|
style: Record<string, unknown>
|
|
55
|
-
lineHeightMultiplier?: number
|
|
56
64
|
}
|
|
57
65
|
const emptyInheritedTextStyle: InheritedTextStyle = { style: {} }
|
|
58
66
|
const inheritedTextStyleContext = createContext<InheritedTextStyle>(
|
|
@@ -293,13 +301,17 @@ function hasInheritableStyle(style: unknown) {
|
|
|
293
301
|
|
|
294
302
|
function resolveInheritedTextStyle(
|
|
295
303
|
style: unknown,
|
|
296
|
-
parent: InheritedTextStyle
|
|
297
|
-
|
|
304
|
+
parent: InheritedTextStyle,
|
|
305
|
+
context: NativeTextContext,
|
|
306
|
+
authoredMetrics?: NativeTextMetrics
|
|
307
|
+
) {
|
|
298
308
|
const values = (Array.isArray(style) ? style.flat(Infinity) : [style]).filter(
|
|
299
309
|
Boolean
|
|
300
310
|
) as Record<string, unknown>[]
|
|
301
311
|
const inherited = { ...parent.style }
|
|
302
|
-
|
|
312
|
+
if (context.parentFontSize !== undefined) inherited.fontSize = context.parentFontSize
|
|
313
|
+
let lineHeight: unknown
|
|
314
|
+
let ownsFontSize = false
|
|
303
315
|
for (const value of values) {
|
|
304
316
|
for (const property of inheritableTextProperties) {
|
|
305
317
|
if (!(property in value)) continue
|
|
@@ -308,24 +320,29 @@ function resolveInheritedTextStyle(
|
|
|
308
320
|
if (!(property in parent.style)) inherited[property] = undefined
|
|
309
321
|
continue
|
|
310
322
|
}
|
|
311
|
-
if (property === 'lineHeight'
|
|
312
|
-
|
|
323
|
+
if (property === 'lineHeight') {
|
|
324
|
+
// primitive styles are already host lengths; only metadata carries a ratio.
|
|
325
|
+
lineHeight = typeof next === 'number' ? `${next}px` : next
|
|
313
326
|
} else {
|
|
327
|
+
if (property === 'fontSize') ownsFontSize = true
|
|
314
328
|
inherited[property] =
|
|
315
329
|
typeof next === 'string' && /^-?(?:\d+\.?\d*|\.\d+)px$/.test(next)
|
|
316
330
|
? Number(next.slice(0, -2))
|
|
317
331
|
: next
|
|
318
|
-
if (property === 'lineHeight') lineHeightMultiplier = undefined
|
|
319
332
|
}
|
|
320
333
|
}
|
|
321
334
|
}
|
|
322
|
-
if (
|
|
323
|
-
inherited.
|
|
324
|
-
|
|
325
|
-
? lineHeightMultiplier * inherited.fontSize
|
|
326
|
-
: lineHeightMultiplier
|
|
335
|
+
if (authoredMetrics?.fontSize !== undefined && !authoredMetrics.inheritsFontSize) {
|
|
336
|
+
inherited.fontSize = authoredMetrics.fontSize
|
|
337
|
+
ownsFontSize = true
|
|
327
338
|
}
|
|
328
|
-
|
|
339
|
+
if (!ownsFontSize && context.animatedText) delete inherited.fontSize
|
|
340
|
+
const metrics = resolveTextMetrics(
|
|
341
|
+
inherited,
|
|
342
|
+
authoredMetrics ? authoredMetrics.lineHeight : lineHeight,
|
|
343
|
+
context
|
|
344
|
+
)
|
|
345
|
+
return { style: inherited, metrics }
|
|
329
346
|
}
|
|
330
347
|
|
|
331
348
|
function DOMViewWithInheritedStyle({
|
|
@@ -336,15 +353,23 @@ function DOMViewWithInheritedStyle({
|
|
|
336
353
|
style: unknown
|
|
337
354
|
}) {
|
|
338
355
|
const parent = useContext(inheritedTextStyleContext)
|
|
339
|
-
const
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
356
|
+
const context = useContext(ComponentContext)
|
|
357
|
+
const value = resolveInheritedTextStyle(style, parent, context, props.__textMetrics)
|
|
358
|
+
return jsx(ComponentContext.Provider, {
|
|
359
|
+
...context,
|
|
360
|
+
parentFontSize: value.metrics.fontSize,
|
|
361
|
+
parentLineHeight: value.metrics.lineHeight,
|
|
362
|
+
animatedText: value.metrics.inheritsFontSize ? context.animatedText : null,
|
|
363
|
+
children: jsx(inheritedTextStyleContext.Provider, {
|
|
364
|
+
value,
|
|
365
|
+
children: renderDOMView(props),
|
|
366
|
+
}),
|
|
343
367
|
})
|
|
344
368
|
}
|
|
345
369
|
|
|
346
370
|
function resolvedDOMView(props: DOMViewProps) {
|
|
347
371
|
if (
|
|
372
|
+
!props.__textMetrics &&
|
|
348
373
|
!hasInheritableStyle(props.style) &&
|
|
349
374
|
!hasInheritableStyle(props.__inheritedStyles)
|
|
350
375
|
) {
|
|
@@ -358,38 +383,80 @@ function resolvedDOMView(props: DOMViewProps) {
|
|
|
358
383
|
|
|
359
384
|
function DOMTextWithInheritedStyle({ props }: { props: DOMTextProps }) {
|
|
360
385
|
const parent = useContext(inheritedTextStyleContext)
|
|
361
|
-
const
|
|
386
|
+
const context = useContext(ComponentContext)
|
|
387
|
+
const value = resolveInheritedTextStyle(
|
|
388
|
+
[props.style, props.__inheritedStyles],
|
|
389
|
+
parent,
|
|
390
|
+
context,
|
|
391
|
+
props.__textMetrics
|
|
392
|
+
)
|
|
362
393
|
const resolved = {
|
|
363
394
|
...props,
|
|
364
395
|
style: [props.style, value.style],
|
|
365
396
|
} as DOMTextProps
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
397
|
+
let content = renderDOMText(resolved)
|
|
398
|
+
const driver =
|
|
399
|
+
context.animatedText && (context.animationDriver ?? getConfig().animations)
|
|
400
|
+
if (value.metrics.inheritsFontSize && context.animatedText && driver?.useTextMetrics) {
|
|
401
|
+
content = jsx(NativeTextBinding, {
|
|
402
|
+
element: content,
|
|
403
|
+
useTextMetrics: driver.useTextMetrics,
|
|
404
|
+
inheritedText: context.animatedText,
|
|
405
|
+
lineHeight: value.metrics.lineHeight,
|
|
406
|
+
})
|
|
407
|
+
}
|
|
408
|
+
return jsx(ComponentContext.Provider, {
|
|
409
|
+
...context,
|
|
410
|
+
inText: true,
|
|
411
|
+
parentFontSize: value.metrics.fontSize,
|
|
412
|
+
parentLineHeight: value.metrics.lineHeight,
|
|
413
|
+
animatedText: value.metrics.inheritsFontSize ? context.animatedText : null,
|
|
414
|
+
children: jsx(inheritedTextStyleContext.Provider, {
|
|
415
|
+
value,
|
|
416
|
+
children: content,
|
|
417
|
+
}),
|
|
369
418
|
})
|
|
370
419
|
}
|
|
371
420
|
|
|
372
421
|
function resolvedDOMText(props: DOMTextProps) {
|
|
373
|
-
return props.__inherit
|
|
422
|
+
return props.__inherit || props.__textMetrics
|
|
374
423
|
? jsx(DOMTextWithInheritedStyle, { props: resolveDOMMetadata(props) })
|
|
375
424
|
: renderDOMText(resolveDOMMetadata(props))
|
|
376
425
|
}
|
|
377
426
|
|
|
378
427
|
function DOMTextInputWithInheritedStyle({ props }: { props: DOMTextInputProps }) {
|
|
379
428
|
const parent = useContext(inheritedTextStyleContext)
|
|
429
|
+
const context = useContext(ComponentContext)
|
|
380
430
|
const inherited = resolveInheritedTextStyle(
|
|
381
431
|
[props.style, props.__inheritedStyles],
|
|
382
|
-
parent
|
|
432
|
+
parent,
|
|
433
|
+
context,
|
|
434
|
+
props.__textMetrics
|
|
383
435
|
)
|
|
384
436
|
const resolved = {
|
|
385
437
|
...props,
|
|
386
438
|
style: [props.style, inherited.style],
|
|
387
439
|
} as DOMTextInputProps
|
|
440
|
+
const driver =
|
|
441
|
+
context.animatedText && (context.animationDriver ?? getConfig().animations)
|
|
442
|
+
if (
|
|
443
|
+
inherited.metrics.inheritsFontSize &&
|
|
444
|
+
context.animatedText &&
|
|
445
|
+
driver?.useTextMetrics
|
|
446
|
+
) {
|
|
447
|
+
return jsx(NativeTextBinding, {
|
|
448
|
+
element: renderDOMTextInput(resolved),
|
|
449
|
+
useTextMetrics: driver.useTextMetrics,
|
|
450
|
+
inheritedText: context.animatedText,
|
|
451
|
+
lineHeight: inherited.metrics.lineHeight,
|
|
452
|
+
isInput: true,
|
|
453
|
+
})
|
|
454
|
+
}
|
|
388
455
|
return renderDOMTextInput(resolved)
|
|
389
456
|
}
|
|
390
457
|
|
|
391
458
|
function resolvedDOMTextInput(props: DOMTextInputProps) {
|
|
392
|
-
return props.__inherit
|
|
459
|
+
return props.__inherit || props.__textMetrics
|
|
393
460
|
? jsx(DOMTextInputWithInheritedStyle, { props: resolveDOMMetadata(props) })
|
|
394
461
|
: renderDOMTextInput(resolveDOMMetadata(props))
|
|
395
462
|
}
|
|
@@ -412,7 +479,7 @@ function mergeRuntimeStyles(
|
|
|
412
479
|
merged ||= {}
|
|
413
480
|
for (const property in style) {
|
|
414
481
|
const value = style[property]
|
|
415
|
-
if (unitlessNumberProperties.has(property)) {
|
|
482
|
+
if (property === 'lineHeight' || unitlessNumberProperties.has(property)) {
|
|
416
483
|
merged[property] = value
|
|
417
484
|
} else if (typeof value === 'number' && Number.isFinite(value)) {
|
|
418
485
|
merged[property] = `${value}px`
|
|
@@ -462,10 +529,19 @@ function DOMViewWithViewportRef(props: DOMViewProps) {
|
|
|
462
529
|
}
|
|
463
530
|
|
|
464
531
|
function renderDOMView(resolved: DOMViewProps) {
|
|
465
|
-
if (
|
|
532
|
+
if (
|
|
533
|
+
resolved.onClick === undefined &&
|
|
534
|
+
!('__inheritedStyles' in resolved) &&
|
|
535
|
+
!('__textMetrics' in resolved)
|
|
536
|
+
) {
|
|
466
537
|
return jsx(View, resolved)
|
|
467
538
|
}
|
|
468
|
-
const {
|
|
539
|
+
const {
|
|
540
|
+
__inheritedStyles: _,
|
|
541
|
+
__textMetrics: _metrics,
|
|
542
|
+
onClick,
|
|
543
|
+
...hostProps
|
|
544
|
+
} = resolved
|
|
469
545
|
if (onClick === undefined)
|
|
470
546
|
return jsx(View, hostProps)
|
|
471
547
|
// react native's View has no press handling, so a clickable one is a Pressable
|
|
@@ -483,10 +559,19 @@ function DOMTextWithViewportRef(props: DOMTextProps) {
|
|
|
483
559
|
}
|
|
484
560
|
|
|
485
561
|
function renderDOMText(resolved: DOMTextProps) {
|
|
486
|
-
if (
|
|
562
|
+
if (
|
|
563
|
+
resolved.onClick === undefined &&
|
|
564
|
+
!('__inheritedStyles' in resolved) &&
|
|
565
|
+
!('__textMetrics' in resolved)
|
|
566
|
+
) {
|
|
487
567
|
return jsx(Text, resolved)
|
|
488
568
|
}
|
|
489
|
-
const {
|
|
569
|
+
const {
|
|
570
|
+
__inheritedStyles: _,
|
|
571
|
+
__textMetrics: _metrics,
|
|
572
|
+
onClick,
|
|
573
|
+
...hostProps
|
|
574
|
+
} = resolved
|
|
490
575
|
if (onClick === undefined)
|
|
491
576
|
return jsx(Text, hostProps)
|
|
492
577
|
// react native's Text presses on its own, so this stays one element
|
|
@@ -508,11 +593,19 @@ function renderDOMImage(resolved: DOMImageProps) {
|
|
|
508
593
|
resolved.onClick === undefined &&
|
|
509
594
|
resolved.onLoad === undefined &&
|
|
510
595
|
resolved.onError === undefined &&
|
|
511
|
-
!('__inheritedStyles' in resolved)
|
|
596
|
+
!('__inheritedStyles' in resolved) &&
|
|
597
|
+
!('__textMetrics' in resolved)
|
|
512
598
|
) {
|
|
513
599
|
return jsx(Image, resolved)
|
|
514
600
|
}
|
|
515
|
-
const {
|
|
601
|
+
const {
|
|
602
|
+
__inheritedStyles: _,
|
|
603
|
+
__textMetrics: _metrics,
|
|
604
|
+
onClick,
|
|
605
|
+
onLoad,
|
|
606
|
+
onError,
|
|
607
|
+
...hostProps
|
|
608
|
+
} = resolved
|
|
516
609
|
if (onClick === undefined && onLoad === undefined && onError === undefined) {
|
|
517
610
|
return jsx(Image, hostProps)
|
|
518
611
|
}
|
|
@@ -537,11 +630,19 @@ function renderDOMTextInput(resolved: DOMTextInputProps) {
|
|
|
537
630
|
resolved.onChange === undefined &&
|
|
538
631
|
resolved.onInput === undefined &&
|
|
539
632
|
resolved.onKeyDown === undefined &&
|
|
540
|
-
!('__inheritedStyles' in resolved)
|
|
633
|
+
!('__inheritedStyles' in resolved) &&
|
|
634
|
+
!('__textMetrics' in resolved)
|
|
541
635
|
) {
|
|
542
636
|
return jsx(TextInput, resolved)
|
|
543
637
|
}
|
|
544
|
-
const {
|
|
638
|
+
const {
|
|
639
|
+
__inheritedStyles: _,
|
|
640
|
+
__textMetrics: _metrics,
|
|
641
|
+
onChange,
|
|
642
|
+
onInput,
|
|
643
|
+
onKeyDown,
|
|
644
|
+
...hostProps
|
|
645
|
+
} = resolved
|
|
545
646
|
if (onChange === undefined && onInput === undefined && onKeyDown === undefined) {
|
|
546
647
|
return jsx(TextInput, hostProps)
|
|
547
648
|
}
|
|
@@ -554,6 +655,7 @@ function renderDOMTextInput(resolved: DOMTextInputProps) {
|
|
|
554
655
|
}
|
|
555
656
|
|
|
556
657
|
const DOMRuntimeViewFrame = createComponent({
|
|
658
|
+
isDOM: true,
|
|
557
659
|
...viewStaticConfig,
|
|
558
660
|
validStyles: { ...viewStaticConfig.validStyles, ...textStaticConfig.validStyles },
|
|
559
661
|
neverSkipProps: domEventProps,
|
|
@@ -562,6 +664,7 @@ const DOMRuntimeViewFrame = createComponent({
|
|
|
562
664
|
displayName: 'DOMRuntimeView',
|
|
563
665
|
})
|
|
564
666
|
const DOMRuntimeTextFrame = createComponent({
|
|
667
|
+
isDOM: true,
|
|
565
668
|
...textStaticConfig,
|
|
566
669
|
neverSkipProps: domEventProps,
|
|
567
670
|
Component: DOMText as any,
|
|
@@ -569,6 +672,7 @@ const DOMRuntimeTextFrame = createComponent({
|
|
|
569
672
|
displayName: 'DOMRuntimeText',
|
|
570
673
|
})
|
|
571
674
|
const DOMRuntimeImageFrame = createComponent({
|
|
675
|
+
isDOM: true,
|
|
572
676
|
...viewStaticConfig,
|
|
573
677
|
validStyles: { ...viewStaticConfig.validStyles, ...textStaticConfig.validStyles },
|
|
574
678
|
neverSkipProps: domEventProps,
|
|
@@ -577,6 +681,7 @@ const DOMRuntimeImageFrame = createComponent({
|
|
|
577
681
|
displayName: 'DOMRuntimeImage',
|
|
578
682
|
})
|
|
579
683
|
const DOMRuntimeTextInputFrame = createComponent({
|
|
684
|
+
isDOM: true,
|
|
580
685
|
...textStaticConfig,
|
|
581
686
|
neverSkipProps: domEventProps,
|
|
582
687
|
Component: DOMTextInput as any,
|
package/src/dom/standalone.ts
CHANGED
|
@@ -61,7 +61,8 @@ export type DOMStyleProps = {
|
|
|
61
61
|
* It comes from `./styleTypes`, which owns the property set outright, so this
|
|
62
62
|
* entry typechecks in a project with no react-native installed.
|
|
63
63
|
* `styleTypes.test-d.ts` asserts it still matches `StackStyleBase &
|
|
64
|
-
* TextStylePropsBase` property for property
|
|
64
|
+
* TextStylePropsBase` property for property, minus the react-native-only keys
|
|
65
|
+
* the web contract removes.
|
|
65
66
|
*
|
|
66
67
|
* @deprecated The standalone Tamagui DOM entries are demoted implementation
|
|
67
68
|
* plumbing in V3. They keep working unchanged; new code should import `html`
|