@tamagui/core 1.0.0-beta.179 → 1.0.0-beta.181

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 (244) hide show
  1. package/dist/cjs/Tamagui.js +18 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeContext.js +4 -0
  4. package/dist/cjs/ThemeManager.js +30 -14
  5. package/dist/cjs/ThemeManager.js.map +2 -2
  6. package/dist/cjs/conf.js +10 -1
  7. package/dist/cjs/conf.js.map +2 -2
  8. package/dist/cjs/constants/constants.js +6 -0
  9. package/dist/cjs/constants/platform.js +12 -0
  10. package/dist/cjs/constants/pseudos.js +37 -0
  11. package/dist/cjs/constants/pseudos.js.map +7 -0
  12. package/dist/cjs/constants/rnw.js +4 -0
  13. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  14. package/dist/cjs/createComponent.js +132 -126
  15. package/dist/cjs/createComponent.js.map +2 -2
  16. package/dist/cjs/createFont.js +4 -0
  17. package/dist/cjs/createShallowUpdate.js +1 -0
  18. package/dist/cjs/createShallowUpdate.js.map +7 -0
  19. package/dist/cjs/createShorthands.js +4 -0
  20. package/dist/cjs/createTamagui.js +12 -0
  21. package/dist/cjs/createTamagui.js.map +2 -2
  22. package/dist/cjs/createTheme.js +4 -0
  23. package/dist/cjs/createTokens.js +5 -0
  24. package/dist/cjs/createTokens.js.map +1 -1
  25. package/dist/cjs/createVariable.js +9 -0
  26. package/dist/cjs/defaultComponentState.js +0 -30
  27. package/dist/cjs/defaultComponentState.js.map +3 -3
  28. package/dist/cjs/devtools.js +32 -0
  29. package/dist/cjs/devtools.js.map +7 -0
  30. package/dist/cjs/helpers/RNComponents.js +38 -0
  31. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  32. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  33. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  34. package/dist/cjs/helpers/areEqualSets.js +4 -0
  35. package/dist/cjs/helpers/createMediaStyle.js +8 -6
  36. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  37. package/dist/cjs/helpers/createPropMapper.js +57 -56
  38. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  39. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  40. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  41. package/dist/cjs/helpers/createTamaguiProvider.js +5 -5
  42. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  43. package/dist/cjs/helpers/extendStaticConfig.js +8 -6
  44. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  45. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  46. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  47. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  48. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  49. package/dist/cjs/helpers/getSplitStyles.js +94 -47
  50. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  51. package/dist/cjs/helpers/getStylesAtomic.js +20 -2
  52. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  53. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  54. package/dist/cjs/helpers/insertStyleRule.js +46 -26
  55. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  56. package/dist/cjs/helpers/isObj.js +4 -0
  57. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  58. package/dist/cjs/helpers/matchMedia.js +4 -0
  59. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  60. package/dist/cjs/helpers/themeable.js +8 -2
  61. package/dist/cjs/helpers/themeable.js.map +2 -2
  62. package/dist/cjs/helpers/validate.js +46 -5
  63. package/dist/cjs/helpers/validate.js.map +2 -2
  64. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  65. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  66. package/dist/cjs/hooks/useConstant.js +4 -0
  67. package/dist/cjs/hooks/useFeatures.js +101 -12
  68. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  69. package/dist/cjs/hooks/useIsMounted.js +4 -0
  70. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  71. package/dist/cjs/hooks/useMedia.js +36 -43
  72. package/dist/cjs/hooks/useMedia.js.map +2 -2
  73. package/dist/cjs/hooks/usePressable.js +4 -0
  74. package/dist/cjs/hooks/useTheme.js +28 -13
  75. package/dist/cjs/hooks/useTheme.js.map +2 -2
  76. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  77. package/dist/cjs/index.js +14 -0
  78. package/dist/cjs/index.js.map +2 -2
  79. package/dist/cjs/styled.js +8 -15
  80. package/dist/cjs/styled.js.map +2 -2
  81. package/dist/cjs/tamagui-base.css +8 -0
  82. package/dist/cjs/tamagui-base.css.map +7 -0
  83. package/dist/cjs/types-rnw.js.map +1 -1
  84. package/dist/cjs/types.js.map +1 -1
  85. package/dist/cjs/views/Stack.js +5 -0
  86. package/dist/cjs/views/Stack.js.map +2 -2
  87. package/dist/cjs/views/Text.js +5 -0
  88. package/dist/cjs/views/Text.js.map +2 -2
  89. package/dist/cjs/views/TextAncestorContext.js +6 -0
  90. package/dist/cjs/views/Theme.js +17 -19
  91. package/dist/cjs/views/Theme.js.map +2 -2
  92. package/dist/cjs/views/ThemeInverse.js +5 -0
  93. package/dist/cjs/views/ThemeProvider.js +4 -0
  94. package/dist/cjs/views/ThemeReset.js +4 -0
  95. package/dist/esm/Tamagui.js +10 -2
  96. package/dist/esm/Tamagui.js.map +2 -2
  97. package/dist/esm/ThemeManager.js +21 -11
  98. package/dist/esm/ThemeManager.js.map +2 -2
  99. package/dist/esm/conf.js +0 -1
  100. package/dist/esm/conf.js.map +2 -2
  101. package/dist/esm/constants/pseudos.js +18 -0
  102. package/dist/esm/constants/pseudos.js.map +7 -0
  103. package/dist/esm/createComponent.js +122 -129
  104. package/dist/esm/createComponent.js.map +2 -2
  105. package/dist/esm/createShallowUpdate.js +1 -0
  106. package/dist/esm/createShallowUpdate.js.map +7 -0
  107. package/dist/esm/createTamagui.js +8 -0
  108. package/dist/esm/createTamagui.js.map +2 -2
  109. package/dist/esm/createTokens.js.map +1 -1
  110. package/dist/esm/defaultComponentState.js +0 -11
  111. package/dist/esm/defaultComponentState.js.map +3 -3
  112. package/dist/esm/devtools.js +14 -0
  113. package/dist/esm/devtools.js.map +7 -0
  114. package/dist/esm/helpers/RNComponents.js +12 -0
  115. package/dist/esm/helpers/RNComponents.js.map +7 -0
  116. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  117. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  118. package/dist/esm/helpers/createMediaStyle.js +3 -6
  119. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  120. package/dist/esm/helpers/createPropMapper.js +53 -56
  121. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  122. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  123. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  124. package/dist/esm/helpers/createTamaguiProvider.js +1 -4
  125. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  126. package/dist/esm/helpers/extendStaticConfig.js +5 -6
  127. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  128. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  129. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  130. package/dist/esm/helpers/getSplitStyles.js +89 -48
  131. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  132. package/dist/esm/helpers/getStylesAtomic.js +15 -2
  133. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  134. package/dist/esm/helpers/insertStyleRule.js +36 -26
  135. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  136. package/dist/esm/helpers/themeable.js +4 -2
  137. package/dist/esm/helpers/themeable.js.map +2 -2
  138. package/dist/esm/helpers/validate.js +17 -5
  139. package/dist/esm/helpers/validate.js.map +2 -2
  140. package/dist/esm/hooks/useFeatures.js +96 -17
  141. package/dist/esm/hooks/useFeatures.js.map +2 -2
  142. package/dist/esm/hooks/useMedia.js +25 -43
  143. package/dist/esm/hooks/useMedia.js.map +2 -2
  144. package/dist/esm/hooks/useTheme.js +20 -13
  145. package/dist/esm/hooks/useTheme.js.map +2 -2
  146. package/dist/esm/index.js +3 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/styled.js +4 -12
  149. package/dist/esm/styled.js.map +2 -2
  150. package/dist/esm/tamagui-base.css +8 -0
  151. package/dist/esm/tamagui-base.css.map +7 -0
  152. package/dist/esm/views/Stack.js +1 -0
  153. package/dist/esm/views/Stack.js.map +2 -2
  154. package/dist/esm/views/Text.js +1 -0
  155. package/dist/esm/views/Text.js.map +2 -2
  156. package/dist/esm/views/Theme.js +13 -19
  157. package/dist/esm/views/Theme.js.map +2 -2
  158. package/dist/jsx/Tamagui.js +10 -2
  159. package/dist/jsx/ThemeManager.js +21 -11
  160. package/dist/jsx/conf.js +0 -1
  161. package/dist/jsx/constants/pseudos.js +17 -0
  162. package/dist/jsx/createComponent.js +115 -123
  163. package/dist/jsx/createShallowUpdate.js +0 -0
  164. package/dist/jsx/createTamagui.js +8 -0
  165. package/dist/jsx/defaultComponentState.js +0 -11
  166. package/dist/jsx/devtools.js +13 -0
  167. package/dist/jsx/helpers/RNComponents.js +11 -0
  168. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  169. package/dist/jsx/helpers/createMediaStyle.js +3 -6
  170. package/dist/jsx/helpers/createPropMapper.js +53 -56
  171. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  172. package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
  173. package/dist/jsx/helpers/extendStaticConfig.js +5 -6
  174. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  175. package/dist/jsx/helpers/getSplitStyles.js +89 -48
  176. package/dist/jsx/helpers/getStylesAtomic.js +15 -2
  177. package/dist/jsx/helpers/insertStyleRule.js +36 -26
  178. package/dist/jsx/helpers/themeable.js +4 -3
  179. package/dist/jsx/helpers/validate.js +17 -5
  180. package/dist/jsx/hooks/useFeatures.js +96 -17
  181. package/dist/jsx/hooks/useMedia.js +25 -43
  182. package/dist/jsx/hooks/useTheme.js +20 -13
  183. package/dist/jsx/index.js +3 -0
  184. package/dist/jsx/styled.js +4 -12
  185. package/dist/jsx/tamagui-base.css +7 -0
  186. package/dist/jsx/views/Stack.js +1 -0
  187. package/dist/jsx/views/Text.js +1 -0
  188. package/dist/jsx/views/Theme.js +13 -19
  189. package/package.json +6 -6
  190. package/types/Tamagui.d.ts +16 -1
  191. package/types/Tamagui.d.ts.map +1 -1
  192. package/types/ThemeManager.d.ts +3 -3
  193. package/types/ThemeManager.d.ts.map +1 -1
  194. package/types/conf.d.ts.map +1 -1
  195. package/types/createComponent.d.ts +5 -7
  196. package/types/createComponent.d.ts.map +1 -1
  197. package/types/createFont.d.ts +1 -1
  198. package/types/createFont.d.ts.map +1 -1
  199. package/types/createTamagui.d.ts.map +1 -1
  200. package/types/createTokens.d.ts +8 -0
  201. package/types/createTokens.d.ts.map +1 -1
  202. package/types/defaultComponentState.d.ts +0 -12
  203. package/types/defaultComponentState.d.ts.map +1 -1
  204. package/types/helpers/RNComponents.d.ts +2 -0
  205. package/types/helpers/RNComponents.d.ts.map +1 -0
  206. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  207. package/types/helpers/createMediaStyle.d.ts +1 -1
  208. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  209. package/types/helpers/createPropMapper.d.ts +2 -2
  210. package/types/helpers/createPropMapper.d.ts.map +1 -1
  211. package/types/helpers/createShallowUpdate.d.ts +4 -0
  212. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  213. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  214. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  215. package/types/helpers/extendStaticConfig.d.ts +2 -2
  216. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  217. package/types/helpers/getSplitStyles.d.ts +4 -14
  218. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  219. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  220. package/types/helpers/insertStyleRule.d.ts +2 -1
  221. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  222. package/types/helpers/themeable.d.ts +3 -1
  223. package/types/helpers/themeable.d.ts.map +1 -1
  224. package/types/helpers/validate.d.ts.map +1 -1
  225. package/types/hooks/useFeatures.d.ts +7 -5
  226. package/types/hooks/useFeatures.d.ts.map +1 -1
  227. package/types/hooks/useMedia.d.ts +3 -3
  228. package/types/hooks/useMedia.d.ts.map +1 -1
  229. package/types/hooks/useTheme.d.ts +1 -1
  230. package/types/hooks/useTheme.d.ts.map +1 -1
  231. package/types/index.d.ts +1 -0
  232. package/types/index.d.ts.map +1 -1
  233. package/types/styled.d.ts +13 -8
  234. package/types/styled.d.ts.map +1 -1
  235. package/types/types-rnw.d.ts +0 -5
  236. package/types/types-rnw.d.ts.map +1 -1
  237. package/types/types.d.ts +124 -90
  238. package/types/types.d.ts.map +1 -1
  239. package/types/views/Stack.d.ts +2 -2
  240. package/types/views/Stack.d.ts.map +1 -1
  241. package/types/views/Text.d.ts +2 -2
  242. package/types/views/Text.d.ts.map +1 -1
  243. package/types/views/Theme.d.ts +1 -0
  244. package/types/views/Theme.d.ts.map +1 -1
@@ -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 { StaticConfig, TamaguiInternalConfig } from '../types'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable'\n\nexport const createPropMapper = (c: StaticConfig) => {\n const variants = c.variants || {}\n\n // goes through specificity finding best matching variant function\n function getVariantFunction(variant: any, key: string, value: any) {\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\n const defaultProps = c.defaultProps || {}\n\n return (\n key: string,\n value: any,\n theme: any,\n props: any,\n staticConfig: StaticConfig,\n returnVariablesAs: ResolveVariableTypes = !!props.animation ? 'value' : 'auto',\n avoidDefaultProps = false\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n let fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n\n // expand variants\n const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (!variantValue) {\n return value\n }\n\n if (typeof variantValue === 'function') {\n variantValue = variantValue(value, {\n tokens: conf.tokensParsed,\n theme,\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n props: avoidDefaultProps\n ? props\n : new Proxy(props, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n // these props may be extracted into classNames, but we still want to access them\n // at runtime, so we proxy back to defaultProps but don't pass them\n if (staticConfig.defaultProps) {\n return Reflect.get(staticConfig.defaultProps, key)\n }\n },\n }),\n })\n }\n\n // console.log(\n // 'GOGO',\n // variantValue,\n // 'now',\n // resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n // )\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return variantValue\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n shouldReturn = true\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n }\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[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\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n const valueName = value[0] === '$' ? value.slice(1) : value\n if (valueName in theme) {\n valOrVar = theme[valueName]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = tokensParsed.font[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n valOrVar = tokensParsed.font[fontFamily]?.size[value] || value\n hasSet = true\n break\n case 'lineHeight':\n valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value\n hasSet = true\n break\n case 'letterSpacing':\n valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value\n hasSet = true\n break\n case 'fontWeight':\n valOrVar = tokensParsed.font[fontFamily]?.weight[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(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme:`, value, theme)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\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 },\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 { StaticConfig, TamaguiInternalConfig } from '../types'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both'\n\n// goes through specificity finding best matching variant function\nfunction getVariantFunction(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\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n return (\n key: string,\n value: any,\n theme: any,\n props: any,\n returnVariablesAs: ResolveVariableTypes = !!props.animation ? 'value' : 'auto',\n avoidDefaultProps = false\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\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 const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n variantValue = variantValue(value, {\n tokens: conf.tokensParsed,\n theme,\n // TODO do this in splitstlye\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n props: avoidDefaultProps\n ? props\n : new Proxy(props, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n // these props may be extracted into classNames, but we still want to access them\n // at runtime, so we proxy back to defaultProps but don't pass them\n if (defaultProps) {\n return Reflect.get(defaultProps, key)\n }\n },\n }),\n })\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return variantValue\n }\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n shouldReturn = true\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n }\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[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\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n const valueName = value[0] === '$' ? value.slice(1) : value\n if (valueName in theme) {\n valOrVar = theme[valueName]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = tokensParsed.font[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = tokensParsed.font[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(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, value)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\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 },\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,55 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
20
+ var __export = (target, all) => {
21
+ for (var name in all)
22
+ __defProp(target, name, { get: all[name], enumerable: true });
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
+ }
30
+ return to;
31
+ };
32
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
+ var createShallowUpdate_exports = {};
34
+ __export(createShallowUpdate_exports, {
35
+ createShallowUpdate: () => createShallowUpdate
36
+ });
37
+ module.exports = __toCommonJS(createShallowUpdate_exports);
38
+ function createShallowUpdate(setter) {
39
+ return (next) => {
40
+ setter((prev) => {
41
+ for (const key in next) {
42
+ if (prev[key] !== next[key]) {
43
+ return __spreadValues(__spreadValues({}, prev), next);
44
+ }
45
+ }
46
+ return prev;
47
+ });
48
+ };
49
+ }
50
+ __name(createShallowUpdate, "createShallowUpdate");
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ createShallowUpdate
54
+ });
55
+ //# sourceMappingURL=createShallowUpdate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/createShallowUpdate.tsx"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { TamaguiComponentState } from '../types'\n\nexport function createShallowUpdate(\n setter: React.Dispatch<React.SetStateAction<TamaguiComponentState>>\n) {\n return (next: Partial<TamaguiComponentState>) => {\n setter((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,6BACL,QACA;AACA,SAAO,CAAC,SAAyC;AAC/C,WAAO,CAAC,SAAS;AACf,iBAAW,OAAO,MAAM;AACtB,YAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,iBAAO,kCAAK,OAAS;AAAA,QACvB;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAbgB;",
6
+ "names": []
7
+ }
@@ -63,11 +63,9 @@ function createTamaguiProvider(_a) {
63
63
  return /* @__PURE__ */ __name(function TamaguiProvider(_a2) {
64
64
  var _b2 = _a2, {
65
65
  injectCSS,
66
- fallback,
67
66
  children
68
67
  } = _b2, themePropsProvider = __objRest(_b2, [
69
68
  "injectCSS",
70
- "fallback",
71
69
  "children"
72
70
  ]);
73
71
  if (typeof document !== "undefined") {
@@ -84,10 +82,12 @@ function createTamaguiProvider(_a) {
84
82
  }
85
83
  return /* @__PURE__ */ React.createElement(import_ButtonInsideButtonContext.ButtonInsideButtonContext.Provider, {
86
84
  value: false
87
- }, /* @__PURE__ */ React.createElement(import_TextAncestorContext.TextAncestorProvider, null, /* @__PURE__ */ React.createElement(import_ThemeProvider.ThemeProvider, __spreadValues(__spreadValues({}, themeProps), themePropsProvider), /* @__PURE__ */ React.createElement(React.Suspense, {
88
- fallback: fallback || null
89
- }, children))));
85
+ }, /* @__PURE__ */ React.createElement(import_TextAncestorContext.TextAncestorProvider, null, /* @__PURE__ */ React.createElement(import_ThemeProvider.ThemeProvider, __spreadValues(__spreadValues({}, themeProps), themePropsProvider), children)));
90
86
  }, "TamaguiProvider");
91
87
  }
92
88
  __name(createTamaguiProvider, "createTamaguiProvider");
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ createTamaguiProvider
92
+ });
93
93
  //# sourceMappingURL=createTamaguiProvider.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createTamaguiProvider.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider({\n getCSS,\n ...themeProps\n}: ThemeProviderProps & {\n getCSS: () => string\n}) {\n return function TamaguiProvider({\n injectCSS,\n fallback,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n // inject CSS if asked to (not SSR compliant)\n if (typeof document !== 'undefined') {\n React.useLayoutEffect(() => {\n if (!injectCSS) return\n const style = document.createElement('style')\n style.appendChild(document.createTextNode(getCSS()))\n document.head.appendChild(style)\n return () => {\n document.head.removeChild(style)\n }\n }, [])\n }\n\n return (\n <ButtonInsideButtonContext.Provider value={false}>\n <TextAncestorProvider>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n <React.Suspense fallback={fallback || null}>{children}</React.Suspense>\n </ThemeProvider>\n </TextAncestorProvider>\n </ButtonInsideButtonContext.Provider>\n )\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AAEvB,uCAA0C;AAE1C,iCAAqC;AACrC,2BAAkD;AAE3C,+BAA+B,IAKnC;AALmC,eACpC;AAAA;AAAA,MADoC,IAEjC,uBAFiC,IAEjC;AAAA,IADH;AAAA;AAKA,SAAO,gDAAyB,KAKP;AALO,mBAC9B;AAAA;AAAA,MACA;AAAA,MACA;AAAA,QAH8B,KAI3B,+BAJ2B,KAI3B;AAAA,MAHH;AAAA,MACA;AAAA,MACA;AAAA;AAIA,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI,CAAC;AAAW;AAChB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY,SAAS,eAAe,OAAO,CAAC,CAAC;AACnD,iBAAS,KAAK,YAAY,KAAK;AAC/B,eAAO,MAAM;AACX,mBAAS,KAAK,YAAY,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,CAAC;AAAA,IACP;AAEA,WACE,oCAAC,2DAA0B,UAA1B;AAAA,MAAmC,OAAO;AAAA,OACzC,oCAAC,uDACC,oCAAC,sEAAkB,aAAgB,qBACjC,oCAAC,MAAM,UAAN;AAAA,MAAe,UAAU,YAAY;AAAA,OAAO,QAAS,CACxD,CACF,CACF;AAAA,EAEJ,GA5BO;AA6BT;AAnCgB;",
4
+ "sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider({\n getCSS,\n ...themeProps\n}: ThemeProviderProps & {\n getCSS: () => string\n}) {\n return function TamaguiProvider({\n injectCSS,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n // inject CSS if asked to (not SSR compliant)\n if (typeof document !== 'undefined') {\n React.useLayoutEffect(() => {\n if (!injectCSS) return\n const style = document.createElement('style')\n style.appendChild(document.createTextNode(getCSS()))\n document.head.appendChild(style)\n return () => {\n document.head.removeChild(style)\n }\n }, [])\n }\n\n return (\n <ButtonInsideButtonContext.Provider value={false}>\n <TextAncestorProvider>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n {children}\n </ThemeProvider>\n </TextAncestorProvider>\n </ButtonInsideButtonContext.Provider>\n )\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AAEvB,uCAA0C;AAE1C,iCAAqC;AACrC,2BAAkD;AAE3C,+BAA+B,IAKnC;AALmC,eACpC;AAAA;AAAA,MADoC,IAEjC,uBAFiC,IAEjC;AAAA,IADH;AAAA;AAKA,SAAO,gDAAyB,KAIP;AAJO,mBAC9B;AAAA;AAAA,MACA;AAAA,QAF8B,KAG3B,+BAH2B,KAG3B;AAAA,MAFH;AAAA,MACA;AAAA;AAIA,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI,CAAC;AAAW;AAChB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY,SAAS,eAAe,OAAO,CAAC,CAAC;AACnD,iBAAS,KAAK,YAAY,KAAK;AAC/B,eAAO,MAAM;AACX,mBAAS,KAAK,YAAY,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,CAAC;AAAA,IACP;AAEA,WACE,oCAAC,2DAA0B,UAA1B;AAAA,MAAmC,OAAO;AAAA,OACzC,oCAAC,uDACC,oCAAC,sEAAkB,aAAgB,qBAChC,QACH,CACF,CACF;AAAA,EAEJ,GA3BO;AA4BT;AAlCgB;",
6
6
  "names": []
7
7
  }
@@ -41,11 +41,8 @@ __export(extendStaticConfig_exports, {
41
41
  module.exports = __toCommonJS(extendStaticConfig_exports);
42
42
  var import_helpers = require("@tamagui/helpers");
43
43
  var import_createPropMapper = require("./createPropMapper");
44
- function extendStaticConfig(parent, config = {}) {
45
- if (!parent) {
46
- throw new Error("no parent");
47
- }
48
- if (!("staticConfig" in parent)) {
44
+ function extendStaticConfig(config, parent) {
45
+ if (!parent || !("staticConfig" in parent)) {
49
46
  return parseStaticConfig(config);
50
47
  }
51
48
  const variants = __spreadValues({}, parent.staticConfig.variants);
@@ -66,7 +63,7 @@ function extendStaticConfig(parent, config = {}) {
66
63
  neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,
67
64
  ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
68
65
  validStyles: config.validStyles ? __spreadValues(__spreadValues({}, parent.staticConfig.validStyles), config.validStyles) : parent.staticConfig.validStyles || import_helpers.stylePropsView,
69
- defaultProps: __spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), config.defaultProps)
66
+ defaultProps: __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), parent.staticConfig.defaultVariants), config.defaultProps), config.defaultVariants)
70
67
  }));
71
68
  }
72
69
  __name(extendStaticConfig, "extendStaticConfig");
@@ -76,4 +73,9 @@ const parseStaticConfig = /* @__PURE__ */ __name((config) => {
76
73
  propMapper: (0, import_createPropMapper.createPropMapper)(config)
77
74
  });
78
75
  }, "parseStaticConfig");
76
+ // Annotate the CommonJS export names for ESM import in node:
77
+ 0 && (module.exports = {
78
+ extendStaticConfig,
79
+ parseStaticConfig
80
+ });
79
81
  //# sourceMappingURL=extendStaticConfig.js.map
@@ -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'\n\nexport function extendStaticConfig(\n // can be undefined when loading with @tamagui/fake-react-native\n // could be fixed a bit cleaner\n parent?: StylableComponent,\n config: StaticConfig = {}\n): StaticConfigParsed | null {\n if (!parent) {\n throw new Error('no parent')\n }\n\n if (!('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const variants = {\n ...parent.staticConfig.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 return parseStaticConfig({\n ...parent.staticConfig,\n ...config,\n variants,\n isZStack: config.isZStack || parent.staticConfig.isZStack,\n isText: config.isText || parent.staticConfig.isText || false,\n isInput: config.isInput || parent.staticConfig.isInput || false,\n neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...parent.staticConfig.validStyles,\n ...config.validStyles,\n }\n : parent.staticConfig.validStyles || stylePropsView,\n defaultProps: {\n ...parent.staticConfig.defaultProps,\n ...config.defaultProps,\n },\n })\n}\n\nexport const parseStaticConfig = (config: StaticConfig): StaticConfigParsed => {\n return {\n ...config,\n parsed: true,\n propMapper: createPropMapper(config),\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAG/B,8BAAiC;AAE1B,4BAGL,QACA,SAAuB,CAAC,GACG;AAC3B,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,WAAW;AAAA,EAC7B;AAEA,MAAI,CAAE,mBAAkB,SAAS;AAC/B,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,WAAW,mBACZ,OAAO,aAAa;AAIzB,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;AAEA,SAAO,kBAAkB,gDACpB,OAAO,eACP,SAFoB;AAAA,IAGvB;AAAA,IACA,UAAU,OAAO,YAAY,OAAO,aAAa;AAAA,IACjD,QAAQ,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA,IACvD,SAAS,OAAO,WAAW,OAAO,aAAa,WAAW;AAAA,IAC1D,cAAc,OAAO,gBAAgB,OAAO,aAAa;AAAA,IACzD,sBAAsB,OAAO,wBAAwB,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB,kCACK,OAAO,aAAa,cACpB,OAAO,eAEZ,OAAO,aAAa,eAAe;AAAA,IACvC,cAAc,kCACT,OAAO,aAAa,eACpB,OAAO;AAAA,EAEd,EAAC;AACH;AApDgB;AAsDT,MAAM,oBAAoB,wBAAC,WAA6C;AAC7E,SAAO,iCACF,SADE;AAAA,IAEL,QAAQ;AAAA,IACR,YAAY,8CAAiB,MAAM;AAAA,EACrC;AACF,GANiC;",
4
+ "sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\n\nimport { StaticConfig, StaticConfigParsed, StylableComponent } from '../types'\nimport { createPropMapper } from './createPropMapper'\n\nexport function extendStaticConfig(config: Partial<StaticConfig>, parent?: StylableComponent) {\n if (!parent || !('staticConfig' in parent)) {\n return parseStaticConfig(config)\n }\n\n const variants = {\n ...parent.staticConfig.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 return parseStaticConfig({\n ...parent.staticConfig,\n ...config,\n variants,\n isZStack: config.isZStack || parent.staticConfig.isZStack,\n isText: config.isText || parent.staticConfig.isText || false,\n isInput: config.isInput || parent.staticConfig.isInput || false,\n neverFlatten: config.neverFlatten || parent.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...parent.staticConfig.validStyles,\n ...config.validStyles,\n }\n : parent.staticConfig.validStyles || stylePropsView,\n defaultProps: {\n ...parent.staticConfig.defaultProps,\n ...parent.staticConfig.defaultVariants,\n ...config.defaultProps,\n ...config.defaultVariants,\n },\n })\n}\n\nexport const parseStaticConfig = (config: Partial<StaticConfig>): StaticConfigParsed => {\n return {\n ...config,\n parsed: true,\n propMapper: createPropMapper(config),\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAG/B,8BAAiC;AAE1B,4BAA4B,QAA+B,QAA4B;AAC5F,MAAI,CAAC,UAAU,CAAE,mBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,WAAW,mBACZ,OAAO,aAAa;AAIzB,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;AAEA,SAAO,kBAAkB,gDACpB,OAAO,eACP,SAFoB;AAAA,IAGvB;AAAA,IACA,UAAU,OAAO,YAAY,OAAO,aAAa;AAAA,IACjD,QAAQ,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA,IACvD,SAAS,OAAO,WAAW,OAAO,aAAa,WAAW;AAAA,IAC1D,cAAc,OAAO,gBAAgB,OAAO,aAAa;AAAA,IACzD,sBAAsB,OAAO,wBAAwB,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB,kCACK,OAAO,aAAa,cACpB,OAAO,eAEZ,OAAO,aAAa,eAAe;AAAA,IACvC,cAAc,gEACT,OAAO,aAAa,eACpB,OAAO,aAAa,kBACpB,OAAO,eACP,OAAO;AAAA,EAEd,EAAC;AACH;AA7CgB;AA+CT,MAAM,oBAAoB,wBAAC,WAAsD;AACtF,SAAO,iCACF,SADE;AAAA,IAEL,QAAQ;AAAA,IACR,YAAY,8CAAiB,MAAM;AAAA,EACrC;AACF,GANiC;",
6
6
  "names": []
7
7
  }
@@ -23,4 +23,8 @@ __export(fixNativeShadow_exports, {
23
23
  module.exports = __toCommonJS(fixNativeShadow_exports);
24
24
  const fixNativeShadow = /* @__PURE__ */ __name((a) => {
25
25
  }, "fixNativeShadow");
26
+ // Annotate the CommonJS export names for ESM import in node:
27
+ 0 && (module.exports = {
28
+ fixNativeShadow
29
+ });
26
30
  //# sourceMappingURL=fixNativeShadow.js.map
@@ -39,8 +39,8 @@ function fixNativeShadow(props) {
39
39
  if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
40
40
  const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
41
41
  if (typeof a !== "string") {
42
- console.warn("invalid", c, type);
43
- return;
42
+ console.trace("invalid", c, type);
43
+ throw new Error(`invalid style`);
44
44
  }
45
45
  props.shadowColor = `${type.replace("a", "")}(${_1},${_2},${_3})`;
46
46
  props.shadowOpacity = +a;
@@ -49,4 +49,8 @@ function fixNativeShadow(props) {
49
49
  }
50
50
  }
51
51
  __name(fixNativeShadow, "fixNativeShadow");
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ fixNativeShadow
55
+ });
52
56
  //# sourceMappingURL=fixNativeShadow.native.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/fixNativeShadow.native.tsx"],
4
- "sourcesContent": ["const matchRgbaHsla =\n /(rgba|hsla)\\(\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (!props.shadowColor) {\n return\n }\n if (!props.shadowOffset) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if ('shadowOpacity' in props) {\n return\n }\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n // supports rgba + hsla\n if ((c[0] === 'r' || c[0] === 'h') && c[3] === 'a') {\n const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || []\n if (typeof a !== 'string') {\n console.warn('invalid', c, type)\n return\n }\n props.shadowColor = `${type.replace('a', '')}(${_1},${_2},${_3})`\n props.shadowOpacity = +a\n } else {\n props.shadowOpacity = 1\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,gBACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,CAAC,MAAM,aAAa;AACtB;AAAA,EACF;AACA,MAAI,CAAC,MAAM,cAAc;AAEvB,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACA,MAAI,mBAAmB,OAAO;AAC5B;AAAA,EACF;AACA,QAAM,IAAI,GAAG,MAAM;AAGnB,MAAK,GAAE,OAAO,OAAO,EAAE,OAAO,QAAQ,EAAE,OAAO,KAAK;AAClD,UAAM,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,MAAM,aAAa,KAAK,CAAC;AAC5D,QAAI,OAAO,MAAM,UAAU;AACzB,cAAQ,KAAK,WAAW,GAAG,IAAI;AAC/B;AAAA,IACF;AACA,UAAM,cAAc,GAAG,KAAK,QAAQ,KAAK,EAAE,KAAK,MAAM,MAAM;AAC5D,UAAM,gBAAgB,CAAC;AAAA,EACzB,OAAO;AACL,UAAM,gBAAgB;AAAA,EACxB;AACF;AA5BgB;",
4
+ "sourcesContent": ["const matchRgbaHsla =\n /(rgba|hsla)\\(\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,}%?)\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (!props.shadowColor) {\n return\n }\n if (!props.shadowOffset) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if ('shadowOpacity' in props) {\n return\n }\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n // supports rgba + hsla\n if ((c[0] === 'r' || c[0] === 'h') && c[3] === 'a') {\n const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || []\n if (typeof a !== 'string') {\n console.trace('invalid', c, type)\n throw new Error(`invalid style`)\n }\n props.shadowColor = `${type.replace('a', '')}(${_1},${_2},${_3})`\n props.shadowOpacity = +a\n } else {\n props.shadowOpacity = 1\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,gBACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,CAAC,MAAM,aAAa;AACtB;AAAA,EACF;AACA,MAAI,CAAC,MAAM,cAAc;AAEvB,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACA,MAAI,mBAAmB,OAAO;AAC5B;AAAA,EACF;AACA,QAAM,IAAI,GAAG,MAAM;AAGnB,MAAK,GAAE,OAAO,OAAO,EAAE,OAAO,QAAQ,EAAE,OAAO,KAAK;AAClD,UAAM,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,MAAM,aAAa,KAAK,CAAC;AAC5D,QAAI,OAAO,MAAM,UAAU;AACzB,cAAQ,MAAM,WAAW,GAAG,IAAI;AAChC,YAAM,IAAI,MAAM,eAAe;AAAA,IACjC;AACA,UAAM,cAAc,GAAG,KAAK,QAAQ,KAAK,EAAE,KAAK,MAAM,MAAM;AAC5D,UAAM,gBAAgB,CAAC;AAAA,EACzB,OAAO;AACL,UAAM,gBAAgB;AAAA,EACxB;AACF;AA5BgB;",
6
6
  "names": []
7
7
  }
@@ -34,4 +34,8 @@ function getExpandedShorthands(props) {
34
34
  return res;
35
35
  }
36
36
  __name(getExpandedShorthands, "getExpandedShorthands");
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ getExpandedShorthands
40
+ });
37
41
  //# sourceMappingURL=getExpandedShorthands.js.map
@@ -32,37 +32,31 @@ var __copyProps = (to, from, except, desc) => {
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
  var getSplitStyles_exports = {};
34
34
  __export(getSplitStyles_exports, {
35
- getSplitStyles: () => getSplitStyles
35
+ getSplitStyles: () => getSplitStyles,
36
+ getSubStyle: () => getSubStyle,
37
+ normalizeStyleObject: () => normalizeStyleObject
36
38
  });
37
39
  module.exports = __toCommonJS(getSplitStyles_exports);
38
40
  var import_helpers = require("@tamagui/helpers");
41
+ var import_conf = require("../conf");
39
42
  var import_platform = require("../constants/platform");
40
43
  var import_useMedia = require("../hooks/useMedia");
41
44
  var import_createMediaStyle = require("./createMediaStyle");
42
45
  var import_fixNativeShadow = require("./fixNativeShadow");
43
46
  var import_getStylesAtomic = require("./getStylesAtomic");
44
47
  var import_insertStyleRule = require("./insertStyleRule");
45
- const skipKeys = {
48
+ const skipProps = {
46
49
  animation: true,
47
- animated: true,
48
- children: true,
49
- key: true,
50
- ref: true
50
+ animateOnly: true,
51
+ debug: true
51
52
  };
52
- function normalizeStyleObject(style) {
53
- if (typeof style.flex === "number") {
54
- const val = style.flex;
55
- delete style.flex;
56
- style.flexGrow = style.flexGrow ?? val;
57
- style.flexShrink = style.flexShrink ?? 1;
58
- }
59
- if (!import_platform.isWeb) {
60
- (0, import_fixNativeShadow.fixNativeShadow)(style);
61
- }
62
- }
63
- __name(normalizeStyleObject, "normalizeStyleObject");
53
+ let conf;
64
54
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
65
- var _a, _b, _c;
55
+ var _a;
56
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
57
+ console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
58
+ }
59
+ conf = conf || (0, import_conf.getConfig)();
66
60
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
67
61
  const viewProps = {};
68
62
  const style = {};
@@ -77,14 +71,32 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
77
71
  if (val.startsWith("_transform-")) {
78
72
  const isMediaOrPseudo = key !== "transform";
79
73
  const isMedia = isMediaOrPseudo && key[11] === "_";
80
- const isPsuedo = isMediaOrPseudo && !isMedia;
74
+ const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
81
75
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
82
- if (!import_insertStyleRule.insertedTransforms[val]) {
76
+ let transform = import_insertStyleRule.insertedTransforms[val];
77
+ if (!transform) {
83
78
  (0, import_insertStyleRule.updateInserted)();
79
+ transform = import_insertStyleRule.insertedTransforms[val];
80
+ }
81
+ if (!transform) {
82
+ if (import_platform.isWeb && val[0] !== "_") {
83
+ transform = val;
84
+ } else {
85
+ console.log("?", key, val);
86
+ }
87
+ }
88
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
89
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms: import_insertStyleRule.insertedTransforms });
90
+ }
91
+ if (process.env.NODE_ENV === "development") {
92
+ if (!transform) {
93
+ console.log("NO TRANSFORM?", { key, val, transform });
94
+ }
84
95
  }
85
- const transform = import_insertStyleRule.insertedTransforms[val];
86
96
  transforms[namespace] = transforms[namespace] || ["", ""];
87
- transforms[namespace][0] += val.replace("_transform", "");
97
+ const identifier = val.replace("_transform", "");
98
+ console.warn("?bug2", key, val, transform, import_insertStyleRule.insertedTransforms[val]);
99
+ transforms[namespace][0] += identifier;
88
100
  transforms[namespace][1] += transform;
89
101
  } else {
90
102
  classNames[key] = val;
@@ -95,6 +107,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
95
107
  if (!cur)
96
108
  return;
97
109
  normalizeStyleObject(cur);
110
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
111
+ console.log(" \xBB getSplitStyles push", cur, state);
112
+ }
98
113
  if (import_platform.isWeb && !state.noClassNames) {
99
114
  const atomic = (0, import_getStylesAtomic.getStylesAtomic)(cur);
100
115
  for (const atomicStyle of atomic) {
@@ -105,7 +120,8 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
105
120
  style[atomicStyle.property] = atomicStyle.value;
106
121
  }
107
122
  }
108
- } else {
123
+ }
124
+ if (!import_platform.isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
109
125
  for (const key in cur) {
110
126
  if (key in import_helpers.stylePropsTransform) {
111
127
  (0, import_helpers.mergeTransform)(style, key, cur[key]);
@@ -118,11 +134,12 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
118
134
  }
119
135
  __name(push, "push");
120
136
  for (const keyInit in props) {
121
- const valInit = props[keyInit];
122
- if (skipKeys[keyInit]) {
123
- viewProps[keyInit] = valInit;
137
+ if (skipProps[keyInit]) {
124
138
  continue;
125
139
  }
140
+ const valInit = props[keyInit];
141
+ let isMedia = keyInit[0] === "$";
142
+ let isPseudo = import_helpers.validPseudoKeys[keyInit];
126
143
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
127
144
  push();
128
145
  mergeClassName(keyInit, valInit);
@@ -133,15 +150,20 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
133
150
  }
134
151
  continue;
135
152
  }
136
- let isMedia = keyInit[0] === "$";
137
- let isPseudo = import_helpers.validPseudoKeys[keyInit];
138
- const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, props, staticConfig, state.resolveVariablesAs);
153
+ if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
154
+ viewProps[keyInit] = valInit;
155
+ continue;
156
+ }
157
+ const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
139
158
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
159
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
160
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
161
+ }
140
162
  for (const [key, val] of expanded) {
141
163
  if (val === void 0) {
142
164
  continue;
143
165
  }
144
- if (val && val[0] === "_") {
166
+ if (key !== "target" && val && val[0] === "_") {
145
167
  mergeClassName(key, val);
146
168
  continue;
147
169
  }
@@ -157,12 +179,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
157
179
  continue;
158
180
  }
159
181
  pseudos[key] = pseudos[key] || {};
160
- pseudos[key] = getSubStyle(val, staticConfig, theme, props, state.resolveVariablesAs, true);
182
+ pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
161
183
  if (import_platform.isWeb && !state.noClassNames) {
162
184
  const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
163
- if ((_b = (_a = pseudoStyles[0]) == null ? void 0 : _a.identifier) == null ? void 0 : _b.includes("undefined")) {
164
- console.warn("undefined bug?", (_c = pseudoStyles[0]) == null ? void 0 : _c.identifier);
165
- }
166
185
  for (const style2 of pseudoStyles) {
167
186
  mergeClassName(`${style2.property}-${key}`, style2.identifier);
168
187
  (0, import_insertStyleRule.insertStyleRule)(style2.identifier, style2.rules[0]);
@@ -171,25 +190,31 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
171
190
  continue;
172
191
  }
173
192
  if (isMedia) {
174
- const mediaKey = key.slice(1);
175
- if (!import_useMedia.mediaQueryConfig[mediaKey]) {
176
- viewProps[key] = valInit;
193
+ const mediaKey = key;
194
+ const mediaKeyShort = mediaKey.slice(1);
195
+ if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
196
+ viewProps[key] = val;
177
197
  continue;
178
198
  }
179
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props, state.resolveVariablesAs, true);
180
- if (import_platform.isWeb) {
199
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
200
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
201
+ console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
202
+ }
203
+ const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
204
+ if (shouldDoClasses) {
181
205
  const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
182
206
  for (const style2 of mediaStyles) {
183
- const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKey, import_useMedia.mediaQueryConfig);
207
+ const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
184
208
  mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
185
209
  (0, import_insertStyleRule.insertStyleRule)(out2.identifier, out2.styleRule);
186
210
  }
187
- if (import_useMedia.mediaState[mediaKey]) {
188
- Object.assign(medias, mediaStyle);
189
- }
190
211
  } else {
191
212
  if (import_useMedia.mediaState[mediaKey]) {
192
- Object.assign(style, mediaStyle);
213
+ push();
214
+ if (process.env.NODE_ENV === "development" && props["debug"]) {
215
+ console.log("apply media style", mediaKey, import_useMedia.mediaState);
216
+ }
217
+ Object.assign(shouldDoClasses ? medias : style, mediaStyle);
193
218
  }
194
219
  }
195
220
  continue;
@@ -223,11 +248,15 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
223
248
  const identifier = `_transform${hash}`;
224
249
  if (!import_insertStyleRule.insertedTransforms[identifier]) {
225
250
  const rule = `.${identifier} { transform: ${val}; }`;
251
+ console.log("insert", rule);
226
252
  (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
227
253
  }
228
254
  classNames[namespace] = identifier;
229
255
  }
230
256
  }
257
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
258
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
259
+ }
231
260
  return {
232
261
  viewProps,
233
262
  style,
@@ -236,11 +265,11 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
236
265
  classNames
237
266
  };
238
267
  }, "getSplitStyles");
239
- const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, resolveVariablesAs, avoidDefaultProps) => {
268
+ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
240
269
  const styleOut = {};
241
270
  for (const key in styleIn) {
242
271
  const val = styleIn[key];
243
- const out = staticConfig.propMapper(key, val, theme, props, staticConfig, resolveVariablesAs, avoidDefaultProps);
272
+ const out = staticConfig.propMapper(key, val, theme, state.fallbackProps || props, state.resolveVariablesAs, avoidDefaultProps);
244
273
  const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
245
274
  for (const [skey, sval] of expanded) {
246
275
  if (skey in import_helpers.stylePropsTransform) {
@@ -253,4 +282,22 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
253
282
  normalizeStyleObject(styleOut);
254
283
  return styleOut;
255
284
  }, "getSubStyle");
285
+ function normalizeStyleObject(style) {
286
+ if (typeof style.flex === "number") {
287
+ const val = style.flex;
288
+ delete style.flex;
289
+ style.flexGrow = style.flexGrow ?? val;
290
+ style.flexShrink = style.flexShrink ?? 1;
291
+ }
292
+ if (!import_platform.isWeb) {
293
+ (0, import_fixNativeShadow.fixNativeShadow)(style);
294
+ }
295
+ }
296
+ __name(normalizeStyleObject, "normalizeStyleObject");
297
+ // Annotate the CommonJS export names for ESM import in node:
298
+ 0 && (module.exports = {
299
+ getSplitStyles,
300
+ getSubStyle,
301
+ normalizeStyleObject
302
+ });
256
303
  //# sourceMappingURL=getSplitStyles.js.map