@tamagui/static 1.13.2 → 1.13.4

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 (195) hide show
  1. package/dist/cjs/constants.js +1 -52
  2. package/dist/cjs/constants.js.map +2 -2
  3. package/dist/cjs/extractor/accessSafe.js +1 -52
  4. package/dist/cjs/extractor/accessSafe.js.map +2 -2
  5. package/dist/cjs/extractor/babelParse.js +1 -66
  6. package/dist/cjs/extractor/babelParse.js.map +2 -2
  7. package/dist/cjs/extractor/buildClassName.js +1 -99
  8. package/dist/cjs/extractor/buildClassName.js.map +2 -2
  9. package/dist/cjs/extractor/bundle.js +1 -126
  10. package/dist/cjs/extractor/bundle.js.map +2 -2
  11. package/dist/cjs/extractor/createEvaluator.js +1 -86
  12. package/dist/cjs/extractor/createEvaluator.js.map +2 -2
  13. package/dist/cjs/extractor/createExtractor.js +15 -1630
  14. package/dist/cjs/extractor/createExtractor.js.map +2 -2
  15. package/dist/cjs/extractor/ensureImportingConcat.js +1 -64
  16. package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
  17. package/dist/cjs/extractor/evaluateAstNode.js +1 -130
  18. package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
  19. package/dist/cjs/extractor/extractHelpers.js +1 -207
  20. package/dist/cjs/extractor/extractHelpers.js.map +2 -2
  21. package/dist/cjs/extractor/extractMediaStyle.js +1 -193
  22. package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
  23. package/dist/cjs/extractor/extractToClassNames.js +13 -413
  24. package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
  25. package/dist/cjs/extractor/findTopmostFunction.js +1 -43
  26. package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
  27. package/dist/cjs/extractor/generatedUid.js +1 -59
  28. package/dist/cjs/extractor/generatedUid.js.map +2 -2
  29. package/dist/cjs/extractor/getPrefixLogs.js +1 -31
  30. package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
  31. package/dist/cjs/extractor/getPropValueFromAttributes.js +1 -89
  32. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
  33. package/dist/cjs/extractor/getSourceModule.js +1 -103
  34. package/dist/cjs/extractor/getSourceModule.js.map +2 -2
  35. package/dist/cjs/extractor/getStaticBindingsForScope.js +1 -225
  36. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
  37. package/dist/cjs/extractor/hoistClassNames.js +1 -74
  38. package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
  39. package/dist/cjs/extractor/literalToAst.js +1 -115
  40. package/dist/cjs/extractor/literalToAst.js.map +2 -2
  41. package/dist/cjs/extractor/loadFile.js +2 -20
  42. package/dist/cjs/extractor/loadFile.js.map +2 -2
  43. package/dist/cjs/extractor/loadTamagui.js +15 -432
  44. package/dist/cjs/extractor/loadTamagui.js.map +2 -2
  45. package/dist/cjs/extractor/logLines.js +3 -43
  46. package/dist/cjs/extractor/logLines.js.map +2 -2
  47. package/dist/cjs/extractor/normalizeTernaries.js +1 -85
  48. package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
  49. package/dist/cjs/extractor/removeUnusedHooks.js +1 -109
  50. package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
  51. package/dist/cjs/extractor/timer.js +1 -52
  52. package/dist/cjs/extractor/timer.js.map +2 -2
  53. package/dist/cjs/extractor/validHTMLAttributes.js +1 -126
  54. package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
  55. package/dist/cjs/getPragmaOptions.js +2 -67
  56. package/dist/cjs/getPragmaOptions.js.map +2 -2
  57. package/dist/cjs/helpers/memoize.js +1 -45
  58. package/dist/cjs/helpers/memoize.js.map +2 -2
  59. package/dist/cjs/index.js +1 -42
  60. package/dist/cjs/index.js.map +2 -2
  61. package/dist/cjs/require.js +5 -81
  62. package/dist/cjs/require.js.map +2 -2
  63. package/dist/cjs/types.js +1 -16
  64. package/dist/cjs/types.js.map +2 -2
  65. package/dist/cjs/webpackPlugin.js +1 -34
  66. package/dist/cjs/webpackPlugin.js.map +2 -2
  67. package/dist/esm/constants.js +1 -14
  68. package/dist/esm/constants.js.map +2 -2
  69. package/dist/esm/constants.mjs +1 -14
  70. package/dist/esm/constants.mjs.map +2 -2
  71. package/dist/esm/extractor/accessSafe.js +1 -18
  72. package/dist/esm/extractor/accessSafe.js.map +2 -2
  73. package/dist/esm/extractor/accessSafe.mjs +1 -18
  74. package/dist/esm/extractor/accessSafe.mjs.map +2 -2
  75. package/dist/esm/extractor/babelParse.js +1 -31
  76. package/dist/esm/extractor/babelParse.js.map +2 -2
  77. package/dist/esm/extractor/babelParse.mjs +1 -31
  78. package/dist/esm/extractor/babelParse.mjs.map +2 -2
  79. package/dist/esm/extractor/buildClassName.js +1 -64
  80. package/dist/esm/extractor/buildClassName.js.map +2 -2
  81. package/dist/esm/extractor/buildClassName.mjs +1 -64
  82. package/dist/esm/extractor/buildClassName.mjs.map +2 -2
  83. package/dist/esm/extractor/bundle.js +1 -91
  84. package/dist/esm/extractor/bundle.js.map +2 -2
  85. package/dist/esm/extractor/bundle.mjs +1 -91
  86. package/dist/esm/extractor/bundle.mjs.map +2 -2
  87. package/dist/esm/extractor/createEvaluator.js +1 -51
  88. package/dist/esm/extractor/createEvaluator.js.map +2 -2
  89. package/dist/esm/extractor/createEvaluator.mjs +1 -51
  90. package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
  91. package/dist/esm/extractor/createExtractor.js +15 -1613
  92. package/dist/esm/extractor/createExtractor.js.map +2 -2
  93. package/dist/esm/extractor/createExtractor.mjs +15 -1613
  94. package/dist/esm/extractor/createExtractor.mjs.map +2 -2
  95. package/dist/esm/extractor/ensureImportingConcat.js +1 -30
  96. package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
  97. package/dist/esm/extractor/ensureImportingConcat.mjs +1 -30
  98. package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
  99. package/dist/esm/extractor/evaluateAstNode.js +1 -96
  100. package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
  101. package/dist/esm/extractor/evaluateAstNode.mjs +1 -96
  102. package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
  103. package/dist/esm/extractor/extractHelpers.js +1 -161
  104. package/dist/esm/extractor/extractHelpers.js.map +2 -2
  105. package/dist/esm/extractor/extractHelpers.mjs +1 -161
  106. package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
  107. package/dist/esm/extractor/extractMediaStyle.js +1 -158
  108. package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
  109. package/dist/esm/extractor/extractMediaStyle.mjs +1 -158
  110. package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
  111. package/dist/esm/extractor/extractToClassNames.js +13 -379
  112. package/dist/esm/extractor/extractToClassNames.js.map +2 -2
  113. package/dist/esm/extractor/extractToClassNames.mjs +13 -379
  114. package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
  115. package/dist/esm/extractor/findTopmostFunction.js +1 -19
  116. package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
  117. package/dist/esm/extractor/findTopmostFunction.mjs +1 -19
  118. package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
  119. package/dist/esm/extractor/generatedUid.js +1 -25
  120. package/dist/esm/extractor/generatedUid.js.map +2 -2
  121. package/dist/esm/extractor/generatedUid.mjs +1 -25
  122. package/dist/esm/extractor/generatedUid.mjs.map +2 -2
  123. package/dist/esm/extractor/getPrefixLogs.js +1 -7
  124. package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
  125. package/dist/esm/extractor/getPrefixLogs.mjs +1 -7
  126. package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
  127. package/dist/esm/extractor/getPropValueFromAttributes.js +1 -55
  128. package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
  129. package/dist/esm/extractor/getPropValueFromAttributes.mjs +1 -55
  130. package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
  131. package/dist/esm/extractor/getSourceModule.js +1 -69
  132. package/dist/esm/extractor/getSourceModule.js.map +2 -2
  133. package/dist/esm/extractor/getSourceModule.mjs +1 -69
  134. package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
  135. package/dist/esm/extractor/getStaticBindingsForScope.js +1 -190
  136. package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
  137. package/dist/esm/extractor/getStaticBindingsForScope.mjs +1 -190
  138. package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
  139. package/dist/esm/extractor/hoistClassNames.js +1 -40
  140. package/dist/esm/extractor/hoistClassNames.js.map +2 -2
  141. package/dist/esm/extractor/hoistClassNames.mjs +1 -40
  142. package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
  143. package/dist/esm/extractor/literalToAst.js +1 -80
  144. package/dist/esm/extractor/literalToAst.js.map +2 -2
  145. package/dist/esm/extractor/literalToAst.mjs +1 -80
  146. package/dist/esm/extractor/literalToAst.mjs.map +2 -2
  147. package/dist/esm/extractor/loadFile.js +2 -19
  148. package/dist/esm/extractor/loadFile.js.map +2 -2
  149. package/dist/esm/extractor/loadFile.mjs +2 -19
  150. package/dist/esm/extractor/loadFile.mjs.map +2 -2
  151. package/dist/esm/extractor/loadTamagui.js +15 -396
  152. package/dist/esm/extractor/loadTamagui.js.map +2 -2
  153. package/dist/esm/extractor/loadTamagui.mjs +15 -396
  154. package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
  155. package/dist/esm/extractor/logLines.js +3 -19
  156. package/dist/esm/extractor/logLines.js.map +2 -2
  157. package/dist/esm/extractor/logLines.mjs +3 -19
  158. package/dist/esm/extractor/logLines.mjs.map +2 -2
  159. package/dist/esm/extractor/normalizeTernaries.js +1 -51
  160. package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
  161. package/dist/esm/extractor/normalizeTernaries.mjs +1 -51
  162. package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
  163. package/dist/esm/extractor/removeUnusedHooks.js +1 -75
  164. package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
  165. package/dist/esm/extractor/removeUnusedHooks.mjs +1 -75
  166. package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
  167. package/dist/esm/extractor/timer.js +1 -28
  168. package/dist/esm/extractor/timer.js.map +2 -2
  169. package/dist/esm/extractor/timer.mjs +1 -28
  170. package/dist/esm/extractor/timer.mjs.map +2 -2
  171. package/dist/esm/extractor/validHTMLAttributes.js +1 -101
  172. package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
  173. package/dist/esm/extractor/validHTMLAttributes.mjs +1 -101
  174. package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
  175. package/dist/esm/getPragmaOptions.js +2 -43
  176. package/dist/esm/getPragmaOptions.js.map +2 -2
  177. package/dist/esm/getPragmaOptions.mjs +2 -43
  178. package/dist/esm/getPragmaOptions.mjs.map +2 -2
  179. package/dist/esm/helpers/memoize.js +1 -21
  180. package/dist/esm/helpers/memoize.js.map +2 -2
  181. package/dist/esm/helpers/memoize.mjs +1 -21
  182. package/dist/esm/helpers/memoize.mjs.map +2 -2
  183. package/dist/esm/index.js +1 -15
  184. package/dist/esm/index.js.map +2 -2
  185. package/dist/esm/index.mjs +1 -15
  186. package/dist/esm/index.mjs.map +2 -2
  187. package/dist/esm/require.js +5 -55
  188. package/dist/esm/require.js.map +2 -2
  189. package/dist/esm/require.mjs +5 -55
  190. package/dist/esm/require.mjs.map +2 -2
  191. package/dist/esm/webpackPlugin.js +1 -10
  192. package/dist/esm/webpackPlugin.js.map +2 -2
  193. package/dist/esm/webpackPlugin.mjs +1 -10
  194. package/dist/esm/webpackPlugin.mjs.map +2 -2
  195. package/package.json +14 -14
@@ -1,159 +1,2 @@
1
- import * as t from "@babel/types";
2
- import { getStylesAtomic, mediaObjectToString } from "@tamagui/core-node";
3
- import { MEDIA_SEP } from "../constants.js";
4
- import { isPresent, isValidImport } from "./extractHelpers.js";
5
- function extractMediaStyle(props, ternary, jsxPath, tamaguiConfig, sourcePath, importance = 0, shouldPrintDebug = false) {
6
- const mt = getMediaQueryTernary(props, ternary, jsxPath, sourcePath);
7
- if (!mt) {
8
- return null;
9
- }
10
- const { key } = mt;
11
- const mq = tamaguiConfig.media[key];
12
- if (!mq) {
13
- console.error(`Media query "${key}" not found: ${Object.keys(tamaguiConfig.media)}`);
14
- return null;
15
- }
16
- const getStyleObj = (styleObj, negate = false) => {
17
- return styleObj ? { styleObj, negate } : null;
18
- };
19
- const styleOpts = [
20
- getStyleObj(ternary.consequent, false),
21
- getStyleObj(ternary.alternate, true)
22
- ].filter(isPresent);
23
- if (shouldPrintDebug && !styleOpts.length) {
24
- console.log(" media query, no styles?");
25
- return null;
26
- }
27
- const mediaKeys = Object.keys(tamaguiConfig.media);
28
- const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {
29
- acc[cur] = new Array(importance + 1).fill(":root").join("");
30
- return acc;
31
- }, {});
32
- let mediaStyles = [];
33
- for (const { styleObj, negate } of styleOpts) {
34
- const styles = getStylesAtomic(styleObj);
35
- const singleMediaStyles = styles.map((style) => {
36
- const negKey = negate ? "0" : "";
37
- const ogPrefix = style.identifier.slice(0, style.identifier.indexOf("-") + 1);
38
- const identifier = `${style.identifier.replace(
39
- ogPrefix,
40
- `${ogPrefix}${MEDIA_SEP}${key}${negKey}${MEDIA_SEP}`
41
- )}`;
42
- const className = `.${identifier}`;
43
- const mediaSelector = mediaObjectToString(tamaguiConfig.media[key]);
44
- const screenStr = negate ? "not all" : "screen";
45
- const mediaQuery = `${screenStr} and ${mediaSelector}`;
46
- const precendencePrefix = mediaKeyPrecendence[key];
47
- const styleInner = style.rules.map((rule) => rule.replace(style.identifier, identifier)).join(";");
48
- let styleRule = "";
49
- if (styleInner.includes("@media")) {
50
- styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
51
- } else {
52
- styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
53
- }
54
- return {
55
- ...style,
56
- identifier,
57
- className,
58
- rules: [styleRule]
59
- };
60
- });
61
- if (shouldPrintDebug === "verbose") {
62
- console.log(" media styles:", importance, styleObj, singleMediaStyles.map((x) => x.identifier).join(", "));
63
- }
64
- mediaStyles = [...mediaStyles, ...singleMediaStyles];
65
- }
66
- ternary.remove();
67
- return { mediaStyles, ternaryWithoutMedia: mt.ternaryWithoutMedia };
68
- }
69
- function getMediaQueryTernary(props, ternary, jsxPath, sourcePath) {
70
- if (t.isLogicalExpression(ternary.test) && ternary.test.operator === "&&") {
71
- const mediaLeft = getMediaInfoFromExpression(
72
- props,
73
- ternary.test.left,
74
- jsxPath,
75
- sourcePath,
76
- ternary.inlineMediaQuery
77
- );
78
- if (mediaLeft) {
79
- return {
80
- ...mediaLeft,
81
- ternaryWithoutMedia: {
82
- ...ternary,
83
- test: ternary.test.right
84
- }
85
- };
86
- }
87
- }
88
- const result = getMediaInfoFromExpression(
89
- props,
90
- ternary.test,
91
- jsxPath,
92
- sourcePath,
93
- ternary.inlineMediaQuery
94
- );
95
- if (result) {
96
- return {
97
- ...result,
98
- ternaryWithoutMedia: null
99
- };
100
- }
101
- return null;
102
- }
103
- function getMediaInfoFromExpression(props, test, jsxPath, sourcePath, inlineMediaQuery) {
104
- var _a, _b, _c;
105
- if (inlineMediaQuery) {
106
- return {
107
- key: inlineMediaQuery,
108
- bindingName: inlineMediaQuery
109
- };
110
- }
111
- if (t.isMemberExpression(test) && t.isIdentifier(test.object) && t.isIdentifier(test.property)) {
112
- const name = test.object["name"];
113
- const key = test.property["name"];
114
- const bindings = jsxPath.scope.getAllBindings();
115
- const binding = bindings[name];
116
- if (!binding)
117
- return false;
118
- const bindingNode = (_a = binding.path) == null ? void 0 : _a.node;
119
- if (!t.isVariableDeclarator(bindingNode) || !bindingNode.init)
120
- return false;
121
- if (!isValidMediaCall(props, jsxPath, bindingNode.init, sourcePath))
122
- return false;
123
- return { key, bindingName: name };
124
- }
125
- if (t.isIdentifier(test)) {
126
- const key = test.name;
127
- const node = (_c = (_b = jsxPath.scope.getBinding(test.name)) == null ? void 0 : _b.path) == null ? void 0 : _c.node;
128
- if (!t.isVariableDeclarator(node))
129
- return false;
130
- if (!node.init || !isValidMediaCall(props, jsxPath, node.init, sourcePath))
131
- return false;
132
- return { key, bindingName: key };
133
- }
134
- return null;
135
- }
136
- function isValidMediaCall(props, jsxPath, init, sourcePath) {
137
- if (!t.isCallExpression(init))
138
- return false;
139
- if (!t.isIdentifier(init.callee))
140
- return false;
141
- if (init.callee.name !== "useMedia")
142
- return false;
143
- const bindings = jsxPath.scope.getAllBindings();
144
- const mediaBinding = bindings["useMedia"];
145
- if (!mediaBinding)
146
- return false;
147
- const useMediaImport = mediaBinding.path.parent;
148
- if (!t.isImportDeclaration(useMediaImport))
149
- return false;
150
- if (!isValidImport(props, sourcePath)) {
151
- return false;
152
- }
153
- return true;
154
- }
155
- export {
156
- extractMediaStyle,
157
- isValidMediaCall
158
- };
1
+ import*as o from"@babel/types";import{getStylesAtomic as A,mediaObjectToString as v}from"@tamagui/core-node";import{MEDIA_SEP as T}from"../constants.js";import{isPresent as B,isValidImport as J}from"./extractHelpers.js";function R(s,e,i,n,a,t=0,f=!1){const c=K(s,e,i,a);if(!c)return null;const{key:r}=c;if(!n.media[r])return console.error(`Media query "${r}" not found: ${Object.keys(n.media)}`),null;const y=(l,u=!1)=>l?{styleObj:l,negate:u}:null,p=[y(e.consequent,!1),y(e.alternate,!0)].filter(B);if(f&&!p.length)return console.log(" media query, no styles?"),null;const W=Object.keys(n.media).reduce((l,u,j)=>(l[u]=new Array(t+1).fill(":root").join(""),l),{});let b=[];for(const{styleObj:l,negate:u}of p){const $=A(l).map(d=>{const x=u?"0":"",h=d.identifier.slice(0,d.identifier.indexOf("-")+1),S=`${d.identifier.replace(h,`${h}${T}${r}${x}${T}`)}`,k=`.${S}`,F=v(n.media[r]),O=`${u?"not all":"screen"} and ${F}`,V=W[r],I=d.rules.map(q=>q.replace(d.identifier,S)).join(";");let M="";return I.includes("@media")?M=I.replace("{",` and ${O} {`):M=`@media ${O} { ${V} ${I} }`,{...d,identifier:S,className:k,rules:[M]}});f==="verbose"&&console.log(" media styles:",t,l,$.map(d=>d.identifier).join(", ")),b=[...b,...$]}return e.remove(),{mediaStyles:b,ternaryWithoutMedia:c.ternaryWithoutMedia}}function K(s,e,i,n){if(o.isLogicalExpression(e.test)&&e.test.operator==="&&"){const t=E(s,e.test.left,i,n,e.inlineMediaQuery);if(t)return{...t,ternaryWithoutMedia:{...e,test:e.test.right}}}const a=E(s,e.test,i,n,e.inlineMediaQuery);return a?{...a,ternaryWithoutMedia:null}:null}function E(s,e,i,n,a){var t,f,c;if(a)return{key:a,bindingName:a};if(o.isMemberExpression(e)&&o.isIdentifier(e.object)&&o.isIdentifier(e.property)){const r=e.object.name,m=e.property.name,p=i.scope.getAllBindings()[r];if(!p)return!1;const g=(t=p.path)==null?void 0:t.node;return!o.isVariableDeclarator(g)||!g.init||!N(s,i,g.init,n)?!1:{key:m,bindingName:r}}if(o.isIdentifier(e)){const r=e.name,m=(c=(f=i.scope.getBinding(e.name))==null?void 0:f.path)==null?void 0:c.node;return!o.isVariableDeclarator(m)||!m.init||!N(s,i,m.init,n)?!1:{key:r,bindingName:r}}return null}function N(s,e,i,n){if(!o.isCallExpression(i)||!o.isIdentifier(i.callee)||i.callee.name!=="useMedia")return!1;const t=e.scope.getAllBindings().useMedia;if(!t)return!1;const f=t.path.parent;return!(!o.isImportDeclaration(f)||!J(s,n))}export{R as extractMediaStyle,N as isValidMediaCall};
159
2
  //# sourceMappingURL=extractMediaStyle.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/extractMediaStyle.ts"],
4
4
  "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\nimport { TamaguiInternalConfig, getStylesAtomic, mediaObjectToString } from '@tamagui/core-node'\nimport type { ViewStyle } from 'react-native'\n\nimport { MEDIA_SEP } from '../constants.js'\nimport type { StyleObject, TamaguiOptionsWithFileInfo, Ternary } from '../types.js'\nimport { isPresent, isValidImport } from './extractHelpers.js'\n\nexport function extractMediaStyle(\n props: TamaguiOptionsWithFileInfo,\n ternary: Ternary,\n jsxPath: NodePath<t.JSXElement>,\n tamaguiConfig: TamaguiInternalConfig,\n sourcePath: string,\n importance = 0,\n shouldPrintDebug: boolean | 'verbose' = false\n) {\n const mt = getMediaQueryTernary(props, ternary, jsxPath, sourcePath)\n if (!mt) {\n return null\n }\n const { key } = mt\n const mq = tamaguiConfig.media[key]\n if (!mq) {\n // eslint-disable-next-line no-console\n console.error(`Media query \"${key}\" not found: ${Object.keys(tamaguiConfig.media)}`)\n return null\n }\n const getStyleObj = (styleObj: ViewStyle | null, negate = false) => {\n return styleObj ? { styleObj, negate } : null\n }\n const styleOpts = [\n getStyleObj(ternary.consequent, false),\n getStyleObj(ternary.alternate, true),\n ].filter(isPresent)\n if (shouldPrintDebug && !styleOpts.length) {\n // eslint-disable-next-line no-console\n console.log(' media query, no styles?')\n return null\n }\n // for now order first strongest\n const mediaKeys = Object.keys(tamaguiConfig.media)\n const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {\n acc[cur] = new Array(importance + 1).fill(':root').join('')\n return acc\n }, {})\n let mediaStyles: StyleObject[] = []\n for (const { styleObj, negate } of styleOpts) {\n const styles = getStylesAtomic(styleObj)\n const singleMediaStyles = styles.map((style) => {\n const negKey = negate ? '0' : ''\n const ogPrefix = style.identifier.slice(0, style.identifier.indexOf('-') + 1)\n // adds an extra separator before and after to detect later\n // so it goes from: \"_f-[hash]\"\n // to: \"_f-_sm0_[hash]\" or \"_f-_sm_[hash]\"\n const identifier = `${style.identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${key}${negKey}${MEDIA_SEP}`\n )}`\n const className = `.${identifier}`\n const mediaSelector = mediaObjectToString(tamaguiConfig.media[key])\n const screenStr = negate ? 'not all' : 'screen'\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const precendencePrefix = mediaKeyPrecendence[key]\n const styleInner = style.rules\n .map((rule) => rule.replace(style.identifier, identifier))\n .join(';')\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n ...style,\n identifier,\n className,\n rules: [styleRule],\n }\n })\n if (shouldPrintDebug === 'verbose') {\n // prettier-ignore\n // eslint-disable-next-line no-console\n console.log(' media styles:', importance, styleObj, singleMediaStyles.map(x => x.identifier).join(', '))\n }\n // add to output\n mediaStyles = [...mediaStyles, ...singleMediaStyles]\n }\n // filter out\n ternary.remove()\n return { mediaStyles, ternaryWithoutMedia: mt.ternaryWithoutMedia }\n}\n\nfunction getMediaQueryTernary(\n props: TamaguiOptionsWithFileInfo,\n ternary: Ternary,\n jsxPath: NodePath<t.JSXElement>,\n sourcePath: string\n): null | {\n key: string\n bindingName: string\n ternaryWithoutMedia: Ternary | null\n} {\n // this handles unwrapping logical && media query ternarys\n // first, unwrap if it has media logicalExpression\n if (t.isLogicalExpression(ternary.test) && ternary.test.operator === '&&') {\n // *should* be normalized to always be on left side\n const mediaLeft = getMediaInfoFromExpression(\n props,\n ternary.test.left,\n jsxPath,\n sourcePath,\n ternary.inlineMediaQuery\n )\n if (mediaLeft) {\n return {\n ...mediaLeft,\n ternaryWithoutMedia: {\n ...ternary,\n test: ternary.test.right,\n },\n }\n }\n }\n // const media = useMedia()\n // ... media.sm\n const result = getMediaInfoFromExpression(\n props,\n ternary.test,\n jsxPath,\n sourcePath,\n ternary.inlineMediaQuery\n )\n if (result) {\n return {\n ...result,\n ternaryWithoutMedia: null,\n }\n }\n return null\n}\n\nfunction getMediaInfoFromExpression(\n props: TamaguiOptionsWithFileInfo,\n test: t.Expression,\n jsxPath: NodePath<t.JSXElement>,\n sourcePath: string,\n inlineMediaQuery?: string\n) {\n if (inlineMediaQuery) {\n return {\n key: inlineMediaQuery,\n bindingName: inlineMediaQuery,\n }\n }\n if (t.isMemberExpression(test) && t.isIdentifier(test.object) && t.isIdentifier(test.property)) {\n const name = test.object['name']\n const key = test.property['name']\n const bindings = jsxPath.scope.getAllBindings()\n const binding = bindings[name]\n if (!binding) return false\n const bindingNode = binding.path?.node\n if (!t.isVariableDeclarator(bindingNode) || !bindingNode.init) return false\n if (!isValidMediaCall(props, jsxPath, bindingNode.init, sourcePath)) return false\n return { key, bindingName: name }\n }\n if (t.isIdentifier(test)) {\n const key = test.name\n const node = jsxPath.scope.getBinding(test.name)?.path?.node\n if (!t.isVariableDeclarator(node)) return false\n if (!node.init || !isValidMediaCall(props, jsxPath, node.init, sourcePath)) return false\n return { key, bindingName: key }\n }\n return null\n}\n\nexport function isValidMediaCall(\n props: TamaguiOptionsWithFileInfo,\n jsxPath: NodePath<t.JSXElement>,\n init: t.Expression,\n sourcePath: string\n) {\n if (!t.isCallExpression(init)) return false\n if (!t.isIdentifier(init.callee)) return false\n // TODO could support renaming useMedia by looking up import first\n if (init.callee.name !== 'useMedia') return false\n const bindings = jsxPath.scope.getAllBindings()\n const mediaBinding = bindings['useMedia']\n if (!mediaBinding) return false\n const useMediaImport = mediaBinding.path.parent\n if (!t.isImportDeclaration(useMediaImport)) return false\n if (!isValidImport(props, sourcePath)) {\n return false\n }\n return true\n}\n"],
5
- "mappings": "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",
6
- "names": []
5
+ "mappings": "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",
6
+ "names": ["t", "getStylesAtomic", "mediaObjectToString", "MEDIA_SEP", "isPresent", "isValidImport", "extractMediaStyle", "props", "ternary", "jsxPath", "tamaguiConfig", "sourcePath", "importance", "shouldPrintDebug", "mt", "getMediaQueryTernary", "key", "getStyleObj", "styleObj", "negate", "styleOpts", "mediaKeyPrecendence", "acc", "cur", "i", "mediaStyles", "singleMediaStyles", "style", "negKey", "ogPrefix", "identifier", "className", "mediaSelector", "mediaQuery", "precendencePrefix", "styleInner", "rule", "styleRule", "x", "mediaLeft", "getMediaInfoFromExpression", "result", "test", "inlineMediaQuery", "_a", "_b", "_c", "name", "binding", "bindingNode", "isValidMediaCall", "node", "init", "mediaBinding", "useMediaImport"]
7
7
  }
@@ -1,159 +1,2 @@
1
- import * as t from "@babel/types";
2
- import { getStylesAtomic, mediaObjectToString } from "@tamagui/core-node";
3
- import { MEDIA_SEP } from "../constants.js";
4
- import { isPresent, isValidImport } from "./extractHelpers.js";
5
- function extractMediaStyle(props, ternary, jsxPath, tamaguiConfig, sourcePath, importance = 0, shouldPrintDebug = false) {
6
- const mt = getMediaQueryTernary(props, ternary, jsxPath, sourcePath);
7
- if (!mt) {
8
- return null;
9
- }
10
- const { key } = mt;
11
- const mq = tamaguiConfig.media[key];
12
- if (!mq) {
13
- console.error(`Media query "${key}" not found: ${Object.keys(tamaguiConfig.media)}`);
14
- return null;
15
- }
16
- const getStyleObj = (styleObj, negate = false) => {
17
- return styleObj ? { styleObj, negate } : null;
18
- };
19
- const styleOpts = [
20
- getStyleObj(ternary.consequent, false),
21
- getStyleObj(ternary.alternate, true)
22
- ].filter(isPresent);
23
- if (shouldPrintDebug && !styleOpts.length) {
24
- console.log(" media query, no styles?");
25
- return null;
26
- }
27
- const mediaKeys = Object.keys(tamaguiConfig.media);
28
- const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {
29
- acc[cur] = new Array(importance + 1).fill(":root").join("");
30
- return acc;
31
- }, {});
32
- let mediaStyles = [];
33
- for (const { styleObj, negate } of styleOpts) {
34
- const styles = getStylesAtomic(styleObj);
35
- const singleMediaStyles = styles.map((style) => {
36
- const negKey = negate ? "0" : "";
37
- const ogPrefix = style.identifier.slice(0, style.identifier.indexOf("-") + 1);
38
- const identifier = `${style.identifier.replace(
39
- ogPrefix,
40
- `${ogPrefix}${MEDIA_SEP}${key}${negKey}${MEDIA_SEP}`
41
- )}`;
42
- const className = `.${identifier}`;
43
- const mediaSelector = mediaObjectToString(tamaguiConfig.media[key]);
44
- const screenStr = negate ? "not all" : "screen";
45
- const mediaQuery = `${screenStr} and ${mediaSelector}`;
46
- const precendencePrefix = mediaKeyPrecendence[key];
47
- const styleInner = style.rules.map((rule) => rule.replace(style.identifier, identifier)).join(";");
48
- let styleRule = "";
49
- if (styleInner.includes("@media")) {
50
- styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
51
- } else {
52
- styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
53
- }
54
- return {
55
- ...style,
56
- identifier,
57
- className,
58
- rules: [styleRule]
59
- };
60
- });
61
- if (shouldPrintDebug === "verbose") {
62
- console.log(" media styles:", importance, styleObj, singleMediaStyles.map((x) => x.identifier).join(", "));
63
- }
64
- mediaStyles = [...mediaStyles, ...singleMediaStyles];
65
- }
66
- ternary.remove();
67
- return { mediaStyles, ternaryWithoutMedia: mt.ternaryWithoutMedia };
68
- }
69
- function getMediaQueryTernary(props, ternary, jsxPath, sourcePath) {
70
- if (t.isLogicalExpression(ternary.test) && ternary.test.operator === "&&") {
71
- const mediaLeft = getMediaInfoFromExpression(
72
- props,
73
- ternary.test.left,
74
- jsxPath,
75
- sourcePath,
76
- ternary.inlineMediaQuery
77
- );
78
- if (mediaLeft) {
79
- return {
80
- ...mediaLeft,
81
- ternaryWithoutMedia: {
82
- ...ternary,
83
- test: ternary.test.right
84
- }
85
- };
86
- }
87
- }
88
- const result = getMediaInfoFromExpression(
89
- props,
90
- ternary.test,
91
- jsxPath,
92
- sourcePath,
93
- ternary.inlineMediaQuery
94
- );
95
- if (result) {
96
- return {
97
- ...result,
98
- ternaryWithoutMedia: null
99
- };
100
- }
101
- return null;
102
- }
103
- function getMediaInfoFromExpression(props, test, jsxPath, sourcePath, inlineMediaQuery) {
104
- var _a, _b, _c;
105
- if (inlineMediaQuery) {
106
- return {
107
- key: inlineMediaQuery,
108
- bindingName: inlineMediaQuery
109
- };
110
- }
111
- if (t.isMemberExpression(test) && t.isIdentifier(test.object) && t.isIdentifier(test.property)) {
112
- const name = test.object["name"];
113
- const key = test.property["name"];
114
- const bindings = jsxPath.scope.getAllBindings();
115
- const binding = bindings[name];
116
- if (!binding)
117
- return false;
118
- const bindingNode = (_a = binding.path) == null ? void 0 : _a.node;
119
- if (!t.isVariableDeclarator(bindingNode) || !bindingNode.init)
120
- return false;
121
- if (!isValidMediaCall(props, jsxPath, bindingNode.init, sourcePath))
122
- return false;
123
- return { key, bindingName: name };
124
- }
125
- if (t.isIdentifier(test)) {
126
- const key = test.name;
127
- const node = (_c = (_b = jsxPath.scope.getBinding(test.name)) == null ? void 0 : _b.path) == null ? void 0 : _c.node;
128
- if (!t.isVariableDeclarator(node))
129
- return false;
130
- if (!node.init || !isValidMediaCall(props, jsxPath, node.init, sourcePath))
131
- return false;
132
- return { key, bindingName: key };
133
- }
134
- return null;
135
- }
136
- function isValidMediaCall(props, jsxPath, init, sourcePath) {
137
- if (!t.isCallExpression(init))
138
- return false;
139
- if (!t.isIdentifier(init.callee))
140
- return false;
141
- if (init.callee.name !== "useMedia")
142
- return false;
143
- const bindings = jsxPath.scope.getAllBindings();
144
- const mediaBinding = bindings["useMedia"];
145
- if (!mediaBinding)
146
- return false;
147
- const useMediaImport = mediaBinding.path.parent;
148
- if (!t.isImportDeclaration(useMediaImport))
149
- return false;
150
- if (!isValidImport(props, sourcePath)) {
151
- return false;
152
- }
153
- return true;
154
- }
155
- export {
156
- extractMediaStyle,
157
- isValidMediaCall
158
- };
1
+ import*as o from"@babel/types";import{getStylesAtomic as A,mediaObjectToString as v}from"@tamagui/core-node";import{MEDIA_SEP as T}from"../constants.js";import{isPresent as B,isValidImport as J}from"./extractHelpers.js";function R(s,e,i,n,a,t=0,f=!1){const c=K(s,e,i,a);if(!c)return null;const{key:r}=c;if(!n.media[r])return console.error(`Media query "${r}" not found: ${Object.keys(n.media)}`),null;const y=(l,u=!1)=>l?{styleObj:l,negate:u}:null,p=[y(e.consequent,!1),y(e.alternate,!0)].filter(B);if(f&&!p.length)return console.log(" media query, no styles?"),null;const W=Object.keys(n.media).reduce((l,u,j)=>(l[u]=new Array(t+1).fill(":root").join(""),l),{});let b=[];for(const{styleObj:l,negate:u}of p){const $=A(l).map(d=>{const x=u?"0":"",h=d.identifier.slice(0,d.identifier.indexOf("-")+1),S=`${d.identifier.replace(h,`${h}${T}${r}${x}${T}`)}`,k=`.${S}`,F=v(n.media[r]),O=`${u?"not all":"screen"} and ${F}`,V=W[r],I=d.rules.map(q=>q.replace(d.identifier,S)).join(";");let M="";return I.includes("@media")?M=I.replace("{",` and ${O} {`):M=`@media ${O} { ${V} ${I} }`,{...d,identifier:S,className:k,rules:[M]}});f==="verbose"&&console.log(" media styles:",t,l,$.map(d=>d.identifier).join(", ")),b=[...b,...$]}return e.remove(),{mediaStyles:b,ternaryWithoutMedia:c.ternaryWithoutMedia}}function K(s,e,i,n){if(o.isLogicalExpression(e.test)&&e.test.operator==="&&"){const t=E(s,e.test.left,i,n,e.inlineMediaQuery);if(t)return{...t,ternaryWithoutMedia:{...e,test:e.test.right}}}const a=E(s,e.test,i,n,e.inlineMediaQuery);return a?{...a,ternaryWithoutMedia:null}:null}function E(s,e,i,n,a){var t,f,c;if(a)return{key:a,bindingName:a};if(o.isMemberExpression(e)&&o.isIdentifier(e.object)&&o.isIdentifier(e.property)){const r=e.object.name,m=e.property.name,p=i.scope.getAllBindings()[r];if(!p)return!1;const g=(t=p.path)==null?void 0:t.node;return!o.isVariableDeclarator(g)||!g.init||!N(s,i,g.init,n)?!1:{key:m,bindingName:r}}if(o.isIdentifier(e)){const r=e.name,m=(c=(f=i.scope.getBinding(e.name))==null?void 0:f.path)==null?void 0:c.node;return!o.isVariableDeclarator(m)||!m.init||!N(s,i,m.init,n)?!1:{key:r,bindingName:r}}return null}function N(s,e,i,n){if(!o.isCallExpression(i)||!o.isIdentifier(i.callee)||i.callee.name!=="useMedia")return!1;const t=e.scope.getAllBindings().useMedia;if(!t)return!1;const f=t.path.parent;return!(!o.isImportDeclaration(f)||!J(s,n))}export{R as extractMediaStyle,N as isValidMediaCall};
159
2
  //# sourceMappingURL=extractMediaStyle.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/extractMediaStyle.ts"],
4
4
  "sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\nimport { TamaguiInternalConfig, getStylesAtomic, mediaObjectToString } from '@tamagui/core-node'\nimport type { ViewStyle } from 'react-native'\n\nimport { MEDIA_SEP } from '../constants.js'\nimport type { StyleObject, TamaguiOptionsWithFileInfo, Ternary } from '../types.js'\nimport { isPresent, isValidImport } from './extractHelpers.js'\n\nexport function extractMediaStyle(\n props: TamaguiOptionsWithFileInfo,\n ternary: Ternary,\n jsxPath: NodePath<t.JSXElement>,\n tamaguiConfig: TamaguiInternalConfig,\n sourcePath: string,\n importance = 0,\n shouldPrintDebug: boolean | 'verbose' = false\n) {\n const mt = getMediaQueryTernary(props, ternary, jsxPath, sourcePath)\n if (!mt) {\n return null\n }\n const { key } = mt\n const mq = tamaguiConfig.media[key]\n if (!mq) {\n // eslint-disable-next-line no-console\n console.error(`Media query \"${key}\" not found: ${Object.keys(tamaguiConfig.media)}`)\n return null\n }\n const getStyleObj = (styleObj: ViewStyle | null, negate = false) => {\n return styleObj ? { styleObj, negate } : null\n }\n const styleOpts = [\n getStyleObj(ternary.consequent, false),\n getStyleObj(ternary.alternate, true),\n ].filter(isPresent)\n if (shouldPrintDebug && !styleOpts.length) {\n // eslint-disable-next-line no-console\n console.log(' media query, no styles?')\n return null\n }\n // for now order first strongest\n const mediaKeys = Object.keys(tamaguiConfig.media)\n const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {\n acc[cur] = new Array(importance + 1).fill(':root').join('')\n return acc\n }, {})\n let mediaStyles: StyleObject[] = []\n for (const { styleObj, negate } of styleOpts) {\n const styles = getStylesAtomic(styleObj)\n const singleMediaStyles = styles.map((style) => {\n const negKey = negate ? '0' : ''\n const ogPrefix = style.identifier.slice(0, style.identifier.indexOf('-') + 1)\n // adds an extra separator before and after to detect later\n // so it goes from: \"_f-[hash]\"\n // to: \"_f-_sm0_[hash]\" or \"_f-_sm_[hash]\"\n const identifier = `${style.identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${key}${negKey}${MEDIA_SEP}`\n )}`\n const className = `.${identifier}`\n const mediaSelector = mediaObjectToString(tamaguiConfig.media[key])\n const screenStr = negate ? 'not all' : 'screen'\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const precendencePrefix = mediaKeyPrecendence[key]\n const styleInner = style.rules\n .map((rule) => rule.replace(style.identifier, identifier))\n .join(';')\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n ...style,\n identifier,\n className,\n rules: [styleRule],\n }\n })\n if (shouldPrintDebug === 'verbose') {\n // prettier-ignore\n // eslint-disable-next-line no-console\n console.log(' media styles:', importance, styleObj, singleMediaStyles.map(x => x.identifier).join(', '))\n }\n // add to output\n mediaStyles = [...mediaStyles, ...singleMediaStyles]\n }\n // filter out\n ternary.remove()\n return { mediaStyles, ternaryWithoutMedia: mt.ternaryWithoutMedia }\n}\n\nfunction getMediaQueryTernary(\n props: TamaguiOptionsWithFileInfo,\n ternary: Ternary,\n jsxPath: NodePath<t.JSXElement>,\n sourcePath: string\n): null | {\n key: string\n bindingName: string\n ternaryWithoutMedia: Ternary | null\n} {\n // this handles unwrapping logical && media query ternarys\n // first, unwrap if it has media logicalExpression\n if (t.isLogicalExpression(ternary.test) && ternary.test.operator === '&&') {\n // *should* be normalized to always be on left side\n const mediaLeft = getMediaInfoFromExpression(\n props,\n ternary.test.left,\n jsxPath,\n sourcePath,\n ternary.inlineMediaQuery\n )\n if (mediaLeft) {\n return {\n ...mediaLeft,\n ternaryWithoutMedia: {\n ...ternary,\n test: ternary.test.right,\n },\n }\n }\n }\n // const media = useMedia()\n // ... media.sm\n const result = getMediaInfoFromExpression(\n props,\n ternary.test,\n jsxPath,\n sourcePath,\n ternary.inlineMediaQuery\n )\n if (result) {\n return {\n ...result,\n ternaryWithoutMedia: null,\n }\n }\n return null\n}\n\nfunction getMediaInfoFromExpression(\n props: TamaguiOptionsWithFileInfo,\n test: t.Expression,\n jsxPath: NodePath<t.JSXElement>,\n sourcePath: string,\n inlineMediaQuery?: string\n) {\n if (inlineMediaQuery) {\n return {\n key: inlineMediaQuery,\n bindingName: inlineMediaQuery,\n }\n }\n if (t.isMemberExpression(test) && t.isIdentifier(test.object) && t.isIdentifier(test.property)) {\n const name = test.object['name']\n const key = test.property['name']\n const bindings = jsxPath.scope.getAllBindings()\n const binding = bindings[name]\n if (!binding) return false\n const bindingNode = binding.path?.node\n if (!t.isVariableDeclarator(bindingNode) || !bindingNode.init) return false\n if (!isValidMediaCall(props, jsxPath, bindingNode.init, sourcePath)) return false\n return { key, bindingName: name }\n }\n if (t.isIdentifier(test)) {\n const key = test.name\n const node = jsxPath.scope.getBinding(test.name)?.path?.node\n if (!t.isVariableDeclarator(node)) return false\n if (!node.init || !isValidMediaCall(props, jsxPath, node.init, sourcePath)) return false\n return { key, bindingName: key }\n }\n return null\n}\n\nexport function isValidMediaCall(\n props: TamaguiOptionsWithFileInfo,\n jsxPath: NodePath<t.JSXElement>,\n init: t.Expression,\n sourcePath: string\n) {\n if (!t.isCallExpression(init)) return false\n if (!t.isIdentifier(init.callee)) return false\n // TODO could support renaming useMedia by looking up import first\n if (init.callee.name !== 'useMedia') return false\n const bindings = jsxPath.scope.getAllBindings()\n const mediaBinding = bindings['useMedia']\n if (!mediaBinding) return false\n const useMediaImport = mediaBinding.path.parent\n if (!t.isImportDeclaration(useMediaImport)) return false\n if (!isValidImport(props, sourcePath)) {\n return false\n }\n return true\n}\n"],
5
- "mappings": "AACA,YAAY,OAAO;AACnB,SAAgC,iBAAiB,2BAA2B;AAG5E,SAAS,iBAAiB;AAE1B,SAAS,WAAW,qBAAqB;AAElC,SAAS,kBACd,OACA,SACA,SACA,eACA,YACA,aAAa,GACb,mBAAwC,OACxC;AACA,QAAM,KAAK,qBAAqB,OAAO,SAAS,SAAS,UAAU;AACnE,MAAI,CAAC,IAAI;AACP,WAAO;AAAA,EACT;AACA,QAAM,EAAE,IAAI,IAAI;AAChB,QAAM,KAAK,cAAc,MAAM,GAAG;AAClC,MAAI,CAAC,IAAI;AAEP,YAAQ,MAAM,gBAAgB,mBAAmB,OAAO,KAAK,cAAc,KAAK,GAAG;AACnF,WAAO;AAAA,EACT;AACA,QAAM,cAAc,CAAC,UAA4B,SAAS,UAAU;AAClE,WAAO,WAAW,EAAE,UAAU,OAAO,IAAI;AAAA,EAC3C;AACA,QAAM,YAAY;AAAA,IAChB,YAAY,QAAQ,YAAY,KAAK;AAAA,IACrC,YAAY,QAAQ,WAAW,IAAI;AAAA,EACrC,EAAE,OAAO,SAAS;AAClB,MAAI,oBAAoB,CAAC,UAAU,QAAQ;AAEzC,YAAQ,IAAI,2BAA2B;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,KAAK,cAAc,KAAK;AACjD,QAAM,sBAAsB,UAAU,OAAO,CAAC,KAAK,KAAK,MAAM;AAC5D,QAAI,GAAG,IAAI,IAAI,MAAM,aAAa,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE;AAC1D,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACL,MAAI,cAA6B,CAAC;AAClC,aAAW,EAAE,UAAU,OAAO,KAAK,WAAW;AAC5C,UAAM,SAAS,gBAAgB,QAAQ;AACvC,UAAM,oBAAoB,OAAO,IAAI,CAAC,UAAU;AAC9C,YAAM,SAAS,SAAS,MAAM;AAC9B,YAAM,WAAW,MAAM,WAAW,MAAM,GAAG,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC;AAI5E,YAAM,aAAa,GAAG,MAAM,WAAW;AAAA,QACrC;AAAA,QACA,GAAG,WAAW,YAAY,MAAM,SAAS;AAAA,MAC3C;AACA,YAAM,YAAY,IAAI;AACtB,YAAM,gBAAgB,oBAAoB,cAAc,MAAM,GAAG,CAAC;AAClE,YAAM,YAAY,SAAS,YAAY;AACvC,YAAM,aAAa,GAAG,iBAAiB;AACvC,YAAM,oBAAoB,oBAAoB,GAAG;AACjD,YAAM,aAAa,MAAM,MACtB,IAAI,CAAC,SAAS,KAAK,QAAQ,MAAM,YAAY,UAAU,CAAC,EACxD,KAAK,GAAG;AAEX,UAAI,YAAY;AAChB,UAAI,WAAW,SAAS,QAAQ,GAAG;AAEjC,oBAAY,WAAW,QAAQ,KAAK,QAAQ,cAAc;AAAA,MAC5D,OAAO;AACL,oBAAY,UAAU,gBAAgB,qBAAqB;AAAA,MAC7D;AACA,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,OAAO,CAAC,SAAS;AAAA,MACnB;AAAA,IACF,CAAC;AACD,QAAI,qBAAqB,WAAW;AAGlC,cAAQ,IAAI,mBAAmB,YAAY,UAAU,kBAAkB,IAAI,OAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;AAAA,IAC1G;AAEA,kBAAc,CAAC,GAAG,aAAa,GAAG,iBAAiB;AAAA,EACrD;AAEA,UAAQ,OAAO;AACf,SAAO,EAAE,aAAa,qBAAqB,GAAG,oBAAoB;AACpE;AAEA,SAAS,qBACP,OACA,SACA,SACA,YAKA;AAGA,MAAI,EAAE,oBAAoB,QAAQ,IAAI,KAAK,QAAQ,KAAK,aAAa,MAAM;AAEzE,UAAM,YAAY;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK;AAAA,MACb;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACV;AACA,QAAI,WAAW;AACb,aAAO;AAAA,QACL,GAAG;AAAA,QACH,qBAAqB;AAAA,UACnB,GAAG;AAAA,UACH,MAAM,QAAQ,KAAK;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,QAAM,SAAS;AAAA,IACb;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AACA,MAAI,QAAQ;AACV,WAAO;AAAA,MACL,GAAG;AAAA,MACH,qBAAqB;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,2BACP,OACA,MACA,SACA,YACA,kBACA;AAvJF;AAwJE,MAAI,kBAAkB;AACpB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,aAAa;AAAA,IACf;AAAA,EACF;AACA,MAAI,EAAE,mBAAmB,IAAI,KAAK,EAAE,aAAa,KAAK,MAAM,KAAK,EAAE,aAAa,KAAK,QAAQ,GAAG;AAC9F,UAAM,OAAO,KAAK,OAAO,MAAM;AAC/B,UAAM,MAAM,KAAK,SAAS,MAAM;AAChC,UAAM,WAAW,QAAQ,MAAM,eAAe;AAC9C,UAAM,UAAU,SAAS,IAAI;AAC7B,QAAI,CAAC;AAAS,aAAO;AACrB,UAAM,eAAc,aAAQ,SAAR,mBAAc;AAClC,QAAI,CAAC,EAAE,qBAAqB,WAAW,KAAK,CAAC,YAAY;AAAM,aAAO;AACtE,QAAI,CAAC,iBAAiB,OAAO,SAAS,YAAY,MAAM,UAAU;AAAG,aAAO;AAC5E,WAAO,EAAE,KAAK,aAAa,KAAK;AAAA,EAClC;AACA,MAAI,EAAE,aAAa,IAAI,GAAG;AACxB,UAAM,MAAM,KAAK;AACjB,UAAM,QAAO,mBAAQ,MAAM,WAAW,KAAK,IAAI,MAAlC,mBAAqC,SAArC,mBAA2C;AACxD,QAAI,CAAC,EAAE,qBAAqB,IAAI;AAAG,aAAO;AAC1C,QAAI,CAAC,KAAK,QAAQ,CAAC,iBAAiB,OAAO,SAAS,KAAK,MAAM,UAAU;AAAG,aAAO;AACnF,WAAO,EAAE,KAAK,aAAa,IAAI;AAAA,EACjC;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,SACA,MACA,YACA;AACA,MAAI,CAAC,EAAE,iBAAiB,IAAI;AAAG,WAAO;AACtC,MAAI,CAAC,EAAE,aAAa,KAAK,MAAM;AAAG,WAAO;AAEzC,MAAI,KAAK,OAAO,SAAS;AAAY,WAAO;AAC5C,QAAM,WAAW,QAAQ,MAAM,eAAe;AAC9C,QAAM,eAAe,SAAS,UAAU;AACxC,MAAI,CAAC;AAAc,WAAO;AAC1B,QAAM,iBAAiB,aAAa,KAAK;AACzC,MAAI,CAAC,EAAE,oBAAoB,cAAc;AAAG,WAAO;AACnD,MAAI,CAAC,cAAc,OAAO,UAAU,GAAG;AACrC,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "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",
6
+ "names": ["t", "getStylesAtomic", "mediaObjectToString", "MEDIA_SEP", "isPresent", "isValidImport", "extractMediaStyle", "props", "ternary", "jsxPath", "tamaguiConfig", "sourcePath", "importance", "shouldPrintDebug", "mt", "getMediaQueryTernary", "key", "getStyleObj", "styleObj", "negate", "styleOpts", "mediaKeyPrecendence", "acc", "cur", "i", "mediaStyles", "singleMediaStyles", "style", "negKey", "ogPrefix", "identifier", "className", "mediaSelector", "mediaQuery", "precendencePrefix", "styleInner", "rule", "styleRule", "x", "mediaLeft", "getMediaInfoFromExpression", "result", "test", "inlineMediaQuery", "_a", "_b", "_c", "name", "binding", "bindingNode", "isValidMediaCall", "node", "init", "mediaBinding", "useMediaImport"]
7
7
  }