weapp-tailwindcss 5.1.1 → 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 (69) hide show
  1. package/README.en.md +2 -0
  2. package/README.md +2 -0
  3. package/dist/bundlers/gulp/index.d.ts +3 -3
  4. package/dist/bundlers/rspack/index.d.ts +20 -0
  5. package/dist/bundlers/shared/generator-css/source-resolver.d.ts +1 -1
  6. package/dist/bundlers/vite/css-memory.d.ts +1 -0
  7. package/dist/bundlers/vite/generate-bundle/css-output-helpers.d.ts +1 -1
  8. package/dist/bundlers/vite/generate-bundle/source-candidate-scope.d.ts +1 -1
  9. package/dist/bundlers/vite/generate-bundle/temporary-css-assets.d.ts +12 -0
  10. package/dist/bundlers/vite/generate-bundle/types.d.ts +1 -0
  11. package/dist/bundlers/vite/serve-js-transform.d.ts +11 -0
  12. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +4 -1
  13. package/dist/cli.js +8 -8
  14. package/dist/cli.mjs +8 -8
  15. package/dist/{context-DlpKD7aN.mjs → context-B07Vf584.mjs} +34 -34
  16. package/dist/{context-B6hVF7dr.js → context-D75pwtBW.js} +43 -43
  17. package/dist/core.js +1 -1
  18. package/dist/core.mjs +1 -1
  19. package/dist/css-macro/postcss.js +2 -2
  20. package/dist/css-macro.js +3 -3
  21. package/dist/{defaults-CmFBmxsr.js → defaults-DQhgnnn-.js} +1 -1
  22. package/dist/defaults.js +1 -1
  23. package/dist/framework/index.d.ts +7 -2
  24. package/dist/framework.js +39 -8
  25. package/dist/framework.mjs +33 -6
  26. package/dist/generator/options.d.ts +3 -1
  27. package/dist/{generator-6oMJtTDO.js → generator-CV_0irKO.js} +4 -2
  28. package/dist/{generator-CjzBK7h-.mjs → generator-DNs6ekoC.mjs} +3 -1
  29. package/dist/generator.js +2 -2
  30. package/dist/generator.mjs +2 -2
  31. package/dist/{gulp-BtGq6LP9.js → gulp-B_u8NjQL.js} +9 -9
  32. package/dist/{gulp-DNU10Vtc.mjs → gulp-aQMZ0M7c.mjs} +4 -4
  33. package/dist/gulp.js +1 -1
  34. package/dist/gulp.mjs +1 -1
  35. package/dist/{hmr-timing-B0KuWDjV.mjs → hmr-timing-DLYQTCDb.mjs} +40 -31
  36. package/dist/{hmr-timing-CegXR9O4.js → hmr-timing-DOoHun3i.js} +42 -33
  37. package/dist/index.js +9 -4
  38. package/dist/index.mjs +7 -6
  39. package/dist/postcss-html-transform.js +2 -2
  40. package/dist/postcss.js +2 -2
  41. package/dist/postcss.mjs +2 -2
  42. package/dist/presets/shared.d.ts +4 -0
  43. package/dist/presets.js +32 -16
  44. package/dist/presets.mjs +28 -14
  45. package/dist/reset.js +2 -2
  46. package/dist/rspack.d.ts +3 -0
  47. package/dist/rspack.js +68 -0
  48. package/dist/rspack.mjs +62 -0
  49. package/dist/{source-candidate-scan-signature-BKYb9jxa.js → source-candidate-scan-signature-DzwebZrf.js} +6 -6
  50. package/dist/{source-candidate-scan-signature-B5af2Ahe.mjs → source-candidate-scan-signature-pS87mdHZ.mjs} +3 -3
  51. package/dist/{tailwindcss-dbrbY4cd.js → tailwindcss-BSCvrs1p.js} +8 -8
  52. package/dist/{tailwindcss-B5mRo0-M.mjs → tailwindcss-BwV3_Ryc.mjs} +3 -3
  53. package/dist/{transform-fRBeuuK-.mjs → transform-Clj7R818.mjs} +19 -19
  54. package/dist/{transform-vLwZpiTE.js → transform-fin-OTVD.js} +47 -47
  55. package/dist/{utils-BCa37Wqj.js → utils-D3h8j7Mk.js} +2 -2
  56. package/dist/{v4-engine-C3qSwQ-e.mjs → v4-engine-BklH3CpJ.mjs} +5 -5
  57. package/dist/{v4-engine-ON_oSLfO.js → v4-engine-CKbS27-o.js} +10 -10
  58. package/dist/{vite-CWRooooa.mjs → vite-5Wn0PIzJ.mjs} +244 -45
  59. package/dist/{vite-w-RkgaTY.js → vite-CkVMSDDp.js} +249 -50
  60. package/dist/vite.js +1 -1
  61. package/dist/vite.mjs +1 -1
  62. package/dist/weapp-tw-css-import-rewrite-loader.js +71 -34
  63. package/dist/weapp-tw-runtime-classset-loader.js +2 -2
  64. package/dist/{webpack-8PaV1gG3.mjs → webpack-DEag6ueE.mjs} +66 -18
  65. package/dist/{webpack-CGgBOx9l.js → webpack-hvSFaicc.js} +71 -23
  66. package/dist/webpack.js +1 -1
  67. package/dist/webpack.mjs +1 -1
  68. package/package.json +10 -5
  69. /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-6oMJtTDO.js");
5
- const require_utils = require("./utils-BCa37Wqj.js");
6
- const require_context = require("./context-B6hVF7dr.js");
7
- const require_tailwindcss = require("./tailwindcss-dbrbY4cd.js");
8
- const require_hmr_timing = require("./hmr-timing-CegXR9O4.js");
9
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BKYb9jxa.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-vLwZpiTE.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);
@@ -1170,8 +1192,12 @@ function resolveCssBundleOutputFile(options) {
1170
1192
  if (outputFile === file && isRootMiniProgramStyleOutputFile$1(file) && shouldMoveRootMiniProgramStyleToImportShellOrigin(opts.appType)) outputFile = createRootMiniProgramOriginStyleOutputFile(file);
1171
1193
  return outputFile;
1172
1194
  }
1173
- function shouldSkipRawSourceStyleAsset(outputFile, file, rawSource) {
1174
- return rawSource.trim().length > 0 && outputFile !== file && !canProcessViteSourceStyleAsCss(rawSource, file);
1195
+ function shouldSkipRawSourceStyleAsset(outputFile, file, rawSource, assetSourceFile = file, cssMatcher) {
1196
+ const source = rawSource.trim();
1197
+ if (source.length === 0) return false;
1198
+ if (canProcessViteSourceStyleAsCss(source, file)) return false;
1199
+ const isKnownStyleSource = require_source_candidate_scan_signature.isSourceStyleRequest(assetSourceFile) || cssMatcher?.(assetSourceFile) === true;
1200
+ return outputFile !== file || !isKnownStyleSource;
1175
1201
  }
1176
1202
  function resolveOutputFileFromMatchedCssSource(options) {
1177
1203
  const { bundleFiles, defaultStyleOutputExtension, isWebGeneratorTarget, opts, rootDir, shouldPreserveAppCssExtension, sourceFile, sourceRoot } = options;
@@ -1938,7 +1964,7 @@ function collectMiniProgramSubpackageSourceEntries(snapshot, subpackageRoots, so
1938
1964
  const sourceEntries = [];
1939
1965
  for (const entry of snapshot.entries) {
1940
1966
  if (entry.output.type !== "chunk" || !isSubpackageOutputFile(entry.file, subpackageRoots)) continue;
1941
- const matchedSubpackageRoot = [...subpackageRoots].find((root) => isSubpackageOutputFile(entry.file, new Set([root])));
1967
+ const matchedSubpackageRoot = [...subpackageRoots].find((root) => isSubpackageOutputFile(entry.file, /* @__PURE__ */ new Set([root])));
1942
1968
  if (!matchedSubpackageRoot) continue;
1943
1969
  for (const moduleId of collectChunkModuleIds$2(entry.output)) {
1944
1970
  if (!node_path.default.isAbsolute(moduleId.replace(/[?#].*$/, ""))) continue;
@@ -2109,6 +2135,14 @@ function shouldInjectViteProcessedCssResult(opts, targetFile, sourceFile, option
2109
2135
  const targetFileKey = require_source_candidate_scan_signature.normalizeOutputPathKey(targetFile);
2110
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));
2111
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
+ }
2112
2146
  function isRootStyleOutputFile(file) {
2113
2147
  const normalized = require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
2114
2148
  return isCssOutputFile(normalized) && !normalized.includes("/");
@@ -2221,7 +2255,7 @@ function collectViteProcessedCssAssetResults(bundle, options) {
2221
2255
  options.markCssAssetProcessed?.(output, file);
2222
2256
  options.recordCssAssetResult?.(file, nextCss);
2223
2257
  const resolvedOutputFile = options.resolveViteProcessedCssOutputFile?.(file) ?? file;
2224
- 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);
2225
2259
  options.recordViteProcessedCssAssetResult?.(file, nextCss, {
2226
2260
  injectIntoMain: shouldReplayIntoMainCss || void 0,
2227
2261
  outputFile: resolvedOutputFile
@@ -2546,7 +2580,7 @@ async function handleUniAppXPostCssTasks(options) {
2546
2580
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
2547
2581
  opts,
2548
2582
  runtimeState,
2549
- runtime: new Set([...generatorRuntime, ...applyUtilities]),
2583
+ runtime: /* @__PURE__ */ new Set([...generatorRuntime, ...applyUtilities]),
2550
2584
  rawSource: createUniAppXHarmonyApplyGeneratorSource(applyStyleSources, applyUtilities),
2551
2585
  file: outputFile,
2552
2586
  outputFile,
@@ -2795,7 +2829,7 @@ async function finalizeGenerateBundle(options) {
2795
2829
  pruneLastCssResults(lastCssResultByFile, lastCssSourceHashByFile, activeViteCssCacheFiles);
2796
2830
  pruneViteCssCaches?.({
2797
2831
  activeFiles: activeViteCssCacheFiles,
2798
- 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)])
2799
2833
  });
2800
2834
  }
2801
2835
  recordTimingDetail("state.update", stateUpdateStart);
@@ -2896,7 +2930,7 @@ function processHtmlBundleEntry(options) {
2896
2930
  const { cache, context, debug, dynamicRetryCandidates, file, metrics, onUpdate, originalEntrySource, originalSource, rememberProcessCacheKey, resolveCurrentSourceCandidateSource, tasks, templateHandler, timeTask, transformRuntime, transformRuntimeSignature } = options;
2897
2931
  const rawSource = resolveCurrentSourceCandidateSource(file) ?? originalEntrySource;
2898
2932
  const currentRawDynamicCandidates = collectUnescapedDynamicCandidates(rawSource);
2899
- const templateRuntime = currentRawDynamicCandidates.length > 0 ? new Set([...transformRuntime, ...currentRawDynamicCandidates]) : transformRuntime;
2933
+ const templateRuntime = currentRawDynamicCandidates.length > 0 ? /* @__PURE__ */ new Set([...transformRuntime, ...currentRawDynamicCandidates]) : transformRuntime;
2900
2934
  const templateRuntimeSignature = templateRuntime === transformRuntime ? transformRuntimeSignature : require_source_candidate_scan_signature.createCandidateSignature(templateRuntime);
2901
2935
  const htmlProcessHash = `${cache.computeHash(rawSource)}:${cache.computeHash(require_source_candidate_scan_signature.createRuntimeAffectingSourceSignature(rawSource, "html"))}:${templateRuntimeSignature}`;
2902
2936
  const cacheKey = `${file}:html:${htmlProcessHash}`;
@@ -2922,7 +2956,7 @@ function processHtmlBundleEntry(options) {
2922
2956
  if (unresolvedDynamicCandidates.length > 0) {
2923
2957
  const fullRuntimeSet = await context.ensureRuntimeClassSet(true);
2924
2958
  const allowedRetryCandidates = fullRuntimeSet.size === 0 ? unresolvedDynamicCandidates : unresolvedDynamicCandidates.filter((candidate) => dynamicRetryCandidates.has(candidate) || fullRuntimeSet.has(candidate));
2925
- retryRuntimeSet = new Set([...fullRuntimeSet, ...allowedRetryCandidates]);
2959
+ retryRuntimeSet = /* @__PURE__ */ new Set([...fullRuntimeSet, ...allowedRetryCandidates]);
2926
2960
  unresolvedDynamicCandidates = unresolvedDynamicCandidates.filter((candidate) => retryRuntimeSet?.has(candidate) === true);
2927
2961
  }
2928
2962
  if (retryRuntimeSet && unresolvedDynamicCandidates.length > 0) {
@@ -3137,6 +3171,15 @@ function createRememberedCssRuntimeSignature(cssRuntimeSignature, cssRuntimeAffe
3137
3171
  function normalizeRememberedSourceIdentity(file) {
3138
3172
  return require_source_candidate_scan_signature.normalizeOutputPathKey(file.replace(/[?#].*$/, ""));
3139
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
+ }
3140
3183
  function findRememberedCssSources(sources, outputFile, file, originalSource, outputRoot, sourceRoot) {
3141
3184
  if (!sources) return [];
3142
3185
  const rememberedSources = [...sources].map(([, remembered]) => remembered);
@@ -3144,7 +3187,7 @@ function findRememberedCssSources(sources, outputFile, file, originalSource, out
3144
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)));
3145
3188
  if (markerFiles.size > 0) {
3146
3189
  const markerMatched = rememberedSources.filter((remembered) => markerFiles.has(normalizeRememberedSourceIdentity(remembered.sourceFile)));
3147
- if (markerMatched.length > 0) return markerMatched;
3190
+ if (markerMatched.length > 0) return selectBestRememberedCssSourceMatches(markerMatched, outputFile, outputRoot, sourceRoot);
3148
3191
  }
3149
3192
  const originalFiles = [
3150
3193
  file,
@@ -3156,12 +3199,8 @@ function findRememberedCssSources(sources, outputFile, file, originalSource, out
3156
3199
  const outputMatched = rememberedSources.filter((remembered) => require_source_candidate_scan_signature.normalizeOutputPathKey(remembered.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile));
3157
3200
  if (outputMatched.length > 0) return outputMatched;
3158
3201
  if (!require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source) && !hasTailwindGenerationSource(source)) return [];
3159
- const scoredMatches = rememberedSources.map((remembered) => ({
3160
- remembered,
3161
- score: Math.max(scoreMatchingStyleFileBase(outputFile, remembered.sourceFile, outputRoot, sourceRoot), scoreMatchingStyleFileBase(outputFile, remembered.outputFile, outputRoot, sourceRoot))
3162
- })).filter((match) => match.score > 0).sort((a, b) => b.score - a.score);
3163
- const bestScore = scoredMatches[0]?.score;
3164
- 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;
3165
3204
  }
3166
3205
  function mergeRememberedCssSources(sources, outputFile) {
3167
3206
  if (sources.length <= 1) return sources[0];
@@ -3396,7 +3435,7 @@ function createSubpackageSourceCandidateScope(options) {
3396
3435
  const isMainPackageStyleOutputFile = (file) => options.subpackageRoots != null && !isSubpackageOutputFile(file, options.subpackageRoots);
3397
3436
  const resolveSubpackageOutputSourceEntries = (outputFile) => {
3398
3437
  if (!options.subpackageRoots) return;
3399
- const matchedRoots = [...options.subpackageRoots].filter((root) => isSubpackageOutputFile(outputFile, new Set([root])));
3438
+ const matchedRoots = [...options.subpackageRoots].filter((root) => isSubpackageOutputFile(outputFile, /* @__PURE__ */ new Set([root])));
3400
3439
  if (matchedRoots.length !== 1) return;
3401
3440
  const root = matchedRoots[0];
3402
3441
  if (!root) return;
@@ -3457,7 +3496,7 @@ function createSubpackageSourceCandidateScope(options) {
3457
3496
  excludeEntries: [...filterOptions?.excludeEntries ?? [], ...subpackageSourceExcludeEntries]
3458
3497
  }) ?? /* @__PURE__ */ new Map();
3459
3498
  };
3460
- 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);
3461
3500
  return {
3462
3501
  createScopedSourceCandidateGetter,
3463
3502
  createScopedSourceCandidateSourceGetter,
@@ -3540,7 +3579,7 @@ function scoreConfiguredTailwindV4SourceForRawSource(rawSource, entrySource) {
3540
3579
  }
3541
3580
  function resolveSubpackageRootForFile(file, subpackageRoots) {
3542
3581
  if (!file || !subpackageRoots) return;
3543
- return [...subpackageRoots].find((root) => isSubpackageOutputFile(file, new Set([root])));
3582
+ return [...subpackageRoots].find((root) => isSubpackageOutputFile(file, /* @__PURE__ */ new Set([root])));
3544
3583
  }
3545
3584
  function isSameSubpackageScope(outputFile, sourceFile, subpackageRoots) {
3546
3585
  return resolveSubpackageRootForFile(outputFile, subpackageRoots) === resolveSubpackageRootForFile(sourceFile, subpackageRoots);
@@ -3563,7 +3602,7 @@ function selectTailwindV4GenerationCssSourceForOutput(outputFile, entries, rawSo
3563
3602
  const outputMatchesSubpackage = isSubpackageOutputFile(outputFile, subpackageRoots);
3564
3603
  const sourceMatchesSubpackage = isSubpackageOutputFile(entry.file, subpackageRoots);
3565
3604
  if (!outputMatchesSubpackage) return !sourceMatchesSubpackage;
3566
- 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])));
3567
3606
  }) : generationSources;
3568
3607
  const explicitSources = scopedSources.filter((entry) => /@(?:config|source|plugin|custom-variant|theme|utility|variant|apply)\b/.test(entry.source));
3569
3608
  const candidates = explicitSources.length === 1 ? explicitSources : scopedSources;
@@ -3571,6 +3610,44 @@ function selectTailwindV4GenerationCssSourceForOutput(outputFile, entries, rawSo
3571
3610
  return selectByRawSourceFingerprint(candidates);
3572
3611
  }
3573
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
3574
3651
  //#region src/bundlers/vite/generate-bundle/timing.ts
3575
3652
  function createBundleTaskTimer(recordTimingDetail) {
3576
3653
  return async (name, task) => {
@@ -3774,12 +3851,13 @@ function createGenerateBundleHook(context) {
3774
3851
  });
3775
3852
  return async function generateBundle(_opt, bundle) {
3776
3853
  const addWatchFile = (id) => this.addWatchFile?.(id);
3777
- 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;
3778
3855
  const getBundlerSfcSource = (sourceFile) => {
3779
3856
  const code = this.getModuleInfo?.(sourceFile)?.code;
3780
3857
  return typeof code === "string" && hasSfcStyleSources(code) ? code : void 0;
3781
3858
  };
3782
3859
  const getSfcSource = (sourceFile) => getBundlerSfcSource(sourceFile) ?? getKnownSfcSource?.(sourceFile);
3860
+ const getCssSource = (sourceFile) => getKnownCssSource?.(sourceFile) ?? getSourceCandidateSource?.(sourceFile);
3783
3861
  const { cache, onEnd, onStart, onUpdate, styleHandler, templateHandler, jsHandler, uniAppX } = opts;
3784
3862
  const resolvedConfig = getResolvedConfig();
3785
3863
  const uniUtsPlatform = require_utils.resolveUniUtsPlatform();
@@ -3915,7 +3993,7 @@ function createGenerateBundleHook(context) {
3915
3993
  refreshBySource: forceV4RuntimeRefreshBySource
3916
3994
  }) : await context.ensureRuntimeClassSet(envFlags.forceRuntimeRefreshByEnv);
3917
3995
  const shouldFilterTailwindV4MiniProgramCandidates = require_generator.shouldUseMiniProgramCssBranch(generatorBranch);
3918
- const collectedGeneratorCandidates = new Set([...runtime, ...sourceCandidates]);
3996
+ const collectedGeneratorCandidates = /* @__PURE__ */ new Set([...runtime, ...sourceCandidates]);
3919
3997
  const filteredGeneratorCandidates = shouldFilterTailwindV4MiniProgramCandidates ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(collectedGeneratorCandidates) : collectedGeneratorCandidates;
3920
3998
  const filteredSourceCandidates = shouldFilterTailwindV4MiniProgramCandidates ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(sourceCandidates) : sourceCandidates;
3921
3999
  const transformRuntime = shouldFilterTailwindV4MiniProgramCandidates ? new Set(runtime) : new Set(filteredGeneratorCandidates);
@@ -3951,7 +4029,7 @@ function createGenerateBundleHook(context) {
3951
4029
  const generatorCandidatesChanged = state.generatorCandidateSignature !== generatorCandidateSignature;
3952
4030
  const cssExtensionByStem = collectCssExtensionByStem(bundleFiles, opts.cssMatcher);
3953
4031
  const jsImportedCssFiles = collectJsImportedCssFiles(snapshot);
3954
- const runtimeLinkedCssFiles = new Set([...collectRuntimeLinkedCssFiles(snapshot, cssExtensionByStem, defaultStyleOutputExtension), ...jsImportedCssFiles]);
4032
+ const runtimeLinkedCssFiles = /* @__PURE__ */ new Set([...collectRuntimeLinkedCssFiles(snapshot, cssExtensionByStem, defaultStyleOutputExtension), ...jsImportedCssFiles]);
3955
4033
  rememberRuntimeLinkedCssSources({
3956
4034
  bundleFiles,
3957
4035
  debug,
@@ -3970,8 +4048,32 @@ function createGenerateBundleHook(context) {
3970
4048
  snapshot,
3971
4049
  sourceRoot
3972
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
+ ]);
3973
4075
  recordGeneratorCandidates?.(generatorRuntime);
3974
- const dynamicRetryCandidates = new Set([
4076
+ const dynamicRetryCandidates = /* @__PURE__ */ new Set([
3975
4077
  ...sourceCandidates,
3976
4078
  ...generatorRuntime,
3977
4079
  ...transformRuntime
@@ -4063,13 +4165,14 @@ function createGenerateBundleHook(context) {
4063
4165
  resolveOutputFileFromMatchedCssSource: resolveMatchedCssSourceOutputFile
4064
4166
  });
4065
4167
  activeViteCssCacheFiles.add(normalizeViteCssCacheKey(outputFile));
4066
- if (shouldSkipRawSourceStyleAsset(outputFile, file, rawSource)) {
4168
+ if (shouldSkipRawSourceStyleAsset(outputFile, file, rawSource, assetSourceFile, opts.cssMatcher)) {
4067
4169
  delete bundle[file];
4068
4170
  debug("css skip raw source style asset: %s -> %s", file, outputFile);
4069
4171
  continue;
4070
4172
  }
4071
4173
  const hasViteProcessedCssRecord = getViteProcessedCssAssetResult?.(file) != null;
4072
4174
  const viteProcessedCssAsset = isViteProcessedCssAsset?.(originalSource, file) === true || hasViteProcessedCssRecord;
4175
+ let resolvedFromTemporaryCssAsset = false;
4073
4176
  const applyCssResult = (source) => {
4074
4177
  applyCssResultToBundle({
4075
4178
  appType: opts.appType,
@@ -4111,14 +4214,39 @@ function createGenerateBundleHook(context) {
4111
4214
  const rememberedSourcesBelongToInferredSfc = rememberedCssSources.length > 0 && rememberedCssSources.every((remembered) => normalizeSfcSourceFileForCompare(remembered.sourceFile) === inferredSourceFile);
4112
4215
  if (!hasUsableRememberedTailwindSource || rememberedSourcesBelongToInferredSfc) rememberedCssSources = [inferredSfcStyleSource];
4113
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
+ }
4114
4221
  let outputCssHandlerOptions = getCssHandlerOptions(outputFile);
4115
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))) {
4116
4223
  rememberedCssSources = [];
4117
4224
  hasUsableRememberedTailwindSource = false;
4118
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
+ }
4119
4247
  if (!hasUsableRememberedTailwindSource) {
4120
4248
  const configuredTailwindV4CssSourceEntries = getConfiguredTailwindV4CssSourceEntries();
4121
- 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));
4122
4250
  if (inferredOriginalSourceStyle) {
4123
4251
  outputFile = resolveMatchedOutputFileForCurrentAsset(inferredOriginalSourceStyle.sourceFile) ?? outputFile;
4124
4252
  activeViteCssCacheFiles.add(normalizeViteCssCacheKey(outputFile));
@@ -4127,6 +4255,25 @@ function createGenerateBundleHook(context) {
4127
4255
  ...inferredOriginalSourceStyle,
4128
4256
  outputFile
4129
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
+ }
4130
4277
  } else if (hasTailwindGenerationSource(rawSource) && (originalSource.originalFileNames?.length ?? 0) === 0) {
4131
4278
  const availableConfiguredTailwindV4CssSourceEntries = configuredTailwindV4CssSourceEntries.filter((entry) => !usedConfiguredTailwindV4CssSourceFiles.has(require_source_candidate_scan_signature.normalizeOutputPathKey(entry.file)));
4132
4279
  const configuredGenerationSource = selectTailwindV4GenerationCssSourceForOutput(outputFile, availableConfiguredTailwindV4CssSourceEntries, rawSource, currentSubpackageRoots);
@@ -4178,10 +4325,13 @@ function createGenerateBundleHook(context) {
4178
4325
  const hasSameOutputRememberedTailwindGenerationSource = hasRememberedTailwindGenerationSource && rememberedCssSource != null && require_source_candidate_scan_signature.normalizeOutputPathKey(rememberedCssSource.outputFile) === require_source_candidate_scan_signature.normalizeOutputPathKey(outputFile);
4179
4326
  const hasStaleViteProcessedCssSource = vitePipelineCssAsset && hasDifferentRememberedCssSource && (hasCurrentTailwindGenerationDirective || hasRememberedApplyDirective || hasRememberedTailwindGenerationSource);
4180
4327
  const generatorSourceFile = vitePipelineCssAsset ? rememberedCssSource?.sourceFile ?? assetSourceFile : assetSourceFile;
4181
- 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
+ }
4182
4332
  const cssHandlerOptions = vitePipelineCssAsset ? {
4183
4333
  ...getCssHandlerOptions(generatorSourceFile),
4184
- isMainChunk: outputCssHandlerOptions.isMainChunk
4334
+ isMainChunk: resolvedFromTemporaryCssAsset ? false : outputCssHandlerOptions.isMainChunk
4185
4335
  } : getCssHandlerOptions(file);
4186
4336
  const generatorCssHandlerOptions = {
4187
4337
  ...cssHandlerOptions,
@@ -4577,7 +4727,7 @@ function createViteCssFinalizerOutputPlugin(context) {
4577
4727
  const applyUtilities = collectUniAppXHarmonyApplyUtilities(bundle);
4578
4728
  const applyStyleSources = collectUniAppXHarmonyApplyStyleSources(bundle);
4579
4729
  if (applyUtilities.size === 0 || applyStyleSources.length === 0) return cssSources;
4580
- const harmonyRuntime = new Set([...runtime, ...applyUtilities]);
4730
+ const harmonyRuntime = /* @__PURE__ */ new Set([...runtime, ...applyUtilities]);
4581
4731
  const harmonyCssHandlerOptions = createCssHandlerOptions(opts, runtimeState.tailwindRuntime.majorVersion, "uni-app-x-harmony-apply.css");
4582
4732
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
4583
4733
  opts,
@@ -4624,7 +4774,7 @@ function createViteCssFinalizerOutputPlugin(context) {
4624
4774
  await runtimeState.readyPromise;
4625
4775
  await waitForSourceCandidateSyncs?.();
4626
4776
  const runtime = getRecordedGeneratorCandidates?.() ?? getSourceCandidates?.() ?? await ensureRuntimeClassSet();
4627
- const collectedGeneratorCandidates = new Set([...runtime, ...getSourceCandidates?.() ?? []]);
4777
+ const collectedGeneratorCandidates = /* @__PURE__ */ new Set([...runtime, ...getSourceCandidates?.() ?? []]);
4628
4778
  const generatorRuntime = require_generator.shouldUseMiniProgramCssBranch(generatorBranch) ? require_v4_engine.filterUnsupportedMiniProgramTailwindV4Candidates(collectedGeneratorCandidates) : collectedGeneratorCandidates;
4629
4779
  await Promise.all(entries.map(async ([bundleFile, output]) => {
4630
4780
  const file = output.fileName || bundleFile;
@@ -4797,6 +4947,11 @@ function createViteCssMemory(options) {
4797
4947
  if (source != null) touchMapEntry(knownSfcSources, key, source);
4798
4948
  return source;
4799
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
+ };
4800
4955
  const rememberCssSource = (entry, cssRuntimeSignature) => {
4801
4956
  const outputKey = require_source_candidate_scan_signature.normalizeOutputPathKey(entry.outputFile);
4802
4957
  const normalizedSourceFile = normalizeCssSourceIdentity(entry.sourceFile);
@@ -4915,6 +5070,7 @@ function createViteCssMemory(options) {
4915
5070
  };
4916
5071
  return {
4917
5072
  getKnownSfcSource,
5073
+ getKnownCssSource,
4918
5074
  getRememberedCssSignature: (file) => rememberedCssSignatureByFile.get(require_source_candidate_scan_signature.normalizeOutputPathKey(file)),
4919
5075
  getRememberedCssSourceEntry: (file) => rememberedCssSources.get(require_source_candidate_scan_signature.normalizeOutputPathKey(file)),
4920
5076
  getRememberedCssSources: () => rememberedCssSources,
@@ -5301,7 +5457,7 @@ function createViteRuntimeClassSet(options) {
5301
5457
  }
5302
5458
  //#endregion
5303
5459
  //#region src/bundlers/vite/serve-css-generation.ts
5304
- const SPECIAL_QUERY_RE = /[?&](?:worker|sharedworker|raw|url)\b/;
5460
+ const SPECIAL_QUERY_RE$1 = /[?&](?:worker|sharedworker|raw|url)\b/;
5305
5461
  const COMMON_JS_PROXY_RE = /\?commonjs-proxy/;
5306
5462
  const VITE_CSS_HMR_MODULE_RE = /\b__vite__updateStyle\s*\(/;
5307
5463
  const VITE_CSS_CONST_RE = /\bconst\s+__vite__css\s*=\s*("(?:\\[\s\S]|[^"])*")/;
@@ -5332,10 +5488,10 @@ function replaceViteCssHmrModuleCss(code, css) {
5332
5488
  return `${code.slice(0, extracted.start)}${encodeJsStringLiteral(css)}${code.slice(extracted.end)}`;
5333
5489
  }
5334
5490
  function isViteServeStyleRequest(id, command) {
5335
- 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);
5336
5492
  }
5337
5493
  function isViteServeCssRootRequest(id, command) {
5338
- 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);
5339
5495
  }
5340
5496
  function isViteCssHmrModule(code, id, command) {
5341
5497
  return isViteServeStyleRequest(id, command) && VITE_CSS_HMR_MODULE_RE.test(code) && /[?&](?:direct|vue)(?:&|$)/.test(id);
@@ -5377,6 +5533,32 @@ function createViteServeCssGenerationPlugins(options) {
5377
5533
  }];
5378
5534
  }
5379
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
5380
5562
  //#region src/bundlers/vite/tailwind-basedir.ts
5381
5563
  const PACKAGE_JSON_FILE = "package.json";
5382
5564
  function resolveImplicitTailwindcssBasedirFromViteRoot(root) {
@@ -5471,6 +5653,7 @@ function WeappTailwindcss(options = {}) {
5471
5653
  if (autoCssSourceContent.get(sourceFile) === sourceCss) return;
5472
5654
  autoCssSourceContent.set(sourceFile, sourceCss);
5473
5655
  await syncTailwindCssSourceCandidates(sourceFile, sourceCss);
5656
+ cssMemory.refreshRememberedCssSourceBySourceFile(sourceFile, sourceCss);
5474
5657
  const transientSource = {
5475
5658
  file: sourceFile,
5476
5659
  base: sourceBase,
@@ -5597,7 +5780,7 @@ function WeappTailwindcss(options = {}) {
5597
5780
  root
5598
5781
  }];
5599
5782
  const normalizedRoot = node_path.default.resolve(root);
5600
- const seenRoots = new Set([normalizedRoot]);
5783
+ const seenRoots = /* @__PURE__ */ new Set([normalizedRoot]);
5601
5784
  const basedir = opts.tailwindcssBasedir ? node_path.default.resolve(opts.tailwindcssBasedir) : void 0;
5602
5785
  if (basedir && !seenRoots.has(basedir)) {
5603
5786
  roots.push({ root: basedir });
@@ -5780,6 +5963,10 @@ function WeappTailwindcss(options = {}) {
5780
5963
  ...resolveUniAppXNativeCssHandlerOptions(opts)
5781
5964
  })
5782
5965
  });
5966
+ const serveJsHandlerOptions = createJsHandlerOptionsFactory({
5967
+ getMajorVersion: () => runtimeState.tailwindRuntime.majorVersion,
5968
+ moduleGraph: void 0
5969
+ });
5783
5970
  const generateTailwindCssForVitePipeline = async (id, code, hookContext) => {
5784
5971
  if (!shouldOwnTailwindGeneration) return;
5785
5972
  await runtimeState.readyPromise;
@@ -5798,7 +5985,11 @@ function WeappTailwindcss(options = {}) {
5798
5985
  ...transformCssHandlerOptions.getCssHandlerOptions(file),
5799
5986
  isMainChunk: outputCssHandlerOptions.isMainChunk
5800
5987
  };
5801
- 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);
5802
5993
  const shouldDeferEmptyScopedCssSource = transientCssSource == null && !(opts.appType === "uni-app-x" && !cssHandlerOptions.isMainChunk && require_v4_engine.hasTailwindApplyDirective(code));
5803
5994
  const generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
5804
5995
  opts,
@@ -5886,6 +6077,7 @@ function WeappTailwindcss(options = {}) {
5886
6077
  getRememberedCssSources: cssMemory.getRememberedCssSources,
5887
6078
  getRememberedCssSignature: cssMemory.getRememberedCssSignature,
5888
6079
  setRememberedCssSignature: cssMemory.setRememberedCssSignature,
6080
+ getKnownCssSource: cssMemory.getKnownCssSource,
5889
6081
  getKnownSfcSource: cssMemory.getKnownSfcSource,
5890
6082
  recordGeneratorCandidates,
5891
6083
  pruneViteCssCaches,
@@ -5993,6 +6185,13 @@ function WeappTailwindcss(options = {}) {
5993
6185
  onTailwindRootCss: (id, code) => registerAutoCssSource(id, code),
5994
6186
  shouldGenerate: () => shouldOwnTailwindGeneration
5995
6187
  }),
6188
+ createViteServeJsTransformPlugin({
6189
+ createHandlerOptions: serveJsHandlerOptions,
6190
+ getCommand: () => resolvedConfig?.command,
6191
+ jsHandler,
6192
+ shouldTransform: () => shouldOwnTailwindGeneration && !generatorBranch.isWeb,
6193
+ transformRuntime: ensureRuntimeClassSet
6194
+ }),
5996
6195
  {
5997
6196
  name: `${require_context.vitePluginName}:post`,
5998
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-w-RkgaTY.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-CWRooooa.mjs";
1
+ import { t as WeappTailwindcss } from "./vite-5Wn0PIzJ.mjs";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss };