tailwind-styled-v4 5.0.2 → 5.0.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.
package/dist/index.js CHANGED
@@ -394,21 +394,23 @@ var require_animate = __commonJS({
394
394
  var __toCommonJS = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
395
395
  var require_compiler = __commonJS222({
396
396
  "dist/compiler.js"(exports$122, module2) {
397
- var crypto = __require222("crypto");
398
- var fs32 = __require222("fs");
399
397
  var module$12 = __require222("module");
400
398
  var path7 = __require222("path");
401
399
  var url22 = __require222("url");
402
400
  var tailwindMerge = __require222("tailwind-merge");
401
+ var fs22 = __require222("fs");
402
+ var crypto = __require222("crypto");
403
403
  var _documentCurrentScript222 = typeof document !== "undefined" ? document.currentScript : null;
404
404
  function _interopDefault22(e) {
405
405
  return e && e.__esModule ? e : { default: e };
406
406
  }
407
- var fs3__default = /* @__PURE__ */ _interopDefault22(fs32);
408
407
  var path7__default = /* @__PURE__ */ _interopDefault22(path7);
408
+ var fs2__default = /* @__PURE__ */ _interopDefault22(fs22);
409
+ var __create222 = Object.create;
409
410
  var __defProp222 = Object.defineProperty;
410
411
  var __getOwnPropDesc222 = Object.getOwnPropertyDescriptor;
411
412
  var __getOwnPropNames2222 = Object.getOwnPropertyNames;
413
+ var __getProtoOf222 = Object.getPrototypeOf;
412
414
  var __hasOwnProp222 = Object.prototype.hasOwnProperty;
413
415
  var __require2222 = /* @__PURE__ */ ((x) => typeof __require222 !== "undefined" ? __require222 : typeof Proxy !== "undefined" ? new Proxy(x, {
414
416
  get: (a, b) => (typeof __require222 !== "undefined" ? __require222 : a)[b]
@@ -419,6 +421,9 @@ var require_animate = __commonJS({
419
421
  var __esm2 = (fn, res) => function __init() {
420
422
  return fn && (res = (0, fn[__getOwnPropNames2222(fn)[0]])(fn = 0)), res;
421
423
  };
424
+ var __commonJS2222 = (cb, mod) => function __require22222() {
425
+ return mod || (0, cb[__getOwnPropNames2222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
426
+ };
422
427
  var __export2 = (target, all) => {
423
428
  for (var name in all)
424
429
  __defProp222(target, name, { get: all[name], enumerable: true });
@@ -431,48 +436,438 @@ var require_animate = __commonJS({
431
436
  }
432
437
  return to;
433
438
  };
439
+ var __toESM222 = (mod, isNodeMode, target) => (target = mod != null ? __create222(__getProtoOf222(mod)) : {}, __copyProps222(
440
+ // If the importer is in node compatibility mode or this is not an ESM
441
+ // file that has been converted to a CommonJS file using a Babel-
442
+ // compatible transform (i.e. "__esModule" has not been set), then set
443
+ // "default" to the CommonJS "module.exports" for node compatibility.
444
+ __defProp222(target, "default", { value: mod, enumerable: true }),
445
+ mod
446
+ ));
434
447
  var __toCommonJS2 = (mod) => __copyProps222(__defProp222({}, "__esModule", { value: true }), mod);
435
- function getEnvLevel() {
436
- const env = process.env.TWS_LOG_LEVEL?.toLowerCase();
437
- if (env && env in LEVELS) return env;
438
- return process.env.TWS_DEBUG_SCANNER === "1" ? "debug" : "info";
439
- }
440
- function createLogger2(prefix, level) {
441
- let currentLevel = getEnvLevel();
442
- const log22 = (msgLevel, stream, args) => {
443
- if (LEVELS[msgLevel] > LEVELS[currentLevel]) return;
444
- const line = `[${prefix}] ${args.map(String).join(" ")}
445
- `;
446
- process[stream].write(line);
447
- };
448
- return {
449
- error: (...a) => log22("error", "stderr", a),
450
- warn: (...a) => log22("warn", "stderr", a),
451
- info: (...a) => log22("info", "stdout", a),
452
- debug: (...a) => log22("debug", "stderr", a),
453
- setLevel: (l) => {
454
- currentLevel = l;
448
+ var require_plugin = __commonJS2222({
449
+ "dist/plugin.js"(exports$1222) {
450
+ var TOKEN_ENGINE_KEY = "__TW_TOKEN_ENGINE__";
451
+ function resolveTokenEngine() {
452
+ if (typeof globalThis !== "undefined") {
453
+ return globalThis[TOKEN_ENGINE_KEY];
454
+ }
455
+ return null;
455
456
  }
456
- };
457
- }
458
- var LEVELS;
459
- var init_logger = __esm2({
460
- "packages/shared/src/logger.ts"() {
461
- LEVELS = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 };
462
- createLogger2("tailwind-styled");
463
- }
464
- });
465
- function hashContent(content, algorithm = "md5", length = 8) {
466
- return crypto.createHash(algorithm).update(content).digest("hex").slice(0, length);
467
- }
468
- var init_hash = __esm2({
469
- "packages/shared/src/hash.ts"() {
457
+ function readToken(engine, name) {
458
+ if (!engine) return void 0;
459
+ if (typeof engine.getToken === "function") return engine.getToken(name);
460
+ if (typeof engine.getTokens === "function") {
461
+ const tokens = engine.getTokens();
462
+ return tokens?.[name];
463
+ }
464
+ return void 0;
465
+ }
466
+ function createTwPlugin(options = {}) {
467
+ return {
468
+ async resolveId(source, importer) {
469
+ if (!source.startsWith("tw.") && !source.startsWith("tw:")) return null;
470
+ const importPath = source.replace(/^tw[.:]/, "");
471
+ const resolved = await this.resolve(importPath, importer, { skipSelf: true });
472
+ if (resolved) return { id: resolved.id };
473
+ return null;
474
+ },
475
+ async load(id) {
476
+ return null;
477
+ },
478
+ async transform(code, id) {
479
+ return null;
480
+ },
481
+ getToken(name) {
482
+ const engine = resolveTokenEngine();
483
+ return readToken(engine, name);
484
+ },
485
+ subscribeTokens(callback) {
486
+ const engine = resolveTokenEngine();
487
+ if (!engine) return () => {
488
+ };
489
+ if (typeof engine.subscribeTokens === "function") return engine.subscribeTokens(callback);
490
+ if (typeof engine.subscribe === "function") return engine.subscribe(callback);
491
+ return () => {
492
+ };
493
+ }
494
+ };
495
+ }
496
+ var globalRegistry = {
497
+ transforms: [],
498
+ tokens: {}
499
+ };
500
+ function getGlobalRegistry2() {
501
+ return globalRegistry;
502
+ }
503
+ function registerTransform(transform) {
504
+ globalRegistry.transforms.push(transform);
505
+ }
506
+ function registerToken(name, value) {
507
+ globalRegistry.tokens[name] = value;
508
+ }
509
+ function createRegistry() {
510
+ return {
511
+ variants: /* @__PURE__ */ new Map(),
512
+ utilities: /* @__PURE__ */ new Map(),
513
+ tokens: /* @__PURE__ */ new Map(),
514
+ transforms: [],
515
+ cssHooks: [],
516
+ buildHooks: [],
517
+ plugins: /* @__PURE__ */ new Set()
518
+ };
519
+ }
520
+ var _globalRegistry = createRegistry();
521
+ function resetGlobalRegistry() {
522
+ _globalRegistry = createRegistry();
523
+ }
524
+ function createContext(registry, config = {}) {
525
+ return {
526
+ config,
527
+ addVariant(name, resolver) {
528
+ registry.variants.set(name, resolver);
529
+ },
530
+ addUtility(name, styles) {
531
+ registry.utilities.set(name, styles);
532
+ },
533
+ addToken(name, value) {
534
+ const normalized = name.replace(/[^a-zA-Z0-9-]/g, "-").toLowerCase();
535
+ registry.tokens.set(normalized, value);
536
+ },
537
+ addTransform(fn) {
538
+ registry.transforms.push(fn);
539
+ },
540
+ onGenerateCSS(hook) {
541
+ registry.cssHooks.push(hook);
542
+ },
543
+ onBuildEnd(hook) {
544
+ registry.buildHooks.push(hook);
545
+ },
546
+ getToken(name) {
547
+ return readToken(resolveTokenEngine(), name);
548
+ },
549
+ subscribeTokens(callback) {
550
+ const engine = resolveTokenEngine();
551
+ if (!engine) return () => {
552
+ };
553
+ if (typeof engine.subscribeTokens === "function") return engine.subscribeTokens(callback);
554
+ if (typeof engine.subscribe === "function") return engine.subscribe(callback);
555
+ return () => {
556
+ };
557
+ }
558
+ };
559
+ }
560
+ function createTw(config = {}) {
561
+ const registry = createRegistry();
562
+ const ctx = createContext(registry, config);
563
+ const result = ctx;
564
+ result.registry = {
565
+ plugins: registry.plugins,
566
+ variants: registry.variants,
567
+ utilities: registry.utilities,
568
+ tokens: registry.tokens
569
+ };
570
+ result.use = (plugin) => {
571
+ plugin.setup(ctx);
572
+ registry.plugins.add(plugin.name);
573
+ };
574
+ if (config.plugins && Array.isArray(config.plugins)) {
575
+ for (const plugin of config.plugins) {
576
+ if (plugin && plugin.name) {
577
+ result.use(plugin);
578
+ }
579
+ }
580
+ }
581
+ return result;
582
+ }
583
+ function use(plugin) {
584
+ const ctx = createContext(_globalRegistry);
585
+ plugin.setup(ctx);
586
+ }
587
+ function presetTokens(tokens) {
588
+ return {
589
+ name: "preset-tokens",
590
+ setup(ctx) {
591
+ for (const [name, value] of Object.entries(tokens)) {
592
+ ctx.addToken(name, value);
593
+ }
594
+ }
595
+ };
596
+ }
597
+ function presetVariants(variants) {
598
+ return {
599
+ name: "preset-variants",
600
+ setup(ctx) {
601
+ for (const [name, resolver] of Object.entries(variants)) {
602
+ ctx.addVariant(name, resolver);
603
+ }
604
+ }
605
+ };
606
+ }
607
+ function presetScrollbar() {
608
+ return {
609
+ name: "preset-scrollbar",
610
+ setup(ctx) {
611
+ ctx.addVariant("scrollbar-thin", () => "::-webkit-scrollbar{width:8px;height:8px}");
612
+ ctx.addVariant("scrollbar-none", () => "::-webkit-scrollbar{display:none}");
613
+ ctx.addUtility("scrollbar-hide", { "-ms-overflow-style": "none", "scrollbar-width": "none" });
614
+ }
615
+ };
616
+ }
617
+ exports$1222.createTw = createTw;
618
+ exports$1222.createTwPlugin = createTwPlugin;
619
+ exports$1222.getGlobalRegistry = getGlobalRegistry2;
620
+ exports$1222.presetScrollbar = presetScrollbar;
621
+ exports$1222.presetTokens = presetTokens;
622
+ exports$1222.presetVariants = presetVariants;
623
+ exports$1222.registerToken = registerToken;
624
+ exports$1222.registerTransform = registerTransform;
625
+ exports$1222.resetGlobalRegistry = resetGlobalRegistry;
626
+ exports$1222.use = use;
470
627
  }
471
628
  });
472
- var init_src = __esm2({
473
- "packages/shared/src/index.ts"() {
474
- init_logger();
475
- init_hash();
629
+ var require_shared222 = __commonJS2222({
630
+ "dist/shared.js"(exports$1222) {
631
+ var fs5 = __require2222("fs");
632
+ var module$122 = __require2222("module");
633
+ var os = __require2222("os");
634
+ var path9 = __require2222("path");
635
+ var url222 = __require2222("url");
636
+ var crypto2 = __require2222("crypto");
637
+ function _interopDefault222(e) {
638
+ return e && e.__esModule ? e : { default: e };
639
+ }
640
+ var fs__default22 = /* @__PURE__ */ _interopDefault222(fs5);
641
+ var os__default = /* @__PURE__ */ _interopDefault222(os);
642
+ var path__default2 = /* @__PURE__ */ _interopDefault222(path9);
643
+ var LRUCache3 = class {
644
+ constructor(max = 256, ttlMs = null) {
645
+ this.map = /* @__PURE__ */ new Map();
646
+ this.max = max;
647
+ this.ttlMs = ttlMs;
648
+ }
649
+ get(key) {
650
+ const entry = this.map.get(key);
651
+ if (!entry) return void 0;
652
+ if (this.ttlMs !== null && Date.now() - entry.ts > this.ttlMs) {
653
+ this.map.delete(key);
654
+ return void 0;
655
+ }
656
+ this.map.delete(key);
657
+ this.map.set(key, entry);
658
+ return entry.value;
659
+ }
660
+ set(key, value) {
661
+ if (this.map.has(key)) this.map.delete(key);
662
+ else if (this.map.size >= this.max) {
663
+ this.map.delete(this.map.keys().next().value);
664
+ }
665
+ this.map.set(key, { value, ts: Date.now() });
666
+ }
667
+ has(key) {
668
+ return this.get(key) !== void 0;
669
+ }
670
+ delete(key) {
671
+ this.map.delete(key);
672
+ }
673
+ clear() {
674
+ this.map.clear();
675
+ }
676
+ get size() {
677
+ return this.map.size;
678
+ }
679
+ keys() {
680
+ return this.map.keys();
681
+ }
682
+ *values() {
683
+ for (const entry of this.map.values()) {
684
+ yield entry.value;
685
+ }
686
+ }
687
+ *entries() {
688
+ for (const [key, entry] of this.map.entries()) {
689
+ yield [key, entry.value];
690
+ }
691
+ }
692
+ };
693
+ function getPlatformExtension() {
694
+ const platform = os__default.default.platform();
695
+ switch (platform) {
696
+ case "win32":
697
+ return ".node";
698
+ case "darwin":
699
+ return ".dylib";
700
+ case "linux":
701
+ return ".so";
702
+ default:
703
+ return ".node";
704
+ }
705
+ }
706
+ function formatErrorMessage22(error) {
707
+ return error instanceof Error ? error.message : String(error);
708
+ }
709
+ function resolveRuntimeDir2(dirnameValue, moduleImportUrl) {
710
+ if (typeof dirnameValue === "string" && dirnameValue.length > 0) return dirnameValue;
711
+ return path__default2.default.dirname(url222.fileURLToPath(moduleImportUrl));
712
+ }
713
+ function resolveNativeBindingCandidates2(options) {
714
+ const out = [];
715
+ const envVarNames = options.envVarNames ?? ["TWS_NATIVE_PATH"];
716
+ for (const envVarName of envVarNames) {
717
+ const raw = process.env[envVarName]?.trim();
718
+ if (!raw) continue;
719
+ const resolved = path__default2.default.resolve(raw);
720
+ if (options.enforceNodeExtensionForEnvPath) {
721
+ if (path__default2.default.extname(resolved).toLowerCase() !== ".node") {
722
+ throw new Error(
723
+ `Invalid native binding path from ${envVarName}="${raw}". Expected a .node file.`
724
+ );
725
+ }
726
+ }
727
+ out.push(resolved);
728
+ }
729
+ if (options.includeDefaultCandidates !== false) {
730
+ const ext = options.platformExtension ?? getPlatformExtension();
731
+ const defaultBindingName = `tailwind_styled_parser${ext}`;
732
+ out.push(path__default2.default.resolve(process.cwd(), "native", defaultBindingName));
733
+ out.push(path__default2.default.resolve(options.runtimeDir, "..", "..", "..", "native", defaultBindingName));
734
+ }
735
+ return Array.from(new Set(out));
736
+ }
737
+ function parseDebugToken(namespace, token) {
738
+ if (token === "*" || token === namespace || token === "tailwind-styled:*") return true;
739
+ return token.endsWith("*") && namespace.startsWith(token.slice(0, -1));
740
+ }
741
+ function isDebugNamespaceEnabled(namespace) {
742
+ if (process.env.TWS_DEBUG === "1" || process.env.TAILWIND_STYLED_DEBUG === "1") return true;
743
+ const raw = process.env.DEBUG;
744
+ if (!raw) return false;
745
+ return raw.split(",").map((token) => token.trim()).some((token) => parseDebugToken(namespace, token));
746
+ }
747
+ function createDebugLogger2(namespace, label = namespace) {
748
+ const debugEnabled = isDebugNamespaceEnabled(namespace);
749
+ return (message) => {
750
+ if (!debugEnabled) return;
751
+ console.debug(`[${label}] ${message}`);
752
+ };
753
+ }
754
+ function loadNativeBinding2(options) {
755
+ const req = module$122.createRequire(path__default2.default.join(options.runtimeDir, "noop.cjs"));
756
+ const loadErrors2 = [];
757
+ for (const candidate of options.candidates) {
758
+ if (!fs__default22.default.existsSync(candidate)) continue;
759
+ try {
760
+ const mod = req(candidate);
761
+ if (options.isValid(mod)) {
762
+ return {
763
+ binding: mod,
764
+ loadedPath: candidate,
765
+ loadErrors: loadErrors2
766
+ };
767
+ }
768
+ loadErrors2.push({
769
+ path: candidate,
770
+ message: options.invalidExportMessage
771
+ });
772
+ } catch (error) {
773
+ loadErrors2.push({
774
+ path: candidate,
775
+ message: formatErrorMessage22(error)
776
+ });
777
+ }
778
+ }
779
+ return {
780
+ binding: null,
781
+ loadedPath: null,
782
+ loadErrors: loadErrors2
783
+ };
784
+ }
785
+ var LEVELS = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 };
786
+ function getEnvLevel() {
787
+ const env = process.env.TWS_LOG_LEVEL?.toLowerCase();
788
+ if (env && env in LEVELS) return env;
789
+ return process.env.TWS_DEBUG_SCANNER === "1" ? "debug" : "info";
790
+ }
791
+ function createLogger2(prefix, level) {
792
+ let currentLevel = level ?? getEnvLevel();
793
+ const log22 = (msgLevel, stream, args) => {
794
+ if (LEVELS[msgLevel] > LEVELS[currentLevel]) return;
795
+ const line = `[${prefix}] ${args.map(String).join(" ")}
796
+ `;
797
+ process[stream].write(line);
798
+ };
799
+ return {
800
+ error: (...a) => log22("error", "stderr", a),
801
+ warn: (...a) => log22("warn", "stderr", a),
802
+ info: (...a) => log22("info", "stdout", a),
803
+ debug: (...a) => log22("debug", "stderr", a),
804
+ setLevel: (l) => {
805
+ currentLevel = l;
806
+ }
807
+ };
808
+ }
809
+ var logger = createLogger2("tailwind-styled");
810
+ function hashContent2(content, algorithm = "md5", length = 8) {
811
+ return crypto2.createHash(algorithm).update(content).digest("hex").slice(0, length);
812
+ }
813
+ function hashFile(filePath, algorithm = "md5", length = 8) {
814
+ try {
815
+ const content = fs__default22.default.readFileSync(filePath, "utf8");
816
+ return hashContent2(content, algorithm, length);
817
+ } catch {
818
+ return "00000000";
819
+ }
820
+ }
821
+ function debounce(fn, ms) {
822
+ let timer = null;
823
+ return ((...args) => {
824
+ if (timer) clearTimeout(timer);
825
+ timer = setTimeout(() => {
826
+ timer = null;
827
+ fn(...args);
828
+ }, ms);
829
+ });
830
+ }
831
+ function throttle(fn, ms) {
832
+ let last = 0;
833
+ return ((...args) => {
834
+ const now = Date.now();
835
+ if (now - last >= ms) {
836
+ last = now;
837
+ fn(...args);
838
+ }
839
+ });
840
+ }
841
+ function parseVersion(v) {
842
+ const parts = v.replace(/^v/, "").split(".").map((p) => {
843
+ const n = Number(p);
844
+ return Number.isNaN(n) ? 0 : n;
845
+ });
846
+ const [major = 0, minor = 0, patch = 0] = parts;
847
+ return { major, minor, patch };
848
+ }
849
+ function satisfiesMinVersion(version, minVersion) {
850
+ const v = parseVersion(version);
851
+ const min = parseVersion(minVersion);
852
+ if (v.major !== min.major) return v.major > min.major;
853
+ if (v.minor !== min.minor) return v.minor > min.minor;
854
+ return v.patch >= min.patch;
855
+ }
856
+ exports$1222.LRUCache = LRUCache3;
857
+ exports$1222.createDebugLogger = createDebugLogger2;
858
+ exports$1222.createLogger = createLogger2;
859
+ exports$1222.debounce = debounce;
860
+ exports$1222.formatErrorMessage = formatErrorMessage22;
861
+ exports$1222.hashContent = hashContent2;
862
+ exports$1222.hashFile = hashFile;
863
+ exports$1222.isDebugNamespaceEnabled = isDebugNamespaceEnabled;
864
+ exports$1222.loadNativeBinding = loadNativeBinding2;
865
+ exports$1222.logger = logger;
866
+ exports$1222.parseVersion = parseVersion;
867
+ exports$1222.resolveNativeBindingCandidates = resolveNativeBindingCandidates2;
868
+ exports$1222.resolveRuntimeDir = resolveRuntimeDir2;
869
+ exports$1222.satisfiesMinVersion = satisfiesMinVersion;
870
+ exports$1222.throttle = throttle;
476
871
  }
477
872
  });
478
873
  var nativeBridge_exports = {};
@@ -575,6 +970,7 @@ Or install a prebuilt binary for your platform.`
575
970
  metadata
576
971
  };
577
972
  }
973
+ var import_shared222;
578
974
  var getDirname2;
579
975
  var runtimeDir;
580
976
  var requireFromRuntime;
@@ -582,7 +978,7 @@ Or install a prebuilt binary for your platform.`
582
978
  var log2;
583
979
  var init_nativeBridge = __esm2({
584
980
  "packages/compiler/src/nativeBridge.ts"() {
585
- init_src();
981
+ import_shared222 = __toESM222(require_shared222());
586
982
  getDirname2 = () => {
587
983
  if (typeof __dirname !== "undefined") {
588
984
  return __dirname;
@@ -594,7 +990,7 @@ Or install a prebuilt binary for your platform.`
594
990
  };
595
991
  runtimeDir = getDirname2();
596
992
  requireFromRuntime = typeof module2 !== "undefined" && typeof module2.require === "function" ? module2.require.bind(module2) : module$12.createRequire(path7__default.default.join(runtimeDir, "noop.cjs"));
597
- log2 = createLogger2("compiler:native");
993
+ log2 = (0, import_shared222.createLogger)("compiler:native");
598
994
  }
599
995
  });
600
996
  function requireNative() {
@@ -2319,13 +2715,7 @@ body {
2319
2715
  `;
2320
2716
  }
2321
2717
  });
2322
- var globalRegistry = {
2323
- transforms: [],
2324
- tokens: {}
2325
- };
2326
- function getGlobalRegistry() {
2327
- return globalRegistry;
2328
- }
2718
+ var import_plugin = __toESM222(require_plugin());
2329
2719
  function mergeClassesStatic(classes) {
2330
2720
  return tailwindMerge.twMerge(classes);
2331
2721
  }
@@ -3064,7 +3454,7 @@ ${subAssignments}
3064
3454
  compoundVariants: compounds,
3065
3455
  defaultVariants: defaults
3066
3456
  };
3067
- const registry = getGlobalRegistry();
3457
+ const registry = (0, import_plugin.getGlobalRegistry)();
3068
3458
  if (registry.transforms.length > 0) {
3069
3459
  const componentName = `Tw${tag}`;
3070
3460
  for (const transform of registry.transforms) {
@@ -3244,8 +3634,8 @@ Please ensure the native module is properly built.`
3244
3634
  function scanFiles(dir) {
3245
3635
  const files = [];
3246
3636
  function walk(current) {
3247
- if (!fs3__default.default.existsSync(current)) return;
3248
- const entries = fs3__default.default.readdirSync(current, { withFileTypes: true });
3637
+ if (!fs2__default.default.existsSync(current)) return;
3638
+ const entries = fs2__default.default.readdirSync(current, { withFileTypes: true });
3249
3639
  for (const entry of entries) {
3250
3640
  if (SKIP_DIRS.has(entry.name)) continue;
3251
3641
  const fullPath = path7__default.default.join(current, entry.name);
@@ -3266,7 +3656,7 @@ Please ensure the native module is properly built.`
3266
3656
  const files = scanFiles(absDir);
3267
3657
  for (const file of files) {
3268
3658
  try {
3269
- const source = fs3__default.default.readFileSync(file, "utf-8");
3659
+ const source = fs2__default.default.readFileSync(file, "utf-8");
3270
3660
  const usage = extractComponentUsage(source);
3271
3661
  for (const [comp, props] of Object.entries(usage)) {
3272
3662
  if (!combined[comp]) combined[comp] = {};
@@ -3405,19 +3795,19 @@ Please ensure the native module is properly built.`
3405
3795
  }
3406
3796
  return { css, report };
3407
3797
  }
3408
- init_src();
3798
+ var import_shared2222 = __toESM222(require_shared222());
3409
3799
  var CACHE_DIR = ".tw-cache";
3410
3800
  var HASH_CACHE_FILE = path7__default.default.join(CACHE_DIR, "file-hashes.json");
3411
3801
  var GRAPH_CACHE_FILE = path7__default.default.join(CACHE_DIR, "dep-graph.json");
3412
3802
  function ensureCacheDir() {
3413
- if (!fs3__default.default.existsSync(CACHE_DIR)) {
3414
- fs3__default.default.mkdirSync(CACHE_DIR, { recursive: true });
3803
+ if (!fs2__default.default.existsSync(CACHE_DIR)) {
3804
+ fs2__default.default.mkdirSync(CACHE_DIR, { recursive: true });
3415
3805
  }
3416
3806
  }
3417
3807
  function loadHashCache() {
3418
3808
  try {
3419
- if (fs3__default.default.existsSync(HASH_CACHE_FILE)) {
3420
- const raw = fs3__default.default.readFileSync(HASH_CACHE_FILE, "utf-8");
3809
+ if (fs2__default.default.existsSync(HASH_CACHE_FILE)) {
3810
+ const raw = fs2__default.default.readFileSync(HASH_CACHE_FILE, "utf-8");
3421
3811
  return new Map(Object.entries(JSON.parse(raw)));
3422
3812
  }
3423
3813
  } catch {
@@ -3428,14 +3818,14 @@ Please ensure the native module is properly built.`
3428
3818
  try {
3429
3819
  ensureCacheDir();
3430
3820
  const obj = Object.fromEntries(cache2);
3431
- fs3__default.default.writeFileSync(HASH_CACHE_FILE, JSON.stringify(obj, null, 2));
3821
+ fs2__default.default.writeFileSync(HASH_CACHE_FILE, JSON.stringify(obj, null, 2));
3432
3822
  } catch {
3433
3823
  }
3434
3824
  }
3435
3825
  function loadGraphCache() {
3436
3826
  try {
3437
- if (fs3__default.default.existsSync(GRAPH_CACHE_FILE)) {
3438
- const raw = fs3__default.default.readFileSync(GRAPH_CACHE_FILE, "utf-8");
3827
+ if (fs2__default.default.existsSync(GRAPH_CACHE_FILE)) {
3828
+ const raw = fs2__default.default.readFileSync(GRAPH_CACHE_FILE, "utf-8");
3439
3829
  const data = JSON.parse(raw);
3440
3830
  return new Map(Object.entries(data));
3441
3831
  }
@@ -3447,7 +3837,7 @@ Please ensure the native module is properly built.`
3447
3837
  try {
3448
3838
  ensureCacheDir();
3449
3839
  const obj = Object.fromEntries(graph);
3450
- fs3__default.default.writeFileSync(GRAPH_CACHE_FILE, JSON.stringify(obj, null, 2));
3840
+ fs2__default.default.writeFileSync(GRAPH_CACHE_FILE, JSON.stringify(obj, null, 2));
3451
3841
  } catch {
3452
3842
  }
3453
3843
  }
@@ -3470,7 +3860,7 @@ Please ensure the native module is properly built.`
3470
3860
  return result;
3471
3861
  }
3472
3862
  function hashFileContent(content) {
3473
- return hashContent(content, "md5", 8);
3863
+ return (0, import_shared2222.hashContent)(content, "md5", 8);
3474
3864
  }
3475
3865
  function makeAtomicClass(declaration, modifier) {
3476
3866
  const key = modifier ? `${declaration}::${modifier}` : declaration;
@@ -3552,8 +3942,8 @@ Please ensure the native module is properly built.`
3552
3942
  }
3553
3943
  loadFromDisk() {
3554
3944
  try {
3555
- if (fs3__default.default.existsSync(this.outputPath)) {
3556
- const css = fs3__default.default.readFileSync(this.outputPath, "utf-8");
3945
+ if (fs2__default.default.existsSync(this.outputPath)) {
3946
+ const css = fs2__default.default.readFileSync(this.outputPath, "utf-8");
3557
3947
  const ruleRe = /(\.tw-[a-z0-9]+(?::[\w-]+)?)\{([^}]+)\}|(@[^{]+)\{(\.tw-[a-z0-9]+)\{([^}]+)\}\}/g;
3558
3948
  let m;
3559
3949
  while ((m = ruleRe.exec(css)) !== null) {
@@ -3583,7 +3973,7 @@ Please ensure the native module is properly built.`
3583
3973
  try {
3584
3974
  ensureCacheDir();
3585
3975
  const css = Array.from(this.ruleMap.values()).join("\n");
3586
- await fs3__default.default.promises.writeFile(this.outputPath, css, "utf-8");
3976
+ await fs2__default.default.promises.writeFile(this.outputPath, css, "utf-8");
3587
3977
  this.dirty = false;
3588
3978
  } catch {
3589
3979
  }
@@ -3594,7 +3984,7 @@ Please ensure the native module is properly built.`
3594
3984
  try {
3595
3985
  ensureCacheDir();
3596
3986
  const css = Array.from(this.ruleMap.values()).join("\n");
3597
- fs3__default.default.writeFileSync(this.outputPath, css, "utf-8");
3987
+ fs2__default.default.writeFileSync(this.outputPath, css, "utf-8");
3598
3988
  this.dirty = false;
3599
3989
  } catch {
3600
3990
  }
@@ -4551,7 +4941,7 @@ The native binding is required for all transformations.`
4551
4941
  _cachedCwd = cwd;
4552
4942
  for (const file of CONFIG_FILES) {
4553
4943
  const fullPath = path7__default.default.join(cwd, file);
4554
- if (fs3__default.default.existsSync(fullPath)) {
4944
+ if (fs2__default.default.existsSync(fullPath)) {
4555
4945
  try {
4556
4946
  const mod = __require2222(fullPath);
4557
4947
  const config = mod.default ?? mod;
@@ -4579,14 +4969,14 @@ The native binding is required for all transformations.`
4579
4969
  if (config.content?.files) {
4580
4970
  return config.content.files.filter((f) => typeof f === "string");
4581
4971
  }
4582
- return ["src", "app", "pages", "components"].filter((d) => fs3__default.default.existsSync(path7__default.default.join(cwd, d))).map((d) => `./${d}/**/*.{tsx,ts,jsx,js}`);
4972
+ return ["src", "app", "pages", "components"].filter((d) => fs2__default.default.existsSync(path7__default.default.join(cwd, d))).map((d) => `./${d}/**/*.{tsx,ts,jsx,js}`);
4583
4973
  }
4584
4974
  function invalidateConfigCache() {
4585
4975
  _cachedConfig = null;
4586
4976
  _cachedCwd = "";
4587
4977
  }
4588
4978
  function isZeroConfig(cwd = process.cwd()) {
4589
- return !CONFIG_FILES.some((f) => fs3__default.default.existsSync(path7__default.default.join(cwd, f)));
4979
+ return !CONFIG_FILES.some((f) => fs2__default.default.existsSync(path7__default.default.join(cwd, f)));
4590
4980
  }
4591
4981
  function bootstrapZeroConfig(cwd = process.cwd()) {
4592
4982
  let generatedConfig = false;
@@ -4598,13 +4988,13 @@ The native binding is required for all transformations.`
4598
4988
  "src/index.css",
4599
4989
  "src/styles/globals.css"
4600
4990
  ];
4601
- const hasGlobalCss = cssPaths.some((p) => fs3__default.default.existsSync(path7__default.default.join(cwd, p)));
4991
+ const hasGlobalCss = cssPaths.some((p) => fs2__default.default.existsSync(path7__default.default.join(cwd, p)));
4602
4992
  if (!hasGlobalCss) {
4603
4993
  const { defaultGlobalCss: defaultGlobalCss2 } = (init_defaultPreset(), __toCommonJS2(defaultPreset_exports));
4604
- const appDir = fs3__default.default.existsSync(path7__default.default.join(cwd, "src/app")) ? "src/app" : fs3__default.default.existsSync(path7__default.default.join(cwd, "app")) ? "app" : "src";
4994
+ const appDir = fs2__default.default.existsSync(path7__default.default.join(cwd, "src/app")) ? "src/app" : fs2__default.default.existsSync(path7__default.default.join(cwd, "app")) ? "app" : "src";
4605
4995
  const cssPath = path7__default.default.join(cwd, appDir, "globals.css");
4606
- if (fs3__default.default.existsSync(path7__default.default.dirname(cssPath))) {
4607
- fs3__default.default.writeFileSync(cssPath, defaultGlobalCss2);
4996
+ if (fs2__default.default.existsSync(path7__default.default.dirname(cssPath))) {
4997
+ fs2__default.default.writeFileSync(cssPath, defaultGlobalCss2);
4608
4998
  generatedCss = true;
4609
4999
  console.log(`[tailwind-styled-v4] Generated ${cssPath}`);
4610
5000
  }
@@ -4677,8 +5067,8 @@ Please build the native module.`
4677
5067
  }
4678
5068
  var SCAN_EXTENSIONS2 = [".tsx", ".ts", ".jsx", ".js"];
4679
5069
  function scanDir(dir, files = []) {
4680
- if (!fs3__default.default.existsSync(dir)) return files;
4681
- const entries = fs3__default.default.readdirSync(dir, { withFileTypes: true });
5070
+ if (!fs2__default.default.existsSync(dir)) return files;
5071
+ const entries = fs2__default.default.readdirSync(dir, { withFileTypes: true });
4682
5072
  for (const entry of entries) {
4683
5073
  if (entry.name === "node_modules" || entry.name === ".next" || entry.name === "dist") continue;
4684
5074
  const fullPath = path7__default.default.join(dir, entry.name);
@@ -4697,7 +5087,7 @@ Please build the native module.`
4697
5087
  const files = scanDir(absDir);
4698
5088
  for (const file of files) {
4699
5089
  try {
4700
- const source = fs3__default.default.readFileSync(file, "utf-8");
5090
+ const source = fs2__default.default.readFileSync(file, "utf-8");
4701
5091
  const classes = extractAllClasses2(source);
4702
5092
  classes.forEach((c) => allClasses.add(c));
4703
5093
  } catch {
@@ -4706,13 +5096,13 @@ Please build the native module.`
4706
5096
  }
4707
5097
  const sorted = Array.from(allClasses).sort();
4708
5098
  const absOutput = path7__default.default.isAbsolute(outputPath) ? outputPath : path7__default.default.resolve(cwd, outputPath);
4709
- fs3__default.default.writeFileSync(absOutput, JSON.stringify(sorted, null, 2));
5099
+ fs2__default.default.writeFileSync(absOutput, JSON.stringify(sorted, null, 2));
4710
5100
  console.log(`[tailwind-styled-v4] Safelist: ${sorted.length} classes \u2192 ${absOutput}`);
4711
5101
  return sorted;
4712
5102
  }
4713
5103
  function loadSafelist(safelistPath) {
4714
5104
  try {
4715
- const content = fs3__default.default.readFileSync(safelistPath, "utf-8");
5105
+ const content = fs2__default.default.readFileSync(safelistPath, "utf-8");
4716
5106
  return JSON.parse(content);
4717
5107
  } catch {
4718
5108
  return [];
@@ -4725,7 +5115,7 @@ Please build the native module.`
4725
5115
  const files = scanDir(absDir);
4726
5116
  for (const file of files) {
4727
5117
  try {
4728
- const source = fs3__default.default.readFileSync(file, "utf-8");
5118
+ const source = fs2__default.default.readFileSync(file, "utf-8");
4729
5119
  const classes = extractAllClasses2(source);
4730
5120
  classes.forEach((c) => allClasses.add(c));
4731
5121
  } catch {
@@ -4734,13 +5124,13 @@ Please build the native module.`
4734
5124
  }
4735
5125
  const sorted = Array.from(allClasses).sort();
4736
5126
  const absOutput = path7__default.default.isAbsolute(outputPath) ? outputPath : path7__default.default.resolve(cwd, outputPath);
4737
- fs3__default.default.mkdirSync(path7__default.default.dirname(absOutput), { recursive: true });
5127
+ fs2__default.default.mkdirSync(path7__default.default.dirname(absOutput), { recursive: true });
4738
5128
  const css = sorted.length > 0 ? `/* Auto-generated by tailwind-styled-v4 \u2014 DO NOT EDIT */
4739
5129
  @source inline("${sorted.join(" ")}");
4740
5130
  ` : `/* Auto-generated by tailwind-styled-v4 \u2014 DO NOT EDIT */
4741
5131
  /* No safelist classes found */
4742
5132
  `;
4743
- fs3__default.default.writeFileSync(absOutput, css);
5133
+ fs2__default.default.writeFileSync(absOutput, css);
4744
5134
  console.log(`[tailwind-styled-v4] Safelist: ${sorted.length} classes \u2192 ${absOutput}`);
4745
5135
  return sorted;
4746
5136
  }
@@ -4848,13 +5238,13 @@ Please build the native module.`
4848
5238
  }
4849
5239
  }
4850
5240
  if (outputDir) {
4851
- const fs6 = __require2222("fs");
4852
- fs6.mkdirSync(outputDir, { recursive: true });
5241
+ const fs5 = __require2222("fs");
5242
+ fs5.mkdirSync(outputDir, { recursive: true });
4853
5243
  for (const result of results) {
4854
5244
  const filename = routeToFilename(result.route);
4855
5245
  const filepath = path7__default.default.join(outputDir, filename);
4856
- fs6.mkdirSync(path7__default.default.dirname(filepath), { recursive: true });
4857
- fs6.writeFileSync(filepath, result.css);
5246
+ fs5.mkdirSync(path7__default.default.dirname(filepath), { recursive: true });
5247
+ fs5.writeFileSync(filepath, result.css);
4858
5248
  }
4859
5249
  const totalSize = results.reduce((sum, r) => sum + r.sizeBytes, 0);
4860
5250
  console.log(