@tamagui/core 1.0.1-beta.26 → 1.0.1-beta.29

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 (113) hide show
  1. package/dist/cjs/ThemeManager.js +21 -10
  2. package/dist/cjs/ThemeManager.js.map +2 -2
  3. package/dist/cjs/constants/platform.js +6 -6
  4. package/dist/cjs/constants/platform.js.map +2 -2
  5. package/dist/cjs/constants/rnw.js.map +2 -2
  6. package/dist/cjs/createComponent.js +23 -20
  7. package/dist/cjs/createComponent.js.map +2 -2
  8. package/dist/cjs/createTamagui.js +10 -2
  9. package/dist/cjs/createTamagui.js.map +2 -2
  10. package/dist/cjs/helpers/createMediaStyle.js +1 -0
  11. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  12. package/dist/cjs/helpers/createPropMapper.js +9 -39
  13. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  14. package/dist/cjs/helpers/generateAtomicStyles.js +453 -0
  15. package/dist/cjs/helpers/generateAtomicStyles.js.map +7 -0
  16. package/dist/cjs/helpers/getSplitStyles.js +67 -65
  17. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  18. package/dist/cjs/helpers/getStylesAtomic.js +31 -40
  19. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  20. package/dist/cjs/helpers/mergeTransform.js +42 -0
  21. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  22. package/dist/cjs/helpers/prefixStyles.js +192 -0
  23. package/dist/cjs/helpers/prefixStyles.js.map +7 -0
  24. package/dist/cjs/hooks/useIsTouchDevice.js +1 -1
  25. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  26. package/dist/cjs/hooks/useTheme.js +8 -7
  27. package/dist/cjs/hooks/useTheme.js.map +2 -2
  28. package/dist/cjs/types.js.map +1 -1
  29. package/dist/cjs/views/Theme.js.map +2 -2
  30. package/dist/cjs/views/ThemeProvider.js +1 -1
  31. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  32. package/dist/cjs/views/ThemeReset.js +1 -0
  33. package/dist/cjs/views/ThemeReset.js.map +2 -2
  34. package/dist/esm/ThemeManager.js +21 -10
  35. package/dist/esm/ThemeManager.js.map +2 -2
  36. package/dist/esm/constants/platform.js +4 -4
  37. package/dist/esm/constants/platform.js.map +2 -2
  38. package/dist/esm/constants/rnw.js.map +2 -2
  39. package/dist/esm/createComponent.js +24 -20
  40. package/dist/esm/createComponent.js.map +2 -2
  41. package/dist/esm/createTamagui.js +8 -1
  42. package/dist/esm/createTamagui.js.map +2 -2
  43. package/dist/esm/helpers/createMediaStyle.js +1 -0
  44. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  45. package/dist/esm/helpers/createPropMapper.js +9 -40
  46. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  47. package/dist/esm/helpers/generateAtomicStyles.js +425 -0
  48. package/dist/esm/helpers/generateAtomicStyles.js.map +7 -0
  49. package/dist/esm/helpers/getSplitStyles.js +70 -73
  50. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  51. package/dist/esm/helpers/getStylesAtomic.js +26 -39
  52. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  53. package/dist/esm/helpers/mergeTransform.js +19 -0
  54. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  55. package/dist/esm/helpers/prefixStyles.js +166 -0
  56. package/dist/esm/helpers/prefixStyles.js.map +7 -0
  57. package/dist/esm/hooks/useIsTouchDevice.js +2 -2
  58. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  59. package/dist/esm/hooks/useTheme.js +8 -7
  60. package/dist/esm/hooks/useTheme.js.map +2 -2
  61. package/dist/esm/views/Theme.js.map +2 -2
  62. package/dist/esm/views/ThemeProvider.js +1 -1
  63. package/dist/esm/views/ThemeProvider.js.map +2 -2
  64. package/dist/esm/views/ThemeReset.js +1 -0
  65. package/dist/esm/views/ThemeReset.js.map +2 -2
  66. package/dist/jsx/ThemeManager.js +21 -10
  67. package/dist/jsx/constants/platform.js +4 -4
  68. package/dist/jsx/createComponent.js +24 -20
  69. package/dist/jsx/createTamagui.js +8 -1
  70. package/dist/jsx/helpers/createMediaStyle.js +1 -0
  71. package/dist/jsx/helpers/createPropMapper.js +9 -40
  72. package/dist/jsx/helpers/generateAtomicStyles.js +424 -0
  73. package/dist/jsx/helpers/getSplitStyles.js +70 -73
  74. package/dist/jsx/helpers/getStylesAtomic.js +26 -39
  75. package/dist/jsx/helpers/mergeTransform.js +18 -0
  76. package/dist/jsx/helpers/prefixStyles.js +165 -0
  77. package/dist/jsx/hooks/useIsTouchDevice.js +2 -2
  78. package/dist/jsx/hooks/useTheme.js +8 -7
  79. package/dist/jsx/views/ThemeProvider.js +1 -1
  80. package/dist/jsx/views/ThemeReset.js +1 -1
  81. package/package.json +8 -5
  82. package/reset.css +3 -2
  83. package/types/Tamagui.d.ts +1 -1
  84. package/types/Tamagui.d.ts.map +1 -1
  85. package/types/ThemeManager.d.ts +9 -6
  86. package/types/ThemeManager.d.ts.map +1 -1
  87. package/types/constants/platform.d.ts +2 -2
  88. package/types/constants/platform.d.ts.map +1 -1
  89. package/types/constants/rnw.d.ts +1 -1
  90. package/types/constants/rnw.d.ts.map +1 -1
  91. package/types/createComponent.d.ts.map +1 -1
  92. package/types/createTamagui.d.ts +1 -0
  93. package/types/createTamagui.d.ts.map +1 -1
  94. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  95. package/types/helpers/createPropMapper.d.ts +2 -2
  96. package/types/helpers/createPropMapper.d.ts.map +1 -1
  97. package/types/helpers/generateAtomicStyles.d.ts +22 -0
  98. package/types/helpers/generateAtomicStyles.d.ts.map +1 -0
  99. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  100. package/types/helpers/getStylesAtomic.d.ts +10 -10
  101. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  102. package/types/helpers/mergeTransform.d.ts +7 -0
  103. package/types/helpers/mergeTransform.d.ts.map +1 -0
  104. package/types/helpers/prefixStyles.d.ts +5 -0
  105. package/types/helpers/prefixStyles.d.ts.map +1 -0
  106. package/types/hooks/useTheme.d.ts +13 -4
  107. package/types/hooks/useTheme.d.ts.map +1 -1
  108. package/types/types.d.ts +3 -4
  109. package/types/types.d.ts.map +1 -1
  110. package/types/views/Theme.d.ts +1 -9
  111. package/types/views/Theme.d.ts.map +1 -1
  112. package/types/views/ThemeProvider.d.ts +1 -0
  113. package/types/views/ThemeProvider.d.ts.map +1 -1
@@ -1,12 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import {
4
- mergeTransform,
5
- stylePropsText,
6
- stylePropsTransform,
7
- validPseudoKeys,
8
- validStyles
9
- } from "@tamagui/helpers";
3
+ import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from "@tamagui/helpers";
10
4
  import { useInsertionEffect } from "react";
11
5
  import { getConfig } from "../conf";
12
6
  import { isClient, isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
@@ -20,6 +14,7 @@ import {
20
14
  updateInserted,
21
15
  updateInsertedCache
22
16
  } from "./insertStyleRule";
17
+ import { mergeTransform } from "./mergeTransform";
23
18
  const skipProps = {
24
19
  animation: true,
25
20
  animateOnly: true,
@@ -42,18 +37,14 @@ const skipProps = {
42
37
  let conf;
43
38
  const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
44
39
  var _a;
45
- if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
46
- console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
47
- }
48
40
  conf = conf || getConfig();
49
41
  const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
50
42
  const viewProps = {};
51
- const style = {};
52
- const classNames = {
53
- ...defaultClassNames
54
- };
55
43
  const pseudos = {};
56
44
  const medias = {};
45
+ let style = {};
46
+ let classNames = {};
47
+ const usedKeys = /* @__PURE__ */ new Set();
57
48
  const rulesToInsert = [];
58
49
  function addStyle(prop, rule) {
59
50
  rulesToInsert.push([prop, rule]);
@@ -104,55 +95,32 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
104
95
  }
105
96
  }
106
97
  __name(mergeClassName, "mergeClassName");
107
- function push() {
108
- if (!cur)
109
- return;
110
- normalizeStyleObject(cur);
111
- if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
112
- console.log(" \xBB getSplitStyles push", cur, state);
113
- }
114
- if (isWeb && !state.noClassNames) {
115
- const atomic = getStylesAtomic(cur);
116
- for (const atomicStyle of atomic) {
117
- if (!state.noClassNames) {
118
- addStyle(atomicStyle.identifier, atomicStyle.rules[0]);
119
- mergeClassName(atomicStyle.property, atomicStyle.identifier);
120
- } else {
121
- style[atomicStyle.property] = atomicStyle.value;
122
- }
123
- }
124
- }
125
- if (!isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
126
- for (const key in cur) {
127
- if (skipProps[key]) {
128
- continue;
129
- }
130
- if (key in stylePropsTransform) {
131
- mergeTransform(style, key, cur[key]);
132
- } else {
133
- style[key] = cur[key];
134
- }
135
- }
136
- }
137
- cur = null;
138
- }
139
- __name(push, "push");
140
- for (const keyInit in props) {
141
- if (skipProps[keyInit]) {
98
+ const propKeys = Object.keys(props);
99
+ for (let i = propKeys.length - 1; i >= 0; i--) {
100
+ const keyInit = propKeys[i];
101
+ if (usedKeys.has(keyInit))
142
102
  continue;
143
- }
144
- if (!isWeb && keyInit.startsWith("data-")) {
103
+ if (skipProps[keyInit])
104
+ continue;
105
+ if (!isWeb && keyInit.startsWith("data-"))
145
106
  continue;
146
- }
147
107
  const valInit = props[keyInit];
148
108
  if (keyInit === "style" || keyInit.startsWith("_style")) {
149
- push();
150
- cur = valInit;
151
- push();
109
+ if (!valInit)
110
+ continue;
111
+ for (const key in valInit) {
112
+ if (usedKeys.has(key))
113
+ continue;
114
+ style[key] = valInit;
115
+ }
116
+ continue;
117
+ }
118
+ if (keyInit === "className") {
119
+ mergeClassName(keyInit, valInit);
152
120
  continue;
153
121
  }
154
- if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
155
- push();
122
+ if (validStyleProps[keyInit] && valInit && valInit[0] === "_") {
123
+ usedKeys.add(keyInit);
156
124
  mergeClassName(keyInit, valInit);
157
125
  continue;
158
126
  }
@@ -162,19 +130,24 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
162
130
  let isMedia = keyInit[0] === "$";
163
131
  let isPseudo = validPseudoKeys[keyInit];
164
132
  if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
133
+ usedKeys.add(keyInit);
165
134
  viewProps[keyInit] = valInit;
166
135
  continue;
167
136
  }
168
- const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
169
- const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
137
+ const expanded = isMedia || isPseudo ? [[keyInit, valInit]] : staticConfig.propMapper(keyInit, valInit, theme, props, state);
170
138
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
171
139
  console.log(" \xBB getSplitStyles", keyInit, expanded);
172
140
  }
141
+ if (!expanded) {
142
+ continue;
143
+ }
173
144
  for (const [key, val] of expanded) {
174
- if (val === void 0) {
145
+ if (val === void 0)
146
+ continue;
147
+ if (usedKeys.has(key))
175
148
  continue;
176
- }
177
149
  if (key !== "target" && val && val[0] === "_") {
150
+ usedKeys.add(key);
178
151
  mergeClassName(key, val);
179
152
  continue;
180
153
  }
@@ -215,13 +188,12 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
215
188
  if (shouldDoClasses) {
216
189
  const mediaStyles = getStylesAtomic(mediaStyle);
217
190
  for (const style2 of mediaStyles) {
218
- const out2 = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
219
- addStyle(out2.identifier, out2.styleRule);
220
- mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
191
+ const out = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
192
+ addStyle(out.identifier, out.styleRule);
193
+ mergeClassName(`${out.identifier}-${mediaKey}`, out.identifier);
221
194
  }
222
195
  } else {
223
196
  if (mediaState[mediaKey]) {
224
- push();
225
197
  if (process.env.NODE_ENV === "development" && props["debug"]) {
226
198
  console.log("apply media style", mediaKey, mediaState);
227
199
  }
@@ -231,23 +203,46 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
231
203
  continue;
232
204
  }
233
205
  if (!isWeb && key === "pointerEvents") {
206
+ usedKeys.add(key);
234
207
  viewProps[key] = val;
235
208
  continue;
236
209
  }
237
210
  if (validStyleProps[key]) {
238
- cur = cur || {};
239
- cur[key] = val;
211
+ usedKeys.add(key);
212
+ if (val && val[0] === "_") {
213
+ classNames[key] = val;
214
+ } else {
215
+ if (key in stylePropsTransform && (!isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both")) {
216
+ mergeTransform(style, key, val, true);
217
+ } else {
218
+ style[key] = val;
219
+ }
220
+ }
240
221
  continue;
241
222
  }
242
223
  if (!staticConfig.variants || !(key in staticConfig.variants)) {
243
224
  if (!skipProps[key]) {
244
- push();
245
225
  viewProps[key] = val;
226
+ usedKeys.add(key);
246
227
  }
247
228
  }
248
229
  }
249
230
  }
250
- push();
231
+ if (defaultClassNames) {
232
+ classNames = {
233
+ ...defaultClassNames,
234
+ ...classNames
235
+ };
236
+ }
237
+ if (isWeb && !state.noClassNames) {
238
+ const atomic = getStylesAtomic(style);
239
+ for (const atomicStyle of atomic) {
240
+ const key = atomicStyle.property;
241
+ addStyle(atomicStyle.identifier, atomicStyle.rules[0]);
242
+ mergeClassName(key, atomicStyle.identifier);
243
+ }
244
+ style = {};
245
+ }
251
246
  if (transforms) {
252
247
  for (const namespace in transforms) {
253
248
  const [hash, val] = transforms[namespace];
@@ -262,7 +257,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
262
257
  }
263
258
  }
264
259
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
265
- console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
260
+ if (typeof document !== "undefined") {
261
+ console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
262
+ }
266
263
  }
267
264
  return {
268
265
  viewProps,
@@ -294,8 +291,9 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
294
291
  const styleOut = {};
295
292
  for (const key in styleIn) {
296
293
  const val = styleIn[key];
297
- const out = staticConfig.propMapper(key, val, theme, state.fallbackProps || props, state.resolveVariablesAs, avoidDefaultProps);
298
- const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
294
+ const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps);
295
+ if (!expanded)
296
+ continue;
299
297
  for (const [skey, sval] of expanded) {
300
298
  if (skey in stylePropsTransform) {
301
299
  mergeTransform(styleOut, skey, sval);
@@ -304,7 +302,6 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
304
302
  }
305
303
  }
306
304
  }
307
- normalizeStyleObject(styleOut);
308
305
  return styleOut;
309
306
  }, "getSubStyle");
310
307
  function normalizeStyleObject(style) {
@@ -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'\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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",
4
+ "sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } 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'\nimport { mergeTransform } from './mergeTransform'\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\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\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n\n let style: ViewStyle = {}\n let classNames: ClassNamesObject = {}\n\n const usedKeys = new Set<string>()\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 const propKeys = Object.keys(props)\n\n for (let i = propKeys.length - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n style[key] = valInit\n }\n continue\n }\n\n if (keyInit === 'className') {\n mergeClassName(keyInit, valInit)\n continue\n }\n\n if (validStyleProps[keyInit] && valInit && valInit[0] === '_') {\n usedKeys.add(keyInit)\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 usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(keyInit, valInit, theme, props, state)\n\n if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {\n console.log(' \u00BB getSplitStyles', keyInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n if (usedKeys.has(key)) continue\n\n if (key !== 'target' && val && val[0] === '_') {\n usedKeys.add(key)\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 usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else {\n if (\n key in stylePropsTransform &&\n (!isWeb ||\n state.noClassNames ||\n state.resolveVariablesAs === 'value' ||\n state.resolveVariablesAs === 'both')\n ) {\n mergeTransform(style, key, val, true)\n } else {\n style[key] = val\n }\n }\n\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 usedKeys.add(key)\n }\n }\n }\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (isWeb && !state.noClassNames) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n addStyle(atomicStyle.identifier, atomicStyle.rules[0])\n mergeClassName(key, atomicStyle.identifier)\n }\n style = {}\n }\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 if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state })\n }\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\n\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 expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps)\n if (!expanded) continue\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 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
  }
@@ -1,13 +1,25 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import {
4
- invertMapTransformKeys,
5
- mergeTransform,
6
- stylePropsTransform
7
- } from "@tamagui/helpers";
8
- import { getConfig } from "../conf";
9
- import { rnw } from "../constants/rnw";
3
+ import { stylePropsTransform } from "@tamagui/helpers";
4
+ import { reversedShorthands } from "../createTamagui";
10
5
  import { isVariable } from "../createVariable";
6
+ import { generateAtomicStyles } from "./generateAtomicStyles";
7
+ import { invertMapTransformKeys, mergeTransform } from "./mergeTransform";
8
+ const pseudos = {
9
+ hoverStyle: {
10
+ name: "hover",
11
+ priority: 1
12
+ },
13
+ pressStyle: {
14
+ name: "active",
15
+ priority: 2
16
+ },
17
+ focusStyle: {
18
+ name: "focus",
19
+ priority: 3
20
+ }
21
+ };
22
+ const pseudosOrdered = Object.values(pseudos);
11
23
  function getStylesAtomic(stylesIn, options = {}) {
12
24
  const { hoverStyle, pressStyle, focusStyle, ...base } = stylesIn;
13
25
  let res = [];
@@ -31,10 +43,6 @@ function getStylesAtomic(stylesIn, options = {}) {
31
43
  return res;
32
44
  }
33
45
  __name(getStylesAtomic, "getStylesAtomic");
34
- const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
35
- return rnw.atomic(rnw.createCompileableStyle(rnw.createReactDOMStyle(style)));
36
- }, "generateAtomicStyles");
37
- let reversedShorthands = null;
38
46
  function getAtomicStyle(style, pseudo, options) {
39
47
  var _a;
40
48
  if (style == null || typeof style !== "object") {
@@ -62,27 +70,20 @@ function getAtomicStyle(style, pseudo, options) {
62
70
  } else {
63
71
  atomicStyles = generateAtomicStyles(style);
64
72
  }
65
- if (!reversedShorthands) {
66
- reversedShorthands = {};
67
- const conf = getConfig();
68
- if (conf.shorthands) {
69
- for (const key in conf.shorthands) {
70
- reversedShorthands[conf.shorthands[key]] = key;
71
- }
72
- }
73
- }
74
73
  return Object.keys(atomicStyles).map((key) => {
75
74
  const val = atomicStyles[key];
76
- const [_, a, b] = val.identifier.split("-");
77
- const hash = b || a;
75
+ const [_, hash] = val.identifier.split("-");
78
76
  const psuedoPrefix = pseudo ? `0${pseudo.name}-` : "";
77
+ if (!val.property) {
78
+ throw new Error(`no prop`);
79
+ }
79
80
  const shortProp = reversedShorthands[val.property] || val.property;
80
81
  const identifier = `_${shortProp}-${psuedoPrefix}${hash}`;
81
82
  const className = `.${identifier}`;
82
83
  const rules = val.rules.map((rule) => {
83
84
  if (pseudo) {
84
85
  const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
85
- let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`);
86
+ let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`).replace(";", " !important;");
86
87
  if (pseudo.name === "hover") {
87
88
  res = `@media not all and (hover: none) { ${res} }`;
88
89
  }
@@ -92,7 +93,8 @@ function getAtomicStyle(style, pseudo, options) {
92
93
  });
93
94
  const result = {
94
95
  property: val.transformProperty || val.property,
95
- value: val.value,
96
+ pseudo: pseudo == null ? void 0 : pseudo.name,
97
+ value: val.value || "",
96
98
  identifier,
97
99
  className,
98
100
  rules
@@ -109,21 +111,6 @@ const borderDefaults = {
109
111
  borderLeftWidth: "borderLeftStyle",
110
112
  borderRightWidth: "borderRightStyle"
111
113
  };
112
- const pseudos = {
113
- hoverStyle: {
114
- name: "hover",
115
- priority: 1
116
- },
117
- pressStyle: {
118
- name: "active",
119
- priority: 2
120
- },
121
- focusStyle: {
122
- name: "focus",
123
- priority: 3
124
- }
125
- };
126
- const pseudosOrdered = Object.values(pseudos);
127
114
  export {
128
115
  getStylesAtomic,
129
116
  pseudos
@@ -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 { 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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",
4
+ "sourcesContent": ["import { StyleObject, stylePropsTransform } from '@tamagui/helpers'\nimport { ViewStyle } from 'react-native'\n\nimport { reversedShorthands } from '../createTamagui'\nimport { isVariable } from '../createVariable'\nimport { RulesData, generateAtomicStyles } from './generateAtomicStyles'\nimport { invertMapTransformKeys, mergeTransform } from './mergeTransform'\n\nexport type ViewStyleWithPseudos = ViewStyle & {\n hoverStyle?: ViewStyle\n pressStyle?: ViewStyle\n focusStyle?: ViewStyle\n}\n\ntype AtomicStyleOptions = {\n splitTransforms?: boolean\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} as const\n\ntype PseudoDescriptor = typeof pseudos[keyof typeof pseudos]\n\nconst pseudosOrdered = Object.values(pseudos)\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\nfunction getAtomicStyle(\n style: ViewStyle,\n pseudo: PseudoDescriptor | 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]: RulesData & { 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 // 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 [_, hash] = val.identifier.split('-')\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `0${pseudo.name}-` : ''\n if (!val.property) {\n throw new Error(`no prop`)\n }\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 // important to override inline styles\n .replace(';', ' !important;')\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 pseudo: pseudo?.name,\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"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,19 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const mergeTransform = /* @__PURE__ */ __name((obj, key, val, backwards = false) => {
4
+ obj.transform || (obj.transform = []);
5
+ obj.transform[backwards ? "unshift" : "push"]({ [mapTransformKeys[key] || key]: val });
6
+ }, "mergeTransform");
7
+ const mapTransformKeys = {
8
+ x: "translateX",
9
+ y: "translateY"
10
+ };
11
+ const invertMapTransformKeys = {
12
+ translateX: "x",
13
+ translateY: "y"
14
+ };
15
+ export {
16
+ invertMapTransformKeys,
17
+ mergeTransform
18
+ };
19
+ //# sourceMappingURL=mergeTransform.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/mergeTransform.ts"],
4
+ "sourcesContent": ["import { ViewStyle } from 'react-native'\n\nexport const mergeTransform = (obj: ViewStyle, key: string, val: any, backwards = false) => {\n obj.transform ||= []\n obj.transform[backwards ? 'unshift' : 'push']({ [mapTransformKeys[key] || key]: val } as any)\n}\nconst mapTransformKeys = {\n x: 'translateX',\n y: 'translateY',\n}\nexport const invertMapTransformKeys = {\n translateX: 'x',\n translateY: 'y',\n}\n"],
5
+ "mappings": ";;AAEO,MAAM,iBAAiB,wBAAC,KAAgB,KAAa,KAAU,YAAY,UAAU;AAC1F,MAAI,aAAJ,KAAI,YAAc,CAAC;AACnB,MAAI,UAAU,YAAY,YAAY,QAAQ,GAAG,iBAAiB,QAAQ,MAAM,IAAI,CAAQ;AAC9F,GAH8B;AAI9B,MAAM,mBAAmB;AAAA,EACvB,GAAG;AAAA,EACH,GAAG;AACL;AACO,MAAM,yBAAyB;AAAA,EACpC,YAAY;AAAA,EACZ,YAAY;AACd;",
6
+ "names": []
7
+ }