@tamagui/core 1.0.1-beta.220 → 1.0.1-beta.221
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/addTheme.js +7 -10
- package/dist/cjs/addTheme.js.map +3 -3
- package/dist/cjs/config.js +8 -4
- package/dist/cjs/config.js.map +2 -2
- package/dist/cjs/{hooks/useUnmountEffect.js → contexts/ButtonNestingContext.js} +7 -9
- package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/cjs/createComponent.js +63 -67
- package/dist/cjs/createComponent.js.map +3 -3
- package/dist/cjs/createTamagui.js +13 -12
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createTokens.test.js +27 -0
- package/dist/cjs/createTokens.test.js.map +7 -0
- package/dist/cjs/createVariable.js +4 -9
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/createVariable.test.js +7 -0
- package/dist/cjs/createVariable.test.js.map +7 -0
- package/dist/cjs/createVariables.js +6 -7
- package/dist/cjs/createVariables.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.js +161 -147
- package/dist/cjs/helpers/ThemeManager.js.map +3 -3
- package/dist/cjs/helpers/ThemeManager.test.js +421 -34
- package/dist/cjs/helpers/ThemeManager.test.js.map +2 -2
- package/dist/cjs/helpers/{getTokens.js → ThemeManagerContext.js} +8 -8
- package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/cjs/helpers/createPropMapper.js +4 -4
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +2 -4
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/{assignNativePropsToWeb.native.js → getBoundingClientRect.js} +15 -8
- package/dist/cjs/helpers/getBoundingClientRect.js.map +7 -0
- package/dist/cjs/{hooks/useConstant.js → helpers/getRect.js} +14 -17
- package/dist/cjs/helpers/getRect.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +82 -85
- package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
- package/dist/cjs/helpers/getThemeCSSRules.js +6 -2
- package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +1 -1
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/mergeTransform.js +11 -8
- package/dist/cjs/helpers/mergeTransform.js.map +2 -2
- package/dist/cjs/helpers/pseudoDescriptors.js +1 -0
- package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/cjs/helpers/themeable.js +9 -9
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/hooks/useElementLayout.js +4 -12
- package/dist/cjs/hooks/useElementLayout.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +2 -1
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +114 -156
- package/dist/cjs/hooks/useTheme.js.map +3 -3
- package/dist/cjs/hooks/{useIsMounted.js → useThemeName.js} +23 -14
- package/dist/cjs/hooks/useThemeName.js.map +7 -0
- package/dist/cjs/index.js +2 -5
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/setupReactNative.js +20 -7
- package/dist/cjs/setupReactNative.js.map +2 -2
- package/dist/cjs/styled.js +2 -19
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/updateTheme.js +9 -9
- package/dist/cjs/updateTheme.js.map +2 -2
- package/dist/cjs/views/TamaguiProvider.js +3 -3
- package/dist/cjs/views/TamaguiProvider.js.map +2 -2
- package/dist/cjs/views/Theme.js +39 -28
- package/dist/cjs/views/Theme.js.map +3 -3
- package/dist/cjs/views/ThemeProvider.js +8 -33
- package/dist/cjs/views/ThemeProvider.js.map +3 -3
- package/dist/esm/addTheme.js +7 -10
- package/dist/esm/addTheme.js.map +3 -3
- package/dist/esm/config.js +8 -3
- package/dist/esm/config.js.map +2 -2
- package/dist/esm/contexts/ButtonNestingContext.js +6 -0
- package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/esm/createComponent.js +65 -70
- package/dist/esm/createComponent.js.map +3 -3
- package/dist/esm/createTamagui.js +13 -12
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createTokens.test.js +26 -0
- package/dist/esm/createTokens.test.js.map +7 -0
- package/dist/esm/createVariable.js +4 -9
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/createVariable.test.js +6 -0
- package/dist/esm/createVariable.test.js.map +7 -0
- package/dist/esm/createVariables.js +6 -7
- package/dist/esm/createVariables.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.js +140 -144
- package/dist/esm/helpers/ThemeManager.js.map +3 -3
- package/dist/esm/helpers/ThemeManager.test.js +421 -34
- package/dist/esm/helpers/ThemeManager.test.js.map +2 -2
- package/dist/esm/helpers/ThemeManagerContext.js +6 -0
- package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/esm/helpers/createPropMapper.js +4 -4
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +2 -4
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/getBoundingClientRect.js +13 -0
- package/dist/esm/helpers/getBoundingClientRect.js.map +7 -0
- package/dist/esm/helpers/getRect.js +12 -0
- package/dist/esm/helpers/getRect.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +90 -87
- package/dist/esm/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/helpers/getThemeCSSRules.js +6 -2
- package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +1 -1
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/mergeTransform.js +8 -6
- package/dist/esm/helpers/mergeTransform.js.map +2 -2
- package/dist/esm/helpers/pseudoDescriptors.js +1 -0
- package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/esm/helpers/themeable.js +9 -9
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/hooks/useElementLayout.js +2 -9
- package/dist/esm/hooks/useElementLayout.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +3 -2
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +114 -159
- package/dist/esm/hooks/useTheme.js.map +3 -3
- package/dist/esm/hooks/useThemeName.js +25 -0
- package/dist/esm/hooks/useThemeName.js.map +7 -0
- package/dist/esm/index.js +3 -5
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/setupReactNative.js +18 -6
- package/dist/esm/setupReactNative.js.map +2 -2
- package/dist/esm/styled.js +3 -20
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/updateTheme.js +9 -9
- package/dist/esm/updateTheme.js.map +2 -2
- package/dist/esm/views/TamaguiProvider.js +4 -4
- package/dist/esm/views/TamaguiProvider.js.map +2 -2
- package/dist/esm/views/Theme.js +40 -29
- package/dist/esm/views/Theme.js.map +3 -3
- package/dist/esm/views/ThemeProvider.js +8 -27
- package/dist/esm/views/ThemeProvider.js.map +2 -2
- package/package.json +12 -12
- package/src/__snapshots__/createTokens.test.ts.snap +877 -0
- package/src/addTheme.ts +9 -12
- package/src/config.ts +10 -2
- package/src/contexts/ButtonNestingContext.tsx +3 -0
- package/src/createComponent.tsx +117 -108
- package/src/createTamagui.ts +16 -14
- package/src/createTokens.test.ts +29 -0
- package/src/createTokens.ts +1 -1
- package/src/createVariable.test.ts +7 -0
- package/src/createVariable.ts +4 -10
- package/src/createVariables.ts +7 -7
- package/src/helpers/ThemeManager.test.tsx +480 -0
- package/src/helpers/ThemeManager.tsx +171 -166
- package/src/helpers/ThemeManagerContext.tsx +5 -0
- package/src/helpers/createPropMapper.ts +4 -4
- package/src/helpers/extendStaticConfig.ts +4 -4
- package/src/helpers/getBoundingClientRect.tsx +7 -0
- package/src/helpers/getRect.tsx +8 -0
- package/src/helpers/getSplitStyles.tsx +98 -93
- package/src/helpers/getThemeCSSRules.ts +9 -2
- package/src/helpers/insertStyleRule.tsx +2 -2
- package/src/helpers/mergeTransform.ts +13 -6
- package/src/helpers/pseudoDescriptors.ts +1 -0
- package/src/helpers/themeable.tsx +17 -9
- package/src/hooks/useElementLayout.tsx +3 -8
- package/src/hooks/useMedia.tsx +3 -3
- package/src/hooks/useTheme.tsx +138 -211
- package/src/hooks/useThemeName.tsx +25 -0
- package/src/index.ts +3 -4
- package/src/setupReactNative.ts +16 -5
- package/src/styled.tsx +4 -23
- package/src/types.tsx +42 -17
- package/src/updateTheme.ts +12 -9
- package/src/views/TamaguiProvider.tsx +5 -5
- package/src/views/Theme.tsx +48 -39
- package/src/views/ThemeProvider.tsx +11 -33
- package/types/Tamagui.d.ts +1 -1
- package/types/addTheme.d.ts +23 -2
- package/types/config.d.ts +0 -1
- package/types/contexts/ButtonNestingContext.d.ts +3 -0
- package/types/createTokens.test.d.ts +2 -0
- package/types/createVariable.d.ts +2 -2
- package/types/createVariable.test.d.ts +2 -0
- package/types/helpers/ThemeManager.d.ts +20 -30
- package/types/helpers/ThemeManager.test.d.ts +2 -0
- package/types/helpers/ThemeManagerContext.d.ts +4 -0
- package/types/helpers/getBoundingClientRect.d.ts +2 -0
- package/types/helpers/getRect.d.ts +9 -0
- package/types/helpers/insertStyleRule.d.ts +1 -1
- package/types/helpers/mergeTransform.d.ts +5 -3
- package/types/helpers/themeable.d.ts +3 -0
- package/types/hooks/useElementLayout.d.ts +0 -8
- package/types/hooks/useTheme.d.ts +10 -20
- package/types/hooks/useThemeName.d.ts +5 -0
- package/types/index.d.ts +3 -4
- package/types/setupReactNative.d.ts +4 -2
- package/types/types.d.ts +35 -10
- package/types/updateTheme.d.ts +23 -2
- package/types/views/Theme.d.ts +3 -4
- package/dist/cjs/constants/platform.js +0 -74
- package/dist/cjs/constants/platform.js.map +0 -7
- package/dist/cjs/constants/platform.native.js +0 -62
- package/dist/cjs/constants/platform.native.js.map +0 -7
- package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -188
- package/dist/cjs/helpers/assignNativePropsToWeb.js.map +0 -7
- package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -7
- package/dist/cjs/helpers/calc.js +0 -71
- package/dist/cjs/helpers/calc.js.map +0 -7
- package/dist/cjs/helpers/getFont.js +0 -66
- package/dist/cjs/helpers/getFont.js.map +0 -7
- package/dist/cjs/helpers/getStackSize.js +0 -46
- package/dist/cjs/helpers/getStackSize.js.map +0 -7
- package/dist/cjs/helpers/getTokens.js.map +0 -7
- package/dist/cjs/helpers/startTransition.js +0 -36
- package/dist/cjs/helpers/startTransition.js.map +0 -7
- package/dist/cjs/helpers/validate.js +0 -2
- package/dist/cjs/helpers/validate.js.map +0 -7
- package/dist/cjs/hooks/useConstant.js.map +0 -7
- package/dist/cjs/hooks/useIsMounted.js.map +0 -7
- package/dist/cjs/hooks/usePressable.js +0 -36
- package/dist/cjs/hooks/usePressable.js.map +0 -7
- package/dist/cjs/hooks/useUnmountEffect.js.map +0 -7
- package/dist/cjs/injectStyles.js +0 -40
- package/dist/cjs/injectStyles.js.map +0 -7
- package/dist/cjs/react-native.js +0 -22
- package/dist/cjs/react-native.js.map +0 -7
- package/dist/esm/constants/platform.js +0 -39
- package/dist/esm/constants/platform.js.map +0 -7
- package/dist/esm/constants/platform.native.js +0 -28
- package/dist/esm/constants/platform.native.js.map +0 -7
- package/dist/esm/helpers/assignNativePropsToWeb.js +0 -164
- package/dist/esm/helpers/assignNativePropsToWeb.js.map +0 -7
- package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -6
- package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -7
- package/dist/esm/helpers/calc.js +0 -47
- package/dist/esm/helpers/calc.js.map +0 -7
- package/dist/esm/helpers/getFont.js +0 -42
- package/dist/esm/helpers/getFont.js.map +0 -7
- package/dist/esm/helpers/getStackSize.js +0 -22
- package/dist/esm/helpers/getStackSize.js.map +0 -7
- package/dist/esm/helpers/getTokens.js +0 -6
- package/dist/esm/helpers/getTokens.js.map +0 -7
- package/dist/esm/helpers/startTransition.js +0 -6
- package/dist/esm/helpers/startTransition.js.map +0 -7
- package/dist/esm/helpers/validate.js +0 -1
- package/dist/esm/helpers/validate.js.map +0 -7
- package/dist/esm/hooks/useConstant.js +0 -15
- package/dist/esm/hooks/useConstant.js.map +0 -7
- package/dist/esm/hooks/useIsMounted.js +0 -16
- package/dist/esm/hooks/useIsMounted.js.map +0 -7
- package/dist/esm/hooks/usePressable.js +0 -12
- package/dist/esm/hooks/usePressable.js.map +0 -7
- package/dist/esm/hooks/useUnmountEffect.js +0 -8
- package/dist/esm/hooks/useUnmountEffect.js.map +0 -7
- package/dist/esm/injectStyles.js +0 -16
- package/dist/esm/injectStyles.js.map +0 -7
- package/dist/esm/react-native.js +0 -3
- package/dist/esm/react-native.js.map +0 -7
- package/src/contexts/ButtonInsideButtonContext.tsx +0 -3
- package/src/contexts/ThemeContext.tsx +0 -5
- package/src/helpers/areEqualSets.tsx +0 -9
- package/src/views/ThemeInverse.tsx +0 -43
- package/src/views/ThemeReset.tsx +0 -43
- package/types/constants/platform.d.ts +0 -13
- package/types/constants/platform.native.d.ts +0 -13
- package/types/contexts/ButtonInsideButtonContext.d.ts +0 -3
- package/types/contexts/ThemeContext.d.ts +0 -7
- package/types/helpers/areEqualSets.d.ts +0 -2
- package/types/helpers/assignNativePropsToWeb.d.ts +0 -2
- package/types/helpers/assignNativePropsToWeb.native.d.ts +0 -2
- package/types/helpers/calc.d.ts +0 -1
- package/types/helpers/getFont.d.ts +0 -3
- package/types/helpers/getStackSize.d.ts +0 -8
- package/types/helpers/getTokens.d.ts +0 -2
- package/types/helpers/startTransition.d.ts +0 -3
- package/types/helpers/validate.d.ts +0 -1
- package/types/hooks/useConstant.d.ts +0 -2
- package/types/hooks/useIsMounted.d.ts +0 -3
- package/types/hooks/useMedia.test.d.ts +0 -1
- package/types/hooks/usePressable.d.ts +0 -3
- package/types/hooks/usePressablePressResponder.d.ts +0 -84
- package/types/hooks/useUnmountEffect.d.ts +0 -2
- package/types/injectStyles.d.ts +0 -7
- package/types/react-native.d.ts +0 -8
- package/types/views/AbsoluteFill.d.ts +0 -5
- package/types/views/AbsoluteFill.native.d.ts +0 -3
- package/types/views/ThemeInverse.d.ts +0 -9
- package/types/views/ThemeReset.d.ts +0 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/createPropMapper.ts"],
|
|
4
|
-
"sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nimport { getConfig } from '../config'\nimport { isDevTools } from '../constants/isDevTools'\nimport { Variable, getVariableValue, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { LanguageContextType } from '../views/FontLanguage.types'\nimport { expandStyle } from './expandStyle'\nimport { expandStyles } from './expandStyles'\nimport { getFontsForLanguage, getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\nimport { mergeProps } from './mergeProps'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both' | 'non-color-value'\n\nexport const getReturnVariablesAs = (props: any, state: Partial<SplitStyleState>) => {\n return !!props.animation || state.resolveVariablesAs === 'value'\n ? isWeb\n ? 'non-color-value'\n : 'value'\n : 'auto'\n}\n\nexport const createPropMapper = (staticConfig: StaticConfigParsed) => {\n const variants = staticConfig.variants || {}\n\n // temp remove classnames\n const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, false)[0]\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n languageContext,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n throw new Error(`No tamagui config setup`)\n }\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs = getReturnVariablesAs(props, state)\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily =\n props[conf.inverseShorthands.fontFamily] ||\n props.fontFamily ||\n defaultProps.fontFamily ||\n propsIn.fontFamily ||\n '$body'\n\n const variantValue = resolveVariants(\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n '',\n languageContext,\n avoidDefaultProps,\n debug\n )\n\n if (variantValue) {\n return variantValue\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n value = getToken(\n key,\n value,\n conf,\n theme,\n fontFamily,\n languageContext,\n returnVariablesAs,\n debug\n )\n } else if (isVariable(value)) {\n value = resolveVariableValue(key, value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\ntype StyleResolver = (\n key: string,\n value: any,\n props: Record<string, any>,\n defaultProps: any,\n theme: any,\n variants: GenericVariantDefinitions,\n fontFamily: string,\n conf: TamaguiInternalConfig,\n returnVariablesAs: 'auto' | 'value' | 'non-color-value',\n staticConfig: StaticConfigParsed,\n parentVariantKey: string,\n languageContext?: LanguageContextType,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => any\n\nconst resolveVariants: StyleResolver = (\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps = false,\n debug\n) => {\n const variant = variants && variants[key]\n if (!variant || value === undefined) {\n return\n }\n\n let variantValue = getVariantDefinition(variant, key, value, conf)\n\n if (!variantValue) {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.validStyles?.[key]) {\n return null\n }\n if (value === false) {\n // don't warn on missing false values, common to only use true\n return null\n }\n const name = staticConfig.componentName || '[UnnamedComponent]'\n // eslint-disable-next-line no-console\n console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return\n }\n\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(\n value,\n getVariantExtras(props, languageContext, theme, defaultProps, avoidDefaultProps)\n )\n }\n\n let fontFamilyResult: any\n\n if (isObj(variantValue)) {\n const fontFamilyUpdate =\n variantValue.fontFamily || variantValue[conf.inverseShorthands.fontFamily]\n\n if (fontFamilyUpdate) {\n fontFamilyResult = getFontFamilyFromNameOrVariable(fontFamilyUpdate, conf)\n }\n\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamilyResult || fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n const next = Object.entries(expandStyles(variantValue))\n\n // store any changed font family (only support variables for now)\n if (fontFamilyResult && fontFamilyResult[0] === '$') {\n fontFamilyCache.set(next, getVariableValue(fontFamilyResult))\n }\n\n return next\n }\n}\n\n// handles finding and resolving the fontFamily to the token name\n// this is used as `font_[name]` in className for nice css variable support\nexport function getFontFamilyFromNameOrVariable(input: any, conf: TamaguiInternalConfig) {\n if (isVariable(input)) {\n const val = variableToFontNameCache.get(input)\n if (val) {\n return val\n } else {\n for (const key in conf.fontsParsed) {\n const familyVariable = conf.fontsParsed[key].family\n if (isVariable(familyVariable)) {\n variableToFontNameCache.set(familyVariable, key)\n if (familyVariable === input) {\n return key\n }\n }\n }\n }\n } else if (typeof input === 'string') {\n if (input?.[0] === '$') {\n return input\n } else {\n // this could be mapped back to\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log('[tamagui] should map back', input)\n }\n }\n }\n}\n\nconst variableToFontNameCache = new WeakMap<Variable, string>()\n\n// special helper for special font family\nconst fontFamilyCache = new WeakMap()\nexport const getPropMappedFontFamily = (expanded?: any) => {\n return expanded && fontFamilyCache.get(expanded)\n}\n\nconst resolveTokensAndVariants: StyleResolver = (\n key, // we dont use key assume value is object instead\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n) => {\n const res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\n\n if (isVariable(val)) {\n res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable\n } else if (variants[fKey]) {\n // avoids infinite loop if variant is matching a style prop\n // eg: { variants: { flex: { true: { flex: 2 } } } }\n if (parentVariantKey === key) {\n res[fKey] = val\n } else {\n Object.assign(\n res,\n Object.fromEntries(\n resolveVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n )\n )\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$'\n ? getToken(fKey, val, conf, theme, fontFamily, languageContext, returnVariablesAs, debug)\n : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // sub-objects: media queries, pseudos, shadowOffset\n res[fKey] = resolveTokensAndVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = val\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (debug) {\n if (res[fKey]?.[0] === '$') {\n // eslint-disable-next-line no-console\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey], theme)\n }\n }\n }\n }\n\n return res\n}\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(variant: any, key: string, value: any, conf: TamaguiInternalConfig) {\n if (typeof variant === 'function') {\n return variant\n }\n if (variant[value]) {\n return variant[value]\n }\n const { tokensParsed } = conf\n if (variant['...size'] && value in tokensParsed.size) {\n return variant['...size']\n }\n if (variant['...color'] && value in tokensParsed.color) {\n return variant['...color']\n }\n if (variant['...radius'] && value in tokensParsed.radius) {\n return variant['...radius']\n }\n if (variant['...space'] && value in tokensParsed.space) {\n return variant['...space']\n }\n if (variant['...zIndex'] && value in tokensParsed.zIndex) {\n return variant['...zIndex']\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n // fallback to catch all or size\n return fn || variant['...'] || variant['...size']\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n languageContext?: LanguageContextType,\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\n const tokensParsed = conf.tokensParsed\n const fontsParsed = languageContext\n ? getFontsForLanguage(conf.fontsParsed, languageContext)\n : conf.fontsParsed\n let valOrVar: any\n let hasSet = false\n if (theme[value]) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n if (process.env.NODE_ENV === 'development' && isDevTools && debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(` \uFE52 propMapper getToken`, key, valOrVar)\n }\n return resolveVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n // eslint-disable-next-line no-console\n console.trace(\n `\u26A0\uFE0F You've passed the value \"${value}\" to the style property \"${key}\", but there's no theme or token with the key \"${value}\". Using theme \"${theme.name}\".\n\nSet the debug prop to true to see more detailed debug information.`\n )\n if (debug) {\n if (isDevTools) {\n // eslint-disable-next-line no-console\n console.log('Looked in:', { theme, tokensParsed, fontsParsed })\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction resolveVariableValue(\n key: string,\n valOrVar: Variable | any,\n resolveAs: ResolveVariableTypes = 'auto'\n) {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (resolveAs === 'non-color-value') {\n if (isWeb) {\n if (key in tokenCategories.color) {\n return valOrVar.variable\n }\n }\n return valOrVar.val\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nimport { getConfig } from '../config'\nimport { isDevTools } from '../constants/isDevTools'\nimport { Variable, getVariableValue, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { LanguageContextType } from '../views/FontLanguage.types'\nimport { expandStyle } from './expandStyle'\nimport { expandStyles } from './expandStyles'\nimport { getFontsForLanguage, getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\nimport { mergeProps } from './mergeProps'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both' | 'non-color-value'\n\nexport const getReturnVariablesAs = (props: any, state: Partial<SplitStyleState>) => {\n return !!props.animation || state.resolveVariablesAs === 'value'\n ? isWeb\n ? 'non-color-value'\n : 'value'\n : 'auto'\n}\n\nexport const createPropMapper = (staticConfig: StaticConfigParsed) => {\n const variants = staticConfig.variants || {}\n\n // temp remove classnames\n const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, false)[0]\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n languageContext,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n throw new Error(`No tamagui config setup`)\n }\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs = getReturnVariablesAs(props, state)\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily =\n props[conf.inverseShorthands.fontFamily] ||\n props.fontFamily ||\n defaultProps.fontFamily ||\n propsIn.fontFamily ||\n '$body'\n\n const variantValue = resolveVariants(\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n '',\n languageContext,\n avoidDefaultProps,\n debug\n )\n\n if (variantValue) {\n return variantValue\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n value = getToken(\n key,\n value,\n conf,\n theme,\n fontFamily,\n languageContext,\n returnVariablesAs,\n debug\n )\n } else if (isVariable(value)) {\n value = resolveVariableValue(key, value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\ntype StyleResolver = (\n key: string,\n value: any,\n props: Record<string, any>,\n defaultProps: any,\n theme: any,\n variants: GenericVariantDefinitions,\n fontFamily: string,\n conf: TamaguiInternalConfig,\n returnVariablesAs: 'auto' | 'value' | 'non-color-value',\n staticConfig: StaticConfigParsed,\n parentVariantKey: string,\n languageContext?: LanguageContextType,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => any\n\nconst resolveVariants: StyleResolver = (\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps = false,\n debug\n) => {\n const variant = variants && variants[key]\n if (!variant || value === undefined) {\n return\n }\n\n let variantValue = getVariantDefinition(variant, key, value, conf)\n\n if (!variantValue) {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.validStyles?.[key]) {\n return null\n }\n if (value === false) {\n // don't warn on missing false values, common to only use true\n return null\n }\n const name = staticConfig.componentName || '[UnnamedComponent]'\n // eslint-disable-next-line no-console\n console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return\n }\n\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(\n value,\n getVariantExtras(props, languageContext, theme, defaultProps, avoidDefaultProps)\n )\n }\n\n let fontFamilyResult: any\n\n if (isObj(variantValue)) {\n const fontFamilyUpdate =\n variantValue.fontFamily || variantValue[conf.inverseShorthands.fontFamily]\n\n if (fontFamilyUpdate) {\n fontFamilyResult = getFontFamilyFromNameOrVariable(fontFamilyUpdate, conf)\n }\n\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamilyResult || fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n const next = Object.entries(expandStyles(variantValue))\n\n // store any changed font family (only support variables for now)\n if (fontFamilyResult && fontFamilyResult[0] === '$') {\n fontFamilyCache.set(next, getVariableValue(fontFamilyResult))\n }\n\n return next\n }\n}\n\n// handles finding and resolving the fontFamily to the token name\n// this is used as `font_[name]` in className for nice css variable support\nexport function getFontFamilyFromNameOrVariable(input: any, conf: TamaguiInternalConfig) {\n if (isVariable(input)) {\n const val = variableToFontNameCache.get(input)\n if (val) {\n return val\n } else {\n for (const key in conf.fontsParsed) {\n const familyVariable = conf.fontsParsed[key].family\n if (isVariable(familyVariable)) {\n variableToFontNameCache.set(familyVariable, key)\n if (familyVariable === input) {\n return key\n }\n }\n }\n }\n } else if (typeof input === 'string') {\n if (input?.[0] === '$') {\n return input\n } else {\n // this could be mapped back to\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log('[tamagui] should map back', input)\n }\n }\n }\n}\n\nconst variableToFontNameCache = new WeakMap<Variable, string>()\n\n// special helper for special font family\nconst fontFamilyCache = new WeakMap()\nexport const getPropMappedFontFamily = (expanded?: any) => {\n return expanded && fontFamilyCache.get(expanded)\n}\n\nconst resolveTokensAndVariants: StyleResolver = (\n key, // we dont use key assume value is object instead\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n) => {\n const res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\n\n if (isVariable(val)) {\n res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable\n } else if (variants[fKey]) {\n // avoids infinite loop if variant is matching a style prop\n // eg: { variants: { flex: { true: { flex: 2 } } } }\n if (parentVariantKey === key) {\n res[fKey] = val\n } else {\n Object.assign(\n res,\n Object.fromEntries(\n resolveVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n )\n )\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$'\n ? getToken(fKey, val, conf, theme, fontFamily, languageContext, returnVariablesAs, debug)\n : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // sub-objects: media queries, pseudos, shadowOffset\n res[fKey] = resolveTokensAndVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = val\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (debug) {\n if (res[fKey]?.[0] === '$') {\n // eslint-disable-next-line no-console\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey], theme)\n }\n }\n }\n }\n\n return res\n}\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(variant: any, key: string, value: any, conf: TamaguiInternalConfig) {\n if (typeof variant === 'function') {\n return variant\n }\n if (variant[value]) {\n return variant[value]\n }\n const { tokensParsed } = conf\n if (variant['...size'] && value in tokensParsed.size) {\n return variant['...size']\n }\n if (variant['...color'] && value in tokensParsed.color) {\n return variant['...color']\n }\n if (variant['...radius'] && value in tokensParsed.radius) {\n return variant['...radius']\n }\n if (variant['...space'] && value in tokensParsed.space) {\n return variant['...space']\n }\n if (variant['...zIndex'] && value in tokensParsed.zIndex) {\n return variant['...zIndex']\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n // fallback to catch all or size\n return fn || variant['...'] || variant['...size']\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n languageContext?: LanguageContextType,\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\n const tokensParsed = conf.tokensParsed\n const fontsParsed = languageContext\n ? getFontsForLanguage(conf.fontsParsed, languageContext)\n : conf.fontsParsed\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n if (process.env.NODE_ENV === 'development' && isDevTools && debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(` \uFE52 propMapper getToken`, key, valOrVar, theme)\n }\n return resolveVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n // eslint-disable-next-line no-console\n console.warn(\n `\u26A0\uFE0F You passed the value \"${value}\" to the style property \"${key}\", but there's no theme or token with the key \"${value}\". Using theme \"${theme.name}\".\n\nSet the debug prop to true to see more detailed debug information.`\n )\n if (debug) {\n if (isDevTools) {\n // eslint-disable-next-line no-console\n console.log('Looked in:', { theme, tokensParsed, fontsParsed })\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction resolveVariableValue(\n key: string,\n valOrVar: Variable | any,\n resolveAs: ResolveVariableTypes = 'auto'\n) {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (resolveAs === 'non-color-value') {\n if (isWeb) {\n if (key in tokenCategories.color) {\n return valOrVar.variable\n }\n }\n return valOrVar.val\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,aAAa;AAEtB,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAmB,kBAAkB,kBAAkB;AAWvD,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB,wBAAwB;AACtD,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAIpB,MAAM,uBAAuB,CAAC,OAAY,UAAoC;AACnF,SAAO,CAAC,CAAC,MAAM,aAAa,MAAM,uBAAuB,UACrD,QACE,oBACA,UACF;AACN;AAEO,MAAM,mBAAmB,CAAC,iBAAqC;AACpE,QAAM,WAAW,aAAa,YAAY,CAAC;AAG3C,QAAM,eAAe,WAAW,aAAa,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE;AAE5E,QAAM,SAAqB,CACzB,KACA,OACA,OACA,SACA,OACA,iBACA,oBAAoB,OACpB,UACG;AACH,UAAM,OAAO,UAAU;AACvB,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAEA,UAAM,QAAQ,MAAM,iBAAiB;AACrC,UAAM,oBAAoB,qBAAqB,OAAO,KAAK;AAG3D,UAAM,aACJ,MAAM,KAAK,kBAAkB,eAC7B,MAAM,cACN,aAAa,cACb,QAAQ,cACR;AAEF,UAAM,eAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,aAAO;AAAA,IACT;AAEA,QAAI,eAAe,UAAU,UAAa,UAAU;AAGpD,QAAI,KAAK,WAAW,MAAM;AACxB,qBAAe;AACf,YAAM,KAAK,WAAW;AAAA,IACxB;AAEA,QAAI,OAAO;AACT,UAAI,MAAM,OAAO,KAAK;AACpB,gBAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,WAAW,WAAW,KAAK,GAAG;AAC5B,gBAAQ,qBAAqB,KAAK,OAAO,iBAAiB;AAAA,MAC5D;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,aAAO,YAAY,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAmBA,MAAM,kBAAiC,CACrC,KACA,OACA,OACA,cACA,OACA,UACA,YACA,MACA,mBACA,cACA,kBACA,iBACA,oBAAoB,OACpB,UACG;AArJL;AAsJE,QAAM,UAAU,YAAY,SAAS;AACrC,MAAI,CAAC,WAAW,UAAU,QAAW;AACnC;AAAA,EACF;AAEA,MAAI,eAAe,qBAAqB,SAAS,KAAK,OAAO,IAAI;AAEjE,MAAI,CAAC,cAAc;AAEjB,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,WAAI,kBAAa,gBAAb,mBAA2B,MAAM;AACnC,eAAO;AAAA,MACT;AACA,UAAI,UAAU,OAAO;AAEnB,eAAO;AAAA,MACT;AACA,YAAM,OAAO,aAAa,iBAAiB;AAE3C,cAAQ;AAAA,QACN,qBAAqB,qBAAqB,gCAAgC;AAAA,MAC5E;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,OAAO,iBAAiB,YAAY;AACtC,UAAM,KAAK;AACX,mBAAe;AAAA,MACb;AAAA,MACA,iBAAiB,OAAO,iBAAiB,OAAO,cAAc,iBAAiB;AAAA,IACjF;AAAA,EACF;AAEA,MAAI;AAEJ,MAAI,MAAM,YAAY,GAAG;AACvB,UAAM,mBACJ,aAAa,cAAc,aAAa,KAAK,kBAAkB;AAEjE,QAAI,kBAAkB;AACpB,yBAAmB,gCAAgC,kBAAkB,IAAI;AAAA,IAC3E;AAEA,mBAAe;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,MAAI,cAAc;AAChB,UAAM,OAAO,OAAO,QAAQ,aAAa,YAAY,CAAC;AAGtD,QAAI,oBAAoB,iBAAiB,OAAO,KAAK;AACnD,sBAAgB,IAAI,MAAM,iBAAiB,gBAAgB,CAAC;AAAA,IAC9D;AAEA,WAAO;AAAA,EACT;AACF;AAIO,SAAS,gCAAgC,OAAY,MAA6B;AACvF,MAAI,WAAW,KAAK,GAAG;AACrB,UAAM,MAAM,wBAAwB,IAAI,KAAK;AAC7C,QAAI,KAAK;AACP,aAAO;AAAA,IACT,OAAO;AACL,iBAAW,OAAO,KAAK,aAAa;AAClC,cAAM,iBAAiB,KAAK,YAAY,KAAK;AAC7C,YAAI,WAAW,cAAc,GAAG;AAC9B,kCAAwB,IAAI,gBAAgB,GAAG;AAC/C,cAAI,mBAAmB,OAAO;AAC5B,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,WAAW,OAAO,UAAU,UAAU;AACpC,SAAI,+BAAQ,QAAO,KAAK;AACtB,aAAO;AAAA,IACT,OAAO;AAEL,UAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,gBAAQ,IAAI,6BAA6B,KAAK;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,0BAA0B,oBAAI,QAA0B;AAG9D,MAAM,kBAAkB,oBAAI,QAAQ;AAC7B,MAAM,0BAA0B,CAAC,aAAmB;AACzD,SAAO,YAAY,gBAAgB,IAAI,QAAQ;AACjD;AAEA,MAAM,2BAA0C,CAC9C,KACA,OACA,OACA,cACA,OACA,UACA,YACA,MACA,mBACA,cACA,kBACA,iBACA,mBACA,UACG;AAtRL;AAuRE,QAAM,MAAM,CAAC;AACb,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,KAAK,WAAW,SAAS;AACtC,UAAM,MAAM,MAAM;AAElB,QAAI,WAAW,GAAG,GAAG;AACnB,UAAI,QAAQ,CAAC,SAAS,sBAAsB,UAAU,IAAI,MAAM,IAAI;AAAA,IACtE,WAAW,SAAS,OAAO;AAGzB,UAAI,qBAAqB,KAAK;AAC5B,YAAI,QAAQ;AAAA,MACd,OAAO;AACL,eAAO;AAAA,UACL;AAAA,UACA,OAAO;AAAA,YACL;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,OACJ,IAAI,OAAO,MACP,SAAS,MAAM,KAAK,MAAM,OAAO,YAAY,iBAAiB,mBAAmB,KAAK,IACtF;AACN,UAAI,QAAQ;AAAA,IACd,OAAO;AACL,UAAI,MAAM,GAAG,GAAG;AAEd,YAAI,QAAQ;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,OAAO;AAEL,YAAI,QAAQ;AAAA,MACd;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,OAAO;AACT,cAAI,SAAI,UAAJ,mBAAY,QAAO,KAAK;AAE1B,kBAAQ,KAAK,uCAA6B,MAAM,SAAS,MAAM,IAAI,OAAO,KAAK;AAAA,QACjF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAGA,SAAS,qBAAqB,SAAc,KAAa,OAAY,MAA6B;AAChG,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO,QAAQ;AAAA,EACjB;AACA,QAAM,EAAE,aAAa,IAAI;AACzB,MAAI,QAAQ,cAAc,SAAS,aAAa,MAAM;AACpD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,QAAQ,eAAe,SAAS,aAAa,OAAO;AACtD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,QAAQ,gBAAgB,SAAS,aAAa,QAAQ;AACxD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,QAAQ,eAAe,SAAS,aAAa,OAAO;AACtD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,QAAQ,gBAAgB,SAAS,aAAa,QAAQ;AACxD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,SAAK,QAAQ;AAAA,EACf,WAAW,OAAO,UAAU,UAAU;AACpC,SAAK,QAAQ;AAAA,EACf,WAAW,UAAU,QAAQ,UAAU,OAAO;AAC5C,SAAK,QAAQ;AAAA,EACf;AAEA,SAAO,MAAM,QAAQ,UAAU,QAAQ;AACzC;AAEA,MAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,YAAY;AACd;AAEA,MAAM,WAAW,CACf,KACA,OACA,MACA,OACA,aAAiC,SACjC,iBACA,WACA,UACG;AAvZL;AAwZE,QAAM,eAAe,KAAK;AAC1B,QAAM,cAAc,kBAChB,oBAAoB,KAAK,aAAa,eAAe,IACrD,KAAK;AACT,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,SAAS,OAAO;AAClB,eAAW,MAAM;AACjB,aAAS;AAAA,EACX,OAAO;AACL,YAAQ;AAAA,WACD;AACH,qBAAW,iBAAY,WAAZ,mBAAoB,WAAU;AACzC,iBAAS;AACT;AAAA,WACG;AAAA,WACA;AAAA,WACA;AAAA,WACA;AACH,qBAAW,uBAAY,gBAAZ,mBAA0B,cAAc,QAAQ,SAAhD,mBAAuD,WAAU;AAC5E,iBAAS;AACT;AAAA;AAEJ,eAAW,OAAO,iBAAiB;AACjC,UAAI,OAAO,gBAAgB,MAAM;AAC/B,cAAM,MAAM,aAAa,KAAK;AAC9B,YAAI,KAAK;AACP,qBAAW;AACX,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,WAAW,aAAa,MAAM;AACpC,UAAI,UAAU;AACZ,mBAAW;AACX,iBAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACA,MAAI,QAAQ;AACV,QAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc,UAAU,WAAW;AAE/E,cAAQ,IAAI,iCAA4B,KAAK,UAAU,KAAK;AAAA,IAC9D;AACA,WAAO,qBAAqB,KAAK,UAAU,SAAS;AAAA,EACtD;AACA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,SAAS,MAAM,OAAO,KAAK;AAE7B,cAAQ;AAAA,QACN,sCAA4B,iCAAiC,qDAAqD,wBAAwB,MAAM;AAAA;AAAA;AAAA,MAGlJ;AACA,UAAI,OAAO;AACT,YAAI,YAAY;AAEd,kBAAQ,IAAI,cAAc,EAAE,OAAO,cAAc,YAAY,CAAC;AAAA,QAChE;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBACP,KACA,UACA,YAAkC,QAClC;AACA,MAAI,WAAW,QAAQ,GAAG;AACxB,QAAI,cAAc,YAAY;AAC5B,aAAO;AAAA,IACT;AACA,QAAI,cAAc,mBAAmB;AACnC,UAAI,OAAO;AACT,YAAI,OAAO,gBAAgB,OAAO;AAChC,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AACA,aAAO,SAAS;AAAA,IAClB;AACA,QAAI,CAAC,SAAS,cAAc,SAAS;AACnC,aAAO,SAAS;AAAA,IAClB;AACA,WAAO,SAAS;AAAA,EAClB;AACA,SAAO;AACT;AAGA,MAAM,kBAAkB;AAAA,EACtB,QAAQ;AAAA,IACN,cAAc;AAAA,IACd,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,wBAAwB;AAAA,IACxB,yBAAyB;AAAA,EAC3B;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -25,15 +25,13 @@ function extendStaticConfig(config, parent) {
|
|
|
25
25
|
if (parentStaticConf.componentName) {
|
|
26
26
|
parentNames.push(parentStaticConf.componentName);
|
|
27
27
|
}
|
|
28
|
+
const deoptProps = config.deoptProps || /* @__PURE__ */ new Set();
|
|
28
29
|
return parseStaticConfig({
|
|
29
30
|
...parentStaticConf,
|
|
30
31
|
...config,
|
|
32
|
+
deoptProps,
|
|
31
33
|
variants,
|
|
32
34
|
parentNames,
|
|
33
|
-
isZStack: config.isZStack || parentStaticConf.isZStack,
|
|
34
|
-
isText: config.isText || parentStaticConf.isText || false,
|
|
35
|
-
neverFlatten: config.neverFlatten || parentStaticConf.neverFlatten,
|
|
36
|
-
ensureOverriddenProp: config.ensureOverriddenProp ?? parentStaticConf.ensureOverriddenProp,
|
|
37
35
|
validStyles: config.validStyles ? {
|
|
38
36
|
...parentStaticConf.validStyles,
|
|
39
37
|
...config.validStyles
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/extendStaticConfig.ts"],
|
|
4
|
-
"sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\n\nimport { StaticConfig, StaticConfigParsed, StylableComponent } from '../types'\nimport { createPropMapper } from './createPropMapper'\nimport { mergeProps } from './mergeProps'\n\nexport function extendStaticConfig(config: Partial<StaticConfig>, parent?: StylableComponent) {\n if (!parent || !('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const parentStaticConf = parent.staticConfig as StaticConfig\n const variants = {\n ...parentStaticConf.variants,\n }\n\n // merge variants... can we type this?\n if (config.variants) {\n for (const key in config.variants) {\n if (variants[key]) {\n variants[key] = {\n ...variants[key],\n ...config.variants[key],\n }\n } else {\n variants[key] = config.variants[key]\n }\n }\n }\n\n // include our own\n const parentNames = [...(parentStaticConf.parentNames || [])]\n if (parentStaticConf.componentName) {\n parentNames.push(parentStaticConf.componentName)\n }\n\n return parseStaticConfig({\n ...parentStaticConf,\n ...config,\n
|
|
5
|
-
"mappings": "AAAA,SAAS,sBAAsB;AAG/B,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAEpB,SAAS,mBAAmB,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,EAAE,kBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,mBAAmB,OAAO;AAChC,QAAM,WAAW;AAAA,IACf,GAAG,iBAAiB;AAAA,EACtB;AAGA,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,UACd,GAAG,SAAS;AAAA,UACZ,GAAG,OAAO,SAAS;AAAA,QACrB;AAAA,MACF,OAAO;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAGA,QAAM,cAAc,CAAC,GAAI,iBAAiB,eAAe,CAAC,CAAE;AAC5D,MAAI,iBAAiB,eAAe;AAClC,gBAAY,KAAK,iBAAiB,aAAa;AAAA,EACjD;AAEA,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA
|
|
4
|
+
"sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\n\nimport { StaticConfig, StaticConfigParsed, StylableComponent } from '../types'\nimport { createPropMapper } from './createPropMapper'\nimport { mergeProps } from './mergeProps'\n\nexport function extendStaticConfig(config: Partial<StaticConfig>, parent?: StylableComponent) {\n if (!parent || !('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const parentStaticConf = parent.staticConfig as StaticConfig\n const variants = {\n ...parentStaticConf.variants,\n }\n\n // merge variants... can we type this?\n if (config.variants) {\n for (const key in config.variants) {\n if (variants[key]) {\n variants[key] = {\n ...variants[key],\n ...config.variants[key],\n }\n } else {\n variants[key] = config.variants[key]\n }\n }\n }\n\n // include our own\n const parentNames = [...(parentStaticConf.parentNames || [])]\n if (parentStaticConf.componentName) {\n parentNames.push(parentStaticConf.componentName)\n }\n\n const deoptProps = config.deoptProps || new Set<string>()\n // deoptProps.add('style')\n\n return parseStaticConfig({\n ...parentStaticConf,\n ...config,\n deoptProps,\n variants,\n parentNames,\n validStyles: config.validStyles\n ? {\n ...parentStaticConf.validStyles,\n ...config.validStyles,\n }\n : parentStaticConf.validStyles || stylePropsView,\n defaultProps: mergeProps(\n {\n ...parentStaticConf.defaultProps,\n ...parentStaticConf.defaultVariants,\n },\n {\n ...config.defaultProps,\n ...config.defaultVariants,\n }\n )[0],\n })\n}\n\nexport const parseStaticConfig = (config: Partial<StaticConfig>): StaticConfigParsed => {\n const parsed = {\n defaultProps: {},\n ...config,\n parsed: true,\n } as const\n return {\n ...parsed,\n propMapper: createPropMapper(parsed as StaticConfigParsed),\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,sBAAsB;AAG/B,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAEpB,SAAS,mBAAmB,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,EAAE,kBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,mBAAmB,OAAO;AAChC,QAAM,WAAW;AAAA,IACf,GAAG,iBAAiB;AAAA,EACtB;AAGA,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,UACd,GAAG,SAAS;AAAA,UACZ,GAAG,OAAO,SAAS;AAAA,QACrB;AAAA,MACF,OAAO;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAGA,QAAM,cAAc,CAAC,GAAI,iBAAiB,eAAe,CAAC,CAAE;AAC5D,MAAI,iBAAiB,eAAe;AAClC,gBAAY,KAAK,iBAAiB,aAAa;AAAA,EACjD;AAEA,QAAM,aAAa,OAAO,cAAc,oBAAI,IAAY;AAGxD,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,OAAO,cAChB;AAAA,MACE,GAAG,iBAAiB;AAAA,MACpB,GAAG,OAAO;AAAA,IACZ,IACA,iBAAiB,eAAe;AAAA,IACpC,cAAc;AAAA,MACZ;AAAA,QACE,GAAG,iBAAiB;AAAA,QACpB,GAAG,iBAAiB;AAAA,MACtB;AAAA,MACA;AAAA,QACE,GAAG,OAAO;AAAA,QACV,GAAG,OAAO;AAAA,MACZ;AAAA,IACF,EAAE;AAAA,EACJ,CAAC;AACH;AAEO,MAAM,oBAAoB,CAAC,WAAsD;AACtF,QAAM,SAAS;AAAA,IACb,cAAc,CAAC;AAAA,IACf,GAAG;AAAA,IACH,QAAQ;AAAA,EACV;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,iBAAiB,MAA4B;AAAA,EAC3D;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const getBoundingClientRect = (node) => {
|
|
2
|
+
if (!node)
|
|
3
|
+
return;
|
|
4
|
+
if (node.nodeType !== 1)
|
|
5
|
+
return;
|
|
6
|
+
if (node.getBoundingClientRect) {
|
|
7
|
+
return node.getBoundingClientRect();
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
getBoundingClientRect
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=getBoundingClientRect.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/getBoundingClientRect.tsx"],
|
|
4
|
+
"sourcesContent": ["export const getBoundingClientRect = (node: HTMLElement | null): void | DOMRect => {\n if (!node) return\n if (node.nodeType !== 1) return\n if (node.getBoundingClientRect) {\n return node.getBoundingClientRect()\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAO,MAAM,wBAAwB,CAAC,SAA6C;AACjF,MAAI,CAAC;AAAM;AACX,MAAI,KAAK,aAAa;AAAG;AACzB,MAAI,KAAK,uBAAuB;AAC9B,WAAO,KAAK,sBAAsB;AAAA,EACpC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getBoundingClientRect } from "./getBoundingClientRect";
|
|
2
|
+
const getRect = (node) => {
|
|
3
|
+
const rect = getBoundingClientRect(node);
|
|
4
|
+
if (!rect)
|
|
5
|
+
return;
|
|
6
|
+
const { x, y, top, left } = rect;
|
|
7
|
+
return { x, y, width: node.offsetWidth, height: node.offsetHeight, top, left };
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
getRect
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=getRect.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/getRect.tsx"],
|
|
4
|
+
"sourcesContent": ["import { getBoundingClientRect } from './getBoundingClientRect'\n\nexport const getRect = (node: HTMLElement) => {\n const rect = getBoundingClientRect(node)\n if (!rect) return\n const { x, y, top, left } = rect\n return { x, y, width: node.offsetWidth, height: node.offsetHeight, top, left }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,6BAA6B;AAE/B,MAAM,UAAU,CAAC,SAAsB;AAC5C,QAAM,OAAO,sBAAsB,IAAI;AACvC,MAAI,CAAC;AAAM;AACX,QAAM,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI;AAC5B,SAAO,EAAE,GAAG,GAAG,OAAO,KAAK,aAAa,QAAQ,KAAK,cAAc,KAAK,KAAK;AAC/E;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { isClient, isRSC, isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
stylePropsText,
|
|
4
|
+
stylePropsTransform,
|
|
5
|
+
validPseudoKeys,
|
|
6
|
+
validStyles,
|
|
7
|
+
validStylesOnBaseProps
|
|
8
|
+
} from "@tamagui/helpers";
|
|
3
9
|
import { useInsertionEffect } from "react";
|
|
4
10
|
import { getConfig } from "../config";
|
|
5
11
|
import { isDevTools } from "../constants/isDevTools";
|
|
@@ -19,7 +25,7 @@ import {
|
|
|
19
25
|
updateInserted,
|
|
20
26
|
updateRules
|
|
21
27
|
} from "./insertStyleRule";
|
|
22
|
-
import { mergeTransform } from "./mergeTransform";
|
|
28
|
+
import { mergeTransform, mergeTransforms } from "./mergeTransform";
|
|
23
29
|
import {
|
|
24
30
|
normalizeValueWithProperty,
|
|
25
31
|
reverseMapClassNameToValue
|
|
@@ -33,7 +39,6 @@ const skipProps = {
|
|
|
33
39
|
role: true,
|
|
34
40
|
tag: true
|
|
35
41
|
};
|
|
36
|
-
const emptyObject = {};
|
|
37
42
|
const IS_STATIC = process.env.IS_STATIC === "is_static";
|
|
38
43
|
if (process.env.TAMAGUI_TARGET === "native") {
|
|
39
44
|
Object.assign(skipProps, {
|
|
@@ -126,8 +131,39 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
126
131
|
const len = propKeys.length;
|
|
127
132
|
const rulesToInsert = [];
|
|
128
133
|
const classNames = {};
|
|
134
|
+
let className = "";
|
|
129
135
|
const transforms = {};
|
|
130
136
|
let fontFamily;
|
|
137
|
+
if (props.className) {
|
|
138
|
+
for (const cn of props.className.split(" ")) {
|
|
139
|
+
if (cn[0] === "_") {
|
|
140
|
+
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
141
|
+
const isMedia = mediaOrPseudo[0] === "_";
|
|
142
|
+
const isPseudo = mediaOrPseudo[0] === "0";
|
|
143
|
+
const isMediaOrPseudo = isMedia || isPseudo;
|
|
144
|
+
let fullKey = conf.shorthands[shorthand];
|
|
145
|
+
if (isMedia) {
|
|
146
|
+
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
147
|
+
mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
|
|
148
|
+
fullKey += `${PROP_SPLIT}${mediaShortKey}`;
|
|
149
|
+
} else if (isPseudo) {
|
|
150
|
+
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
151
|
+
fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
|
|
152
|
+
}
|
|
153
|
+
if (process.env.NODE_ENV === "development") {
|
|
154
|
+
if (debug) {
|
|
155
|
+
console.log("tamagui classname", fullKey, cn);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
usedKeys[fullKey] = 1;
|
|
159
|
+
mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
|
|
160
|
+
} else {
|
|
161
|
+
if (cn) {
|
|
162
|
+
className += " " + cn;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
131
167
|
for (let i = len - 1; i >= 0; i--) {
|
|
132
168
|
let mergeStyle2 = function(key, val) {
|
|
133
169
|
usedKeys[key] = usedKeys[key] || 1;
|
|
@@ -137,12 +173,29 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
137
173
|
flatTransforms ||= {};
|
|
138
174
|
flatTransforms[key] = val;
|
|
139
175
|
} else {
|
|
140
|
-
|
|
176
|
+
const out = normalizeValueWithProperty(val, key);
|
|
177
|
+
if (key in validStylesOnBaseProps) {
|
|
178
|
+
viewProps[key] = out;
|
|
179
|
+
} else {
|
|
180
|
+
style[key] = out;
|
|
181
|
+
}
|
|
141
182
|
}
|
|
142
183
|
};
|
|
143
184
|
var mergeStyle = mergeStyle2;
|
|
144
185
|
let keyInit = propKeys[i];
|
|
186
|
+
if (keyInit === "className")
|
|
187
|
+
continue;
|
|
145
188
|
const valInit = props[keyInit];
|
|
189
|
+
const expandedKey = conf.shorthands[keyInit];
|
|
190
|
+
if (expandedKey) {
|
|
191
|
+
keyInit = expandedKey;
|
|
192
|
+
}
|
|
193
|
+
if (usedKeys[keyInit])
|
|
194
|
+
continue;
|
|
195
|
+
if (skipProps[keyInit])
|
|
196
|
+
continue;
|
|
197
|
+
if (!isWeb && keyInit.startsWith("data-"))
|
|
198
|
+
continue;
|
|
146
199
|
if (validStyleProps[keyInit] || keyInit.includes("-")) {
|
|
147
200
|
if (valInit && valInit[0] === "_") {
|
|
148
201
|
if (shouldDoClasses) {
|
|
@@ -154,16 +207,6 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
154
207
|
continue;
|
|
155
208
|
}
|
|
156
209
|
}
|
|
157
|
-
const expandedKey = conf.shorthands[keyInit];
|
|
158
|
-
if (expandedKey) {
|
|
159
|
-
keyInit = expandedKey;
|
|
160
|
-
}
|
|
161
|
-
if (usedKeys[keyInit])
|
|
162
|
-
continue;
|
|
163
|
-
if (skipProps[keyInit])
|
|
164
|
-
continue;
|
|
165
|
-
if (!isWeb && keyInit.startsWith("data-"))
|
|
166
|
-
continue;
|
|
167
210
|
if (keyInit === "style" || keyInit.startsWith("_style")) {
|
|
168
211
|
if (!valInit)
|
|
169
212
|
continue;
|
|
@@ -283,42 +326,16 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
283
326
|
usedKeys[keyInit] = 1;
|
|
284
327
|
continue;
|
|
285
328
|
}
|
|
286
|
-
if (keyInit === "className") {
|
|
287
|
-
let nonTamaguis = "";
|
|
288
|
-
if (!valInit)
|
|
289
|
-
continue;
|
|
290
|
-
for (const cn of valInit.split(" ")) {
|
|
291
|
-
if (cn[0] === "_") {
|
|
292
|
-
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
293
|
-
const isMedia2 = mediaOrPseudo[0] === "_";
|
|
294
|
-
const isPseudo2 = mediaOrPseudo[0] === "0";
|
|
295
|
-
const isMediaOrPseudo = isMedia2 || isPseudo2;
|
|
296
|
-
let fullKey = conf.shorthands[shorthand];
|
|
297
|
-
if (isMedia2) {
|
|
298
|
-
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
299
|
-
mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
|
|
300
|
-
fullKey += `${PROP_SPLIT}${mediaShortKey}`;
|
|
301
|
-
} else if (isPseudo2) {
|
|
302
|
-
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
303
|
-
fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
|
|
304
|
-
}
|
|
305
|
-
usedKeys[fullKey] = 1;
|
|
306
|
-
mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
|
|
307
|
-
} else {
|
|
308
|
-
nonTamaguis += " " + cn;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
if (nonTamaguis) {
|
|
312
|
-
usedKeys[keyInit] = 1;
|
|
313
|
-
mergeClassName(transforms, classNames, keyInit, nonTamaguis);
|
|
314
|
-
}
|
|
315
|
-
continue;
|
|
316
|
-
}
|
|
317
329
|
if (valInit && valInit[0] === "_") {
|
|
318
330
|
const isValidClassName = validStyles[keyInit];
|
|
319
331
|
const isMediaOrPseudo = !isValidClassName && keyInit.includes(PROP_SPLIT) && validStyles[keyInit.split(PROP_SPLIT)[0]];
|
|
320
332
|
if (isValidClassName || isMediaOrPseudo) {
|
|
321
333
|
usedKeys[keyInit] = 1;
|
|
334
|
+
if (process.env.NODE_ENV === "development") {
|
|
335
|
+
if (debug) {
|
|
336
|
+
console.log("tamagui classname props", keyInit, valInit);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
322
339
|
mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo);
|
|
323
340
|
continue;
|
|
324
341
|
}
|
|
@@ -384,19 +401,19 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
384
401
|
conf,
|
|
385
402
|
languageContext,
|
|
386
403
|
true,
|
|
387
|
-
|
|
404
|
+
true
|
|
388
405
|
);
|
|
389
406
|
const descriptor = pseudoDescriptors[key];
|
|
390
|
-
|
|
407
|
+
const isEnter = descriptor.name === "enter";
|
|
408
|
+
const isExit = descriptor.name === "exit";
|
|
409
|
+
if (!descriptor || isEnter && !state.unmounted || isExit && !state.isExiting) {
|
|
391
410
|
continue;
|
|
392
411
|
}
|
|
393
|
-
if (
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
Object.assign(pseudos[key], pseudoStyleObject);
|
|
397
|
-
}
|
|
412
|
+
if (!shouldDoClasses || IS_STATIC) {
|
|
413
|
+
pseudos[key] ||= {};
|
|
414
|
+
Object.assign(pseudos[key], pseudoStyleObject);
|
|
398
415
|
}
|
|
399
|
-
if (shouldDoClasses) {
|
|
416
|
+
if (shouldDoClasses && !isEnter && !isExit) {
|
|
400
417
|
const pseudoStyles = getAtomicStyle(pseudoStyleObject, descriptor);
|
|
401
418
|
for (const psuedoStyle of pseudoStyles) {
|
|
402
419
|
const fullKey = `${psuedoStyle.property}${PROP_SPLIT}${descriptor.name}`;
|
|
@@ -447,8 +464,7 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
447
464
|
state,
|
|
448
465
|
conf,
|
|
449
466
|
languageContext,
|
|
450
|
-
false
|
|
451
|
-
state.noClassNames
|
|
467
|
+
false
|
|
452
468
|
);
|
|
453
469
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
454
470
|
console.log(` \u{1F4FA} ${mediaKey}`, mediaState[mediaKeyShort], { mediaKey, mediaStyle, props, shouldDoClasses, mediaState: { ...mediaState } });
|
|
@@ -501,9 +517,7 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
501
517
|
styleToCSS(style);
|
|
502
518
|
}
|
|
503
519
|
if (flatTransforms) {
|
|
504
|
-
|
|
505
|
-
mergeTransform(style, key, flatTransforms[key], true);
|
|
506
|
-
}
|
|
520
|
+
mergeTransforms(style, flatTransforms, true);
|
|
507
521
|
}
|
|
508
522
|
if (parentSplitStyles) {
|
|
509
523
|
if (process.env.TAMAGUI_TARGET === "web") {
|
|
@@ -523,16 +537,6 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
523
537
|
style[key] = parentSplitStyles.style[key];
|
|
524
538
|
}
|
|
525
539
|
}
|
|
526
|
-
if (process.env.NODE_ENV === "development") {
|
|
527
|
-
if (debug === "verbose") {
|
|
528
|
-
console.log(` add in parent styled()`, {
|
|
529
|
-
parentSplitStyles,
|
|
530
|
-
shouldDoClasses,
|
|
531
|
-
style: { ...style },
|
|
532
|
-
classNames: { ...classNames }
|
|
533
|
-
});
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
540
|
}
|
|
537
541
|
if (process.env.TAMAGUI_TARGET === "web") {
|
|
538
542
|
if (shouldDoClasses) {
|
|
@@ -559,15 +563,13 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
559
563
|
}
|
|
560
564
|
const [hash, val] = transforms[namespace];
|
|
561
565
|
const identifier = `_transform${hash}`;
|
|
562
|
-
if (isClient) {
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
});
|
|
570
|
-
}
|
|
566
|
+
if (isClient && !insertedTransforms[identifier]) {
|
|
567
|
+
const rule = `.${identifier} { transform: ${val}; }`;
|
|
568
|
+
addStyleToInsertRules(rulesToInsert, {
|
|
569
|
+
identifier,
|
|
570
|
+
rules: [rule],
|
|
571
|
+
property: namespace
|
|
572
|
+
});
|
|
571
573
|
}
|
|
572
574
|
classNames[namespace] = identifier;
|
|
573
575
|
}
|
|
@@ -576,13 +578,16 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
|
|
|
576
578
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
577
579
|
if (isDevTools) {
|
|
578
580
|
console.groupCollapsed(" \u{1F539} styles =>");
|
|
579
|
-
const logs = { style, pseudos, medias, classNames, viewProps, state, rulesToInsert };
|
|
581
|
+
const logs = { style, pseudos, medias, classNames, transforms, viewProps, state, rulesToInsert, parentSplitStyles, flatTransforms };
|
|
580
582
|
for (const key in logs) {
|
|
581
583
|
console.log(key, logs[key]);
|
|
582
584
|
}
|
|
583
585
|
console.groupEnd();
|
|
584
586
|
}
|
|
585
587
|
}
|
|
588
|
+
if (className) {
|
|
589
|
+
classNames.className = className;
|
|
590
|
+
}
|
|
586
591
|
return {
|
|
587
592
|
fontFamily,
|
|
588
593
|
viewProps,
|
|
@@ -631,16 +636,14 @@ function mergeClassName(transforms, classNames, key, val, isMediaOrPseudo = fals
|
|
|
631
636
|
const cache = /* @__PURE__ */ new WeakMap();
|
|
632
637
|
function getSubStyleProps(defaultProps, baseProps, specificProps) {
|
|
633
638
|
const key = specificProps || baseProps;
|
|
634
|
-
if (cache.has(key)) {
|
|
635
|
-
|
|
639
|
+
if (!cache.has(key)) {
|
|
640
|
+
cache.set(key, {
|
|
641
|
+
...defaultProps,
|
|
642
|
+
...baseProps,
|
|
643
|
+
...specificProps
|
|
644
|
+
});
|
|
636
645
|
}
|
|
637
|
-
|
|
638
|
-
...defaultProps,
|
|
639
|
-
...baseProps,
|
|
640
|
-
...specificProps
|
|
641
|
-
};
|
|
642
|
-
cache.set(key, next);
|
|
643
|
-
return next;
|
|
646
|
+
return cache.get(key);
|
|
644
647
|
}
|
|
645
648
|
const getSubStyle = (subKey, styleIn, staticConfig, theme, props, state, conf2, languageContext, avoidDefaultProps, avoidMergeTransform) => {
|
|
646
649
|
const styleOut = {};
|