tailwind-styled-v4 5.0.24 → 5.0.27

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.
package/dist/engine.js CHANGED
@@ -1811,21 +1811,6 @@ var init_compiler = __esm({
1811
1811
  });
1812
1812
 
1813
1813
  // packages/domain/compiler/src/parser/index.ts
1814
- var parser_exports = {};
1815
- __export(parser_exports, {
1816
- astExtractClasses: () => astExtractClasses,
1817
- batchExtractClasses: () => batchExtractClasses,
1818
- checkAgainstSafelist: () => checkAgainstSafelist,
1819
- diffClassLists: () => diffClassLists,
1820
- extractAllClasses: () => extractAllClasses,
1821
- extractClassesFromSource: () => extractClassesFromSource,
1822
- extractComponentUsage: () => extractComponentUsage,
1823
- mergeClassesStatic: () => mergeClassesStatic,
1824
- normalizeAndDedupClasses: () => normalizeAndDedupClasses,
1825
- normalizeClasses: () => normalizeClasses,
1826
- parseClass: () => parseClass,
1827
- parseClasses: () => parseClasses
1828
- });
1829
1814
  var parseClasses, parseClass, extractAllClasses, extractClassesFromSource, astExtractClasses, normalizeClasses, mergeClassesStatic, normalizeAndDedupClasses, extractComponentUsage, batchExtractClasses, checkAgainstSafelist, diffClassLists;
1830
1815
  var init_parser = __esm({
1831
1816
  "packages/domain/compiler/src/parser/index.ts"() {
@@ -2786,7 +2771,7 @@ function extractContainerCssFromSource(source) {
2786
2771
  }
2787
2772
  return rules.join("\n");
2788
2773
  }
2789
- var transformSource, hasTwUsage, isAlreadyTransformed, shouldProcess, compileCssFromClasses, buildStyleTag, generateCssForClasses, eliminateDeadCss, findDeadVariants, runElimination, scanProjectUsage, generateSafelist, loadSafelist, loadTailwindConfig, getContentPaths, _CONTAINER_BREAKPOINTS, runLoaderTransform, shouldSkipFile, fileToRoute, getAllRoutes, getRouteClasses, registerFileClasses, registerGlobalClasses, _incrementalEngineInstance, getIncrementalEngine, resetIncrementalEngine, IncrementalEngine, getBucketEngine, resetBucketEngine, classifyNode, detectConflicts, bucketSort, analyzeFile, analyzeVariantUsage, injectClientDirective, injectServerOnlyComment, analyzeClasses, extractTwStateConfigs, generateStaticStateCss, extractAndGenerateStateCss;
2774
+ var _require2, transformSource, hasTwUsage, isAlreadyTransformed, shouldProcess, compileCssFromClasses, buildStyleTag, generateCssForClasses, eliminateDeadCss, findDeadVariants, runElimination, scanProjectUsage, generateSafelist, loadSafelist, loadTailwindConfig, getContentPaths, _CONTAINER_BREAKPOINTS, runLoaderTransform, shouldSkipFile, fileToRoute, getAllRoutes, getRouteClasses, registerFileClasses, registerGlobalClasses, _incrementalEngineInstance, getIncrementalEngine, resetIncrementalEngine, IncrementalEngine, getBucketEngine, resetBucketEngine, classifyNode, detectConflicts, bucketSort, analyzeFile, analyzeVariantUsage, injectClientDirective, injectServerOnlyComment, analyzeClasses, extractTwStateConfigs, generateStaticStateCss, extractAndGenerateStateCss;
2790
2775
  var init_src = __esm({
2791
2776
  "packages/domain/compiler/src/index.ts"() {
2792
2777
  init_nativeBridge();
@@ -2796,6 +2781,7 @@ var init_src = __esm({
2796
2781
  init_cache();
2797
2782
  init_redis();
2798
2783
  init_watch();
2784
+ _require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('engine.js', document.baseURI).href)));
2799
2785
  transformSource = (source, opts) => {
2800
2786
  const native = getNativeBridge();
2801
2787
  if (!native?.transformSource) {
@@ -2885,7 +2871,7 @@ var init_src = __esm({
2885
2871
  return eliminateDeadCss(css, new Set(dead.deadInCss ?? []));
2886
2872
  };
2887
2873
  scanProjectUsage = (dirs, cwd) => {
2888
- const { batchExtractClasses: batchExtractClasses2 } = (init_parser(), __toCommonJS(parser_exports));
2874
+ const { batchExtractClasses: batchExtractClasses2 } = _require2("./parser");
2889
2875
  const files = dirs.map((dir) => path9__namespace.default.resolve(cwd, dir));
2890
2876
  const results = batchExtractClasses2(files) || [];
2891
2877
  const combined = {};
@@ -3519,14 +3505,23 @@ function extractStaticStateCss(srcDir, options = {}) {
3519
3505
  }
3520
3506
  }
3521
3507
  const allRules = native.generateStaticStateCss(uniqueConfigs, options.resolvedCss ?? null);
3522
- const rulesSkipped = uniqueConfigs.reduce((total, cfg) => {
3523
- try {
3524
- const stateMap = JSON.parse(cfg.statesJson);
3525
- return total + Object.keys(stateMap).length;
3526
- } catch {
3527
- return total;
3528
- }
3529
- }, 0) - allRules.length;
3508
+ const rulesSkipped = allRules.filter((r) => {
3509
+ const decl = r.declarations.trim();
3510
+ return decl.length === 0 || !decl.includes(":");
3511
+ }).length;
3512
+ function sanitizeCssRule(cssRule, declarations) {
3513
+ const segments = declarations.split(/[;\n]/).map((s) => s.trim()).filter(Boolean);
3514
+ const validSegs = segments.filter((s) => s.includes(":"));
3515
+ const invalidSegs = segments.filter((s) => !s.includes(":"));
3516
+ if (invalidSegs.length === 0) return cssRule;
3517
+ if (validSegs.length === 0) return null;
3518
+ const braceIdx = cssRule.indexOf("{");
3519
+ if (braceIdx === -1) return null;
3520
+ const selector = cssRule.slice(0, braceIdx).trim();
3521
+ return `${selector} {
3522
+ ${validSegs.join(";\n ")};
3523
+ }`;
3524
+ }
3530
3525
  const byComponent = /* @__PURE__ */ new Map();
3531
3526
  for (const rule of allRules) {
3532
3527
  const existing = byComponent.get(rule.componentName) ?? [];
@@ -3538,11 +3533,18 @@ function extractStaticStateCss(srcDir, options = {}) {
3538
3533
  cssBlocks.push(`/* ${componentName} */`);
3539
3534
  for (const rule of rules) {
3540
3535
  cssBlocks.push(`/* state: ${rule.stateName} */`);
3541
- const isUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
3542
- if (isUnresolved) {
3543
- cssBlocks.push(`/* SKIPPED (unresolved): ${rule.declarations} \u2014 akan di-inject runtime */`);
3536
+ const isFullyUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
3537
+ if (isFullyUnresolved) {
3538
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3539
+ cssBlocks.push(`/* SKIP [unresolved]: ${encoded} */`);
3544
3540
  } else {
3545
- cssBlocks.push(rule.cssRule);
3541
+ const sanitized = sanitizeCssRule(rule.cssRule, rule.declarations);
3542
+ if (sanitized !== null) {
3543
+ cssBlocks.push(sanitized);
3544
+ } else {
3545
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3546
+ cssBlocks.push(`/* SKIP [sanitized-empty]: ${encoded} */`);
3547
+ }
3546
3548
  }
3547
3549
  }
3548
3550
  cssBlocks.push("");
@@ -3552,7 +3554,7 @@ function extractStaticStateCss(srcDir, options = {}) {
3552
3554
  filesWithStates,
3553
3555
  componentsFound: allConfigs.length,
3554
3556
  rulesGenerated: allRules.length,
3555
- rulesSkipped: Math.max(0, rulesSkipped),
3557
+ rulesSkipped,
3556
3558
  generatedCss: cssBlocks.join("\n"),
3557
3559
  rules: allRules
3558
3560
  };
@@ -3795,7 +3797,7 @@ function loadNativeBinding(options) {
3795
3797
  return { binding: null, loadErrors };
3796
3798
  }
3797
3799
  function requireNativeModule(p) {
3798
- return _require2(p);
3800
+ return _require3(p);
3799
3801
  }
3800
3802
  function resolveNativeBindingCandidates(options) {
3801
3803
  const {
@@ -3852,7 +3854,7 @@ function formatErrorMessage(error) {
3852
3854
  if (error instanceof Error) return error.message;
3853
3855
  return String(error);
3854
3856
  }
3855
- var TwError, _require2, LRUCache;
3857
+ var TwError, _require3, LRUCache;
3856
3858
  var init_src2 = __esm({
3857
3859
  "packages/domain/shared/src/index.ts"() {
3858
3860
  init_trace();
@@ -3920,7 +3922,7 @@ var init_src2 = __esm({
3920
3922
  return `[${this.source.toUpperCase()}:${this.code}] ${this.message}`;
3921
3923
  }
3922
3924
  };
3923
- _require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('engine.js', document.baseURI).href)));
3925
+ _require3 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('engine.js', document.baseURI).href)));
3924
3926
  LRUCache = class {
3925
3927
  capacity;
3926
3928
  cache;