weapp-tailwindcss 5.1.9 → 5.1.11

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 (55) hide show
  1. package/dist/bundlers/shared/generator-css/generation-helpers.d.ts +1 -0
  2. package/dist/bundlers/shared/generator-css/output-import-shell.d.ts +4 -0
  3. package/dist/bundlers/shared/generator-css/source-resolver/metadata.d.ts +1 -0
  4. package/dist/bundlers/shared/generator-css/types.d.ts +2 -0
  5. package/dist/bundlers/vite/generate-bundle/css-assets.d.ts +1 -1
  6. package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +2 -0
  7. package/dist/bundlers/vite/generate-bundle/scoped-generator.d.ts +1 -0
  8. package/dist/bundlers/vite/hot-css-modules.d.ts +1 -1
  9. package/dist/bundlers/vite/source-candidates.d.ts +7 -2
  10. package/dist/bundlers/vite/web-css-compat.d.ts +3 -0
  11. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/css-source-resolvers.d.ts +9 -0
  12. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +3 -0
  13. package/dist/cli.js +3 -2
  14. package/dist/cli.mjs +2 -1
  15. package/dist/{context-CfXr3hWz.mjs → context-DzkSFEVL.mjs} +4 -4
  16. package/dist/{context-CRhUs_5e.js → context-y2BGCok4.js} +10 -10
  17. package/dist/core.js +1 -1
  18. package/dist/core.mjs +1 -1
  19. package/dist/generator/options.d.ts +8 -1
  20. package/dist/{v4-engine-BZP2462H.js → generator-Bz94KTkH.js} +229 -17
  21. package/dist/{v4-engine-CjjWONB0.mjs → generator-ROzBodj6.mjs} +185 -9
  22. package/dist/generator.js +7 -8
  23. package/dist/generator.mjs +1 -2
  24. package/dist/{gulp-CRjkPsbX.mjs → gulp-BKqMb_Ds.mjs} +4 -4
  25. package/dist/{gulp-JUfnhOOo.js → gulp-DfOLvYLs.js} +10 -10
  26. package/dist/gulp.js +1 -1
  27. package/dist/gulp.mjs +1 -1
  28. package/dist/{hmr-timing-DcIEXnf8.js → hmr-timing-DOTdH18A.js} +556 -170
  29. package/dist/{hmr-timing-BecOXMd8.mjs → hmr-timing-DwtYJdwb.mjs} +430 -56
  30. package/dist/index.js +4 -4
  31. package/dist/index.mjs +4 -4
  32. package/dist/postcss.js +2 -3
  33. package/dist/postcss.mjs +1 -2
  34. package/dist/presets.js +7 -6
  35. package/dist/presets.mjs +5 -4
  36. package/dist/rspack.js +1 -1
  37. package/dist/rspack.mjs +1 -1
  38. package/dist/{source-candidate-scan-signature-10tvdJVC.js → source-candidate-scan-signature-BrWuBTjY.js} +34 -6
  39. package/dist/{source-candidate-scan-signature-DAg8QSgh.mjs → source-candidate-scan-signature-CQ04hiox.mjs} +29 -7
  40. package/dist/{tailwindcss-BZjZZi60.js → tailwindcss-Dn5DVlkI.js} +55 -47
  41. package/dist/{tailwindcss-PA2jHHpx.mjs → tailwindcss-hzy_WaC9.mjs} +14 -6
  42. package/dist/{transform-wNEbcZeQ.mjs → transform-BgnNYkIG.mjs} +1 -1
  43. package/dist/{transform-B0BxX3XB.js → transform-DZQETx51.js} +1 -1
  44. package/dist/{vite-CHk7V9EA.js → vite-DODC15Fr.js} +865 -254
  45. package/dist/{vite-ClpyoD9e.mjs → vite-oI2ReOic.mjs} +818 -207
  46. package/dist/vite.js +1 -1
  47. package/dist/vite.mjs +1 -1
  48. package/dist/weapp-tw-css-import-rewrite-loader.js +613 -63
  49. package/dist/{webpack-2s-TFhgm.mjs → webpack-CCapGlNg.mjs} +235 -38
  50. package/dist/{webpack-BhM4Hqla.js → webpack-XxBCIrBp.js} +276 -79
  51. package/dist/webpack.js +1 -1
  52. package/dist/webpack.mjs +1 -1
  53. package/package.json +5 -5
  54. package/dist/generator-DaaFxR5V.js +0 -174
  55. package/dist/generator-DugIHBgl.mjs +0 -127
@@ -1,11 +1,11 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-emK7D4bc.js");
2
- const require_v4_engine = require("./v4-engine-BZP2462H.js");
3
- const require_generator = require("./generator-DaaFxR5V.js");
2
+ const require_generator = require("./generator-Bz94KTkH.js");
4
3
  const require_utils = require("./utils-D3h8j7Mk.js");
5
- const require_context = require("./context-CRhUs_5e.js");
6
- const require_tailwindcss = require("./tailwindcss-BZjZZi60.js");
7
- const require_hmr_timing = require("./hmr-timing-DcIEXnf8.js");
8
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-10tvdJVC.js");
4
+ const require_context = require("./context-y2BGCok4.js");
5
+ const require_defaults = require("./defaults-nsf4VNMX.js");
6
+ const require_tailwindcss = require("./tailwindcss-Dn5DVlkI.js");
7
+ const require_hmr_timing = require("./hmr-timing-DOTdH18A.js");
8
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BrWuBTjY.js");
9
9
  let node_fs = require("node:fs");
10
10
  node_fs = require_rolldown_runtime.__toESM(node_fs);
11
11
  let node_path = require("node:path");
@@ -13,11 +13,11 @@ node_path = require_rolldown_runtime.__toESM(node_path);
13
13
  let node_process = require("node:process");
14
14
  node_process = require_rolldown_runtime.__toESM(node_process);
15
15
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
16
+ let node_module = require("node:module");
17
+ node_module = require_rolldown_runtime.__toESM(node_module);
16
18
  let node_fs_promises = require("node:fs/promises");
17
19
  let micromatch = require("micromatch");
18
20
  micromatch = require_rolldown_runtime.__toESM(micromatch);
19
- let node_module = require("node:module");
20
- node_module = require_rolldown_runtime.__toESM(node_module);
21
21
  let _weapp_core_escape = require("@weapp-core/escape");
22
22
  let _weapp_tailwindcss_shared_node = require("@weapp-tailwindcss/shared/node");
23
23
  //#region src/bundlers/webpack/BaseUnifiedPlugin/shared.ts
@@ -149,6 +149,99 @@ function isWebpackCssLoaderRuntimeSource(source) {
149
149
  //#endregion
150
150
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.ts
151
151
  const WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX = 128;
152
+ function resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) {
153
+ return styleOptions.cssPreflight ?? compilerOptions.cssPreflight ?? require_defaults.getDefaultCssPreflight();
154
+ }
155
+ function resolveExistingWebpackCssPreflight(compilerOptions, styleOptions, source) {
156
+ return hasMiniProgramPreflightSelector(source) ? resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) : void 0;
157
+ }
158
+ function removeMiniProgramPreflightSelectorRule(source) {
159
+ try {
160
+ const root = _weapp_tailwindcss_postcss.postcss.parse(source);
161
+ let changed = false;
162
+ root.walkRules((rule) => {
163
+ const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
164
+ if (selectors.has("view") && selectors.has("text") && selectors.has("::before") && selectors.has("::after")) {
165
+ rule.remove();
166
+ changed = true;
167
+ }
168
+ });
169
+ return changed ? root.toString() : source;
170
+ } catch {
171
+ return source.replace(/(?:^|[}\s])\s*view\s*,\s*text\s*,\s*::after\s*,\s*::before\s*\{[^}]*\}/g, "");
172
+ }
173
+ }
174
+ function dedupeMiniProgramPreflightSelectorRules(source) {
175
+ try {
176
+ const root = _weapp_tailwindcss_postcss.postcss.parse(source);
177
+ let firstRule;
178
+ let changed = false;
179
+ root.walkRules((rule) => {
180
+ const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
181
+ if (!selectors.has("view") || !selectors.has("text") || !selectors.has("::before") || !selectors.has("::after")) return;
182
+ if (!firstRule) {
183
+ firstRule = rule;
184
+ return;
185
+ }
186
+ const existingProps = /* @__PURE__ */ new Set();
187
+ firstRule.walkDecls((decl) => {
188
+ existingProps.add(decl.prop);
189
+ });
190
+ rule.walkDecls((decl) => {
191
+ if (!existingProps.has(decl.prop)) {
192
+ firstRule?.append(decl.clone());
193
+ existingProps.add(decl.prop);
194
+ }
195
+ });
196
+ rule.remove();
197
+ changed = true;
198
+ });
199
+ return changed ? root.toString() : source;
200
+ } catch {
201
+ return source;
202
+ }
203
+ }
204
+ function hasMiniProgramPreflightSelector(source) {
205
+ try {
206
+ let found = false;
207
+ _weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
208
+ const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
209
+ if (selectors.has("view") && selectors.has("text") && selectors.has("::before") && selectors.has("::after")) {
210
+ found = true;
211
+ return false;
212
+ }
213
+ });
214
+ return found;
215
+ } catch {
216
+ return /(?:^|[},])\s*view\s*,\s*text\s*,\s*::after\s*,\s*::before\s*\{/.test(source);
217
+ }
218
+ }
219
+ function ensureWebpackMiniProgramTwContentInit(source) {
220
+ if (!source.includes("var(--tw-content)")) return source;
221
+ try {
222
+ const root = _weapp_tailwindcss_postcss.postcss.parse(source);
223
+ let changed = false;
224
+ root.walkRules((rule) => {
225
+ const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
226
+ if (!selectors.has("view") || !selectors.has("text") || !selectors.has("::before") || !selectors.has("::after")) return;
227
+ let hasContentInit = false;
228
+ rule.walkDecls("--tw-content", () => {
229
+ hasContentInit = true;
230
+ });
231
+ if (!hasContentInit) {
232
+ rule.append(_weapp_tailwindcss_postcss.postcss.decl({
233
+ prop: "--tw-content",
234
+ value: "''"
235
+ }));
236
+ changed = true;
237
+ }
238
+ return false;
239
+ });
240
+ return changed ? root.toString() : source;
241
+ } catch {
242
+ return source;
243
+ }
244
+ }
152
245
  function removeTailwindV4StandaloneHostPreflightRule(source) {
153
246
  if (!source.includes("--theme(")) return source;
154
247
  try {
@@ -216,7 +309,7 @@ function pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandl
216
309
  }
217
310
  function resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions) {
218
311
  const sourceCss = cssHandlerOptions.sourceOptions?.sourceCss;
219
- if (sourceCss && (require_v4_engine.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(sourceCss) || require_v4_engine.hasTailwindGeneratedCss(sourceCss) || require_v4_engine.hasTailwindGeneratedCssMarkers(sourceCss))) return sourceCss;
312
+ if (sourceCss && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss) || require_generator.hasTailwindGeneratedCss(sourceCss) || require_generator.hasTailwindGeneratedCssMarkers(sourceCss))) return sourceCss;
220
313
  return rawSource;
221
314
  }
222
315
  function shouldConsumeWebpackLoaderGeneratedCss(options) {
@@ -276,7 +369,7 @@ function hasProcessedCssAssetUrl(css) {
276
369
  }
277
370
  function shouldUseWebpackAssetAsGeneratorUserCss(rawSource, generatorRawSource, options = {}) {
278
371
  const rawMarkers = collectWebpackAssetUserCssMarkers(rawSource);
279
- return rawSource !== generatorRawSource && (options.processed === true || !rawSource.includes("data:")) && !require_v4_engine.hasTailwindRootDirectives(rawSource, { importFallback: true }) && !require_v4_engine.hasTailwindSourceDirectives(rawSource, { importFallback: true }) && !require_v4_engine.hasTailwindApplyDirective(rawSource) && rawMarkers.size > 0 && !isOnlyWebpackTailwindGeneratedPreflightCss(rawSource) && (!require_v4_engine.hasTailwindGeneratedCssMarkers(rawSource) || hasAdditionalWebpackAssetUserCssMarkers(rawSource, generatorRawSource));
372
+ return rawSource !== generatorRawSource && (options.processed === true || !rawSource.includes("data:")) && !require_generator.hasTailwindRootDirectives(rawSource, { importFallback: true }) && !require_generator.hasTailwindSourceDirectives(rawSource, { importFallback: true }) && !require_generator.hasTailwindApplyDirective(rawSource) && rawMarkers.size > 0 && !isOnlyWebpackTailwindGeneratedPreflightCss(rawSource) && (!require_generator.hasTailwindGeneratedCssMarkers(rawSource) || hasAdditionalWebpackAssetUserCssMarkers(rawSource, generatorRawSource));
280
373
  }
281
374
  function collectWebpackAssetUserCssMarkers(source) {
282
375
  const markers = /* @__PURE__ */ new Set();
@@ -311,7 +404,7 @@ function isWebpackKeyframesRule(rule) {
311
404
  }
312
405
  function collectWebpackBareSelectorUserCss(source) {
313
406
  try {
314
- const root = _weapp_tailwindcss_postcss.postcss.parse(require_v4_engine.removeTailwindSourceDirectives(require_v4_engine.stripTailwindSourceMediaFragments(require_v4_engine.removeTailwindV4GeneratorAtRules(source)), { importFallback: true }));
407
+ const root = _weapp_tailwindcss_postcss.postcss.parse(require_generator.removeTailwindSourceDirectives(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(source)), { importFallback: true }));
315
408
  let changed = false;
316
409
  root.walkAtRules((rule) => {
317
410
  if (rule.name === "import" || rule.name === "font-face" || rule.name.endsWith("keyframes")) {
@@ -368,7 +461,7 @@ function parseWebpackCssLayerNames(params) {
368
461
  return params.split(",").map((name) => name.trim()).filter(Boolean);
369
462
  }
370
463
  function removeWebpackTailwindGeneratedAssetCss(source) {
371
- const cleaned = require_v4_engine.removeTailwindV4GeneratedUserCssArtifacts(source);
464
+ const cleaned = require_generator.removeTailwindV4GeneratedUserCssArtifacts(source);
372
465
  try {
373
466
  const root = _weapp_tailwindcss_postcss.postcss.parse(cleaned);
374
467
  let changed = false;
@@ -524,7 +617,7 @@ function unescapeCssIdentifier(value) {
524
617
  }
525
618
  function collectGeneratedCssRuntimeCandidates(source) {
526
619
  const candidates = /* @__PURE__ */ new Set();
527
- if (require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source) || !require_v4_engine.hasTailwindGeneratedCss(source) && !require_v4_engine.hasTailwindGeneratedCssMarkers(source)) return candidates;
620
+ if (require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source) || !require_generator.hasTailwindGeneratedCss(source) && !require_generator.hasTailwindGeneratedCssMarkers(source)) return candidates;
528
621
  try {
529
622
  _weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
530
623
  for (const selector of rule.selectors) for (const match of selector.matchAll(/\.((?:\\.|[\w\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/g)) {
@@ -543,7 +636,7 @@ function hasAdditionalWebpackAssetUserCssMarkers(rawSource, generatorRawSource)
543
636
  return false;
544
637
  }
545
638
  function hasWebpackTailwindSourceDirectives(source) {
546
- return Boolean(source) && (require_v4_engine.hasTailwindRootDirectives(source, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(source, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(source) || require_v4_engine.hasTailwindGeneratedCss(source) || require_v4_engine.hasTailwindGeneratedCssMarkers(source));
639
+ return Boolean(source) && (require_generator.hasTailwindRootDirectives(source, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(source, { importFallback: true }) || require_generator.hasTailwindApplyDirective(source) || require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source));
547
640
  }
548
641
  function isWebpackTailwindImportRequest(request) {
549
642
  return request === "tailwindcss" || request === "tailwindcss4" || request?.startsWith("tailwindcss/") || request?.startsWith("tailwindcss4/") || request === "weapp-tailwindcss" || request?.startsWith("weapp-tailwindcss/");
@@ -554,7 +647,7 @@ function removeWebpackGeneratorNonTailwindImports(source) {
554
647
  const root = _weapp_tailwindcss_postcss.postcss.parse(source);
555
648
  let changed = false;
556
649
  root.walkAtRules("import", (rule) => {
557
- if (isWebpackTailwindImportRequest(require_v4_engine.parseImportRequest(rule.params))) return;
650
+ if (isWebpackTailwindImportRequest(require_generator.parseImportRequest(rule.params))) return;
558
651
  rule.remove();
559
652
  changed = true;
560
653
  });
@@ -655,7 +748,7 @@ function resolveWebpackMemoryDebugStats(context) {
655
748
  maxHandlerOptions: WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX
656
749
  },
657
750
  sourceCandidateScan: context.sourceCandidateScan,
658
- tailwind: { v4: require_v4_engine.getTailwindV4IncrementalGenerateCacheStats() }
751
+ tailwind: { v4: require_generator.getTailwindV4IncrementalGenerateCacheStats() }
659
752
  };
660
753
  }
661
754
  function shouldInjectWebpackCssTracePreflight(_appType, cssHandlerOptions) {
@@ -672,7 +765,7 @@ function includesTailwindPreflightImport(source) {
672
765
  return;
673
766
  }
674
767
  if (rule.name !== "import") return;
675
- const request = require_v4_engine.parseImportRequest(rule.params)?.replaceAll("\\", "/");
768
+ const request = require_generator.parseImportRequest(rule.params)?.replaceAll("\\", "/");
676
769
  includesPreflight || (includesPreflight = request === "tailwindcss" || request === "tailwindcss/preflight.css" || request?.endsWith("/tailwindcss/index.css") === true || request?.endsWith("/tailwindcss/preflight.css") === true);
677
770
  });
678
771
  return includesPreflight;
@@ -683,14 +776,14 @@ function includesTailwindPreflightImport(source) {
683
776
  function finalizeMiniProgramUserCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
684
777
  const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
685
778
  if (isWebGeneratorTarget) return source;
686
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(removeTailwindV4StandaloneHostPreflightRule((0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(require_v4_engine.removeMiniProgramHoverSelectors(source, styleOptions.cssRemoveHoverPseudoClass), {
687
- cssPreflight: options.cssPreflight === false ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(source) ? compilerOptions.cssPreflight : void 0,
779
+ return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(removeTailwindV4StandaloneHostPreflightRule((0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(require_generator.removeMiniProgramHoverSelectors(source, styleOptions.cssRemoveHoverPseudoClass), {
780
+ cssPreflight: options.cssPreflight === false ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(source) ? resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) : void 0,
688
781
  isTailwindcssV4: true,
689
782
  tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
690
783
  })));
691
784
  }
692
785
  function shouldFallbackToWebpackUserCssOnGeneratorError(options) {
693
- return !require_v4_engine.hasTailwindRootDirectives(options.generatorRawSource, { importFallback: true }) && !require_v4_engine.hasTailwindSourceDirectives(options.generatorRawSource, { importFallback: true }) && !require_v4_engine.hasTailwindApplyDirective(options.generatorRawSource) && !options.hasExplicitTailwindV4SourceCss && options.configuredMainCssEntryFilesLength === 0;
786
+ return !require_generator.hasTailwindRootDirectives(options.generatorRawSource, { importFallback: true }) && !require_generator.hasTailwindSourceDirectives(options.generatorRawSource, { importFallback: true }) && !require_generator.hasTailwindApplyDirective(options.generatorRawSource) && !options.hasExplicitTailwindV4SourceCss && options.configuredMainCssEntryFilesLength === 0;
694
787
  }
695
788
  function isWindowsAbsoluteResourcePath(file) {
696
789
  return /^[a-z]:[\\/]/i.test(file) || /^[/\\]{2}[^/\\]/.test(file);
@@ -749,27 +842,47 @@ function createWebpackCurrentAssetUserRawSource(options) {
749
842
  };
750
843
  }
751
844
  function finalizeTracedWebpackCssAsset(css, cssHandlerOptions, options) {
752
- const traced = options.annotateCss(css);
753
- if (options.isWebGeneratorTarget || !require_hmr_timing.isCssSourceTraceEnabled(options.compilerOptions)) return traced;
754
- return finalizeMiniProgramUserCssAssetSource(traced, options.compilerOptions, options.isWebGeneratorTarget, { cssPreflight: shouldInjectWebpackCssTracePreflight(options.compilerOptions.appType, cssHandlerOptions) });
845
+ if (options.finalized === true) return options.annotateCss(css);
846
+ if (options.isWebGeneratorTarget || !require_hmr_timing.isCssSourceTraceEnabled(options.compilerOptions)) return options.annotateCss(css);
847
+ const finalized = finalizeMiniProgramUserCssAssetSource(css, options.compilerOptions, options.isWebGeneratorTarget, { cssPreflight: shouldInjectWebpackCssTracePreflight(options.compilerOptions.appType, cssHandlerOptions) });
848
+ return options.annotateCss(finalized);
755
849
  }
756
850
  function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
757
851
  const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
758
852
  if (isWebGeneratorTarget) {
759
- if (options.generatedCss === true) return stripTrailingLineWhitespace(require_v4_engine.stripUnmatchedTailwindSourceMediaCloseFragments(require_v4_engine.stripTailwindSourceMediaFragments(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source))));
760
- return stripTrailingLineWhitespace(require_v4_engine.stripUnmatchedTailwindSourceMediaCloseFragments(require_v4_engine.stripTailwindSourceMediaFragments(require_v4_engine.removeTailwindV4GeneratorAtRules(require_v4_engine.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
853
+ if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source))));
854
+ return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
855
+ }
856
+ let finalized = require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
857
+ if (options.generatedCss !== true) {
858
+ finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
859
+ cssPreflight: false,
860
+ isTailwindcssV4: true,
861
+ tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
862
+ });
863
+ finalized = dedupeMiniProgramPreflightSelectorRules(finalized);
864
+ return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
761
865
  }
762
- let finalized = require_v4_engine.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
763
- if (options.generatedCss !== true) return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_v4_engine.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
764
866
  try {
765
867
  finalized = (0, _weapp_tailwindcss_postcss.pruneMiniProgramGeneratedCss)(finalized, { preservePreflight: options.cssPreflight !== false });
766
868
  } catch {}
869
+ const shouldRemoveExistingPreflight = options.cssPreflight === false && options.preserveExistingPreflight === false;
870
+ if (shouldRemoveExistingPreflight) finalized = removeMiniProgramPreflightSelectorRule(finalized);
871
+ const hasExistingMiniProgramPreflight = options.preserveExistingPreflight !== false && hasMiniProgramPreflightSelector(source);
767
872
  finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
768
- cssPreflight: options.cssPreflight === false ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(finalized) ? compilerOptions.cssPreflight : void 0,
873
+ cssPreflight: options.cssPreflight === false && !hasExistingMiniProgramPreflight ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(finalized) ? resolveExistingWebpackCssPreflight(compilerOptions, styleOptions, source) : void 0,
769
874
  isTailwindcssV4: true,
770
875
  tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
771
876
  });
772
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_v4_engine.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
877
+ finalized = ensureWebpackMiniProgramTwContentInit(finalized);
878
+ if (shouldRemoveExistingPreflight) finalized = removeMiniProgramPreflightSelectorRule(finalized);
879
+ else finalized = dedupeMiniProgramPreflightSelectorRules(finalized);
880
+ return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
881
+ }
882
+ function finalizeWebpackCssAssetOutputSource(source, compilerOptions, isWebGeneratorTarget) {
883
+ if (isWebGeneratorTarget) return source;
884
+ const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
885
+ return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(dedupeMiniProgramPreflightSelectorRules(source), styleOptions.cssRemoveHoverPseudoClass));
773
886
  }
774
887
  function collectWebpackJsRuntimeCandidatesFromAssets(options) {
775
888
  if (options.isWebGeneratorTarget) return;
@@ -830,22 +943,62 @@ function collectWebpackCssTokenSourceRefs(source) {
830
943
  }
831
944
  return refs;
832
945
  }
946
+ function readWebpackCompilationAssetSource(compilation, file) {
947
+ const source = compilation.getAsset?.(file)?.source?.source?.();
948
+ if (source === void 0) return;
949
+ return typeof source === "string" ? source : source.toString();
950
+ }
951
+ function resolveWebpackCssImportFile(file, request) {
952
+ if (/^(?:https?:)?\/\//i.test(request) || request.startsWith("/")) return;
953
+ if (!/\.(?:css|wxss|acss|ttss|qss|jxss|tyss)(?:$|[?#])/i.test(request)) return;
954
+ const cleanRequest = request.replace(/[?#].*$/, "");
955
+ return normalizeWebpackCssSourceRef(node_path.default.posix.join(node_path.default.posix.dirname(normalizeWebpackCssSourceRef(file)), cleanRequest));
956
+ }
957
+ function collectCssImportRequests(source) {
958
+ return [...source.matchAll(/@import\s+(?:url\(\s*)?(?:"([^"]+)"|'([^']+)'|([^\s;)]+))/g)].map((match) => match[1] ?? match[2] ?? match[3]).filter((request) => typeof request === "string" && request.length > 0);
959
+ }
960
+ function collectMainImportedCssFiles(compilation, cssAssetFiles, cssMatcher, isMainCssFile) {
961
+ const files = /* @__PURE__ */ new Set();
962
+ const candidates = new Set(cssAssetFiles);
963
+ for (const chunk of compilation.chunks) for (const file of chunk.files ?? []) candidates.add(file);
964
+ for (const file of candidates) {
965
+ if (!cssMatcher(file) || !isMainCssFile(file)) continue;
966
+ const source = readWebpackCompilationAssetSource(compilation, file);
967
+ if (!source?.includes("@import")) continue;
968
+ for (const request of collectCssImportRequests(source)) {
969
+ const importedFile = resolveWebpackCssImportFile(file, request);
970
+ if (importedFile) files.add(importedFile);
971
+ }
972
+ }
973
+ return files;
974
+ }
833
975
  function createWebpackCssSourceResolvers(options) {
834
- const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
976
+ const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetFiles, cssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
835
977
  const hasConfiguredTailwindV4SourceRoots = () => {
836
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
978
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
837
979
  return (tailwindOptions?.v4?.cssEntries?.length ?? 0) > 0 || (tailwindOptions?.v4?.cssSources?.length ?? 0) > 0;
838
980
  };
839
981
  const configuredCssEntryFiles = (() => {
840
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
982
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
841
983
  const entries = [...compilerOptions.cssEntries ?? [], ...tailwindOptions?.v4?.cssEntries ?? []].filter((file) => typeof file === "string" && file.length > 0).map((file) => node_path.default.resolve(file));
842
984
  return [...new Set(entries)];
843
985
  })();
844
986
  const configuredMainCssEntryFiles = configuredCssEntryFiles.slice(0, 1);
845
- const inferredMainCssFiles = inferWebpackMainCssFiles(compilation.chunks, compilerOptions.cssMatcher, {
987
+ const scoreCssSourceOutputMatch = (file, sourceFile) => require_hmr_timing.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
988
+ outputRoot: outputDir,
989
+ projectRoot: compilerOptions.tailwindcssBasedir,
990
+ cwd: compilerOptions.tailwindcssBasedir
991
+ });
992
+ const isConfiguredMainCssEntryFile = (sourceFile) => configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
993
+ const isCssSourceAllowedForOutput = (file, sourceFile) => !isConfiguredMainCssEntryFile(sourceFile) || scoreCssSourceOutputMatch(file, sourceFile) > 0;
994
+ const inferredMainCssFiles = new Set([...inferWebpackMainCssFiles(compilation.chunks, compilerOptions.cssMatcher, {
846
995
  mainSourceFiles: new Set(configuredMainCssEntryFiles),
847
996
  resourcesByAsset: cssAssetResources
848
- });
997
+ })].filter((file) => {
998
+ if (configuredMainCssEntryFiles.length === 0) return true;
999
+ return [...cssAssetResources.get(file) ?? []].some((resource) => isConfiguredMainCssEntryFile(resource) && isCssSourceAllowedForOutput(file, resource));
1000
+ }));
1001
+ const mainImportedCssFiles = collectMainImportedCssFiles(compilation, cssAssetFiles, compilerOptions.cssMatcher, (file) => compilerOptions.mainCssChunkMatcher(file, appType) || inferredMainCssFiles.has(file));
849
1002
  const singleConfiguredCssAsset = isWebGeneratorTarget && configuredMainCssEntryFiles.length > 0 && groupedCssEntriesLength === 1 ? singleCssAssetFile : void 0;
850
1003
  const isMainCssChunk = (file) => {
851
1004
  const resources = cssAssetResources.get(file);
@@ -854,7 +1007,7 @@ function createWebpackCssSourceResolvers(options) {
854
1007
  if (index >= 0) return index === 0;
855
1008
  }
856
1009
  if (configuredCssEntryFiles.length > 1) return false;
857
- return compilerOptions.mainCssChunkMatcher(file, appType) || inferredMainCssFiles.has(file) || file === singleConfiguredCssAsset;
1010
+ return compilerOptions.mainCssChunkMatcher(file, appType) || inferredMainCssFiles.has(file) || mainImportedCssFiles.has(normalizeWebpackCssSourceRef(file)) || file === singleConfiguredCssAsset;
858
1011
  };
859
1012
  const activeWebpackCssSourceFiles = /* @__PURE__ */ new Set();
860
1013
  const resolveConfiguredMainCssSourceFile = (file) => {
@@ -870,14 +1023,14 @@ function createWebpackCssSourceResolvers(options) {
870
1023
  const assetResources = cssAssetResources.get(file);
871
1024
  const activeAssetResource = resolveSingleActiveWebpackCssResource(assetResources, activeWebpackAssetResourceFiles);
872
1025
  if (cssSources.size === 0) {
873
- if (activeAssetResource) {
1026
+ if (activeAssetResource && isCssSourceAllowedForOutput(file, activeAssetResource)) {
874
1027
  activeWebpackCssSourceFiles.add(activeAssetResource);
875
1028
  return activeAssetResource;
876
1029
  }
877
1030
  if (assetResources && assetResources.size > 0) return;
878
1031
  return resolveConfiguredMainCssSourceFile(file);
879
1032
  }
880
- const resourceMatches = [...assetResources ?? []].filter((sourceFile) => cssSources.has(sourceFile)).sort();
1033
+ const resourceMatches = [...assetResources ?? []].filter((sourceFile) => cssSources.has(sourceFile)).filter((sourceFile) => isCssSourceAllowedForOutput(file, sourceFile)).sort();
881
1034
  if (resourceMatches.length === 1) {
882
1035
  const sourceFile = resourceMatches[0];
883
1036
  activeWebpackCssSourceFiles.add(sourceFile);
@@ -885,14 +1038,14 @@ function createWebpackCssSourceResolvers(options) {
885
1038
  }
886
1039
  const tailwindSourceMatches = resourceMatches.filter((sourceFile) => {
887
1040
  const sourceCss = cssSources.get(sourceFile)?.css;
888
- return sourceCss && (require_v4_engine.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(sourceCss) || require_v4_engine.hasTailwindGeneratedCss(sourceCss) || require_v4_engine.hasTailwindGeneratedCssMarkers(sourceCss));
1041
+ return sourceCss && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss) || require_generator.hasTailwindGeneratedCss(sourceCss) || require_generator.hasTailwindGeneratedCssMarkers(sourceCss));
889
1042
  });
890
1043
  if (tailwindSourceMatches.length === 1) {
891
1044
  const sourceFile = tailwindSourceMatches[0];
892
1045
  activeWebpackCssSourceFiles.add(sourceFile);
893
1046
  return sourceFile;
894
1047
  }
895
- if (activeAssetResource) {
1048
+ if (activeAssetResource && isCssSourceAllowedForOutput(file, activeAssetResource)) {
896
1049
  activeWebpackCssSourceFiles.add(activeAssetResource);
897
1050
  return activeAssetResource;
898
1051
  }
@@ -952,8 +1105,10 @@ function createWebpackCssSourceResolvers(options) {
952
1105
  });
953
1106
  const getCssHandlerOptions = (file, rawSource) => {
954
1107
  const majorVersion = runtimeState.tailwindRuntime.majorVersion;
955
- const isMainChunk = isMainCssChunk(file);
1108
+ const isMainCssAsset = isMainCssChunk(file);
956
1109
  const sourceFile = resolveWebpackCssSourceFile(file, rawSource);
1110
+ const sourceMatchedMainCssEntry = sourceFile !== void 0 && isConfiguredMainCssEntryFile(sourceFile) && isCssSourceAllowedForOutput(file, sourceFile);
1111
+ const isMainChunk = isMainCssAsset || sourceMatchedMainCssEntry;
957
1112
  const sourceCss = sourceFile ? cssSources.get(sourceFile)?.css : void 0;
958
1113
  const generatorSourceCss = removeWebpackGeneratorNonTailwindImports(sourceCss);
959
1114
  const generatorCssSource = createWebpackGeneratorCssSource(sourceFile, generatorSourceCss);
@@ -1004,6 +1159,7 @@ function createWebpackCssSourceResolvers(options) {
1004
1159
  };
1005
1160
  return {
1006
1161
  activeWebpackCssSourceFiles,
1162
+ configuredCssEntryFiles,
1007
1163
  configuredMainCssEntryFiles,
1008
1164
  getCssHandlerOptions,
1009
1165
  getCssUserHandlerOptions,
@@ -1229,7 +1385,7 @@ function compactSnapshot(snapshot) {
1229
1385
  };
1230
1386
  }
1231
1387
  function normalizeChangedFiles(changedFiles) {
1232
- return new Set([...changedFiles ?? []].map((file) => require_v4_engine.resolveSourceScanPath(file)));
1388
+ return new Set([...changedFiles ?? []].map((file) => require_generator.resolveSourceScanPath(file)));
1233
1389
  }
1234
1390
  async function resolveScanFileSnapshot(file) {
1235
1391
  try {
@@ -1261,7 +1417,7 @@ async function resolveScanFiles(roots, outDir) {
1261
1417
  outDir,
1262
1418
  root: root.root
1263
1419
  });
1264
- for (const file of rootFiles) files.add(require_v4_engine.resolveSourceScanPath(file));
1420
+ for (const file of rootFiles) files.add(require_generator.resolveSourceScanPath(file));
1265
1421
  }));
1266
1422
  return files;
1267
1423
  }
@@ -1373,7 +1529,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
1373
1529
  const { compiler, options: compilerOptions, appType, runtimeState, getRuntimeRefreshRequirement, refreshRuntimeMetadata, isKnownWebpackProcessedCssAsset, isWebpackProcessedCssAsset, consumeRuntimeRefreshRequirement, isWatchMode, getWatchChangedFiles, runtimeClassSetManager, getWebpackCssSources, getWebpackGeneratedCssSources, pruneWebpackCssSources, prepareWebpackCssSources, debug } = options;
1374
1530
  const { Compilation, sources } = compiler.webpack;
1375
1531
  const { ConcatSource } = sources;
1376
- const isWebGeneratorTarget = compilerOptions.generator?.target === "web";
1532
+ const isWebGeneratorTarget = require_generator.normalizeWeappTailwindcssGeneratorOptions(compilerOptions.generator, {
1533
+ appType: compilerOptions.appType,
1534
+ platform: compilerOptions.cssOptions?.platform ?? compilerOptions.platform,
1535
+ tailwindcssMajorVersion: runtimeState.tailwindRuntime.majorVersion,
1536
+ uniAppX: compilerOptions.uniAppX
1537
+ }).target === "web";
1377
1538
  const cssHandlerOptionsCache = /* @__PURE__ */ new Map();
1378
1539
  const cssUserHandlerOptionsCache = /* @__PURE__ */ new Map();
1379
1540
  const webpackSourceCandidateScanCache = createWebpackSourceCandidateScanCache();
@@ -1429,11 +1590,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
1429
1590
  for (const chunk of compilation.chunks) if (chunk.id) activeProcessHashKeys.add(chunk.id);
1430
1591
  const cssSources = new Map([...getWebpackCssSources?.() ?? []].map(([file, source]) => [node_path.default.resolve(file), source]));
1431
1592
  const generatedCssSources = new Map([...getWebpackGeneratedCssSources?.() ?? []].map(([file, source]) => [node_path.default.resolve(file), source]));
1432
- const { activeWebpackCssSourceFiles, configuredMainCssEntryFiles, getCssHandlerOptions, getCssUserHandlerOptions, hasConfiguredTailwindV4SourceRoots, isSameWebpackSourceScope, resolveWebpackCssSourceFile } = createWebpackCssSourceResolvers({
1593
+ const { activeWebpackCssSourceFiles, configuredCssEntryFiles, configuredMainCssEntryFiles, getCssHandlerOptions, getCssUserHandlerOptions, hasConfiguredTailwindV4SourceRoots, isSameWebpackSourceScope, resolveWebpackCssSourceFile } = createWebpackCssSourceResolvers({
1433
1594
  activeWebpackAssetResourceFiles,
1434
1595
  appType,
1435
1596
  compilerOptions,
1436
1597
  compilation,
1598
+ cssAssetFiles: entries.map(([file]) => file),
1437
1599
  cssAssetResources,
1438
1600
  cssHandlerOptionsCache,
1439
1601
  cssSources,
@@ -1461,9 +1623,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
1461
1623
  opts: compilerOptions,
1462
1624
  tokenSources: cssSourceTraceTokenSources
1463
1625
  });
1464
- const finalizeTracedCss = (css, cssHandlerOptions) => finalizeTracedWebpackCssAsset(css, cssHandlerOptions, {
1626
+ const finalizeTracedCss = (css, cssHandlerOptions, options = {}) => finalizeTracedWebpackCssAsset(css, cssHandlerOptions, {
1465
1627
  annotateCss,
1466
1628
  compilerOptions,
1629
+ ...options,
1467
1630
  isWebGeneratorTarget
1468
1631
  });
1469
1632
  const hasRuntimeTransformAssets = Boolean(!isWebGeneratorTarget && ((groupedEntries.html?.length ?? 0) > 0 || (groupedEntries.js?.length ?? 0) > 0));
@@ -1674,7 +1837,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1674
1837
  const processedCssAssetMetadata = { isMainCssChunk: cssHandlerOptionsForProcessedAsset.isMainChunk };
1675
1838
  const processedSourceFile = cssHandlerOptionsForProcessedAsset.sourceOptions?.sourceFile;
1676
1839
  const processedSourceCss = processedSourceFile ? cssSources.get(node_path.default.resolve(processedSourceFile))?.css : void 0;
1677
- const shouldRegenerateProcessedTailwindV4SourceCss = processedSourceCss !== void 0 && (require_v4_engine.hasTailwindSourceDirectives(processedSourceCss, { importFallback: true }) || processedSourceCss.includes("@config"));
1840
+ const shouldRegenerateProcessedTailwindV4SourceCss = processedSourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(processedSourceCss, { importFallback: true }) || processedSourceCss.includes("@config"));
1678
1841
  const processedCssAssetKnown = isKnownWebpackProcessedCssAsset?.(file, processedCssAssetMetadata) === true;
1679
1842
  const processedLoaderGeneratedCss = processedSourceFile ? generatedCssSources.get(node_path.default.resolve(processedSourceFile)) : void 0;
1680
1843
  const processedAssetSourceHash = watchMode && isWebGeneratorTarget && cssHandlerOptionsForProcessedAsset.isMainChunk ? compilerOptions.cache.computeHash(readRawSource()) : chunkHash === void 0 ? processedCssAssetKnown ? "webpack-css-asset:known" : compilerOptions.cache.computeHash(readRawSource()) : "webpack-css-asset:chunk";
@@ -1694,11 +1857,11 @@ function setupWebpackV5ProcessAssetsHook(options) {
1694
1857
  } else {
1695
1858
  const source = readCurrentProcessedRawSource();
1696
1859
  hasGeneratedCssMarker = require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source);
1697
- hasTailwindGeneratedAssetCss = require_v4_engine.hasTailwindGeneratedCss(source) || require_v4_engine.hasTailwindGeneratedCssMarkers(source);
1860
+ hasTailwindGeneratedAssetCss = require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source);
1698
1861
  }
1699
1862
  const hasProcessedAssetTailwindDirectives = () => {
1700
1863
  const source = readCurrentProcessedRawSource();
1701
- return require_v4_engine.hasTailwindRootDirectives(source, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(source, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(source);
1864
+ return require_generator.hasTailwindRootDirectives(source, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(source, { importFallback: true }) || require_generator.hasTailwindApplyDirective(source);
1702
1865
  };
1703
1866
  const shouldForceConfiguredMainCssGeneration = cssHandlerOptionsForProcessedAsset.isMainChunk && hasConfiguredTailwindV4SourceRoots() && !hasGeneratedCssMarker && (configuredMainCssEntryFiles.length > 0 || shouldRegenerateProcessedTailwindV4SourceCss || hasProcessedAssetTailwindDirectives());
1704
1867
  const hasProcessedMainAssetUserCss = cachedSkipProcessedCssAsset === void 0 && cssHandlerOptionsForProcessedAsset.isMainChunk && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss) && createWebpackUserCssSourceAppend([...cssSources.entries()].map(([sourceFile, source]) => ({
@@ -1706,7 +1869,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1706
1869
  file: sourceFile
1707
1870
  })), readCurrentProcessedRawSource()) !== void 0;
1708
1871
  const hasProcessedLoaderGeneratedUserCss = cachedSkipProcessedCssAsset === void 0 && processedLoaderGeneratedCss !== void 0 && hasAdditionalWebpackAssetUserCssMarkers(processedLoaderGeneratedCss.css, readCurrentProcessedRawSource());
1709
- const shouldFinalizeProcessedWebCssAsset = isWebGeneratorTarget && !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && require_v4_engine.hasTailwindSourceDirectives(readCurrentProcessedRawSource(), { importFallback: true });
1872
+ const shouldFinalizeProcessedWebCssAsset = isWebGeneratorTarget && !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && require_generator.hasTailwindSourceDirectives(readCurrentProcessedRawSource(), { importFallback: true });
1710
1873
  const shouldPreserveFinalWebCssAsset = isWebGeneratorTarget && processedSourceFile === void 0 && !shouldForceConfiguredMainCssGeneration && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1711
1874
  const shouldSkipKnownProcessedCssAsset = !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && !shouldRegenerateStaleProcessedWebCssAsset && (processedCssAssetKnown || isWebpackProcessedCssAsset?.(file, readCurrentProcessedRawSource(), processedCssAssetMetadata)) && !hasProcessedMainAssetUserCss && !hasProcessedLoaderGeneratedUserCss && (!cssHandlerOptionsForProcessedAsset.isMainChunk || hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1712
1875
  const shouldSkipProcessedCssAsset = cachedSkipProcessedCssAsset ?? (shouldFinalizeProcessedWebCssAsset || shouldPreserveFinalWebCssAsset || shouldSkipKnownProcessedCssAsset);
@@ -1755,7 +1918,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1755
1918
  processed: true
1756
1919
  }).css;
1757
1920
  debug("css skip webpack-loader-pipeline asset: %s", file);
1758
- return { result: new ConcatSource(finalizeTracedCss(css, cssHandlerOptionsForProcessedAsset)) };
1921
+ return { result: new ConcatSource(finalizeTracedCss(css, cssHandlerOptionsForProcessedAsset, { finalized: true })) };
1759
1922
  }
1760
1923
  });
1761
1924
  }, cssTaskFactories);
@@ -1821,9 +1984,13 @@ function setupWebpackV5ProcessAssetsHook(options) {
1821
1984
  const generatorRawSource = resolveWebpackGeneratorRawSource(currentRawSource, cssHandlerOptions);
1822
1985
  if (isWebpackCssLoaderRuntimeSource(generatorRawSource)) return { result: new ConcatSource(currentRawSource) };
1823
1986
  const sourceFile = cssHandlerOptions.sourceOptions?.sourceFile;
1824
- const loaderGeneratedCss = sourceFile && !isWebGeneratorTarget ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
1825
1987
  const sourceCss = sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.css : void 0;
1826
- const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_v4_engine.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
1988
+ const isConfiguredCssSource = sourceFile !== void 0 && configuredCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
1989
+ const isConfiguredMainCssSource = sourceFile !== void 0 && configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
1990
+ const sourceCssHasTailwindRoot = sourceCss !== void 0 && require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true });
1991
+ const shouldPreserveExistingPreflight = cssHandlerOptions.isMainChunk || !isConfiguredMainCssSource && (isConfiguredCssSource || sourceCssHasTailwindRoot);
1992
+ const loaderGeneratedCss = sourceFile && !isWebGeneratorTarget ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
1993
+ const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
1827
1994
  const explicitTailwindV4SourceCandidates = shouldRegenerateExplicitTailwindV4CssSource && sourceCss && sourceFile && webpackSourceCandidates?.getSourceCandidatesForEntries ? await require_tailwindcss.resolveTailwindV4EntriesFromCssCached(sourceCss, node_path.default.dirname(sourceFile)).then((resolved) => resolved?.entries ? webpackSourceCandidates.getSourceCandidatesForEntries(resolved.entries) : void 0) : void 0;
1828
1995
  if (loaderGeneratedCss && shouldConsumeWebpackLoaderGeneratedCss({
1829
1996
  hasBundlerGeneratedCssMarker: require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(currentRawSource),
@@ -1840,13 +2007,15 @@ function setupWebpackV5ProcessAssetsHook(options) {
1840
2007
  const currentRawSourceWithoutBundlerMarkers = require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentRawSource);
1841
2008
  const currentAssetHasProcessedUrl = hasProcessedCssAssetUrl(currentRawSourceWithoutBundlerMarkers) && currentRawSourceWithoutBundlerMarkers !== loaderGeneratedCss.css;
1842
2009
  const currentAssetUserCss = currentAssetHasProcessedUrl ? currentRawSourceWithoutBundlerMarkers : shouldUseWebpackAssetAsGeneratorUserCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css, { processed: true }) ? require_hmr_timing.removeGeneratedSelectorCompatCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css) : void 0;
1843
- const isConfiguredMainCssSource = configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
1844
2010
  const loaderGeneratedCssWithoutMarkers = require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
1845
2011
  const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
1846
- const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_v4_engine.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
1847
- if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk && (currentAssetMissingUserCss.trim().length === 0 || require_v4_engine.isCommentOnlyCss(currentAssetMissingUserCss))) {
2012
+ const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_generator.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
2013
+ if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk) {
1848
2014
  debug("css skip duplicate webpack loader main generation: %s <- %s", file, sourceFile);
1849
- return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
2015
+ return { result: new ConcatSource(finalizeTracedCss(currentAssetMissingUserCss.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetMissingUserCss) ? "" : finalizeCssAssetSource(currentAssetMissingUserCss, {
2016
+ cssPreflight: false,
2017
+ generatedCss: false
2018
+ }), cssHandlerOptions)) };
1850
2019
  }
1851
2020
  const finalizedLoaderCss = finalizeCssAssetSource(currentAssetUserCss === void 0 ? loaderGeneratedCss.css : createWebpackGeneratorUserCssSourceAppend({
1852
2021
  css: currentAssetUserCss === void 0 ? loaderGeneratedCss.css : currentAssetHasProcessedUrl ? require_hmr_timing.removeGeneratedSelectorCompatCss(loaderGeneratedCss.css, currentAssetUserCss) : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCss, loaderGeneratedCss.css),
@@ -1856,7 +2025,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
1856
2025
  processed: true
1857
2026
  }).css, {
1858
2027
  cssPreflight: cssHandlerOptions.isMainChunk,
1859
- generatedCss: true
2028
+ generatedCss: true,
2029
+ preserveExistingPreflight: shouldPreserveExistingPreflight
1860
2030
  });
1861
2031
  const loaderSourceBareUserCss = isWebGeneratorTarget ? void 0 : createWebpackGeneratorUserCssSourceAppend(...[currentAssetUserCss === void 0 ? void 0 : {
1862
2032
  css: currentAssetUserCss,
@@ -1882,7 +2052,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1882
2052
  }, {
1883
2053
  css: missingLoaderSourceBareUserCss,
1884
2054
  processed: true
1885
- }).css, cssHandlerOptions);
2055
+ }).css, cssHandlerOptions, { finalized: true });
1886
2056
  debug("css consume webpack loader generation: %s <- %s", file, sourceFile);
1887
2057
  return { result: new ConcatSource(css) };
1888
2058
  }
@@ -1891,12 +2061,13 @@ function setupWebpackV5ProcessAssetsHook(options) {
1891
2061
  ...source,
1892
2062
  file: registeredSourceFile
1893
2063
  })), generatorRawSource, sourceFile, (registeredSourceFile) => isSameWebpackSourceScope(file, registeredSourceFile, sourceFile));
1894
- const currentAssetLooksGenerated = require_v4_engine.hasTailwindGeneratedCss(currentRawSource) || require_v4_engine.hasTailwindGeneratedCssMarkers(currentRawSource);
2064
+ const currentAssetLooksGenerated = require_generator.hasTailwindGeneratedCss(currentRawSource) || require_generator.hasTailwindGeneratedCssMarkers(currentRawSource);
1895
2065
  const currentAssetHasBundlerGeneratedMarker = require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(currentRawSource);
1896
2066
  const currentAssetUserCssSource = currentAssetLooksGenerated ? removeWebpackTailwindGeneratedAssetCss(currentRawSource) : currentRawSource;
2067
+ if (sourceFile === void 0 && currentAssetHasBundlerGeneratedMarker && (currentAssetUserCssSource.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetUserCssSource))) return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
1897
2068
  const currentAssetHasAdditionalUserCss = currentAssetLooksGenerated && (hasAdditionalWebpackAssetUserCssMarkers(currentAssetUserCssSource, generatorRawSource) || currentAssetUserCssSource.trim().length > 0);
1898
2069
  const shouldPreserveGeneratedWebAssetUserCss = isWebGeneratorTarget && currentAssetLooksGenerated && !currentAssetHasBundlerGeneratedMarker && !currentAssetHasAdditionalUserCss;
1899
- const hasExplicitSourceCssForCurrentAsset = sourceCss !== void 0 && (require_v4_engine.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(sourceCss));
2070
+ const hasExplicitSourceCssForCurrentAsset = sourceCss !== void 0 && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss));
1900
2071
  const currentAssetHasUserCss = (sourceCssProcessed || hasExplicitSourceCssForCurrentAsset) && currentAssetLooksGenerated && !shouldPreserveGeneratedWebAssetUserCss ? currentAssetHasAdditionalUserCss : shouldUseWebpackAssetAsGeneratorUserCss(currentAssetUserCssSource, generatorRawSource, { processed: sourceCssProcessed || shouldPreserveGeneratedWebAssetUserCss });
1901
2072
  const userRawSource = createWebpackGeneratorUserCssSourceAppend(createWebpackCurrentAssetUserRawSource({
1902
2073
  currentAssetHasUserCss,
@@ -1912,15 +2083,18 @@ function setupWebpackV5ProcessAssetsHook(options) {
1912
2083
  }),
1913
2084
  sourceCssProcessed
1914
2085
  }), registeredUserRawSource);
1915
- if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_v4_engine.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
2086
+ if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
1916
2087
  const fallbackGeneratorRuntimeSet = getGeneratorRuntimeSet();
1917
- const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_v4_engine.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
1918
- const currentAssetHasTailwindDirectives = require_v4_engine.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_v4_engine.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_v4_engine.hasTailwindApplyDirective(generatorRawSource);
2088
+ const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
2089
+ const currentAssetHasTailwindDirectives = require_generator.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindApplyDirective(generatorRawSource);
1919
2090
  const shouldForceTailwindV4Generation = hasConfiguredTailwindV4SourceRoots() && (configuredMainCssEntryFiles.length > 0 && sourceFile !== void 0 || currentAssetHasTailwindDirectives || hasExplicitTailwindV4SourceCss);
1920
2091
  const shouldSkipUnmatchedMainCssGeneration = !isWebGeneratorTarget && cssHandlerOptions.isMainChunk && sourceFile === void 0 && configuredMainCssEntryFiles.length > 0 && !currentAssetHasTailwindDirectives;
2092
+ const shouldSkipPlainNonMainCssGeneration = !cssHandlerOptions.isMainChunk && sourceCss !== void 0 && !hasExplicitSourceCssForCurrentAsset && !hasExplicitTailwindV4SourceCss && !currentAssetHasTailwindDirectives;
2093
+ const shouldMergeFallbackGeneratorRuntime = cssHandlerOptions.isMainChunk || currentAssetHasTailwindDirectives || hasExplicitSourceCssForCurrentAsset;
2094
+ const scopedFallbackGeneratorRuntimeSet = hasExplicitTailwindV4SourceCss || !shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set() : fallbackGeneratorRuntimeSet;
1921
2095
  const resolvedScopedGeneratorRuntimeSet = await require_source_candidate_scan_signature.createScopedGeneratorRuntime({
1922
2096
  cssHandlerOptions,
1923
- fallbackRuntime: hasExplicitTailwindV4SourceCss ? /* @__PURE__ */ new Set() : fallbackGeneratorRuntimeSet,
2097
+ fallbackRuntime: scopedFallbackGeneratorRuntimeSet,
1924
2098
  getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
1925
2099
  majorVersion: runtimeState.tailwindRuntime.majorVersion,
1926
2100
  outputFile: file,
@@ -1929,7 +2103,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1929
2103
  sourceFile: sourceFile ?? file,
1930
2104
  scopedSourceCandidateGetter: webpackSourceCandidates?.getSourceCandidatesForEntries
1931
2105
  });
1932
- const scopedGeneratorRuntimeSet = !hasExplicitTailwindV4SourceCss && resolvedScopedGeneratorRuntimeSet !== fallbackGeneratorRuntimeSet ? /* @__PURE__ */ new Set([...fallbackGeneratorRuntimeSet, ...resolvedScopedGeneratorRuntimeSet]) : resolvedScopedGeneratorRuntimeSet;
2106
+ const scopedGeneratorRuntimeSet = !hasExplicitTailwindV4SourceCss && resolvedScopedGeneratorRuntimeSet !== scopedFallbackGeneratorRuntimeSet && shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set([...fallbackGeneratorRuntimeSet, ...resolvedScopedGeneratorRuntimeSet]) : resolvedScopedGeneratorRuntimeSet;
1933
2107
  const generatorCssSources = normalizeWebpackGeneratorCssSources(cssHandlerOptions.sourceOptions?.cssSources);
1934
2108
  const scopedGeneratorCompilerOptions = scopeWebpackGeneratorOptionsToCssSource(compilerOptions, sourceFile, { disableUnmatchedCssEntries: !isWebGeneratorTarget && cssHandlerOptions.isMainChunk });
1935
2109
  const generatorCssHandlerOptions = generatorCssSources === void 0 ? cssHandlerOptions : {
@@ -1958,7 +2132,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1958
2132
  debug
1959
2133
  };
1960
2134
  let generated;
1961
- if (!shouldSkipUnmatchedMainCssGeneration) try {
2135
+ if (!shouldSkipUnmatchedMainCssGeneration && !shouldSkipPlainNonMainCssGeneration) try {
1962
2136
  generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
1963
2137
  ...generatorOptions,
1964
2138
  outputFile: file
@@ -1972,7 +2146,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1972
2146
  debug("css generator skipped for plain webpack css asset: %s %O", file, error);
1973
2147
  generated = void 0;
1974
2148
  }
1975
- else debug("css generator skipped for unmatched webpack main css asset: %s", file);
2149
+ else debug("css generator skipped for plain webpack css asset: %s", file);
1976
2150
  const finalizedGeneratedCss = generated ? finalizeCssAssetSource(isWebGeneratorTarget && currentRawSource.includes("tailwindcss v4.") ? createWebpackGeneratorUserCssSourceAppend({
1977
2151
  css: generated.css,
1978
2152
  processed: true
@@ -1981,7 +2155,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
1981
2155
  processed: true
1982
2156
  })?.css ?? generated.css : generated.css, {
1983
2157
  cssPreflight: cssHandlerOptions.isMainChunk,
1984
- generatedCss: true
2158
+ generatedCss: true,
2159
+ preserveExistingPreflight: shouldPreserveExistingPreflight
1985
2160
  }) : isWebGeneratorTarget ? finalizeCssAssetSource(generatorRawSource, { generatedCss: false }) : finalizeCssAssetSource((await compilerOptions.styleHandler(generatorRawSource, cssHandlerOptions)).css, { generatedCss: false });
1986
2161
  const sourceBareUserCss = isWebGeneratorTarget ? void 0 : createWebpackGeneratorUserCssSourceAppend(...[
1987
2162
  userRawSource,
@@ -2011,7 +2186,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
2011
2186
  }, {
2012
2187
  css: missingSourceBareUserCss,
2013
2188
  processed: true
2014
- }).css, cssHandlerOptions));
2189
+ }).css, cssHandlerOptions, { finalized: true }));
2015
2190
  if (generated) {
2016
2191
  for (const className of generated.classSet) generatorRuntimeSet.add(className);
2017
2192
  debug("css handle via tailwind v%s engine(%s): %s", runtimeState.tailwindRuntime.majorVersion, generated.target, file);
@@ -2056,6 +2231,22 @@ function setupWebpackV5ProcessAssetsHook(options) {
2056
2231
  }) });
2057
2232
  compilerOptions.onEnd();
2058
2233
  });
2234
+ if (!isWebGeneratorTarget) compilation.hooks.processAssets.tapPromise({
2235
+ name: `${require_context.pluginName}:finalize-css-assets`,
2236
+ stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_HASH
2237
+ }, async (assets) => {
2238
+ const entries = Object.entries(assets);
2239
+ if (entries.length === 0) return;
2240
+ const groupedEntries = require_utils.getGroupedEntries(entries, compilerOptions);
2241
+ if (groupedEntries.css.length === 0) return;
2242
+ const { updateAssetIfChanged } = createWebpackAssetUpdater({
2243
+ compilation,
2244
+ ConcatSource,
2245
+ onUpdate: compilerOptions.onUpdate,
2246
+ debug
2247
+ });
2248
+ for (const [file, asset] of groupedEntries.css) updateAssetIfChanged(file, finalizeWebpackCssAssetOutputSource(stringifyWebpackSourceLike(compilation.getAsset(file)?.source.source() ?? asset.source()), compilerOptions, isWebGeneratorTarget));
2249
+ });
2059
2250
  });
2060
2251
  }
2061
2252
  //#endregion
@@ -2279,7 +2470,13 @@ function createDefaultLoaderAnchorFinders() {
2279
2470
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.ts
2280
2471
  function setupWebpackV5Loaders(options) {
2281
2472
  const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, registerAutoCssSource, runtimeState, getClassSetInLoader, getRuntimeSetInLoader, markWebpackProcessedCssSource, markWebpackCssSourceModule, registerWebpackGeneratedCss, registerWebpackCssSourceFile, getRuntimeWatchDependencies, loaderAnchorFinders = createDefaultLoaderAnchorFinders(), mpxCssImportRewrite = false, runtimeRegistryKey = `weapp-tailwindcss-${Date.now()}-${Math.random().toString(36).slice(2)}`, debug } = options;
2282
- const generatorTarget = compilerOptions.generator?.target ?? require_v4_engine.inferGeneratorTargetFromEnv();
2473
+ const generatorOptions = require_generator.normalizeWeappTailwindcssGeneratorOptions(compilerOptions.generator, {
2474
+ appType: compilerOptions.appType,
2475
+ platform: compilerOptions.cssOptions?.platform ?? compilerOptions.platform,
2476
+ tailwindcssMajorVersion: runtimeState.tailwindRuntime.majorVersion,
2477
+ uniAppX: compilerOptions.uniAppX
2478
+ });
2479
+ const generatorTarget = generatorOptions.target;
2283
2480
  const generatorBranch = require_generator.resolveRuntimeBranch({
2284
2481
  appType: compilerOptions.appType,
2285
2482
  generatorTarget,
@@ -2290,7 +2487,7 @@ function setupWebpackV5Loaders(options) {
2290
2487
  if (shouldRewriteCssImports && mpxCssImportRewrite) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
2291
2488
  const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
2292
2489
  const shouldInjectRuntimeClassSetLoader = !generatorBranch.isWeb;
2293
- const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || !generatorBranch.isWeb || runtimeState.tailwindRuntime.majorVersion === 4;
2490
+ const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || generatorOptions.enabled && (!generatorBranch.isWeb || runtimeState.tailwindRuntime.majorVersion === 4);
2294
2491
  const runtimeCssImportRewriteLoader = shouldInjectCssImportRewriteLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
2295
2492
  const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
2296
2493
  const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
@@ -2462,7 +2659,7 @@ var WebpackFrameworkPlugin = class {
2462
2659
  require_context._defineProperty(this, "hasInitialTailwindCssRoots", void 0);
2463
2660
  require_context._defineProperty(this, "frameworkBranch", void 0);
2464
2661
  this.frameworkBranch = frameworkBranch;
2465
- this.hasInitialTailwindCssRoots = require_v4_engine.hasConfiguredTailwindV4CssRoots(options);
2662
+ this.hasInitialTailwindCssRoots = require_generator.hasConfiguredTailwindV4CssRoots(options);
2466
2663
  this.options = isInternalUserDefinedOptions(options) ? options : require_context.getCompilerContext({
2467
2664
  ...options,
2468
2665
  __internalDeferMissingCssEntriesWarning: true
@@ -2509,7 +2706,7 @@ var WebpackFrameworkPlugin = class {
2509
2706
  const updateRuntimeWatchDependencies = async () => {
2510
2707
  runtimeWatchDependencyFiles.clear();
2511
2708
  runtimeWatchDependencyContexts.clear();
2512
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2709
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2513
2710
  if (tailwindOptions?.config) runtimeWatchDependencyFiles.add(tailwindOptions.config);
2514
2711
  for (const entry of tailwindOptions?.v4?.cssEntries ?? []) runtimeWatchDependencyFiles.add(entry);
2515
2712
  for (const source of tailwindOptions?.v4?.cssSources ?? []) {
@@ -2559,7 +2756,7 @@ var WebpackFrameworkPlugin = class {
2559
2756
  };
2560
2757
  const registerAutoCssSource = async (source) => {
2561
2758
  if (!source.file) return;
2562
- if (!require_v4_engine.upsertTailwindV4CssSource(this.options, source)) return;
2759
+ if (!require_generator.upsertTailwindV4CssSource(this.options, source)) return;
2563
2760
  runtimeSetPrepared = false;
2564
2761
  runtimeMetadataPrepared = false;
2565
2762
  runtimeRefreshRequiredForCompilation = true;
@@ -2579,7 +2776,7 @@ var WebpackFrameworkPlugin = class {
2579
2776
  const file = node_path.default.resolve(source.file);
2580
2777
  const previous = webpackCssSources.get(file);
2581
2778
  const next = {
2582
- css: typeof source.css === "string" ? require_v4_engine.normalizeTailwindConfigDirectives(source.css, node_path.default.dirname(file)) : source.css,
2779
+ css: typeof source.css === "string" ? require_generator.normalizeTailwindConfigDirectives(source.css, node_path.default.dirname(file)) : source.css,
2583
2780
  processed: source.processed
2584
2781
  };
2585
2782
  if (previous && shouldKeepPreviousWebpackCssSource(previous, next)) {
@@ -2598,7 +2795,7 @@ var WebpackFrameworkPlugin = class {
2598
2795
  currentWebpackCssSourceFiles.add(file);
2599
2796
  };
2600
2797
  const pruneWebpackCssSources = (activeSourceFiles, _options = {}) => {
2601
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2798
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2602
2799
  const configuredSourceFiles = /* @__PURE__ */ new Set();
2603
2800
  for (const entry of this.options.cssEntries ?? []) configuredSourceFiles.add(node_path.default.resolve(entry));
2604
2801
  for (const entry of tailwindOptions?.v4?.cssEntries ?? []) configuredSourceFiles.add(node_path.default.resolve(entry));
@@ -2607,7 +2804,7 @@ var WebpackFrameworkPlugin = class {
2607
2804
  for (const file of webpackGeneratedCssSources.keys()) if (!activeSourceFiles.has(file) && !configuredSourceFiles.has(file)) webpackGeneratedCssSources.delete(file);
2608
2805
  };
2609
2806
  const prepareWebpackCssSources = (activeAssetResources = /* @__PURE__ */ new Set()) => {
2610
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2807
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2611
2808
  const configuredSourceFiles = /* @__PURE__ */ new Set();
2612
2809
  for (const entry of this.options.cssEntries ?? []) configuredSourceFiles.add(node_path.default.resolve(entry));
2613
2810
  for (const entry of tailwindOptions?.v4?.cssEntries ?? []) configuredSourceFiles.add(node_path.default.resolve(entry));
@@ -2625,7 +2822,7 @@ var WebpackFrameworkPlugin = class {
2625
2822
  };
2626
2823
  const isWebpackProcessedTailwindEntryAsset = (isMainCssChunk) => {
2627
2824
  if (isMainCssChunk !== true || webpackProcessedCssSourceFiles.size === 0) return false;
2628
- const tailwindOptions = require_v4_engine.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2825
+ const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2629
2826
  for (const entry of this.options.cssEntries ?? []) if (webpackProcessedCssSourceFiles.has(node_path.default.resolve(entry))) return true;
2630
2827
  for (const entry of tailwindOptions?.v4?.cssEntries ?? []) if (webpackProcessedCssSourceFiles.has(node_path.default.resolve(entry))) return true;
2631
2828
  for (const source of tailwindOptions?.v4?.cssSources ?? []) if (source.file && webpackProcessedCssSourceFiles.has(node_path.default.resolve(source.file))) return true;
@@ -2695,7 +2892,7 @@ var WebpackFrameworkPlugin = class {
2695
2892
  return webpackProcessedCssSourceFiles.has(node_path.default.resolve(file)) || isWebpackProcessedTailwindEntryAsset(metadata?.isMainCssChunk);
2696
2893
  },
2697
2894
  isWebpackProcessedCssAsset(file, rawSource, metadata) {
2698
- return webpackProcessedCssSourceFiles.has(node_path.default.resolve(file)) || isWebpackProcessedTailwindEntryAsset(metadata?.isMainCssChunk) || require_v4_engine.hasTailwindGeneratedCss(rawSource) || require_v4_engine.hasTailwindGeneratedCssMarkers(rawSource) || rawSource.includes("weapp-tailwindcss webpack-generated-css");
2895
+ return webpackProcessedCssSourceFiles.has(node_path.default.resolve(file)) || isWebpackProcessedTailwindEntryAsset(metadata?.isMainCssChunk) || require_generator.hasTailwindGeneratedCss(rawSource) || require_generator.hasTailwindGeneratedCssMarkers(rawSource) || rawSource.includes("weapp-tailwindcss webpack-generated-css");
2699
2896
  },
2700
2897
  consumeRuntimeRefreshRequirement() {
2701
2898
  runtimeRefreshRequiredForCompilation = false;