@tamagui/web 3.0.0-beta.831.1 → 3.0.0-beta.889.1
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/createComponent.cjs +12 -1
- package/dist/cjs/createComponent.native.cjs +12 -1
- package/dist/cjs/createComponent.native.js +12 -1
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createStyledHOC.cjs +1 -1
- package/dist/cjs/createStyledHOC.native.cjs +1 -1
- package/dist/cjs/createStyledHOC.native.js +1 -1
- package/dist/cjs/createStyledHOC.native.js.map +1 -1
- package/dist/cjs/createVariable.cjs +0 -10
- package/dist/cjs/createVariable.native.cjs +0 -10
- package/dist/cjs/createVariable.native.js +0 -10
- package/dist/cjs/createVariable.native.js.map +1 -1
- package/dist/cjs/helpers/borderComponents.cjs +62 -0
- package/dist/cjs/helpers/borderComponents.native.cjs +82 -0
- package/dist/cjs/helpers/borderComponents.native.js +84 -0
- package/dist/cjs/helpers/borderComponents.native.js.map +1 -0
- package/dist/cjs/helpers/createDesignSystem.cjs +0 -2
- package/dist/cjs/helpers/createStyledContext.cjs +10 -18
- package/dist/cjs/helpers/createStyledContext.native.cjs +14 -18
- package/dist/cjs/helpers/createStyledContext.native.js +14 -18
- package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
- package/dist/cjs/helpers/formatDiagnostic.cjs +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.cjs +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomic.cjs +128 -109
- package/dist/cjs/helpers/getCSSStylesAtomic.native.cjs +11 -3
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js +11 -3
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.cjs +13 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.cjs +15 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js +15 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -1
- package/dist/cjs/helpers/getDynamicVal.cjs +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.cjs +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.js +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +1042 -1715
- package/dist/cjs/helpers/getSplitStyles.native.cjs +1081 -1887
- package/dist/cjs/helpers/getSplitStyles.native.js +1081 -1887
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/grammarConfig.cjs +163 -1
- package/dist/cjs/helpers/grammarConfig.native.cjs +186 -1
- package/dist/cjs/helpers/grammarConfig.native.js +186 -1
- package/dist/cjs/helpers/grammarConfig.native.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.cjs +5 -1
- package/dist/cjs/helpers/insertStyleRule.native.cjs +7 -1
- package/dist/cjs/helpers/insertStyleRule.native.js +7 -1
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/cjs/helpers/log.cjs +9 -8
- package/dist/cjs/helpers/log.native.cjs +9 -8
- package/dist/cjs/helpers/log.native.js +9 -8
- package/dist/cjs/helpers/log.native.js.map +1 -1
- package/dist/cjs/helpers/mergeVariants.cjs +44 -13
- package/dist/cjs/helpers/mergeVariants.native.cjs +79 -14
- package/dist/cjs/helpers/mergeVariants.native.js +79 -14
- package/dist/cjs/helpers/mergeVariants.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/nativeStyleEngine.cjs +34 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.cjs +36 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.js +36 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.cjs +7 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.cjs +9 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js +9 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/cjs/helpers/parseBorderShorthand.native.cjs +25 -56
- package/dist/cjs/helpers/parseBorderShorthand.native.js +25 -56
- package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/parseOutlineShorthand.native.cjs +9 -49
- package/dist/cjs/helpers/parseOutlineShorthand.native.js +9 -49
- package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/resolveSafeArea.cjs +35 -100
- package/dist/cjs/helpers/resolveVariantStyle.cjs +57 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.cjs +67 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.js +69 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.js.map +1 -0
- package/dist/cjs/helpers/styleStaticConfig.cjs +1 -50
- package/dist/cjs/helpers/styleStaticConfig.native.cjs +1 -51
- package/dist/cjs/helpers/styleStaticConfig.native.js +1 -51
- package/dist/cjs/helpers/styleStaticConfig.native.js.map +1 -1
- package/dist/cjs/helpers/styleStaticConfigCore.cjs +107 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.cjs +127 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.js +129 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.js.map +1 -0
- package/dist/cjs/helpers/styledDynamic.cjs +160 -0
- package/dist/cjs/helpers/styledDynamic.native.cjs +195 -0
- package/dist/cjs/helpers/styledDynamic.native.js +197 -0
- package/dist/cjs/helpers/styledDynamic.native.js.map +1 -0
- package/dist/cjs/helpers/tokenCategories.cjs +15 -38
- package/dist/cjs/helpers/tokenCategories.native.cjs +15 -40
- package/dist/cjs/helpers/tokenCategories.native.js +15 -40
- package/dist/cjs/helpers/tokenCategories.native.js.map +1 -1
- package/dist/cjs/helpers/variableValue.cjs +17 -12
- package/dist/cjs/helpers/variableValue.native.cjs +46 -23
- package/dist/cjs/helpers/variableValue.native.js +46 -23
- package/dist/cjs/helpers/variableValue.native.js.map +1 -1
- package/dist/cjs/helpers/warnOnce.cjs +5 -4
- package/dist/cjs/helpers/warnOnce.native.cjs +6 -4
- package/dist/cjs/helpers/warnOnce.native.js +6 -4
- package/dist/cjs/helpers/warnOnce.native.js.map +1 -1
- package/dist/cjs/hooks/useAnimationDriver.cjs +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.cjs +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.js +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.cjs +41 -82
- package/dist/cjs/hooks/useComponentState.native.cjs +45 -84
- package/dist/cjs/hooks/useComponentState.native.js +45 -84
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +2 -2
- package/dist/cjs/hooks/useMedia.native.cjs +2 -2
- package/dist/cjs/hooks/useMedia.native.js +2 -2
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/{helpers/directStyleCSS.native.js → hooks/useStyle.cjs} +16 -8
- package/dist/cjs/{helpers/directStyleCSS.native.cjs → hooks/useStyle.native.cjs} +16 -4
- package/dist/cjs/hooks/useStyle.native.js +34 -0
- package/dist/cjs/hooks/useStyle.native.js.map +1 -0
- package/dist/cjs/hooks/useThemeState.cjs +25 -90
- package/dist/cjs/hooks/useThemeState.native.cjs +34 -94
- package/dist/cjs/hooks/useThemeState.native.js +34 -94
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +6 -3
- package/dist/cjs/index.native.cjs +6 -3
- package/dist/cjs/index.native.js +6 -3
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/static-resolve.cjs +2 -2
- package/dist/cjs/static-resolve.native.cjs +2 -2
- package/dist/cjs/static-resolve.native.js +2 -2
- package/dist/cjs/static-resolve.native.js.map +1 -1
- package/dist/cjs/style.cjs +91 -0
- package/dist/cjs/style.native.cjs +98 -0
- package/dist/cjs/style.native.js +100 -0
- package/dist/cjs/style.native.js.map +1 -0
- package/dist/cjs/styled.cjs +11 -6
- package/dist/cjs/styled.native.cjs +11 -6
- package/dist/cjs/styled.native.js +11 -6
- package/dist/cjs/styled.native.js.map +1 -1
- package/dist/cjs/types.cjs +6 -4
- package/dist/cjs/types.native.cjs +6 -4
- package/dist/cjs/types.native.js +6 -4
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.cjs +1 -2
- package/dist/cjs/views/TamaguiProvider.native.cjs +1 -2
- package/dist/cjs/views/TamaguiProvider.native.js +1 -2
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/Text.cjs +17 -12
- package/dist/cjs/views/Text.native.cjs +1 -0
- package/dist/cjs/views/Text.native.js +1 -0
- package/dist/cjs/views/Text.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +3 -3
- package/dist/cjs/views/Theme.native.cjs +3 -3
- package/dist/cjs/views/Theme.native.js +3 -3
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeDebug.cjs +1 -4
- package/dist/esm/createComponent.mjs +12 -1
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +12 -1
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createStyledHOC.mjs +1 -1
- package/dist/esm/createStyledHOC.mjs.map +1 -1
- package/dist/esm/createStyledHOC.native.js +1 -1
- package/dist/esm/createStyledHOC.native.js.map +1 -1
- package/dist/esm/createVariable.mjs +1 -9
- package/dist/esm/createVariable.mjs.map +1 -1
- package/dist/esm/createVariable.native.js +1 -9
- package/dist/esm/createVariable.native.js.map +1 -1
- package/dist/esm/helpers/borderComponents.mjs +37 -0
- package/dist/esm/helpers/borderComponents.mjs.map +1 -0
- package/dist/esm/helpers/borderComponents.native.js +55 -0
- package/dist/esm/helpers/borderComponents.native.js.map +1 -0
- package/dist/esm/helpers/createDesignSystem.mjs +0 -2
- package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.mjs +10 -18
- package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.native.js +14 -18
- package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
- package/dist/esm/helpers/formatDiagnostic.mjs +6 -6
- package/dist/esm/helpers/formatDiagnostic.mjs.map +1 -1
- package/dist/esm/helpers/formatDiagnostic.native.js +6 -6
- package/dist/esm/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.mjs +126 -109
- package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.native.js +7 -4
- package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs +8 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js +10 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -1
- package/dist/esm/helpers/getDynamicVal.mjs +5 -1
- package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
- package/dist/esm/helpers/getDynamicVal.native.js +5 -1
- package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +1034 -1705
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +1071 -1871
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/grammarConfig.mjs +164 -2
- package/dist/esm/helpers/grammarConfig.mjs.map +1 -1
- package/dist/esm/helpers/grammarConfig.native.js +187 -2
- package/dist/esm/helpers/grammarConfig.native.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +5 -2
- package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +7 -2
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/helpers/log.mjs +9 -8
- package/dist/esm/helpers/log.mjs.map +1 -1
- package/dist/esm/helpers/log.native.js +9 -8
- package/dist/esm/helpers/log.native.js.map +1 -1
- package/dist/esm/helpers/mergeVariants.mjs +44 -13
- package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
- package/dist/esm/helpers/mergeVariants.native.js +79 -14
- package/dist/esm/helpers/mergeVariants.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/nativeStyleEngine.mjs +34 -15
- package/dist/esm/helpers/nativeStyleEngine.mjs.map +1 -1
- package/dist/esm/helpers/nativeStyleEngine.native.js +36 -15
- package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +7 -8
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +9 -8
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/esm/helpers/parseBorderShorthand.native.js +23 -56
- package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/esm/helpers/parseOutlineShorthand.native.js +10 -49
- package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/esm/helpers/resolveSafeArea.mjs +35 -97
- package/dist/esm/helpers/resolveSafeArea.mjs.map +1 -1
- package/dist/esm/helpers/resolveVariantStyle.mjs +38 -0
- package/dist/esm/helpers/resolveVariantStyle.mjs.map +1 -0
- package/dist/esm/helpers/resolveVariantStyle.native.js +46 -0
- package/dist/esm/helpers/resolveVariantStyle.native.js.map +1 -0
- package/dist/esm/helpers/styleStaticConfig.mjs +1 -50
- package/dist/esm/helpers/styleStaticConfig.mjs.map +1 -1
- package/dist/esm/helpers/styleStaticConfig.native.js +1 -51
- package/dist/esm/helpers/styleStaticConfig.native.js.map +1 -1
- package/dist/esm/helpers/styleStaticConfigCore.mjs +88 -0
- package/dist/esm/helpers/styleStaticConfigCore.mjs.map +1 -0
- package/dist/esm/helpers/styleStaticConfigCore.native.js +106 -0
- package/dist/esm/helpers/styleStaticConfigCore.native.js.map +1 -0
- package/dist/esm/helpers/styledDynamic.mjs +136 -0
- package/dist/esm/helpers/styledDynamic.mjs.map +1 -0
- package/dist/esm/helpers/styledDynamic.native.js +169 -0
- package/dist/esm/helpers/styledDynamic.native.js.map +1 -0
- package/dist/esm/helpers/tokenCategories.mjs +15 -36
- package/dist/esm/helpers/tokenCategories.mjs.map +1 -1
- package/dist/esm/helpers/tokenCategories.native.js +15 -38
- package/dist/esm/helpers/tokenCategories.native.js.map +1 -1
- package/dist/esm/helpers/variableValue.mjs +17 -12
- package/dist/esm/helpers/variableValue.mjs.map +1 -1
- package/dist/esm/helpers/variableValue.native.js +46 -23
- package/dist/esm/helpers/variableValue.native.js.map +1 -1
- package/dist/esm/helpers/warnOnce.mjs +5 -4
- package/dist/esm/helpers/warnOnce.mjs.map +1 -1
- package/dist/esm/helpers/warnOnce.native.js +6 -4
- package/dist/esm/helpers/warnOnce.native.js.map +1 -1
- package/dist/esm/hooks/useAnimationDriver.mjs +2 -2
- package/dist/esm/hooks/useAnimationDriver.mjs.map +1 -1
- package/dist/esm/hooks/useAnimationDriver.native.js +2 -2
- package/dist/esm/hooks/useAnimationDriver.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +41 -82
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +45 -84
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +2 -2
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +2 -2
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useStyle.mjs +11 -0
- package/dist/esm/hooks/useStyle.mjs.map +1 -0
- package/dist/esm/hooks/useStyle.native.js +11 -0
- package/dist/esm/hooks/useStyle.native.js.map +1 -0
- package/dist/esm/hooks/useThemeState.mjs +25 -90
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +34 -94
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +6 -4
- package/dist/esm/index.mjs +6 -4
- package/dist/esm/index.native.js +6 -4
- package/dist/esm/static-resolve.mjs +3 -3
- package/dist/esm/static-resolve.mjs.map +1 -1
- package/dist/esm/static-resolve.native.js +3 -3
- package/dist/esm/static-resolve.native.js.map +1 -1
- package/dist/esm/style.mjs +58 -0
- package/dist/esm/style.mjs.map +1 -0
- package/dist/esm/style.native.js +63 -0
- package/dist/esm/style.native.js.map +1 -0
- package/dist/esm/styled.mjs +12 -6
- package/dist/esm/styled.mjs.map +1 -1
- package/dist/esm/styled.native.js +12 -6
- package/dist/esm/styled.native.js.map +1 -1
- package/dist/esm/types.mjs +3 -4
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/types.native.js +3 -4
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +1 -2
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js +1 -2
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/Text.mjs +17 -12
- package/dist/esm/views/Text.mjs.map +1 -1
- package/dist/esm/views/Theme.mjs +3 -3
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +3 -3
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +1 -4
- package/dist/esm/views/ThemeDebug.mjs.map +1 -1
- package/package.json +15 -15
- package/src/createComponent.tsx +21 -1
- package/src/createStyledHOC.tsx +4 -2
- package/src/createVariable.ts +0 -10
- package/src/helpers/borderComponents.ts +62 -0
- package/src/helpers/createDesignSystem.ts +0 -2
- package/src/helpers/createStyledContext.tsx +15 -53
- package/src/helpers/formatDiagnostic.ts +9 -9
- package/src/helpers/getCSSStylesAtomic.native.ts +6 -3
- package/src/helpers/getCSSStylesAtomic.ts +192 -207
- package/src/helpers/getCSSStylesAtomicCompiled.ts +13 -1
- package/src/helpers/getDynamicVal.ts +4 -0
- package/src/helpers/getSplitStyles.tsx +2080 -3270
- package/src/helpers/grammarConfig.ts +218 -1
- package/src/helpers/insertStyleRule.tsx +4 -2
- package/src/helpers/log.ts +12 -11
- package/src/helpers/mergeVariants.ts +55 -18
- package/src/helpers/nativeOnlyProps.ts +0 -1
- package/src/helpers/nativeStyleEngine.ts +55 -14
- package/src/helpers/normalizeValueWithProperty.ts +10 -12
- package/src/helpers/parseBorderShorthand.native.ts +23 -45
- package/src/helpers/parseOutlineShorthand.native.ts +9 -40
- package/src/helpers/resolveSafeArea.ts +34 -101
- package/src/helpers/resolveVariantStyle.ts +77 -0
- package/src/helpers/styleFrontend.ts +8 -5
- package/src/helpers/styleStaticConfig.ts +5 -72
- package/src/helpers/styleStaticConfigCore.ts +110 -0
- package/src/helpers/styledDynamic.ts +191 -0
- package/src/helpers/tokenCategories.ts +40 -65
- package/src/helpers/variableValue.ts +20 -15
- package/src/helpers/warnOnce.ts +5 -4
- package/src/hooks/useAnimationDriver.ts +6 -2
- package/src/hooks/useComponentState.ts +55 -183
- package/src/hooks/useMedia.tsx +10 -8
- package/src/hooks/useStyle.ts +10 -0
- package/src/hooks/useThemeState.ts +51 -264
- package/src/index.ts +6 -6
- package/src/internalRuntimeTypes.ts +1 -0
- package/src/static-resolve.ts +7 -4
- package/src/style.ts +97 -0
- package/src/styled.tsx +39 -68
- package/src/types.tsx +105 -169
- package/src/views/TamaguiProvider.tsx +0 -2
- package/src/views/Text.tsx +20 -14
- package/src/views/Theme.tsx +13 -9
- package/src/views/ThemeDebug.tsx +0 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createStyledHOC.d.ts +1 -1
- package/types/createStyledHOC.d.ts.map +1 -1
- package/types/createVariable.d.ts +0 -2
- package/types/createVariable.d.ts.map +1 -1
- package/types/helpers/borderComponents.d.ts +10 -0
- package/types/helpers/borderComponents.d.ts.map +1 -0
- package/types/helpers/createDesignSystem.d.ts.map +1 -1
- package/types/helpers/createStyledContext.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomic.d.ts +20 -19
- package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomic.native.d.ts +5 -0
- package/types/helpers/getCSSStylesAtomic.native.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomicCompiled.d.ts +6 -1
- package/types/helpers/getCSSStylesAtomicCompiled.d.ts.map +1 -1
- package/types/helpers/getDynamicVal.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +3 -5
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/grammarConfig.d.ts +25 -2
- package/types/helpers/grammarConfig.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts +1 -0
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/log.d.ts.map +1 -1
- package/types/helpers/mergeVariants.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/nativeStyleEngine.d.ts +6 -0
- package/types/helpers/nativeStyleEngine.d.ts.map +1 -1
- package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
- package/types/helpers/parseBorderShorthand.native.d.ts +1 -0
- package/types/helpers/parseBorderShorthand.native.d.ts.map +1 -1
- package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -1
- package/types/helpers/resolveSafeArea.d.ts +0 -1
- package/types/helpers/resolveSafeArea.d.ts.map +1 -1
- package/types/helpers/resolveVariantStyle.d.ts +3 -0
- package/types/helpers/resolveVariantStyle.d.ts.map +1 -0
- package/types/helpers/styleFrontend.d.ts +3 -5
- package/types/helpers/styleFrontend.d.ts.map +1 -1
- package/types/helpers/styleStaticConfig.d.ts +4 -9
- package/types/helpers/styleStaticConfig.d.ts.map +1 -1
- package/types/helpers/styleStaticConfigCore.d.ts +4 -0
- package/types/helpers/styleStaticConfigCore.d.ts.map +1 -0
- package/types/helpers/styledDynamic.d.ts +18 -0
- package/types/helpers/styledDynamic.d.ts.map +1 -0
- package/types/helpers/tokenCategories.d.ts +0 -1
- package/types/helpers/tokenCategories.d.ts.map +1 -1
- package/types/helpers/variableValue.d.ts.map +1 -1
- package/types/helpers/warnOnce.d.ts.map +1 -1
- package/types/helpers/webPropsToSkip.native.d.ts +68 -68
- package/types/hooks/useAnimationDriver.d.ts.map +1 -1
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useStyle.d.ts +4 -0
- package/types/hooks/useStyle.d.ts.map +1 -0
- package/types/hooks/useThemeState.d.ts +1 -11
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/index.d.ts +6 -4
- package/types/index.d.ts.map +1 -1
- package/types/internalRuntimeTypes.d.ts +1 -1
- package/types/internalRuntimeTypes.d.ts.map +1 -1
- package/types/static-resolve.d.ts.map +1 -1
- package/types/style.d.ts +18 -0
- package/types/style.d.ts.map +1 -0
- package/types/styled.d.ts +10 -10
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +74 -49
- package/types/types.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts +1 -1
- package/types/views/TamaguiProvider.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/ThemeDebug.d.ts.map +1 -1
- package/dist/cjs/helpers/directStyleCSS.cjs +0 -345
- package/dist/cjs/helpers/directStyleCSS.native.js.map +0 -1
- package/dist/cjs/helpers/directStyleCSSCompiled.cjs +0 -40
- package/dist/cjs/helpers/directStyleCSSCompiled.native.cjs +0 -46
- package/dist/cjs/helpers/directStyleCSSCompiled.native.js +0 -48
- package/dist/cjs/helpers/directStyleCSSCompiled.native.js.map +0 -1
- package/dist/cjs/helpers/getVariantExtras.cjs +0 -91
- package/dist/cjs/helpers/getVariantExtras.native.cjs +0 -94
- package/dist/cjs/helpers/getVariantExtras.native.js +0 -96
- package/dist/cjs/helpers/getVariantExtras.native.js.map +0 -1
- package/dist/cjs/helpers/variantResolvers.cjs +0 -87
- package/dist/cjs/helpers/variantResolvers.native.cjs +0 -140
- package/dist/cjs/helpers/variantResolvers.native.js +0 -142
- package/dist/cjs/helpers/variantResolvers.native.js.map +0 -1
- package/dist/esm/helpers/directStyleCSS.mjs +0 -317
- package/dist/esm/helpers/directStyleCSS.mjs.map +0 -1
- package/dist/esm/helpers/directStyleCSS.native.js +0 -1
- package/dist/esm/helpers/directStyleCSSCompiled.mjs +0 -11
- package/dist/esm/helpers/directStyleCSSCompiled.mjs.map +0 -1
- package/dist/esm/helpers/directStyleCSSCompiled.native.js +0 -15
- package/dist/esm/helpers/directStyleCSSCompiled.native.js.map +0 -1
- package/dist/esm/helpers/getVariantExtras.mjs +0 -69
- package/dist/esm/helpers/getVariantExtras.mjs.map +0 -1
- package/dist/esm/helpers/getVariantExtras.native.js +0 -70
- package/dist/esm/helpers/getVariantExtras.native.js.map +0 -1
- package/dist/esm/helpers/variantResolvers.mjs +0 -65
- package/dist/esm/helpers/variantResolvers.mjs.map +0 -1
- package/dist/esm/helpers/variantResolvers.native.js +0 -116
- package/dist/esm/helpers/variantResolvers.native.js.map +0 -1
- package/src/helpers/directStyleCSS.native.ts +0 -1
- package/src/helpers/directStyleCSS.ts +0 -513
- package/src/helpers/directStyleCSSCompiled.ts +0 -32
- package/src/helpers/getVariantExtras.tsx +0 -95
- package/src/helpers/variantResolvers.ts +0 -121
- package/types/helpers/directStyleCSS.d.ts +0 -28
- package/types/helpers/directStyleCSS.d.ts.map +0 -1
- package/types/helpers/directStyleCSS.native.d.ts +0 -2
- package/types/helpers/directStyleCSS.native.d.ts.map +0 -1
- package/types/helpers/directStyleCSSCompiled.d.ts +0 -10
- package/types/helpers/directStyleCSSCompiled.d.ts.map +0 -1
- package/types/helpers/getVariantExtras.d.ts +0 -4
- package/types/helpers/getVariantExtras.d.ts.map +0 -1
- package/types/helpers/variantResolvers.d.ts +0 -9
- package/types/helpers/variantResolvers.d.ts.map +0 -1
|
@@ -3,18 +3,149 @@
|
|
|
3
3
|
* Copyright (c) Nicolas Gallagher licensed under the MIT license.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import
|
|
7
|
-
|
|
6
|
+
import {
|
|
7
|
+
type StyleObject,
|
|
8
|
+
StyleObjectIdentifier,
|
|
9
|
+
StyleObjectRules,
|
|
10
|
+
cssShorthandLonghands,
|
|
11
|
+
simpleHash,
|
|
12
|
+
} from '@tamagui/helpers'
|
|
8
13
|
import { getConfigMaybe } from '../config'
|
|
9
|
-
import type { TamaguiInternalConfig, ViewStyleObject } from '../types'
|
|
14
|
+
import type { GetStyleState, TamaguiInternalConfig, ViewStyleObject } from '../types'
|
|
10
15
|
import { getConfigRevisionState } from './grammarConfig'
|
|
16
|
+
import { shouldInsertStyleRules, updateRules } from './insertStyleRule'
|
|
11
17
|
import { normalizeValueWithProperty } from './normalizeValueWithProperty'
|
|
12
18
|
import { styleToCSS } from './styleToCSS'
|
|
13
19
|
import { transformsToString } from './transformsToString'
|
|
14
20
|
|
|
15
21
|
export { styleToCSS } from './styleToCSS'
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
export const canGenerateCSS =
|
|
24
|
+
process.env.TAMAGUI_TARGET === 'web' && !process.env.TAMAGUI_DID_OUTPUT_CSS
|
|
25
|
+
|
|
26
|
+
type DirectAtomicState = GetStyleState & {
|
|
27
|
+
flatAtomics?: Map<string, StyleObject>
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type AtomicSlotEntry = [
|
|
31
|
+
property: string,
|
|
32
|
+
value: any,
|
|
33
|
+
condition: number,
|
|
34
|
+
identity: string,
|
|
35
|
+
selector: string,
|
|
36
|
+
wrappers: readonly string[] | undefined,
|
|
37
|
+
original?: any,
|
|
38
|
+
flags?: number,
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
export type SlotIdentity = [
|
|
42
|
+
identifier: string,
|
|
43
|
+
rules: string[],
|
|
44
|
+
value: any,
|
|
45
|
+
styleObject?: unknown,
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
function directStyleSignature(property: string, value: unknown, conditionKey = '') {
|
|
49
|
+
return '\u001f' + property + '\u001f' + conditionKey + '\u001e' + String(value)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function getShortProp(key: string) {
|
|
53
|
+
let short = ''
|
|
54
|
+
for (let i = 0; i < key.length; i++) {
|
|
55
|
+
const code = key.charCodeAt(i)
|
|
56
|
+
if (
|
|
57
|
+
(i === 0 || (code >= 65 && code <= 90) || key.charCodeAt(i - 1) === 45) &&
|
|
58
|
+
((code >= 65 && code <= 90) || (code >= 97 && code <= 122))
|
|
59
|
+
) {
|
|
60
|
+
short += key[i].toLowerCase()
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return short || 'x'
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function registerAtomicSlot(
|
|
67
|
+
state: DirectAtomicState,
|
|
68
|
+
atomicKey: string,
|
|
69
|
+
entries: readonly AtomicSlotEntry[]
|
|
70
|
+
) {
|
|
71
|
+
let signature = ''
|
|
72
|
+
for (let index = 0; index < entries.length; index++) {
|
|
73
|
+
const entry = entries[index]
|
|
74
|
+
let value = entry[1]
|
|
75
|
+
if (entry[0] === 'transform' && Array.isArray(value)) {
|
|
76
|
+
value = transformsToString(value)
|
|
77
|
+
}
|
|
78
|
+
entry[1] = normalizeValueWithProperty(value, entry[0])
|
|
79
|
+
signature += directStyleSignature(
|
|
80
|
+
entry[0],
|
|
81
|
+
entry[1],
|
|
82
|
+
`${entry[3]}\u001d${entry[7]! >> 5}`
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
const built = buildAtomicSlotCSS(atomicKey, entries, signature)
|
|
86
|
+
if (!built) return
|
|
87
|
+
let styleObjectProperty = entries[0]![0]
|
|
88
|
+
for (let index = 1; index < entries.length; index++) {
|
|
89
|
+
if (entries[index]![0] !== styleObjectProperty) {
|
|
90
|
+
styleObjectProperty = atomicKey
|
|
91
|
+
break
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const styleObject = (built[3] ||= [
|
|
95
|
+
styleObjectProperty,
|
|
96
|
+
built[2],
|
|
97
|
+
built[0],
|
|
98
|
+
undefined,
|
|
99
|
+
built[1],
|
|
100
|
+
]) as StyleObject
|
|
101
|
+
;(state.flatAtomics ||= new Map()).set(atomicKey, styleObject)
|
|
102
|
+
state.classNames[atomicKey] = built[0]
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function flushDirectStyles(state: GetStyleState, clear = false) {
|
|
106
|
+
if (!canGenerateCSS) {
|
|
107
|
+
if (clear) (state as DirectAtomicState).flatAtomics = undefined
|
|
108
|
+
return
|
|
109
|
+
}
|
|
110
|
+
const direct = state as DirectAtomicState
|
|
111
|
+
const atomics = direct.flatAtomics
|
|
112
|
+
if (!atomics) return
|
|
113
|
+
for (const styleObject of atomics.values()) {
|
|
114
|
+
const identifier = styleObject[StyleObjectIdentifier]
|
|
115
|
+
if (shouldInsertStyleRules(identifier)) {
|
|
116
|
+
const rules = styleObject[StyleObjectRules].slice()
|
|
117
|
+
styleObject[StyleObjectRules] = rules
|
|
118
|
+
updateRules(identifier, rules)
|
|
119
|
+
state.flatRulesToInsert![identifier] = styleObject
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (clear) direct.flatAtomics = undefined
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function addComposition(state: GetStyleState, property: 'translate' | 'scale') {
|
|
126
|
+
if (!canGenerateCSS || state.classNames[property]) return
|
|
127
|
+
const isTranslate = property === 'translate'
|
|
128
|
+
const identifier = isTranslate ? '_t-compose' : '_s-compose'
|
|
129
|
+
const value = isTranslate
|
|
130
|
+
? 'var(--t-x, 0px) var(--t-y, 0px)'
|
|
131
|
+
: 'var(--t-scale-x, 1) var(--t-scale-y, 1)'
|
|
132
|
+
const defaults = isTranslate ? '--t-x:0px;--t-y:0px' : '--t-scale-x:1;--t-scale-y:1'
|
|
133
|
+
const rules = [
|
|
134
|
+
`:where(.${identifier}){${defaults}}`,
|
|
135
|
+
`.${identifier}{${property}:${value}}`,
|
|
136
|
+
]
|
|
137
|
+
if (shouldInsertStyleRules(identifier)) {
|
|
138
|
+
updateRules(identifier, rules)
|
|
139
|
+
state.flatRulesToInsert![identifier] = [
|
|
140
|
+
property,
|
|
141
|
+
value,
|
|
142
|
+
identifier,
|
|
143
|
+
undefined,
|
|
144
|
+
rules,
|
|
145
|
+
] as any
|
|
146
|
+
}
|
|
147
|
+
state.classNames[property] = identifier
|
|
148
|
+
}
|
|
18
149
|
|
|
19
150
|
export function getCSSStylesAtomic(style: ViewStyleObject) {
|
|
20
151
|
if (process.env.TAMAGUI_DID_OUTPUT_CSS) return []
|
|
@@ -57,14 +188,6 @@ export function getCSSStyleAtomic(
|
|
|
57
188
|
let conf: TamaguiInternalConfig | null = null
|
|
58
189
|
let confRevision = 0
|
|
59
190
|
|
|
60
|
-
export type SlotIdentity = [
|
|
61
|
-
identifier: string,
|
|
62
|
-
rules: string[],
|
|
63
|
-
value: any,
|
|
64
|
-
/** finished wrapper, cached so a repeat build allocates nothing */
|
|
65
|
-
styleObject?: unknown,
|
|
66
|
-
]
|
|
67
|
-
|
|
68
191
|
const getStyleObject = (
|
|
69
192
|
val: any,
|
|
70
193
|
key: string,
|
|
@@ -76,35 +199,16 @@ const getStyleObject = (
|
|
|
76
199
|
classRepetitions = 1
|
|
77
200
|
): StyleObject | undefined => {
|
|
78
201
|
if (val == null) return
|
|
79
|
-
// transform
|
|
80
202
|
if (key === 'transform' && Array.isArray(val)) {
|
|
81
203
|
val = transformsToString(val)
|
|
82
204
|
}
|
|
83
205
|
const value = normalizeValueWithProperty(val, key)
|
|
84
|
-
|
|
85
|
-
const nextConf = syncAtomicConfig()
|
|
206
|
+
syncAtomicConfig()
|
|
86
207
|
const rawValue = typeof value === 'string' ? value : `${value}`
|
|
87
|
-
// this content hash is the atomic CSS class identity shared by server output
|
|
88
|
-
// and client hydration. it is not a parser cache or a runtime lookup key.
|
|
89
208
|
const hash = simpleHash(identity ?? rawValue, direct ? 'strict' : 10) || '0'
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
for (let index = 0; index < identityKey.length; index++) {
|
|
94
|
-
const code = identityKey.charCodeAt(index)
|
|
95
|
-
if (
|
|
96
|
-
(index === 0 ||
|
|
97
|
-
(code >= 65 && code <= 90) ||
|
|
98
|
-
identityKey.charCodeAt(index - 1) === 45) &&
|
|
99
|
-
((code >= 65 && code <= 90) || (code >= 97 && code <= 122))
|
|
100
|
-
) {
|
|
101
|
-
shortProp += identityKey[index].toLowerCase()
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
shortProp ||= 'x'
|
|
105
|
-
} else {
|
|
106
|
-
shortProp = conf?.inverseShorthands[key] || key
|
|
107
|
-
}
|
|
209
|
+
const shortProp = direct
|
|
210
|
+
? getShortProp(identityKey)
|
|
211
|
+
: conf?.inverseShorthands[key] || key
|
|
108
212
|
let identifier = `_${shortProp}-${hash}`
|
|
109
213
|
if (key === 'pointerEvents' && !condition) {
|
|
110
214
|
if (value === 'box-none') identifier = '_pe-boxnone'
|
|
@@ -119,72 +223,13 @@ const getStyleObject = (
|
|
|
119
223
|
direct,
|
|
120
224
|
classRepetitions
|
|
121
225
|
)
|
|
122
|
-
return [
|
|
123
|
-
// array for performance
|
|
124
|
-
key,
|
|
125
|
-
value,
|
|
126
|
-
identifier,
|
|
127
|
-
undefined,
|
|
128
|
-
rules,
|
|
129
|
-
]
|
|
226
|
+
return [key, value, identifier, undefined, rules]
|
|
130
227
|
}
|
|
131
228
|
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// hashes the slot's WINNING content, the base rule comes first, and
|
|
135
|
-
// conditional rules follow in ascending precedence (later rules win the
|
|
136
|
-
// cascade at equal specificity). Cached per (atomicKey, signature): a slot
|
|
137
|
-
// that resolves to the same content is the same class, however it got there.
|
|
138
|
-
|
|
139
|
-
export type AtomicSlotEntry = [
|
|
140
|
-
property: string,
|
|
141
|
-
value: any,
|
|
142
|
-
condition: number,
|
|
143
|
-
identity: string,
|
|
144
|
-
selector: string,
|
|
145
|
-
wrapperSource: readonly string[] | undefined,
|
|
146
|
-
wrapperStart: number,
|
|
147
|
-
wrapperCount: number,
|
|
148
|
-
/** authored value, carried only on deferred platform-pseudo passes so an
|
|
149
|
-
* inline conversion preserves provenance */
|
|
150
|
-
original?: any,
|
|
151
|
-
]
|
|
152
|
-
|
|
229
|
+
// atomic key -> signature -> identity. two levels so a pass never builds and
|
|
230
|
+
// hashes one long combined key per slot
|
|
153
231
|
const slotIdentities = new Map<string, Map<string, SlotIdentity>>()
|
|
154
|
-
let
|
|
155
|
-
|
|
156
|
-
// raw-value memo in front of the normalized identity: a repeat authored value
|
|
157
|
-
// skips normalization and signature building entirely. pure memoization - two
|
|
158
|
-
// raw spellings that normalize alike still share one identity through the
|
|
159
|
-
// normalized signature they both resolve to.
|
|
160
|
-
const rawSlotIdentities = new Map<string, Map<unknown, SlotIdentity>>()
|
|
161
|
-
let rawSlotIdentitiesSize = 0
|
|
162
|
-
|
|
163
|
-
export function probeRawSlotIdentity(
|
|
164
|
-
property: string,
|
|
165
|
-
raw: unknown
|
|
166
|
-
): SlotIdentity | undefined {
|
|
167
|
-
syncAtomicConfig()
|
|
168
|
-
return rawSlotIdentities.get(property)?.get(raw)
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export function storeRawSlotIdentity(
|
|
172
|
-
property: string,
|
|
173
|
-
raw: unknown,
|
|
174
|
-
identity: SlotIdentity
|
|
175
|
-
) {
|
|
176
|
-
if (rawSlotIdentitiesSize > 10_000) {
|
|
177
|
-
rawSlotIdentities.clear()
|
|
178
|
-
rawSlotIdentitiesSize = 0
|
|
179
|
-
}
|
|
180
|
-
let byRaw = rawSlotIdentities.get(property)
|
|
181
|
-
if (!byRaw) {
|
|
182
|
-
byRaw = new Map()
|
|
183
|
-
rawSlotIdentities.set(property, byRaw)
|
|
184
|
-
}
|
|
185
|
-
byRaw.set(raw, identity)
|
|
186
|
-
rawSlotIdentitiesSize++
|
|
187
|
-
}
|
|
232
|
+
let slotIdentityCount = 0
|
|
188
233
|
|
|
189
234
|
function syncAtomicConfig() {
|
|
190
235
|
const nextConf = getConfigMaybe()
|
|
@@ -193,32 +238,8 @@ function syncAtomicConfig() {
|
|
|
193
238
|
conf = nextConf
|
|
194
239
|
confRevision = nextRevision
|
|
195
240
|
slotIdentities.clear()
|
|
196
|
-
|
|
197
|
-
rawSlotIdentities.clear()
|
|
198
|
-
rawSlotIdentitiesSize = 0
|
|
241
|
+
slotIdentityCount = 0
|
|
199
242
|
}
|
|
200
|
-
return nextConf
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
function slotClassRepetitions(atomicKey: string, condition: number): number {
|
|
204
|
-
const base =
|
|
205
|
-
atomicKey === 'containerName' || atomicKey === 'containerType'
|
|
206
|
-
? condition
|
|
207
|
-
? Math.max(
|
|
208
|
-
2,
|
|
209
|
-
1 +
|
|
210
|
-
((Math.floor(condition / 256) >>> 23) & 7) +
|
|
211
|
-
(Math.floor(condition / 256) >>> 26) * 6 -
|
|
212
|
-
((condition >>> 5) & 7)
|
|
213
|
-
)
|
|
214
|
-
: 2
|
|
215
|
-
: condition
|
|
216
|
-
? 1 +
|
|
217
|
-
((Math.floor(condition / 256) >>> 23) & 7) +
|
|
218
|
-
(Math.floor(condition / 256) >>> 26) * 6 -
|
|
219
|
-
((condition >>> 5) & 7)
|
|
220
|
-
: 1
|
|
221
|
-
return base
|
|
222
243
|
}
|
|
223
244
|
|
|
224
245
|
export function buildAtomicSlotCSS(
|
|
@@ -227,27 +248,14 @@ export function buildAtomicSlotCSS(
|
|
|
227
248
|
signature: string
|
|
228
249
|
): SlotIdentity | undefined {
|
|
229
250
|
if (process.env.TAMAGUI_DID_OUTPUT_CSS) return
|
|
230
|
-
// media queries and shorthands come from the config, so an identity built
|
|
231
|
-
// under one config says nothing about the rules under another
|
|
232
251
|
syncAtomicConfig()
|
|
233
|
-
let
|
|
234
|
-
|
|
252
|
+
let bySignature = slotIdentities.get(atomicKey)
|
|
253
|
+
if (!bySignature) slotIdentities.set(atomicKey, (bySignature = new Map()))
|
|
254
|
+
const known = bySignature.get(signature)
|
|
235
255
|
if (known) return known
|
|
236
256
|
|
|
237
257
|
const hash = simpleHash(signature, 'strict') || '0'
|
|
238
|
-
|
|
239
|
-
for (let index = 0; index < atomicKey.length; index++) {
|
|
240
|
-
const code = atomicKey.charCodeAt(index)
|
|
241
|
-
if (
|
|
242
|
-
(index === 0 ||
|
|
243
|
-
(code >= 65 && code <= 90) ||
|
|
244
|
-
atomicKey.charCodeAt(index - 1) === 45) &&
|
|
245
|
-
((code >= 65 && code <= 90) || (code >= 97 && code <= 122))
|
|
246
|
-
) {
|
|
247
|
-
shortProp += atomicKey[index].toLowerCase()
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
shortProp ||= 'x'
|
|
258
|
+
const shortProp = getShortProp(atomicKey)
|
|
251
259
|
let identifier = `_${shortProp}-${hash}`
|
|
252
260
|
if (atomicKey === 'pointerEvents' && entries.length === 1 && !entries[0][2]) {
|
|
253
261
|
const value = entries[0][1]
|
|
@@ -255,13 +263,16 @@ export function buildAtomicSlotCSS(
|
|
|
255
263
|
else if (value === 'box-only') identifier = '_pe-boxonly'
|
|
256
264
|
}
|
|
257
265
|
|
|
258
|
-
// entries arrive ordered (base first, conditionals ascending precedence)
|
|
259
|
-
// and normalized: the slot signature was built from exactly this sequence
|
|
260
266
|
const rules: string[] = []
|
|
261
267
|
let lastValue: any
|
|
268
|
+
let layered = false
|
|
269
|
+
for (let index = 1; index < entries.length; index++) {
|
|
270
|
+
if (entries[index][0] !== entries[0][0]) {
|
|
271
|
+
layered = true
|
|
272
|
+
break
|
|
273
|
+
}
|
|
274
|
+
}
|
|
262
275
|
for (const entry of entries) {
|
|
263
|
-
// values arrive normalized: the slot signature normalized them so the
|
|
264
|
-
// identity hash and the rule text agree
|
|
265
276
|
const value = entry[1]
|
|
266
277
|
lastValue = value
|
|
267
278
|
const entryRules = createAtomicRules(
|
|
@@ -271,43 +282,25 @@ export function buildAtomicSlotCSS(
|
|
|
271
282
|
entry[4],
|
|
272
283
|
entry[5],
|
|
273
284
|
2,
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
285
|
+
Math.max(
|
|
286
|
+
layered ? 1 + (entry[7]! >> 5) : 1,
|
|
287
|
+
atomicKey === 'containerName' || atomicKey === 'containerType' ? 2 : 1
|
|
288
|
+
)
|
|
277
289
|
)
|
|
278
290
|
for (const rule of entryRules) rules.push(rule)
|
|
279
291
|
}
|
|
280
292
|
|
|
281
293
|
const built: SlotIdentity = [identifier, rules, lastValue]
|
|
282
|
-
if (
|
|
294
|
+
if (slotIdentityCount > 10_000) {
|
|
283
295
|
slotIdentities.clear()
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
if (!byKey) {
|
|
288
|
-
byKey = new Map()
|
|
289
|
-
slotIdentities.set(atomicKey, byKey)
|
|
296
|
+
slotIdentityCount = 0
|
|
297
|
+
slotIdentities.set(atomicKey, (bySignature = new Map()))
|
|
290
298
|
}
|
|
291
|
-
|
|
292
|
-
|
|
299
|
+
slotIdentityCount++
|
|
300
|
+
bySignature.set(signature, built)
|
|
293
301
|
return built
|
|
294
302
|
}
|
|
295
303
|
|
|
296
|
-
function createDeclarationBlock(
|
|
297
|
-
style: [string, any][],
|
|
298
|
-
important = false,
|
|
299
|
-
trailingSemicolon = true
|
|
300
|
-
) {
|
|
301
|
-
let next = ''
|
|
302
|
-
for (let index = 0; index < style.length; index++) {
|
|
303
|
-
const [key, value] = style[index]
|
|
304
|
-
next += `${hyphenateStyleName(key)}:${value}${important ? ' !important' : ''}${
|
|
305
|
-
trailingSemicolon || index < style.length - 1 ? ';' : ''
|
|
306
|
-
}`
|
|
307
|
-
}
|
|
308
|
-
return `{${next}}`
|
|
309
|
-
}
|
|
310
|
-
|
|
311
304
|
const hcache = {}
|
|
312
305
|
const toHyphenLower = (match: string) => `-${match.toLowerCase()}`
|
|
313
306
|
const hyphenateStyleName = (key: string) => {
|
|
@@ -317,6 +310,10 @@ const hyphenateStyleName = (key: string) => {
|
|
|
317
310
|
return val
|
|
318
311
|
}
|
|
319
312
|
|
|
313
|
+
function declaration(key: string, value: any, important = false) {
|
|
314
|
+
return `${hyphenateStyleName(key)}:${value}${important ? ' !important' : ''};`
|
|
315
|
+
}
|
|
316
|
+
|
|
320
317
|
function createAtomicRules(
|
|
321
318
|
identifier: string,
|
|
322
319
|
property: string,
|
|
@@ -324,11 +321,8 @@ function createAtomicRules(
|
|
|
324
321
|
condition = '',
|
|
325
322
|
wrappers?: readonly string[],
|
|
326
323
|
direct: boolean | 2 = false,
|
|
327
|
-
classRepetitions = 1
|
|
328
|
-
wrapperStart = 0,
|
|
329
|
-
wrapperCount = wrappers?.length || 0
|
|
324
|
+
classRepetitions = 1
|
|
330
325
|
): string[] {
|
|
331
|
-
// longhands get .cls.cls for higher specificity over shorthands
|
|
332
326
|
const repetitions =
|
|
333
327
|
direct && classRepetitions > 1
|
|
334
328
|
? classRepetitions
|
|
@@ -339,51 +333,42 @@ function createAtomicRules(
|
|
|
339
333
|
const selector = `${cls}${condition}`
|
|
340
334
|
|
|
341
335
|
let rules: string[] = []
|
|
342
|
-
|
|
343
|
-
// Handle non-standard properties and object values that require multiple
|
|
344
|
-
// CSS rules to be created.
|
|
345
336
|
switch (property) {
|
|
346
|
-
// Equivalent to using '::placeholder'
|
|
347
337
|
case 'placeholderTextColor': {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
['color', value],
|
|
351
|
-
['opacity', 1],
|
|
352
|
-
],
|
|
353
|
-
false
|
|
338
|
+
rules.push(
|
|
339
|
+
`${selector}::placeholder{${declaration('color', value)}${declaration('opacity', 1)}}`
|
|
354
340
|
)
|
|
355
|
-
rules.push(`${selector}::placeholder${block}`)
|
|
356
341
|
break
|
|
357
342
|
}
|
|
358
343
|
|
|
359
|
-
|
|
344
|
+
case 'selectionColor': {
|
|
345
|
+
rules.push(`${selector}::selection{${declaration('backgroundColor', value)}}`)
|
|
346
|
+
break
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
case 'cursorColor':
|
|
350
|
+
case 'selectionHandleColor': {
|
|
351
|
+
rules.push(`${selector}{${declaration('caretColor', value)}}`)
|
|
352
|
+
break
|
|
353
|
+
}
|
|
354
|
+
|
|
360
355
|
case 'backgroundClip':
|
|
361
356
|
case 'userSelect': {
|
|
362
357
|
const propertyCapitalized = `${property[0].toUpperCase()}${property.slice(1)}`
|
|
363
358
|
const webkitProperty = `Webkit${propertyCapitalized}`
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
[property, value],
|
|
367
|
-
[webkitProperty, value],
|
|
368
|
-
],
|
|
369
|
-
false
|
|
359
|
+
rules.push(
|
|
360
|
+
`${selector}{${declaration(property, value)}${declaration(webkitProperty, value)}}`
|
|
370
361
|
)
|
|
371
|
-
rules.push(`${selector}${block}`)
|
|
372
362
|
break
|
|
373
363
|
}
|
|
374
364
|
|
|
375
|
-
// Polyfill for additional 'pointer-events' values
|
|
376
365
|
case 'pointerEvents': {
|
|
377
366
|
if (direct) {
|
|
378
367
|
const subject = value === 'none' || value === 'box-none' ? 'none' : 'auto'
|
|
379
368
|
const children = value === 'none' || value === 'box-only' ? 'none' : 'auto'
|
|
380
369
|
rules.push(
|
|
381
|
-
`${selector}
|
|
382
|
-
`${selector}
|
|
383
|
-
[['pointerEvents', children]],
|
|
384
|
-
false,
|
|
385
|
-
false
|
|
386
|
-
)}`
|
|
370
|
+
`${selector}{pointer-events:${subject}}`,
|
|
371
|
+
`${selector}>*{pointer-events:${children}}`
|
|
387
372
|
)
|
|
388
373
|
break
|
|
389
374
|
}
|
|
@@ -393,22 +378,22 @@ function createAtomicRules(
|
|
|
393
378
|
} else if (value === 'none' || value === 'box-none') {
|
|
394
379
|
finalValue = 'none'
|
|
395
380
|
}
|
|
396
|
-
|
|
397
|
-
rules.push(`${selector}${block}`)
|
|
381
|
+
rules.push(`${selector}{${declaration('pointerEvents', finalValue, true)}}`)
|
|
398
382
|
break
|
|
399
383
|
}
|
|
400
384
|
|
|
401
385
|
default: {
|
|
402
|
-
|
|
403
|
-
|
|
386
|
+
let output = declaration(property, value)
|
|
387
|
+
if (direct) output = output.slice(0, -1)
|
|
388
|
+
rules.push(`${selector}{${output}}`)
|
|
404
389
|
break
|
|
405
390
|
}
|
|
406
391
|
}
|
|
407
392
|
|
|
408
|
-
if (wrappers
|
|
393
|
+
if (wrappers) {
|
|
409
394
|
for (let ruleIndex = 0; ruleIndex < rules.length; ruleIndex++) {
|
|
410
395
|
let rule = rules[ruleIndex]
|
|
411
|
-
for (let index =
|
|
396
|
+
for (let index = wrappers.length - 1; index >= 0; index--) {
|
|
412
397
|
rule = `${wrappers[index]} {${rule}}`
|
|
413
398
|
}
|
|
414
399
|
rules[ruleIndex] = rule
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import type { ViewStyleObject } from '../types'
|
|
1
|
+
import type { GetStyleState, ViewStyleObject } from '../types'
|
|
2
|
+
|
|
3
|
+
export const canGenerateCSS = false
|
|
4
|
+
|
|
5
|
+
export function flushDirectStyles(_state: GetStyleState, _clear = false) {}
|
|
6
|
+
|
|
7
|
+
export function addComposition(_state: GetStyleState, _property: 'translate' | 'scale') {}
|
|
8
|
+
|
|
9
|
+
export function registerAtomicSlot() {}
|
|
10
|
+
|
|
11
|
+
export function buildAtomicSlotCSS() {
|
|
12
|
+
return undefined
|
|
13
|
+
}
|
|
2
14
|
|
|
3
15
|
export function getCSSStylesAtomic(_style: ViewStyleObject) {
|
|
4
16
|
return []
|