weapp-tailwindcss 5.4.2 → 5.5.1

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 (91) hide show
  1. package/README.md +13 -1
  2. package/README.zh-CN.md +13 -1
  3. package/dist/bundlers/shared/final-css-cleanup.d.ts +1 -1
  4. package/dist/bundlers/shared/v4-generation-core.d.ts +1 -0
  5. package/dist/bundlers/vite/capability-profile.d.ts +1 -0
  6. package/dist/bundlers/vite/css-finalizer/web-plugin.d.ts +3 -0
  7. package/dist/bundlers/vite/css-handler-options.d.ts +32 -0
  8. package/dist/bundlers/vite/{generate-bundle/css-output.d.ts → css-output.d.ts} +1 -1
  9. package/dist/bundlers/vite/frameworks/generic/web.d.ts +2 -0
  10. package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +2 -32
  11. package/dist/bundlers/vite/generate-bundle/finalize/root-import-shell.d.ts +1 -1
  12. package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +2 -2
  13. package/dist/bundlers/vite/generate-bundle/runtime.d.ts +1 -1
  14. package/dist/bundlers/vite/generate-bundle/uni-app-x-postprocess.d.ts +1 -1
  15. package/dist/bundlers/vite/generate-bundle.d.ts +1 -1
  16. package/dist/bundlers/vite/runtime-class-set.d.ts +1 -5
  17. package/dist/bundlers/vite/shared/create-css-only-plugins-runtime.d.ts +3 -0
  18. package/dist/cache-CBJFB1HN.cjs +223 -0
  19. package/dist/compiler/events.d.ts +32 -0
  20. package/dist/compiler/host.d.ts +13 -0
  21. package/dist/compiler/index.d.ts +3 -0
  22. package/dist/compiler/runtime-state.d.ts +17 -0
  23. package/dist/compiler-B0YSc0DY.js +4877 -0
  24. package/dist/{wxml-o-CUulAM.cjs → compiler-D2ZJc3uA.cjs} +3649 -283
  25. package/dist/core.cjs +6 -3
  26. package/dist/core.d.ts +2 -0
  27. package/dist/core.js +4 -4
  28. package/dist/defaults-B5ep0ojb.js +120 -0
  29. package/dist/defaults-BI9j1znS.cjs +156 -0
  30. package/dist/defaults.cjs +5 -121
  31. package/dist/defaults.js +1 -116
  32. package/dist/final-css-cleanup-B0HUBtiE.js +308 -0
  33. package/dist/final-css-cleanup-DSjczga3.cjs +138 -0
  34. package/dist/{generator-WlhrtNa3.cjs → generator-DsrQ9txU.cjs} +62 -5
  35. package/dist/{generator-BjK5PRR-.js → generator-DyXTBPmE.js} +47 -2
  36. package/dist/generator.cjs +1 -1
  37. package/dist/generator.js +1 -1
  38. package/dist/{gulp-ChecVI6A.cjs → gulp-C9ENAx3f.cjs} +30 -28
  39. package/dist/{gulp-D6LcfRz_.js → gulp-DXeQfvVC.js} +7 -7
  40. package/dist/gulp.cjs +1 -1
  41. package/dist/gulp.js +1 -1
  42. package/dist/{hmr-timing-afnWvy7u.cjs → hmr-timing-Cz4IesEM.cjs} +6 -229
  43. package/dist/{hmr-timing-CqDfjvqE.js → hmr-timing-DNxQm-bN.js} +6 -1258
  44. package/dist/index.cjs +4 -4
  45. package/dist/index.js +4 -4
  46. package/dist/{pipeline-helpers-DxPFMGxz.cjs → pipeline-helpers-CSGnR5gh.cjs} +6 -5
  47. package/dist/postcss.cjs +1 -1
  48. package/dist/postcss.js +1 -1
  49. package/dist/presets.cjs +4 -4
  50. package/dist/presets.js +2 -2
  51. package/dist/rspack.cjs +2 -2
  52. package/dist/rspack.js +2 -2
  53. package/dist/runtime-state-BBQcA0n5.cjs +54 -0
  54. package/dist/{source-candidate-scan-signature-FywFU3Rg.cjs → scoped-generator-TVjEaOeP.cjs} +5 -123
  55. package/dist/{source-candidate-scan-signature-BVScymyM.js → scoped-generator-kRj_5Axx.js} +4 -92
  56. package/dist/source-candidate-scan-signature-B7cUxqqX.cjs +129 -0
  57. package/dist/source-candidate-scan-signature-CsP4BQNa.js +92 -0
  58. package/dist/style-injector/internal.d.ts +1 -1
  59. package/dist/style-injector/vite-web.d.ts +3 -0
  60. package/dist/{tailwindcss-9xmoCkaR.js → tailwindcss-BK9S7zuq.js} +1 -2
  61. package/dist/{tailwindcss-D3jltF7M.cjs → tailwindcss-C-jBBQfw.cjs} +8 -9
  62. package/dist/{transform-DQhgAarN.js → transform-CfOzh007.js} +3 -3
  63. package/dist/{transform-C6k9zTQR.cjs → transform-DUPOPZ54.cjs} +27 -27
  64. package/dist/uni-app-x/vite/style-source.d.ts +11 -0
  65. package/dist/{v4-generation-core-CPKNwzjz.cjs → v4-generation-core-CRNUU_Rr.cjs} +29 -1172
  66. package/dist/vite/web.cjs +27 -0
  67. package/dist/vite/web.d.ts +1 -0
  68. package/dist/vite/web.js +25 -0
  69. package/dist/{vite-D3aCtpmv.js → vite-BXe-axax.js} +263 -3587
  70. package/dist/{vite-D-gmOkPN.cjs → vite-D_mAIfTU.cjs} +514 -3798
  71. package/dist/vite-web.d.ts +4 -0
  72. package/dist/vite.cjs +1 -1
  73. package/dist/vite.js +1 -1
  74. package/dist/weapp-tw-css-generation-loader.cjs +1 -1
  75. package/dist/weapp-tw-css-import-rewrite-loader.cjs +5 -5
  76. package/dist/web-B2Ea9K4B.cjs +4361 -0
  77. package/dist/web-Cv7ualrU.js +3796 -0
  78. package/dist/{webpack-B-6a8Z8F.js → webpack-7Um2GFtx.js} +13 -12
  79. package/dist/{webpack-yAne9ZYu.cjs → webpack-Ce04-btG.cjs} +51 -49
  80. package/dist/webpack.cjs +1 -1
  81. package/dist/webpack.js +1 -1
  82. package/package.json +13 -4
  83. package/dist/cache-options-DavPxrhC.cjs +0 -16
  84. package/dist/cache-options-DwBtLwQe.js +0 -5
  85. package/dist/compiler-B-m9VGqj.cjs +0 -2316
  86. package/dist/compiler-BgMj2E5l.js +0 -2051
  87. package/dist/local-style-matcher-DRpFEu1s.cjs +0 -34
  88. package/dist/local-style-matcher-DsiI2wIc.js +0 -17
  89. package/dist/object-B-8IHefx.js +0 -47
  90. package/dist/object-DbHtAXRk.cjs +0 -58
  91. package/dist/wxml-CvKyV69S.js +0 -1822
@@ -0,0 +1,308 @@
1
+ import { postcss, removeEmptyAtRules, removeEmptyRules, repairTrailingUnclosedTailwindSourceMedia } from "@weapp-tailwindcss/postcss";
2
+ //#region src/compiler/runtime-build-state.ts
3
+ function invertLinkedByEntry(linkedByEntry) {
4
+ const dependentsByLinkedFile = /* @__PURE__ */ new Map();
5
+ for (const [entryFile, linkedFiles] of linkedByEntry.entries()) for (const linkedFile of linkedFiles) {
6
+ let dependents = dependentsByLinkedFile.get(linkedFile);
7
+ if (!dependents) {
8
+ dependents = /* @__PURE__ */ new Set();
9
+ dependentsByLinkedFile.set(linkedFile, dependents);
10
+ }
11
+ dependents.add(entryFile);
12
+ }
13
+ return dependentsByLinkedFile;
14
+ }
15
+ function replaceMapEntries(target, source) {
16
+ target.clear();
17
+ for (const [key, value] of source) target.set(key, value);
18
+ return target;
19
+ }
20
+ function mergeMapEntries(target, source) {
21
+ for (const [key, value] of source) target.set(key, value);
22
+ return target;
23
+ }
24
+ function createRuntimeCompilationBuildState() {
25
+ return {
26
+ iteration: 0,
27
+ sourceHashByFile: /* @__PURE__ */ new Map(),
28
+ runtimeAffectingSignatureByFile: /* @__PURE__ */ new Map(),
29
+ runtimeAffectingHashByFile: /* @__PURE__ */ new Map(),
30
+ linkedByEntry: /* @__PURE__ */ new Map(),
31
+ dependentsByLinkedFile: /* @__PURE__ */ new Map(),
32
+ bundleMarkupCandidatesByFile: /* @__PURE__ */ new Map(),
33
+ generatorCandidateSignature: void 0
34
+ };
35
+ }
36
+ function updateRuntimeCompilationBuildState(state, snapshot, linkedByEntry, options = {}) {
37
+ const incremental = options.incremental === true;
38
+ removeRuntimeCompilationBuildStateFiles(state, snapshot.removedFiles);
39
+ state.iteration += 1;
40
+ state.sourceHashByFile = incremental ? mergeMapEntries(state.sourceHashByFile, snapshot.sourceHashByFile) : replaceMapEntries(state.sourceHashByFile, snapshot.sourceHashByFile);
41
+ state.runtimeAffectingSignatureByFile.clear();
42
+ state.runtimeAffectingHashByFile = incremental ? mergeMapEntries(state.runtimeAffectingHashByFile, snapshot.runtimeAffectingHashByFile) : replaceMapEntries(state.runtimeAffectingHashByFile, snapshot.runtimeAffectingHashByFile);
43
+ state.linkedByEntry = incremental ? mergeMapEntries(state.linkedByEntry, linkedByEntry) : replaceMapEntries(state.linkedByEntry, linkedByEntry);
44
+ state.dependentsByLinkedFile = invertLinkedByEntry(state.linkedByEntry);
45
+ }
46
+ function removeRuntimeCompilationBuildStateFiles(state, files) {
47
+ const removedFiles = new Set(files);
48
+ if (removedFiles.size === 0) return;
49
+ for (const file of removedFiles) {
50
+ state.sourceHashByFile.delete(file);
51
+ state.runtimeAffectingSignatureByFile.delete(file);
52
+ state.runtimeAffectingHashByFile.delete(file);
53
+ state.bundleMarkupCandidatesByFile.delete(file);
54
+ state.linkedByEntry.delete(file);
55
+ }
56
+ for (const linkedFiles of state.linkedByEntry.values()) for (const file of removedFiles) linkedFiles.delete(file);
57
+ state.dependentsByLinkedFile = invertLinkedByEntry(state.linkedByEntry);
58
+ }
59
+ function resetRuntimeCompilationBuildState(state) {
60
+ state.iteration = 0;
61
+ state.sourceHashByFile.clear();
62
+ state.runtimeAffectingSignatureByFile.clear();
63
+ state.runtimeAffectingHashByFile.clear();
64
+ state.linkedByEntry.clear();
65
+ state.dependentsByLinkedFile.clear();
66
+ state.bundleMarkupCandidatesByFile.clear();
67
+ state.generatorCandidateSignature = void 0;
68
+ }
69
+ function createRuntimeCompilationAffectingSignature(snapshot, computeHash) {
70
+ const entries = [...snapshot.runtimeAffectingHashByFile].sort(([first], [second]) => first.localeCompare(second)).map(([file, hash]) => `${file}:${hash}`);
71
+ return entries.length === 0 ? "runtime-affecting:0" : `runtime-affecting:1:${computeHash(entries.join("\n"))}`;
72
+ }
73
+ //#endregion
74
+ //#region src/compiler/runtime-snapshot.ts
75
+ function createChangedByType() {
76
+ return {
77
+ html: /* @__PURE__ */ new Set(),
78
+ js: /* @__PURE__ */ new Set(),
79
+ css: /* @__PURE__ */ new Set(),
80
+ other: /* @__PURE__ */ new Set()
81
+ };
82
+ }
83
+ function createProcessFiles() {
84
+ return {
85
+ html: /* @__PURE__ */ new Set(),
86
+ js: /* @__PURE__ */ new Set(),
87
+ css: /* @__PURE__ */ new Set()
88
+ };
89
+ }
90
+ function markProcessFile(type, file, processFiles) {
91
+ if (type === "html" || type === "js" || type === "css") processFiles[type].add(file);
92
+ }
93
+ function markFilesByEntryType(files, entriesByFile, target) {
94
+ for (const file of files ?? []) {
95
+ const entry = entriesByFile.get(file);
96
+ if (entry) target[entry.type].add(file);
97
+ }
98
+ }
99
+ function createRuntimeCompilationSnapshot(entries, options = {}) {
100
+ const changedByType = createChangedByType();
101
+ const runtimeAffectingChangedByType = createChangedByType();
102
+ const processFiles = createProcessFiles();
103
+ const entriesByFile = new Map(entries.map((entry) => [entry.file, entry]));
104
+ markFilesByEntryType(options.changedFiles, entriesByFile, changedByType);
105
+ markFilesByEntryType(options.runtimeAffectingChangedFiles, entriesByFile, runtimeAffectingChangedByType);
106
+ for (const file of options.processFiles ?? []) {
107
+ const entry = entriesByFile.get(file);
108
+ if (entry) markProcessFile(entry.type, file, processFiles);
109
+ }
110
+ return {
111
+ entries,
112
+ sourceHashByFile: /* @__PURE__ */ new Map(),
113
+ runtimeAffectingSignatureByFile: /* @__PURE__ */ new Map(),
114
+ runtimeAffectingHashByFile: /* @__PURE__ */ new Map(),
115
+ hasOmittedKnownFiles: options.hasOmittedKnownFiles === true,
116
+ removedFiles: new Set([...options.removedFiles ?? []].filter((file) => !entriesByFile.has(file))),
117
+ changedByType,
118
+ runtimeAffectingChangedByType,
119
+ processFiles,
120
+ linkedImpactsByEntry: /* @__PURE__ */ new Map()
121
+ };
122
+ }
123
+ function buildRuntimeCompilationSnapshot(entries, state, options) {
124
+ const snapshot = createRuntimeCompilationSnapshot(entries, {
125
+ hasOmittedKnownFiles: options.hasOmittedKnownFiles,
126
+ removedFiles: options.removedFiles
127
+ });
128
+ const firstRun = state.iteration === 0 && state.sourceHashByFile.size === 0;
129
+ for (const entry of entries) {
130
+ const { file, source, type } = entry;
131
+ const hash = options.computeHash(source);
132
+ snapshot.sourceHashByFile.set(file, hash);
133
+ const previousHash = state.sourceHashByFile.get(file);
134
+ const changed = previousHash == null || previousHash !== hash;
135
+ const previousRuntimeAffectingHash = state.runtimeAffectingHashByFile.get(file);
136
+ const runtimeAffectingHash = !changed && previousRuntimeAffectingHash != null ? previousRuntimeAffectingHash : (() => {
137
+ const signature = options.createRuntimeAffectingSignature(source, type);
138
+ snapshot.runtimeAffectingSignatureByFile.set(file, signature);
139
+ return options.computeHash(signature);
140
+ })();
141
+ snapshot.runtimeAffectingHashByFile.set(file, runtimeAffectingHash);
142
+ if (changed) snapshot.changedByType[type].add(file);
143
+ if (previousRuntimeAffectingHash == null || previousRuntimeAffectingHash !== runtimeAffectingHash) snapshot.runtimeAffectingChangedByType[type].add(file);
144
+ if (options.forceAll || firstRun) markProcessFile(type, file, snapshot.processFiles);
145
+ else if (type === "html") snapshot.processFiles.html.add(file);
146
+ else if (changed && (type === "js" || type === "css")) snapshot.processFiles[type].add(file);
147
+ }
148
+ if (!options.forceAll && !firstRun) for (const changedFile of snapshot.changedByType.js) {
149
+ const dependents = state.dependentsByLinkedFile.get(changedFile);
150
+ if (!dependents) continue;
151
+ for (const entryFile of dependents) {
152
+ snapshot.processFiles.js.add(entryFile);
153
+ let impacts = snapshot.linkedImpactsByEntry.get(entryFile);
154
+ if (!impacts) {
155
+ impacts = /* @__PURE__ */ new Set();
156
+ snapshot.linkedImpactsByEntry.set(entryFile, impacts);
157
+ }
158
+ impacts.add(changedFile);
159
+ }
160
+ }
161
+ return snapshot;
162
+ }
163
+ //#endregion
164
+ //#region src/bundlers/shared/cache.ts
165
+ async function processCachedTask({ cache, cacheKey, hashKey = cacheKey, rawSource, hash, readCache, applyResult, transform, onCacheHit }) {
166
+ let cacheHit = false;
167
+ const result = await cache.process({
168
+ key: cacheKey,
169
+ hashKey,
170
+ rawSource,
171
+ hash,
172
+ resolveCache: readCache,
173
+ async onCacheHit(value) {
174
+ cacheHit = true;
175
+ await applyResult(value, { cacheHit: true });
176
+ onCacheHit?.();
177
+ },
178
+ transform
179
+ });
180
+ if (!cacheHit) await applyResult(result, { cacheHit: false });
181
+ }
182
+ //#endregion
183
+ //#region src/bundlers/shared/final-css-cleanup.ts
184
+ function isCssWhitespace(code) {
185
+ return code === 9 || code === 10 || code === 12 || code === 13 || code === 32;
186
+ }
187
+ function isCssWordChar(code) {
188
+ return code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122 || code === 95;
189
+ }
190
+ const EMPTY_CSS_BLOCK_RE = /\{(?:[\t\n\f\r ]|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/;
191
+ function findCssPreludeStart(css, start, end) {
192
+ let cursor = start;
193
+ while (cursor < end) {
194
+ while (cursor < end && isCssWhitespace(css.charCodeAt(cursor))) cursor++;
195
+ if (css.charCodeAt(cursor) !== 47 || css.charCodeAt(cursor + 1) !== 42) return cursor;
196
+ const commentEnd = css.indexOf("*/", cursor + 2);
197
+ if (commentEnd < 0 || commentEnd + 2 > end) return end;
198
+ cursor = commentEnd + 2;
199
+ }
200
+ return end;
201
+ }
202
+ function isKeyframesAtRule(css, start, end) {
203
+ let cursor = start + 1;
204
+ if (css.charCodeAt(cursor) === 45) {
205
+ cursor++;
206
+ const prefixStart = cursor;
207
+ while (cursor < end && isCssWordChar(css.charCodeAt(cursor))) cursor++;
208
+ if (cursor === prefixStart || css.charCodeAt(cursor) !== 45) return false;
209
+ cursor++;
210
+ }
211
+ if (cursor + 9 > end || css.slice(cursor, cursor + 9).toLowerCase() !== "keyframes") return false;
212
+ return !isCssWordChar(css.charCodeAt(cursor + 9));
213
+ }
214
+ function hasEmptyCssBlockCandidate(css) {
215
+ if (!EMPTY_CSS_BLOCK_RE.test(css)) return false;
216
+ const blocks = [];
217
+ let parenthesisDepth = 0;
218
+ let quote = 0;
219
+ let squareBracketDepth = 0;
220
+ let statementStart = 0;
221
+ for (let index = 0; index < css.length; index++) {
222
+ const code = css.charCodeAt(index);
223
+ if (quote !== 0) {
224
+ if (code === 92) index++;
225
+ else if (code === quote) quote = 0;
226
+ continue;
227
+ }
228
+ if (code === 34 || code === 39) {
229
+ quote = code;
230
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
231
+ continue;
232
+ }
233
+ if (code === 92) {
234
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
235
+ index++;
236
+ continue;
237
+ }
238
+ if (code === 47 && css.charCodeAt(index + 1) === 42) {
239
+ const commentEnd = css.indexOf("*/", index + 2);
240
+ if (commentEnd < 0) return false;
241
+ index = commentEnd + 1;
242
+ continue;
243
+ }
244
+ if (code === 40) {
245
+ parenthesisDepth++;
246
+ continue;
247
+ }
248
+ if (code === 41 && parenthesisDepth > 0) {
249
+ parenthesisDepth--;
250
+ continue;
251
+ }
252
+ if (code === 91) {
253
+ squareBracketDepth++;
254
+ continue;
255
+ }
256
+ if (code === 93 && squareBracketDepth > 0) {
257
+ squareBracketDepth--;
258
+ continue;
259
+ }
260
+ if (code === 123 && parenthesisDepth === 0 && squareBracketDepth === 0) {
261
+ const preludeStart = findCssPreludeStart(css, statementStart, index);
262
+ const isAtRule = css.charCodeAt(preludeStart) === 64;
263
+ const isKeyframesContainer = isAtRule && isKeyframesAtRule(css, preludeStart, index);
264
+ blocks.push({
265
+ hasContent: false,
266
+ isKeyframesContainer,
267
+ isKeyframeStep: !isAtRule && blocks[blocks.length - 1]?.isKeyframesContainer === true
268
+ });
269
+ statementStart = index + 1;
270
+ continue;
271
+ }
272
+ if (code === 125 && parenthesisDepth === 0 && squareBracketDepth === 0) {
273
+ const block = blocks.pop();
274
+ if (!block) continue;
275
+ if (!block.hasContent && !block.isKeyframeStep) return true;
276
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
277
+ statementStart = index + 1;
278
+ continue;
279
+ }
280
+ if (code === 59 && parenthesisDepth === 0 && squareBracketDepth === 0) {
281
+ statementStart = index + 1;
282
+ continue;
283
+ }
284
+ if (!isCssWhitespace(code) && blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
285
+ }
286
+ return false;
287
+ }
288
+ /**
289
+ * 在小程序样式进入最终产物图时递归清理无语义的空 CSS 块。
290
+ */
291
+ function finalizeMiniProgramCssStructure(css) {
292
+ const repaired = repairTrailingUnclosedTailwindSourceMedia(css);
293
+ if (!hasEmptyCssBlockCandidate(repaired)) return repaired;
294
+ try {
295
+ const root = postcss.parse(repaired);
296
+ let removed = 0;
297
+ let passRemoved = 0;
298
+ do {
299
+ passRemoved = removeEmptyRules(root) + removeEmptyAtRules(root);
300
+ removed += passRemoved;
301
+ } while (passRemoved > 0);
302
+ return removed > 0 ? root.toString() : repaired;
303
+ } catch {
304
+ return repaired;
305
+ }
306
+ }
307
+ //#endregion
308
+ export { createRuntimeCompilationAffectingSignature as a, resetRuntimeCompilationBuildState as c, buildRuntimeCompilationSnapshot as i, updateRuntimeCompilationBuildState as l, hasEmptyCssBlockCandidate as n, createRuntimeCompilationBuildState as o, processCachedTask as r, removeRuntimeCompilationBuildStateFiles as s, finalizeMiniProgramCssStructure as t };
@@ -0,0 +1,138 @@
1
+ let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
2
+ //#region src/bundlers/shared/final-css-cleanup.ts
3
+ function isCssWhitespace(code) {
4
+ return code === 9 || code === 10 || code === 12 || code === 13 || code === 32;
5
+ }
6
+ function isCssWordChar(code) {
7
+ return code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122 || code === 95;
8
+ }
9
+ const EMPTY_CSS_BLOCK_RE = /\{(?:[\t\n\f\r ]|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/;
10
+ function findCssPreludeStart(css, start, end) {
11
+ let cursor = start;
12
+ while (cursor < end) {
13
+ while (cursor < end && isCssWhitespace(css.charCodeAt(cursor))) cursor++;
14
+ if (css.charCodeAt(cursor) !== 47 || css.charCodeAt(cursor + 1) !== 42) return cursor;
15
+ const commentEnd = css.indexOf("*/", cursor + 2);
16
+ if (commentEnd < 0 || commentEnd + 2 > end) return end;
17
+ cursor = commentEnd + 2;
18
+ }
19
+ return end;
20
+ }
21
+ function isKeyframesAtRule(css, start, end) {
22
+ let cursor = start + 1;
23
+ if (css.charCodeAt(cursor) === 45) {
24
+ cursor++;
25
+ const prefixStart = cursor;
26
+ while (cursor < end && isCssWordChar(css.charCodeAt(cursor))) cursor++;
27
+ if (cursor === prefixStart || css.charCodeAt(cursor) !== 45) return false;
28
+ cursor++;
29
+ }
30
+ if (cursor + 9 > end || css.slice(cursor, cursor + 9).toLowerCase() !== "keyframes") return false;
31
+ return !isCssWordChar(css.charCodeAt(cursor + 9));
32
+ }
33
+ function hasEmptyCssBlockCandidate(css) {
34
+ if (!EMPTY_CSS_BLOCK_RE.test(css)) return false;
35
+ const blocks = [];
36
+ let parenthesisDepth = 0;
37
+ let quote = 0;
38
+ let squareBracketDepth = 0;
39
+ let statementStart = 0;
40
+ for (let index = 0; index < css.length; index++) {
41
+ const code = css.charCodeAt(index);
42
+ if (quote !== 0) {
43
+ if (code === 92) index++;
44
+ else if (code === quote) quote = 0;
45
+ continue;
46
+ }
47
+ if (code === 34 || code === 39) {
48
+ quote = code;
49
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
50
+ continue;
51
+ }
52
+ if (code === 92) {
53
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
54
+ index++;
55
+ continue;
56
+ }
57
+ if (code === 47 && css.charCodeAt(index + 1) === 42) {
58
+ const commentEnd = css.indexOf("*/", index + 2);
59
+ if (commentEnd < 0) return false;
60
+ index = commentEnd + 1;
61
+ continue;
62
+ }
63
+ if (code === 40) {
64
+ parenthesisDepth++;
65
+ continue;
66
+ }
67
+ if (code === 41 && parenthesisDepth > 0) {
68
+ parenthesisDepth--;
69
+ continue;
70
+ }
71
+ if (code === 91) {
72
+ squareBracketDepth++;
73
+ continue;
74
+ }
75
+ if (code === 93 && squareBracketDepth > 0) {
76
+ squareBracketDepth--;
77
+ continue;
78
+ }
79
+ if (code === 123 && parenthesisDepth === 0 && squareBracketDepth === 0) {
80
+ const preludeStart = findCssPreludeStart(css, statementStart, index);
81
+ const isAtRule = css.charCodeAt(preludeStart) === 64;
82
+ const isKeyframesContainer = isAtRule && isKeyframesAtRule(css, preludeStart, index);
83
+ blocks.push({
84
+ hasContent: false,
85
+ isKeyframesContainer,
86
+ isKeyframeStep: !isAtRule && blocks[blocks.length - 1]?.isKeyframesContainer === true
87
+ });
88
+ statementStart = index + 1;
89
+ continue;
90
+ }
91
+ if (code === 125 && parenthesisDepth === 0 && squareBracketDepth === 0) {
92
+ const block = blocks.pop();
93
+ if (!block) continue;
94
+ if (!block.hasContent && !block.isKeyframeStep) return true;
95
+ if (blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
96
+ statementStart = index + 1;
97
+ continue;
98
+ }
99
+ if (code === 59 && parenthesisDepth === 0 && squareBracketDepth === 0) {
100
+ statementStart = index + 1;
101
+ continue;
102
+ }
103
+ if (!isCssWhitespace(code) && blocks.length > 0) blocks[blocks.length - 1].hasContent = true;
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * 在小程序样式进入最终产物图时递归清理无语义的空 CSS 块。
109
+ */
110
+ function finalizeMiniProgramCssStructure(css) {
111
+ const repaired = (0, _weapp_tailwindcss_postcss.repairTrailingUnclosedTailwindSourceMedia)(css);
112
+ if (!hasEmptyCssBlockCandidate(repaired)) return repaired;
113
+ try {
114
+ const root = _weapp_tailwindcss_postcss.postcss.parse(repaired);
115
+ let removed = 0;
116
+ let passRemoved = 0;
117
+ do {
118
+ passRemoved = (0, _weapp_tailwindcss_postcss.removeEmptyRules)(root) + (0, _weapp_tailwindcss_postcss.removeEmptyAtRules)(root);
119
+ removed += passRemoved;
120
+ } while (passRemoved > 0);
121
+ return removed > 0 ? root.toString() : repaired;
122
+ } catch {
123
+ return repaired;
124
+ }
125
+ }
126
+ //#endregion
127
+ Object.defineProperty(exports, "finalizeMiniProgramCssStructure", {
128
+ enumerable: true,
129
+ get: function() {
130
+ return finalizeMiniProgramCssStructure;
131
+ }
132
+ });
133
+ Object.defineProperty(exports, "hasEmptyCssBlockCandidate", {
134
+ enumerable: true,
135
+ get: function() {
136
+ return hasEmptyCssBlockCandidate;
137
+ }
138
+ });
@@ -1,7 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_framework = require("./framework.cjs");
3
3
  require("./auto-DtU6f3X6.cjs");
4
- const require_object = require("./object-DbHtAXRk.cjs");
5
4
  require("./utils-CuKLf1Zv.cjs");
6
5
  let node_fs = require("node:fs");
7
6
  node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
@@ -828,12 +827,50 @@ function createCompatibleSource(source, target) {
828
827
  };
829
828
  }
830
829
  //#endregion
830
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/typeof.js
831
+ function _typeof(o) {
832
+ "@babel/helpers - typeof";
833
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
834
+ return typeof o;
835
+ } : function(o) {
836
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
837
+ }, _typeof(o);
838
+ }
839
+ //#endregion
840
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/toPrimitive.js
841
+ function toPrimitive(t, r) {
842
+ if ("object" != _typeof(t) || !t) return t;
843
+ var e = t[Symbol.toPrimitive];
844
+ if (void 0 !== e) {
845
+ var i = e.call(t, r || "default");
846
+ if ("object" != _typeof(i)) return i;
847
+ throw new TypeError("@@toPrimitive must return a primitive value.");
848
+ }
849
+ return ("string" === r ? String : Number)(t);
850
+ }
851
+ //#endregion
852
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/toPropertyKey.js
853
+ function toPropertyKey(t) {
854
+ var i = toPrimitive(t, "string");
855
+ return "symbol" == _typeof(i) ? i : i + "";
856
+ }
857
+ //#endregion
858
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/defineProperty.js
859
+ function _defineProperty(e, r, t) {
860
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
861
+ value: t,
862
+ enumerable: !0,
863
+ configurable: !0,
864
+ writable: !0
865
+ }) : e[r] = t, e;
866
+ }
867
+ //#endregion
831
868
  //#region src/tailwindcss/v4-engine/generator/native-session.ts
832
869
  var TailwindV4NativeSessionPool = class {
833
870
  constructor(createSession = _tailwindcss_mangle_engine.createTailwindGenerationSession) {
834
871
  this.createSession = createSession;
835
- require_object._defineProperty(this, "sessions", /* @__PURE__ */ new Map());
836
- require_object._defineProperty(this, "disposed", false);
872
+ _defineProperty(this, "sessions", /* @__PURE__ */ new Map());
873
+ _defineProperty(this, "disposed", false);
837
874
  }
838
875
  generate(target, sourceKey, source, request) {
839
876
  const entry = this.getSession(target, sourceKey, source);
@@ -2663,6 +2700,14 @@ function normalizeTailwindcssRuntimeOptions(options) {
2663
2700
  return options;
2664
2701
  }
2665
2702
  //#endregion
2703
+ //#region src/utils/object.ts
2704
+ function definedEntries(value) {
2705
+ return Object.entries(value).filter(([, item]) => item !== void 0);
2706
+ }
2707
+ function omitUndefined(value) {
2708
+ return Object.fromEntries(definedEntries(value));
2709
+ }
2710
+ //#endregion
2666
2711
  //#region src/context/workspace.ts
2667
2712
  const IGNORED_WORKSPACE_DIRS = /* @__PURE__ */ new Set([
2668
2713
  "node_modules",
@@ -2820,7 +2865,7 @@ function isSameCssSource(a, b) {
2820
2865
  }
2821
2866
  function upsertTailwindV4CssSource(opts, source) {
2822
2867
  if (!isTailwindV4CssEntry(source.file)) return false;
2823
- const normalizedSource = require_object.omitUndefined({
2868
+ const normalizedSource = omitUndefined({
2824
2869
  ...source,
2825
2870
  ...source.base === void 0 ? {} : { base: normalizeCssSourceBase(source.base) },
2826
2871
  ...source.file === void 0 ? {} : { file: normalizeCssSourceFile(source.file) },
@@ -3088,7 +3133,7 @@ function resolveEngineTailwindV4SourceOptions(runtime) {
3088
3133
  }
3089
3134
  function resolveTailwindV4SourceOptionsFromRuntime(runtime) {
3090
3135
  const tailwindV4Options = readTailwindV4Options(runtime);
3091
- return normalizeTailwindV4SourceOptions(require_object.omitUndefined({
3136
+ return normalizeTailwindV4SourceOptions(omitUndefined({
3092
3137
  ...resolveEngineTailwindV4SourceOptions(runtime),
3093
3138
  sources: tailwindV4Options?.sources
3094
3139
  }));
@@ -3271,6 +3316,12 @@ Object.defineProperty(exports, "VITE_MARKER_RE", {
3271
3316
  return VITE_MARKER_RE;
3272
3317
  }
3273
3318
  });
3319
+ Object.defineProperty(exports, "_defineProperty", {
3320
+ enumerable: true,
3321
+ get: function() {
3322
+ return _defineProperty;
3323
+ }
3324
+ });
3274
3325
  Object.defineProperty(exports, "createCssAppend", {
3275
3326
  enumerable: true,
3276
3327
  get: function() {
@@ -3511,6 +3562,12 @@ Object.defineProperty(exports, "normalizeWeappTailwindcssGeneratorOptions", {
3511
3562
  return normalizeWeappTailwindcssGeneratorOptions;
3512
3563
  }
3513
3564
  });
3565
+ Object.defineProperty(exports, "omitUndefined", {
3566
+ enumerable: true,
3567
+ get: function() {
3568
+ return omitUndefined;
3569
+ }
3570
+ });
3514
3571
  Object.defineProperty(exports, "parseConfigParam", {
3515
3572
  enumerable: true,
3516
3573
  get: function() {
@@ -1,6 +1,5 @@
1
1
  import { resolveUniUtsPlatform as resolveUniUtsPlatform$1 } from "./framework.js";
2
2
  import { c as withCssMacroStyleOptions, i as hasCssMacroTailwindV4Source, o as transformCssMacroCss, s as transformCssMacroTailwindV4Source, t as hasCssMacroStyleOptions } from "./auto-2dg_uhEJ.js";
3
- import { n as _defineProperty, t as omitUndefined } from "./object-B-8IHefx.js";
4
3
  import "./utils-MVwpU07P.js";
5
4
  import { createRequire } from "node:module";
6
5
  import fs, { existsSync, readFileSync, readdirSync, realpathSync } from "node:fs";
@@ -823,6 +822,44 @@ function createCompatibleSource(source, target) {
823
822
  };
824
823
  }
825
824
  //#endregion
825
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/typeof.js
826
+ function _typeof(o) {
827
+ "@babel/helpers - typeof";
828
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
829
+ return typeof o;
830
+ } : function(o) {
831
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
832
+ }, _typeof(o);
833
+ }
834
+ //#endregion
835
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/toPrimitive.js
836
+ function toPrimitive(t, r) {
837
+ if ("object" != _typeof(t) || !t) return t;
838
+ var e = t[Symbol.toPrimitive];
839
+ if (void 0 !== e) {
840
+ var i = e.call(t, r || "default");
841
+ if ("object" != _typeof(i)) return i;
842
+ throw new TypeError("@@toPrimitive must return a primitive value.");
843
+ }
844
+ return ("string" === r ? String : Number)(t);
845
+ }
846
+ //#endregion
847
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/toPropertyKey.js
848
+ function toPropertyKey(t) {
849
+ var i = toPrimitive(t, "string");
850
+ return "symbol" == _typeof(i) ? i : i + "";
851
+ }
852
+ //#endregion
853
+ //#region \0@oxc-project+runtime@0.147.0/helpers/esm/defineProperty.js
854
+ function _defineProperty(e, r, t) {
855
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
856
+ value: t,
857
+ enumerable: !0,
858
+ configurable: !0,
859
+ writable: !0
860
+ }) : e[r] = t, e;
861
+ }
862
+ //#endregion
826
863
  //#region src/tailwindcss/v4-engine/generator/native-session.ts
827
864
  var TailwindV4NativeSessionPool = class {
828
865
  constructor(createSession = createTailwindGenerationSession) {
@@ -2654,6 +2691,14 @@ function normalizeTailwindcssRuntimeOptions(options) {
2654
2691
  return options;
2655
2692
  }
2656
2693
  //#endregion
2694
+ //#region src/utils/object.ts
2695
+ function definedEntries(value) {
2696
+ return Object.entries(value).filter(([, item]) => item !== void 0);
2697
+ }
2698
+ function omitUndefined(value) {
2699
+ return Object.fromEntries(definedEntries(value));
2700
+ }
2701
+ //#endregion
2657
2702
  //#region src/context/workspace.ts
2658
2703
  const IGNORED_WORKSPACE_DIRS = /* @__PURE__ */ new Set([
2659
2704
  "node_modules",
@@ -3238,4 +3283,4 @@ async function createWeappTailwindcssGeneratorFromRuntime(tailwindRuntime) {
3238
3283
  return createWeappTailwindcssGenerator(await resolveTailwindSourceFromRuntime(tailwindRuntime));
3239
3284
  }
3240
3285
  //#endregion
3241
- export { hasTailwindSourceDirectives as $, transformGeneratorUserCss as A, toPosixPath as At, stripMiniProgramCssSpecificityPlaceholders as B, findWorkspacePackageDir as C, isFileExcludedByTailwindSourceEntries as Ct, resolveTailwindcssOptions as D, resolveCssSourceEntries as Dt, normalizeTailwindcssRuntimeOptions as E, parseConfigParam as Et, stripUnmatchedTailwindSourceMediaCloseFragments as F, filterUnsupportedMiniProgramTailwindV4Candidates as Ft, extractGeneratedCssForUserLayerSelectors as G, filterApplyOnlyGeneratedCss as H, finalizeMiniProgramCss$1 as I, shouldUseUniAppWebRpxCompatibility as It, preferScopedGeneratedCssRules as J, hasUserCssLayerBlocks as K, hasMiniProgramCssSpecificityPlaceholders as L, loadTailwindV4DesignSystem as Lt, removeMiniProgramInteractiveSelectors as M, transformTailwindV4CssToWeapp as Mt, removeTailwindV4GeneratorAtRules as N, resolveCssMacroTailwindV4Source as Nt, normalizeStringListOption as O, resolveSourceScanPath as Ot, stripTailwindSourceMediaFragments as P, getTailwindV4IncrementalGenerateCacheStats as Pt, hasTailwindRootDirectives as Q, pruneMiniProgramGeneratedCss as R, resolveValidTailwindV4Candidates$1 as Rt, findNearestPackageRoot as S, expandTailwindSourceEntries as St, normalizeExtendLengthUnits as T, normalizeLegacyContentEntries as Tt, normalizeEmptyTailwindCustomVariants as U, removeTailwindV4GeneratedUserCssArtifacts as V, shouldFilterApplyOnlyGeneratedCss as W, hasTailwindApplyDirective as X, hasLocalCssImport as Y, hasTailwindNonRootGenerationDirectives as Z, upsertTailwindV4CssSource as _, normalizeConfigDirective as _t, resolveGeneratorRuntimeBranch as a, resolveCssEntrySource as at, isTailwindV4CssEntry as b, FULL_SOURCE_SCAN_EXTENSION_RE as bt, shouldUseNativeAppCssBranch as c, createCssAppend as ct, resolveTailwindV4SourceFromRuntime as d, splitGeneratorPlaceholderCssBySourceOrder as dt, normalizeTailwindConfigDirectives as et, resolveTailwindV4SourceFromRuntimeOptions as f, splitTailwindGeneratedCssByBanner as ft, removeTailwindV4CssSource as g, stripTailwindBanners as gt, hasConfiguredTailwindV4CssRoots as h, stripTailwindBanner as ht, normalizeWeappTailwindcssGeneratorOptions as i, removeTailwindSourceDirectives as it, isCommentOnlyCss as j, transformTailwindV4CssByTarget as jt, resolveBooleanObjectOption as k, resolveTailwindV4CssSourceBase as kt, resolveUniUtsPlatform as l, hasTailwindGeneratedCss as lt, filterTailwindV4CssSourceRoots as m, stripGeneratorPlaceholderMarkers as mt, createWeappTailwindcssGeneratorFromRuntime as n, normalizeTailwindSourceForGenerator as nt, resolveRuntimeBranch as o, GENERATOR_PLACEHOLDER_MARKER_RE as ot, resolveTailwindV4SourceOptionsFromRuntime as p, splitTailwindV4GeneratedCssBySourceOrder as pt, splitUserCssLayerBlocks as q, resolveTailwindSourceFromRuntime as r, parseImportRequest as rt, shouldUseMiniProgramCssBranch as s, VITE_MARKER_RE as st, createWeappTailwindcssGenerator as t, normalizeTailwindSourceDirectives as tt, resolveTailwindV4Source$1 as u, hasTailwindGeneratedCssMarkers as ut, groupCssEntriesByBase as v, prependConfigDirective as vt, findWorkspaceRoot as w, isFileMatchedByTailwindSourceEntries as wt, normalizeCssEntries as x, FULL_SOURCE_SCAN_PATTERN as xt, guessBasedirFromEntries as y, createTailwindV4Engine$1 as yt, removeUnsupportedMiniProgramAtRules as z };
3286
+ export { hasTailwindRootDirectives as $, resolveBooleanObjectOption as A, resolveTailwindV4CssSourceBase as At, removeUnsupportedMiniProgramAtRules as B, resolveValidTailwindV4Candidates$1 as Bt, findWorkspacePackageDir as C, expandTailwindSourceEntries as Ct, normalizeTailwindcssRuntimeOptions as D, parseConfigParam as Dt, normalizeExtendLengthUnits as E, normalizeLegacyContentEntries as Et, stripTailwindSourceMediaFragments as F, resolveCssMacroTailwindV4Source as Ft, shouldFilterApplyOnlyGeneratedCss as G, removeTailwindV4GeneratedUserCssArtifacts as H, stripUnmatchedTailwindSourceMediaCloseFragments as I, getTailwindV4IncrementalGenerateCacheStats as It, splitUserCssLayerBlocks as J, extractGeneratedCssForUserLayerSelectors as K, finalizeMiniProgramCss$1 as L, filterUnsupportedMiniProgramTailwindV4Candidates as Lt, isCommentOnlyCss as M, _defineProperty as Mt, removeMiniProgramInteractiveSelectors as N, transformTailwindV4CssByTarget as Nt, resolveTailwindcssOptions as O, resolveCssSourceEntries as Ot, removeTailwindV4GeneratorAtRules as P, transformTailwindV4CssToWeapp as Pt, hasTailwindNonRootGenerationDirectives as Q, hasMiniProgramCssSpecificityPlaceholders as R, shouldUseUniAppWebRpxCompatibility as Rt, findNearestPackageRoot as S, FULL_SOURCE_SCAN_PATTERN as St, omitUndefined as T, isFileMatchedByTailwindSourceEntries as Tt, filterApplyOnlyGeneratedCss as U, stripMiniProgramCssSpecificityPlaceholders as V, normalizeEmptyTailwindCustomVariants as W, hasLocalCssImport as X, preferScopedGeneratedCssRules as Y, hasTailwindApplyDirective as Z, upsertTailwindV4CssSource as _, stripTailwindBanners as _t, resolveGeneratorRuntimeBranch as a, removeTailwindSourceDirectives as at, isTailwindV4CssEntry as b, createTailwindV4Engine$1 as bt, shouldUseNativeAppCssBranch as c, VITE_MARKER_RE as ct, resolveTailwindV4SourceFromRuntime as d, hasTailwindGeneratedCssMarkers as dt, hasTailwindSourceDirectives as et, resolveTailwindV4SourceFromRuntimeOptions as f, splitGeneratorPlaceholderCssBySourceOrder as ft, removeTailwindV4CssSource as g, stripTailwindBanner as gt, hasConfiguredTailwindV4CssRoots as h, stripGeneratorPlaceholderMarkers as ht, normalizeWeappTailwindcssGeneratorOptions as i, parseImportRequest as it, transformGeneratorUserCss as j, toPosixPath as jt, normalizeStringListOption as k, resolveSourceScanPath as kt, resolveUniUtsPlatform as l, createCssAppend as lt, filterTailwindV4CssSourceRoots as m, splitTailwindV4GeneratedCssBySourceOrder as mt, createWeappTailwindcssGeneratorFromRuntime as n, normalizeTailwindSourceDirectives as nt, resolveRuntimeBranch as o, resolveCssEntrySource as ot, resolveTailwindV4SourceOptionsFromRuntime as p, splitTailwindGeneratedCssByBanner as pt, hasUserCssLayerBlocks as q, resolveTailwindSourceFromRuntime as r, normalizeTailwindSourceForGenerator as rt, shouldUseMiniProgramCssBranch as s, GENERATOR_PLACEHOLDER_MARKER_RE as st, createWeappTailwindcssGenerator as t, normalizeTailwindConfigDirectives as tt, resolveTailwindV4Source$1 as u, hasTailwindGeneratedCss as ut, groupCssEntriesByBase as v, normalizeConfigDirective as vt, findWorkspaceRoot as w, isFileExcludedByTailwindSourceEntries as wt, normalizeCssEntries as x, FULL_SOURCE_SCAN_EXTENSION_RE as xt, guessBasedirFromEntries as y, prependConfigDirective as yt, pruneMiniProgramGeneratedCss as z, loadTailwindV4DesignSystem as zt };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_generator = require("./generator-WlhrtNa3.cjs");
2
+ const require_generator = require("./generator-DsrQ9txU.cjs");
3
3
  let _tailwindcss_mangle_engine = require("@tailwindcss-mangle/engine");
4
4
  exports.createWeappTailwindcssGenerator = require_generator.createWeappTailwindcssGenerator;
5
5
  exports.createWeappTailwindcssGeneratorFromRuntime = require_generator.createWeappTailwindcssGeneratorFromRuntime;
package/dist/generator.js CHANGED
@@ -1,2 +1,2 @@
1
- import { Lt as loadTailwindV4DesignSystem, Mt as transformTailwindV4CssToWeapp, d as resolveTailwindV4SourceFromRuntime, f as resolveTailwindV4SourceFromRuntimeOptions, i as normalizeWeappTailwindcssGeneratorOptions, jt as transformTailwindV4CssByTarget, n as createWeappTailwindcssGeneratorFromRuntime, p as resolveTailwindV4SourceOptionsFromRuntime, r as resolveTailwindSourceFromRuntime, t as createWeappTailwindcssGenerator, u as resolveTailwindV4Source } from "./generator-BjK5PRR-.js";
1
+ import { Nt as transformTailwindV4CssByTarget, Pt as transformTailwindV4CssToWeapp, d as resolveTailwindV4SourceFromRuntime, f as resolveTailwindV4SourceFromRuntimeOptions, i as normalizeWeappTailwindcssGeneratorOptions, n as createWeappTailwindcssGeneratorFromRuntime, p as resolveTailwindV4SourceOptionsFromRuntime, r as resolveTailwindSourceFromRuntime, t as createWeappTailwindcssGenerator, u as resolveTailwindV4Source, zt as loadTailwindV4DesignSystem } from "./generator-DyXTBPmE.js";
2
2
  export { createWeappTailwindcssGenerator, createWeappTailwindcssGeneratorFromRuntime, loadTailwindV4DesignSystem, normalizeWeappTailwindcssGeneratorOptions, resolveTailwindSourceFromRuntime, resolveTailwindV4Source, resolveTailwindV4SourceFromRuntime, resolveTailwindV4SourceFromRuntimeOptions, resolveTailwindV4SourceOptionsFromRuntime, transformTailwindV4CssByTarget, transformTailwindV4CssToWeapp };