@tamagui/core 1.0.0-beta.202 → 1.0.0-beta.203

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 (267) 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 +117 -112
  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 +55 -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/defaultComponentState.js +0 -30
  25. package/dist/cjs/defaultComponentState.js.map +3 -3
  26. package/dist/cjs/helpers/RNComponents.js +4 -0
  27. package/dist/cjs/helpers/RNComponents.js.map +0 -0
  28. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  29. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  30. package/dist/cjs/helpers/areEqualSets.js +4 -0
  31. package/dist/cjs/helpers/createMediaStyle.js +5 -0
  32. package/dist/cjs/helpers/createPropMapper.js +63 -61
  33. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  34. package/dist/cjs/helpers/createShallowUpdate.js +4 -0
  35. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  36. package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
  37. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  38. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  39. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  40. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  41. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  42. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  43. package/dist/cjs/{constants/pseudos.js → helpers/getSize.js} +17 -19
  44. package/dist/cjs/helpers/getSize.js.map +7 -0
  45. package/dist/cjs/helpers/getSplitStyles.js +114 -59
  46. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  47. package/dist/cjs/helpers/getStylesAtomic.js +20 -2
  48. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  49. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  50. package/dist/cjs/helpers/insertStyleRule.js +46 -26
  51. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  52. package/dist/cjs/helpers/isObj.js +4 -0
  53. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  54. package/dist/cjs/helpers/matchMedia.js +4 -0
  55. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  56. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  57. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  58. package/dist/cjs/helpers/themeable.js +7 -2
  59. package/dist/cjs/helpers/themeable.js.map +2 -2
  60. package/dist/cjs/helpers/validate.js +53 -11
  61. package/dist/cjs/helpers/validate.js.map +2 -2
  62. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  63. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  64. package/dist/cjs/hooks/useConstant.js +4 -0
  65. package/dist/cjs/hooks/useFeatures.js +101 -13
  66. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  67. package/dist/cjs/hooks/useIsMounted.js +4 -0
  68. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  69. package/dist/cjs/hooks/useMedia.js +31 -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 +36 -23
  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 +5 -0
  83. package/dist/cjs/views/Stack.js.map +2 -2
  84. package/dist/cjs/views/Text.js +5 -0
  85. package/dist/cjs/views/Text.js.map +2 -2
  86. package/dist/cjs/views/TextAncestorContext.js +6 -0
  87. package/dist/cjs/views/Theme.js +11 -4
  88. package/dist/cjs/views/Theme.js.map +2 -2
  89. package/dist/cjs/views/ThemeInverse.js +5 -0
  90. package/dist/cjs/views/ThemeProvider.js +6 -1
  91. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  92. package/dist/cjs/views/ThemeReset.js +4 -0
  93. package/dist/esm/Tamagui.js +10 -2
  94. package/dist/esm/Tamagui.js.map +2 -2
  95. package/dist/esm/ThemeManager.js +21 -11
  96. package/dist/esm/ThemeManager.js.map +2 -2
  97. package/dist/esm/conf.js +0 -1
  98. package/dist/esm/conf.js.map +2 -2
  99. package/dist/esm/constants/platform.js +2 -0
  100. package/dist/esm/constants/platform.js.map +2 -2
  101. package/dist/esm/createComponent.js +107 -115
  102. package/dist/esm/createComponent.js.map +2 -2
  103. package/dist/esm/createTamagui.js +51 -27
  104. package/dist/esm/createTamagui.js.map +2 -2
  105. package/dist/esm/createTokens.js +2 -6
  106. package/dist/esm/createTokens.js.map +2 -2
  107. package/dist/esm/createVariable.js +8 -2
  108. package/dist/esm/createVariable.js.map +2 -2
  109. package/dist/esm/defaultComponentState.js +0 -11
  110. package/dist/esm/defaultComponentState.js.map +3 -3
  111. package/dist/esm/helpers/RNComponents.js +0 -0
  112. package/dist/esm/helpers/RNComponents.js.map +0 -0
  113. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  114. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  115. package/dist/esm/helpers/createPropMapper.js +59 -61
  116. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  117. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  118. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  119. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  120. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  121. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  122. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  123. package/dist/esm/helpers/getSize.js +13 -0
  124. package/dist/esm/helpers/getSize.js.map +7 -0
  125. package/dist/esm/helpers/getSplitStyles.js +110 -61
  126. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  127. package/dist/esm/helpers/getStylesAtomic.js +15 -2
  128. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  129. package/dist/esm/helpers/insertStyleRule.js +36 -26
  130. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  131. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  132. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  133. package/dist/esm/helpers/themeable.js +3 -2
  134. package/dist/esm/helpers/themeable.js.map +2 -2
  135. package/dist/esm/helpers/validate.js +24 -11
  136. package/dist/esm/helpers/validate.js.map +2 -2
  137. package/dist/esm/hooks/useFeatures.js +96 -18
  138. package/dist/esm/hooks/useFeatures.js.map +2 -2
  139. package/dist/esm/hooks/useMedia.js +20 -12
  140. package/dist/esm/hooks/useMedia.js.map +2 -2
  141. package/dist/esm/hooks/useTheme.js +28 -23
  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/Stack.js +1 -0
  150. package/dist/esm/views/Stack.js.map +2 -2
  151. package/dist/esm/views/Text.js +1 -0
  152. package/dist/esm/views/Text.js.map +2 -2
  153. package/dist/esm/views/Theme.js +7 -4
  154. package/dist/esm/views/Theme.js.map +2 -2
  155. package/dist/esm/views/ThemeProvider.js +2 -1
  156. package/dist/esm/views/ThemeProvider.js.map +2 -2
  157. package/dist/jsx/Tamagui.js +10 -2
  158. package/dist/jsx/ThemeManager.js +21 -11
  159. package/dist/jsx/conf.js +0 -1
  160. package/dist/jsx/constants/platform.js +2 -0
  161. package/dist/jsx/createComponent.js +105 -114
  162. package/dist/jsx/createTamagui.js +51 -27
  163. package/dist/jsx/createTokens.js +2 -6
  164. package/dist/jsx/createVariable.js +8 -2
  165. package/dist/jsx/defaultComponentState.js +0 -11
  166. package/dist/jsx/helpers/RNComponents.js +0 -0
  167. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  168. package/dist/jsx/helpers/createPropMapper.js +59 -61
  169. package/dist/jsx/helpers/createShallowUpdate.js +0 -0
  170. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  171. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  172. package/dist/jsx/helpers/getSize.js +12 -0
  173. package/dist/jsx/helpers/getSplitStyles.js +110 -61
  174. package/dist/jsx/helpers/getStylesAtomic.js +15 -2
  175. package/dist/jsx/helpers/insertStyleRule.js +36 -26
  176. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  177. package/dist/jsx/helpers/themeable.js +3 -3
  178. package/dist/jsx/helpers/validate.js +24 -11
  179. package/dist/jsx/hooks/useFeatures.js +96 -18
  180. package/dist/jsx/hooks/useMedia.js +20 -12
  181. package/dist/jsx/hooks/useTheme.js +28 -23
  182. package/dist/jsx/index.js +4 -0
  183. package/dist/jsx/static.js +3 -0
  184. package/dist/jsx/styled.js +3 -4
  185. package/dist/jsx/views/Stack.js +1 -0
  186. package/dist/jsx/views/Text.js +1 -0
  187. package/dist/jsx/views/Theme.js +7 -4
  188. package/dist/jsx/views/ThemeProvider.js +2 -2
  189. package/package.json +6 -6
  190. package/types/Tamagui.d.ts +18 -1
  191. package/types/Tamagui.d.ts.map +1 -1
  192. package/types/ThemeManager.d.ts +3 -3
  193. package/types/ThemeManager.d.ts.map +1 -1
  194. package/types/conf.d.ts +2 -0
  195. package/types/conf.d.ts.map +1 -1
  196. package/types/constants/platform.d.ts +1 -0
  197. package/types/constants/platform.d.ts.map +1 -1
  198. package/types/createComponent.d.ts +3 -4
  199. package/types/createComponent.d.ts.map +1 -1
  200. package/types/createFont.d.ts +1 -1
  201. package/types/createFont.d.ts.map +1 -1
  202. package/types/createTamagui.d.ts +2 -1
  203. package/types/createTamagui.d.ts.map +1 -1
  204. package/types/createTokens.d.ts +0 -26
  205. package/types/createTokens.d.ts.map +1 -1
  206. package/types/createVariable.d.ts +1 -0
  207. package/types/createVariable.d.ts.map +1 -1
  208. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  209. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  210. package/types/helpers/createPropMapper.d.ts +1 -1
  211. package/types/helpers/createPropMapper.d.ts.map +1 -1
  212. package/types/helpers/extendStaticConfig.d.ts +2 -2
  213. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  214. package/types/helpers/getSize.d.ts +3 -0
  215. package/types/helpers/getSize.d.ts.map +1 -0
  216. package/types/helpers/getSplitStyles.d.ts +4 -1
  217. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  218. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  219. package/types/helpers/insertStyleRule.d.ts +2 -1
  220. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  221. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  222. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  223. package/types/helpers/themeable.d.ts +3 -1
  224. package/types/helpers/themeable.d.ts.map +1 -1
  225. package/types/helpers/validate.d.ts.map +1 -1
  226. package/types/hooks/useMedia.d.ts +3 -3
  227. package/types/hooks/useMedia.d.ts.map +1 -1
  228. package/types/hooks/useTheme.d.ts +1 -1
  229. package/types/hooks/useTheme.d.ts.map +1 -1
  230. package/types/index.d.ts +2 -0
  231. package/types/index.d.ts.map +1 -1
  232. package/types/static.d.ts +3 -0
  233. package/types/static.d.ts.map +1 -1
  234. package/types/styled.d.ts +12 -3
  235. package/types/styled.d.ts.map +1 -1
  236. package/types/types.d.ts +73 -45
  237. package/types/types.d.ts.map +1 -1
  238. package/types/views/Theme.d.ts +1 -0
  239. package/types/views/Theme.d.ts.map +1 -1
  240. package/types/views/ThemeProvider.d.ts +1 -0
  241. package/types/views/ThemeProvider.d.ts.map +1 -1
  242. package/dist/cjs/constants/pseudos.js.map +0 -7
  243. package/dist/cjs/createShallowUpdate.js +0 -1
  244. package/dist/cjs/createShallowUpdate.js.map +0 -7
  245. package/dist/cjs/devtools.js +0 -32
  246. package/dist/cjs/devtools.js.map +0 -7
  247. package/dist/cjs/spacedChildren.js +0 -86
  248. package/dist/cjs/spacedChildren.js.map +0 -7
  249. package/dist/cjs/tamagui-base.css +0 -8
  250. package/dist/cjs/tamagui-base.css.map +0 -7
  251. package/dist/esm/constants/pseudos.js +0 -18
  252. package/dist/esm/constants/pseudos.js.map +0 -7
  253. package/dist/esm/createShallowUpdate.js +0 -1
  254. package/dist/esm/createShallowUpdate.js.map +0 -7
  255. package/dist/esm/devtools.js +0 -14
  256. package/dist/esm/devtools.js.map +0 -7
  257. package/dist/esm/spacedChildren.js +0 -52
  258. package/dist/esm/spacedChildren.js.map +0 -7
  259. package/dist/esm/tamagui-base.css +0 -8
  260. package/dist/esm/tamagui-base.css.map +0 -7
  261. package/dist/jsx/constants/pseudos.js +0 -17
  262. package/dist/jsx/createShallowUpdate.js +0 -0
  263. package/dist/jsx/devtools.js +0 -13
  264. package/dist/jsx/spacedChildren.js +0 -44
  265. package/dist/jsx/tamagui-base.css +0 -7
  266. package/types/spacedChildren.d.ts +0 -9
  267. 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'\n\nexport const createPropMapper = (c: StaticConfig) => {\n const variants = c.variants || {}\n\n // goes through specificity finding best matching variant function\n function getVariantFunction(variant: any, key: string, value: any) {\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\n return fn || variant['...'] || variant['...size']\n }\n\n const defaultProps = c.defaultProps || {}\n\n return (\n key: string,\n value: any,\n theme: any,\n props: any,\n staticConfig: StaticConfig,\n returnVariablesAs: ResolveVariableTypes = !!props.animation ? 'value' : 'auto',\n avoidDefaultProps = false\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n let fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n\n // expand variants\n const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (!variantValue) {\n return value\n }\n\n if (typeof variantValue === 'function') {\n variantValue = variantValue(value, {\n tokens: conf.tokensParsed,\n theme,\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n props: avoidDefaultProps\n ? props\n : new Proxy(props, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n // these props may be extracted into classNames, but we still want to access them\n // at runtime, so we proxy back to defaultProps but don't pass them\n if (staticConfig.defaultProps) {\n return Reflect.get(staticConfig.defaultProps, key)\n }\n },\n }),\n })\n }\n\n // console.log(\n // 'GOGO',\n // variantValue,\n // 'now',\n // resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n // )\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return variantValue\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n shouldReturn = true\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n }\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n const valueName = value[0] === '$' ? value.slice(1) : value\n if (valueName in theme) {\n valOrVar = theme[valueName]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = tokensParsed.font[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n valOrVar = tokensParsed.font[fontFamily]?.size[value] || value\n hasSet = true\n break\n case 'lineHeight':\n valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value\n hasSet = true\n break\n case 'letterSpacing':\n valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value\n hasSet = true\n break\n case 'fontWeight':\n valOrVar = tokensParsed.font[fontFamily]?.weight[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme:`, value, theme)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport { StaticConfig, TamaguiInternalConfig, 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
+ }
@@ -32,36 +32,31 @@ var __copyProps = (to, from, except, desc) => {
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
  var getSplitStyles_exports = {};
34
34
  __export(getSplitStyles_exports, {
35
- getSplitStyles: () => getSplitStyles
35
+ getSplitStyles: () => getSplitStyles,
36
+ getSubStyle: () => getSubStyle,
37
+ normalizeStyleObject: () => normalizeStyleObject
36
38
  });
37
39
  module.exports = __toCommonJS(getSplitStyles_exports);
38
40
  var import_helpers = require("@tamagui/helpers");
41
+ var import_conf = require("../conf");
39
42
  var import_platform = require("../constants/platform");
40
43
  var import_useMedia = require("../hooks/useMedia");
41
44
  var import_createMediaStyle = require("./createMediaStyle");
42
45
  var import_fixNativeShadow = require("./fixNativeShadow");
43
46
  var import_getStylesAtomic = require("./getStylesAtomic");
44
47
  var import_insertStyleRule = require("./insertStyleRule");
45
- const skipKeys = {
48
+ const skipProps = {
46
49
  animation: true,
47
- animated: true,
48
- children: true,
49
- key: true,
50
- ref: true
50
+ animateOnly: true,
51
+ debug: true
51
52
  };
52
- function normalizeStyleObject(style) {
53
- if (typeof style.flex === "number") {
54
- const val = style.flex;
55
- delete style.flex;
56
- style.flexGrow = style.flexGrow ?? val;
57
- style.flexShrink = style.flexShrink ?? 1;
58
- }
59
- if (!import_platform.isWeb) {
60
- (0, import_fixNativeShadow.fixNativeShadow)(style);
61
- }
62
- }
63
- __name(normalizeStyleObject, "normalizeStyleObject");
53
+ let conf;
64
54
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
55
+ var _a;
56
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
57
+ console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
58
+ }
59
+ conf = conf || (0, import_conf.getConfig)();
65
60
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
66
61
  const viewProps = {};
67
62
  const style = {};
@@ -71,20 +66,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
71
66
  let cur = null;
72
67
  let transforms = {};
73
68
  function mergeClassName(key, val) {
74
- if (!val)
69
+ if (!val) {
75
70
  return;
71
+ }
76
72
  if (val.startsWith("_transform-")) {
77
73
  const isMediaOrPseudo = key !== "transform";
78
74
  const isMedia = isMediaOrPseudo && key[11] === "_";
79
- const isPsuedo = isMediaOrPseudo && !isMedia;
75
+ const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
80
76
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
81
- if (!import_insertStyleRule.insertedTransforms[val]) {
82
- (0, import_insertStyleRule.updateInserted)();
77
+ let transform = import_insertStyleRule.insertedTransforms[val];
78
+ if (import_platform.isClient) {
79
+ if (!transform) {
80
+ (0, import_insertStyleRule.updateInserted)();
81
+ transform = import_insertStyleRule.insertedTransforms[val];
82
+ }
83
+ if (!transform) {
84
+ if (import_platform.isWeb && val[0] !== "_") {
85
+ transform = val;
86
+ } else {
87
+ console.trace("?", key, val, cur, props, state);
88
+ }
89
+ }
90
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
91
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms: import_insertStyleRule.insertedTransforms });
92
+ }
93
+ if (process.env.NODE_ENV === "development") {
94
+ if (!transform) {
95
+ console.trace("NO TRANSFORM?", { key, val, transform });
96
+ }
97
+ }
83
98
  }
84
- const transform = import_insertStyleRule.insertedTransforms[val];
85
99
  transforms[namespace] = transforms[namespace] || ["", ""];
86
- transforms[namespace][0] += val.replace("_transform", "");
87
- transforms[namespace][1] += transform;
100
+ const identifier = val.replace("_transform", "");
101
+ transforms[namespace][0] += identifier;
102
+ if (transform) {
103
+ transforms[namespace][1] += transform;
104
+ }
88
105
  } else {
89
106
  classNames[key] = val;
90
107
  }
@@ -94,17 +111,21 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
94
111
  if (!cur)
95
112
  return;
96
113
  normalizeStyleObject(cur);
114
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
115
+ console.log(" \xBB getSplitStyles push", cur, state);
116
+ }
97
117
  if (import_platform.isWeb && !state.noClassNames) {
98
118
  const atomic = (0, import_getStylesAtomic.getStylesAtomic)(cur);
99
119
  for (const atomicStyle of atomic) {
100
120
  if (!state.noClassNames) {
101
- mergeClassName(atomicStyle.property, atomicStyle.identifier);
102
121
  (0, import_insertStyleRule.insertStyleRule)(atomicStyle.identifier, atomicStyle.rules[0]);
122
+ mergeClassName(atomicStyle.property, atomicStyle.identifier);
103
123
  } else {
104
124
  style[atomicStyle.property] = atomicStyle.value;
105
125
  }
106
126
  }
107
- } else {
127
+ }
128
+ if (!import_platform.isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
108
129
  for (const key in cur) {
109
130
  if (key in import_helpers.stylePropsTransform) {
110
131
  (0, import_helpers.mergeTransform)(style, key, cur[key]);
@@ -117,30 +138,40 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
117
138
  }
118
139
  __name(push, "push");
119
140
  for (const keyInit in props) {
141
+ if (skipProps[keyInit]) {
142
+ continue;
143
+ }
120
144
  const valInit = props[keyInit];
121
- if (skipKeys[keyInit]) {
122
- viewProps[keyInit] = valInit;
145
+ if (keyInit === "style" || keyInit.startsWith("_style")) {
146
+ push();
147
+ cur = valInit;
148
+ push();
123
149
  continue;
124
150
  }
125
151
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
126
152
  push();
127
153
  mergeClassName(keyInit, valInit);
128
- if (cur) {
129
- if (cur[keyInit])
130
- console.warn("just want to see how used");
131
- delete cur[keyInit];
132
- }
133
154
  continue;
134
155
  }
156
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
157
+ viewProps[keyInit] = valInit;
158
+ }
135
159
  let isMedia = keyInit[0] === "$";
136
160
  let isPseudo = import_helpers.validPseudoKeys[keyInit];
137
- const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, props, staticConfig, state.resolveVariablesAs);
161
+ if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
162
+ viewProps[keyInit] = valInit;
163
+ continue;
164
+ }
165
+ const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
138
166
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
167
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
168
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
169
+ }
139
170
  for (const [key, val] of expanded) {
140
171
  if (val === void 0) {
141
172
  continue;
142
173
  }
143
- if (val && val[0] === "_") {
174
+ if (key !== "target" && val && val[0] === "_") {
144
175
  mergeClassName(key, val);
145
176
  continue;
146
177
  }
@@ -156,45 +187,46 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
156
187
  continue;
157
188
  }
158
189
  pseudos[key] = pseudos[key] || {};
159
- pseudos[key] = getSubStyle(val, staticConfig, theme, props, state.resolveVariablesAs, true);
190
+ pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
160
191
  if (import_platform.isWeb && !state.noClassNames) {
161
192
  const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
162
193
  for (const style2 of pseudoStyles) {
163
- mergeClassName(`${style2.property}-${key}`, style2.identifier);
164
194
  (0, import_insertStyleRule.insertStyleRule)(style2.identifier, style2.rules[0]);
195
+ mergeClassName(`${style2.property}-${key}`, style2.identifier);
165
196
  }
166
197
  }
167
198
  continue;
168
199
  }
169
200
  if (isMedia) {
170
- const mediaKey = key.slice(1);
171
- if (!import_useMedia.mediaQueryConfig[mediaKey]) {
172
- viewProps[key] = valInit;
201
+ const mediaKey = key;
202
+ const mediaKeyShort = mediaKey.slice(1);
203
+ if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
204
+ viewProps[key] = val;
173
205
  continue;
174
206
  }
175
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props, state.resolveVariablesAs, true);
176
- if (import_platform.isWeb) {
207
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
208
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
209
+ console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
210
+ }
211
+ const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
212
+ if (shouldDoClasses) {
177
213
  const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
178
214
  for (const style2 of mediaStyles) {
179
- const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKey, import_useMedia.mediaQueryConfig);
180
- mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
215
+ const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
181
216
  (0, import_insertStyleRule.insertStyleRule)(out2.identifier, out2.styleRule);
182
- }
183
- if (import_useMedia.mediaState[mediaKey]) {
184
- Object.assign(medias, mediaStyle);
217
+ mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
185
218
  }
186
219
  } else {
187
220
  if (import_useMedia.mediaState[mediaKey]) {
188
- Object.assign(style, mediaStyle);
221
+ push();
222
+ if (process.env.NODE_ENV === "development" && props["debug"]) {
223
+ console.log("apply media style", mediaKey, import_useMedia.mediaState);
224
+ }
225
+ Object.assign(shouldDoClasses ? medias : style, mediaStyle);
189
226
  }
190
227
  }
191
228
  continue;
192
229
  }
193
- if (key === "style" || key.startsWith("_style")) {
194
- push();
195
- Object.assign(style, val);
196
- continue;
197
- }
198
230
  if (!import_platform.isWeb && key === "pointerEvents") {
199
231
  viewProps[key] = val;
200
232
  continue;
@@ -217,13 +249,18 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
217
249
  for (const namespace in transforms) {
218
250
  const [hash, val] = transforms[namespace];
219
251
  const identifier = `_transform${hash}`;
220
- if (!import_insertStyleRule.insertedTransforms[identifier]) {
221
- const rule = `.${identifier} { transform: ${val}; }`;
222
- (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
252
+ if (import_platform.isClient) {
253
+ if (!import_insertStyleRule.insertedTransforms[identifier]) {
254
+ const rule = `.${identifier} { transform: ${val}; }`;
255
+ (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
256
+ }
223
257
  }
224
258
  classNames[namespace] = identifier;
225
259
  }
226
260
  }
261
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
262
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
263
+ }
227
264
  return {
228
265
  viewProps,
229
266
  style,
@@ -232,11 +269,11 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
232
269
  classNames
233
270
  };
234
271
  }, "getSplitStyles");
235
- const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, resolveVariablesAs, avoidDefaultProps) => {
272
+ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
236
273
  const styleOut = {};
237
274
  for (const key in styleIn) {
238
275
  const val = styleIn[key];
239
- const out = staticConfig.propMapper(key, val, theme, props, staticConfig, resolveVariablesAs, avoidDefaultProps);
276
+ const out = staticConfig.propMapper(key, val, theme, state.fallbackProps || props, state.resolveVariablesAs, avoidDefaultProps);
240
277
  const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
241
278
  for (const [skey, sval] of expanded) {
242
279
  if (skey in import_helpers.stylePropsTransform) {
@@ -249,4 +286,22 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
249
286
  normalizeStyleObject(styleOut);
250
287
  return styleOut;
251
288
  }, "getSubStyle");
289
+ function normalizeStyleObject(style) {
290
+ if (typeof style.flex === "number") {
291
+ const val = style.flex;
292
+ delete style.flex;
293
+ style.flexGrow = style.flexGrow ?? val;
294
+ style.flexShrink = style.flexShrink ?? 1;
295
+ }
296
+ if (!import_platform.isWeb) {
297
+ (0, import_fixNativeShadow.fixNativeShadow)(style);
298
+ }
299
+ }
300
+ __name(normalizeStyleObject, "normalizeStyleObject");
301
+ // Annotate the CommonJS export names for ESM import in node:
302
+ 0 && (module.exports = {
303
+ getSplitStyles,
304
+ getSubStyle,
305
+ normalizeStyleObject
306
+ });
252
307
  //# sourceMappingURL=getSplitStyles.js.map