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.mjs CHANGED
@@ -388,21 +388,23 @@ var require_animate = __commonJS({
388
388
  var __toCommonJS = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
389
389
  var require_compiler = __commonJS222({
390
390
  "dist/compiler.js"(exports$122, module2) {
391
- var crypto = __require222("crypto");
392
- var fs32 = __require222("fs");
393
391
  var module$12 = __require222("module");
394
392
  var path7 = __require222("path");
395
393
  var url22 = __require222("url");
396
394
  var tailwindMerge = __require222("tailwind-merge");
395
+ var fs22 = __require222("fs");
396
+ var crypto = __require222("crypto");
397
397
  var _documentCurrentScript222 = typeof document !== "undefined" ? document.currentScript : null;
398
398
  function _interopDefault22(e) {
399
399
  return e && e.__esModule ? e : { default: e };
400
400
  }
401
- var fs3__default = /* @__PURE__ */ _interopDefault22(fs32);
402
401
  var path7__default = /* @__PURE__ */ _interopDefault22(path7);
402
+ var fs2__default = /* @__PURE__ */ _interopDefault22(fs22);
403
+ var __create222 = Object.create;
403
404
  var __defProp222 = Object.defineProperty;
404
405
  var __getOwnPropDesc222 = Object.getOwnPropertyDescriptor;
405
406
  var __getOwnPropNames2222 = Object.getOwnPropertyNames;
407
+ var __getProtoOf222 = Object.getPrototypeOf;
406
408
  var __hasOwnProp222 = Object.prototype.hasOwnProperty;
407
409
  var __require2222 = /* @__PURE__ */ ((x) => typeof __require222 !== "undefined" ? __require222 : typeof Proxy !== "undefined" ? new Proxy(x, {
408
410
  get: (a, b) => (typeof __require222 !== "undefined" ? __require222 : a)[b]
@@ -413,6 +415,9 @@ var require_animate = __commonJS({
413
415
  var __esm2 = (fn, res) => function __init() {
414
416
  return fn && (res = (0, fn[__getOwnPropNames2222(fn)[0]])(fn = 0)), res;
415
417
  };
418
+ var __commonJS2222 = (cb, mod) => function __require22222() {
419
+ return mod || (0, cb[__getOwnPropNames2222(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
420
+ };
416
421
  var __export2 = (target, all) => {
417
422
  for (var name in all)
418
423
  __defProp222(target, name, { get: all[name], enumerable: true });
@@ -425,48 +430,438 @@ var require_animate = __commonJS({
425
430
  }
426
431
  return to;
427
432
  };
433
+ var __toESM222 = (mod, isNodeMode, target) => (target = mod != null ? __create222(__getProtoOf222(mod)) : {}, __copyProps222(
434
+ // If the importer is in node compatibility mode or this is not an ESM
435
+ // file that has been converted to a CommonJS file using a Babel-
436
+ // compatible transform (i.e. "__esModule" has not been set), then set
437
+ // "default" to the CommonJS "module.exports" for node compatibility.
438
+ __defProp222(target, "default", { value: mod, enumerable: true }),
439
+ mod
440
+ ));
428
441
  var __toCommonJS2 = (mod) => __copyProps222(__defProp222({}, "__esModule", { value: true }), mod);
429
- function getEnvLevel() {
430
- const env = process.env.TWS_LOG_LEVEL?.toLowerCase();
431
- if (env && env in LEVELS) return env;
432
- return process.env.TWS_DEBUG_SCANNER === "1" ? "debug" : "info";
433
- }
434
- function createLogger2(prefix, level) {
435
- let currentLevel = getEnvLevel();
436
- const log22 = (msgLevel, stream, args) => {
437
- if (LEVELS[msgLevel] > LEVELS[currentLevel]) return;
438
- const line = `[${prefix}] ${args.map(String).join(" ")}
439
- `;
440
- process[stream].write(line);
441
- };
442
- return {
443
- error: (...a) => log22("error", "stderr", a),
444
- warn: (...a) => log22("warn", "stderr", a),
445
- info: (...a) => log22("info", "stdout", a),
446
- debug: (...a) => log22("debug", "stderr", a),
447
- setLevel: (l) => {
448
- currentLevel = l;
442
+ var require_plugin = __commonJS2222({
443
+ "dist/plugin.js"(exports$1222) {
444
+ var TOKEN_ENGINE_KEY = "__TW_TOKEN_ENGINE__";
445
+ function resolveTokenEngine() {
446
+ if (typeof globalThis !== "undefined") {
447
+ return globalThis[TOKEN_ENGINE_KEY];
448
+ }
449
+ return null;
449
450
  }
450
- };
451
- }
452
- var LEVELS;
453
- var init_logger = __esm2({
454
- "packages/shared/src/logger.ts"() {
455
- LEVELS = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 };
456
- createLogger2("tailwind-styled");
457
- }
458
- });
459
- function hashContent(content, algorithm = "md5", length = 8) {
460
- return crypto.createHash(algorithm).update(content).digest("hex").slice(0, length);
461
- }
462
- var init_hash = __esm2({
463
- "packages/shared/src/hash.ts"() {
451
+ function readToken(engine, name) {
452
+ if (!engine) return void 0;
453
+ if (typeof engine.getToken === "function") return engine.getToken(name);
454
+ if (typeof engine.getTokens === "function") {
455
+ const tokens = engine.getTokens();
456
+ return tokens?.[name];
457
+ }
458
+ return void 0;
459
+ }
460
+ function createTwPlugin(options = {}) {
461
+ return {
462
+ async resolveId(source, importer) {
463
+ if (!source.startsWith("tw.") && !source.startsWith("tw:")) return null;
464
+ const importPath = source.replace(/^tw[.:]/, "");
465
+ const resolved = await this.resolve(importPath, importer, { skipSelf: true });
466
+ if (resolved) return { id: resolved.id };
467
+ return null;
468
+ },
469
+ async load(id) {
470
+ return null;
471
+ },
472
+ async transform(code, id) {
473
+ return null;
474
+ },
475
+ getToken(name) {
476
+ const engine = resolveTokenEngine();
477
+ return readToken(engine, name);
478
+ },
479
+ subscribeTokens(callback) {
480
+ const engine = resolveTokenEngine();
481
+ if (!engine) return () => {
482
+ };
483
+ if (typeof engine.subscribeTokens === "function") return engine.subscribeTokens(callback);
484
+ if (typeof engine.subscribe === "function") return engine.subscribe(callback);
485
+ return () => {
486
+ };
487
+ }
488
+ };
489
+ }
490
+ var globalRegistry = {
491
+ transforms: [],
492
+ tokens: {}
493
+ };
494
+ function getGlobalRegistry2() {
495
+ return globalRegistry;
496
+ }
497
+ function registerTransform(transform) {
498
+ globalRegistry.transforms.push(transform);
499
+ }
500
+ function registerToken(name, value) {
501
+ globalRegistry.tokens[name] = value;
502
+ }
503
+ function createRegistry() {
504
+ return {
505
+ variants: /* @__PURE__ */ new Map(),
506
+ utilities: /* @__PURE__ */ new Map(),
507
+ tokens: /* @__PURE__ */ new Map(),
508
+ transforms: [],
509
+ cssHooks: [],
510
+ buildHooks: [],
511
+ plugins: /* @__PURE__ */ new Set()
512
+ };
513
+ }
514
+ var _globalRegistry = createRegistry();
515
+ function resetGlobalRegistry() {
516
+ _globalRegistry = createRegistry();
517
+ }
518
+ function createContext(registry, config = {}) {
519
+ return {
520
+ config,
521
+ addVariant(name, resolver) {
522
+ registry.variants.set(name, resolver);
523
+ },
524
+ addUtility(name, styles) {
525
+ registry.utilities.set(name, styles);
526
+ },
527
+ addToken(name, value) {
528
+ const normalized = name.replace(/[^a-zA-Z0-9-]/g, "-").toLowerCase();
529
+ registry.tokens.set(normalized, value);
530
+ },
531
+ addTransform(fn) {
532
+ registry.transforms.push(fn);
533
+ },
534
+ onGenerateCSS(hook) {
535
+ registry.cssHooks.push(hook);
536
+ },
537
+ onBuildEnd(hook) {
538
+ registry.buildHooks.push(hook);
539
+ },
540
+ getToken(name) {
541
+ return readToken(resolveTokenEngine(), name);
542
+ },
543
+ subscribeTokens(callback) {
544
+ const engine = resolveTokenEngine();
545
+ if (!engine) return () => {
546
+ };
547
+ if (typeof engine.subscribeTokens === "function") return engine.subscribeTokens(callback);
548
+ if (typeof engine.subscribe === "function") return engine.subscribe(callback);
549
+ return () => {
550
+ };
551
+ }
552
+ };
553
+ }
554
+ function createTw(config = {}) {
555
+ const registry = createRegistry();
556
+ const ctx = createContext(registry, config);
557
+ const result = ctx;
558
+ result.registry = {
559
+ plugins: registry.plugins,
560
+ variants: registry.variants,
561
+ utilities: registry.utilities,
562
+ tokens: registry.tokens
563
+ };
564
+ result.use = (plugin) => {
565
+ plugin.setup(ctx);
566
+ registry.plugins.add(plugin.name);
567
+ };
568
+ if (config.plugins && Array.isArray(config.plugins)) {
569
+ for (const plugin of config.plugins) {
570
+ if (plugin && plugin.name) {
571
+ result.use(plugin);
572
+ }
573
+ }
574
+ }
575
+ return result;
576
+ }
577
+ function use(plugin) {
578
+ const ctx = createContext(_globalRegistry);
579
+ plugin.setup(ctx);
580
+ }
581
+ function presetTokens(tokens) {
582
+ return {
583
+ name: "preset-tokens",
584
+ setup(ctx) {
585
+ for (const [name, value] of Object.entries(tokens)) {
586
+ ctx.addToken(name, value);
587
+ }
588
+ }
589
+ };
590
+ }
591
+ function presetVariants(variants) {
592
+ return {
593
+ name: "preset-variants",
594
+ setup(ctx) {
595
+ for (const [name, resolver] of Object.entries(variants)) {
596
+ ctx.addVariant(name, resolver);
597
+ }
598
+ }
599
+ };
600
+ }
601
+ function presetScrollbar() {
602
+ return {
603
+ name: "preset-scrollbar",
604
+ setup(ctx) {
605
+ ctx.addVariant("scrollbar-thin", () => "::-webkit-scrollbar{width:8px;height:8px}");
606
+ ctx.addVariant("scrollbar-none", () => "::-webkit-scrollbar{display:none}");
607
+ ctx.addUtility("scrollbar-hide", { "-ms-overflow-style": "none", "scrollbar-width": "none" });
608
+ }
609
+ };
610
+ }
611
+ exports$1222.createTw = createTw;
612
+ exports$1222.createTwPlugin = createTwPlugin;
613
+ exports$1222.getGlobalRegistry = getGlobalRegistry2;
614
+ exports$1222.presetScrollbar = presetScrollbar;
615
+ exports$1222.presetTokens = presetTokens;
616
+ exports$1222.presetVariants = presetVariants;
617
+ exports$1222.registerToken = registerToken;
618
+ exports$1222.registerTransform = registerTransform;
619
+ exports$1222.resetGlobalRegistry = resetGlobalRegistry;
620
+ exports$1222.use = use;
464
621
  }
465
622
  });
466
- var init_src = __esm2({
467
- "packages/shared/src/index.ts"() {
468
- init_logger();
469
- init_hash();
623
+ var require_shared222 = __commonJS2222({
624
+ "dist/shared.js"(exports$1222) {
625
+ var fs5 = __require2222("fs");
626
+ var module$122 = __require2222("module");
627
+ var os = __require2222("os");
628
+ var path9 = __require2222("path");
629
+ var url222 = __require2222("url");
630
+ var crypto2 = __require2222("crypto");
631
+ function _interopDefault222(e) {
632
+ return e && e.__esModule ? e : { default: e };
633
+ }
634
+ var fs__default22 = /* @__PURE__ */ _interopDefault222(fs5);
635
+ var os__default = /* @__PURE__ */ _interopDefault222(os);
636
+ var path__default2 = /* @__PURE__ */ _interopDefault222(path9);
637
+ var LRUCache3 = class {
638
+ constructor(max = 256, ttlMs = null) {
639
+ this.map = /* @__PURE__ */ new Map();
640
+ this.max = max;
641
+ this.ttlMs = ttlMs;
642
+ }
643
+ get(key) {
644
+ const entry = this.map.get(key);
645
+ if (!entry) return void 0;
646
+ if (this.ttlMs !== null && Date.now() - entry.ts > this.ttlMs) {
647
+ this.map.delete(key);
648
+ return void 0;
649
+ }
650
+ this.map.delete(key);
651
+ this.map.set(key, entry);
652
+ return entry.value;
653
+ }
654
+ set(key, value) {
655
+ if (this.map.has(key)) this.map.delete(key);
656
+ else if (this.map.size >= this.max) {
657
+ this.map.delete(this.map.keys().next().value);
658
+ }
659
+ this.map.set(key, { value, ts: Date.now() });
660
+ }
661
+ has(key) {
662
+ return this.get(key) !== void 0;
663
+ }
664
+ delete(key) {
665
+ this.map.delete(key);
666
+ }
667
+ clear() {
668
+ this.map.clear();
669
+ }
670
+ get size() {
671
+ return this.map.size;
672
+ }
673
+ keys() {
674
+ return this.map.keys();
675
+ }
676
+ *values() {
677
+ for (const entry of this.map.values()) {
678
+ yield entry.value;
679
+ }
680
+ }
681
+ *entries() {
682
+ for (const [key, entry] of this.map.entries()) {
683
+ yield [key, entry.value];
684
+ }
685
+ }
686
+ };
687
+ function getPlatformExtension() {
688
+ const platform = os__default.default.platform();
689
+ switch (platform) {
690
+ case "win32":
691
+ return ".node";
692
+ case "darwin":
693
+ return ".dylib";
694
+ case "linux":
695
+ return ".so";
696
+ default:
697
+ return ".node";
698
+ }
699
+ }
700
+ function formatErrorMessage22(error) {
701
+ return error instanceof Error ? error.message : String(error);
702
+ }
703
+ function resolveRuntimeDir2(dirnameValue, moduleImportUrl) {
704
+ if (typeof dirnameValue === "string" && dirnameValue.length > 0) return dirnameValue;
705
+ return path__default2.default.dirname(url222.fileURLToPath(moduleImportUrl));
706
+ }
707
+ function resolveNativeBindingCandidates2(options) {
708
+ const out = [];
709
+ const envVarNames = options.envVarNames ?? ["TWS_NATIVE_PATH"];
710
+ for (const envVarName of envVarNames) {
711
+ const raw = process.env[envVarName]?.trim();
712
+ if (!raw) continue;
713
+ const resolved = path__default2.default.resolve(raw);
714
+ if (options.enforceNodeExtensionForEnvPath) {
715
+ if (path__default2.default.extname(resolved).toLowerCase() !== ".node") {
716
+ throw new Error(
717
+ `Invalid native binding path from ${envVarName}="${raw}". Expected a .node file.`
718
+ );
719
+ }
720
+ }
721
+ out.push(resolved);
722
+ }
723
+ if (options.includeDefaultCandidates !== false) {
724
+ const ext = options.platformExtension ?? getPlatformExtension();
725
+ const defaultBindingName = `tailwind_styled_parser${ext}`;
726
+ out.push(path__default2.default.resolve(process.cwd(), "native", defaultBindingName));
727
+ out.push(path__default2.default.resolve(options.runtimeDir, "..", "..", "..", "native", defaultBindingName));
728
+ }
729
+ return Array.from(new Set(out));
730
+ }
731
+ function parseDebugToken(namespace, token) {
732
+ if (token === "*" || token === namespace || token === "tailwind-styled:*") return true;
733
+ return token.endsWith("*") && namespace.startsWith(token.slice(0, -1));
734
+ }
735
+ function isDebugNamespaceEnabled(namespace) {
736
+ if (process.env.TWS_DEBUG === "1" || process.env.TAILWIND_STYLED_DEBUG === "1") return true;
737
+ const raw = process.env.DEBUG;
738
+ if (!raw) return false;
739
+ return raw.split(",").map((token) => token.trim()).some((token) => parseDebugToken(namespace, token));
740
+ }
741
+ function createDebugLogger2(namespace, label = namespace) {
742
+ const debugEnabled = isDebugNamespaceEnabled(namespace);
743
+ return (message) => {
744
+ if (!debugEnabled) return;
745
+ console.debug(`[${label}] ${message}`);
746
+ };
747
+ }
748
+ function loadNativeBinding2(options) {
749
+ const req = module$122.createRequire(path__default2.default.join(options.runtimeDir, "noop.cjs"));
750
+ const loadErrors2 = [];
751
+ for (const candidate of options.candidates) {
752
+ if (!fs__default22.default.existsSync(candidate)) continue;
753
+ try {
754
+ const mod = req(candidate);
755
+ if (options.isValid(mod)) {
756
+ return {
757
+ binding: mod,
758
+ loadedPath: candidate,
759
+ loadErrors: loadErrors2
760
+ };
761
+ }
762
+ loadErrors2.push({
763
+ path: candidate,
764
+ message: options.invalidExportMessage
765
+ });
766
+ } catch (error) {
767
+ loadErrors2.push({
768
+ path: candidate,
769
+ message: formatErrorMessage22(error)
770
+ });
771
+ }
772
+ }
773
+ return {
774
+ binding: null,
775
+ loadedPath: null,
776
+ loadErrors: loadErrors2
777
+ };
778
+ }
779
+ var LEVELS = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 };
780
+ function getEnvLevel() {
781
+ const env = process.env.TWS_LOG_LEVEL?.toLowerCase();
782
+ if (env && env in LEVELS) return env;
783
+ return process.env.TWS_DEBUG_SCANNER === "1" ? "debug" : "info";
784
+ }
785
+ function createLogger2(prefix, level) {
786
+ let currentLevel = level ?? getEnvLevel();
787
+ const log22 = (msgLevel, stream, args) => {
788
+ if (LEVELS[msgLevel] > LEVELS[currentLevel]) return;
789
+ const line = `[${prefix}] ${args.map(String).join(" ")}
790
+ `;
791
+ process[stream].write(line);
792
+ };
793
+ return {
794
+ error: (...a) => log22("error", "stderr", a),
795
+ warn: (...a) => log22("warn", "stderr", a),
796
+ info: (...a) => log22("info", "stdout", a),
797
+ debug: (...a) => log22("debug", "stderr", a),
798
+ setLevel: (l) => {
799
+ currentLevel = l;
800
+ }
801
+ };
802
+ }
803
+ var logger = createLogger2("tailwind-styled");
804
+ function hashContent2(content, algorithm = "md5", length = 8) {
805
+ return crypto2.createHash(algorithm).update(content).digest("hex").slice(0, length);
806
+ }
807
+ function hashFile(filePath, algorithm = "md5", length = 8) {
808
+ try {
809
+ const content = fs__default22.default.readFileSync(filePath, "utf8");
810
+ return hashContent2(content, algorithm, length);
811
+ } catch {
812
+ return "00000000";
813
+ }
814
+ }
815
+ function debounce(fn, ms) {
816
+ let timer = null;
817
+ return ((...args) => {
818
+ if (timer) clearTimeout(timer);
819
+ timer = setTimeout(() => {
820
+ timer = null;
821
+ fn(...args);
822
+ }, ms);
823
+ });
824
+ }
825
+ function throttle(fn, ms) {
826
+ let last = 0;
827
+ return ((...args) => {
828
+ const now = Date.now();
829
+ if (now - last >= ms) {
830
+ last = now;
831
+ fn(...args);
832
+ }
833
+ });
834
+ }
835
+ function parseVersion(v) {
836
+ const parts = v.replace(/^v/, "").split(".").map((p) => {
837
+ const n = Number(p);
838
+ return Number.isNaN(n) ? 0 : n;
839
+ });
840
+ const [major = 0, minor = 0, patch = 0] = parts;
841
+ return { major, minor, patch };
842
+ }
843
+ function satisfiesMinVersion(version, minVersion) {
844
+ const v = parseVersion(version);
845
+ const min = parseVersion(minVersion);
846
+ if (v.major !== min.major) return v.major > min.major;
847
+ if (v.minor !== min.minor) return v.minor > min.minor;
848
+ return v.patch >= min.patch;
849
+ }
850
+ exports$1222.LRUCache = LRUCache3;
851
+ exports$1222.createDebugLogger = createDebugLogger2;
852
+ exports$1222.createLogger = createLogger2;
853
+ exports$1222.debounce = debounce;
854
+ exports$1222.formatErrorMessage = formatErrorMessage22;
855
+ exports$1222.hashContent = hashContent2;
856
+ exports$1222.hashFile = hashFile;
857
+ exports$1222.isDebugNamespaceEnabled = isDebugNamespaceEnabled;
858
+ exports$1222.loadNativeBinding = loadNativeBinding2;
859
+ exports$1222.logger = logger;
860
+ exports$1222.parseVersion = parseVersion;
861
+ exports$1222.resolveNativeBindingCandidates = resolveNativeBindingCandidates2;
862
+ exports$1222.resolveRuntimeDir = resolveRuntimeDir2;
863
+ exports$1222.satisfiesMinVersion = satisfiesMinVersion;
864
+ exports$1222.throttle = throttle;
470
865
  }
471
866
  });
472
867
  var nativeBridge_exports = {};
@@ -569,6 +964,7 @@ Or install a prebuilt binary for your platform.`
569
964
  metadata
570
965
  };
571
966
  }
967
+ var import_shared222;
572
968
  var getDirname2;
573
969
  var runtimeDir;
574
970
  var requireFromRuntime;
@@ -576,7 +972,7 @@ Or install a prebuilt binary for your platform.`
576
972
  var log2;
577
973
  var init_nativeBridge = __esm2({
578
974
  "packages/compiler/src/nativeBridge.ts"() {
579
- init_src();
975
+ import_shared222 = __toESM222(require_shared222());
580
976
  getDirname2 = () => {
581
977
  if (typeof __dirname !== "undefined") {
582
978
  return __dirname;
@@ -588,7 +984,7 @@ Or install a prebuilt binary for your platform.`
588
984
  };
589
985
  runtimeDir = getDirname2();
590
986
  requireFromRuntime = typeof module2 !== "undefined" && typeof module2.require === "function" ? module2.require.bind(module2) : module$12.createRequire(path7__default.default.join(runtimeDir, "noop.cjs"));
591
- log2 = createLogger2("compiler:native");
987
+ log2 = (0, import_shared222.createLogger)("compiler:native");
592
988
  }
593
989
  });
594
990
  function requireNative() {
@@ -2313,13 +2709,7 @@ body {
2313
2709
  `;
2314
2710
  }
2315
2711
  });
2316
- var globalRegistry = {
2317
- transforms: [],
2318
- tokens: {}
2319
- };
2320
- function getGlobalRegistry() {
2321
- return globalRegistry;
2322
- }
2712
+ var import_plugin = __toESM222(require_plugin());
2323
2713
  function mergeClassesStatic(classes) {
2324
2714
  return tailwindMerge.twMerge(classes);
2325
2715
  }
@@ -3058,7 +3448,7 @@ ${subAssignments}
3058
3448
  compoundVariants: compounds,
3059
3449
  defaultVariants: defaults
3060
3450
  };
3061
- const registry = getGlobalRegistry();
3451
+ const registry = (0, import_plugin.getGlobalRegistry)();
3062
3452
  if (registry.transforms.length > 0) {
3063
3453
  const componentName = `Tw${tag}`;
3064
3454
  for (const transform of registry.transforms) {
@@ -3238,8 +3628,8 @@ Please ensure the native module is properly built.`
3238
3628
  function scanFiles(dir) {
3239
3629
  const files = [];
3240
3630
  function walk(current) {
3241
- if (!fs3__default.default.existsSync(current)) return;
3242
- const entries = fs3__default.default.readdirSync(current, { withFileTypes: true });
3631
+ if (!fs2__default.default.existsSync(current)) return;
3632
+ const entries = fs2__default.default.readdirSync(current, { withFileTypes: true });
3243
3633
  for (const entry of entries) {
3244
3634
  if (SKIP_DIRS.has(entry.name)) continue;
3245
3635
  const fullPath = path7__default.default.join(current, entry.name);
@@ -3260,7 +3650,7 @@ Please ensure the native module is properly built.`
3260
3650
  const files = scanFiles(absDir);
3261
3651
  for (const file of files) {
3262
3652
  try {
3263
- const source = fs3__default.default.readFileSync(file, "utf-8");
3653
+ const source = fs2__default.default.readFileSync(file, "utf-8");
3264
3654
  const usage = extractComponentUsage(source);
3265
3655
  for (const [comp, props] of Object.entries(usage)) {
3266
3656
  if (!combined[comp]) combined[comp] = {};
@@ -3399,19 +3789,19 @@ Please ensure the native module is properly built.`
3399
3789
  }
3400
3790
  return { css, report };
3401
3791
  }
3402
- init_src();
3792
+ var import_shared2222 = __toESM222(require_shared222());
3403
3793
  var CACHE_DIR = ".tw-cache";
3404
3794
  var HASH_CACHE_FILE = path7__default.default.join(CACHE_DIR, "file-hashes.json");
3405
3795
  var GRAPH_CACHE_FILE = path7__default.default.join(CACHE_DIR, "dep-graph.json");
3406
3796
  function ensureCacheDir() {
3407
- if (!fs3__default.default.existsSync(CACHE_DIR)) {
3408
- fs3__default.default.mkdirSync(CACHE_DIR, { recursive: true });
3797
+ if (!fs2__default.default.existsSync(CACHE_DIR)) {
3798
+ fs2__default.default.mkdirSync(CACHE_DIR, { recursive: true });
3409
3799
  }
3410
3800
  }
3411
3801
  function loadHashCache() {
3412
3802
  try {
3413
- if (fs3__default.default.existsSync(HASH_CACHE_FILE)) {
3414
- const raw = fs3__default.default.readFileSync(HASH_CACHE_FILE, "utf-8");
3803
+ if (fs2__default.default.existsSync(HASH_CACHE_FILE)) {
3804
+ const raw = fs2__default.default.readFileSync(HASH_CACHE_FILE, "utf-8");
3415
3805
  return new Map(Object.entries(JSON.parse(raw)));
3416
3806
  }
3417
3807
  } catch {
@@ -3422,14 +3812,14 @@ Please ensure the native module is properly built.`
3422
3812
  try {
3423
3813
  ensureCacheDir();
3424
3814
  const obj = Object.fromEntries(cache2);
3425
- fs3__default.default.writeFileSync(HASH_CACHE_FILE, JSON.stringify(obj, null, 2));
3815
+ fs2__default.default.writeFileSync(HASH_CACHE_FILE, JSON.stringify(obj, null, 2));
3426
3816
  } catch {
3427
3817
  }
3428
3818
  }
3429
3819
  function loadGraphCache() {
3430
3820
  try {
3431
- if (fs3__default.default.existsSync(GRAPH_CACHE_FILE)) {
3432
- const raw = fs3__default.default.readFileSync(GRAPH_CACHE_FILE, "utf-8");
3821
+ if (fs2__default.default.existsSync(GRAPH_CACHE_FILE)) {
3822
+ const raw = fs2__default.default.readFileSync(GRAPH_CACHE_FILE, "utf-8");
3433
3823
  const data = JSON.parse(raw);
3434
3824
  return new Map(Object.entries(data));
3435
3825
  }
@@ -3441,7 +3831,7 @@ Please ensure the native module is properly built.`
3441
3831
  try {
3442
3832
  ensureCacheDir();
3443
3833
  const obj = Object.fromEntries(graph);
3444
- fs3__default.default.writeFileSync(GRAPH_CACHE_FILE, JSON.stringify(obj, null, 2));
3834
+ fs2__default.default.writeFileSync(GRAPH_CACHE_FILE, JSON.stringify(obj, null, 2));
3445
3835
  } catch {
3446
3836
  }
3447
3837
  }
@@ -3464,7 +3854,7 @@ Please ensure the native module is properly built.`
3464
3854
  return result;
3465
3855
  }
3466
3856
  function hashFileContent(content) {
3467
- return hashContent(content, "md5", 8);
3857
+ return (0, import_shared2222.hashContent)(content, "md5", 8);
3468
3858
  }
3469
3859
  function makeAtomicClass(declaration, modifier) {
3470
3860
  const key = modifier ? `${declaration}::${modifier}` : declaration;
@@ -3546,8 +3936,8 @@ Please ensure the native module is properly built.`
3546
3936
  }
3547
3937
  loadFromDisk() {
3548
3938
  try {
3549
- if (fs3__default.default.existsSync(this.outputPath)) {
3550
- const css = fs3__default.default.readFileSync(this.outputPath, "utf-8");
3939
+ if (fs2__default.default.existsSync(this.outputPath)) {
3940
+ const css = fs2__default.default.readFileSync(this.outputPath, "utf-8");
3551
3941
  const ruleRe = /(\.tw-[a-z0-9]+(?::[\w-]+)?)\{([^}]+)\}|(@[^{]+)\{(\.tw-[a-z0-9]+)\{([^}]+)\}\}/g;
3552
3942
  let m;
3553
3943
  while ((m = ruleRe.exec(css)) !== null) {
@@ -3577,7 +3967,7 @@ Please ensure the native module is properly built.`
3577
3967
  try {
3578
3968
  ensureCacheDir();
3579
3969
  const css = Array.from(this.ruleMap.values()).join("\n");
3580
- await fs3__default.default.promises.writeFile(this.outputPath, css, "utf-8");
3970
+ await fs2__default.default.promises.writeFile(this.outputPath, css, "utf-8");
3581
3971
  this.dirty = false;
3582
3972
  } catch {
3583
3973
  }
@@ -3588,7 +3978,7 @@ Please ensure the native module is properly built.`
3588
3978
  try {
3589
3979
  ensureCacheDir();
3590
3980
  const css = Array.from(this.ruleMap.values()).join("\n");
3591
- fs3__default.default.writeFileSync(this.outputPath, css, "utf-8");
3981
+ fs2__default.default.writeFileSync(this.outputPath, css, "utf-8");
3592
3982
  this.dirty = false;
3593
3983
  } catch {
3594
3984
  }
@@ -4545,7 +4935,7 @@ The native binding is required for all transformations.`
4545
4935
  _cachedCwd = cwd;
4546
4936
  for (const file of CONFIG_FILES) {
4547
4937
  const fullPath = path7__default.default.join(cwd, file);
4548
- if (fs3__default.default.existsSync(fullPath)) {
4938
+ if (fs2__default.default.existsSync(fullPath)) {
4549
4939
  try {
4550
4940
  const mod = __require2222(fullPath);
4551
4941
  const config = mod.default ?? mod;
@@ -4573,14 +4963,14 @@ The native binding is required for all transformations.`
4573
4963
  if (config.content?.files) {
4574
4964
  return config.content.files.filter((f) => typeof f === "string");
4575
4965
  }
4576
- return ["src", "app", "pages", "components"].filter((d) => fs3__default.default.existsSync(path7__default.default.join(cwd, d))).map((d) => `./${d}/**/*.{tsx,ts,jsx,js}`);
4966
+ return ["src", "app", "pages", "components"].filter((d) => fs2__default.default.existsSync(path7__default.default.join(cwd, d))).map((d) => `./${d}/**/*.{tsx,ts,jsx,js}`);
4577
4967
  }
4578
4968
  function invalidateConfigCache() {
4579
4969
  _cachedConfig = null;
4580
4970
  _cachedCwd = "";
4581
4971
  }
4582
4972
  function isZeroConfig(cwd = process.cwd()) {
4583
- return !CONFIG_FILES.some((f) => fs3__default.default.existsSync(path7__default.default.join(cwd, f)));
4973
+ return !CONFIG_FILES.some((f) => fs2__default.default.existsSync(path7__default.default.join(cwd, f)));
4584
4974
  }
4585
4975
  function bootstrapZeroConfig(cwd = process.cwd()) {
4586
4976
  let generatedConfig = false;
@@ -4592,13 +4982,13 @@ The native binding is required for all transformations.`
4592
4982
  "src/index.css",
4593
4983
  "src/styles/globals.css"
4594
4984
  ];
4595
- const hasGlobalCss = cssPaths.some((p) => fs3__default.default.existsSync(path7__default.default.join(cwd, p)));
4985
+ const hasGlobalCss = cssPaths.some((p) => fs2__default.default.existsSync(path7__default.default.join(cwd, p)));
4596
4986
  if (!hasGlobalCss) {
4597
4987
  const { defaultGlobalCss: defaultGlobalCss2 } = (init_defaultPreset(), __toCommonJS2(defaultPreset_exports));
4598
- 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";
4988
+ 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";
4599
4989
  const cssPath = path7__default.default.join(cwd, appDir, "globals.css");
4600
- if (fs3__default.default.existsSync(path7__default.default.dirname(cssPath))) {
4601
- fs3__default.default.writeFileSync(cssPath, defaultGlobalCss2);
4990
+ if (fs2__default.default.existsSync(path7__default.default.dirname(cssPath))) {
4991
+ fs2__default.default.writeFileSync(cssPath, defaultGlobalCss2);
4602
4992
  generatedCss = true;
4603
4993
  console.log(`[tailwind-styled-v4] Generated ${cssPath}`);
4604
4994
  }
@@ -4671,8 +5061,8 @@ Please build the native module.`
4671
5061
  }
4672
5062
  var SCAN_EXTENSIONS2 = [".tsx", ".ts", ".jsx", ".js"];
4673
5063
  function scanDir(dir, files = []) {
4674
- if (!fs3__default.default.existsSync(dir)) return files;
4675
- const entries = fs3__default.default.readdirSync(dir, { withFileTypes: true });
5064
+ if (!fs2__default.default.existsSync(dir)) return files;
5065
+ const entries = fs2__default.default.readdirSync(dir, { withFileTypes: true });
4676
5066
  for (const entry of entries) {
4677
5067
  if (entry.name === "node_modules" || entry.name === ".next" || entry.name === "dist") continue;
4678
5068
  const fullPath = path7__default.default.join(dir, entry.name);
@@ -4691,7 +5081,7 @@ Please build the native module.`
4691
5081
  const files = scanDir(absDir);
4692
5082
  for (const file of files) {
4693
5083
  try {
4694
- const source = fs3__default.default.readFileSync(file, "utf-8");
5084
+ const source = fs2__default.default.readFileSync(file, "utf-8");
4695
5085
  const classes = extractAllClasses2(source);
4696
5086
  classes.forEach((c) => allClasses.add(c));
4697
5087
  } catch {
@@ -4700,13 +5090,13 @@ Please build the native module.`
4700
5090
  }
4701
5091
  const sorted = Array.from(allClasses).sort();
4702
5092
  const absOutput = path7__default.default.isAbsolute(outputPath) ? outputPath : path7__default.default.resolve(cwd, outputPath);
4703
- fs3__default.default.writeFileSync(absOutput, JSON.stringify(sorted, null, 2));
5093
+ fs2__default.default.writeFileSync(absOutput, JSON.stringify(sorted, null, 2));
4704
5094
  console.log(`[tailwind-styled-v4] Safelist: ${sorted.length} classes \u2192 ${absOutput}`);
4705
5095
  return sorted;
4706
5096
  }
4707
5097
  function loadSafelist(safelistPath) {
4708
5098
  try {
4709
- const content = fs3__default.default.readFileSync(safelistPath, "utf-8");
5099
+ const content = fs2__default.default.readFileSync(safelistPath, "utf-8");
4710
5100
  return JSON.parse(content);
4711
5101
  } catch {
4712
5102
  return [];
@@ -4719,7 +5109,7 @@ Please build the native module.`
4719
5109
  const files = scanDir(absDir);
4720
5110
  for (const file of files) {
4721
5111
  try {
4722
- const source = fs3__default.default.readFileSync(file, "utf-8");
5112
+ const source = fs2__default.default.readFileSync(file, "utf-8");
4723
5113
  const classes = extractAllClasses2(source);
4724
5114
  classes.forEach((c) => allClasses.add(c));
4725
5115
  } catch {
@@ -4728,13 +5118,13 @@ Please build the native module.`
4728
5118
  }
4729
5119
  const sorted = Array.from(allClasses).sort();
4730
5120
  const absOutput = path7__default.default.isAbsolute(outputPath) ? outputPath : path7__default.default.resolve(cwd, outputPath);
4731
- fs3__default.default.mkdirSync(path7__default.default.dirname(absOutput), { recursive: true });
5121
+ fs2__default.default.mkdirSync(path7__default.default.dirname(absOutput), { recursive: true });
4732
5122
  const css = sorted.length > 0 ? `/* Auto-generated by tailwind-styled-v4 \u2014 DO NOT EDIT */
4733
5123
  @source inline("${sorted.join(" ")}");
4734
5124
  ` : `/* Auto-generated by tailwind-styled-v4 \u2014 DO NOT EDIT */
4735
5125
  /* No safelist classes found */
4736
5126
  `;
4737
- fs3__default.default.writeFileSync(absOutput, css);
5127
+ fs2__default.default.writeFileSync(absOutput, css);
4738
5128
  console.log(`[tailwind-styled-v4] Safelist: ${sorted.length} classes \u2192 ${absOutput}`);
4739
5129
  return sorted;
4740
5130
  }
@@ -4842,13 +5232,13 @@ Please build the native module.`
4842
5232
  }
4843
5233
  }
4844
5234
  if (outputDir) {
4845
- const fs6 = __require2222("fs");
4846
- fs6.mkdirSync(outputDir, { recursive: true });
5235
+ const fs5 = __require2222("fs");
5236
+ fs5.mkdirSync(outputDir, { recursive: true });
4847
5237
  for (const result of results) {
4848
5238
  const filename = routeToFilename(result.route);
4849
5239
  const filepath = path7__default.default.join(outputDir, filename);
4850
- fs6.mkdirSync(path7__default.default.dirname(filepath), { recursive: true });
4851
- fs6.writeFileSync(filepath, result.css);
5240
+ fs5.mkdirSync(path7__default.default.dirname(filepath), { recursive: true });
5241
+ fs5.writeFileSync(filepath, result.css);
4852
5242
  }
4853
5243
  const totalSize = results.reduce((sum, r) => sum + r.sizeBytes, 0);
4854
5244
  console.log(