tailwind-styled-v4 5.0.26 → 5.0.28

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 (89) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +575 -575
  3. package/dist/analyzer.js.map +1 -1
  4. package/dist/analyzer.mjs.map +1 -1
  5. package/dist/animate.js.map +1 -1
  6. package/dist/animate.mjs.map +1 -1
  7. package/dist/atomic.js.map +1 -1
  8. package/dist/atomic.mjs.map +1 -1
  9. package/dist/cli.js +2 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cli.mjs +2 -2
  12. package/dist/cli.mjs.map +1 -1
  13. package/dist/compiler.js +2 -1
  14. package/dist/compiler.js.map +1 -1
  15. package/dist/compiler.mjs +2 -1
  16. package/dist/compiler.mjs.map +1 -1
  17. package/dist/dashboard.d.mts +69 -69
  18. package/dist/dashboard.d.ts +69 -69
  19. package/dist/dashboard.js.map +1 -1
  20. package/dist/dashboard.mjs.map +1 -1
  21. package/dist/devtools.js.map +1 -1
  22. package/dist/devtools.mjs.map +1 -1
  23. package/dist/engine.js +26 -5
  24. package/dist/engine.js.map +1 -1
  25. package/dist/engine.mjs +26 -5
  26. package/dist/engine.mjs.map +1 -1
  27. package/dist/index.browser.mjs +16 -16
  28. package/dist/index.browser.mjs.map +1 -1
  29. package/dist/index.d.mts +4 -4
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.js +51 -28
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs +51 -28
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/next.js +26 -5
  36. package/dist/next.js.map +1 -1
  37. package/dist/next.mjs +26 -5
  38. package/dist/next.mjs.map +1 -1
  39. package/dist/plugin-api.js.map +1 -1
  40. package/dist/plugin-api.mjs.map +1 -1
  41. package/dist/plugin-registry.js.map +1 -1
  42. package/dist/plugin-registry.mjs.map +1 -1
  43. package/dist/plugin.js.map +1 -1
  44. package/dist/plugin.mjs.map +1 -1
  45. package/dist/preset.js.map +1 -1
  46. package/dist/preset.mjs.map +1 -1
  47. package/dist/rspack.js.map +1 -1
  48. package/dist/rspack.mjs.map +1 -1
  49. package/dist/runtime-css.js.map +1 -1
  50. package/dist/runtime-css.mjs.map +1 -1
  51. package/dist/runtime.js.map +1 -1
  52. package/dist/runtime.mjs.map +1 -1
  53. package/dist/scanner.js.map +1 -1
  54. package/dist/scanner.mjs.map +1 -1
  55. package/dist/shared.js +26 -5
  56. package/dist/shared.js.map +1 -1
  57. package/dist/shared.mjs +26 -5
  58. package/dist/shared.mjs.map +1 -1
  59. package/dist/storybook-addon.js.map +1 -1
  60. package/dist/storybook-addon.mjs.map +1 -1
  61. package/dist/svelte.js.map +1 -1
  62. package/dist/svelte.mjs.map +1 -1
  63. package/dist/syntax.js.map +1 -1
  64. package/dist/syntax.mjs.map +1 -1
  65. package/dist/testing.js.map +1 -1
  66. package/dist/testing.mjs.map +1 -1
  67. package/dist/theme.js.map +1 -1
  68. package/dist/theme.mjs.map +1 -1
  69. package/dist/turbopackLoader.js +2 -1
  70. package/dist/turbopackLoader.js.map +1 -1
  71. package/dist/turbopackLoader.mjs +2 -1
  72. package/dist/turbopackLoader.mjs.map +1 -1
  73. package/dist/tw.js +2 -2
  74. package/dist/tw.js.map +1 -1
  75. package/dist/tw.mjs +2 -2
  76. package/dist/tw.mjs.map +1 -1
  77. package/dist/vite.js +26 -5
  78. package/dist/vite.js.map +1 -1
  79. package/dist/vite.mjs +26 -5
  80. package/dist/vite.mjs.map +1 -1
  81. package/dist/vue.js.map +1 -1
  82. package/dist/vue.mjs.map +1 -1
  83. package/dist/webpackLoader.js +2 -1
  84. package/dist/webpackLoader.js.map +1 -1
  85. package/dist/webpackLoader.mjs +2 -1
  86. package/dist/webpackLoader.mjs.map +1 -1
  87. package/native/tailwind-styled-native.node +0 -0
  88. package/package.json +296 -289
  89. package/native/tailwind-styled-native.win32-x64-msvc.node +0 -0
package/dist/index.mjs CHANGED
@@ -2766,7 +2766,8 @@ var init_src = __esm({
2766
2766
  if (!native?.transformSource) {
2767
2767
  throw new Error("FATAL: Native binding 'transformSource' is required but not available.");
2768
2768
  }
2769
- const result = native.transformSource(source, opts);
2769
+ const stringOpts = opts ? Object.fromEntries(Object.entries(opts).map(([k, v]) => [k, String(v)])) : void 0;
2770
+ const result = native.transformSource(source, stringOpts);
2770
2771
  if (!result) {
2771
2772
  throw new Error("FATAL: transformSource returned null");
2772
2773
  }
@@ -3488,6 +3489,19 @@ function extractStaticStateCss(srcDir, options = {}) {
3488
3489
  const decl = r.declarations.trim();
3489
3490
  return decl.length === 0 || !decl.includes(":");
3490
3491
  }).length;
3492
+ function sanitizeCssRule(cssRule, declarations) {
3493
+ const segments = declarations.split(/[;\n]/).map((s) => s.trim()).filter(Boolean);
3494
+ const validSegs = segments.filter((s) => s.includes(":"));
3495
+ const invalidSegs = segments.filter((s) => !s.includes(":"));
3496
+ if (invalidSegs.length === 0) return cssRule;
3497
+ if (validSegs.length === 0) return null;
3498
+ const braceIdx = cssRule.indexOf("{");
3499
+ if (braceIdx === -1) return null;
3500
+ const selector = cssRule.slice(0, braceIdx).trim();
3501
+ return `${selector} {
3502
+ ${validSegs.join(";\n ")};
3503
+ }`;
3504
+ }
3491
3505
  const byComponent = /* @__PURE__ */ new Map();
3492
3506
  for (const rule of allRules) {
3493
3507
  const existing = byComponent.get(rule.componentName) ?? [];
@@ -3499,11 +3513,18 @@ function extractStaticStateCss(srcDir, options = {}) {
3499
3513
  cssBlocks.push(`/* ${componentName} */`);
3500
3514
  for (const rule of rules) {
3501
3515
  cssBlocks.push(`/* state: ${rule.stateName} */`);
3502
- const isUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
3503
- if (isUnresolved) {
3504
- cssBlocks.push(`/* SKIPPED (unresolved): ${rule.declarations} \u2014 akan di-inject runtime */`);
3516
+ const isFullyUnresolved = rule.declarations.trim().length > 0 && !rule.declarations.includes(":");
3517
+ if (isFullyUnresolved) {
3518
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3519
+ cssBlocks.push(`/* SKIP [unresolved]: ${encoded} */`);
3505
3520
  } else {
3506
- cssBlocks.push(rule.cssRule);
3521
+ const sanitized = sanitizeCssRule(rule.cssRule, rule.declarations);
3522
+ if (sanitized !== null) {
3523
+ cssBlocks.push(sanitized);
3524
+ } else {
3525
+ const encoded = rule.declarations.replace(/([\w-]+)/g, "[$1]");
3526
+ cssBlocks.push(`/* SKIP [sanitized-empty]: ${encoded} */`);
3527
+ }
3507
3528
  }
3508
3529
  }
3509
3530
  cssBlocks.push("");
@@ -5219,25 +5240,30 @@ function getStateRegistry() {
5219
5240
  var ALWAYS_BLOCKED = /* @__PURE__ */ new Set(["base", "_ref", "state", "container", "containerName"]);
5220
5241
  var _templateParseCache = /* @__PURE__ */ new Map();
5221
5242
  var _statesLookupCache = /* @__PURE__ */ new Map();
5243
+ var _SUB_BLOCK_RE = /(?:^|[\s])(\[\w[\w-]*\])\s*\{/;
5222
5244
  function _getParsedTemplate(template) {
5223
5245
  const cached = _templateParseCache.get(template);
5224
5246
  if (cached) return cached;
5225
- let result;
5226
- try {
5227
- const native = getNativeBinding();
5228
- if (native?.parseSubcomponentBlocksNapi) {
5229
- const r = native.parseSubcomponentBlocksNapi(template, "tw");
5230
- const raw = JSON.parse(r.subMapJson);
5231
- result = {
5232
- baseClasses: r.baseClasses.trim().replace(/\s+/g, " "),
5233
- subMap: new Map(Object.entries(raw))
5234
- };
5235
- _templateParseCache.set(template, result);
5236
- return result;
5237
- }
5238
- } catch {
5247
+ if (!_SUB_BLOCK_RE.test(template)) {
5248
+ const result2 = {
5249
+ baseClasses: template.trim().replace(/\s+/g, " "),
5250
+ subMap: /* @__PURE__ */ new Map()
5251
+ };
5252
+ _templateParseCache.set(template, result2);
5253
+ return result2;
5239
5254
  }
5240
- throw new Error("FATAL: Native binding 'parseSubcomponentBlocksNapi' is required but not available.");
5255
+ const native = getNativeBinding();
5256
+ if (!native?.parseSubcomponentBlocksNapi) {
5257
+ throw new Error("FATAL: Native binding 'parseSubcomponentBlocksNapi' is required but not available.");
5258
+ }
5259
+ const r = native.parseSubcomponentBlocksNapi(template, "tw");
5260
+ const raw = JSON.parse(r.subMapJson);
5261
+ const result = {
5262
+ baseClasses: r.baseClasses.trim().replace(/\s+/g, " "),
5263
+ subMap: new Map(Object.entries(raw))
5264
+ };
5265
+ _templateParseCache.set(template, result);
5266
+ return result;
5241
5267
  }
5242
5268
  function parseSubComponentBlocks(template) {
5243
5269
  return _getParsedTemplate(template).subMap;
@@ -5378,15 +5404,12 @@ function resolveVariants2(variants, props, defaults) {
5378
5404
  const v = props[k];
5379
5405
  if (v !== void 0 && v !== null) cleanProps[k] = String(v);
5380
5406
  }
5381
- try {
5382
- const binding = getNativeBinding();
5383
- if (binding?.resolveSimpleVariants) {
5384
- const result = binding.resolveSimpleVariants(null, variants, defaults, cleanProps);
5385
- return result.trim().replace(/\s+/g, " ");
5386
- }
5387
- } catch {
5407
+ const binding = getNativeBinding();
5408
+ if (!binding?.resolveSimpleVariants) {
5409
+ throw new Error("FATAL: Native binding 'resolveSimpleVariants' is required but not available.");
5388
5410
  }
5389
- throw new Error("FATAL: Native binding 'resolveSimpleVariants' is required but not available.");
5411
+ const result = binding.resolveSimpleVariants(null, variants, defaults, cleanProps);
5412
+ return result.trim().replace(/\s+/g, " ");
5390
5413
  }
5391
5414
  function resolveStates(statesConfig, stateKeys, statesLookup, props) {
5392
5415
  if (statesLookup && stateKeys.length > 0) {