tailwind-styled-v4 5.0.18 → 5.0.21

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 (76) hide show
  1. package/dist/{analyzeWorkspace-CopJNGmi.d.ts → analyzeWorkspace-B1_XRfdl.d.ts} +1 -0
  2. package/dist/{analyzeWorkspace-DpVPccjz.d.mts → analyzeWorkspace-hYfu4Hg3.d.mts} +1 -0
  3. package/dist/analyzer.d.mts +2 -2
  4. package/dist/analyzer.d.ts +2 -2
  5. package/dist/analyzer.js +5 -4
  6. package/dist/analyzer.js.map +1 -1
  7. package/dist/analyzer.mjs +5 -4
  8. package/dist/analyzer.mjs.map +1 -1
  9. package/dist/animate.js +3 -3
  10. package/dist/animate.js.map +1 -1
  11. package/dist/animate.mjs +3 -3
  12. package/dist/animate.mjs.map +1 -1
  13. package/dist/atomic.js +38 -2
  14. package/dist/atomic.js.map +1 -1
  15. package/dist/atomic.mjs +38 -2
  16. package/dist/atomic.mjs.map +1 -1
  17. package/dist/cli.js +43 -6
  18. package/dist/cli.js.map +1 -1
  19. package/dist/cli.mjs +43 -6
  20. package/dist/cli.mjs.map +1 -1
  21. package/dist/compiler.d.mts +177 -2
  22. package/dist/compiler.d.ts +177 -2
  23. package/dist/compiler.js +172 -10
  24. package/dist/compiler.js.map +1 -1
  25. package/dist/compiler.mjs +159 -11
  26. package/dist/compiler.mjs.map +1 -1
  27. package/dist/engine.d.mts +3 -3
  28. package/dist/engine.d.ts +3 -3
  29. package/dist/engine.js +182 -14
  30. package/dist/engine.js.map +1 -1
  31. package/dist/engine.mjs +182 -14
  32. package/dist/engine.mjs.map +1 -1
  33. package/dist/index-BFqmBxl9.d.mts +102 -0
  34. package/dist/{index-DJv28Uzq.d.mts → index-DQI6O24n.d.mts} +1 -1
  35. package/dist/index-DwNErRJ_.d.ts +102 -0
  36. package/dist/{index-BDQw13kn.d.ts → index-UkYbyBkR.d.ts} +1 -1
  37. package/dist/index.d.mts +2 -2
  38. package/dist/index.d.ts +2 -2
  39. package/dist/index.js +182 -14
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +182 -14
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/next.js +193 -11
  44. package/dist/next.js.map +1 -1
  45. package/dist/next.mjs +193 -11
  46. package/dist/next.mjs.map +1 -1
  47. package/dist/plugin-api.d.mts +3 -101
  48. package/dist/plugin-api.d.ts +3 -101
  49. package/dist/plugin.d.mts +3 -5
  50. package/dist/plugin.d.ts +3 -5
  51. package/dist/plugin.js +0 -97
  52. package/dist/plugin.js.map +1 -1
  53. package/dist/plugin.mjs +1 -77
  54. package/dist/plugin.mjs.map +1 -1
  55. package/dist/shared.js +177 -10
  56. package/dist/shared.js.map +1 -1
  57. package/dist/shared.mjs +177 -10
  58. package/dist/shared.mjs.map +1 -1
  59. package/dist/turbopackLoader.js +179 -12
  60. package/dist/turbopackLoader.js.map +1 -1
  61. package/dist/turbopackLoader.mjs +179 -12
  62. package/dist/turbopackLoader.mjs.map +1 -1
  63. package/dist/tw.js +43 -6
  64. package/dist/tw.js.map +1 -1
  65. package/dist/tw.mjs +43 -6
  66. package/dist/tw.mjs.map +1 -1
  67. package/dist/vite.js +315 -147
  68. package/dist/vite.js.map +1 -1
  69. package/dist/vite.mjs +315 -147
  70. package/dist/vite.mjs.map +1 -1
  71. package/dist/webpackLoader.js +38 -2
  72. package/dist/webpackLoader.js.map +1 -1
  73. package/dist/webpackLoader.mjs +38 -2
  74. package/dist/webpackLoader.mjs.map +1 -1
  75. package/native/tailwind-styled-native.node +0 -0
  76. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1025,8 +1025,44 @@ var init_nativeBridge = __esm({
1025
1025
  try {
1026
1026
  const binding = _loadNative(result.path);
1027
1027
  if (isValidNativeBridge(binding)) {
1028
- nativeBridge = binding;
1029
- log("Native bridge loaded successfully from:", result.path);
1028
+ const toCamelCase = (str) => {
1029
+ return str.replace(/_([a-z0-9])/g, (_, g) => g.toUpperCase());
1030
+ };
1031
+ nativeBridge = new Proxy(binding, {
1032
+ get(target, prop) {
1033
+ if (typeof prop === "string") {
1034
+ if (prop in target) {
1035
+ return target[prop];
1036
+ }
1037
+ const camelKey = toCamelCase(prop);
1038
+ if (camelKey in target) {
1039
+ const val = target[camelKey];
1040
+ if (typeof val === "function") {
1041
+ return val.bind(target);
1042
+ }
1043
+ return val;
1044
+ }
1045
+ const napiKey = `${camelKey}Napi`;
1046
+ if (napiKey in target) {
1047
+ const val = target[napiKey];
1048
+ if (typeof val === "function") {
1049
+ return val.bind(target);
1050
+ }
1051
+ return val;
1052
+ }
1053
+ const napiInnerKey = `${camelKey}NapiInner`;
1054
+ if (napiInnerKey in target) {
1055
+ const val = target[napiInnerKey];
1056
+ if (typeof val === "function") {
1057
+ return val.bind(target);
1058
+ }
1059
+ return val;
1060
+ }
1061
+ }
1062
+ return target[prop];
1063
+ }
1064
+ });
1065
+ log("Native bridge loaded successfully and proxy-wrapped from:", result.path);
1030
1066
  return nativeBridge;
1031
1067
  }
1032
1068
  } catch (e) {
@@ -1074,8 +1110,8 @@ async function generateCssNative(classes, options) {
1074
1110
  return css;
1075
1111
  }
1076
1112
  function clearThemeCache() {
1113
+ const native = getNativeBridge();
1077
1114
  try {
1078
- const native = getNativeBridge();
1079
1115
  if (!native?.clearThemeCache) {
1080
1116
  return;
1081
1117
  }
@@ -1083,6 +1119,16 @@ function clearThemeCache() {
1083
1119
  } catch {
1084
1120
  }
1085
1121
  }
1122
+ function resetCacheStats() {
1123
+ const native = getNativeBridge();
1124
+ try {
1125
+ if (!native?.resetCacheStats) {
1126
+ return;
1127
+ }
1128
+ native.resetCacheStats();
1129
+ } catch {
1130
+ }
1131
+ }
1086
1132
  var init_cssGeneratorNative = __esm({
1087
1133
  "packages/domain/compiler/src/compiler/cssGeneratorNative.ts"() {
1088
1134
  init_nativeBridge();
@@ -1208,6 +1254,16 @@ function minifyCss(css) {
1208
1254
  if (!native?.minify_css) throw new Error("minify_css not available");
1209
1255
  return native.minify_css(css);
1210
1256
  }
1257
+ function generateCss(ruleJson, minify) {
1258
+ const native = getNativeBridge();
1259
+ if (!native?.generate_css) throw new Error("generate_css not available");
1260
+ return native.generate_css(ruleJson, minify);
1261
+ }
1262
+ function generateCssBatch(rulesJson, minify) {
1263
+ const native = getNativeBridge();
1264
+ if (!native?.generate_css_batch) throw new Error("generate_css_batch not available");
1265
+ return native.generate_css_batch(rulesJson, minify);
1266
+ }
1211
1267
  function compileAnimation(animationName, from, to) {
1212
1268
  const native = getNativeBridge();
1213
1269
  if (!native?.compile_animation) throw new Error("compile_animation not available");
@@ -1645,7 +1701,7 @@ function postProcessWithLightning(rawCss) {
1645
1701
  }
1646
1702
  return result.css;
1647
1703
  }
1648
- async function runCssPipeline(classes, cssEntryContent, root, minify = true) {
1704
+ async function runCssPipeline(classes, cssEntryContent, root, minify = true, minifier = "lightning") {
1649
1705
  const filtered = classes.filter(Boolean);
1650
1706
  const uniqueMap = /* @__PURE__ */ new Map();
1651
1707
  filtered.forEach((cls) => uniqueMap.set(cls, cls));
@@ -1653,7 +1709,7 @@ async function runCssPipeline(classes, cssEntryContent, root, minify = true) {
1653
1709
  if (unique.length === 0) {
1654
1710
  return { css: "", classes: [], sizeBytes: 0, optimized: false };
1655
1711
  }
1656
- const cacheKey = _getCacheKey(unique, minify, cssEntryContent, root);
1712
+ const cacheKey = _getCacheKey(unique, minify, cssEntryContent, root) + `|${minifier}`;
1657
1713
  const cached = _cssCache.get(cacheKey);
1658
1714
  if (cached) {
1659
1715
  _cacheHits++;
@@ -1670,7 +1726,14 @@ async function runCssPipeline(classes, cssEntryContent, root, minify = true) {
1670
1726
  const theme = getThemeConfig();
1671
1727
  rawCss = await generateCssNative(unique, { theme });
1672
1728
  usedRustCompiler = true;
1673
- const finalCss = minify ? postProcessWithLightning(rawCss) : rawCss;
1729
+ let finalCss = rawCss;
1730
+ if (minify) {
1731
+ if (minifier === "fast") {
1732
+ finalCss = minifyCss(rawCss);
1733
+ } else {
1734
+ finalCss = postProcessWithLightning(rawCss);
1735
+ }
1736
+ }
1674
1737
  if (process.env.DEBUG?.includes("compiler")) {
1675
1738
  console.log(
1676
1739
  `[Compiler] Generated CSS from ${unique.length} classes (${usedRustCompiler ? "Rust" : "JavaScript"})`,
@@ -1706,6 +1769,7 @@ var init_tailwindEngine = __esm({
1706
1769
  "packages/domain/compiler/src/compiler/tailwindEngine.ts"() {
1707
1770
  init_nativeBridge();
1708
1771
  init_cssGeneratorNative();
1772
+ init_cssCompilationNative();
1709
1773
  createRequire(import.meta.url);
1710
1774
  _cssCache = /* @__PURE__ */ new Map();
1711
1775
  _cacheHits = 0;
@@ -1738,9 +1802,10 @@ __export(parser_exports, {
1738
1802
  mergeClassesStatic: () => mergeClassesStatic,
1739
1803
  normalizeAndDedupClasses: () => normalizeAndDedupClasses,
1740
1804
  normalizeClasses: () => normalizeClasses,
1805
+ parseClass: () => parseClass,
1741
1806
  parseClasses: () => parseClasses
1742
1807
  });
1743
- var parseClasses, extractAllClasses, extractClassesFromSource, astExtractClasses, normalizeClasses, mergeClassesStatic, normalizeAndDedupClasses, extractComponentUsage, batchExtractClasses, checkAgainstSafelist, diffClassLists;
1808
+ var parseClasses, parseClass, extractAllClasses, extractClassesFromSource, astExtractClasses, normalizeClasses, mergeClassesStatic, normalizeAndDedupClasses, extractComponentUsage, batchExtractClasses, checkAgainstSafelist, diffClassLists;
1744
1809
  var init_parser = __esm({
1745
1810
  "packages/domain/compiler/src/parser/index.ts"() {
1746
1811
  init_nativeBridge();
@@ -1751,6 +1816,14 @@ var init_parser = __esm({
1751
1816
  }
1752
1817
  return native.parseClasses(raw) || [];
1753
1818
  };
1819
+ parseClass = (input) => {
1820
+ const native = getNativeBridge();
1821
+ if (!native?.parseClass) {
1822
+ throw new Error("FATAL: Native binding 'parseClass' is required but not available.");
1823
+ }
1824
+ const result = native.parseClass(input);
1825
+ return typeof result === "string" ? JSON.parse(result) : result;
1826
+ };
1754
1827
  extractAllClasses = (source) => {
1755
1828
  const native = getNativeBridge();
1756
1829
  if (!native?.extractAllClasses) {
@@ -1882,6 +1955,35 @@ function mergeCssDeclarationsNative(cssChunks) {
1882
1955
  if (!native?.mergeCssDeclarations) throw new Error("mergeCssDeclarations not available");
1883
1956
  return native.mergeCssDeclarations(cssChunks);
1884
1957
  }
1958
+ function getWeek6FeaturesStatus() {
1959
+ const native = getNativeBridge();
1960
+ if (!native?.getWeek6FeaturesStatus) throw new Error("getWeek6FeaturesStatus not available");
1961
+ const resultJson = native.getWeek6FeaturesStatus();
1962
+ return JSON.parse(resultJson);
1963
+ }
1964
+ function getMemoryStatsNative() {
1965
+ const native = getNativeBridge();
1966
+ if (!native?.getMemoryStatsNative) throw new Error("getMemoryStatsNative not available");
1967
+ const resultJson = native.getMemoryStatsNative();
1968
+ return JSON.parse(resultJson);
1969
+ }
1970
+ function getMemoryRecommendationsNative() {
1971
+ const native = getNativeBridge();
1972
+ if (!native?.getMemoryRecommendationsNative) throw new Error("getMemoryRecommendationsNative not available");
1973
+ const resultJson = native.getMemoryRecommendationsNative();
1974
+ return JSON.parse(resultJson);
1975
+ }
1976
+ function estimateOptimalCacheConfigNative(workloadType, expectedEntries) {
1977
+ const native = getNativeBridge();
1978
+ if (!native?.estimateOptimalCacheConfigNative) throw new Error("estimateOptimalCacheConfigNative not available");
1979
+ const resultJson = native.estimateOptimalCacheConfigNative(workloadType, expectedEntries);
1980
+ return JSON.parse(resultJson);
1981
+ }
1982
+ function resetMemoryStats() {
1983
+ const native = getNativeBridge();
1984
+ if (!native?.resetMemoryStats) throw new Error("resetMemoryStats not available");
1985
+ native.resetMemoryStats();
1986
+ }
1885
1987
  var init_analyzerNative = __esm({
1886
1988
  "packages/domain/compiler/src/analyzer/analyzerNative.ts"() {
1887
1989
  init_nativeBridge();
@@ -2171,6 +2273,52 @@ function cachePriority(mtimeMs, sizeBytes, hitCount) {
2171
2273
  if (!native?.cache_priority) throw new Error("cache_priority not available");
2172
2274
  return native.cache_priority(mtimeMs, sizeBytes, hitCount);
2173
2275
  }
2276
+ function getResolverPoolStats() {
2277
+ const native = getNativeBridge();
2278
+ if (!native?.getResolverPoolStats) throw new Error("getResolverPoolStats not available");
2279
+ const statsJson = native.getResolverPoolStats();
2280
+ try {
2281
+ return JSON.parse(statsJson);
2282
+ } catch {
2283
+ return {
2284
+ hits: 0,
2285
+ misses: 0,
2286
+ total: 0,
2287
+ hit_rate: 0,
2288
+ cached_resolvers: 0
2289
+ };
2290
+ }
2291
+ }
2292
+ function clearResolverPool() {
2293
+ const native = getNativeBridge();
2294
+ if (!native?.clearResolverPool) throw new Error("clearResolverPool not available");
2295
+ const resultJson = native.clearResolverPool();
2296
+ try {
2297
+ return JSON.parse(resultJson);
2298
+ } catch {
2299
+ return { status: "error" };
2300
+ }
2301
+ }
2302
+ function resolveColorCached(themeId, color, configJson) {
2303
+ const native = getNativeBridge();
2304
+ if (!native?.resolveColorCached) throw new Error("resolveColorCached not available");
2305
+ return native.resolveColorCached(themeId, color, configJson);
2306
+ }
2307
+ function resolveSpacingCached(themeId, spacing, configJson) {
2308
+ const native = getNativeBridge();
2309
+ if (!native?.resolveSpacingCached) throw new Error("resolveSpacingCached not available");
2310
+ return native.resolveSpacingCached(themeId, spacing, configJson);
2311
+ }
2312
+ function resolveFontSizeCached(themeId, size, configJson) {
2313
+ const native = getNativeBridge();
2314
+ if (!native?.resolveFontSizeCached) throw new Error("resolveFontSizeCached not available");
2315
+ return native.resolveFontSizeCached(themeId, size, configJson);
2316
+ }
2317
+ function resetResolverPoolStats() {
2318
+ const native = getNativeBridge();
2319
+ if (!native?.resetResolverPoolStats) throw new Error("resetResolverPoolStats not available");
2320
+ native.resetResolverPoolStats();
2321
+ }
2174
2322
  var init_cacheNative = __esm({
2175
2323
  "packages/domain/compiler/src/cache/cacheNative.ts"() {
2176
2324
  init_nativeBridge();
@@ -2819,9 +2967,9 @@ var init_src = __esm({
2819
2967
  if (normalized.includes("/layout.") || normalized.includes("/loading.") || normalized.includes("/error.")) {
2820
2968
  return "__global";
2821
2969
  }
2822
- const pageMatch = normalized.match(/\/app\/(.+?)\/page\.[tj]sx?$/);
2970
+ const pageMatch = normalized.match(/(?:^|\/)app\/(.+?)\/page\.[tj]sx?$/);
2823
2971
  if (pageMatch) return `/${pageMatch[1]}`;
2824
- const rootPage = normalized.match(/\/app\/page\.[tj]sx?$/);
2972
+ const rootPage = normalized.match(/(?:^|\/)app\/page\.[tj]sx?$/);
2825
2973
  if (rootPage) return "/";
2826
2974
  return null;
2827
2975
  };
@@ -2980,6 +3128,7 @@ __export(internal_exports, {
2980
3128
  clearCssGenCache: () => clearCssGenCache,
2981
3129
  clearParseCache: () => clearParseCache,
2982
3130
  clearResolveCache: () => clearResolveCache,
3131
+ clearResolverPool: () => clearResolverPool,
2983
3132
  clearThemeCache: () => clearThemeCache,
2984
3133
  collectFiles: () => collectFiles,
2985
3134
  compileAnimation: () => compileAnimation,
@@ -3002,6 +3151,7 @@ __export(internal_exports, {
3002
3151
  eliminateDeadCssNative: () => eliminateDeadCssNative,
3003
3152
  emitPluginHook: () => emitPluginHook,
3004
3153
  estimateOptimalCacheConfig: () => estimateOptimalCacheConfig,
3154
+ estimateOptimalCacheConfigNative: () => estimateOptimalCacheConfigNative,
3005
3155
  extractAllClasses: () => extractAllClasses,
3006
3156
  extractAndGenerateStateCss: () => extractAndGenerateStateCss,
3007
3157
  extractAndGenerateStateCssNative: () => extractAndGenerateStateCssNative,
@@ -3015,6 +3165,8 @@ __export(internal_exports, {
3015
3165
  fileToRoute: () => fileToRoute,
3016
3166
  findDeadVariants: () => findDeadVariants,
3017
3167
  generateAtomicCss: () => generateAtomicCss,
3168
+ generateCss: () => generateCss,
3169
+ generateCssBatch: () => generateCssBatch,
3018
3170
  generateCssForClasses: () => generateCssForClasses,
3019
3171
  generateCssNative: () => generateCssNative,
3020
3172
  generateSafelist: () => generateSafelist,
@@ -3030,10 +3182,14 @@ __export(internal_exports, {
3030
3182
  getCompilerDiagnostics: () => getCompilerDiagnostics,
3031
3183
  getContentPaths: () => getContentPaths,
3032
3184
  getIncrementalEngine: () => getIncrementalEngine,
3185
+ getMemoryRecommendationsNative: () => getMemoryRecommendationsNative,
3186
+ getMemoryStatsNative: () => getMemoryStatsNative,
3033
3187
  getNativeBridge: () => getNativeBridge,
3034
3188
  getPluginHooks: () => getPluginHooks,
3189
+ getResolverPoolStats: () => getResolverPoolStats,
3035
3190
  getRouteClasses: () => getRouteClasses,
3036
3191
  getWatchStats: () => getWatchStats,
3192
+ getWeek6FeaturesStatus: () => getWeek6FeaturesStatus,
3037
3193
  hasTwUsage: () => hasTwUsage,
3038
3194
  hashContent: () => hashContent,
3039
3195
  hoistComponentsNative: () => hoistComponentsNative,
@@ -3062,6 +3218,7 @@ __export(internal_exports, {
3062
3218
  normalizeClasses: () => normalizeClasses,
3063
3219
  optimizeCssNative: () => optimizeCssNative,
3064
3220
  parseAtomicClass: () => parseAtomicClass,
3221
+ parseClass: () => parseClass,
3065
3222
  parseClasses: () => parseClasses,
3066
3223
  pollWatchEvents: () => pollWatchEvents,
3067
3224
  processFileChange: () => processFileChange,
@@ -3113,12 +3270,18 @@ __export(internal_exports, {
3113
3270
  registerPropertyName: () => registerPropertyName,
3114
3271
  registerValueName: () => registerValueName,
3115
3272
  resetBucketEngine: () => resetBucketEngine,
3273
+ resetCacheStats: () => resetCacheStats,
3116
3274
  resetCompilationMetrics: () => resetCompilationMetrics,
3117
3275
  resetIncrementalEngine: () => resetIncrementalEngine,
3276
+ resetMemoryStats: () => resetMemoryStats,
3277
+ resetResolverPoolStats: () => resetResolverPoolStats,
3118
3278
  resolveCascade: () => resolveCascade,
3119
3279
  resolveClassNames: () => resolveClassNames,
3280
+ resolveColorCached: () => resolveColorCached,
3120
3281
  resolveConflictGroup: () => resolveConflictGroup,
3282
+ resolveFontSizeCached: () => resolveFontSizeCached,
3121
3283
  resolveSimpleVariants: () => resolveSimpleVariants,
3284
+ resolveSpacingCached: () => resolveSpacingCached,
3122
3285
  resolveThemeValue: () => resolveThemeValue,
3123
3286
  resolveVariants: () => resolveVariants,
3124
3287
  reverseLookupProperty: () => reverseLookupProperty,
@@ -3364,7 +3527,11 @@ function extractStaticStateCss(srcDir, options = {}) {
3364
3527
  return result;
3365
3528
  }
3366
3529
  function appendStaticStateCssToSafelist(srcDir, safelistPath, options = {}) {
3367
- const result = extractStaticStateCss(srcDir, options);
3530
+ const result = extractStaticStateCss(srcDir, {
3531
+ verbose: options.verbose,
3532
+ resolvedCss: options.resolvedCss || ""
3533
+ // ← ensure always passed
3534
+ });
3368
3535
  const twClassesDir = path9__default.join(path9__default.dirname(safelistPath), "tw-classes");
3369
3536
  fs3__default.mkdirSync(twClassesDir, { recursive: true });
3370
3537
  const stateFilePath = path9__default.join(twClassesDir, TW_STATE_STATIC_FILENAME);
@@ -6273,7 +6440,7 @@ function sanitizeFrequentThreshold(value) {
6273
6440
  // packages/domain/analyzer/src/binding.ts
6274
6441
  var isAnalyzerModule = (module) => {
6275
6442
  const candidate = module;
6276
- return typeof candidate?.analyzeClasses === "function";
6443
+ return typeof candidate?.analyzeClasses === "function" || typeof candidate?.analyzeClassesWorkspace === "function";
6277
6444
  };
6278
6445
  var createAnalyzerBindingLoader = () => {
6279
6446
  const _state = { bindingPromise: null };
@@ -6292,7 +6459,7 @@ var createAnalyzerBindingLoader = () => {
6292
6459
  runtimeDir,
6293
6460
  candidates,
6294
6461
  isValid: isAnalyzerModule,
6295
- invalidExportMessage: "Module loaded but missing `analyzeClasses` export."
6462
+ invalidExportMessage: "Module loaded but missing `analyzeClasses` or `analyzeClassesWorkspace` export."
6296
6463
  });
6297
6464
  if (binding) {
6298
6465
  debugLog(`native binding loaded from: ${loadedPath}`);
@@ -6335,7 +6502,7 @@ async function requireNativeBinding() {
6335
6502
  runtimeDir,
6336
6503
  candidates,
6337
6504
  isValid: isAnalyzerModule,
6338
- invalidExportMessage: "Module loaded but missing `analyzeClasses` export."
6505
+ invalidExportMessage: "Module loaded but missing `analyzeClasses` or `analyzeClassesWorkspace` export."
6339
6506
  });
6340
6507
  const lines = [
6341
6508
  "Native analyzer binding not found. Ensure `tailwind_styled_parser.node` is built."
@@ -6755,7 +6922,8 @@ async function analyzeWorkspace(root, options = {}) {
6755
6922
  );
6756
6923
  const nativeReport = (() => {
6757
6924
  try {
6758
- const report = binding.analyzeClasses(filesJson, resolvedRoot, topLimit);
6925
+ const fn = binding.analyzeClassesWorkspace || binding.analyzeClasses;
6926
+ const report = fn(filesJson, resolvedRoot, topLimit);
6759
6927
  if (!report) {
6760
6928
  throw new Error(`Native analyzer returned no report for "${resolvedRoot}".`);
6761
6929
  }