weapp-tailwindcss 5.1.2 → 5.1.3

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 (66) hide show
  1. package/README.md +1 -1
  2. package/dist/bundlers/gulp/index.d.ts +3 -3
  3. package/dist/bundlers/rspack/index.d.ts +20 -0
  4. package/dist/bundlers/shared/generator-css/source-resolver.d.ts +1 -1
  5. package/dist/bundlers/vite/css-memory.d.ts +1 -0
  6. package/dist/bundlers/vite/generate-bundle/source-candidate-scope.d.ts +1 -1
  7. package/dist/bundlers/vite/generate-bundle/temporary-css-assets.d.ts +12 -0
  8. package/dist/bundlers/vite/generate-bundle/types.d.ts +1 -0
  9. package/dist/bundlers/vite/serve-js-transform.d.ts +11 -0
  10. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +4 -1
  11. package/dist/cli.js +8 -8
  12. package/dist/cli.mjs +8 -8
  13. package/dist/{context-C-r8ki7x.mjs → context-B07Vf584.mjs} +34 -34
  14. package/dist/{context-CH4HFZP2.js → context-D75pwtBW.js} +43 -43
  15. package/dist/core.js +1 -1
  16. package/dist/core.mjs +1 -1
  17. package/dist/css-macro/postcss.js +2 -2
  18. package/dist/css-macro.js +3 -3
  19. package/dist/{defaults-CmFBmxsr.js → defaults-DQhgnnn-.js} +1 -1
  20. package/dist/defaults.js +1 -1
  21. package/dist/framework/index.d.ts +7 -2
  22. package/dist/framework.js +39 -8
  23. package/dist/framework.mjs +33 -6
  24. package/dist/{generator-B6pUjNdD.js → generator-CV_0irKO.js} +2 -2
  25. package/dist/{generator-BsPIaLtV.mjs → generator-DNs6ekoC.mjs} +1 -1
  26. package/dist/generator.js +2 -2
  27. package/dist/generator.mjs +2 -2
  28. package/dist/{gulp-BBCeA7ky.js → gulp-B_u8NjQL.js} +9 -9
  29. package/dist/{gulp-CTdcASq8.mjs → gulp-aQMZ0M7c.mjs} +4 -4
  30. package/dist/gulp.js +1 -1
  31. package/dist/gulp.mjs +1 -1
  32. package/dist/{hmr-timing-BRx-KnBh.mjs → hmr-timing-DLYQTCDb.mjs} +25 -22
  33. package/dist/{hmr-timing-Da1eI8S0.js → hmr-timing-DOoHun3i.js} +28 -25
  34. package/dist/index.js +9 -4
  35. package/dist/index.mjs +7 -6
  36. package/dist/postcss-html-transform.js +2 -2
  37. package/dist/postcss.js +2 -2
  38. package/dist/postcss.mjs +2 -2
  39. package/dist/presets/shared.d.ts +4 -0
  40. package/dist/presets.js +32 -16
  41. package/dist/presets.mjs +28 -14
  42. package/dist/reset.js +2 -2
  43. package/dist/rspack.d.ts +3 -0
  44. package/dist/rspack.js +68 -0
  45. package/dist/rspack.mjs +62 -0
  46. package/dist/{source-candidate-scan-signature-BO6JSskQ.js → source-candidate-scan-signature-DzwebZrf.js} +6 -6
  47. package/dist/{source-candidate-scan-signature-Dugfplms.mjs → source-candidate-scan-signature-pS87mdHZ.mjs} +3 -3
  48. package/dist/{tailwindcss-dbrbY4cd.js → tailwindcss-BSCvrs1p.js} +8 -8
  49. package/dist/{tailwindcss-B5mRo0-M.mjs → tailwindcss-BwV3_Ryc.mjs} +3 -3
  50. package/dist/{transform-DeqFRp1D.mjs → transform-Clj7R818.mjs} +19 -19
  51. package/dist/{transform-BLleu_bA.js → transform-fin-OTVD.js} +47 -47
  52. package/dist/{utils-BCa37Wqj.js → utils-D3h8j7Mk.js} +2 -2
  53. package/dist/{v4-engine-C3qSwQ-e.mjs → v4-engine-BklH3CpJ.mjs} +5 -5
  54. package/dist/{v4-engine-ON_oSLfO.js → v4-engine-CKbS27-o.js} +10 -10
  55. package/dist/{vite-CXmUiI9f.mjs → vite-5Wn0PIzJ.mjs} +237 -42
  56. package/dist/{vite-Da4uEG_u.js → vite-CkVMSDDp.js} +242 -47
  57. package/dist/vite.js +1 -1
  58. package/dist/vite.mjs +1 -1
  59. package/dist/weapp-tw-css-import-rewrite-loader.js +55 -26
  60. package/dist/weapp-tw-runtime-classset-loader.js +2 -2
  61. package/dist/{webpack-CrFZmdo7.mjs → webpack-DEag6ueE.mjs} +66 -18
  62. package/dist/{webpack-Cwqnznng.js → webpack-hvSFaicc.js} +71 -23
  63. package/dist/webpack.js +1 -1
  64. package/dist/webpack.mjs +1 -1
  65. package/package.json +8 -3
  66. /package/dist/{chunk-emK7D4bc.js → rolldown-runtime-emK7D4bc.js} +0 -0
@@ -1,25 +1,25 @@
1
- const require_chunk = require("./chunk-emK7D4bc.js");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-emK7D4bc.js");
2
2
  const require_framework = require("./framework.js");
3
- const require_v4_engine = require("./v4-engine-ON_oSLfO.js");
4
- const require_generator = require("./generator-B6pUjNdD.js");
5
- const require_utils = require("./utils-BCa37Wqj.js");
6
- const require_context = require("./context-CH4HFZP2.js");
7
- const require_tailwindcss = require("./tailwindcss-dbrbY4cd.js");
8
- const require_hmr_timing = require("./hmr-timing-Da1eI8S0.js");
9
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BO6JSskQ.js");
3
+ const require_v4_engine = require("./v4-engine-CKbS27-o.js");
4
+ const require_generator = require("./generator-CV_0irKO.js");
5
+ const require_utils = require("./utils-D3h8j7Mk.js");
6
+ const require_context = require("./context-D75pwtBW.js");
7
+ const require_tailwindcss = require("./tailwindcss-BSCvrs1p.js");
8
+ const require_hmr_timing = require("./hmr-timing-DOoHun3i.js");
9
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-DzwebZrf.js");
10
10
  require("./logger-TlKT3xmR.js");
11
11
  let node_fs = require("node:fs");
12
- node_fs = require_chunk.__toESM(node_fs);
12
+ node_fs = require_rolldown_runtime.__toESM(node_fs);
13
13
  let node_path = require("node:path");
14
- node_path = require_chunk.__toESM(node_path);
14
+ node_path = require_rolldown_runtime.__toESM(node_path);
15
15
  let node_process = require("node:process");
16
- node_process = require_chunk.__toESM(node_process);
16
+ node_process = require_rolldown_runtime.__toESM(node_process);
17
17
  let _tailwindcss_mangle_engine = require("@tailwindcss-mangle/engine");
18
18
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
19
19
  let lru_cache = require("lru-cache");
20
20
  let node_fs_promises = require("node:fs/promises");
21
21
  let micromatch = require("micromatch");
22
- micromatch = require_chunk.__toESM(micromatch);
22
+ micromatch = require_rolldown_runtime.__toESM(micromatch);
23
23
  let node_buffer = require("node:buffer");
24
24
  let _weapp_tailwindcss_logger = require("@weapp-tailwindcss/logger");
25
25
  let comment_json = require("comment-json");
@@ -256,7 +256,7 @@ const UVUE_TS_RE = /\.uvue\.ts$/;
256
256
  const JS_RE = /\.js$/;
257
257
  const APP_JS_RE = /(?:^|\/)App\.js$/;
258
258
  const COMPONENT_JS_RE = /(?:^|\/)components\/.+\.js$/;
259
- const HARMONY_BUNDLE_MARKER_FILES = new Set([
259
+ const HARMONY_BUNDLE_MARKER_FILES = /* @__PURE__ */ new Set([
260
260
  "import/app-service.ets",
261
261
  "import/dynamic.ets",
262
262
  "uni_modules/oh-package.json5"
@@ -515,10 +515,10 @@ function resolveUniAppXStyleIsolationEnabled(root) {
515
515
  //#region src/uni-app-x/vite.ts
516
516
  let transformUVuePromise;
517
517
  function loadTransformUVue() {
518
- transformUVuePromise ?? (transformUVuePromise = Promise.resolve().then(() => require("./transform-BLleu_bA.js")).then((mod) => mod.transformUVue));
518
+ transformUVuePromise ?? (transformUVuePromise = Promise.resolve().then(() => require("./transform-fin-OTVD.js")).then((mod) => mod.transformUVue));
519
519
  return transformUVuePromise;
520
520
  }
521
- const preprocessorLangs = new Set([
521
+ const preprocessorLangs = /* @__PURE__ */ new Set([
522
522
  "scss",
523
523
  "sass",
524
524
  "less",
@@ -689,7 +689,7 @@ function createUniAppXPlugins(options) {
689
689
  if (isHarmonyTarget) {
690
690
  const cssSources = [];
691
691
  const applyStyleSources = [...harmonyApplyStyleSources, ...collectUniAppXHarmonyApplyStyleSources(bundle)];
692
- const applyUtilities = new Set([...harmonyApplyUtilities, ...collectUniAppXHarmonyApplyUtilities(bundle)]);
692
+ const applyUtilities = /* @__PURE__ */ new Set([...harmonyApplyUtilities, ...collectUniAppXHarmonyApplyUtilities(bundle)]);
693
693
  if (applyStyleSources.length > 0 && applyUtilities.size > 0) {
694
694
  const harmonyApplyCssFile = node_path.default.resolve(getResolvedConfig()?.root ?? node_process.default.cwd(), "uni-app-x-harmony-apply.css");
695
695
  const generatedCss = await generateCss?.(harmonyApplyCssFile, createUniAppXHarmonyApplyGeneratorSource(applyStyleSources, applyUtilities), this);
@@ -755,9 +755,31 @@ function collectConfiguredTailwindV4CssSources(opts) {
755
755
  const runtimeCssSources = opts.tailwindcssRuntimeOptions?.tailwindcss?.v4?.cssSources ?? [];
756
756
  return require_v4_engine.filterTailwindV4CssSourceRoots([...opts.tailwindcss?.v4?.cssSources ?? [], ...runtimeCssSources]) ?? [];
757
757
  }
758
+ function collectExplicitTailwindV4CssEntries(opts) {
759
+ const entries = [
760
+ ...opts.cssEntries ?? [],
761
+ ...opts.tailwindcss?.v4?.cssEntries ?? [],
762
+ ...opts.tailwindcssRuntimeOptions?.tailwindcss?.v4?.cssEntries ?? []
763
+ ];
764
+ return [...new Set(entries.filter((entry) => typeof entry === "string" && entry.length > 0))];
765
+ }
758
766
  function collectConfiguredTailwindV4CssSourceEntries(opts, fallbackBase) {
759
767
  const entries = [];
760
768
  const seen = /* @__PURE__ */ new Set();
769
+ const explicitCssEntries = collectExplicitTailwindV4CssEntries(opts);
770
+ for (const cssEntry of explicitCssEntries.length > 1 ? explicitCssEntries : []) {
771
+ if (typeof cssEntry !== "string" || cssEntry.length === 0) continue;
772
+ const resolvedFile = node_path.default.isAbsolute(cssEntry) ? node_path.default.resolve(cssEntry) : node_path.default.resolve(fallbackBase, cssEntry);
773
+ if (!(0, node_fs.existsSync)(resolvedFile)) continue;
774
+ const source = (0, node_fs.readFileSync)(resolvedFile, "utf8");
775
+ const key = `${resolvedFile}\0${source}`;
776
+ if (seen.has(key)) continue;
777
+ seen.add(key);
778
+ entries.push({
779
+ file: resolvedFile,
780
+ source
781
+ });
782
+ }
761
783
  for (const cssSource of collectConfiguredTailwindV4CssSources(opts)) {
762
784
  if (typeof cssSource.css !== "string" || cssSource.css.length === 0) continue;
763
785
  const base = require_v4_engine.resolveTailwindV4CssSourceBase(cssSource, fallbackBase);
@@ -1942,7 +1964,7 @@ function collectMiniProgramSubpackageSourceEntries(snapshot, subpackageRoots, so
1942
1964
  const sourceEntries = [];
1943
1965
  for (const entry of snapshot.entries) {
1944
1966
  if (entry.output.type !== "chunk" || !isSubpackageOutputFile(entry.file, subpackageRoots)) continue;
1945
- const matchedSubpackageRoot = [...subpackageRoots].find((root) => isSubpackageOutputFile(entry.file, new Set([root])));
1967
+ const matchedSubpackageRoot = [...subpackageRoots].find((root) => isSubpackageOutputFile(entry.file, /* @__PURE__ */ new Set([root])));
1946
1968
  if (!matchedSubpackageRoot) continue;
1947
1969
  for (const moduleId of collectChunkModuleIds$2(entry.output)) {
1948
1970
  if (!node_path.default.isAbsolute(moduleId.replace(/[?#].*$/, ""))) continue;
@@ -2113,6 +2135,14 @@ function shouldInjectViteProcessedCssResult(opts, targetFile, sourceFile, option
2113
2135
  const targetFileKey = require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile);
2114
2136
  return require_source_candidate_scan_signature.normalizeOutputPathKey(sourceFile) !== targetFileKey && (opts.mainCssChunkMatcher(sourceFile, opts.appType) || typeof options.outputFile === "string" && require_source_candidate_scan_signature.normalizeOutputPathKey(options.outputFile) !== targetFileKey && opts.mainCssChunkMatcher(options.outputFile, opts.appType));
2115
2137
  }
2138
+ function shouldReplayViteProcessedCssIntoMainCss(opts, file, sourceFile, outputFile, subpackageRoots) {
2139
+ if (subpackageRoots) {
2140
+ const sourceIsSubpackage = isSubpackageOutputFile(sourceFile ?? file, subpackageRoots);
2141
+ const outputIsSubpackage = isSubpackageOutputFile(outputFile, subpackageRoots);
2142
+ if (sourceIsSubpackage || outputIsSubpackage) return false;
2143
+ }
2144
+ return isRootStyleOutputFile(file) && opts.mainCssChunkMatcher(file, opts.appType) || isSourceRootPrefixedOutputFile(file, outputFile) && isRootStyleOutputFile(outputFile) && opts.mainCssChunkMatcher(outputFile, opts.appType);
2145
+ }
2116
2146
  function isRootStyleOutputFile(file) {
2117
2147
  const normalized = require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
2118
2148
  return isCssOutputFile(normalized) && !normalized.includes("/");
@@ -2225,7 +2255,7 @@ function collectViteProcessedCssAssetResults(bundle, options) {
2225
2255
  options.markCssAssetProcessed?.(output, file);
2226
2256
  options.recordCssAssetResult?.(file, nextCss);
2227
2257
  const resolvedOutputFile = options.resolveViteProcessedCssOutputFile?.(file) ?? file;
2228
- const shouldReplayIntoMainCss = options.opts != null && (isRootStyleOutputFile(file) && options.opts.mainCssChunkMatcher(file, options.opts.appType) || isSourceRootPrefixedOutputFile(file, resolvedOutputFile) && isRootStyleOutputFile(resolvedOutputFile) && options.opts.mainCssChunkMatcher(resolvedOutputFile, options.opts.appType));
2258
+ const shouldReplayIntoMainCss = options.opts != null && shouldReplayViteProcessedCssIntoMainCss(options.opts, file, singleMarkerFile, resolvedOutputFile, options.subpackageRoots);
2229
2259
  options.recordViteProcessedCssAssetResult?.(file, nextCss, {
2230
2260
  injectIntoMain: shouldReplayIntoMainCss || void 0,
2231
2261
  outputFile: resolvedOutputFile
@@ -2550,7 +2580,7 @@ async function handleUniAppXPostCssTasks(options) {
2550
2580
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
2551
2581
  opts,
2552
2582
  runtimeState,
2553
- runtime: new Set([...generatorRuntime, ...applyUtilities]),
2583
+ runtime: /* @__PURE__ */ new Set([...generatorRuntime, ...applyUtilities]),
2554
2584
  rawSource: createUniAppXHarmonyApplyGeneratorSource(applyStyleSources, applyUtilities),
2555
2585
  file: outputFile,
2556
2586
  outputFile,
@@ -2799,7 +2829,7 @@ async function finalizeGenerateBundle(options) {
2799
2829
  pruneLastCssResults(lastCssResultByFile, lastCssSourceHashByFile, activeViteCssCacheFiles);
2800
2830
  pruneViteCssCaches?.({
2801
2831
  activeFiles: activeViteCssCacheFiles,
2802
- activeKnownSfcFiles: new Set([...snapshot.sourceHashByFile.keys(), ...snapshot.entries.map((entry) => entry.file)])
2832
+ activeKnownSfcFiles: /* @__PURE__ */ new Set([...snapshot.sourceHashByFile.keys(), ...snapshot.entries.map((entry) => entry.file)])
2803
2833
  });
2804
2834
  }
2805
2835
  recordTimingDetail("state.update", stateUpdateStart);
@@ -2900,7 +2930,7 @@ function processHtmlBundleEntry(options) {
2900
2930
  const { cache, context, debug, dynamicRetryCandidates, file, metrics, onUpdate, originalEntrySource, originalSource, rememberProcessCacheKey, resolveCurrentSourceCandidateSource, tasks, templateHandler, timeTask, transformRuntime, transformRuntimeSignature } = options;
2901
2931
  const rawSource = resolveCurrentSourceCandidateSource(file) ?? originalEntrySource;
2902
2932
  const currentRawDynamicCandidates = collectUnescapedDynamicCandidates(rawSource);
2903
- const templateRuntime = currentRawDynamicCandidates.length > 0 ? new Set([...transformRuntime, ...currentRawDynamicCandidates]) : transformRuntime;
2933
+ const templateRuntime = currentRawDynamicCandidates.length > 0 ? /* @__PURE__ */ new Set([...transformRuntime, ...currentRawDynamicCandidates]) : transformRuntime;
2904
2934
  const templateRuntimeSignature = templateRuntime === transformRuntime ? transformRuntimeSignature : require_source_candidate_scan_signature.createCandidateSignature(templateRuntime);
2905
2935
  const htmlProcessHash = `${cache.computeHash(rawSource)}:${cache.computeHash(require_source_candidate_scan_signature.createRuntimeAffectingSourceSignature(rawSource, "html"))}:${templateRuntimeSignature}`;
2906
2936
  const cacheKey = `${file}:html:${htmlProcessHash}`;
@@ -2926,7 +2956,7 @@ function processHtmlBundleEntry(options) {
2926
2956
  if (unresolvedDynamicCandidates.length > 0) {
2927
2957
  const fullRuntimeSet = await context.ensureRuntimeClassSet(true);
2928
2958
  const allowedRetryCandidates = fullRuntimeSet.size === 0 ? unresolvedDynamicCandidates : unresolvedDynamicCandidates.filter((candidate) => dynamicRetryCandidates.has(candidate) || fullRuntimeSet.has(candidate));
2929
- retryRuntimeSet = new Set([...fullRuntimeSet, ...allowedRetryCandidates]);
2959
+ retryRuntimeSet = /* @__PURE__ */ new Set([...fullRuntimeSet, ...allowedRetryCandidates]);
2930
2960
  unresolvedDynamicCandidates = unresolvedDynamicCandidates.filter((candidate) => retryRuntimeSet?.has(candidate) === true);
2931
2961
  }
2932
2962
  if (retryRuntimeSet && unresolvedDynamicCandidates.length > 0) {
@@ -3141,6 +3171,15 @@ function createRememberedCssRuntimeSignature(cssRuntimeSignature, cssRuntimeAffe
3141
3171
  function normalizeRememberedSourceIdentity(file) {
3142
3172
  return require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
3143
3173
  }
3174
+ function selectBestRememberedCssSourceMatches(sources, outputFile, outputRoot, sourceRoot) {
3175
+ if (sources.length <= 1) return sources;
3176
+ const scoredMatches = sources.map((remembered) => ({
3177
+ remembered,
3178
+ score: Math.max(scoreMatchingStyleFileBase(outputFile, remembered.sourceFile, outputRoot, sourceRoot), scoreMatchingStyleFileBase(outputFile, remembered.outputFile, outputRoot, sourceRoot))
3179
+ })).filter((match) => match.score > 0).sort((a, b) => b.score - a.score);
3180
+ const bestScore = scoredMatches[0]?.score;
3181
+ return bestScore ? scoredMatches.filter((match) => match.score === bestScore).map((match) => match.remembered) : sources;
3182
+ }
3144
3183
  function findRememberedCssSources(sources, outputFile, file, originalSource, outputRoot, sourceRoot) {
3145
3184
  if (!sources) return [];
3146
3185
  const rememberedSources = [...sources].map(([, remembered]) => remembered);
@@ -3148,7 +3187,7 @@ function findRememberedCssSources(sources, outputFile, file, originalSource, out
3148
3187
  const markerFiles = new Set(require_source_candidate_scan_signature.parseBundlerGeneratedCssMarkerBlocks(source).filter((block) => block.bundler === "vite" && typeof block.file === "string" && block.file.length > 0).map((block) => require_source_candidate_scan_signature.normalizeOutputPathKey(block.file)));
3149
3188
  if (markerFiles.size > 0) {
3150
3189
  const markerMatched = rememberedSources.filter((remembered) => markerFiles.has(normalizeRememberedSourceIdentity(remembered.sourceFile)));
3151
- if (markerMatched.length > 0) return markerMatched;
3190
+ if (markerMatched.length > 0) return selectBestRememberedCssSourceMatches(markerMatched, outputFile, outputRoot, sourceRoot);
3152
3191
  }
3153
3192
  const originalFiles = [
3154
3193
  file,
@@ -3160,12 +3199,8 @@ function findRememberedCssSources(sources, outputFile, file, originalSource, out
3160
3199
  const outputMatched = rememberedSources.filter((remembered) => require_source_candidate_scan_signature.normalizeOutputPathKey(remembered.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile));
3161
3200
  if (outputMatched.length > 0) return outputMatched;
3162
3201
  if (!require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source) && !hasTailwindGenerationSource(source)) return [];
3163
- const scoredMatches = rememberedSources.map((remembered) => ({
3164
- remembered,
3165
- score: Math.max(scoreMatchingStyleFileBase(outputFile, remembered.sourceFile, outputRoot, sourceRoot), scoreMatchingStyleFileBase(outputFile, remembered.outputFile, outputRoot, sourceRoot))
3166
- })).filter((match) => match.score > 0).sort((a, b) => b.score - a.score);
3167
- const bestScore = scoredMatches[0]?.score;
3168
- return bestScore ? scoredMatches.filter((match) => match.score === bestScore).map((match) => match.remembered) : [];
3202
+ const scoredMatches = selectBestRememberedCssSourceMatches(rememberedSources, outputFile, outputRoot, sourceRoot);
3203
+ return scoredMatches.length === rememberedSources.length ? [] : scoredMatches;
3169
3204
  }
3170
3205
  function mergeRememberedCssSources(sources, outputFile) {
3171
3206
  if (sources.length <= 1) return sources[0];
@@ -3400,7 +3435,7 @@ function createSubpackageSourceCandidateScope(options) {
3400
3435
  const isMainPackageStyleOutputFile = (file) => options.subpackageRoots != null && !isSubpackageOutputFile(file, options.subpackageRoots);
3401
3436
  const resolveSubpackageOutputSourceEntries = (outputFile) => {
3402
3437
  if (!options.subpackageRoots) return;
3403
- const matchedRoots = [...options.subpackageRoots].filter((root) => isSubpackageOutputFile(outputFile, new Set([root])));
3438
+ const matchedRoots = [...options.subpackageRoots].filter((root) => isSubpackageOutputFile(outputFile, /* @__PURE__ */ new Set([root])));
3404
3439
  if (matchedRoots.length !== 1) return;
3405
3440
  const root = matchedRoots[0];
3406
3441
  if (!root) return;
@@ -3461,7 +3496,7 @@ function createSubpackageSourceCandidateScope(options) {
3461
3496
  excludeEntries: [...filterOptions?.excludeEntries ?? [], ...subpackageSourceExcludeEntries]
3462
3497
  }) ?? /* @__PURE__ */ new Map();
3463
3498
  };
3464
- const shouldInjectCssIntoMainFromOutput = (outputFile, _sourceFile, outputCssHandlerOptions) => outputCssHandlerOptions.isMainChunk === true && !outputFile.replace(/[?#].*$/, "").includes("/") || options.useIncrementalMode && isMainPackageStyleOutputFile(outputFile);
3499
+ const shouldInjectCssIntoMainFromOutput = (outputFile, sourceFile, outputCssHandlerOptions) => outputCssHandlerOptions.isMainChunk === true && !outputFile.replace(/[?#].*$/, "").includes("/") || options.useIncrementalMode && isMainPackageStyleOutputFile(outputFile) && isMainPackageStyleOutputFile(sourceFile);
3465
3500
  return {
3466
3501
  createScopedSourceCandidateGetter,
3467
3502
  createScopedSourceCandidateSourceGetter,
@@ -3544,7 +3579,7 @@ function scoreConfiguredTailwindV4SourceForRawSource(rawSource, entrySource) {
3544
3579
  }
3545
3580
  function resolveSubpackageRootForFile(file, subpackageRoots) {
3546
3581
  if (!file || !subpackageRoots) return;
3547
- return [...subpackageRoots].find((root) => isSubpackageOutputFile(file, new Set([root])));
3582
+ return [...subpackageRoots].find((root) => isSubpackageOutputFile(file, /* @__PURE__ */ new Set([root])));
3548
3583
  }
3549
3584
  function isSameSubpackageScope(outputFile, sourceFile, subpackageRoots) {
3550
3585
  return resolveSubpackageRootForFile(outputFile, subpackageRoots) === resolveSubpackageRootForFile(sourceFile, subpackageRoots);
@@ -3567,7 +3602,7 @@ function selectTailwindV4GenerationCssSourceForOutput(outputFile, entries, rawSo
3567
3602
  const outputMatchesSubpackage = isSubpackageOutputFile(outputFile, subpackageRoots);
3568
3603
  const sourceMatchesSubpackage = isSubpackageOutputFile(entry.file, subpackageRoots);
3569
3604
  if (!outputMatchesSubpackage) return !sourceMatchesSubpackage;
3570
- return sourceMatchesSubpackage && [...subpackageRoots].some((root) => isSubpackageOutputFile(outputFile, new Set([root])) && isSubpackageOutputFile(entry.file, new Set([root])));
3605
+ return sourceMatchesSubpackage && [...subpackageRoots].some((root) => isSubpackageOutputFile(outputFile, /* @__PURE__ */ new Set([root])) && isSubpackageOutputFile(entry.file, /* @__PURE__ */ new Set([root])));
3571
3606
  }) : generationSources;
3572
3607
  const explicitSources = scopedSources.filter((entry) => /@(?:config|source|plugin|custom-variant|theme|utility|variant|apply)\b/.test(entry.source));
3573
3608
  const candidates = explicitSources.length === 1 ? explicitSources : scopedSources;
@@ -3575,6 +3610,44 @@ function selectTailwindV4GenerationCssSourceForOutput(outputFile, entries, rawSo
3575
3610
  return selectByRawSourceFingerprint(candidates);
3576
3611
  }
3577
3612
  //#endregion
3613
+ //#region src/bundlers/vite/generate-bundle/temporary-css-assets.ts
3614
+ function isTemporaryCssAssetFile(file) {
3615
+ const normalized = require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
3616
+ return /\.css$/i.test(normalized) && !normalized.includes("/");
3617
+ }
3618
+ function normalizeCssSourceKey(file) {
3619
+ return require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
3620
+ }
3621
+ function createTemporaryCssAssetSourceResolver(entries) {
3622
+ const seenEntryFiles = /* @__PURE__ */ new Set();
3623
+ const queuedEntries = entries.filter((entry) => {
3624
+ const entryFile = normalizeCssSourceKey(entry.file);
3625
+ const outputFile = normalizeCssSourceKey(entry.outputFile);
3626
+ if (!hasTailwindGenerationSource(entry.source) || outputFile === entryFile || !outputFile.includes("/") || seenEntryFiles.has(entryFile)) return false;
3627
+ seenEntryFiles.add(entryFile);
3628
+ return true;
3629
+ });
3630
+ const usedEntryFiles = /* @__PURE__ */ new Set();
3631
+ return {
3632
+ entries: queuedEntries,
3633
+ markUsed(sourceFile) {
3634
+ if (!sourceFile) return;
3635
+ usedEntryFiles.add(normalizeCssSourceKey(sourceFile));
3636
+ },
3637
+ resolve(outputFile) {
3638
+ if (!isTemporaryCssAssetFile(outputFile)) return;
3639
+ const entry = queuedEntries.find((item) => !usedEntryFiles.has(normalizeCssSourceKey(item.file)));
3640
+ if (!entry) return;
3641
+ usedEntryFiles.add(normalizeCssSourceKey(entry.file));
3642
+ return {
3643
+ outputFile: entry.outputFile,
3644
+ rawSource: entry.source,
3645
+ sourceFile: entry.file
3646
+ };
3647
+ }
3648
+ };
3649
+ }
3650
+ //#endregion
3578
3651
  //#region src/bundlers/vite/generate-bundle/timing.ts
3579
3652
  function createBundleTaskTimer(recordTimingDetail) {
3580
3653
  return async (name, task) => {
@@ -3778,12 +3851,13 @@ function createGenerateBundleHook(context) {
3778
3851
  });
3779
3852
  return async function generateBundle(_opt, bundle) {
3780
3853
  const addWatchFile = (id) => this.addWatchFile?.(id);
3781
- const { opts, runtimeState, ensureBundleRuntimeClassSet, debug, getResolvedConfig, markCssAssetProcessed, isCssAssetProcessed, isViteProcessedCssAsset, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getViteProcessedCssAssetResult, getSourceCandidates, getSourceCandidateSource, getSourceCandidateSources, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberCssSource, refreshRememberedCssSource, getRememberedCssSources, getRememberedCssSignature, setRememberedCssSignature, getKnownSfcSource, recordGeneratorCandidates, pruneViteCssCaches, getViteCssCacheStats, hmrTimingRecorder } = context;
3854
+ const { opts, runtimeState, ensureBundleRuntimeClassSet, debug, getResolvedConfig, markCssAssetProcessed, isCssAssetProcessed, isViteProcessedCssAsset, recordCssAssetResult, recordViteProcessedCssAssetResult, getViteProcessedCssAssetResults, getViteProcessedCssAssetResult, getSourceCandidates, getSourceCandidateSource, getSourceCandidateSources, getSourceCandidatesForEntries, getSourceCandidateSourcesForEntries, waitForSourceCandidateSyncs, rememberCssSource, refreshRememberedCssSource, getRememberedCssSources, getRememberedCssSignature, setRememberedCssSignature, getKnownCssSource, getKnownSfcSource, recordGeneratorCandidates, pruneViteCssCaches, getViteCssCacheStats, hmrTimingRecorder } = context;
3782
3855
  const getBundlerSfcSource = (sourceFile) => {
3783
3856
  const code = this.getModuleInfo?.(sourceFile)?.code;
3784
3857
  return typeof code === "string" && hasSfcStyleSources(code) ? code : void 0;
3785
3858
  };
3786
3859
  const getSfcSource = (sourceFile) => getBundlerSfcSource(sourceFile) ?? getKnownSfcSource?.(sourceFile);
3860
+ const getCssSource = (sourceFile) => getKnownCssSource?.(sourceFile) ?? getSourceCandidateSource?.(sourceFile);
3787
3861
  const { cache, onEnd, onStart, onUpdate, styleHandler, templateHandler, jsHandler, uniAppX } = opts;
3788
3862
  const resolvedConfig = getResolvedConfig();
3789
3863
  const uniUtsPlatform = require_utils.resolveUniUtsPlatform();
@@ -3919,7 +3993,7 @@ function createGenerateBundleHook(context) {
3919
3993
  refreshBySource: forceV4RuntimeRefreshBySource
3920
3994
  }) : await context.ensureRuntimeClassSet(envFlags.forceRuntimeRefreshByEnv);
3921
3995
  const shouldFilterTailwindV4MiniProgramCandidates = require_generator.shouldUseMiniProgramCssBranch(generatorBranch);
3922
- const collectedGeneratorCandidates = new Set([...runtime, ...sourceCandidates]);
3996
+ const collectedGeneratorCandidates = /* @__PURE__ */ new Set([...runtime, ...sourceCandidates]);
3923
3997
  const filteredGeneratorCandidates = shouldFilterTailwindV4MiniProgramCandidates ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(collectedGeneratorCandidates) : collectedGeneratorCandidates;
3924
3998
  const filteredSourceCandidates = shouldFilterTailwindV4MiniProgramCandidates ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(sourceCandidates) : sourceCandidates;
3925
3999
  const transformRuntime = shouldFilterTailwindV4MiniProgramCandidates ? new Set(runtime) : new Set(filteredGeneratorCandidates);
@@ -3955,7 +4029,7 @@ function createGenerateBundleHook(context) {
3955
4029
  const generatorCandidatesChanged = state.generatorCandidateSignature !== generatorCandidateSignature;
3956
4030
  const cssExtensionByStem = collectCssExtensionByStem(bundleFiles, opts.cssMatcher);
3957
4031
  const jsImportedCssFiles = collectJsImportedCssFiles(snapshot);
3958
- const runtimeLinkedCssFiles = new Set([...collectRuntimeLinkedCssFiles(snapshot, cssExtensionByStem, defaultStyleOutputExtension), ...jsImportedCssFiles]);
4032
+ const runtimeLinkedCssFiles = /* @__PURE__ */ new Set([...collectRuntimeLinkedCssFiles(snapshot, cssExtensionByStem, defaultStyleOutputExtension), ...jsImportedCssFiles]);
3959
4033
  rememberRuntimeLinkedCssSources({
3960
4034
  bundleFiles,
3961
4035
  debug,
@@ -3974,8 +4048,32 @@ function createGenerateBundleHook(context) {
3974
4048
  snapshot,
3975
4049
  sourceRoot
3976
4050
  });
4051
+ const temporaryCssAssetSourceResolver = createTemporaryCssAssetSourceResolver([
4052
+ ...[...runtimeLinkedCssFiles].filter((file) => !snapshot.sourceHashByFile.has(file)).map((file) => {
4053
+ const outputFile = resolveViteCssPipelineOutputFile(file, opts, rootDir, isWebGeneratorTarget, shouldPreserveAppCssExtension, sourceRoot, defaultStyleOutputExtension, bundleFiles);
4054
+ const inferredSourceStyle = resolveSourceStyleSourceFromOutputFile(outputFile, snapshot, outDir, sourceRoot, getCssSource, jsImportedCssFiles.has(file) ? getSourceCandidateSources : void 0, getConfiguredTailwindV4CssSourceEntries().map((entry) => [entry.file, entry.source]), debug);
4055
+ return inferredSourceStyle && currentSubpackageRoots && isSubpackageOutputFile(outputFile, currentSubpackageRoots) ? {
4056
+ file: inferredSourceStyle.sourceFile,
4057
+ outputFile,
4058
+ source: inferredSourceStyle.rawSource
4059
+ } : void 0;
4060
+ }).filter((entry) => entry != null),
4061
+ ...[...getRememberedCssSources?.() ?? []].map(([, remembered]) => ({
4062
+ file: remembered.sourceFile,
4063
+ outputFile: remembered.outputFile,
4064
+ source: remembered.rawSource
4065
+ })),
4066
+ ...configuredTailwindV4CssSourceEntriesForScope.map((entry) => {
4067
+ const outputFile = resolveMatchedCssSourceOutputFile(entry.file);
4068
+ return outputFile && currentSubpackageRoots && isSubpackageOutputFile(outputFile, currentSubpackageRoots) ? {
4069
+ file: entry.file,
4070
+ outputFile,
4071
+ source: entry.source
4072
+ } : void 0;
4073
+ }).filter((entry) => entry != null)
4074
+ ]);
3977
4075
  recordGeneratorCandidates?.(generatorRuntime);
3978
- const dynamicRetryCandidates = new Set([
4076
+ const dynamicRetryCandidates = /* @__PURE__ */ new Set([
3979
4077
  ...sourceCandidates,
3980
4078
  ...generatorRuntime,
3981
4079
  ...transformRuntime
@@ -4074,6 +4172,7 @@ function createGenerateBundleHook(context) {
4074
4172
  }
4075
4173
  const hasViteProcessedCssRecord = getViteProcessedCssAssetResult?.(file) != null;
4076
4174
  const viteProcessedCssAsset = isViteProcessedCssAsset?.(originalSource, file) === true || hasViteProcessedCssRecord;
4175
+ let resolvedFromTemporaryCssAsset = false;
4077
4176
  const applyCssResult = (source) => {
4078
4177
  applyCssResultToBundle({
4079
4178
  appType: opts.appType,
@@ -4115,14 +4214,39 @@ function createGenerateBundleHook(context) {
4115
4214
  const rememberedSourcesBelongToInferredSfc = rememberedCssSources.length > 0 && rememberedCssSources.every((remembered) => normalizeSfcSourceFileForCompare(remembered.sourceFile) === inferredSourceFile);
4116
4215
  if (!hasUsableRememberedTailwindSource || rememberedSourcesBelongToInferredSfc) rememberedCssSources = [inferredSfcStyleSource];
4117
4216
  }
4217
+ if (isTemporaryCssAssetFile(outputFile) && rememberedCssSources.some((remembered) => configuredTailwindV4CssSourceFileKeysForScope.has(require_source_candidate_scan_signature.normalizeOutputPathKey(remembered.sourceFile.replace(/[?#].*$/, ""))))) {
4218
+ rememberedCssSources = [];
4219
+ hasUsableRememberedTailwindSource = false;
4220
+ }
4118
4221
  let outputCssHandlerOptions = getCssHandlerOptions(outputFile);
4119
4222
  if (currentSubpackageRoots && rememberedCssSources.length > 0 && rememberedCssSources.some((remembered) => configuredTailwindV4CssSourceFileKeysForScope.has(require_source_candidate_scan_signature.normalizeOutputPathKey(remembered.sourceFile.replace(/[?#].*$/, ""))) && !isSameSubpackageScope(outputFile, remembered.sourceFile, currentSubpackageRoots))) {
4120
4223
  rememberedCssSources = [];
4121
4224
  hasUsableRememberedTailwindSource = false;
4122
4225
  }
4226
+ if (isTemporaryCssAssetFile(outputFile) && hasTailwindGenerationSource(rawSource)) {
4227
+ const resolvedTemporarySource = temporaryCssAssetSourceResolver.resolve(outputFile);
4228
+ if (resolvedTemporarySource) {
4229
+ outputFile = resolveMatchedOutputFileForCurrentAsset(resolvedTemporarySource.sourceFile) ?? resolvedTemporarySource.outputFile;
4230
+ activeViteCssCacheFiles.add(normalizeViteCssCacheKey(outputFile));
4231
+ outputCssHandlerOptions = getCssHandlerOptions(outputFile);
4232
+ outputCssHandlerOptions = {
4233
+ ...outputCssHandlerOptions,
4234
+ isMainChunk: false
4235
+ };
4236
+ resolvedFromTemporaryCssAsset = true;
4237
+ usedConfiguredTailwindV4CssSourceFiles.add(require_source_candidate_scan_signature.normalizeOutputPathKey(resolvedTemporarySource.sourceFile));
4238
+ rememberedCssSources = [{
4239
+ outputFile,
4240
+ rawSource: resolvedTemporarySource.rawSource,
4241
+ sourceFile: resolvedTemporarySource.sourceFile
4242
+ }];
4243
+ hasUsableRememberedTailwindSource = true;
4244
+ debug("source style source inferred from temporary remembered tailwind v4 css source: %s -> %s", outputFile, resolvedTemporarySource.sourceFile);
4245
+ }
4246
+ }
4123
4247
  if (!hasUsableRememberedTailwindSource) {
4124
4248
  const configuredTailwindV4CssSourceEntries = getConfiguredTailwindV4CssSourceEntries();
4125
- const inferredOriginalSourceStyle = resolveSourceStyleSourceFromOutputFile(outputFile, snapshot, outDir, sourceRoot, getSourceCandidateSource, getSourceCandidateSources, configuredTailwindV4CssSourceEntries.map((entry) => [entry.file, entry.source]), debug) ?? (outputFile === file ? void 0 : resolveSourceStyleSourceFromOutputFile(file, snapshot, outDir, sourceRoot, getSourceCandidateSource, getSourceCandidateSources, configuredTailwindV4CssSourceEntries.map((entry) => [entry.file, entry.source]), debug));
4249
+ const inferredOriginalSourceStyle = resolveSourceStyleSourceFromOutputFile(outputFile, snapshot, outDir, sourceRoot, getCssSource, getSourceCandidateSources, configuredTailwindV4CssSourceEntries.map((entry) => [entry.file, entry.source]), debug) ?? (outputFile === file ? void 0 : resolveSourceStyleSourceFromOutputFile(file, snapshot, outDir, sourceRoot, getCssSource, getSourceCandidateSources, configuredTailwindV4CssSourceEntries.map((entry) => [entry.file, entry.source]), debug));
4126
4250
  if (inferredOriginalSourceStyle) {
4127
4251
  outputFile = resolveMatchedOutputFileForCurrentAsset(inferredOriginalSourceStyle.sourceFile) ?? outputFile;
4128
4252
  activeViteCssCacheFiles.add(normalizeViteCssCacheKey(outputFile));
@@ -4131,6 +4255,25 @@ function createGenerateBundleHook(context) {
4131
4255
  ...inferredOriginalSourceStyle,
4132
4256
  outputFile
4133
4257
  }];
4258
+ } else if (isTemporaryCssAssetFile(outputFile) && configuredTailwindV4CssSourceEntries.length > 1) {
4259
+ const resolvedTemporarySource = temporaryCssAssetSourceResolver.resolve(outputFile);
4260
+ if (resolvedTemporarySource) {
4261
+ outputFile = resolveMatchedOutputFileForCurrentAsset(resolvedTemporarySource.sourceFile) ?? resolvedTemporarySource.outputFile;
4262
+ activeViteCssCacheFiles.add(normalizeViteCssCacheKey(outputFile));
4263
+ outputCssHandlerOptions = getCssHandlerOptions(outputFile);
4264
+ outputCssHandlerOptions = {
4265
+ ...outputCssHandlerOptions,
4266
+ isMainChunk: false
4267
+ };
4268
+ resolvedFromTemporaryCssAsset = true;
4269
+ usedConfiguredTailwindV4CssSourceFiles.add(require_source_candidate_scan_signature.normalizeOutputPathKey(resolvedTemporarySource.sourceFile));
4270
+ rememberedCssSources = [{
4271
+ outputFile,
4272
+ rawSource: resolvedTemporarySource.rawSource,
4273
+ sourceFile: resolvedTemporarySource.sourceFile
4274
+ }];
4275
+ debug("source style source inferred from temporary configured tailwind v4 css source: %s -> %s", outputFile, resolvedTemporarySource.sourceFile);
4276
+ }
4134
4277
  } else if (hasTailwindGenerationSource(rawSource) && (originalSource.originalFileNames?.length ?? 0) === 0) {
4135
4278
  const availableConfiguredTailwindV4CssSourceEntries = configuredTailwindV4CssSourceEntries.filter((entry) => !usedConfiguredTailwindV4CssSourceFiles.has(require_source_candidate_scan_signature.normalizeOutputPathKey(entry.file)));
4136
4279
  const configuredGenerationSource = selectTailwindV4GenerationCssSourceForOutput(outputFile, availableConfiguredTailwindV4CssSourceEntries, rawSource, currentSubpackageRoots);
@@ -4182,10 +4325,13 @@ function createGenerateBundleHook(context) {
4182
4325
  const hasSameOutputRememberedTailwindGenerationSource = hasRememberedTailwindGenerationSource && rememberedCssSource != null && require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile);
4183
4326
  const hasStaleViteProcessedCssSource = vitePipelineCssAsset && hasDifferentRememberedCssSource && (hasCurrentTailwindGenerationDirective || hasRememberedApplyDirective || hasRememberedTailwindGenerationSource);
4184
4327
  const generatorSourceFile = vitePipelineCssAsset ? rememberedCssSource?.sourceFile ?? assetSourceFile : assetSourceFile;
4185
- if (vitePipelineCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(require_source_candidate_scan_signature.normalizeOutputPathKey(generatorSourceFile.replace(/[?#].*$/, "")))) usedConfiguredTailwindV4CssSourceFiles.add(require_source_candidate_scan_signature.normalizeOutputPathKey(generatorSourceFile));
4328
+ if (vitePipelineCssAsset && outputCssHandlerOptions.isMainChunk !== true && configuredTailwindV4CssSourceFileKeysForScope.has(require_source_candidate_scan_signature.normalizeOutputPathKey(generatorSourceFile.replace(/[?#].*$/, "")))) {
4329
+ usedConfiguredTailwindV4CssSourceFiles.add(require_source_candidate_scan_signature.normalizeOutputPathKey(generatorSourceFile));
4330
+ temporaryCssAssetSourceResolver.markUsed(generatorSourceFile);
4331
+ }
4186
4332
  const cssHandlerOptions = vitePipelineCssAsset ? {
4187
4333
  ...getCssHandlerOptions(generatorSourceFile),
4188
- isMainChunk: outputCssHandlerOptions.isMainChunk
4334
+ isMainChunk: resolvedFromTemporaryCssAsset ? false : outputCssHandlerOptions.isMainChunk
4189
4335
  } : getCssHandlerOptions(file);
4190
4336
  const generatorCssHandlerOptions = {
4191
4337
  ...cssHandlerOptions,
@@ -4581,7 +4727,7 @@ function createViteCssFinalizerOutputPlugin(context) {
4581
4727
  const applyUtilities = collectUniAppXHarmonyApplyUtilities(bundle);
4582
4728
  const applyStyleSources = collectUniAppXHarmonyApplyStyleSources(bundle);
4583
4729
  if (applyUtilities.size === 0 || applyStyleSources.length === 0) return cssSources;
4584
- const harmonyRuntime = new Set([...runtime, ...applyUtilities]);
4730
+ const harmonyRuntime = /* @__PURE__ */ new Set([...runtime, ...applyUtilities]);
4585
4731
  const harmonyCssHandlerOptions = createCssHandlerOptions(opts, runtimeState.tailwindRuntime.majorVersion, "uni-app-x-harmony-apply.css");
4586
4732
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
4587
4733
  opts,
@@ -4628,7 +4774,7 @@ function createViteCssFinalizerOutputPlugin(context) {
4628
4774
  await runtimeState.readyPromise;
4629
4775
  await waitForSourceCandidateSyncs?.();
4630
4776
  const runtime = getRecordedGeneratorCandidates?.() ?? getSourceCandidates?.() ?? await ensureRuntimeClassSet();
4631
- const collectedGeneratorCandidates = new Set([...runtime, ...getSourceCandidates?.() ?? []]);
4777
+ const collectedGeneratorCandidates = /* @__PURE__ */ new Set([...runtime, ...getSourceCandidates?.() ?? []]);
4632
4778
  const generatorRuntime = require_generator.shouldUseMiniProgramCssBranch(generatorBranch) ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(collectedGeneratorCandidates) : collectedGeneratorCandidates;
4633
4779
  await Promise.all(entries.map(async ([bundleFile, output]) => {
4634
4780
  const file = output.fileName || bundleFile;
@@ -4801,6 +4947,11 @@ function createViteCssMemory(options) {
4801
4947
  if (source != null) touchMapEntry(knownSfcSources, key, source);
4802
4948
  return source;
4803
4949
  };
4950
+ const getKnownCssSource = (file) => {
4951
+ const source = knownCssSources.get(normalizeCssSourceIdentity(file));
4952
+ if (source != null) touchMapEntry(knownCssSources, normalizeCssSourceIdentity(file), source);
4953
+ return source;
4954
+ };
4804
4955
  const rememberCssSource = (entry, cssRuntimeSignature) => {
4805
4956
  const outputKey = require_source_candidate_scan_signature.normalizeOutputPathKey(entry.outputFile);
4806
4957
  const normalizedSourceFile = normalizeCssSourceIdentity(entry.sourceFile);
@@ -4919,6 +5070,7 @@ function createViteCssMemory(options) {
4919
5070
  };
4920
5071
  return {
4921
5072
  getKnownSfcSource,
5073
+ getKnownCssSource,
4922
5074
  getRememberedCssSignature: (file) => rememberedCssSignatureByFile.get(require_source_candidate_scan_signature.normalizeOutputPathKey(file)),
4923
5075
  getRememberedCssSourceEntry: (file) => rememberedCssSources.get(require_source_candidate_scan_signature.normalizeOutputPathKey(file)),
4924
5076
  getRememberedCssSources: () => rememberedCssSources,
@@ -5305,7 +5457,7 @@ function createViteRuntimeClassSet(options) {
5305
5457
  }
5306
5458
  //#endregion
5307
5459
  //#region src/bundlers/vite/serve-css-generation.ts
5308
- const SPECIAL_QUERY_RE = /[?&](?:worker|sharedworker|raw|url)\b/;
5460
+ const SPECIAL_QUERY_RE$1 = /[?&](?:worker|sharedworker|raw|url)\b/;
5309
5461
  const COMMON_JS_PROXY_RE = /\?commonjs-proxy/;
5310
5462
  const VITE_CSS_HMR_MODULE_RE = /\b__vite__updateStyle\s*\(/;
5311
5463
  const VITE_CSS_CONST_RE = /\bconst\s+__vite__css\s*=\s*("(?:\\[\s\S]|[^"])*")/;
@@ -5336,10 +5488,10 @@ function replaceViteCssHmrModuleCss(code, css) {
5336
5488
  return `${code.slice(0, extracted.start)}${encodeJsStringLiteral(css)}${code.slice(extracted.end)}`;
5337
5489
  }
5338
5490
  function isViteServeStyleRequest(id, command) {
5339
- return command === "serve" && require_source_candidate_scan_signature.isSourceStyleRequest(id) && !SPECIAL_QUERY_RE.test(id) && !COMMON_JS_PROXY_RE.test(id);
5491
+ return command === "serve" && require_source_candidate_scan_signature.isSourceStyleRequest(id) && !SPECIAL_QUERY_RE$1.test(id) && !COMMON_JS_PROXY_RE.test(id);
5340
5492
  }
5341
5493
  function isViteServeCssRootRequest(id, command) {
5342
- return command === "serve" && require_source_candidate_scan_signature.isSourceStyleRequest(id) && !SPECIAL_QUERY_RE.test(id) && !COMMON_JS_PROXY_RE.test(id);
5494
+ return command === "serve" && require_source_candidate_scan_signature.isSourceStyleRequest(id) && !SPECIAL_QUERY_RE$1.test(id) && !COMMON_JS_PROXY_RE.test(id);
5343
5495
  }
5344
5496
  function isViteCssHmrModule(code, id, command) {
5345
5497
  return isViteServeStyleRequest(id, command) && VITE_CSS_HMR_MODULE_RE.test(code) && /[?&](?:direct|vue)(?:&|$)/.test(id);
@@ -5381,6 +5533,32 @@ function createViteServeCssGenerationPlugins(options) {
5381
5533
  }];
5382
5534
  }
5383
5535
  //#endregion
5536
+ //#region src/bundlers/vite/serve-js-transform.ts
5537
+ const SPECIAL_QUERY_RE = /[?&](?:worker|sharedworker|raw|url)\b/;
5538
+ function isViteServeJsRequest(id, command) {
5539
+ if (command !== "serve" || SPECIAL_QUERY_RE.test(id) || require_source_candidate_scan_signature.isCSSRequest(id) || require_source_candidate_scan_signature.isHTMLRequest(id)) return false;
5540
+ return /\.(?:[cm]?[jt]sx?|vue|svelte)(?:$|\?)/.test(id);
5541
+ }
5542
+ function createViteServeJsTransformPlugin(options) {
5543
+ return {
5544
+ name: `${require_context.vitePluginName}:js:serve`,
5545
+ apply: "serve",
5546
+ enforce: "post",
5547
+ async transform(code, id) {
5548
+ if (!options.shouldTransform() || !isViteServeJsRequest(id, options.getCommand())) return;
5549
+ const handlerOptions = options.createHandlerOptions(id);
5550
+ if (require_context.shouldSkipJsTransform(code, handlerOptions)) return;
5551
+ const runtime = await options.transformRuntime();
5552
+ const { code: transformed } = await options.jsHandler(code, runtime, handlerOptions);
5553
+ if (transformed === code) return;
5554
+ return {
5555
+ code: transformed,
5556
+ map: null
5557
+ };
5558
+ }
5559
+ };
5560
+ }
5561
+ //#endregion
5384
5562
  //#region src/bundlers/vite/tailwind-basedir.ts
5385
5563
  const PACKAGE_JSON_FILE = "package.json";
5386
5564
  function resolveImplicitTailwindcssBasedirFromViteRoot(root) {
@@ -5475,6 +5653,7 @@ function WeappTailwindcss(options = {}) {
5475
5653
  if (autoCssSourceContent.get(sourceFile) === sourceCss) return;
5476
5654
  autoCssSourceContent.set(sourceFile, sourceCss);
5477
5655
  await syncTailwindCssSourceCandidates(sourceFile, sourceCss);
5656
+ cssMemory.refreshRememberedCssSourceBySourceFile(sourceFile, sourceCss);
5478
5657
  const transientSource = {
5479
5658
  file: sourceFile,
5480
5659
  base: sourceBase,
@@ -5601,7 +5780,7 @@ function WeappTailwindcss(options = {}) {
5601
5780
  root
5602
5781
  }];
5603
5782
  const normalizedRoot = node_path.default.resolve(root);
5604
- const seenRoots = new Set([normalizedRoot]);
5783
+ const seenRoots = /* @__PURE__ */ new Set([normalizedRoot]);
5605
5784
  const basedir = opts.tailwindcssBasedir ? node_path.default.resolve(opts.tailwindcssBasedir) : void 0;
5606
5785
  if (basedir && !seenRoots.has(basedir)) {
5607
5786
  roots.push({ root: basedir });
@@ -5784,6 +5963,10 @@ function WeappTailwindcss(options = {}) {
5784
5963
  ...resolveUniAppXNativeCssHandlerOptions(opts)
5785
5964
  })
5786
5965
  });
5966
+ const serveJsHandlerOptions = createJsHandlerOptionsFactory({
5967
+ getMajorVersion: () => runtimeState.tailwindRuntime.majorVersion,
5968
+ moduleGraph: void 0
5969
+ });
5787
5970
  const generateTailwindCssForVitePipeline = async (id, code, hookContext) => {
5788
5971
  if (!shouldOwnTailwindGeneration) return;
5789
5972
  await runtimeState.readyPromise;
@@ -5802,7 +5985,11 @@ function WeappTailwindcss(options = {}) {
5802
5985
  ...transformCssHandlerOptions.getCssHandlerOptions(file),
5803
5986
  isMainChunk: outputCssHandlerOptions.isMainChunk
5804
5987
  };
5805
- const transientCssSource = transientAutoCssSources.get(file);
5988
+ const transientCssSource = transientAutoCssSources.get(file) ?? (require_v4_engine.hasTailwindRootDirectives(code, { importFallback: generatorOptions.importFallback }) || require_v4_engine.hasTailwindSourceDirectives(code, { importFallback: generatorOptions.importFallback }) || require_v4_engine.hasTailwindApplyDirective(code) ? {
5989
+ base: node_path.default.dirname(node_path.default.resolve(file)),
5990
+ css: code,
5991
+ file: node_path.default.resolve(file)
5992
+ } : void 0);
5806
5993
  const shouldDeferEmptyScopedCssSource = transientCssSource == null && !(opts.appType === "uni-app-x" && !cssHandlerOptions.isMainChunk && require_v4_engine.hasTailwindApplyDirective(code));
5807
5994
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
5808
5995
  opts,
@@ -5890,6 +6077,7 @@ function WeappTailwindcss(options = {}) {
5890
6077
  getRememberedCssSources: cssMemory.getRememberedCssSources,
5891
6078
  getRememberedCssSignature: cssMemory.getRememberedCssSignature,
5892
6079
  setRememberedCssSignature: cssMemory.setRememberedCssSignature,
6080
+ getKnownCssSource: cssMemory.getKnownCssSource,
5893
6081
  getKnownSfcSource: cssMemory.getKnownSfcSource,
5894
6082
  recordGeneratorCandidates,
5895
6083
  pruneViteCssCaches,
@@ -5997,6 +6185,13 @@ function WeappTailwindcss(options = {}) {
5997
6185
  onTailwindRootCss: (id, code) => registerAutoCssSource(id, code),
5998
6186
  shouldGenerate: () => shouldOwnTailwindGeneration
5999
6187
  }),
6188
+ createViteServeJsTransformPlugin({
6189
+ createHandlerOptions: serveJsHandlerOptions,
6190
+ getCommand: () => resolvedConfig?.command,
6191
+ jsHandler,
6192
+ shouldTransform: () => shouldOwnTailwindGeneration && !generatorBranch.isWeb,
6193
+ transformRuntime: ensureRuntimeClassSet
6194
+ }),
6000
6195
  {
6001
6196
  name: `${require_context.vitePluginName}:post`,
6002
6197
  enforce: "post",
package/dist/vite.js CHANGED
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_vite = require("./vite-Da4uEG_u.js");
2
+ const require_vite = require("./vite-CkVMSDDp.js");
3
3
  exports.WeappTailwindcss = require_vite.WeappTailwindcss;
4
4
  exports.weappTailwindcss = require_vite.WeappTailwindcss;
package/dist/vite.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as WeappTailwindcss } from "./vite-CXmUiI9f.mjs";
1
+ import { t as WeappTailwindcss } from "./vite-5Wn0PIzJ.mjs";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss };