@tamagui/core 1.0.0-beta.225 → 1.0.0-beta.4

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 (253) hide show
  1. package/dist/cjs/Tamagui.js +13 -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 +15 -0
  10. package/dist/cjs/constants/platform.js.map +2 -2
  11. package/dist/cjs/constants/rnw.js +4 -0
  12. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  13. package/dist/cjs/createComponent.js +112 -64
  14. package/dist/cjs/createComponent.js.map +2 -2
  15. package/dist/cjs/createFont.js +4 -0
  16. package/dist/cjs/createShorthands.js +4 -0
  17. package/dist/cjs/createTamagui.js +56 -27
  18. package/dist/cjs/createTamagui.js.map +2 -2
  19. package/dist/cjs/createTheme.js +4 -0
  20. package/dist/cjs/createTokens.js +7 -6
  21. package/dist/cjs/createTokens.js.map +2 -2
  22. package/dist/cjs/createVariable.js +18 -2
  23. package/dist/cjs/createVariable.js.map +2 -2
  24. package/dist/cjs/helpers/RNComponents.js +4 -0
  25. package/dist/cjs/helpers/addStylesUsingClassname.js +19 -16
  26. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  27. package/dist/cjs/helpers/areEqualSets.js +4 -0
  28. package/dist/cjs/helpers/createMediaStyle.js +5 -2
  29. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  30. package/dist/cjs/helpers/createPropMapper.js +44 -41
  31. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  32. package/dist/cjs/helpers/createShallowUpdate.js +4 -0
  33. package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
  34. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  35. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  36. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  37. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  38. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  39. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  40. package/dist/cjs/{constants/pseudos.js → helpers/getSize.js} +17 -19
  41. package/dist/cjs/helpers/getSize.js.map +7 -0
  42. package/dist/cjs/helpers/getSplitStyles.js +165 -62
  43. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  44. package/dist/cjs/helpers/getStylesAtomic.js +20 -3
  45. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  46. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  47. package/dist/cjs/helpers/insertStyleRule.js +41 -26
  48. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  49. package/dist/cjs/helpers/isObj.js +4 -0
  50. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  51. package/dist/cjs/helpers/matchMedia.js +4 -0
  52. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  53. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  54. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  55. package/dist/cjs/helpers/themeable.js +7 -2
  56. package/dist/cjs/helpers/themeable.js.map +2 -2
  57. package/dist/cjs/helpers/validate.js +53 -11
  58. package/dist/cjs/helpers/validate.js.map +2 -2
  59. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  60. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  61. package/dist/cjs/hooks/useConstant.js +4 -0
  62. package/dist/cjs/hooks/useFeatures.js +8 -5
  63. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  64. package/dist/cjs/hooks/useIsMounted.js +4 -0
  65. package/dist/cjs/hooks/useIsTouchDevice.js +8 -4
  66. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  67. package/dist/cjs/hooks/useMedia.js +30 -12
  68. package/dist/cjs/hooks/useMedia.js.map +2 -2
  69. package/dist/cjs/hooks/usePressable.js +4 -0
  70. package/dist/cjs/hooks/useTheme.js +30 -16
  71. package/dist/cjs/hooks/useTheme.js.map +2 -2
  72. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  73. package/dist/cjs/index.js +15 -0
  74. package/dist/cjs/index.js.map +2 -2
  75. package/dist/cjs/static.js +3 -0
  76. package/dist/cjs/static.js.map +2 -2
  77. package/dist/cjs/styled.js +7 -4
  78. package/dist/cjs/styled.js.map +2 -2
  79. package/dist/cjs/types.js.map +1 -1
  80. package/dist/cjs/views/Stack.js +4 -0
  81. package/dist/cjs/views/Text.js +4 -0
  82. package/dist/cjs/views/TextAncestorContext.js +6 -0
  83. package/dist/cjs/views/Theme.js +7 -3
  84. package/dist/cjs/views/Theme.js.map +2 -2
  85. package/dist/cjs/views/ThemeInverse.js +5 -0
  86. package/dist/cjs/views/ThemeProvider.js +6 -1
  87. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  88. package/dist/cjs/views/ThemeReset.js +4 -0
  89. package/dist/esm/Tamagui.js +8 -2
  90. package/dist/esm/Tamagui.js.map +2 -2
  91. package/dist/esm/ThemeManager.js +21 -11
  92. package/dist/esm/ThemeManager.js.map +2 -2
  93. package/dist/esm/conf.js +0 -1
  94. package/dist/esm/conf.js.map +2 -2
  95. package/dist/esm/constants/platform.js +2 -0
  96. package/dist/esm/constants/platform.js.map +2 -2
  97. package/dist/esm/createComponent.js +104 -66
  98. package/dist/esm/createComponent.js.map +2 -2
  99. package/dist/esm/createTamagui.js +53 -28
  100. package/dist/esm/createTamagui.js.map +2 -2
  101. package/dist/esm/createTokens.js +2 -6
  102. package/dist/esm/createTokens.js.map +2 -2
  103. package/dist/esm/createVariable.js +8 -2
  104. package/dist/esm/createVariable.js.map +2 -2
  105. package/dist/esm/helpers/addStylesUsingClassname.js +16 -18
  106. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  107. package/dist/esm/helpers/createMediaStyle.js +0 -2
  108. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  109. package/dist/esm/helpers/createPropMapper.js +40 -41
  110. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  111. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  112. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  113. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  114. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  115. package/dist/esm/helpers/getSize.js +13 -0
  116. package/dist/esm/helpers/getSize.js.map +7 -0
  117. package/dist/esm/helpers/getSplitStyles.js +165 -65
  118. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  119. package/dist/esm/helpers/getStylesAtomic.js +15 -3
  120. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  121. package/dist/esm/helpers/insertStyleRule.js +31 -26
  122. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  123. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  124. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  125. package/dist/esm/helpers/themeable.js +3 -2
  126. package/dist/esm/helpers/themeable.js.map +2 -2
  127. package/dist/esm/helpers/validate.js +24 -11
  128. package/dist/esm/helpers/validate.js.map +2 -2
  129. package/dist/esm/hooks/useFeatures.js +3 -5
  130. package/dist/esm/hooks/useFeatures.js.map +2 -2
  131. package/dist/esm/hooks/useIsTouchDevice.js +6 -6
  132. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  133. package/dist/esm/hooks/useMedia.js +19 -12
  134. package/dist/esm/hooks/useMedia.js.map +2 -2
  135. package/dist/esm/hooks/useTheme.js +22 -16
  136. package/dist/esm/hooks/useTheme.js.map +2 -2
  137. package/dist/esm/index.js +4 -0
  138. package/dist/esm/index.js.map +2 -2
  139. package/dist/esm/static.js +3 -0
  140. package/dist/esm/static.js.map +2 -2
  141. package/dist/esm/styled.js +3 -4
  142. package/dist/esm/styled.js.map +2 -2
  143. package/dist/esm/views/Theme.js +3 -3
  144. package/dist/esm/views/Theme.js.map +2 -2
  145. package/dist/esm/views/ThemeProvider.js +2 -1
  146. package/dist/esm/views/ThemeProvider.js.map +2 -2
  147. package/dist/jsx/Tamagui.js +8 -2
  148. package/dist/jsx/ThemeManager.js +21 -11
  149. package/dist/jsx/conf.js +0 -1
  150. package/dist/jsx/constants/platform.js +2 -0
  151. package/dist/jsx/createComponent.js +100 -62
  152. package/dist/jsx/createTamagui.js +53 -28
  153. package/dist/jsx/createTokens.js +2 -6
  154. package/dist/jsx/createVariable.js +8 -2
  155. package/dist/jsx/helpers/addStylesUsingClassname.js +16 -18
  156. package/dist/jsx/helpers/createMediaStyle.js +0 -2
  157. package/dist/jsx/helpers/createPropMapper.js +40 -41
  158. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  159. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  160. package/dist/jsx/helpers/getSize.js +12 -0
  161. package/dist/jsx/helpers/getSplitStyles.js +165 -65
  162. package/dist/jsx/helpers/getStylesAtomic.js +15 -3
  163. package/dist/jsx/helpers/insertStyleRule.js +31 -26
  164. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  165. package/dist/jsx/helpers/themeable.js +3 -3
  166. package/dist/jsx/helpers/validate.js +24 -11
  167. package/dist/jsx/hooks/useFeatures.js +3 -5
  168. package/dist/jsx/hooks/useIsTouchDevice.js +6 -6
  169. package/dist/jsx/hooks/useMedia.js +19 -12
  170. package/dist/jsx/hooks/useTheme.js +22 -16
  171. package/dist/jsx/index.js +4 -0
  172. package/dist/jsx/static.js +3 -0
  173. package/dist/jsx/styled.js +3 -4
  174. package/dist/jsx/views/Theme.js +4 -4
  175. package/dist/jsx/views/ThemeProvider.js +2 -2
  176. package/package.json +6 -6
  177. package/types/Tamagui.d.ts +16 -1
  178. package/types/Tamagui.d.ts.map +1 -1
  179. package/types/ThemeManager.d.ts +3 -3
  180. package/types/ThemeManager.d.ts.map +1 -1
  181. package/types/conf.d.ts +2 -0
  182. package/types/conf.d.ts.map +1 -1
  183. package/types/constants/platform.d.ts +1 -0
  184. package/types/constants/platform.d.ts.map +1 -1
  185. package/types/createComponent.d.ts +3 -4
  186. package/types/createComponent.d.ts.map +1 -1
  187. package/types/createTamagui.d.ts +3 -1
  188. package/types/createTamagui.d.ts.map +1 -1
  189. package/types/createTokens.d.ts +0 -26
  190. package/types/createTokens.d.ts.map +1 -1
  191. package/types/createVariable.d.ts +1 -0
  192. package/types/createVariable.d.ts.map +1 -1
  193. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  194. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  195. package/types/helpers/createPropMapper.d.ts +1 -1
  196. package/types/helpers/createPropMapper.d.ts.map +1 -1
  197. package/types/helpers/extendStaticConfig.d.ts +2 -2
  198. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  199. package/types/helpers/getSize.d.ts +3 -0
  200. package/types/helpers/getSize.d.ts.map +1 -0
  201. package/types/helpers/getSplitStyles.d.ts +14 -6
  202. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  203. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  204. package/types/helpers/insertStyleRule.d.ts +2 -1
  205. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  206. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  207. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  208. package/types/helpers/themeable.d.ts +3 -1
  209. package/types/helpers/themeable.d.ts.map +1 -1
  210. package/types/helpers/validate.d.ts.map +1 -1
  211. package/types/hooks/useMedia.d.ts +2 -6
  212. package/types/hooks/useMedia.d.ts.map +1 -1
  213. package/types/hooks/useTheme.d.ts +1 -1
  214. package/types/hooks/useTheme.d.ts.map +1 -1
  215. package/types/index.d.ts +2 -0
  216. package/types/index.d.ts.map +1 -1
  217. package/types/static.d.ts +3 -0
  218. package/types/static.d.ts.map +1 -1
  219. package/types/styled.d.ts +12 -3
  220. package/types/styled.d.ts.map +1 -1
  221. package/types/types.d.ts +67 -42
  222. package/types/types.d.ts.map +1 -1
  223. package/types/views/Theme.d.ts +1 -0
  224. package/types/views/Theme.d.ts.map +1 -1
  225. package/types/views/ThemeProvider.d.ts +1 -0
  226. package/types/views/ThemeProvider.d.ts.map +1 -1
  227. package/LICENSE +0 -21
  228. package/dist/cjs/constants/pseudos.js.map +0 -7
  229. package/dist/cjs/createShallowUpdate.js +0 -1
  230. package/dist/cjs/createShallowUpdate.js.map +0 -7
  231. package/dist/cjs/devtools.js +0 -32
  232. package/dist/cjs/devtools.js.map +0 -7
  233. package/dist/cjs/spacedChildren.js +0 -86
  234. package/dist/cjs/spacedChildren.js.map +0 -7
  235. package/dist/cjs/tamagui-base.css +0 -8
  236. package/dist/cjs/tamagui-base.css.map +0 -7
  237. package/dist/esm/constants/pseudos.js +0 -18
  238. package/dist/esm/constants/pseudos.js.map +0 -7
  239. package/dist/esm/createShallowUpdate.js +0 -1
  240. package/dist/esm/createShallowUpdate.js.map +0 -7
  241. package/dist/esm/devtools.js +0 -14
  242. package/dist/esm/devtools.js.map +0 -7
  243. package/dist/esm/spacedChildren.js +0 -52
  244. package/dist/esm/spacedChildren.js.map +0 -7
  245. package/dist/esm/tamagui-base.css +0 -8
  246. package/dist/esm/tamagui-base.css.map +0 -7
  247. package/dist/jsx/constants/pseudos.js +0 -17
  248. package/dist/jsx/createShallowUpdate.js +0 -0
  249. package/dist/jsx/devtools.js +0 -13
  250. package/dist/jsx/spacedChildren.js +0 -44
  251. package/dist/jsx/tamagui-base.css +0 -7
  252. package/types/spacedChildren.d.ts +0 -9
  253. package/types/spacedChildren.d.ts.map +0 -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' | 'both'\n\nexport const createPropMapper = (staticConfig: StaticConfig) => {\n const variants = staticConfig.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 = 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 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 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 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 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 ${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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",
4
+ "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport { StaticConfig, TamaguiInternalConfig, VariantSpreadFunction } 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 const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, {\n fonts: conf.fontsParsed,\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, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed)\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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAC1B,sBAAsB;AACtB,4BAAqC;AAErC,mBAAsB;AAKtB,4BAA4B,SAAc,KAAa,OAAY;AACjE,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO;AAAA,EACT;AACA,aAAW,OAAO,iBAAiB;AACjC,QAAI,OAAO,gBAAgB,MAAM;AAC/B,YAAM,gBAAgB,QAAQ,MAAM;AACpC,UAAI,eAAe;AACjB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,SAAK,QAAQ;AAAA,EACf,WAAW,OAAO,UAAU,UAAU;AACpC,SAAK,QAAQ;AAAA,EACf,WAAW,UAAU,QAAQ,UAAU,OAAO;AAC5C,SAAK,QAAQ;AAAA,EACf;AACA,OAAK,MAAM,QAAQ;AAEnB,SAAO,MAAM,QAAQ,UAAU,QAAQ;AACzC;AAvBS;AAyBF,MAAM,mBAAmB,wBAAC,iBAAwC;AACvE,QAAM,WAAW,aAAa,YAAY,CAAC;AAC3C,QAAM,eAAe,aAAa,gBAAgB,CAAC;AAEnD,SAAO,CACL,KACA,OACA,OACA,OACA,oBAA0C,CAAC,CAAC,MAAM,YAAY,UAAU,QACxE,oBAAoB,UACjB;AACH,UAAM,OAAO,2BAAU;AACvB,QAAI,CAAC,MAAM;AACT,cAAQ,MAAM,cAAc;AAC5B;AAAA,IACF;AAGA,UAAM,aAAa,MAAM,cAAc,aAAa,cAAc;AAClE,UAAM,UAAU,YAAY,SAAS;AAErC,QAAI,WAAW,UAAU,QAAW;AAClC,UAAI,eAAe,mBAAmB,SAAS,KAAK,KAAK;AAEzD,UAAI,cAAc;AAChB,YAAI,OAAO,iBAAiB,YAAY;AACtC,gBAAM,KAAK;AACX,yBAAe,GAAG,OAAO;AAAA,YACvB,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK;AAAA,YACb;AAAA,YAGA,OAAO,oBACH,QACA,IAAI,MAAM,OAAO;AAAA,cACf,IAAI,QAAQ,MAAK;AACf,oBAAI,QAAQ,IAAI,QAAQ,IAAG,GAAG;AAC5B,yBAAO,QAAQ,IAAI,QAAQ,IAAG;AAAA,gBAChC;AAGA,oBAAI,cAAc;AAChB,yBAAO,QAAQ,IAAI,cAAc,IAAG;AAAA,gBACtC;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACP,CAAC;AAAA,QACH;AAEA,YAAI,wBAAM,YAAY,GAAG;AACvB,yBAAe,cAAc,cAAc,MAAM,OAAO,YAAY,iBAAiB;AAAA,QACvF;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,eAAe;AAGnB,QAAI,KAAK,WAAW,MAAM;AACxB,qBAAe;AACf,YAAM,KAAK,WAAW;AAAA,IACxB;AAEA,QAAI,OAAO;AACT,qBAAe;AACf,UAAI,MAAM,OAAO,KAAK;AACpB,gBAAQ,SAAS,KAAK,OAAO,MAAM,OAAO,YAAY,iBAAiB;AAAA,MACzE,WAAW,sCAAW,KAAK,GAAG;AAC5B,gBAAQ,iBAAiB,OAAO,iBAAiB;AAAA,MACnD;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,aAAO;AAAA,SACJ,MAAM;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,GAlFgC;AAoFhC,MAAM,gBAAgB,wBACpB,OACA,MACA,OACA,YACA,cACG;AA5HL;AA6HE,MAAI,MAAM,CAAC;AACX,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,KAAK,WAAW,SAAS;AACtC,UAAM,MAAM,MAAM;AAClB,QAAI,sCAAW,GAAG,GAAG;AACnB,UAAI,QACF,cAAc,aAAa,MAAM,CAAC,yBAAS,cAAc,UAAU,IAAI,MAAM,IAAI;AAAA,IACrF,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,OAAO,IAAI,OAAO,MAAM,SAAS,MAAM,KAAK,MAAM,OAAO,YAAY,SAAS,IAAI;AACxF,UAAI,QAAQ;AAAA,IACd,OAAO;AACL,UAAI,wBAAM,GAAG,GAAG;AAEd,YAAI,QAAQ,cAAc,KAAK,MAAM,OAAO,YAAY,SAAS;AAAA,MACnE,OAAO;AAEL,YAAI,QAAQ,MAAM;AAAA,MACpB;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,WAAI,UAAJ,mBAAY,QAAO,KAAK;AAC1B,gBAAQ,KAAK,uCAA6B,MAAM,SAAS,MAAM,IAAI,KAAK;AAAA,MAC1E;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT,GAjCsB;AAmCtB,MAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,YAAY;AACd;AAEA,MAAM,WAAW,wBACf,KACA,OACA,EAAE,cAAc,eAChB,OACA,aAAiC,SACjC,cACG;AArKL;AAsKE,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,SAAS,OAAO;AAClB,eAAW,MAAM;AACjB,aAAS;AAAA,EACX,OAAO;AACL,YAAQ;AAAA,WACD;AACH,mBAAW,mBAAY,WAAZ,mBAAoB,WAAU;AACzC,iBAAS;AACT;AAAA,WACG;AAAA,WACA;AAAA,WACA;AAAA,WACA;AACH,mBAAW,yBAAY,gBAAZ,mBAA0B,cAAc,QAAQ,SAAhD,mBAAuD,WAAU;AAC5E,iBAAS;AACT;AAAA;AAEJ,eAAW,OAAO,iBAAiB;AACjC,UAAI,OAAO,gBAAgB,MAAM;AAC/B,cAAM,MAAM,aAAa,KAAK;AAC9B,YAAI,KAAK;AACP,qBAAW;AACX,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,WAAW,aAAa,MAAM;AACpC,UAAI,UAAU;AACZ,mBAAW;AACX,iBAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACA,MAAI,QAAQ;AACV,WAAO,iBAAiB,UAAU,SAAS;AAAA,EAC7C;AACA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,SAAS,MAAM,OAAO,KAAK;AAC7B,cAAQ,KAAK,+BAAqB,KAAK,OAAO,YAAY,OAAO,WAAW;AAC5E,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT,GAtDiB;AAwDjB,0BAA0B,UAA0B,YAAkC,QAAQ;AAC5F,MAAI,sCAAW,QAAQ,GAAG;AACxB,QAAI,cAAc,YAAY;AAC5B,aAAO;AAAA,IACT;AACA,QAAI,CAAC,yBAAS,cAAc,SAAS;AACnC,aAAO,SAAS;AAAA,IAClB;AACA,WAAO,SAAS;AAAA,EAClB;AACA,SAAO;AACT;AAXS;AAcT,MAAM,kBAAkB;AAAA,EACtB,QAAQ;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AACF;",
6
6
  "names": []
7
7
  }
@@ -48,4 +48,8 @@ function createShallowUpdate(setter) {
48
48
  };
49
49
  }
50
50
  __name(createShallowUpdate, "createShallowUpdate");
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ createShallowUpdate
54
+ });
51
55
  //# sourceMappingURL=createShallowUpdate.js.map
@@ -86,4 +86,8 @@ function createTamaguiProvider(_a) {
86
86
  }, "TamaguiProvider");
87
87
  }
88
88
  __name(createTamaguiProvider, "createTamaguiProvider");
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ createTamaguiProvider
92
+ });
89
93
  //# sourceMappingURL=createTamaguiProvider.js.map
@@ -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,8 @@ 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
+ defaultVariants: __spreadValues(__spreadValues({}, parent.staticConfig.defaultVariants), config.defaultVariants),
67
+ defaultProps: __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), parent.staticConfig.defaultVariants), config.defaultProps), config.defaultVariants)
70
68
  }));
71
69
  }
72
70
  __name(extendStaticConfig, "extendStaticConfig");
@@ -76,4 +74,9 @@ const parseStaticConfig = /* @__PURE__ */ __name((config) => {
76
74
  propMapper: (0, import_createPropMapper.createPropMapper)(config)
77
75
  });
78
76
  }, "parseStaticConfig");
77
+ // Annotate the CommonJS export names for ESM import in node:
78
+ 0 && (module.exports = {
79
+ extendStaticConfig,
80
+ parseStaticConfig
81
+ });
79
82
  //# 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 defaultVariants: {\n ...parent.staticConfig.defaultVariants,\n ...config.defaultVariants,\n },\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,iBAAiB,kCACZ,OAAO,aAAa,kBACpB,OAAO;AAAA,IAEZ,cAAc,gEACT,OAAO,aAAa,eACpB,OAAO,aAAa,kBACpB,OAAO,eACP,OAAO;AAAA,EAEd,EAAC;AACH;AAjDgB;AAmDT,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
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
6
  var __export = (target, all) => {
6
7
  for (var name in all)
7
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -15,23 +16,20 @@ var __copyProps = (to, from, except, desc) => {
15
16
  return to;
16
17
  };
17
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var pseudos_exports = {};
19
- __export(pseudos_exports, {
20
- pseudos: () => pseudos
19
+ var getSize_exports = {};
20
+ __export(getSize_exports, {
21
+ getSize: () => getSize
21
22
  });
22
- module.exports = __toCommonJS(pseudos_exports);
23
- const pseudos = {
24
- focusStyle: {
25
- name: "focus",
26
- priority: 3
27
- },
28
- pressStyle: {
29
- name: "active",
30
- priority: 2
31
- },
32
- hoverStyle: {
33
- name: "hover",
34
- priority: 1
35
- }
36
- };
37
- //# sourceMappingURL=pseudos.js.map
23
+ module.exports = __toCommonJS(getSize_exports);
24
+ var import_conf = require("../conf");
25
+ const getSize = /* @__PURE__ */ __name((size, sizeUpOrDownBy = 0) => {
26
+ const sizes = (0, import_conf.getTokens)().size;
27
+ const sizeNames = Object.keys(sizes);
28
+ const key = sizeNames[Math.max(0, sizeNames.indexOf(String(size || "$4")) + sizeUpOrDownBy)];
29
+ return sizes[key] || sizes["$4"];
30
+ }, "getSize");
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ getSize
34
+ });
35
+ //# sourceMappingURL=getSize.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/getSize.ts"],
4
+ "sourcesContent": ["import { getTokens } from '../conf'\nimport { SizeTokens } from '../types'\n\nexport const getSize = (size?: SizeTokens | undefined, sizeUpOrDownBy = 0) => {\n const sizes = getTokens().size as any as SizeTokens\n const sizeNames = Object.keys(sizes)\n const key = sizeNames[Math.max(0, sizeNames.indexOf(String(size || '$4')) + sizeUpOrDownBy)]\n return (sizes[key] || sizes['$4']) as SizeTokens\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAGnB,MAAM,UAAU,wBAAC,MAA+B,iBAAiB,MAAM;AAC5E,QAAM,QAAQ,2BAAU,EAAE;AAC1B,QAAM,YAAY,OAAO,KAAK,KAAK;AACnC,QAAM,MAAM,UAAU,KAAK,IAAI,GAAG,UAAU,QAAQ,OAAO,QAAQ,IAAI,CAAC,IAAI,cAAc;AAC1F,SAAQ,MAAM,QAAQ,MAAM;AAC9B,GALuB;",
6
+ "names": []
7
+ }
@@ -33,63 +33,84 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
33
33
  var getSplitStyles_exports = {};
34
34
  __export(getSplitStyles_exports, {
35
35
  getSplitStyles: () => getSplitStyles,
36
- getSubStyle: () => getSubStyle
36
+ getSubStyle: () => getSubStyle,
37
+ insertSplitStyles: () => insertSplitStyles,
38
+ normalizeStyleObject: () => normalizeStyleObject,
39
+ useSplitStyles: () => useSplitStyles
37
40
  });
38
41
  module.exports = __toCommonJS(getSplitStyles_exports);
39
42
  var import_helpers = require("@tamagui/helpers");
43
+ var import_react = require("react");
44
+ var import_conf = require("../conf");
40
45
  var import_platform = require("../constants/platform");
41
46
  var import_useMedia = require("../hooks/useMedia");
42
47
  var import_createMediaStyle = require("./createMediaStyle");
43
48
  var import_fixNativeShadow = require("./fixNativeShadow");
44
49
  var import_getStylesAtomic = require("./getStylesAtomic");
45
50
  var import_insertStyleRule = require("./insertStyleRule");
46
- const skipKeys = {
51
+ const skipProps = {
47
52
  animation: true,
48
- animated: true,
49
- children: true,
50
- key: true,
51
- ref: true
53
+ animateOnly: true,
54
+ debug: true
52
55
  };
53
- function normalizeStyleObject(style) {
54
- if (typeof style.flex === "number") {
55
- const val = style.flex;
56
- delete style.flex;
57
- style.flexGrow = style.flexGrow ?? val;
58
- style.flexShrink = style.flexShrink ?? 1;
59
- }
60
- if (!import_platform.isWeb) {
61
- (0, import_fixNativeShadow.fixNativeShadow)(style);
62
- }
63
- }
64
- __name(normalizeStyleObject, "normalizeStyleObject");
56
+ let conf;
65
57
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
58
+ var _a;
59
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
60
+ console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
61
+ }
62
+ conf = conf || (0, import_conf.getConfig)();
66
63
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
67
64
  const viewProps = {};
68
65
  const style = {};
69
66
  const classNames = __spreadValues({}, defaultClassNames);
70
67
  const pseudos = {};
71
68
  const medias = {};
69
+ const rulesToInsert = [];
70
+ function addStyle(prop, rule) {
71
+ rulesToInsert.push([prop, rule]);
72
+ (0, import_insertStyleRule.updateInsertedCache)(prop, rule);
73
+ }
74
+ __name(addStyle, "addStyle");
72
75
  let cur = null;
73
76
  let transforms = {};
74
77
  function mergeClassName(key, val) {
75
- if (!val)
78
+ if (!val) {
76
79
  return;
80
+ }
77
81
  if (val.startsWith("_transform-")) {
78
82
  const isMediaOrPseudo = key !== "transform";
79
83
  const isMedia = isMediaOrPseudo && key[11] === "_";
80
- const isPsuedo = isMediaOrPseudo && key[11] === "0";
84
+ const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
81
85
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
82
- if (!import_insertStyleRule.insertedTransforms[val]) {
83
- (0, import_insertStyleRule.updateInserted)();
84
- }
85
- const transform = import_insertStyleRule.insertedTransforms[val];
86
- if (!transform || transform === "undefined") {
87
- console.trace("NO TRANSFORM", { key, val }, state);
88
- return;
86
+ let transform = import_insertStyleRule.insertedTransforms[val];
87
+ if (import_platform.isClient) {
88
+ if (!transform) {
89
+ (0, import_insertStyleRule.updateInserted)();
90
+ transform = import_insertStyleRule.insertedTransforms[val];
91
+ }
92
+ if (!transform) {
93
+ if (import_platform.isWeb && val[0] !== "_") {
94
+ transform = val;
95
+ } else {
96
+ console.trace("?", key, val, cur, props, state);
97
+ }
98
+ }
99
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
100
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms: import_insertStyleRule.insertedTransforms });
101
+ }
102
+ if (process.env.NODE_ENV === "development") {
103
+ if (!transform) {
104
+ console.trace("NO TRANSFORM?", { key, val, transform });
105
+ }
106
+ }
89
107
  }
90
108
  transforms[namespace] = transforms[namespace] || ["", ""];
91
- transforms[namespace][0] += val.replace("_transform", "");
92
- transforms[namespace][1] += transform;
109
+ const identifier = val.replace("_transform", "");
110
+ transforms[namespace][0] += identifier;
111
+ if (transform) {
112
+ transforms[namespace][1] += transform;
113
+ }
93
114
  } else {
94
115
  classNames[key] = val;
95
116
  }
@@ -99,12 +120,15 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
99
120
  if (!cur)
100
121
  return;
101
122
  normalizeStyleObject(cur);
123
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
124
+ console.log(" \xBB getSplitStyles push", cur, state);
125
+ }
102
126
  if (import_platform.isWeb && !state.noClassNames) {
103
127
  const atomic = (0, import_getStylesAtomic.getStylesAtomic)(cur);
104
128
  for (const atomicStyle of atomic) {
105
129
  if (!state.noClassNames) {
130
+ addStyle(atomicStyle.identifier, atomicStyle.rules[0]);
106
131
  mergeClassName(atomicStyle.property, atomicStyle.identifier);
107
- (0, import_insertStyleRule.insertStyleRule)(atomicStyle.identifier, atomicStyle.rules[0]);
108
132
  } else {
109
133
  style[atomicStyle.property] = atomicStyle.value;
110
134
  }
@@ -119,34 +143,38 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
119
143
  }
120
144
  }
121
145
  }
122
- if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
123
- console.log("getSplitStyles.push", { state, cur });
124
- }
125
146
  cur = null;
126
147
  }
127
148
  __name(push, "push");
128
149
  for (const keyInit in props) {
150
+ if (skipProps[keyInit]) {
151
+ continue;
152
+ }
129
153
  const valInit = props[keyInit];
130
- if (skipKeys[keyInit]) {
131
- viewProps[keyInit] = valInit;
154
+ if (keyInit === "style" || keyInit.startsWith("_style")) {
155
+ push();
156
+ cur = valInit;
157
+ push();
132
158
  continue;
133
159
  }
134
160
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
135
161
  push();
136
162
  mergeClassName(keyInit, valInit);
137
- if (cur) {
138
- if (cur[keyInit])
139
- console.warn("just want to see how used");
140
- delete cur[keyInit];
141
- }
142
163
  continue;
143
164
  }
165
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
166
+ viewProps[keyInit] = valInit;
167
+ }
144
168
  let isMedia = keyInit[0] === "$";
145
169
  let isPseudo = import_helpers.validPseudoKeys[keyInit];
170
+ if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
171
+ viewProps[keyInit] = valInit;
172
+ continue;
173
+ }
146
174
  const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
147
175
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
148
176
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
149
- console.log("split style", keyInit, expanded);
177
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
150
178
  }
151
179
  for (const [key, val] of expanded) {
152
180
  if (val === void 0) {
@@ -172,41 +200,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
172
200
  if (import_platform.isWeb && !state.noClassNames) {
173
201
  const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
174
202
  for (const style2 of pseudoStyles) {
203
+ addStyle(style2.identifier, style2.rules[0]);
175
204
  mergeClassName(`${style2.property}-${key}`, style2.identifier);
176
- (0, import_insertStyleRule.insertStyleRule)(style2.identifier, style2.rules[0]);
177
205
  }
178
206
  }
179
207
  continue;
180
208
  }
181
209
  if (isMedia) {
182
- const mediaKey = key.slice(1);
183
- if (!import_useMedia.mediaQueryConfig[mediaKey]) {
210
+ const mediaKey = key;
211
+ const mediaKeyShort = mediaKey.slice(1);
212
+ if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
184
213
  viewProps[key] = val;
185
214
  continue;
186
215
  }
187
- const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, true);
188
- if (import_platform.isWeb) {
216
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
217
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
218
+ console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
219
+ }
220
+ const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
221
+ if (shouldDoClasses) {
189
222
  const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
190
223
  for (const style2 of mediaStyles) {
191
- const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKey, import_useMedia.mediaQueryConfig);
224
+ const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
225
+ addStyle(out2.identifier, out2.styleRule);
192
226
  mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
193
- (0, import_insertStyleRule.insertStyleRule)(out2.identifier, out2.styleRule);
194
- }
195
- if (import_useMedia.mediaState[mediaKey]) {
196
- Object.assign(medias, mediaStyle);
197
227
  }
198
228
  } else {
199
229
  if (import_useMedia.mediaState[mediaKey]) {
200
- Object.assign(style, mediaStyle);
230
+ push();
231
+ if (process.env.NODE_ENV === "development" && props["debug"]) {
232
+ console.log("apply media style", mediaKey, import_useMedia.mediaState);
233
+ }
234
+ Object.assign(shouldDoClasses ? medias : style, mediaStyle);
201
235
  }
202
236
  }
203
237
  continue;
204
238
  }
205
- if (key === "style" || key.startsWith("_style")) {
206
- push();
207
- Object.assign(style, val);
208
- continue;
209
- }
210
239
  if (!import_platform.isWeb && key === "pointerEvents") {
211
240
  viewProps[key] = val;
212
241
  continue;
@@ -229,24 +258,44 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
229
258
  for (const namespace in transforms) {
230
259
  const [hash, val] = transforms[namespace];
231
260
  const identifier = `_transform${hash}`;
232
- if (!import_insertStyleRule.insertedTransforms[identifier]) {
233
- const rule = `.${identifier} { transform: ${val}; }`;
234
- (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
261
+ if (import_platform.isClient) {
262
+ if (!import_insertStyleRule.insertedTransforms[identifier]) {
263
+ const rule = `.${identifier} { transform: ${val}; }`;
264
+ addStyle(identifier, rule);
265
+ }
235
266
  }
236
267
  classNames[namespace] = identifier;
237
268
  }
238
269
  }
239
270
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
240
- console.log("out", { style, pseudos, medias, classNames, viewProps });
271
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
241
272
  }
242
273
  return {
243
274
  viewProps,
244
275
  style,
245
276
  medias,
246
277
  pseudos,
247
- classNames
278
+ classNames,
279
+ rulesToInsert
248
280
  };
249
281
  }, "getSplitStyles");
282
+ const insertSplitStyles = /* @__PURE__ */ __name((...args) => {
283
+ const res = getSplitStyles(...args);
284
+ for (const [prop, rule] of res.rulesToInsert) {
285
+ (0, import_insertStyleRule.insertStyleRule)(prop, rule);
286
+ }
287
+ return res;
288
+ }, "insertSplitStyles");
289
+ const effect = import_react.useInsertionEffect || import_platform.useIsomorphicLayoutEffect;
290
+ const useSplitStyles = /* @__PURE__ */ __name((...args) => {
291
+ const res = getSplitStyles(...args);
292
+ effect(() => {
293
+ for (const [prop, rule] of res.rulesToInsert) {
294
+ (0, import_insertStyleRule.insertStyleRule)(prop, rule);
295
+ }
296
+ });
297
+ return res;
298
+ }, "useSplitStyles");
250
299
  const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
251
300
  const styleOut = {};
252
301
  for (const key in styleIn) {
@@ -264,4 +313,58 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
264
313
  normalizeStyleObject(styleOut);
265
314
  return styleOut;
266
315
  }, "getSubStyle");
316
+ function normalizeStyleObject(style) {
317
+ if (style.padding) {
318
+ style.paddingLeft = style.padding;
319
+ style.paddingTop = style.padding;
320
+ style.paddingRight = style.padding;
321
+ style.paddingBottom = style.padding;
322
+ delete style.padding;
323
+ }
324
+ if (style.paddingHorizontal) {
325
+ style.paddingLeft = style.paddingHorizontal;
326
+ style.paddingRight = style.paddingHorizontal;
327
+ delete style.paddingHorizontal;
328
+ }
329
+ if (style.paddingVertical) {
330
+ style.paddingLeft = style.paddingVertical;
331
+ style.paddingRight = style.paddingVertical;
332
+ delete style.paddingVertical;
333
+ }
334
+ if (style.margin) {
335
+ style.marginLeft = style.margin;
336
+ style.marginTop = style.margin;
337
+ style.marginRight = style.margin;
338
+ style.marginBottom = style.margin;
339
+ delete style.margin;
340
+ }
341
+ if (style.marginHorizontal) {
342
+ style.marginLeft = style.marginHorizontal;
343
+ style.marginRight = style.marginHorizontal;
344
+ delete style.marginHorizontal;
345
+ }
346
+ if (style.marginVertical) {
347
+ style.marginLeft = style.marginVertical;
348
+ style.marginRight = style.marginVertical;
349
+ delete style.marginVertical;
350
+ }
351
+ if (typeof style.flex === "number") {
352
+ const val = style.flex;
353
+ delete style.flex;
354
+ style.flexGrow = style.flexGrow ?? val;
355
+ style.flexShrink = style.flexShrink ?? 1;
356
+ }
357
+ if (!import_platform.isWeb) {
358
+ (0, import_fixNativeShadow.fixNativeShadow)(style);
359
+ }
360
+ }
361
+ __name(normalizeStyleObject, "normalizeStyleObject");
362
+ // Annotate the CommonJS export names for ESM import in node:
363
+ 0 && (module.exports = {
364
+ getSplitStyles,
365
+ getSubStyle,
366
+ insertSplitStyles,
367
+ normalizeStyleObject,
368
+ useSplitStyles
369
+ });
267
370
  //# sourceMappingURL=getSplitStyles.js.map