@tamagui/core 1.0.1-beta.93 → 1.0.1-beta.96

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.
Files changed (152) hide show
  1. package/dist/cjs/createComponent.js +39 -49
  2. package/dist/cjs/createComponent.js.map +2 -2
  3. package/dist/cjs/createTamagui.js +15 -10
  4. package/dist/cjs/createTamagui.js.map +2 -2
  5. package/dist/cjs/helpers/createPropMapper.js +24 -17
  6. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  7. package/dist/cjs/helpers/expandStyle.js +120 -0
  8. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  9. package/dist/cjs/helpers/expandStyles.js +126 -0
  10. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  11. package/dist/cjs/helpers/extendStaticConfig.js +5 -3
  12. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  13. package/dist/cjs/helpers/getFont.js +61 -0
  14. package/dist/cjs/helpers/getFont.js.map +7 -0
  15. package/dist/cjs/helpers/getSplitStyles.js +32 -33
  16. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  17. package/dist/cjs/helpers/getStackSize.js +7 -0
  18. package/dist/cjs/helpers/getStackSize.js.map +2 -2
  19. package/dist/cjs/helpers/getStylesAtomic.js +165 -4
  20. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  21. package/dist/cjs/helpers/normalizeColor.js +76 -0
  22. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  23. package/dist/cjs/helpers/normalizeValueWithProperty.js +90 -0
  24. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  25. package/dist/cjs/hooks/useFeatures.js +5 -2
  26. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  27. package/dist/cjs/hooks/useTheme.js +1 -1
  28. package/dist/cjs/hooks/useTheme.js.map +2 -2
  29. package/dist/cjs/index.js +2 -4
  30. package/dist/cjs/index.js.map +2 -2
  31. package/dist/cjs/static.js +1 -1
  32. package/dist/cjs/static.js.map +2 -2
  33. package/dist/cjs/styled.js.map +2 -2
  34. package/dist/cjs/types.js.map +1 -1
  35. package/dist/esm/createComponent.js +39 -49
  36. package/dist/esm/createComponent.js.map +2 -2
  37. package/dist/esm/createTamagui.js +15 -10
  38. package/dist/esm/createTamagui.js.map +2 -2
  39. package/dist/esm/helpers/createPropMapper.js +22 -15
  40. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  41. package/dist/esm/helpers/expandStyle.js +99 -0
  42. package/dist/esm/helpers/expandStyle.js.map +7 -0
  43. package/dist/esm/helpers/expandStyles.js +103 -0
  44. package/dist/esm/helpers/expandStyles.js.map +7 -0
  45. package/dist/esm/helpers/extendStaticConfig.js +5 -3
  46. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  47. package/dist/esm/helpers/getFont.js +38 -0
  48. package/dist/esm/helpers/getFont.js.map +7 -0
  49. package/dist/esm/helpers/getSplitStyles.js +33 -33
  50. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  51. package/dist/esm/helpers/getStackSize.js +7 -0
  52. package/dist/esm/helpers/getStackSize.js.map +2 -2
  53. package/dist/esm/helpers/getStylesAtomic.js +158 -2
  54. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  55. package/dist/esm/helpers/normalizeColor.js +49 -0
  56. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  57. package/dist/esm/helpers/normalizeValueWithProperty.js +67 -0
  58. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  59. package/dist/esm/hooks/useFeatures.js +5 -2
  60. package/dist/esm/hooks/useFeatures.js.map +2 -2
  61. package/dist/esm/hooks/useTheme.js +1 -1
  62. package/dist/esm/hooks/useTheme.js.map +2 -2
  63. package/dist/esm/index.js +2 -3
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/static.js +1 -1
  66. package/dist/esm/static.js.map +1 -1
  67. package/dist/esm/styled.js.map +2 -2
  68. package/package.json +7 -7
  69. package/reset.css +1 -1
  70. package/types/createComponent.d.ts.map +1 -1
  71. package/types/createTamagui.d.ts.map +1 -1
  72. package/types/helpers/createPropMapper.d.ts +2 -2
  73. package/types/helpers/createPropMapper.d.ts.map +1 -1
  74. package/types/helpers/createTamaguiProvider.d.ts +0 -1
  75. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  76. package/types/helpers/expandStyle.d.ts +2 -0
  77. package/types/helpers/expandStyles.d.ts +7 -0
  78. package/types/helpers/expandStyles.d.ts.map +1 -0
  79. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  80. package/types/helpers/getFont.d.ts +3 -0
  81. package/types/helpers/getFont.d.ts.map +1 -0
  82. package/types/helpers/getSplitStyles.d.ts +2 -3
  83. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  84. package/types/helpers/getStackSize.d.ts +1 -1
  85. package/types/helpers/getStackSize.d.ts.map +1 -1
  86. package/types/helpers/getStylesAtomic.d.ts +6 -0
  87. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  88. package/types/helpers/normalizeColor.d.ts +3 -0
  89. package/types/helpers/normalizeValueWithProperty.d.ts +2 -0
  90. package/types/hooks/useFeatures.d.ts.map +1 -1
  91. package/types/hooks/useTheme.d.ts.map +1 -1
  92. package/types/index.d.ts +2 -2
  93. package/types/index.d.ts.map +1 -1
  94. package/types/static.d.ts +1 -1
  95. package/types/static.d.ts.map +1 -1
  96. package/types/styled.d.ts.map +1 -1
  97. package/types/types.d.ts +5 -3
  98. package/types/types.d.ts.map +1 -1
  99. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -51
  100. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  101. package/dist/cjs/helpers/generateAtomicStyles.js +0 -442
  102. package/dist/cjs/helpers/generateAtomicStyles.js.map +0 -7
  103. package/dist/esm/helpers/fixNativeShadow.native.js +0 -28
  104. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  105. package/dist/esm/helpers/generateAtomicStyles.js +0 -415
  106. package/dist/esm/helpers/generateAtomicStyles.js.map +0 -7
  107. package/types/Pressability.d.ts.map +0 -1
  108. package/types/Pressability.native.d.ts.map +0 -1
  109. package/types/constants/constants.d.ts.map +0 -1
  110. package/types/constants/platform.d.ts.map +0 -1
  111. package/types/constants/rnw.d.ts.map +0 -1
  112. package/types/constants/rnw.native.d.ts.map +0 -1
  113. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  114. package/types/createShorthands.d.ts.map +0 -1
  115. package/types/createTheme.d.ts.map +0 -1
  116. package/types/createVariable.d.ts.map +0 -1
  117. package/types/createVariables.d.ts.map +0 -1
  118. package/types/defaultComponentState.d.ts.map +0 -1
  119. package/types/helpers/RNComponents.d.ts.map +0 -1
  120. package/types/helpers/areEqualSets.d.ts.map +0 -1
  121. package/types/helpers/assignNativePropsToWeb.native.d.ts.map +0 -1
  122. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  123. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  124. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  125. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  126. package/types/helpers/generateAtomicStyles.d.ts +0 -12
  127. package/types/helpers/generateAtomicStyles.d.ts.map +0 -1
  128. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  129. package/types/helpers/getTextSize.d.ts +0 -3
  130. package/types/helpers/getTextSize.d.ts.map +0 -1
  131. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  132. package/types/helpers/isObj.d.ts.map +0 -1
  133. package/types/helpers/matchMedia.d.ts.map +0 -1
  134. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  135. package/types/helpers/mergeProps.d.ts.map +0 -1
  136. package/types/helpers/mergeTransform.d.ts.map +0 -1
  137. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  138. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  139. package/types/helpers/pseudoDescriptors.d.ts.map +0 -1
  140. package/types/helpers/registerCSSVariable.d.ts.map +0 -1
  141. package/types/helpers/validate.d.ts.map +0 -1
  142. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  143. package/types/hooks/useConstant.d.ts.map +0 -1
  144. package/types/hooks/useId.d.ts.map +0 -1
  145. package/types/hooks/useIsMounted.d.ts.map +0 -1
  146. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  147. package/types/hooks/usePressable.d.ts.map +0 -1
  148. package/types/hooks/usePrevious.d.ts.map +0 -1
  149. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  150. package/types/types-rnw.d.ts.map +0 -1
  151. package/types/views/Slot.d.ts.map +0 -1
  152. package/types/views/TextAncestorContext.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { getConfig } from "../conf";
2
2
  import { isWeb } from "../constants/platform";
3
3
  import { isVariable } from "../createVariable";
4
- import { expandStyle, expandStyles } from "./generateAtomicStyles";
4
+ import { expandStyle } from "./expandStyle";
5
+ import { expandStyles } from "./expandStyles";
5
6
  import { getVariantExtras } from "./getVariantExtras";
6
7
  import { isObj } from "./isObj";
7
8
  import { mergeProps } from "./mergeProps";
@@ -22,10 +23,6 @@ const createPropMapper = (staticConfig) => {
22
23
  const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
23
24
  const variantValue = resolveVariants(key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, "", avoidDefaultProps);
24
25
  if (variantValue) {
25
- if (process.env.NODE_ENV === "development") {
26
- if (debug)
27
- console.log("propMapped", key, value, "with", propsIn, "to", variantValue);
28
- }
29
26
  return variantValue;
30
27
  }
31
28
  let shouldReturn = value !== void 0 && value !== null;
@@ -50,7 +47,7 @@ const resolveVariants = (key, value, props, defaultProps, theme, variants, fontF
50
47
  var _a;
51
48
  const variant = variants && variants[key];
52
49
  if (variant && value !== void 0) {
53
- let variantValue = getVariantDefinition(variant, key, value);
50
+ let variantValue = getVariantDefinition(variant, key, value, conf);
54
51
  if (variantValue) {
55
52
  if (typeof variantValue === "function") {
56
53
  const fn = variantValue;
@@ -109,17 +106,28 @@ const resolveTokensAndVariants = (key, value, props, defaultProps, theme, varian
109
106
  }
110
107
  return res;
111
108
  };
112
- function getVariantDefinition(variant, key, value) {
109
+ function getVariantDefinition(variant, key, value, conf) {
113
110
  if (typeof variant === "function") {
114
111
  return variant;
115
112
  }
116
- for (const cat in tokenCategories) {
117
- if (key in tokenCategories[cat]) {
118
- const spreadVariant = variant[`...${cat}`];
119
- if (spreadVariant) {
120
- return spreadVariant;
121
- }
122
- }
113
+ if (variant[value]) {
114
+ return variant[value];
115
+ }
116
+ const { tokensParsed } = conf;
117
+ if (variant["...size"] && value in tokensParsed.size) {
118
+ return variant["...size"];
119
+ }
120
+ if (variant["...color"] && value in tokensParsed.color) {
121
+ return variant["...color"];
122
+ }
123
+ if (variant["...radius"] && value in tokensParsed.radius) {
124
+ return variant["...radius"];
125
+ }
126
+ if (variant["...space"] && value in tokensParsed.space) {
127
+ return variant["...space"];
128
+ }
129
+ if (variant["...zIndex"] && value in tokensParsed.zIndex) {
130
+ return variant["...zIndex"];
123
131
  }
124
132
  let fn;
125
133
  if (typeof value === "number") {
@@ -129,7 +137,6 @@ function getVariantDefinition(variant, key, value) {
129
137
  } else if (value === true || value === false) {
130
138
  fn = variant[":boolean"];
131
139
  }
132
- fn = fn || variant[value];
133
140
  return fn || variant["..."] || variant["...size"];
134
141
  }
135
142
  const fontShorthand = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createPropMapper.ts"],
4
- "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfig,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { expandStyle, expandStyles } from './generateAtomicStyles'\nimport { 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: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n\n // temp remove classnames\n const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, true)[0]\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\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 = props.fontFamily || defaultProps.fontFamily || '$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 avoidDefaultProps\n )\n if (variantValue) {\n if (process.env.NODE_ENV === 'development') {\n if (debug) console.log('propMapped', key, value, 'with', propsIn, 'to', variantValue)\n }\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 // prettier-ignore\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs, debug)\n } else if (isVariable(value)) {\n value = getVariableValue(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: Partial<StaticConfig>,\n parentVariantKey: string,\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 avoidDefaultProps = false,\n debug\n) => {\n const variant = variants && variants[key]\n if (variant && value !== undefined) {\n let variantValue = getVariantDefinition(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps))\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n return Object.entries(expandStyles(variantValue))\n }\n } else {\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 console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return null\n }\n }\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 avoidDefaultProps,\n debug\n) => {\n let res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\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 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, 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 avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = value[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\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) {\n if (typeof variant === 'function') {\n return variant\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\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 fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\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 { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\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 return getVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(\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 (typeof window !== 'undefined') {\n console.log('Looked in:')\n console.log('Theme:', theme)\n console.log('Tokens:', tokensParsed)\n console.log('Fonts:', fontsParsed)\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(\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 { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { expandStyle } from './expandStyle'\nimport { expandStyles } from './expandStyles'\nimport { 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 || {}, {}, true)[0]\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\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 = props.fontFamily || defaultProps.fontFamily || '$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 avoidDefaultProps\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 // prettier-ignore\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs, debug)\n } else if (isVariable(value)) {\n value = getVariableValue(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 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 avoidDefaultProps = false,\n debug\n) => {\n const variant = variants && variants[key]\n if (variant && value !== undefined) {\n let variantValue = getVariantDefinition(variant, key, value, conf)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps))\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n return Object.entries(expandStyles(variantValue))\n }\n } else {\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 console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return null\n }\n }\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 avoidDefaultProps,\n debug\n) => {\n let res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\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 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, 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 avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = value[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\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 { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\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 return getVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(\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 (typeof window !== 'undefined') {\n console.log('Looked in:')\n console.log('Theme:', theme)\n console.log('Tokens:', tokensParsed)\n console.log('Fonts:', fontsParsed)\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(\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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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,99 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { isWeb } from "../constants/platform";
18
+ function expandStyle(key, value) {
19
+ if (key === "transform") {
20
+ return;
21
+ }
22
+ if (process.env.TAMAGUI_TARGET === "web") {
23
+ if (key === "flex") {
24
+ if (value <= -1) {
25
+ return [
26
+ ["flexGrow", 0],
27
+ ["flexShrink", 1],
28
+ ["flexBasis", "auto"]
29
+ ];
30
+ }
31
+ if (value >= 0) {
32
+ return [
33
+ ["flexGrow", value],
34
+ ["flexShrink", 1]
35
+ ];
36
+ }
37
+ return;
38
+ }
39
+ switch (key) {
40
+ case "elevation":
41
+ case "overlayColor":
42
+ case "resizeMode":
43
+ case "tintColor": {
44
+ break;
45
+ }
46
+ case "aspectRatio": {
47
+ return [[key, value.toString()]];
48
+ }
49
+ case "backgroundClip": {
50
+ if (value === "text") {
51
+ return [
52
+ ["backgroundClip", value],
53
+ ["WebkitBackgroundClip", value]
54
+ ];
55
+ }
56
+ break;
57
+ }
58
+ case "textAlignVertical": {
59
+ return [["verticalAlign", value === "center" ? "middle" : value]];
60
+ }
61
+ case "textDecorationLine": {
62
+ return [["textDecorationLine", value]];
63
+ }
64
+ case "writingDirection": {
65
+ return [["direction", value]];
66
+ }
67
+ }
68
+ }
69
+ const longKey = STYLE_SHORT_FORM_EXPANSIONS[key];
70
+ if (longKey) {
71
+ return longKey.map((key2) => {
72
+ return [key2, value];
73
+ });
74
+ }
75
+ }
76
+ const STYLE_SHORT_FORM_EXPANSIONS = __spreadValues({
77
+ borderColor: ["borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor"],
78
+ borderRadius: [
79
+ "borderTopLeftRadius",
80
+ "borderTopRightRadius",
81
+ "borderBottomRightRadius",
82
+ "borderBottomLeftRadius"
83
+ ],
84
+ borderStyle: ["borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle"],
85
+ borderWidth: ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
86
+ margin: ["marginTop", "marginRight", "marginBottom", "marginLeft"],
87
+ marginHorizontal: ["marginRight", "marginLeft"],
88
+ marginVertical: ["marginTop", "marginBottom"],
89
+ overscrollBehavior: ["overscrollBehaviorX", "overscrollBehaviorY"],
90
+ padding: ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
91
+ paddingHorizontal: ["paddingRight", "paddingLeft"],
92
+ paddingVertical: ["paddingTop", "paddingBottom"]
93
+ }, isWeb && {
94
+ overflow: ["overflowX", "overflowY"]
95
+ });
96
+ export {
97
+ expandStyle
98
+ };
99
+ //# sourceMappingURL=expandStyle.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/expandStyle.ts"],
4
+ "sourcesContent": ["/**\n * Some parts adapted from react-native-web\n * Copyright (c) Nicolas Gallagher licensed under the MIT license.\n */\n\nimport { isWeb } from '../constants/platform'\n\nexport function expandStyle(key: string, value: any) {\n if (key === 'transform') {\n return\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (key === 'flex') {\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n if (value <= -1) {\n return [\n ['flexGrow', 0],\n ['flexShrink', 1],\n ['flexBasis', 'auto'],\n ]\n }\n // normalizing to better align with native\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (value >= 0) {\n return [\n ['flexGrow', value],\n ['flexShrink', 1],\n ]\n }\n return\n }\n\n // web only\n switch (key) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor': {\n break\n }\n\n case 'aspectRatio': {\n return [[key, value.toString()]]\n }\n\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n case 'backgroundClip': {\n if (value === 'text') {\n return [\n ['backgroundClip', value],\n ['WebkitBackgroundClip', value],\n ]\n }\n break\n }\n\n case 'textAlignVertical': {\n return [['verticalAlign', value === 'center' ? 'middle' : value]]\n }\n\n case 'textDecorationLine': {\n return [['textDecorationLine', value]]\n }\n\n case 'writingDirection': {\n return [['direction', value]]\n }\n }\n }\n\n const longKey = STYLE_SHORT_FORM_EXPANSIONS[key]\n if (longKey) {\n return longKey.map((key) => {\n return [key, value]\n })\n }\n}\n\nconst STYLE_SHORT_FORM_EXPANSIONS: Record<string, string[]> = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: [\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomRightRadius',\n 'borderBottomLeftRadius',\n ],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom'],\n ...(isWeb && {\n // react-native doesn't support X / Y\n overflow: ['overflowX', 'overflowY'],\n }),\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAKA;AAEO,qBAAqB,KAAa,OAAY;AACnD,MAAI,QAAQ,aAAa;AACvB;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,mBAAmB,OAAO;AACxC,QAAI,QAAQ,QAAQ;AAGlB,UAAI,SAAS,IAAI;AACf,eAAO;AAAA,UACL,CAAC,YAAY,CAAC;AAAA,UACd,CAAC,cAAc,CAAC;AAAA,UAChB,CAAC,aAAa,MAAM;AAAA,QACtB;AAAA,MACF;AAGA,UAAI,SAAS,GAAG;AACd,eAAO;AAAA,UACL,CAAC,YAAY,KAAK;AAAA,UAClB,CAAC,cAAc,CAAC;AAAA,QAClB;AAAA,MACF;AACA;AAAA,IACF;AAGA,YAAQ;AAAA,WAED;AAAA,WACA;AAAA,WACA;AAAA,WACA,aAAa;AAChB;AAAA,MACF;AAAA,WAEK,eAAe;AAClB,eAAO,CAAC,CAAC,KAAK,MAAM,SAAS,CAAC,CAAC;AAAA,MACjC;AAAA,WAIK,kBAAkB;AACrB,YAAI,UAAU,QAAQ;AACpB,iBAAO;AAAA,YACL,CAAC,kBAAkB,KAAK;AAAA,YACxB,CAAC,wBAAwB,KAAK;AAAA,UAChC;AAAA,QACF;AACA;AAAA,MACF;AAAA,WAEK,qBAAqB;AACxB,eAAO,CAAC,CAAC,iBAAiB,UAAU,WAAW,WAAW,KAAK,CAAC;AAAA,MAClE;AAAA,WAEK,sBAAsB;AACzB,eAAO,CAAC,CAAC,sBAAsB,KAAK,CAAC;AAAA,MACvC;AAAA,WAEK,oBAAoB;AACvB,eAAO,CAAC,CAAC,aAAa,KAAK,CAAC;AAAA,MAC9B;AAAA;AAAA,EAEJ;AAEA,QAAM,UAAU,4BAA4B;AAC5C,MAAI,SAAS;AACX,WAAO,QAAQ,IAAI,CAAC,SAAQ;AAC1B,aAAO,CAAC,MAAK,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AACF;AAEA,MAAM,8BAAwD;AAAA,EAC5D,aAAa,CAAC,kBAAkB,oBAAoB,qBAAqB,iBAAiB;AAAA,EAC1F,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,aAAa,CAAC,kBAAkB,oBAAoB,qBAAqB,iBAAiB;AAAA,EAC1F,aAAa,CAAC,kBAAkB,oBAAoB,qBAAqB,iBAAiB;AAAA,EAC1F,QAAQ,CAAC,aAAa,eAAe,gBAAgB,YAAY;AAAA,EACjE,kBAAkB,CAAC,eAAe,YAAY;AAAA,EAC9C,gBAAgB,CAAC,aAAa,cAAc;AAAA,EAC5C,oBAAoB,CAAC,uBAAuB,qBAAqB;AAAA,EACjE,SAAS,CAAC,cAAc,gBAAgB,iBAAiB,aAAa;AAAA,EACtE,mBAAmB,CAAC,gBAAgB,aAAa;AAAA,EACjD,iBAAiB,CAAC,cAAc,eAAe;AAAA,GAC3C,SAAS;AAAA,EAEX,UAAU,CAAC,aAAa,WAAW;AACrC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,103 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { getConfig } from "../conf";
18
+ import { isWeb } from "../constants/platform";
19
+ import { expandStyle } from "./expandStyle";
20
+ import { colorToRGBA, normalizeColor } from "./normalizeColor";
21
+ import { normalizeValueWithProperty } from "./normalizeValueWithProperty";
22
+ import { pseudoDescriptors } from "./pseudoDescriptors";
23
+ let shorthands = null;
24
+ const defaultOffset = { height: 0, width: 0 };
25
+ function expandStyles(style) {
26
+ const res = {};
27
+ for (let key in style) {
28
+ shorthands = shorthands || getConfig().shorthands;
29
+ if (shorthands) {
30
+ key = shorthands[key] || key;
31
+ }
32
+ if (key in pseudoDescriptors) {
33
+ res[key] = expandStyles(style[key]);
34
+ continue;
35
+ }
36
+ const val = normalizeValueWithProperty(style[key], key);
37
+ const out = expandStyle(key, val);
38
+ if (out) {
39
+ Object.assign(res, Object.fromEntries(out));
40
+ } else {
41
+ res[key] = val;
42
+ }
43
+ }
44
+ fixStyles(res);
45
+ return res;
46
+ }
47
+ function fixStyles(style) {
48
+ if (style.shadowRadius) {
49
+ Object.assign(style, normalizeShadow(style));
50
+ }
51
+ for (const key in borderDefaults) {
52
+ if (style[key] && !style[borderDefaults[key]]) {
53
+ style[borderDefaults[key]] = "solid";
54
+ }
55
+ }
56
+ }
57
+ function normalizeShadow({
58
+ shadowColor,
59
+ shadowOffset,
60
+ shadowOpacity,
61
+ shadowRadius
62
+ }) {
63
+ const { height, width } = shadowOffset || defaultOffset;
64
+ const colorStr = String(shadowColor || "black");
65
+ return __spreadValues(__spreadValues({
66
+ shadowOffset: {
67
+ width: normalizeValueWithProperty(width || 0),
68
+ height: normalizeValueWithProperty(height || 0)
69
+ },
70
+ shadowRadius: normalizeValueWithProperty(shadowRadius || 0)
71
+ }, isWeb && {
72
+ shadowColor: normalizeColor(colorStr, shadowOpacity)
73
+ }), !isWeb && (() => {
74
+ const rgba = colorToRGBA(colorStr);
75
+ if (!rgba) {
76
+ if (process.env.NODE_ENV === "development") {
77
+ console.warn("No rgba form", colorStr);
78
+ }
79
+ return {
80
+ shadowColor,
81
+ shadowOpacity
82
+ };
83
+ }
84
+ const [r, g, b, a] = rgba;
85
+ return {
86
+ shadowColor: `rgb(${r},${g},${b})`,
87
+ shadowOpacity: shadowOpacity ?? a
88
+ };
89
+ })());
90
+ }
91
+ const borderDefaults = {
92
+ borderWidth: "borderStyle",
93
+ borderBottomWidth: "borderBottomStyle",
94
+ borderTopWidth: "borderTopStyle",
95
+ borderLeftWidth: "borderLeftStyle",
96
+ borderRightWidth: "borderRightStyle"
97
+ };
98
+ export {
99
+ defaultOffset,
100
+ expandStyles,
101
+ fixStyles
102
+ };
103
+ //# sourceMappingURL=expandStyles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/expandStyles.ts"],
4
+ "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { expandStyle } from './expandStyle'\nimport { colorToRGBA, normalizeColor } from './normalizeColor'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nlet shorthands: Record<string, string> | null = null\nexport const defaultOffset = { height: 0, width: 0 }\n\n/**\n * This is what you want to run before Object.assign() a style onto another.\n * It does the following:\n * 1. Turns user shorthands into longhands, ie px = paddingHorizontal\n * 2. Normalizes various inconsistent styles to be more consistent\n * 3. Expands react-native shorthands, ie paddingHorizontal => paddingLeft, paddingRight\n */\n\nexport function expandStyles(style: Record<string, any>) {\n const res: Record<string, any> = {}\n\n for (let key in style) {\n shorthands = shorthands || getConfig().shorthands\n if (shorthands) {\n key = shorthands[key] || key\n }\n if (key in pseudoDescriptors) {\n res[key] = expandStyles(style[key])\n continue\n }\n const val = normalizeValueWithProperty(style[key], key)\n // expand react-native shorthands\n const out = expandStyle(key, val)\n if (out) {\n Object.assign(res, Object.fromEntries(out))\n } else {\n res[key] = val\n }\n }\n\n fixStyles(res)\n\n return res\n}\n\nexport function fixStyles(style: Record<string, any>) {\n if (style.shadowRadius) {\n Object.assign(style, normalizeShadow(style))\n }\n\n // ensure border style set by default to solid\n for (const key in borderDefaults) {\n if (style[key] && !style[borderDefaults[key]]) {\n style[borderDefaults[key]] = 'solid'\n }\n }\n}\n\nfunction normalizeShadow({\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n}: Record<string, any>) {\n const { height, width } = shadowOffset || defaultOffset\n const colorStr = String(shadowColor || 'black')\n return {\n shadowOffset: {\n width: normalizeValueWithProperty(width || 0),\n height: normalizeValueWithProperty(height || 0),\n },\n shadowRadius: normalizeValueWithProperty(shadowRadius || 0),\n ...(isWeb && {\n shadowColor: normalizeColor(colorStr, shadowOpacity),\n }),\n ...(!isWeb &&\n (() => {\n // on native fix bug - shadows behave better if turned into non-alpha rgb() + shadowOpacity\n const rgba = colorToRGBA(colorStr)\n if (!rgba) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('No rgba form', colorStr)\n }\n return {\n shadowColor,\n shadowOpacity,\n }\n }\n const [r, g, b, a] = rgba\n return {\n shadowColor: `rgb(${r},${g},${b})`,\n shadowOpacity: shadowOpacity ?? a,\n }\n })()),\n }\n}\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAI,aAA4C;AACzC,MAAM,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EAAE;AAU5C,sBAAsB,OAA4B;AACvD,QAAM,MAA2B,CAAC;AAElC,WAAS,OAAO,OAAO;AACrB,iBAAa,cAAc,UAAU,EAAE;AACvC,QAAI,YAAY;AACd,YAAM,WAAW,QAAQ;AAAA,IAC3B;AACA,QAAI,OAAO,mBAAmB;AAC5B,UAAI,OAAO,aAAa,MAAM,IAAI;AAClC;AAAA,IACF;AACA,UAAM,MAAM,2BAA2B,MAAM,MAAM,GAAG;AAEtD,UAAM,MAAM,YAAY,KAAK,GAAG;AAChC,QAAI,KAAK;AACP,aAAO,OAAO,KAAK,OAAO,YAAY,GAAG,CAAC;AAAA,IAC5C,OAAO;AACL,UAAI,OAAO;AAAA,IACb;AAAA,EACF;AAEA,YAAU,GAAG;AAEb,SAAO;AACT;AAEO,mBAAmB,OAA4B;AACpD,MAAI,MAAM,cAAc;AACtB,WAAO,OAAO,OAAO,gBAAgB,KAAK,CAAC;AAAA,EAC7C;AAGA,aAAW,OAAO,gBAAgB;AAChC,QAAI,MAAM,QAAQ,CAAC,MAAM,eAAe,OAAO;AAC7C,YAAM,eAAe,QAAQ;AAAA,IAC/B;AAAA,EACF;AACF;AAEA,yBAAyB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACsB;AACtB,QAAM,EAAE,QAAQ,UAAU,gBAAgB;AAC1C,QAAM,WAAW,OAAO,eAAe,OAAO;AAC9C,SAAO;AAAA,IACL,cAAc;AAAA,MACZ,OAAO,2BAA2B,SAAS,CAAC;AAAA,MAC5C,QAAQ,2BAA2B,UAAU,CAAC;AAAA,IAChD;AAAA,IACA,cAAc,2BAA2B,gBAAgB,CAAC;AAAA,KACtD,SAAS;AAAA,IACX,aAAa,eAAe,UAAU,aAAa;AAAA,EACrD,IACI,CAAC,SACF,OAAM;AAEL,UAAM,OAAO,YAAY,QAAQ;AACjC,QAAI,CAAC,MAAM;AACT,UAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,gBAAQ,KAAK,gBAAgB,QAAQ;AAAA,MACvC;AACA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,CAAC,GAAG,GAAG,GAAG,KAAK;AACrB,WAAO;AAAA,MACL,aAAa,OAAO,KAAK,KAAK;AAAA,MAC9B,eAAe,iBAAiB;AAAA,IAClC;AAAA,EACF,GAAG;AAET;AAEA,MAAM,iBAAiB;AAAA,EACrB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AACpB;",
6
+ "names": []
7
+ }
@@ -52,11 +52,13 @@ function extendStaticConfig(config, parent) {
52
52
  }));
53
53
  }
54
54
  const parseStaticConfig = (config) => {
55
- return __spreadProps(__spreadValues({
55
+ const parsed = __spreadProps(__spreadValues({
56
56
  defaultProps: {}
57
57
  }, config), {
58
- parsed: true,
59
- propMapper: createPropMapper(config)
58
+ parsed: true
59
+ });
60
+ return __spreadProps(__spreadValues({}, parsed), {
61
+ propMapper: createPropMapper(parsed)
60
62
  });
61
63
  };
62
64
  export {
@@ -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 variants,\n parentNames,\n isZStack: config.isZStack || parentStaticConf.isZStack,\n isText: config.isText || parentStaticConf.isText || false,\n isInput: config.isInput || parentStaticConf.isInput || false,\n neverFlatten: config.neverFlatten || parentStaticConf.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parentStaticConf.ensureOverriddenProp,\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 return {\n defaultProps: {},\n ...config,\n parsed: true,\n propMapper: createPropMapper(config),\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAGA;AACA;AAEO,4BAA4B,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,CAAE,mBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,mBAAmB,OAAO;AAChC,QAAM,WAAW,mBACZ,iBAAiB;AAItB,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO,kCACX,SAAS,OACT,OAAO,SAAS;AAAA,MAEvB,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,gDACpB,mBACA,SAFoB;AAAA,IAGvB;AAAA,IACA;AAAA,IACA,UAAU,OAAO,YAAY,iBAAiB;AAAA,IAC9C,QAAQ,OAAO,UAAU,iBAAiB,UAAU;AAAA,IACpD,SAAS,OAAO,WAAW,iBAAiB,WAAW;AAAA,IACvD,cAAc,OAAO,gBAAgB,iBAAiB;AAAA,IACtD,sBAAsB,OAAO,wBAAwB,iBAAiB;AAAA,IACtE,aAAa,OAAO,cAChB,kCACK,iBAAiB,cACjB,OAAO,eAEZ,iBAAiB,eAAe;AAAA,IACpC,cAAc,WACZ,kCACK,iBAAiB,eACjB,iBAAiB,kBAEtB,kCACK,OAAO,eACP,OAAO,gBAEd,EAAE;AAAA,EACJ,EAAC;AACH;AAEO,MAAM,oBAAoB,CAAC,WAAsD;AACtF,SAAO;AAAA,IACL,cAAc,CAAC;AAAA,KACZ,SAFE;AAAA,IAGL,QAAQ;AAAA,IACR,YAAY,iBAAiB,MAAM;AAAA,EACrC;AACF;",
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 variants,\n parentNames,\n isZStack: config.isZStack || parentStaticConf.isZStack,\n isText: config.isText || parentStaticConf.isText || false,\n isInput: config.isInput || parentStaticConf.isInput || false,\n neverFlatten: config.neverFlatten || parentStaticConf.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parentStaticConf.ensureOverriddenProp,\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;AAGA;AACA;AAEO,4BAA4B,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,CAAE,mBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,mBAAmB,OAAO;AAChC,QAAM,WAAW,mBACZ,iBAAiB;AAItB,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO,kCACX,SAAS,OACT,OAAO,SAAS;AAAA,MAEvB,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,gDACpB,mBACA,SAFoB;AAAA,IAGvB;AAAA,IACA;AAAA,IACA,UAAU,OAAO,YAAY,iBAAiB;AAAA,IAC9C,QAAQ,OAAO,UAAU,iBAAiB,UAAU;AAAA,IACpD,SAAS,OAAO,WAAW,iBAAiB,WAAW;AAAA,IACvD,cAAc,OAAO,gBAAgB,iBAAiB;AAAA,IACtD,sBAAsB,OAAO,wBAAwB,iBAAiB;AAAA,IACtE,aAAa,OAAO,cAChB,kCACK,iBAAiB,cACjB,OAAO,eAEZ,iBAAiB,eAAe;AAAA,IACpC,cAAc,WACZ,kCACK,iBAAiB,eACjB,iBAAiB,kBAEtB,kCACK,OAAO,eACP,OAAO,gBAEd,EAAE;AAAA,EACJ,EAAC;AACH;AAEO,MAAM,oBAAoB,CAAC,WAAsD;AACtF,QAAM,SAAS;AAAA,IACb,cAAc,CAAC;AAAA,KACZ,SAFU;AAAA,IAGb,QAAQ;AAAA,EACV;AACA,SAAO,iCACF,SADE;AAAA,IAEL,YAAY,iBAAiB,MAA4B;AAAA,EAC3D;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,38 @@
1
+ import { getVariableValue } from "../createVariable";
2
+ const getFont = (val = "$4", { fonts, theme, props }) => {
3
+ var _a, _b, _c;
4
+ const family = getVariableValue(props.fontFamily) || "$body";
5
+ const font = fonts[family] || fonts["$body"];
6
+ if (!font) {
7
+ console.warn("\u26A0\uFE0F no font found", { family, fontTokens: Object.keys(fonts), val });
8
+ return {};
9
+ }
10
+ const fontFamily = font.family;
11
+ const fontSize = props.fontSize || font.size[val];
12
+ const lineHeight = props.lineHeight || font.lineHeight[val];
13
+ const fontWeight = props.fontWeight || font.weight[val];
14
+ const letterSpacing = props.letterSpacing || font.letterSpacing[val];
15
+ const fontStyle = props.fontStyle || ((_a = font.style) == null ? void 0 : _a[val]);
16
+ const textTransform = props.textTransform || ((_b = font.transform) == null ? void 0 : _b[val]);
17
+ const color = props.color || ((_c = font.color) == null ? void 0 : _c[val]) || theme.color;
18
+ const style = {
19
+ color,
20
+ fontStyle,
21
+ textTransform,
22
+ fontFamily,
23
+ fontWeight,
24
+ letterSpacing,
25
+ fontSize,
26
+ lineHeight
27
+ };
28
+ if (process.env.NODE_ENV === "development") {
29
+ if (props["debug"]) {
30
+ console.log("getFont", val, style, "from props", props);
31
+ }
32
+ }
33
+ return style;
34
+ };
35
+ export {
36
+ getFont
37
+ };
38
+ //# sourceMappingURL=getFont.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/getFont.tsx"],
4
+ "sourcesContent": ["import { getVariableValue } from '../createVariable'\nimport { FontSizeTokens, TextProps, VariantSpreadFunction } from '../types'\n\nexport const getFont: VariantSpreadFunction<TextProps, FontSizeTokens> = (\n val = '$4',\n { fonts, theme, props }\n) => {\n const family = getVariableValue(props.fontFamily) || '$body'\n const font = fonts[family] || fonts['$body']\n if (!font) {\n console.warn('\u26A0\uFE0F no font found', { family, fontTokens: Object.keys(fonts), val })\n return {} as any\n }\n const fontFamily = font.family\n const fontSize = props.fontSize || font.size[val]\n const lineHeight = props.lineHeight || font.lineHeight[val]\n const fontWeight = props.fontWeight || font.weight[val]\n const letterSpacing = props.letterSpacing || font.letterSpacing[val]\n const fontStyle = props.fontStyle || font.style?.[val]\n const textTransform = props.textTransform || font.transform?.[val]\n const color = props.color || font.color?.[val] || theme.color\n const style = {\n color,\n fontStyle,\n textTransform,\n fontFamily,\n fontWeight,\n letterSpacing,\n fontSize,\n lineHeight,\n }\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n console.log('getFont', val, style, 'from props', props)\n }\n }\n return style\n}\n"],
5
+ "mappings": "AAAA;AAGO,MAAM,UAA4D,CACvE,MAAM,MACN,EAAE,OAAO,OAAO,YACb;AANL;AAOE,QAAM,SAAS,iBAAiB,MAAM,UAAU,KAAK;AACrD,QAAM,OAAO,MAAM,WAAW,MAAM;AACpC,MAAI,CAAC,MAAM;AACT,YAAQ,KAAK,8BAAoB,EAAE,QAAQ,YAAY,OAAO,KAAK,KAAK,GAAG,IAAI,CAAC;AAChF,WAAO,CAAC;AAAA,EACV;AACA,QAAM,aAAa,KAAK;AACxB,QAAM,WAAW,MAAM,YAAY,KAAK,KAAK;AAC7C,QAAM,aAAa,MAAM,cAAc,KAAK,WAAW;AACvD,QAAM,aAAa,MAAM,cAAc,KAAK,OAAO;AACnD,QAAM,gBAAgB,MAAM,iBAAiB,KAAK,cAAc;AAChE,QAAM,YAAY,MAAM,aAAa,YAAK,UAAL,mBAAa;AAClD,QAAM,gBAAgB,MAAM,iBAAiB,YAAK,cAAL,mBAAiB;AAC9D,QAAM,QAAQ,MAAM,SAAS,YAAK,UAAL,mBAAa,SAAQ,MAAM;AACxD,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,MAAM,UAAU;AAClB,cAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK;AAAA,IACxD;AAAA,EACF;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -20,8 +20,8 @@ import { getConfig } from "../conf";
20
20
  import { isClient, isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
21
21
  import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
22
22
  import { createMediaStyle } from "./createMediaStyle";
23
- import { fixNativeShadow } from "./fixNativeShadow";
24
- import { getAtomicStyle, getStylesAtomic } from "./getStylesAtomic";
23
+ import { fixStyles } from "./expandStyles";
24
+ import { getAtomicStyle, getStylesAtomic, styleToCSS } from "./getStylesAtomic";
25
25
  import {
26
26
  insertStyleRule,
27
27
  insertedTransforms,
@@ -29,6 +29,7 @@ import {
29
29
  updateInsertedCache
30
30
  } from "./insertStyleRule";
31
31
  import { mergeTransform } from "./mergeTransform";
32
+ import { normalizeValueWithProperty } from "./normalizeValueWithProperty";
32
33
  import { pseudoDescriptors } from "./pseudoDescriptors";
33
34
  const skipProps = __spreadValues({
34
35
  animation: true,
@@ -118,9 +119,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
118
119
  }
119
120
  const propKeys = Object.keys(props);
120
121
  const shouldDoClasses = (isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames;
121
- if (process.env.NODE_ENV === "development" && debug === "verbose") {
122
- console.log("propKeys", propKeys, props);
123
- }
124
122
  const len = propKeys.length;
125
123
  for (let i = len - 1; i >= 0; i--) {
126
124
  const keyInit = propKeys[i];
@@ -198,13 +196,13 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
198
196
  }
199
197
  let isMedia = keyInit[0] === "$";
200
198
  let isPseudo = validPseudoKeys[keyInit];
199
+ let isMediaOrPseudo = isMedia || isPseudo;
201
200
  if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
202
201
  usedKeys.add(keyInit);
203
202
  viewProps[keyInit] = valInit;
204
203
  continue;
205
204
  }
206
205
  const expanded = isMedia || isPseudo ? [[keyInit, valInit]] : staticConfig.propMapper(keyInit, valInit, theme, props, state, void 0, debug);
207
- let isMediaOrPseudo = isMedia || isPseudo;
208
206
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
209
207
  console.log(" \xBB getSplitStyles", keyInit, valInit, expanded);
210
208
  }
@@ -232,7 +230,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
232
230
  continue;
233
231
  }
234
232
  pseudos[key] = pseudos[key] || {};
235
- pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
233
+ pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, conf, true);
236
234
  if (shouldDoClasses) {
237
235
  const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key]);
238
236
  for (const style2 of pseudoStyles) {
@@ -256,7 +254,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
256
254
  }
257
255
  continue;
258
256
  }
259
- const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
257
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, conf);
260
258
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
261
259
  console.log(" \xBB getSplitStyles mediaStyle", { mediaKey, mediaStyle, props, shouldDoClasses });
262
260
  }
@@ -293,7 +291,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
293
291
  } else if (key in stylePropsTransform) {
294
292
  mergeTransform(style, key, val, true);
295
293
  } else {
296
- style[key] = val;
294
+ style[key] = normalizeValueWithProperty(val, key);
297
295
  }
298
296
  continue;
299
297
  }
@@ -305,6 +303,10 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
305
303
  }
306
304
  }
307
305
  }
306
+ fixStyles(style);
307
+ if (isWeb) {
308
+ styleToCSS(style);
309
+ }
308
310
  if (defaultClassNames) {
309
311
  classNames = __spreadValues(__spreadValues({}, defaultClassNames), classNames);
310
312
  }
@@ -324,7 +326,9 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
324
326
  if (transforms) {
325
327
  for (const namespace in transforms) {
326
328
  if (!transforms[namespace]) {
327
- console.warn("Error no transform");
329
+ if (process.env.NODE_ENV === "development") {
330
+ console.warn("Error no transform", transforms, namespace);
331
+ }
328
332
  continue;
329
333
  }
330
334
  const [hash, val] = transforms[namespace];
@@ -353,6 +357,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
353
357
  rulesToInsert
354
358
  };
355
359
  };
360
+ const getSubStyle = (styleIn, staticConfig, theme, props, state, conf2, avoidDefaultProps) => {
361
+ const styleOut = {};
362
+ for (let key in styleIn) {
363
+ const val = styleIn[key];
364
+ key = conf2.shorthands[key] || key;
365
+ const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps);
366
+ if (!expanded)
367
+ continue;
368
+ for (const [skey, sval] of expanded) {
369
+ if (skey in stylePropsTransform) {
370
+ mergeTransform(styleOut, skey, sval);
371
+ } else {
372
+ styleOut[skey] = normalizeValueWithProperty(sval, key);
373
+ }
374
+ }
375
+ }
376
+ fixStyles(styleOut);
377
+ return styleOut;
378
+ };
356
379
  const insertSplitStyles = (...args) => {
357
380
  const res = getSplitStyles(...args);
358
381
  if (res.rulesToInsert) {
@@ -375,34 +398,11 @@ const useSplitStyles = (...args) => {
375
398
  }, [res.rulesToInsert]);
376
399
  return res;
377
400
  };
378
- const getSubStyle = (styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
379
- const styleOut = {};
380
- for (const key in styleIn) {
381
- const val = styleIn[key];
382
- const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps);
383
- if (!expanded)
384
- continue;
385
- for (const [skey, sval] of expanded) {
386
- if (skey in stylePropsTransform) {
387
- mergeTransform(styleOut, skey, sval);
388
- } else {
389
- styleOut[skey] = sval;
390
- }
391
- }
392
- }
393
- return styleOut;
394
- };
395
- function normalizeStyleObject(style) {
396
- if (!isWeb) {
397
- fixNativeShadow(style);
398
- }
399
- }
400
401
  export {
401
402
  PROP_SPLIT,
402
403
  getSplitStyles,
403
404
  getSubStyle,
404
405
  insertSplitStyles,
405
- normalizeStyleObject,
406
406
  pseudoCNInverse,
407
407
  useSplitStyles
408
408
  };