clases 1.1.2 → 1.1.4
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.cjs +3 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +11 -22
package/dist/index.cjs
CHANGED
|
@@ -18,21 +18,11 @@ function createCl(...plugins) {
|
|
|
18
18
|
if (typeof value === "object") {
|
|
19
19
|
return Object.entries(value).map(([nestedKey, nestedValue]) => {
|
|
20
20
|
const isRegistered = registry[nestedKey] !== void 0;
|
|
21
|
-
|
|
22
|
-
if (key === "base") {
|
|
23
|
-
nextKey = nestedKey;
|
|
24
|
-
} else if (isRegistered) {
|
|
25
|
-
nextKey = `${key}:${nestedKey}`;
|
|
26
|
-
} else {
|
|
27
|
-
nextKey = key;
|
|
28
|
-
}
|
|
21
|
+
const nextKey = isRegistered ? key ? `${key}:${nestedKey}` : nestedKey : key;
|
|
29
22
|
return process(nextKey, nestedValue);
|
|
30
23
|
}).join(" ");
|
|
31
24
|
}
|
|
32
|
-
const resolvedPrefix = key.split(":").map((part) =>
|
|
33
|
-
if (part === "base") return null;
|
|
34
|
-
return registry[part] || null;
|
|
35
|
-
}).filter(Boolean).join(":");
|
|
25
|
+
const resolvedPrefix = key.split(":").map((part) => registry[part] || null).filter(Boolean).join(":");
|
|
36
26
|
if (typeof value === "string") {
|
|
37
27
|
return value.split(/[,\s\n]+/).filter(Boolean).map((cls) => !resolvedPrefix ? cls : `${resolvedPrefix}:${cls}`).join(" ");
|
|
38
28
|
}
|
|
@@ -43,8 +33,7 @@ function createCl(...plugins) {
|
|
|
43
33
|
if (input !== null && typeof input === "object" && !Array.isArray(input)) {
|
|
44
34
|
return Object.entries(input).map(([k, v]) => {
|
|
45
35
|
if (v === true) return k;
|
|
46
|
-
|
|
47
|
-
return process(isRegistered ? k : "base", v);
|
|
36
|
+
return process(registry[k] ? k : "", v);
|
|
48
37
|
}).join(" ");
|
|
49
38
|
}
|
|
50
39
|
return input;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["twMerge","clsx"],"mappings":";;;;;;;;;;AAGO,SAAS,YAAuD,OAAA,EAAmB;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["twMerge","clsx"],"mappings":";;;;;;;;;;AAGO,SAAS,YAAuD,OAAA,EAAmB;AACtF,EAAA,MAAM,WAAmC,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,GAAG,OAAO,CAAA;AAErE,EAAA,MAAM,OAAA,GAAU,CAAC,GAAA,EAAa,KAAA,KAAuB;AACjD,IAAA,IAAI,CAAC,OAAO,OAAO,EAAA;AAEnB,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACtB,MAAA,OAAO,KAAA,CACF,GAAA,CAAI,CAAC,CAAA,KAAM,OAAA,CAAQ,GAAA,EAAK,CAAC,CAAC,CAAA,CAC1B,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAAA,IACjB;AAEA,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC3B,MAAA,OAAO,MAAA,CAAO,QAAQ,KAAK,CAAA,CACtB,IAAI,CAAC,CAAC,SAAA,EAAW,WAAW,CAAA,KAAM;AAC/B,QAAA,MAAM,YAAA,GAAe,QAAA,CAAS,SAAS,CAAA,KAAM,MAAA;AAG7C,QAAA,MAAM,OAAA,GAAU,eAAgB,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,SAAS,KAAK,SAAA,GAAa,GAAA;AAE3E,QAAA,OAAO,OAAA,CAAQ,SAAS,WAAW,CAAA;AAAA,MACvC,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,IACjB;AAGA,IAAA,MAAM,iBAAiB,GAAA,CAClB,KAAA,CAAM,GAAG,CAAA,CACT,IAAI,CAAC,IAAA,KAAS,QAAA,CAAS,IAAI,KAAK,IAAI,CAAA,CACpC,OAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEb,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC3B,MAAA,OAAO,KAAA,CACF,MAAM,UAAU,CAAA,CAChB,OAAO,OAAO,CAAA,CACd,IAAI,CAAC,GAAA,KAAS,CAAC,cAAA,GAAiB,GAAA,GAAM,GAAG,cAAc,CAAA,CAAA,EAAI,GAAG,CAAA,CAAG,CAAA,CACjE,KAAK,GAAG,CAAA;AAAA,IACjB;AACA,IAAA,OAAO,EAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO,IAAI,MAAA,KAAkB;AACzB,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACpC,MAAA,IAAI,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACtE,QAAA,OAAO,MAAA,CAAO,QAAQ,KAAK,CAAA,CACtB,IAAI,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACb,UAAA,IAAI,CAAA,KAAM,MAAM,OAAO,CAAA;AAEvB,UAAA,OAAO,QAAQ,QAAA,CAAS,CAAC,CAAA,GAAI,CAAA,GAAI,IAAI,CAAC,CAAA;AAAA,QAC1C,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,MACjB;AACA,MAAA,OAAO,KAAA;AAAA,IACX,CAAC,CAAA;AACD,IAAA,OAAOA,qBAAA,CAAQC,qBAAA,CAAK,SAAS,CAAC,CAAA;AAAA,EAClC,CAAA;AACJ","file":"index.cjs","sourcesContent":["import { twMerge } from 'tailwind-merge';\r\nimport clsx from 'clsx';\r\n\r\nexport function createCl<TPlugins extends Record<string, string>[]>(...plugins: TPlugins) {\r\n const registry: Record<string, string> = Object.assign({}, ...plugins);\r\n\r\n const process = (key: string, value: any): string => {\r\n if (!value) return '';\r\n\r\n if (Array.isArray(value)) {\r\n return value\r\n .map((v) => process(key, v))\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n if (typeof value === 'object') {\r\n return Object.entries(value)\r\n .map(([nestedKey, nestedValue]) => {\r\n const isRegistered = registry[nestedKey] !== undefined;\r\n // Si el hijo está registrado, añadimos al prefijo.\r\n // Si no, mantenemos el prefijo actual (transparencia).\r\n const nextKey = isRegistered ? (key ? `${key}:${nestedKey}` : nestedKey) : key;\r\n\r\n return process(nextKey, nestedValue);\r\n })\r\n .join(' ');\r\n }\r\n\r\n // RESOLUCIÓN: Solo lo que esté en el registro se convierte en prefijo.\r\n const resolvedPrefix = key\r\n .split(':')\r\n .map((part) => registry[part] || null)\r\n .filter(Boolean)\r\n .join(':');\r\n\r\n if (typeof value === 'string') {\r\n return value\r\n .split(/[,\\s\\n]+/)\r\n .filter(Boolean)\r\n .map((cls) => (!resolvedPrefix ? cls : `${resolvedPrefix}:${cls}`))\r\n .join(' ');\r\n }\r\n return '';\r\n };\r\n\r\n return (...inputs: any[]) => {\r\n const processed = inputs.map((input) => {\r\n if (input !== null && typeof input === 'object' && !Array.isArray(input)) {\r\n return Object.entries(input)\r\n .map(([k, v]) => {\r\n if (v === true) return k;\r\n // Si la llave raíz no está registrada, empezamos proceso con key vacía\r\n return process(registry[k] ? k : '', v);\r\n })\r\n .join(' ');\r\n }\r\n return input;\r\n });\r\n return twMerge(clsx(processed));\r\n };\r\n}\r\n"]}
|
package/dist/index.js
CHANGED
|
@@ -12,21 +12,11 @@ function createCl(...plugins) {
|
|
|
12
12
|
if (typeof value === "object") {
|
|
13
13
|
return Object.entries(value).map(([nestedKey, nestedValue]) => {
|
|
14
14
|
const isRegistered = registry[nestedKey] !== void 0;
|
|
15
|
-
|
|
16
|
-
if (key === "base") {
|
|
17
|
-
nextKey = nestedKey;
|
|
18
|
-
} else if (isRegistered) {
|
|
19
|
-
nextKey = `${key}:${nestedKey}`;
|
|
20
|
-
} else {
|
|
21
|
-
nextKey = key;
|
|
22
|
-
}
|
|
15
|
+
const nextKey = isRegistered ? key ? `${key}:${nestedKey}` : nestedKey : key;
|
|
23
16
|
return process(nextKey, nestedValue);
|
|
24
17
|
}).join(" ");
|
|
25
18
|
}
|
|
26
|
-
const resolvedPrefix = key.split(":").map((part) =>
|
|
27
|
-
if (part === "base") return null;
|
|
28
|
-
return registry[part] || null;
|
|
29
|
-
}).filter(Boolean).join(":");
|
|
19
|
+
const resolvedPrefix = key.split(":").map((part) => registry[part] || null).filter(Boolean).join(":");
|
|
30
20
|
if (typeof value === "string") {
|
|
31
21
|
return value.split(/[,\s\n]+/).filter(Boolean).map((cls) => !resolvedPrefix ? cls : `${resolvedPrefix}:${cls}`).join(" ");
|
|
32
22
|
}
|
|
@@ -37,8 +27,7 @@ function createCl(...plugins) {
|
|
|
37
27
|
if (input !== null && typeof input === "object" && !Array.isArray(input)) {
|
|
38
28
|
return Object.entries(input).map(([k, v]) => {
|
|
39
29
|
if (v === true) return k;
|
|
40
|
-
|
|
41
|
-
return process(isRegistered ? k : "base", v);
|
|
30
|
+
return process(registry[k] ? k : "", v);
|
|
42
31
|
}).join(" ");
|
|
43
32
|
}
|
|
44
33
|
return input;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;AAGO,SAAS,YAAuD,OAAA,EAAmB;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;AAGO,SAAS,YAAuD,OAAA,EAAmB;AACtF,EAAA,MAAM,WAAmC,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,GAAG,OAAO,CAAA;AAErE,EAAA,MAAM,OAAA,GAAU,CAAC,GAAA,EAAa,KAAA,KAAuB;AACjD,IAAA,IAAI,CAAC,OAAO,OAAO,EAAA;AAEnB,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACtB,MAAA,OAAO,KAAA,CACF,GAAA,CAAI,CAAC,CAAA,KAAM,OAAA,CAAQ,GAAA,EAAK,CAAC,CAAC,CAAA,CAC1B,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAAA,IACjB;AAEA,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC3B,MAAA,OAAO,MAAA,CAAO,QAAQ,KAAK,CAAA,CACtB,IAAI,CAAC,CAAC,SAAA,EAAW,WAAW,CAAA,KAAM;AAC/B,QAAA,MAAM,YAAA,GAAe,QAAA,CAAS,SAAS,CAAA,KAAM,MAAA;AAG7C,QAAA,MAAM,OAAA,GAAU,eAAgB,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,SAAS,KAAK,SAAA,GAAa,GAAA;AAE3E,QAAA,OAAO,OAAA,CAAQ,SAAS,WAAW,CAAA;AAAA,MACvC,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,IACjB;AAGA,IAAA,MAAM,iBAAiB,GAAA,CAClB,KAAA,CAAM,GAAG,CAAA,CACT,IAAI,CAAC,IAAA,KAAS,QAAA,CAAS,IAAI,KAAK,IAAI,CAAA,CACpC,OAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEb,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC3B,MAAA,OAAO,KAAA,CACF,MAAM,UAAU,CAAA,CAChB,OAAO,OAAO,CAAA,CACd,IAAI,CAAC,GAAA,KAAS,CAAC,cAAA,GAAiB,GAAA,GAAM,GAAG,cAAc,CAAA,CAAA,EAAI,GAAG,CAAA,CAAG,CAAA,CACjE,KAAK,GAAG,CAAA;AAAA,IACjB;AACA,IAAA,OAAO,EAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO,IAAI,MAAA,KAAkB;AACzB,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACpC,MAAA,IAAI,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACtE,QAAA,OAAO,MAAA,CAAO,QAAQ,KAAK,CAAA,CACtB,IAAI,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACb,UAAA,IAAI,CAAA,KAAM,MAAM,OAAO,CAAA;AAEvB,UAAA,OAAO,QAAQ,QAAA,CAAS,CAAC,CAAA,GAAI,CAAA,GAAI,IAAI,CAAC,CAAA;AAAA,QAC1C,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AAAA,MACjB;AACA,MAAA,OAAO,KAAA;AAAA,IACX,CAAC,CAAA;AACD,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,EAClC,CAAA;AACJ","file":"index.js","sourcesContent":["import { twMerge } from 'tailwind-merge';\r\nimport clsx from 'clsx';\r\n\r\nexport function createCl<TPlugins extends Record<string, string>[]>(...plugins: TPlugins) {\r\n const registry: Record<string, string> = Object.assign({}, ...plugins);\r\n\r\n const process = (key: string, value: any): string => {\r\n if (!value) return '';\r\n\r\n if (Array.isArray(value)) {\r\n return value\r\n .map((v) => process(key, v))\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n if (typeof value === 'object') {\r\n return Object.entries(value)\r\n .map(([nestedKey, nestedValue]) => {\r\n const isRegistered = registry[nestedKey] !== undefined;\r\n // Si el hijo está registrado, añadimos al prefijo.\r\n // Si no, mantenemos el prefijo actual (transparencia).\r\n const nextKey = isRegistered ? (key ? `${key}:${nestedKey}` : nestedKey) : key;\r\n\r\n return process(nextKey, nestedValue);\r\n })\r\n .join(' ');\r\n }\r\n\r\n // RESOLUCIÓN: Solo lo que esté en el registro se convierte en prefijo.\r\n const resolvedPrefix = key\r\n .split(':')\r\n .map((part) => registry[part] || null)\r\n .filter(Boolean)\r\n .join(':');\r\n\r\n if (typeof value === 'string') {\r\n return value\r\n .split(/[,\\s\\n]+/)\r\n .filter(Boolean)\r\n .map((cls) => (!resolvedPrefix ? cls : `${resolvedPrefix}:${cls}`))\r\n .join(' ');\r\n }\r\n return '';\r\n };\r\n\r\n return (...inputs: any[]) => {\r\n const processed = inputs.map((input) => {\r\n if (input !== null && typeof input === 'object' && !Array.isArray(input)) {\r\n return Object.entries(input)\r\n .map(([k, v]) => {\r\n if (v === true) return k;\r\n // Si la llave raíz no está registrada, empezamos proceso con key vacía\r\n return process(registry[k] ? k : '', v);\r\n })\r\n .join(' ');\r\n }\r\n return input;\r\n });\r\n return twMerge(clsx(processed));\r\n };\r\n}\r\n"]}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,45 +2,35 @@ import { twMerge } from 'tailwind-merge';
|
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
|
|
4
4
|
export function createCl<TPlugins extends Record<string, string>[]>(...plugins: TPlugins) {
|
|
5
|
-
// Importante: No incluimos 'base' aquí para que no interfiera en el filtrado final
|
|
6
5
|
const registry: Record<string, string> = Object.assign({}, ...plugins);
|
|
7
6
|
|
|
8
7
|
const process = (key: string, value: any): string => {
|
|
9
8
|
if (!value) return '';
|
|
10
9
|
|
|
11
10
|
if (Array.isArray(value)) {
|
|
12
|
-
return value
|
|
11
|
+
return value
|
|
12
|
+
.map((v) => process(key, v))
|
|
13
|
+
.filter(Boolean)
|
|
14
|
+
.join(' ');
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
if (typeof value === 'object') {
|
|
16
18
|
return Object.entries(value)
|
|
17
19
|
.map(([nestedKey, nestedValue]) => {
|
|
18
20
|
const isRegistered = registry[nestedKey] !== undefined;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
nextKey = nestedKey;
|
|
23
|
-
} else if (isRegistered) {
|
|
24
|
-
nextKey = `${key}:${nestedKey}`;
|
|
25
|
-
} else {
|
|
26
|
-
// Si no está registrado, mantenemos el key actual (transparencia)
|
|
27
|
-
nextKey = key;
|
|
28
|
-
}
|
|
21
|
+
// Si el hijo está registrado, añadimos al prefijo.
|
|
22
|
+
// Si no, mantenemos el prefijo actual (transparencia).
|
|
23
|
+
const nextKey = isRegistered ? (key ? `${key}:${nestedKey}` : nestedKey) : key;
|
|
29
24
|
|
|
30
25
|
return process(nextKey, nestedValue);
|
|
31
26
|
})
|
|
32
27
|
.join(' ');
|
|
33
28
|
}
|
|
34
29
|
|
|
35
|
-
// RESOLUCIÓN
|
|
30
|
+
// RESOLUCIÓN: Solo lo que esté en el registro se convierte en prefijo.
|
|
36
31
|
const resolvedPrefix = key
|
|
37
32
|
.split(':')
|
|
38
|
-
.map((part) =>
|
|
39
|
-
if (part === 'base') return null;
|
|
40
|
-
// SOLO devolvemos si existe en el registro.
|
|
41
|
-
// Si 'variants' no está, esto devuelve null y se limpia.
|
|
42
|
-
return registry[part] || null;
|
|
43
|
-
})
|
|
33
|
+
.map((part) => registry[part] || null)
|
|
44
34
|
.filter(Boolean)
|
|
45
35
|
.join(':');
|
|
46
36
|
|
|
@@ -60,9 +50,8 @@ export function createCl<TPlugins extends Record<string, string>[]>(...plugins:
|
|
|
60
50
|
return Object.entries(input)
|
|
61
51
|
.map(([k, v]) => {
|
|
62
52
|
if (v === true) return k;
|
|
63
|
-
// Si la llave
|
|
64
|
-
|
|
65
|
-
return process(isRegistered ? k : 'base', v);
|
|
53
|
+
// Si la llave raíz no está registrada, empezamos proceso con key vacía
|
|
54
|
+
return process(registry[k] ? k : '', v);
|
|
66
55
|
})
|
|
67
56
|
.join(' ');
|
|
68
57
|
}
|