styimat 9.2.0 → 10.0.0
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 +8 -8
- package/dist/build-manifest.json +57 -0
- package/dist/styimat.amd.js +21 -25
- package/dist/styimat.amd.min.js +7 -7
- package/dist/styimat.browser.js +21 -25
- package/dist/styimat.browser.min.js +7 -7
- package/dist/styimat.cjs +21 -25
- package/dist/styimat.js +21 -25
- package/dist/styimat.min.cjs +7 -7
- package/dist/styimat.min.js +7 -7
- package/dist/styimat.min.mjs +7 -7
- package/dist/styimat.mjs +23 -25
- package/dist/styimat.umd.js +21 -25
- package/dist/styimat.umd.min.js +7 -7
- package/package.json +5 -16
- package/src/styimat.js +1686 -0
package/dist/styimat.cjs
CHANGED
|
@@ -102,8 +102,8 @@ const styimat = (function() {
|
|
|
102
102
|
for (let line of lines) {
|
|
103
103
|
const trimmed = line.trim();
|
|
104
104
|
|
|
105
|
-
if (trimmed.startsWith('
|
|
106
|
-
const configLine = trimmed.substring(
|
|
105
|
+
if (trimmed.startsWith('@config ')) {
|
|
106
|
+
const configLine = trimmed.substring(8).trim();
|
|
107
107
|
const firstSpace = configLine.indexOf(' ');
|
|
108
108
|
|
|
109
109
|
if (~firstSpace) {
|
|
@@ -405,7 +405,7 @@ const styimat = (function() {
|
|
|
405
405
|
declarations.push(currentDeclaration.trim());
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
const result =
|
|
408
|
+
const result = {};
|
|
409
409
|
|
|
410
410
|
for (let declaration of declarations) {
|
|
411
411
|
declaration = declaration.replace(REGEX.COMMENT, '');
|
|
@@ -438,7 +438,7 @@ const styimat = (function() {
|
|
|
438
438
|
value = "";
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
result
|
|
441
|
+
result[property] = value;
|
|
442
442
|
}
|
|
443
443
|
|
|
444
444
|
return result;
|
|
@@ -703,12 +703,12 @@ const styimat = (function() {
|
|
|
703
703
|
const kappa = 903.3;
|
|
704
704
|
|
|
705
705
|
const fy = (L + 16) / 116;
|
|
706
|
-
const fx = a
|
|
707
|
-
const fz = fy - b
|
|
706
|
+
const fx = a * 0.002 + fy;
|
|
707
|
+
const fz = fy - b * 0.005;
|
|
708
708
|
|
|
709
|
-
const xr = fx
|
|
709
|
+
const xr = (fx * fx * fx) > epsilon ? (fx * fx * fx) : (116 * fx - 16) / kappa;
|
|
710
710
|
const yr = L > kappa * epsilon ? ((L + 16) / 116) ** 3 : L / kappa;
|
|
711
|
-
const zr = fz
|
|
711
|
+
const zr = (fz * fz * fz) > epsilon ? fz * fz * fz : (116 * fz - 16) / kappa;
|
|
712
712
|
|
|
713
713
|
return [
|
|
714
714
|
xr * refX,
|
|
@@ -773,7 +773,7 @@ const styimat = (function() {
|
|
|
773
773
|
const kappa = 903.3;
|
|
774
774
|
|
|
775
775
|
const fy = (L + 16) / 116;
|
|
776
|
-
const fx = a
|
|
776
|
+
const fx = a * 0.002 + fy;
|
|
777
777
|
const fz = fy - b / 200;
|
|
778
778
|
|
|
779
779
|
const xr = fx ** 3 > epsilon ? fx ** 3 : (116 * fx - 16) / kappa;
|
|
@@ -922,13 +922,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
922
922
|
// 嵌套规则开始,需要先处理当前行的属性
|
|
923
923
|
if (currentLine.trim() && currentLine.includes(':')) {
|
|
924
924
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
925
|
-
|
|
926
|
-
const
|
|
927
|
-
const value = processCSSValue(obj[key], config);
|
|
925
|
+
for (let key of Object.keys(parsed)){
|
|
926
|
+
const value = processCSSValue(parsed[key], config);
|
|
928
927
|
if (currentRule) {
|
|
929
928
|
currentRule.properties[key] = value;
|
|
930
929
|
}
|
|
931
|
-
}
|
|
930
|
+
}
|
|
932
931
|
}
|
|
933
932
|
// 开始嵌套规则
|
|
934
933
|
const nestedRule = {
|
|
@@ -946,13 +945,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
946
945
|
// 处理当前行的属性(在}之前的属性)
|
|
947
946
|
if (currentLine.trim() && currentLine.includes(':')) {
|
|
948
947
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
949
|
-
|
|
950
|
-
const
|
|
951
|
-
const value = processCSSValue(obj[key], config);
|
|
948
|
+
for (let key of Object.keys(parsed)){
|
|
949
|
+
const value = processCSSValue(parsed[key], config);
|
|
952
950
|
if (currentRule) {
|
|
953
951
|
currentRule.properties[key] = value;
|
|
954
952
|
}
|
|
955
|
-
}
|
|
953
|
+
}
|
|
956
954
|
}
|
|
957
955
|
|
|
958
956
|
// 规则结束
|
|
@@ -982,13 +980,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
982
980
|
// 行结束,处理当前行的属性或变量
|
|
983
981
|
if (inRuleBlock && currentLine.trim() && currentLine.includes(':')) {
|
|
984
982
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
985
|
-
|
|
986
|
-
const
|
|
987
|
-
const value = processCSSValue(obj[key], config);
|
|
983
|
+
for (let key of Object.keys(parsed)){
|
|
984
|
+
const value = processCSSValue(parsed[key], config);
|
|
988
985
|
if (currentRule) {
|
|
989
986
|
currentRule.properties[key] = value;
|
|
990
987
|
}
|
|
991
|
-
}
|
|
988
|
+
}
|
|
992
989
|
} else if (isGlobalScope && currentLine.trim()) {
|
|
993
990
|
// 全局作用域中检查变量定义
|
|
994
991
|
const varMatch = currentLine.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);
|
|
@@ -1014,13 +1011,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
1014
1011
|
}
|
|
1015
1012
|
} else if (inRuleBlock && currentLine.trim() && currentLine.includes(':')) {
|
|
1016
1013
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
1017
|
-
|
|
1018
|
-
const
|
|
1019
|
-
const value = processCSSValue(obj[key], config);
|
|
1014
|
+
for (let key of Object.keys(parsed)){
|
|
1015
|
+
const value = processCSSValue(parsed[key], config);
|
|
1020
1016
|
if (currentRule) {
|
|
1021
1017
|
currentRule.properties[key] = value;
|
|
1022
1018
|
}
|
|
1023
|
-
}
|
|
1019
|
+
}
|
|
1024
1020
|
}
|
|
1025
1021
|
|
|
1026
1022
|
// 如果存在全局变量,创建:root规则并添加到rootRules开头
|
package/dist/styimat.js
CHANGED
|
@@ -102,8 +102,8 @@ const styimat = (function() {
|
|
|
102
102
|
for (let line of lines) {
|
|
103
103
|
const trimmed = line.trim();
|
|
104
104
|
|
|
105
|
-
if (trimmed.startsWith('
|
|
106
|
-
const configLine = trimmed.substring(
|
|
105
|
+
if (trimmed.startsWith('@config ')) {
|
|
106
|
+
const configLine = trimmed.substring(8).trim();
|
|
107
107
|
const firstSpace = configLine.indexOf(' ');
|
|
108
108
|
|
|
109
109
|
if (~firstSpace) {
|
|
@@ -405,7 +405,7 @@ const styimat = (function() {
|
|
|
405
405
|
declarations.push(currentDeclaration.trim());
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
const result =
|
|
408
|
+
const result = {};
|
|
409
409
|
|
|
410
410
|
for (let declaration of declarations) {
|
|
411
411
|
declaration = declaration.replace(REGEX.COMMENT, '');
|
|
@@ -438,7 +438,7 @@ const styimat = (function() {
|
|
|
438
438
|
value = "";
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
result
|
|
441
|
+
result[property] = value;
|
|
442
442
|
}
|
|
443
443
|
|
|
444
444
|
return result;
|
|
@@ -703,12 +703,12 @@ const styimat = (function() {
|
|
|
703
703
|
const kappa = 903.3;
|
|
704
704
|
|
|
705
705
|
const fy = (L + 16) / 116;
|
|
706
|
-
const fx = a
|
|
707
|
-
const fz = fy - b
|
|
706
|
+
const fx = a * 0.002 + fy;
|
|
707
|
+
const fz = fy - b * 0.005;
|
|
708
708
|
|
|
709
|
-
const xr = fx
|
|
709
|
+
const xr = (fx * fx * fx) > epsilon ? (fx * fx * fx) : (116 * fx - 16) / kappa;
|
|
710
710
|
const yr = L > kappa * epsilon ? ((L + 16) / 116) ** 3 : L / kappa;
|
|
711
|
-
const zr = fz
|
|
711
|
+
const zr = (fz * fz * fz) > epsilon ? fz * fz * fz : (116 * fz - 16) / kappa;
|
|
712
712
|
|
|
713
713
|
return [
|
|
714
714
|
xr * refX,
|
|
@@ -773,7 +773,7 @@ const styimat = (function() {
|
|
|
773
773
|
const kappa = 903.3;
|
|
774
774
|
|
|
775
775
|
const fy = (L + 16) / 116;
|
|
776
|
-
const fx = a
|
|
776
|
+
const fx = a * 0.002 + fy;
|
|
777
777
|
const fz = fy - b / 200;
|
|
778
778
|
|
|
779
779
|
const xr = fx ** 3 > epsilon ? fx ** 3 : (116 * fx - 16) / kappa;
|
|
@@ -922,13 +922,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
922
922
|
// 嵌套规则开始,需要先处理当前行的属性
|
|
923
923
|
if (currentLine.trim() && currentLine.includes(':')) {
|
|
924
924
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
925
|
-
|
|
926
|
-
const
|
|
927
|
-
const value = processCSSValue(obj[key], config);
|
|
925
|
+
for (let key of Object.keys(parsed)){
|
|
926
|
+
const value = processCSSValue(parsed[key], config);
|
|
928
927
|
if (currentRule) {
|
|
929
928
|
currentRule.properties[key] = value;
|
|
930
929
|
}
|
|
931
|
-
}
|
|
930
|
+
}
|
|
932
931
|
}
|
|
933
932
|
// 开始嵌套规则
|
|
934
933
|
const nestedRule = {
|
|
@@ -946,13 +945,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
946
945
|
// 处理当前行的属性(在}之前的属性)
|
|
947
946
|
if (currentLine.trim() && currentLine.includes(':')) {
|
|
948
947
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
949
|
-
|
|
950
|
-
const
|
|
951
|
-
const value = processCSSValue(obj[key], config);
|
|
948
|
+
for (let key of Object.keys(parsed)){
|
|
949
|
+
const value = processCSSValue(parsed[key], config);
|
|
952
950
|
if (currentRule) {
|
|
953
951
|
currentRule.properties[key] = value;
|
|
954
952
|
}
|
|
955
|
-
}
|
|
953
|
+
}
|
|
956
954
|
}
|
|
957
955
|
|
|
958
956
|
// 规则结束
|
|
@@ -982,13 +980,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
982
980
|
// 行结束,处理当前行的属性或变量
|
|
983
981
|
if (inRuleBlock && currentLine.trim() && currentLine.includes(':')) {
|
|
984
982
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
985
|
-
|
|
986
|
-
const
|
|
987
|
-
const value = processCSSValue(obj[key], config);
|
|
983
|
+
for (let key of Object.keys(parsed)){
|
|
984
|
+
const value = processCSSValue(parsed[key], config);
|
|
988
985
|
if (currentRule) {
|
|
989
986
|
currentRule.properties[key] = value;
|
|
990
987
|
}
|
|
991
|
-
}
|
|
988
|
+
}
|
|
992
989
|
} else if (isGlobalScope && currentLine.trim()) {
|
|
993
990
|
// 全局作用域中检查变量定义
|
|
994
991
|
const varMatch = currentLine.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);
|
|
@@ -1014,13 +1011,12 @@ function parseNestedRules(cssText, config, aliases, macros) {
|
|
|
1014
1011
|
}
|
|
1015
1012
|
} else if (inRuleBlock && currentLine.trim() && currentLine.includes(':')) {
|
|
1016
1013
|
const parsed = parseSingleLineCSS(currentLine.trim(), aliases, macros);
|
|
1017
|
-
|
|
1018
|
-
const
|
|
1019
|
-
const value = processCSSValue(obj[key], config);
|
|
1014
|
+
for (let key of Object.keys(parsed)){
|
|
1015
|
+
const value = processCSSValue(parsed[key], config);
|
|
1020
1016
|
if (currentRule) {
|
|
1021
1017
|
currentRule.properties[key] = value;
|
|
1022
1018
|
}
|
|
1023
|
-
}
|
|
1019
|
+
}
|
|
1024
1020
|
}
|
|
1025
1021
|
|
|
1026
1022
|
// 如果存在全局变量,创建:root规则并添加到rootRules开头
|
package/dist/styimat.min.cjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* MIT License
|
|
3
3
|
* Copyright (c) 2025 王小玗
|
|
4
|
-
*/const styimat=(function(){let
|
|
5
|
-
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function K(n){const e={...
|
|
6
|
-
`)}}function J(n){const e=new Map,r=
|
|
7
|
-
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=
|
|
4
|
+
*/const styimat=(function(){let y={rootSelector:":root",variablePrefix:"--",preserveOriginal:!1,indentSize:4,enableNesting:!0,autoProcessStyleTags:!0,styleTagAttribute:"e",convertLabToRGB:!0,convertLchToRGB:!0,enableP3:!0,enableMath:!0,importBaseUrl:"",importCache:!0,importTimeout:5e3,enableAlias:!0,enableMacros:!0};const A={IMPORT:/@import\s+([^;]+?)\s*;/g,ALIAS:/^@alias\s+([a-zA-Z_][a-zA-Z0-9_]*)\s+(.+?)\s*;$/,MACRO:/^@macro\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*\(([^)]*)\)\s*\{$/,COMMENT:/\/\*[\s\S]*?\*\//g,MATH_SYMBOL:/([\da-z])([+-])(-?[\da-z])/g,MATH:/math\(([^)]+)\)/gi,COLOR:/(lab|lch)\([^)]+\)/gi,HEXLAB:/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/gi,HEXLCH:/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/gi,SPACE:/\s+/g,AND:/&/g,HYPHEN:/-([a-z])/g,VARIABLE:/(?:\$\$|\$)([a-zA-Z_][a-zA-Z0-9_]*)(?=[^a-zA-Z0-9_])/g};let x=null;const _=new Map,F=new Map,L=new Map,$=new Map;function E(n,e=`
|
|
5
|
+
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function K(n){const e={...y},r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@config ")){const l=o.substring(8).trim(),a=l.indexOf(" ");if(~a){const c=l.substring(0,a).trim(),u=l.substring(a+1).trim(),i=re(c);u==="true"||u==="false"?e[i]=u==="true":!isNaN(u)&&u.trim()!==""?e[i]=Number(u):e[i]=u}else console.warn(`\u65E0\u6548\u7684\u914D\u7F6E\u884C: ${o}`)}else t.push(s)}return{config:e,css:t.join(`
|
|
6
|
+
`)}}function J(n){const e=new Map,r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@alias")){const l=o.match(A.ALIAS);if(l){const a=l[1],c=l[2];e.set(a,c);continue}}t.push(s)}return{aliases:e,css:t.join(`
|
|
7
|
+
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=E(n),s=[];let o=!1,l="",a=[],c=[],u=0;for(let i of t){const p=i.trim();if(!o&&p.startsWith("@macro")){const f=p.match(A.MACRO);if(f){o=!0,l=f[1],a=E(f[2],",").map(h=>h.trim()).filter(h=>h).map(h=>{const b=E(h,":").map(C=>C.trim());return{name:b[0].slice(1),defaultValue:b[1]||null}}),c=[],u=1;continue}}if(o){for(const f of i)f==="{"&&u++,f==="}"&&u--;u===0?(r.set(l,{params:a,body:c.join(`
|
|
8
8
|
`)}),o=!1,l="",a=[],c=[]):c.push(i);continue}s.push(i)}return{macros:r,css:s.join(`
|
|
9
|
-
`)}}function ee(n,e,r=","){const t=new Map,s=te(n,r);for(let o=0,l=e.length;o<l;o++){const a=e[o];let c;o<s.length?c=s[o]:a.defaultValue!==null?c=a.defaultValue:c="none",t.set(a.name,c)}return t}function te(n,e){const r=[];let t="",s=!1,o="",l=0,a=0;for(let c=0,u=n.length;c<u;c++){const i=n[c];(i==='"'||i==="'")&&!s?(s=!0,o=i):i===o&&s&&(s=!1,o=""),s||(i==="("&&l++,i===")"&&l--,i==="["&&a++,i==="]"&&a--),i===e&&!s&&l===0&&a===0?(r.push(t.trim()),t=""):t+=i}return t.trim()&&r.push(t.trim()),r}function W(n,e,r){let t=n;return t=t.replace(A.VARIABLE,(s,o)=>e.get(o)?e.get(o):s),t=w(t,r),t}function re(n){return n.replace(A.HYPHEN,function(e,r){return r.toUpperCase()})}function
|
|
9
|
+
`)}}function ee(n,e,r=","){const t=new Map,s=te(n,r);for(let o=0,l=e.length;o<l;o++){const a=e[o];let c;o<s.length?c=s[o]:a.defaultValue!==null?c=a.defaultValue:c="none",t.set(a.name,c)}return t}function te(n,e){const r=[];let t="",s=!1,o="",l=0,a=0;for(let c=0,u=n.length;c<u;c++){const i=n[c];(i==='"'||i==="'")&&!s?(s=!0,o=i):i===o&&s&&(s=!1,o=""),s||(i==="("&&l++,i===")"&&l--,i==="["&&a++,i==="]"&&a--),i===e&&!s&&l===0&&a===0?(r.push(t.trim()),t=""):t+=i}return t.trim()&&r.push(t.trim()),r}function W(n,e,r){let t=n;return t=t.replace(A.VARIABLE,(s,o)=>e.get(o)?e.get(o):s),t=w(t,r),t}function re(n){return n.replace(A.HYPHEN,function(e,r){return r.toUpperCase()})}function z(){if(x!==null)return x;if(typeof window>"u"||!window.CSS)return x=!1,!1;try{x=CSS.supports("color","color(display-p3 1 0 0)")}catch{x=!1}return x}function H(n,e,r){let t=n.trim();if(t.endsWith(";")&&(t=t.slice(0,-1)),!t)return[];const s=[];let o="",l=0,a=!1,c="";for(let i=0,p=t.length;i<p;i++){const f=t[i];(f==='"'||f==="'")&&!a?(a=!0,c=f):f===c&&a&&(a=!1,c=""),a||(f==="("?l++:f===")"&&l--),f===";"&&!a&&l===0?o.trim()&&(s.push(o.trim()),o=""):o+=f}o.trim()&&s.push(o.trim());const u={};for(let i of s){if(i=i.replace(A.COMMENT,""),!i.trim())continue;const p=ne(i);if(!~p){console.warn(`\u65E0\u6548\u7684CSS\u58F0\u660E: "${i}"`);continue}let f=i.substring(0,p).trim(),h=i.substring(p+1).trim();if(h.endsWith(";")&&(h=h.slice(0,-1).trim()),f.startsWith("$")&&(f="--"+f.slice(1)),f=e.get(f)??f,f.startsWith("@")&&r.get(f.slice(1))){const b=r.get(f.slice(1)),C=ee(h,b.params," ");f=W(b.body,C,D),h=""}u[f]=h}return u}function ne(n){let e=!1,r="";for(let t=0,s=n.length;t<s;t++){const o=n[t];if((o==='"'||o==="'")&&!e?(e=!0,r=o):o===r&&e&&(e=!1,r=""),o===":"&&!e)return t}return-1}function Z(n,e){let r=n.replace(A.SPACE,"");return se(r)}function se(n){return`calc(${n.replace(A.MATH_SYMBOL,"$1 $2 $3")})`}function oe(n,e){let r=n;return r=(s=>s.replace(A.MATH,(o,l)=>Z(l,e)))(r),r}function ae(n,e){if(!e.convertLabToRGB&&!e.convertLchToRGB)return n;let r=n;r=ce(r,e);const t=new Map,s=l=>l.replace(A.COLOR,a=>{if(t.has(a))return t.get(a);let c=a;return a.toLowerCase().startsWith("lab(")?e.convertLabToRGB&&(c=le(a,e)):a.toLowerCase().startsWith("lch(")&&e.convertLchToRGB&&(c=ie(a,e)),t.set(a,c),c});let o;do o=r,r=s(r);while(r!==o);return r}function ce(n,e){let r=n;const t=new Map;return r=r.replace(A.HEXLAB,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=(parseInt(l,16)-128)*1.5,i=(parseInt(a,16)-128)*1.5,p=T(c,u,i,e);return t.set(s,p),p}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lab#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r=r.replace(A.HEXLCH,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=parseInt(l,16)/255*150,i=parseInt(a)/100*360,p=v(c,u,i),f=T(p.L,p.a,p.b,e);return t.set(s,f),f}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lch#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r}function le(n,e){const r=/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]!=="%"&&(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]),l=parseFloat(t[4]),a=t[5]!==void 0?t[5].includes("%")?parseFloat(t[5])/100:parseFloat(t[5]):null;return T(s,o,l,e,a)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LAB\u989C\u8272: ${n}`,s),n}}function ie(n,e){const r=/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]==="%"?s=s:(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]);let l=parseFloat(t[4]);o<0&&console.warn(`LCH\u4E2D\u7684C\u503C\u4E0D\u80FD\u4E3A\u8D1F: ${o}`),l=(l%360+360)%360;const a=v(s,o,l),c=t[6]!==void 0?t[6].includes("%")?parseFloat(t[6])/100:parseFloat(t[6]):null;return T(a.L,a.a,a.b,e,c)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LCH\u989C\u8272: ${n}`,s),n}}function v(n,e,r){const t=r*Math.PI/180,s=e*Math.cos(t),o=e*Math.sin(t);return{L:n,a:s,b:o}}function S(n,e,r){const t=(d,m,g)=>{const Q=(d+16)/116,P=m*.002+Q,R=Q-g*.005,de=P*P*P>.008856?P*P*P:(116*P-16)/903.3,me=d>903.3*.008856?((d+16)/116)**3:d/903.3,ge=R*R*R>.008856?R*R*R:(116*R-16)/903.3;return[de*.95047,me*1,ge*1.08883]},s=(d,m,g)=>{const M=[[3.2404542,-1.5371385,-.4985314],[-.969266,1.8760108,.041556],[.0556434,-.2040259,1.0572252]],I=M[0][0]*d+M[0][1]*m+M[0][2]*g,Y=M[1][0]*d+M[1][1]*m+M[1][2]*g,q=M[2][0]*d+M[2][1]*m+M[2][2]*g;return[I,Y,q]},o=d=>{const m=d<0?-1:1,g=m*d;return g<=.0031308?12.92*g:m*(1.055*Math.pow(g,.4166666666666667)-.055)},l=d=>Math.max(0,Math.min(255,d*255|0)),[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:l(h),g:l(b),b:l(C)}}function B(n,e,r){const t=(a,c,u)=>{const C=(a+16)/116,d=c*.002+C,m=C-u/200,g=d**3>.008856?d**3:(116*d-16)/903.3,M=a>903.3*.008856?((a+16)/116)**3:a/903.3,I=m**3>.008856?m**3:(116*m-16)/903.3;return[g*.95047,M*1,I*1.08883]},s=(a,c,u)=>{const i=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],p=i[0][0]*a+i[0][1]*c+i[0][2]*u,f=i[1][0]*a+i[1][1]*c+i[1][2]*u,h=i[2][0]*a+i[2][1]*c+i[2][2]*u;return[p,f,h]},o=a=>{const c=a<0?-1:1,u=Math.abs(a);return u<=.0031308?c*12.92*u:c*(1.055*Math.pow(u,.4166666666666667)-.055)},l=a=>Math.max(0,Math.min(255,a*255|0));try{const[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:Math.max(0,Math.min(1,h)),g:Math.max(0,Math.min(1,b)),b:Math.max(0,Math.min(1,C))}}catch(a){console.warn("P3\u8F6C\u6362\u5931\u8D25:",a);const c=S(n,e,r);return{r:c.r/255,g:c.g/255,b:c.b/255}}}function T(n,e,r,t,s=null){if(!t.enableP3||!z()){const o=S(n,e,r);return s!==null?`rgba(${o.r}, ${o.g}, ${o.b}, ${s})`:`rgb(${o.r}, ${o.g}, ${o.b})`}else{const o=B(n,e,r);return s!==null?`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)} / ${s})`:`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)})`}}function w(n,e){let r=n;return e.enableMath&&(r=oe(r,e)),(e.convertLabToRGB||e.convertLchToRGB)&&(r=ae(r,e)),r}function ue(n,e,r,t){const s=[],o=[],l={};let a=null,c="",u=!1,i=0,p=!0;for(let f=0,h=n.length;f<h;f++){const b=n[f],C=n.charCodeAt(f);if(C===123){if(i++,p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}if(!u)a={selector:c.trim(),properties:{},children:[]},o.push(a),u=!0,p=!1;else{if(c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d={selector:c.trim(),properties:{},children:[]};o.push(d),a=d}c=""}else if(C===125){if(i--,c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d=o.pop();if(o.length===0)s.push(d),u=!1,a=null,p=!0;else{const m=o[o.length-1];m.children||(m.children=[]),m.children.push(d),a=m}c="",i===0&&(u=!1,p=!0)}else if(C===10||C===59){if(u&&c.trim()&&c.includes(":")){const d=H(c.trim(),r,t);for(let m of Object.keys(d)){const g=w(d[m],e);a&&(a.properties[m]=g)}}else if(p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}c=""}else c+=b}if(p&&c.trim()){const f=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(f){const[,h,b]=f;l[h]=w(b.trim(),e)}}else if(u&&c.trim()&&c.includes(":")){const f=H(c.trim(),r,t);for(let h of Object.keys(f)){const b=w(f[h],e);a&&(a.properties[h]=b)}}if(Object.keys(l).length>0){const f={selector:e.rootSelector,properties:{},children:[]};Object.entries(l).forEach(([h,b])=>{f.properties["--"+h]=b}),s.unshift(f)}return j(s,e,"",r,t)}function j(n,e,r="",t,s,o=!1){let l="";for(const a of n){const c=a.selector.startsWith("@");c&&(l+=a.selector+` {
|
|
10
10
|
`);let u=a.selector;if(r&&(u.includes("&")?u=u.replace(A.AND,r):u.trim().startsWith(":")?u=r+u:u=r+" "+u),u=u,Object.keys(a.properties).length>0){l+=(o?" ".repeat(e.indentSize):"")+u+` {
|
|
11
11
|
`;for(let i in a.properties)if(a.properties.hasOwnProperty(i)){const p=w(a.properties[i],e);l+=(o?" ".repeat(e.indentSize):"")+" ".repeat(e.indentSize)+(p.length?`${i}: ${p};
|
|
12
12
|
`:`${i}
|
|
13
13
|
`)}l+=o?" ".repeat(e.indentSize)+`}
|
|
14
14
|
`:`}
|
|
15
15
|
|
|
16
|
-
`}a.children&&a.children.length>0&&(l+=
|
|
16
|
+
`}a.children&&a.children.length>0&&(l+=j(a.children,e,c?"":u,t,s,o||c)),c&&(l+=`}
|
|
17
17
|
|
|
18
|
-
`)}return l}function fe(n,e){let r=n;return r=r.replace(A.VARIABLE,(t,s)=>t.startsWith("$$")?`attr(${s})`:`var(--${s})`),r=w(r,e),r}async function
|
|
18
|
+
`)}return l}function fe(n,e){let r=n;return r=r.replace(A.VARIABLE,(t,s)=>t.startsWith("$$")?`attr(${s})`:`var(--${s})`),r=w(r,e),r}async function G(n,e){const r=A.IMPORT;return(async s=>{const o=[],l=s.replace(r,(a,c)=>{const u=pe(c,e).then(i=>G(i,e)).catch(i=>(console.warn(`\u65E0\u6CD5\u5BFC\u5165CSS\u6587\u4EF6: ${c}`,i),""));return o.push(u),`__IMPORT_PLACEHOLDER_${o.length-1}__`});if(o.length>0){const a=await Promise.all(o);let c=l;for(let u=a.length;u--;)c=c.replace(`__IMPORT_PLACEHOLDER_${u}__`,a[u]);return c}return l})(n)}async function pe(n,e){if(e.importCache&&_.has(n))return _.get(n);const r=e.importBaseUrl?new URL(n,e.importBaseUrl).href:n;let t;if(typeof process<"u"&&process.versions&&process.versions.node&&typeof require<"u")try{const o=require("fs"),l=require("path");let a=r;r.startsWith(".")&&(a=l.join(process.cwd(),r)),t=o.readFileSync(a,"utf-8")}catch(o){throw new Error(`Node.js\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25: ${r} - ${o.message}`)}else try{const o=new AbortController,l=setTimeout(()=>o.abort(),e.importTimeout),a=await fetch(r,{signal:o.signal,headers:{Accept:"text/css"}});if(clearTimeout(l),!a.ok)throw new Error(`HTTP\u9519\u8BEF: ${a.status} ${a.statusText}`);t=await a.text()}catch(o){throw o.name==="AbortError"?new Error(`\u5BFC\u5165\u8D85\u65F6: ${r}`):new Error(`\u65E0\u6CD5\u83B7\u53D6CSS: ${r} - ${o.message}`)}return e.importCache&&_.set(n,t),t}async function O(n,e={}){let{config:r,css:t}=K(n);const s={...y,...e,...r};t=await G(t,s);let o=t,l=new Map;if(s.enableAlias){const{aliases:p,css:f}=J(o);l=p,o=f}let a=o,c=new Map;if(s.enableMacros){const{macros:p,css:f}=V(a,s);c=p,a=f;for(const[h,b]of c)L.set(h,b)}let u=a.trim();if(s.enableNesting&&a.includes("{"))try{u=ue(a,s,l,c)}catch(p){console.warn("\u5D4C\u5957\u89E3\u6790\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CBCSS:",p)}let i=u;i=fe(i,s);for(const[p,f]of $)try{i=f.convert(i,s)}catch(h){console.error("\u63D2\u4EF6\u5904\u7406\u5931\u8D25:",h)}return i}function X(n={}){const e={...y,...n},r=document.querySelectorAll(`style[${e.styleTagAttribute||"e"}]`);return r.forEach(t=>{let s=t.textContent;(async()=>{try{t.getAttribute("src")&&(s="@import "+t.getAttribute("src")+";");const l=await O(s,e),a=document.createElement("style");a.textContent=l,t.parentNode.insertBefore(a,t.nextSibling),e.preserveOriginal?t.style.display="none":t.remove()}catch(l){console.error("\u5904\u7406style\u6807\u7B7E\u5931\u8D25:",l)}})()}),r.length}function D(n={}){y={...y,...n}}function N(n,e={}){const r={...y,...e};if(n)return(async()=>{try{const t=await O(n,r),s=document.createElement("style");return s.textContent=t,document.head.appendChild(s),s}catch(t){return console.error("\u5E94\u7528CSS\u5931\u8D25:",t),null}})();document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{X(r)}):X(r)}const U={convert:O,apply:N,config:D,supportsP3:z(),detectP3Support:z,imports:{clearCache:function(){_.clear()},setBaseUrl:function(n){y.importBaseUrl=n},setCacheEnabled:function(n){y.importCache=n},setTimeout:function(n){y.importTimeout=n}},plugins:{use(n){const e=new n;return $.set(e.name??n.name,e),!0},remove(n){return $.get(n)?.destroy&&$.get(n).destroy(),$.delete(n),!0},getAll:function(){return Array.from($.entries())},clear:function(){$.clear()}},aliases:{add:function(n,e){F.set(n,e)},remove:function(n){F.delete(n)},getAll:function(){return Array.from(F.entries())},clear:function(){F.clear()}},macros:{define:function(n,e,r=[]){if(typeof e=="function"){const s=e.toString().match(/{([\s\S]*)}/);s&&L.set(n,{params:r.map(o=>typeof o=="string"?{name:o}:o),body:s[1].trim()})}else L.set(n,{params:r.map(t=>typeof t=="string"?{name:t}:t),body:e})},call:function(n,...e){const r=L.get(n);if(!r)throw new Error(`\u672A\u5B9A\u4E49\u7684\u5B8F: ${n}`);const t=new Map;for(let s=0,o=r.params.length;s<o;s++){const l=r.params[s],a=s<e.length?e[s]:l.defaultValue;if(a===void 0&&l.defaultValue===null)throw new Error(`\u7F3A\u5C11\u5FC5\u9700\u53C2\u6570: ${l.name}`);t.set(l.name,a!==void 0?a:"")}return W(r.body,t,y)},getAll:function(){return Array.from(L.entries())},remove:function(n){L.delete(n)},clear:function(){L.clear()},parse:function(n){const{macros:e}=V(n,y);for(const[r,t]of e)L.set(r,t)}},math:{evaluate:function(n){return Z(n,y)}},colorUtils:{labToRGB:S,lchToLab:v,lchToRGB:function(n,e,r){const t=v(n,e,r);return S(t.L,t.a,t.b)},labToP3:B,lchToP3:function(n,e,r){const t=v(n,e,r);return B(t.L,t.a,t.b)},parseHexLab:function(n){const e=n.match(/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=(parseInt(t,16)-128)*1.5,a=(parseInt(s,16)-128)*1.5;return S(o,l,a)},parseHexLch:function(n){const e=n.match(/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=parseInt(t,16)/255*150,a=parseInt(s)/100*360,c=v(o,l,a);return S(c.L,c.a,c.b)},generateColor:function(n,e,r,t=null,s=!0){return T(n,e,r,{enableP3:s},t)},parseColor:function(n){try{const e=n.match(/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(e){let t=parseFloat(e[1]);const s=parseFloat(e[3]),o=parseFloat(e[4]),l=e[5]?e[5].includes("%")?parseFloat(e[5])/100:parseFloat(e[5]):null,a=T(t,s,o,y,l);return{L:t,A:s,B:o,alpha:l,rgb:S(t,s,o),p3:B(t,s,o),colorString:a}}const r=n.match(/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(r){let t=parseFloat(r[1]);const s=parseFloat(r[3]);let o=parseFloat(r[4]);const l=r[6]?r[6].includes("%")?parseFloat(r[6])/100:parseFloat(r[6]):null,a=v(t,s,o),c=T(a.L,a.a,a.b,y,l);return{L:t,C:s,H:o,alpha:l,lab:a,rgb:S(a.L,a.a,a.b),p3:B(a.L,a.a,a.b),colorString:c}}return null}catch(e){return console.warn("\u65E0\u6CD5\u89E3\u6790\u989C\u8272:",n,e),null}}}};U.Plugin=class{name="Plugin";constructor(){this.createdAt=Date.now(),this.install()}install(){}destroy(){}convert(n,e){throw new Error(`${this.name}.convert() \u5FC5\u987B\u88AB\u5B9E\u73B0`)}};const k=async function(...n){if(n.length>1||n[0]&&n[0].raw)return await he(...n);const e=n[0];if(typeof e=="string"){const r=await O(e,n[1]);return r&&typeof r.then=="function",r}return typeof e=="object"&&e!==null?(y={...y,...e},k):n.length===0?N():k};async function he(n,...e){let r=n[0];for(let s=0,o=e.length;s<o;s++){const l=e[s];let a="";typeof l=="function"?a=l():Array.isArray(l)?a=l.join(" "):a=String(l??"none"),r+=a+n[s+1]}const t=await O(r,y);return t&&typeof t.then=="function",t}return Object.assign(k,U),typeof window<"u"&&(N(),Object.defineProperty(window.HTMLElement.prototype,"cssVar",{get(){const n=this;return new Proxy(()=>{},{get(e,r){const t=r.startsWith("--")?r:`--${r}`;return n.style.getPropertyValue(t)},set(e,r,t){const s=r.startsWith("--")?r:`--${r}`;return n.style.setProperty(s,t),!0},apply(e,r,t){const s=t[0],o=t[1],l=s.startsWith("--")?s:`--${s}`;if(o===void 0)return n.style.getPropertyValue(l);n.style.setProperty(l,o)}})}})),k})();module.exports=styimat;
|
package/dist/styimat.min.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* MIT License
|
|
3
3
|
* Copyright (c) 2025 王小玗
|
|
4
|
-
*/const styimat=(function(){let
|
|
5
|
-
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function K(n){const e={...
|
|
6
|
-
`)}}function J(n){const e=new Map,r=
|
|
7
|
-
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=
|
|
4
|
+
*/const styimat=(function(){let y={rootSelector:":root",variablePrefix:"--",preserveOriginal:!1,indentSize:4,enableNesting:!0,autoProcessStyleTags:!0,styleTagAttribute:"e",convertLabToRGB:!0,convertLchToRGB:!0,enableP3:!0,enableMath:!0,importBaseUrl:"",importCache:!0,importTimeout:5e3,enableAlias:!0,enableMacros:!0};const A={IMPORT:/@import\s+([^;]+?)\s*;/g,ALIAS:/^@alias\s+([a-zA-Z_][a-zA-Z0-9_]*)\s+(.+?)\s*;$/,MACRO:/^@macro\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*\(([^)]*)\)\s*\{$/,COMMENT:/\/\*[\s\S]*?\*\//g,MATH_SYMBOL:/([\da-z])([+-])(-?[\da-z])/g,MATH:/math\(([^)]+)\)/gi,COLOR:/(lab|lch)\([^)]+\)/gi,HEXLAB:/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/gi,HEXLCH:/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/gi,SPACE:/\s+/g,AND:/&/g,HYPHEN:/-([a-z])/g,VARIABLE:/(?:\$\$|\$)([a-zA-Z_][a-zA-Z0-9_]*)(?=[^a-zA-Z0-9_])/g};let x=null;const _=new Map,F=new Map,L=new Map,$=new Map;function E(n,e=`
|
|
5
|
+
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function K(n){const e={...y},r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@config ")){const l=o.substring(8).trim(),a=l.indexOf(" ");if(~a){const c=l.substring(0,a).trim(),u=l.substring(a+1).trim(),i=re(c);u==="true"||u==="false"?e[i]=u==="true":!isNaN(u)&&u.trim()!==""?e[i]=Number(u):e[i]=u}else console.warn(`\u65E0\u6548\u7684\u914D\u7F6E\u884C: ${o}`)}else t.push(s)}return{config:e,css:t.join(`
|
|
6
|
+
`)}}function J(n){const e=new Map,r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@alias")){const l=o.match(A.ALIAS);if(l){const a=l[1],c=l[2];e.set(a,c);continue}}t.push(s)}return{aliases:e,css:t.join(`
|
|
7
|
+
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=E(n),s=[];let o=!1,l="",a=[],c=[],u=0;for(let i of t){const p=i.trim();if(!o&&p.startsWith("@macro")){const f=p.match(A.MACRO);if(f){o=!0,l=f[1],a=E(f[2],",").map(h=>h.trim()).filter(h=>h).map(h=>{const b=E(h,":").map(C=>C.trim());return{name:b[0].slice(1),defaultValue:b[1]||null}}),c=[],u=1;continue}}if(o){for(const f of i)f==="{"&&u++,f==="}"&&u--;u===0?(r.set(l,{params:a,body:c.join(`
|
|
8
8
|
`)}),o=!1,l="",a=[],c=[]):c.push(i);continue}s.push(i)}return{macros:r,css:s.join(`
|
|
9
|
-
`)}}function ee(n,e,r=","){const t=new Map,s=te(n,r);for(let o=0,l=e.length;o<l;o++){const a=e[o];let c;o<s.length?c=s[o]:a.defaultValue!==null?c=a.defaultValue:c="none",t.set(a.name,c)}return t}function te(n,e){const r=[];let t="",s=!1,o="",l=0,a=0;for(let c=0,u=n.length;c<u;c++){const i=n[c];(i==='"'||i==="'")&&!s?(s=!0,o=i):i===o&&s&&(s=!1,o=""),s||(i==="("&&l++,i===")"&&l--,i==="["&&a++,i==="]"&&a--),i===e&&!s&&l===0&&a===0?(r.push(t.trim()),t=""):t+=i}return t.trim()&&r.push(t.trim()),r}function W(n,e,r){let t=n;return t=t.replace(A.VARIABLE,(s,o)=>e.get(o)?e.get(o):s),t=w(t,r),t}function re(n){return n.replace(A.HYPHEN,function(e,r){return r.toUpperCase()})}function
|
|
9
|
+
`)}}function ee(n,e,r=","){const t=new Map,s=te(n,r);for(let o=0,l=e.length;o<l;o++){const a=e[o];let c;o<s.length?c=s[o]:a.defaultValue!==null?c=a.defaultValue:c="none",t.set(a.name,c)}return t}function te(n,e){const r=[];let t="",s=!1,o="",l=0,a=0;for(let c=0,u=n.length;c<u;c++){const i=n[c];(i==='"'||i==="'")&&!s?(s=!0,o=i):i===o&&s&&(s=!1,o=""),s||(i==="("&&l++,i===")"&&l--,i==="["&&a++,i==="]"&&a--),i===e&&!s&&l===0&&a===0?(r.push(t.trim()),t=""):t+=i}return t.trim()&&r.push(t.trim()),r}function W(n,e,r){let t=n;return t=t.replace(A.VARIABLE,(s,o)=>e.get(o)?e.get(o):s),t=w(t,r),t}function re(n){return n.replace(A.HYPHEN,function(e,r){return r.toUpperCase()})}function z(){if(x!==null)return x;if(typeof window>"u"||!window.CSS)return x=!1,!1;try{x=CSS.supports("color","color(display-p3 1 0 0)")}catch{x=!1}return x}function H(n,e,r){let t=n.trim();if(t.endsWith(";")&&(t=t.slice(0,-1)),!t)return[];const s=[];let o="",l=0,a=!1,c="";for(let i=0,p=t.length;i<p;i++){const f=t[i];(f==='"'||f==="'")&&!a?(a=!0,c=f):f===c&&a&&(a=!1,c=""),a||(f==="("?l++:f===")"&&l--),f===";"&&!a&&l===0?o.trim()&&(s.push(o.trim()),o=""):o+=f}o.trim()&&s.push(o.trim());const u={};for(let i of s){if(i=i.replace(A.COMMENT,""),!i.trim())continue;const p=ne(i);if(!~p){console.warn(`\u65E0\u6548\u7684CSS\u58F0\u660E: "${i}"`);continue}let f=i.substring(0,p).trim(),h=i.substring(p+1).trim();if(h.endsWith(";")&&(h=h.slice(0,-1).trim()),f.startsWith("$")&&(f="--"+f.slice(1)),f=e.get(f)??f,f.startsWith("@")&&r.get(f.slice(1))){const b=r.get(f.slice(1)),C=ee(h,b.params," ");f=W(b.body,C,D),h=""}u[f]=h}return u}function ne(n){let e=!1,r="";for(let t=0,s=n.length;t<s;t++){const o=n[t];if((o==='"'||o==="'")&&!e?(e=!0,r=o):o===r&&e&&(e=!1,r=""),o===":"&&!e)return t}return-1}function Z(n,e){let r=n.replace(A.SPACE,"");return se(r)}function se(n){return`calc(${n.replace(A.MATH_SYMBOL,"$1 $2 $3")})`}function oe(n,e){let r=n;return r=(s=>s.replace(A.MATH,(o,l)=>Z(l,e)))(r),r}function ae(n,e){if(!e.convertLabToRGB&&!e.convertLchToRGB)return n;let r=n;r=ce(r,e);const t=new Map,s=l=>l.replace(A.COLOR,a=>{if(t.has(a))return t.get(a);let c=a;return a.toLowerCase().startsWith("lab(")?e.convertLabToRGB&&(c=le(a,e)):a.toLowerCase().startsWith("lch(")&&e.convertLchToRGB&&(c=ie(a,e)),t.set(a,c),c});let o;do o=r,r=s(r);while(r!==o);return r}function ce(n,e){let r=n;const t=new Map;return r=r.replace(A.HEXLAB,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=(parseInt(l,16)-128)*1.5,i=(parseInt(a,16)-128)*1.5,p=T(c,u,i,e);return t.set(s,p),p}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lab#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r=r.replace(A.HEXLCH,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=parseInt(l,16)/255*150,i=parseInt(a)/100*360,p=v(c,u,i),f=T(p.L,p.a,p.b,e);return t.set(s,f),f}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lch#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r}function le(n,e){const r=/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]!=="%"&&(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]),l=parseFloat(t[4]),a=t[5]!==void 0?t[5].includes("%")?parseFloat(t[5])/100:parseFloat(t[5]):null;return T(s,o,l,e,a)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LAB\u989C\u8272: ${n}`,s),n}}function ie(n,e){const r=/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]==="%"?s=s:(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]);let l=parseFloat(t[4]);o<0&&console.warn(`LCH\u4E2D\u7684C\u503C\u4E0D\u80FD\u4E3A\u8D1F: ${o}`),l=(l%360+360)%360;const a=v(s,o,l),c=t[6]!==void 0?t[6].includes("%")?parseFloat(t[6])/100:parseFloat(t[6]):null;return T(a.L,a.a,a.b,e,c)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LCH\u989C\u8272: ${n}`,s),n}}function v(n,e,r){const t=r*Math.PI/180,s=e*Math.cos(t),o=e*Math.sin(t);return{L:n,a:s,b:o}}function S(n,e,r){const t=(d,m,g)=>{const Q=(d+16)/116,P=m*.002+Q,R=Q-g*.005,de=P*P*P>.008856?P*P*P:(116*P-16)/903.3,me=d>903.3*.008856?((d+16)/116)**3:d/903.3,ge=R*R*R>.008856?R*R*R:(116*R-16)/903.3;return[de*.95047,me*1,ge*1.08883]},s=(d,m,g)=>{const M=[[3.2404542,-1.5371385,-.4985314],[-.969266,1.8760108,.041556],[.0556434,-.2040259,1.0572252]],I=M[0][0]*d+M[0][1]*m+M[0][2]*g,Y=M[1][0]*d+M[1][1]*m+M[1][2]*g,q=M[2][0]*d+M[2][1]*m+M[2][2]*g;return[I,Y,q]},o=d=>{const m=d<0?-1:1,g=m*d;return g<=.0031308?12.92*g:m*(1.055*Math.pow(g,.4166666666666667)-.055)},l=d=>Math.max(0,Math.min(255,d*255|0)),[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:l(h),g:l(b),b:l(C)}}function B(n,e,r){const t=(a,c,u)=>{const C=(a+16)/116,d=c*.002+C,m=C-u/200,g=d**3>.008856?d**3:(116*d-16)/903.3,M=a>903.3*.008856?((a+16)/116)**3:a/903.3,I=m**3>.008856?m**3:(116*m-16)/903.3;return[g*.95047,M*1,I*1.08883]},s=(a,c,u)=>{const i=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],p=i[0][0]*a+i[0][1]*c+i[0][2]*u,f=i[1][0]*a+i[1][1]*c+i[1][2]*u,h=i[2][0]*a+i[2][1]*c+i[2][2]*u;return[p,f,h]},o=a=>{const c=a<0?-1:1,u=Math.abs(a);return u<=.0031308?c*12.92*u:c*(1.055*Math.pow(u,.4166666666666667)-.055)},l=a=>Math.max(0,Math.min(255,a*255|0));try{const[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:Math.max(0,Math.min(1,h)),g:Math.max(0,Math.min(1,b)),b:Math.max(0,Math.min(1,C))}}catch(a){console.warn("P3\u8F6C\u6362\u5931\u8D25:",a);const c=S(n,e,r);return{r:c.r/255,g:c.g/255,b:c.b/255}}}function T(n,e,r,t,s=null){if(!t.enableP3||!z()){const o=S(n,e,r);return s!==null?`rgba(${o.r}, ${o.g}, ${o.b}, ${s})`:`rgb(${o.r}, ${o.g}, ${o.b})`}else{const o=B(n,e,r);return s!==null?`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)} / ${s})`:`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)})`}}function w(n,e){let r=n;return e.enableMath&&(r=oe(r,e)),(e.convertLabToRGB||e.convertLchToRGB)&&(r=ae(r,e)),r}function ue(n,e,r,t){const s=[],o=[],l={};let a=null,c="",u=!1,i=0,p=!0;for(let f=0,h=n.length;f<h;f++){const b=n[f],C=n.charCodeAt(f);if(C===123){if(i++,p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}if(!u)a={selector:c.trim(),properties:{},children:[]},o.push(a),u=!0,p=!1;else{if(c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d={selector:c.trim(),properties:{},children:[]};o.push(d),a=d}c=""}else if(C===125){if(i--,c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d=o.pop();if(o.length===0)s.push(d),u=!1,a=null,p=!0;else{const m=o[o.length-1];m.children||(m.children=[]),m.children.push(d),a=m}c="",i===0&&(u=!1,p=!0)}else if(C===10||C===59){if(u&&c.trim()&&c.includes(":")){const d=H(c.trim(),r,t);for(let m of Object.keys(d)){const g=w(d[m],e);a&&(a.properties[m]=g)}}else if(p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}c=""}else c+=b}if(p&&c.trim()){const f=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(f){const[,h,b]=f;l[h]=w(b.trim(),e)}}else if(u&&c.trim()&&c.includes(":")){const f=H(c.trim(),r,t);for(let h of Object.keys(f)){const b=w(f[h],e);a&&(a.properties[h]=b)}}if(Object.keys(l).length>0){const f={selector:e.rootSelector,properties:{},children:[]};Object.entries(l).forEach(([h,b])=>{f.properties["--"+h]=b}),s.unshift(f)}return j(s,e,"",r,t)}function j(n,e,r="",t,s,o=!1){let l="";for(const a of n){const c=a.selector.startsWith("@");c&&(l+=a.selector+` {
|
|
10
10
|
`);let u=a.selector;if(r&&(u.includes("&")?u=u.replace(A.AND,r):u.trim().startsWith(":")?u=r+u:u=r+" "+u),u=u,Object.keys(a.properties).length>0){l+=(o?" ".repeat(e.indentSize):"")+u+` {
|
|
11
11
|
`;for(let i in a.properties)if(a.properties.hasOwnProperty(i)){const p=w(a.properties[i],e);l+=(o?" ".repeat(e.indentSize):"")+" ".repeat(e.indentSize)+(p.length?`${i}: ${p};
|
|
12
12
|
`:`${i}
|
|
13
13
|
`)}l+=o?" ".repeat(e.indentSize)+`}
|
|
14
14
|
`:`}
|
|
15
15
|
|
|
16
|
-
`}a.children&&a.children.length>0&&(l+=
|
|
16
|
+
`}a.children&&a.children.length>0&&(l+=j(a.children,e,c?"":u,t,s,o||c)),c&&(l+=`}
|
|
17
17
|
|
|
18
|
-
`)}return l}function fe(n,e){let r=n;return r=r.replace(A.VARIABLE,(t,s)=>t.startsWith("$$")?`attr(${s})`:`var(--${s})`),r=w(r,e),r}async function
|
|
18
|
+
`)}return l}function fe(n,e){let r=n;return r=r.replace(A.VARIABLE,(t,s)=>t.startsWith("$$")?`attr(${s})`:`var(--${s})`),r=w(r,e),r}async function G(n,e){const r=A.IMPORT;return(async s=>{const o=[],l=s.replace(r,(a,c)=>{const u=pe(c,e).then(i=>G(i,e)).catch(i=>(console.warn(`\u65E0\u6CD5\u5BFC\u5165CSS\u6587\u4EF6: ${c}`,i),""));return o.push(u),`__IMPORT_PLACEHOLDER_${o.length-1}__`});if(o.length>0){const a=await Promise.all(o);let c=l;for(let u=a.length;u--;)c=c.replace(`__IMPORT_PLACEHOLDER_${u}__`,a[u]);return c}return l})(n)}async function pe(n,e){if(e.importCache&&_.has(n))return _.get(n);const r=e.importBaseUrl?new URL(n,e.importBaseUrl).href:n;let t;if(typeof process<"u"&&process.versions&&process.versions.node&&typeof require<"u")try{const o=require("fs"),l=require("path");let a=r;r.startsWith(".")&&(a=l.join(process.cwd(),r)),t=o.readFileSync(a,"utf-8")}catch(o){throw new Error(`Node.js\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25: ${r} - ${o.message}`)}else try{const o=new AbortController,l=setTimeout(()=>o.abort(),e.importTimeout),a=await fetch(r,{signal:o.signal,headers:{Accept:"text/css"}});if(clearTimeout(l),!a.ok)throw new Error(`HTTP\u9519\u8BEF: ${a.status} ${a.statusText}`);t=await a.text()}catch(o){throw o.name==="AbortError"?new Error(`\u5BFC\u5165\u8D85\u65F6: ${r}`):new Error(`\u65E0\u6CD5\u83B7\u53D6CSS: ${r} - ${o.message}`)}return e.importCache&&_.set(n,t),t}async function O(n,e={}){let{config:r,css:t}=K(n);const s={...y,...e,...r};t=await G(t,s);let o=t,l=new Map;if(s.enableAlias){const{aliases:p,css:f}=J(o);l=p,o=f}let a=o,c=new Map;if(s.enableMacros){const{macros:p,css:f}=V(a,s);c=p,a=f;for(const[h,b]of c)L.set(h,b)}let u=a.trim();if(s.enableNesting&&a.includes("{"))try{u=ue(a,s,l,c)}catch(p){console.warn("\u5D4C\u5957\u89E3\u6790\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CBCSS:",p)}let i=u;i=fe(i,s);for(const[p,f]of $)try{i=f.convert(i,s)}catch(h){console.error("\u63D2\u4EF6\u5904\u7406\u5931\u8D25:",h)}return i}function X(n={}){const e={...y,...n},r=document.querySelectorAll(`style[${e.styleTagAttribute||"e"}]`);return r.forEach(t=>{let s=t.textContent;(async()=>{try{t.getAttribute("src")&&(s="@import "+t.getAttribute("src")+";");const l=await O(s,e),a=document.createElement("style");a.textContent=l,t.parentNode.insertBefore(a,t.nextSibling),e.preserveOriginal?t.style.display="none":t.remove()}catch(l){console.error("\u5904\u7406style\u6807\u7B7E\u5931\u8D25:",l)}})()}),r.length}function D(n={}){y={...y,...n}}function N(n,e={}){const r={...y,...e};if(n)return(async()=>{try{const t=await O(n,r),s=document.createElement("style");return s.textContent=t,document.head.appendChild(s),s}catch(t){return console.error("\u5E94\u7528CSS\u5931\u8D25:",t),null}})();document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{X(r)}):X(r)}const U={convert:O,apply:N,config:D,supportsP3:z(),detectP3Support:z,imports:{clearCache:function(){_.clear()},setBaseUrl:function(n){y.importBaseUrl=n},setCacheEnabled:function(n){y.importCache=n},setTimeout:function(n){y.importTimeout=n}},plugins:{use(n){const e=new n;return $.set(e.name??n.name,e),!0},remove(n){return $.get(n)?.destroy&&$.get(n).destroy(),$.delete(n),!0},getAll:function(){return Array.from($.entries())},clear:function(){$.clear()}},aliases:{add:function(n,e){F.set(n,e)},remove:function(n){F.delete(n)},getAll:function(){return Array.from(F.entries())},clear:function(){F.clear()}},macros:{define:function(n,e,r=[]){if(typeof e=="function"){const s=e.toString().match(/{([\s\S]*)}/);s&&L.set(n,{params:r.map(o=>typeof o=="string"?{name:o}:o),body:s[1].trim()})}else L.set(n,{params:r.map(t=>typeof t=="string"?{name:t}:t),body:e})},call:function(n,...e){const r=L.get(n);if(!r)throw new Error(`\u672A\u5B9A\u4E49\u7684\u5B8F: ${n}`);const t=new Map;for(let s=0,o=r.params.length;s<o;s++){const l=r.params[s],a=s<e.length?e[s]:l.defaultValue;if(a===void 0&&l.defaultValue===null)throw new Error(`\u7F3A\u5C11\u5FC5\u9700\u53C2\u6570: ${l.name}`);t.set(l.name,a!==void 0?a:"")}return W(r.body,t,y)},getAll:function(){return Array.from(L.entries())},remove:function(n){L.delete(n)},clear:function(){L.clear()},parse:function(n){const{macros:e}=V(n,y);for(const[r,t]of e)L.set(r,t)}},math:{evaluate:function(n){return Z(n,y)}},colorUtils:{labToRGB:S,lchToLab:v,lchToRGB:function(n,e,r){const t=v(n,e,r);return S(t.L,t.a,t.b)},labToP3:B,lchToP3:function(n,e,r){const t=v(n,e,r);return B(t.L,t.a,t.b)},parseHexLab:function(n){const e=n.match(/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=(parseInt(t,16)-128)*1.5,a=(parseInt(s,16)-128)*1.5;return S(o,l,a)},parseHexLch:function(n){const e=n.match(/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=parseInt(t,16)/255*150,a=parseInt(s)/100*360,c=v(o,l,a);return S(c.L,c.a,c.b)},generateColor:function(n,e,r,t=null,s=!0){return T(n,e,r,{enableP3:s},t)},parseColor:function(n){try{const e=n.match(/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(e){let t=parseFloat(e[1]);const s=parseFloat(e[3]),o=parseFloat(e[4]),l=e[5]?e[5].includes("%")?parseFloat(e[5])/100:parseFloat(e[5]):null,a=T(t,s,o,y,l);return{L:t,A:s,B:o,alpha:l,rgb:S(t,s,o),p3:B(t,s,o),colorString:a}}const r=n.match(/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(r){let t=parseFloat(r[1]);const s=parseFloat(r[3]);let o=parseFloat(r[4]);const l=r[6]?r[6].includes("%")?parseFloat(r[6])/100:parseFloat(r[6]):null,a=v(t,s,o),c=T(a.L,a.a,a.b,y,l);return{L:t,C:s,H:o,alpha:l,lab:a,rgb:S(a.L,a.a,a.b),p3:B(a.L,a.a,a.b),colorString:c}}return null}catch(e){return console.warn("\u65E0\u6CD5\u89E3\u6790\u989C\u8272:",n,e),null}}}};U.Plugin=class{name="Plugin";constructor(){this.createdAt=Date.now(),this.install()}install(){}destroy(){}convert(n,e){throw new Error(`${this.name}.convert() \u5FC5\u987B\u88AB\u5B9E\u73B0`)}};const k=async function(...n){if(n.length>1||n[0]&&n[0].raw)return await he(...n);const e=n[0];if(typeof e=="string"){const r=await O(e,n[1]);return r&&typeof r.then=="function",r}return typeof e=="object"&&e!==null?(y={...y,...e},k):n.length===0?N():k};async function he(n,...e){let r=n[0];for(let s=0,o=e.length;s<o;s++){const l=e[s];let a="";typeof l=="function"?a=l():Array.isArray(l)?a=l.join(" "):a=String(l??"none"),r+=a+n[s+1]}const t=await O(r,y);return t&&typeof t.then=="function",t}return Object.assign(k,U),typeof window<"u"&&(N(),Object.defineProperty(window.HTMLElement.prototype,"cssVar",{get(){const n=this;return new Proxy(()=>{},{get(e,r){const t=r.startsWith("--")?r:`--${r}`;return n.style.getPropertyValue(t)},set(e,r,t){const s=r.startsWith("--")?r:`--${r}`;return n.style.setProperty(s,t),!0},apply(e,r,t){const s=t[0],o=t[1],l=s.startsWith("--")?s:`--${s}`;if(o===void 0)return n.style.getPropertyValue(l);n.style.setProperty(l,o)}})}})),k})();
|
package/dist/styimat.min.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* MIT License
|
|
3
3
|
* Copyright (c) 2025 王小玗
|
|
4
|
-
*/const
|
|
5
|
-
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function
|
|
6
|
-
`)}}function
|
|
7
|
-
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=
|
|
4
|
+
*/const K=(function(){let y={rootSelector:":root",variablePrefix:"--",preserveOriginal:!1,indentSize:4,enableNesting:!0,autoProcessStyleTags:!0,styleTagAttribute:"e",convertLabToRGB:!0,convertLchToRGB:!0,enableP3:!0,enableMath:!0,importBaseUrl:"",importCache:!0,importTimeout:5e3,enableAlias:!0,enableMacros:!0};const A={IMPORT:/@import\s+([^;]+?)\s*;/g,ALIAS:/^@alias\s+([a-zA-Z_][a-zA-Z0-9_]*)\s+(.+?)\s*;$/,MACRO:/^@macro\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*\(([^)]*)\)\s*\{$/,COMMENT:/\/\*[\s\S]*?\*\//g,MATH_SYMBOL:/([\da-z])([+-])(-?[\da-z])/g,MATH:/math\(([^)]+)\)/gi,COLOR:/(lab|lch)\([^)]+\)/gi,HEXLAB:/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/gi,HEXLCH:/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/gi,SPACE:/\s+/g,AND:/&/g,HYPHEN:/-([a-z])/g,VARIABLE:/(?:\$\$|\$)([a-zA-Z_][a-zA-Z0-9_]*)(?=[^a-zA-Z0-9_])/g};let x=null;const _=new Map,F=new Map,S=new Map,$=new Map;function E(n,e=`
|
|
5
|
+
`){const r=[],t=e.charCodeAt(0);let s=0;for(let o=0,l=n.length;o<l;o++)n.charCodeAt(o)===t&&((o>s||n.charAt(s)!=="\r")&&r.push(n.slice(s,o)),s=o+1);return s<n.length?r.push(n.substring(s)):s===n.length&&n.charCodeAt(n.length-1)===10&&r.push(""),r}function J(n){const e={...y},r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@config ")){const l=o.substring(8).trim(),a=l.indexOf(" ");if(~a){const c=l.substring(0,a).trim(),u=l.substring(a+1).trim(),i=ne(c);u==="true"||u==="false"?e[i]=u==="true":!isNaN(u)&&u.trim()!==""?e[i]=Number(u):e[i]=u}else console.warn(`\u65E0\u6548\u7684\u914D\u7F6E\u884C: ${o}`)}else t.push(s)}return{config:e,css:t.join(`
|
|
6
|
+
`)}}function ee(n){const e=new Map,r=E(n),t=[];for(let s of r){const o=s.trim();if(o.startsWith("@alias")){const l=o.match(A.ALIAS);if(l){const a=l[1],c=l[2];e.set(a,c);continue}}t.push(s)}return{aliases:e,css:t.join(`
|
|
7
|
+
`)}}function V(n,e){if(!e.enableMacros)return{macros:new Map,css:n};const r=new Map,t=E(n),s=[];let o=!1,l="",a=[],c=[],u=0;for(let i of t){const p=i.trim();if(!o&&p.startsWith("@macro")){const f=p.match(A.MACRO);if(f){o=!0,l=f[1],a=E(f[2],",").map(h=>h.trim()).filter(h=>h).map(h=>{const b=E(h,":").map(C=>C.trim());return{name:b[0].slice(1),defaultValue:b[1]||null}}),c=[],u=1;continue}}if(o){for(const f of i)f==="{"&&u++,f==="}"&&u--;u===0?(r.set(l,{params:a,body:c.join(`
|
|
8
8
|
`)}),o=!1,l="",a=[],c=[]):c.push(i);continue}s.push(i)}return{macros:r,css:s.join(`
|
|
9
|
-
`)}}function
|
|
9
|
+
`)}}function te(n,e,r=","){const t=new Map,s=re(n,r);for(let o=0,l=e.length;o<l;o++){const a=e[o];let c;o<s.length?c=s[o]:a.defaultValue!==null?c=a.defaultValue:c="none",t.set(a.name,c)}return t}function re(n,e){const r=[];let t="",s=!1,o="",l=0,a=0;for(let c=0,u=n.length;c<u;c++){const i=n[c];(i==='"'||i==="'")&&!s?(s=!0,o=i):i===o&&s&&(s=!1,o=""),s||(i==="("&&l++,i===")"&&l--,i==="["&&a++,i==="]"&&a--),i===e&&!s&&l===0&&a===0?(r.push(t.trim()),t=""):t+=i}return t.trim()&&r.push(t.trim()),r}function W(n,e,r){let t=n;return t=t.replace(A.VARIABLE,(s,o)=>e.get(o)?e.get(o):s),t=w(t,r),t}function ne(n){return n.replace(A.HYPHEN,function(e,r){return r.toUpperCase()})}function z(){if(x!==null)return x;if(typeof window>"u"||!window.CSS)return x=!1,!1;try{x=CSS.supports("color","color(display-p3 1 0 0)")}catch{x=!1}return x}function H(n,e,r){let t=n.trim();if(t.endsWith(";")&&(t=t.slice(0,-1)),!t)return[];const s=[];let o="",l=0,a=!1,c="";for(let i=0,p=t.length;i<p;i++){const f=t[i];(f==='"'||f==="'")&&!a?(a=!0,c=f):f===c&&a&&(a=!1,c=""),a||(f==="("?l++:f===")"&&l--),f===";"&&!a&&l===0?o.trim()&&(s.push(o.trim()),o=""):o+=f}o.trim()&&s.push(o.trim());const u={};for(let i of s){if(i=i.replace(A.COMMENT,""),!i.trim())continue;const p=se(i);if(!~p){console.warn(`\u65E0\u6548\u7684CSS\u58F0\u660E: "${i}"`);continue}let f=i.substring(0,p).trim(),h=i.substring(p+1).trim();if(h.endsWith(";")&&(h=h.slice(0,-1).trim()),f.startsWith("$")&&(f="--"+f.slice(1)),f=e.get(f)??f,f.startsWith("@")&&r.get(f.slice(1))){const b=r.get(f.slice(1)),C=te(h,b.params," ");f=W(b.body,C,D),h=""}u[f]=h}return u}function se(n){let e=!1,r="";for(let t=0,s=n.length;t<s;t++){const o=n[t];if((o==='"'||o==="'")&&!e?(e=!0,r=o):o===r&&e&&(e=!1,r=""),o===":"&&!e)return t}return-1}function Z(n,e){let r=n.replace(A.SPACE,"");return oe(r)}function oe(n){return`calc(${n.replace(A.MATH_SYMBOL,"$1 $2 $3")})`}function ae(n,e){let r=n;return r=(s=>s.replace(A.MATH,(o,l)=>Z(l,e)))(r),r}function ce(n,e){if(!e.convertLabToRGB&&!e.convertLchToRGB)return n;let r=n;r=le(r,e);const t=new Map,s=l=>l.replace(A.COLOR,a=>{if(t.has(a))return t.get(a);let c=a;return a.toLowerCase().startsWith("lab(")?e.convertLabToRGB&&(c=ie(a,e)):a.toLowerCase().startsWith("lch(")&&e.convertLchToRGB&&(c=ue(a,e)),t.set(a,c),c});let o;do o=r,r=s(r);while(r!==o);return r}function le(n,e){let r=n;const t=new Map;return r=r.replace(A.HEXLAB,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=(parseInt(l,16)-128)*1.5,i=(parseInt(a,16)-128)*1.5,p=P(c,u,i,e);return t.set(s,p),p}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lab#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r=r.replace(A.HEXLCH,(s,o,l,a)=>{if(t.has(s))return t.get(s);try{const c=parseInt(o,16)/255*100,u=parseInt(l,16)/255*150,i=parseInt(a)/100*360,p=v(c,u,i),f=P(p.L,p.a,p.b,e);return t.set(s,f),f}catch(c){return console.warn(`\u65E0\u6CD5\u89E3\u6790lch#\u5341\u516D\u8FDB\u5236\u989C\u8272: ${s}`,c),s}}),r}function ie(n,e){const r=/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]!=="%"&&(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]),l=parseFloat(t[4]),a=t[5]!==void 0?t[5].includes("%")?parseFloat(t[5])/100:parseFloat(t[5]):null;return P(s,o,l,e,a)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LAB\u989C\u8272: ${n}`,s),n}}function ue(n,e){const r=/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i,t=n.match(r);if(!t)return n;try{let s=parseFloat(t[1]);t[2]==="%"?s=s:(s<0&&(s=0),s>100&&(s=100));const o=parseFloat(t[3]);let l=parseFloat(t[4]);o<0&&console.warn(`LCH\u4E2D\u7684C\u503C\u4E0D\u80FD\u4E3A\u8D1F: ${o}`),l=(l%360+360)%360;const a=v(s,o,l),c=t[6]!==void 0?t[6].includes("%")?parseFloat(t[6])/100:parseFloat(t[6]):null;return P(a.L,a.a,a.b,e,c)}catch(s){return console.warn(`\u65E0\u6CD5\u8F6C\u6362LCH\u989C\u8272: ${n}`,s),n}}function v(n,e,r){const t=r*Math.PI/180,s=e*Math.cos(t),o=e*Math.sin(t);return{L:n,a:s,b:o}}function L(n,e,r){const t=(d,m,g)=>{const Q=(d+16)/116,T=m*.002+Q,R=Q-g*.005,me=T*T*T>.008856?T*T*T:(116*T-16)/903.3,ge=d>903.3*.008856?((d+16)/116)**3:d/903.3,be=R*R*R>.008856?R*R*R:(116*R-16)/903.3;return[me*.95047,ge*1,be*1.08883]},s=(d,m,g)=>{const M=[[3.2404542,-1.5371385,-.4985314],[-.969266,1.8760108,.041556],[.0556434,-.2040259,1.0572252]],I=M[0][0]*d+M[0][1]*m+M[0][2]*g,Y=M[1][0]*d+M[1][1]*m+M[1][2]*g,q=M[2][0]*d+M[2][1]*m+M[2][2]*g;return[I,Y,q]},o=d=>{const m=d<0?-1:1,g=m*d;return g<=.0031308?12.92*g:m*(1.055*Math.pow(g,.4166666666666667)-.055)},l=d=>Math.max(0,Math.min(255,d*255|0)),[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:l(h),g:l(b),b:l(C)}}function B(n,e,r){const t=(a,c,u)=>{const C=(a+16)/116,d=c*.002+C,m=C-u/200,g=d**3>.008856?d**3:(116*d-16)/903.3,M=a>903.3*.008856?((a+16)/116)**3:a/903.3,I=m**3>.008856?m**3:(116*m-16)/903.3;return[g*.95047,M*1,I*1.08883]},s=(a,c,u)=>{const i=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],p=i[0][0]*a+i[0][1]*c+i[0][2]*u,f=i[1][0]*a+i[1][1]*c+i[1][2]*u,h=i[2][0]*a+i[2][1]*c+i[2][2]*u;return[p,f,h]},o=a=>{const c=a<0?-1:1,u=Math.abs(a);return u<=.0031308?c*12.92*u:c*(1.055*Math.pow(u,.4166666666666667)-.055)},l=a=>Math.max(0,Math.min(255,a*255|0));try{const[a,c,u]=t(n,e,r),[i,p,f]=s(a,c,u),h=o(i),b=o(p),C=o(f);return{r:Math.max(0,Math.min(1,h)),g:Math.max(0,Math.min(1,b)),b:Math.max(0,Math.min(1,C))}}catch(a){console.warn("P3\u8F6C\u6362\u5931\u8D25:",a);const c=L(n,e,r);return{r:c.r/255,g:c.g/255,b:c.b/255}}}function P(n,e,r,t,s=null){if(!t.enableP3||!z()){const o=L(n,e,r);return s!==null?`rgba(${o.r}, ${o.g}, ${o.b}, ${s})`:`rgb(${o.r}, ${o.g}, ${o.b})`}else{const o=B(n,e,r);return s!==null?`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)} / ${s})`:`color(display-p3 ${o.r.toFixed(4)} ${o.g.toFixed(4)} ${o.b.toFixed(4)})`}}function w(n,e){let r=n;return e.enableMath&&(r=ae(r,e)),(e.convertLabToRGB||e.convertLchToRGB)&&(r=ce(r,e)),r}function fe(n,e,r,t){const s=[],o=[],l={};let a=null,c="",u=!1,i=0,p=!0;for(let f=0,h=n.length;f<h;f++){const b=n[f],C=n.charCodeAt(f);if(C===123){if(i++,p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}if(!u)a={selector:c.trim(),properties:{},children:[]},o.push(a),u=!0,p=!1;else{if(c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d={selector:c.trim(),properties:{},children:[]};o.push(d),a=d}c=""}else if(C===125){if(i--,c.trim()&&c.includes(":")){const m=H(c.trim(),r,t);for(let g of Object.keys(m)){const M=w(m[g],e);a&&(a.properties[g]=M)}}const d=o.pop();if(o.length===0)s.push(d),u=!1,a=null,p=!0;else{const m=o[o.length-1];m.children||(m.children=[]),m.children.push(d),a=m}c="",i===0&&(u=!1,p=!0)}else if(C===10||C===59){if(u&&c.trim()&&c.includes(":")){const d=H(c.trim(),r,t);for(let m of Object.keys(d)){const g=w(d[m],e);a&&(a.properties[m]=g)}}else if(p&&c.trim()){const d=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(d){const[,m,g]=d;l[m]=w(g.trim(),e),c="";continue}}c=""}else c+=b}if(p&&c.trim()){const f=c.trim().match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.+?);?$/);if(f){const[,h,b]=f;l[h]=w(b.trim(),e)}}else if(u&&c.trim()&&c.includes(":")){const f=H(c.trim(),r,t);for(let h of Object.keys(f)){const b=w(f[h],e);a&&(a.properties[h]=b)}}if(Object.keys(l).length>0){const f={selector:e.rootSelector,properties:{},children:[]};Object.entries(l).forEach(([h,b])=>{f.properties["--"+h]=b}),s.unshift(f)}return j(s,e,"",r,t)}function j(n,e,r="",t,s,o=!1){let l="";for(const a of n){const c=a.selector.startsWith("@");c&&(l+=a.selector+` {
|
|
10
10
|
`);let u=a.selector;if(r&&(u.includes("&")?u=u.replace(A.AND,r):u.trim().startsWith(":")?u=r+u:u=r+" "+u),u=u,Object.keys(a.properties).length>0){l+=(o?" ".repeat(e.indentSize):"")+u+` {
|
|
11
11
|
`;for(let i in a.properties)if(a.properties.hasOwnProperty(i)){const p=w(a.properties[i],e);l+=(o?" ".repeat(e.indentSize):"")+" ".repeat(e.indentSize)+(p.length?`${i}: ${p};
|
|
12
12
|
`:`${i}
|
|
13
13
|
`)}l+=o?" ".repeat(e.indentSize)+`}
|
|
14
14
|
`:`}
|
|
15
15
|
|
|
16
|
-
`}a.children&&a.children.length>0&&(l+=
|
|
16
|
+
`}a.children&&a.children.length>0&&(l+=j(a.children,e,c?"":u,t,s,o||c)),c&&(l+=`}
|
|
17
17
|
|
|
18
|
-
`)}return l}function
|
|
18
|
+
`)}return l}function pe(n,e){let r=n;return r=r.replace(A.VARIABLE,(t,s)=>t.startsWith("$$")?`attr(${s})`:`var(--${s})`),r=w(r,e),r}async function G(n,e){const r=A.IMPORT;return(async s=>{const o=[],l=s.replace(r,(a,c)=>{const u=he(c,e).then(i=>G(i,e)).catch(i=>(console.warn(`\u65E0\u6CD5\u5BFC\u5165CSS\u6587\u4EF6: ${c}`,i),""));return o.push(u),`__IMPORT_PLACEHOLDER_${o.length-1}__`});if(o.length>0){const a=await Promise.all(o);let c=l;for(let u=a.length;u--;)c=c.replace(`__IMPORT_PLACEHOLDER_${u}__`,a[u]);return c}return l})(n)}async function he(n,e){if(e.importCache&&_.has(n))return _.get(n);const r=e.importBaseUrl?new URL(n,e.importBaseUrl).href:n;let t;if(typeof process<"u"&&process.versions&&process.versions.node&&typeof require<"u")try{const o=require("fs"),l=require("path");let a=r;r.startsWith(".")&&(a=l.join(process.cwd(),r)),t=o.readFileSync(a,"utf-8")}catch(o){throw new Error(`Node.js\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25: ${r} - ${o.message}`)}else try{const o=new AbortController,l=setTimeout(()=>o.abort(),e.importTimeout),a=await fetch(r,{signal:o.signal,headers:{Accept:"text/css"}});if(clearTimeout(l),!a.ok)throw new Error(`HTTP\u9519\u8BEF: ${a.status} ${a.statusText}`);t=await a.text()}catch(o){throw o.name==="AbortError"?new Error(`\u5BFC\u5165\u8D85\u65F6: ${r}`):new Error(`\u65E0\u6CD5\u83B7\u53D6CSS: ${r} - ${o.message}`)}return e.importCache&&_.set(n,t),t}async function O(n,e={}){let{config:r,css:t}=J(n);const s={...y,...e,...r};t=await G(t,s);let o=t,l=new Map;if(s.enableAlias){const{aliases:p,css:f}=ee(o);l=p,o=f}let a=o,c=new Map;if(s.enableMacros){const{macros:p,css:f}=V(a,s);c=p,a=f;for(const[h,b]of c)S.set(h,b)}let u=a.trim();if(s.enableNesting&&a.includes("{"))try{u=fe(a,s,l,c)}catch(p){console.warn("\u5D4C\u5957\u89E3\u6790\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CBCSS:",p)}let i=u;i=pe(i,s);for(const[p,f]of $)try{i=f.convert(i,s)}catch(h){console.error("\u63D2\u4EF6\u5904\u7406\u5931\u8D25:",h)}return i}function X(n={}){const e={...y,...n},r=document.querySelectorAll(`style[${e.styleTagAttribute||"e"}]`);return r.forEach(t=>{let s=t.textContent;(async()=>{try{t.getAttribute("src")&&(s="@import "+t.getAttribute("src")+";");const l=await O(s,e),a=document.createElement("style");a.textContent=l,t.parentNode.insertBefore(a,t.nextSibling),e.preserveOriginal?t.style.display="none":t.remove()}catch(l){console.error("\u5904\u7406style\u6807\u7B7E\u5931\u8D25:",l)}})()}),r.length}function D(n={}){y={...y,...n}}function N(n,e={}){const r={...y,...e};if(n)return(async()=>{try{const t=await O(n,r),s=document.createElement("style");return s.textContent=t,document.head.appendChild(s),s}catch(t){return console.error("\u5E94\u7528CSS\u5931\u8D25:",t),null}})();document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{X(r)}):X(r)}const U={convert:O,apply:N,config:D,supportsP3:z(),detectP3Support:z,imports:{clearCache:function(){_.clear()},setBaseUrl:function(n){y.importBaseUrl=n},setCacheEnabled:function(n){y.importCache=n},setTimeout:function(n){y.importTimeout=n}},plugins:{use(n){const e=new n;return $.set(e.name??n.name,e),!0},remove(n){return $.get(n)?.destroy&&$.get(n).destroy(),$.delete(n),!0},getAll:function(){return Array.from($.entries())},clear:function(){$.clear()}},aliases:{add:function(n,e){F.set(n,e)},remove:function(n){F.delete(n)},getAll:function(){return Array.from(F.entries())},clear:function(){F.clear()}},macros:{define:function(n,e,r=[]){if(typeof e=="function"){const s=e.toString().match(/{([\s\S]*)}/);s&&S.set(n,{params:r.map(o=>typeof o=="string"?{name:o}:o),body:s[1].trim()})}else S.set(n,{params:r.map(t=>typeof t=="string"?{name:t}:t),body:e})},call:function(n,...e){const r=S.get(n);if(!r)throw new Error(`\u672A\u5B9A\u4E49\u7684\u5B8F: ${n}`);const t=new Map;for(let s=0,o=r.params.length;s<o;s++){const l=r.params[s],a=s<e.length?e[s]:l.defaultValue;if(a===void 0&&l.defaultValue===null)throw new Error(`\u7F3A\u5C11\u5FC5\u9700\u53C2\u6570: ${l.name}`);t.set(l.name,a!==void 0?a:"")}return W(r.body,t,y)},getAll:function(){return Array.from(S.entries())},remove:function(n){S.delete(n)},clear:function(){S.clear()},parse:function(n){const{macros:e}=V(n,y);for(const[r,t]of e)S.set(r,t)}},math:{evaluate:function(n){return Z(n,y)}},colorUtils:{labToRGB:L,lchToLab:v,lchToRGB:function(n,e,r){const t=v(n,e,r);return L(t.L,t.a,t.b)},labToP3:B,lchToP3:function(n,e,r){const t=v(n,e,r);return B(t.L,t.a,t.b)},parseHexLab:function(n){const e=n.match(/lab#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=(parseInt(t,16)-128)*1.5,a=(parseInt(s,16)-128)*1.5;return L(o,l,a)},parseHexLch:function(n){const e=n.match(/lch#([0-9a-f]{2})([0-9a-f]{2})(\d{1,3})/i);if(!e)return null;const r=e[1],t=e[2],s=e[3],o=parseInt(r,16)/255*100,l=parseInt(t,16)/255*150,a=parseInt(s)/100*360,c=v(o,l,a);return L(c.L,c.a,c.b)},generateColor:function(n,e,r,t=null,s=!0){return P(n,e,r,{enableP3:s},t)},parseColor:function(n){try{const e=n.match(/lab\(\s*([\d.]+)(%?)\s+([\d.-]+)\s+([\d.-]+)(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(e){let t=parseFloat(e[1]);const s=parseFloat(e[3]),o=parseFloat(e[4]),l=e[5]?e[5].includes("%")?parseFloat(e[5])/100:parseFloat(e[5]):null,a=P(t,s,o,y,l);return{L:t,A:s,B:o,alpha:l,rgb:L(t,s,o),p3:B(t,s,o),colorString:a}}const r=n.match(/lch\(\s*([\d.]+)(%?)\s+([\d.]+)\s+([\d.]+)(deg)?(?:\s*\/\s*([\d.%]+))?\s*\)/i);if(r){let t=parseFloat(r[1]);const s=parseFloat(r[3]);let o=parseFloat(r[4]);const l=r[6]?r[6].includes("%")?parseFloat(r[6])/100:parseFloat(r[6]):null,a=v(t,s,o),c=P(a.L,a.a,a.b,y,l);return{L:t,C:s,H:o,alpha:l,lab:a,rgb:L(a.L,a.a,a.b),p3:B(a.L,a.a,a.b),colorString:c}}return null}catch(e){return console.warn("\u65E0\u6CD5\u89E3\u6790\u989C\u8272:",n,e),null}}}};U.Plugin=class{name="Plugin";constructor(){this.createdAt=Date.now(),this.install()}install(){}destroy(){}convert(n,e){throw new Error(`${this.name}.convert() \u5FC5\u987B\u88AB\u5B9E\u73B0`)}};const k=async function(...n){if(n.length>1||n[0]&&n[0].raw)return await de(...n);const e=n[0];if(typeof e=="string"){const r=await O(e,n[1]);return r&&typeof r.then=="function",r}return typeof e=="object"&&e!==null?(y={...y,...e},k):n.length===0?N():k};async function de(n,...e){let r=n[0];for(let s=0,o=e.length;s<o;s++){const l=e[s];let a="";typeof l=="function"?a=l():Array.isArray(l)?a=l.join(" "):a=String(l??"none"),r+=a+n[s+1]}const t=await O(r,y);return t&&typeof t.then=="function",t}return Object.assign(k,U),typeof window<"u"&&(N(),Object.defineProperty(window.HTMLElement.prototype,"cssVar",{get(){const n=this;return new Proxy(()=>{},{get(e,r){const t=r.startsWith("--")?r:`--${r}`;return n.style.getPropertyValue(t)},set(e,r,t){const s=r.startsWith("--")?r:`--${r}`;return n.style.setProperty(s,t),!0},apply(e,r,t){const s=t[0],o=t[1],l=s.startsWith("--")?s:`--${s}`;if(o===void 0)return n.style.getPropertyValue(l);n.style.setProperty(l,o)}})}})),k})();export default K;export const{convert,apply,config,supportsP3,detectP3Support,imports,plugins,aliases,macros,math,colorUtils,Plugin}=K;
|