@tamagui/core 1.0.0-beta.200 → 1.0.0-beta.204

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
@@ -4,63 +4,67 @@ import { getConfig } from "../conf";
4
4
  import { isWeb } from "../constants/platform";
5
5
  import { isVariable } from "../createVariable";
6
6
  import { isObj } from "./isObj";
7
- const createPropMapper = /* @__PURE__ */ __name((c) => {
8
- const variants = c.variants || {};
9
- function getVariantFunction(variant, key, value) {
10
- for (const cat in tokenCategories) {
11
- if (key in tokenCategories[cat]) {
12
- const spreadVariant = variant[`...${cat}`];
13
- if (spreadVariant) {
14
- return spreadVariant;
15
- }
7
+ function getVariantFunction(variant, key, value) {
8
+ if (typeof variant === "function") {
9
+ return variant;
10
+ }
11
+ for (const cat in tokenCategories) {
12
+ if (key in tokenCategories[cat]) {
13
+ const spreadVariant = variant[`...${cat}`];
14
+ if (spreadVariant) {
15
+ return spreadVariant;
16
16
  }
17
17
  }
18
- let fn;
19
- if (typeof value === "number") {
20
- fn = variant[":number"];
21
- } else if (typeof value === "string") {
22
- fn = variant[":string"];
23
- } else if (value === true || value === false) {
24
- fn = variant[":boolean"];
25
- }
26
- fn = fn || variant[value];
27
- return fn || variant["..."] || variant["...size"];
28
18
  }
29
- __name(getVariantFunction, "getVariantFunction");
30
- const defaultProps = c.defaultProps || {};
31
- return (key, value, theme, props, staticConfig, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
19
+ let fn;
20
+ if (typeof value === "number") {
21
+ fn = variant[":number"];
22
+ } else if (typeof value === "string") {
23
+ fn = variant[":string"];
24
+ } else if (value === true || value === false) {
25
+ fn = variant[":boolean"];
26
+ }
27
+ fn = fn || variant[value];
28
+ return fn || variant["..."] || variant["...size"];
29
+ }
30
+ __name(getVariantFunction, "getVariantFunction");
31
+ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
32
+ const variants = staticConfig.variants || {};
33
+ const defaultProps = staticConfig.defaultProps || {};
34
+ return (key, value, theme, props, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
32
35
  const conf = getConfig();
33
36
  if (!conf) {
34
37
  console.trace("no conf! err");
35
38
  return;
36
39
  }
37
- let fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
40
+ const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
38
41
  const variant = variants && variants[key];
39
42
  if (variant && value !== void 0) {
40
43
  let variantValue = getVariantFunction(variant, key, value);
41
- if (!variantValue) {
42
- return value;
43
- }
44
- if (typeof variantValue === "function") {
45
- variantValue = variantValue(value, {
46
- tokens: conf.tokensParsed,
47
- theme,
48
- props: avoidDefaultProps ? props : new Proxy(props, {
49
- get(target, key2) {
50
- if (Reflect.has(target, key2)) {
51
- return Reflect.get(target, key2);
44
+ if (variantValue) {
45
+ if (typeof variantValue === "function") {
46
+ const fn = variantValue;
47
+ variantValue = fn(value, {
48
+ fonts: conf.fontsParsed,
49
+ tokens: conf.tokensParsed,
50
+ theme,
51
+ props: avoidDefaultProps ? props : new Proxy(props, {
52
+ get(target, key2) {
53
+ if (Reflect.has(target, key2)) {
54
+ return Reflect.get(target, key2);
55
+ }
56
+ if (defaultProps) {
57
+ return Reflect.get(defaultProps, key2);
58
+ }
52
59
  }
53
- if (staticConfig.defaultProps) {
54
- return Reflect.get(staticConfig.defaultProps, key2);
55
- }
56
- }
57
- })
58
- });
59
- }
60
- if (isObj(variantValue)) {
61
- variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
60
+ })
61
+ });
62
+ }
63
+ if (isObj(variantValue)) {
64
+ variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
65
+ }
66
+ return variantValue;
62
67
  }
63
- return variantValue;
64
68
  }
65
69
  let shouldReturn = false;
66
70
  if (conf.shorthands[key]) {
@@ -108,34 +112,28 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
108
112
  }
109
113
  return res;
110
114
  }, "resolveTokens");
111
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fontFamily = "$body", resolveAs) => {
112
- var _a, _b, _c, _d, _e;
115
+ const fontShorthand = {
116
+ fontSize: "size",
117
+ fontWeight: "weight"
118
+ };
119
+ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
120
+ var _a, _b, _c;
113
121
  let valOrVar;
114
122
  let hasSet = false;
115
- const valueName = value[0] === "$" ? value.slice(1) : value;
116
- if (valueName in theme) {
117
- valOrVar = theme[valueName];
123
+ if (value in theme) {
124
+ valOrVar = theme[value];
118
125
  hasSet = true;
119
126
  } else {
120
127
  switch (key) {
121
128
  case "fontFamily":
122
- valOrVar = ((_a = tokensParsed.font[value]) == null ? void 0 : _a.family) || value;
129
+ valOrVar = ((_a = fontsParsed[value]) == null ? void 0 : _a.family) || value;
123
130
  hasSet = true;
124
131
  break;
125
132
  case "fontSize":
126
- valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
127
- hasSet = true;
128
- break;
129
133
  case "lineHeight":
130
- valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
131
- hasSet = true;
132
- break;
133
134
  case "letterSpacing":
134
- valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
135
- hasSet = true;
136
- break;
137
135
  case "fontWeight":
138
- valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.weight[value]) || value;
136
+ valOrVar = ((_c = (_b = fontsParsed[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
139
137
  hasSet = true;
140
138
  break;
141
139
  }
@@ -161,7 +159,7 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fo
161
159
  }
162
160
  if (process.env.NODE_ENV === "development") {
163
161
  if (value && value[0] === "$") {
164
- console.warn(`\u26A0\uFE0F Missing token in theme:`, value, theme);
162
+ console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
165
163
  return null;
166
164
  }
167
165
  }
@@ -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": ";;AAAA;AACA;AACA;AAEA;AAKA,4BAA4B,SAAc,KAAa,OAAY;AACjE,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO;AAAA,EACT;AACA,aAAW,OAAO,iBAAiB;AACjC,QAAI,OAAO,gBAAgB,MAAM;AAC/B,YAAM,gBAAgB,QAAQ,MAAM;AACpC,UAAI,eAAe;AACjB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,SAAK,QAAQ;AAAA,EACf,WAAW,OAAO,UAAU,UAAU;AACpC,SAAK,QAAQ;AAAA,EACf,WAAW,UAAU,QAAQ,UAAU,OAAO;AAC5C,SAAK,QAAQ;AAAA,EACf;AACA,OAAK,MAAM,QAAQ;AAEnB,SAAO,MAAM,QAAQ,UAAU,QAAQ;AACzC;AAvBS;AAyBF,MAAM,mBAAmB,wBAAC,iBAAwC;AACvE,QAAM,WAAW,aAAa,YAAY,CAAC;AAC3C,QAAM,eAAe,aAAa,gBAAgB,CAAC;AAEnD,SAAO,CACL,KACA,OACA,OACA,OACA,oBAA0C,CAAC,CAAC,MAAM,YAAY,UAAU,QACxE,oBAAoB,UACjB;AACH,UAAM,OAAO,UAAU;AACvB,QAAI,CAAC,MAAM;AACT,cAAQ,MAAM,cAAc;AAC5B;AAAA,IACF;AAGA,UAAM,aAAa,MAAM,cAAc,aAAa,cAAc;AAClE,UAAM,UAAU,YAAY,SAAS;AAErC,QAAI,WAAW,UAAU,QAAW;AAClC,UAAI,eAAe,mBAAmB,SAAS,KAAK,KAAK;AAEzD,UAAI,cAAc;AAChB,YAAI,OAAO,iBAAiB,YAAY;AACtC,gBAAM,KAAK;AACX,yBAAe,GAAG,OAAO;AAAA,YACvB,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK;AAAA,YACb;AAAA,YAGA,OAAO,oBACH,QACA,IAAI,MAAM,OAAO;AAAA,cACf,IAAI,QAAQ,MAAK;AACf,oBAAI,QAAQ,IAAI,QAAQ,IAAG,GAAG;AAC5B,yBAAO,QAAQ,IAAI,QAAQ,IAAG;AAAA,gBAChC;AAGA,oBAAI,cAAc;AAChB,yBAAO,QAAQ,IAAI,cAAc,IAAG;AAAA,gBACtC;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACP,CAAC;AAAA,QACH;AAEA,YAAI,MAAM,YAAY,GAAG;AACvB,yBAAe,cAAc,cAAc,MAAM,OAAO,YAAY,iBAAiB;AAAA,QACvF;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,eAAe;AAGnB,QAAI,KAAK,WAAW,MAAM;AACxB,qBAAe;AACf,YAAM,KAAK,WAAW;AAAA,IACxB;AAEA,QAAI,OAAO;AACT,qBAAe;AACf,UAAI,MAAM,OAAO,KAAK;AACpB,gBAAQ,SAAS,KAAK,OAAO,MAAM,OAAO,YAAY,iBAAiB;AAAA,MACzE,WAAW,WAAW,KAAK,GAAG;AAC5B,gBAAQ,iBAAiB,OAAO,iBAAiB;AAAA,MACnD;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,aAAO;AAAA,SACJ,MAAM;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,GAlFgC;AAoFhC,MAAM,gBAAgB,wBACpB,OACA,MACA,OACA,YACA,cACG;AA5HL;AA6HE,MAAI,MAAM,CAAC;AACX,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,KAAK,WAAW,SAAS;AACtC,UAAM,MAAM,MAAM;AAClB,QAAI,WAAW,GAAG,GAAG;AACnB,UAAI,QACF,cAAc,aAAa,MAAM,CAAC,SAAS,cAAc,UAAU,IAAI,MAAM,IAAI;AAAA,IACrF,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,OAAO,IAAI,OAAO,MAAM,SAAS,MAAM,KAAK,MAAM,OAAO,YAAY,SAAS,IAAI;AACxF,UAAI,QAAQ;AAAA,IACd,OAAO;AACL,UAAI,MAAM,GAAG,GAAG;AAEd,YAAI,QAAQ,cAAc,KAAK,MAAM,OAAO,YAAY,SAAS;AAAA,MACnE,OAAO;AAEL,YAAI,QAAQ,MAAM;AAAA,MACpB;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,WAAI,UAAJ,mBAAY,QAAO,KAAK;AAC1B,gBAAQ,KAAK,uCAA6B,MAAM,SAAS,MAAM,IAAI,KAAK;AAAA,MAC1E;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT,GAjCsB;AAmCtB,MAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,YAAY;AACd;AAEA,MAAM,WAAW,wBACf,KACA,OACA,EAAE,cAAc,eAChB,OACA,aAAiC,SACjC,cACG;AArKL;AAsKE,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,SAAS,OAAO;AAClB,eAAW,MAAM;AACjB,aAAS;AAAA,EACX,OAAO;AACL,YAAQ;AAAA,WACD;AACH,mBAAW,mBAAY,WAAZ,mBAAoB,WAAU;AACzC,iBAAS;AACT;AAAA,WACG;AAAA,WACA;AAAA,WACA;AAAA,WACA;AACH,mBAAW,yBAAY,gBAAZ,mBAA0B,cAAc,QAAQ,SAAhD,mBAAuD,WAAU;AAC5E,iBAAS;AACT;AAAA;AAEJ,eAAW,OAAO,iBAAiB;AACjC,UAAI,OAAO,gBAAgB,MAAM;AAC/B,cAAM,MAAM,aAAa,KAAK;AAC9B,YAAI,KAAK;AACP,qBAAW;AACX,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,WAAW,aAAa,MAAM;AACpC,UAAI,UAAU;AACZ,mBAAW;AACX,iBAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACA,MAAI,QAAQ;AACV,WAAO,iBAAiB,UAAU,SAAS;AAAA,EAC7C;AACA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,SAAS,MAAM,OAAO,KAAK;AAC7B,cAAQ,KAAK,+BAAqB,KAAK,OAAO,YAAY,OAAO,WAAW;AAC5E,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT,GAtDiB;AAwDjB,0BAA0B,UAA0B,YAAkC,QAAQ;AAC5F,MAAI,WAAW,QAAQ,GAAG;AACxB,QAAI,cAAc,YAAY;AAC5B,aAAO;AAAA,IACT;AACA,QAAI,CAAC,SAAS,cAAc,SAAS;AACnC,aAAO,SAAS;AAAA,IAClB;AACA,WAAO,SAAS;AAAA,EAClB;AACA,SAAO;AACT;AAXS;AAcT,MAAM,kBAAkB;AAAA,EACtB,QAAQ;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AACF;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
@@ -2,12 +2,9 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { stylePropsView } from "@tamagui/helpers";
4
4
  import { createPropMapper } from "./createPropMapper";
5
- function extendStaticConfig(parent, config = {}) {
5
+ function extendStaticConfig(config, parent) {
6
6
  var _a;
7
- if (!parent) {
8
- throw new Error("no parent");
9
- }
10
- if (!("staticConfig" in parent)) {
7
+ if (!parent || !("staticConfig" in parent)) {
11
8
  return parseStaticConfig(config);
12
9
  }
13
10
  const variants = {
@@ -38,9 +35,15 @@ function extendStaticConfig(parent, config = {}) {
38
35
  ...parent.staticConfig.validStyles,
39
36
  ...config.validStyles
40
37
  } : parent.staticConfig.validStyles || stylePropsView,
38
+ defaultVariants: {
39
+ ...parent.staticConfig.defaultVariants,
40
+ ...config.defaultVariants
41
+ },
41
42
  defaultProps: {
42
43
  ...parent.staticConfig.defaultProps,
43
- ...config.defaultProps
44
+ ...parent.staticConfig.defaultVariants,
45
+ ...config.defaultProps,
46
+ ...config.defaultVariants
44
47
  }
45
48
  });
46
49
  }
@@ -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;AAGA;AAEO,4BAGL,QACA,SAAuB,CAAC,GACG;AAV7B;AAWE,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;AAAA,OACZ,OAAO,aAAa;AAAA,EACzB;AAGA,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,aACX,SAAS;AAAA,aACT,OAAO,SAAS;AAAA,QACrB;AAAA,MACF,OAAO;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,kBAAkB;AAAA,OACpB,OAAO;AAAA,OACP;AAAA,IACH;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,aAAO,yBAAP,YAA+B,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB;AAAA,SACK,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,IACZ,IACA,OAAO,aAAa,eAAe;AAAA,IACvC,cAAc;AAAA,SACT,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,IACZ;AAAA,EACF,CAAC;AACH;AApDgB;AAsDT,MAAM,oBAAoB,wBAAC,WAA6C;AAC7E,SAAO;AAAA,OACF;AAAA,IACH,QAAQ;AAAA,IACR,YAAY,iBAAiB,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;AAGA;AAEO,4BAA4B,QAA+B,QAA4B;AAL9F;AAME,MAAI,CAAC,UAAU,CAAE,mBAAkB,SAAS;AAC1C,WAAO,kBAAkB,MAAM;AAAA,EACjC;AAEA,QAAM,WAAW;AAAA,OACZ,OAAO,aAAa;AAAA,EACzB;AAGA,MAAI,OAAO,UAAU;AACnB,eAAW,OAAO,OAAO,UAAU;AACjC,UAAI,SAAS,MAAM;AACjB,iBAAS,OAAO;AAAA,aACX,SAAS;AAAA,aACT,OAAO,SAAS;AAAA,QACrB;AAAA,MACF,OAAO;AACL,iBAAS,OAAO,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,kBAAkB;AAAA,OACpB,OAAO;AAAA,OACP;AAAA,IACH;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,aAAO,yBAAP,YAA+B,OAAO,aAAa;AAAA,IACzE,aAAa,OAAO,cAChB;AAAA,SACK,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,IACZ,IACA,OAAO,aAAa,eAAe;AAAA,IACvC,iBAAiB;AAAA,SACZ,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,IACZ;AAAA,IACA,cAAc;AAAA,SACT,OAAO,aAAa;AAAA,SACpB,OAAO,aAAa;AAAA,SACpB,OAAO;AAAA,SACP,OAAO;AAAA,IACZ;AAAA,EACF,CAAC;AACH;AAjDgB;AAmDT,MAAM,oBAAoB,wBAAC,WAAsD;AACtF,SAAO;AAAA,OACF;AAAA,IACH,QAAQ;AAAA,IACR,YAAY,iBAAiB,MAAM;AAAA,EACrC;AACF,GANiC;",
6
6
  "names": []
7
7
  }
@@ -18,8 +18,8 @@ function fixNativeShadow(props) {
18
18
  if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
19
19
  const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
20
20
  if (typeof a !== "string") {
21
- console.warn("invalid", c, type);
22
- return;
21
+ console.trace("invalid", c, type);
22
+ throw new Error(`invalid style`);
23
23
  }
24
24
  props.shadowColor = `${type.replace("a", "")}(${_1},${_2},${_3})`;
25
25
  props.shadowOpacity = +a;
@@ -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,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,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
  }
@@ -0,0 +1,13 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { getTokens } from "../conf";
4
+ const getSize = /* @__PURE__ */ __name((size, sizeUpOrDownBy = 0) => {
5
+ const sizes = getTokens().size;
6
+ const sizeNames = Object.keys(sizes);
7
+ const key = sizeNames[Math.max(0, sizeNames.indexOf(String(size || "$4")) + sizeUpOrDownBy)];
8
+ return sizes[key] || sizes["$4"];
9
+ }, "getSize");
10
+ export {
11
+ getSize
12
+ };
13
+ //# 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;AAGO,MAAM,UAAU,wBAAC,MAA+B,iBAAiB,MAAM;AAC5E,QAAM,QAAQ,UAAU,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
+ }
@@ -7,33 +7,25 @@ import {
7
7
  validPseudoKeys,
8
8
  validStyles
9
9
  } from "@tamagui/helpers";
10
- import { isWeb } from "../constants/platform";
10
+ import { getConfig } from "../conf";
11
+ import { isClient, isWeb } from "../constants/platform";
11
12
  import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
12
13
  import { createMediaStyle } from "./createMediaStyle";
13
14
  import { fixNativeShadow } from "./fixNativeShadow";
14
15
  import { getStylesAtomic } from "./getStylesAtomic";
15
16
  import { insertStyleRule, insertedTransforms, updateInserted } from "./insertStyleRule";
16
- const skipKeys = {
17
+ const skipProps = {
17
18
  animation: true,
18
- animated: true,
19
- children: true,
20
- key: true,
21
- ref: true
19
+ animateOnly: true,
20
+ debug: true
22
21
  };
23
- function normalizeStyleObject(style) {
24
- var _a, _b;
25
- if (typeof style.flex === "number") {
26
- const val = style.flex;
27
- delete style.flex;
28
- style.flexGrow = (_a = style.flexGrow) != null ? _a : val;
29
- style.flexShrink = (_b = style.flexShrink) != null ? _b : 1;
30
- }
31
- if (!isWeb) {
32
- fixNativeShadow(style);
33
- }
34
- }
35
- __name(normalizeStyleObject, "normalizeStyleObject");
22
+ let conf;
36
23
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
24
+ var _a;
25
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
26
+ console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
27
+ }
28
+ conf = conf || getConfig();
37
29
  const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
38
30
  const viewProps = {};
39
31
  const style = {};
@@ -45,20 +37,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
45
37
  let cur = null;
46
38
  let transforms = {};
47
39
  function mergeClassName(key, val) {
48
- if (!val)
40
+ if (!val) {
49
41
  return;
42
+ }
50
43
  if (val.startsWith("_transform-")) {
51
44
  const isMediaOrPseudo = key !== "transform";
52
45
  const isMedia = isMediaOrPseudo && key[11] === "_";
53
- const isPsuedo = isMediaOrPseudo && !isMedia;
46
+ const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
54
47
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
55
- if (!insertedTransforms[val]) {
56
- updateInserted();
48
+ let transform = insertedTransforms[val];
49
+ if (isClient) {
50
+ if (!transform) {
51
+ updateInserted();
52
+ transform = insertedTransforms[val];
53
+ }
54
+ if (!transform) {
55
+ if (isWeb && val[0] !== "_") {
56
+ transform = val;
57
+ } else {
58
+ console.trace("?", key, val, cur, props, state);
59
+ }
60
+ }
61
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
62
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
63
+ }
64
+ if (process.env.NODE_ENV === "development") {
65
+ if (!transform) {
66
+ console.trace("NO TRANSFORM?", { key, val, transform });
67
+ }
68
+ }
57
69
  }
58
- const transform = insertedTransforms[val];
59
70
  transforms[namespace] = transforms[namespace] || ["", ""];
60
- transforms[namespace][0] += val.replace("_transform", "");
61
- transforms[namespace][1] += transform;
71
+ const identifier = val.replace("_transform", "");
72
+ transforms[namespace][0] += identifier;
73
+ if (transform) {
74
+ transforms[namespace][1] += transform;
75
+ }
62
76
  } else {
63
77
  classNames[key] = val;
64
78
  }
@@ -68,17 +82,21 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
68
82
  if (!cur)
69
83
  return;
70
84
  normalizeStyleObject(cur);
85
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
86
+ console.log(" \xBB getSplitStyles push", cur, state);
87
+ }
71
88
  if (isWeb && !state.noClassNames) {
72
89
  const atomic = getStylesAtomic(cur);
73
90
  for (const atomicStyle of atomic) {
74
91
  if (!state.noClassNames) {
75
- mergeClassName(atomicStyle.property, atomicStyle.identifier);
76
92
  insertStyleRule(atomicStyle.identifier, atomicStyle.rules[0]);
93
+ mergeClassName(atomicStyle.property, atomicStyle.identifier);
77
94
  } else {
78
95
  style[atomicStyle.property] = atomicStyle.value;
79
96
  }
80
97
  }
81
- } else {
98
+ }
99
+ if (!isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
82
100
  for (const key in cur) {
83
101
  if (key in stylePropsTransform) {
84
102
  mergeTransform(style, key, cur[key]);
@@ -91,30 +109,40 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
91
109
  }
92
110
  __name(push, "push");
93
111
  for (const keyInit in props) {
112
+ if (skipProps[keyInit]) {
113
+ continue;
114
+ }
94
115
  const valInit = props[keyInit];
95
- if (skipKeys[keyInit]) {
96
- viewProps[keyInit] = valInit;
116
+ if (keyInit === "style" || keyInit.startsWith("_style")) {
117
+ push();
118
+ cur = valInit;
119
+ push();
97
120
  continue;
98
121
  }
99
122
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
100
123
  push();
101
124
  mergeClassName(keyInit, valInit);
102
- if (cur) {
103
- if (cur[keyInit])
104
- console.warn("just want to see how used");
105
- delete cur[keyInit];
106
- }
107
125
  continue;
108
126
  }
127
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
128
+ viewProps[keyInit] = valInit;
129
+ }
109
130
  let isMedia = keyInit[0] === "$";
110
131
  let isPseudo = validPseudoKeys[keyInit];
111
- const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, props, staticConfig, state.resolveVariablesAs);
132
+ if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
133
+ viewProps[keyInit] = valInit;
134
+ continue;
135
+ }
136
+ const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
112
137
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
138
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
139
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
140
+ }
113
141
  for (const [key, val] of expanded) {
114
142
  if (val === void 0) {
115
143
  continue;
116
144
  }
117
- if (val && val[0] === "_") {
145
+ if (key !== "target" && val && val[0] === "_") {
118
146
  mergeClassName(key, val);
119
147
  continue;
120
148
  }
@@ -130,45 +158,46 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
130
158
  continue;
131
159
  }
132
160
  pseudos[key] = pseudos[key] || {};
133
- pseudos[key] = getSubStyle(val, staticConfig, theme, props, state.resolveVariablesAs, true);
161
+ pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
134
162
  if (isWeb && !state.noClassNames) {
135
163
  const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] });
136
164
  for (const style2 of pseudoStyles) {
137
- mergeClassName(`${style2.property}-${key}`, style2.identifier);
138
165
  insertStyleRule(style2.identifier, style2.rules[0]);
166
+ mergeClassName(`${style2.property}-${key}`, style2.identifier);
139
167
  }
140
168
  }
141
169
  continue;
142
170
  }
143
171
  if (isMedia) {
144
- const mediaKey = key.slice(1);
145
- if (!mediaQueryConfig[mediaKey]) {
146
- viewProps[key] = valInit;
172
+ const mediaKey = key;
173
+ const mediaKeyShort = mediaKey.slice(1);
174
+ if (!mediaQueryConfig[mediaKeyShort]) {
175
+ viewProps[key] = val;
147
176
  continue;
148
177
  }
149
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props, state.resolveVariablesAs, true);
150
- if (isWeb) {
178
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
179
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
180
+ console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
181
+ }
182
+ const shouldDoClasses = isWeb && !state.noClassNames;
183
+ if (shouldDoClasses) {
151
184
  const mediaStyles = getStylesAtomic(mediaStyle);
152
185
  for (const style2 of mediaStyles) {
153
- const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
154
- mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
186
+ const out2 = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
155
187
  insertStyleRule(out2.identifier, out2.styleRule);
156
- }
157
- if (mediaState[mediaKey]) {
158
- Object.assign(medias, mediaStyle);
188
+ mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
159
189
  }
160
190
  } else {
161
191
  if (mediaState[mediaKey]) {
162
- Object.assign(style, mediaStyle);
192
+ push();
193
+ if (process.env.NODE_ENV === "development" && props["debug"]) {
194
+ console.log("apply media style", mediaKey, mediaState);
195
+ }
196
+ Object.assign(shouldDoClasses ? medias : style, mediaStyle);
163
197
  }
164
198
  }
165
199
  continue;
166
200
  }
167
- if (key === "style" || key.startsWith("_style")) {
168
- push();
169
- Object.assign(style, val);
170
- continue;
171
- }
172
201
  if (!isWeb && key === "pointerEvents") {
173
202
  viewProps[key] = val;
174
203
  continue;
@@ -191,13 +220,18 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
191
220
  for (const namespace in transforms) {
192
221
  const [hash, val] = transforms[namespace];
193
222
  const identifier = `_transform${hash}`;
194
- if (!insertedTransforms[identifier]) {
195
- const rule = `.${identifier} { transform: ${val}; }`;
196
- insertStyleRule(identifier, rule);
223
+ if (isClient) {
224
+ if (!insertedTransforms[identifier]) {
225
+ const rule = `.${identifier} { transform: ${val}; }`;
226
+ insertStyleRule(identifier, rule);
227
+ }
197
228
  }
198
229
  classNames[namespace] = identifier;
199
230
  }
200
231
  }
232
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
233
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
234
+ }
201
235
  return {
202
236
  viewProps,
203
237
  style,
@@ -206,11 +240,11 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
206
240
  classNames
207
241
  };
208
242
  }, "getSplitStyles");
209
- const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, resolveVariablesAs, avoidDefaultProps) => {
243
+ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
210
244
  const styleOut = {};
211
245
  for (const key in styleIn) {
212
246
  const val = styleIn[key];
213
- const out = staticConfig.propMapper(key, val, theme, props, staticConfig, resolveVariablesAs, avoidDefaultProps);
247
+ const out = staticConfig.propMapper(key, val, theme, state.fallbackProps || props, state.resolveVariablesAs, avoidDefaultProps);
214
248
  const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
215
249
  for (const [skey, sval] of expanded) {
216
250
  if (skey in stylePropsTransform) {
@@ -223,7 +257,22 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
223
257
  normalizeStyleObject(styleOut);
224
258
  return styleOut;
225
259
  }, "getSubStyle");
260
+ function normalizeStyleObject(style) {
261
+ var _a, _b;
262
+ if (typeof style.flex === "number") {
263
+ const val = style.flex;
264
+ delete style.flex;
265
+ style.flexGrow = (_a = style.flexGrow) != null ? _a : val;
266
+ style.flexShrink = (_b = style.flexShrink) != null ? _b : 1;
267
+ }
268
+ if (!isWeb) {
269
+ fixNativeShadow(style);
270
+ }
271
+ }
272
+ __name(normalizeStyleObject, "normalizeStyleObject");
226
273
  export {
227
- getSplitStyles
274
+ getSplitStyles,
275
+ getSubStyle,
276
+ normalizeStyleObject
228
277
  };
229
278
  //# sourceMappingURL=getSplitStyles.js.map