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.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
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
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
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
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
|
|
467
|
-
"
|
|
468
|
-
|
|
469
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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 (!
|
|
3242
|
-
const entries =
|
|
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 =
|
|
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
|
-
|
|
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 (!
|
|
3408
|
-
|
|
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 (
|
|
3414
|
-
const raw =
|
|
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
|
-
|
|
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 (
|
|
3432
|
-
const raw =
|
|
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
|
-
|
|
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 (
|
|
3550
|
-
const css =
|
|
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
|
|
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
|
-
|
|
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 (
|
|
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) =>
|
|
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) =>
|
|
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) =>
|
|
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 =
|
|
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 (
|
|
4601
|
-
|
|
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 (!
|
|
4675
|
-
const entries =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4846
|
-
|
|
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
|
-
|
|
4851
|
-
|
|
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(
|