tailwind-styled-v4 5.0.10 → 5.0.11
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/README.md +245 -373
- package/dist/analyzer.js +75 -22
- package/dist/analyzer.js.map +1 -1
- package/dist/analyzer.mjs +74 -21
- package/dist/analyzer.mjs.map +1 -1
- package/dist/animate.js +4 -2
- package/dist/animate.js.map +1 -1
- package/dist/animate.mjs +4 -2
- package/dist/animate.mjs.map +1 -1
- package/dist/atomic.js +20 -5
- package/dist/atomic.js.map +1 -1
- package/dist/atomic.mjs +20 -5
- package/dist/atomic.mjs.map +1 -1
- package/dist/cli.js +174 -67
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +171 -64
- package/dist/cli.mjs.map +1 -1
- package/dist/compiler.d.mts +7 -1
- package/dist/compiler.d.ts +7 -1
- package/dist/compiler.js +53 -27
- package/dist/compiler.js.map +1 -1
- package/dist/compiler.mjs +53 -27
- package/dist/compiler.mjs.map +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/devtools.mjs.map +1 -1
- package/dist/engine.js +159 -61
- package/dist/engine.js.map +1 -1
- package/dist/engine.mjs +159 -61
- package/dist/engine.mjs.map +1 -1
- package/dist/index.browser.mjs +1512 -0
- package/dist/index.browser.mjs.map +1 -0
- package/dist/index.d.mts +94 -12
- package/dist/index.d.ts +94 -12
- package/dist/index.js +436 -106
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +436 -106
- package/dist/index.mjs.map +1 -1
- package/dist/next.js +1946 -47
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +1929 -44
- package/dist/next.mjs.map +1 -1
- package/dist/plugin-api.js.map +1 -1
- package/dist/plugin-api.mjs.map +1 -1
- package/dist/plugin-registry.js +23 -10
- package/dist/plugin-registry.js.map +1 -1
- package/dist/plugin-registry.mjs +23 -11
- package/dist/plugin-registry.mjs.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugin.mjs.map +1 -1
- package/dist/rspack.js.map +1 -1
- package/dist/rspack.mjs.map +1 -1
- package/dist/scanner.js +72 -19
- package/dist/scanner.js.map +1 -1
- package/dist/scanner.mjs +71 -18
- package/dist/scanner.mjs.map +1 -1
- package/dist/shared.js +32 -15
- package/dist/shared.js.map +1 -1
- package/dist/shared.mjs +32 -15
- package/dist/shared.mjs.map +1 -1
- package/dist/svelte.js +38 -12
- package/dist/svelte.js.map +1 -1
- package/dist/svelte.mjs +38 -12
- package/dist/svelte.mjs.map +1 -1
- package/dist/syntax.js +17 -5
- package/dist/syntax.js.map +1 -1
- package/dist/syntax.mjs +17 -5
- package/dist/syntax.mjs.map +1 -1
- package/dist/theme.js +4 -2
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +4 -2
- package/dist/theme.mjs.map +1 -1
- package/dist/turbopackLoader.js +87 -33
- package/dist/turbopackLoader.js.map +1 -1
- package/dist/turbopackLoader.mjs +87 -33
- package/dist/turbopackLoader.mjs.map +1 -1
- package/dist/tw.js +174 -67
- package/dist/tw.js.map +1 -1
- package/dist/tw.mjs +171 -64
- package/dist/tw.mjs.map +1 -1
- package/dist/vite.js +145 -63
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +145 -63
- package/dist/vite.mjs.map +1 -1
- package/dist/vue.js +38 -12
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs +38 -12
- package/dist/vue.mjs.map +1 -1
- package/dist/webpackLoader.js +20 -5
- package/dist/webpackLoader.js.map +1 -1
- package/dist/webpackLoader.mjs +20 -5
- package/dist/webpackLoader.mjs.map +1 -1
- package/native/tailwind-styled-native.node +0 -0
- package/package.json +29 -24
package/dist/analyzer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('crypto');
|
|
4
|
-
var
|
|
4
|
+
var fs4 = require('fs');
|
|
5
5
|
var path5 = require('path');
|
|
6
6
|
var url = require('url');
|
|
7
7
|
var module$1 = require('module');
|
|
@@ -12,7 +12,7 @@ var zod = require('zod');
|
|
|
12
12
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
13
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var fs4__default = /*#__PURE__*/_interopDefault(fs4);
|
|
16
16
|
var path5__default = /*#__PURE__*/_interopDefault(path5);
|
|
17
17
|
|
|
18
18
|
/* tailwind-styled-v4 v5.0.4 | MIT | https://github.com/dictionar32/tailwind-styled-v4 */
|
|
@@ -77,7 +77,7 @@ function loadNativeBinding(options) {
|
|
|
77
77
|
for (const candidate of candidates) {
|
|
78
78
|
const candidatePath = path5__default.default.resolve(runtimeDir, candidate);
|
|
79
79
|
try {
|
|
80
|
-
if (!
|
|
80
|
+
if (!fs4__default.default.existsSync(candidatePath) && !fs4__default.default.existsSync(candidatePath + ".node")) {
|
|
81
81
|
continue;
|
|
82
82
|
}
|
|
83
83
|
const mod = requireNativeModule(candidatePath);
|
|
@@ -109,9 +109,9 @@ function resolveNativeBindingCandidates(options) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
if (!includeDefaultCandidates) return candidates;
|
|
112
|
-
if (
|
|
112
|
+
if (fs4__default.default.existsSync(runtimeDir)) {
|
|
113
113
|
try {
|
|
114
|
-
for (const entry of
|
|
114
|
+
for (const entry of fs4__default.default.readdirSync(runtimeDir)) {
|
|
115
115
|
if (entry.endsWith(".node")) candidates.push(entry);
|
|
116
116
|
}
|
|
117
117
|
} catch {
|
|
@@ -122,11 +122,13 @@ function resolveNativeBindingCandidates(options) {
|
|
|
122
122
|
for (const bin of BINARY_NAMES) {
|
|
123
123
|
candidates.push(path5__default.default.resolve(runtimeDir, `${bin}.node`));
|
|
124
124
|
candidates.push(path5__default.default.resolve(runtimeDir, `${bin}.${napiPlatform}.node`));
|
|
125
|
+
candidates.push(path5__default.default.resolve(runtimeDir, "..", "native", `${bin}.node`));
|
|
126
|
+
candidates.push(path5__default.default.resolve(runtimeDir, "..", "native", `${bin}.${napiPlatform}.node`));
|
|
127
|
+
candidates.push(path5__default.default.resolve(process.cwd(), "native", `${bin}.node`));
|
|
128
|
+
candidates.push(path5__default.default.resolve(process.cwd(), "native", `${bin}.${napiPlatform}.node`));
|
|
125
129
|
candidates.push(path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", `${bin}.node`));
|
|
126
130
|
candidates.push(path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", `${bin}.${napiPlatform}.node`));
|
|
127
131
|
candidates.push(path5__default.default.resolve(runtimeDir, "..", "..", "..", "native", `${bin}.node`));
|
|
128
|
-
candidates.push(path5__default.default.resolve(process.cwd(), "native", `${bin}.node`));
|
|
129
|
-
candidates.push(path5__default.default.resolve(process.cwd(), "native", `${bin}.${napiPlatform}.node`));
|
|
130
132
|
}
|
|
131
133
|
return Array.from(new Set(candidates));
|
|
132
134
|
}
|
|
@@ -209,8 +211,10 @@ __export(native_bridge_exports, {
|
|
|
209
211
|
extractClassesNative: () => extractClassesNative,
|
|
210
212
|
generateSubComponentTypesNative: () => generateSubComponentTypesNative,
|
|
211
213
|
hasNativeScannerBinding: () => hasNativeScannerBinding,
|
|
214
|
+
hasNativeWatchBinding: () => hasNativeWatchBinding,
|
|
212
215
|
hashContentNative: () => hashContentNative,
|
|
213
216
|
isRustCacheAvailable: () => isRustCacheAvailable,
|
|
217
|
+
pollWatchEventsNative: () => pollWatchEventsNative,
|
|
214
218
|
pruneStaleEntriesNative: () => pruneStaleEntriesNative,
|
|
215
219
|
rebuildWorkspaceResultNative: () => rebuildWorkspaceResultNative,
|
|
216
220
|
resetScannerBridgeCache: () => resetScannerBridgeCache,
|
|
@@ -220,7 +224,9 @@ __export(native_bridge_exports, {
|
|
|
220
224
|
scanCacheStats: () => scanCacheStats,
|
|
221
225
|
scanFileNative: () => scanFileNative,
|
|
222
226
|
scanFilesBatchNative: () => scanFilesBatchNative,
|
|
223
|
-
scanWorkspaceNative: () => scanWorkspaceNative
|
|
227
|
+
scanWorkspaceNative: () => scanWorkspaceNative,
|
|
228
|
+
startWatchNative: () => startWatchNative,
|
|
229
|
+
stopWatchNative: () => stopWatchNative
|
|
224
230
|
});
|
|
225
231
|
function getDirname() {
|
|
226
232
|
if (typeof __dirname !== "undefined") {
|
|
@@ -397,6 +403,41 @@ function computeCacheStatsNative(filesClasses, sizes, top) {
|
|
|
397
403
|
if (!binding.computeCacheStats) return null;
|
|
398
404
|
return binding.computeCacheStats(filesClasses, sizes, top ?? null);
|
|
399
405
|
}
|
|
406
|
+
function startWatchNative(rootDir) {
|
|
407
|
+
try {
|
|
408
|
+
const binding = scannerGetBinding();
|
|
409
|
+
if (!binding.startWatch) return null;
|
|
410
|
+
return binding.startWatch(rootDir);
|
|
411
|
+
} catch {
|
|
412
|
+
return null;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
function pollWatchEventsNative(handleId) {
|
|
416
|
+
try {
|
|
417
|
+
const binding = scannerGetBinding();
|
|
418
|
+
if (!binding.pollWatchEvents) return [];
|
|
419
|
+
return binding.pollWatchEvents(handleId);
|
|
420
|
+
} catch {
|
|
421
|
+
return [];
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
function stopWatchNative(handleId) {
|
|
425
|
+
try {
|
|
426
|
+
const binding = scannerGetBinding();
|
|
427
|
+
if (!binding.stopWatch) return false;
|
|
428
|
+
return binding.stopWatch(handleId);
|
|
429
|
+
} catch {
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
function hasNativeWatchBinding() {
|
|
434
|
+
try {
|
|
435
|
+
const binding = scannerGetBinding();
|
|
436
|
+
return !!(binding.startWatch && binding.pollWatchEvents && binding.stopWatch);
|
|
437
|
+
} catch {
|
|
438
|
+
return false;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
400
441
|
var log, isValidScannerBinding, createScannerBridgeLoader, scannerBridgeLoader, scannerGetBinding, resetScannerBridgeCache;
|
|
401
442
|
var init_native_bridge = __esm({
|
|
402
443
|
"packages/domain/scanner/src/native-bridge.ts"() {
|
|
@@ -486,6 +527,7 @@ function defaultCachePath(rootDir, cacheDir) {
|
|
|
486
527
|
}
|
|
487
528
|
function readCache(rootDir, cacheDir) {
|
|
488
529
|
const cachePath = defaultCachePath(rootDir, cacheDir);
|
|
530
|
+
fs4__default.default.mkdirSync(path5__default.default.dirname(cachePath), { recursive: true });
|
|
489
531
|
const result = cacheReadNative(cachePath);
|
|
490
532
|
if (!result) return [];
|
|
491
533
|
return result.entries.map((e) => ({
|
|
@@ -500,6 +542,7 @@ function readCache(rootDir, cacheDir) {
|
|
|
500
542
|
}
|
|
501
543
|
function writeCache(rootDir, entries, cacheDir) {
|
|
502
544
|
const cachePath = defaultCachePath(rootDir, cacheDir);
|
|
545
|
+
fs4__default.default.mkdirSync(path5__default.default.dirname(cachePath), { recursive: true });
|
|
503
546
|
const success = cacheWriteNative(cachePath, entries);
|
|
504
547
|
if (!success) {
|
|
505
548
|
throw new Error(
|
|
@@ -530,7 +573,7 @@ function collectFiles(rootDir, extensions, ignoreDirs) {
|
|
|
530
573
|
function walk(dir) {
|
|
531
574
|
let entries;
|
|
532
575
|
try {
|
|
533
|
-
entries =
|
|
576
|
+
entries = fs4__default.default.readdirSync(dir, { withFileTypes: true });
|
|
534
577
|
} catch {
|
|
535
578
|
return;
|
|
536
579
|
}
|
|
@@ -730,7 +773,7 @@ function resolveScannerWorkerModulePath() {
|
|
|
730
773
|
path5__default.default.resolve(runtimeDir, "worker.ts")
|
|
731
774
|
];
|
|
732
775
|
for (const candidate of candidates) {
|
|
733
|
-
if (
|
|
776
|
+
if (fs4__default.default.existsSync(candidate)) return candidate;
|
|
734
777
|
}
|
|
735
778
|
return null;
|
|
736
779
|
}
|
|
@@ -787,7 +830,7 @@ function collectCandidates(rootDir, ignoreDirectories, extensionSet) {
|
|
|
787
830
|
if (!currentDir) continue;
|
|
788
831
|
const entries = (() => {
|
|
789
832
|
try {
|
|
790
|
-
return
|
|
833
|
+
return fs4__default.default.readdirSync(currentDir, { withFileTypes: true });
|
|
791
834
|
} catch {
|
|
792
835
|
return [];
|
|
793
836
|
}
|
|
@@ -886,7 +929,7 @@ function scanWorkspace(rootDir, options = {}) {
|
|
|
886
929
|
for (const filePath of candidates) {
|
|
887
930
|
const stat = (() => {
|
|
888
931
|
try {
|
|
889
|
-
return
|
|
932
|
+
return fs4__default.default.statSync(filePath);
|
|
890
933
|
} catch {
|
|
891
934
|
return null;
|
|
892
935
|
}
|
|
@@ -912,7 +955,7 @@ function scanWorkspace(rootDir, options = {}) {
|
|
|
912
955
|
for (const { filePath, stat, size, cached } of ranked) {
|
|
913
956
|
const content = (() => {
|
|
914
957
|
try {
|
|
915
|
-
return
|
|
958
|
+
return fs4__default.default.readFileSync(filePath, "utf8");
|
|
916
959
|
} catch {
|
|
917
960
|
return null;
|
|
918
961
|
}
|
|
@@ -1017,21 +1060,31 @@ var init_src2 = __esm({
|
|
|
1017
1060
|
if (_state.binding !== void 0) return _state.binding;
|
|
1018
1061
|
const runtimeDir = getRuntimeDir();
|
|
1019
1062
|
const req = module$1.createRequire(path5__default.default.join(runtimeDir, "noop.cjs"));
|
|
1063
|
+
const _platform = process.platform;
|
|
1064
|
+
const _arch = process.arch;
|
|
1065
|
+
const _platformArch = `${_platform}-${_arch}`;
|
|
1066
|
+
const _platformArchGnu = _platformArch === "linux-x64" ? "linux-x64-gnu" : _platformArch === "linux-arm64" ? "linux-arm64-gnu" : _platformArch;
|
|
1020
1067
|
const candidates = [
|
|
1021
1068
|
// ── binaryName baru: tailwind-styled-native (napi-rs naming) ──
|
|
1022
1069
|
// cwd = repo root saat run dari root, atau package dir saat workspaces
|
|
1023
1070
|
path5__default.default.resolve(process.cwd(), "native", "tailwind-styled-native.node"),
|
|
1024
|
-
path5__default.default.resolve(process.cwd(), "native", `tailwind-styled-native.${
|
|
1025
|
-
path5__default.default.resolve(process.cwd(), "native", `tailwind-styled-native.${
|
|
1026
|
-
// runtimeDir = dist/ → naik
|
|
1071
|
+
path5__default.default.resolve(process.cwd(), "native", `tailwind-styled-native.${_platformArch}.node`),
|
|
1072
|
+
path5__default.default.resolve(process.cwd(), "native", `tailwind-styled-native.${_platformArchGnu}.node`),
|
|
1073
|
+
// runtimeDir = dist/ → naik 1 level ke package root (npm install case)
|
|
1074
|
+
// e.g. node_modules/tailwind-styled-v4/dist/ → node_modules/tailwind-styled-v4/native/
|
|
1075
|
+
path5__default.default.resolve(runtimeDir, "..", "native", "tailwind-styled-native.node"),
|
|
1076
|
+
path5__default.default.resolve(runtimeDir, "..", "native", `tailwind-styled-native.${_platformArch}.node`),
|
|
1077
|
+
path5__default.default.resolve(runtimeDir, "..", "native", `tailwind-styled-native.${_platformArchGnu}.node`),
|
|
1078
|
+
// runtimeDir = dist/ → naik 4 level ke repo root (monorepo dev case)
|
|
1027
1079
|
path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", "tailwind-styled-native.node"),
|
|
1028
|
-
path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", `tailwind-styled-native.${
|
|
1080
|
+
path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", `tailwind-styled-native.${_platformArchGnu}.node`),
|
|
1029
1081
|
// 3 level fallback (jika package di-nest lebih dangkal)
|
|
1030
1082
|
path5__default.default.resolve(runtimeDir, "..", "..", "..", "native", "tailwind-styled-native.node"),
|
|
1031
|
-
path5__default.default.resolve(runtimeDir, "..", "..", "..", "native", `tailwind-styled-native.${
|
|
1083
|
+
path5__default.default.resolve(runtimeDir, "..", "..", "..", "native", `tailwind-styled-native.${_platformArchGnu}.node`),
|
|
1032
1084
|
// ── binaryName lama: tailwind_styled_parser (backward compat) ──
|
|
1033
1085
|
path5__default.default.resolve(process.cwd(), "native/tailwind_styled_parser.node"),
|
|
1034
1086
|
path5__default.default.resolve(process.cwd(), "native/build/Release/tailwind_styled_parser.node"),
|
|
1087
|
+
path5__default.default.resolve(runtimeDir, "..", "native", "tailwind_styled_parser.node"),
|
|
1035
1088
|
path5__default.default.resolve(runtimeDir, "..", "..", "..", "..", "native", "tailwind_styled_parser.node"),
|
|
1036
1089
|
path5__default.default.resolve(runtimeDir, "..", "..", "..", "native", "tailwind_styled_parser.node"),
|
|
1037
1090
|
path5__default.default.resolve(
|
|
@@ -1046,7 +1099,7 @@ var init_src2 = __esm({
|
|
|
1046
1099
|
)
|
|
1047
1100
|
];
|
|
1048
1101
|
for (const fullPath of candidates) {
|
|
1049
|
-
if (!
|
|
1102
|
+
if (!fs4__default.default.existsSync(fullPath)) continue;
|
|
1050
1103
|
try {
|
|
1051
1104
|
const required = req(fullPath);
|
|
1052
1105
|
if (required && (typeof required.extractClassesFromSource === "function" || typeof required.parseClasses === "function" || typeof required.parse_classes === "function")) {
|
|
@@ -1100,7 +1153,7 @@ function isRecord(value) {
|
|
|
1100
1153
|
}
|
|
1101
1154
|
async function pathExists(filePath) {
|
|
1102
1155
|
try {
|
|
1103
|
-
await
|
|
1156
|
+
await fs4__default.default.promises.access(filePath, fs4__default.default.constants.F_OK);
|
|
1104
1157
|
return true;
|
|
1105
1158
|
} catch {
|
|
1106
1159
|
return false;
|
|
@@ -1424,7 +1477,7 @@ var collectCustomUtilities = (config) => {
|
|
|
1424
1477
|
return out;
|
|
1425
1478
|
};
|
|
1426
1479
|
var collectSafelistFromSource = async (configPath) => {
|
|
1427
|
-
const source = await
|
|
1480
|
+
const source = await fs4__default.default.promises.readFile(configPath, "utf8");
|
|
1428
1481
|
const { extractClassesNative: extractClassesNative2 } = await Promise.resolve().then(() => (init_src2(), src_exports));
|
|
1429
1482
|
const allTokens = extractClassesNative2(source);
|
|
1430
1483
|
const hasSafelist = source.includes("safelist");
|
|
@@ -1451,7 +1504,7 @@ var loadTailwindConfig = async (root, semanticOption) => {
|
|
|
1451
1504
|
customUtilities: /* @__PURE__ */ new Set()
|
|
1452
1505
|
};
|
|
1453
1506
|
}
|
|
1454
|
-
const configStat = await
|
|
1507
|
+
const configStat = await fs4__default.default.promises.stat(configPath).catch(() => null);
|
|
1455
1508
|
if (configStat) {
|
|
1456
1509
|
const cached = tailwindConfigCache.get(configPath);
|
|
1457
1510
|
if (cached && cached.mtimeMs === configStat.mtimeMs && cached.size === configStat.size) {
|