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/cli.js +477 -87
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +477 -87
- package/dist/cli.mjs.map +1 -1
- package/dist/index.js +477 -87
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +477 -87
- package/dist/index.mjs.map +1 -1
- package/dist/next.js +477 -87
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +477 -87
- package/dist/next.mjs.map +1 -1
- package/dist/vite.js +477 -87
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +477 -87
- package/dist/vite.mjs.map +1 -1
- package/package.json +7 -4
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
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
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
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
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
|
|
473
|
-
"
|
|
474
|
-
|
|
475
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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 (!
|
|
3248
|
-
const entries =
|
|
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 =
|
|
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
|
-
|
|
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 (!
|
|
3414
|
-
|
|
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 (
|
|
3420
|
-
const raw =
|
|
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
|
-
|
|
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 (
|
|
3438
|
-
const raw =
|
|
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
|
-
|
|
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 (
|
|
3556
|
-
const css =
|
|
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
|
|
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
|
-
|
|
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 (
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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 =
|
|
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 (
|
|
4607
|
-
|
|
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 (!
|
|
4681
|
-
const entries =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4852
|
-
|
|
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
|
-
|
|
4857
|
-
|
|
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(
|