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/next.mjs CHANGED
@@ -1043,21 +1043,6 @@ var init_compiler = __esm({
1043
1043
  });
1044
1044
 
1045
1045
  // packages/domain/compiler/src/parser/index.ts
1046
- var parser_exports = {};
1047
- __export(parser_exports, {
1048
- astExtractClasses: () => astExtractClasses,
1049
- batchExtractClasses: () => batchExtractClasses,
1050
- checkAgainstSafelist: () => checkAgainstSafelist,
1051
- diffClassLists: () => diffClassLists,
1052
- extractAllClasses: () => extractAllClasses,
1053
- extractClassesFromSource: () => extractClassesFromSource,
1054
- extractComponentUsage: () => extractComponentUsage,
1055
- mergeClassesStatic: () => mergeClassesStatic,
1056
- normalizeAndDedupClasses: () => normalizeAndDedupClasses,
1057
- normalizeClasses: () => normalizeClasses,
1058
- parseClass: () => parseClass,
1059
- parseClasses: () => parseClasses
1060
- });
1061
1046
  var parseClasses, parseClass, extractAllClasses, extractClassesFromSource, astExtractClasses, normalizeClasses, mergeClassesStatic, normalizeAndDedupClasses, extractComponentUsage, batchExtractClasses, checkAgainstSafelist, diffClassLists;
1062
1047
  var init_parser = __esm({
1063
1048
  "packages/domain/compiler/src/parser/index.ts"() {
@@ -2242,7 +2227,7 @@ function extractContainerCssFromSource(source) {
2242
2227
  }
2243
2228
  return rules.join("\n");
2244
2229
  }
2245
- 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, BucketEngine, classifyNode, detectConflicts, bucketSort, analyzeFile, analyzeVariantUsage, injectClientDirective, injectServerOnlyComment, analyzeClasses, extractTwStateConfigs, generateStaticStateCss, extractAndGenerateStateCss;
2230
+ 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, BucketEngine, classifyNode, detectConflicts, bucketSort, analyzeFile, analyzeVariantUsage, injectClientDirective, injectServerOnlyComment, analyzeClasses, extractTwStateConfigs, generateStaticStateCss, extractAndGenerateStateCss;
2246
2231
  var init_src = __esm({
2247
2232
  "packages/domain/compiler/src/index.ts"() {
2248
2233
  init_nativeBridge();
@@ -2252,6 +2237,7 @@ var init_src = __esm({
2252
2237
  init_cache();
2253
2238
  init_redis();
2254
2239
  init_watch();
2240
+ _require2 = createRequire(import.meta.url);
2255
2241
  transformSource = (source, opts) => {
2256
2242
  const native = getNativeBridge();
2257
2243
  if (!native?.transformSource) {
@@ -2341,7 +2327,7 @@ var init_src = __esm({
2341
2327
  return eliminateDeadCss(css, new Set(dead.deadInCss ?? []));
2342
2328
  };
2343
2329
  scanProjectUsage = (dirs, cwd) => {
2344
- const { batchExtractClasses: batchExtractClasses2 } = (init_parser(), __toCommonJS(parser_exports));
2330
+ const { batchExtractClasses: batchExtractClasses2 } = _require2("./parser");
2345
2331
  const files = dirs.map((dir) => path10__default.resolve(cwd, dir));
2346
2332
  const results = batchExtractClasses2(files) || [];
2347
2333
  const combined = {};
@@ -2980,14 +2966,23 @@ function extractStaticStateCss(srcDir, options = {}) {
2980
2966
  }
2981
2967
  }
2982
2968
  const allRules = native.generateStaticStateCss(uniqueConfigs, options.resolvedCss ?? null);
2983
- const rulesSkipped = uniqueConfigs.reduce((total, cfg) => {
2984
- try {
2985
- const stateMap = JSON.parse(cfg.statesJson);
2986
- return total + Object.keys(stateMap).length;
2987
- } catch {
2988
- return total;
2989
- }
2990
- }, 0) - allRules.length;
2969
+ const rulesSkipped = allRules.filter((r) => {
2970
+ const decl = r.declarations.trim();
2971
+ return decl.length === 0 || !decl.includes(":");
2972
+ }).length;
2973
+ function sanitizeCssRule(cssRule, declarations) {
2974
+ const segments = declarations.split(/[;\n]/).map((s) => s.trim()).filter(Boolean);
2975
+ const validSegs = segments.filter((s) => s.includes(":"));
2976
+ const invalidSegs = segments.filter((s) => !s.includes(":"));
2977
+ if (invalidSegs.length === 0) return cssRule;
2978
+ if (validSegs.length === 0) return null;
2979
+ const braceIdx = cssRule.indexOf("{");
2980
+ if (braceIdx === -1) return null;
2981
+ const selector = cssRule.slice(0, braceIdx).trim();
2982
+ return `${selector} {
2983
+ ${validSegs.join(";\n ")};
2984
+ }`;
2985
+ }
2991
2986
  const byComponent = /* @__PURE__ */ new Map();
2992
2987
  for (const rule of allRules) {
2993
2988
  const existing = byComponent.get(rule.componentName) ?? [];
@@ -2999,11 +2994,18 @@ function extractStaticStateCss(srcDir, options = {}) {
2999
2994
  cssBlocks.push(`/* ${componentName} */`);
3000
2995
  for (const rule of rules) {
3001
2996
  cssBlocks.push(`/* state: ${rule.stateName} */`);
3002
- const isUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
3003
- if (isUnresolved) {
3004
- cssBlocks.push(`/* SKIPPED (unresolved): ${rule.declarations} \u2014 akan di-inject runtime */`);
2997
+ const isFullyUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
2998
+ if (isFullyUnresolved) {
2999
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3000
+ cssBlocks.push(`/* SKIP [unresolved]: ${encoded} */`);
3005
3001
  } else {
3006
- cssBlocks.push(rule.cssRule);
3002
+ const sanitized = sanitizeCssRule(rule.cssRule, rule.declarations);
3003
+ if (sanitized !== null) {
3004
+ cssBlocks.push(sanitized);
3005
+ } else {
3006
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3007
+ cssBlocks.push(`/* SKIP [sanitized-empty]: ${encoded} */`);
3008
+ }
3007
3009
  }
3008
3010
  }
3009
3011
  cssBlocks.push("");
@@ -3013,7 +3015,7 @@ function extractStaticStateCss(srcDir, options = {}) {
3013
3015
  filesWithStates,
3014
3016
  componentsFound: allConfigs.length,
3015
3017
  rulesGenerated: allRules.length,
3016
- rulesSkipped: Math.max(0, rulesSkipped),
3018
+ rulesSkipped,
3017
3019
  generatedCss: cssBlocks.join("\n"),
3018
3020
  rules: allRules
3019
3021
  };
@@ -3177,7 +3179,7 @@ function loadNativeBinding(options) {
3177
3179
  return { binding: null, loadErrors };
3178
3180
  }
3179
3181
  function requireNativeModule(p) {
3180
- return _require2(p);
3182
+ return _require3(p);
3181
3183
  }
3182
3184
  function resolveNativeBindingCandidates(options) {
3183
3185
  const {
@@ -3224,7 +3226,7 @@ function resolveRuntimeDir(dir, importMetaUrl) {
3224
3226
  return process.cwd();
3225
3227
  }
3226
3228
  }
3227
- var TwError, _require2;
3229
+ var TwError, _require3;
3228
3230
  var init_src2 = __esm({
3229
3231
  "packages/domain/shared/src/index.ts"() {
3230
3232
  init_workerResolver();
@@ -3283,7 +3285,7 @@ var init_src2 = __esm({
3283
3285
  return `[${this.source.toUpperCase()}:${this.code}] ${this.message}`;
3284
3286
  }
3285
3287
  };
3286
- _require2 = createRequire(import.meta.url);
3288
+ _require3 = createRequire(import.meta.url);
3287
3289
  }
3288
3290
  });
3289
3291
 
@@ -4287,12 +4289,13 @@ function withTailwindStyled(options = {}) {
4287
4289
  "utf-8"
4288
4290
  );
4289
4291
  const stateStaticPath = path10__default.join(twClassesDir, TW_STATE_STATIC_FILENAME);
4290
- if (!fs9__default.existsSync(stateStaticPath)) {
4292
+ try {
4291
4293
  fs9__default.writeFileSync(
4292
4294
  stateStaticPath,
4293
4295
  "/* tw-state-static.css \u2014 placeholder, akan di-generate setelah scan */\n",
4294
4296
  "utf-8"
4295
4297
  );
4298
+ } catch {
4296
4299
  }
4297
4300
  try {
4298
4301
  const CSS_CANDIDATES = [