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/README.md
CHANGED
|
@@ -249,16 +249,16 @@ $font-family: 'Inter', sans-serif;
|
|
|
249
249
|
|
|
250
250
|
### 2. 配置头语法
|
|
251
251
|
|
|
252
|
-
|
|
252
|
+
变量定义要用`@config name value`的格式,写在css顶部
|
|
253
253
|
|
|
254
254
|
```css
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
255
|
+
@config indent-size 4
|
|
256
|
+
@config auto-process-style-tags true
|
|
257
|
+
@config preserve-original true
|
|
258
|
+
@config enable-p3 false
|
|
259
|
+
@config root-selector :root
|
|
260
|
+
@config enable-nesting true
|
|
261
|
+
@config enable-math true
|
|
262
262
|
|
|
263
263
|
/* 然后写您的CSS代码 */
|
|
264
264
|
$primary-color: lab#32a852;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedAt": "2026-01-06T13:45:19.383Z",
|
|
3
|
+
"files": [
|
|
4
|
+
{
|
|
5
|
+
"name": "dist/styimat.js",
|
|
6
|
+
"size": "54.87 KB"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "dist/styimat.min.js",
|
|
10
|
+
"size": "17.27 KB"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "dist/styimat.mjs",
|
|
14
|
+
"size": "55.03 KB"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "dist/styimat.min.mjs",
|
|
18
|
+
"size": "17.40 KB"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "dist/styimat.cjs",
|
|
22
|
+
"size": "54.89 KB"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "dist/styimat.min.cjs",
|
|
26
|
+
"size": "17.29 KB"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "dist/styimat.umd.js",
|
|
30
|
+
"size": "55.21 KB"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "dist/styimat.umd.min.js",
|
|
34
|
+
"size": "17.51 KB"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "dist/styimat.amd.js",
|
|
38
|
+
"size": "54.89 KB"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "dist/styimat.amd.min.js",
|
|
42
|
+
"size": "17.29 KB"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "dist/styimat.browser.js",
|
|
46
|
+
"size": "55.03 KB"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "dist/styimat.browser.min.js",
|
|
50
|
+
"size": "17.38 KB"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "bin/cli.min.js",
|
|
54
|
+
"size": "4.55 KB"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
package/dist/styimat.amd.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.amd.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 O=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 _(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=_(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&&O.has(n))return O.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&&O.set(n,t),t}async function B(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 B(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 B(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:B,apply:N,config:D,supportsP3:z(),detectP3Support:z,imports:{clearCache:function(){O.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:_,lchToP3:function(n,e,r){const t=v(n,e,r);return _(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:_(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:_(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 B(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 B(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})();define([],y=>styimat);
|
package/dist/styimat.browser.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开头
|
|
@@ -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 j(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)=>j(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 O(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=O(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 Z(s,e,"",r,t)}function Z(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+=Z(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 B(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 B(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 B(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:B,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 j(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:O,lchToP3:function(n,e,r){const t=v(n,e,r);return O(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:O(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:O(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 B(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 B(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})(),globalObj=globalThis??(typeof self<"u"&&self)??(typeof window<"u"&&window)??global??{};globalObj.styimat=styimat;
|