@tamagui/static 1.132.16 → 1.132.18

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 (87) hide show
  1. package/dist/extractor/concatClassName.js +69 -0
  2. package/dist/extractor/concatClassName.js.map +6 -0
  3. package/dist/extractor/concatClassName.native.js +69 -0
  4. package/dist/extractor/concatClassName.native.js.map +6 -0
  5. package/dist/extractor/createEvaluator.js +13 -1
  6. package/dist/extractor/createEvaluator.js.map +1 -1
  7. package/dist/extractor/createEvaluator.native.js +6 -1
  8. package/dist/extractor/createEvaluator.native.js.map +2 -2
  9. package/dist/extractor/createExtractor.js +60 -114
  10. package/dist/extractor/createExtractor.js.map +1 -1
  11. package/dist/extractor/createExtractor.native.js +70 -123
  12. package/dist/extractor/createExtractor.native.js.map +2 -2
  13. package/dist/extractor/errors.js +22 -0
  14. package/dist/extractor/errors.js.map +6 -0
  15. package/dist/extractor/errors.native.js +119 -0
  16. package/dist/extractor/errors.native.js.map +6 -0
  17. package/dist/extractor/extractMediaStyle.js +1 -1
  18. package/dist/extractor/extractMediaStyle.js.map +1 -1
  19. package/dist/extractor/extractMediaStyle.native.js +1 -1
  20. package/dist/extractor/extractMediaStyle.native.js.map +2 -2
  21. package/dist/extractor/extractToClassNames.js +212 -172
  22. package/dist/extractor/extractToClassNames.js.map +2 -2
  23. package/dist/extractor/extractToClassNames.native.js +212 -188
  24. package/dist/extractor/extractToClassNames.native.js.map +2 -2
  25. package/dist/extractor/extractToNative.js +47 -78
  26. package/dist/extractor/extractToNative.js.map +1 -1
  27. package/dist/extractor/extractToNative.native.js +23 -39
  28. package/dist/extractor/extractToNative.native.js.map +2 -2
  29. package/dist/extractor/normalizeTernaries.js +5 -3
  30. package/dist/extractor/normalizeTernaries.js.map +1 -1
  31. package/dist/extractor/normalizeTernaries.native.js +5 -3
  32. package/dist/extractor/normalizeTernaries.native.js.map +2 -2
  33. package/dist/extractor/propsToFontFamilyCache.js +7 -8
  34. package/dist/extractor/propsToFontFamilyCache.js.map +1 -1
  35. package/dist/extractor/propsToFontFamilyCache.native.js +9 -10
  36. package/dist/extractor/propsToFontFamilyCache.native.js.map +2 -2
  37. package/dist/registerRequire.js +1 -1
  38. package/dist/registerRequire.js.map +1 -1
  39. package/dist/registerRequire.native.js +1 -1
  40. package/dist/registerRequire.native.js.map +1 -1
  41. package/dist/types.native.js.map +1 -1
  42. package/package.json +15 -15
  43. package/src/extractor/concatClassName.ts +100 -0
  44. package/src/extractor/createEvaluator.ts +26 -1
  45. package/src/extractor/createExtractor.ts +108 -194
  46. package/src/extractor/errors.ts +1 -0
  47. package/src/extractor/extractMediaStyle.ts +1 -1
  48. package/src/extractor/extractToClassNames.ts +377 -264
  49. package/src/extractor/extractToNative.ts +68 -111
  50. package/src/extractor/normalizeTernaries.ts +10 -3
  51. package/src/extractor/propsToFontFamilyCache.ts +5 -5
  52. package/src/registerRequire.ts +1 -1
  53. package/src/types.ts +10 -13
  54. package/types/extractor/concatClassName.d.ts +8 -0
  55. package/types/extractor/concatClassName.d.ts.map +1 -0
  56. package/types/extractor/createEvaluator.d.ts.map +1 -1
  57. package/types/extractor/createExtractor.d.ts.map +1 -1
  58. package/types/extractor/errors.d.ts +3 -0
  59. package/types/extractor/errors.d.ts.map +1 -0
  60. package/types/extractor/extractToClassNames.d.ts.map +1 -1
  61. package/types/extractor/extractToNative.d.ts.map +1 -1
  62. package/types/extractor/normalizeTernaries.d.ts.map +1 -1
  63. package/types/extractor/propsToFontFamilyCache.d.ts +2 -2
  64. package/types/extractor/propsToFontFamilyCache.d.ts.map +1 -1
  65. package/types/types.d.ts +9 -10
  66. package/types/types.d.ts.map +1 -1
  67. package/dist/extractor/buildClassName.js +0 -72
  68. package/dist/extractor/buildClassName.js.map +0 -6
  69. package/dist/extractor/buildClassName.native.js +0 -67
  70. package/dist/extractor/buildClassName.native.js.map +0 -6
  71. package/dist/extractor/ensureImportingConcat.js +0 -50
  72. package/dist/extractor/ensureImportingConcat.js.map +0 -6
  73. package/dist/extractor/ensureImportingConcat.native.js +0 -49
  74. package/dist/extractor/ensureImportingConcat.native.js.map +0 -6
  75. package/dist/extractor/hoistClassNames.js +0 -63
  76. package/dist/extractor/hoistClassNames.js.map +0 -6
  77. package/dist/extractor/hoistClassNames.native.js +0 -66
  78. package/dist/extractor/hoistClassNames.native.js.map +0 -6
  79. package/src/extractor/buildClassName.ts +0 -76
  80. package/src/extractor/ensureImportingConcat.ts +0 -36
  81. package/src/extractor/hoistClassNames.ts +0 -52
  82. package/types/extractor/buildClassName.d.ts +0 -7
  83. package/types/extractor/buildClassName.d.ts.map +0 -1
  84. package/types/extractor/ensureImportingConcat.d.ts +0 -4
  85. package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
  86. package/types/extractor/hoistClassNames.d.ts +0 -6
  87. package/types/extractor/hoistClassNames.d.ts.map +0 -1
@@ -25,13 +25,9 @@ __export(extractToClassNames_exports, {
25
25
  extractToClassNames: () => extractToClassNames
26
26
  });
27
27
  module.exports = __toCommonJS(extractToClassNames_exports);
28
- var path = __toESM(require("node:path")), util = __toESM(require("node:util")), import_generator = __toESM(require("@babel/generator")), t = __toESM(require("@babel/types")), helpers = __toESM(require("@tamagui/helpers")), import_requireTamaguiCore = require("../helpers/requireTamaguiCore"), import_babelParse = require("./babelParse"), import_buildClassName = require("./buildClassName"), import_createLogger = require("./createLogger"), import_ensureImportingConcat = require("./ensureImportingConcat"), import_extractHelpers = require("./extractHelpers"), import_extractMediaStyle = require("./extractMediaStyle"), import_hoistClassNames = require("./hoistClassNames"), import_propsToFontFamilyCache = require("./propsToFontFamilyCache"), import_timer = require("./timer");
29
- const mergeStyleGroups = {
30
- shadowOpacity: !0,
31
- shadowRadius: !0,
32
- shadowColor: !0,
33
- shadowOffset: !0
34
- };
28
+ var import_generator = __toESM(require("@babel/generator")), t = __toESM(require("@babel/types")), import_web = require("@tamagui/web"), path = __toESM(require("node:path")), util = __toESM(require("node:util")), import_requireTamaguiCore = require("../helpers/requireTamaguiCore"), import_babelParse = require("./babelParse"), import_createLogger = require("./createLogger"), import_extractMediaStyle = require("./extractMediaStyle"), import_normalizeTernaries = require("./normalizeTernaries"), import_propsToFontFamilyCache = require("./propsToFontFamilyCache"), import_timer = require("./timer"), import_errors = require("./errors"), import_concatClassName = require("./concatClassName");
29
+ const remove = () => {
30
+ }, spaceString = t.stringLiteral(" ");
35
31
  async function extractToClassNames({
36
32
  extractor,
37
33
  source,
@@ -39,7 +35,7 @@ async function extractToClassNames({
39
35
  options,
40
36
  shouldPrintDebug
41
37
  }) {
42
- const tm = (0, import_timer.timer)(), { getCSSStylesAtomic } = (0, import_requireTamaguiCore.requireTamaguiCore)("web");
38
+ const tm = (0, import_timer.timer)(), { getCSSStylesAtomic, createMediaStyle } = (0, import_requireTamaguiCore.requireTamaguiCore)("web");
43
39
  if (sourcePath.includes("node_modules"))
44
40
  return null;
45
41
  if (shouldPrintDebug && console.warn(`--- ${sourcePath} ---
@@ -59,19 +55,17 @@ async function extractToClassNames({
59
55
  throw console.error("babel parse error:", sourcePath.slice(0, 100)), err;
60
56
  }
61
57
  tm.mark("babel-parse", shouldPrintDebug === "verbose");
62
- const cssMap = /* @__PURE__ */ new Map(), existingHoists = {};
63
- let hasFlattened = !1;
64
- const res = await extractor.parse(ast, {
58
+ const cssMap = /* @__PURE__ */ new Map(), tamaguiConfig = extractor.getTamagui(), res = await extractor.parse(ast, {
65
59
  shouldPrintDebug,
66
60
  ...options,
67
61
  platform: "web",
68
62
  sourcePath,
69
63
  extractStyledDefinitions: !0,
70
- onStyleRule(identifier, rules) {
64
+ onStyledDefinitionRule(identifier, rules) {
71
65
  const css = rules.join(";");
72
66
  shouldPrintDebug && console.info(`adding styled() rule: .${identifier} ${css}`), cssMap.set(`.${identifier}`, { css, commentTexts: [] });
73
67
  },
74
- getFlattenedNode: ({ tag }) => (hasFlattened = !0, tag),
68
+ getFlattenedNode: ({ tag }) => tag,
75
69
  onExtractTag: ({
76
70
  parserProps,
77
71
  attrs,
@@ -81,178 +75,197 @@ async function extractToClassNames({
81
75
  originalNodeName,
82
76
  filePath,
83
77
  lineNumbers,
84
- programPath,
85
- isFlattened,
86
78
  staticConfig
87
79
  }) => {
88
- if (staticConfig.acceptsClassName === !1) {
89
- shouldPrintDebug && console.info("bail, acceptsClassName is false");
90
- return;
91
- }
92
- const didFlattenThisTag = hasFlattened;
93
- hasFlattened = !1;
94
- let finalClassNames = [];
80
+ if (staticConfig.acceptsClassName === !1)
81
+ throw new import_errors.BailOptimizationError();
95
82
  const finalAttrs = [];
96
- let finalStyles = [], viewStyles = {};
97
- for (const attr of attrs)
98
- attr.type === "style" && (viewStyles = {
99
- ...viewStyles,
100
- ...attr.value
101
- });
102
- const ensureNeededPrevStyle = (style) => {
103
- if (!Object.keys(style).some((key) => mergeStyleGroups[key]))
104
- return style;
105
- for (const k in mergeStyleGroups)
106
- k in viewStyles && (style[k] = style[k] ?? viewStyles[k]);
107
- return style;
108
- }, addStyles = (style) => {
109
- if (!style) return [];
110
- const styleWithPrev = ensureNeededPrevStyle(style), res2 = getCSSStylesAtomic(styleWithPrev);
111
- return res2.length && (finalStyles = [...finalStyles, ...res2]), res2;
112
- };
113
- let lastMediaImportance = 1;
114
- for (const attr of attrs)
115
- switch (attr.type) {
116
- case "style": {
117
- if (isFlattened) {
118
- const styles2 = addStyles(attr.value), newFontFamily = (0, import_propsToFontFamilyCache.getFontFamilyClassNameFromProps)(attr.value) || "", newClassNames = helpers.concatClassName(
119
- styles2.map((x) => x[helpers.StyleObjectIdentifier]).join(" ") + newFontFamily
120
- ), existing = finalClassNames.find(
121
- (x) => x.type == "StringLiteral"
122
- );
123
- if (existing) {
124
- let previous = existing.value;
125
- newFontFamily && (shouldPrintDebug && console.info(` newFontFamily: ${newFontFamily}`), previous = previous.replace(/font_[a-z]+/i, "")), existing.value = `${previous} ${newClassNames}`;
126
- } else
127
- finalClassNames = [...finalClassNames, t.stringLiteral(newClassNames)];
128
- } else {
129
- const styles2 = getCSSStylesAtomic(attr.value);
130
- finalStyles = [...finalStyles, ...styles2];
131
- for (const style of styles2) {
132
- const prop = style[helpers.StyleObjectPseudo] ? `${style[helpers.StyleObjectProperty]}-${style[helpers.StyleObjectPseudo]}` : style[helpers.StyleObjectProperty];
133
- finalAttrs.push(
134
- t.jsxAttribute(
135
- t.jsxIdentifier(prop),
136
- t.stringLiteral(style[helpers.StyleObjectIdentifier])
137
- )
138
- );
139
- }
140
- }
141
- break;
142
- }
143
- case "attr": {
144
- const val = attr.value;
145
- if (t.isJSXSpreadAttribute(val))
146
- (0, import_extractHelpers.isSimpleSpread)(val) && finalClassNames.push(
147
- t.logicalExpression(
148
- "&&",
149
- val.argument,
150
- t.memberExpression(val.argument, t.identifier("className"))
151
- )
152
- );
153
- else if (val.name.name === "className") {
154
- const value = val.value;
155
- if (value)
156
- try {
157
- const evaluatedValue = attemptEval(value);
158
- finalClassNames.push(t.stringLiteral(evaluatedValue));
159
- } catch {
160
- finalClassNames.push(value.expression);
161
- }
162
- continue;
163
- }
164
- finalAttrs.push(val);
165
- break;
166
- }
167
- case "ternary": {
168
- const mediaExtraction = (0, import_extractMediaStyle.extractMediaStyle)(
169
- parserProps,
170
- attr.value,
171
- jsxPath,
172
- extractor.getTamagui(),
173
- sourcePath || "",
174
- lastMediaImportance,
175
- shouldPrintDebug
176
- );
177
- if (shouldPrintDebug && mediaExtraction && console.info(
178
- "ternary (mediaStyles)",
179
- mediaExtraction.ternaryWithoutMedia?.inlineMediaQuery ?? "",
180
- mediaExtraction.mediaStyles.map((x) => x[helpers.StyleObjectIdentifier]).join(".")
181
- ), !mediaExtraction) {
182
- shouldPrintDebug && mediaExtraction && console.info("add ternary"), addTernaryStyle(
183
- attr.value,
184
- addStyles(attr.value.consequent),
185
- addStyles(attr.value.alternate)
186
- );
187
- continue;
188
- }
189
- lastMediaImportance++, mediaExtraction.mediaStyles && (finalStyles = [...finalStyles, ...mediaExtraction.mediaStyles]), mediaExtraction.ternaryWithoutMedia ? addTernaryStyle(
190
- mediaExtraction.ternaryWithoutMedia,
191
- mediaExtraction.mediaStyles,
192
- []
193
- ) : finalClassNames = [
194
- ...finalClassNames,
195
- ...mediaExtraction.mediaStyles.map(
196
- (x) => t.stringLiteral(x[helpers.StyleObjectIdentifier])
197
- )
198
- ];
199
- break;
200
- }
201
- }
202
- function addTernaryStyle(ternary, a, b) {
203
- const cCN = a.map((x) => x[helpers.StyleObjectIdentifier]).join(" "), aCN = b.map((x) => x[helpers.StyleObjectIdentifier]).join(" ");
204
- a.length && b.length ? finalClassNames.push(
205
- t.conditionalExpression(
206
- ternary.test,
207
- t.stringLiteral(cCN),
208
- t.stringLiteral(aCN)
209
- )
210
- ) : finalClassNames.push(
211
- t.conditionalExpression(
212
- ternary.test,
213
- t.stringLiteral(" " + cCN),
214
- t.stringLiteral(" " + aCN)
215
- )
216
- );
217
- }
218
- if (shouldPrintDebug === "verbose" && console.info(` finalClassNames AST
219
- `, JSON.stringify(finalClassNames, null, 2)), node.attributes = finalAttrs, finalClassNames.length) {
220
- const extraClassNames = (() => {
221
- let value = "";
222
- return isFlattened && (process.env.TAMAGUI_DEBUG_OPTIMIZATIONS && (value += "is_tamagui_flattened"), staticConfig.componentName && (value += ` is_${staticConfig.componentName}`)), value;
223
- })(), names = (0, import_buildClassName.buildClassName)(finalClassNames, extraClassNames), nameExpr = names ? (0, import_hoistClassNames.hoistClassNames)(jsxPath, existingHoists, names) : null;
224
- let expr = nameExpr;
225
- if (nameExpr && !t.isIdentifier(nameExpr) && didFlattenThisTag) {
226
- (0, import_ensureImportingConcat.ensureImportingConcat)(programPath);
227
- const simpleSpreads = attrs.filter((x) => x.type === "attr" && t.isJSXSpreadAttribute(x.value) && (0, import_extractHelpers.isSimpleSpread)(x.value));
228
- expr = t.callExpression(t.identifier("concatClassName"), [
229
- expr,
230
- ...simpleSpreads.map((val) => val.value.argument)
231
- ]);
232
- }
233
- node.attributes.push(
234
- t.jsxAttribute(t.jsxIdentifier("className"), t.jsxExpressionContainer(expr))
235
- );
236
- }
83
+ let mergeForwardBaseStyle = null, attrClassName = null, baseFontFamily = "", mediaStylesSeen = 1;
237
84
  const comment = util.format(
238
85
  "/* %s:%s (%s) */",
239
86
  filePath,
240
87
  lineNumbers,
241
88
  originalNodeName
242
89
  );
243
- for (const styleObject of finalStyles) {
244
- const identifier = styleObject[helpers.StyleObjectIdentifier], rules = styleObject[helpers.StyleObjectRules], className = `.${identifier}`;
245
- if (cssMap.has(className)) {
246
- if (comment) {
247
- const val = cssMap.get(className);
248
- val.commentTexts.push(comment), cssMap.set(className, val);
249
- }
250
- } else rules.length && cssMap.set(className, {
90
+ function addStyle(style) {
91
+ const identifier = style[import_web.StyleObjectIdentifier], rules = style[import_web.StyleObjectRules], selector = `.${identifier}`;
92
+ return cssMap.has(selector) ? cssMap.get(selector).commentTexts.push(comment) : rules.length && cssMap.set(selector, {
251
93
  css: rules.join(`
252
94
  `),
253
95
  commentTexts: [comment]
254
- });
96
+ }), identifier;
97
+ }
98
+ function addStyles(style) {
99
+ const cssStyles = getCSSStylesAtomic(style), classNames = [];
100
+ for (const style2 of cssStyles) {
101
+ const mediaName = style2[0].slice(1);
102
+ if (tamaguiConfig.media[mediaName]) {
103
+ const mediaStyle = createMediaStyle(
104
+ style2,
105
+ mediaName,
106
+ extractor.getTamagui().media,
107
+ !0,
108
+ !1,
109
+ mediaStylesSeen
110
+ ), identifier2 = addStyle(mediaStyle);
111
+ classNames.push(identifier2);
112
+ continue;
113
+ }
114
+ const identifier = addStyle(style2);
115
+ classNames.push(identifier);
116
+ }
117
+ return classNames;
255
118
  }
119
+ const onlyTernaries = attrs.flatMap((attr) => {
120
+ if (attr.type === "attr") {
121
+ const value = attr.value;
122
+ if (t.isJSXSpreadAttribute(value))
123
+ return console.error("Should never happen"), [];
124
+ if (value.name.name === "className") {
125
+ let inner = value.value;
126
+ t.isJSXExpressionContainer(inner) && (inner = inner.expression);
127
+ try {
128
+ const evaluatedValue = inner ? attemptEval(inner) : null;
129
+ typeof evaluatedValue == "string" && (attrClassName = t.stringLiteral(evaluatedValue));
130
+ } catch {
131
+ inner && (attrClassName ||= inner);
132
+ }
133
+ return [];
134
+ }
135
+ return finalAttrs.push(value), [];
136
+ }
137
+ if (attr.type === "style")
138
+ return mergeForwardBaseStyle = (0, import_web.mergeProps)(mergeForwardBaseStyle || {}, attr.value), baseFontFamily = (0, import_propsToFontFamilyCache.getFontFamilyNameFromProps)(attr.value) || "", [];
139
+ let ternary = attr.value;
140
+ if (ternary.inlineMediaQuery) {
141
+ const mediaExtraction = (0, import_extractMediaStyle.extractMediaStyle)(
142
+ parserProps,
143
+ attr.value,
144
+ jsxPath,
145
+ extractor.getTamagui(),
146
+ sourcePath || "",
147
+ mediaStylesSeen++,
148
+ shouldPrintDebug
149
+ );
150
+ if (mediaExtraction)
151
+ if (mediaExtraction.mediaStyles && (mergeForwardBaseStyle = (0, import_web.mergeProps)(mergeForwardBaseStyle || {}, {
152
+ [`$${ternary.inlineMediaQuery}`]: attr.value.consequent
153
+ })), mediaExtraction.ternaryWithoutMedia)
154
+ ternary = mediaExtraction.ternaryWithoutMedia;
155
+ else
156
+ return [];
157
+ }
158
+ let mergedAlternate, mergedConsequent;
159
+ return ternary.alternate && Object.keys(ternary.alternate).length && (mergedAlternate = (0, import_web.mergeProps)(
160
+ mergeForwardBaseStyle || {},
161
+ ternary.alternate || {}
162
+ ), (0, import_propsToFontFamilyCache.forwardFontFamilyName)(ternary.alternate, mergedAlternate, baseFontFamily)), ternary.consequent && Object.keys(ternary.consequent).length && (mergedConsequent = (0, import_web.mergeProps)(
163
+ mergeForwardBaseStyle || {},
164
+ ternary.consequent || {}
165
+ ), (0, import_propsToFontFamilyCache.forwardFontFamilyName)(ternary.consequent, mergedConsequent, baseFontFamily)), {
166
+ ...ternary,
167
+ alternate: mergedAlternate,
168
+ consequent: mergedConsequent
169
+ };
170
+ }), hasTernaries = !!onlyTernaries.length, baseClassNames = mergeForwardBaseStyle ? addStyles(mergeForwardBaseStyle) : null;
171
+ let baseClassNameStr = baseClassNames ? baseClassNames.join(" ") : "";
172
+ !hasTernaries && baseFontFamily && (baseClassNameStr = `font_${baseFontFamily}${baseClassNameStr ? ` ${baseClassNameStr}` : ""}`);
173
+ let base = staticConfig.componentName ? t.stringLiteral(
174
+ `is_${staticConfig.componentName}${baseClassNameStr ? ` ${baseClassNameStr}` : ""}`
175
+ ) : t.stringLiteral(baseClassNameStr || "");
176
+ attrClassName = attrClassName;
177
+ const baseClassNameExpression = attrClassName ? t.isStringLiteral(attrClassName) ? t.stringLiteral(
178
+ base.value ? `${base.value} ${attrClassName.value}` : attrClassName.value
179
+ ) : t.conditionalExpression(
180
+ attrClassName,
181
+ t.binaryExpression("+", attrClassName, spaceString),
182
+ base
183
+ ) : base, expandedTernaries = [];
184
+ if (onlyTernaries.length) {
185
+ const normalizedTernaries = (0, import_normalizeTernaries.normalizeTernaries)(onlyTernaries);
186
+ for (const ternary of normalizedTernaries) {
187
+ if (!expandedTernaries.length) {
188
+ expandTernary(ternary);
189
+ continue;
190
+ }
191
+ for (const prev of [...expandedTernaries])
192
+ expandTernary(ternary, prev);
193
+ }
194
+ }
195
+ function expandTernary(ternary, prev) {
196
+ if (ternary.consequent && Object.keys(ternary.consequent).length) {
197
+ const fontFamily = (0, import_propsToFontFamilyCache.getFontFamilyNameFromProps)(ternary.consequent);
198
+ expandedTernaries.push({
199
+ fontFamily,
200
+ // prevTest && test: merge consequent
201
+ test: prev ? t.logicalExpression("&&", prev.test, ternary.test) : ternary.test,
202
+ consequent: prev ? (0, import_web.mergeProps)(prev.consequent, ternary.consequent) : ternary.consequent,
203
+ remove,
204
+ alternate: null
205
+ }), prev && expandedTernaries.push({
206
+ fontFamily,
207
+ // !prevTest && test: just consequent
208
+ test: t.logicalExpression(
209
+ "&&",
210
+ t.unaryExpression("!", prev.test),
211
+ ternary.test
212
+ ),
213
+ consequent: ternary.consequent,
214
+ alternate: null,
215
+ remove
216
+ });
217
+ }
218
+ if (ternary.alternate && Object.keys(ternary.alternate).length) {
219
+ const fontFamily = (0, import_propsToFontFamilyCache.getFontFamilyNameFromProps)(ternary.alternate), negated = t.unaryExpression("!", ternary.test);
220
+ expandedTernaries.push({
221
+ fontFamily,
222
+ // prevTest && !test: merge alternate
223
+ test: prev ? t.logicalExpression("&&", prev.test, negated) : negated,
224
+ consequent: prev ? (0, import_web.mergeProps)(prev.alternate, ternary.alternate) : ternary.alternate,
225
+ remove,
226
+ alternate: null
227
+ }), prev && expandedTernaries.push({
228
+ fontFamily,
229
+ test: t.logicalExpression(
230
+ "&&",
231
+ t.unaryExpression("!", prev.test),
232
+ ternary.test
233
+ ),
234
+ consequent: ternary.alternate,
235
+ remove,
236
+ alternate: null
237
+ });
238
+ }
239
+ }
240
+ let ternaryClassNameExpr = null;
241
+ if (hasTernaries)
242
+ for (const ternary of expandedTernaries) {
243
+ if (!ternary.consequent) continue;
244
+ const classNames = addStyles(ternary.consequent);
245
+ ternary.fontFamily && classNames.unshift(`font_${ternary.fontFamily}`);
246
+ const baseString = t.isStringLiteral(baseClassNameExpression) ? baseClassNameExpression.value : "", fullClassName = (0, import_concatClassName.concatClassName)(
247
+ (baseString ? `${baseString} ` : "") + classNames.join(" ")
248
+ ), classNameLiteral = t.stringLiteral(fullClassName);
249
+ ternaryClassNameExpr ? ternaryClassNameExpr = t.conditionalExpression(
250
+ ternary.test,
251
+ classNameLiteral,
252
+ ternaryClassNameExpr
253
+ ) : ternaryClassNameExpr = t.conditionalExpression(
254
+ ternary.test,
255
+ classNameLiteral,
256
+ baseClassNameExpression
257
+ );
258
+ }
259
+ let finalExpression = ternaryClassNameExpr || baseClassNameExpression || null;
260
+ if (finalExpression) {
261
+ finalExpression = hoistClassNames(jsxPath, finalExpression);
262
+ const classNameProp = t.jsxAttribute(
263
+ t.jsxIdentifier("className"),
264
+ t.jsxExpressionContainer(finalExpression)
265
+ );
266
+ finalAttrs.unshift(classNameProp);
267
+ }
268
+ node.attributes = finalAttrs;
256
269
  }
257
270
  });
258
271
  if (!res || !res.modified && !res.optimized && !res.flattened && !res.styled)
@@ -288,4 +301,31 @@ async function extractToClassNames({
288
301
  map: result.map
289
302
  };
290
303
  }
304
+ function hoistClassNames(path2, expr) {
305
+ if (t.isStringLiteral(expr))
306
+ return hoistClassName(path2, expr.value);
307
+ if (t.isLogicalExpression(expr)) {
308
+ const left = t.isStringLiteral(expr.left) ? hoistClassName(path2, expr.left.value) : expr.left, right = t.isStringLiteral(expr.right) ? hoistClassName(path2, expr.right.value) : hoistClassNames(path2, expr.right);
309
+ return t.logicalExpression(expr.operator, left, right);
310
+ }
311
+ if (t.isConditionalExpression(expr)) {
312
+ const cons = t.isStringLiteral(expr.consequent) ? hoistClassName(path2, expr.consequent.value) : hoistClassNames(path2, expr.consequent), alt = t.isStringLiteral(expr.alternate) ? hoistClassName(path2, expr.alternate.value) : hoistClassNames(path2, expr.alternate);
313
+ return t.conditionalExpression(expr.test, cons, alt);
314
+ }
315
+ return expr;
316
+ }
317
+ function hoistClassName(path2, str) {
318
+ const uid = path2.scope.generateUidIdentifier("cn"), parent = path2.findParent((path3) => path3.isProgram());
319
+ if (!parent) throw new Error("no program?");
320
+ const variable = t.variableDeclaration("const", [
321
+ t.variableDeclarator(uid, t.stringLiteral(cleanupClassName(str)))
322
+ ]);
323
+ return parent.unshiftContainer("body", variable), uid;
324
+ }
325
+ function cleanupClassName(inStr) {
326
+ const out = /* @__PURE__ */ new Set();
327
+ for (const part of inStr.split(" "))
328
+ part !== " " && part !== "font_" && out.add(part);
329
+ return [...out].join(" ") + " ";
330
+ }
291
331
  //# sourceMappingURL=extractToClassNames.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/extractor/extractToClassNames.ts"],
4
- "mappings": "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",
5
- "names": ["res", "styles", "generate"]
4
+ "mappings": "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",
5
+ "names": ["style", "identifier", "generate", "path"]
6
6
  }