@tamagui/core 1.0.0-beta.149 → 1.0.0-beta.15

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 (294) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/Tamagui.js +13 -1
  3. package/dist/cjs/Tamagui.js.map +2 -2
  4. package/dist/cjs/ThemeContext.js +4 -0
  5. package/dist/cjs/ThemeManager.js +30 -14
  6. package/dist/cjs/ThemeManager.js.map +2 -2
  7. package/dist/cjs/conf.js +10 -1
  8. package/dist/cjs/conf.js.map +2 -2
  9. package/dist/cjs/constants/constants.js +6 -0
  10. package/dist/cjs/constants/platform.js +15 -0
  11. package/dist/cjs/constants/platform.js.map +2 -2
  12. package/dist/cjs/constants/rnw.js +4 -0
  13. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  14. package/dist/cjs/createComponent.js +175 -96
  15. package/dist/cjs/createComponent.js.map +2 -2
  16. package/dist/cjs/createFont.js +4 -0
  17. package/dist/cjs/createShorthands.js +4 -0
  18. package/dist/cjs/createTamagui.js +48 -27
  19. package/dist/cjs/createTamagui.js.map +2 -2
  20. package/dist/cjs/createTheme.js +4 -0
  21. package/dist/cjs/createTokens.js +7 -6
  22. package/dist/cjs/createTokens.js.map +2 -2
  23. package/dist/cjs/createVariable.js +18 -2
  24. package/dist/cjs/createVariable.js.map +2 -2
  25. package/dist/cjs/helpers/RNComponents.js +4 -0
  26. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  27. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  28. package/dist/cjs/helpers/areEqualSets.js +4 -0
  29. package/dist/cjs/helpers/createMediaStyle.js +5 -2
  30. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  31. package/dist/cjs/helpers/createPropMapper.js +53 -22
  32. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  33. package/dist/cjs/helpers/createShallowUpdate.js +4 -0
  34. package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
  35. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  36. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  37. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  38. package/dist/cjs/helpers/fixNativeShadow.native.js +10 -9
  39. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  40. package/dist/cjs/helpers/getButtonSize.js +45 -0
  41. package/dist/cjs/helpers/getButtonSize.js.map +7 -0
  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 +137 -55
  46. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  47. package/dist/cjs/helpers/getStylesAtomic.js +20 -3
  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/getTextSize.js +56 -0
  51. package/dist/cjs/helpers/getTextSize.js.map +7 -0
  52. package/dist/cjs/helpers/insertStyleRule.js +42 -27
  53. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  54. package/dist/cjs/helpers/isObj.js +4 -0
  55. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  56. package/dist/cjs/helpers/matchMedia.js +4 -0
  57. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  58. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  59. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  60. package/dist/cjs/helpers/themeable.js +7 -2
  61. package/dist/cjs/helpers/themeable.js.map +2 -2
  62. package/dist/cjs/helpers/validate.js +53 -11
  63. package/dist/cjs/helpers/validate.js.map +2 -2
  64. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  65. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  66. package/dist/cjs/hooks/useConstant.js +4 -0
  67. package/dist/cjs/hooks/useFeatures.js +4 -0
  68. package/dist/cjs/hooks/useId.js +59 -0
  69. package/dist/cjs/hooks/useId.js.map +7 -0
  70. package/dist/cjs/hooks/useIsMounted.js +4 -0
  71. package/dist/cjs/hooks/useIsTouchDevice.js +8 -4
  72. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  73. package/dist/cjs/hooks/useMedia.js +14 -0
  74. package/dist/cjs/hooks/useMedia.js.map +2 -2
  75. package/dist/cjs/hooks/usePressable.js +4 -0
  76. package/dist/cjs/hooks/usePrevious.js +1 -0
  77. package/dist/cjs/{createShallowUpdate.js.map → hooks/usePrevious.js.map} +0 -0
  78. package/dist/cjs/hooks/useTheme.js +30 -16
  79. package/dist/cjs/hooks/useTheme.js.map +2 -2
  80. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  81. package/dist/cjs/index.js +24 -6
  82. package/dist/cjs/index.js.map +2 -2
  83. package/dist/cjs/static.js +3 -0
  84. package/dist/cjs/static.js.map +2 -2
  85. package/dist/cjs/styled.js +11 -5
  86. package/dist/cjs/styled.js.map +2 -2
  87. package/dist/cjs/types.js.map +1 -1
  88. package/dist/cjs/views/Slot.js +134 -0
  89. package/dist/cjs/views/Slot.js.map +7 -0
  90. package/dist/cjs/views/Stack.js +4 -0
  91. package/dist/cjs/views/Text.js +13 -14
  92. package/dist/cjs/views/Text.js.map +2 -2
  93. package/dist/cjs/views/TextAncestorContext.js +6 -0
  94. package/dist/cjs/views/Theme.js +7 -3
  95. package/dist/cjs/views/Theme.js.map +2 -2
  96. package/dist/cjs/views/ThemeInverse.js +10 -1
  97. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  98. package/dist/cjs/views/ThemeProvider.js +6 -1
  99. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  100. package/dist/cjs/views/ThemeReset.js +4 -0
  101. package/dist/esm/Tamagui.js +8 -2
  102. package/dist/esm/Tamagui.js.map +2 -2
  103. package/dist/esm/ThemeManager.js +21 -11
  104. package/dist/esm/ThemeManager.js.map +2 -2
  105. package/dist/esm/conf.js +0 -1
  106. package/dist/esm/conf.js.map +2 -2
  107. package/dist/esm/constants/platform.js +2 -0
  108. package/dist/esm/constants/platform.js.map +2 -2
  109. package/dist/esm/createComponent.js +170 -104
  110. package/dist/esm/createComponent.js.map +2 -2
  111. package/dist/esm/createTamagui.js +45 -28
  112. package/dist/esm/createTamagui.js.map +2 -2
  113. package/dist/esm/createTokens.js +2 -6
  114. package/dist/esm/createTokens.js.map +2 -2
  115. package/dist/esm/createVariable.js +8 -2
  116. package/dist/esm/createVariable.js.map +2 -2
  117. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  118. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  119. package/dist/esm/helpers/createMediaStyle.js +0 -2
  120. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  121. package/dist/esm/helpers/createPropMapper.js +50 -22
  122. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  123. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  124. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  125. package/dist/esm/helpers/fixNativeShadow.native.js +7 -9
  126. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  127. package/dist/esm/helpers/getButtonSize.js +24 -0
  128. package/dist/esm/helpers/getButtonSize.js.map +7 -0
  129. package/dist/esm/helpers/getSize.js +13 -0
  130. package/dist/esm/helpers/getSize.js.map +7 -0
  131. package/dist/esm/helpers/getSplitStyles.js +136 -57
  132. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  133. package/dist/esm/helpers/getStylesAtomic.js +15 -3
  134. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  135. package/dist/esm/helpers/getTextSize.js +34 -0
  136. package/dist/esm/helpers/getTextSize.js.map +7 -0
  137. package/dist/esm/helpers/insertStyleRule.js +32 -27
  138. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  139. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  140. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  141. package/dist/esm/helpers/themeable.js +3 -2
  142. package/dist/esm/helpers/themeable.js.map +2 -2
  143. package/dist/esm/helpers/validate.js +24 -11
  144. package/dist/esm/helpers/validate.js.map +2 -2
  145. package/dist/esm/hooks/useId.js +35 -0
  146. package/dist/esm/hooks/useId.js.map +7 -0
  147. package/dist/esm/hooks/useIsTouchDevice.js +6 -6
  148. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  149. package/dist/esm/hooks/useMedia.js +3 -0
  150. package/dist/esm/hooks/useMedia.js.map +2 -2
  151. package/dist/esm/hooks/usePrevious.js +1 -0
  152. package/dist/esm/{createShallowUpdate.js.map → hooks/usePrevious.js.map} +0 -0
  153. package/dist/esm/hooks/useTheme.js +22 -16
  154. package/dist/esm/hooks/useTheme.js.map +2 -2
  155. package/dist/esm/index.js +13 -6
  156. package/dist/esm/index.js.map +2 -2
  157. package/dist/esm/static.js +3 -0
  158. package/dist/esm/static.js.map +2 -2
  159. package/dist/esm/styled.js +7 -5
  160. package/dist/esm/styled.js.map +2 -2
  161. package/dist/esm/views/Slot.js +82 -0
  162. package/dist/esm/views/Slot.js.map +7 -0
  163. package/dist/esm/views/Text.js +9 -14
  164. package/dist/esm/views/Text.js.map +2 -2
  165. package/dist/esm/views/Theme.js +3 -3
  166. package/dist/esm/views/Theme.js.map +2 -2
  167. package/dist/esm/views/ThemeInverse.js +6 -2
  168. package/dist/esm/views/ThemeInverse.js.map +2 -2
  169. package/dist/esm/views/ThemeProvider.js +2 -1
  170. package/dist/esm/views/ThemeProvider.js.map +2 -2
  171. package/dist/jsx/Tamagui.js +8 -2
  172. package/dist/jsx/ThemeManager.js +21 -11
  173. package/dist/jsx/conf.js +0 -1
  174. package/dist/jsx/constants/platform.js +2 -0
  175. package/dist/jsx/createComponent.js +161 -100
  176. package/dist/jsx/createTamagui.js +45 -28
  177. package/dist/jsx/createTokens.js +2 -6
  178. package/dist/jsx/createVariable.js +8 -2
  179. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  180. package/dist/jsx/helpers/createMediaStyle.js +0 -2
  181. package/dist/jsx/helpers/createPropMapper.js +50 -22
  182. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  183. package/dist/jsx/helpers/fixNativeShadow.native.js +7 -9
  184. package/dist/jsx/helpers/getButtonSize.js +23 -0
  185. package/dist/jsx/helpers/getSize.js +12 -0
  186. package/dist/jsx/helpers/getSplitStyles.js +136 -57
  187. package/dist/jsx/helpers/getStylesAtomic.js +15 -3
  188. package/dist/jsx/helpers/getTextSize.js +33 -0
  189. package/dist/jsx/helpers/insertStyleRule.js +32 -27
  190. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  191. package/dist/jsx/helpers/themeable.js +3 -3
  192. package/dist/jsx/helpers/validate.js +24 -11
  193. package/dist/jsx/hooks/useId.js +34 -0
  194. package/dist/jsx/hooks/useIsTouchDevice.js +6 -6
  195. package/dist/jsx/hooks/useMedia.js +3 -0
  196. package/dist/jsx/{createShallowUpdate.js → hooks/usePrevious.js} +0 -0
  197. package/dist/jsx/hooks/useTheme.js +22 -16
  198. package/dist/jsx/index.js +13 -6
  199. package/dist/jsx/static.js +3 -0
  200. package/dist/jsx/styled.js +7 -5
  201. package/dist/jsx/views/Slot.js +75 -0
  202. package/dist/jsx/views/Text.js +9 -14
  203. package/dist/jsx/views/Theme.js +4 -4
  204. package/dist/jsx/views/ThemeInverse.js +6 -1
  205. package/dist/jsx/views/ThemeProvider.js +2 -2
  206. package/package.json +8 -6
  207. package/types/Tamagui.d.ts +16 -1
  208. package/types/Tamagui.d.ts.map +1 -1
  209. package/types/ThemeManager.d.ts +3 -3
  210. package/types/ThemeManager.d.ts.map +1 -1
  211. package/types/conf.d.ts +2 -0
  212. package/types/conf.d.ts.map +1 -1
  213. package/types/constants/platform.d.ts +1 -0
  214. package/types/constants/platform.d.ts.map +1 -1
  215. package/types/createComponent.d.ts +3 -4
  216. package/types/createComponent.d.ts.map +1 -1
  217. package/types/createTamagui.d.ts +3 -1
  218. package/types/createTamagui.d.ts.map +1 -1
  219. package/types/createTokens.d.ts +0 -26
  220. package/types/createTokens.d.ts.map +1 -1
  221. package/types/createVariable.d.ts +1 -0
  222. package/types/createVariable.d.ts.map +1 -1
  223. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  224. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  225. package/types/helpers/createPropMapper.d.ts +1 -1
  226. package/types/helpers/createPropMapper.d.ts.map +1 -1
  227. package/types/helpers/extendStaticConfig.d.ts +2 -2
  228. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  229. package/types/helpers/fixNativeShadow.native.d.ts +2 -1
  230. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -1
  231. package/types/helpers/getButtonSize.d.ts +8 -0
  232. package/types/helpers/getButtonSize.d.ts.map +1 -0
  233. package/types/helpers/getSize.d.ts +3 -0
  234. package/types/helpers/getSize.d.ts.map +1 -0
  235. package/types/helpers/getSplitStyles.d.ts +14 -6
  236. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  237. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  238. package/types/helpers/getTextSize.d.ts +3 -0
  239. package/types/helpers/getTextSize.d.ts.map +1 -0
  240. package/types/helpers/insertStyleRule.d.ts +2 -1
  241. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  242. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  243. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  244. package/types/helpers/themeable.d.ts +3 -1
  245. package/types/helpers/themeable.d.ts.map +1 -1
  246. package/types/helpers/validate.d.ts.map +1 -1
  247. package/types/hooks/useId.d.ts +9 -0
  248. package/types/hooks/useId.d.ts.map +1 -0
  249. package/types/hooks/useMedia.d.ts +2 -6
  250. package/types/hooks/useMedia.d.ts.map +1 -1
  251. package/types/hooks/usePrevious.d.ts +1 -0
  252. package/types/hooks/usePrevious.d.ts.map +1 -0
  253. package/types/hooks/useTheme.d.ts +1 -1
  254. package/types/hooks/useTheme.d.ts.map +1 -1
  255. package/types/index.d.ts +11 -6
  256. package/types/index.d.ts.map +1 -1
  257. package/types/static.d.ts +3 -0
  258. package/types/static.d.ts.map +1 -1
  259. package/types/styled.d.ts +12 -3
  260. package/types/styled.d.ts.map +1 -1
  261. package/types/types.d.ts +86 -46
  262. package/types/types.d.ts.map +1 -1
  263. package/types/views/Slot.d.ts +9 -0
  264. package/types/views/Slot.d.ts.map +1 -0
  265. package/types/views/Text.d.ts.map +1 -1
  266. package/types/views/Theme.d.ts +1 -0
  267. package/types/views/Theme.d.ts.map +1 -1
  268. package/types/views/ThemeInverse.d.ts.map +1 -1
  269. package/types/views/ThemeProvider.d.ts +1 -0
  270. package/types/views/ThemeProvider.d.ts.map +1 -1
  271. package/LICENSE +0 -21
  272. package/dist/cjs/constants/pseudos.js.map +0 -7
  273. package/dist/cjs/createShallowUpdate.js +0 -1
  274. package/dist/cjs/devtools.js +0 -32
  275. package/dist/cjs/devtools.js.map +0 -7
  276. package/dist/cjs/spacedChildren.js +0 -86
  277. package/dist/cjs/spacedChildren.js.map +0 -7
  278. package/dist/cjs/tamagui-base.css +0 -8
  279. package/dist/cjs/tamagui-base.css.map +0 -7
  280. package/dist/esm/constants/pseudos.js +0 -18
  281. package/dist/esm/constants/pseudos.js.map +0 -7
  282. package/dist/esm/createShallowUpdate.js +0 -1
  283. package/dist/esm/devtools.js +0 -14
  284. package/dist/esm/devtools.js.map +0 -7
  285. package/dist/esm/spacedChildren.js +0 -52
  286. package/dist/esm/spacedChildren.js.map +0 -7
  287. package/dist/esm/tamagui-base.css +0 -8
  288. package/dist/esm/tamagui-base.css.map +0 -7
  289. package/dist/jsx/constants/pseudos.js +0 -17
  290. package/dist/jsx/devtools.js +0 -13
  291. package/dist/jsx/spacedChildren.js +0 -44
  292. package/dist/jsx/tamagui-base.css +0 -7
  293. package/types/spacedChildren.d.ts +0 -9
  294. package/types/spacedChildren.d.ts.map +0 -1
@@ -33,64 +33,97 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
33
33
  var getSplitStyles_exports = {};
34
34
  __export(getSplitStyles_exports, {
35
35
  getSplitStyles: () => getSplitStyles,
36
- getSubStyle: () => getSubStyle
36
+ getSubStyle: () => getSubStyle,
37
+ insertSplitStyles: () => insertSplitStyles,
38
+ normalizeStyleObject: () => normalizeStyleObject,
39
+ useSplitStyles: () => useSplitStyles
37
40
  });
38
41
  module.exports = __toCommonJS(getSplitStyles_exports);
39
42
  var import_helpers = require("@tamagui/helpers");
43
+ var import_react = require("react");
44
+ var import_conf = require("../conf");
40
45
  var import_platform = require("../constants/platform");
41
46
  var import_useMedia = require("../hooks/useMedia");
42
47
  var import_createMediaStyle = require("./createMediaStyle");
43
48
  var import_fixNativeShadow = require("./fixNativeShadow");
44
49
  var import_getStylesAtomic = require("./getStylesAtomic");
45
50
  var import_insertStyleRule = require("./insertStyleRule");
46
- const skipKeys = {
51
+ const skipProps = __spreadValues({
47
52
  animation: true,
48
- animated: true,
49
- children: true,
50
- key: true,
51
- ref: true
52
- };
53
- function normalizeStyleObject(style) {
54
- if (typeof style.flex === "number") {
55
- const val = style.flex;
56
- delete style.flex;
57
- style.flexGrow = style.flexGrow ?? val;
58
- style.flexShrink = style.flexShrink ?? 1;
59
- }
60
- if (!import_platform.isWeb) {
61
- (0, import_fixNativeShadow.fixNativeShadow)(style);
62
- }
63
- }
64
- __name(normalizeStyleObject, "normalizeStyleObject");
53
+ animateOnly: true,
54
+ debug: true
55
+ }, !import_platform.isWeb && {
56
+ tag: true,
57
+ whiteSpace: true,
58
+ wordWrap: true,
59
+ textOverflow: true,
60
+ textDecorationDistance: true,
61
+ userSelect: true,
62
+ selectable: true,
63
+ cursor: true,
64
+ contain: true,
65
+ pointerEvents: true,
66
+ boxSizing: true,
67
+ boxShadow: true
68
+ });
69
+ let conf;
65
70
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
71
+ var _a;
72
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
73
+ console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
74
+ }
75
+ conf = conf || (0, import_conf.getConfig)();
66
76
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
67
77
  const viewProps = {};
68
78
  const style = {};
69
79
  const classNames = __spreadValues({}, defaultClassNames);
70
80
  const pseudos = {};
71
81
  const medias = {};
82
+ const rulesToInsert = [];
83
+ function addStyle(prop, rule) {
84
+ rulesToInsert.push([prop, rule]);
85
+ (0, import_insertStyleRule.updateInsertedCache)(prop, rule);
86
+ }
87
+ __name(addStyle, "addStyle");
72
88
  let cur = null;
73
89
  let transforms = {};
74
90
  function mergeClassName(key, val) {
75
- if (!val)
91
+ if (!val) {
76
92
  return;
93
+ }
77
94
  if (val.startsWith("_transform-")) {
78
95
  const isMediaOrPseudo = key !== "transform";
79
96
  const isMedia = isMediaOrPseudo && key[11] === "_";
80
- const isPsuedo = isMediaOrPseudo && key[11] === "0";
97
+ const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
81
98
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
82
99
  let transform = import_insertStyleRule.insertedTransforms[val];
83
- if (!transform) {
84
- (0, import_insertStyleRule.updateInserted)();
85
- }
86
- transform = import_insertStyleRule.insertedTransforms[val];
87
- if (!transform || transform === "undefined") {
88
- console.log("NO TRANSFORM", { key, val, transform });
89
- return;
100
+ if (import_platform.isClient) {
101
+ if (!transform) {
102
+ (0, import_insertStyleRule.updateInserted)();
103
+ transform = import_insertStyleRule.insertedTransforms[val];
104
+ }
105
+ if (!transform) {
106
+ if (import_platform.isWeb && val[0] !== "_") {
107
+ transform = val;
108
+ } else {
109
+ console.trace("?", key, val, cur, props, state);
110
+ }
111
+ }
112
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
113
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms: import_insertStyleRule.insertedTransforms });
114
+ }
115
+ if (process.env.NODE_ENV === "development") {
116
+ if (!transform) {
117
+ console.trace("NO TRANSFORM?", { key, val, transform });
118
+ }
119
+ }
90
120
  }
91
121
  transforms[namespace] = transforms[namespace] || ["", ""];
92
- transforms[namespace][0] += val.replace("_transform", "");
93
- transforms[namespace][1] += transform;
122
+ const identifier = val.replace("_transform", "");
123
+ transforms[namespace][0] += identifier;
124
+ if (transform) {
125
+ transforms[namespace][1] += transform;
126
+ }
94
127
  } else {
95
128
  classNames[key] = val;
96
129
  }
@@ -100,12 +133,15 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
100
133
  if (!cur)
101
134
  return;
102
135
  normalizeStyleObject(cur);
136
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
137
+ console.log(" \xBB getSplitStyles push", cur, state);
138
+ }
103
139
  if (import_platform.isWeb && !state.noClassNames) {
104
140
  const atomic = (0, import_getStylesAtomic.getStylesAtomic)(cur);
105
141
  for (const atomicStyle of atomic) {
106
142
  if (!state.noClassNames) {
143
+ addStyle(atomicStyle.identifier, atomicStyle.rules[0]);
107
144
  mergeClassName(atomicStyle.property, atomicStyle.identifier);
108
- (0, import_insertStyleRule.insertStyleRule)(atomicStyle.identifier, atomicStyle.rules[0]);
109
145
  } else {
110
146
  style[atomicStyle.property] = atomicStyle.value;
111
147
  }
@@ -113,6 +149,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
113
149
  }
114
150
  if (!import_platform.isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
115
151
  for (const key in cur) {
152
+ if (skipProps[key]) {
153
+ continue;
154
+ }
116
155
  if (key in import_helpers.stylePropsTransform) {
117
156
  (0, import_helpers.mergeTransform)(style, key, cur[key]);
118
157
  } else {
@@ -124,27 +163,37 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
124
163
  }
125
164
  __name(push, "push");
126
165
  for (const keyInit in props) {
166
+ if (skipProps[keyInit]) {
167
+ continue;
168
+ }
169
+ if (!import_platform.isWeb && keyInit.startsWith("data-")) {
170
+ continue;
171
+ }
127
172
  const valInit = props[keyInit];
128
- if (skipKeys[keyInit]) {
129
- viewProps[keyInit] = valInit;
173
+ if (keyInit === "style" || keyInit.startsWith("_style")) {
174
+ push();
175
+ cur = valInit;
176
+ push();
130
177
  continue;
131
178
  }
132
179
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
133
180
  push();
134
181
  mergeClassName(keyInit, valInit);
135
- if (cur) {
136
- if (cur[keyInit])
137
- console.warn("just want to see how used");
138
- delete cur[keyInit];
139
- }
140
182
  continue;
141
183
  }
184
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
185
+ viewProps[keyInit] = valInit;
186
+ }
142
187
  let isMedia = keyInit[0] === "$";
143
188
  let isPseudo = import_helpers.validPseudoKeys[keyInit];
189
+ if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
190
+ viewProps[keyInit] = valInit;
191
+ continue;
192
+ }
144
193
  const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
145
194
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
146
195
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
147
- console.log("split style", keyInit, expanded);
196
+ console.log(" \xBB getSplitStyles", keyInit, expanded);
148
197
  }
149
198
  for (const [key, val] of expanded) {
150
199
  if (val === void 0) {
@@ -170,26 +219,30 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
170
219
  if (import_platform.isWeb && !state.noClassNames) {
171
220
  const pseudoStyles = (0, import_getStylesAtomic.getStylesAtomic)({ [key]: pseudos[key] });
172
221
  for (const style2 of pseudoStyles) {
222
+ addStyle(style2.identifier, style2.rules[0]);
173
223
  mergeClassName(`${style2.property}-${key}`, style2.identifier);
174
- (0, import_insertStyleRule.insertStyleRule)(style2.identifier, style2.rules[0]);
175
224
  }
176
225
  }
177
226
  continue;
178
227
  }
179
228
  if (isMedia) {
180
229
  const mediaKey = key;
181
- if (!import_useMedia.mediaQueryConfig[mediaKey.slice(1)]) {
230
+ const mediaKeyShort = mediaKey.slice(1);
231
+ if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
182
232
  viewProps[key] = val;
183
233
  continue;
184
234
  }
185
- const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, true);
235
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
236
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
237
+ console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
238
+ }
186
239
  const shouldDoClasses = import_platform.isWeb && !state.noClassNames;
187
240
  if (shouldDoClasses) {
188
241
  const mediaStyles = (0, import_getStylesAtomic.getStylesAtomic)(mediaStyle);
189
242
  for (const style2 of mediaStyles) {
190
- const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKey.slice(1), import_useMedia.mediaQueryConfig);
243
+ const out2 = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
244
+ addStyle(out2.identifier, out2.styleRule);
191
245
  mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
192
- (0, import_insertStyleRule.insertStyleRule)(out2.identifier, out2.styleRule);
193
246
  }
194
247
  } else {
195
248
  if (import_useMedia.mediaState[mediaKey]) {
@@ -202,11 +255,6 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
202
255
  }
203
256
  continue;
204
257
  }
205
- if (key === "style" || key.startsWith("_style")) {
206
- push();
207
- Object.assign(style, val);
208
- continue;
209
- }
210
258
  if (!import_platform.isWeb && key === "pointerEvents") {
211
259
  viewProps[key] = val;
212
260
  continue;
@@ -217,7 +265,7 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
217
265
  continue;
218
266
  }
219
267
  if (!staticConfig.variants || !(key in staticConfig.variants)) {
220
- if (key !== "animation" && key !== "debug") {
268
+ if (!skipProps[key]) {
221
269
  push();
222
270
  viewProps[key] = val;
223
271
  }
@@ -229,24 +277,44 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
229
277
  for (const namespace in transforms) {
230
278
  const [hash, val] = transforms[namespace];
231
279
  const identifier = `_transform${hash}`;
232
- if (!import_insertStyleRule.insertedTransforms[identifier]) {
233
- const rule = `.${identifier} { transform: ${val}; }`;
234
- (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
280
+ if (import_platform.isClient) {
281
+ if (!import_insertStyleRule.insertedTransforms[identifier]) {
282
+ const rule = `.${identifier} { transform: ${val}; }`;
283
+ addStyle(identifier, rule);
284
+ }
235
285
  }
236
286
  classNames[namespace] = identifier;
237
287
  }
238
288
  }
239
289
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
240
- console.log("out", { style, pseudos, medias, classNames, viewProps });
290
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
241
291
  }
242
292
  return {
243
293
  viewProps,
244
294
  style,
245
295
  medias,
246
296
  pseudos,
247
- classNames
297
+ classNames,
298
+ rulesToInsert
248
299
  };
249
300
  }, "getSplitStyles");
301
+ const insertSplitStyles = /* @__PURE__ */ __name((...args) => {
302
+ const res = getSplitStyles(...args);
303
+ for (const [prop, rule] of res.rulesToInsert) {
304
+ (0, import_insertStyleRule.insertStyleRule)(prop, rule);
305
+ }
306
+ return res;
307
+ }, "insertSplitStyles");
308
+ const effect = import_react.useInsertionEffect || import_platform.useIsomorphicLayoutEffect;
309
+ const useSplitStyles = /* @__PURE__ */ __name((...args) => {
310
+ const res = getSplitStyles(...args);
311
+ effect(() => {
312
+ for (const [prop, rule] of res.rulesToInsert) {
313
+ (0, import_insertStyleRule.insertStyleRule)(prop, rule);
314
+ }
315
+ });
316
+ return res;
317
+ }, "useSplitStyles");
250
318
  const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
251
319
  const styleOut = {};
252
320
  for (const key in styleIn) {
@@ -264,4 +332,18 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
264
332
  normalizeStyleObject(styleOut);
265
333
  return styleOut;
266
334
  }, "getSubStyle");
335
+ function normalizeStyleObject(style) {
336
+ if (!import_platform.isWeb) {
337
+ (0, import_fixNativeShadow.fixNativeShadow)(style);
338
+ }
339
+ }
340
+ __name(normalizeStyleObject, "normalizeStyleObject");
341
+ // Annotate the CommonJS export names for ESM import in node:
342
+ 0 && (module.exports = {
343
+ getSplitStyles,
344
+ getSubStyle,
345
+ insertSplitStyles,
346
+ normalizeStyleObject,
347
+ useSplitStyles
348
+ });
267
349
  //# sourceMappingURL=getSplitStyles.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getSplitStyles.tsx"],
4
- "sourcesContent": ["import {\n mergeTransform,\n stylePropsText,\n stylePropsTransform,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport { ViewStyle } from 'react-native'\n\nimport { isWeb } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport {\n MediaKeys,\n MediaQueryKey,\n PseudoStyles,\n PsuedoPropKeys,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n ThemeObject,\n} from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { ResolveVariableTypes } from './createPropMapper'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { ViewStyleWithPseudos, getStylesAtomic } from './getStylesAtomic'\nimport { insertStyleRule, insertedTransforms, updateInserted } from './insertStyleRule'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\n\nconst skipKeys = {\n // could put events in here\n animation: true,\n animated: true,\n children: true,\n key: true,\n ref: true,\n}\n\nexport type ClassNamesObject = Record<string, string>\n\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nfunction normalizeStyleObject(style: any) {\n // fix flex to match web\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (typeof style.flex === 'number') {\n const val = style.flex\n delete style.flex\n style.flexGrow = style.flexGrow ?? val\n style.flexShrink = style.flexShrink ?? 1\n }\n\n if (!isWeb) {\n fixNativeShadow(style)\n }\n}\n\ntype TransformNamespaceKey = 'transform' | PsuedoPropKeys | MediaQueryKey\n\n// TODO can make a few of these objects lazy if profiling seems slow\n\nexport const getSplitStyles = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: ClassNamesObject | null\n) => {\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const style: ViewStyle = {}\n const classNames: ClassNamesObject = {\n ...defaultClassNames,\n }\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n let cur: ViewStyleWithPseudos | null = null\n\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms: Record<TransformNamespaceKey, [string, string]> = {}\n\n function mergeClassName(key: string, val: string) {\n if (!val) return\n if (val.startsWith('_transform-')) {\n const isMediaOrPseudo = key !== 'transform'\n const isMedia = isMediaOrPseudo && key[11] === '_'\n const isPsuedo = isMediaOrPseudo && key[11] === '0'\n const namespace: TransformNamespaceKey = isMedia\n ? key.split('_')[2]\n : isPsuedo\n ? key.split('-')[1]\n : 'transform'\n\n let transform = insertedTransforms[val]\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n }\n transform = insertedTransforms[val]\n if (!transform || transform === 'undefined') {\n console.log('NO TRANSFORM', { key, val, transform })\n return\n }\n transforms[namespace] = transforms[namespace] || ['', '']\n transforms[namespace][0] += val.replace('_transform', '')\n transforms[namespace][1] += transform\n } else {\n classNames[key] = val\n }\n }\n\n function push() {\n if (!cur) return\n normalizeStyleObject(cur)\n\n if (isWeb && !state.noClassNames) {\n const atomic = getStylesAtomic(cur)\n for (const atomicStyle of atomic) {\n if (!state.noClassNames) {\n mergeClassName(atomicStyle.property, atomicStyle.identifier)\n insertStyleRule(atomicStyle.identifier, atomicStyle.rules[0])\n } else {\n style[atomicStyle.property] = atomicStyle.value\n }\n }\n }\n\n if (\n !isWeb ||\n state.noClassNames ||\n state.resolveVariablesAs === 'value' ||\n state.resolveVariablesAs === 'both'\n ) {\n for (const key in cur) {\n if (key in stylePropsTransform) {\n mergeTransform(style, key, cur[key])\n } else {\n style[key] = cur[key]\n }\n }\n }\n\n // reset it for next group of styles\n cur = null\n }\n\n for (const keyInit in props) {\n const valInit = props[keyInit]\n\n if (skipKeys[keyInit]) {\n viewProps[keyInit] = valInit\n continue\n }\n\n if (\n // isPropClassName\n keyInit === 'className' ||\n // isExtractedClassName\n (validStyleProps[keyInit] && valInit && valInit[0] === '_')\n ) {\n push()\n mergeClassName(keyInit, valInit)\n if (cur) {\n if (cur[keyInit]) console.warn('just want to see how used')\n delete cur[keyInit]\n }\n continue\n }\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n\n const out =\n isMedia || isPseudo\n ? true\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n state.fallbackProps || props,\n state.resolveVariablesAs\n )\n\n const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log('split style', keyInit, expanded)\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) {\n continue\n }\n\n if (key !== 'target' && val && val[0] === '_') {\n mergeClassName(key, val)\n continue\n }\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key))\n ) {\n viewProps[key] = val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true)\n if (isWeb && !state.noClassNames) {\n const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] })\n for (const style of pseudoStyles) {\n mergeClassName(`${style.property}-${key}`, style.identifier)\n insertStyleRule(style.identifier, style.rules[0])\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n\n if (!mediaQueryConfig[mediaKey.slice(1)]) {\n // this isn't a media key, pass through\n viewProps[key] = val\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, true)\n\n const shouldDoClasses = isWeb && !state.noClassNames\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKey.slice(1), mediaQueryConfig)\n mergeClassName(`${out.identifier}-${mediaKey}`, out.identifier)\n insertStyleRule(out.identifier, out.styleRule)\n }\n } else {\n if (mediaState[mediaKey]) {\n push()\n if (process.env.NODE_ENV === 'development' && props['debug']) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n // TODO\n if (key === 'style' || key.startsWith('_style')) {\n push()\n Object.assign(style, val)\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n cur = cur || {}\n cur[key] = val\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (key !== 'animation' && key !== 'debug') {\n push()\n viewProps[key] = val\n }\n }\n }\n }\n\n push()\n\n if (transforms) {\n for (const namespace in transforms) {\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n insertStyleRule(identifier, rule)\n }\n classNames[namespace] = identifier\n }\n }\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log('out', { style, pseudos, medias, classNames, viewProps })\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n }\n}\n\nexport const getSubStyle = (\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n const val = styleIn[key]\n const out = staticConfig.propMapper(\n key,\n val,\n theme,\n state.fallbackProps || props,\n state.resolveVariablesAs,\n avoidDefaultProps\n )\n const expanded = out === true || !out ? [[key, val]] : Object.entries(out)\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n normalizeStyleObject(styleOut)\n return styleOut\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n mergeTransform,\n stylePropsText,\n stylePropsTransform,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\n// @ts-ignore\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport {\n MediaKeys,\n MediaQueryKey,\n PseudoStyles,\n PsuedoPropKeys,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { ViewStyleWithPseudos, getStylesAtomic } from './getStylesAtomic'\nimport {\n insertStyleRule,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n pointerEvents: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PsuedoPropKeys | MediaQueryKey\n\n// TODO can make a few of these objects lazy if profiling seems slow\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState & {\n keepVariantsAsProps?: boolean\n },\n defaultClassNames?: any\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaKeys, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: [string, string][]\n viewProps: StackProps\n}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames\n) => {\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles', { props, state, defaultClassNames })\n }\n\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const style: ViewStyle = {}\n const classNames: ClassNamesObject = {\n ...defaultClassNames,\n }\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n\n const rulesToInsert: [string, string][] = []\n function addStyle(prop: string, rule: string) {\n rulesToInsert.push([prop, rule])\n updateInsertedCache(prop, rule)\n }\n\n let cur: ViewStyleWithPseudos | null = null\n\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms: Record<TransformNamespaceKey, [string, string]> = {}\n\n function mergeClassName(key: string, val: string) {\n if (!val) {\n // empty classnames passed by compiler sometimes\n return\n }\n if (val.startsWith('_transform-')) {\n const isMediaOrPseudo = key !== 'transform'\n const isMedia = isMediaOrPseudo && key[11] === '_'\n const isPsuedo = (isMediaOrPseudo && key[11] === '0') || key.endsWith('Style')\n const namespace: TransformNamespaceKey = isMedia\n ? key.split('_')[2]\n : isPsuedo\n ? key.split('-')[1]\n : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n } else {\n // error\n console.trace('?', key, val, cur, props, state)\n }\n }\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.trace('NO TRANSFORM?', { key, val, transform })\n }\n }\n }\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n\n function push() {\n if (!cur) return\n normalizeStyleObject(cur)\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles push', cur, state)\n }\n\n if (isWeb && !state.noClassNames) {\n const atomic = getStylesAtomic(cur)\n for (const atomicStyle of atomic) {\n if (!state.noClassNames) {\n addStyle(atomicStyle.identifier, atomicStyle.rules[0])\n mergeClassName(atomicStyle.property, atomicStyle.identifier)\n } else {\n style[atomicStyle.property] = atomicStyle.value\n }\n }\n }\n\n if (\n !isWeb ||\n state.noClassNames ||\n state.resolveVariablesAs === 'value' ||\n state.resolveVariablesAs === 'both'\n ) {\n for (const key in cur) {\n if (skipProps[key]) {\n continue\n }\n if (key in stylePropsTransform) {\n mergeTransform(style, key, cur[key])\n } else {\n style[key] = cur[key]\n }\n }\n }\n\n // reset it for next group of styles\n cur = null\n }\n\n for (const keyInit in props) {\n if (skipProps[keyInit]) {\n continue\n }\n if (!isWeb && keyInit.startsWith('data-')) {\n continue\n }\n\n const valInit = props[keyInit]\n\n // TODO\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n push()\n cur = valInit\n push()\n continue\n }\n\n if (keyInit === 'className' || (validStyleProps[keyInit] && valInit && valInit[0] === '_')) {\n push()\n mergeClassName(keyInit, valInit)\n continue\n }\n\n if (\n state.keepVariantsAsProps &&\n staticConfig.defaultVariants &&\n keyInit in staticConfig.defaultVariants\n ) {\n viewProps[keyInit] = valInit\n }\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n viewProps[keyInit] = valInit\n continue\n }\n\n const out =\n isMedia || isPseudo\n ? true\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n state.fallbackProps || props,\n state.resolveVariablesAs\n )\n\n const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles', keyInit, expanded)\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) {\n continue\n }\n\n if (key !== 'target' && val && val[0] === '_') {\n mergeClassName(key, val)\n continue\n }\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key))\n ) {\n viewProps[key] = val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true)\n if (isWeb && !state.noClassNames) {\n const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] })\n for (const style of pseudoStyles) {\n addStyle(style.identifier, style.rules[0])\n mergeClassName(`${style.property}-${key}`, style.identifier)\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n // this isn't a media key, pass through\n viewProps[key] = val\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(val, staticConfig, theme, props, state)\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles mediaStyle', mediaKey, mediaStyle, props)\n }\n\n const shouldDoClasses = isWeb && !state.noClassNames\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n addStyle(out.identifier, out.styleRule)\n mergeClassName(`${out.identifier}-${mediaKey}`, out.identifier)\n }\n } else {\n if (mediaState[mediaKey]) {\n push()\n if (process.env.NODE_ENV === 'development' && props['debug']) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n cur = cur || {}\n cur[key] = val\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n push()\n viewProps[key] = val\n }\n }\n }\n }\n\n push()\n\n if (transforms) {\n for (const namespace in transforms) {\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyle(identifier, rule)\n }\n }\n classNames[namespace] = identifier\n }\n }\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state })\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n return res\n}\n\nconst effect = useInsertionEffect || useIsomorphicLayoutEffect\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n effect(() => {\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n })\n return res\n}\n\nexport const getSubStyle = (\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n const val = styleIn[key]\n const out = staticConfig.propMapper(\n key,\n val,\n theme,\n state.fallbackProps || props,\n state.resolveVariablesAs,\n avoidDefaultProps\n )\n const expanded = out === true || !out ? [[key, val]] : Object.entries(out)\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n normalizeStyleObject(styleOut)\n return styleOut\n}\n\nexport function normalizeStyleObject(style: any) {\n if (!isWeb) {\n fixNativeShadow(style)\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -52,6 +52,7 @@ __export(getStylesAtomic_exports, {
52
52
  });
53
53
  module.exports = __toCommonJS(getStylesAtomic_exports);
54
54
  var import_helpers = require("@tamagui/helpers");
55
+ var import_conf = require("../conf");
55
56
  var import_rnw = require("../constants/rnw");
56
57
  var import_createVariable = require("../createVariable");
57
58
  function getStylesAtomic(stylesIn, options = {}) {
@@ -80,6 +81,7 @@ __name(getStylesAtomic, "getStylesAtomic");
80
81
  const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
81
82
  return import_rnw.rnw.atomic(import_rnw.rnw.createCompileableStyle(import_rnw.rnw.createReactDOMStyle(style)));
82
83
  }, "generateAtomicStyles");
84
+ let reversedShorthands = null;
83
85
  function getAtomicStyle(style, pseudo, options) {
84
86
  if (style == null || typeof style !== "object") {
85
87
  throw new Error(`Wrong style type: "${typeof style}": ${style}`);
@@ -101,16 +103,26 @@ function getAtomicStyle(style, pseudo, options) {
101
103
  atomicStyles[key] = __spreadProps(__spreadValues({}, out[key]), {
102
104
  transformProperty
103
105
  });
104
- console.log("got", JSON.stringify({ t, tKey, out, key, atomicStyles }, null, 2));
105
106
  }
106
107
  } else {
107
108
  atomicStyles = generateAtomicStyles(style);
108
109
  }
110
+ if (!reversedShorthands) {
111
+ reversedShorthands = {};
112
+ const conf = (0, import_conf.getConfig)();
113
+ if (conf.shorthands) {
114
+ for (const key in conf.shorthands) {
115
+ reversedShorthands[conf.shorthands[key]] = key;
116
+ }
117
+ }
118
+ }
109
119
  return Object.keys(atomicStyles).map((key) => {
110
120
  const val = atomicStyles[key];
111
- const [_, ogProperty, hash] = val.identifier.split("-");
121
+ const [_, a, b] = val.identifier.split("-");
122
+ const hash = b || a;
112
123
  const psuedoPrefix = pseudo ? `0${pseudo.name}-` : "";
113
- const identifier = `_${ogProperty}-${psuedoPrefix}${hash}`;
124
+ const shortProp = reversedShorthands[val.property] || val.property;
125
+ const identifier = `_${shortProp}-${psuedoPrefix}${hash}`;
114
126
  const className = `.${identifier}`;
115
127
  const rules = val.rules.map((rule) => {
116
128
  if (pseudo) {
@@ -157,4 +169,9 @@ const pseudos = {
157
169
  }
158
170
  };
159
171
  const pseudosOrdered = Object.values(pseudos);
172
+ // Annotate the CommonJS export names for ESM import in node:
173
+ 0 && (module.exports = {
174
+ getStylesAtomic,
175
+ pseudos
176
+ });
160
177
  //# sourceMappingURL=getStylesAtomic.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getStylesAtomic.ts"],
4
- "sourcesContent": ["import {\n StyleObject,\n invertMapTransformKeys,\n mergeTransform,\n stylePropsTransform,\n} from '@tamagui/helpers'\nimport { ViewStyle } from 'react-native'\n\nimport { rnw } from '../constants/rnw'\nimport { isVariable } from '../createVariable'\n\n// NOTE: going to refactor and merge getSplitStyles + getAtomicStyles into one\n// before i can do that need to not rely on rnw for generateAtomicStyles\n// will change that to not be external at all and just logically do it in the\n// merged getSplitStyles/getAtomicStyles file in one loop.\n\nexport type ViewStyleWithPseudos = ViewStyle & {\n hoverStyle?: ViewStyle\n pressStyle?: ViewStyle\n focusStyle?: ViewStyle\n}\n\ntype AtomicStyleOptions = {\n splitTransforms?: boolean\n}\n\nexport function getStylesAtomic(stylesIn: ViewStyleWithPseudos, options: AtomicStyleOptions = {}) {\n const { hoverStyle, pressStyle, focusStyle, ...base } = stylesIn\n let res: StyleObject[] = []\n\n // *1 order matched to *0\n for (const [index, style] of [hoverStyle, pressStyle, focusStyle, base].entries()) {\n if (!style || !Object.keys(style).length) {\n continue\n }\n const pseudo = pseudosOrdered[index]\n for (const skey in style) {\n const val = style[skey]\n if (isVariable(val)) {\n style[skey] = val.toString()\n }\n if (stylePropsTransform[skey]) {\n delete style[skey]\n mergeTransform(style, skey, val)\n }\n }\n res = [...res, ...getAtomicStyle(style, pseudo, options)]\n }\n\n return res\n}\n\nconst generateAtomicStyles = (style: ViewStyle) => {\n return rnw.atomic(rnw.createCompileableStyle(rnw.createReactDOMStyle(style))) as {\n [key: string]: StyleObject\n }\n}\n\nfunction getAtomicStyle(\n style: ViewStyle,\n pseudo: { name: string; priority: number } | undefined,\n options: AtomicStyleOptions\n): StyleObject[] {\n if (style == null || typeof style !== 'object') {\n throw new Error(`Wrong style type: \"${typeof style}\": ${style}`)\n }\n\n // why is this diff from react-native-web!? need to figure out\n for (const key in borderDefaults) {\n if (key in style) {\n style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'\n }\n }\n\n let atomicStyles: { [key: string]: StyleObject & { transformProperty?: string } } = {}\n\n if (options.splitTransforms && style.transform) {\n let { transform, ...rest } = style\n Object.assign(atomicStyles, generateAtomicStyles(rest))\n for (const t of transform) {\n const tKey = Object.keys(t)[0]\n const transformProperty = invertMapTransformKeys[tKey] || tKey\n const out = generateAtomicStyles({ transform: [t] })\n const key = Object.keys(out)[0]\n atomicStyles[key] = {\n ...out[key],\n transformProperty,\n }\n console.log('got', JSON.stringify({ t, tKey, out, key, atomicStyles }, null, 2))\n }\n } else {\n // TODO we can do this all in one loop likely inside getSplitStyles in existing loop and avoid O(n^3)...\n atomicStyles = generateAtomicStyles(style)\n }\n\n // TODO ... and then also avoid this loop! n^4\n return Object.keys(atomicStyles).map((key) => {\n const val = atomicStyles[key]\n // r-transform-1ns13n\n const [_, ogProperty, hash] = val.identifier.split('-')\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `0${pseudo.name}-` : ''\n const identifier = `_${ogProperty}-${psuedoPrefix}${hash}`\n const className = `.${identifier}`\n const rules = val.rules.map((rule) => {\n if (pseudo) {\n const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n let res = rule\n .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)\n .replace('{', `:${pseudo.name}{`)\n\n if (pseudo.name === 'hover') {\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n res = `@media not all and (hover: none) { ${res} }`\n }\n return res\n }\n return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')\n })\n\n const result: StyleObject = {\n property: val.transformProperty || val.property,\n value: val.value,\n identifier,\n className,\n rules,\n }\n\n return result\n })\n}\n\nconst importantRegex = /\\!important*/g\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\n// *0 order matches to *1\nexport const pseudos = {\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n}\n\nconst pseudosOrdered = Object.values(pseudos)\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n StyleObject,\n invertMapTransformKeys,\n mergeTransform,\n stylePropsTransform,\n} from '@tamagui/helpers'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { rnw } from '../constants/rnw'\nimport { isVariable } from '../createVariable'\n\n// NOTE: going to refactor and merge getSplitStyles + getAtomicStyles into one\n// before i can do that need to not rely on rnw for generateAtomicStyles\n// will change that to not be external at all and just logically do it in the\n// merged getSplitStyles/getAtomicStyles file in one loop.\n\nexport type ViewStyleWithPseudos = ViewStyle & {\n hoverStyle?: ViewStyle\n pressStyle?: ViewStyle\n focusStyle?: ViewStyle\n}\n\ntype AtomicStyleOptions = {\n splitTransforms?: boolean\n}\n\nexport function getStylesAtomic(stylesIn: ViewStyleWithPseudos, options: AtomicStyleOptions = {}) {\n const { hoverStyle, pressStyle, focusStyle, ...base } = stylesIn\n let res: StyleObject[] = []\n\n // *1 order matched to *0\n for (const [index, style] of [hoverStyle, pressStyle, focusStyle, base].entries()) {\n if (!style || !Object.keys(style).length) {\n continue\n }\n const pseudo = pseudosOrdered[index]\n for (const skey in style) {\n const val = style[skey]\n if (isVariable(val)) {\n style[skey] = val.toString()\n }\n if (stylePropsTransform[skey]) {\n delete style[skey]\n mergeTransform(style, skey, val)\n }\n }\n res = [...res, ...getAtomicStyle(style, pseudo, options)]\n }\n\n return res\n}\n\nconst generateAtomicStyles = (style: ViewStyle) => {\n return rnw.atomic(rnw.createCompileableStyle(rnw.createReactDOMStyle(style))) as {\n [key: string]: StyleObject\n }\n}\n\nlet reversedShorthands: Record<string, string> | null = null\n\nfunction getAtomicStyle(\n style: ViewStyle,\n pseudo: { name: string; priority: number } | undefined,\n options: AtomicStyleOptions\n): StyleObject[] {\n if (style == null || typeof style !== 'object') {\n throw new Error(`Wrong style type: \"${typeof style}\": ${style}`)\n }\n\n // why is this diff from react-native-web!? need to figure out\n for (const key in borderDefaults) {\n if (key in style) {\n style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'\n }\n }\n\n let atomicStyles: { [key: string]: StyleObject & { transformProperty?: string } } = {}\n\n if (options.splitTransforms && style.transform) {\n let { transform, ...rest } = style\n Object.assign(atomicStyles, generateAtomicStyles(rest))\n for (const t of transform) {\n const tKey = Object.keys(t)[0]\n const transformProperty = invertMapTransformKeys[tKey] || tKey\n const out = generateAtomicStyles({ transform: [t] })\n const key = Object.keys(out)[0]\n atomicStyles[key] = {\n ...out[key],\n transformProperty,\n }\n }\n } else {\n // TODO we can do this all in one loop likely inside getSplitStyles in existing loop and avoid O(n^3)...\n atomicStyles = generateAtomicStyles(style)\n }\n\n if (!reversedShorthands) {\n reversedShorthands = {}\n const conf = getConfig()\n if (conf.shorthands) {\n for (const key in conf.shorthands) {\n reversedShorthands[conf.shorthands[key]] = key\n }\n }\n }\n\n // TODO ... and then also avoid this loop! n^4\n return Object.keys(atomicStyles).map((key) => {\n const val = atomicStyles[key]\n // r-transform-1ns13n\n const [_, a, b] = val.identifier.split('-')\n // dev mode its \"r-transform-1ns13n\", prod its \"r-1ns13n\", normalize them\n const hash = b || a\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `0${pseudo.name}-` : ''\n const shortProp = reversedShorthands![val.property] || val.property\n const identifier = `_${shortProp}-${psuedoPrefix}${hash}`\n const className = `.${identifier}`\n const rules = val.rules.map((rule) => {\n if (pseudo) {\n const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n let res = rule\n .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)\n .replace('{', `:${pseudo.name}{`)\n\n if (pseudo.name === 'hover') {\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n res = `@media not all and (hover: none) { ${res} }`\n }\n return res\n }\n return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')\n })\n\n const result: StyleObject = {\n property: val.transformProperty || val.property,\n value: val.value,\n identifier,\n className,\n rules,\n }\n\n return result\n })\n}\n\nconst importantRegex = /\\!important*/g\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\n// *0 order matches to *1\nexport const pseudos = {\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n}\n\nconst pseudosOrdered = Object.values(pseudos)\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -25,4 +25,8 @@ function getStylesAtomic() {
25
25
  console.warn("no-op native");
26
26
  }
27
27
  __name(getStylesAtomic, "getStylesAtomic");
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ getStylesAtomic
31
+ });
28
32
  //# sourceMappingURL=getStylesAtomic.native.js.map
@@ -0,0 +1,56 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var getTextSize_exports = {};
20
+ __export(getTextSize_exports, {
21
+ getTextSize: () => getTextSize
22
+ });
23
+ module.exports = __toCommonJS(getTextSize_exports);
24
+ var import_createVariable = require("../createVariable");
25
+ const getTextSize = /* @__PURE__ */ __name((val = "$4", { fonts, theme, props }) => {
26
+ var _a, _b, _c;
27
+ const family = (0, import_createVariable.getVariableValue)(props.fontFamily) || "$body";
28
+ const font = fonts[family] || fonts["$body"];
29
+ if (!font) {
30
+ console.warn("\u26A0\uFE0F no font found", { family, fontTokens: Object.keys(fonts), val });
31
+ return;
32
+ }
33
+ const fontFamily = font.family;
34
+ const fontSize = props.fontSize || font.size[val];
35
+ const lineHeight = props.lineHeight || font.lineHeight[val];
36
+ const fontWeight = props.fontWeight || font.weight[val];
37
+ const letterSpacing = props.letterSpacing || font.letterSpacing[val];
38
+ const fontStyle = props.fontStyle || ((_a = font.style) == null ? void 0 : _a[val]);
39
+ const textTransform = props.textTransform || ((_b = font.transform) == null ? void 0 : _b[val]);
40
+ const color = props.color || ((_c = font.color) == null ? void 0 : _c[val]) || theme.color;
41
+ return {
42
+ color,
43
+ fontStyle,
44
+ textTransform,
45
+ fontFamily,
46
+ fontWeight,
47
+ letterSpacing,
48
+ fontSize,
49
+ lineHeight
50
+ };
51
+ }, "getTextSize");
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ getTextSize
55
+ });
56
+ //# sourceMappingURL=getTextSize.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/getTextSize.tsx"],
4
+ "sourcesContent": ["import { getVariableValue } from '../createVariable'\nimport { FontSizeTokens, TextProps, VariantSpreadFunction } from '../types'\n\nexport const getTextSize: VariantSpreadFunction<TextProps, FontSizeTokens> = (\n val = '$4',\n { fonts, theme, props }\n) => {\n const family = getVariableValue(props.fontFamily) || '$body'\n const font = fonts[family] || fonts['$body']\n if (!font) {\n console.warn('\u26A0\uFE0F no font found', { family, fontTokens: Object.keys(fonts), val })\n return\n }\n const fontFamily = font.family\n const fontSize = props.fontSize || font.size[val]\n const lineHeight = props.lineHeight || font.lineHeight[val]\n const fontWeight = props.fontWeight || font.weight[val]\n const letterSpacing = props.letterSpacing || font.letterSpacing[val]\n const fontStyle = props.fontStyle || font.style?.[val]\n const textTransform = props.textTransform || font.transform?.[val]\n const color = props.color || font.color?.[val] || theme.color\n return {\n color,\n fontStyle,\n textTransform,\n fontFamily,\n fontWeight,\n letterSpacing,\n fontSize,\n lineHeight,\n } as any\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAiC;AAG1B,MAAM,cAAgE,wBAC3E,MAAM,MACN,EAAE,OAAO,OAAO,YACb;AANL;AAOE,QAAM,SAAS,4CAAiB,MAAM,UAAU,KAAK;AACrD,QAAM,OAAO,MAAM,WAAW,MAAM;AACpC,MAAI,CAAC,MAAM;AACT,YAAQ,KAAK,8BAAoB,EAAE,QAAQ,YAAY,OAAO,KAAK,KAAK,GAAG,IAAI,CAAC;AAChF;AAAA,EACF;AACA,QAAM,aAAa,KAAK;AACxB,QAAM,WAAW,MAAM,YAAY,KAAK,KAAK;AAC7C,QAAM,aAAa,MAAM,cAAc,KAAK,WAAW;AACvD,QAAM,aAAa,MAAM,cAAc,KAAK,OAAO;AACnD,QAAM,gBAAgB,MAAM,iBAAiB,KAAK,cAAc;AAChE,QAAM,YAAY,MAAM,aAAa,YAAK,UAAL,mBAAa;AAClD,QAAM,gBAAgB,MAAM,iBAAiB,YAAK,cAAL,mBAAiB;AAC9D,QAAM,QAAQ,MAAM,SAAS,YAAK,UAAL,mBAAa,SAAQ,MAAM;AACxD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF,GA5B6E;",
6
+ "names": []
7
+ }