@tamagui/core 1.0.0-beta.230 → 1.0.0-beta.3

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 (263) 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 +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 -63
  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/RNComponents.js.map +0 -0
  26. package/dist/cjs/helpers/addStylesUsingClassname.js +19 -16
  27. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  28. package/dist/cjs/helpers/areEqualSets.js +4 -0
  29. package/dist/cjs/helpers/createMediaStyle.js +5 -2
  30. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  31. package/dist/cjs/helpers/createPropMapper.js +44 -41
  32. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  33. package/dist/cjs/helpers/createShallowUpdate.js +4 -0
  34. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  35. package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
  36. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  37. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  38. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  39. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  40. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  41. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  42. package/dist/cjs/{constants/pseudos.js → helpers/getSize.js} +17 -19
  43. package/dist/cjs/helpers/getSize.js.map +7 -0
  44. package/dist/cjs/helpers/getSplitStyles.js +166 -60
  45. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  46. package/dist/cjs/helpers/getStylesAtomic.js +20 -3
  47. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  48. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  49. package/dist/cjs/helpers/insertStyleRule.js +41 -26
  50. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  51. package/dist/cjs/helpers/isObj.js +4 -0
  52. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  53. package/dist/cjs/helpers/matchMedia.js +4 -0
  54. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  55. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  56. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  57. package/dist/cjs/helpers/themeable.js +7 -2
  58. package/dist/cjs/helpers/themeable.js.map +2 -2
  59. package/dist/cjs/helpers/validate.js +53 -11
  60. package/dist/cjs/helpers/validate.js.map +2 -2
  61. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  62. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  63. package/dist/cjs/hooks/useConstant.js +4 -0
  64. package/dist/cjs/hooks/useFeatures.js +8 -5
  65. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  66. package/dist/cjs/hooks/useIsMounted.js +4 -0
  67. package/dist/cjs/hooks/useIsTouchDevice.js +8 -4
  68. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  69. package/dist/cjs/hooks/useMedia.js +30 -12
  70. package/dist/cjs/hooks/useMedia.js.map +2 -2
  71. package/dist/cjs/hooks/usePressable.js +4 -0
  72. package/dist/cjs/hooks/useTheme.js +30 -17
  73. package/dist/cjs/hooks/useTheme.js.map +2 -2
  74. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  75. package/dist/cjs/index.js +15 -0
  76. package/dist/cjs/index.js.map +2 -2
  77. package/dist/cjs/static.js +3 -0
  78. package/dist/cjs/static.js.map +2 -2
  79. package/dist/cjs/styled.js +7 -4
  80. package/dist/cjs/styled.js.map +2 -2
  81. package/dist/cjs/types.js.map +1 -1
  82. package/dist/cjs/views/Stack.js +4 -0
  83. package/dist/cjs/views/Text.js +4 -0
  84. package/dist/cjs/views/TextAncestorContext.js +6 -0
  85. package/dist/cjs/views/Theme.js +7 -3
  86. package/dist/cjs/views/Theme.js.map +2 -2
  87. package/dist/cjs/views/ThemeInverse.js +5 -0
  88. package/dist/cjs/views/ThemeProvider.js +6 -1
  89. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  90. package/dist/cjs/views/ThemeReset.js +4 -0
  91. package/dist/esm/Tamagui.js +10 -2
  92. package/dist/esm/Tamagui.js.map +2 -2
  93. package/dist/esm/ThemeManager.js +21 -11
  94. package/dist/esm/ThemeManager.js.map +2 -2
  95. package/dist/esm/conf.js +0 -1
  96. package/dist/esm/conf.js.map +2 -2
  97. package/dist/esm/constants/platform.js +2 -0
  98. package/dist/esm/constants/platform.js.map +2 -2
  99. package/dist/esm/createComponent.js +104 -65
  100. package/dist/esm/createComponent.js.map +2 -2
  101. package/dist/esm/createTamagui.js +53 -28
  102. package/dist/esm/createTamagui.js.map +2 -2
  103. package/dist/esm/createTokens.js +2 -6
  104. package/dist/esm/createTokens.js.map +2 -2
  105. package/dist/esm/createVariable.js +8 -2
  106. package/dist/esm/createVariable.js.map +2 -2
  107. package/dist/esm/helpers/RNComponents.js +0 -0
  108. package/dist/esm/helpers/RNComponents.js.map +0 -0
  109. package/dist/esm/helpers/addStylesUsingClassname.js +16 -18
  110. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  111. package/dist/esm/helpers/createMediaStyle.js +0 -2
  112. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  113. package/dist/esm/helpers/createPropMapper.js +40 -41
  114. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  115. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  116. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  117. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  118. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  119. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  120. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  121. package/dist/esm/helpers/getSize.js +13 -0
  122. package/dist/esm/helpers/getSize.js.map +7 -0
  123. package/dist/esm/helpers/getSplitStyles.js +166 -63
  124. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  125. package/dist/esm/helpers/getStylesAtomic.js +15 -3
  126. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  127. package/dist/esm/helpers/insertStyleRule.js +31 -26
  128. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  129. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  130. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  131. package/dist/esm/helpers/themeable.js +3 -2
  132. package/dist/esm/helpers/themeable.js.map +2 -2
  133. package/dist/esm/helpers/validate.js +24 -11
  134. package/dist/esm/helpers/validate.js.map +2 -2
  135. package/dist/esm/hooks/useFeatures.js +3 -5
  136. package/dist/esm/hooks/useFeatures.js.map +2 -2
  137. package/dist/esm/hooks/useIsTouchDevice.js +6 -6
  138. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  139. package/dist/esm/hooks/useMedia.js +19 -12
  140. package/dist/esm/hooks/useMedia.js.map +2 -2
  141. package/dist/esm/hooks/useTheme.js +22 -17
  142. package/dist/esm/hooks/useTheme.js.map +2 -2
  143. package/dist/esm/index.js +4 -0
  144. package/dist/esm/index.js.map +2 -2
  145. package/dist/esm/static.js +3 -0
  146. package/dist/esm/static.js.map +2 -2
  147. package/dist/esm/styled.js +3 -4
  148. package/dist/esm/styled.js.map +2 -2
  149. package/dist/esm/views/Theme.js +3 -3
  150. package/dist/esm/views/Theme.js.map +2 -2
  151. package/dist/esm/views/ThemeProvider.js +2 -1
  152. package/dist/esm/views/ThemeProvider.js.map +2 -2
  153. package/dist/jsx/Tamagui.js +10 -2
  154. package/dist/jsx/ThemeManager.js +21 -11
  155. package/dist/jsx/conf.js +0 -1
  156. package/dist/jsx/constants/platform.js +2 -0
  157. package/dist/jsx/createComponent.js +100 -61
  158. package/dist/jsx/createTamagui.js +53 -28
  159. package/dist/jsx/createTokens.js +2 -6
  160. package/dist/jsx/createVariable.js +8 -2
  161. package/dist/jsx/helpers/RNComponents.js +0 -0
  162. package/dist/jsx/helpers/addStylesUsingClassname.js +16 -18
  163. package/dist/jsx/helpers/createMediaStyle.js +0 -2
  164. package/dist/jsx/helpers/createPropMapper.js +40 -41
  165. package/dist/jsx/helpers/createShallowUpdate.js +0 -0
  166. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  167. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  168. package/dist/jsx/helpers/getSize.js +12 -0
  169. package/dist/jsx/helpers/getSplitStyles.js +166 -63
  170. package/dist/jsx/helpers/getStylesAtomic.js +15 -3
  171. package/dist/jsx/helpers/insertStyleRule.js +31 -26
  172. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  173. package/dist/jsx/helpers/themeable.js +3 -3
  174. package/dist/jsx/helpers/validate.js +24 -11
  175. package/dist/jsx/hooks/useFeatures.js +3 -5
  176. package/dist/jsx/hooks/useIsTouchDevice.js +6 -6
  177. package/dist/jsx/hooks/useMedia.js +19 -12
  178. package/dist/jsx/hooks/useTheme.js +22 -17
  179. package/dist/jsx/index.js +4 -0
  180. package/dist/jsx/static.js +3 -0
  181. package/dist/jsx/styled.js +3 -4
  182. package/dist/jsx/views/Theme.js +4 -4
  183. package/dist/jsx/views/ThemeProvider.js +2 -2
  184. package/package.json +6 -6
  185. package/types/Tamagui.d.ts +18 -1
  186. package/types/Tamagui.d.ts.map +1 -1
  187. package/types/ThemeManager.d.ts +3 -3
  188. package/types/ThemeManager.d.ts.map +1 -1
  189. package/types/conf.d.ts +2 -0
  190. package/types/conf.d.ts.map +1 -1
  191. package/types/constants/platform.d.ts +1 -0
  192. package/types/constants/platform.d.ts.map +1 -1
  193. package/types/createComponent.d.ts +3 -4
  194. package/types/createComponent.d.ts.map +1 -1
  195. package/types/createFont.d.ts +1 -1
  196. package/types/createFont.d.ts.map +1 -1
  197. package/types/createTamagui.d.ts +3 -1
  198. package/types/createTamagui.d.ts.map +1 -1
  199. package/types/createTokens.d.ts +0 -26
  200. package/types/createTokens.d.ts.map +1 -1
  201. package/types/createVariable.d.ts +1 -0
  202. package/types/createVariable.d.ts.map +1 -1
  203. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  204. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  205. package/types/helpers/createPropMapper.d.ts +1 -1
  206. package/types/helpers/createPropMapper.d.ts.map +1 -1
  207. package/types/helpers/extendStaticConfig.d.ts +2 -2
  208. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  209. package/types/helpers/getSize.d.ts +3 -0
  210. package/types/helpers/getSize.d.ts.map +1 -0
  211. package/types/helpers/getSplitStyles.d.ts +14 -6
  212. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  213. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  214. package/types/helpers/insertStyleRule.d.ts +2 -1
  215. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  216. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  217. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  218. package/types/helpers/themeable.d.ts +3 -1
  219. package/types/helpers/themeable.d.ts.map +1 -1
  220. package/types/helpers/validate.d.ts.map +1 -1
  221. package/types/hooks/useMedia.d.ts +2 -6
  222. package/types/hooks/useMedia.d.ts.map +1 -1
  223. package/types/hooks/useTheme.d.ts +1 -1
  224. package/types/hooks/useTheme.d.ts.map +1 -1
  225. package/types/index.d.ts +2 -0
  226. package/types/index.d.ts.map +1 -1
  227. package/types/static.d.ts +3 -0
  228. package/types/static.d.ts.map +1 -1
  229. package/types/styled.d.ts +12 -3
  230. package/types/styled.d.ts.map +1 -1
  231. package/types/types.d.ts +76 -48
  232. package/types/types.d.ts.map +1 -1
  233. package/types/views/Theme.d.ts +1 -0
  234. package/types/views/Theme.d.ts.map +1 -1
  235. package/types/views/ThemeProvider.d.ts +1 -0
  236. package/types/views/ThemeProvider.d.ts.map +1 -1
  237. package/LICENSE +0 -21
  238. package/dist/cjs/constants/pseudos.js.map +0 -7
  239. package/dist/cjs/createShallowUpdate.js +0 -1
  240. package/dist/cjs/createShallowUpdate.js.map +0 -7
  241. package/dist/cjs/devtools.js +0 -32
  242. package/dist/cjs/devtools.js.map +0 -7
  243. package/dist/cjs/spacedChildren.js +0 -86
  244. package/dist/cjs/spacedChildren.js.map +0 -7
  245. package/dist/cjs/tamagui-base.css +0 -8
  246. package/dist/cjs/tamagui-base.css.map +0 -7
  247. package/dist/esm/constants/pseudos.js +0 -18
  248. package/dist/esm/constants/pseudos.js.map +0 -7
  249. package/dist/esm/createShallowUpdate.js +0 -1
  250. package/dist/esm/createShallowUpdate.js.map +0 -7
  251. package/dist/esm/devtools.js +0 -14
  252. package/dist/esm/devtools.js.map +0 -7
  253. package/dist/esm/spacedChildren.js +0 -52
  254. package/dist/esm/spacedChildren.js.map +0 -7
  255. package/dist/esm/tamagui-base.css +0 -8
  256. package/dist/esm/tamagui-base.css.map +0 -7
  257. package/dist/jsx/constants/pseudos.js +0 -17
  258. package/dist/jsx/createShallowUpdate.js +0 -0
  259. package/dist/jsx/devtools.js +0 -13
  260. package/dist/jsx/spacedChildren.js +0 -44
  261. package/dist/jsx/tamagui-base.css +0 -7
  262. package/types/spacedChildren.d.ts +0 -9
  263. 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:`, 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, 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": "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",
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
File without changes
@@ -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,18 +120,21 @@ 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
  }
111
135
  }
112
136
  }
113
- if (state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
137
+ if (!import_platform.isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
114
138
  for (const key in cur) {
115
139
  if (key in import_helpers.stylePropsTransform) {
116
140
  (0, import_helpers.mergeTransform)(style, key, cur[key]);
@@ -123,27 +147,34 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
123
147
  }
124
148
  __name(push, "push");
125
149
  for (const keyInit in props) {
150
+ if (skipProps[keyInit]) {
151
+ continue;
152
+ }
126
153
  const valInit = props[keyInit];
127
- if (skipKeys[keyInit]) {
128
- viewProps[keyInit] = valInit;
154
+ if (keyInit === "style" || keyInit.startsWith("_style")) {
155
+ push();
156
+ cur = valInit;
157
+ push();
129
158
  continue;
130
159
  }
131
160
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
132
161
  push();
133
162
  mergeClassName(keyInit, valInit);
134
- if (cur) {
135
- if (cur[keyInit])
136
- console.warn("just want to see how used");
137
- delete cur[keyInit];
138
- }
139
163
  continue;
140
164
  }
165
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
166
+ viewProps[keyInit] = valInit;
167
+ }
141
168
  let isMedia = keyInit[0] === "$";
142
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
+ }
143
174
  const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
144
175
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
145
176
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
146
- console.log("split style", keyInit, expanded);
177
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
147
178
  }
148
179
  for (const [key, val] of expanded) {
149
180
  if (val === void 0) {
@@ -169,41 +200,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
169
200
  if (import_platform.isWeb && !state.noClassNames) {
170
201
  const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
171
202
  for (const style2 of pseudoStyles) {
203
+ addStyle(style2.identifier, style2.rules[0]);
172
204
  mergeClassName(`${style2.property}-${key}`, style2.identifier);
173
- (0, import_insertStyleRule.insertStyleRule)(style2.identifier, style2.rules[0]);
174
205
  }
175
206
  }
176
207
  continue;
177
208
  }
178
209
  if (isMedia) {
179
- const mediaKey = key.slice(1);
180
- if (!import_useMedia.mediaQueryConfig[mediaKey]) {
210
+ const mediaKey = key;
211
+ const mediaKeyShort = mediaKey.slice(1);
212
+ if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
181
213
  viewProps[key] = val;
182
214
  continue;
183
215
  }
184
- const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, true);
185
- 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) {
186
222
  const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
187
223
  for (const style2 of mediaStyles) {
188
- 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);
189
226
  mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
190
- (0, import_insertStyleRule.insertStyleRule)(out2.identifier, out2.styleRule);
191
- }
192
- if (import_useMedia.mediaState[mediaKey]) {
193
- Object.assign(medias, mediaStyle);
194
227
  }
195
228
  } else {
196
229
  if (import_useMedia.mediaState[mediaKey]) {
197
- 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);
198
235
  }
199
236
  }
200
237
  continue;
201
238
  }
202
- if (key === "style" || key.startsWith("_style")) {
203
- push();
204
- Object.assign(style, val);
205
- continue;
206
- }
207
239
  if (!import_platform.isWeb && key === "pointerEvents") {
208
240
  viewProps[key] = val;
209
241
  continue;
@@ -226,24 +258,44 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
226
258
  for (const namespace in transforms) {
227
259
  const [hash, val] = transforms[namespace];
228
260
  const identifier = `_transform${hash}`;
229
- if (!import_insertStyleRule.insertedTransforms[identifier]) {
230
- const rule = `.${identifier} { transform: ${val}; }`;
231
- (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
+ }
232
266
  }
233
267
  classNames[namespace] = identifier;
234
268
  }
235
269
  }
236
270
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
237
- console.log("out", pseudos);
271
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
238
272
  }
239
273
  return {
240
274
  viewProps,
241
275
  style,
242
276
  medias,
243
277
  pseudos,
244
- classNames
278
+ classNames,
279
+ rulesToInsert
245
280
  };
246
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");
247
299
  const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
248
300
  const styleOut = {};
249
301
  for (const key in styleIn) {
@@ -261,4 +313,58 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
261
313
  normalizeStyleObject(styleOut);
262
314
  return styleOut;
263
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
+ });
264
370
  //# sourceMappingURL=getSplitStyles.js.map