@designid/tokens 1.2.11 → 1.2.13
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 +2 -2
- package/bin/build.js +38 -38
- package/bin/editor.js +1384 -281
- package/bin/watch.js +26 -26
- package/package.json +1 -1
package/bin/editor.js
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as p2}from"node:module";var v2=Object.create;var{getPrototypeOf:y2,defineProperty:RQ,getOwnPropertyNames:g2}=Object;var h2=Object.prototype.hasOwnProperty;var U5=(Q,q,X)=>{X=Q!=null?v2(y2(Q)):{};let $=q||!Q||!Q.__esModule?RQ(X,"default",{value:Q,enumerable:!0}):X;for(let U of g2(Q))if(!h2.call($,U))RQ($,U,{get:()=>Q[U],enumerable:!0});return $};var m2=(Q,q)=>()=>(q||Q((q={exports:{}}).exports,q),q.exports);var PQ=(Q,q)=>{for(var X in q)RQ(Q,X,{get:q[X],enumerable:!0,configurable:!0,set:($)=>q[X]=()=>$})};var S0=(Q,q)=>()=>(Q&&(q=Q(Q=0)),q);var C8=p2(import.meta.url);var jq=m2((a5,t5)=>{(function(){var Q,q="4.17.21",X=200,$="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",U="Expected a function",Y="Invalid `variable` option passed into `_.template`",H="__lodash_hash_undefined__",G=500,z="__lodash_placeholder__",O=1,_=2,M=4,N=1,D=2,R=1,P=2,S=4,T=8,b=16,k=32,y=64,g=128,i=256,p=512,$0=30,W0="...",F0=800,d8=16,q9=1,S5=2,I9=3,f8=1/0,C0=9007199254740991,P6=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,c9=NaN,K8=4294967295,A9=K8-1,I6=K8>>>1,Z4=[["ary",g],["bind",R],["bindKey",P],["curry",T],["curryRight",b],["flip",p],["partial",k],["partialRight",y],["rearg",i]],X9="[object Arguments]",l9="[object Array]",i9="[object AsyncFunction]",x5="[object Boolean]",T5="[object Date]",tJ="[object DOMException]",A6="[object Error]",V6="[object Function]",tZ="[object GeneratorFunction]",I8="[object Map]",C5="[object Number]",eJ="[object Null]",u8="[object Object]",eZ="[object Promise]",QU="[object Proxy]",j5="[object RegExp]",A8="[object Set]",f5="[object String]",S6="[object Symbol]",ZU="[object Undefined]",b5="[object WeakMap]",KU="[object WeakSet]",k5="[object ArrayBuffer]",s9="[object DataView]",K4="[object Float32Array]",q4="[object Float64Array]",X4="[object Int8Array]",$4="[object Int16Array]",J4="[object Int32Array]",U4="[object Uint8Array]",Y4="[object Uint8ClampedArray]",H4="[object Uint16Array]",W4="[object Uint32Array]",qU=/\b__p \+= '';/g,XU=/\b(__p \+=) '' \+/g,$U=/(__e\(.*?\)|\b__t\)) \+\n'';/g,QK=/&(?:amp|lt|gt|quot|#39);/g,ZK=/[&<>"']/g,JU=RegExp(QK.source),UU=RegExp(ZK.source),YU=/<%-([\s\S]+?)%>/g,HU=/<%([\s\S]+?)%>/g,KK=/<%=([\s\S]+?)%>/g,WU=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,GU=/^\w*$/,BU=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G4=/[\\^$.*+?()[\]{}|]/g,zU=RegExp(G4.source),B4=/^\s+/,OU=/\s/,EU=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_U=/\{\n\/\* \[wrapped with (.+)\] \*/,MU=/,? & /,wU=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,NU=/[()=,{}\[\]\/\s]/,LU=/\\(\\)?/g,DU=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qK=/\w*$/,FU=/^[-+]0x[0-9a-f]+$/i,RU=/^0b[01]+$/i,PU=/^\[object .+?Constructor\]$/,IU=/^0o[0-7]+$/i,AU=/^(?:0|[1-9]\d*)$/,VU=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,x6=/($^)/,SU=/['\n\r\u2028\u2029\\]/g,T6="\\ud800-\\udfff",xU="\\u0300-\\u036f",TU="\\ufe20-\\ufe2f",CU="\\u20d0-\\u20ff",XK=xU+TU+CU,$K="\\u2700-\\u27bf",JK="a-z\\xdf-\\xf6\\xf8-\\xff",jU="\\xac\\xb1\\xd7\\xf7",fU="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",bU="\\u2000-\\u206f",kU=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",UK="A-Z\\xc0-\\xd6\\xd8-\\xde",YK="\\ufe0e\\ufe0f",HK=jU+fU+bU+kU,z4="['’]",vU="["+T6+"]",WK="["+HK+"]",C6="["+XK+"]",GK="\\d+",yU="["+$K+"]",BK="["+JK+"]",zK="[^"+T6+HK+GK+$K+JK+UK+"]",O4="\\ud83c[\\udffb-\\udfff]",gU="(?:"+C6+"|"+O4+")",OK="[^"+T6+"]",E4="(?:\\ud83c[\\udde6-\\uddff]){2}",_4="[\\ud800-\\udbff][\\udc00-\\udfff]",n9="["+UK+"]",EK="\\u200d",_K="(?:"+BK+"|"+zK+")",hU="(?:"+n9+"|"+zK+")",MK="(?:"+z4+"(?:d|ll|m|re|s|t|ve))?",wK="(?:"+z4+"(?:D|LL|M|RE|S|T|VE))?",NK=gU+"?",LK="["+YK+"]?",mU="(?:"+EK+"(?:"+[OK,E4,_4].join("|")+")"+LK+NK+")*",pU="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",dU="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",DK=LK+NK+mU,uU="(?:"+[yU,E4,_4].join("|")+")"+DK,cU="(?:"+[OK+C6+"?",C6,E4,_4,vU].join("|")+")",lU=RegExp(z4,"g"),iU=RegExp(C6,"g"),M4=RegExp(O4+"(?="+O4+")|"+cU+DK,"g"),sU=RegExp([n9+"?"+BK+"+"+MK+"(?="+[WK,n9,"$"].join("|")+")",hU+"+"+wK+"(?="+[WK,n9+_K,"$"].join("|")+")",n9+"?"+_K+"+"+MK,n9+"+"+wK,dU,pU,GK,uU].join("|"),"g"),nU=RegExp("["+EK+T6+XK+YK+"]"),rU=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,oU=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],aU=-1,G0={};G0[K4]=G0[q4]=G0[X4]=G0[$4]=G0[J4]=G0[U4]=G0[Y4]=G0[H4]=G0[W4]=!0,G0[X9]=G0[l9]=G0[k5]=G0[x5]=G0[s9]=G0[T5]=G0[A6]=G0[V6]=G0[I8]=G0[C5]=G0[u8]=G0[j5]=G0[A8]=G0[f5]=G0[b5]=!1;var H0={};H0[X9]=H0[l9]=H0[k5]=H0[s9]=H0[x5]=H0[T5]=H0[K4]=H0[q4]=H0[X4]=H0[$4]=H0[J4]=H0[I8]=H0[C5]=H0[u8]=H0[j5]=H0[A8]=H0[f5]=H0[S6]=H0[U4]=H0[Y4]=H0[H4]=H0[W4]=!0,H0[A6]=H0[V6]=H0[b5]=!1;var tU={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},eU={"&":"&","<":"<",">":">",'"':""","'":"'"},QY={"&":"&","<":"<",">":">",""":'"',"'":"'"},ZY={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},KY=parseFloat,qY=parseInt,FK=typeof global=="object"&&global&&global.Object===Object&&global,XY=typeof self=="object"&&self&&self.Object===Object&&self,j0=FK||XY||Function("return this")(),w4=typeof a5=="object"&&a5&&!a5.nodeType&&a5,V9=w4&&typeof t5=="object"&&t5&&!t5.nodeType&&t5,RK=V9&&V9.exports===w4,N4=RK&&FK.process,O8=function(){try{var I=V9&&V9.require&&V9.require("util").types;if(I)return I;return N4&&N4.binding&&N4.binding("util")}catch(x){}}(),PK=O8&&O8.isArrayBuffer,IK=O8&&O8.isDate,AK=O8&&O8.isMap,VK=O8&&O8.isRegExp,SK=O8&&O8.isSet,xK=O8&&O8.isTypedArray;function q8(I,x,V){switch(V.length){case 0:return I.call(x);case 1:return I.call(x,V[0]);case 2:return I.call(x,V[0],V[1]);case 3:return I.call(x,V[0],V[1],V[2])}return I.apply(x,V)}function $Y(I,x,V,h){var s=-1,q0=I==null?0:I.length;while(++s<q0){var A0=I[s];x(h,A0,V(A0),I)}return h}function E8(I,x){var V=-1,h=I==null?0:I.length;while(++V<h)if(x(I[V],V,I)===!1)break;return I}function JY(I,x){var V=I==null?0:I.length;while(V--)if(x(I[V],V,I)===!1)break;return I}function TK(I,x){var V=-1,h=I==null?0:I.length;while(++V<h)if(!x(I[V],V,I))return!1;return!0}function $9(I,x){var V=-1,h=I==null?0:I.length,s=0,q0=[];while(++V<h){var A0=I[V];if(x(A0,V,I))q0[s++]=A0}return q0}function j6(I,x){var V=I==null?0:I.length;return!!V&&r9(I,x,0)>-1}function L4(I,x,V){var h=-1,s=I==null?0:I.length;while(++h<s)if(V(x,I[h]))return!0;return!1}function z0(I,x){var V=-1,h=I==null?0:I.length,s=Array(h);while(++V<h)s[V]=x(I[V],V,I);return s}function J9(I,x){var V=-1,h=x.length,s=I.length;while(++V<h)I[s+V]=x[V];return I}function D4(I,x,V,h){var s=-1,q0=I==null?0:I.length;if(h&&q0)V=I[++s];while(++s<q0)V=x(V,I[s],s,I);return V}function UY(I,x,V,h){var s=I==null?0:I.length;if(h&&s)V=I[--s];while(s--)V=x(V,I[s],s,I);return V}function F4(I,x){var V=-1,h=I==null?0:I.length;while(++V<h)if(x(I[V],V,I))return!0;return!1}var YY=R4("length");function HY(I){return I.split("")}function WY(I){return I.match(wU)||[]}function CK(I,x,V){var h;return V(I,function(s,q0,A0){if(x(s,q0,A0))return h=q0,!1}),h}function f6(I,x,V,h){var s=I.length,q0=V+(h?1:-1);while(h?q0--:++q0<s)if(x(I[q0],q0,I))return q0;return-1}function r9(I,x,V){return x===x?FY(I,x,V):f6(I,jK,V)}function GY(I,x,V,h){var s=V-1,q0=I.length;while(++s<q0)if(h(I[s],x))return s;return-1}function jK(I){return I!==I}function fK(I,x){var V=I==null?0:I.length;return V?I4(I,x)/V:c9}function R4(I){return function(x){return x==null?Q:x[I]}}function P4(I){return function(x){return I==null?Q:I[x]}}function bK(I,x,V,h,s){return s(I,function(q0,A0,Y0){V=h?(h=!1,q0):x(V,q0,A0,Y0)}),V}function BY(I,x){var V=I.length;I.sort(x);while(V--)I[V]=I[V].value;return I}function I4(I,x){var V,h=-1,s=I.length;while(++h<s){var q0=x(I[h]);if(q0!==Q)V=V===Q?q0:V+q0}return V}function A4(I,x){var V=-1,h=Array(I);while(++V<I)h[V]=x(V);return h}function zY(I,x){return z0(x,function(V){return[V,I[V]]})}function kK(I){return I?I.slice(0,hK(I)+1).replace(B4,""):I}function X8(I){return function(x){return I(x)}}function V4(I,x){return z0(x,function(V){return I[V]})}function v5(I,x){return I.has(x)}function vK(I,x){var V=-1,h=I.length;while(++V<h&&r9(x,I[V],0)>-1);return V}function yK(I,x){var V=I.length;while(V--&&r9(x,I[V],0)>-1);return V}function OY(I,x){var V=I.length,h=0;while(V--)if(I[V]===x)++h;return h}var EY=P4(tU),_Y=P4(eU);function MY(I){return"\\"+ZY[I]}function wY(I,x){return I==null?Q:I[x]}function o9(I){return nU.test(I)}function NY(I){return rU.test(I)}function LY(I){var x,V=[];while(!(x=I.next()).done)V.push(x.value);return V}function S4(I){var x=-1,V=Array(I.size);return I.forEach(function(h,s){V[++x]=[s,h]}),V}function gK(I,x){return function(V){return I(x(V))}}function U9(I,x){var V=-1,h=I.length,s=0,q0=[];while(++V<h){var A0=I[V];if(A0===x||A0===z)I[V]=z,q0[s++]=V}return q0}function b6(I){var x=-1,V=Array(I.size);return I.forEach(function(h){V[++x]=h}),V}function DY(I){var x=-1,V=Array(I.size);return I.forEach(function(h){V[++x]=[h,h]}),V}function FY(I,x,V){var h=V-1,s=I.length;while(++h<s)if(I[h]===x)return h;return-1}function RY(I,x,V){var h=V+1;while(h--)if(I[h]===x)return h;return h}function a9(I){return o9(I)?IY(I):YY(I)}function V8(I){return o9(I)?AY(I):HY(I)}function hK(I){var x=I.length;while(x--&&OU.test(I.charAt(x)));return x}var PY=P4(QY);function IY(I){var x=M4.lastIndex=0;while(M4.test(I))++x;return x}function AY(I){return I.match(M4)||[]}function VY(I){return I.match(sU)||[]}var SY=function I(x){x=x==null?j0:Y9.defaults(j0.Object(),x,Y9.pick(j0,oU));var{Array:V,Date:h,Error:s,Function:q0,Math:A0,Object:Y0,RegExp:x4,String:xY,TypeError:_8}=x,k6=V.prototype,TY=q0.prototype,t9=Y0.prototype,v6=x["__core-js_shared__"],y6=TY.toString,J0=t9.hasOwnProperty,CY=0,mK=function(){var Z=/[^.]+$/.exec(v6&&v6.keys&&v6.keys.IE_PROTO||"");return Z?"Symbol(src)_1."+Z:""}(),g6=t9.toString,jY=y6.call(Y0),fY=j0._,bY=x4("^"+y6.call(J0).replace(G4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),h6=RK?x.Buffer:Q,H9=x.Symbol,m6=x.Uint8Array,pK=h6?h6.allocUnsafe:Q,p6=gK(Y0.getPrototypeOf,Y0),dK=Y0.create,uK=t9.propertyIsEnumerable,d6=k6.splice,cK=H9?H9.isConcatSpreadable:Q,y5=H9?H9.iterator:Q,S9=H9?H9.toStringTag:Q,u6=function(){try{var Z=f9(Y0,"defineProperty");return Z({},"",{}),Z}catch(K){}}(),kY=x.clearTimeout!==j0.clearTimeout&&x.clearTimeout,vY=h&&h.now!==j0.Date.now&&h.now,yY=x.setTimeout!==j0.setTimeout&&x.setTimeout,c6=A0.ceil,l6=A0.floor,T4=Y0.getOwnPropertySymbols,gY=h6?h6.isBuffer:Q,lK=x.isFinite,hY=k6.join,mY=gK(Y0.keys,Y0),V0=A0.max,h0=A0.min,pY=h.now,dY=x.parseInt,iK=A0.random,uY=k6.reverse,C4=f9(x,"DataView"),g5=f9(x,"Map"),j4=f9(x,"Promise"),e9=f9(x,"Set"),h5=f9(x,"WeakMap"),m5=f9(Y0,"create"),i6=h5&&new h5,Q5={},cY=b9(C4),lY=b9(g5),iY=b9(j4),sY=b9(e9),nY=b9(h5),s6=H9?H9.prototype:Q,p5=s6?s6.valueOf:Q,sK=s6?s6.toString:Q;function E(Z){if(w0(Z)&&!n(Z)&&!(Z instanceof Q0)){if(Z instanceof M8)return Z;if(J0.call(Z,"__wrapped__"))return n7(Z)}return new M8(Z)}var Z5=function(){function Z(){}return function(K){if(!M0(K))return{};if(dK)return dK(K);Z.prototype=K;var J=new Z;return Z.prototype=Q,J}}();function n6(){}function M8(Z,K){this.__wrapped__=Z,this.__actions__=[],this.__chain__=!!K,this.__index__=0,this.__values__=Q}E.templateSettings={escape:YU,evaluate:HU,interpolate:KK,variable:"",imports:{_:E}},E.prototype=n6.prototype,E.prototype.constructor=E,M8.prototype=Z5(n6.prototype),M8.prototype.constructor=M8;function Q0(Z){this.__wrapped__=Z,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=K8,this.__views__=[]}function rY(){var Z=new Q0(this.__wrapped__);return Z.__actions__=r0(this.__actions__),Z.__dir__=this.__dir__,Z.__filtered__=this.__filtered__,Z.__iteratees__=r0(this.__iteratees__),Z.__takeCount__=this.__takeCount__,Z.__views__=r0(this.__views__),Z}function oY(){if(this.__filtered__){var Z=new Q0(this);Z.__dir__=-1,Z.__filtered__=!0}else Z=this.clone(),Z.__dir__*=-1;return Z}function aY(){var Z=this.__wrapped__.value(),K=this.__dir__,J=n(Z),W=K<0,B=J?Z.length:0,w=H3(0,B,this.__views__),L=w.start,F=w.end,A=F-L,C=W?F:L-1,j=this.__iteratees__,f=j.length,v=0,d=h0(A,this.__takeCount__);if(!J||!W&&B==A&&d==A)return M7(Z,this.__actions__);var c=[];Q:while(A--&&v<d){C+=K;var a=-1,l=Z[C];while(++a<f){var e=j[a],Z0=e.iteratee,U8=e.type,c0=Z0(l);if(U8==S5)l=c0;else if(!c0)if(U8==q9)continue Q;else break Q}c[v++]=l}return c}Q0.prototype=Z5(n6.prototype),Q0.prototype.constructor=Q0;function x9(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function tY(){this.__data__=m5?m5(null):{},this.size=0}function eY(Z){var K=this.has(Z)&&delete this.__data__[Z];return this.size-=K?1:0,K}function QH(Z){var K=this.__data__;if(m5){var J=K[Z];return J===H?Q:J}return J0.call(K,Z)?K[Z]:Q}function ZH(Z){var K=this.__data__;return m5?K[Z]!==Q:J0.call(K,Z)}function KH(Z,K){var J=this.__data__;return this.size+=this.has(Z)?0:1,J[Z]=m5&&K===Q?H:K,this}x9.prototype.clear=tY,x9.prototype.delete=eY,x9.prototype.get=QH,x9.prototype.has=ZH,x9.prototype.set=KH;function c8(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function qH(){this.__data__=[],this.size=0}function XH(Z){var K=this.__data__,J=r6(K,Z);if(J<0)return!1;var W=K.length-1;if(J==W)K.pop();else d6.call(K,J,1);return--this.size,!0}function $H(Z){var K=this.__data__,J=r6(K,Z);return J<0?Q:K[J][1]}function JH(Z){return r6(this.__data__,Z)>-1}function UH(Z,K){var J=this.__data__,W=r6(J,Z);if(W<0)++this.size,J.push([Z,K]);else J[W][1]=K;return this}c8.prototype.clear=qH,c8.prototype.delete=XH,c8.prototype.get=$H,c8.prototype.has=JH,c8.prototype.set=UH;function l8(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function YH(){this.size=0,this.__data__={hash:new x9,map:new(g5||c8),string:new x9}}function HH(Z){var K=U1(this,Z).delete(Z);return this.size-=K?1:0,K}function WH(Z){return U1(this,Z).get(Z)}function GH(Z){return U1(this,Z).has(Z)}function BH(Z,K){var J=U1(this,Z),W=J.size;return J.set(Z,K),this.size+=J.size==W?0:1,this}l8.prototype.clear=YH,l8.prototype.delete=HH,l8.prototype.get=WH,l8.prototype.has=GH,l8.prototype.set=BH;function T9(Z){var K=-1,J=Z==null?0:Z.length;this.__data__=new l8;while(++K<J)this.add(Z[K])}function zH(Z){return this.__data__.set(Z,H),this}function OH(Z){return this.__data__.has(Z)}T9.prototype.add=T9.prototype.push=zH,T9.prototype.has=OH;function S8(Z){var K=this.__data__=new c8(Z);this.size=K.size}function EH(){this.__data__=new c8,this.size=0}function _H(Z){var K=this.__data__,J=K.delete(Z);return this.size=K.size,J}function MH(Z){return this.__data__.get(Z)}function wH(Z){return this.__data__.has(Z)}function NH(Z,K){var J=this.__data__;if(J instanceof c8){var W=J.__data__;if(!g5||W.length<X-1)return W.push([Z,K]),this.size=++J.size,this;J=this.__data__=new l8(W)}return J.set(Z,K),this.size=J.size,this}S8.prototype.clear=EH,S8.prototype.delete=_H,S8.prototype.get=MH,S8.prototype.has=wH,S8.prototype.set=NH;function nK(Z,K){var J=n(Z),W=!J&&k9(Z),B=!J&&!W&&O9(Z),w=!J&&!W&&!B&&$5(Z),L=J||W||B||w,F=L?A4(Z.length,xY):[],A=F.length;for(var C in Z)if((K||J0.call(Z,C))&&!(L&&(C=="length"||B&&(C=="offset"||C=="parent")||w&&(C=="buffer"||C=="byteLength"||C=="byteOffset")||r8(C,A))))F.push(C);return F}function rK(Z){var K=Z.length;return K?Z[u4(0,K-1)]:Q}function LH(Z,K){return Y1(r0(Z),C9(K,0,Z.length))}function DH(Z){return Y1(r0(Z))}function f4(Z,K,J){if(J!==Q&&!x8(Z[K],J)||J===Q&&!(K in Z))i8(Z,K,J)}function d5(Z,K,J){var W=Z[K];if(!(J0.call(Z,K)&&x8(W,J))||J===Q&&!(K in Z))i8(Z,K,J)}function r6(Z,K){var J=Z.length;while(J--)if(x8(Z[J][0],K))return J;return-1}function FH(Z,K,J,W){return W9(Z,function(B,w,L){K(W,B,J(B),L)}),W}function oK(Z,K){return Z&&k8(K,f0(K),Z)}function RH(Z,K){return Z&&k8(K,a0(K),Z)}function i8(Z,K,J){if(K=="__proto__"&&u6)u6(Z,K,{configurable:!0,enumerable:!0,value:J,writable:!0});else Z[K]=J}function b4(Z,K){var J=-1,W=K.length,B=V(W),w=Z==null;while(++J<W)B[J]=w?Q:OQ(Z,K[J]);return B}function C9(Z,K,J){if(Z===Z){if(J!==Q)Z=Z<=J?Z:J;if(K!==Q)Z=Z>=K?Z:K}return Z}function w8(Z,K,J,W,B,w){var L,F=K&O,A=K&_,C=K&M;if(J)L=B?J(Z,W,B,w):J(Z);if(L!==Q)return L;if(!M0(Z))return Z;var j=n(Z);if(j){if(L=G3(Z),!F)return r0(Z,L)}else{var f=m0(Z),v=f==V6||f==tZ;if(O9(Z))return L7(Z,F);if(f==u8||f==X9||v&&!B){if(L=A||v?{}:h7(Z),!F)return A?Q3(Z,RH(L,Z)):eH(Z,oK(L,Z))}else{if(!H0[f])return B?Z:{};L=B3(Z,f,F)}}w||(w=new S8);var d=w.get(Z);if(d)return d;if(w.set(Z,L),Oq(Z))Z.forEach(function(l){L.add(w8(l,K,J,l,Z,w))});else if(Bq(Z))Z.forEach(function(l,e){L.set(e,w8(l,K,J,e,Z,w))});var c=C?A?QQ:e4:A?a0:f0,a=j?Q:c(Z);return E8(a||Z,function(l,e){if(a)e=l,l=Z[e];d5(L,e,w8(l,K,J,e,Z,w))}),L}function PH(Z){var K=f0(Z);return function(J){return aK(J,Z,K)}}function aK(Z,K,J){var W=J.length;if(Z==null)return!W;Z=Y0(Z);while(W--){var B=J[W],w=K[B],L=Z[B];if(L===Q&&!(B in Z)||!w(L))return!1}return!0}function tK(Z,K,J){if(typeof Z!="function")throw new _8(U);return r5(function(){Z.apply(Q,J)},K)}function u5(Z,K,J,W){var B=-1,w=j6,L=!0,F=Z.length,A=[],C=K.length;if(!F)return A;if(J)K=z0(K,X8(J));if(W)w=L4,L=!1;else if(K.length>=X)w=v5,L=!1,K=new T9(K);Q:while(++B<F){var j=Z[B],f=J==null?j:J(j);if(j=W||j!==0?j:0,L&&f===f){var v=C;while(v--)if(K[v]===f)continue Q;A.push(j)}else if(!w(K,f,W))A.push(j)}return A}var W9=I7(b8),eK=I7(v4,!0);function IH(Z,K){var J=!0;return W9(Z,function(W,B,w){return J=!!K(W,B,w),J}),J}function o6(Z,K,J){var W=-1,B=Z.length;while(++W<B){var w=Z[W],L=K(w);if(L!=null&&(F===Q?L===L&&!J8(L):J(L,F)))var F=L,A=w}return A}function AH(Z,K,J,W){var B=Z.length;if(J=r(J),J<0)J=-J>B?0:B+J;if(W=W===Q||W>B?B:r(W),W<0)W+=B;W=J>W?0:_q(W);while(J<W)Z[J++]=K;return Z}function Q7(Z,K){var J=[];return W9(Z,function(W,B,w){if(K(W,B,w))J.push(W)}),J}function y0(Z,K,J,W,B){var w=-1,L=Z.length;J||(J=O3),B||(B=[]);while(++w<L){var F=Z[w];if(K>0&&J(F))if(K>1)y0(F,K-1,J,W,B);else J9(B,F);else if(!W)B[B.length]=F}return B}var k4=A7(),Z7=A7(!0);function b8(Z,K){return Z&&k4(Z,K,f0)}function v4(Z,K){return Z&&Z7(Z,K,f0)}function a6(Z,K){return $9(K,function(J){return o8(Z[J])})}function j9(Z,K){K=B9(K,Z);var J=0,W=K.length;while(Z!=null&&J<W)Z=Z[v8(K[J++])];return J&&J==W?Z:Q}function K7(Z,K,J){var W=K(Z);return n(Z)?W:J9(W,J(Z))}function d0(Z){if(Z==null)return Z===Q?ZU:eJ;return S9&&S9 in Y0(Z)?Y3(Z):D3(Z)}function y4(Z,K){return Z>K}function VH(Z,K){return Z!=null&&J0.call(Z,K)}function SH(Z,K){return Z!=null&&K in Y0(Z)}function xH(Z,K,J){return Z>=h0(K,J)&&Z<V0(K,J)}function g4(Z,K,J){var W=J?L4:j6,B=Z[0].length,w=Z.length,L=w,F=V(w),A=1/0,C=[];while(L--){var j=Z[L];if(L&&K)j=z0(j,X8(K));A=h0(j.length,A),F[L]=!J&&(K||B>=120&&j.length>=120)?new T9(L&&j):Q}j=Z[0];var f=-1,v=F[0];Q:while(++f<B&&C.length<A){var d=j[f],c=K?K(d):d;if(d=J||d!==0?d:0,!(v?v5(v,c):W(C,c,J))){L=w;while(--L){var a=F[L];if(!(a?v5(a,c):W(Z[L],c,J)))continue Q}if(v)v.push(c);C.push(d)}}return C}function TH(Z,K,J,W){return b8(Z,function(B,w,L){K(W,J(B),w,L)}),W}function c5(Z,K,J){K=B9(K,Z),Z=u7(Z,K);var W=Z==null?Z:Z[v8(L8(K))];return W==null?Q:q8(W,Z,J)}function q7(Z){return w0(Z)&&d0(Z)==X9}function CH(Z){return w0(Z)&&d0(Z)==k5}function jH(Z){return w0(Z)&&d0(Z)==T5}function l5(Z,K,J,W,B){if(Z===K)return!0;if(Z==null||K==null||!w0(Z)&&!w0(K))return Z!==Z&&K!==K;return fH(Z,K,J,W,l5,B)}function fH(Z,K,J,W,B,w){var L=n(Z),F=n(K),A=L?l9:m0(Z),C=F?l9:m0(K);A=A==X9?u8:A,C=C==X9?u8:C;var j=A==u8,f=C==u8,v=A==C;if(v&&O9(Z)){if(!O9(K))return!1;L=!0,j=!1}if(v&&!j)return w||(w=new S8),L||$5(Z)?v7(Z,K,J,W,B,w):J3(Z,K,A,J,W,B,w);if(!(J&N)){var d=j&&J0.call(Z,"__wrapped__"),c=f&&J0.call(K,"__wrapped__");if(d||c){var a=d?Z.value():Z,l=c?K.value():K;return w||(w=new S8),B(a,l,J,W,w)}}if(!v)return!1;return w||(w=new S8),U3(Z,K,J,W,B,w)}function bH(Z){return w0(Z)&&m0(Z)==I8}function h4(Z,K,J,W){var B=J.length,w=B,L=!W;if(Z==null)return!w;Z=Y0(Z);while(B--){var F=J[B];if(L&&F[2]?F[1]!==Z[F[0]]:!(F[0]in Z))return!1}while(++B<w){F=J[B];var A=F[0],C=Z[A],j=F[1];if(L&&F[2]){if(C===Q&&!(A in Z))return!1}else{var f=new S8;if(W)var v=W(C,j,A,Z,K,f);if(!(v===Q?l5(j,C,N|D,W,f):v))return!1}}return!0}function X7(Z){if(!M0(Z)||_3(Z))return!1;var K=o8(Z)?bY:PU;return K.test(b9(Z))}function kH(Z){return w0(Z)&&d0(Z)==j5}function vH(Z){return w0(Z)&&m0(Z)==A8}function yH(Z){return w0(Z)&&O1(Z.length)&&!!G0[d0(Z)]}function $7(Z){if(typeof Z=="function")return Z;if(Z==null)return t0;if(typeof Z=="object")return n(Z)?Y7(Z[0],Z[1]):U7(Z);return Vq(Z)}function m4(Z){if(!n5(Z))return mY(Z);var K=[];for(var J in Y0(Z))if(J0.call(Z,J)&&J!="constructor")K.push(J);return K}function gH(Z){if(!M0(Z))return L3(Z);var K=n5(Z),J=[];for(var W in Z)if(!(W=="constructor"&&(K||!J0.call(Z,W))))J.push(W);return J}function p4(Z,K){return Z<K}function J7(Z,K){var J=-1,W=o0(Z)?V(Z.length):[];return W9(Z,function(B,w,L){W[++J]=K(B,w,L)}),W}function U7(Z){var K=KQ(Z);if(K.length==1&&K[0][2])return p7(K[0][0],K[0][1]);return function(J){return J===Z||h4(J,Z,K)}}function Y7(Z,K){if(XQ(Z)&&m7(K))return p7(v8(Z),K);return function(J){var W=OQ(J,Z);return W===Q&&W===K?EQ(J,Z):l5(K,W,N|D)}}function t6(Z,K,J,W,B){if(Z===K)return;k4(K,function(w,L){if(B||(B=new S8),M0(w))hH(Z,K,L,J,t6,W,B);else{var F=W?W(JQ(Z,L),w,L+"",Z,K,B):Q;if(F===Q)F=w;f4(Z,L,F)}},a0)}function hH(Z,K,J,W,B,w,L){var F=JQ(Z,J),A=JQ(K,J),C=L.get(A);if(C){f4(Z,J,C);return}var j=w?w(F,A,J+"",Z,K,L):Q,f=j===Q;if(f){var v=n(A),d=!v&&O9(A),c=!v&&!d&&$5(A);if(j=A,v||d||c)if(n(F))j=F;else if(N0(F))j=r0(F);else if(d)f=!1,j=L7(A,!0);else if(c)f=!1,j=D7(A,!0);else j=[];else if(o5(A)||k9(A)){if(j=F,k9(F))j=Mq(F);else if(!M0(F)||o8(F))j=h7(A)}else f=!1}if(f)L.set(A,j),B(j,A,W,w,L),L.delete(A);f4(Z,J,j)}function H7(Z,K){var J=Z.length;if(!J)return;return K+=K<0?J:0,r8(K,J)?Z[K]:Q}function W7(Z,K,J){if(K.length)K=z0(K,function(w){if(n(w))return function(L){return j9(L,w.length===1?w[0]:w)};return w});else K=[t0];var W=-1;K=z0(K,X8(u()));var B=J7(Z,function(w,L,F){var A=z0(K,function(C){return C(w)});return{criteria:A,index:++W,value:w}});return BY(B,function(w,L){return tH(w,L,J)})}function mH(Z,K){return G7(Z,K,function(J,W){return EQ(Z,W)})}function G7(Z,K,J){var W=-1,B=K.length,w={};while(++W<B){var L=K[W],F=j9(Z,L);if(J(F,L))i5(w,B9(L,Z),F)}return w}function pH(Z){return function(K){return j9(K,Z)}}function d4(Z,K,J,W){var B=W?GY:r9,w=-1,L=K.length,F=Z;if(Z===K)K=r0(K);if(J)F=z0(Z,X8(J));while(++w<L){var A=0,C=K[w],j=J?J(C):C;while((A=B(F,j,A,W))>-1){if(F!==Z)d6.call(F,A,1);d6.call(Z,A,1)}}return Z}function B7(Z,K){var J=Z?K.length:0,W=J-1;while(J--){var B=K[J];if(J==W||B!==w){var w=B;if(r8(B))d6.call(Z,B,1);else i4(Z,B)}}return Z}function u4(Z,K){return Z+l6(iK()*(K-Z+1))}function dH(Z,K,J,W){var B=-1,w=V0(c6((K-Z)/(J||1)),0),L=V(w);while(w--)L[W?w:++B]=Z,Z+=J;return L}function c4(Z,K){var J="";if(!Z||K<1||K>C0)return J;do{if(K%2)J+=Z;if(K=l6(K/2),K)Z+=Z}while(K);return J}function t(Z,K){return UQ(d7(Z,K,t0),Z+"")}function uH(Z){return rK(J5(Z))}function cH(Z,K){var J=J5(Z);return Y1(J,C9(K,0,J.length))}function i5(Z,K,J,W){if(!M0(Z))return Z;K=B9(K,Z);var B=-1,w=K.length,L=w-1,F=Z;while(F!=null&&++B<w){var A=v8(K[B]),C=J;if(A==="__proto__"||A==="constructor"||A==="prototype")return Z;if(B!=L){var j=F[A];if(C=W?W(j,A,F):Q,C===Q)C=M0(j)?j:r8(K[B+1])?[]:{}}d5(F,A,C),F=F[A]}return Z}var z7=!i6?t0:function(Z,K){return i6.set(Z,K),Z},lH=!u6?t0:function(Z,K){return u6(Z,"toString",{configurable:!0,enumerable:!1,value:MQ(K),writable:!0})};function iH(Z){return Y1(J5(Z))}function N8(Z,K,J){var W=-1,B=Z.length;if(K<0)K=-K>B?0:B+K;if(J=J>B?B:J,J<0)J+=B;B=K>J?0:J-K>>>0,K>>>=0;var w=V(B);while(++W<B)w[W]=Z[W+K];return w}function sH(Z,K){var J;return W9(Z,function(W,B,w){return J=K(W,B,w),!J}),!!J}function e6(Z,K,J){var W=0,B=Z==null?W:Z.length;if(typeof K=="number"&&K===K&&B<=I6){while(W<B){var w=W+B>>>1,L=Z[w];if(L!==null&&!J8(L)&&(J?L<=K:L<K))W=w+1;else B=w}return B}return l4(Z,K,t0,J)}function l4(Z,K,J,W){var B=0,w=Z==null?0:Z.length;if(w===0)return 0;K=J(K);var L=K!==K,F=K===null,A=J8(K),C=K===Q;while(B<w){var j=l6((B+w)/2),f=J(Z[j]),v=f!==Q,d=f===null,c=f===f,a=J8(f);if(L)var l=W||c;else if(C)l=c&&(W||v);else if(F)l=c&&v&&(W||!d);else if(A)l=c&&v&&!d&&(W||!a);else if(d||a)l=!1;else l=W?f<=K:f<K;if(l)B=j+1;else w=j}return h0(w,A9)}function O7(Z,K){var J=-1,W=Z.length,B=0,w=[];while(++J<W){var L=Z[J],F=K?K(L):L;if(!J||!x8(F,A)){var A=F;w[B++]=L===0?0:L}}return w}function E7(Z){if(typeof Z=="number")return Z;if(J8(Z))return c9;return+Z}function $8(Z){if(typeof Z=="string")return Z;if(n(Z))return z0(Z,$8)+"";if(J8(Z))return sK?sK.call(Z):"";var K=Z+"";return K=="0"&&1/Z==-f8?"-0":K}function G9(Z,K,J){var W=-1,B=j6,w=Z.length,L=!0,F=[],A=F;if(J)L=!1,B=L4;else if(w>=X){var C=K?null:X3(Z);if(C)return b6(C);L=!1,B=v5,A=new T9}else A=K?[]:F;Q:while(++W<w){var j=Z[W],f=K?K(j):j;if(j=J||j!==0?j:0,L&&f===f){var v=A.length;while(v--)if(A[v]===f)continue Q;if(K)A.push(f);F.push(j)}else if(!B(A,f,J)){if(A!==F)A.push(f);F.push(j)}}return F}function i4(Z,K){return K=B9(K,Z),Z=u7(Z,K),Z==null||delete Z[v8(L8(K))]}function _7(Z,K,J,W){return i5(Z,K,J(j9(Z,K)),W)}function Q1(Z,K,J,W){var B=Z.length,w=W?B:-1;while((W?w--:++w<B)&&K(Z[w],w,Z));return J?N8(Z,W?0:w,W?w+1:B):N8(Z,W?w+1:0,W?B:w)}function M7(Z,K){var J=Z;if(J instanceof Q0)J=J.value();return D4(K,function(W,B){return B.func.apply(B.thisArg,J9([W],B.args))},J)}function s4(Z,K,J){var W=Z.length;if(W<2)return W?G9(Z[0]):[];var B=-1,w=V(W);while(++B<W){var L=Z[B],F=-1;while(++F<W)if(F!=B)w[B]=u5(w[B]||L,Z[F],K,J)}return G9(y0(w,1),K,J)}function w7(Z,K,J){var W=-1,B=Z.length,w=K.length,L={};while(++W<B){var F=W<w?K[W]:Q;J(L,Z[W],F)}return L}function n4(Z){return N0(Z)?Z:[]}function r4(Z){return typeof Z=="function"?Z:t0}function B9(Z,K){if(n(Z))return Z;return XQ(Z,K)?[Z]:s7(X0(Z))}var nH=t;function z9(Z,K,J){var W=Z.length;return J=J===Q?W:J,!K&&J>=W?Z:N8(Z,K,J)}var N7=kY||function(Z){return j0.clearTimeout(Z)};function L7(Z,K){if(K)return Z.slice();var J=Z.length,W=pK?pK(J):new Z.constructor(J);return Z.copy(W),W}function o4(Z){var K=new Z.constructor(Z.byteLength);return new m6(K).set(new m6(Z)),K}function rH(Z,K){var J=K?o4(Z.buffer):Z.buffer;return new Z.constructor(J,Z.byteOffset,Z.byteLength)}function oH(Z){var K=new Z.constructor(Z.source,qK.exec(Z));return K.lastIndex=Z.lastIndex,K}function aH(Z){return p5?Y0(p5.call(Z)):{}}function D7(Z,K){var J=K?o4(Z.buffer):Z.buffer;return new Z.constructor(J,Z.byteOffset,Z.length)}function F7(Z,K){if(Z!==K){var J=Z!==Q,W=Z===null,B=Z===Z,w=J8(Z),L=K!==Q,F=K===null,A=K===K,C=J8(K);if(!F&&!C&&!w&&Z>K||w&&L&&A&&!F&&!C||W&&L&&A||!J&&A||!B)return 1;if(!W&&!w&&!C&&Z<K||C&&J&&B&&!W&&!w||F&&J&&B||!L&&B||!A)return-1}return 0}function tH(Z,K,J){var W=-1,B=Z.criteria,w=K.criteria,L=B.length,F=J.length;while(++W<L){var A=F7(B[W],w[W]);if(A){if(W>=F)return A;var C=J[W];return A*(C=="desc"?-1:1)}}return Z.index-K.index}function R7(Z,K,J,W){var B=-1,w=Z.length,L=J.length,F=-1,A=K.length,C=V0(w-L,0),j=V(A+C),f=!W;while(++F<A)j[F]=K[F];while(++B<L)if(f||B<w)j[J[B]]=Z[B];while(C--)j[F++]=Z[B++];return j}function P7(Z,K,J,W){var B=-1,w=Z.length,L=-1,F=J.length,A=-1,C=K.length,j=V0(w-F,0),f=V(j+C),v=!W;while(++B<j)f[B]=Z[B];var d=B;while(++A<C)f[d+A]=K[A];while(++L<F)if(v||B<w)f[d+J[L]]=Z[B++];return f}function r0(Z,K){var J=-1,W=Z.length;K||(K=V(W));while(++J<W)K[J]=Z[J];return K}function k8(Z,K,J,W){var B=!J;J||(J={});var w=-1,L=K.length;while(++w<L){var F=K[w],A=W?W(J[F],Z[F],F,J,Z):Q;if(A===Q)A=Z[F];if(B)i8(J,F,A);else d5(J,F,A)}return J}function eH(Z,K){return k8(Z,qQ(Z),K)}function Q3(Z,K){return k8(Z,y7(Z),K)}function Z1(Z,K){return function(J,W){var B=n(J)?$Y:FH,w=K?K():{};return B(J,Z,u(W,2),w)}}function K5(Z){return t(function(K,J){var W=-1,B=J.length,w=B>1?J[B-1]:Q,L=B>2?J[2]:Q;if(w=Z.length>3&&typeof w=="function"?(B--,w):Q,L&&u0(J[0],J[1],L))w=B<3?Q:w,B=1;K=Y0(K);while(++W<B){var F=J[W];if(F)Z(K,F,W,w)}return K})}function I7(Z,K){return function(J,W){if(J==null)return J;if(!o0(J))return Z(J,W);var B=J.length,w=K?B:-1,L=Y0(J);while(K?w--:++w<B)if(W(L[w],w,L)===!1)break;return J}}function A7(Z){return function(K,J,W){var B=-1,w=Y0(K),L=W(K),F=L.length;while(F--){var A=L[Z?F:++B];if(J(w[A],A,w)===!1)break}return K}}function Z3(Z,K,J){var W=K&R,B=s5(Z);function w(){var L=this&&this!==j0&&this instanceof w?B:Z;return L.apply(W?J:this,arguments)}return w}function V7(Z){return function(K){K=X0(K);var J=o9(K)?V8(K):Q,W=J?J[0]:K.charAt(0),B=J?z9(J,1).join(""):K.slice(1);return W[Z]()+B}}function q5(Z){return function(K){return D4(Iq(Pq(K).replace(lU,"")),Z,"")}}function s5(Z){return function(){var K=arguments;switch(K.length){case 0:return new Z;case 1:return new Z(K[0]);case 2:return new Z(K[0],K[1]);case 3:return new Z(K[0],K[1],K[2]);case 4:return new Z(K[0],K[1],K[2],K[3]);case 5:return new Z(K[0],K[1],K[2],K[3],K[4]);case 6:return new Z(K[0],K[1],K[2],K[3],K[4],K[5]);case 7:return new Z(K[0],K[1],K[2],K[3],K[4],K[5],K[6])}var J=Z5(Z.prototype),W=Z.apply(J,K);return M0(W)?W:J}}function K3(Z,K,J){var W=s5(Z);function B(){var w=arguments.length,L=V(w),F=w,A=X5(B);while(F--)L[F]=arguments[F];var C=w<3&&L[0]!==A&&L[w-1]!==A?[]:U9(L,A);if(w-=C.length,w<J)return j7(Z,K,K1,B.placeholder,Q,L,C,Q,Q,J-w);var j=this&&this!==j0&&this instanceof B?W:Z;return q8(j,this,L)}return B}function S7(Z){return function(K,J,W){var B=Y0(K);if(!o0(K)){var w=u(J,3);K=f0(K),J=function(F){return w(B[F],F,B)}}var L=Z(K,J,W);return L>-1?B[w?K[L]:L]:Q}}function x7(Z){return n8(function(K){var J=K.length,W=J,B=M8.prototype.thru;if(Z)K.reverse();while(W--){var w=K[W];if(typeof w!="function")throw new _8(U);if(B&&!L&&J1(w)=="wrapper")var L=new M8([],!0)}W=L?W:J;while(++W<J){w=K[W];var F=J1(w),A=F=="wrapper"?ZQ(w):Q;if(A&&$Q(A[0])&&A[1]==(g|T|k|i)&&!A[4].length&&A[9]==1)L=L[J1(A[0])].apply(L,A[3]);else L=w.length==1&&$Q(w)?L[F]():L.thru(w)}return function(){var C=arguments,j=C[0];if(L&&C.length==1&&n(j))return L.plant(j).value();var f=0,v=J?K[f].apply(this,C):j;while(++f<J)v=K[f].call(this,v);return v}})}function K1(Z,K,J,W,B,w,L,F,A,C){var j=K&g,f=K&R,v=K&P,d=K&(T|b),c=K&p,a=v?Q:s5(Z);function l(){var e=arguments.length,Z0=V(e),U8=e;while(U8--)Z0[U8]=arguments[U8];if(d)var c0=X5(l),Y8=OY(Z0,c0);if(W)Z0=R7(Z0,W,B,d);if(w)Z0=P7(Z0,w,L,d);if(e-=Y8,d&&e<C){var L0=U9(Z0,c0);return j7(Z,K,K1,l.placeholder,J,Z0,L0,F,A,C-e)}var T8=f?J:this,t8=v?T8[Z]:Z;if(e=Z0.length,F)Z0=F3(Z0,F);else if(c&&e>1)Z0.reverse();if(j&&A<e)Z0.length=A;if(this&&this!==j0&&this instanceof l)t8=a||s5(t8);return t8.apply(T8,Z0)}return l}function T7(Z,K){return function(J,W){return TH(J,Z,K(W),{})}}function q1(Z,K){return function(J,W){var B;if(J===Q&&W===Q)return K;if(J!==Q)B=J;if(W!==Q){if(B===Q)return W;if(typeof J=="string"||typeof W=="string")J=$8(J),W=$8(W);else J=E7(J),W=E7(W);B=Z(J,W)}return B}}function a4(Z){return n8(function(K){return K=z0(K,X8(u())),t(function(J){var W=this;return Z(K,function(B){return q8(B,W,J)})})})}function X1(Z,K){K=K===Q?" ":$8(K);var J=K.length;if(J<2)return J?c4(K,Z):K;var W=c4(K,c6(Z/a9(K)));return o9(K)?z9(V8(W),0,Z).join(""):W.slice(0,Z)}function q3(Z,K,J,W){var B=K&R,w=s5(Z);function L(){var F=-1,A=arguments.length,C=-1,j=W.length,f=V(j+A),v=this&&this!==j0&&this instanceof L?w:Z;while(++C<j)f[C]=W[C];while(A--)f[C++]=arguments[++F];return q8(v,B?J:this,f)}return L}function C7(Z){return function(K,J,W){if(W&&typeof W!="number"&&u0(K,J,W))J=W=Q;if(K=a8(K),J===Q)J=K,K=0;else J=a8(J);return W=W===Q?K<J?1:-1:a8(W),dH(K,J,W,Z)}}function $1(Z){return function(K,J){if(!(typeof K=="string"&&typeof J=="string"))K=D8(K),J=D8(J);return Z(K,J)}}function j7(Z,K,J,W,B,w,L,F,A,C){var j=K&T,f=j?L:Q,v=j?Q:L,d=j?w:Q,c=j?Q:w;if(K|=j?k:y,K&=~(j?y:k),!(K&S))K&=~(R|P);var a=[Z,K,B,d,f,c,v,F,A,C],l=J.apply(Q,a);if($Q(Z))c7(l,a);return l.placeholder=W,l7(l,Z,K)}function t4(Z){var K=A0[Z];return function(J,W){if(J=D8(J),W=W==null?0:h0(r(W),292),W&&lK(J)){var B=(X0(J)+"e").split("e"),w=K(B[0]+"e"+(+B[1]+W));return B=(X0(w)+"e").split("e"),+(B[0]+"e"+(+B[1]-W))}return K(J)}}var X3=!(e9&&1/b6(new e9([,-0]))[1]==f8)?LQ:function(Z){return new e9(Z)};function f7(Z){return function(K){var J=m0(K);if(J==I8)return S4(K);if(J==A8)return DY(K);return zY(K,Z(K))}}function s8(Z,K,J,W,B,w,L,F){var A=K&P;if(!A&&typeof Z!="function")throw new _8(U);var C=W?W.length:0;if(!C)K&=~(k|y),W=B=Q;if(L=L===Q?L:V0(r(L),0),F=F===Q?F:r(F),C-=B?B.length:0,K&y){var j=W,f=B;W=B=Q}var v=A?Q:ZQ(Z),d=[Z,K,J,W,B,j,f,w,L,F];if(v)N3(d,v);if(Z=d[0],K=d[1],J=d[2],W=d[3],B=d[4],F=d[9]=d[9]===Q?A?0:Z.length:V0(d[9]-C,0),!F&&K&(T|b))K&=~(T|b);if(!K||K==R)var c=Z3(Z,K,J);else if(K==T||K==b)c=K3(Z,K,F);else if((K==k||K==(R|k))&&!B.length)c=q3(Z,K,J,W);else c=K1.apply(Q,d);var a=v?z7:c7;return l7(a(c,d),Z,K)}function b7(Z,K,J,W){if(Z===Q||x8(Z,t9[J])&&!J0.call(W,J))return K;return Z}function k7(Z,K,J,W,B,w){if(M0(Z)&&M0(K))w.set(K,Z),t6(Z,K,Q,k7,w),w.delete(K);return Z}function $3(Z){return o5(Z)?Q:Z}function v7(Z,K,J,W,B,w){var L=J&N,F=Z.length,A=K.length;if(F!=A&&!(L&&A>F))return!1;var C=w.get(Z),j=w.get(K);if(C&&j)return C==K&&j==Z;var f=-1,v=!0,d=J&D?new T9:Q;w.set(Z,K),w.set(K,Z);while(++f<F){var c=Z[f],a=K[f];if(W)var l=L?W(a,c,f,K,Z,w):W(c,a,f,Z,K,w);if(l!==Q){if(l)continue;v=!1;break}if(d){if(!F4(K,function(e,Z0){if(!v5(d,Z0)&&(c===e||B(c,e,J,W,w)))return d.push(Z0)})){v=!1;break}}else if(!(c===a||B(c,a,J,W,w))){v=!1;break}}return w.delete(Z),w.delete(K),v}function J3(Z,K,J,W,B,w,L){switch(J){case s9:if(Z.byteLength!=K.byteLength||Z.byteOffset!=K.byteOffset)return!1;Z=Z.buffer,K=K.buffer;case k5:if(Z.byteLength!=K.byteLength||!w(new m6(Z),new m6(K)))return!1;return!0;case x5:case T5:case C5:return x8(+Z,+K);case A6:return Z.name==K.name&&Z.message==K.message;case j5:case f5:return Z==K+"";case I8:var F=S4;case A8:var A=W&N;if(F||(F=b6),Z.size!=K.size&&!A)return!1;var C=L.get(Z);if(C)return C==K;W|=D,L.set(Z,K);var j=v7(F(Z),F(K),W,B,w,L);return L.delete(Z),j;case S6:if(p5)return p5.call(Z)==p5.call(K)}return!1}function U3(Z,K,J,W,B,w){var L=J&N,F=e4(Z),A=F.length,C=e4(K),j=C.length;if(A!=j&&!L)return!1;var f=A;while(f--){var v=F[f];if(!(L?v in K:J0.call(K,v)))return!1}var d=w.get(Z),c=w.get(K);if(d&&c)return d==K&&c==Z;var a=!0;w.set(Z,K),w.set(K,Z);var l=L;while(++f<A){v=F[f];var e=Z[v],Z0=K[v];if(W)var U8=L?W(Z0,e,v,K,Z,w):W(e,Z0,v,Z,K,w);if(!(U8===Q?e===Z0||B(e,Z0,J,W,w):U8)){a=!1;break}l||(l=v=="constructor")}if(a&&!l){var c0=Z.constructor,Y8=K.constructor;if(c0!=Y8&&(("constructor"in Z)&&("constructor"in K))&&!(typeof c0=="function"&&c0 instanceof c0&&typeof Y8=="function"&&Y8 instanceof Y8))a=!1}return w.delete(Z),w.delete(K),a}function n8(Z){return UQ(d7(Z,Q,a7),Z+"")}function e4(Z){return K7(Z,f0,qQ)}function QQ(Z){return K7(Z,a0,y7)}var ZQ=!i6?LQ:function(Z){return i6.get(Z)};function J1(Z){var K=Z.name+"",J=Q5[K],W=J0.call(Q5,K)?J.length:0;while(W--){var B=J[W],w=B.func;if(w==null||w==Z)return B.name}return K}function X5(Z){var K=J0.call(E,"placeholder")?E:Z;return K.placeholder}function u(){var Z=E.iteratee||wQ;return Z=Z===wQ?$7:Z,arguments.length?Z(arguments[0],arguments[1]):Z}function U1(Z,K){var J=Z.__data__;return E3(K)?J[typeof K=="string"?"string":"hash"]:J.map}function KQ(Z){var K=f0(Z),J=K.length;while(J--){var W=K[J],B=Z[W];K[J]=[W,B,m7(B)]}return K}function f9(Z,K){var J=wY(Z,K);return X7(J)?J:Q}function Y3(Z){var K=J0.call(Z,S9),J=Z[S9];try{Z[S9]=Q;var W=!0}catch(w){}var B=g6.call(Z);if(W)if(K)Z[S9]=J;else delete Z[S9];return B}var qQ=!T4?DQ:function(Z){if(Z==null)return[];return Z=Y0(Z),$9(T4(Z),function(K){return uK.call(Z,K)})},y7=!T4?DQ:function(Z){var K=[];while(Z)J9(K,qQ(Z)),Z=p6(Z);return K},m0=d0;if(C4&&m0(new C4(new ArrayBuffer(1)))!=s9||g5&&m0(new g5)!=I8||j4&&m0(j4.resolve())!=eZ||e9&&m0(new e9)!=A8||h5&&m0(new h5)!=b5)m0=function(Z){var K=d0(Z),J=K==u8?Z.constructor:Q,W=J?b9(J):"";if(W)switch(W){case cY:return s9;case lY:return I8;case iY:return eZ;case sY:return A8;case nY:return b5}return K};function H3(Z,K,J){var W=-1,B=J.length;while(++W<B){var w=J[W],L=w.size;switch(w.type){case"drop":Z+=L;break;case"dropRight":K-=L;break;case"take":K=h0(K,Z+L);break;case"takeRight":Z=V0(Z,K-L);break}}return{start:Z,end:K}}function W3(Z){var K=Z.match(_U);return K?K[1].split(MU):[]}function g7(Z,K,J){K=B9(K,Z);var W=-1,B=K.length,w=!1;while(++W<B){var L=v8(K[W]);if(!(w=Z!=null&&J(Z,L)))break;Z=Z[L]}if(w||++W!=B)return w;return B=Z==null?0:Z.length,!!B&&O1(B)&&r8(L,B)&&(n(Z)||k9(Z))}function G3(Z){var K=Z.length,J=new Z.constructor(K);if(K&&typeof Z[0]=="string"&&J0.call(Z,"index"))J.index=Z.index,J.input=Z.input;return J}function h7(Z){return typeof Z.constructor=="function"&&!n5(Z)?Z5(p6(Z)):{}}function B3(Z,K,J){var W=Z.constructor;switch(K){case k5:return o4(Z);case x5:case T5:return new W(+Z);case s9:return rH(Z,J);case K4:case q4:case X4:case $4:case J4:case U4:case Y4:case H4:case W4:return D7(Z,J);case I8:return new W;case C5:case f5:return new W(Z);case j5:return oH(Z);case A8:return new W;case S6:return aH(Z)}}function z3(Z,K){var J=K.length;if(!J)return Z;var W=J-1;return K[W]=(J>1?"& ":"")+K[W],K=K.join(J>2?", ":" "),Z.replace(EU,`{
|
|
2
|
+
import{createRequire as u2}from"node:module";var g2=Object.create;var{getPrototypeOf:h2,defineProperty:VQ,getOwnPropertyNames:m2}=Object;var p2=Object.prototype.hasOwnProperty;var H5=(Q,q,X)=>{X=Q!=null?g2(h2(Q)):{};let $=q||!Q||!Q.__esModule?VQ(X,"default",{value:Q,enumerable:!0}):X;for(let U of m2(Q))if(!p2.call($,U))VQ($,U,{get:()=>Q[U],enumerable:!0});return $};var d2=(Q,q)=>()=>(q||Q((q={exports:{}}).exports,q),q.exports);var SQ=(Q,q)=>{for(var X in q)VQ(Q,X,{get:q[X],enumerable:!0,configurable:!0,set:($)=>q[X]=()=>$})};var f0=(Q,q)=>()=>(Q&&(q=Q(Q=0)),q);var h8=u2(import.meta.url);function M0(Q,q){let X=Q.length;if(!Array.isArray(Q[0]))Q=[Q];if(!Array.isArray(q[0]))q=q.map((H)=>[H]);let $=q[0].length,U=q[0].map((H,G)=>q.map((z)=>z[G])),Y=Q.map((H)=>U.map((G)=>{let z=0;if(!Array.isArray(H)){for(let O of G)z+=H*O;return z}for(let O=0;O<H.length;O++)z+=H[O]*(G[O]||0);return z}));if(X===1)Y=Y[0];if($===1)return Y.map((H)=>H[0]);return Y}function q6(Q){return L9(Q)==="string"}function L9(Q){return(Object.prototype.toString.call(Q).match(/^\[object\s+(.*?)\]$/)[1]||"").toLowerCase()}function V1(Q,{precision:q,unit:X}){if(D9(Q))return"none";return CX(Q,q)+(X??"")}function D9(Q){return Number.isNaN(Q)||Q instanceof Number&&Q?.none}function S0(Q){return D9(Q)?0:Q}function CX(Q,q){if(Q===0)return 0;let X=~~Q,$=0;if(X&&q)$=~~Math.log10(Math.abs(X))+1;let U=10**(q-$);return Math.floor(Q*U+0.5)/U}function jX(Q){if(!Q)return;Q=Q.trim();let q=/^([a-z]+)\((.+?)\)$/i,X=/^-?[\d.]+$/,$=/%|deg|g?rad|turn$/,U=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,Y=Q.match(q);if(Y){let H=[];return Y[2].replace(U,(G,z)=>{let O=z.match($),E=z;if(O){let w=O[0],M=E.slice(0,-w.length);if(w==="%")E=new Number(M/100),E.type="<percentage>";else E=new Number(M*i2[w]),E.type="<angle>",E.unit=w}else if(X.test(E))E=new Number(E),E.type="<number>";else if(E==="none")E=new Number(NaN),E.none=!0;if(G.startsWith("/"))E=E instanceof Number?E:new Number(E),E.alpha=!0;if(typeof E==="object"&&E instanceof Number)E.raw=z;H.push(E)}),{name:Y[1].toLowerCase(),rawName:Y[1],rawArgs:Y[2],args:H}}}function fX(Q){return Q[Q.length-1]}function Q6(Q,q,X){if(isNaN(Q))return q;if(isNaN(q))return Q;return Q+(q-Q)*X}function bX(Q,q,X){return(X-Q)/(q-Q)}function sQ(Q,q,X){return Q6(q[0],q[1],bX(Q[0],Q[1],X))}function kX(Q){return Q.map((q)=>{return q.split("|").map((X)=>{X=X.trim();let $=X.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if($){let U=new String($[1]);return U.range=[+$[2],+$[3]],U}return X})})}function vX(Q,q,X){return Math.max(Math.min(X,q),Q)}function C1(Q,q){return Math.sign(Q)===Math.sign(q)?Q:-Q}function c8(Q,q){return C1(Math.abs(Q)**q,Q)}function nQ(Q,q){return q===0?0:Q/q}function yX(Q,q,X=0,$=Q.length){while(X<$){let U=X+$>>1;if(Q[U]<q)X=U+1;else $=U}return X}class gX{add(Q,q,X){if(typeof arguments[0]!="string"){for(var Q in arguments[0])this.add(Q,arguments[0][Q],arguments[1]);return}(Array.isArray(Q)?Q:[Q]).forEach(function($){if(this[$]=this[$]||[],q)this[$][X?"unshift":"push"](q)},this)}run(Q,q){this[Q]=this[Q]||[],this[Q].forEach(function(X){X.call(q&&q.context?q.context:q,q)})}}function hQ(Q){if(Array.isArray(Q))return Q;return o0[Q]}function S1(Q,q,X,$={}){if(Q=hQ(Q),q=hQ(q),!Q||!q)throw TypeError(`Missing white point to convert ${!Q?"from":""}${!Q&&!q?"/":""}${!q?"to":""}`);if(Q===q)return X;let U={W1:Q,W2:q,XYZ:X,options:$};if(F9.run("chromatic-adaptation-start",U),!U.M){if(U.W1===o0.D65&&U.W2===o0.D50)U.M=[[1.0479297925449969,0.022946870601609652,-0.05019226628920524],[0.02962780877005599,0.9904344267538799,-0.017073799063418826],[-0.009243040646204504,0.015055191490298152,0.7518742814281371]];else if(U.W1===o0.D50&&U.W2===o0.D65)U.M=[[0.955473421488075,-0.02309845494876471,0.06325924320057072],[-0.0283697093338637,1.0099953980813041,0.021041441191917323],[0.012314014864481998,-0.020507649298898964,1.330365926242124]]}if(F9.run("chromatic-adaptation-end",U),U.M)return M0(U.M,U.XYZ);else throw TypeError("Only Bradford CAT with white points D50 and D65 supported for now.")}function bq(Q,q,X,$){return Object.entries(Q.coords).map(([Y,H],G)=>{let z=q.coordGrammar[G],O=$[G],E=O?.type,w;if(O.none)w=z.find((F)=>s2.has(F));else w=z.find((F)=>F==E);if(!w){let F=H.name||Y;throw TypeError(`${E??O.raw} not allowed for ${F} in ${X}()`)}let M=w.range;if(E==="<percentage>")M||=[0,1];let D=H.range||H.refRange;if(M&&D)$[G]=sQ(M,D,$[G]);return w})}function hX(Q,{meta:q}={}){let X={str:String(Q)?.trim()};if(F9.run("parse-start",X),X.color)return X.color;if(X.parsed=jX(X.str),X.parsed){let $=X.parsed.name;if($==="color"){let U=X.parsed.args.shift(),Y=U.startsWith("--")?U.substring(2):`--${U}`,H=[U,Y],G=X.parsed.rawArgs.indexOf("/")>0?X.parsed.args.pop():1;for(let E of m.all){let w=E.getFormat("color");if(w){if(H.includes(w.id)||w.ids?.filter((M)=>H.includes(M)).length){let M=Object.keys(E.coords).map((F,A)=>X.parsed.args[A]||0),D;if(w.coordGrammar)D=bq(E,w,"color",M);if(q)Object.assign(q,{formatId:"color",types:D});if(w.id.startsWith("--")&&!U.startsWith("--"))M8.warn(`${E.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${w.id}) instead of color(${U}).`);if(U.startsWith("--")&&!w.id.startsWith("--"))M8.warn(`${E.name} is a standard space and supported in the CSS spec. Use color(${w.id}) instead of prefixed color(${U}).`);return{spaceId:E.id,coords:M,alpha:G}}}}let z="",O=U in m.registry?U:Y;if(O in m.registry){let E=m.registry[O].formats?.color?.id;if(E)z=`Did you mean color(${E})?`}throw TypeError(`Cannot parse color(${U}). `+(z||"Missing a plugin?"))}else for(let U of m.all){let Y=U.getFormat($);if(Y&&Y.type==="function"){let H=1;if(Y.lastAlpha||fX(X.parsed.args).alpha)H=X.parsed.args.pop();let G=X.parsed.args,z;if(Y.coordGrammar)z=bq(U,Y,$,G);if(q)Object.assign(q,{formatId:Y.name,types:z});return{spaceId:U.id,coords:G,alpha:H}}}}else for(let $ of m.all)for(let U in $.formats){let Y=$.formats[U];if(Y.type!=="custom")continue;if(Y.test&&!Y.test(X.str))continue;let H=Y.parse(X.str);if(H){if(H.alpha??=1,q)q.formatId=U;return H}}throw TypeError(`Could not parse ${Q} as a color. Missing a plugin?`)}function o(Q){if(Array.isArray(Q))return Q.map(o);if(!Q)throw TypeError("Empty color reference");if(q6(Q))Q=hX(Q);let q=Q.space||Q.spaceId;if(!(q instanceof m))Q.space=m.get(q);if(Q.alpha===void 0)Q.alpha=1;return Q}function r2(Q){let q=[Q];for(let X=Q;X=X.base;)q.push(X);return q}function kq(Q,{coords:q}={}){if(Q.coords&&!Q.coordGrammar){Q.type||="function",Q.name||="color",Q.coordGrammar=kX(Q.coords);let X=Object.entries(q).map(([$,U],Y)=>{let H=Q.coordGrammar[Y][0],G=U.range||U.refRange,z=H.range,O="";if(H=="<percentage>")z=[0,100],O="%";else if(H=="<angle>")O="deg";return{fromRange:G,toRange:z,suffix:O}});Q.serializeCoords=($,U)=>{return $.map((Y,H)=>{let{fromRange:G,toRange:z,suffix:O}=X[H];if(G&&z)Y=sQ(G,z,Y);return Y=V1(Y,{precision:U,unit:O}),Y})}}return Q}function X6(Q,q){if(Q=o(Q),!q||Q.space.equals(q))return Q.coords.slice();return q=m.get(q),q.from(Q)}function w8(Q,q){Q=o(Q);let{space:X,index:$}=m.resolveCoord(q,Q.space);return X6(Q,X)[$]}function rQ(Q,q,X){return Q=o(Q),q=m.get(q),Q.coords=q.to(Q.space,X),Q}function $9(Q,q,X){if(Q=o(Q),arguments.length===2&&L9(arguments[1])==="object"){let $=arguments[1];for(let U in $)$9(Q,U,$[U])}else{if(typeof X==="function")X=X(w8(Q,q));let{space:$,index:U}=m.resolveCoord(q,Q.space),Y=X6(Q,$);Y[U]=X,rQ(Q,$,Y)}return Q}function i8(Q){return(Q%360+360)%360}function a2(Q,q){if(Q==="raw")return q;let[X,$]=q.map(i8),U=$-X;if(Q==="increasing"){if(U<0)$+=360}else if(Q==="decreasing"){if(U>0)X+=360}else if(Q==="longer"){if(-180<U&&U<180)if(U>0)X+=360;else $+=360}else if(Q==="shorter"){if(U>180)X+=360;else if(U<-180)$+=360}return[X,$]}function hq(Q){let q=Q*Q;return q*q*q*Q}function mX(Q,q,{kL:X=1,kC:$=1,kH:U=1}={}){[Q,q]=o([Q,q]);let[Y,H,G]=N8.from(Q),z=Z6.from(N8,[Y,H,G])[1],[O,E,w]=N8.from(q),M=Z6.from(N8,[O,E,w])[1];if(z<0)z=0;if(M<0)M=0;let D=(z+M)/2,F=hq(D),A=0.5*(1-Math.sqrt(F/(F+yq))),S=(1+A)*H,x=(1+A)*E,b=Math.sqrt(S**2+G**2),k=Math.sqrt(x**2+w**2),v=S===0&&G===0?0:Math.atan2(G,S),g=x===0&&w===0?0:Math.atan2(w,x);if(v<0)v+=2*x1;if(g<0)g+=2*x1;v*=gq,g*=gq;let u=O-Y,p=k-b,q0=g-v,W0=v+g,X0=Math.abs(q0),D0;if(b*k===0)D0=0;else if(X0<=180)D0=q0;else if(q0>180)D0=q0-360;else if(q0<-180)D0=q0+360;else M8.warn("the unthinkable has happened");let d0=2*Math.sqrt(k*b)*Math.sin(D0*W5/2),H8=(Y+O)/2,T0=(b+k)/2,F0=hq(T0),H0;if(b*k===0)H0=W0;else if(X0<=180)H0=W0/2;else if(W0<360)H0=(W0+360)/2;else H0=(W0-360)/2;let W8=(H8-50)**2,D8=1+0.015*W8/Math.sqrt(20+W8),u0=1+0.045*T0,T9=1;T9-=0.17*Math.cos((H0-30)*W5),T9+=0.24*Math.cos(2*H0*W5),T9+=0.32*Math.cos((3*H0+6)*W5),T9-=0.2*Math.cos((4*H0-63)*W5);let P6=1+0.015*T0*T9,$4=30*Math.exp(-1*((H0-275)/25)**2),H9=2*Math.sqrt(F0/(F0+yq)),s9=-1*Math.sin(2*$4*W5)*H9,n9=(u/(X*D8))**2;return n9+=(p/($*u0))**2,n9+=(d0/(U*P6))**2,n9+=s9*(p/($*u0))*(d0/(U*P6)),Math.sqrt(n9)}function mQ(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=O5.from(Q),[Y,H,G]=O5.from(q),z=X-Y,O=$-H,E=U-G;return Math.sqrt(z**2+O**2+E**2)}function p9(Q,q,{epsilon:X=Kz}={}){if(Q=o(Q),!q)q=Q.space;q=m.get(q);let $=Q.coords;if(q!==Q.space)$=q.from(Q);return q.inGamut($,{epsilon:X})}function E5(Q){return{space:Q.space,coords:Q.coords.slice(),alpha:Q.alpha}}function pX(Q,q,X="lab"){X=m.get(X);let $=X.from(Q),U=X.from(q);return Math.sqrt($.reduce((Y,H,G)=>{let z=U[G];if(isNaN(H)||isNaN(z))return Y;return Y+(z-H)**2},0))}function qz(Q,q){return pX(Q,q,"lab")}function $z(Q,q,{l:X=2,c:$=1}={}){[Q,q]=o([Q,q]);let[U,Y,H]=N8.from(Q),[,G,z]=Z6.from(N8,[U,Y,H]),[O,E,w]=N8.from(q),M=Z6.from(N8,[O,E,w])[1];if(G<0)G=0;if(M<0)M=0;let D=U-O,F=G-M,A=Y-E,S=H-w,x=A**2+S**2-F**2,b=0.511;if(U>=16)b=0.040975*U/(1+0.01765*U);let k=0.0638*G/(1+0.0131*G)+0.638,v;if(Number.isNaN(z))z=0;if(z>=164&&z<=345)v=0.56+Math.abs(0.2*Math.cos((z+168)*mq));else v=0.36+Math.abs(0.4*Math.cos((z+35)*mq));let g=Math.pow(G,4),u=Math.sqrt(g/(g+1900)),p=k*(u*v+1-u),q0=(D/(X*b))**2;return q0+=(F/($*k))**2,q0+=x/p**2,Math.sqrt(q0)}function Bz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=pQ.from(Q),[Y,H,G]=pQ.from(q),z=X-Y,O=$-H;if(Number.isNaN(U)&&Number.isNaN(G))U=0,G=0;else if(Number.isNaN(U))U=G;else if(Number.isNaN(G))G=U;let E=U-G,w=2*Math.sqrt($*H)*Math.sin(E/2*(Math.PI/180));return Math.sqrt(z**2+O**2+w**2)}function Mz(Q){let q=Q.map(function(X){let $=uX+cX*(X/1e4)**sq,U=1+iX*(X/1e4)**sq;return($/U)**zz});return M0(_z,q)}function Lz(Q){return M0(wz,Q).map(function($){let U=Math.max($**nq-uX,0),Y=cX-iX*$**nq;return 1e4*(U/Y)**Oz})}function Dz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=dQ.from(Q),[Y,H,G]=dQ.from(q);return 720*Math.sqrt((X-Y)**2+0.25*($-H)**2+(U-G)**2)}function nX(Q,q){return Q.map(($)=>{let U=c8(q*Math.abs($)*0.01,lX);return 400*C1(U,$)/(U+27.13)})}function Vz(Q,q){let X=100/q*27.13**rq;return Q.map(($)=>{let U=Math.abs($);return C1(X*c8(U/(400-U),rq),$)})}function Sz(Q){let q=i8(Q);if(q<=m9.h[0])q+=360;let X=yX(m9.h,q)-1,[$,U]=m9.h.slice(X,X+2),[Y,H]=m9.e.slice(X,X+2),G=m9.H[X],z=(q-$)/Y;return G+100*z/(z+(U-q)/H)}function xz(Q){let q=(Q%400+400)%400,X=Math.floor(0.01*q);q=q%100;let[$,U]=m9.h.slice(X,X+2),[Y,H]=m9.e.slice(X,X+2);return i8((q*(H*$-Y*U)-100*$*H)/(q*(H-Y)-100*H))}function rX(Q,q,X,$,U){let Y={};Y.discounting=U,Y.refWhite=Q,Y.surround=$;let H=Q.map((A)=>{return A*100});Y.la=q,Y.yb=X;let G=H[1],z=M0(sX,H);$=Pz[Y.surround];let O=$[0];Y.c=$[1],Y.nc=$[2];let w=(1/(5*Y.la+1))**4;Y.fl=w*Y.la+0.1*(1-w)*(1-w)*Math.cbrt(5*Y.la),Y.flRoot=Y.fl**0.25,Y.n=Y.yb/G,Y.z=1.48+Math.sqrt(Y.n),Y.nbb=0.725*Y.n**-0.2,Y.ncb=Y.nbb;let M=U?1:Math.max(Math.min(O*(1-0.2777777777777778*Math.exp((-Y.la-42)/92)),1),0);Y.dRgb=z.map((A)=>{return Q6(1,G/A,M)}),Y.dRgbInv=Y.dRgb.map((A)=>{return 1/A});let D=z.map((A,S)=>{return A*Y.dRgb[S]}),F=nX(D,Y.fl);return Y.aW=Y.nbb*(2*F[0]+F[1]+0.05*F[2]),Y}function uQ(Q,q){if(!(Q.J!==void 0^Q.Q!==void 0))throw Error("Conversion requires one and only one: 'J' or 'Q'");if(!(Q.C!==void 0^Q.M!==void 0^Q.s!==void 0))throw Error("Conversion requires one and only one: 'C', 'M' or 's'");if(!(Q.h!==void 0^Q.H!==void 0))throw Error("Conversion requires one and only one: 'h' or 'H'");if(Q.J===0||Q.Q===0)return[0,0,0];let X=0;if(Q.h!==void 0)X=i8(Q.h)*oq;else X=xz(Q.H)*oq;let $=Math.cos(X),U=Math.sin(X),Y=0;if(Q.J!==void 0)Y=c8(Q.J,0.5)*0.1;else if(Q.Q!==void 0)Y=0.25*q.c*Q.Q/((q.aW+4)*q.flRoot);let H=0;if(Q.C!==void 0)H=Q.C/Y;else if(Q.M!==void 0)H=Q.M/q.flRoot/Y;else if(Q.s!==void 0)H=0.0004*Q.s**2*(q.aW+4)/q.c;let G=c8(H*Math.pow(1.64-Math.pow(0.29,q.n),-0.73),1.1111111111111112),z=0.25*(Math.cos(X+2)+3.8),O=q.aW*c8(Y,2/q.c/q.z),E=3846.153846153846*q.nc*q.ncb*z,w=O/q.nbb,M=23*(w+0.305)*nQ(G,23*E+G*(11*$+108*U)),D=M*$,F=M*U,A=Vz(M0(Az,[w,D,F]).map((S)=>{return S*1/1403}),q.fl);return M0(Iz,A.map((S,x)=>{return S*q.dRgbInv[x]})).map((S)=>{return S/100})}function oX(Q,q){let X=Q.map((k)=>{return k*100}),$=nX(M0(sX,X).map((k,v)=>{return k*q.dRgb[v]}),q.fl),U=$[0]+(-12*$[1]+$[2])/11,Y=($[0]+$[1]-2*$[2])/9,H=(Math.atan2(Y,U)%CQ+CQ)%CQ,G=0.25*(Math.cos(H+2)+3.8),z=3846.153846153846*q.nc*q.ncb*nQ(G*Math.sqrt(U**2+Y**2),$[0]+$[1]+1.05*$[2]+0.305),O=c8(z,0.9)*Math.pow(1.64-Math.pow(0.29,q.n),0.73),E=q.nbb*(2*$[0]+$[1]+0.05*$[2]),w=c8(E/q.aW,0.5*q.c*q.z),M=100*c8(w,2),D=4/q.c*w*(q.aW+4)*q.flRoot,F=O*w,A=F*q.flRoot,S=i8(H*Rz),x=Sz(S),b=50*c8(q.c*O/(q.aW+4),0.5);return{J:M,C:F,h:S,s:b,Q:D,M:A,H:x}}function fz(Q){return 116*(Q>jz?Math.cbrt(Q):(aX*Q+16)/116)-16}function cQ(Q){return Q>8?Math.pow((Q+16)/116,3):Q/aX}function bz(Q,q){let[X,$,U]=Q,Y=[],H=0;if(U===0)return[0,0,0];let G=cQ(U);if(U>0)H=0.00379058511492914*U**2+0.608983189401032*U+0.9155088574762233;else H=0.000009514440756550361*U**2+0.08693057439788597*U-21.928975842194614;let z=0.000000000002,O=15,E=0,w=1/0;while(E<=O){Y=uQ({J:H,C:$,h:X},q);let M=Math.abs(Y[1]-G);if(M<w){if(M<=z)return Y;w=M}H=H-(Y[1]-G)*H/(2*Y[1]),E+=1}return uQ({J:H,C:$,h:X},q)}function kz(Q,q){let X=fz(Q[1]);if(X===0)return[0,0,0];let $=oX(Q,tQ);return[i8($.h),$.C,X]}function eq(Q){if(Q[1]<0)Q=K6.fromBase(K6.toBase(Q));let q=Math.log(Math.max(1+tq[2]*Q[1]*tQ.flRoot,1))/tq[2],X=Q[0]*vz,$=q*Math.cos(X),U=q*Math.sin(X);return[Q[2],$,U]}function yz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=eq(K6.from(Q)),[Y,H,G]=eq(K6.from(q));return Math.sqrt((X-Y)**2+($-H)**2+(U-G)**2)}function gz(Q){let q=!Q?0:Math.floor(Math.log10(Math.abs(Q)));return Math.max(parseFloat(`1e${q-2}`),0.000001)}function I9(Q,{method:q=M8.gamut_mapping,space:X=void 0,deltaEMethod:$="",jnd:U=2,blackWhiteClamp:Y={}}={}){if(Q=o(Q),q6(arguments[1]))X=arguments[1];else if(!X)X=Q.space;if(X=m.get(X),p9(Q,X,{epsilon:0}))return Q;let H;if(q==="css")H=hz(Q,{space:X});else{if(q!=="clip"&&!p9(Q,X)){if(Object.prototype.hasOwnProperty.call(QX,q))({method:q,jnd:U,deltaEMethod:$,blackWhiteClamp:Y}=QX[q]);let G=mX;if($!==""){for(let O in _5)if("deltae"+$.toLowerCase()===O.toLowerCase()){G=_5[O];break}}let z=I9(N0(Q,X),{method:"clip",space:X});if(G(Q,z)>U){if(Object.keys(Y).length===3){let b=m.resolveCoord(Y.channel),k=w8(N0(Q,b.space),b.id);if(D9(k))k=0;if(k>=Y.max)return N0({space:"xyz-d65",coords:o0.D65},Q.space);else if(k<=Y.min)return N0({space:"xyz-d65",coords:[0,0,0]},Q.space)}let O=m.resolveCoord(q),E=O.space,w=O.id,M=N0(Q,E);M.coords.forEach((b,k)=>{if(D9(b))M.coords[k]=0});let F=(O.range||O.refRange)[0],A=gz(U),S=F,x=w8(M,w);while(x-S>A){let b=E5(M);if(b=I9(b,{space:X,method:"clip"}),G(M,b)-U<A)S=w8(M,w);else x=w8(M,w);$9(M,w,(S+x)/2)}H=N0(M,X)}else H=z}else H=N0(Q,X);if(q==="clip"||!p9(H,X,{epsilon:0})){let G=Object.values(X.coords).map((z)=>z.range||[]);H.coords=H.coords.map((z,O)=>{let[E,w]=G[O];if(E!==void 0)z=Math.max(E,z);if(w!==void 0)z=Math.min(z,w);return z})}}if(X!==Q.space)H=N0(H,Q.space);return Q.coords=H.coords,Q}function hz(Q,{space:q}={}){if(Q=o(Q),!q)q=Q.space;q=m.get(q);let U=m.get("oklch");if(q.isUnbounded)return N0(Q,q);let Y=N0(Q,U),H=Y.coords[0];if(H>=1){let F=N0(ZX.WHITE,q);return F.alpha=Q.alpha,N0(F,q)}if(H<=0){let F=N0(ZX.BLACK,q);return F.alpha=Q.alpha,N0(F,q)}if(p9(Y,q,{epsilon:0}))return N0(Y,q);function G(F){let A=N0(F,q),S=Object.values(q.coords);return A.coords=A.coords.map((x,b)=>{if("range"in S[b]){let[k,v]=S[b].range;return vX(k,x,v)}return x}),A}let z=0,O=Y.coords[1],E=!0,w=E5(Y),M=G(w),D=mQ(M,w);if(D<0.02)return M;while(O-z>0.0001){let F=(z+O)/2;if(w.coords[1]=F,E&&p9(w,q,{epsilon:0}))z=F;else if(M=G(w),D=mQ(M,w),D<0.02)if(0.02-D<0.0001)break;else E=!1,z=F;else O=F}return M}function N0(Q,q,{inGamut:X}={}){Q=o(Q),q=m.get(q);let $=q.from(Q),U={space:q,coords:$,alpha:Q.alpha};if(X)U=I9(U,X===!0?void 0:X);return U}function e5(Q,{precision:q=M8.precision,format:X="default",inGamut:$=!0,...U}={}){let Y;Q=o(Q);let H=X;X=Q.space.getFormat(X)??Q.space.getFormat("default")??m.DEFAULT_FORMAT;let G=Q.coords.slice();if($||=X.toGamut,$&&!p9(Q))G=I9(E5(Q),$===!0?void 0:$).coords;if(X.type==="custom")if(U.precision=q,X.serialize)Y=X.serialize(G,Q.alpha,U);else throw TypeError(`format ${H} can only be used to parse colors, not for serialization`);else{let z=X.name||"color";if(X.serializeCoords)G=X.serializeCoords(G,q);else if(q!==null)G=G.map((M)=>{return V1(M,{precision:q})});let O=[...G];if(z==="color"){let M=X.id||X.ids?.[0]||Q.space.id;O.unshift(M)}let E=Q.alpha;if(q!==null)E=V1(E,{precision:q});let w=Q.alpha>=1||X.noAlpha?"":`${X.commas?",":" /"} ${E}`;Y=`${z}(${O.join(X.commas?", ":" ")}${w})`}return Y}function lz(Q,{space:q=M8.display_space,...X}={}){let $=e5(Q,X);if(typeof CSS>"u"||CSS.supports("color",$)||!M8.display_space)$=new String($),$.color=Q;else{let U=Q;if(Q.coords.some(D9)||D9(Q.alpha)){if(!(iz??=CSS.supports("color","hsl(none 50% 50%)"))){if(U=E5(Q),U.coords=U.coords.map(S0),U.alpha=S0(U.alpha),$=e5(U,X),CSS.supports("color",$))return $=new String($),$.color=U,$}}U=N0(U,q),$=new String(e5(U,X)),$.color=U}return $}function sz(Q,q){return Q=o(Q),q=o(q),Q.space===q.space&&Q.alpha===q.alpha&&Q.coords.every((X,$)=>X===q.coords[$])}function A9(Q){return w8(Q,[p0,"y"])}function K$(Q,q){$9(Q,[p0,"y"],q)}function nz(Q){Object.defineProperty(Q.prototype,"luminance",{get(){return A9(this)},set(q){K$(this,q)}})}function oz(Q,q){Q=o(Q),q=o(q);let X=Math.max(A9(Q),0),$=Math.max(A9(q),0);if($>X)[X,$]=[$,X];return(X+0.05)/($+0.05)}function YX(Q){if(Q>=JX)return Q;return Q+(JX-Q)**ZO}function G5(Q){let q=Q<0?-1:1,X=Math.abs(Q);return q*Math.pow(X,2.4)}function JO(Q,q){q=o(q),Q=o(Q);let X,$,U,Y,H,G;q=N0(q,"srgb"),[Y,H,G]=q.coords;let z=G5(Y)*0.2126729+G5(H)*0.7151522+G5(G)*0.072175;Q=N0(Q,"srgb"),[Y,H,G]=Q.coords;let O=G5(Y)*0.2126729+G5(H)*0.7151522+G5(G)*0.072175,E=YX(z),w=YX(O),M=w>E;if(Math.abs(w-E)<qO)$=0;else if(M)X=w**az-E**tz,$=X*XO;else X=w**QO-E**ez,$=X*$O;if(Math.abs($)<KO)U=0;else if($>0)U=$-UX;else U=$+UX;return U*100}function UO(Q,q){Q=o(Q),q=o(q);let X=Math.max(A9(Q),0),$=Math.max(A9(q),0);if($>X)[X,$]=[$,X];let U=X+$;return U===0?0:(X-$)/U}function HO(Q,q){Q=o(Q),q=o(q);let X=Math.max(A9(Q),0),$=Math.max(A9(q),0);if($>X)[X,$]=[$,X];return $===0?YO:(X-$)/$}function WO(Q,q){Q=o(Q),q=o(q);let X=w8(Q,[N8,"l"]),$=w8(q,[N8,"l"]);return Math.abs(X-$)}function BO(Q,q){Q=o(Q),q=o(q);let X=w8(Q,[iQ,"l"]),$=w8(q,[iQ,"l"]),U=Math.abs(Math.pow(X,fQ)-Math.pow($,fQ)),Y=Math.pow(U,1/fQ)*Math.SQRT2-40;return Y<7.5?0:Y}function zO(Q,q,X={}){if(q6(X))X={algorithm:X};let{algorithm:$,...U}=X;if(!$){let Y=Object.keys(R1).map((H)=>H.replace(/^contrast/,"")).join(", ");throw TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${Y}`)}Q=o(Q),q=o(q);for(let Y in R1)if("contrast"+$.toLowerCase()===Y.toLowerCase())return R1[Y](Q,q,U);throw TypeError(`Unknown contrast algorithm: ${$}`)}function f1(Q){let[q,X,$]=X6(Q,p0),U=q+15*X+3*$;return[4*q/U,9*X/U]}function q$(Q){let[q,X,$]=X6(Q,p0),U=q+X+$;return[q/U,X/U]}function OO(Q){Object.defineProperty(Q.prototype,"uv",{get(){return f1(this)}}),Object.defineProperty(Q.prototype,"xy",{get(){return q$(this)}})}function t5(Q,q,X={}){if(q6(X))X={method:X};let{method:$=M8.deltaE,...U}=X;for(let Y in _5)if("deltae"+$.toLowerCase()===Y.toLowerCase())return _5[Y](Q,q,U);throw TypeError(`Unknown deltaE method: ${$}`)}function _O(Q,q=0.25){let $=[m.get("oklch","lch"),"l"];return $9(Q,$,(U)=>U*(1+q))}function wO(Q,q=0.25){let $=[m.get("oklch","lch"),"l"];return $9(Q,$,(U)=>U*(1-q))}function X$(Q,q,X=0.5,$={}){if([Q,q]=[o(Q),o(q)],L9(X)==="object")[X,$]=[0.5,X];return $6(Q,q,$)(X)}function $$(Q,q,X={}){let $;if(eQ(Q))[$,X]=[Q,q],[Q,q]=$.rangeArgs.colors;let{maxDeltaE:U,deltaEMethod:Y,steps:H=2,maxSteps:G=1000,...z}=X;if(!$)[Q,q]=[o(Q),o(q)],$=$6(Q,q,z);let O=t5(Q,q),E=U>0?Math.max(H,Math.ceil(O/U)+1):H,w=[];if(G!==void 0)E=Math.min(E,G);if(E===1)w=[{p:0.5,color:$(0.5)}];else{let M=1/(E-1);w=Array.from({length:E},(D,F)=>{let A=F*M;return{p:A,color:$(A)}})}if(U>0){let M=w.reduce((D,F,A)=>{if(A===0)return 0;let S=t5(F.color,w[A-1].color,Y);return Math.max(D,S)},0);while(M>U){M=0;for(let D=1;D<w.length&&w.length<G;D++){let F=w[D-1],A=w[D],S=(A.p+F.p)/2,x=$(S);M=Math.max(M,t5(x,F.color),t5(x,A.color)),w.splice(D,0,{p:S,color:$(S)}),D++}}}return w=w.map((M)=>M.color),w}function $6(Q,q,X={}){if(eQ(Q)){let[z,O]=[Q,q];return $6(...z.rangeArgs.colors,{...z.rangeArgs.options,...O})}let{space:$,outputSpace:U,progression:Y,premultiplied:H}=X;Q=o(Q),q=o(q),Q=E5(Q),q=E5(q);let G={colors:[Q,q],options:X};if($)$=m.get($);else $=m.registry[M8.interpolationSpace]||Q.space;if(U=U?m.get(U):$,Q=N0(Q,$),q=N0(q,$),Q=I9(Q),q=I9(q),$.coords.h&&$.coords.h.type==="angle"){let z=X.hue=X.hue||"shorter",O=[$,"h"],[E,w]=[w8(Q,O),w8(q,O)];if(isNaN(E)&&!isNaN(w))E=w;else if(isNaN(w)&&!isNaN(E))w=E;[E,w]=a2(z,[E,w]),$9(Q,O,E),$9(q,O,w)}if(H)Q.coords=Q.coords.map((z)=>z*Q.alpha),q.coords=q.coords.map((z)=>z*q.alpha);return Object.assign((z)=>{z=Y?Y(z):z;let O=Q.coords.map((M,D)=>{let F=q.coords[D];return Q6(M,F,z)}),E=Q6(Q.alpha,q.alpha,z),w={space:$,coords:O,alpha:E};if(H)w.coords=w.coords.map((M)=>M/E);if(U!==$)w=N0(w,U);return w},{rangeArgs:G})}function eQ(Q){return L9(Q)==="function"&&!!Q.rangeArgs}function MO(Q){Q.defineFunction("mix",X$,{returns:"color"}),Q.defineFunction("range",$6,{returns:"function<color>"}),Q.defineFunction("steps",$$,{returns:"array<color>"})}function B5(Q,q,X){let $=q/(Math.sin(X)-Q*Math.cos(X));return $<0?1/0:$}function T1(Q){let q=Math.pow(Q+16,3)/1560896,X=q>jO?q:Q/fO,$=X*(284517*zX-94839*bQ),U=X*(838422*bQ+769860*OX+731718*zX),Y=X*(632260*bQ-126452*OX),H=X*(284517*EX-94839*kQ),G=X*(838422*kQ+769860*_X+731718*EX),z=X*(632260*kQ-126452*_X),O=X*(284517*wX-94839*vQ),E=X*(838422*vQ+769860*NX+731718*wX),w=X*(632260*vQ-126452*NX);return{r0s:$/Y,r0i:U*Q/Y,r1s:$/(Y+126452),r1i:(U-769860)*Q/(Y+126452),g0s:H/z,g0i:G*Q/z,g1s:H/(z+126452),g1i:(G-769860)*Q/(z+126452),b0s:O/w,b0i:E*Q/w,b1s:O/(w+126452),b1i:(E-769860)*Q/(w+126452)}}function MX(Q,q){let X=q/360*Math.PI*2,$=B5(Q.r0s,Q.r0i,X),U=B5(Q.r1s,Q.r1i,X),Y=B5(Q.g0s,Q.g0i,X),H=B5(Q.g1s,Q.g1i,X),G=B5(Q.b0s,Q.b0i,X),z=B5(Q.b1s,Q.b1i,X);return Math.min($,U,Y,H,G,z)}function z5(Q,q){return Math.abs(q)/Math.sqrt(Math.pow(Q,2)+1)}function LX(Q){let q=z5(Q.r0s,Q.r0i),X=z5(Q.r1s,Q.r1i),$=z5(Q.g0s,Q.g0i),U=z5(Q.g1s,Q.g1i),Y=z5(Q.b0s,Q.b0i),H=z5(Q.b1s,Q.b1i);return Math.min(q,X,$,U,Y,H)}function b1({id:Q,toCone_M:q,fromCone_M:X}){B$[Q]=arguments[0]}function z$(Q,q,X="Bradford"){let $=B$[X],[U,Y,H]=M0($.toCone_M,Q),[G,z,O]=M0($.toCone_M,q),E=[[G/U,0,0],[0,z/Y,0],[0,0,O/H]],w=M0(E,$.toCone_M);return M0($.fromCone_M,w)}class K0{constructor(...Q){let q;if(Q.length===1)q=o(Q[0]);let X,$,U;if(q)X=q.space||q.spaceId,$=q.coords,U=q.alpha;else[X,$,U]=Q;Object.defineProperty(this,"space",{value:m.get(X),writable:!1,enumerable:!0,configurable:!0}),this.coords=$?$.slice():[0,0,0],this.alpha=U>1||U===void 0?1:U<0?0:U;for(let Y=0;Y<this.coords.length;Y++)if(this.coords[Y]==="NaN")this.coords[Y]=NaN;for(let Y in this.space.coords)Object.defineProperty(this,Y,{get:()=>this.get(Y),set:(H)=>this.set(Y,H)})}get spaceId(){return this.space.id}clone(){return new K0(this.space,this.coords,this.alpha)}toJSON(){return{spaceId:this.spaceId,coords:this.coords,alpha:this.alpha}}display(...Q){let q=lz(this,...Q);return q.color=new K0(q.color),q}static get(Q,...q){if(Q instanceof K0)return Q;return new K0(Q,...q)}static defineFunction(Q,q,X=q){let{instance:$=!0,returns:U}=X,Y=function(...H){let G=q(...H);if(U==="color")G=K0.get(G);else if(U==="function<color>"){let z=G;G=function(...O){let E=z(...O);return K0.get(E)},Object.assign(G,z)}else if(U==="array<color>")G=G.map((z)=>K0.get(z));return G};if(!(Q in K0))K0[Q]=Y;if($)K0.prototype[Q]=function(...H){return Y(this,...H)}}static defineFunctions(Q){for(let q in Q)K0.defineFunction(q,Q[q],Q[q])}static extend(Q){if(Q.register)Q.register(K0);else for(let q in Q)K0.defineFunction(q,Q[q])}}function lQ(Q,q){let X=Q.replace(/-/g,"_");Object.defineProperty(K0.prototype,X,{get(){let $=this.getAll(Q);if(typeof Proxy>"u")return $;return new Proxy($,{has:(U,Y)=>{try{return m.resolveCoord([q,Y]),!0}catch(H){}return Reflect.has(U,Y)},get:(U,Y,H)=>{if(Y&&typeof Y!=="symbol"&&!(Y in U)){let{index:G}=m.resolveCoord([q,Y]);if(G>=0)return U[G]}return Reflect.get(U,Y,H)},set:(U,Y,H,G)=>{if(Y&&typeof Y!=="symbol"&&!(Y in U)||Y>=0){let{index:z}=m.resolveCoord([q,Y]);if(z>=0)return U[z]=H,this.setAll(Q,U),!0}return Reflect.set(U,Y,H,G)}})},set($){this.setAll(Q,$)},configurable:!0,enumerable:!0})}var i2,l2,F9,M8,o0,s2,n2=0.000075,m,p0,a0,oQ,o2=0.008856451679035631,vq=0.20689655172413793,N1=903.2962962962963,xQ,N8,Z6,yq=6103515625,x1,gq,W5,t2,e2,Qz,Zz,O5,Kz=0.000075,Xz,mq,pq=203,aQ,M1=1.15,L1=0.66,dq=0.1593017578125,Jz=6.277394636015326,uq=0.8359375,cq=18.8515625,iq=18.6875,Uz=134.03437499999998,lq=0.007460772656268216,D1=-0.56,TQ=0.000000000016295499532821565,Yz,Hz,Wz,Gz,dX,pQ,uX=0.8359375,cX=18.8515625,iX=18.6875,sq=0.1593017578125,zz=78.84375,Oz=6.277394636015326,nq=0.012683313515655966,Ez,_z,wz,Nz,dQ,Fz,lX=0.42,rq,CQ,sX,Iz,Az,Pz,m9,Rz,oq,aq,Tz,Cz,jz=0.008856451679035631,aX=903.2962962962963,tQ,K6,vz,tq,_5,QX,ZX,mz,pz,j1,F1=1.09929682680944,KX=0.018053968510807,tX,dz,uz,eX,cz,b0,Q$,qX,XX,$X,w5,Z$,iz,rz,az=0.56,tz=0.57,ez=0.62,QO=0.65,JX=0.022,ZO=1.414,KO=0.1,qO=0.0005,XO=1.14,UX=0.027,$O=1.14,YO=50000,GO=0.008856451679035631,HX=0.20689655172413793,I1=903.2962962962963,jQ,iQ,fQ,R1,EO,NO,LO,J$,U$,DO,FO,IO,Y$,AO,PO,RO,H$,VO=0.001953125,SO=0.03125,xO,TO,W$,CO=0.008856451679035631,WX=903.2962962962963,GX,BX,G$,QZ,jO=0.008856451679035631,fO=903.2962962962963,zX,OX,bQ,EX,_X,kQ,wX,NX,vQ,bO,kO,DX=203,FX=0.1593017578125,vO=6.277394636015326,yO=78.84375,IX=0.012683313515655966,AX=0.8359375,PX=18.8515625,RX=18.6875,gO,VX=0.17883277,SX=0.28466892,xX=0.55991073,yQ=3.7743,hO,B$,mO,pO,O$,A1=0.0000152587890625,gQ=-0.35828683,P1,dO,TX;var ZZ=f0(()=>{i2={deg:1,grad:0.9,rad:180/Math.PI,turn:360};l2=Object.freeze({__proto__:null,bisectLeft:yX,clamp:vX,copySign:C1,interpolate:Q6,interpolateInv:bX,isNone:D9,isString:q6,last:fX,mapRange:sQ,multiplyMatrices:M0,parseCoordGrammar:kX,parseFunction:jX,serializeNumber:V1,skipNone:S0,spow:c8,toPrecision:CX,type:L9,zdiv:nQ});F9=new gX,M8={gamut_mapping:"css",precision:5,deltaE:"76",verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!=="test",warn:function(q){if(this.verbose)globalThis?.console?.warn?.(q)}},o0={D50:[0.9642956764295677,1,0.8251046025104602],D65:[0.9504559270516716,1,1.0890577507598784]};s2=new Set(["<number>","<percentage>","<angle>"]);m=class m{constructor(Q){if(this.id=Q.id,this.name=Q.name,this.base=Q.base?m.get(Q.base):null,this.aliases=Q.aliases,this.base)this.fromBase=Q.fromBase,this.toBase=Q.toBase;let q=Q.coords??this.base.coords;for(let $ in q)if(!("name"in q[$]))q[$].name=$;this.coords=q;let X=Q.white??this.base.white??"D65";this.white=hQ(X),this.formats=Q.formats??{};for(let $ in this.formats){let U=this.formats[$];U.type||="function",U.name||=$}if(!this.formats.color?.id)this.formats.color={...this.formats.color??{},id:Q.cssId||this.id};if(Q.gamutSpace)this.gamutSpace=Q.gamutSpace==="self"?this:m.get(Q.gamutSpace);else if(this.isPolar)this.gamutSpace=this.base;else this.gamutSpace=this;if(this.gamutSpace.isUnbounded)this.inGamut=($,U)=>{return!0};this.referred=Q.referred,Object.defineProperty(this,"path",{value:r2(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),F9.run("colorspace-init-end",this)}inGamut(Q,{epsilon:q=n2}={}){if(!this.equals(this.gamutSpace))return Q=this.to(this.gamutSpace,Q),this.gamutSpace.inGamut(Q,{epsilon:q});let X=Object.values(this.coords);return Q.every(($,U)=>{let Y=X[U];if(Y.type!=="angle"&&Y.range){if(Number.isNaN($))return!0;let[H,G]=Y.range;return(H===void 0||$>=H-q)&&(G===void 0||$<=G+q)}return!0})}get isUnbounded(){return Object.values(this.coords).every((Q)=>!("range"in Q))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let Q in this.coords)if(this.coords[Q].type==="angle")return!0;return!1}getFormat(Q){if(typeof Q==="object")return Q=kq(Q,this),Q;let q;if(Q==="default")q=Object.values(this.formats)[0];else q=this.formats[Q];if(q)return q=kq(q,this),q;return null}equals(Q){if(!Q)return!1;return this===Q||this.id===Q||this.id===Q.id}to(Q,q){if(arguments.length===1){let H=o(Q);[Q,q]=[H.space,H.coords]}if(Q=m.get(Q),this.equals(Q))return q;q=q.map((H)=>Number.isNaN(H)?0:H);let X=this.path,$=Q.path,U,Y;for(let H=0;H<X.length;H++)if(X[H].equals($[H]))U=X[H],Y=H;else break;if(!U)throw Error(`Cannot convert between color spaces ${this} and ${Q}: no connection space was found`);for(let H=X.length-1;H>Y;H--)q=X[H].toBase(q);for(let H=Y+1;H<$.length;H++)q=$[H].fromBase(q);return q}from(Q,q){if(arguments.length===1){let X=o(Q);[Q,q]=[X.space,X.coords]}return Q=m.get(Q),Q.to(this,q)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let Q=[];for(let q in this.coords){let X=this.coords[q],$=X.range||X.refRange;Q.push($?.min??0)}return Q}static registry={};static get all(){return[...new Set(Object.values(m.registry))]}static register(Q,q){if(arguments.length===1)q=arguments[0],Q=q.id;if(q=this.get(q),this.registry[Q]&&this.registry[Q]!==q)throw Error(`Duplicate color space registration: '${Q}'`);if(this.registry[Q]=q,arguments.length===1&&q.aliases)for(let X of q.aliases)this.register(X,q);return q}static get(Q,...q){if(!Q||Q instanceof m)return Q;if(L9(Q)==="string"){let $=m.registry[Q.toLowerCase()];if(!$)throw TypeError(`No color space found with id = "${Q}"`);return $}if(q.length)return m.get(...q);throw TypeError(`${Q} is not a valid color space`)}static resolveCoord(Q,q){let X=L9(Q),$,U;if(X==="string")if(Q.includes("."))[$,U]=Q.split(".");else[$,U]=[,Q];else if(Array.isArray(Q))[$,U]=Q;else $=Q.space,U=Q.coordId;if($=m.get($),!$)$=q;if(!$)throw TypeError(`Cannot resolve coordinate reference ${Q}: No color space specified and relative references are not allowed here`);if(X=L9(U),X==="number"||X==="string"&&U>=0){let G=Object.entries($.coords)[U];if(G)return{space:$,id:G[0],index:U,...G[1]}}$=m.get($);let Y=U.toLowerCase(),H=0;for(let G in $.coords){let z=$.coords[G];if(G.toLowerCase()===Y||z.name?.toLowerCase()===Y)return{space:$,id:G,index:H,...z};H++}throw TypeError(`No "${U}" coordinate found in ${$.name}. Its coordinates are: ${Object.keys($.coords).join(", ")}`)}static DEFAULT_FORMAT={type:"functions",name:"color"}};p0=new m({id:"xyz-d65",name:"XYZ D65",coords:{x:{name:"X"},y:{name:"Y"},z:{name:"Z"}},white:"D65",formats:{color:{ids:["xyz-d65","xyz"]}},aliases:["xyz"]});a0=class a0 extends m{constructor(Q){if(!Q.coords)Q.coords={r:{range:[0,1],name:"Red"},g:{range:[0,1],name:"Green"},b:{range:[0,1],name:"Blue"}};if(!Q.base)Q.base=p0;if(Q.toXYZ_M&&Q.fromXYZ_M)Q.toBase??=(q)=>{let X=M0(Q.toXYZ_M,q);if(this.white!==this.base.white)X=S1(this.white,this.base.white,X);return X},Q.fromBase??=(q)=>{return q=S1(this.base.white,this.white,q),M0(Q.fromXYZ_M,q)};Q.referred??="display";super(Q)}};rQ.returns="color";$9.returns="color";oQ=new m({id:"xyz-d50",name:"XYZ D50",white:"D50",base:p0,fromBase:(Q)=>S1(p0.white,"D50",Q),toBase:(Q)=>S1("D50",p0.white,Q)}),xQ=o0.D50,N8=new m({id:"lab",name:"Lab",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:xQ,base:oQ,fromBase(Q){let X=Q.map(($,U)=>$/xQ[U]).map(($)=>$>o2?Math.cbrt($):(N1*$+16)/116);return[116*X[1]-16,500*(X[0]-X[1]),200*(X[1]-X[2])]},toBase(Q){let q=[];return q[1]=(Q[0]+16)/116,q[0]=Q[1]/500+q[1],q[2]=q[1]-Q[2]/200,[q[0]>vq?Math.pow(q[0],3):(116*q[0]-16)/N1,Q[0]>8?Math.pow((Q[0]+16)/116,3):Q[0]/N1,q[2]>vq?Math.pow(q[2],3):(116*q[2]-16)/N1].map(($,U)=>$*xQ[U])},formats:{lab:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});Z6=new m({id:"lch",name:"LCH",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,150],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:N8,fromBase(Q){let[q,X,$]=Q,U,Y=0.02;if(Math.abs(X)<0.02&&Math.abs($)<0.02)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),i8(U)]},toBase(Q){let[q,X,$]=Q;if(X<0)X=0;if(isNaN($))$=0;return[q,X*Math.cos($*Math.PI/180),X*Math.sin($*Math.PI/180)]},formats:{lch:{coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),x1=Math.PI,gq=180/x1,W5=x1/180;t2=[[0.819022437996703,0.3619062600528904,-0.1288737815209879],[0.0329836539323885,0.9292868615863434,0.0361446663506424],[0.0481771893596242,0.2642395317527308,0.6335478284694309]],e2=[[1.2268798758459243,-0.5578149944602171,0.2813910456659647],[-0.0405757452148008,1.112286803280317,-0.0717110580655164],[-0.0763729366746601,-0.4214933324022432,1.5869240198367816]],Qz=[[0.210454268309314,0.7936177747023054,-0.0040720430116193],[1.9779985324311684,-2.42859224204858,0.450593709617411],[0.0259040424655478,0.7827717124575296,-0.8086757549230774]],Zz=[[1,0.3963377773761749,0.2158037573099136],[1,-0.1055613458156586,-0.0638541728258133],[1,-0.0894841775298119,-1.2914855480194092]],O5=new m({id:"oklab",name:"Oklab",coords:{l:{refRange:[0,1],name:"Lightness"},a:{refRange:[-0.4,0.4]},b:{refRange:[-0.4,0.4]}},white:"D65",base:p0,fromBase(Q){let X=M0(t2,Q).map(($)=>Math.cbrt($));return M0(Qz,X)},toBase(Q){let X=M0(Zz,Q).map(($)=>$**3);return M0(e2,X)},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});Xz=Math.PI,mq=Xz/180;aQ=new m({id:"xyz-abs-d65",cssId:"--xyz-abs-d65",name:"Absolute XYZ D65",coords:{x:{refRange:[0,9504.7],name:"Xa"},y:{refRange:[0,1e4],name:"Ya"},z:{refRange:[0,10888.3],name:"Za"}},base:p0,fromBase(Q){return Q.map((q)=>Math.max(q*pq,0))},toBase(Q){return Q.map((q)=>Math.max(q/pq,0))}}),Yz=[[0.41478972,0.579999,0.014648],[-0.20151,1.120649,0.0531008],[-0.0166008,0.2648,0.6684799]],Hz=[[1.9242264357876067,-1.0047923125953657,0.037651404030618],[0.35031676209499907,0.7264811939316552,-0.06538442294808501],[-0.09098281098284752,-0.3127282905230739,1.5227665613052603]],Wz=[[0.5,0.5,0],[3.524,-4.066708,0.542708],[0.199076,1.096799,-1.295875]],Gz=[[1,0.1386050432715393,0.05804731615611886],[0.9999999999999999,-0.1386050432715393,-0.05804731615611886],[0.9999999999999998,-0.09601924202631895,-0.8118918960560388]],dX=new m({id:"jzazbz",name:"Jzazbz",coords:{jz:{refRange:[0,1],name:"Jz"},az:{refRange:[-0.5,0.5]},bz:{refRange:[-0.5,0.5]}},base:aQ,fromBase(Q){let[q,X,$]=Q,U=M1*q-(M1-1)*$,Y=L1*X-(L1-1)*q,G=M0(Yz,[U,Y,$]).map(function(M){let D=uq+cq*(M/1e4)**dq,F=1+iq*(M/1e4)**dq;return(D/F)**Uz}),[z,O,E]=M0(Wz,G);return[(1+D1)*z/(1+D1*z)-TQ,O,E]},toBase(Q){let[q,X,$]=Q,U=(q+TQ)/(1+D1-D1*(q+TQ)),H=M0(Gz,[U,X,$]).map(function(M){let D=uq-M**lq,F=iq*M**lq-cq;return 1e4*(D/F)**Jz}),[G,z,O]=M0(Hz,H),E=(G+(M1-1)*O)/M1,w=(z+(L1-1)*E)/L1;return[E,w,O]},formats:{color:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),pQ=new m({id:"jzczhz",name:"JzCzHz",coords:{jz:{refRange:[0,1],name:"Jz"},cz:{refRange:[0,1],name:"Chroma"},hz:{refRange:[0,360],type:"angle",name:"Hue"}},base:dX,fromBase(Q){let[q,X,$]=Q,U,Y=0.0002;if(Math.abs(X)<0.0002&&Math.abs($)<0.0002)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),i8(U)]},toBase(Q){return[Q[0],Q[1]*Math.cos(Q[2]*Math.PI/180),Q[1]*Math.sin(Q[2]*Math.PI/180)]}});Ez=[[0.3592832590121217,0.6976051147779502,-0.035891593232029],[-0.1920808463704993,1.100476797037432,0.0753748658519118],[0.0070797844607479,0.0748396662186362,0.8433265453898765]],_z=[[0.5,0.5,0],[1.61376953125,-3.323486328125,1.709716796875],[4.378173828125,-4.24560546875,-0.132568359375]],wz=[[0.9999999999999998,0.0086090370379328,0.111029625003026],[0.9999999999999998,-0.0086090370379328,-0.1110296250030259],[0.9999999999999998,0.5600313357106791,-0.3206271749873188]],Nz=[[2.0701522183894223,-1.3263473389671563,0.2066510476294053],[0.3647385209748072,0.6805660249472273,-0.0453045459220347],[-0.0497472075358123,-0.0492609666966131,1.1880659249923042]],dQ=new m({id:"ictcp",name:"ICTCP",coords:{i:{refRange:[0,1],name:"I"},ct:{refRange:[-0.5,0.5],name:"CT"},cp:{refRange:[-0.5,0.5],name:"CP"}},base:aQ,fromBase(Q){let q=M0(Ez,Q);return Mz(q)},toBase(Q){let q=Lz(Q);return M0(Nz,q)}});Fz=o0.D65,rq=1/lX,CQ=2*Math.PI,sX=[[0.401288,0.650173,-0.051461],[-0.250268,1.204414,0.045854],[-0.002079,0.048952,0.953127]],Iz=[[1.8620678550872327,-1.0112546305316843,0.14918677544445175],[0.38752654323613717,0.6214474419314753,-0.008973985167612518],[-0.015841498849333856,-0.03412293802851557,1.0499644368778496]],Az=[[460,451,288],[460,-891,-261],[460,-220,-6300]],Pz={dark:[0.8,0.525,0.8],dim:[0.9,0.59,0.9],average:[1,0.69,1]},m9={h:[20.14,90,164.25,237.53,380.14],e:[0.8,0.7,1,1.2,0.8],H:[0,100,200,300,400]},Rz=180/Math.PI,oq=Math.PI/180;aq=rX(Fz,64/Math.PI*0.2,20,"average",!1);Tz=new m({id:"cam16-jmh",cssId:"--cam16-jmh",name:"CAM16-JMh",coords:{j:{refRange:[0,100],name:"J"},m:{refRange:[0,105],name:"Colorfulness"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:p0,fromBase(Q){let q=oX(Q,aq);return[q.J,q.M,q.h]},toBase(Q){return uQ({J:Q[0],M:Q[1],h:Q[2]},aq)}}),Cz=o0.D65;tQ=rX(Cz,200/Math.PI*cQ(50),cQ(50)*100,"average",!1),K6=new m({id:"hct",name:"HCT",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},c:{refRange:[0,145],name:"Colorfulness"},t:{refRange:[0,100],name:"Tone"}},base:p0,fromBase(Q){return kz(Q)},toBase(Q){return bz(Q,tQ)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),vz=Math.PI/180,tq=[1,0.007,0.0228];_5={deltaE76:qz,deltaECMC:$z,deltaE2000:mX,deltaEJz:Bz,deltaEITP:Dz,deltaEOK:mQ,deltaEHCT:yz};QX={hct:{method:"hct.c",jnd:2,deltaEMethod:"hct",blackWhiteClamp:{}},"hct-tonal":{method:"hct.c",jnd:0,deltaEMethod:"hct",blackWhiteClamp:{channel:"hct.t",min:0,max:100}}};I9.returns="color";ZX={WHITE:{space:O5,coords:[1,0,0]},BLACK:{space:O5,coords:[0,0,0]}};N0.returns="color";mz=[[0.6369580483012914,0.14461690358620832,0.1688809751641721],[0.2627002120112671,0.6779980715188708,0.05930171646986196],[0,0.028072693049087428,1.060985057710791]],pz=[[1.716651187971268,-0.355670783776392,-0.25336628137366],[-0.666684351832489,1.616481236634939,0.0157685458139111],[0.017639857445311,-0.042770613257809,0.942103121235474]],j1=new a0({id:"rec2020-linear",cssId:"--rec2020-linear",name:"Linear REC.2020",white:"D65",toXYZ_M:mz,fromXYZ_M:pz}),tX=new a0({id:"rec2020",name:"REC.2020",base:j1,toBase(Q){return Q.map(function(q){if(q<KX*4.5)return q/4.5;return Math.pow((q+F1-1)/F1,2.2222222222222223)})},fromBase(Q){return Q.map(function(q){if(q>=KX)return F1*Math.pow(q,0.45)-(F1-1);return 4.5*q})}}),dz=[[0.4865709486482162,0.26566769316909306,0.1982172852343625],[0.2289745640697488,0.6917385218365064,0.079286914093745],[0,0.04511338185890264,1.043944368900976]],uz=[[2.493496911941425,-0.9313836179191239,-0.40271078445071684],[-0.8294889695615747,1.7626640603183463,0.023624685841943577],[0.03584583024378447,-0.07617238926804182,0.9568845240076872]],eX=new a0({id:"p3-linear",cssId:"--display-p3-linear",name:"Linear P3",white:"D65",toXYZ_M:dz,fromXYZ_M:uz}),cz=[[0.41239079926595934,0.357584339383878,0.1804807884018343],[0.21263900587151027,0.715168678767756,0.07219231536073371],[0.01933081871559182,0.11919477979462598,0.9505321522496607]],b0=[[3.2409699419045226,-1.537383177570094,-0.4986107602930034],[-0.9692436362808796,1.8759675015077202,0.04155505740717559],[0.05563007969699366,-0.20397695888897652,1.0569715142428786]],Q$=new a0({id:"srgb-linear",name:"Linear sRGB",white:"D65",toXYZ_M:cz,fromXYZ_M:b0}),qX={aliceblue:[0.9411764705882353,0.9725490196078431,1],antiquewhite:[0.9803921568627451,0.9215686274509803,0.8431372549019608],aqua:[0,1,1],aquamarine:[0.4980392156862745,1,0.8313725490196079],azure:[0.9411764705882353,1,1],beige:[0.9607843137254902,0.9607843137254902,0.8627450980392157],bisque:[1,0.8941176470588236,0.7686274509803922],black:[0,0,0],blanchedalmond:[1,0.9215686274509803,0.803921568627451],blue:[0,0,1],blueviolet:[0.5411764705882353,0.16862745098039217,0.8862745098039215],brown:[0.6470588235294118,0.16470588235294117,0.16470588235294117],burlywood:[0.8705882352941177,0.7215686274509804,0.5294117647058824],cadetblue:[0.37254901960784315,0.6196078431372549,0.6274509803921569],chartreuse:[0.4980392156862745,1,0],chocolate:[0.8235294117647058,0.4117647058823529,0.11764705882352941],coral:[1,0.4980392156862745,0.3137254901960784],cornflowerblue:[0.39215686274509803,0.5843137254901961,0.9294117647058824],cornsilk:[1,0.9725490196078431,0.8627450980392157],crimson:[0.8627450980392157,0.0784313725490196,0.23529411764705882],cyan:[0,1,1],darkblue:[0,0,0.5450980392156862],darkcyan:[0,0.5450980392156862,0.5450980392156862],darkgoldenrod:[0.7215686274509804,0.5254901960784314,0.043137254901960784],darkgray:[0.6627450980392157,0.6627450980392157,0.6627450980392157],darkgreen:[0,0.39215686274509803,0],darkgrey:[0.6627450980392157,0.6627450980392157,0.6627450980392157],darkkhaki:[0.7411764705882353,0.7176470588235294,0.4196078431372549],darkmagenta:[0.5450980392156862,0,0.5450980392156862],darkolivegreen:[0.3333333333333333,0.4196078431372549,0.1843137254901961],darkorange:[1,0.5490196078431373,0],darkorchid:[0.6,0.19607843137254902,0.8],darkred:[0.5450980392156862,0,0],darksalmon:[0.9137254901960784,0.5882352941176471,0.47843137254901963],darkseagreen:[0.5607843137254902,0.7372549019607844,0.5607843137254902],darkslateblue:[0.2823529411764706,0.23921568627450981,0.5450980392156862],darkslategray:[0.1843137254901961,0.30980392156862746,0.30980392156862746],darkslategrey:[0.1843137254901961,0.30980392156862746,0.30980392156862746],darkturquoise:[0,0.807843137254902,0.8196078431372549],darkviolet:[0.5803921568627451,0,0.8274509803921568],deeppink:[1,0.0784313725490196,0.5764705882352941],deepskyblue:[0,0.7490196078431373,1],dimgray:[0.4117647058823529,0.4117647058823529,0.4117647058823529],dimgrey:[0.4117647058823529,0.4117647058823529,0.4117647058823529],dodgerblue:[0.11764705882352941,0.5647058823529412,1],firebrick:[0.6980392156862745,0.13333333333333333,0.13333333333333333],floralwhite:[1,0.9803921568627451,0.9411764705882353],forestgreen:[0.13333333333333333,0.5450980392156862,0.13333333333333333],fuchsia:[1,0,1],gainsboro:[0.8627450980392157,0.8627450980392157,0.8627450980392157],ghostwhite:[0.9725490196078431,0.9725490196078431,1],gold:[1,0.8431372549019608,0],goldenrod:[0.8549019607843137,0.6470588235294118,0.12549019607843137],gray:[0.5019607843137255,0.5019607843137255,0.5019607843137255],green:[0,0.5019607843137255,0],greenyellow:[0.6784313725490196,1,0.1843137254901961],grey:[0.5019607843137255,0.5019607843137255,0.5019607843137255],honeydew:[0.9411764705882353,1,0.9411764705882353],hotpink:[1,0.4117647058823529,0.7058823529411765],indianred:[0.803921568627451,0.3607843137254902,0.3607843137254902],indigo:[0.29411764705882354,0,0.5098039215686274],ivory:[1,1,0.9411764705882353],khaki:[0.9411764705882353,0.9019607843137255,0.5490196078431373],lavender:[0.9019607843137255,0.9019607843137255,0.9803921568627451],lavenderblush:[1,0.9411764705882353,0.9607843137254902],lawngreen:[0.48627450980392156,0.9882352941176471,0],lemonchiffon:[1,0.9803921568627451,0.803921568627451],lightblue:[0.6784313725490196,0.8470588235294118,0.9019607843137255],lightcoral:[0.9411764705882353,0.5019607843137255,0.5019607843137255],lightcyan:[0.8784313725490196,1,1],lightgoldenrodyellow:[0.9803921568627451,0.9803921568627451,0.8235294117647058],lightgray:[0.8274509803921568,0.8274509803921568,0.8274509803921568],lightgreen:[0.5647058823529412,0.9333333333333333,0.5647058823529412],lightgrey:[0.8274509803921568,0.8274509803921568,0.8274509803921568],lightpink:[1,0.7137254901960784,0.7568627450980392],lightsalmon:[1,0.6274509803921569,0.47843137254901963],lightseagreen:[0.12549019607843137,0.6980392156862745,0.6666666666666666],lightskyblue:[0.5294117647058824,0.807843137254902,0.9803921568627451],lightslategray:[0.4666666666666667,0.5333333333333333,0.6],lightslategrey:[0.4666666666666667,0.5333333333333333,0.6],lightsteelblue:[0.6901960784313725,0.7686274509803922,0.8705882352941177],lightyellow:[1,1,0.8784313725490196],lime:[0,1,0],limegreen:[0.19607843137254902,0.803921568627451,0.19607843137254902],linen:[0.9803921568627451,0.9411764705882353,0.9019607843137255],magenta:[1,0,1],maroon:[0.5019607843137255,0,0],mediumaquamarine:[0.4,0.803921568627451,0.6666666666666666],mediumblue:[0,0,0.803921568627451],mediumorchid:[0.7294117647058823,0.3333333333333333,0.8274509803921568],mediumpurple:[0.5764705882352941,0.4392156862745098,0.8588235294117647],mediumseagreen:[0.23529411764705882,0.7019607843137254,0.44313725490196076],mediumslateblue:[0.4823529411764706,0.40784313725490196,0.9333333333333333],mediumspringgreen:[0,0.9803921568627451,0.6039215686274509],mediumturquoise:[0.2823529411764706,0.8196078431372549,0.8],mediumvioletred:[0.7803921568627451,0.08235294117647059,0.5215686274509804],midnightblue:[0.09803921568627451,0.09803921568627451,0.4392156862745098],mintcream:[0.9607843137254902,1,0.9803921568627451],mistyrose:[1,0.8941176470588236,0.8823529411764706],moccasin:[1,0.8941176470588236,0.7098039215686275],navajowhite:[1,0.8705882352941177,0.6784313725490196],navy:[0,0,0.5019607843137255],oldlace:[0.9921568627450981,0.9607843137254902,0.9019607843137255],olive:[0.5019607843137255,0.5019607843137255,0],olivedrab:[0.4196078431372549,0.5568627450980392,0.13725490196078433],orange:[1,0.6470588235294118,0],orangered:[1,0.27058823529411763,0],orchid:[0.8549019607843137,0.4392156862745098,0.8392156862745098],palegoldenrod:[0.9333333333333333,0.9098039215686274,0.6666666666666666],palegreen:[0.596078431372549,0.984313725490196,0.596078431372549],paleturquoise:[0.6862745098039216,0.9333333333333333,0.9333333333333333],palevioletred:[0.8588235294117647,0.4392156862745098,0.5764705882352941],papayawhip:[1,0.9372549019607843,0.8352941176470589],peachpuff:[1,0.8549019607843137,0.7254901960784313],peru:[0.803921568627451,0.5215686274509804,0.24705882352941178],pink:[1,0.7529411764705882,0.796078431372549],plum:[0.8666666666666667,0.6274509803921569,0.8666666666666667],powderblue:[0.6901960784313725,0.8784313725490196,0.9019607843137255],purple:[0.5019607843137255,0,0.5019607843137255],rebeccapurple:[0.4,0.2,0.6],red:[1,0,0],rosybrown:[0.7372549019607844,0.5607843137254902,0.5607843137254902],royalblue:[0.2549019607843137,0.4117647058823529,0.8823529411764706],saddlebrown:[0.5450980392156862,0.27058823529411763,0.07450980392156863],salmon:[0.9803921568627451,0.5019607843137255,0.4470588235294118],sandybrown:[0.9568627450980393,0.6431372549019608,0.3764705882352941],seagreen:[0.1803921568627451,0.5450980392156862,0.3411764705882353],seashell:[1,0.9607843137254902,0.9333333333333333],sienna:[0.6274509803921569,0.3215686274509804,0.17647058823529413],silver:[0.7529411764705882,0.7529411764705882,0.7529411764705882],skyblue:[0.5294117647058824,0.807843137254902,0.9215686274509803],slateblue:[0.41568627450980394,0.35294117647058826,0.803921568627451],slategray:[0.4392156862745098,0.5019607843137255,0.5647058823529412],slategrey:[0.4392156862745098,0.5019607843137255,0.5647058823529412],snow:[1,0.9803921568627451,0.9803921568627451],springgreen:[0,1,0.4980392156862745],steelblue:[0.27450980392156865,0.5098039215686274,0.7058823529411765],tan:[0.8235294117647058,0.7058823529411765,0.5490196078431373],teal:[0,0.5019607843137255,0.5019607843137255],thistle:[0.8470588235294118,0.7490196078431373,0.8470588235294118],tomato:[1,0.38823529411764707,0.2784313725490196],turquoise:[0.25098039215686274,0.8784313725490196,0.8156862745098039],violet:[0.9333333333333333,0.5098039215686274,0.9333333333333333],wheat:[0.9607843137254902,0.8705882352941177,0.7019607843137254],white:[1,1,1],whitesmoke:[0.9607843137254902,0.9607843137254902,0.9607843137254902],yellow:[1,1,0],yellowgreen:[0.6039215686274509,0.803921568627451,0.19607843137254902]},XX=Array(3).fill("<percentage> | <number>[0, 255]"),$X=Array(3).fill("<number>[0, 255]"),w5=new a0({id:"srgb",name:"sRGB",base:Q$,fromBase:(Q)=>{return Q.map((q)=>{let X=q<0?-1:1,$=q*X;if($>0.0031308)return X*(1.055*$**0.4166666666666667-0.055);return 12.92*q})},toBase:(Q)=>{return Q.map((q)=>{let X=q<0?-1:1,$=q*X;if($<=0.04045)return q/12.92;return X*(($+0.055)/1.055)**2.4})},formats:{rgb:{coords:XX},rgb_number:{name:"rgb",commas:!0,coords:$X,noAlpha:!0},color:{},rgba:{coords:XX,commas:!0,lastAlpha:!0},rgba_number:{name:"rgba",commas:!0,coords:$X},hex:{type:"custom",toGamut:!0,test:(Q)=>/^#([a-f0-9]{3,4}){1,2}$/i.test(Q),parse(Q){if(Q.length<=5)Q=Q.replace(/[a-f0-9]/gi,"$&$&");let q=[];return Q.replace(/[a-f0-9]{2}/gi,(X)=>{q.push(parseInt(X,16)/255)}),{spaceId:"srgb",coords:q.slice(0,3),alpha:q.slice(3)[0]}},serialize:(Q,q,{collapse:X=!0}={})=>{if(q<1)Q.push(q);Q=Q.map((Y)=>Math.round(Y*255));let $=X&&Q.every((Y)=>Y%17===0);return"#"+Q.map((Y)=>{if($)return(Y/17).toString(16);return Y.toString(16).padStart(2,"0")}).join("")}},keyword:{type:"custom",test:(Q)=>/^[a-z]+$/i.test(Q),parse(Q){Q=Q.toLowerCase();let q={spaceId:"srgb",coords:null,alpha:1};if(Q==="transparent")q.coords=qX.black,q.alpha=0;else q.coords=qX[Q];if(q.coords)return q}}}}),Z$=new a0({id:"p3",cssId:"display-p3",name:"P3",base:eX,fromBase:w5.fromBase,toBase:w5.toBase});M8.display_space=w5;if(typeof CSS<"u"&&CSS.supports)for(let Q of[N8,tX,Z$]){let q=Q.getMinCoords(),$=e5({space:Q,coords:q,alpha:1});if(CSS.supports("color",$)){M8.display_space=Q;break}}rz=Object.freeze({__proto__:null,getLuminance:A9,register:nz,setLuminance:K$});jQ=o0.D65,iQ=new m({id:"lab-d65",name:"Lab D65",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:jQ,base:p0,fromBase(Q){let X=Q.map(($,U)=>$/jQ[U]).map(($)=>$>GO?Math.cbrt($):(I1*$+16)/116);return[116*X[1]-16,500*(X[0]-X[1]),200*(X[1]-X[2])]},toBase(Q){let q=[];return q[1]=(Q[0]+16)/116,q[0]=Q[1]/500+q[1],q[2]=q[1]-Q[2]/200,[q[0]>HX?Math.pow(q[0],3):(116*q[0]-16)/I1,Q[0]>8?Math.pow((Q[0]+16)/116,3):Q[0]/I1,q[2]>HX?Math.pow(q[2],3):(116*q[2]-16)/I1].map(($,U)=>$*jQ[U])},formats:{"lab-d65":{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),fQ=Math.pow(5,0.5)*0.5+0.5;R1=Object.freeze({__proto__:null,contrastAPCA:JO,contrastDeltaPhi:BO,contrastLstar:WO,contrastMichelson:UO,contrastWCAG21:oz,contrastWeber:HO});EO=Object.freeze({__proto__:null,register:OO,uv:f1,xy:q$});NO=Object.freeze({__proto__:null,darken:wO,lighten:_O});M8.interpolationSpace="lab";LO=Object.freeze({__proto__:null,isRange:eQ,mix:X$,range:$6,register:MO,steps:$$}),J$=new m({id:"hsl",name:"HSL",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:w5,fromBase:(Q)=>{let q=Math.max(...Q),X=Math.min(...Q),[$,U,Y]=Q,[H,G,z]=[NaN,0,(X+q)/2],O=q-X;if(O!==0){switch(G=z===0||z===1?0:(q-z)/Math.min(z,1-z),q){case $:H=(U-Y)/O+(U<Y?6:0);break;case U:H=(Y-$)/O+2;break;case Y:H=($-U)/O+4}H=H*60}if(G<0)H+=180,G=Math.abs(G);if(H>=360)H-=360;return[H,G*100,z*100]},toBase:(Q)=>{let[q,X,$]=Q;if(q=q%360,q<0)q+=360;X/=100,$/=100;function U(Y){let H=(Y+q/30)%12,G=X*Math.min($,1-$);return $-G*Math.max(-1,Math.min(H-3,9-H,1))}return[U(0),U(8),U(4)]},formats:{hsl:{coords:["<number> | <angle>","<percentage>","<percentage>"]},hsla:{coords:["<number> | <angle>","<percentage>","<percentage>"],commas:!0,lastAlpha:!0}}}),U$=new m({id:"hsv",name:"HSV",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},v:{range:[0,100],name:"Value"}},base:J$,fromBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=$+X*Math.min($,1-$);return[q,U===0?0:200*(1-$/U),100*U]},toBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=$*(1-X/2);return[q,U===0||U===1?0:($-U)/Math.min(U,1-U)*100,U*100]},formats:{color:{id:"--hsv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),DO=new m({id:"hwb",name:"HWB",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},w:{range:[0,100],name:"Whiteness"},b:{range:[0,100],name:"Blackness"}},base:U$,fromBase(Q){let[q,X,$]=Q;return[q,$*(100-X)/100,100-$]},toBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=X+$;if(U>=1){let G=X/U;return[q,0,G*100]}let Y=1-$,H=Y===0?0:1-X/Y;return[q,H*100,Y*100]},formats:{hwb:{coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),FO=[[0.5766690429101305,0.1855582379065463,0.1882286462349947],[0.29734497525053605,0.6273635662554661,0.07529145849399788],[0.02703136138641234,0.07068885253582723,0.9913375368376388]],IO=[[2.0415879038107465,-0.5650069742788596,-0.34473135077832956],[-0.9692436362808795,1.8759675015077202,0.04155505740717557],[0.013444280632031142,-0.11836239223101838,1.0151749943912054]],Y$=new a0({id:"a98rgb-linear",cssId:"--a98-rgb-linear",name:"Linear Adobe® 98 RGB compatible",white:"D65",toXYZ_M:FO,fromXYZ_M:IO}),AO=new a0({id:"a98rgb",cssId:"a98-rgb",name:"Adobe® 98 RGB compatible",base:Y$,toBase:(Q)=>Q.map((q)=>Math.pow(Math.abs(q),2.19921875)*Math.sign(q)),fromBase:(Q)=>Q.map((q)=>Math.pow(Math.abs(q),0.4547069271758437)*Math.sign(q))}),PO=[[0.7977666449006423,0.13518129740053308,0.0313477341283922],[0.2880748288194013,0.711835234241873,0.00008993693872564],[0,0,0.8251046025104602]],RO=[[1.3457868816471583,-0.25557208737979464,-0.05110186497554526],[-0.5446307051249019,1.5082477428451468,0.02052744743642139],[0,0,1.2119675456389452]],H$=new a0({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:oQ,toXYZ_M:PO,fromXYZ_M:RO}),xO=new a0({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:H$,toBase(Q){return Q.map((q)=>q<SO?q/16:q**1.8)},fromBase(Q){return Q.map((q)=>q>=VO?q**0.5555555555555556:16*q)}}),TO=new m({id:"oklch",name:"Oklch",coords:{l:{refRange:[0,1],name:"Lightness"},c:{refRange:[0,0.4],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},white:"D65",base:O5,fromBase(Q){let[q,X,$]=Q,U,Y=0.0002;if(Math.abs(X)<0.0002&&Math.abs($)<0.0002)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),i8(U)]},toBase(Q){let[q,X,$]=Q,U,Y;if(isNaN($))U=0,Y=0;else U=X*Math.cos($*Math.PI/180),Y=X*Math.sin($*Math.PI/180);return[q,U,Y]},formats:{oklch:{coords:["<percentage> | <number>","<number> | <percentage>[0,1]","<number> | <angle>"]}}}),W$=o0.D65,[GX,BX]=f1({space:p0,coords:W$}),G$=new m({id:"luv",name:"Luv",coords:{l:{refRange:[0,100],name:"Lightness"},u:{refRange:[-215,215]},v:{refRange:[-215,215]}},white:W$,base:p0,fromBase(Q){let q=[S0(Q[0]),S0(Q[1]),S0(Q[2])],X=q[1],[$,U]=f1({space:p0,coords:q});if(!Number.isFinite($)||!Number.isFinite(U))return[0,0,0];let Y=X<=CO?WX*X:116*Math.cbrt(X)-16;return[Y,13*Y*($-GX),13*Y*(U-BX)]},toBase(Q){let[q,X,$]=Q;if(q===0||D9(q))return[0,0,0];X=S0(X),$=S0($);let U=X/(13*q)+GX,Y=$/(13*q)+BX,H=q<=8?q/WX:Math.pow((q+16)/116,3);return[H*(9*U/(4*Y)),H,H*((12-3*U-20*Y)/(4*Y))]},formats:{color:{id:"--luv",coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),QZ=new m({id:"lchuv",name:"LChuv",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,220],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:G$,fromBase(Q){let[q,X,$]=Q,U,Y=0.02;if(Math.abs(X)<0.02&&Math.abs($)<0.02)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),i8(U)]},toBase(Q){let[q,X,$]=Q;if(X<0)X=0;if(isNaN($))$=0;return[q,X*Math.cos($*Math.PI/180),X*Math.sin($*Math.PI/180)]},formats:{color:{id:"--lchuv",coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),zX=b0[0][0],OX=b0[0][1],bQ=b0[0][2],EX=b0[1][0],_X=b0[1][1],kQ=b0[1][2],wX=b0[2][0],NX=b0[2][1],vQ=b0[2][2];bO=new m({id:"hsluv",name:"HSLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:QZ,gamutSpace:w5,fromBase(Q){let[q,X,$]=[S0(Q[0]),S0(Q[1]),S0(Q[2])],U;if(q>99.9999999)U=0,q=100;else if(q<0.00000001)U=0,q=0;else{let Y=T1(q),H=MX(Y,$);U=X/H*100}return[$,U,q]},toBase(Q){let[q,X,$]=[S0(Q[0]),S0(Q[1]),S0(Q[2])],U;if($>99.9999999)$=100,U=0;else if($<0.00000001)$=0,U=0;else{let Y=T1($);U=MX(Y,q)/100*X}return[$,U,q]},formats:{color:{id:"--hsluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}});b0[0][0];b0[0][1];b0[0][2];b0[1][0];b0[1][1];b0[1][2];b0[2][0];b0[2][1];b0[2][2];kO=new m({id:"hpluv",name:"HPLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:QZ,gamutSpace:"self",fromBase(Q){let[q,X,$]=[S0(Q[0]),S0(Q[1]),S0(Q[2])],U;if(q>99.9999999)U=0,q=100;else if(q<0.00000001)U=0,q=0;else{let Y=T1(q),H=LX(Y);U=X/H*100}return[$,U,q]},toBase(Q){let[q,X,$]=[S0(Q[0]),S0(Q[1]),S0(Q[2])],U;if($>99.9999999)$=100,U=0;else if($<0.00000001)$=0,U=0;else{let Y=T1($);U=LX(Y)/100*X}return[$,U,q]},formats:{color:{id:"--hpluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),gO=new a0({id:"rec2100pq",cssId:"rec2100-pq",name:"REC.2100-PQ",base:j1,toBase(Q){return Q.map(function(q){return(Math.max(q**IX-AX,0)/(PX-RX*q**IX))**vO*1e4/DX})},fromBase(Q){return Q.map(function(q){let X=Math.max(q*DX/1e4,0),$=AX+PX*X**FX,U=1+RX*X**FX;return($/U)**yO})}}),hO=new a0({id:"rec2100hlg",cssId:"rec2100-hlg",name:"REC.2100-HLG",referred:"scene",base:j1,toBase(Q){return Q.map(function(q){if(q<=0.5)return q**2/3*yQ;return(Math.exp((q-xX)/VX)+SX)/12*yQ})},fromBase(Q){return Q.map(function(q){if(q/=yQ,q<=0.08333333333333333)return Math.sqrt(3*q);return VX*Math.log(12*q-SX)+xX})}}),B$={};F9.add("chromatic-adaptation-start",(Q)=>{if(Q.options.method)Q.M=z$(Q.W1,Q.W2,Q.options.method)});F9.add("chromatic-adaptation-end",(Q)=>{if(!Q.M)Q.M=z$(Q.W1,Q.W2,Q.options.method)});b1({id:"von Kries",toCone_M:[[0.40024,0.7076,-0.08081],[-0.2263,1.16532,0.0457],[0,0,0.91822]],fromCone_M:[[1.8599363874558397,-1.1293816185800916,0.21989740959619328],[0.3611914362417676,0.6388124632850422,-0.000006370596838649899],[0,0,1.0890636230968613]]});b1({id:"Bradford",toCone_M:[[0.8951,0.2664,-0.1614],[-0.7502,1.7135,0.0367],[0.0389,-0.0685,1.0296]],fromCone_M:[[0.9869929054667121,-0.14705425642099013,0.15996265166373122],[0.4323052697233945,0.5183602715367774,0.049291228212855594],[-0.00852866457517732,0.04004282165408486,0.96848669578755]]});b1({id:"CAT02",toCone_M:[[0.7328,0.4296,-0.1624],[-0.7036,1.6975,0.0061],[0.003,0.0136,0.9834]],fromCone_M:[[1.0961238208355142,-0.27886900021828726,0.18274517938277307],[0.4543690419753592,0.4735331543074117,0.07209780371722911],[-0.009627608738429355,-0.00569803121611342,1.0153256399545427]]});b1({id:"CAT16",toCone_M:[[0.401288,0.650173,-0.051461],[-0.250268,1.204414,0.045854],[-0.002079,0.048952,0.953127]],fromCone_M:[[1.862067855087233,-1.0112546305316845,0.14918677544445172],[0.3875265432361372,0.6214474419314753,-0.008973985167612521],[-0.01584149884933386,-0.03412293802851557,1.0499644368778496]]});Object.assign(o0,{A:[1.0985,1,0.35585],C:[0.98074,1,1.18232],D55:[0.95682,1,0.92149],D75:[0.94972,1,1.22638],E:[1,1,1],F2:[0.99186,1,0.67393],F7:[0.95041,1,1.08747],F11:[1.00962,1,0.6435]});o0.ACES=[0.9526460745698463,1,1.0088251843515859];mO=[[0.6624541811085053,0.13400420645643313,0.1561876870049078],[0.27222871678091454,0.6740817658111484,0.05368951740793705],[-0.005574649490394108,0.004060733528982826,1.0103391003129971]],pO=[[1.6410233796943257,-0.32480329418479,-0.23642469523761225],[-0.6636628587229829,1.6153315916573379,0.016756347685530137],[0.011721894328375376,-0.008284441996237409,0.9883948585390215]],O$=new a0({id:"acescg",cssId:"--acescg",name:"ACEScg",coords:{r:{range:[0,65504],name:"Red"},g:{range:[0,65504],name:"Green"},b:{range:[0,65504],name:"Blue"}},referred:"scene",white:o0.ACES,toXYZ_M:mO,fromXYZ_M:pO}),P1=(Math.log2(65504)+9.72)/17.52,dO=new a0({id:"acescc",cssId:"--acescc",name:"ACEScc",coords:{r:{range:[gQ,P1],name:"Red"},g:{range:[gQ,P1],name:"Green"},b:{range:[gQ,P1],name:"Blue"}},referred:"scene",base:O$,toBase(Q){return Q.map(function(X){if(X<=-0.3013698630136986)return(2**(X*17.52-9.72)-A1)*2;else if(X<P1)return 2**(X*17.52-9.72);else return 65504})},fromBase(Q){return Q.map(function(q){if(q<=0)return(Math.log2(A1)+9.72)/17.52;else if(q<A1)return(Math.log2(A1+q*0.5)+9.72)/17.52;else return(Math.log2(q)+9.72)/17.52})}}),TX=Object.freeze({__proto__:null,A98RGB:AO,A98RGB_Linear:Y$,ACEScc:dO,ACEScg:O$,CAM16_JMh:Tz,HCT:K6,HPLuv:kO,HSL:J$,HSLuv:bO,HSV:U$,HWB:DO,ICTCP:dQ,JzCzHz:pQ,Jzazbz:dX,LCH:Z6,LCHuv:QZ,Lab:N8,Lab_D65:iQ,Luv:G$,OKLCH:TO,OKLab:O5,P3:Z$,P3_Linear:eX,ProPhoto:xO,ProPhoto_Linear:H$,REC_2020:tX,REC_2020_Linear:j1,REC_2100_HLG:hO,REC_2100_PQ:gO,XYZ_ABS_D65:aQ,XYZ_D50:oQ,XYZ_D65:p0,sRGB:w5,sRGB_Linear:Q$});K0.defineFunctions({get:w8,getAll:X6,set:$9,setAll:rQ,to:N0,equals:sz,inGamut:p9,toGamut:I9,distance:pX,toString:e5});Object.assign(K0,{util:l2,hooks:F9,WHITES:o0,Space:m,spaces:m.registry,parse:hX,defaults:M8});for(let Q of Object.keys(TX))m.register(TX[Q]);for(let Q in m.registry)lQ(Q,m.registry[Q]);F9.add("colorspace-init-end",(Q)=>{lQ(Q.id,Q),Q.aliases?.forEach((q)=>{lQ(q,Q)})});K0.extend(_5);K0.extend({deltaE:t5});Object.assign(K0,{deltaEMethods:_5});K0.extend(NO);K0.extend({contrast:zO});K0.extend(EO);K0.extend(rz);K0.extend(LO);K0.extend(R1)});var E$=d2((J6,U6)=>{(function(){var Q,q="4.17.21",X=200,$="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",U="Expected a function",Y="Invalid `variable` option passed into `_.template`",H="__lodash_hash_undefined__",G=500,z="__lodash_placeholder__",O=1,E=2,w=4,M=1,D=2,F=1,A=2,S=4,x=8,b=16,k=32,v=64,g=128,u=256,p=512,q0=30,W0="...",X0=800,D0=16,d0=1,H8=2,T0=3,F0=1/0,H0=9007199254740991,W8=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,D8=NaN,u0=4294967295,T9=u0-1,P6=u0>>>1,$4=[["ary",g],["bind",F],["bindKey",A],["curry",x],["curryRight",b],["flip",p],["partial",k],["partialRight",v],["rearg",u]],H9="[object Arguments]",s9="[object Array]",n9="[object AsyncFunction]",T5="[object Boolean]",C5="[object Date]",QU="[object DOMException]",R6="[object Error]",V6="[object Function]",QK="[object GeneratorFunction]",f8="[object Map]",j5="[object Number]",ZU="[object Null]",r8="[object Object]",ZK="[object Promise]",KU="[object Proxy]",f5="[object RegExp]",b8="[object Set]",b5="[object String]",S6="[object Symbol]",qU="[object Undefined]",k5="[object WeakMap]",XU="[object WeakSet]",v5="[object ArrayBuffer]",r9="[object DataView]",J4="[object Float32Array]",U4="[object Float64Array]",Y4="[object Int8Array]",H4="[object Int16Array]",W4="[object Int32Array]",G4="[object Uint8Array]",B4="[object Uint8ClampedArray]",z4="[object Uint16Array]",O4="[object Uint32Array]",$U=/\b__p \+= '';/g,JU=/\b(__p \+=) '' \+/g,UU=/(__e\(.*?\)|\b__t\)) \+\n'';/g,KK=/&(?:amp|lt|gt|quot|#39);/g,qK=/[&<>"']/g,YU=RegExp(KK.source),HU=RegExp(qK.source),WU=/<%-([\s\S]+?)%>/g,GU=/<%([\s\S]+?)%>/g,XK=/<%=([\s\S]+?)%>/g,BU=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zU=/^\w*$/,OU=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,E4=/[\\^$.*+?()[\]{}|]/g,EU=RegExp(E4.source),_4=/^\s+/,_U=/\s/,wU=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,NU=/\{\n\/\* \[wrapped with (.+)\] \*/,MU=/,? & /,LU=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,DU=/[()=,{}\[\]\/\s]/,FU=/\\(\\)?/g,IU=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,$K=/\w*$/,AU=/^[-+]0x[0-9a-f]+$/i,PU=/^0b[01]+$/i,RU=/^\[object .+?Constructor\]$/,VU=/^0o[0-7]+$/i,SU=/^(?:0|[1-9]\d*)$/,xU=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,x6=/($^)/,TU=/['\n\r\u2028\u2029\\]/g,T6="\\ud800-\\udfff",CU="\\u0300-\\u036f",jU="\\ufe20-\\ufe2f",fU="\\u20d0-\\u20ff",JK=CU+jU+fU,UK="\\u2700-\\u27bf",YK="a-z\\xdf-\\xf6\\xf8-\\xff",bU="\\xac\\xb1\\xd7\\xf7",kU="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",vU="\\u2000-\\u206f",yU=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",HK="A-Z\\xc0-\\xd6\\xd8-\\xde",WK="\\ufe0e\\ufe0f",GK=bU+kU+vU+yU,w4="['’]",gU="["+T6+"]",BK="["+GK+"]",C6="["+JK+"]",zK="\\d+",hU="["+UK+"]",OK="["+YK+"]",EK="[^"+T6+GK+zK+UK+YK+HK+"]",N4="\\ud83c[\\udffb-\\udfff]",mU="(?:"+C6+"|"+N4+")",_K="[^"+T6+"]",M4="(?:\\ud83c[\\udde6-\\uddff]){2}",L4="[\\ud800-\\udbff][\\udc00-\\udfff]",o9="["+HK+"]",wK="\\u200d",NK="(?:"+OK+"|"+EK+")",pU="(?:"+o9+"|"+EK+")",MK="(?:"+w4+"(?:d|ll|m|re|s|t|ve))?",LK="(?:"+w4+"(?:D|LL|M|RE|S|T|VE))?",DK=mU+"?",FK="["+WK+"]?",dU="(?:"+wK+"(?:"+[_K,M4,L4].join("|")+")"+FK+DK+")*",uU="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",cU="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",IK=FK+DK+dU,iU="(?:"+[hU,M4,L4].join("|")+")"+IK,lU="(?:"+[_K+C6+"?",C6,M4,L4,gU].join("|")+")",sU=RegExp(w4,"g"),nU=RegExp(C6,"g"),D4=RegExp(N4+"(?="+N4+")|"+lU+IK,"g"),rU=RegExp([o9+"?"+OK+"+"+MK+"(?="+[BK,o9,"$"].join("|")+")",pU+"+"+LK+"(?="+[BK,o9+NK,"$"].join("|")+")",o9+"?"+NK+"+"+MK,o9+"+"+LK,cU,uU,zK,iU].join("|"),"g"),oU=RegExp("["+wK+T6+JK+WK+"]"),aU=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tU=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eU=-1,z0={};z0[J4]=z0[U4]=z0[Y4]=z0[H4]=z0[W4]=z0[G4]=z0[B4]=z0[z4]=z0[O4]=!0,z0[H9]=z0[s9]=z0[v5]=z0[T5]=z0[r9]=z0[C5]=z0[R6]=z0[V6]=z0[f8]=z0[j5]=z0[r8]=z0[f5]=z0[b8]=z0[b5]=z0[k5]=!1;var B0={};B0[H9]=B0[s9]=B0[v5]=B0[r9]=B0[T5]=B0[C5]=B0[J4]=B0[U4]=B0[Y4]=B0[H4]=B0[W4]=B0[f8]=B0[j5]=B0[r8]=B0[f5]=B0[b8]=B0[b5]=B0[S6]=B0[G4]=B0[B4]=B0[z4]=B0[O4]=!0,B0[R6]=B0[V6]=B0[k5]=!1;var QY={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},ZY={"&":"&","<":"<",">":">",'"':""","'":"'"},KY={"&":"&","<":"<",">":">",""":'"',"'":"'"},qY={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},XY=parseFloat,$Y=parseInt,AK=typeof global=="object"&&global&&global.Object===Object&&global,JY=typeof self=="object"&&self&&self.Object===Object&&self,v0=AK||JY||Function("return this")(),F4=typeof J6=="object"&&J6&&!J6.nodeType&&J6,C9=F4&&typeof U6=="object"&&U6&&!U6.nodeType&&U6,PK=C9&&C9.exports===F4,I4=PK&&AK.process,F8=function(){try{var P=C9&&C9.require&&C9.require("util").types;if(P)return P;return I4&&I4.binding&&I4.binding("util")}catch(T){}}(),RK=F8&&F8.isArrayBuffer,VK=F8&&F8.isDate,SK=F8&&F8.isMap,xK=F8&&F8.isRegExp,TK=F8&&F8.isSet,CK=F8&&F8.isTypedArray;function G8(P,T,V){switch(V.length){case 0:return P.call(T);case 1:return P.call(T,V[0]);case 2:return P.call(T,V[0],V[1]);case 3:return P.call(T,V[0],V[1],V[2])}return P.apply(T,V)}function UY(P,T,V,h){var s=-1,$0=P==null?0:P.length;while(++s<$0){var C0=P[s];T(h,C0,V(C0),P)}return h}function I8(P,T){var V=-1,h=P==null?0:P.length;while(++V<h)if(T(P[V],V,P)===!1)break;return P}function YY(P,T){var V=P==null?0:P.length;while(V--)if(T(P[V],V,P)===!1)break;return P}function jK(P,T){var V=-1,h=P==null?0:P.length;while(++V<h)if(!T(P[V],V,P))return!1;return!0}function W9(P,T){var V=-1,h=P==null?0:P.length,s=0,$0=[];while(++V<h){var C0=P[V];if(T(C0,V,P))$0[s++]=C0}return $0}function j6(P,T){var V=P==null?0:P.length;return!!V&&a9(P,T,0)>-1}function A4(P,T,V){var h=-1,s=P==null?0:P.length;while(++h<s)if(V(T,P[h]))return!0;return!1}function w0(P,T){var V=-1,h=P==null?0:P.length,s=Array(h);while(++V<h)s[V]=T(P[V],V,P);return s}function G9(P,T){var V=-1,h=T.length,s=P.length;while(++V<h)P[s+V]=T[V];return P}function P4(P,T,V,h){var s=-1,$0=P==null?0:P.length;if(h&&$0)V=P[++s];while(++s<$0)V=T(V,P[s],s,P);return V}function HY(P,T,V,h){var s=P==null?0:P.length;if(h&&s)V=P[--s];while(s--)V=T(V,P[s],s,P);return V}function R4(P,T){var V=-1,h=P==null?0:P.length;while(++V<h)if(T(P[V],V,P))return!0;return!1}var WY=V4("length");function GY(P){return P.split("")}function BY(P){return P.match(LU)||[]}function fK(P,T,V){var h;return V(P,function(s,$0,C0){if(T(s,$0,C0))return h=$0,!1}),h}function f6(P,T,V,h){var s=P.length,$0=V+(h?1:-1);while(h?$0--:++$0<s)if(T(P[$0],$0,P))return $0;return-1}function a9(P,T,V){return T===T?AY(P,T,V):f6(P,bK,V)}function zY(P,T,V,h){var s=V-1,$0=P.length;while(++s<$0)if(h(P[s],T))return s;return-1}function bK(P){return P!==P}function kK(P,T){var V=P==null?0:P.length;return V?x4(P,T)/V:D8}function V4(P){return function(T){return T==null?Q:T[P]}}function S4(P){return function(T){return P==null?Q:P[T]}}function vK(P,T,V,h,s){return s(P,function($0,C0,G0){V=h?(h=!1,$0):T(V,$0,C0,G0)}),V}function OY(P,T){var V=P.length;P.sort(T);while(V--)P[V]=P[V].value;return P}function x4(P,T){var V,h=-1,s=P.length;while(++h<s){var $0=T(P[h]);if($0!==Q)V=V===Q?$0:V+$0}return V}function T4(P,T){var V=-1,h=Array(P);while(++V<P)h[V]=T(V);return h}function EY(P,T){return w0(T,function(V){return[V,P[V]]})}function yK(P){return P?P.slice(0,pK(P)+1).replace(_4,""):P}function B8(P){return function(T){return P(T)}}function C4(P,T){return w0(T,function(V){return P[V]})}function y5(P,T){return P.has(T)}function gK(P,T){var V=-1,h=P.length;while(++V<h&&a9(T,P[V],0)>-1);return V}function hK(P,T){var V=P.length;while(V--&&a9(T,P[V],0)>-1);return V}function _Y(P,T){var V=P.length,h=0;while(V--)if(P[V]===T)++h;return h}var wY=S4(QY),NY=S4(ZY);function MY(P){return"\\"+qY[P]}function LY(P,T){return P==null?Q:P[T]}function t9(P){return oU.test(P)}function DY(P){return aU.test(P)}function FY(P){var T,V=[];while(!(T=P.next()).done)V.push(T.value);return V}function j4(P){var T=-1,V=Array(P.size);return P.forEach(function(h,s){V[++T]=[s,h]}),V}function mK(P,T){return function(V){return P(T(V))}}function B9(P,T){var V=-1,h=P.length,s=0,$0=[];while(++V<h){var C0=P[V];if(C0===T||C0===z)P[V]=z,$0[s++]=V}return $0}function b6(P){var T=-1,V=Array(P.size);return P.forEach(function(h){V[++T]=h}),V}function IY(P){var T=-1,V=Array(P.size);return P.forEach(function(h){V[++T]=[h,h]}),V}function AY(P,T,V){var h=V-1,s=P.length;while(++h<s)if(P[h]===T)return h;return-1}function PY(P,T,V){var h=V+1;while(h--)if(P[h]===T)return h;return h}function e9(P){return t9(P)?VY(P):WY(P)}function k8(P){return t9(P)?SY(P):GY(P)}function pK(P){var T=P.length;while(T--&&_U.test(P.charAt(T)));return T}var RY=S4(KY);function VY(P){var T=D4.lastIndex=0;while(D4.test(P))++T;return T}function SY(P){return P.match(D4)||[]}function xY(P){return P.match(rU)||[]}var TY=function P(T){T=T==null?v0:z9.defaults(v0.Object(),T,z9.pick(v0,tU));var{Array:V,Date:h,Error:s,Function:$0,Math:C0,Object:G0,RegExp:f4,String:CY,TypeError:A8}=T,k6=V.prototype,jY=$0.prototype,Q5=G0.prototype,v6=T["__core-js_shared__"],y6=jY.toString,Y0=Q5.hasOwnProperty,fY=0,dK=function(){var Z=/[^.]+$/.exec(v6&&v6.keys&&v6.keys.IE_PROTO||"");return Z?"Symbol(src)_1."+Z:""}(),g6=Q5.toString,bY=y6.call(G0),kY=v0._,vY=f4("^"+y6.call(Y0).replace(E4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),h6=PK?T.Buffer:Q,O9=T.Symbol,m6=T.Uint8Array,uK=h6?h6.allocUnsafe:Q,p6=mK(G0.getPrototypeOf,G0),cK=G0.create,iK=Q5.propertyIsEnumerable,d6=k6.splice,lK=O9?O9.isConcatSpreadable:Q,g5=O9?O9.iterator:Q,j9=O9?O9.toStringTag:Q,u6=function(){try{var Z=y9(G0,"defineProperty");return Z({},"",{}),Z}catch(K){}}(),yY=T.clearTimeout!==v0.clearTimeout&&T.clearTimeout,gY=h&&h.now!==v0.Date.now&&h.now,hY=T.setTimeout!==v0.setTimeout&&T.setTimeout,c6=C0.ceil,i6=C0.floor,b4=G0.getOwnPropertySymbols,mY=h6?h6.isBuffer:Q,sK=T.isFinite,pY=k6.join,dY=mK(G0.keys,G0),j0=C0.max,c0=C0.min,uY=h.now,cY=T.parseInt,nK=C0.random,iY=k6.reverse,k4=y9(T,"DataView"),h5=y9(T,"Map"),v4=y9(T,"Promise"),Z5=y9(T,"Set"),m5=y9(T,"WeakMap"),p5=y9(G0,"create"),l6=m5&&new m5,K5={},lY=g9(k4),sY=g9(h5),nY=g9(v4),rY=g9(Z5),oY=g9(m5),s6=O9?O9.prototype:Q,d5=s6?s6.valueOf:Q,rK=s6?s6.toString:Q;function _(Z){if(I0(Z)&&!n(Z)&&!(Z instanceof Q0)){if(Z instanceof P8)return Z;if(Y0.call(Z,"__wrapped__"))return o7(Z)}return new P8(Z)}var q5=function(){function Z(){}return function(K){if(!L0(K))return{};if(cK)return cK(K);Z.prototype=K;var J=new Z;return Z.prototype=Q,J}}();function n6(){}function P8(Z,K){this.__wrapped__=Z,this.__actions__=[],this.__chain__=!!K,this.__index__=0,this.__values__=Q}_.templateSettings={escape:WU,evaluate:GU,interpolate:XK,variable:"",imports:{_}},_.prototype=n6.prototype,_.prototype.constructor=_,P8.prototype=q5(n6.prototype),P8.prototype.constructor=P8;function Q0(Z){this.__wrapped__=Z,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u0,this.__views__=[]}function aY(){var Z=new Q0(this.__wrapped__);return Z.__actions__=Q8(this.__actions__),Z.__dir__=this.__dir__,Z.__filtered__=this.__filtered__,Z.__iteratees__=Q8(this.__iteratees__),Z.__takeCount__=this.__takeCount__,Z.__views__=Q8(this.__views__),Z}function tY(){if(this.__filtered__){var Z=new Q0(this);Z.__dir__=-1,Z.__filtered__=!0}else Z=this.clone(),Z.__dir__*=-1;return Z}function eY(){var Z=this.__wrapped__.value(),K=this.__dir__,J=n(Z),W=K<0,B=J?Z.length:0,N=G3(0,B,this.__views__),L=N.start,I=N.end,R=I-L,C=W?I:L-1,j=this.__iteratees__,f=j.length,y=0,d=c0(R,this.__takeCount__);if(!J||!W&&B==R&&d==R)return M7(Z,this.__actions__);var i=[];Q:while(R--&&y<d){C+=K;var a=-1,l=Z[C];while(++a<f){var e=j[a],Z0=e.iteratee,E8=e.type,r0=Z0(l);if(E8==H8)l=r0;else if(!r0)if(E8==d0)continue Q;else break Q}i[y++]=l}return i}Q0.prototype=q5(n6.prototype),Q0.prototype.constructor=Q0;function f9(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function QH(){this.__data__=p5?p5(null):{},this.size=0}function ZH(Z){var K=this.has(Z)&&delete this.__data__[Z];return this.size-=K?1:0,K}function KH(Z){var K=this.__data__;if(p5){var J=K[Z];return J===H?Q:J}return Y0.call(K,Z)?K[Z]:Q}function qH(Z){var K=this.__data__;return p5?K[Z]!==Q:Y0.call(K,Z)}function XH(Z,K){var J=this.__data__;return this.size+=this.has(Z)?0:1,J[Z]=p5&&K===Q?H:K,this}f9.prototype.clear=QH,f9.prototype.delete=ZH,f9.prototype.get=KH,f9.prototype.has=qH,f9.prototype.set=XH;function o8(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function $H(){this.__data__=[],this.size=0}function JH(Z){var K=this.__data__,J=r6(K,Z);if(J<0)return!1;var W=K.length-1;if(J==W)K.pop();else d6.call(K,J,1);return--this.size,!0}function UH(Z){var K=this.__data__,J=r6(K,Z);return J<0?Q:K[J][1]}function YH(Z){return r6(this.__data__,Z)>-1}function HH(Z,K){var J=this.__data__,W=r6(J,Z);if(W<0)++this.size,J.push([Z,K]);else J[W][1]=K;return this}o8.prototype.clear=$H,o8.prototype.delete=JH,o8.prototype.get=UH,o8.prototype.has=YH,o8.prototype.set=HH;function a8(Z){var K=-1,J=Z==null?0:Z.length;this.clear();while(++K<J){var W=Z[K];this.set(W[0],W[1])}}function WH(){this.size=0,this.__data__={hash:new f9,map:new(h5||o8),string:new f9}}function GH(Z){var K=U1(this,Z).delete(Z);return this.size-=K?1:0,K}function BH(Z){return U1(this,Z).get(Z)}function zH(Z){return U1(this,Z).has(Z)}function OH(Z,K){var J=U1(this,Z),W=J.size;return J.set(Z,K),this.size+=J.size==W?0:1,this}a8.prototype.clear=WH,a8.prototype.delete=GH,a8.prototype.get=BH,a8.prototype.has=zH,a8.prototype.set=OH;function b9(Z){var K=-1,J=Z==null?0:Z.length;this.__data__=new a8;while(++K<J)this.add(Z[K])}function EH(Z){return this.__data__.set(Z,H),this}function _H(Z){return this.__data__.has(Z)}b9.prototype.add=b9.prototype.push=EH,b9.prototype.has=_H;function v8(Z){var K=this.__data__=new o8(Z);this.size=K.size}function wH(){this.__data__=new o8,this.size=0}function NH(Z){var K=this.__data__,J=K.delete(Z);return this.size=K.size,J}function MH(Z){return this.__data__.get(Z)}function LH(Z){return this.__data__.has(Z)}function DH(Z,K){var J=this.__data__;if(J instanceof o8){var W=J.__data__;if(!h5||W.length<X-1)return W.push([Z,K]),this.size=++J.size,this;J=this.__data__=new a8(W)}return J.set(Z,K),this.size=J.size,this}v8.prototype.clear=wH,v8.prototype.delete=NH,v8.prototype.get=MH,v8.prototype.has=LH,v8.prototype.set=DH;function oK(Z,K){var J=n(Z),W=!J&&h9(Z),B=!J&&!W&&M9(Z),N=!J&&!W&&!B&&U5(Z),L=J||W||B||N,I=L?T4(Z.length,CY):[],R=I.length;for(var C in Z)if((K||Y0.call(Z,C))&&!(L&&(C=="length"||B&&(C=="offset"||C=="parent")||N&&(C=="buffer"||C=="byteLength"||C=="byteOffset")||Z9(C,R))))I.push(C);return I}function aK(Z){var K=Z.length;return K?Z[s4(0,K-1)]:Q}function FH(Z,K){return Y1(Q8(Z),k9(K,0,Z.length))}function IH(Z){return Y1(Q8(Z))}function y4(Z,K,J){if(J!==Q&&!y8(Z[K],J)||J===Q&&!(K in Z))t8(Z,K,J)}function u5(Z,K,J){var W=Z[K];if(!(Y0.call(Z,K)&&y8(W,J))||J===Q&&!(K in Z))t8(Z,K,J)}function r6(Z,K){var J=Z.length;while(J--)if(y8(Z[J][0],K))return J;return-1}function AH(Z,K,J,W){return E9(Z,function(B,N,L){K(W,B,J(B),L)}),W}function tK(Z,K){return Z&&d8(K,y0(K),Z)}function PH(Z,K){return Z&&d8(K,K8(K),Z)}function t8(Z,K,J){if(K=="__proto__"&&u6)u6(Z,K,{configurable:!0,enumerable:!0,value:J,writable:!0});else Z[K]=J}function g4(Z,K){var J=-1,W=K.length,B=V(W),N=Z==null;while(++J<W)B[J]=N?Q:NQ(Z,K[J]);return B}function k9(Z,K,J){if(Z===Z){if(J!==Q)Z=Z<=J?Z:J;if(K!==Q)Z=Z>=K?Z:K}return Z}function R8(Z,K,J,W,B,N){var L,I=K&O,R=K&E,C=K&w;if(J)L=B?J(Z,W,B,N):J(Z);if(L!==Q)return L;if(!L0(Z))return Z;var j=n(Z);if(j){if(L=z3(Z),!I)return Q8(Z,L)}else{var f=i0(Z),y=f==V6||f==QK;if(M9(Z))return F7(Z,I);if(f==r8||f==H9||y&&!B){if(L=R||y?{}:p7(Z),!I)return R?K3(Z,PH(L,Z)):Z3(Z,tK(L,Z))}else{if(!B0[f])return B?Z:{};L=O3(Z,f,I)}}N||(N=new v8);var d=N.get(Z);if(d)return d;if(N.set(Z,L),_q(Z))Z.forEach(function(l){L.add(R8(l,K,J,l,Z,N))});else if(Oq(Z))Z.forEach(function(l,e){L.set(e,R8(l,K,J,e,Z,N))});var i=C?R?XQ:qQ:R?K8:y0,a=j?Q:i(Z);return I8(a||Z,function(l,e){if(a)e=l,l=Z[e];u5(L,e,R8(l,K,J,e,Z,N))}),L}function RH(Z){var K=y0(Z);return function(J){return eK(J,Z,K)}}function eK(Z,K,J){var W=J.length;if(Z==null)return!W;Z=G0(Z);while(W--){var B=J[W],N=K[B],L=Z[B];if(L===Q&&!(B in Z)||!N(L))return!1}return!0}function Q7(Z,K,J){if(typeof Z!="function")throw new A8(U);return o5(function(){Z.apply(Q,J)},K)}function c5(Z,K,J,W){var B=-1,N=j6,L=!0,I=Z.length,R=[],C=K.length;if(!I)return R;if(J)K=w0(K,B8(J));if(W)N=A4,L=!1;else if(K.length>=X)N=y5,L=!1,K=new b9(K);Q:while(++B<I){var j=Z[B],f=J==null?j:J(j);if(j=W||j!==0?j:0,L&&f===f){var y=C;while(y--)if(K[y]===f)continue Q;R.push(j)}else if(!N(K,f,W))R.push(j)}return R}var E9=V7(p8),Z7=V7(m4,!0);function VH(Z,K){var J=!0;return E9(Z,function(W,B,N){return J=!!K(W,B,N),J}),J}function o6(Z,K,J){var W=-1,B=Z.length;while(++W<B){var N=Z[W],L=K(N);if(L!=null&&(I===Q?L===L&&!O8(L):J(L,I)))var I=L,R=N}return R}function SH(Z,K,J,W){var B=Z.length;if(J=r(J),J<0)J=-J>B?0:B+J;if(W=W===Q||W>B?B:r(W),W<0)W+=B;W=J>W?0:Nq(W);while(J<W)Z[J++]=K;return Z}function K7(Z,K){var J=[];return E9(Z,function(W,B,N){if(K(W,B,N))J.push(W)}),J}function m0(Z,K,J,W,B){var N=-1,L=Z.length;J||(J=_3),B||(B=[]);while(++N<L){var I=Z[N];if(K>0&&J(I))if(K>1)m0(I,K-1,J,W,B);else G9(B,I);else if(!W)B[B.length]=I}return B}var h4=S7(),q7=S7(!0);function p8(Z,K){return Z&&h4(Z,K,y0)}function m4(Z,K){return Z&&q7(Z,K,y0)}function a6(Z,K){return W9(K,function(J){return K9(Z[J])})}function v9(Z,K){K=w9(K,Z);var J=0,W=K.length;while(Z!=null&&J<W)Z=Z[u8(K[J++])];return J&&J==W?Z:Q}function X7(Z,K,J){var W=K(Z);return n(Z)?W:G9(W,J(Z))}function s0(Z){if(Z==null)return Z===Q?qU:ZU;return j9&&j9 in G0(Z)?W3(Z):I3(Z)}function p4(Z,K){return Z>K}function xH(Z,K){return Z!=null&&Y0.call(Z,K)}function TH(Z,K){return Z!=null&&K in G0(Z)}function CH(Z,K,J){return Z>=c0(K,J)&&Z<j0(K,J)}function d4(Z,K,J){var W=J?A4:j6,B=Z[0].length,N=Z.length,L=N,I=V(N),R=1/0,C=[];while(L--){var j=Z[L];if(L&&K)j=w0(j,B8(K));R=c0(j.length,R),I[L]=!J&&(K||B>=120&&j.length>=120)?new b9(L&&j):Q}j=Z[0];var f=-1,y=I[0];Q:while(++f<B&&C.length<R){var d=j[f],i=K?K(d):d;if(d=J||d!==0?d:0,!(y?y5(y,i):W(C,i,J))){L=N;while(--L){var a=I[L];if(!(a?y5(a,i):W(Z[L],i,J)))continue Q}if(y)y.push(i);C.push(d)}}return C}function jH(Z,K,J,W){return p8(Z,function(B,N,L){K(W,J(B),N,L)}),W}function i5(Z,K,J){K=w9(K,Z),Z=i7(Z,K);var W=Z==null?Z:Z[u8(S8(K))];return W==null?Q:G8(W,Z,J)}function $7(Z){return I0(Z)&&s0(Z)==H9}function fH(Z){return I0(Z)&&s0(Z)==v5}function bH(Z){return I0(Z)&&s0(Z)==C5}function l5(Z,K,J,W,B){if(Z===K)return!0;if(Z==null||K==null||!I0(Z)&&!I0(K))return Z!==Z&&K!==K;return kH(Z,K,J,W,l5,B)}function kH(Z,K,J,W,B,N){var L=n(Z),I=n(K),R=L?s9:i0(Z),C=I?s9:i0(K);R=R==H9?r8:R,C=C==H9?r8:C;var j=R==r8,f=C==r8,y=R==C;if(y&&M9(Z)){if(!M9(K))return!1;L=!0,j=!1}if(y&&!j)return N||(N=new v8),L||U5(Z)?g7(Z,K,J,W,B,N):Y3(Z,K,R,J,W,B,N);if(!(J&M)){var d=j&&Y0.call(Z,"__wrapped__"),i=f&&Y0.call(K,"__wrapped__");if(d||i){var a=d?Z.value():Z,l=i?K.value():K;return N||(N=new v8),B(a,l,J,W,N)}}if(!y)return!1;return N||(N=new v8),H3(Z,K,J,W,B,N)}function vH(Z){return I0(Z)&&i0(Z)==f8}function u4(Z,K,J,W){var B=J.length,N=B,L=!W;if(Z==null)return!N;Z=G0(Z);while(B--){var I=J[B];if(L&&I[2]?I[1]!==Z[I[0]]:!(I[0]in Z))return!1}while(++B<N){I=J[B];var R=I[0],C=Z[R],j=I[1];if(L&&I[2]){if(C===Q&&!(R in Z))return!1}else{var f=new v8;if(W)var y=W(C,j,R,Z,K,f);if(!(y===Q?l5(j,C,M|D,W,f):y))return!1}}return!0}function J7(Z){if(!L0(Z)||N3(Z))return!1;var K=K9(Z)?vY:RU;return K.test(g9(Z))}function yH(Z){return I0(Z)&&s0(Z)==f5}function gH(Z){return I0(Z)&&i0(Z)==b8}function hH(Z){return I0(Z)&&O1(Z.length)&&!!z0[s0(Z)]}function U7(Z){if(typeof Z=="function")return Z;if(Z==null)return q8;if(typeof Z=="object")return n(Z)?W7(Z[0],Z[1]):H7(Z);return xq(Z)}function c4(Z){if(!r5(Z))return dY(Z);var K=[];for(var J in G0(Z))if(Y0.call(Z,J)&&J!="constructor")K.push(J);return K}function mH(Z){if(!L0(Z))return F3(Z);var K=r5(Z),J=[];for(var W in Z)if(!(W=="constructor"&&(K||!Y0.call(Z,W))))J.push(W);return J}function i4(Z,K){return Z<K}function Y7(Z,K){var J=-1,W=Z8(Z)?V(Z.length):[];return E9(Z,function(B,N,L){W[++J]=K(B,N,L)}),W}function H7(Z){var K=JQ(Z);if(K.length==1&&K[0][2])return u7(K[0][0],K[0][1]);return function(J){return J===Z||u4(J,Z,K)}}function W7(Z,K){if(YQ(Z)&&d7(K))return u7(u8(Z),K);return function(J){var W=NQ(J,Z);return W===Q&&W===K?MQ(J,Z):l5(K,W,M|D)}}function t6(Z,K,J,W,B){if(Z===K)return;h4(K,function(N,L){if(B||(B=new v8),L0(N))pH(Z,K,L,J,t6,W,B);else{var I=W?W(WQ(Z,L),N,L+"",Z,K,B):Q;if(I===Q)I=N;y4(Z,L,I)}},K8)}function pH(Z,K,J,W,B,N,L){var I=WQ(Z,J),R=WQ(K,J),C=L.get(R);if(C){y4(Z,J,C);return}var j=N?N(I,R,J+"",Z,K,L):Q,f=j===Q;if(f){var y=n(R),d=!y&&M9(R),i=!y&&!d&&U5(R);if(j=R,y||d||i)if(n(I))j=I;else if(A0(I))j=Q8(I);else if(d)f=!1,j=F7(R,!0);else if(i)f=!1,j=I7(R,!0);else j=[];else if(a5(R)||h9(R)){if(j=I,h9(I))j=Mq(I);else if(!L0(I)||K9(I))j=p7(R)}else f=!1}if(f)L.set(R,j),B(j,R,W,N,L),L.delete(R);y4(Z,J,j)}function G7(Z,K){var J=Z.length;if(!J)return;return K+=K<0?J:0,Z9(K,J)?Z[K]:Q}function B7(Z,K,J){if(K.length)K=w0(K,function(N){if(n(N))return function(L){return v9(L,N.length===1?N[0]:N)};return N});else K=[q8];var W=-1;K=w0(K,B8(c()));var B=Y7(Z,function(N,L,I){var R=w0(K,function(C){return C(N)});return{criteria:R,index:++W,value:N}});return OY(B,function(N,L){return Q3(N,L,J)})}function dH(Z,K){return z7(Z,K,function(J,W){return MQ(Z,W)})}function z7(Z,K,J){var W=-1,B=K.length,N={};while(++W<B){var L=K[W],I=v9(Z,L);if(J(I,L))s5(N,w9(L,Z),I)}return N}function uH(Z){return function(K){return v9(K,Z)}}function l4(Z,K,J,W){var B=W?zY:a9,N=-1,L=K.length,I=Z;if(Z===K)K=Q8(K);if(J)I=w0(Z,B8(J));while(++N<L){var R=0,C=K[N],j=J?J(C):C;while((R=B(I,j,R,W))>-1){if(I!==Z)d6.call(I,R,1);d6.call(Z,R,1)}}return Z}function O7(Z,K){var J=Z?K.length:0,W=J-1;while(J--){var B=K[J];if(J==W||B!==N){var N=B;if(Z9(B))d6.call(Z,B,1);else o4(Z,B)}}return Z}function s4(Z,K){return Z+i6(nK()*(K-Z+1))}function cH(Z,K,J,W){var B=-1,N=j0(c6((K-Z)/(J||1)),0),L=V(N);while(N--)L[W?N:++B]=Z,Z+=J;return L}function n4(Z,K){var J="";if(!Z||K<1||K>H0)return J;do{if(K%2)J+=Z;if(K=i6(K/2),K)Z+=Z}while(K);return J}function t(Z,K){return GQ(c7(Z,K,q8),Z+"")}function iH(Z){return aK(Y5(Z))}function lH(Z,K){var J=Y5(Z);return Y1(J,k9(K,0,J.length))}function s5(Z,K,J,W){if(!L0(Z))return Z;K=w9(K,Z);var B=-1,N=K.length,L=N-1,I=Z;while(I!=null&&++B<N){var R=u8(K[B]),C=J;if(R==="__proto__"||R==="constructor"||R==="prototype")return Z;if(B!=L){var j=I[R];if(C=W?W(j,R,I):Q,C===Q)C=L0(j)?j:Z9(K[B+1])?[]:{}}u5(I,R,C),I=I[R]}return Z}var E7=!l6?q8:function(Z,K){return l6.set(Z,K),Z},sH=!u6?q8:function(Z,K){return u6(Z,"toString",{configurable:!0,enumerable:!1,value:DQ(K),writable:!0})};function nH(Z){return Y1(Y5(Z))}function V8(Z,K,J){var W=-1,B=Z.length;if(K<0)K=-K>B?0:B+K;if(J=J>B?B:J,J<0)J+=B;B=K>J?0:J-K>>>0,K>>>=0;var N=V(B);while(++W<B)N[W]=Z[W+K];return N}function rH(Z,K){var J;return E9(Z,function(W,B,N){return J=K(W,B,N),!J}),!!J}function e6(Z,K,J){var W=0,B=Z==null?W:Z.length;if(typeof K=="number"&&K===K&&B<=P6){while(W<B){var N=W+B>>>1,L=Z[N];if(L!==null&&!O8(L)&&(J?L<=K:L<K))W=N+1;else B=N}return B}return r4(Z,K,q8,J)}function r4(Z,K,J,W){var B=0,N=Z==null?0:Z.length;if(N===0)return 0;K=J(K);var L=K!==K,I=K===null,R=O8(K),C=K===Q;while(B<N){var j=i6((B+N)/2),f=J(Z[j]),y=f!==Q,d=f===null,i=f===f,a=O8(f);if(L)var l=W||i;else if(C)l=i&&(W||y);else if(I)l=i&&y&&(W||!d);else if(R)l=i&&y&&!d&&(W||!a);else if(d||a)l=!1;else l=W?f<=K:f<K;if(l)B=j+1;else N=j}return c0(N,T9)}function _7(Z,K){var J=-1,W=Z.length,B=0,N=[];while(++J<W){var L=Z[J],I=K?K(L):L;if(!J||!y8(I,R)){var R=I;N[B++]=L===0?0:L}}return N}function w7(Z){if(typeof Z=="number")return Z;if(O8(Z))return D8;return+Z}function z8(Z){if(typeof Z=="string")return Z;if(n(Z))return w0(Z,z8)+"";if(O8(Z))return rK?rK.call(Z):"";var K=Z+"";return K=="0"&&1/Z==-F0?"-0":K}function _9(Z,K,J){var W=-1,B=j6,N=Z.length,L=!0,I=[],R=I;if(J)L=!1,B=A4;else if(N>=X){var C=K?null:J3(Z);if(C)return b6(C);L=!1,B=y5,R=new b9}else R=K?[]:I;Q:while(++W<N){var j=Z[W],f=K?K(j):j;if(j=J||j!==0?j:0,L&&f===f){var y=R.length;while(y--)if(R[y]===f)continue Q;if(K)R.push(f);I.push(j)}else if(!B(R,f,J)){if(R!==I)R.push(f);I.push(j)}}return I}function o4(Z,K){return K=w9(K,Z),Z=i7(Z,K),Z==null||delete Z[u8(S8(K))]}function N7(Z,K,J,W){return s5(Z,K,J(v9(Z,K)),W)}function Q1(Z,K,J,W){var B=Z.length,N=W?B:-1;while((W?N--:++N<B)&&K(Z[N],N,Z));return J?V8(Z,W?0:N,W?N+1:B):V8(Z,W?N+1:0,W?B:N)}function M7(Z,K){var J=Z;if(J instanceof Q0)J=J.value();return P4(K,function(W,B){return B.func.apply(B.thisArg,G9([W],B.args))},J)}function a4(Z,K,J){var W=Z.length;if(W<2)return W?_9(Z[0]):[];var B=-1,N=V(W);while(++B<W){var L=Z[B],I=-1;while(++I<W)if(I!=B)N[B]=c5(N[B]||L,Z[I],K,J)}return _9(m0(N,1),K,J)}function L7(Z,K,J){var W=-1,B=Z.length,N=K.length,L={};while(++W<B){var I=W<N?K[W]:Q;J(L,Z[W],I)}return L}function t4(Z){return A0(Z)?Z:[]}function e4(Z){return typeof Z=="function"?Z:q8}function w9(Z,K){if(n(Z))return Z;return YQ(Z,K)?[Z]:r7(J0(Z))}var oH=t;function N9(Z,K,J){var W=Z.length;return J=J===Q?W:J,!K&&J>=W?Z:V8(Z,K,J)}var D7=yY||function(Z){return v0.clearTimeout(Z)};function F7(Z,K){if(K)return Z.slice();var J=Z.length,W=uK?uK(J):new Z.constructor(J);return Z.copy(W),W}function QQ(Z){var K=new Z.constructor(Z.byteLength);return new m6(K).set(new m6(Z)),K}function aH(Z,K){var J=K?QQ(Z.buffer):Z.buffer;return new Z.constructor(J,Z.byteOffset,Z.byteLength)}function tH(Z){var K=new Z.constructor(Z.source,$K.exec(Z));return K.lastIndex=Z.lastIndex,K}function eH(Z){return d5?G0(d5.call(Z)):{}}function I7(Z,K){var J=K?QQ(Z.buffer):Z.buffer;return new Z.constructor(J,Z.byteOffset,Z.length)}function A7(Z,K){if(Z!==K){var J=Z!==Q,W=Z===null,B=Z===Z,N=O8(Z),L=K!==Q,I=K===null,R=K===K,C=O8(K);if(!I&&!C&&!N&&Z>K||N&&L&&R&&!I&&!C||W&&L&&R||!J&&R||!B)return 1;if(!W&&!N&&!C&&Z<K||C&&J&&B&&!W&&!N||I&&J&&B||!L&&B||!R)return-1}return 0}function Q3(Z,K,J){var W=-1,B=Z.criteria,N=K.criteria,L=B.length,I=J.length;while(++W<L){var R=A7(B[W],N[W]);if(R){if(W>=I)return R;var C=J[W];return R*(C=="desc"?-1:1)}}return Z.index-K.index}function P7(Z,K,J,W){var B=-1,N=Z.length,L=J.length,I=-1,R=K.length,C=j0(N-L,0),j=V(R+C),f=!W;while(++I<R)j[I]=K[I];while(++B<L)if(f||B<N)j[J[B]]=Z[B];while(C--)j[I++]=Z[B++];return j}function R7(Z,K,J,W){var B=-1,N=Z.length,L=-1,I=J.length,R=-1,C=K.length,j=j0(N-I,0),f=V(j+C),y=!W;while(++B<j)f[B]=Z[B];var d=B;while(++R<C)f[d+R]=K[R];while(++L<I)if(y||B<N)f[d+J[L]]=Z[B++];return f}function Q8(Z,K){var J=-1,W=Z.length;K||(K=V(W));while(++J<W)K[J]=Z[J];return K}function d8(Z,K,J,W){var B=!J;J||(J={});var N=-1,L=K.length;while(++N<L){var I=K[N],R=W?W(J[I],Z[I],I,J,Z):Q;if(R===Q)R=Z[I];if(B)t8(J,I,R);else u5(J,I,R)}return J}function Z3(Z,K){return d8(Z,UQ(Z),K)}function K3(Z,K){return d8(Z,h7(Z),K)}function Z1(Z,K){return function(J,W){var B=n(J)?UY:AH,N=K?K():{};return B(J,Z,c(W,2),N)}}function X5(Z){return t(function(K,J){var W=-1,B=J.length,N=B>1?J[B-1]:Q,L=B>2?J[2]:Q;if(N=Z.length>3&&typeof N=="function"?(B--,N):Q,L&&n0(J[0],J[1],L))N=B<3?Q:N,B=1;K=G0(K);while(++W<B){var I=J[W];if(I)Z(K,I,W,N)}return K})}function V7(Z,K){return function(J,W){if(J==null)return J;if(!Z8(J))return Z(J,W);var B=J.length,N=K?B:-1,L=G0(J);while(K?N--:++N<B)if(W(L[N],N,L)===!1)break;return J}}function S7(Z){return function(K,J,W){var B=-1,N=G0(K),L=W(K),I=L.length;while(I--){var R=L[Z?I:++B];if(J(N[R],R,N)===!1)break}return K}}function q3(Z,K,J){var W=K&F,B=n5(Z);function N(){var L=this&&this!==v0&&this instanceof N?B:Z;return L.apply(W?J:this,arguments)}return N}function x7(Z){return function(K){K=J0(K);var J=t9(K)?k8(K):Q,W=J?J[0]:K.charAt(0),B=J?N9(J,1).join(""):K.slice(1);return W[Z]()+B}}function $5(Z){return function(K){return P4(Vq(Rq(K).replace(sU,"")),Z,"")}}function n5(Z){return function(){var K=arguments;switch(K.length){case 0:return new Z;case 1:return new Z(K[0]);case 2:return new Z(K[0],K[1]);case 3:return new Z(K[0],K[1],K[2]);case 4:return new Z(K[0],K[1],K[2],K[3]);case 5:return new Z(K[0],K[1],K[2],K[3],K[4]);case 6:return new Z(K[0],K[1],K[2],K[3],K[4],K[5]);case 7:return new Z(K[0],K[1],K[2],K[3],K[4],K[5],K[6])}var J=q5(Z.prototype),W=Z.apply(J,K);return L0(W)?W:J}}function X3(Z,K,J){var W=n5(Z);function B(){var N=arguments.length,L=V(N),I=N,R=J5(B);while(I--)L[I]=arguments[I];var C=N<3&&L[0]!==R&&L[N-1]!==R?[]:B9(L,R);if(N-=C.length,N<J)return b7(Z,K,K1,B.placeholder,Q,L,C,Q,Q,J-N);var j=this&&this!==v0&&this instanceof B?W:Z;return G8(j,this,L)}return B}function T7(Z){return function(K,J,W){var B=G0(K);if(!Z8(K)){var N=c(J,3);K=y0(K),J=function(I){return N(B[I],I,B)}}var L=Z(K,J,W);return L>-1?B[N?K[L]:L]:Q}}function C7(Z){return Q9(function(K){var J=K.length,W=J,B=P8.prototype.thru;if(Z)K.reverse();while(W--){var N=K[W];if(typeof N!="function")throw new A8(U);if(B&&!L&&J1(N)=="wrapper")var L=new P8([],!0)}W=L?W:J;while(++W<J){N=K[W];var I=J1(N),R=I=="wrapper"?$Q(N):Q;if(R&&HQ(R[0])&&R[1]==(g|x|k|u)&&!R[4].length&&R[9]==1)L=L[J1(R[0])].apply(L,R[3]);else L=N.length==1&&HQ(N)?L[I]():L.thru(N)}return function(){var C=arguments,j=C[0];if(L&&C.length==1&&n(j))return L.plant(j).value();var f=0,y=J?K[f].apply(this,C):j;while(++f<J)y=K[f].call(this,y);return y}})}function K1(Z,K,J,W,B,N,L,I,R,C){var j=K&g,f=K&F,y=K&A,d=K&(x|b),i=K&p,a=y?Q:n5(Z);function l(){var e=arguments.length,Z0=V(e),E8=e;while(E8--)Z0[E8]=arguments[E8];if(d)var r0=J5(l),_8=_Y(Z0,r0);if(W)Z0=P7(Z0,W,B,d);if(N)Z0=R7(Z0,N,L,d);if(e-=_8,d&&e<C){var P0=B9(Z0,r0);return b7(Z,K,K1,l.placeholder,J,Z0,P0,I,R,C-e)}var g8=f?J:this,X9=y?g8[Z]:Z;if(e=Z0.length,I)Z0=A3(Z0,I);else if(i&&e>1)Z0.reverse();if(j&&R<e)Z0.length=R;if(this&&this!==v0&&this instanceof l)X9=a||n5(X9);return X9.apply(g8,Z0)}return l}function j7(Z,K){return function(J,W){return jH(J,Z,K(W),{})}}function q1(Z,K){return function(J,W){var B;if(J===Q&&W===Q)return K;if(J!==Q)B=J;if(W!==Q){if(B===Q)return W;if(typeof J=="string"||typeof W=="string")J=z8(J),W=z8(W);else J=w7(J),W=w7(W);B=Z(J,W)}return B}}function ZQ(Z){return Q9(function(K){return K=w0(K,B8(c())),t(function(J){var W=this;return Z(K,function(B){return G8(B,W,J)})})})}function X1(Z,K){K=K===Q?" ":z8(K);var J=K.length;if(J<2)return J?n4(K,Z):K;var W=n4(K,c6(Z/e9(K)));return t9(K)?N9(k8(W),0,Z).join(""):W.slice(0,Z)}function $3(Z,K,J,W){var B=K&F,N=n5(Z);function L(){var I=-1,R=arguments.length,C=-1,j=W.length,f=V(j+R),y=this&&this!==v0&&this instanceof L?N:Z;while(++C<j)f[C]=W[C];while(R--)f[C++]=arguments[++I];return G8(y,B?J:this,f)}return L}function f7(Z){return function(K,J,W){if(W&&typeof W!="number"&&n0(K,J,W))J=W=Q;if(K=q9(K),J===Q)J=K,K=0;else J=q9(J);return W=W===Q?K<J?1:-1:q9(W),cH(K,J,W,Z)}}function $1(Z){return function(K,J){if(!(typeof K=="string"&&typeof J=="string"))K=x8(K),J=x8(J);return Z(K,J)}}function b7(Z,K,J,W,B,N,L,I,R,C){var j=K&x,f=j?L:Q,y=j?Q:L,d=j?N:Q,i=j?Q:N;if(K|=j?k:v,K&=~(j?v:k),!(K&S))K&=~(F|A);var a=[Z,K,B,d,f,i,y,I,R,C],l=J.apply(Q,a);if(HQ(Z))l7(l,a);return l.placeholder=W,s7(l,Z,K)}function KQ(Z){var K=C0[Z];return function(J,W){if(J=x8(J),W=W==null?0:c0(r(W),292),W&&sK(J)){var B=(J0(J)+"e").split("e"),N=K(B[0]+"e"+(+B[1]+W));return B=(J0(N)+"e").split("e"),+(B[0]+"e"+(+B[1]-W))}return K(J)}}var J3=!(Z5&&1/b6(new Z5([,-0]))[1]==F0)?AQ:function(Z){return new Z5(Z)};function k7(Z){return function(K){var J=i0(K);if(J==f8)return j4(K);if(J==b8)return IY(K);return EY(K,Z(K))}}function e8(Z,K,J,W,B,N,L,I){var R=K&A;if(!R&&typeof Z!="function")throw new A8(U);var C=W?W.length:0;if(!C)K&=~(k|v),W=B=Q;if(L=L===Q?L:j0(r(L),0),I=I===Q?I:r(I),C-=B?B.length:0,K&v){var j=W,f=B;W=B=Q}var y=R?Q:$Q(Z),d=[Z,K,J,W,B,j,f,N,L,I];if(y)D3(d,y);if(Z=d[0],K=d[1],J=d[2],W=d[3],B=d[4],I=d[9]=d[9]===Q?R?0:Z.length:j0(d[9]-C,0),!I&&K&(x|b))K&=~(x|b);if(!K||K==F)var i=q3(Z,K,J);else if(K==x||K==b)i=X3(Z,K,I);else if((K==k||K==(F|k))&&!B.length)i=$3(Z,K,J,W);else i=K1.apply(Q,d);var a=y?E7:l7;return s7(a(i,d),Z,K)}function v7(Z,K,J,W){if(Z===Q||y8(Z,Q5[J])&&!Y0.call(W,J))return K;return Z}function y7(Z,K,J,W,B,N){if(L0(Z)&&L0(K))N.set(K,Z),t6(Z,K,Q,y7,N),N.delete(K);return Z}function U3(Z){return a5(Z)?Q:Z}function g7(Z,K,J,W,B,N){var L=J&M,I=Z.length,R=K.length;if(I!=R&&!(L&&R>I))return!1;var C=N.get(Z),j=N.get(K);if(C&&j)return C==K&&j==Z;var f=-1,y=!0,d=J&D?new b9:Q;N.set(Z,K),N.set(K,Z);while(++f<I){var i=Z[f],a=K[f];if(W)var l=L?W(a,i,f,K,Z,N):W(i,a,f,Z,K,N);if(l!==Q){if(l)continue;y=!1;break}if(d){if(!R4(K,function(e,Z0){if(!y5(d,Z0)&&(i===e||B(i,e,J,W,N)))return d.push(Z0)})){y=!1;break}}else if(!(i===a||B(i,a,J,W,N))){y=!1;break}}return N.delete(Z),N.delete(K),y}function Y3(Z,K,J,W,B,N,L){switch(J){case r9:if(Z.byteLength!=K.byteLength||Z.byteOffset!=K.byteOffset)return!1;Z=Z.buffer,K=K.buffer;case v5:if(Z.byteLength!=K.byteLength||!N(new m6(Z),new m6(K)))return!1;return!0;case T5:case C5:case j5:return y8(+Z,+K);case R6:return Z.name==K.name&&Z.message==K.message;case f5:case b5:return Z==K+"";case f8:var I=j4;case b8:var R=W&M;if(I||(I=b6),Z.size!=K.size&&!R)return!1;var C=L.get(Z);if(C)return C==K;W|=D,L.set(Z,K);var j=g7(I(Z),I(K),W,B,N,L);return L.delete(Z),j;case S6:if(d5)return d5.call(Z)==d5.call(K)}return!1}function H3(Z,K,J,W,B,N){var L=J&M,I=qQ(Z),R=I.length,C=qQ(K),j=C.length;if(R!=j&&!L)return!1;var f=R;while(f--){var y=I[f];if(!(L?y in K:Y0.call(K,y)))return!1}var d=N.get(Z),i=N.get(K);if(d&&i)return d==K&&i==Z;var a=!0;N.set(Z,K),N.set(K,Z);var l=L;while(++f<R){y=I[f];var e=Z[y],Z0=K[y];if(W)var E8=L?W(Z0,e,y,K,Z,N):W(e,Z0,y,Z,K,N);if(!(E8===Q?e===Z0||B(e,Z0,J,W,N):E8)){a=!1;break}l||(l=y=="constructor")}if(a&&!l){var r0=Z.constructor,_8=K.constructor;if(r0!=_8&&(("constructor"in Z)&&("constructor"in K))&&!(typeof r0=="function"&&r0 instanceof r0&&typeof _8=="function"&&_8 instanceof _8))a=!1}return N.delete(Z),N.delete(K),a}function Q9(Z){return GQ(c7(Z,Q,e7),Z+"")}function qQ(Z){return X7(Z,y0,UQ)}function XQ(Z){return X7(Z,K8,h7)}var $Q=!l6?AQ:function(Z){return l6.get(Z)};function J1(Z){var K=Z.name+"",J=K5[K],W=Y0.call(K5,K)?J.length:0;while(W--){var B=J[W],N=B.func;if(N==null||N==Z)return B.name}return K}function J5(Z){var K=Y0.call(_,"placeholder")?_:Z;return K.placeholder}function c(){var Z=_.iteratee||FQ;return Z=Z===FQ?U7:Z,arguments.length?Z(arguments[0],arguments[1]):Z}function U1(Z,K){var J=Z.__data__;return w3(K)?J[typeof K=="string"?"string":"hash"]:J.map}function JQ(Z){var K=y0(Z),J=K.length;while(J--){var W=K[J],B=Z[W];K[J]=[W,B,d7(B)]}return K}function y9(Z,K){var J=LY(Z,K);return J7(J)?J:Q}function W3(Z){var K=Y0.call(Z,j9),J=Z[j9];try{Z[j9]=Q;var W=!0}catch(N){}var B=g6.call(Z);if(W)if(K)Z[j9]=J;else delete Z[j9];return B}var UQ=!b4?PQ:function(Z){if(Z==null)return[];return Z=G0(Z),W9(b4(Z),function(K){return iK.call(Z,K)})},h7=!b4?PQ:function(Z){var K=[];while(Z)G9(K,UQ(Z)),Z=p6(Z);return K},i0=s0;if(k4&&i0(new k4(new ArrayBuffer(1)))!=r9||h5&&i0(new h5)!=f8||v4&&i0(v4.resolve())!=ZK||Z5&&i0(new Z5)!=b8||m5&&i0(new m5)!=k5)i0=function(Z){var K=s0(Z),J=K==r8?Z.constructor:Q,W=J?g9(J):"";if(W)switch(W){case lY:return r9;case sY:return f8;case nY:return ZK;case rY:return b8;case oY:return k5}return K};function G3(Z,K,J){var W=-1,B=J.length;while(++W<B){var N=J[W],L=N.size;switch(N.type){case"drop":Z+=L;break;case"dropRight":K-=L;break;case"take":K=c0(K,Z+L);break;case"takeRight":Z=j0(Z,K-L);break}}return{start:Z,end:K}}function B3(Z){var K=Z.match(NU);return K?K[1].split(MU):[]}function m7(Z,K,J){K=w9(K,Z);var W=-1,B=K.length,N=!1;while(++W<B){var L=u8(K[W]);if(!(N=Z!=null&&J(Z,L)))break;Z=Z[L]}if(N||++W!=B)return N;return B=Z==null?0:Z.length,!!B&&O1(B)&&Z9(L,B)&&(n(Z)||h9(Z))}function z3(Z){var K=Z.length,J=new Z.constructor(K);if(K&&typeof Z[0]=="string"&&Y0.call(Z,"index"))J.index=Z.index,J.input=Z.input;return J}function p7(Z){return typeof Z.constructor=="function"&&!r5(Z)?q5(p6(Z)):{}}function O3(Z,K,J){var W=Z.constructor;switch(K){case v5:return QQ(Z);case T5:case C5:return new W(+Z);case r9:return aH(Z,J);case J4:case U4:case Y4:case H4:case W4:case G4:case B4:case z4:case O4:return I7(Z,J);case f8:return new W;case j5:case b5:return new W(Z);case f5:return tH(Z);case b8:return new W;case S6:return eH(Z)}}function E3(Z,K){var J=K.length;if(!J)return Z;var W=J-1;return K[W]=(J>1?"& ":"")+K[W],K=K.join(J>2?", ":" "),Z.replace(wU,`{
|
|
3
3
|
/* [wrapped with `+K+`] */
|
|
4
|
-
`)}function O3(Z){return n(Z)||k9(Z)||!!(cK&&Z&&Z[cK])}function r8(Z,K){var J=typeof Z;return K=K==null?C0:K,!!K&&(J=="number"||J!="symbol"&&AU.test(Z))&&(Z>-1&&Z%1==0&&Z<K)}function u0(Z,K,J){if(!M0(J))return!1;var W=typeof K;if(W=="number"?o0(J)&&r8(K,J.length):W=="string"&&(K in J))return x8(J[K],Z);return!1}function XQ(Z,K){if(n(Z))return!1;var J=typeof Z;if(J=="number"||J=="symbol"||J=="boolean"||Z==null||J8(Z))return!0;return GU.test(Z)||!WU.test(Z)||K!=null&&Z in Y0(K)}function E3(Z){var K=typeof Z;return K=="string"||K=="number"||K=="symbol"||K=="boolean"?Z!=="__proto__":Z===null}function $Q(Z){var K=J1(Z),J=E[K];if(typeof J!="function"||!(K in Q0.prototype))return!1;if(Z===J)return!0;var W=ZQ(J);return!!W&&Z===W[0]}function _3(Z){return!!mK&&mK in Z}var M3=v6?o8:FQ;function n5(Z){var K=Z&&Z.constructor,J=typeof K=="function"&&K.prototype||t9;return Z===J}function m7(Z){return Z===Z&&!M0(Z)}function p7(Z,K){return function(J){if(J==null)return!1;return J[Z]===K&&(K!==Q||(Z in Y0(J)))}}function w3(Z){var K=B1(Z,function(W){if(J.size===G)J.clear();return W}),J=K.cache;return K}function N3(Z,K){var J=Z[1],W=K[1],B=J|W,w=B<(R|P|g),L=W==g&&J==T||W==g&&J==i&&Z[7].length<=K[8]||W==(g|i)&&K[7].length<=K[8]&&J==T;if(!(w||L))return Z;if(W&R)Z[2]=K[2],B|=J&R?0:S;var F=K[3];if(F){var A=Z[3];Z[3]=A?R7(A,F,K[4]):F,Z[4]=A?U9(Z[3],z):K[4]}if(F=K[5],F)A=Z[5],Z[5]=A?P7(A,F,K[6]):F,Z[6]=A?U9(Z[5],z):K[6];if(F=K[7],F)Z[7]=F;if(W&g)Z[8]=Z[8]==null?K[8]:h0(Z[8],K[8]);if(Z[9]==null)Z[9]=K[9];return Z[0]=K[0],Z[1]=B,Z}function L3(Z){var K=[];if(Z!=null)for(var J in Y0(Z))K.push(J);return K}function D3(Z){return g6.call(Z)}function d7(Z,K,J){return K=V0(K===Q?Z.length-1:K,0),function(){var W=arguments,B=-1,w=V0(W.length-K,0),L=V(w);while(++B<w)L[B]=W[K+B];B=-1;var F=V(K+1);while(++B<K)F[B]=W[B];return F[K]=J(L),q8(Z,this,F)}}function u7(Z,K){return K.length<2?Z:j9(Z,N8(K,0,-1))}function F3(Z,K){var J=Z.length,W=h0(K.length,J),B=r0(Z);while(W--){var w=K[W];Z[W]=r8(w,J)?B[w]:Q}return Z}function JQ(Z,K){if(K==="constructor"&&typeof Z[K]==="function")return;if(K=="__proto__")return;return Z[K]}var c7=i7(z7),r5=yY||function(Z,K){return j0.setTimeout(Z,K)},UQ=i7(lH);function l7(Z,K,J){var W=K+"";return UQ(Z,z3(W,R3(W3(W),J)))}function i7(Z){var K=0,J=0;return function(){var W=pY(),B=d8-(W-J);if(J=W,B>0){if(++K>=F0)return arguments[0]}else K=0;return Z.apply(Q,arguments)}}function Y1(Z,K){var J=-1,W=Z.length,B=W-1;K=K===Q?W:K;while(++J<K){var w=u4(J,B),L=Z[w];Z[w]=Z[J],Z[J]=L}return Z.length=K,Z}var s7=w3(function(Z){var K=[];if(Z.charCodeAt(0)===46)K.push("");return Z.replace(BU,function(J,W,B,w){K.push(B?w.replace(LU,"$1"):W||J)}),K});function v8(Z){if(typeof Z=="string"||J8(Z))return Z;var K=Z+"";return K=="0"&&1/Z==-f8?"-0":K}function b9(Z){if(Z!=null){try{return y6.call(Z)}catch(K){}try{return Z+""}catch(K){}}return""}function R3(Z,K){return E8(Z4,function(J){var W="_."+J[0];if(K&J[1]&&!j6(Z,W))Z.push(W)}),Z.sort()}function n7(Z){if(Z instanceof Q0)return Z.clone();var K=new M8(Z.__wrapped__,Z.__chain__);return K.__actions__=r0(Z.__actions__),K.__index__=Z.__index__,K.__values__=Z.__values__,K}function P3(Z,K,J){if(J?u0(Z,K,J):K===Q)K=1;else K=V0(r(K),0);var W=Z==null?0:Z.length;if(!W||K<1)return[];var B=0,w=0,L=V(c6(W/K));while(B<W)L[w++]=N8(Z,B,B+=K);return L}function I3(Z){var K=-1,J=Z==null?0:Z.length,W=0,B=[];while(++K<J){var w=Z[K];if(w)B[W++]=w}return B}function A3(){var Z=arguments.length;if(!Z)return[];var K=V(Z-1),J=arguments[0],W=Z;while(W--)K[W-1]=arguments[W];return J9(n(J)?r0(J):[J],y0(K,1))}var V3=t(function(Z,K){return N0(Z)?u5(Z,y0(K,1,N0,!0)):[]}),S3=t(function(Z,K){var J=L8(K);if(N0(J))J=Q;return N0(Z)?u5(Z,y0(K,1,N0,!0),u(J,2)):[]}),x3=t(function(Z,K){var J=L8(K);if(N0(J))J=Q;return N0(Z)?u5(Z,y0(K,1,N0,!0),Q,J):[]});function T3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),N8(Z,K<0?0:K,W)}function C3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),K=W-K,N8(Z,0,K<0?0:K)}function j3(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!0,!0):[]}function f3(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!0):[]}function b3(Z,K,J,W){var B=Z==null?0:Z.length;if(!B)return[];if(J&&typeof J!="number"&&u0(Z,K,J))J=0,W=B;return AH(Z,K,J,W)}function r7(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=J==null?0:r(J);if(B<0)B=V0(W+B,0);return f6(Z,u(K,3),B)}function o7(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=W-1;if(J!==Q)B=r(J),B=J<0?V0(W+B,0):h0(B,W-1);return f6(Z,u(K,3),B,!0)}function a7(Z){var K=Z==null?0:Z.length;return K?y0(Z,1):[]}function k3(Z){var K=Z==null?0:Z.length;return K?y0(Z,f8):[]}function v3(Z,K){var J=Z==null?0:Z.length;if(!J)return[];return K=K===Q?1:r(K),y0(Z,K)}function y3(Z){var K=-1,J=Z==null?0:Z.length,W={};while(++K<J){var B=Z[K];W[B[0]]=B[1]}return W}function t7(Z){return Z&&Z.length?Z[0]:Q}function g3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=J==null?0:r(J);if(B<0)B=V0(W+B,0);return r9(Z,K,B)}function h3(Z){var K=Z==null?0:Z.length;return K?N8(Z,0,-1):[]}var m3=t(function(Z){var K=z0(Z,n4);return K.length&&K[0]===Z[0]?g4(K):[]}),p3=t(function(Z){var K=L8(Z),J=z0(Z,n4);if(K===L8(J))K=Q;else J.pop();return J.length&&J[0]===Z[0]?g4(J,u(K,2)):[]}),d3=t(function(Z){var K=L8(Z),J=z0(Z,n4);if(K=typeof K=="function"?K:Q,K)J.pop();return J.length&&J[0]===Z[0]?g4(J,Q,K):[]});function u3(Z,K){return Z==null?"":hY.call(Z,K)}function L8(Z){var K=Z==null?0:Z.length;return K?Z[K-1]:Q}function c3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=W;if(J!==Q)B=r(J),B=B<0?V0(W+B,0):h0(B,W-1);return K===K?RY(Z,K,B):f6(Z,jK,B,!0)}function l3(Z,K){return Z&&Z.length?H7(Z,r(K)):Q}var i3=t(e7);function e7(Z,K){return Z&&Z.length&&K&&K.length?d4(Z,K):Z}function s3(Z,K,J){return Z&&Z.length&&K&&K.length?d4(Z,K,u(J,2)):Z}function n3(Z,K,J){return Z&&Z.length&&K&&K.length?d4(Z,K,Q,J):Z}var r3=n8(function(Z,K){var J=Z==null?0:Z.length,W=b4(Z,K);return B7(Z,z0(K,function(B){return r8(B,J)?+B:B}).sort(F7)),W});function o3(Z,K){var J=[];if(!(Z&&Z.length))return J;var W=-1,B=[],w=Z.length;K=u(K,3);while(++W<w){var L=Z[W];if(K(L,W,Z))J.push(L),B.push(W)}return B7(Z,B),J}function YQ(Z){return Z==null?Z:uY.call(Z)}function a3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];if(J&&typeof J!="number"&&u0(Z,K,J))K=0,J=W;else K=K==null?0:r(K),J=J===Q?W:r(J);return N8(Z,K,J)}function t3(Z,K){return e6(Z,K)}function e3(Z,K,J){return l4(Z,K,u(J,2))}function QW(Z,K){var J=Z==null?0:Z.length;if(J){var W=e6(Z,K);if(W<J&&x8(Z[W],K))return W}return-1}function ZW(Z,K){return e6(Z,K,!0)}function KW(Z,K,J){return l4(Z,K,u(J,2),!0)}function qW(Z,K){var J=Z==null?0:Z.length;if(J){var W=e6(Z,K,!0)-1;if(x8(Z[W],K))return W}return-1}function XW(Z){return Z&&Z.length?O7(Z):[]}function $W(Z,K){return Z&&Z.length?O7(Z,u(K,2)):[]}function JW(Z){var K=Z==null?0:Z.length;return K?N8(Z,1,K):[]}function UW(Z,K,J){if(!(Z&&Z.length))return[];return K=J||K===Q?1:r(K),N8(Z,0,K<0?0:K)}function YW(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),K=W-K,N8(Z,K<0?0:K,W)}function HW(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!1,!0):[]}function WW(Z,K){return Z&&Z.length?Q1(Z,u(K,3)):[]}var GW=t(function(Z){return G9(y0(Z,1,N0,!0))}),BW=t(function(Z){var K=L8(Z);if(N0(K))K=Q;return G9(y0(Z,1,N0,!0),u(K,2))}),zW=t(function(Z){var K=L8(Z);return K=typeof K=="function"?K:Q,G9(y0(Z,1,N0,!0),Q,K)});function OW(Z){return Z&&Z.length?G9(Z):[]}function EW(Z,K){return Z&&Z.length?G9(Z,u(K,2)):[]}function _W(Z,K){return K=typeof K=="function"?K:Q,Z&&Z.length?G9(Z,Q,K):[]}function HQ(Z){if(!(Z&&Z.length))return[];var K=0;return Z=$9(Z,function(J){if(N0(J))return K=V0(J.length,K),!0}),A4(K,function(J){return z0(Z,R4(J))})}function Qq(Z,K){if(!(Z&&Z.length))return[];var J=HQ(Z);if(K==null)return J;return z0(J,function(W){return q8(K,Q,W)})}var MW=t(function(Z,K){return N0(Z)?u5(Z,K):[]}),wW=t(function(Z){return s4($9(Z,N0))}),NW=t(function(Z){var K=L8(Z);if(N0(K))K=Q;return s4($9(Z,N0),u(K,2))}),LW=t(function(Z){var K=L8(Z);return K=typeof K=="function"?K:Q,s4($9(Z,N0),Q,K)}),DW=t(HQ);function FW(Z,K){return w7(Z||[],K||[],d5)}function RW(Z,K){return w7(Z||[],K||[],i5)}var PW=t(function(Z){var K=Z.length,J=K>1?Z[K-1]:Q;return J=typeof J=="function"?(Z.pop(),J):Q,Qq(Z,J)});function Zq(Z){var K=E(Z);return K.__chain__=!0,K}function IW(Z,K){return K(Z),Z}function H1(Z,K){return K(Z)}var AW=n8(function(Z){var K=Z.length,J=K?Z[0]:0,W=this.__wrapped__,B=function(w){return b4(w,Z)};if(K>1||this.__actions__.length||!(W instanceof Q0)||!r8(J))return this.thru(B);return W=W.slice(J,+J+(K?1:0)),W.__actions__.push({func:H1,args:[B],thisArg:Q}),new M8(W,this.__chain__).thru(function(w){if(K&&!w.length)w.push(Q);return w})});function VW(){return Zq(this)}function SW(){return new M8(this.value(),this.__chain__)}function xW(){if(this.__values__===Q)this.__values__=Eq(this.value());var Z=this.__index__>=this.__values__.length,K=Z?Q:this.__values__[this.__index__++];return{done:Z,value:K}}function TW(){return this}function CW(Z){var K,J=this;while(J instanceof n6){var W=n7(J);if(W.__index__=0,W.__values__=Q,K)B.__wrapped__=W;else K=W;var B=W;J=J.__wrapped__}return B.__wrapped__=Z,K}function jW(){var Z=this.__wrapped__;if(Z instanceof Q0){var K=Z;if(this.__actions__.length)K=new Q0(this);return K=K.reverse(),K.__actions__.push({func:H1,args:[YQ],thisArg:Q}),new M8(K,this.__chain__)}return this.thru(YQ)}function fW(){return M7(this.__wrapped__,this.__actions__)}var bW=Z1(function(Z,K,J){if(J0.call(Z,J))++Z[J];else i8(Z,J,1)});function kW(Z,K,J){var W=n(Z)?TK:IH;if(J&&u0(Z,K,J))K=Q;return W(Z,u(K,3))}function vW(Z,K){var J=n(Z)?$9:Q7;return J(Z,u(K,3))}var yW=S7(r7),gW=S7(o7);function hW(Z,K){return y0(W1(Z,K),1)}function mW(Z,K){return y0(W1(Z,K),f8)}function pW(Z,K,J){return J=J===Q?1:r(J),y0(W1(Z,K),J)}function Kq(Z,K){var J=n(Z)?E8:W9;return J(Z,u(K,3))}function qq(Z,K){var J=n(Z)?JY:eK;return J(Z,u(K,3))}var dW=Z1(function(Z,K,J){if(J0.call(Z,J))Z[J].push(K);else i8(Z,J,[K])});function uW(Z,K,J,W){Z=o0(Z)?Z:J5(Z),J=J&&!W?r(J):0;var B=Z.length;if(J<0)J=V0(B+J,0);return E1(Z)?J<=B&&Z.indexOf(K,J)>-1:!!B&&r9(Z,K,J)>-1}var cW=t(function(Z,K,J){var W=-1,B=typeof K=="function",w=o0(Z)?V(Z.length):[];return W9(Z,function(L){w[++W]=B?q8(K,L,J):c5(L,K,J)}),w}),lW=Z1(function(Z,K,J){i8(Z,J,K)});function W1(Z,K){var J=n(Z)?z0:J7;return J(Z,u(K,3))}function iW(Z,K,J,W){if(Z==null)return[];if(!n(K))K=K==null?[]:[K];if(J=W?Q:J,!n(J))J=J==null?[]:[J];return W7(Z,K,J)}var sW=Z1(function(Z,K,J){Z[J?0:1].push(K)},function(){return[[],[]]});function nW(Z,K,J){var W=n(Z)?D4:bK,B=arguments.length<3;return W(Z,u(K,4),J,B,W9)}function rW(Z,K,J){var W=n(Z)?UY:bK,B=arguments.length<3;return W(Z,u(K,4),J,B,eK)}function oW(Z,K){var J=n(Z)?$9:Q7;return J(Z,z1(u(K,3)))}function aW(Z){var K=n(Z)?rK:uH;return K(Z)}function tW(Z,K,J){if(J?u0(Z,K,J):K===Q)K=1;else K=r(K);var W=n(Z)?LH:cH;return W(Z,K)}function eW(Z){var K=n(Z)?DH:iH;return K(Z)}function QG(Z){if(Z==null)return 0;if(o0(Z))return E1(Z)?a9(Z):Z.length;var K=m0(Z);if(K==I8||K==A8)return Z.size;return m4(Z).length}function ZG(Z,K,J){var W=n(Z)?F4:sH;if(J&&u0(Z,K,J))K=Q;return W(Z,u(K,3))}var KG=t(function(Z,K){if(Z==null)return[];var J=K.length;if(J>1&&u0(Z,K[0],K[1]))K=[];else if(J>2&&u0(K[0],K[1],K[2]))K=[K[0]];return W7(Z,y0(K,1),[])}),G1=vY||function(){return j0.Date.now()};function qG(Z,K){if(typeof K!="function")throw new _8(U);return Z=r(Z),function(){if(--Z<1)return K.apply(this,arguments)}}function Xq(Z,K,J){return K=J?Q:K,K=Z&&K==null?Z.length:K,s8(Z,g,Q,Q,Q,Q,K)}function $q(Z,K){var J;if(typeof K!="function")throw new _8(U);return Z=r(Z),function(){if(--Z>0)J=K.apply(this,arguments);if(Z<=1)K=Q;return J}}var WQ=t(function(Z,K,J){var W=R;if(J.length){var B=U9(J,X5(WQ));W|=k}return s8(Z,W,K,J,B)}),Jq=t(function(Z,K,J){var W=R|P;if(J.length){var B=U9(J,X5(Jq));W|=k}return s8(K,W,Z,J,B)});function Uq(Z,K,J){K=J?Q:K;var W=s8(Z,T,Q,Q,Q,Q,Q,K);return W.placeholder=Uq.placeholder,W}function Yq(Z,K,J){K=J?Q:K;var W=s8(Z,b,Q,Q,Q,Q,Q,K);return W.placeholder=Yq.placeholder,W}function Hq(Z,K,J){var W,B,w,L,F,A,C=0,j=!1,f=!1,v=!0;if(typeof Z!="function")throw new _8(U);if(K=D8(K)||0,M0(J))j=!!J.leading,f="maxWait"in J,w=f?V0(D8(J.maxWait)||0,K):w,v="trailing"in J?!!J.trailing:v;function d(L0){var T8=W,t8=B;return W=B=Q,C=L0,L=Z.apply(t8,T8),L}function c(L0){return C=L0,F=r5(e,K),j?d(L0):L}function a(L0){var T8=L0-A,t8=L0-C,Sq=K-T8;return f?h0(Sq,w-t8):Sq}function l(L0){var T8=L0-A,t8=L0-C;return A===Q||T8>=K||T8<0||f&&t8>=w}function e(){var L0=G1();if(l(L0))return Z0(L0);F=r5(e,a(L0))}function Z0(L0){if(F=Q,v&&W)return d(L0);return W=B=Q,L}function U8(){if(F!==Q)N7(F);C=0,W=A=B=F=Q}function c0(){return F===Q?L:Z0(G1())}function Y8(){var L0=G1(),T8=l(L0);if(W=arguments,B=this,A=L0,T8){if(F===Q)return c(A);if(f)return N7(F),F=r5(e,K),d(A)}if(F===Q)F=r5(e,K);return L}return Y8.cancel=U8,Y8.flush=c0,Y8}var XG=t(function(Z,K){return tK(Z,1,K)}),$G=t(function(Z,K,J){return tK(Z,D8(K)||0,J)});function JG(Z){return s8(Z,p)}function B1(Z,K){if(typeof Z!="function"||K!=null&&typeof K!="function")throw new _8(U);var J=function(){var W=arguments,B=K?K.apply(this,W):W[0],w=J.cache;if(w.has(B))return w.get(B);var L=Z.apply(this,W);return J.cache=w.set(B,L)||w,L};return J.cache=new(B1.Cache||l8),J}B1.Cache=l8;function z1(Z){if(typeof Z!="function")throw new _8(U);return function(){var K=arguments;switch(K.length){case 0:return!Z.call(this);case 1:return!Z.call(this,K[0]);case 2:return!Z.call(this,K[0],K[1]);case 3:return!Z.call(this,K[0],K[1],K[2])}return!Z.apply(this,K)}}function UG(Z){return $q(2,Z)}var YG=nH(function(Z,K){K=K.length==1&&n(K[0])?z0(K[0],X8(u())):z0(y0(K,1),X8(u()));var J=K.length;return t(function(W){var B=-1,w=h0(W.length,J);while(++B<w)W[B]=K[B].call(this,W[B]);return q8(Z,this,W)})}),GQ=t(function(Z,K){var J=U9(K,X5(GQ));return s8(Z,k,Q,K,J)}),Wq=t(function(Z,K){var J=U9(K,X5(Wq));return s8(Z,y,Q,K,J)}),HG=n8(function(Z,K){return s8(Z,i,Q,Q,Q,K)});function WG(Z,K){if(typeof Z!="function")throw new _8(U);return K=K===Q?K:r(K),t(Z,K)}function GG(Z,K){if(typeof Z!="function")throw new _8(U);return K=K==null?0:V0(r(K),0),t(function(J){var W=J[K],B=z9(J,0,K);if(W)J9(B,W);return q8(Z,this,B)})}function BG(Z,K,J){var W=!0,B=!0;if(typeof Z!="function")throw new _8(U);if(M0(J))W="leading"in J?!!J.leading:W,B="trailing"in J?!!J.trailing:B;return Hq(Z,K,{leading:W,maxWait:K,trailing:B})}function zG(Z){return Xq(Z,1)}function OG(Z,K){return GQ(r4(K),Z)}function EG(){if(!arguments.length)return[];var Z=arguments[0];return n(Z)?Z:[Z]}function _G(Z){return w8(Z,M)}function MG(Z,K){return K=typeof K=="function"?K:Q,w8(Z,M,K)}function wG(Z){return w8(Z,O|M)}function NG(Z,K){return K=typeof K=="function"?K:Q,w8(Z,O|M,K)}function LG(Z,K){return K==null||aK(Z,K,f0(K))}function x8(Z,K){return Z===K||Z!==Z&&K!==K}var DG=$1(y4),FG=$1(function(Z,K){return Z>=K}),k9=q7(function(){return arguments}())?q7:function(Z){return w0(Z)&&J0.call(Z,"callee")&&!uK.call(Z,"callee")},n=V.isArray,RG=PK?X8(PK):CH;function o0(Z){return Z!=null&&O1(Z.length)&&!o8(Z)}function N0(Z){return w0(Z)&&o0(Z)}function PG(Z){return Z===!0||Z===!1||w0(Z)&&d0(Z)==x5}var O9=gY||FQ,IG=IK?X8(IK):jH;function AG(Z){return w0(Z)&&Z.nodeType===1&&!o5(Z)}function VG(Z){if(Z==null)return!0;if(o0(Z)&&(n(Z)||typeof Z=="string"||typeof Z.splice=="function"||O9(Z)||$5(Z)||k9(Z)))return!Z.length;var K=m0(Z);if(K==I8||K==A8)return!Z.size;if(n5(Z))return!m4(Z).length;for(var J in Z)if(J0.call(Z,J))return!1;return!0}function SG(Z,K){return l5(Z,K)}function xG(Z,K,J){J=typeof J=="function"?J:Q;var W=J?J(Z,K):Q;return W===Q?l5(Z,K,Q,J):!!W}function BQ(Z){if(!w0(Z))return!1;var K=d0(Z);return K==A6||K==tJ||typeof Z.message=="string"&&typeof Z.name=="string"&&!o5(Z)}function TG(Z){return typeof Z=="number"&&lK(Z)}function o8(Z){if(!M0(Z))return!1;var K=d0(Z);return K==V6||K==tZ||K==i9||K==QU}function Gq(Z){return typeof Z=="number"&&Z==r(Z)}function O1(Z){return typeof Z=="number"&&Z>-1&&Z%1==0&&Z<=C0}function M0(Z){var K=typeof Z;return Z!=null&&(K=="object"||K=="function")}function w0(Z){return Z!=null&&typeof Z=="object"}var Bq=AK?X8(AK):bH;function CG(Z,K){return Z===K||h4(Z,K,KQ(K))}function jG(Z,K,J){return J=typeof J=="function"?J:Q,h4(Z,K,KQ(K),J)}function fG(Z){return zq(Z)&&Z!=+Z}function bG(Z){if(M3(Z))throw new s($);return X7(Z)}function kG(Z){return Z===null}function vG(Z){return Z==null}function zq(Z){return typeof Z=="number"||w0(Z)&&d0(Z)==C5}function o5(Z){if(!w0(Z)||d0(Z)!=u8)return!1;var K=p6(Z);if(K===null)return!0;var J=J0.call(K,"constructor")&&K.constructor;return typeof J=="function"&&J instanceof J&&y6.call(J)==jY}var zQ=VK?X8(VK):kH;function yG(Z){return Gq(Z)&&Z>=-C0&&Z<=C0}var Oq=SK?X8(SK):vH;function E1(Z){return typeof Z=="string"||!n(Z)&&w0(Z)&&d0(Z)==f5}function J8(Z){return typeof Z=="symbol"||w0(Z)&&d0(Z)==S6}var $5=xK?X8(xK):yH;function gG(Z){return Z===Q}function hG(Z){return w0(Z)&&m0(Z)==b5}function mG(Z){return w0(Z)&&d0(Z)==KU}var pG=$1(p4),dG=$1(function(Z,K){return Z<=K});function Eq(Z){if(!Z)return[];if(o0(Z))return E1(Z)?V8(Z):r0(Z);if(y5&&Z[y5])return LY(Z[y5]());var K=m0(Z),J=K==I8?S4:K==A8?b6:J5;return J(Z)}function a8(Z){if(!Z)return Z===0?Z:0;if(Z=D8(Z),Z===f8||Z===-f8){var K=Z<0?-1:1;return K*P6}return Z===Z?Z:0}function r(Z){var K=a8(Z),J=K%1;return K===K?J?K-J:K:0}function _q(Z){return Z?C9(r(Z),0,K8):0}function D8(Z){if(typeof Z=="number")return Z;if(J8(Z))return c9;if(M0(Z)){var K=typeof Z.valueOf=="function"?Z.valueOf():Z;Z=M0(K)?K+"":K}if(typeof Z!="string")return Z===0?Z:+Z;Z=kK(Z);var J=RU.test(Z);return J||IU.test(Z)?qY(Z.slice(2),J?2:8):FU.test(Z)?c9:+Z}function Mq(Z){return k8(Z,a0(Z))}function uG(Z){return Z?C9(r(Z),-C0,C0):Z===0?Z:0}function X0(Z){return Z==null?"":$8(Z)}var cG=K5(function(Z,K){if(n5(K)||o0(K)){k8(K,f0(K),Z);return}for(var J in K)if(J0.call(K,J))d5(Z,J,K[J])}),wq=K5(function(Z,K){k8(K,a0(K),Z)}),_1=K5(function(Z,K,J,W){k8(K,a0(K),Z,W)}),lG=K5(function(Z,K,J,W){k8(K,f0(K),Z,W)}),iG=n8(b4);function sG(Z,K){var J=Z5(Z);return K==null?J:oK(J,K)}var nG=t(function(Z,K){Z=Y0(Z);var J=-1,W=K.length,B=W>2?K[2]:Q;if(B&&u0(K[0],K[1],B))W=1;while(++J<W){var w=K[J],L=a0(w),F=-1,A=L.length;while(++F<A){var C=L[F],j=Z[C];if(j===Q||x8(j,t9[C])&&!J0.call(Z,C))Z[C]=w[C]}}return Z}),rG=t(function(Z){return Z.push(Q,k7),q8(Nq,Q,Z)});function oG(Z,K){return CK(Z,u(K,3),b8)}function aG(Z,K){return CK(Z,u(K,3),v4)}function tG(Z,K){return Z==null?Z:k4(Z,u(K,3),a0)}function eG(Z,K){return Z==null?Z:Z7(Z,u(K,3),a0)}function QB(Z,K){return Z&&b8(Z,u(K,3))}function ZB(Z,K){return Z&&v4(Z,u(K,3))}function KB(Z){return Z==null?[]:a6(Z,f0(Z))}function qB(Z){return Z==null?[]:a6(Z,a0(Z))}function OQ(Z,K,J){var W=Z==null?Q:j9(Z,K);return W===Q?J:W}function XB(Z,K){return Z!=null&&g7(Z,K,VH)}function EQ(Z,K){return Z!=null&&g7(Z,K,SH)}var $B=T7(function(Z,K,J){if(K!=null&&typeof K.toString!="function")K=g6.call(K);Z[K]=J},MQ(t0)),JB=T7(function(Z,K,J){if(K!=null&&typeof K.toString!="function")K=g6.call(K);if(J0.call(Z,K))Z[K].push(J);else Z[K]=[J]},u),UB=t(c5);function f0(Z){return o0(Z)?nK(Z):m4(Z)}function a0(Z){return o0(Z)?nK(Z,!0):gH(Z)}function YB(Z,K){var J={};return K=u(K,3),b8(Z,function(W,B,w){i8(J,K(W,B,w),W)}),J}function HB(Z,K){var J={};return K=u(K,3),b8(Z,function(W,B,w){i8(J,B,K(W,B,w))}),J}var WB=K5(function(Z,K,J){t6(Z,K,J)}),Nq=K5(function(Z,K,J,W){t6(Z,K,J,W)}),GB=n8(function(Z,K){var J={};if(Z==null)return J;var W=!1;if(K=z0(K,function(w){return w=B9(w,Z),W||(W=w.length>1),w}),k8(Z,QQ(Z),J),W)J=w8(J,O|_|M,$3);var B=K.length;while(B--)i4(J,K[B]);return J});function BB(Z,K){return Lq(Z,z1(u(K)))}var zB=n8(function(Z,K){return Z==null?{}:mH(Z,K)});function Lq(Z,K){if(Z==null)return{};var J=z0(QQ(Z),function(W){return[W]});return K=u(K),G7(Z,J,function(W,B){return K(W,B[0])})}function OB(Z,K,J){K=B9(K,Z);var W=-1,B=K.length;if(!B)B=1,Z=Q;while(++W<B){var w=Z==null?Q:Z[v8(K[W])];if(w===Q)W=B,w=J;Z=o8(w)?w.call(Z):w}return Z}function EB(Z,K,J){return Z==null?Z:i5(Z,K,J)}function _B(Z,K,J,W){return W=typeof W=="function"?W:Q,Z==null?Z:i5(Z,K,J,W)}var Dq=f7(f0),Fq=f7(a0);function MB(Z,K,J){var W=n(Z),B=W||O9(Z)||$5(Z);if(K=u(K,4),J==null){var w=Z&&Z.constructor;if(B)J=W?new w:[];else if(M0(Z))J=o8(w)?Z5(p6(Z)):{};else J={}}return(B?E8:b8)(Z,function(L,F,A){return K(J,L,F,A)}),J}function wB(Z,K){return Z==null?!0:i4(Z,K)}function NB(Z,K,J){return Z==null?Z:_7(Z,K,r4(J))}function LB(Z,K,J,W){return W=typeof W=="function"?W:Q,Z==null?Z:_7(Z,K,r4(J),W)}function J5(Z){return Z==null?[]:V4(Z,f0(Z))}function DB(Z){return Z==null?[]:V4(Z,a0(Z))}function FB(Z,K,J){if(J===Q)J=K,K=Q;if(J!==Q)J=D8(J),J=J===J?J:0;if(K!==Q)K=D8(K),K=K===K?K:0;return C9(D8(Z),K,J)}function RB(Z,K,J){if(K=a8(K),J===Q)J=K,K=0;else J=a8(J);return Z=D8(Z),xH(Z,K,J)}function PB(Z,K,J){if(J&&typeof J!="boolean"&&u0(Z,K,J))K=J=Q;if(J===Q){if(typeof K=="boolean")J=K,K=Q;else if(typeof Z=="boolean")J=Z,Z=Q}if(Z===Q&&K===Q)Z=0,K=1;else if(Z=a8(Z),K===Q)K=Z,Z=0;else K=a8(K);if(Z>K){var W=Z;Z=K,K=W}if(J||Z%1||K%1){var B=iK();return h0(Z+B*(K-Z+KY("1e-"+((B+"").length-1))),K)}return u4(Z,K)}var IB=q5(function(Z,K,J){return K=K.toLowerCase(),Z+(J?Rq(K):K)});function Rq(Z){return _Q(X0(Z).toLowerCase())}function Pq(Z){return Z=X0(Z),Z&&Z.replace(VU,EY).replace(iU,"")}function AB(Z,K,J){Z=X0(Z),K=$8(K);var W=Z.length;J=J===Q?W:C9(r(J),0,W);var B=J;return J-=K.length,J>=0&&Z.slice(J,B)==K}function VB(Z){return Z=X0(Z),Z&&UU.test(Z)?Z.replace(ZK,_Y):Z}function SB(Z){return Z=X0(Z),Z&&zU.test(Z)?Z.replace(G4,"\\$&"):Z}var xB=q5(function(Z,K,J){return Z+(J?"-":"")+K.toLowerCase()}),TB=q5(function(Z,K,J){return Z+(J?" ":"")+K.toLowerCase()}),CB=V7("toLowerCase");function jB(Z,K,J){Z=X0(Z),K=r(K);var W=K?a9(Z):0;if(!K||W>=K)return Z;var B=(K-W)/2;return X1(l6(B),J)+Z+X1(c6(B),J)}function fB(Z,K,J){Z=X0(Z),K=r(K);var W=K?a9(Z):0;return K&&W<K?Z+X1(K-W,J):Z}function bB(Z,K,J){Z=X0(Z),K=r(K);var W=K?a9(Z):0;return K&&W<K?X1(K-W,J)+Z:Z}function kB(Z,K,J){if(J||K==null)K=0;else if(K)K=+K;return dY(X0(Z).replace(B4,""),K||0)}function vB(Z,K,J){if(J?u0(Z,K,J):K===Q)K=1;else K=r(K);return c4(X0(Z),K)}function yB(){var Z=arguments,K=X0(Z[0]);return Z.length<3?K:K.replace(Z[1],Z[2])}var gB=q5(function(Z,K,J){return Z+(J?"_":"")+K.toLowerCase()});function hB(Z,K,J){if(J&&typeof J!="number"&&u0(Z,K,J))K=J=Q;if(J=J===Q?K8:J>>>0,!J)return[];if(Z=X0(Z),Z&&(typeof K=="string"||K!=null&&!zQ(K))){if(K=$8(K),!K&&o9(Z))return z9(V8(Z),0,J)}return Z.split(K,J)}var mB=q5(function(Z,K,J){return Z+(J?" ":"")+_Q(K)});function pB(Z,K,J){return Z=X0(Z),J=J==null?0:C9(r(J),0,Z.length),K=$8(K),Z.slice(J,J+K.length)==K}function dB(Z,K,J){var W=E.templateSettings;if(J&&u0(Z,K,J))K=Q;Z=X0(Z),K=_1({},K,W,b7);var B=_1({},K.imports,W.imports,b7),w=f0(B),L=V4(B,w),F,A,C=0,j=K.interpolate||x6,f="__p += '",v=x4((K.escape||x6).source+"|"+j.source+"|"+(j===KK?DU:x6).source+"|"+(K.evaluate||x6).source+"|$","g"),d="//# sourceURL="+(J0.call(K,"sourceURL")?(K.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++aU+"]")+`
|
|
5
|
-
`;Z.replace(
|
|
4
|
+
`)}function _3(Z){return n(Z)||h9(Z)||!!(lK&&Z&&Z[lK])}function Z9(Z,K){var J=typeof Z;return K=K==null?H0:K,!!K&&(J=="number"||J!="symbol"&&SU.test(Z))&&(Z>-1&&Z%1==0&&Z<K)}function n0(Z,K,J){if(!L0(J))return!1;var W=typeof K;if(W=="number"?Z8(J)&&Z9(K,J.length):W=="string"&&(K in J))return y8(J[K],Z);return!1}function YQ(Z,K){if(n(Z))return!1;var J=typeof Z;if(J=="number"||J=="symbol"||J=="boolean"||Z==null||O8(Z))return!0;return zU.test(Z)||!BU.test(Z)||K!=null&&Z in G0(K)}function w3(Z){var K=typeof Z;return K=="string"||K=="number"||K=="symbol"||K=="boolean"?Z!=="__proto__":Z===null}function HQ(Z){var K=J1(Z),J=_[K];if(typeof J!="function"||!(K in Q0.prototype))return!1;if(Z===J)return!0;var W=$Q(J);return!!W&&Z===W[0]}function N3(Z){return!!dK&&dK in Z}var M3=v6?K9:RQ;function r5(Z){var K=Z&&Z.constructor,J=typeof K=="function"&&K.prototype||Q5;return Z===J}function d7(Z){return Z===Z&&!L0(Z)}function u7(Z,K){return function(J){if(J==null)return!1;return J[Z]===K&&(K!==Q||(Z in G0(J)))}}function L3(Z){var K=B1(Z,function(W){if(J.size===G)J.clear();return W}),J=K.cache;return K}function D3(Z,K){var J=Z[1],W=K[1],B=J|W,N=B<(F|A|g),L=W==g&&J==x||W==g&&J==u&&Z[7].length<=K[8]||W==(g|u)&&K[7].length<=K[8]&&J==x;if(!(N||L))return Z;if(W&F)Z[2]=K[2],B|=J&F?0:S;var I=K[3];if(I){var R=Z[3];Z[3]=R?P7(R,I,K[4]):I,Z[4]=R?B9(Z[3],z):K[4]}if(I=K[5],I)R=Z[5],Z[5]=R?R7(R,I,K[6]):I,Z[6]=R?B9(Z[5],z):K[6];if(I=K[7],I)Z[7]=I;if(W&g)Z[8]=Z[8]==null?K[8]:c0(Z[8],K[8]);if(Z[9]==null)Z[9]=K[9];return Z[0]=K[0],Z[1]=B,Z}function F3(Z){var K=[];if(Z!=null)for(var J in G0(Z))K.push(J);return K}function I3(Z){return g6.call(Z)}function c7(Z,K,J){return K=j0(K===Q?Z.length-1:K,0),function(){var W=arguments,B=-1,N=j0(W.length-K,0),L=V(N);while(++B<N)L[B]=W[K+B];B=-1;var I=V(K+1);while(++B<K)I[B]=W[B];return I[K]=J(L),G8(Z,this,I)}}function i7(Z,K){return K.length<2?Z:v9(Z,V8(K,0,-1))}function A3(Z,K){var J=Z.length,W=c0(K.length,J),B=Q8(Z);while(W--){var N=K[W];Z[W]=Z9(N,J)?B[N]:Q}return Z}function WQ(Z,K){if(K==="constructor"&&typeof Z[K]==="function")return;if(K=="__proto__")return;return Z[K]}var l7=n7(E7),o5=hY||function(Z,K){return v0.setTimeout(Z,K)},GQ=n7(sH);function s7(Z,K,J){var W=K+"";return GQ(Z,E3(W,P3(B3(W),J)))}function n7(Z){var K=0,J=0;return function(){var W=uY(),B=D0-(W-J);if(J=W,B>0){if(++K>=X0)return arguments[0]}else K=0;return Z.apply(Q,arguments)}}function Y1(Z,K){var J=-1,W=Z.length,B=W-1;K=K===Q?W:K;while(++J<K){var N=s4(J,B),L=Z[N];Z[N]=Z[J],Z[J]=L}return Z.length=K,Z}var r7=L3(function(Z){var K=[];if(Z.charCodeAt(0)===46)K.push("");return Z.replace(OU,function(J,W,B,N){K.push(B?N.replace(FU,"$1"):W||J)}),K});function u8(Z){if(typeof Z=="string"||O8(Z))return Z;var K=Z+"";return K=="0"&&1/Z==-F0?"-0":K}function g9(Z){if(Z!=null){try{return y6.call(Z)}catch(K){}try{return Z+""}catch(K){}}return""}function P3(Z,K){return I8($4,function(J){var W="_."+J[0];if(K&J[1]&&!j6(Z,W))Z.push(W)}),Z.sort()}function o7(Z){if(Z instanceof Q0)return Z.clone();var K=new P8(Z.__wrapped__,Z.__chain__);return K.__actions__=Q8(Z.__actions__),K.__index__=Z.__index__,K.__values__=Z.__values__,K}function R3(Z,K,J){if(J?n0(Z,K,J):K===Q)K=1;else K=j0(r(K),0);var W=Z==null?0:Z.length;if(!W||K<1)return[];var B=0,N=0,L=V(c6(W/K));while(B<W)L[N++]=V8(Z,B,B+=K);return L}function V3(Z){var K=-1,J=Z==null?0:Z.length,W=0,B=[];while(++K<J){var N=Z[K];if(N)B[W++]=N}return B}function S3(){var Z=arguments.length;if(!Z)return[];var K=V(Z-1),J=arguments[0],W=Z;while(W--)K[W-1]=arguments[W];return G9(n(J)?Q8(J):[J],m0(K,1))}var x3=t(function(Z,K){return A0(Z)?c5(Z,m0(K,1,A0,!0)):[]}),T3=t(function(Z,K){var J=S8(K);if(A0(J))J=Q;return A0(Z)?c5(Z,m0(K,1,A0,!0),c(J,2)):[]}),C3=t(function(Z,K){var J=S8(K);if(A0(J))J=Q;return A0(Z)?c5(Z,m0(K,1,A0,!0),Q,J):[]});function j3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),V8(Z,K<0?0:K,W)}function f3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),K=W-K,V8(Z,0,K<0?0:K)}function b3(Z,K){return Z&&Z.length?Q1(Z,c(K,3),!0,!0):[]}function k3(Z,K){return Z&&Z.length?Q1(Z,c(K,3),!0):[]}function v3(Z,K,J,W){var B=Z==null?0:Z.length;if(!B)return[];if(J&&typeof J!="number"&&n0(Z,K,J))J=0,W=B;return SH(Z,K,J,W)}function a7(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=J==null?0:r(J);if(B<0)B=j0(W+B,0);return f6(Z,c(K,3),B)}function t7(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=W-1;if(J!==Q)B=r(J),B=J<0?j0(W+B,0):c0(B,W-1);return f6(Z,c(K,3),B,!0)}function e7(Z){var K=Z==null?0:Z.length;return K?m0(Z,1):[]}function y3(Z){var K=Z==null?0:Z.length;return K?m0(Z,F0):[]}function g3(Z,K){var J=Z==null?0:Z.length;if(!J)return[];return K=K===Q?1:r(K),m0(Z,K)}function h3(Z){var K=-1,J=Z==null?0:Z.length,W={};while(++K<J){var B=Z[K];W[B[0]]=B[1]}return W}function Qq(Z){return Z&&Z.length?Z[0]:Q}function m3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=J==null?0:r(J);if(B<0)B=j0(W+B,0);return a9(Z,K,B)}function p3(Z){var K=Z==null?0:Z.length;return K?V8(Z,0,-1):[]}var d3=t(function(Z){var K=w0(Z,t4);return K.length&&K[0]===Z[0]?d4(K):[]}),u3=t(function(Z){var K=S8(Z),J=w0(Z,t4);if(K===S8(J))K=Q;else J.pop();return J.length&&J[0]===Z[0]?d4(J,c(K,2)):[]}),c3=t(function(Z){var K=S8(Z),J=w0(Z,t4);if(K=typeof K=="function"?K:Q,K)J.pop();return J.length&&J[0]===Z[0]?d4(J,Q,K):[]});function i3(Z,K){return Z==null?"":pY.call(Z,K)}function S8(Z){var K=Z==null?0:Z.length;return K?Z[K-1]:Q}function l3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return-1;var B=W;if(J!==Q)B=r(J),B=B<0?j0(W+B,0):c0(B,W-1);return K===K?PY(Z,K,B):f6(Z,bK,B,!0)}function s3(Z,K){return Z&&Z.length?G7(Z,r(K)):Q}var n3=t(Zq);function Zq(Z,K){return Z&&Z.length&&K&&K.length?l4(Z,K):Z}function r3(Z,K,J){return Z&&Z.length&&K&&K.length?l4(Z,K,c(J,2)):Z}function o3(Z,K,J){return Z&&Z.length&&K&&K.length?l4(Z,K,Q,J):Z}var a3=Q9(function(Z,K){var J=Z==null?0:Z.length,W=g4(Z,K);return O7(Z,w0(K,function(B){return Z9(B,J)?+B:B}).sort(A7)),W});function t3(Z,K){var J=[];if(!(Z&&Z.length))return J;var W=-1,B=[],N=Z.length;K=c(K,3);while(++W<N){var L=Z[W];if(K(L,W,Z))J.push(L),B.push(W)}return O7(Z,B),J}function BQ(Z){return Z==null?Z:iY.call(Z)}function e3(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];if(J&&typeof J!="number"&&n0(Z,K,J))K=0,J=W;else K=K==null?0:r(K),J=J===Q?W:r(J);return V8(Z,K,J)}function QW(Z,K){return e6(Z,K)}function ZW(Z,K,J){return r4(Z,K,c(J,2))}function KW(Z,K){var J=Z==null?0:Z.length;if(J){var W=e6(Z,K);if(W<J&&y8(Z[W],K))return W}return-1}function qW(Z,K){return e6(Z,K,!0)}function XW(Z,K,J){return r4(Z,K,c(J,2),!0)}function $W(Z,K){var J=Z==null?0:Z.length;if(J){var W=e6(Z,K,!0)-1;if(y8(Z[W],K))return W}return-1}function JW(Z){return Z&&Z.length?_7(Z):[]}function UW(Z,K){return Z&&Z.length?_7(Z,c(K,2)):[]}function YW(Z){var K=Z==null?0:Z.length;return K?V8(Z,1,K):[]}function HW(Z,K,J){if(!(Z&&Z.length))return[];return K=J||K===Q?1:r(K),V8(Z,0,K<0?0:K)}function WW(Z,K,J){var W=Z==null?0:Z.length;if(!W)return[];return K=J||K===Q?1:r(K),K=W-K,V8(Z,K<0?0:K,W)}function GW(Z,K){return Z&&Z.length?Q1(Z,c(K,3),!1,!0):[]}function BW(Z,K){return Z&&Z.length?Q1(Z,c(K,3)):[]}var zW=t(function(Z){return _9(m0(Z,1,A0,!0))}),OW=t(function(Z){var K=S8(Z);if(A0(K))K=Q;return _9(m0(Z,1,A0,!0),c(K,2))}),EW=t(function(Z){var K=S8(Z);return K=typeof K=="function"?K:Q,_9(m0(Z,1,A0,!0),Q,K)});function _W(Z){return Z&&Z.length?_9(Z):[]}function wW(Z,K){return Z&&Z.length?_9(Z,c(K,2)):[]}function NW(Z,K){return K=typeof K=="function"?K:Q,Z&&Z.length?_9(Z,Q,K):[]}function zQ(Z){if(!(Z&&Z.length))return[];var K=0;return Z=W9(Z,function(J){if(A0(J))return K=j0(J.length,K),!0}),T4(K,function(J){return w0(Z,V4(J))})}function Kq(Z,K){if(!(Z&&Z.length))return[];var J=zQ(Z);if(K==null)return J;return w0(J,function(W){return G8(K,Q,W)})}var MW=t(function(Z,K){return A0(Z)?c5(Z,K):[]}),LW=t(function(Z){return a4(W9(Z,A0))}),DW=t(function(Z){var K=S8(Z);if(A0(K))K=Q;return a4(W9(Z,A0),c(K,2))}),FW=t(function(Z){var K=S8(Z);return K=typeof K=="function"?K:Q,a4(W9(Z,A0),Q,K)}),IW=t(zQ);function AW(Z,K){return L7(Z||[],K||[],u5)}function PW(Z,K){return L7(Z||[],K||[],s5)}var RW=t(function(Z){var K=Z.length,J=K>1?Z[K-1]:Q;return J=typeof J=="function"?(Z.pop(),J):Q,Kq(Z,J)});function qq(Z){var K=_(Z);return K.__chain__=!0,K}function VW(Z,K){return K(Z),Z}function H1(Z,K){return K(Z)}var SW=Q9(function(Z){var K=Z.length,J=K?Z[0]:0,W=this.__wrapped__,B=function(N){return g4(N,Z)};if(K>1||this.__actions__.length||!(W instanceof Q0)||!Z9(J))return this.thru(B);return W=W.slice(J,+J+(K?1:0)),W.__actions__.push({func:H1,args:[B],thisArg:Q}),new P8(W,this.__chain__).thru(function(N){if(K&&!N.length)N.push(Q);return N})});function xW(){return qq(this)}function TW(){return new P8(this.value(),this.__chain__)}function CW(){if(this.__values__===Q)this.__values__=wq(this.value());var Z=this.__index__>=this.__values__.length,K=Z?Q:this.__values__[this.__index__++];return{done:Z,value:K}}function jW(){return this}function fW(Z){var K,J=this;while(J instanceof n6){var W=o7(J);if(W.__index__=0,W.__values__=Q,K)B.__wrapped__=W;else K=W;var B=W;J=J.__wrapped__}return B.__wrapped__=Z,K}function bW(){var Z=this.__wrapped__;if(Z instanceof Q0){var K=Z;if(this.__actions__.length)K=new Q0(this);return K=K.reverse(),K.__actions__.push({func:H1,args:[BQ],thisArg:Q}),new P8(K,this.__chain__)}return this.thru(BQ)}function kW(){return M7(this.__wrapped__,this.__actions__)}var vW=Z1(function(Z,K,J){if(Y0.call(Z,J))++Z[J];else t8(Z,J,1)});function yW(Z,K,J){var W=n(Z)?jK:VH;if(J&&n0(Z,K,J))K=Q;return W(Z,c(K,3))}function gW(Z,K){var J=n(Z)?W9:K7;return J(Z,c(K,3))}var hW=T7(a7),mW=T7(t7);function pW(Z,K){return m0(W1(Z,K),1)}function dW(Z,K){return m0(W1(Z,K),F0)}function uW(Z,K,J){return J=J===Q?1:r(J),m0(W1(Z,K),J)}function Xq(Z,K){var J=n(Z)?I8:E9;return J(Z,c(K,3))}function $q(Z,K){var J=n(Z)?YY:Z7;return J(Z,c(K,3))}var cW=Z1(function(Z,K,J){if(Y0.call(Z,J))Z[J].push(K);else t8(Z,J,[K])});function iW(Z,K,J,W){Z=Z8(Z)?Z:Y5(Z),J=J&&!W?r(J):0;var B=Z.length;if(J<0)J=j0(B+J,0);return E1(Z)?J<=B&&Z.indexOf(K,J)>-1:!!B&&a9(Z,K,J)>-1}var lW=t(function(Z,K,J){var W=-1,B=typeof K=="function",N=Z8(Z)?V(Z.length):[];return E9(Z,function(L){N[++W]=B?G8(K,L,J):i5(L,K,J)}),N}),sW=Z1(function(Z,K,J){t8(Z,J,K)});function W1(Z,K){var J=n(Z)?w0:Y7;return J(Z,c(K,3))}function nW(Z,K,J,W){if(Z==null)return[];if(!n(K))K=K==null?[]:[K];if(J=W?Q:J,!n(J))J=J==null?[]:[J];return B7(Z,K,J)}var rW=Z1(function(Z,K,J){Z[J?0:1].push(K)},function(){return[[],[]]});function oW(Z,K,J){var W=n(Z)?P4:vK,B=arguments.length<3;return W(Z,c(K,4),J,B,E9)}function aW(Z,K,J){var W=n(Z)?HY:vK,B=arguments.length<3;return W(Z,c(K,4),J,B,Z7)}function tW(Z,K){var J=n(Z)?W9:K7;return J(Z,z1(c(K,3)))}function eW(Z){var K=n(Z)?aK:iH;return K(Z)}function QG(Z,K,J){if(J?n0(Z,K,J):K===Q)K=1;else K=r(K);var W=n(Z)?FH:lH;return W(Z,K)}function ZG(Z){var K=n(Z)?IH:nH;return K(Z)}function KG(Z){if(Z==null)return 0;if(Z8(Z))return E1(Z)?e9(Z):Z.length;var K=i0(Z);if(K==f8||K==b8)return Z.size;return c4(Z).length}function qG(Z,K,J){var W=n(Z)?R4:rH;if(J&&n0(Z,K,J))K=Q;return W(Z,c(K,3))}var XG=t(function(Z,K){if(Z==null)return[];var J=K.length;if(J>1&&n0(Z,K[0],K[1]))K=[];else if(J>2&&n0(K[0],K[1],K[2]))K=[K[0]];return B7(Z,m0(K,1),[])}),G1=gY||function(){return v0.Date.now()};function $G(Z,K){if(typeof K!="function")throw new A8(U);return Z=r(Z),function(){if(--Z<1)return K.apply(this,arguments)}}function Jq(Z,K,J){return K=J?Q:K,K=Z&&K==null?Z.length:K,e8(Z,g,Q,Q,Q,Q,K)}function Uq(Z,K){var J;if(typeof K!="function")throw new A8(U);return Z=r(Z),function(){if(--Z>0)J=K.apply(this,arguments);if(Z<=1)K=Q;return J}}var OQ=t(function(Z,K,J){var W=F;if(J.length){var B=B9(J,J5(OQ));W|=k}return e8(Z,W,K,J,B)}),Yq=t(function(Z,K,J){var W=F|A;if(J.length){var B=B9(J,J5(Yq));W|=k}return e8(K,W,Z,J,B)});function Hq(Z,K,J){K=J?Q:K;var W=e8(Z,x,Q,Q,Q,Q,Q,K);return W.placeholder=Hq.placeholder,W}function Wq(Z,K,J){K=J?Q:K;var W=e8(Z,b,Q,Q,Q,Q,Q,K);return W.placeholder=Wq.placeholder,W}function Gq(Z,K,J){var W,B,N,L,I,R,C=0,j=!1,f=!1,y=!0;if(typeof Z!="function")throw new A8(U);if(K=x8(K)||0,L0(J))j=!!J.leading,f="maxWait"in J,N=f?j0(x8(J.maxWait)||0,K):N,y="trailing"in J?!!J.trailing:y;function d(P0){var g8=W,X9=B;return W=B=Q,C=P0,L=Z.apply(X9,g8),L}function i(P0){return C=P0,I=o5(e,K),j?d(P0):L}function a(P0){var g8=P0-R,X9=P0-C,Tq=K-g8;return f?c0(Tq,N-X9):Tq}function l(P0){var g8=P0-R,X9=P0-C;return R===Q||g8>=K||g8<0||f&&X9>=N}function e(){var P0=G1();if(l(P0))return Z0(P0);I=o5(e,a(P0))}function Z0(P0){if(I=Q,y&&W)return d(P0);return W=B=Q,L}function E8(){if(I!==Q)D7(I);C=0,W=R=B=I=Q}function r0(){return I===Q?L:Z0(G1())}function _8(){var P0=G1(),g8=l(P0);if(W=arguments,B=this,R=P0,g8){if(I===Q)return i(R);if(f)return D7(I),I=o5(e,K),d(R)}if(I===Q)I=o5(e,K);return L}return _8.cancel=E8,_8.flush=r0,_8}var JG=t(function(Z,K){return Q7(Z,1,K)}),UG=t(function(Z,K,J){return Q7(Z,x8(K)||0,J)});function YG(Z){return e8(Z,p)}function B1(Z,K){if(typeof Z!="function"||K!=null&&typeof K!="function")throw new A8(U);var J=function(){var W=arguments,B=K?K.apply(this,W):W[0],N=J.cache;if(N.has(B))return N.get(B);var L=Z.apply(this,W);return J.cache=N.set(B,L)||N,L};return J.cache=new(B1.Cache||a8),J}B1.Cache=a8;function z1(Z){if(typeof Z!="function")throw new A8(U);return function(){var K=arguments;switch(K.length){case 0:return!Z.call(this);case 1:return!Z.call(this,K[0]);case 2:return!Z.call(this,K[0],K[1]);case 3:return!Z.call(this,K[0],K[1],K[2])}return!Z.apply(this,K)}}function HG(Z){return Uq(2,Z)}var WG=oH(function(Z,K){K=K.length==1&&n(K[0])?w0(K[0],B8(c())):w0(m0(K,1),B8(c()));var J=K.length;return t(function(W){var B=-1,N=c0(W.length,J);while(++B<N)W[B]=K[B].call(this,W[B]);return G8(Z,this,W)})}),EQ=t(function(Z,K){var J=B9(K,J5(EQ));return e8(Z,k,Q,K,J)}),Bq=t(function(Z,K){var J=B9(K,J5(Bq));return e8(Z,v,Q,K,J)}),GG=Q9(function(Z,K){return e8(Z,u,Q,Q,Q,K)});function BG(Z,K){if(typeof Z!="function")throw new A8(U);return K=K===Q?K:r(K),t(Z,K)}function zG(Z,K){if(typeof Z!="function")throw new A8(U);return K=K==null?0:j0(r(K),0),t(function(J){var W=J[K],B=N9(J,0,K);if(W)G9(B,W);return G8(Z,this,B)})}function OG(Z,K,J){var W=!0,B=!0;if(typeof Z!="function")throw new A8(U);if(L0(J))W="leading"in J?!!J.leading:W,B="trailing"in J?!!J.trailing:B;return Gq(Z,K,{leading:W,maxWait:K,trailing:B})}function EG(Z){return Jq(Z,1)}function _G(Z,K){return EQ(e4(K),Z)}function wG(){if(!arguments.length)return[];var Z=arguments[0];return n(Z)?Z:[Z]}function NG(Z){return R8(Z,w)}function MG(Z,K){return K=typeof K=="function"?K:Q,R8(Z,w,K)}function LG(Z){return R8(Z,O|w)}function DG(Z,K){return K=typeof K=="function"?K:Q,R8(Z,O|w,K)}function FG(Z,K){return K==null||eK(Z,K,y0(K))}function y8(Z,K){return Z===K||Z!==Z&&K!==K}var IG=$1(p4),AG=$1(function(Z,K){return Z>=K}),h9=$7(function(){return arguments}())?$7:function(Z){return I0(Z)&&Y0.call(Z,"callee")&&!iK.call(Z,"callee")},n=V.isArray,PG=RK?B8(RK):fH;function Z8(Z){return Z!=null&&O1(Z.length)&&!K9(Z)}function A0(Z){return I0(Z)&&Z8(Z)}function RG(Z){return Z===!0||Z===!1||I0(Z)&&s0(Z)==T5}var M9=mY||RQ,VG=VK?B8(VK):bH;function SG(Z){return I0(Z)&&Z.nodeType===1&&!a5(Z)}function xG(Z){if(Z==null)return!0;if(Z8(Z)&&(n(Z)||typeof Z=="string"||typeof Z.splice=="function"||M9(Z)||U5(Z)||h9(Z)))return!Z.length;var K=i0(Z);if(K==f8||K==b8)return!Z.size;if(r5(Z))return!c4(Z).length;for(var J in Z)if(Y0.call(Z,J))return!1;return!0}function TG(Z,K){return l5(Z,K)}function CG(Z,K,J){J=typeof J=="function"?J:Q;var W=J?J(Z,K):Q;return W===Q?l5(Z,K,Q,J):!!W}function _Q(Z){if(!I0(Z))return!1;var K=s0(Z);return K==R6||K==QU||typeof Z.message=="string"&&typeof Z.name=="string"&&!a5(Z)}function jG(Z){return typeof Z=="number"&&sK(Z)}function K9(Z){if(!L0(Z))return!1;var K=s0(Z);return K==V6||K==QK||K==n9||K==KU}function zq(Z){return typeof Z=="number"&&Z==r(Z)}function O1(Z){return typeof Z=="number"&&Z>-1&&Z%1==0&&Z<=H0}function L0(Z){var K=typeof Z;return Z!=null&&(K=="object"||K=="function")}function I0(Z){return Z!=null&&typeof Z=="object"}var Oq=SK?B8(SK):vH;function fG(Z,K){return Z===K||u4(Z,K,JQ(K))}function bG(Z,K,J){return J=typeof J=="function"?J:Q,u4(Z,K,JQ(K),J)}function kG(Z){return Eq(Z)&&Z!=+Z}function vG(Z){if(M3(Z))throw new s($);return J7(Z)}function yG(Z){return Z===null}function gG(Z){return Z==null}function Eq(Z){return typeof Z=="number"||I0(Z)&&s0(Z)==j5}function a5(Z){if(!I0(Z)||s0(Z)!=r8)return!1;var K=p6(Z);if(K===null)return!0;var J=Y0.call(K,"constructor")&&K.constructor;return typeof J=="function"&&J instanceof J&&y6.call(J)==bY}var wQ=xK?B8(xK):yH;function hG(Z){return zq(Z)&&Z>=-H0&&Z<=H0}var _q=TK?B8(TK):gH;function E1(Z){return typeof Z=="string"||!n(Z)&&I0(Z)&&s0(Z)==b5}function O8(Z){return typeof Z=="symbol"||I0(Z)&&s0(Z)==S6}var U5=CK?B8(CK):hH;function mG(Z){return Z===Q}function pG(Z){return I0(Z)&&i0(Z)==k5}function dG(Z){return I0(Z)&&s0(Z)==XU}var uG=$1(i4),cG=$1(function(Z,K){return Z<=K});function wq(Z){if(!Z)return[];if(Z8(Z))return E1(Z)?k8(Z):Q8(Z);if(g5&&Z[g5])return FY(Z[g5]());var K=i0(Z),J=K==f8?j4:K==b8?b6:Y5;return J(Z)}function q9(Z){if(!Z)return Z===0?Z:0;if(Z=x8(Z),Z===F0||Z===-F0){var K=Z<0?-1:1;return K*W8}return Z===Z?Z:0}function r(Z){var K=q9(Z),J=K%1;return K===K?J?K-J:K:0}function Nq(Z){return Z?k9(r(Z),0,u0):0}function x8(Z){if(typeof Z=="number")return Z;if(O8(Z))return D8;if(L0(Z)){var K=typeof Z.valueOf=="function"?Z.valueOf():Z;Z=L0(K)?K+"":K}if(typeof Z!="string")return Z===0?Z:+Z;Z=yK(Z);var J=PU.test(Z);return J||VU.test(Z)?$Y(Z.slice(2),J?2:8):AU.test(Z)?D8:+Z}function Mq(Z){return d8(Z,K8(Z))}function iG(Z){return Z?k9(r(Z),-H0,H0):Z===0?Z:0}function J0(Z){return Z==null?"":z8(Z)}var lG=X5(function(Z,K){if(r5(K)||Z8(K)){d8(K,y0(K),Z);return}for(var J in K)if(Y0.call(K,J))u5(Z,J,K[J])}),Lq=X5(function(Z,K){d8(K,K8(K),Z)}),_1=X5(function(Z,K,J,W){d8(K,K8(K),Z,W)}),sG=X5(function(Z,K,J,W){d8(K,y0(K),Z,W)}),nG=Q9(g4);function rG(Z,K){var J=q5(Z);return K==null?J:tK(J,K)}var oG=t(function(Z,K){Z=G0(Z);var J=-1,W=K.length,B=W>2?K[2]:Q;if(B&&n0(K[0],K[1],B))W=1;while(++J<W){var N=K[J],L=K8(N),I=-1,R=L.length;while(++I<R){var C=L[I],j=Z[C];if(j===Q||y8(j,Q5[C])&&!Y0.call(Z,C))Z[C]=N[C]}}return Z}),aG=t(function(Z){return Z.push(Q,y7),G8(Dq,Q,Z)});function tG(Z,K){return fK(Z,c(K,3),p8)}function eG(Z,K){return fK(Z,c(K,3),m4)}function QB(Z,K){return Z==null?Z:h4(Z,c(K,3),K8)}function ZB(Z,K){return Z==null?Z:q7(Z,c(K,3),K8)}function KB(Z,K){return Z&&p8(Z,c(K,3))}function qB(Z,K){return Z&&m4(Z,c(K,3))}function XB(Z){return Z==null?[]:a6(Z,y0(Z))}function $B(Z){return Z==null?[]:a6(Z,K8(Z))}function NQ(Z,K,J){var W=Z==null?Q:v9(Z,K);return W===Q?J:W}function JB(Z,K){return Z!=null&&m7(Z,K,xH)}function MQ(Z,K){return Z!=null&&m7(Z,K,TH)}var UB=j7(function(Z,K,J){if(K!=null&&typeof K.toString!="function")K=g6.call(K);Z[K]=J},DQ(q8)),YB=j7(function(Z,K,J){if(K!=null&&typeof K.toString!="function")K=g6.call(K);if(Y0.call(Z,K))Z[K].push(J);else Z[K]=[J]},c),HB=t(i5);function y0(Z){return Z8(Z)?oK(Z):c4(Z)}function K8(Z){return Z8(Z)?oK(Z,!0):mH(Z)}function WB(Z,K){var J={};return K=c(K,3),p8(Z,function(W,B,N){t8(J,K(W,B,N),W)}),J}function GB(Z,K){var J={};return K=c(K,3),p8(Z,function(W,B,N){t8(J,B,K(W,B,N))}),J}var BB=X5(function(Z,K,J){t6(Z,K,J)}),Dq=X5(function(Z,K,J,W){t6(Z,K,J,W)}),zB=Q9(function(Z,K){var J={};if(Z==null)return J;var W=!1;if(K=w0(K,function(N){return N=w9(N,Z),W||(W=N.length>1),N}),d8(Z,XQ(Z),J),W)J=R8(J,O|E|w,U3);var B=K.length;while(B--)o4(J,K[B]);return J});function OB(Z,K){return Fq(Z,z1(c(K)))}var EB=Q9(function(Z,K){return Z==null?{}:dH(Z,K)});function Fq(Z,K){if(Z==null)return{};var J=w0(XQ(Z),function(W){return[W]});return K=c(K),z7(Z,J,function(W,B){return K(W,B[0])})}function _B(Z,K,J){K=w9(K,Z);var W=-1,B=K.length;if(!B)B=1,Z=Q;while(++W<B){var N=Z==null?Q:Z[u8(K[W])];if(N===Q)W=B,N=J;Z=K9(N)?N.call(Z):N}return Z}function wB(Z,K,J){return Z==null?Z:s5(Z,K,J)}function NB(Z,K,J,W){return W=typeof W=="function"?W:Q,Z==null?Z:s5(Z,K,J,W)}var Iq=k7(y0),Aq=k7(K8);function MB(Z,K,J){var W=n(Z),B=W||M9(Z)||U5(Z);if(K=c(K,4),J==null){var N=Z&&Z.constructor;if(B)J=W?new N:[];else if(L0(Z))J=K9(N)?q5(p6(Z)):{};else J={}}return(B?I8:p8)(Z,function(L,I,R){return K(J,L,I,R)}),J}function LB(Z,K){return Z==null?!0:o4(Z,K)}function DB(Z,K,J){return Z==null?Z:N7(Z,K,e4(J))}function FB(Z,K,J,W){return W=typeof W=="function"?W:Q,Z==null?Z:N7(Z,K,e4(J),W)}function Y5(Z){return Z==null?[]:C4(Z,y0(Z))}function IB(Z){return Z==null?[]:C4(Z,K8(Z))}function AB(Z,K,J){if(J===Q)J=K,K=Q;if(J!==Q)J=x8(J),J=J===J?J:0;if(K!==Q)K=x8(K),K=K===K?K:0;return k9(x8(Z),K,J)}function PB(Z,K,J){if(K=q9(K),J===Q)J=K,K=0;else J=q9(J);return Z=x8(Z),CH(Z,K,J)}function RB(Z,K,J){if(J&&typeof J!="boolean"&&n0(Z,K,J))K=J=Q;if(J===Q){if(typeof K=="boolean")J=K,K=Q;else if(typeof Z=="boolean")J=Z,Z=Q}if(Z===Q&&K===Q)Z=0,K=1;else if(Z=q9(Z),K===Q)K=Z,Z=0;else K=q9(K);if(Z>K){var W=Z;Z=K,K=W}if(J||Z%1||K%1){var B=nK();return c0(Z+B*(K-Z+XY("1e-"+((B+"").length-1))),K)}return s4(Z,K)}var VB=$5(function(Z,K,J){return K=K.toLowerCase(),Z+(J?Pq(K):K)});function Pq(Z){return LQ(J0(Z).toLowerCase())}function Rq(Z){return Z=J0(Z),Z&&Z.replace(xU,wY).replace(nU,"")}function SB(Z,K,J){Z=J0(Z),K=z8(K);var W=Z.length;J=J===Q?W:k9(r(J),0,W);var B=J;return J-=K.length,J>=0&&Z.slice(J,B)==K}function xB(Z){return Z=J0(Z),Z&&HU.test(Z)?Z.replace(qK,NY):Z}function TB(Z){return Z=J0(Z),Z&&EU.test(Z)?Z.replace(E4,"\\$&"):Z}var CB=$5(function(Z,K,J){return Z+(J?"-":"")+K.toLowerCase()}),jB=$5(function(Z,K,J){return Z+(J?" ":"")+K.toLowerCase()}),fB=x7("toLowerCase");function bB(Z,K,J){Z=J0(Z),K=r(K);var W=K?e9(Z):0;if(!K||W>=K)return Z;var B=(K-W)/2;return X1(i6(B),J)+Z+X1(c6(B),J)}function kB(Z,K,J){Z=J0(Z),K=r(K);var W=K?e9(Z):0;return K&&W<K?Z+X1(K-W,J):Z}function vB(Z,K,J){Z=J0(Z),K=r(K);var W=K?e9(Z):0;return K&&W<K?X1(K-W,J)+Z:Z}function yB(Z,K,J){if(J||K==null)K=0;else if(K)K=+K;return cY(J0(Z).replace(_4,""),K||0)}function gB(Z,K,J){if(J?n0(Z,K,J):K===Q)K=1;else K=r(K);return n4(J0(Z),K)}function hB(){var Z=arguments,K=J0(Z[0]);return Z.length<3?K:K.replace(Z[1],Z[2])}var mB=$5(function(Z,K,J){return Z+(J?"_":"")+K.toLowerCase()});function pB(Z,K,J){if(J&&typeof J!="number"&&n0(Z,K,J))K=J=Q;if(J=J===Q?u0:J>>>0,!J)return[];if(Z=J0(Z),Z&&(typeof K=="string"||K!=null&&!wQ(K))){if(K=z8(K),!K&&t9(Z))return N9(k8(Z),0,J)}return Z.split(K,J)}var dB=$5(function(Z,K,J){return Z+(J?" ":"")+LQ(K)});function uB(Z,K,J){return Z=J0(Z),J=J==null?0:k9(r(J),0,Z.length),K=z8(K),Z.slice(J,J+K.length)==K}function cB(Z,K,J){var W=_.templateSettings;if(J&&n0(Z,K,J))K=Q;Z=J0(Z),K=_1({},K,W,v7);var B=_1({},K.imports,W.imports,v7),N=y0(B),L=C4(B,N),I,R,C=0,j=K.interpolate||x6,f="__p += '",y=f4((K.escape||x6).source+"|"+j.source+"|"+(j===XK?IU:x6).source+"|"+(K.evaluate||x6).source+"|$","g"),d="//# sourceURL="+(Y0.call(K,"sourceURL")?(K.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++eU+"]")+`
|
|
5
|
+
`;Z.replace(y,function(l,e,Z0,E8,r0,_8){if(Z0||(Z0=E8),f+=Z.slice(C,_8).replace(TU,MY),e)I=!0,f+=`' +
|
|
6
6
|
__e(`+e+`) +
|
|
7
|
-
'`;if(
|
|
8
|
-
`+
|
|
7
|
+
'`;if(r0)R=!0,f+=`';
|
|
8
|
+
`+r0+`;
|
|
9
9
|
__p += '`;if(Z0)f+=`' +
|
|
10
10
|
((__t = (`+Z0+`)) == null ? '' : __t) +
|
|
11
|
-
'`;return C=
|
|
12
|
-
`;var
|
|
11
|
+
'`;return C=_8+l.length,l}),f+=`';
|
|
12
|
+
`;var i=Y0.call(K,"variable")&&K.variable;if(!i)f=`with (obj) {
|
|
13
13
|
`+f+`
|
|
14
14
|
}
|
|
15
|
-
`;else if(
|
|
16
|
-
`+(
|
|
17
|
-
`)+"var __t, __p = ''"+(
|
|
15
|
+
`;else if(DU.test(i))throw new s(Y);f=(R?f.replace($U,""):f).replace(JU,"$1").replace(UU,"$1;"),f="function("+(i||"obj")+`) {
|
|
16
|
+
`+(i?"":`obj || (obj = {});
|
|
17
|
+
`)+"var __t, __p = ''"+(I?", __e = _.escape":"")+(R?`, __j = Array.prototype.join;
|
|
18
18
|
function print() { __p += __j.call(arguments, '') }
|
|
19
19
|
`:`;
|
|
20
20
|
`)+f+`return __p
|
|
21
|
-
}`;var a=Aq(function(){return q0(w,d+"return "+f).apply(Q,L)});if(a.source=f,BQ(a))throw a;return a}function uB(Z){return X0(Z).toLowerCase()}function cB(Z){return X0(Z).toUpperCase()}function lB(Z,K,J){if(Z=X0(Z),Z&&(J||K===Q))return kK(Z);if(!Z||!(K=$8(K)))return Z;var W=V8(Z),B=V8(K),w=vK(W,B),L=yK(W,B)+1;return z9(W,w,L).join("")}function iB(Z,K,J){if(Z=X0(Z),Z&&(J||K===Q))return Z.slice(0,hK(Z)+1);if(!Z||!(K=$8(K)))return Z;var W=V8(Z),B=yK(W,V8(K))+1;return z9(W,0,B).join("")}function sB(Z,K,J){if(Z=X0(Z),Z&&(J||K===Q))return Z.replace(B4,"");if(!Z||!(K=$8(K)))return Z;var W=V8(Z),B=vK(W,V8(K));return z9(W,B).join("")}function nB(Z,K){var J=$0,W=W0;if(M0(K)){var B="separator"in K?K.separator:B;J="length"in K?r(K.length):J,W="omission"in K?$8(K.omission):W}Z=X0(Z);var w=Z.length;if(o9(Z)){var L=V8(Z);w=L.length}if(J>=w)return Z;var F=J-a9(W);if(F<1)return W;var A=L?z9(L,0,F).join(""):Z.slice(0,F);if(B===Q)return A+W;if(L)F+=A.length-F;if(zQ(B)){if(Z.slice(F).search(B)){var C,j=A;if(!B.global)B=x4(B.source,X0(qK.exec(B))+"g");B.lastIndex=0;while(C=B.exec(j))var f=C.index;A=A.slice(0,f===Q?F:f)}}else if(Z.indexOf($8(B),F)!=F){var v=A.lastIndexOf(B);if(v>-1)A=A.slice(0,v)}return A+W}function rB(Z){return Z=X0(Z),Z&&JU.test(Z)?Z.replace(QK,PY):Z}var oB=q5(function(Z,K,J){return Z+(J?" ":"")+K.toUpperCase()}),_Q=V7("toUpperCase");function Iq(Z,K,J){if(Z=X0(Z),K=J?Q:K,K===Q)return NY(Z)?VY(Z):WY(Z);return Z.match(K)||[]}var Aq=t(function(Z,K){try{return q8(Z,Q,K)}catch(J){return BQ(J)?J:new s(J)}}),aB=n8(function(Z,K){return E8(K,function(J){J=v8(J),i8(Z,J,WQ(Z[J],Z))}),Z});function tB(Z){var K=Z==null?0:Z.length,J=u();return Z=!K?[]:z0(Z,function(W){if(typeof W[1]!="function")throw new _8(U);return[J(W[0]),W[1]]}),t(function(W){var B=-1;while(++B<K){var w=Z[B];if(q8(w[0],this,W))return q8(w[1],this,W)}})}function eB(Z){return PH(w8(Z,O))}function MQ(Z){return function(){return Z}}function Q2(Z,K){return Z==null||Z!==Z?K:Z}var Z2=x7(),K2=x7(!0);function t0(Z){return Z}function wQ(Z){return $7(typeof Z=="function"?Z:w8(Z,O))}function q2(Z){return U7(w8(Z,O))}function X2(Z,K){return Y7(Z,w8(K,O))}var $2=t(function(Z,K){return function(J){return c5(J,Z,K)}}),J2=t(function(Z,K){return function(J){return c5(Z,J,K)}});function NQ(Z,K,J){var W=f0(K),B=a6(K,W);if(J==null&&!(M0(K)&&(B.length||!W.length)))J=K,K=Z,Z=this,B=a6(K,f0(K));var w=!(M0(J)&&("chain"in J))||!!J.chain,L=o8(Z);return E8(B,function(F){var A=K[F];if(Z[F]=A,L)Z.prototype[F]=function(){var C=this.__chain__;if(w||C){var j=Z(this.__wrapped__),f=j.__actions__=r0(this.__actions__);return f.push({func:A,args:arguments,thisArg:Z}),j.__chain__=C,j}return A.apply(Z,J9([this.value()],arguments))}}),Z}function U2(){if(j0._===this)j0._=fY;return this}function LQ(){}function Y2(Z){return Z=r(Z),t(function(K){return H7(K,Z)})}var H2=a4(z0),W2=a4(TK),G2=a4(F4);function Vq(Z){return XQ(Z)?R4(v8(Z)):pH(Z)}function B2(Z){return function(K){return Z==null?Q:j9(Z,K)}}var z2=C7(),O2=C7(!0);function DQ(){return[]}function FQ(){return!1}function E2(){return{}}function _2(){return""}function M2(){return!0}function w2(Z,K){if(Z=r(Z),Z<1||Z>C0)return[];var J=K8,W=h0(Z,K8);K=u(K),Z-=K8;var B=A4(W,K);while(++J<Z)K(J);return B}function N2(Z){if(n(Z))return z0(Z,v8);return J8(Z)?[Z]:r0(s7(X0(Z)))}function L2(Z){var K=++CY;return X0(Z)+K}var D2=q1(function(Z,K){return Z+K},0),F2=t4("ceil"),R2=q1(function(Z,K){return Z/K},1),P2=t4("floor");function I2(Z){return Z&&Z.length?o6(Z,t0,y4):Q}function A2(Z,K){return Z&&Z.length?o6(Z,u(K,2),y4):Q}function V2(Z){return fK(Z,t0)}function S2(Z,K){return fK(Z,u(K,2))}function x2(Z){return Z&&Z.length?o6(Z,t0,p4):Q}function T2(Z,K){return Z&&Z.length?o6(Z,u(K,2),p4):Q}var C2=q1(function(Z,K){return Z*K},1),j2=t4("round"),f2=q1(function(Z,K){return Z-K},0);function b2(Z){return Z&&Z.length?I4(Z,t0):0}function k2(Z,K){return Z&&Z.length?I4(Z,u(K,2)):0}if(E.after=qG,E.ary=Xq,E.assign=cG,E.assignIn=wq,E.assignInWith=_1,E.assignWith=lG,E.at=iG,E.before=$q,E.bind=WQ,E.bindAll=aB,E.bindKey=Jq,E.castArray=EG,E.chain=Zq,E.chunk=P3,E.compact=I3,E.concat=A3,E.cond=tB,E.conforms=eB,E.constant=MQ,E.countBy=bW,E.create=sG,E.curry=Uq,E.curryRight=Yq,E.debounce=Hq,E.defaults=nG,E.defaultsDeep=rG,E.defer=XG,E.delay=$G,E.difference=V3,E.differenceBy=S3,E.differenceWith=x3,E.drop=T3,E.dropRight=C3,E.dropRightWhile=j3,E.dropWhile=f3,E.fill=b3,E.filter=vW,E.flatMap=hW,E.flatMapDeep=mW,E.flatMapDepth=pW,E.flatten=a7,E.flattenDeep=k3,E.flattenDepth=v3,E.flip=JG,E.flow=Z2,E.flowRight=K2,E.fromPairs=y3,E.functions=KB,E.functionsIn=qB,E.groupBy=dW,E.initial=h3,E.intersection=m3,E.intersectionBy=p3,E.intersectionWith=d3,E.invert=$B,E.invertBy=JB,E.invokeMap=cW,E.iteratee=wQ,E.keyBy=lW,E.keys=f0,E.keysIn=a0,E.map=W1,E.mapKeys=YB,E.mapValues=HB,E.matches=q2,E.matchesProperty=X2,E.memoize=B1,E.merge=WB,E.mergeWith=Nq,E.method=$2,E.methodOf=J2,E.mixin=NQ,E.negate=z1,E.nthArg=Y2,E.omit=GB,E.omitBy=BB,E.once=UG,E.orderBy=iW,E.over=H2,E.overArgs=YG,E.overEvery=W2,E.overSome=G2,E.partial=GQ,E.partialRight=Wq,E.partition=sW,E.pick=zB,E.pickBy=Lq,E.property=Vq,E.propertyOf=B2,E.pull=i3,E.pullAll=e7,E.pullAllBy=s3,E.pullAllWith=n3,E.pullAt=r3,E.range=z2,E.rangeRight=O2,E.rearg=HG,E.reject=oW,E.remove=o3,E.rest=WG,E.reverse=YQ,E.sampleSize=tW,E.set=EB,E.setWith=_B,E.shuffle=eW,E.slice=a3,E.sortBy=KG,E.sortedUniq=XW,E.sortedUniqBy=$W,E.split=hB,E.spread=GG,E.tail=JW,E.take=UW,E.takeRight=YW,E.takeRightWhile=HW,E.takeWhile=WW,E.tap=IW,E.throttle=BG,E.thru=H1,E.toArray=Eq,E.toPairs=Dq,E.toPairsIn=Fq,E.toPath=N2,E.toPlainObject=Mq,E.transform=MB,E.unary=zG,E.union=GW,E.unionBy=BW,E.unionWith=zW,E.uniq=OW,E.uniqBy=EW,E.uniqWith=_W,E.unset=wB,E.unzip=HQ,E.unzipWith=Qq,E.update=NB,E.updateWith=LB,E.values=J5,E.valuesIn=DB,E.without=MW,E.words=Iq,E.wrap=OG,E.xor=wW,E.xorBy=NW,E.xorWith=LW,E.zip=DW,E.zipObject=FW,E.zipObjectDeep=RW,E.zipWith=PW,E.entries=Dq,E.entriesIn=Fq,E.extend=wq,E.extendWith=_1,NQ(E,E),E.add=D2,E.attempt=Aq,E.camelCase=IB,E.capitalize=Rq,E.ceil=F2,E.clamp=FB,E.clone=_G,E.cloneDeep=wG,E.cloneDeepWith=NG,E.cloneWith=MG,E.conformsTo=LG,E.deburr=Pq,E.defaultTo=Q2,E.divide=R2,E.endsWith=AB,E.eq=x8,E.escape=VB,E.escapeRegExp=SB,E.every=kW,E.find=yW,E.findIndex=r7,E.findKey=oG,E.findLast=gW,E.findLastIndex=o7,E.findLastKey=aG,E.floor=P2,E.forEach=Kq,E.forEachRight=qq,E.forIn=tG,E.forInRight=eG,E.forOwn=QB,E.forOwnRight=ZB,E.get=OQ,E.gt=DG,E.gte=FG,E.has=XB,E.hasIn=EQ,E.head=t7,E.identity=t0,E.includes=uW,E.indexOf=g3,E.inRange=RB,E.invoke=UB,E.isArguments=k9,E.isArray=n,E.isArrayBuffer=RG,E.isArrayLike=o0,E.isArrayLikeObject=N0,E.isBoolean=PG,E.isBuffer=O9,E.isDate=IG,E.isElement=AG,E.isEmpty=VG,E.isEqual=SG,E.isEqualWith=xG,E.isError=BQ,E.isFinite=TG,E.isFunction=o8,E.isInteger=Gq,E.isLength=O1,E.isMap=Bq,E.isMatch=CG,E.isMatchWith=jG,E.isNaN=fG,E.isNative=bG,E.isNil=vG,E.isNull=kG,E.isNumber=zq,E.isObject=M0,E.isObjectLike=w0,E.isPlainObject=o5,E.isRegExp=zQ,E.isSafeInteger=yG,E.isSet=Oq,E.isString=E1,E.isSymbol=J8,E.isTypedArray=$5,E.isUndefined=gG,E.isWeakMap=hG,E.isWeakSet=mG,E.join=u3,E.kebabCase=xB,E.last=L8,E.lastIndexOf=c3,E.lowerCase=TB,E.lowerFirst=CB,E.lt=pG,E.lte=dG,E.max=I2,E.maxBy=A2,E.mean=V2,E.meanBy=S2,E.min=x2,E.minBy=T2,E.stubArray=DQ,E.stubFalse=FQ,E.stubObject=E2,E.stubString=_2,E.stubTrue=M2,E.multiply=C2,E.nth=l3,E.noConflict=U2,E.noop=LQ,E.now=G1,E.pad=jB,E.padEnd=fB,E.padStart=bB,E.parseInt=kB,E.random=PB,E.reduce=nW,E.reduceRight=rW,E.repeat=vB,E.replace=yB,E.result=OB,E.round=j2,E.runInContext=I,E.sample=aW,E.size=QG,E.snakeCase=gB,E.some=ZG,E.sortedIndex=t3,E.sortedIndexBy=e3,E.sortedIndexOf=QW,E.sortedLastIndex=ZW,E.sortedLastIndexBy=KW,E.sortedLastIndexOf=qW,E.startCase=mB,E.startsWith=pB,E.subtract=f2,E.sum=b2,E.sumBy=k2,E.template=dB,E.times=w2,E.toFinite=a8,E.toInteger=r,E.toLength=_q,E.toLower=uB,E.toNumber=D8,E.toSafeInteger=uG,E.toString=X0,E.toUpper=cB,E.trim=lB,E.trimEnd=iB,E.trimStart=sB,E.truncate=nB,E.unescape=rB,E.uniqueId=L2,E.upperCase=oB,E.upperFirst=_Q,E.each=Kq,E.eachRight=qq,E.first=t7,NQ(E,function(){var Z={};return b8(E,function(K,J){if(!J0.call(E.prototype,J))Z[J]=K}),Z}(),{chain:!1}),E.VERSION=q,E8(["bind","bindKey","curry","curryRight","partial","partialRight"],function(Z){E[Z].placeholder=E}),E8(["drop","take"],function(Z,K){Q0.prototype[Z]=function(J){J=J===Q?1:V0(r(J),0);var W=this.__filtered__&&!K?new Q0(this):this.clone();if(W.__filtered__)W.__takeCount__=h0(J,W.__takeCount__);else W.__views__.push({size:h0(J,K8),type:Z+(W.__dir__<0?"Right":"")});return W},Q0.prototype[Z+"Right"]=function(J){return this.reverse()[Z](J).reverse()}}),E8(["filter","map","takeWhile"],function(Z,K){var J=K+1,W=J==q9||J==I9;Q0.prototype[Z]=function(B){var w=this.clone();return w.__iteratees__.push({iteratee:u(B,3),type:J}),w.__filtered__=w.__filtered__||W,w}}),E8(["head","last"],function(Z,K){var J="take"+(K?"Right":"");Q0.prototype[Z]=function(){return this[J](1).value()[0]}}),E8(["initial","tail"],function(Z,K){var J="drop"+(K?"":"Right");Q0.prototype[Z]=function(){return this.__filtered__?new Q0(this):this[J](1)}}),Q0.prototype.compact=function(){return this.filter(t0)},Q0.prototype.find=function(Z){return this.filter(Z).head()},Q0.prototype.findLast=function(Z){return this.reverse().find(Z)},Q0.prototype.invokeMap=t(function(Z,K){if(typeof Z=="function")return new Q0(this);return this.map(function(J){return c5(J,Z,K)})}),Q0.prototype.reject=function(Z){return this.filter(z1(u(Z)))},Q0.prototype.slice=function(Z,K){Z=r(Z);var J=this;if(J.__filtered__&&(Z>0||K<0))return new Q0(J);if(Z<0)J=J.takeRight(-Z);else if(Z)J=J.drop(Z);if(K!==Q)K=r(K),J=K<0?J.dropRight(-K):J.take(K-Z);return J},Q0.prototype.takeRightWhile=function(Z){return this.reverse().takeWhile(Z).reverse()},Q0.prototype.toArray=function(){return this.take(K8)},b8(Q0.prototype,function(Z,K){var J=/^(?:filter|find|map|reject)|While$/.test(K),W=/^(?:head|last)$/.test(K),B=E[W?"take"+(K=="last"?"Right":""):K],w=W||/^find/.test(K);if(!B)return;E.prototype[K]=function(){var L=this.__wrapped__,F=W?[1]:arguments,A=L instanceof Q0,C=F[0],j=A||n(L),f=function(e){var Z0=B.apply(E,J9([e],F));return W&&v?Z0[0]:Z0};if(j&&J&&typeof C=="function"&&C.length!=1)A=j=!1;var v=this.__chain__,d=!!this.__actions__.length,c=w&&!v,a=A&&!d;if(!w&&j){L=a?L:new Q0(this);var l=Z.apply(L,F);return l.__actions__.push({func:H1,args:[f],thisArg:Q}),new M8(l,v)}if(c&&a)return Z.apply(this,F);return l=this.thru(f),c?W?l.value()[0]:l.value():l}}),E8(["pop","push","shift","sort","splice","unshift"],function(Z){var K=k6[Z],J=/^(?:push|sort|unshift)$/.test(Z)?"tap":"thru",W=/^(?:pop|shift)$/.test(Z);E.prototype[Z]=function(){var B=arguments;if(W&&!this.__chain__){var w=this.value();return K.apply(n(w)?w:[],B)}return this[J](function(L){return K.apply(n(L)?L:[],B)})}}),b8(Q0.prototype,function(Z,K){var J=E[K];if(J){var W=J.name+"";if(!J0.call(Q5,W))Q5[W]=[];Q5[W].push({name:K,func:J})}}),Q5[K1(Q,P).name]=[{name:"wrapper",func:Q}],Q0.prototype.clone=rY,Q0.prototype.reverse=oY,Q0.prototype.value=aY,E.prototype.at=AW,E.prototype.chain=VW,E.prototype.commit=SW,E.prototype.next=xW,E.prototype.plant=CW,E.prototype.reverse=jW,E.prototype.toJSON=E.prototype.valueOf=E.prototype.value=fW,E.prototype.first=E.prototype.head,y5)E.prototype[y5]=TW;return E},Y9=SY();if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)j0._=Y9,define(function(){return Y9});else if(V9)(V9.exports=Y9)._=Y9,w4._=Y9;else j0._=Y9}).call(a5)});function E0(Q,q){let X=Q.length;if(!Array.isArray(Q[0]))Q=[Q];if(!Array.isArray(q[0]))q=q.map((H)=>[H]);let $=q[0].length,U=q[0].map((H,G)=>q.map((z)=>z[G])),Y=Q.map((H)=>U.map((G)=>{let z=0;if(!Array.isArray(H)){for(let O of G)z+=H*O;return z}for(let O=0;O<H.length;O++)z+=H[O]*(G[O]||0);return z}));if(X===1)Y=Y[0];if($===1)return Y.map((H)=>H[0]);return Y}function X6(Q){return E9(Q)==="string"}function E9(Q){return(Object.prototype.toString.call(Q).match(/^\[object\s+(.*?)\]$/)[1]||"").toLowerCase()}function V1(Q,{precision:q,unit:X}){if(_9(Q))return"none";return TX(Q,q)+(X??"")}function _9(Q){return Number.isNaN(Q)||Q instanceof Number&&Q?.none}function R0(Q){return _9(Q)?0:Q}function TX(Q,q){if(Q===0)return 0;let X=~~Q,$=0;if(X&&q)$=~~Math.log10(Math.abs(X))+1;let U=10**(q-$);return Math.floor(Q*U+0.5)/U}function CX(Q){if(!Q)return;Q=Q.trim();let q=/^([a-z]+)\((.+?)\)$/i,X=/^-?[\d.]+$/,$=/%|deg|g?rad|turn$/,U=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,Y=Q.match(q);if(Y){let H=[];return Y[2].replace(U,(G,z)=>{let O=z.match($),_=z;if(O){let M=O[0],N=_.slice(0,-M.length);if(M==="%")_=new Number(N/100),_.type="<percentage>";else _=new Number(N*u2[M]),_.type="<angle>",_.unit=M}else if(X.test(_))_=new Number(_),_.type="<number>";else if(_==="none")_=new Number(NaN),_.none=!0;if(G.startsWith("/"))_=_ instanceof Number?_:new Number(_),_.alpha=!0;if(typeof _==="object"&&_ instanceof Number)_.raw=z;H.push(_)}),{name:Y[1].toLowerCase(),rawName:Y[1],rawArgs:Y[2],args:H}}}function jX(Q){return Q[Q.length-1]}function Z6(Q,q,X){if(isNaN(Q))return q;if(isNaN(q))return Q;return Q+(q-Q)*X}function fX(Q,q,X){return(X-Q)/(q-Q)}function uQ(Q,q,X){return Z6(q[0],q[1],fX(Q[0],Q[1],X))}function bX(Q){return Q.map((q)=>{return q.split("|").map((X)=>{X=X.trim();let $=X.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if($){let U=new String($[1]);return U.range=[+$[2],+$[3]],U}return X})})}function kX(Q,q,X){return Math.max(Math.min(X,q),Q)}function C1(Q,q){return Math.sign(Q)===Math.sign(q)?Q:-Q}function y8(Q,q){return C1(Math.abs(Q)**q,Q)}function cQ(Q,q){return q===0?0:Q/q}function vX(Q,q,X=0,$=Q.length){while(X<$){let U=X+$>>1;if(Q[U]<q)X=U+1;else $=U}return X}class yX{add(Q,q,X){if(typeof arguments[0]!="string"){for(var Q in arguments[0])this.add(Q,arguments[0][Q],arguments[1]);return}(Array.isArray(Q)?Q:[Q]).forEach(function($){if(this[$]=this[$]||[],q)this[$][X?"unshift":"push"](q)},this)}run(Q,q){this[Q]=this[Q]||[],this[Q].forEach(function(X){X.call(q&&q.context?q.context:q,q)})}}function kQ(Q){if(Array.isArray(Q))return Q;return l0[Q]}function S1(Q,q,X,$={}){if(Q=kQ(Q),q=kQ(q),!Q||!q)throw TypeError(`Missing white point to convert ${!Q?"from":""}${!Q&&!q?"/":""}${!q?"to":""}`);if(Q===q)return X;let U={W1:Q,W2:q,XYZ:X,options:$};if(M9.run("chromatic-adaptation-start",U),!U.M){if(U.W1===l0.D65&&U.W2===l0.D50)U.M=[[1.0479297925449969,0.022946870601609652,-0.05019226628920524],[0.02962780877005599,0.9904344267538799,-0.017073799063418826],[-0.009243040646204504,0.015055191490298152,0.7518742814281371]];else if(U.W1===l0.D50&&U.W2===l0.D65)U.M=[[0.955473421488075,-0.02309845494876471,0.06325924320057072],[-0.0283697093338637,1.0099953980813041,0.021041441191917323],[0.012314014864481998,-0.020507649298898964,1.330365926242124]]}if(M9.run("chromatic-adaptation-end",U),U.M)return E0(U.M,U.XYZ);else throw TypeError("Only Bradford CAT with white points D50 and D65 supported for now.")}function fq(Q,q,X,$){return Object.entries(Q.coords).map(([Y,H],G)=>{let z=q.coordGrammar[G],O=$[G],_=O?.type,M;if(O.none)M=z.find((R)=>l2.has(R));else M=z.find((R)=>R==_);if(!M){let R=H.name||Y;throw TypeError(`${_??O.raw} not allowed for ${R} in ${X}()`)}let N=M.range;if(_==="<percentage>")N||=[0,1];let D=H.range||H.refRange;if(N&&D)$[G]=uQ(N,D,$[G]);return M})}function gX(Q,{meta:q}={}){let X={str:String(Q)?.trim()};if(M9.run("parse-start",X),X.color)return X.color;if(X.parsed=CX(X.str),X.parsed){let $=X.parsed.name;if($==="color"){let U=X.parsed.args.shift(),Y=U.startsWith("--")?U.substring(2):`--${U}`,H=[U,Y],G=X.parsed.rawArgs.indexOf("/")>0?X.parsed.args.pop():1;for(let _ of m.all){let M=_.getFormat("color");if(M){if(H.includes(M.id)||M.ids?.filter((N)=>H.includes(N)).length){let N=Object.keys(_.coords).map((R,P)=>X.parsed.args[P]||0),D;if(M.coordGrammar)D=fq(_,M,"color",N);if(q)Object.assign(q,{formatId:"color",types:D});if(M.id.startsWith("--")&&!U.startsWith("--"))G8.warn(`${_.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${M.id}) instead of color(${U}).`);if(U.startsWith("--")&&!M.id.startsWith("--"))G8.warn(`${_.name} is a standard space and supported in the CSS spec. Use color(${M.id}) instead of prefixed color(${U}).`);return{spaceId:_.id,coords:N,alpha:G}}}}let z="",O=U in m.registry?U:Y;if(O in m.registry){let _=m.registry[O].formats?.color?.id;if(_)z=`Did you mean color(${_})?`}throw TypeError(`Cannot parse color(${U}). `+(z||"Missing a plugin?"))}else for(let U of m.all){let Y=U.getFormat($);if(Y&&Y.type==="function"){let H=1;if(Y.lastAlpha||jX(X.parsed.args).alpha)H=X.parsed.args.pop();let G=X.parsed.args,z;if(Y.coordGrammar)z=fq(U,Y,$,G);if(q)Object.assign(q,{formatId:Y.name,types:z});return{spaceId:U.id,coords:G,alpha:H}}}}else for(let $ of m.all)for(let U in $.formats){let Y=$.formats[U];if(Y.type!=="custom")continue;if(Y.test&&!Y.test(X.str))continue;let H=Y.parse(X.str);if(H){if(H.alpha??=1,q)q.formatId=U;return H}}throw TypeError(`Could not parse ${Q} as a color. Missing a plugin?`)}function o(Q){if(Array.isArray(Q))return Q.map(o);if(!Q)throw TypeError("Empty color reference");if(X6(Q))Q=gX(Q);let q=Q.space||Q.spaceId;if(!(q instanceof m))Q.space=m.get(q);if(Q.alpha===void 0)Q.alpha=1;return Q}function s2(Q){let q=[Q];for(let X=Q;X=X.base;)q.push(X);return q}function bq(Q,{coords:q}={}){if(Q.coords&&!Q.coordGrammar){Q.type||="function",Q.name||="color",Q.coordGrammar=bX(Q.coords);let X=Object.entries(q).map(([$,U],Y)=>{let H=Q.coordGrammar[Y][0],G=U.range||U.refRange,z=H.range,O="";if(H=="<percentage>")z=[0,100],O="%";else if(H=="<angle>")O="deg";return{fromRange:G,toRange:z,suffix:O}});Q.serializeCoords=($,U)=>{return $.map((Y,H)=>{let{fromRange:G,toRange:z,suffix:O}=X[H];if(G&&z)Y=uQ(G,z,Y);return Y=V1(Y,{precision:U,unit:O}),Y})}}return Q}function $6(Q,q){if(Q=o(Q),!q||Q.space.equals(q))return Q.coords.slice();return q=m.get(q),q.from(Q)}function H8(Q,q){Q=o(Q);let{space:X,index:$}=m.resolveCoord(q,Q.space);return $6(Q,X)[$]}function lQ(Q,q,X){return Q=o(Q),q=m.get(q),Q.coords=q.to(Q.space,X),Q}function e8(Q,q,X){if(Q=o(Q),arguments.length===2&&E9(arguments[1])==="object"){let $=arguments[1];for(let U in $)e8(Q,U,$[U])}else{if(typeof X==="function")X=X(H8(Q,q));let{space:$,index:U}=m.resolveCoord(q,Q.space),Y=$6(Q,$);Y[U]=X,lQ(Q,$,Y)}return Q}function g8(Q){return(Q%360+360)%360}function r2(Q,q){if(Q==="raw")return q;let[X,$]=q.map(g8),U=$-X;if(Q==="increasing"){if(U<0)$+=360}else if(Q==="decreasing"){if(U>0)X+=360}else if(Q==="longer"){if(-180<U&&U<180)if(U>0)X+=360;else $+=360}else if(Q==="shorter"){if(U>180)X+=360;else if(U<-180)$+=360}return[X,$]}function gq(Q){let q=Q*Q;return q*q*q*Q}function hX(Q,q,{kL:X=1,kC:$=1,kH:U=1}={}){[Q,q]=o([Q,q]);let[Y,H,G]=W8.from(Q),z=K6.from(W8,[Y,H,G])[1],[O,_,M]=W8.from(q),N=K6.from(W8,[O,_,M])[1];if(z<0)z=0;if(N<0)N=0;let D=(z+N)/2,R=gq(D),P=0.5*(1-Math.sqrt(R/(R+vq))),S=(1+P)*H,T=(1+P)*_,b=Math.sqrt(S**2+G**2),k=Math.sqrt(T**2+M**2),y=S===0&&G===0?0:Math.atan2(G,S),g=T===0&&M===0?0:Math.atan2(M,T);if(y<0)y+=2*x1;if(g<0)g+=2*x1;y*=yq,g*=yq;let i=O-Y,p=k-b,$0=g-y,W0=y+g,F0=Math.abs($0),d8;if(b*k===0)d8=0;else if(F0<=180)d8=$0;else if($0>180)d8=$0-360;else if($0<-180)d8=$0+360;else G8.warn("the unthinkable has happened");let q9=2*Math.sqrt(k*b)*Math.sin(d8*Y5/2),S5=(Y+O)/2,I9=(b+k)/2,f8=gq(I9),C0;if(b*k===0)C0=W0;else if(F0<=180)C0=W0/2;else if(W0<360)C0=(W0+360)/2;else C0=(W0-360)/2;let P6=(S5-50)**2,c9=1+0.015*P6/Math.sqrt(20+P6),K8=1+0.045*I9,A9=1;A9-=0.17*Math.cos((C0-30)*Y5),A9+=0.24*Math.cos(2*C0*Y5),A9+=0.32*Math.cos((3*C0+6)*Y5),A9-=0.2*Math.cos((4*C0-63)*Y5);let I6=1+0.015*I9*A9,Z4=30*Math.exp(-1*((C0-275)/25)**2),X9=2*Math.sqrt(f8/(f8+vq)),l9=-1*Math.sin(2*Z4*Y5)*X9,i9=(i/(X*c9))**2;return i9+=(p/($*K8))**2,i9+=(q9/(U*I6))**2,i9+=l9*(p/($*K8))*(q9/(U*I6)),Math.sqrt(i9)}function vQ(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=B5.from(Q),[Y,H,G]=B5.from(q),z=X-Y,O=$-H,_=U-G;return Math.sqrt(z**2+O**2+_**2)}function y9(Q,q,{epsilon:X=Qz}={}){if(Q=o(Q),!q)q=Q.space;q=m.get(q);let $=Q.coords;if(q!==Q.space)$=q.from(Q);return q.inGamut($,{epsilon:X})}function z5(Q){return{space:Q.space,coords:Q.coords.slice(),alpha:Q.alpha}}function mX(Q,q,X="lab"){X=m.get(X);let $=X.from(Q),U=X.from(q);return Math.sqrt($.reduce((Y,H,G)=>{let z=U[G];if(isNaN(H)||isNaN(z))return Y;return Y+(z-H)**2},0))}function Zz(Q,q){return mX(Q,q,"lab")}function qz(Q,q,{l:X=2,c:$=1}={}){[Q,q]=o([Q,q]);let[U,Y,H]=W8.from(Q),[,G,z]=K6.from(W8,[U,Y,H]),[O,_,M]=W8.from(q),N=K6.from(W8,[O,_,M])[1];if(G<0)G=0;if(N<0)N=0;let D=U-O,R=G-N,P=Y-_,S=H-M,T=P**2+S**2-R**2,b=0.511;if(U>=16)b=0.040975*U/(1+0.01765*U);let k=0.0638*G/(1+0.0131*G)+0.638,y;if(Number.isNaN(z))z=0;if(z>=164&&z<=345)y=0.56+Math.abs(0.2*Math.cos((z+168)*hq));else y=0.36+Math.abs(0.4*Math.cos((z+35)*hq));let g=Math.pow(G,4),i=Math.sqrt(g/(g+1900)),p=k*(i*y+1-i),$0=(D/(X*b))**2;return $0+=(R/($*k))**2,$0+=T/p**2,Math.sqrt($0)}function Wz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=yQ.from(Q),[Y,H,G]=yQ.from(q),z=X-Y,O=$-H;if(Number.isNaN(U)&&Number.isNaN(G))U=0,G=0;else if(Number.isNaN(U))U=G;else if(Number.isNaN(G))G=U;let _=U-G,M=2*Math.sqrt($*H)*Math.sin(_/2*(Math.PI/180));return Math.sqrt(z**2+O**2+M**2)}function Mz(Q){let q=Q.map(function(X){let $=dX+uX*(X/1e4)**iq,U=1+cX*(X/1e4)**iq;return($/U)**Gz});return E0(Oz,q)}function wz(Q){return E0(Ez,Q).map(function($){let U=Math.max($**sq-dX,0),Y=uX-cX*$**sq;return 1e4*(U/Y)**Bz})}function Nz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=gQ.from(Q),[Y,H,G]=gQ.from(q);return 720*Math.sqrt((X-Y)**2+0.25*($-H)**2+(U-G)**2)}function sX(Q,q){return Q.map(($)=>{let U=y8(q*Math.abs($)*0.01,lX);return 400*C1(U,$)/(U+27.13)})}function Iz(Q,q){let X=100/q*27.13**nq;return Q.map(($)=>{let U=Math.abs($);return C1(X*y8(U/(400-U),nq),$)})}function Az(Q){let q=g8(Q);if(q<=v9.h[0])q+=360;let X=vX(v9.h,q)-1,[$,U]=v9.h.slice(X,X+2),[Y,H]=v9.e.slice(X,X+2),G=v9.H[X],z=(q-$)/Y;return G+100*z/(z+(U-q)/H)}function Vz(Q){let q=(Q%400+400)%400,X=Math.floor(0.01*q);q=q%100;let[$,U]=v9.h.slice(X,X+2),[Y,H]=v9.e.slice(X,X+2);return g8((q*(H*$-Y*U)-100*$*H)/(q*(H-Y)-100*H))}function nX(Q,q,X,$,U){let Y={};Y.discounting=U,Y.refWhite=Q,Y.surround=$;let H=Q.map((P)=>{return P*100});Y.la=q,Y.yb=X;let G=H[1],z=E0(iX,H);$=Rz[Y.surround];let O=$[0];Y.c=$[1],Y.nc=$[2];let M=(1/(5*Y.la+1))**4;Y.fl=M*Y.la+0.1*(1-M)*(1-M)*Math.cbrt(5*Y.la),Y.flRoot=Y.fl**0.25,Y.n=Y.yb/G,Y.z=1.48+Math.sqrt(Y.n),Y.nbb=0.725*Y.n**-0.2,Y.ncb=Y.nbb;let N=U?1:Math.max(Math.min(O*(1-0.2777777777777778*Math.exp((-Y.la-42)/92)),1),0);Y.dRgb=z.map((P)=>{return Z6(1,G/P,N)}),Y.dRgbInv=Y.dRgb.map((P)=>{return 1/P});let D=z.map((P,S)=>{return P*Y.dRgb[S]}),R=sX(D,Y.fl);return Y.aW=Y.nbb*(2*R[0]+R[1]+0.05*R[2]),Y}function hQ(Q,q){if(!(Q.J!==void 0^Q.Q!==void 0))throw Error("Conversion requires one and only one: 'J' or 'Q'");if(!(Q.C!==void 0^Q.M!==void 0^Q.s!==void 0))throw Error("Conversion requires one and only one: 'C', 'M' or 's'");if(!(Q.h!==void 0^Q.H!==void 0))throw Error("Conversion requires one and only one: 'h' or 'H'");if(Q.J===0||Q.Q===0)return[0,0,0];let X=0;if(Q.h!==void 0)X=g8(Q.h)*rq;else X=Vz(Q.H)*rq;let $=Math.cos(X),U=Math.sin(X),Y=0;if(Q.J!==void 0)Y=y8(Q.J,0.5)*0.1;else if(Q.Q!==void 0)Y=0.25*q.c*Q.Q/((q.aW+4)*q.flRoot);let H=0;if(Q.C!==void 0)H=Q.C/Y;else if(Q.M!==void 0)H=Q.M/q.flRoot/Y;else if(Q.s!==void 0)H=0.0004*Q.s**2*(q.aW+4)/q.c;let G=y8(H*Math.pow(1.64-Math.pow(0.29,q.n),-0.73),1.1111111111111112),z=0.25*(Math.cos(X+2)+3.8),O=q.aW*y8(Y,2/q.c/q.z),_=3846.153846153846*q.nc*q.ncb*z,M=O/q.nbb,N=23*(M+0.305)*cQ(G,23*_+G*(11*$+108*U)),D=N*$,R=N*U,P=Iz(E0(Fz,[M,D,R]).map((S)=>{return S*1/1403}),q.fl);return E0(Dz,P.map((S,T)=>{return S*q.dRgbInv[T]})).map((S)=>{return S/100})}function rX(Q,q){let X=Q.map((k)=>{return k*100}),$=sX(E0(iX,X).map((k,y)=>{return k*q.dRgb[y]}),q.fl),U=$[0]+(-12*$[1]+$[2])/11,Y=($[0]+$[1]-2*$[2])/9,H=(Math.atan2(Y,U)%VQ+VQ)%VQ,G=0.25*(Math.cos(H+2)+3.8),z=3846.153846153846*q.nc*q.ncb*cQ(G*Math.sqrt(U**2+Y**2),$[0]+$[1]+1.05*$[2]+0.305),O=y8(z,0.9)*Math.pow(1.64-Math.pow(0.29,q.n),0.73),_=q.nbb*(2*$[0]+$[1]+0.05*$[2]),M=y8(_/q.aW,0.5*q.c*q.z),N=100*y8(M,2),D=4/q.c*M*(q.aW+4)*q.flRoot,R=O*M,P=R*q.flRoot,S=g8(H*Pz),T=Az(S),b=50*y8(q.c*O/(q.aW+4),0.5);return{J:N,C:R,h:S,s:b,Q:D,M:P,H:T}}function Cz(Q){return 116*(Q>Tz?Math.cbrt(Q):(oX*Q+16)/116)-16}function mQ(Q){return Q>8?Math.pow((Q+16)/116,3):Q/oX}function jz(Q,q){let[X,$,U]=Q,Y=[],H=0;if(U===0)return[0,0,0];let G=mQ(U);if(U>0)H=0.00379058511492914*U**2+0.608983189401032*U+0.9155088574762233;else H=0.000009514440756550361*U**2+0.08693057439788597*U-21.928975842194614;let z=0.000000000002,O=15,_=0,M=1/0;while(_<=O){Y=hQ({J:H,C:$,h:X},q);let N=Math.abs(Y[1]-G);if(N<M){if(N<=z)return Y;M=N}H=H-(Y[1]-G)*H/(2*Y[1]),_+=1}return hQ({J:H,C:$,h:X},q)}function fz(Q,q){let X=Cz(Q[1]);if(X===0)return[0,0,0];let $=rX(Q,nQ);return[g8($.h),$.C,X]}function tq(Q){if(Q[1]<0)Q=q6.fromBase(q6.toBase(Q));let q=Math.log(Math.max(1+aq[2]*Q[1]*nQ.flRoot,1))/aq[2],X=Q[0]*bz,$=q*Math.cos(X),U=q*Math.sin(X);return[Q[2],$,U]}function kz(Q,q){[Q,q]=o([Q,q]);let[X,$,U]=tq(q6.from(Q)),[Y,H,G]=tq(q6.from(q));return Math.sqrt((X-Y)**2+($-H)**2+(U-G)**2)}function vz(Q){let q=!Q?0:Math.floor(Math.log10(Math.abs(Q)));return Math.max(parseFloat(`1e${q-2}`),0.000001)}function w9(Q,{method:q=G8.gamut_mapping,space:X=void 0,deltaEMethod:$="",jnd:U=2,blackWhiteClamp:Y={}}={}){if(Q=o(Q),X6(arguments[1]))X=arguments[1];else if(!X)X=Q.space;if(X=m.get(X),y9(Q,X,{epsilon:0}))return Q;let H;if(q==="css")H=yz(Q,{space:X});else{if(q!=="clip"&&!y9(Q,X)){if(Object.prototype.hasOwnProperty.call(eq,q))({method:q,jnd:U,deltaEMethod:$,blackWhiteClamp:Y}=eq[q]);let G=hX;if($!==""){for(let O in O5)if("deltae"+$.toLowerCase()===O.toLowerCase()){G=O5[O];break}}let z=w9(O0(Q,X),{method:"clip",space:X});if(G(Q,z)>U){if(Object.keys(Y).length===3){let b=m.resolveCoord(Y.channel),k=H8(O0(Q,b.space),b.id);if(_9(k))k=0;if(k>=Y.max)return O0({space:"xyz-d65",coords:l0.D65},Q.space);else if(k<=Y.min)return O0({space:"xyz-d65",coords:[0,0,0]},Q.space)}let O=m.resolveCoord(q),_=O.space,M=O.id,N=O0(Q,_);N.coords.forEach((b,k)=>{if(_9(b))N.coords[k]=0});let R=(O.range||O.refRange)[0],P=vz(U),S=R,T=H8(N,M);while(T-S>P){let b=z5(N);if(b=w9(b,{space:X,method:"clip"}),G(N,b)-U<P)S=H8(N,M);else T=H8(N,M);e8(N,M,(S+T)/2)}H=O0(N,X)}else H=z}else H=O0(Q,X);if(q==="clip"||!y9(H,X,{epsilon:0})){let G=Object.values(X.coords).map((z)=>z.range||[]);H.coords=H.coords.map((z,O)=>{let[_,M]=G[O];if(_!==void 0)z=Math.max(_,z);if(M!==void 0)z=Math.min(z,M);return z})}}if(X!==Q.space)H=O0(H,Q.space);return Q.coords=H.coords,Q}function yz(Q,{space:q}={}){if(Q=o(Q),!q)q=Q.space;q=m.get(q);let U=m.get("oklch");if(q.isUnbounded)return O0(Q,q);let Y=O0(Q,U),H=Y.coords[0];if(H>=1){let R=O0(QX.WHITE,q);return R.alpha=Q.alpha,O0(R,q)}if(H<=0){let R=O0(QX.BLACK,q);return R.alpha=Q.alpha,O0(R,q)}if(y9(Y,q,{epsilon:0}))return O0(Y,q);function G(R){let P=O0(R,q),S=Object.values(q.coords);return P.coords=P.coords.map((T,b)=>{if("range"in S[b]){let[k,y]=S[b].range;return kX(k,T,y)}return T}),P}let z=0,O=Y.coords[1],_=!0,M=z5(Y),N=G(M),D=vQ(N,M);if(D<0.02)return N;while(O-z>0.0001){let R=(z+O)/2;if(M.coords[1]=R,_&&y9(M,q,{epsilon:0}))z=R;else if(N=G(M),D=vQ(N,M),D<0.02)if(0.02-D<0.0001)break;else _=!1,z=R;else O=R}return N}function O0(Q,q,{inGamut:X}={}){Q=o(Q),q=m.get(q);let $=q.from(Q),U={space:q,coords:$,alpha:Q.alpha};if(X)U=w9(U,X===!0?void 0:X);return U}function Q6(Q,{precision:q=G8.precision,format:X="default",inGamut:$=!0,...U}={}){let Y;Q=o(Q);let H=X;X=Q.space.getFormat(X)??Q.space.getFormat("default")??m.DEFAULT_FORMAT;let G=Q.coords.slice();if($||=X.toGamut,$&&!y9(Q))G=w9(z5(Q),$===!0?void 0:$).coords;if(X.type==="custom")if(U.precision=q,X.serialize)Y=X.serialize(G,Q.alpha,U);else throw TypeError(`format ${H} can only be used to parse colors, not for serialization`);else{let z=X.name||"color";if(X.serializeCoords)G=X.serializeCoords(G,q);else if(q!==null)G=G.map((N)=>{return V1(N,{precision:q})});let O=[...G];if(z==="color"){let N=X.id||X.ids?.[0]||Q.space.id;O.unshift(N)}let _=Q.alpha;if(q!==null)_=V1(_,{precision:q});let M=Q.alpha>=1||X.noAlpha?"":`${X.commas?",":" /"} ${_}`;Y=`${z}(${O.join(X.commas?", ":" ")}${M})`}return Y}function cz(Q,{space:q=G8.display_space,...X}={}){let $=Q6(Q,X);if(typeof CSS>"u"||CSS.supports("color",$)||!G8.display_space)$=new String($),$.color=Q;else{let U=Q;if(Q.coords.some(_9)||_9(Q.alpha)){if(!(uz??=CSS.supports("color","hsl(none 50% 50%)"))){if(U=z5(Q),U.coords=U.coords.map(R0),U.alpha=R0(U.alpha),$=Q6(U,X),CSS.supports("color",$))return $=new String($),$.color=U,$}}U=O0(U,q),$=new String(Q6(U,X)),$.color=U}return $}function lz(Q,q){return Q=o(Q),q=o(q),Q.space===q.space&&Q.alpha===q.alpha&&Q.coords.every((X,$)=>X===q.coords[$])}function N9(Q){return H8(Q,[g0,"y"])}function Z$(Q,q){e8(Q,[g0,"y"],q)}function iz(Q){Object.defineProperty(Q.prototype,"luminance",{get(){return N9(this)},set(q){Z$(this,q)}})}function nz(Q,q){Q=o(Q),q=o(q);let X=Math.max(N9(Q),0),$=Math.max(N9(q),0);if($>X)[X,$]=[$,X];return(X+0.05)/($+0.05)}function UX(Q){if(Q>=$X)return Q;return Q+($X-Q)**ez}function H5(Q){let q=Q<0?-1:1,X=Math.abs(Q);return q*Math.pow(X,2.4)}function XO(Q,q){q=o(q),Q=o(Q);let X,$,U,Y,H,G;q=O0(q,"srgb"),[Y,H,G]=q.coords;let z=H5(Y)*0.2126729+H5(H)*0.7151522+H5(G)*0.072175;Q=O0(Q,"srgb"),[Y,H,G]=Q.coords;let O=H5(Y)*0.2126729+H5(H)*0.7151522+H5(G)*0.072175,_=UX(z),M=UX(O),N=M>_;if(Math.abs(M-_)<ZO)$=0;else if(N)X=M**rz-_**oz,$=X*KO;else X=M**tz-_**az,$=X*qO;if(Math.abs($)<QO)U=0;else if($>0)U=$-JX;else U=$+JX;return U*100}function $O(Q,q){Q=o(Q),q=o(q);let X=Math.max(N9(Q),0),$=Math.max(N9(q),0);if($>X)[X,$]=[$,X];let U=X+$;return U===0?0:(X-$)/U}function UO(Q,q){Q=o(Q),q=o(q);let X=Math.max(N9(Q),0),$=Math.max(N9(q),0);if($>X)[X,$]=[$,X];return $===0?JO:(X-$)/$}function YO(Q,q){Q=o(Q),q=o(q);let X=H8(Q,[W8,"l"]),$=H8(q,[W8,"l"]);return Math.abs(X-$)}function WO(Q,q){Q=o(Q),q=o(q);let X=H8(Q,[pQ,"l"]),$=H8(q,[pQ,"l"]),U=Math.abs(Math.pow(X,xQ)-Math.pow($,xQ)),Y=Math.pow(U,1/xQ)*Math.SQRT2-40;return Y<7.5?0:Y}function GO(Q,q,X={}){if(X6(X))X={algorithm:X};let{algorithm:$,...U}=X;if(!$){let Y=Object.keys(A1).map((H)=>H.replace(/^contrast/,"")).join(", ");throw TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${Y}`)}Q=o(Q),q=o(q);for(let Y in A1)if("contrast"+$.toLowerCase()===Y.toLowerCase())return A1[Y](Q,q,U);throw TypeError(`Unknown contrast algorithm: ${$}`)}function f1(Q){let[q,X,$]=$6(Q,g0),U=q+15*X+3*$;return[4*q/U,9*X/U]}function K$(Q){let[q,X,$]=$6(Q,g0),U=q+X+$;return[q/U,X/U]}function BO(Q){Object.defineProperty(Q.prototype,"uv",{get(){return f1(this)}}),Object.defineProperty(Q.prototype,"xy",{get(){return K$(this)}})}function e5(Q,q,X={}){if(X6(X))X={method:X};let{method:$=G8.deltaE,...U}=X;for(let Y in O5)if("deltae"+$.toLowerCase()===Y.toLowerCase())return O5[Y](Q,q,U);throw TypeError(`Unknown deltaE method: ${$}`)}function OO(Q,q=0.25){let $=[m.get("oklch","lch"),"l"];return e8(Q,$,(U)=>U*(1+q))}function EO(Q,q=0.25){let $=[m.get("oklch","lch"),"l"];return e8(Q,$,(U)=>U*(1-q))}function q$(Q,q,X=0.5,$={}){if([Q,q]=[o(Q),o(q)],E9(X)==="object")[X,$]=[0.5,X];return J6(Q,q,$)(X)}function X$(Q,q,X={}){let $;if(rQ(Q))[$,X]=[Q,q],[Q,q]=$.rangeArgs.colors;let{maxDeltaE:U,deltaEMethod:Y,steps:H=2,maxSteps:G=1000,...z}=X;if(!$)[Q,q]=[o(Q),o(q)],$=J6(Q,q,z);let O=e5(Q,q),_=U>0?Math.max(H,Math.ceil(O/U)+1):H,M=[];if(G!==void 0)_=Math.min(_,G);if(_===1)M=[{p:0.5,color:$(0.5)}];else{let N=1/(_-1);M=Array.from({length:_},(D,R)=>{let P=R*N;return{p:P,color:$(P)}})}if(U>0){let N=M.reduce((D,R,P)=>{if(P===0)return 0;let S=e5(R.color,M[P-1].color,Y);return Math.max(D,S)},0);while(N>U){N=0;for(let D=1;D<M.length&&M.length<G;D++){let R=M[D-1],P=M[D],S=(P.p+R.p)/2,T=$(S);N=Math.max(N,e5(T,R.color),e5(T,P.color)),M.splice(D,0,{p:S,color:$(S)}),D++}}}return M=M.map((N)=>N.color),M}function J6(Q,q,X={}){if(rQ(Q)){let[z,O]=[Q,q];return J6(...z.rangeArgs.colors,{...z.rangeArgs.options,...O})}let{space:$,outputSpace:U,progression:Y,premultiplied:H}=X;Q=o(Q),q=o(q),Q=z5(Q),q=z5(q);let G={colors:[Q,q],options:X};if($)$=m.get($);else $=m.registry[G8.interpolationSpace]||Q.space;if(U=U?m.get(U):$,Q=O0(Q,$),q=O0(q,$),Q=w9(Q),q=w9(q),$.coords.h&&$.coords.h.type==="angle"){let z=X.hue=X.hue||"shorter",O=[$,"h"],[_,M]=[H8(Q,O),H8(q,O)];if(isNaN(_)&&!isNaN(M))_=M;else if(isNaN(M)&&!isNaN(_))M=_;[_,M]=r2(z,[_,M]),e8(Q,O,_),e8(q,O,M)}if(H)Q.coords=Q.coords.map((z)=>z*Q.alpha),q.coords=q.coords.map((z)=>z*q.alpha);return Object.assign((z)=>{z=Y?Y(z):z;let O=Q.coords.map((N,D)=>{let R=q.coords[D];return Z6(N,R,z)}),_=Z6(Q.alpha,q.alpha,z),M={space:$,coords:O,alpha:_};if(H)M.coords=M.coords.map((N)=>N/_);if(U!==$)M=O0(M,U);return M},{rangeArgs:G})}function rQ(Q){return E9(Q)==="function"&&!!Q.rangeArgs}function MO(Q){Q.defineFunction("mix",q$,{returns:"color"}),Q.defineFunction("range",J6,{returns:"function<color>"}),Q.defineFunction("steps",X$,{returns:"array<color>"})}function W5(Q,q,X){let $=q/(Math.sin(X)-Q*Math.cos(X));return $<0?1/0:$}function T1(Q){let q=Math.pow(Q+16,3)/1560896,X=q>TO?q:Q/CO,$=X*(284517*BX-94839*TQ),U=X*(838422*TQ+769860*zX+731718*BX),Y=X*(632260*TQ-126452*zX),H=X*(284517*OX-94839*CQ),G=X*(838422*CQ+769860*EX+731718*OX),z=X*(632260*CQ-126452*EX),O=X*(284517*_X-94839*jQ),_=X*(838422*jQ+769860*MX+731718*_X),M=X*(632260*jQ-126452*MX);return{r0s:$/Y,r0i:U*Q/Y,r1s:$/(Y+126452),r1i:(U-769860)*Q/(Y+126452),g0s:H/z,g0i:G*Q/z,g1s:H/(z+126452),g1i:(G-769860)*Q/(z+126452),b0s:O/M,b0i:_*Q/M,b1s:O/(M+126452),b1i:(_-769860)*Q/(M+126452)}}function wX(Q,q){let X=q/360*Math.PI*2,$=W5(Q.r0s,Q.r0i,X),U=W5(Q.r1s,Q.r1i,X),Y=W5(Q.g0s,Q.g0i,X),H=W5(Q.g1s,Q.g1i,X),G=W5(Q.b0s,Q.b0i,X),z=W5(Q.b1s,Q.b1i,X);return Math.min($,U,Y,H,G,z)}function G5(Q,q){return Math.abs(q)/Math.sqrt(Math.pow(Q,2)+1)}function NX(Q){let q=G5(Q.r0s,Q.r0i),X=G5(Q.r1s,Q.r1i),$=G5(Q.g0s,Q.g0i),U=G5(Q.g1s,Q.g1i),Y=G5(Q.b0s,Q.b0i),H=G5(Q.b1s,Q.b1i);return Math.min(q,X,$,U,Y,H)}function b1({id:Q,toCone_M:q,fromCone_M:X}){G$[Q]=arguments[0]}function B$(Q,q,X="Bradford"){let $=G$[X],[U,Y,H]=E0($.toCone_M,Q),[G,z,O]=E0($.toCone_M,q),_=[[G/U,0,0],[0,z/Y,0],[0,0,O/H]],M=E0(_,$.toCone_M);return E0($.fromCone_M,M)}class K0{constructor(...Q){let q;if(Q.length===1)q=o(Q[0]);let X,$,U;if(q)X=q.space||q.spaceId,$=q.coords,U=q.alpha;else[X,$,U]=Q;Object.defineProperty(this,"space",{value:m.get(X),writable:!1,enumerable:!0,configurable:!0}),this.coords=$?$.slice():[0,0,0],this.alpha=U>1||U===void 0?1:U<0?0:U;for(let Y=0;Y<this.coords.length;Y++)if(this.coords[Y]==="NaN")this.coords[Y]=NaN;for(let Y in this.space.coords)Object.defineProperty(this,Y,{get:()=>this.get(Y),set:(H)=>this.set(Y,H)})}get spaceId(){return this.space.id}clone(){return new K0(this.space,this.coords,this.alpha)}toJSON(){return{spaceId:this.spaceId,coords:this.coords,alpha:this.alpha}}display(...Q){let q=cz(this,...Q);return q.color=new K0(q.color),q}static get(Q,...q){if(Q instanceof K0)return Q;return new K0(Q,...q)}static defineFunction(Q,q,X=q){let{instance:$=!0,returns:U}=X,Y=function(...H){let G=q(...H);if(U==="color")G=K0.get(G);else if(U==="function<color>"){let z=G;G=function(...O){let _=z(...O);return K0.get(_)},Object.assign(G,z)}else if(U==="array<color>")G=G.map((z)=>K0.get(z));return G};if(!(Q in K0))K0[Q]=Y;if($)K0.prototype[Q]=function(...H){return Y(this,...H)}}static defineFunctions(Q){for(let q in Q)K0.defineFunction(q,Q[q],Q[q])}static extend(Q){if(Q.register)Q.register(K0);else for(let q in Q)K0.defineFunction(q,Q[q])}}function dQ(Q,q){let X=Q.replace(/-/g,"_");Object.defineProperty(K0.prototype,X,{get(){let $=this.getAll(Q);if(typeof Proxy>"u")return $;return new Proxy($,{has:(U,Y)=>{try{return m.resolveCoord([q,Y]),!0}catch(H){}return Reflect.has(U,Y)},get:(U,Y,H)=>{if(Y&&typeof Y!=="symbol"&&!(Y in U)){let{index:G}=m.resolveCoord([q,Y]);if(G>=0)return U[G]}return Reflect.get(U,Y,H)},set:(U,Y,H,G)=>{if(Y&&typeof Y!=="symbol"&&!(Y in U)||Y>=0){let{index:z}=m.resolveCoord([q,Y]);if(z>=0)return U[z]=H,this.setAll(Q,U),!0}return Reflect.set(U,Y,H,G)}})},set($){this.setAll(Q,$)},configurable:!0,enumerable:!0})}var u2,c2,M9,G8,l0,l2,i2=0.000075,m,g0,i0,iQ,n2=0.008856451679035631,kq=0.20689655172413793,w1=903.2962962962963,IQ,W8,K6,vq=6103515625,x1,yq,Y5,o2,a2,t2,e2,B5,Qz=0.000075,Kz,hq,mq=203,sQ,N1=1.15,L1=0.66,pq=0.1593017578125,Xz=6.277394636015326,dq=0.8359375,uq=18.8515625,cq=18.6875,$z=134.03437499999998,lq=0.007460772656268216,D1=-0.56,AQ=0.000000000016295499532821565,Jz,Uz,Yz,Hz,pX,yQ,dX=0.8359375,uX=18.8515625,cX=18.6875,iq=0.1593017578125,Gz=78.84375,Bz=6.277394636015326,sq=0.012683313515655966,zz,Oz,Ez,_z,gQ,Lz,lX=0.42,nq,VQ,iX,Dz,Fz,Rz,v9,Pz,rq,oq,Sz,xz,Tz=0.008856451679035631,oX=903.2962962962963,nQ,q6,bz,aq,O5,eq,QX,gz,hz,j1,F1=1.09929682680944,ZX=0.018053968510807,aX,mz,pz,tX,dz,x0,eX,KX,qX,XX,E5,Q$,uz,sz,rz=0.56,oz=0.57,az=0.62,tz=0.65,$X=0.022,ez=1.414,QO=0.1,ZO=0.0005,KO=1.14,JX=0.027,qO=1.14,JO=50000,HO=0.008856451679035631,YX=0.20689655172413793,R1=903.2962962962963,SQ,pQ,xQ,A1,zO,_O,wO,$$,J$,NO,LO,DO,U$,FO,RO,PO,Y$,IO=0.001953125,AO=0.03125,VO,SO,H$,xO=0.008856451679035631,HX=903.2962962962963,WX,GX,W$,oQ,TO=0.008856451679035631,CO=903.2962962962963,BX,zX,TQ,OX,EX,CQ,_X,MX,jQ,jO,fO,LX=203,DX=0.1593017578125,bO=6.277394636015326,kO=78.84375,FX=0.012683313515655966,RX=0.8359375,PX=18.8515625,IX=18.6875,vO,AX=0.17883277,VX=0.28466892,SX=0.55991073,fQ=3.7743,yO,G$,gO,hO,z$,P1=0.0000152587890625,bQ=-0.35828683,I1,mO,xX;var aQ=S0(()=>{u2={deg:1,grad:0.9,rad:180/Math.PI,turn:360};c2=Object.freeze({__proto__:null,bisectLeft:vX,clamp:kX,copySign:C1,interpolate:Z6,interpolateInv:fX,isNone:_9,isString:X6,last:jX,mapRange:uQ,multiplyMatrices:E0,parseCoordGrammar:bX,parseFunction:CX,serializeNumber:V1,skipNone:R0,spow:y8,toPrecision:TX,type:E9,zdiv:cQ});M9=new yX,G8={gamut_mapping:"css",precision:5,deltaE:"76",verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!=="test",warn:function(q){if(this.verbose)globalThis?.console?.warn?.(q)}},l0={D50:[0.9642956764295677,1,0.8251046025104602],D65:[0.9504559270516716,1,1.0890577507598784]};l2=new Set(["<number>","<percentage>","<angle>"]);m=class m{constructor(Q){if(this.id=Q.id,this.name=Q.name,this.base=Q.base?m.get(Q.base):null,this.aliases=Q.aliases,this.base)this.fromBase=Q.fromBase,this.toBase=Q.toBase;let q=Q.coords??this.base.coords;for(let $ in q)if(!("name"in q[$]))q[$].name=$;this.coords=q;let X=Q.white??this.base.white??"D65";this.white=kQ(X),this.formats=Q.formats??{};for(let $ in this.formats){let U=this.formats[$];U.type||="function",U.name||=$}if(!this.formats.color?.id)this.formats.color={...this.formats.color??{},id:Q.cssId||this.id};if(Q.gamutSpace)this.gamutSpace=Q.gamutSpace==="self"?this:m.get(Q.gamutSpace);else if(this.isPolar)this.gamutSpace=this.base;else this.gamutSpace=this;if(this.gamutSpace.isUnbounded)this.inGamut=($,U)=>{return!0};this.referred=Q.referred,Object.defineProperty(this,"path",{value:s2(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),M9.run("colorspace-init-end",this)}inGamut(Q,{epsilon:q=i2}={}){if(!this.equals(this.gamutSpace))return Q=this.to(this.gamutSpace,Q),this.gamutSpace.inGamut(Q,{epsilon:q});let X=Object.values(this.coords);return Q.every(($,U)=>{let Y=X[U];if(Y.type!=="angle"&&Y.range){if(Number.isNaN($))return!0;let[H,G]=Y.range;return(H===void 0||$>=H-q)&&(G===void 0||$<=G+q)}return!0})}get isUnbounded(){return Object.values(this.coords).every((Q)=>!("range"in Q))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let Q in this.coords)if(this.coords[Q].type==="angle")return!0;return!1}getFormat(Q){if(typeof Q==="object")return Q=bq(Q,this),Q;let q;if(Q==="default")q=Object.values(this.formats)[0];else q=this.formats[Q];if(q)return q=bq(q,this),q;return null}equals(Q){if(!Q)return!1;return this===Q||this.id===Q||this.id===Q.id}to(Q,q){if(arguments.length===1){let H=o(Q);[Q,q]=[H.space,H.coords]}if(Q=m.get(Q),this.equals(Q))return q;q=q.map((H)=>Number.isNaN(H)?0:H);let X=this.path,$=Q.path,U,Y;for(let H=0;H<X.length;H++)if(X[H].equals($[H]))U=X[H],Y=H;else break;if(!U)throw Error(`Cannot convert between color spaces ${this} and ${Q}: no connection space was found`);for(let H=X.length-1;H>Y;H--)q=X[H].toBase(q);for(let H=Y+1;H<$.length;H++)q=$[H].fromBase(q);return q}from(Q,q){if(arguments.length===1){let X=o(Q);[Q,q]=[X.space,X.coords]}return Q=m.get(Q),Q.to(this,q)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let Q=[];for(let q in this.coords){let X=this.coords[q],$=X.range||X.refRange;Q.push($?.min??0)}return Q}static registry={};static get all(){return[...new Set(Object.values(m.registry))]}static register(Q,q){if(arguments.length===1)q=arguments[0],Q=q.id;if(q=this.get(q),this.registry[Q]&&this.registry[Q]!==q)throw Error(`Duplicate color space registration: '${Q}'`);if(this.registry[Q]=q,arguments.length===1&&q.aliases)for(let X of q.aliases)this.register(X,q);return q}static get(Q,...q){if(!Q||Q instanceof m)return Q;if(E9(Q)==="string"){let $=m.registry[Q.toLowerCase()];if(!$)throw TypeError(`No color space found with id = "${Q}"`);return $}if(q.length)return m.get(...q);throw TypeError(`${Q} is not a valid color space`)}static resolveCoord(Q,q){let X=E9(Q),$,U;if(X==="string")if(Q.includes("."))[$,U]=Q.split(".");else[$,U]=[,Q];else if(Array.isArray(Q))[$,U]=Q;else $=Q.space,U=Q.coordId;if($=m.get($),!$)$=q;if(!$)throw TypeError(`Cannot resolve coordinate reference ${Q}: No color space specified and relative references are not allowed here`);if(X=E9(U),X==="number"||X==="string"&&U>=0){let G=Object.entries($.coords)[U];if(G)return{space:$,id:G[0],index:U,...G[1]}}$=m.get($);let Y=U.toLowerCase(),H=0;for(let G in $.coords){let z=$.coords[G];if(G.toLowerCase()===Y||z.name?.toLowerCase()===Y)return{space:$,id:G,index:H,...z};H++}throw TypeError(`No "${U}" coordinate found in ${$.name}. Its coordinates are: ${Object.keys($.coords).join(", ")}`)}static DEFAULT_FORMAT={type:"functions",name:"color"}};g0=new m({id:"xyz-d65",name:"XYZ D65",coords:{x:{name:"X"},y:{name:"Y"},z:{name:"Z"}},white:"D65",formats:{color:{ids:["xyz-d65","xyz"]}},aliases:["xyz"]});i0=class i0 extends m{constructor(Q){if(!Q.coords)Q.coords={r:{range:[0,1],name:"Red"},g:{range:[0,1],name:"Green"},b:{range:[0,1],name:"Blue"}};if(!Q.base)Q.base=g0;if(Q.toXYZ_M&&Q.fromXYZ_M)Q.toBase??=(q)=>{let X=E0(Q.toXYZ_M,q);if(this.white!==this.base.white)X=S1(this.white,this.base.white,X);return X},Q.fromBase??=(q)=>{return q=S1(this.base.white,this.white,q),E0(Q.fromXYZ_M,q)};Q.referred??="display";super(Q)}};lQ.returns="color";e8.returns="color";iQ=new m({id:"xyz-d50",name:"XYZ D50",white:"D50",base:g0,fromBase:(Q)=>S1(g0.white,"D50",Q),toBase:(Q)=>S1("D50",g0.white,Q)}),IQ=l0.D50,W8=new m({id:"lab",name:"Lab",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:IQ,base:iQ,fromBase(Q){let X=Q.map(($,U)=>$/IQ[U]).map(($)=>$>n2?Math.cbrt($):(w1*$+16)/116);return[116*X[1]-16,500*(X[0]-X[1]),200*(X[1]-X[2])]},toBase(Q){let q=[];return q[1]=(Q[0]+16)/116,q[0]=Q[1]/500+q[1],q[2]=q[1]-Q[2]/200,[q[0]>kq?Math.pow(q[0],3):(116*q[0]-16)/w1,Q[0]>8?Math.pow((Q[0]+16)/116,3):Q[0]/w1,q[2]>kq?Math.pow(q[2],3):(116*q[2]-16)/w1].map(($,U)=>$*IQ[U])},formats:{lab:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});K6=new m({id:"lch",name:"LCH",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,150],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:W8,fromBase(Q){let[q,X,$]=Q,U,Y=0.02;if(Math.abs(X)<0.02&&Math.abs($)<0.02)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),g8(U)]},toBase(Q){let[q,X,$]=Q;if(X<0)X=0;if(isNaN($))$=0;return[q,X*Math.cos($*Math.PI/180),X*Math.sin($*Math.PI/180)]},formats:{lch:{coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),x1=Math.PI,yq=180/x1,Y5=x1/180;o2=[[0.819022437996703,0.3619062600528904,-0.1288737815209879],[0.0329836539323885,0.9292868615863434,0.0361446663506424],[0.0481771893596242,0.2642395317527308,0.6335478284694309]],a2=[[1.2268798758459243,-0.5578149944602171,0.2813910456659647],[-0.0405757452148008,1.112286803280317,-0.0717110580655164],[-0.0763729366746601,-0.4214933324022432,1.5869240198367816]],t2=[[0.210454268309314,0.7936177747023054,-0.0040720430116193],[1.9779985324311684,-2.42859224204858,0.450593709617411],[0.0259040424655478,0.7827717124575296,-0.8086757549230774]],e2=[[1,0.3963377773761749,0.2158037573099136],[1,-0.1055613458156586,-0.0638541728258133],[1,-0.0894841775298119,-1.2914855480194092]],B5=new m({id:"oklab",name:"Oklab",coords:{l:{refRange:[0,1],name:"Lightness"},a:{refRange:[-0.4,0.4]},b:{refRange:[-0.4,0.4]}},white:"D65",base:g0,fromBase(Q){let X=E0(o2,Q).map(($)=>Math.cbrt($));return E0(t2,X)},toBase(Q){let X=E0(e2,Q).map(($)=>$**3);return E0(a2,X)},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});Kz=Math.PI,hq=Kz/180;sQ=new m({id:"xyz-abs-d65",cssId:"--xyz-abs-d65",name:"Absolute XYZ D65",coords:{x:{refRange:[0,9504.7],name:"Xa"},y:{refRange:[0,1e4],name:"Ya"},z:{refRange:[0,10888.3],name:"Za"}},base:g0,fromBase(Q){return Q.map((q)=>Math.max(q*mq,0))},toBase(Q){return Q.map((q)=>Math.max(q/mq,0))}}),Jz=[[0.41478972,0.579999,0.014648],[-0.20151,1.120649,0.0531008],[-0.0166008,0.2648,0.6684799]],Uz=[[1.9242264357876067,-1.0047923125953657,0.037651404030618],[0.35031676209499907,0.7264811939316552,-0.06538442294808501],[-0.09098281098284752,-0.3127282905230739,1.5227665613052603]],Yz=[[0.5,0.5,0],[3.524,-4.066708,0.542708],[0.199076,1.096799,-1.295875]],Hz=[[1,0.1386050432715393,0.05804731615611886],[0.9999999999999999,-0.1386050432715393,-0.05804731615611886],[0.9999999999999998,-0.09601924202631895,-0.8118918960560388]],pX=new m({id:"jzazbz",name:"Jzazbz",coords:{jz:{refRange:[0,1],name:"Jz"},az:{refRange:[-0.5,0.5]},bz:{refRange:[-0.5,0.5]}},base:sQ,fromBase(Q){let[q,X,$]=Q,U=N1*q-(N1-1)*$,Y=L1*X-(L1-1)*q,G=E0(Jz,[U,Y,$]).map(function(N){let D=dq+uq*(N/1e4)**pq,R=1+cq*(N/1e4)**pq;return(D/R)**$z}),[z,O,_]=E0(Yz,G);return[(1+D1)*z/(1+D1*z)-AQ,O,_]},toBase(Q){let[q,X,$]=Q,U=(q+AQ)/(1+D1-D1*(q+AQ)),H=E0(Hz,[U,X,$]).map(function(N){let D=dq-N**lq,R=cq*N**lq-uq;return 1e4*(D/R)**Xz}),[G,z,O]=E0(Uz,H),_=(G+(N1-1)*O)/N1,M=(z+(L1-1)*_)/L1;return[_,M,O]},formats:{color:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),yQ=new m({id:"jzczhz",name:"JzCzHz",coords:{jz:{refRange:[0,1],name:"Jz"},cz:{refRange:[0,1],name:"Chroma"},hz:{refRange:[0,360],type:"angle",name:"Hue"}},base:pX,fromBase(Q){let[q,X,$]=Q,U,Y=0.0002;if(Math.abs(X)<0.0002&&Math.abs($)<0.0002)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),g8(U)]},toBase(Q){return[Q[0],Q[1]*Math.cos(Q[2]*Math.PI/180),Q[1]*Math.sin(Q[2]*Math.PI/180)]}});zz=[[0.3592832590121217,0.6976051147779502,-0.035891593232029],[-0.1920808463704993,1.100476797037432,0.0753748658519118],[0.0070797844607479,0.0748396662186362,0.8433265453898765]],Oz=[[0.5,0.5,0],[1.61376953125,-3.323486328125,1.709716796875],[4.378173828125,-4.24560546875,-0.132568359375]],Ez=[[0.9999999999999998,0.0086090370379328,0.111029625003026],[0.9999999999999998,-0.0086090370379328,-0.1110296250030259],[0.9999999999999998,0.5600313357106791,-0.3206271749873188]],_z=[[2.0701522183894223,-1.3263473389671563,0.2066510476294053],[0.3647385209748072,0.6805660249472273,-0.0453045459220347],[-0.0497472075358123,-0.0492609666966131,1.1880659249923042]],gQ=new m({id:"ictcp",name:"ICTCP",coords:{i:{refRange:[0,1],name:"I"},ct:{refRange:[-0.5,0.5],name:"CT"},cp:{refRange:[-0.5,0.5],name:"CP"}},base:sQ,fromBase(Q){let q=E0(zz,Q);return Mz(q)},toBase(Q){let q=wz(Q);return E0(_z,q)}});Lz=l0.D65,nq=1/lX,VQ=2*Math.PI,iX=[[0.401288,0.650173,-0.051461],[-0.250268,1.204414,0.045854],[-0.002079,0.048952,0.953127]],Dz=[[1.8620678550872327,-1.0112546305316843,0.14918677544445175],[0.38752654323613717,0.6214474419314753,-0.008973985167612518],[-0.015841498849333856,-0.03412293802851557,1.0499644368778496]],Fz=[[460,451,288],[460,-891,-261],[460,-220,-6300]],Rz={dark:[0.8,0.525,0.8],dim:[0.9,0.59,0.9],average:[1,0.69,1]},v9={h:[20.14,90,164.25,237.53,380.14],e:[0.8,0.7,1,1.2,0.8],H:[0,100,200,300,400]},Pz=180/Math.PI,rq=Math.PI/180;oq=nX(Lz,64/Math.PI*0.2,20,"average",!1);Sz=new m({id:"cam16-jmh",cssId:"--cam16-jmh",name:"CAM16-JMh",coords:{j:{refRange:[0,100],name:"J"},m:{refRange:[0,105],name:"Colorfulness"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:g0,fromBase(Q){let q=rX(Q,oq);return[q.J,q.M,q.h]},toBase(Q){return hQ({J:Q[0],M:Q[1],h:Q[2]},oq)}}),xz=l0.D65;nQ=nX(xz,200/Math.PI*mQ(50),mQ(50)*100,"average",!1),q6=new m({id:"hct",name:"HCT",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},c:{refRange:[0,145],name:"Colorfulness"},t:{refRange:[0,100],name:"Tone"}},base:g0,fromBase(Q){return fz(Q)},toBase(Q){return jz(Q,nQ)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),bz=Math.PI/180,aq=[1,0.007,0.0228];O5={deltaE76:Zz,deltaECMC:qz,deltaE2000:hX,deltaEJz:Wz,deltaEITP:Nz,deltaEOK:vQ,deltaEHCT:kz};eq={hct:{method:"hct.c",jnd:2,deltaEMethod:"hct",blackWhiteClamp:{}},"hct-tonal":{method:"hct.c",jnd:0,deltaEMethod:"hct",blackWhiteClamp:{channel:"hct.t",min:0,max:100}}};w9.returns="color";QX={WHITE:{space:B5,coords:[1,0,0]},BLACK:{space:B5,coords:[0,0,0]}};O0.returns="color";gz=[[0.6369580483012914,0.14461690358620832,0.1688809751641721],[0.2627002120112671,0.6779980715188708,0.05930171646986196],[0,0.028072693049087428,1.060985057710791]],hz=[[1.716651187971268,-0.355670783776392,-0.25336628137366],[-0.666684351832489,1.616481236634939,0.0157685458139111],[0.017639857445311,-0.042770613257809,0.942103121235474]],j1=new i0({id:"rec2020-linear",cssId:"--rec2020-linear",name:"Linear REC.2020",white:"D65",toXYZ_M:gz,fromXYZ_M:hz}),aX=new i0({id:"rec2020",name:"REC.2020",base:j1,toBase(Q){return Q.map(function(q){if(q<ZX*4.5)return q/4.5;return Math.pow((q+F1-1)/F1,2.2222222222222223)})},fromBase(Q){return Q.map(function(q){if(q>=ZX)return F1*Math.pow(q,0.45)-(F1-1);return 4.5*q})}}),mz=[[0.4865709486482162,0.26566769316909306,0.1982172852343625],[0.2289745640697488,0.6917385218365064,0.079286914093745],[0,0.04511338185890264,1.043944368900976]],pz=[[2.493496911941425,-0.9313836179191239,-0.40271078445071684],[-0.8294889695615747,1.7626640603183463,0.023624685841943577],[0.03584583024378447,-0.07617238926804182,0.9568845240076872]],tX=new i0({id:"p3-linear",cssId:"--display-p3-linear",name:"Linear P3",white:"D65",toXYZ_M:mz,fromXYZ_M:pz}),dz=[[0.41239079926595934,0.357584339383878,0.1804807884018343],[0.21263900587151027,0.715168678767756,0.07219231536073371],[0.01933081871559182,0.11919477979462598,0.9505321522496607]],x0=[[3.2409699419045226,-1.537383177570094,-0.4986107602930034],[-0.9692436362808796,1.8759675015077202,0.04155505740717559],[0.05563007969699366,-0.20397695888897652,1.0569715142428786]],eX=new i0({id:"srgb-linear",name:"Linear sRGB",white:"D65",toXYZ_M:dz,fromXYZ_M:x0}),KX={aliceblue:[0.9411764705882353,0.9725490196078431,1],antiquewhite:[0.9803921568627451,0.9215686274509803,0.8431372549019608],aqua:[0,1,1],aquamarine:[0.4980392156862745,1,0.8313725490196079],azure:[0.9411764705882353,1,1],beige:[0.9607843137254902,0.9607843137254902,0.8627450980392157],bisque:[1,0.8941176470588236,0.7686274509803922],black:[0,0,0],blanchedalmond:[1,0.9215686274509803,0.803921568627451],blue:[0,0,1],blueviolet:[0.5411764705882353,0.16862745098039217,0.8862745098039215],brown:[0.6470588235294118,0.16470588235294117,0.16470588235294117],burlywood:[0.8705882352941177,0.7215686274509804,0.5294117647058824],cadetblue:[0.37254901960784315,0.6196078431372549,0.6274509803921569],chartreuse:[0.4980392156862745,1,0],chocolate:[0.8235294117647058,0.4117647058823529,0.11764705882352941],coral:[1,0.4980392156862745,0.3137254901960784],cornflowerblue:[0.39215686274509803,0.5843137254901961,0.9294117647058824],cornsilk:[1,0.9725490196078431,0.8627450980392157],crimson:[0.8627450980392157,0.0784313725490196,0.23529411764705882],cyan:[0,1,1],darkblue:[0,0,0.5450980392156862],darkcyan:[0,0.5450980392156862,0.5450980392156862],darkgoldenrod:[0.7215686274509804,0.5254901960784314,0.043137254901960784],darkgray:[0.6627450980392157,0.6627450980392157,0.6627450980392157],darkgreen:[0,0.39215686274509803,0],darkgrey:[0.6627450980392157,0.6627450980392157,0.6627450980392157],darkkhaki:[0.7411764705882353,0.7176470588235294,0.4196078431372549],darkmagenta:[0.5450980392156862,0,0.5450980392156862],darkolivegreen:[0.3333333333333333,0.4196078431372549,0.1843137254901961],darkorange:[1,0.5490196078431373,0],darkorchid:[0.6,0.19607843137254902,0.8],darkred:[0.5450980392156862,0,0],darksalmon:[0.9137254901960784,0.5882352941176471,0.47843137254901963],darkseagreen:[0.5607843137254902,0.7372549019607844,0.5607843137254902],darkslateblue:[0.2823529411764706,0.23921568627450981,0.5450980392156862],darkslategray:[0.1843137254901961,0.30980392156862746,0.30980392156862746],darkslategrey:[0.1843137254901961,0.30980392156862746,0.30980392156862746],darkturquoise:[0,0.807843137254902,0.8196078431372549],darkviolet:[0.5803921568627451,0,0.8274509803921568],deeppink:[1,0.0784313725490196,0.5764705882352941],deepskyblue:[0,0.7490196078431373,1],dimgray:[0.4117647058823529,0.4117647058823529,0.4117647058823529],dimgrey:[0.4117647058823529,0.4117647058823529,0.4117647058823529],dodgerblue:[0.11764705882352941,0.5647058823529412,1],firebrick:[0.6980392156862745,0.13333333333333333,0.13333333333333333],floralwhite:[1,0.9803921568627451,0.9411764705882353],forestgreen:[0.13333333333333333,0.5450980392156862,0.13333333333333333],fuchsia:[1,0,1],gainsboro:[0.8627450980392157,0.8627450980392157,0.8627450980392157],ghostwhite:[0.9725490196078431,0.9725490196078431,1],gold:[1,0.8431372549019608,0],goldenrod:[0.8549019607843137,0.6470588235294118,0.12549019607843137],gray:[0.5019607843137255,0.5019607843137255,0.5019607843137255],green:[0,0.5019607843137255,0],greenyellow:[0.6784313725490196,1,0.1843137254901961],grey:[0.5019607843137255,0.5019607843137255,0.5019607843137255],honeydew:[0.9411764705882353,1,0.9411764705882353],hotpink:[1,0.4117647058823529,0.7058823529411765],indianred:[0.803921568627451,0.3607843137254902,0.3607843137254902],indigo:[0.29411764705882354,0,0.5098039215686274],ivory:[1,1,0.9411764705882353],khaki:[0.9411764705882353,0.9019607843137255,0.5490196078431373],lavender:[0.9019607843137255,0.9019607843137255,0.9803921568627451],lavenderblush:[1,0.9411764705882353,0.9607843137254902],lawngreen:[0.48627450980392156,0.9882352941176471,0],lemonchiffon:[1,0.9803921568627451,0.803921568627451],lightblue:[0.6784313725490196,0.8470588235294118,0.9019607843137255],lightcoral:[0.9411764705882353,0.5019607843137255,0.5019607843137255],lightcyan:[0.8784313725490196,1,1],lightgoldenrodyellow:[0.9803921568627451,0.9803921568627451,0.8235294117647058],lightgray:[0.8274509803921568,0.8274509803921568,0.8274509803921568],lightgreen:[0.5647058823529412,0.9333333333333333,0.5647058823529412],lightgrey:[0.8274509803921568,0.8274509803921568,0.8274509803921568],lightpink:[1,0.7137254901960784,0.7568627450980392],lightsalmon:[1,0.6274509803921569,0.47843137254901963],lightseagreen:[0.12549019607843137,0.6980392156862745,0.6666666666666666],lightskyblue:[0.5294117647058824,0.807843137254902,0.9803921568627451],lightslategray:[0.4666666666666667,0.5333333333333333,0.6],lightslategrey:[0.4666666666666667,0.5333333333333333,0.6],lightsteelblue:[0.6901960784313725,0.7686274509803922,0.8705882352941177],lightyellow:[1,1,0.8784313725490196],lime:[0,1,0],limegreen:[0.19607843137254902,0.803921568627451,0.19607843137254902],linen:[0.9803921568627451,0.9411764705882353,0.9019607843137255],magenta:[1,0,1],maroon:[0.5019607843137255,0,0],mediumaquamarine:[0.4,0.803921568627451,0.6666666666666666],mediumblue:[0,0,0.803921568627451],mediumorchid:[0.7294117647058823,0.3333333333333333,0.8274509803921568],mediumpurple:[0.5764705882352941,0.4392156862745098,0.8588235294117647],mediumseagreen:[0.23529411764705882,0.7019607843137254,0.44313725490196076],mediumslateblue:[0.4823529411764706,0.40784313725490196,0.9333333333333333],mediumspringgreen:[0,0.9803921568627451,0.6039215686274509],mediumturquoise:[0.2823529411764706,0.8196078431372549,0.8],mediumvioletred:[0.7803921568627451,0.08235294117647059,0.5215686274509804],midnightblue:[0.09803921568627451,0.09803921568627451,0.4392156862745098],mintcream:[0.9607843137254902,1,0.9803921568627451],mistyrose:[1,0.8941176470588236,0.8823529411764706],moccasin:[1,0.8941176470588236,0.7098039215686275],navajowhite:[1,0.8705882352941177,0.6784313725490196],navy:[0,0,0.5019607843137255],oldlace:[0.9921568627450981,0.9607843137254902,0.9019607843137255],olive:[0.5019607843137255,0.5019607843137255,0],olivedrab:[0.4196078431372549,0.5568627450980392,0.13725490196078433],orange:[1,0.6470588235294118,0],orangered:[1,0.27058823529411763,0],orchid:[0.8549019607843137,0.4392156862745098,0.8392156862745098],palegoldenrod:[0.9333333333333333,0.9098039215686274,0.6666666666666666],palegreen:[0.596078431372549,0.984313725490196,0.596078431372549],paleturquoise:[0.6862745098039216,0.9333333333333333,0.9333333333333333],palevioletred:[0.8588235294117647,0.4392156862745098,0.5764705882352941],papayawhip:[1,0.9372549019607843,0.8352941176470589],peachpuff:[1,0.8549019607843137,0.7254901960784313],peru:[0.803921568627451,0.5215686274509804,0.24705882352941178],pink:[1,0.7529411764705882,0.796078431372549],plum:[0.8666666666666667,0.6274509803921569,0.8666666666666667],powderblue:[0.6901960784313725,0.8784313725490196,0.9019607843137255],purple:[0.5019607843137255,0,0.5019607843137255],rebeccapurple:[0.4,0.2,0.6],red:[1,0,0],rosybrown:[0.7372549019607844,0.5607843137254902,0.5607843137254902],royalblue:[0.2549019607843137,0.4117647058823529,0.8823529411764706],saddlebrown:[0.5450980392156862,0.27058823529411763,0.07450980392156863],salmon:[0.9803921568627451,0.5019607843137255,0.4470588235294118],sandybrown:[0.9568627450980393,0.6431372549019608,0.3764705882352941],seagreen:[0.1803921568627451,0.5450980392156862,0.3411764705882353],seashell:[1,0.9607843137254902,0.9333333333333333],sienna:[0.6274509803921569,0.3215686274509804,0.17647058823529413],silver:[0.7529411764705882,0.7529411764705882,0.7529411764705882],skyblue:[0.5294117647058824,0.807843137254902,0.9215686274509803],slateblue:[0.41568627450980394,0.35294117647058826,0.803921568627451],slategray:[0.4392156862745098,0.5019607843137255,0.5647058823529412],slategrey:[0.4392156862745098,0.5019607843137255,0.5647058823529412],snow:[1,0.9803921568627451,0.9803921568627451],springgreen:[0,1,0.4980392156862745],steelblue:[0.27450980392156865,0.5098039215686274,0.7058823529411765],tan:[0.8235294117647058,0.7058823529411765,0.5490196078431373],teal:[0,0.5019607843137255,0.5019607843137255],thistle:[0.8470588235294118,0.7490196078431373,0.8470588235294118],tomato:[1,0.38823529411764707,0.2784313725490196],turquoise:[0.25098039215686274,0.8784313725490196,0.8156862745098039],violet:[0.9333333333333333,0.5098039215686274,0.9333333333333333],wheat:[0.9607843137254902,0.8705882352941177,0.7019607843137254],white:[1,1,1],whitesmoke:[0.9607843137254902,0.9607843137254902,0.9607843137254902],yellow:[1,1,0],yellowgreen:[0.6039215686274509,0.803921568627451,0.19607843137254902]},qX=Array(3).fill("<percentage> | <number>[0, 255]"),XX=Array(3).fill("<number>[0, 255]"),E5=new i0({id:"srgb",name:"sRGB",base:eX,fromBase:(Q)=>{return Q.map((q)=>{let X=q<0?-1:1,$=q*X;if($>0.0031308)return X*(1.055*$**0.4166666666666667-0.055);return 12.92*q})},toBase:(Q)=>{return Q.map((q)=>{let X=q<0?-1:1,$=q*X;if($<=0.04045)return q/12.92;return X*(($+0.055)/1.055)**2.4})},formats:{rgb:{coords:qX},rgb_number:{name:"rgb",commas:!0,coords:XX,noAlpha:!0},color:{},rgba:{coords:qX,commas:!0,lastAlpha:!0},rgba_number:{name:"rgba",commas:!0,coords:XX},hex:{type:"custom",toGamut:!0,test:(Q)=>/^#([a-f0-9]{3,4}){1,2}$/i.test(Q),parse(Q){if(Q.length<=5)Q=Q.replace(/[a-f0-9]/gi,"$&$&");let q=[];return Q.replace(/[a-f0-9]{2}/gi,(X)=>{q.push(parseInt(X,16)/255)}),{spaceId:"srgb",coords:q.slice(0,3),alpha:q.slice(3)[0]}},serialize:(Q,q,{collapse:X=!0}={})=>{if(q<1)Q.push(q);Q=Q.map((Y)=>Math.round(Y*255));let $=X&&Q.every((Y)=>Y%17===0);return"#"+Q.map((Y)=>{if($)return(Y/17).toString(16);return Y.toString(16).padStart(2,"0")}).join("")}},keyword:{type:"custom",test:(Q)=>/^[a-z]+$/i.test(Q),parse(Q){Q=Q.toLowerCase();let q={spaceId:"srgb",coords:null,alpha:1};if(Q==="transparent")q.coords=KX.black,q.alpha=0;else q.coords=KX[Q];if(q.coords)return q}}}}),Q$=new i0({id:"p3",cssId:"display-p3",name:"P3",base:tX,fromBase:E5.fromBase,toBase:E5.toBase});G8.display_space=E5;if(typeof CSS<"u"&&CSS.supports)for(let Q of[W8,aX,Q$]){let q=Q.getMinCoords(),$=Q6({space:Q,coords:q,alpha:1});if(CSS.supports("color",$)){G8.display_space=Q;break}}sz=Object.freeze({__proto__:null,getLuminance:N9,register:iz,setLuminance:Z$});SQ=l0.D65,pQ=new m({id:"lab-d65",name:"Lab D65",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:SQ,base:g0,fromBase(Q){let X=Q.map(($,U)=>$/SQ[U]).map(($)=>$>HO?Math.cbrt($):(R1*$+16)/116);return[116*X[1]-16,500*(X[0]-X[1]),200*(X[1]-X[2])]},toBase(Q){let q=[];return q[1]=(Q[0]+16)/116,q[0]=Q[1]/500+q[1],q[2]=q[1]-Q[2]/200,[q[0]>YX?Math.pow(q[0],3):(116*q[0]-16)/R1,Q[0]>8?Math.pow((Q[0]+16)/116,3):Q[0]/R1,q[2]>YX?Math.pow(q[2],3):(116*q[2]-16)/R1].map(($,U)=>$*SQ[U])},formats:{"lab-d65":{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),xQ=Math.pow(5,0.5)*0.5+0.5;A1=Object.freeze({__proto__:null,contrastAPCA:XO,contrastDeltaPhi:WO,contrastLstar:YO,contrastMichelson:$O,contrastWCAG21:nz,contrastWeber:UO});zO=Object.freeze({__proto__:null,register:BO,uv:f1,xy:K$});_O=Object.freeze({__proto__:null,darken:EO,lighten:OO});G8.interpolationSpace="lab";wO=Object.freeze({__proto__:null,isRange:rQ,mix:q$,range:J6,register:MO,steps:X$}),$$=new m({id:"hsl",name:"HSL",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:E5,fromBase:(Q)=>{let q=Math.max(...Q),X=Math.min(...Q),[$,U,Y]=Q,[H,G,z]=[NaN,0,(X+q)/2],O=q-X;if(O!==0){switch(G=z===0||z===1?0:(q-z)/Math.min(z,1-z),q){case $:H=(U-Y)/O+(U<Y?6:0);break;case U:H=(Y-$)/O+2;break;case Y:H=($-U)/O+4}H=H*60}if(G<0)H+=180,G=Math.abs(G);if(H>=360)H-=360;return[H,G*100,z*100]},toBase:(Q)=>{let[q,X,$]=Q;if(q=q%360,q<0)q+=360;X/=100,$/=100;function U(Y){let H=(Y+q/30)%12,G=X*Math.min($,1-$);return $-G*Math.max(-1,Math.min(H-3,9-H,1))}return[U(0),U(8),U(4)]},formats:{hsl:{coords:["<number> | <angle>","<percentage>","<percentage>"]},hsla:{coords:["<number> | <angle>","<percentage>","<percentage>"],commas:!0,lastAlpha:!0}}}),J$=new m({id:"hsv",name:"HSV",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},v:{range:[0,100],name:"Value"}},base:$$,fromBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=$+X*Math.min($,1-$);return[q,U===0?0:200*(1-$/U),100*U]},toBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=$*(1-X/2);return[q,U===0||U===1?0:($-U)/Math.min(U,1-U)*100,U*100]},formats:{color:{id:"--hsv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),NO=new m({id:"hwb",name:"HWB",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},w:{range:[0,100],name:"Whiteness"},b:{range:[0,100],name:"Blackness"}},base:J$,fromBase(Q){let[q,X,$]=Q;return[q,$*(100-X)/100,100-$]},toBase(Q){let[q,X,$]=Q;X/=100,$/=100;let U=X+$;if(U>=1){let G=X/U;return[q,0,G*100]}let Y=1-$,H=Y===0?0:1-X/Y;return[q,H*100,Y*100]},formats:{hwb:{coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),LO=[[0.5766690429101305,0.1855582379065463,0.1882286462349947],[0.29734497525053605,0.6273635662554661,0.07529145849399788],[0.02703136138641234,0.07068885253582723,0.9913375368376388]],DO=[[2.0415879038107465,-0.5650069742788596,-0.34473135077832956],[-0.9692436362808795,1.8759675015077202,0.04155505740717557],[0.013444280632031142,-0.11836239223101838,1.0151749943912054]],U$=new i0({id:"a98rgb-linear",cssId:"--a98-rgb-linear",name:"Linear Adobe® 98 RGB compatible",white:"D65",toXYZ_M:LO,fromXYZ_M:DO}),FO=new i0({id:"a98rgb",cssId:"a98-rgb",name:"Adobe® 98 RGB compatible",base:U$,toBase:(Q)=>Q.map((q)=>Math.pow(Math.abs(q),2.19921875)*Math.sign(q)),fromBase:(Q)=>Q.map((q)=>Math.pow(Math.abs(q),0.4547069271758437)*Math.sign(q))}),RO=[[0.7977666449006423,0.13518129740053308,0.0313477341283922],[0.2880748288194013,0.711835234241873,0.00008993693872564],[0,0,0.8251046025104602]],PO=[[1.3457868816471583,-0.25557208737979464,-0.05110186497554526],[-0.5446307051249019,1.5082477428451468,0.02052744743642139],[0,0,1.2119675456389452]],Y$=new i0({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:iQ,toXYZ_M:RO,fromXYZ_M:PO}),VO=new i0({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:Y$,toBase(Q){return Q.map((q)=>q<AO?q/16:q**1.8)},fromBase(Q){return Q.map((q)=>q>=IO?q**0.5555555555555556:16*q)}}),SO=new m({id:"oklch",name:"Oklch",coords:{l:{refRange:[0,1],name:"Lightness"},c:{refRange:[0,0.4],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},white:"D65",base:B5,fromBase(Q){let[q,X,$]=Q,U,Y=0.0002;if(Math.abs(X)<0.0002&&Math.abs($)<0.0002)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),g8(U)]},toBase(Q){let[q,X,$]=Q,U,Y;if(isNaN($))U=0,Y=0;else U=X*Math.cos($*Math.PI/180),Y=X*Math.sin($*Math.PI/180);return[q,U,Y]},formats:{oklch:{coords:["<percentage> | <number>","<number> | <percentage>[0,1]","<number> | <angle>"]}}}),H$=l0.D65,[WX,GX]=f1({space:g0,coords:H$}),W$=new m({id:"luv",name:"Luv",coords:{l:{refRange:[0,100],name:"Lightness"},u:{refRange:[-215,215]},v:{refRange:[-215,215]}},white:H$,base:g0,fromBase(Q){let q=[R0(Q[0]),R0(Q[1]),R0(Q[2])],X=q[1],[$,U]=f1({space:g0,coords:q});if(!Number.isFinite($)||!Number.isFinite(U))return[0,0,0];let Y=X<=xO?HX*X:116*Math.cbrt(X)-16;return[Y,13*Y*($-WX),13*Y*(U-GX)]},toBase(Q){let[q,X,$]=Q;if(q===0||_9(q))return[0,0,0];X=R0(X),$=R0($);let U=X/(13*q)+WX,Y=$/(13*q)+GX,H=q<=8?q/HX:Math.pow((q+16)/116,3);return[H*(9*U/(4*Y)),H,H*((12-3*U-20*Y)/(4*Y))]},formats:{color:{id:"--luv",coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),oQ=new m({id:"lchuv",name:"LChuv",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,220],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:W$,fromBase(Q){let[q,X,$]=Q,U,Y=0.02;if(Math.abs(X)<0.02&&Math.abs($)<0.02)U=NaN;else U=Math.atan2($,X)*180/Math.PI;return[q,Math.sqrt(X**2+$**2),g8(U)]},toBase(Q){let[q,X,$]=Q;if(X<0)X=0;if(isNaN($))$=0;return[q,X*Math.cos($*Math.PI/180),X*Math.sin($*Math.PI/180)]},formats:{color:{id:"--lchuv",coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),BX=x0[0][0],zX=x0[0][1],TQ=x0[0][2],OX=x0[1][0],EX=x0[1][1],CQ=x0[1][2],_X=x0[2][0],MX=x0[2][1],jQ=x0[2][2];jO=new m({id:"hsluv",name:"HSLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:oQ,gamutSpace:E5,fromBase(Q){let[q,X,$]=[R0(Q[0]),R0(Q[1]),R0(Q[2])],U;if(q>99.9999999)U=0,q=100;else if(q<0.00000001)U=0,q=0;else{let Y=T1(q),H=wX(Y,$);U=X/H*100}return[$,U,q]},toBase(Q){let[q,X,$]=[R0(Q[0]),R0(Q[1]),R0(Q[2])],U;if($>99.9999999)$=100,U=0;else if($<0.00000001)$=0,U=0;else{let Y=T1($);U=wX(Y,q)/100*X}return[$,U,q]},formats:{color:{id:"--hsluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}});x0[0][0];x0[0][1];x0[0][2];x0[1][0];x0[1][1];x0[1][2];x0[2][0];x0[2][1];x0[2][2];fO=new m({id:"hpluv",name:"HPLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:oQ,gamutSpace:"self",fromBase(Q){let[q,X,$]=[R0(Q[0]),R0(Q[1]),R0(Q[2])],U;if(q>99.9999999)U=0,q=100;else if(q<0.00000001)U=0,q=0;else{let Y=T1(q),H=NX(Y);U=X/H*100}return[$,U,q]},toBase(Q){let[q,X,$]=[R0(Q[0]),R0(Q[1]),R0(Q[2])],U;if($>99.9999999)$=100,U=0;else if($<0.00000001)$=0,U=0;else{let Y=T1($);U=NX(Y)/100*X}return[$,U,q]},formats:{color:{id:"--hpluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),vO=new i0({id:"rec2100pq",cssId:"rec2100-pq",name:"REC.2100-PQ",base:j1,toBase(Q){return Q.map(function(q){return(Math.max(q**FX-RX,0)/(PX-IX*q**FX))**bO*1e4/LX})},fromBase(Q){return Q.map(function(q){let X=Math.max(q*LX/1e4,0),$=RX+PX*X**DX,U=1+IX*X**DX;return($/U)**kO})}}),yO=new i0({id:"rec2100hlg",cssId:"rec2100-hlg",name:"REC.2100-HLG",referred:"scene",base:j1,toBase(Q){return Q.map(function(q){if(q<=0.5)return q**2/3*fQ;return(Math.exp((q-SX)/AX)+VX)/12*fQ})},fromBase(Q){return Q.map(function(q){if(q/=fQ,q<=0.08333333333333333)return Math.sqrt(3*q);return AX*Math.log(12*q-VX)+SX})}}),G$={};M9.add("chromatic-adaptation-start",(Q)=>{if(Q.options.method)Q.M=B$(Q.W1,Q.W2,Q.options.method)});M9.add("chromatic-adaptation-end",(Q)=>{if(!Q.M)Q.M=B$(Q.W1,Q.W2,Q.options.method)});b1({id:"von Kries",toCone_M:[[0.40024,0.7076,-0.08081],[-0.2263,1.16532,0.0457],[0,0,0.91822]],fromCone_M:[[1.8599363874558397,-1.1293816185800916,0.21989740959619328],[0.3611914362417676,0.6388124632850422,-0.000006370596838649899],[0,0,1.0890636230968613]]});b1({id:"Bradford",toCone_M:[[0.8951,0.2664,-0.1614],[-0.7502,1.7135,0.0367],[0.0389,-0.0685,1.0296]],fromCone_M:[[0.9869929054667121,-0.14705425642099013,0.15996265166373122],[0.4323052697233945,0.5183602715367774,0.049291228212855594],[-0.00852866457517732,0.04004282165408486,0.96848669578755]]});b1({id:"CAT02",toCone_M:[[0.7328,0.4296,-0.1624],[-0.7036,1.6975,0.0061],[0.003,0.0136,0.9834]],fromCone_M:[[1.0961238208355142,-0.27886900021828726,0.18274517938277307],[0.4543690419753592,0.4735331543074117,0.07209780371722911],[-0.009627608738429355,-0.00569803121611342,1.0153256399545427]]});b1({id:"CAT16",toCone_M:[[0.401288,0.650173,-0.051461],[-0.250268,1.204414,0.045854],[-0.002079,0.048952,0.953127]],fromCone_M:[[1.862067855087233,-1.0112546305316845,0.14918677544445172],[0.3875265432361372,0.6214474419314753,-0.008973985167612521],[-0.01584149884933386,-0.03412293802851557,1.0499644368778496]]});Object.assign(l0,{A:[1.0985,1,0.35585],C:[0.98074,1,1.18232],D55:[0.95682,1,0.92149],D75:[0.94972,1,1.22638],E:[1,1,1],F2:[0.99186,1,0.67393],F7:[0.95041,1,1.08747],F11:[1.00962,1,0.6435]});l0.ACES=[0.9526460745698463,1,1.0088251843515859];gO=[[0.6624541811085053,0.13400420645643313,0.1561876870049078],[0.27222871678091454,0.6740817658111484,0.05368951740793705],[-0.005574649490394108,0.004060733528982826,1.0103391003129971]],hO=[[1.6410233796943257,-0.32480329418479,-0.23642469523761225],[-0.6636628587229829,1.6153315916573379,0.016756347685530137],[0.011721894328375376,-0.008284441996237409,0.9883948585390215]],z$=new i0({id:"acescg",cssId:"--acescg",name:"ACEScg",coords:{r:{range:[0,65504],name:"Red"},g:{range:[0,65504],name:"Green"},b:{range:[0,65504],name:"Blue"}},referred:"scene",white:l0.ACES,toXYZ_M:gO,fromXYZ_M:hO}),I1=(Math.log2(65504)+9.72)/17.52,mO=new i0({id:"acescc",cssId:"--acescc",name:"ACEScc",coords:{r:{range:[bQ,I1],name:"Red"},g:{range:[bQ,I1],name:"Green"},b:{range:[bQ,I1],name:"Blue"}},referred:"scene",base:z$,toBase(Q){return Q.map(function(X){if(X<=-0.3013698630136986)return(2**(X*17.52-9.72)-P1)*2;else if(X<I1)return 2**(X*17.52-9.72);else return 65504})},fromBase(Q){return Q.map(function(q){if(q<=0)return(Math.log2(P1)+9.72)/17.52;else if(q<P1)return(Math.log2(P1+q*0.5)+9.72)/17.52;else return(Math.log2(q)+9.72)/17.52})}}),xX=Object.freeze({__proto__:null,A98RGB:FO,A98RGB_Linear:U$,ACEScc:mO,ACEScg:z$,CAM16_JMh:Sz,HCT:q6,HPLuv:fO,HSL:$$,HSLuv:jO,HSV:J$,HWB:NO,ICTCP:gQ,JzCzHz:yQ,Jzazbz:pX,LCH:K6,LCHuv:oQ,Lab:W8,Lab_D65:pQ,Luv:W$,OKLCH:SO,OKLab:B5,P3:Q$,P3_Linear:tX,ProPhoto:VO,ProPhoto_Linear:Y$,REC_2020:aX,REC_2020_Linear:j1,REC_2100_HLG:yO,REC_2100_PQ:vO,XYZ_ABS_D65:sQ,XYZ_D50:iQ,XYZ_D65:g0,sRGB:E5,sRGB_Linear:eX});K0.defineFunctions({get:H8,getAll:$6,set:e8,setAll:lQ,to:O0,equals:lz,inGamut:y9,toGamut:w9,distance:mX,toString:Q6});Object.assign(K0,{util:c2,hooks:M9,WHITES:l0,Space:m,spaces:m.registry,parse:gX,defaults:G8});for(let Q of Object.keys(xX))m.register(xX[Q]);for(let Q in m.registry)dQ(Q,m.registry[Q]);M9.add("colorspace-init-end",(Q)=>{dQ(Q.id,Q),Q.aliases?.forEach((q)=>{dQ(q,Q)})});K0.extend(O5);K0.extend({deltaE:e5});Object.assign(K0,{deltaEMethods:O5});K0.extend(_O);K0.extend({contrast:GO});K0.extend(zO);K0.extend(sz);K0.extend(wO);K0.extend(A1)});var _$={};PQ(_$,{transformColorValueAsync:()=>uO,transformColorValue:()=>b0,transformColorToken:()=>v1,setAlpha:()=>U6,isColor:()=>Q9,initializeColorspace:()=>dO});async function O$(){if(k1===null){let{colorspace:Q}=await e0();k1=Q||"hex"}return k1}function pO(){return k1||"hex"}async function dO(){await O$()}function U6(Q,q){let X=new K0(Q);if(q||q===0)X.alpha=q/100;return b0(X)}function E$(Q,q){if(!Q)return Q;if(q&&q.type!=="color")return Q;if(typeof Q==="string")Q=new K0(Q);if(typeof Q?.to!=="function")return Q;let X=pO();try{switch(X){case"hex":return Q.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return Q.to("srgb").toString();case"srgb-linear":return Q.to("srgb-linear").toString();case"display-p3":case"p3":return Q.to("p3").toString();case"a98rgb":case"a98-rgb":return Q.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return Q.to("prophoto").toString();case"rec2020":case"rec-2020":return Q.to("rec2020").toString();case"xyz":case"xyz-d65":return Q.to("xyz-d65").toString();case"xyz-d50":return Q.to("xyz-d50").toString();case"lab":case"cielab":return Q.to("lab").toString();case"lab-d65":return Q.to("lab-d65").toString();case"oklab":return Q.to("oklab").toString();case"lch":case"cielch":return Q.to("lch").toString();case"oklch":return Q.to("oklch").toString();case"hsl":return Q.to("hsl").toString();case"hsv":case"hsb":return Q.to("hsv").toString();case"hwb":return Q.to("hwb").toString();case"luv":return Q.to("luv").toString();case"lchuv":return Q.to("lchuv").toString();case"jzazbz":return Q.to("jzazbz").toString();case"jzczhz":return Q.to("jzczhz").toString();case"ictcp":return Q.to("ictcp").toString();default:return Q.to(X).toString()}}catch($){return console.warn(`Unsupported colorspace '${X}', falling back to hex. Error:`,$),Q.to("srgb").toString({format:"hex"})}}async function uO(Q,q){return await O$(),E$(Q,q)}function b0(Q,q){return E$(Q,q)}function v1(Q,q,X,$){try{if(Q=F8(q,$),q.$type==="color"&&q.original?.$value&&q.original?.$value!==q.$value){if(p0(q.original.$value))Q=j8(q.original.$value,X,$,q);else Q=s0(q);if(!k0($)&&q.original?.$extensions?.mode?.[$])Q=q.original.$extensions.mode[$]}if(p0(Q))Q=j8(Q,X,$,q);return b0(Q)}catch{return Q=F8(q,$),b0(Q)}}function Q9(Q){try{if(Q)return new K0(Q),!0;return!1}catch{return!1}}var k1=null;var Y6=S0(()=>{aQ();R8()});function M$(Q,q){let X=Q.$extensions?.delimiter?.character||" ",$=F8(Q,q)??{},U=Q.$extensions?.sort??[],Y=s0(Q)??{};if(U.length>0)Y=Object.keys(Y).sort((H,G)=>{let z=U.indexOf(H),O=U.indexOf(G);return z-O}).reduce((H,G)=>{return H[G]=$[G],H},{});return Object.keys(Y).reduce((H,G)=>{let z=s0($[G]);if($[G]?.$type==="color"||$[G].$property==="color")z=b0(z,$[G]);return[...Array.isArray(H)?H:[H],z]},[]).join(X).trim()}function v0(Q,q){let X=(U)=>{if(U===void 0||U===null)return;if(typeof U==="object"&&"value"in U)return U.value;return U},$=Q.match(/^\{(.+)\}$/);if($){let U=$[1],Y=q.get(U);if(Y===void 0)return`/* Unknown token: ${U} */`;let H=X(Y);if(H===void 0)return`/* Unknown token: ${U} */`;if(typeof H==="object"&&H!==null){let G=[];for(let z in H){if(z.startsWith("$"))continue;let O=H[z],_=typeof O==="object"&&O?.value!==void 0?O.value:O;if(typeof _==="string"&&_.match(/^\{.+\}$/))G.push(v0(_,q));else G.push(String(_))}return G.join(" ")}if(typeof H==="string"&&H.match(/^\{.+\}$/))return v0(H,q);return String(H)}if(Q.includes("{"))return Q.replace(/\{([^}]+)\}/g,(U,Y)=>{let H=q.get(Y);if(H===void 0)return`/* Unknown token: ${Y} */`;let G=X(H);if(G===void 0)return`/* Unknown token: ${Y} */`;if(typeof G==="object"&&G!==null)return`/* Cannot embed composite token: ${Y} */`;if(typeof G==="string"&&G.match(/^\{.+\}$/))return v0(G,q);return String(G)});return Q}function cO(Q,q,X,$){return Object.keys(q??{}).reduce((Y,H)=>{let G=q[H];if(typeof G==="string"||typeof G==="number")G={$value:G,$type:typeof G,value:G};if(G.$type=G.type||Q?.original?.$value?.[H]?.type||G.$type||Q.$type,!k0($)&&L9(G,"mode",{isIncludedOriginalValue:!0}))G.$value=F8(G,$);if(G?.$type==="composition"&&(typeof G.$value!=="string"||typeof G.$value!=="number"||p0(G.$value))&&Object.keys(G).length>0){if(p0(G.$value))return G.$value=j8(G.$value,X,$,G),{...Y,[H]:{...G,$property:H,$type:G.$type,$value:_5(G,X,$)}};return{...Y,[H]:{...G,$property:H,$type:G.$type,$value:_5(G,X,$)}}}if(G?.$value){let O=j8(G.$value,X,$,G);return{...Y,[H]:{...G,$property:H,$type:G.$type,$value:O}}}return Y},{})}function _5(Q,q,X){let $=s0(Q,{isIncludedOriginalValue:!0});if(typeof $==="string"){if(p0($)){if($=tQ($,q,X,Q),!k0(X)&&L9($,"mode",{isIncludedOriginalValue:!0}))$.$value=F8($,X)}let U=w5($);if(U&&(U?.length??0)>1)$=M5($,U,q,X)}else if(Array.isArray($))$=$.map((U)=>{if(typeof U==="string"&&p0(U))return j8(U,q,X,Q);return U});if(!Q.name)return $;return Q.$value=cO(Q,$,q,X),M$(Q,X)}var H6=S0(()=>{R8()});function s0(Q,q){let{isIncludedOriginalValue:X=!1,fallbackValue:$=null}=q??{};if(X)return Q?.original?.$value??Q?.$value??Q.value??$;return Q?.$value??Q?.value??$}function F8(Q,q){return q&&(Q?.$extensions?.mode?.[q]||typeof Q?.$extensions?.mode?.[q]==="number")?Q.$extensions.mode[q]:s0(Q,{fallbackValue:Q?.original?.$value??Q?.$value??Q?.value})??null}function L9(Q,q,{isIncludedOriginalValue:X=!1}={}){let $=!1;if(X&&Q?.original?.$extensions?.[q])$=!0;if(Q?.$extensions?.[q])$=!0;return $}function eQ(Q,q,X){let $=s0(Q,{isIncludedOriginalValue:!0});if(!k0(X)&&L9(Q,"mode",{isIncludedOriginalValue:!0}))$=F8(Q,X);if(p0($))return ZZ($,q,X,Q);return $}function M5(Q,q,X,$){let U=q.reduce((Y,H)=>{let G=QZ(H,X);if(!G)return Y;let z=s0(G,{isIncludedOriginalValue:!0});if(p0(z))z=j8(`{${H}}`,X,$,G);return{...Y,[H]:y1(G,z,X,$)}},{});return Q?.replace(/\{([^}]+)\}/g,(Y,H)=>{return U[H]!==void 0?U[H]:Y})??null}function tQ(Q,q,X,$){if(p0(Q))return j8(Q,q,X,$);return Q}function QZ(Q,q){return q.allTokens.find((X)=>X.path.join(".")===Q)??null}function j8(Q,q,X,$){let U=p0(Q),Y=null,H=Q??s0($),G=null;if(U){if(Y=QZ(U,q),X&&Y&&Y?.$extensions?.mode?.[X]!==Y.original?.$extensions?.mode?.[X])H=Y.original?.$extensions?.mode?.[X],G=Y.original?.$extensions?.alpha??G;else if(Y?.$extensions?.mode?.[X])H=Y.$extensions.mode[X],G=Y.$extensions?.alpha??G;else if(Y?.original?.$value)H=Y?.original.$value??Y?.$value,G=Y?.original.$extensions?.alpha??G}if(H!==Q&&p0(H))H=j8(H,q,X,$);if(H&&(G||$?.$extensions?.alpha||G===0||$?.original?.$extensions?.alpha===0))G=G??$?.$extensions?.alpha??null,H=U6(H,G);return H=b0(H,Y??$),H??Q}function ZZ(Q,q,X,$){let U=$?.original?.$extensions?.mode?.[X]??$?.original?.$value,Y=p0(U);if(X&&Y){let H=q.allTokens.find((z)=>z.path.join(".")===Y);if(!H)return Q;let G=s0(H);if(p0(G))return ZZ(G,q,X,H);if(H?.$extensions?.mode?.[X])G=H.$extensions.mode[X];if(G&&H?.$extensions?.alpha)G=U6(H.$value,H.$extensions.alpha);return b0(G,H)??Q}else if(U)return b0(U,$);return Q}function p0(Q){if(typeof Q!=="string")return null;let q=/{[^}]+}/g,X=Q.match(q);if(X?.length!==1)return null;return X[0].slice(1,-1)}function w5(Q){if(typeof Q!=="string")return null;return[...Q.matchAll(/\{([^}]+)\}/g)].map(([,X])=>X)??null}function N5(Q){return Q}function W6(Q){return Q}var KZ=S0(()=>{R8()});var d$={};PQ(d$,{wrapThemeValue:()=>wZ,wrapFormatCSSFile:()=>g$,typographyFileName:()=>V$,tokensFileName:()=>I$,removeDirectoryContents:()=>OZ,readConfigFile:()=>F5,namespaceUUID:()=>T$,iconsFileName:()=>S$,getTokenfileName:()=>C$,getRelativePath:()=>p$,getRelativeCSSPath:()=>m$,getRawTokensFileName:()=>k$,getProjectPaths:()=>h9,getProjectModes:()=>_Z,getProjectMetaData:()=>e0,getProjectFonts:()=>aO,getLazyTokensConfig:()=>qZ,getLazyProjectPaths:()=>MZ,getLazyProjectModes:()=>G6,getLazyProjectMetaData:()=>_6,getLazyProjectFonts:()=>tO,getLazyProjectData:()=>D9,getLazyIcons:()=>d1,getJSDocHeader:()=>v$,getIconDestinationFileName:()=>D5,getFiles:()=>p1,getFileHeader:()=>EZ,getDistThemeFileDelimeter:()=>j$,getDistConfigFile:()=>g1,getDestinationFileName:()=>f$,getDefaultIconObjectPath:()=>x$,getCSSDestinationFileName:()=>b$,getBaseDirectory:()=>z6,getBaseConfigFile:()=>O6,generatedFileHeader:()=>L5,filterTokensByType:()=>h1,createFileHeaderTitle:()=>B6,compileConfigFile:()=>zZ,combineCSSFiles:()=>h$,checkAndCreateDirectory:()=>g9,breakpointFileName:()=>A$});import{spawnSync as lO}from"child_process";import{existsSync as h8,mkdirSync as iO,readFileSync as sO,unlinkSync as w$,writeFileSync as nO}from"fs";import{readdir as F$,rmdir as rO,unlink as oO}from"fs/promises";import{resolve as R$,join as P0,basename as P$,normalize as N$,relative as L$,sep as XZ,dirname as D$}from"path";async function x$(){return`${(await E6()).$metaData?.tokenNamespace||"tokens"}.icons`}async function zZ(Q){let X=P0(Q,"designid.config.ts");if(h8(P0(Q,"designid.config.mjs")))w$(P0(Q,"designid.config.mjs"));let $=P0(Q,"designid.config.js");if(h8($))w$($);if(h8(X)){let U=lO("bun",["build",X,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:Q,shell:!0});if(U.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit(U.status??1);if(U.status===0)return new Promise((Y)=>Y(!0))}}async function OZ(Q){try{if(h8(Q)){let q=await F$(Q,{withFileTypes:!0});for(let X of q){let $=P0(Q,X.name);if(X.isDirectory())await OZ($),await rO($);else await oO($)}}}catch(q){console.error(`Error removing contents of ${Q}:`,q)}}async function p1(Q){let q=await F$(Q,{withFileTypes:!0}),X=await Promise.all(q.map(($)=>{let U=R$(Q,$.name);return $.isDirectory()?p1(U):U}));return Array.prototype.concat(...X)}async function T$(Q){let{dsNamespace:q,tokenNamespace:X}=await e0();return`${(q??X).toUpperCase()}DesignSystem${Q.charAt(0).toUpperCase()+Q.slice(1)}Tokens`}function C$(Q,q="d.ts",X){if(!Q)return`tokens.${X}.config.${q}`;return P0(Q,`tokens.${X}.config.${q}`)}function j$(Q,q){return Q.length>1?`.${q}`:""}async function f$(Q="d.ts",q){let{tokenNamespace:X}=await e0();if(q)return`${X}-design-system.${q}.tokens.config.${Q}`;return`${X}-design-system.tokens.config.${Q}`}async function D5(Q="json"){let{tokenNamespace:q}=await e0();return`${q}-design-system.tokens.svg${Q==="d.ts"||Q==="js"?".config":""}.${Q}`}async function b$(){let{tokenNamespace:Q}=await e0();return`${Q}-design-system.tokens.css`}async function k$(){let{tokenNamespace:Q}=await e0();return`${Q}-design-system-raw.tokens.json`}async function EZ(Q){let{tokenNamespace:q}=await e0();return`${q} | ${Q}`}function v$(Q,q){return`/** @type {import("./${Q}").${q}} */`}function B6(Q){return`/* ${EZ(Q)} */`}function g9(Q){if(!h8(Q))iO(Q,{recursive:!0})}async function F5(Q,q=!1){let X=O6(),$;if(X.endsWith(".json"))$=JSON.parse(sO(X,"utf8").trim()??"{}");else if(X.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if($=await import(X),$.default)$=$.default}else{Q=Q??D$(X)+"/";let Y=g1(Q);if(Y&&(q||!h8(Y)))await zZ(Q);if($=await import(Y),$.default)$=$.default}else{Q=Q??D$(X)+"/";let U=g1(Q);if(U&&(q||!h8(U)))await zZ(Q);if($=await import(U),$.default)$=$.default}return $}async function z6(Q=!1){let{baseDir:q}=await h9(),X=process.cwd(),U=P0(X,q),{buildDir:Y,distDir:H}=await h9();if(Q)try{g9(P0(U,Y)),g9(P0(U,H))}catch(G){console.error("Error creating directories:",G)}return U}function g1(Q){return Q?P0(Q,"designid.config.mjs"):P0(process.cwd(),"designid.config.mjs")}function O6(){let Q=process.argv.find((G)=>G.startsWith("--config=")),[,q]=Q?.split("=")??[];if(q)return q;let X=process.cwd(),$=g1(X),U=P0(X,"designid.config.ts"),Y=h8($),H=h8(U);if(Y)return $;else if(H)return U;throw console.error("Config file not found"),Error("Config file not found")}async function h9(Q=!1){let q=O6(),$=(await F5(process.cwd(),Q)).$paths;if(!$)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:q,...$}}async function e0(){let q=(await F5(process.cwd())).$metaData;if(!q)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!q.colorspace)q.colorspace="hex";if(!q.fontNamespace)q.fontNamespace=`${q.dsNamespace}.font`;if(!q?.tokens?.css?.mediaQuery?.match)q={...q??{},tokens:{...q.tokens??{},css:{...q.tokens?.css??{},mediaQuery:{...q.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(q?.tokens?.css?.mediaQuery&&typeof q.tokens.css.mediaQuery.separateThemeFiles!=="boolean")q.tokens.css.mediaQuery.separateThemeFiles=!1;if(!q.dsNamespace)q.dsNamespace=q.tokenNamespace;let X=await x$();return{...q,icons:q.icons??{objectPath:X},dsNamespace:q.dsNamespace}}async function _Z(){return(await F5(process.cwd())).$modes??{default:"light"}}async function E6(){if(!$Z){let Q=O6();$Z=await F5(process.cwd()),y$=Q}return $Z}async function G6(){if(!JZ)JZ=(await E6()).$modes??{default:"light"};return JZ}async function _6(){if(!UZ){let q=(await E6()).$metaData;if(!q)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!q.dsNamespace)q.dsNamespace=q.tokenNamespace;let $=`${q.tokenNamespace||"tokens"}.icons`;UZ={...q,icons:q.icons??{objectPath:$},dsNamespace:q.dsNamespace}}return UZ}async function MZ(Q=!1){if(!YZ){let X=(await E6()).$paths;if(!X)throw console.error("Project paths not found"),Error("Project paths not found");YZ={configFile:y$,...X}}return YZ}async function D9(){if(!HZ){let{distDir:Q,assets:q,buildDir:X}=await MZ(!0),{fontNamespace:$,tokenNamespace:U,icons:Y}=await _6(),H=await z6(),G=process.cwd(),z=P0(G,Q,"css");HZ={distDir:Q,assets:q,fontNamespace:$,__dirname:H,workspaceRoot:G,distCSSPath:z,buildDir:X,tokenNamespace:U,icons:Y}}return HZ}async function d1(){if(!WZ){let{icons:Q}=await _6();WZ=Q}return WZ}async function qZ(){if(!GZ){let{tokens:Q}=await _6();GZ=Q}return GZ}async function aO(){return(await F5(process.cwd())).$fonts??[]}async function tO(){if(!BZ)BZ=(await E6()).$fonts??[];return BZ}async function wZ(Q){if(k0(Q))return":root";let X=(await e0())?.tokens?.css?.mediaQuery?.match??"[data-theme]";if(X.startsWith("[")&&X.endsWith("]"))return`${X.replace("]",`="${Q}"]`)}`;else if(X.startsWith(".")||X.startsWith("#"))return`${X}${Q}`;else return`${X}${Q}`}async function g$(Q,q,X,$,U,Y={}){let H;if(k0(X))H=q.allTokens;else H=Q(q,X);let z=(await e0())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+X:Y.headerTitle??"",O=`${B6(z)}
|
|
22
|
-
${
|
|
21
|
+
}`;var a=Sq(function(){return $0(N,d+"return "+f).apply(Q,L)});if(a.source=f,_Q(a))throw a;return a}function iB(Z){return J0(Z).toLowerCase()}function lB(Z){return J0(Z).toUpperCase()}function sB(Z,K,J){if(Z=J0(Z),Z&&(J||K===Q))return yK(Z);if(!Z||!(K=z8(K)))return Z;var W=k8(Z),B=k8(K),N=gK(W,B),L=hK(W,B)+1;return N9(W,N,L).join("")}function nB(Z,K,J){if(Z=J0(Z),Z&&(J||K===Q))return Z.slice(0,pK(Z)+1);if(!Z||!(K=z8(K)))return Z;var W=k8(Z),B=hK(W,k8(K))+1;return N9(W,0,B).join("")}function rB(Z,K,J){if(Z=J0(Z),Z&&(J||K===Q))return Z.replace(_4,"");if(!Z||!(K=z8(K)))return Z;var W=k8(Z),B=gK(W,k8(K));return N9(W,B).join("")}function oB(Z,K){var J=q0,W=W0;if(L0(K)){var B="separator"in K?K.separator:B;J="length"in K?r(K.length):J,W="omission"in K?z8(K.omission):W}Z=J0(Z);var N=Z.length;if(t9(Z)){var L=k8(Z);N=L.length}if(J>=N)return Z;var I=J-e9(W);if(I<1)return W;var R=L?N9(L,0,I).join(""):Z.slice(0,I);if(B===Q)return R+W;if(L)I+=R.length-I;if(wQ(B)){if(Z.slice(I).search(B)){var C,j=R;if(!B.global)B=f4(B.source,J0($K.exec(B))+"g");B.lastIndex=0;while(C=B.exec(j))var f=C.index;R=R.slice(0,f===Q?I:f)}}else if(Z.indexOf(z8(B),I)!=I){var y=R.lastIndexOf(B);if(y>-1)R=R.slice(0,y)}return R+W}function aB(Z){return Z=J0(Z),Z&&YU.test(Z)?Z.replace(KK,RY):Z}var tB=$5(function(Z,K,J){return Z+(J?" ":"")+K.toUpperCase()}),LQ=x7("toUpperCase");function Vq(Z,K,J){if(Z=J0(Z),K=J?Q:K,K===Q)return DY(Z)?xY(Z):BY(Z);return Z.match(K)||[]}var Sq=t(function(Z,K){try{return G8(Z,Q,K)}catch(J){return _Q(J)?J:new s(J)}}),eB=Q9(function(Z,K){return I8(K,function(J){J=u8(J),t8(Z,J,OQ(Z[J],Z))}),Z});function Q2(Z){var K=Z==null?0:Z.length,J=c();return Z=!K?[]:w0(Z,function(W){if(typeof W[1]!="function")throw new A8(U);return[J(W[0]),W[1]]}),t(function(W){var B=-1;while(++B<K){var N=Z[B];if(G8(N[0],this,W))return G8(N[1],this,W)}})}function Z2(Z){return RH(R8(Z,O))}function DQ(Z){return function(){return Z}}function K2(Z,K){return Z==null||Z!==Z?K:Z}var q2=C7(),X2=C7(!0);function q8(Z){return Z}function FQ(Z){return U7(typeof Z=="function"?Z:R8(Z,O))}function $2(Z){return H7(R8(Z,O))}function J2(Z,K){return W7(Z,R8(K,O))}var U2=t(function(Z,K){return function(J){return i5(J,Z,K)}}),Y2=t(function(Z,K){return function(J){return i5(Z,J,K)}});function IQ(Z,K,J){var W=y0(K),B=a6(K,W);if(J==null&&!(L0(K)&&(B.length||!W.length)))J=K,K=Z,Z=this,B=a6(K,y0(K));var N=!(L0(J)&&("chain"in J))||!!J.chain,L=K9(Z);return I8(B,function(I){var R=K[I];if(Z[I]=R,L)Z.prototype[I]=function(){var C=this.__chain__;if(N||C){var j=Z(this.__wrapped__),f=j.__actions__=Q8(this.__actions__);return f.push({func:R,args:arguments,thisArg:Z}),j.__chain__=C,j}return R.apply(Z,G9([this.value()],arguments))}}),Z}function H2(){if(v0._===this)v0._=kY;return this}function AQ(){}function W2(Z){return Z=r(Z),t(function(K){return G7(K,Z)})}var G2=ZQ(w0),B2=ZQ(jK),z2=ZQ(R4);function xq(Z){return YQ(Z)?V4(u8(Z)):uH(Z)}function O2(Z){return function(K){return Z==null?Q:v9(Z,K)}}var E2=f7(),_2=f7(!0);function PQ(){return[]}function RQ(){return!1}function w2(){return{}}function N2(){return""}function M2(){return!0}function L2(Z,K){if(Z=r(Z),Z<1||Z>H0)return[];var J=u0,W=c0(Z,u0);K=c(K),Z-=u0;var B=T4(W,K);while(++J<Z)K(J);return B}function D2(Z){if(n(Z))return w0(Z,u8);return O8(Z)?[Z]:Q8(r7(J0(Z)))}function F2(Z){var K=++fY;return J0(Z)+K}var I2=q1(function(Z,K){return Z+K},0),A2=KQ("ceil"),P2=q1(function(Z,K){return Z/K},1),R2=KQ("floor");function V2(Z){return Z&&Z.length?o6(Z,q8,p4):Q}function S2(Z,K){return Z&&Z.length?o6(Z,c(K,2),p4):Q}function x2(Z){return kK(Z,q8)}function T2(Z,K){return kK(Z,c(K,2))}function C2(Z){return Z&&Z.length?o6(Z,q8,i4):Q}function j2(Z,K){return Z&&Z.length?o6(Z,c(K,2),i4):Q}var f2=q1(function(Z,K){return Z*K},1),b2=KQ("round"),k2=q1(function(Z,K){return Z-K},0);function v2(Z){return Z&&Z.length?x4(Z,q8):0}function y2(Z,K){return Z&&Z.length?x4(Z,c(K,2)):0}if(_.after=$G,_.ary=Jq,_.assign=lG,_.assignIn=Lq,_.assignInWith=_1,_.assignWith=sG,_.at=nG,_.before=Uq,_.bind=OQ,_.bindAll=eB,_.bindKey=Yq,_.castArray=wG,_.chain=qq,_.chunk=R3,_.compact=V3,_.concat=S3,_.cond=Q2,_.conforms=Z2,_.constant=DQ,_.countBy=vW,_.create=rG,_.curry=Hq,_.curryRight=Wq,_.debounce=Gq,_.defaults=oG,_.defaultsDeep=aG,_.defer=JG,_.delay=UG,_.difference=x3,_.differenceBy=T3,_.differenceWith=C3,_.drop=j3,_.dropRight=f3,_.dropRightWhile=b3,_.dropWhile=k3,_.fill=v3,_.filter=gW,_.flatMap=pW,_.flatMapDeep=dW,_.flatMapDepth=uW,_.flatten=e7,_.flattenDeep=y3,_.flattenDepth=g3,_.flip=YG,_.flow=q2,_.flowRight=X2,_.fromPairs=h3,_.functions=XB,_.functionsIn=$B,_.groupBy=cW,_.initial=p3,_.intersection=d3,_.intersectionBy=u3,_.intersectionWith=c3,_.invert=UB,_.invertBy=YB,_.invokeMap=lW,_.iteratee=FQ,_.keyBy=sW,_.keys=y0,_.keysIn=K8,_.map=W1,_.mapKeys=WB,_.mapValues=GB,_.matches=$2,_.matchesProperty=J2,_.memoize=B1,_.merge=BB,_.mergeWith=Dq,_.method=U2,_.methodOf=Y2,_.mixin=IQ,_.negate=z1,_.nthArg=W2,_.omit=zB,_.omitBy=OB,_.once=HG,_.orderBy=nW,_.over=G2,_.overArgs=WG,_.overEvery=B2,_.overSome=z2,_.partial=EQ,_.partialRight=Bq,_.partition=rW,_.pick=EB,_.pickBy=Fq,_.property=xq,_.propertyOf=O2,_.pull=n3,_.pullAll=Zq,_.pullAllBy=r3,_.pullAllWith=o3,_.pullAt=a3,_.range=E2,_.rangeRight=_2,_.rearg=GG,_.reject=tW,_.remove=t3,_.rest=BG,_.reverse=BQ,_.sampleSize=QG,_.set=wB,_.setWith=NB,_.shuffle=ZG,_.slice=e3,_.sortBy=XG,_.sortedUniq=JW,_.sortedUniqBy=UW,_.split=pB,_.spread=zG,_.tail=YW,_.take=HW,_.takeRight=WW,_.takeRightWhile=GW,_.takeWhile=BW,_.tap=VW,_.throttle=OG,_.thru=H1,_.toArray=wq,_.toPairs=Iq,_.toPairsIn=Aq,_.toPath=D2,_.toPlainObject=Mq,_.transform=MB,_.unary=EG,_.union=zW,_.unionBy=OW,_.unionWith=EW,_.uniq=_W,_.uniqBy=wW,_.uniqWith=NW,_.unset=LB,_.unzip=zQ,_.unzipWith=Kq,_.update=DB,_.updateWith=FB,_.values=Y5,_.valuesIn=IB,_.without=MW,_.words=Vq,_.wrap=_G,_.xor=LW,_.xorBy=DW,_.xorWith=FW,_.zip=IW,_.zipObject=AW,_.zipObjectDeep=PW,_.zipWith=RW,_.entries=Iq,_.entriesIn=Aq,_.extend=Lq,_.extendWith=_1,IQ(_,_),_.add=I2,_.attempt=Sq,_.camelCase=VB,_.capitalize=Pq,_.ceil=A2,_.clamp=AB,_.clone=NG,_.cloneDeep=LG,_.cloneDeepWith=DG,_.cloneWith=MG,_.conformsTo=FG,_.deburr=Rq,_.defaultTo=K2,_.divide=P2,_.endsWith=SB,_.eq=y8,_.escape=xB,_.escapeRegExp=TB,_.every=yW,_.find=hW,_.findIndex=a7,_.findKey=tG,_.findLast=mW,_.findLastIndex=t7,_.findLastKey=eG,_.floor=R2,_.forEach=Xq,_.forEachRight=$q,_.forIn=QB,_.forInRight=ZB,_.forOwn=KB,_.forOwnRight=qB,_.get=NQ,_.gt=IG,_.gte=AG,_.has=JB,_.hasIn=MQ,_.head=Qq,_.identity=q8,_.includes=iW,_.indexOf=m3,_.inRange=PB,_.invoke=HB,_.isArguments=h9,_.isArray=n,_.isArrayBuffer=PG,_.isArrayLike=Z8,_.isArrayLikeObject=A0,_.isBoolean=RG,_.isBuffer=M9,_.isDate=VG,_.isElement=SG,_.isEmpty=xG,_.isEqual=TG,_.isEqualWith=CG,_.isError=_Q,_.isFinite=jG,_.isFunction=K9,_.isInteger=zq,_.isLength=O1,_.isMap=Oq,_.isMatch=fG,_.isMatchWith=bG,_.isNaN=kG,_.isNative=vG,_.isNil=gG,_.isNull=yG,_.isNumber=Eq,_.isObject=L0,_.isObjectLike=I0,_.isPlainObject=a5,_.isRegExp=wQ,_.isSafeInteger=hG,_.isSet=_q,_.isString=E1,_.isSymbol=O8,_.isTypedArray=U5,_.isUndefined=mG,_.isWeakMap=pG,_.isWeakSet=dG,_.join=i3,_.kebabCase=CB,_.last=S8,_.lastIndexOf=l3,_.lowerCase=jB,_.lowerFirst=fB,_.lt=uG,_.lte=cG,_.max=V2,_.maxBy=S2,_.mean=x2,_.meanBy=T2,_.min=C2,_.minBy=j2,_.stubArray=PQ,_.stubFalse=RQ,_.stubObject=w2,_.stubString=N2,_.stubTrue=M2,_.multiply=f2,_.nth=s3,_.noConflict=H2,_.noop=AQ,_.now=G1,_.pad=bB,_.padEnd=kB,_.padStart=vB,_.parseInt=yB,_.random=RB,_.reduce=oW,_.reduceRight=aW,_.repeat=gB,_.replace=hB,_.result=_B,_.round=b2,_.runInContext=P,_.sample=eW,_.size=KG,_.snakeCase=mB,_.some=qG,_.sortedIndex=QW,_.sortedIndexBy=ZW,_.sortedIndexOf=KW,_.sortedLastIndex=qW,_.sortedLastIndexBy=XW,_.sortedLastIndexOf=$W,_.startCase=dB,_.startsWith=uB,_.subtract=k2,_.sum=v2,_.sumBy=y2,_.template=cB,_.times=L2,_.toFinite=q9,_.toInteger=r,_.toLength=Nq,_.toLower=iB,_.toNumber=x8,_.toSafeInteger=iG,_.toString=J0,_.toUpper=lB,_.trim=sB,_.trimEnd=nB,_.trimStart=rB,_.truncate=oB,_.unescape=aB,_.uniqueId=F2,_.upperCase=tB,_.upperFirst=LQ,_.each=Xq,_.eachRight=$q,_.first=Qq,IQ(_,function(){var Z={};return p8(_,function(K,J){if(!Y0.call(_.prototype,J))Z[J]=K}),Z}(),{chain:!1}),_.VERSION=q,I8(["bind","bindKey","curry","curryRight","partial","partialRight"],function(Z){_[Z].placeholder=_}),I8(["drop","take"],function(Z,K){Q0.prototype[Z]=function(J){J=J===Q?1:j0(r(J),0);var W=this.__filtered__&&!K?new Q0(this):this.clone();if(W.__filtered__)W.__takeCount__=c0(J,W.__takeCount__);else W.__views__.push({size:c0(J,u0),type:Z+(W.__dir__<0?"Right":"")});return W},Q0.prototype[Z+"Right"]=function(J){return this.reverse()[Z](J).reverse()}}),I8(["filter","map","takeWhile"],function(Z,K){var J=K+1,W=J==d0||J==T0;Q0.prototype[Z]=function(B){var N=this.clone();return N.__iteratees__.push({iteratee:c(B,3),type:J}),N.__filtered__=N.__filtered__||W,N}}),I8(["head","last"],function(Z,K){var J="take"+(K?"Right":"");Q0.prototype[Z]=function(){return this[J](1).value()[0]}}),I8(["initial","tail"],function(Z,K){var J="drop"+(K?"":"Right");Q0.prototype[Z]=function(){return this.__filtered__?new Q0(this):this[J](1)}}),Q0.prototype.compact=function(){return this.filter(q8)},Q0.prototype.find=function(Z){return this.filter(Z).head()},Q0.prototype.findLast=function(Z){return this.reverse().find(Z)},Q0.prototype.invokeMap=t(function(Z,K){if(typeof Z=="function")return new Q0(this);return this.map(function(J){return i5(J,Z,K)})}),Q0.prototype.reject=function(Z){return this.filter(z1(c(Z)))},Q0.prototype.slice=function(Z,K){Z=r(Z);var J=this;if(J.__filtered__&&(Z>0||K<0))return new Q0(J);if(Z<0)J=J.takeRight(-Z);else if(Z)J=J.drop(Z);if(K!==Q)K=r(K),J=K<0?J.dropRight(-K):J.take(K-Z);return J},Q0.prototype.takeRightWhile=function(Z){return this.reverse().takeWhile(Z).reverse()},Q0.prototype.toArray=function(){return this.take(u0)},p8(Q0.prototype,function(Z,K){var J=/^(?:filter|find|map|reject)|While$/.test(K),W=/^(?:head|last)$/.test(K),B=_[W?"take"+(K=="last"?"Right":""):K],N=W||/^find/.test(K);if(!B)return;_.prototype[K]=function(){var L=this.__wrapped__,I=W?[1]:arguments,R=L instanceof Q0,C=I[0],j=R||n(L),f=function(e){var Z0=B.apply(_,G9([e],I));return W&&y?Z0[0]:Z0};if(j&&J&&typeof C=="function"&&C.length!=1)R=j=!1;var y=this.__chain__,d=!!this.__actions__.length,i=N&&!y,a=R&&!d;if(!N&&j){L=a?L:new Q0(this);var l=Z.apply(L,I);return l.__actions__.push({func:H1,args:[f],thisArg:Q}),new P8(l,y)}if(i&&a)return Z.apply(this,I);return l=this.thru(f),i?W?l.value()[0]:l.value():l}}),I8(["pop","push","shift","sort","splice","unshift"],function(Z){var K=k6[Z],J=/^(?:push|sort|unshift)$/.test(Z)?"tap":"thru",W=/^(?:pop|shift)$/.test(Z);_.prototype[Z]=function(){var B=arguments;if(W&&!this.__chain__){var N=this.value();return K.apply(n(N)?N:[],B)}return this[J](function(L){return K.apply(n(L)?L:[],B)})}}),p8(Q0.prototype,function(Z,K){var J=_[K];if(J){var W=J.name+"";if(!Y0.call(K5,W))K5[W]=[];K5[W].push({name:K,func:J})}}),K5[K1(Q,A).name]=[{name:"wrapper",func:Q}],Q0.prototype.clone=aY,Q0.prototype.reverse=tY,Q0.prototype.value=eY,_.prototype.at=SW,_.prototype.chain=xW,_.prototype.commit=TW,_.prototype.next=CW,_.prototype.plant=fW,_.prototype.reverse=bW,_.prototype.toJSON=_.prototype.valueOf=_.prototype.value=kW,_.prototype.first=_.prototype.head,g5)_.prototype[g5]=jW;return _},z9=TY();if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)v0._=z9,define(function(){return z9});else if(C9)(C9.exports=z9)._=z9,F4._=z9;else v0._=z9}).call(J6)});var N$={};SQ(N$,{transformColorValueAsync:()=>iO,transformColorValue:()=>g0,transformColorToken:()=>v1,setAlpha:()=>Y6,isColor:()=>J9,initializeColorspace:()=>cO});async function _$(){if(k1===null){let{colorspace:Q}=await X8();k1=Q||"hex"}return k1}function uO(){return k1||"hex"}async function cO(){await _$()}function Y6(Q,q){let X=new K0(Q);if(q||q===0)X.alpha=q/100;return g0(X)}function w$(Q,q){if(!Q)return Q;if(q&&q.type!=="color")return Q;if(typeof Q==="string")Q=new K0(Q);if(typeof Q?.to!=="function")return Q;let X=uO();try{switch(X){case"hex":return Q.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return Q.to("srgb").toString();case"srgb-linear":return Q.to("srgb-linear").toString();case"display-p3":case"p3":return Q.to("p3").toString();case"a98rgb":case"a98-rgb":return Q.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return Q.to("prophoto").toString();case"rec2020":case"rec-2020":return Q.to("rec2020").toString();case"xyz":case"xyz-d65":return Q.to("xyz-d65").toString();case"xyz-d50":return Q.to("xyz-d50").toString();case"lab":case"cielab":return Q.to("lab").toString();case"lab-d65":return Q.to("lab-d65").toString();case"oklab":return Q.to("oklab").toString();case"lch":case"cielch":return Q.to("lch").toString();case"oklch":return Q.to("oklch").toString();case"hsl":return Q.to("hsl").toString();case"hsv":case"hsb":return Q.to("hsv").toString();case"hwb":return Q.to("hwb").toString();case"luv":return Q.to("luv").toString();case"lchuv":return Q.to("lchuv").toString();case"jzazbz":return Q.to("jzazbz").toString();case"jzczhz":return Q.to("jzczhz").toString();case"ictcp":return Q.to("ictcp").toString();default:return Q.to(X).toString()}}catch($){return console.warn(`Unsupported colorspace '${X}', falling back to hex. Error:`,$),Q.to("srgb").toString({format:"hex"})}}async function iO(Q,q){return await _$(),w$(Q,q)}function g0(Q,q){return w$(Q,q)}function v1(Q,q,X,$){try{if(Q=T8(q,$),q.$type==="color"&&q.original?.$value&&q.original?.$value!==q.$value){if(l0(q.original.$value))Q=m8(q.original.$value,X,$,q);else Q=t0(q);if(!h0($)&&q.original?.$extensions?.mode?.[$])Q=q.original.$extensions.mode[$]}if(l0(Q))Q=m8(Q,X,$,q);return g0(Q)}catch{return Q=T8(q,$),g0(Q)}}function J9(Q){try{if(Q)return new K0(Q),!0;return!1}catch{return!1}}var k1=null;var H6=f0(()=>{ZZ();C8()});function M$(Q,q){let X=Q.$extensions?.delimiter?.character||" ",$=T8(Q,q)??{},U=Q.$extensions?.sort??[],Y=t0(Q)??{};if(U.length>0)Y=Object.keys(Y).sort((H,G)=>{let z=U.indexOf(H),O=U.indexOf(G);return z-O}).reduce((H,G)=>{return H[G]=$[G],H},{});return Object.keys(Y).reduce((H,G)=>{let z=t0($[G]);if($[G]?.$type==="color"||$[G].$property==="color")z=g0(z,$[G]);return[...Array.isArray(H)?H:[H],z]},[]).join(X).trim()}function O0(Q,q){let X=(U)=>{if(U===void 0||U===null)return;if(typeof U==="object"&&"value"in U)return U.value;return U},$=Q.match(/^\{(.+)\}$/);if($){let U=$[1],Y=q.get(U);if(Y===void 0)return`/* Unknown token: ${U} */`;let H=X(Y);if(H===void 0)return`/* Unknown token: ${U} */`;if(typeof H==="object"&&H!==null){let G=[];for(let z in H){if(z.startsWith("$"))continue;let O=H[z],E=typeof O==="object"&&O?.value!==void 0?O.value:O;if(typeof E==="string"&&E.match(/^\{.+\}$/))G.push(O0(E,q));else G.push(String(E))}return G.join(" ")}if(typeof H==="string"&&H.match(/^\{.+\}$/))return O0(H,q);return String(H)}if(Q.includes("{"))return Q.replace(/\{([^}]+)\}/g,(U,Y)=>{let H=q.get(Y);if(H===void 0)return`/* Unknown token: ${Y} */`;let G=X(H);if(G===void 0)return`/* Unknown token: ${Y} */`;if(typeof G==="object"&&G!==null)return`/* Cannot embed composite token: ${Y} */`;if(typeof G==="string"&&G.match(/^\{.+\}$/))return O0(G,q);return String(G)});return Q}function lO(Q,q,X,$){return Object.keys(q??{}).reduce((Y,H)=>{let G=q[H];if(typeof G==="string"||typeof G==="number")G={$value:G,$type:typeof G,value:G};if(G.$type=G.type||Q?.original?.$value?.[H]?.type||G.$type||Q.$type,!h0($)&&P9(G,"mode",{isIncludedOriginalValue:!0}))G.$value=T8(G,$);if(G?.$type==="composition"&&(typeof G.$value!=="string"||typeof G.$value!=="number"||l0(G.$value))&&Object.keys(G).length>0){if(l0(G.$value))return G.$value=m8(G.$value,X,$,G),{...Y,[H]:{...G,$property:H,$type:G.$type,$value:N5(G,X,$)}};return{...Y,[H]:{...G,$property:H,$type:G.$type,$value:N5(G,X,$)}}}if(G?.$value){let O=m8(G.$value,X,$,G);return{...Y,[H]:{...G,$property:H,$type:G.$type,$value:O}}}return Y},{})}function N5(Q,q,X){let $=t0(Q,{isIncludedOriginalValue:!0});if(typeof $==="string"){if(l0($)){if($=KZ($,q,X,Q),!h0(X)&&P9($,"mode",{isIncludedOriginalValue:!0}))$.$value=T8($,X)}let U=$8($);if(U&&(U?.length??0)>1)$=M5($,U,q,X)}else if(Array.isArray($))$=$.map((U)=>{if(typeof U==="string"&&l0(U))return m8(U,q,X,Q);return U});if(!Q.name)return $;return Q.$value=lO(Q,$,q,X),M$(Q,X)}var W6=f0(()=>{C8()});function t0(Q,q){let{isIncludedOriginalValue:X=!1,fallbackValue:$=null}=q??{};if(X)return Q?.original?.$value??Q?.$value??Q.value??$;return Q?.$value??Q?.value??$}function T8(Q,q){return q&&(Q?.$extensions?.mode?.[q]||typeof Q?.$extensions?.mode?.[q]==="number")?Q.$extensions.mode[q]:t0(Q,{fallbackValue:Q?.original?.$value??Q?.$value??Q?.value})??null}function P9(Q,q,{isIncludedOriginalValue:X=!1}={}){let $=!1;if(X&&Q?.original?.$extensions?.[q])$=!0;if(Q?.$extensions?.[q])$=!0;return $}function qZ(Q,q,X){let $=t0(Q,{isIncludedOriginalValue:!0});if(!h0(X)&&P9(Q,"mode",{isIncludedOriginalValue:!0}))$=T8(Q,X);if(l0($))return $Z($,q,X,Q);return $}function M5(Q,q,X,$){let U=q.reduce((Y,H)=>{let G=XZ(H,X);if(!G)return Y;let z=t0(G,{isIncludedOriginalValue:!0});if(l0(z))z=m8(`{${H}}`,X,$,G);return{...Y,[H]:g1(G,z,X,$)}},{});return Q?.replace(/\{([^}]+)\}/g,(Y,H)=>{return U[H]!==void 0?U[H]:Y})??null}function KZ(Q,q,X,$){if(l0(Q))return m8(Q,q,X,$);return Q}function XZ(Q,q){return q.allTokens.find((X)=>X.path.join(".")===Q)??null}function m8(Q,q,X,$){let U=l0(Q),Y=null,H=Q??t0($),G=null;if(U){if(Y=XZ(U,q),X&&Y&&Y?.$extensions?.mode?.[X]!==Y.original?.$extensions?.mode?.[X])H=Y.original?.$extensions?.mode?.[X],G=Y.original?.$extensions?.alpha??G;else if(Y?.$extensions?.mode?.[X])H=Y.$extensions.mode[X],G=Y.$extensions?.alpha??G;else if(Y?.original?.$value)H=Y?.original.$value??Y?.$value,G=Y?.original.$extensions?.alpha??G}if(H!==Q&&l0(H))H=m8(H,q,X,$);if(H&&(G||$?.$extensions?.alpha||G===0||$?.original?.$extensions?.alpha===0))G=G??$?.$extensions?.alpha??null,H=Y6(H,G);return H=g0(H,Y??$),H??Q}function $Z(Q,q,X,$){let U=$?.original?.$extensions?.mode?.[X]??$?.original?.$value,Y=l0(U);if(X&&Y){let H=q.allTokens.find((z)=>z.path.join(".")===Y);if(!H)return Q;let G=t0(H);if(l0(G))return $Z(G,q,X,H);if(H?.$extensions?.mode?.[X])G=H.$extensions.mode[X];if(G&&H?.$extensions?.alpha)G=Y6(H.$value,H.$extensions.alpha);return g0(G,H)??Q}else if(U)return g0(U,$);return Q}function l0(Q){if(typeof Q!=="string")return null;let q=/{[^}]+}/g,X=Q.match(q);if(X?.length!==1)return null;return X[0].slice(1,-1)}function $8(Q){if(typeof Q!=="string")return null;return[...Q.matchAll(/\{([^}]+)\}/g)].map(([,X])=>X)??null}function L5(Q){return Q}function G6(Q){return Q}var y1=f0(()=>{C8()});var c$={};SQ(c$,{wrapThemeValue:()=>DZ,wrapFormatCSSFile:()=>m$,typographyFileName:()=>x$,tokensFileName:()=>V$,removeDirectoryContents:()=>wZ,readConfigFile:()=>I5,namespaceUUID:()=>j$,iconsFileName:()=>T$,getTokenfileName:()=>f$,getRelativePath:()=>u$,getRelativeCSSPath:()=>d$,getRawTokensFileName:()=>y$,getProjectPaths:()=>u9,getProjectModes:()=>MZ,getProjectMetaData:()=>X8,getProjectFonts:()=>eO,getLazyTokensConfig:()=>JZ,getLazyProjectPaths:()=>LZ,getLazyProjectModes:()=>B6,getLazyProjectMetaData:()=>w6,getLazyProjectFonts:()=>QE,getLazyProjectData:()=>R9,getLazyIcons:()=>u1,getJSDocHeader:()=>g$,getIconDestinationFileName:()=>F5,getFiles:()=>d1,getFileHeader:()=>NZ,getDistThemeFileDelimeter:()=>b$,getDistConfigFile:()=>h1,getDestinationFileName:()=>k$,getDefaultIconObjectPath:()=>C$,getCSSDestinationFileName:()=>v$,getBaseDirectory:()=>O6,getBaseConfigFile:()=>E6,generatedFileHeader:()=>D5,filterTokensByType:()=>m1,createFileHeaderTitle:()=>z6,compileConfigFile:()=>_Z,combineCSSFiles:()=>p$,checkAndCreateDirectory:()=>d9,breakpointFileName:()=>S$});import{spawnSync as sO}from"child_process";import{existsSync as l8,mkdirSync as nO,readFileSync as rO,unlinkSync as L$,writeFileSync as oO}from"fs";import{readdir as A$,rmdir as aO,unlink as tO}from"fs/promises";import{resolve as P$,join as x0,basename as R$,normalize as D$,relative as F$,sep as UZ,dirname as I$}from"path";async function C$(){return`${(await _6()).$metaData?.tokenNamespace||"tokens"}.icons`}async function _Z(Q){let X=x0(Q,"designid.config.ts");if(l8(x0(Q,"designid.config.mjs")))L$(x0(Q,"designid.config.mjs"));let $=x0(Q,"designid.config.js");if(l8($))L$($);if(l8(X)){let U=sO("bun",["build",X,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:Q,shell:!0});if(U.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit(U.status??1);if(U.status===0)return new Promise((Y)=>Y(!0))}}async function wZ(Q){try{if(l8(Q)){let q=await A$(Q,{withFileTypes:!0});for(let X of q){let $=x0(Q,X.name);if(X.isDirectory())await wZ($),await aO($);else await tO($)}}}catch(q){console.error(`Error removing contents of ${Q}:`,q)}}async function d1(Q){let q=await A$(Q,{withFileTypes:!0}),X=await Promise.all(q.map(($)=>{let U=P$(Q,$.name);return $.isDirectory()?d1(U):U}));return Array.prototype.concat(...X)}async function j$(Q){let{dsNamespace:q,tokenNamespace:X}=await X8();return`${(q??X).toUpperCase()}DesignSystem${Q.charAt(0).toUpperCase()+Q.slice(1)}Tokens`}function f$(Q,q="d.ts",X){if(!Q)return`tokens.${X}.config.${q}`;return x0(Q,`tokens.${X}.config.${q}`)}function b$(Q,q){return Q.length>1?`.${q}`:""}async function k$(Q="d.ts",q){let{tokenNamespace:X}=await X8();if(q)return`${X}-design-system.${q}.tokens.config.${Q}`;return`${X}-design-system.tokens.config.${Q}`}async function F5(Q="json"){let{tokenNamespace:q}=await X8();return`${q}-design-system.tokens.svg${Q==="d.ts"||Q==="js"?".config":""}.${Q}`}async function v$(){let{tokenNamespace:Q}=await X8();return`${Q}-design-system.tokens.css`}async function y$(){let{tokenNamespace:Q}=await X8();return`${Q}-design-system-raw.tokens.json`}async function NZ(Q){let{tokenNamespace:q}=await X8();return`${q} | ${Q}`}function g$(Q,q){return`/** @type {import("./${Q}").${q}} */`}function z6(Q){return`/* ${NZ(Q)} */`}function d9(Q){if(!l8(Q))nO(Q,{recursive:!0})}async function I5(Q,q=!1){let X=E6(),$;if(X.endsWith(".json"))$=JSON.parse(rO(X,"utf8").trim()??"{}");else if(X.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if($=await import(X),$.default)$=$.default}else{Q=Q??I$(X)+"/";let Y=h1(Q);if(Y&&(q||!l8(Y)))await _Z(Q);if($=await import(Y),$.default)$=$.default}else{Q=Q??I$(X)+"/";let U=h1(Q);if(U&&(q||!l8(U)))await _Z(Q);if($=await import(U),$.default)$=$.default}return $}async function O6(Q=!1){let{baseDir:q}=await u9(),X=process.cwd(),U=x0(X,q),{buildDir:Y,distDir:H}=await u9();if(Q)try{d9(x0(U,Y)),d9(x0(U,H))}catch(G){console.error("Error creating directories:",G)}return U}function h1(Q){return Q?x0(Q,"designid.config.mjs"):x0(process.cwd(),"designid.config.mjs")}function E6(){let Q=process.argv.find((G)=>G.startsWith("--config=")),[,q]=Q?.split("=")??[];if(q)return q;let X=process.cwd(),$=h1(X),U=x0(X,"designid.config.ts"),Y=l8($),H=l8(U);if(Y)return $;else if(H)return U;throw console.error("Config file not found"),Error("Config file not found")}async function u9(Q=!1){let q=E6(),$=(await I5(process.cwd(),Q)).$paths;if(!$)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:q,...$}}async function X8(){let q=(await I5(process.cwd())).$metaData;if(!q)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!q.colorspace)q.colorspace="hex";if(!q.fontNamespace)q.fontNamespace=`${q.dsNamespace}.font`;if(!q?.tokens?.css?.mediaQuery?.match)q={...q??{},tokens:{...q.tokens??{},css:{...q.tokens?.css??{},mediaQuery:{...q.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(q?.tokens?.css?.mediaQuery&&typeof q.tokens.css.mediaQuery.separateThemeFiles!=="boolean")q.tokens.css.mediaQuery.separateThemeFiles=!1;if(!q.dsNamespace)q.dsNamespace=q.tokenNamespace;let X=await C$();return{...q,icons:q.icons??{objectPath:X},dsNamespace:q.dsNamespace}}async function MZ(){return(await I5(process.cwd())).$modes??{default:"light"}}async function _6(){if(!YZ){let Q=E6();YZ=await I5(process.cwd()),h$=Q}return YZ}async function B6(){if(!HZ)HZ=(await _6()).$modes??{default:"light"};return HZ}async function w6(){if(!WZ){let q=(await _6()).$metaData;if(!q)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!q.dsNamespace)q.dsNamespace=q.tokenNamespace;let $=`${q.tokenNamespace||"tokens"}.icons`;WZ={...q,icons:q.icons??{objectPath:$},dsNamespace:q.dsNamespace}}return WZ}async function LZ(Q=!1){if(!GZ){let X=(await _6()).$paths;if(!X)throw console.error("Project paths not found"),Error("Project paths not found");GZ={configFile:h$,...X}}return GZ}async function R9(){if(!BZ){let{distDir:Q,assets:q,buildDir:X}=await LZ(!0),{fontNamespace:$,tokenNamespace:U,icons:Y}=await w6(),H=await O6(),G=process.cwd(),z=x0(G,Q,"css");BZ={distDir:Q,assets:q,fontNamespace:$,__dirname:H,workspaceRoot:G,distCSSPath:z,buildDir:X,tokenNamespace:U,icons:Y}}return BZ}async function u1(){if(!zZ){let{icons:Q}=await w6();zZ=Q}return zZ}async function JZ(){if(!OZ){let{tokens:Q}=await w6();OZ=Q}return OZ}async function eO(){return(await I5(process.cwd())).$fonts??[]}async function QE(){if(!EZ)EZ=(await _6()).$fonts??[];return EZ}async function DZ(Q){if(h0(Q))return":root";let X=(await X8())?.tokens?.css?.mediaQuery?.match??"[data-theme]";if(X.startsWith("[")&&X.endsWith("]"))return`${X.replace("]",`="${Q}"]`)}`;else if(X.startsWith(".")||X.startsWith("#"))return`${X}${Q}`;else return`${X}${Q}`}async function m$(Q,q,X,$,U,Y={}){let H;if(h0(X))H=q.allTokens;else H=Q(q,X);let z=(await X8())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+X:Y.headerTitle??"",O=`${z6(z)}
|
|
22
|
+
${D5}`,E=h0(X)?`:root {
|
|
23
23
|
`:`@media (123prefers-color-scheme: ${X}) {
|
|
24
24
|
:root {
|
|
25
|
-
`,
|
|
25
|
+
`,w=`${O}
|
|
26
26
|
|
|
27
|
-
${
|
|
28
|
-
`}),Array.isArray($)&&$.length>1){let
|
|
29
|
-
`;for(let D of $){if(X===D)continue;let
|
|
30
|
-
`,Q(q,D).forEach((S)=>{if(
|
|
31
|
-
`}),
|
|
27
|
+
${E}`;if(H.forEach((M)=>{if(m1(M,Y,U))return;let D=p1(M,q,X);if(Y.transformValue)D=Y.transformValue(D);D=G6(D),w+=`${!h0(X)?" ":" "}--${L5(M.name)}: ${D};
|
|
28
|
+
`}),Array.isArray($)&&$.length>1){let M=`
|
|
29
|
+
`;for(let D of $){if(X===D)continue;let F=await DZ(D);M+=`${!h0(X)?" ":" "}&${F} {
|
|
30
|
+
`,Q(q,D).forEach((S)=>{if(m1(S,Y,U))return;let x=p1(S,q,D);if(Y.transformValue)x=Y.transformValue(x);x=G6(x),M+=`${!h0(X)?" ":" "}--${L5(S.name)}: ${x};
|
|
31
|
+
`}),M+=`${!h0(X)?" ":" "}}
|
|
32
32
|
|
|
33
|
-
`}M
|
|
33
|
+
`}w+=M}return w+=!h0(X)?` }
|
|
34
34
|
`:`}
|
|
35
|
-
`,
|
|
36
|
-
`:"",
|
|
35
|
+
`,w+=!h0(X)?`}
|
|
36
|
+
`:"",w}function m1(Q,q,X){let{namespace:$}=q.filter??{};if(!Q.$type)return!0;if($?.length&&Q.path){let U=Q.path.join("."),Y=$.some((G)=>U.startsWith(G)),H=q.filter?.isInclusion!==void 0&&q.filter.isInclusion;return Y&&!H||!Y&&H}if(q.filter?.isInclusion!==void 0&&q.filter.isInclusion===!1){if(Q.$type&&!X.includes(Q.$type))return!0}else if(!Q.$type||X.includes(Q.$type))return!0;return!1}async function p$(){let Q=await MZ(),{baseDir:q,distDir:X}=await u9(),$=await d1(x0(q,X,"css")),U=x0(q,X,await v$()),Y=D5+`
|
|
37
37
|
|
|
38
|
-
`,H=[{name:
|
|
39
|
-
`}}),!
|
|
38
|
+
`,H=[{name:T$,order:100},{name:V$,order:200},{name:x$,order:300},{name:S$,order:400}];if($=$.sort((G,z)=>{let O=(E)=>{let w=R$(E,".css"),M=H.find((D)=>w.includes(D.name));for(let D in Q)if(w.includes(D)){let F=Q[D]===Q.default?1:2;return M?M.order+F:0}return M?M.order:0};return O(G)-O(z)}),$.forEach((G)=>{if(G.endsWith(".css")){let O=`@import url("${d$(G,q,X)}");`;Y+=O+`
|
|
39
|
+
`}}),!l8(x0(q,X)))d9(x0(q,X));oO(U,Y)}function d$(Q,q,X){let $=P$(q,X);return Q.startsWith($)?Q.slice($.length+1):Q}function u$(Q,q,X,$){let U=D$(Q),Y=R$(D$(q)),H=U.split(UZ),G=H.lastIndexOf(Y);if(Y===".")return F$(X,$).split(UZ).join("/");else if(G===-1)throw Error(`Base directory '${Y}' not found in '${U}'`);let z=x0(...H.slice(0,G+1)),O=x0(z,X),E=x0(z,$);return F$(O,E).split(UZ).join("/")}var V$="tokens",S$="breakpoints",x$="typography",T$="icons",D5=`/*
|
|
40
40
|
* This file is automatically generated.
|
|
41
41
|
* DO NOT EDIT THIS FILE DIRECTLY.
|
|
42
42
|
* Changes will be overwritten. Please update the source design tokens instead.
|
|
43
|
-
|
|
44
|
-
`,
|
|
45
|
-
`}else if(
|
|
46
|
-
font-family: "${
|
|
47
|
-
font-style: ${
|
|
48
|
-
font-weight: ${
|
|
49
|
-
src: url("${b}") format("${
|
|
50
|
-
}
|
|
51
|
-
`}}let{distCSSPath:
|
|
52
|
-
${O.map((
|
|
53
|
-
`)}`;throw Error(_)}return G}function qJ(Q,q,X){let $=[];if(q.generateModes&&Q.extensions?.mode){for(let[U,Y]of Object.entries(Q.extensions.mode))if(Y!==void 0)$.push({...Q,name:`${Q.name}#${U}`,value:Y,path:[...Q.path,`#${U}`]})}if(q.generateModes&&!Q.extensions?.mode&&(Array.isArray(Q.value)||typeof Q.value==="object"&&Q.value!==null)){let U=!1,Y=!1,H=(G)=>{if(typeof G!=="object"||G===null)return!1;if(G.$extensions?.mode)return!0;return Object.values(G).some((z)=>{if(typeof z==="object"&&z!==null)return H(z);return!1})};if(Array.isArray(Q.value))U=Q.value.some((G)=>typeof G==="string"&&G.includes("{")||typeof G==="object"&&G!==null&&Object.values(G).some((z)=>typeof z==="string"&&z.includes("{"))),Y=Q.value.some((G)=>H(G));else U=Object.values(Q.value).some((G)=>typeof G==="string"&&G.includes("{")),Y=H(Q.value);if(U||Y){if(["color","shadow","border","background","surface","composition"].includes(Q.type)){let O;if(Array.isArray(Q.value))O=Q.value.map((_)=>{if(typeof _==="string"&&_.startsWith("{")&&_.endsWith("}")){let M=_.slice(1,-1);if(!M.includes("#dark")&&!M.includes("@dark"))return`{${M}#dark}`;return _}else if(typeof _==="object"&&_!==null){let M={};for(let[N,D]of Object.entries(_))if(typeof D==="string"&&D.startsWith("{")&&D.endsWith("}")){let R=D.slice(1,-1),P=`${R}#dark`,S=X?.get(R),T=X?.has(P)||S?.extensions?.mode?.dark!==void 0||S&&(Array.isArray(S.value)||typeof S.value==="object"&&S.value!==null);if(!R.includes("#dark")&&!R.includes("@dark")&&T)M[N]=`{${P}}`;else M[N]=D}else M[N]=D;return M}return _});else if(typeof Q.value==="object"&&Q.value!==null){O={};let _=(M)=>{if(typeof M==="string"){if(M.startsWith("{")&&M.endsWith("}")){let N=M.slice(1,-1),D=`${N}#dark`,R=(S,T=new Set)=>{if(T.has(S))return!1;T.add(S);let b=X?.get(S);if(!b){let k=S.match(/^(.+)@([^@]+)$/);if(k){let[,y,g]=k,i=X?.get(y);if(i){if(i.extensions?.mode?.dark!==void 0)return!0;if(i.extensions?.generators)return!0;return R(y,T)}}return!1}if(b.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${S}#dark`))return!0;if(typeof b.value==="string"&&b.value.startsWith("{")&&b.value.endsWith("}")){let k=b.value.slice(1,-1);return R(k,T)}if(Array.isArray(b.value)||typeof b.value==="object"&&b.value!==null){let k=(y)=>{if(typeof y!=="object"||y===null)return!1;if(y.$extensions?.mode)return!0;return Object.values(y).some((g)=>{if(typeof g==="object"&&g!==null)return k(g);return!1})};if(Array.isArray(b.value))return b.value.some((y)=>typeof y==="string"&&y.includes("{")&&R(y.slice(1,-1),new Set(T))||typeof y==="object"&&y!==null&&(Object.values(y).some((g)=>typeof g==="string"&&g.includes("{")&&R(g.slice(1,-1),new Set(T)))||k(y)));else if(typeof b.value==="object")return Object.values(b.value).some((y)=>typeof y==="string"&&y.includes("{")&&R(y.slice(1,-1),new Set(T)))||k(b.value)}return!1},P=R(N);if(!N.includes("#dark")&&!N.includes("@dark")&&P)return`{${D}}`}return M}if(typeof M==="object"&&M!==null){if(M.$extensions?.mode?.dark)return M.$extensions.mode.dark;let N={};for(let[D,R]of Object.entries(M))N[D]=_(R);return N}return M};for(let[M,N]of Object.entries(Q.value))O[M]=_(N)}$.push({...Q,name:`${Q.name}#dark`,value:O,path:[...Q.path,"#dark"],extensions:{...Q.extensions,autoGenerated:!0}})}}}if(q.generateModes&&!Q.extensions?.mode&&typeof Q.value==="string"&&Q.value.startsWith("{")&&Q.value.endsWith("}")){let U=Q.value.slice(1,-1),Y=(_,M=new Set)=>{if(M.has(_))return!1;M.add(_);let N=X?.get(_);if(!N){let D=_.match(/^(.+)@([^@]+)$/);if(D){let[,R,P]=D,S=X?.get(R);if(S){if(S.extensions?.mode?.dark!==void 0)return!0;if(S.extensions?.generators)return!0;return Y(R,M)}}return!1}if(N.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${_}#dark`))return!0;if(typeof N.value==="string"&&N.value.startsWith("{")&&N.value.endsWith("}")){let D=N.value.slice(1,-1);return Y(D,M)}if(Array.isArray(N.value)||typeof N.value==="object"&&N.value!==null){let D=(R)=>{if(typeof R!=="object"||R===null)return!1;if(R.$extensions?.mode)return!0;return Object.values(R).some((P)=>{if(typeof P==="object"&&P!==null)return D(P);return!1})};if(Array.isArray(N.value))return N.value.some((R)=>typeof R==="string"&&R.includes("{")&&Y(R.slice(1,-1),new Set(M))||typeof R==="object"&&R!==null&&(Object.values(R).some((P)=>typeof P==="string"&&P.includes("{")&&Y(P.slice(1,-1),new Set(M)))||D(R)));else if(typeof N.value==="object")return Object.values(N.value).some((R)=>typeof R==="string"&&R.includes("{")&&Y(R.slice(1,-1),new Set(M)))||D(N.value)}return!1},H=Y(U);if(["color","shadow","border","background","surface","composition"].includes(Q.type)&&H&&H&&!U.includes("#dark")&&!U.includes("@dark")){let _=`{${U}#dark}`;$.push({...Q,name:`${Q.name}#dark`,value:_,path:[...Q.path,"#dark"],extensions:{...Q.extensions,autoGenerated:!0}})}}if(q.generateDerivedTokens&&Q.extensions?.generators)for(let U of Q.extensions.generators)for(let[Y,H]of Object.entries(U.value)){let G=o$(Q.name,Y),{generators:z,...O}=Q.extensions;$.push({...Q,name:G,value:Q.value,path:[...Q.path,Y],extensions:{...O,generator:{type:U.type,value:H}}})}if(q.generateBreakpointTokens&&Q.extensions?.breakpoints)for(let[U,Y]of Object.entries(Q.extensions.breakpoints)){let H=`${Q.name}@${U.replace(/[^a-zA-Z0-9]/g,"_")}`,G=Y.$value||Y.value;if(G&&typeof G==="object"&&"$value"in G)G=G.$value;else if(!G&&typeof Y==="object"){let{..._}=Y;if(Object.keys(_).length>0)G=_}let z=Y.$extensions||Y.$extensions,O=Y.$type;if(!O&&Y.value&&typeof Y.value==="object")O=Y.value.$type;$.push({...Q,name:H,value:G,path:[...Q.path,`@${U}`],type:O||Q.type,extensions:{mediaQuery:U,...z?{mode:z.mode||z.$mode,generators:z.generators||z.$generators,...Object.fromEntries(Object.entries(z).filter(([_])=>!["mode","$mode","generators","$generators"].includes(_)))}:{}}})}return $}function _E(Q,q){let X=m9(Q.value,q),$=Q.type;if(typeof Q.value==="string"&&w6(Q.value)){let Y=Q.value.slice(1,-1),H=q.tokens.get(Y);if(H){if(["border","shadow","typography","composition"].includes(H.type))$=H.type;else if(typeof H.value==="string"&&N6(H.value)){let G=u1(H.value),z=new Set;for(let O of G)if(O.type==="reference"&&O.ref&&typeof O.ref==="string"){let _=O.ref.slice(1,-1),M=q.tokens.get(_);if(M&&["border","shadow","typography","composition"].includes(M.type))z.add(M.type)}if(z.size===1)$=Array.from(z)[0]}}}if(typeof Q.value==="string"&&N6(Q.value)){let Y=u1(Q.value),H=new Set;for(let G of Y)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let z=G.ref.slice(1,-1),O=q.tokens.get(z);if(O&&["border","shadow","typography","composition"].includes(O.type))H.add(O.type)}if(H.size===1)$=Array.from(H)[0]}if(typeof X==="object"&&X!==null&&["border","shadow","typography","composition"].includes($))X=F9(X,q);if(Q.extensions?.generator&&typeof Q.extensions.generator==="object"&&"type"in Q.extensions.generator&&"value"in Q.extensions.generator)X=c1(Q.value,Q.extensions.generator.type,Q.extensions.generator.value,q);let U=ME(Q.name,q.options);if($==="color"&&typeof X==="string"&&Q9(X))X=b0(X,Q);if(typeof X==="string"&&Z9(X))X=L6(X);return{...Q,type:$,value:X,cssVar:U}}function F9(Q,q){if(typeof Q==="string"){if(w6(Q))return VZ(Q,q);else if(N6(Q))return JJ(Q,q)}if(Array.isArray(Q))return Q.map((X)=>F9(X,q));if(typeof Q==="object"&&Q!==null){if("$value"in Q&&typeof Q.$value==="string")return F9(Q.$value,q);if("value"in Q&&typeof Q.value==="string"&&"$type"in Q){if(q.mode&&Q.$extensions?.mode?.[q.mode])return F9(Q.$extensions.mode[q.mode],q);return F9(Q.value,q)}if("value"in Q&&typeof Q.value==="object"&&"$type"in Q){let $=Q.value,U=Q.$extensions?.delimiter?.character||" ";if(Q.$type==="composition"&&$&&typeof $==="object")return Object.values($).map((H)=>F9(H,q)).join(U);return F9(Q.value,q)}let X={};for(let[$,U]of Object.entries(Q))X[$]=F9(U,q);return X}return Q}function m9(Q,q){if(typeof Q==="string"){if(N6(Q))return JJ(Q,q);else if(w6(Q))return VZ(Q,q)}else if(typeof Q==="object"&&Q!==null&&"$ref"in Q)return $J(Q,q);return Q}function VZ(Q,q){let X=Q.slice(1,-1),$=q.tokens.get(X),U=q.options.modes||[];if(!$){if(U.length>0){for(let G of U)if(X.endsWith(`@${G}`)){let z=X.slice(0,-G.length-1)+`#${G}`;if($=q.tokens.get(z),$)return RZ($,q);break}}let H=X.match(/#([^#@]+)$/);if(H){let G=X.substring(0,H.index),z=H[1];if($=q.tokens.get(G),$){if($.extensions?.mode?.[z]){let O=$.extensions.mode[z],_=m9(O,{...q,mode:z});if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)_=c1(_,$.extensions.generator.type,$.extensions.generator.value,q);if($.type==="color"&&typeof _==="string"&&Q9(_))_=b0(_,$);if(typeof _==="string"&&Z9(_))_=L6(_);return _}}}if(U.length>0)for(let G of U){let z=new RegExp(`(@[^@]+)@${G}$`);if(z.test(X)){let O=X.replace(z,`$1#${G}`);if($=q.tokens.get(O),!$){let _=O.match(/#([^#@]+)$/);if(_){let M=O.substring(0,_.index),N=_[1];if($=q.tokens.get(M),$&&$.extensions?.mode?.[N]){let D=$.extensions.mode[N],R=m9(D,{...q,mode:N});if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)R=c1(R,$.extensions.generator.type,$.extensions.generator.value,q);if($.type==="color"&&typeof R==="string"&&Q9(R))R=b0(R,$);if(typeof R==="string"&&Z9(R))R=L6(R);return R}}}else return RZ($,q);break}}}if(!$)return console.warn(`Token reference not found: ${Q}`),q.brokenReferences.push(Q),Q;return RZ($,q)}function RZ(Q,q){let X;if(Q.extensions?.generator&&typeof Q.extensions.generator==="object"&&"type"in Q.extensions.generator&&"value"in Q.extensions.generator)X=c1(Q.value,Q.extensions.generator.type,Q.extensions.generator.value,q);else if(q.mode&&Q.extensions?.mode?.[q.mode])X=m9(Q.extensions.mode[q.mode],q);else X=m9(Q.value,q);if(Q.type==="color"&&typeof X==="string"&&Q9(X))X=b0(X,Q);if(typeof X==="string"&&Z9(X))X=L6(X);return X}function $J(Q,q){let $=Q.$ref.slice(2).replace(/\//g,"."),U=q.tokens.get($);if(!U)return console.warn(`JSON Pointer reference not found: ${Q.$ref}`),q.brokenReferences.push(Q.$ref),Q.$ref;return m9(U.value,q)}function JJ(Q,q){let X=u1(Q),$=X.some((H)=>H.value.includes(",")),U=!0,Y=[];for(let H of X){let G;if(H.type==="reference"&&H.ref){if(typeof H.ref==="string"&&w6(H.ref)){G=VZ(H.ref,q);let z=H.ref.slice(1,-1),O=q.tokens.get(z);if(!O||!["border","shadow","typography","composition"].includes(O.type))U=!1}else if(typeof H.ref==="object"&&"$ref"in H.ref)G=$J(H.ref,q)}else if(G=H.value,H.value.trim()&&H.value.trim()!==",")U=!1;Y.push(G)}if($&&U)return Y.filter((H)=>typeof H==="object"&&H!==null&&typeof H!=="string");return Y.map((H)=>String(H)).join("")}function c1(Q,q,X,$){let U=m9(Q,$);switch(q){case"alpha":if(typeof U==="string")return wE(U,Number(X)/100);break;case"scale":if(typeof U==="string"&&U.match(/[\d.]+/))return NE(U,Number(X));break;case"hue":if(typeof U==="string")return LE(U,Number(X));break;default:return console.warn(`Unknown generator type: ${q}`),U}return U}function ME(Q,q,X){let $=Q.replace(/\./g,"-");$=$.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),$=$.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),$=$.replace(/#[^#]*$/,""),$=$.replace(/-@/g,"-").replace(/@/g,"-");let U=$,Y=!0,H=q.prefix||"";if(q.transformName){if(U=q.transformName($),U=U.replace(/-+$/,""),U!==$)Y=!1}let G=Y&&H?`${H}-${U}`:U,z=X?`-${X}`:"";return`--${G}${z}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function wE(Q,q){try{if(!Q9(Q))return Q;let X=new K0(Q);return X.alpha=q,b0(X)}catch(X){return console.warn(`Failed to apply alpha to color "${Q}": ${X}`),Q}}function NE(Q,q){let X=Q.match(/([\d.]+)(\w+)/);if(X){let[,$,U]=X;return`${parseFloat($)*q}${U}`}return Q}function LE(Q,q){try{if(!Q9(Q))return Q;let $=new K0(Q).to("oklch");return $.h=($.h+q)%360,b0($)}catch(X){return console.warn(`Failed to shift hue for color "${Q}": ${X}`),Q}}var SZ=S0(()=>{aQ();e$();Y6()});function xZ(Q){if(Q.type==="typography"||Q.type==="fontWeight"||Q.type==="fontFamily")return!0;if(Q.type==="dimension"&&Q.name.includes("typography"))return!0;if(Q.name.includes("typography")||Q.name.includes("font"))return!0;return!1}function R9(Q,q,X){if(X){if(Q===q)return":host";return`:host([data-theme="${Q}"])`}if(Q===q)return":root";return`[data-theme="${Q}"]`}function l1(Q,q={}){let{rootSelector:X=":root",separateThemeFiles:$=!1,generateMediaQueries:U=!1,customHeader:Y,modes:H=["light","dark"]}=q;if($)return FE(Q,q);let G=new Map,z=new Map;for(let b of H)G.set(b,[]);let O=H.join("|"),_=new RegExp(`#(${O})$`);for(let b of Q){if(typeof b.value==="string"&&Z9(b.value))continue;if(xZ(b))continue;let k=` ${b.cssVar}: ${m8(b.value,b.type)};`;if(U&&b.name.includes("@media")){let g=s1(b);if(g){if(!z.has(g))z.set(g,[]);z.get(g).push(k);continue}}let y=b.name.match(_);if(y){let g=y[1];if(!G.has(g))G.set(g,[]);G.get(g).push(k)}else{let g=H[0]||"light";G.get(g).push(k)}}let M="";if(Y)M+=`${Y}
|
|
54
|
-
|
|
55
|
-
`;let
|
|
56
|
-
${
|
|
43
|
+
*/`,YZ=null,h$=null,HZ=null,WZ=null,GZ=null,BZ=null,zZ=null,OZ=null,EZ=null;var N6=f0(()=>{C8()});function h0(Q){return Q===FZ}var FZ="light";var i$=f0(()=>{N6()});async function IZ(Q){let q=await u1();Q=Q.replace(/<\?xml[^>]*\?>\s*/,""),Q=Q.replace(/<!DOCTYPE [^>]*>\s*/,"");let X=Q.match(/<svg[^>]*>/),$=Q.match(/viewBox="([\d\s.]+)"/),[U]=X??[],Y=U;if(U&&Y){let G=q?.style?.fill||q?.style?.stroke?.color,z=/id="[^"]*"/.test(U);if(!Y.includes("xmlns="))Y=Y.replace("<svg",'<svg xmlns="http://www.w3.org/2000/svg"');if(!z&&G)Y=Y.replace("<svg",`<svg id="${G}"`);else if(z&&G)Y=Y.replace(/id="[^"]*"/,`id="${G}"`)}if($&&U&&Y){let G=$[1].split(" ").map(Number),z=G[2],O=G[3],E=q?.size??24,w=z/O*E;Q=Q.replace(/height="[\d.]+px?"/,`height="${E}px"`),Q=Q.replace(/width="[\d.]+px?"/,`width="${w}px"`);let M=/width="[\d.]+(px)?"/.test(U),D=/height="[\d.]+(px)?"/.test(U);if(!M)Y=Y.replace("<svg",`<svg width="${w}px"`);else Y=Y.replace(/width="[\d.]+(px)?"/,`width="${w}px"`);if(!D)Y=Y.replace("<svg",`<svg height="${E}px"`);else Y=Y.replace(/height="[\d.]+(px)?"/,`height="${E}px"`);Q=Q.replace(U,Y)}if(!Q?.match(/data-style="([^"]*)"/)&&q?.style?.type)Q=Q.replace("<svg ",`<svg data-style="${q.style.type}" `);if(q?.style?.type)Q=ZE(Q,q.style);return Q}function ZE(Q,q){switch(q.type){case"mono":if(Q=Q.replace(/stroke="[^"]*"/g,""),Q=Q.replace(/stroke-width="[^"]*"/g,""),Q=Q.replace(/stroke-linecap="[^"]*"/g,""),Q=Q.replace(/stroke-linejoin="[^"]*"/g,""),Q=Q.replace(/fill="none"/g,'fill="currentColor"'),q.fill&&!Q.includes("fill="))Q=Q.replace("<svg",'<svg fill="currentColor"');else if(q.fill)Q=Q.replace(/fill="(?!currentColor)[^"]*"/g,'fill="currentColor"');break;case"stroke":if(q.stroke){let{color:$,width:U,linecap:Y,linejoin:H}=q.stroke;if($){if(Q=Q.replace(/stroke="[^"]*"/g,'stroke="currentColor"'),!Q.includes("stroke="))Q=Q.replace("<svg",'<svg stroke="currentColor"')}if(U!==void 0){let G=typeof U==="number"?`${U}`:U;if(Q=Q.replace(/stroke-width="[^"]*"/g,`stroke-width="${G}"`),!Q.includes("stroke-width="))Q=Q.replace("<svg",`<svg stroke-width="${G}"`)}if(Y){if(Q=Q.replace(/stroke-linecap="[^"]*"/g,`stroke-linecap="${Y}"`),!Q.includes("stroke-linecap="))Q=Q.replace("<svg",`<svg stroke-linecap="${Y}"`)}if(H){if(Q=Q.replace(/stroke-linejoin="[^"]*"/g,`stroke-linejoin="${H}"`),!Q.includes("stroke-linejoin="))Q=Q.replace("<svg",`<svg stroke-linejoin="${H}"`)}if(!Q.includes("fill="))Q=Q.replace("<svg",'<svg fill="none"')}break;case"fill":if(Q=Q.replace(/stroke="[^"]*"/g,""),Q=Q.replace(/stroke-width="[^"]*"/g,""),q.fill){if(Q=Q.replace(/fill="[^"]*"/g,'fill="currentColor"'),!Q.includes("fill="))Q=Q.replace("<svg",'<svg fill="currentColor"')}break;case"animated":case"custom":break;default:break}return Q}var l$=f0(()=>{C8()});var s$=f0(()=>{N6();C8()});import{copyFileSync as XE,existsSync as $E,mkdirSync as n$,statSync as JE}from"fs";import{writeFile as UE}from"fs/promises";import{join as J8,relative as YE}from"path";async function AZ(Q,q){try{let{assets:X,workspaceRoot:$,distDir:U,__dirname:Y}=await R9(),H=X?.fonts?.sourceDir?J8(Y,X.fonts.sourceDir):null,G=J8("assets","fonts"),z=J8($,U),O=X?.fonts?.distDir?J8(z,X.fonts.distDir.replace(/^\.\//,"")):J8(z,G);if(!Q||!H)return;let E="",w=q&&X?.fonts?.distDir?J8(q,X.fonts.distDir.replace(/^\.\//,"")):O;for(let A of Q){if(!A)continue;if(E+=`/**** ${A.family} ${A.style} ****/
|
|
44
|
+
`,A.linkHref){let x=await(await fetch(A.linkHref)).text();E+=`${x.replace(/\s+/g," ").replace(/:\s+/g,":")}
|
|
45
|
+
`}else if(A?.src&&H){let S=A.directory??A.family.toLowerCase().replace(/\s+/g,"-"),x=J8(H,S,A.src);try{if(!$E(x)||!JE(x).isFile()){console.warn(`Font file not found: ${x}`);continue}}catch{console.warn(`Error accessing font file: ${x}`);continue}try{n$(J8(w,S),{recursive:!0}),XE(J8(H,S,A.src),J8(w,S,A.src))}catch(k){console.warn(`Error copying font file ${A.src}:`,k instanceof Error?k.message:k);continue}let b;if(X?.fonts?.cssImportPath)b=J8(X.fonts.cssImportPath,S,A.src).replace(/\\/g,"/");else{let{distCSSPath:k}=await R9(),v=q?J8(q,"css"):k,g=YE(v,w);b=J8(g,S,A.src).replace(/\\/g,"/")}E+=`@font-face {
|
|
46
|
+
font-family: "${A.family}";
|
|
47
|
+
font-style: ${A.faceStyle};
|
|
48
|
+
font-weight: ${A.weight};
|
|
49
|
+
src: url("${b}") format("${A.format}");
|
|
50
|
+
}
|
|
51
|
+
`}}let{distCSSPath:M}=await R9(),D=q?J8(q,"css"):M,F=`${D}/fonts.css`;n$(D,{recursive:!0}),await UE(F,E,{flag:"w",encoding:"utf-8"})}catch(X){console.error("Error appending typography tokens:",X)}}var PZ=f0(()=>{C8()});function M6(Q){if(typeof Q!=="string"||!Q.startsWith("{")||!Q.endsWith("}"))return!1;let q=Q.slice(1,-1);return!q.includes("{")&&!q.includes("}")&&q.trim()!==""}function L6(Q){if(typeof Q!=="string")return!1;let q=/\{[^}]+\}/g,X=Q.match(q);return!!(X&&X.length>0&&Q.length>X.join("").length)}function c1(Q){let q=[],X=/\{[^}]+\}/g,$=0,U;while((U=X.exec(Q))!==null){if(U.index>$){let H=Q.slice($,U.index);if(H)q.push({type:"literal",value:H})}let Y=U[0];if(Y.startsWith("{#/"))q.push({type:"reference",value:Y,ref:{$ref:Y.slice(2,-1)}});else q.push({type:"reference",value:Y,ref:Y});$=U.index+U[0].length}if($<Q.length){let Y=Q.slice($);if(Y)q.push({type:"literal",value:Y})}return q}function r$(Q){return!!Q.$extensions?.$mode}function o$(Q){return!!(Q.$extensions?.$generators&&Array.isArray(Q.$extensions.$generators))}function a$(Q){return!!(Q.$extensions?.$breakpoints&&typeof Q.$extensions.$breakpoints==="object")}function t$(Q,q){return`${Q}${q}`}function e$(Q){return typeof Q==="object"&&Q!==null&&"$value"in Q}function QJ(Q){return typeof Q==="object"&&Q!==null&&!("$value"in Q)}var ZJ=()=>{};function KJ(Q){if(typeof Q!=="string")return!1;let q=Q.trim();return q.startsWith("<svg")&&q.includes("</svg>")}function qJ(Q){if(typeof Q!=="string")return!1;return Q.startsWith("data:image/png;base64,")||Q.startsWith("iVBORw0KGgo")}function XJ(Q){if(typeof Q!=="string")return!1;return Q.startsWith("data:image/jpeg;base64,")||Q.startsWith("data:image/jpg;base64,")||Q.startsWith("/9j/")}function WE(Q){let q=Q.trim();return q=q.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),`data:image/svg+xml;base64,${Buffer.from(q,"utf-8").toString("base64")}`}function GE(Q){if(Q.startsWith("data:image/png;base64,"))return Q;return`data:image/png;base64,${Q}`}function BE(Q){if(Q.startsWith("data:image/jpeg;base64,")||Q.startsWith("data:image/jpg;base64,"))return Q;return`data:image/jpeg;base64,${Q}`}function D6(Q){if(!Q||typeof Q!=="string")return Q;if(Q.startsWith("data:"))return Q;if(KJ(Q))return WE(Q);else if(qJ(Q))return GE(Q);else if(XJ(Q))return BE(Q);return Q}function zE(Q){if(typeof Q!=="string")return!1;return Q.startsWith("data:image/svg+xml;")||Q.startsWith("data:image/png;")||Q.startsWith("data:image/jpeg;")||Q.startsWith("data:image/jpg;")||Q.startsWith("data:image/gif;")||Q.startsWith("data:image/webp;")}function U9(Q){return KJ(Q)||qJ(Q)||XJ(Q)||zE(Q)}import{readFileSync as OE,readdirSync as EE,statSync as _E}from"fs";import{join as wE}from"path";function VZ(Q){let q={};function X($){let U=EE($);for(let Y of U){let H=wE($,Y);if(_E(H).isDirectory())X(H);else if(Y.endsWith(".tokens.json"))try{let z=OE(H,"utf-8");if(!z.trim())continue;let O=JSON.parse(z);JJ(q,O)}catch(z){console.warn(`Failed to load token file: ${H}`,z)}}}return X(Q),q}function JJ(Q,q){for(let X in q)if(q[X]&&typeof q[X]==="object"&&!Array.isArray(q[X])){if(!Q[X])Q[X]={};JJ(Q[X],q[X])}else Q[X]=q[X]}function SZ(Q,q={}){let X=[];function $(U,Y=[]){for(let[H,G]of Object.entries(U)){if(H.startsWith("$"))continue;let z=[...Y,H],O=z.join(".");if(e$(G)){let E={path:z,name:O,type:G.$type,value:G.$value,description:G.$description,extensions:G.$extensions?{mode:r$(G)?G.$extensions.$mode:G.$extensions.mode?G.$extensions.mode:void 0,generators:o$(G)?G.$extensions.$generators:G.$extensions.generators?G.$extensions.generators:void 0,breakpoints:a$(G)?G.$extensions.$breakpoints:G.$extensions.breakpoint?G.$extensions.breakpoint:void 0,...Object.fromEntries(Object.entries(G.$extensions).filter(([w])=>!["$mode","$generators","$breakpoints","mode","generators","breakpoint"].includes(w)))}:void 0,original:G};if(!q.namespace||O.startsWith(q.namespace))X.push(E)}else if(QJ(G))$(G,z)}}return $(Q),X}function xZ(Q,q={}){let X=[...Q],$=new Map(Q.map((O)=>[O.name,O]));if(q.generateModes||q.generateDerivedTokens||q.generateBreakpointTokens)for(let O of Q){let E=$J(O,q,$);if(X.push(...E),q.generateModes){for(let w of E)if(w.extensions?.mode&&!w.name.includes("#")){let M=$J(w,q,$);X.push(...M)}}}let U=q.modes||[],Y=U.length>0?U[0]:void 0,H={tokens:new Map(X.map((O)=>[O.name,O])),mode:q.generateModes?Y:void 0,options:q,brokenReferences:[]},G=[];for(let O of X){let E=void 0;for(let D of U)if(O.name.endsWith(`#${D}`)){E=D;break}if(!E&&q.generateModes)E=Y;let w={...H,mode:E},M=NE(O,w);G.push(M)}if(q.failOnBrokenReferences!==!1&&H.brokenReferences.length>0){let O=[...new Set(H.brokenReferences)],E=`Token reference${O.length>1?"s":""} not found:
|
|
52
|
+
${O.map((w)=>` - ${w}`).join(`
|
|
53
|
+
`)}`;throw Error(E)}return G}function $J(Q,q,X){let $=[];if(q.generateModes&&Q.extensions?.mode){for(let[U,Y]of Object.entries(Q.extensions.mode))if(Y!==void 0)$.push({...Q,name:`${Q.name}#${U}`,value:Y,path:[...Q.path,`#${U}`]})}if(q.generateModes&&!Q.extensions?.mode&&(Array.isArray(Q.value)||typeof Q.value==="object"&&Q.value!==null)){let U=!1,Y=!1,H=(G)=>{if(typeof G!=="object"||G===null)return!1;if(G.$extensions?.mode)return!0;return Object.values(G).some((z)=>{if(typeof z==="object"&&z!==null)return H(z);return!1})};if(Array.isArray(Q.value))U=Q.value.some((G)=>typeof G==="string"&&G.includes("{")||typeof G==="object"&&G!==null&&Object.values(G).some((z)=>typeof z==="string"&&z.includes("{"))),Y=Q.value.some((G)=>H(G));else U=Object.values(Q.value).some((G)=>typeof G==="string"&&G.includes("{")),Y=H(Q.value);if(U||Y){if(["color","shadow","border","background","surface","composition"].includes(Q.type)){let O;if(Array.isArray(Q.value))O=Q.value.map((E)=>{if(typeof E==="string"&&E.startsWith("{")&&E.endsWith("}")){let w=E.slice(1,-1);if(!w.includes("#dark")&&!w.includes("@dark"))return`{${w}#dark}`;return E}else if(typeof E==="object"&&E!==null){let w={};for(let[M,D]of Object.entries(E))if(typeof D==="string"&&D.startsWith("{")&&D.endsWith("}")){let F=D.slice(1,-1),A=`${F}#dark`,S=X?.get(F),x=X?.has(A)||S?.extensions?.mode?.dark!==void 0||S&&(Array.isArray(S.value)||typeof S.value==="object"&&S.value!==null);if(!F.includes("#dark")&&!F.includes("@dark")&&x)w[M]=`{${A}}`;else w[M]=D}else w[M]=D;return w}return E});else if(typeof Q.value==="object"&&Q.value!==null){O={};let E=(w)=>{if(typeof w==="string"){if(w.startsWith("{")&&w.endsWith("}")){let M=w.slice(1,-1),D=`${M}#dark`,F=(S,x=new Set)=>{if(x.has(S))return!1;x.add(S);let b=X?.get(S);if(!b){let k=S.match(/^(.+)@([^@]+)$/);if(k){let[,v,g]=k,u=X?.get(v);if(u){if(u.extensions?.mode?.dark!==void 0)return!0;if(u.extensions?.generators)return!0;return F(v,x)}}return!1}if(b.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${S}#dark`))return!0;if(typeof b.value==="string"&&b.value.startsWith("{")&&b.value.endsWith("}")){let k=b.value.slice(1,-1);return F(k,x)}if(Array.isArray(b.value)||typeof b.value==="object"&&b.value!==null){let k=(v)=>{if(typeof v!=="object"||v===null)return!1;if(v.$extensions?.mode)return!0;return Object.values(v).some((g)=>{if(typeof g==="object"&&g!==null)return k(g);return!1})};if(Array.isArray(b.value))return b.value.some((v)=>typeof v==="string"&&v.includes("{")&&F(v.slice(1,-1),new Set(x))||typeof v==="object"&&v!==null&&(Object.values(v).some((g)=>typeof g==="string"&&g.includes("{")&&F(g.slice(1,-1),new Set(x)))||k(v)));else if(typeof b.value==="object")return Object.values(b.value).some((v)=>typeof v==="string"&&v.includes("{")&&F(v.slice(1,-1),new Set(x)))||k(b.value)}return!1},A=F(M);if(!M.includes("#dark")&&!M.includes("@dark")&&A)return`{${D}}`}return w}if(typeof w==="object"&&w!==null){if(w.$extensions?.mode?.dark)return w.$extensions.mode.dark;let M={};for(let[D,F]of Object.entries(w))M[D]=E(F);return M}return w};for(let[w,M]of Object.entries(Q.value))O[w]=E(M)}$.push({...Q,name:`${Q.name}#dark`,value:O,path:[...Q.path,"#dark"],extensions:{...Q.extensions,autoGenerated:!0}})}}}if(q.generateModes&&!Q.extensions?.mode&&typeof Q.value==="string"&&Q.value.startsWith("{")&&Q.value.endsWith("}")){let U=Q.value.slice(1,-1),Y=(E,w=new Set)=>{if(w.has(E))return!1;w.add(E);let M=X?.get(E);if(!M){let D=E.match(/^(.+)@([^@]+)$/);if(D){let[,F,A]=D,S=X?.get(F);if(S){if(S.extensions?.mode?.dark!==void 0)return!0;if(S.extensions?.generators)return!0;return Y(F,w)}}return!1}if(M.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${E}#dark`))return!0;if(typeof M.value==="string"&&M.value.startsWith("{")&&M.value.endsWith("}")){let D=M.value.slice(1,-1);return Y(D,w)}if(Array.isArray(M.value)||typeof M.value==="object"&&M.value!==null){let D=(F)=>{if(typeof F!=="object"||F===null)return!1;if(F.$extensions?.mode)return!0;return Object.values(F).some((A)=>{if(typeof A==="object"&&A!==null)return D(A);return!1})};if(Array.isArray(M.value))return M.value.some((F)=>typeof F==="string"&&F.includes("{")&&Y(F.slice(1,-1),new Set(w))||typeof F==="object"&&F!==null&&(Object.values(F).some((A)=>typeof A==="string"&&A.includes("{")&&Y(A.slice(1,-1),new Set(w)))||D(F)));else if(typeof M.value==="object")return Object.values(M.value).some((F)=>typeof F==="string"&&F.includes("{")&&Y(F.slice(1,-1),new Set(w)))||D(M.value)}return!1},H=Y(U);if(["color","shadow","border","background","surface","composition"].includes(Q.type)&&H&&H&&!U.includes("#dark")&&!U.includes("@dark")){let E=`{${U}#dark}`;$.push({...Q,name:`${Q.name}#dark`,value:E,path:[...Q.path,"#dark"],extensions:{...Q.extensions,autoGenerated:!0}})}}if(q.generateDerivedTokens&&Q.extensions?.generators)for(let U of Q.extensions.generators)for(let[Y,H]of Object.entries(U.value)){let G=t$(Q.name,Y),{generators:z,...O}=Q.extensions;$.push({...Q,name:G,value:Q.value,path:[...Q.path,Y],extensions:{...O,generator:{type:U.type,value:H}}})}if(q.generateBreakpointTokens&&Q.extensions?.breakpoints)for(let[U,Y]of Object.entries(Q.extensions.breakpoints)){let H=`${Q.name}@${U.replace(/[^a-zA-Z0-9]/g,"_")}`,G=Y.$value||Y.value;if(G&&typeof G==="object"&&"$value"in G)G=G.$value;else if(!G&&typeof Y==="object"){let{...E}=Y;if(Object.keys(E).length>0)G=E}let z=Y.$extensions||Y.$extensions,O=Y.$type;if(!O&&Y.value&&typeof Y.value==="object")O=Y.value.$type;$.push({...Q,name:H,value:G,path:[...Q.path,`@${U}`],type:O||Q.type,extensions:{mediaQuery:U,...z?{mode:z.mode||z.$mode,generators:z.generators||z.$generators,...Object.fromEntries(Object.entries(z).filter(([E])=>!["mode","$mode","generators","$generators"].includes(E)))}:{}}})}return $}function NE(Q,q){let X=c9(Q.value,q),$=Q.type;if(typeof Q.value==="string"&&M6(Q.value)){let Y=Q.value.slice(1,-1),H=q.tokens.get(Y);if(H){if(["border","shadow","typography","composition"].includes(H.type))$=H.type;else if(typeof H.value==="string"&&L6(H.value)){let G=c1(H.value),z=new Set;for(let O of G)if(O.type==="reference"&&O.ref&&typeof O.ref==="string"){let E=O.ref.slice(1,-1),w=q.tokens.get(E);if(w&&["border","shadow","typography","composition"].includes(w.type))z.add(w.type)}if(z.size===1)$=Array.from(z)[0]}}}if(typeof Q.value==="string"&&L6(Q.value)){let Y=c1(Q.value),H=new Set;for(let G of Y)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let z=G.ref.slice(1,-1),O=q.tokens.get(z);if(O&&["border","shadow","typography","composition"].includes(O.type))H.add(O.type)}if(H.size===1)$=Array.from(H)[0]}if(typeof X==="object"&&X!==null&&["border","shadow","typography","composition"].includes($))X=V9(X,q);if(Q.extensions?.generator&&typeof Q.extensions.generator==="object"&&"type"in Q.extensions.generator&&"value"in Q.extensions.generator)X=i1(Q.value,Q.extensions.generator.type,Q.extensions.generator.value,q);let U=ME(Q.name,q.options);if($==="color"&&typeof X==="string"&&J9(X))X=g0(X,Q);if(typeof X==="string"&&U9(X))X=D6(X);return{...Q,type:$,value:X,cssVar:U}}function V9(Q,q){if(typeof Q==="string"){if(M6(Q))return TZ(Q,q);else if(L6(Q))return YJ(Q,q)}if(Array.isArray(Q))return Q.map((X)=>V9(X,q));if(typeof Q==="object"&&Q!==null){if("$value"in Q&&typeof Q.$value==="string")return V9(Q.$value,q);if("value"in Q&&typeof Q.value==="string"&&"$type"in Q){if(q.mode&&Q.$extensions?.mode?.[q.mode])return V9(Q.$extensions.mode[q.mode],q);return V9(Q.value,q)}if("value"in Q&&typeof Q.value==="object"&&"$type"in Q){let $=Q.value,U=Q.$extensions?.delimiter?.character||" ";if(Q.$type==="composition"&&$&&typeof $==="object")return Object.values($).map((H)=>V9(H,q)).join(U);return V9(Q.value,q)}let X={};for(let[$,U]of Object.entries(Q))X[$]=V9(U,q);return X}return Q}function c9(Q,q){if(typeof Q==="string"){if(L6(Q))return YJ(Q,q);else if(M6(Q))return TZ(Q,q)}else if(typeof Q==="object"&&Q!==null&&"$ref"in Q)return UJ(Q,q);return Q}function TZ(Q,q){let X=Q.slice(1,-1),$=q.tokens.get(X),U=q.options.modes||[];if(!$){if(U.length>0){for(let G of U)if(X.endsWith(`@${G}`)){let z=X.slice(0,-G.length-1)+`#${G}`;if($=q.tokens.get(z),$)return RZ($,q);break}}let H=X.match(/#([^#@]+)$/);if(H){let G=X.substring(0,H.index),z=H[1];if($=q.tokens.get(G),$){if($.extensions?.mode?.[z]){let O=$.extensions.mode[z],E=c9(O,{...q,mode:z});if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)E=i1(E,$.extensions.generator.type,$.extensions.generator.value,q);if($.type==="color"&&typeof E==="string"&&J9(E))E=g0(E,$);if(typeof E==="string"&&U9(E))E=D6(E);return E}}}if(U.length>0)for(let G of U){let z=new RegExp(`(@[^@]+)@${G}$`);if(z.test(X)){let O=X.replace(z,`$1#${G}`);if($=q.tokens.get(O),!$){let E=O.match(/#([^#@]+)$/);if(E){let w=O.substring(0,E.index),M=E[1];if($=q.tokens.get(w),$&&$.extensions?.mode?.[M]){let D=$.extensions.mode[M],F=c9(D,{...q,mode:M});if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)F=i1(F,$.extensions.generator.type,$.extensions.generator.value,q);if($.type==="color"&&typeof F==="string"&&J9(F))F=g0(F,$);if(typeof F==="string"&&U9(F))F=D6(F);return F}}}else return RZ($,q);break}}}if(!$)return console.warn(`Token reference not found: ${Q}`),q.brokenReferences.push(Q),Q;return RZ($,q)}function RZ(Q,q){let X;if(Q.extensions?.generator&&typeof Q.extensions.generator==="object"&&"type"in Q.extensions.generator&&"value"in Q.extensions.generator)X=i1(Q.value,Q.extensions.generator.type,Q.extensions.generator.value,q);else if(q.mode&&Q.extensions?.mode?.[q.mode])X=c9(Q.extensions.mode[q.mode],q);else X=c9(Q.value,q);if(Q.type==="color"&&typeof X==="string"&&J9(X))X=g0(X,Q);if(typeof X==="string"&&U9(X))X=D6(X);return X}function UJ(Q,q){let $=Q.$ref.slice(2).replace(/\//g,"."),U=q.tokens.get($);if(!U)return console.warn(`JSON Pointer reference not found: ${Q.$ref}`),q.brokenReferences.push(Q.$ref),Q.$ref;return c9(U.value,q)}function YJ(Q,q){let X=c1(Q),$=X.some((H)=>H.value.includes(",")),U=!0,Y=[];for(let H of X){let G;if(H.type==="reference"&&H.ref){if(typeof H.ref==="string"&&M6(H.ref)){G=TZ(H.ref,q);let z=H.ref.slice(1,-1),O=q.tokens.get(z);if(!O||!["border","shadow","typography","composition"].includes(O.type))U=!1}else if(typeof H.ref==="object"&&"$ref"in H.ref)G=UJ(H.ref,q)}else if(G=H.value,H.value.trim()&&H.value.trim()!==",")U=!1;Y.push(G)}if($&&U)return Y.filter((H)=>typeof H==="object"&&H!==null&&typeof H!=="string");return Y.map((H)=>String(H)).join("")}function i1(Q,q,X,$){let U=c9(Q,$);switch(q){case"alpha":if(typeof U==="string")return LE(U,Number(X)/100);break;case"scale":if(typeof U==="string"&&U.match(/[\d.]+/))return DE(U,Number(X));break;case"hue":if(typeof U==="string")return FE(U,Number(X));break;default:return console.warn(`Unknown generator type: ${q}`),U}return U}function ME(Q,q,X){let $=Q.replace(/\./g,"-");$=$.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),$=$.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),$=$.replace(/#[^#]*$/,""),$=$.replace(/-@/g,"-").replace(/@/g,"-");let U=$,Y=!0,H=q.prefix||"";if(q.transformName){if(U=q.transformName($),U=U.replace(/-+$/,""),U!==$)Y=!1}let G=Y&&H?`${H}-${U}`:U,z=X?`-${X}`:"";return`--${G}${z}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function LE(Q,q){try{if(!J9(Q))return Q;let X=new K0(Q);return X.alpha=q,g0(X)}catch(X){return console.warn(`Failed to apply alpha to color "${Q}": ${X}`),Q}}function DE(Q,q){let X=Q.match(/([\d.]+)(\w+)/);if(X){let[,$,U]=X;return`${parseFloat($)*q}${U}`}return Q}function FE(Q,q){try{if(!J9(Q))return Q;let $=new K0(Q).to("oklch");return $.h=($.h+q)%360,g0($)}catch(X){return console.warn(`Failed to shift hue for color "${Q}": ${X}`),Q}}var CZ=f0(()=>{ZZ();ZJ();H6()});function jZ(Q){if(Q.type==="typography"||Q.type==="fontWeight"||Q.type==="fontFamily")return!0;if(Q.type==="dimension"&&Q.name.includes("typography"))return!0;if(Q.name.includes("typography")||Q.name.includes("font"))return!0;return!1}function S9(Q,q,X){if(X){if(Q===q)return":host";return`:host([data-theme="${Q}"])`}if(Q===q)return":root";return`[data-theme="${Q}"]`}function l1(Q,q={}){let{rootSelector:X=":root",separateThemeFiles:$=!1,generateMediaQueries:U=!1,customHeader:Y,modes:H=["light","dark"]}=q;if($)return AE(Q,q);let G=new Map,z=new Map;for(let b of H)G.set(b,[]);let O=H.join("|"),E=new RegExp(`#(${O})$`);for(let b of Q){if(typeof b.value==="string"&&U9(b.value))continue;if(jZ(b))continue;let k=` ${b.cssVar}: ${s8(b.value,b.type)};`;if(U&&b.name.includes("@media")){let g=n1(b);if(g){if(!z.has(g))z.set(g,[]);z.get(g).push(k);continue}}let v=b.name.match(E);if(v){let g=v[1];if(!G.has(g))G.set(g,[]);G.get(g).push(k)}else{let g=H[0]||"light";G.get(g).push(k)}}let w="";if(Y)w+=`${Y}
|
|
54
|
+
|
|
55
|
+
`;let M=q.defaultMode||H[0]||"light",D=q.isHost||!1,F=G.get(M)||[];if(F.length>0){F.sort();let b=S9(M,M,D);w+=`${b} {
|
|
56
|
+
${F.join(`
|
|
57
57
|
`)}
|
|
58
|
-
`;for(let k of H){if(k===
|
|
58
|
+
`;for(let k of H){if(k===M)continue;let v=G.get(k)||[];if(v.length>0){v.sort();let g=S9(k,M,D);if(D)w+=`}
|
|
59
59
|
|
|
60
60
|
${g} {
|
|
61
|
-
${
|
|
61
|
+
${v.join(`
|
|
62
62
|
`)}
|
|
63
|
-
`;else{let
|
|
64
|
-
${
|
|
65
|
-
${
|
|
63
|
+
`;else{let u=g.replace("[data-theme=","&[data-theme=");w+=`
|
|
64
|
+
${u} {
|
|
65
|
+
${v.map((p)=>` ${p}`).join(`
|
|
66
66
|
`)}
|
|
67
67
|
}
|
|
68
|
-
`}}}
|
|
69
|
-
`}if(U&&z.size>0){let b=
|
|
68
|
+
`}}}w+=`}
|
|
69
|
+
`}if(U&&z.size>0){let b=S9(M,M,D);for(let[k,v]of z)v.sort(),w+=`
|
|
70
70
|
${k} {
|
|
71
71
|
${b} {
|
|
72
|
-
${
|
|
72
|
+
${v.map((g)=>` ${g}`).join(`
|
|
73
73
|
`)}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
`}let
|
|
77
|
-
`)?
|
|
78
|
-
`}],S=
|
|
76
|
+
`}let A=[{fileName:"tokens.css",content:w.endsWith(`
|
|
77
|
+
`)?w:`${w}
|
|
78
|
+
`}],S=zJ(Q,q);A.push(...S);let x=OJ(Q,q);return A.push(...x),A}function IE(Q,q){let X=[];for(let U of Q){let H=` ${U.cssVar||s1(U,q)}: ${s8(U.value,U.type)};`;X.push(H)}let $="";if(q.customHeader)$+=`${q.customHeader}
|
|
79
79
|
|
|
80
80
|
`;if(X.length>0)X.sort(),$+=`${q.rootSelector||":root"} {
|
|
81
81
|
${X.join(`
|
|
@@ -83,7 +83,7 @@ ${X.join(`
|
|
|
83
83
|
}
|
|
84
84
|
`;return{fileName:"theme.css",content:$.endsWith(`
|
|
85
85
|
`)?$:`${$}
|
|
86
|
-
`}}function
|
|
86
|
+
`}}function AE(Q,q){let X=[],$=new Map,U=[],Y=q.modes||["light","dark"],H=new Set(Y),G=Y.join("|"),z=new RegExp(`#(${G})$`);for(let F of Q){if(n1(F))continue;if(typeof F.value==="string"&&U9(F.value))continue;if(jZ(F))continue;let A=F.name.match(z);if(A){let S=A[1];if(H.has(S)){if(!$.has(S))$.set(S,[]);$.get(S).push(F)}else U.push(F)}else U.push(F)}if(U.length>0){let F=l1(U,{...q,separateThemeFiles:!1})[0];X.push({...F,fileName:"tokens.css"})}let O=q.defaultMode||(Y.length>0?Y[0]:"default"),E=q.isHost||!1;for(let[F,A]of $){let S=S9(F,O,E),x=IE(A,{...q,separateThemeFiles:!1,rootSelector:S});X.push({...x,fileName:`tokens.${F}.css`,theme:F})}let w=PE(Q,q);X.push(...w);let M=zJ(Q,q);X.push(...M);let D=OJ(Q,q);return X.push(...D),X}function PE(Q,q){let X=new Map;for(let Y of Q){let H=n1(Y);if(H){let G=Y.name.match(/@(dark|light)$/),z=G?G[1]:"light";if(!X.has(H))X.set(H,new Map);let O=X.get(H);if(!O.has(z))O.set(z,[]);O.get(z).push(Y)}}if(X.size===0)return[];let $=`/**
|
|
87
87
|
* Design System Tokens - Responsive Breakpoints
|
|
88
88
|
* Generated: ${new Date().toISOString()}
|
|
89
89
|
*
|
|
@@ -91,19 +91,19 @@ ${X.join(`
|
|
|
91
91
|
* Each media query section overrides tokens for specific screen sizes.
|
|
92
92
|
*/
|
|
93
93
|
|
|
94
|
-
`,U=Array.from(X.keys()).sort();for(let Y of U){let H=X.get(Y),G=q.defaultMode||(q.modes&&q.modes.length>0?q.modes[0]:"light"),z=q.isHost||!1;for(let[O,
|
|
95
|
-
${
|
|
96
|
-
${
|
|
94
|
+
`,U=Array.from(X.keys()).sort();for(let Y of U){let H=X.get(Y),G=q.defaultMode||(q.modes&&q.modes.length>0?q.modes[0]:"light"),z=q.isHost||!1;for(let[O,E]of H){let w=[];for(let M of E){let F=` ${M.cssVar||s1(M,q)}: ${s8(M.value,M.type)};`;w.push(F)}if(w.length>0){w.sort();let M=S9(O,G,z);$+=`${Y} {
|
|
95
|
+
${M} {
|
|
96
|
+
${w.join(`
|
|
97
97
|
`)}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
`}}}return[{fileName:"tokens.breakpoints.css",content:$.trim()+`
|
|
102
|
-
`}]}function
|
|
102
|
+
`}]}function zJ(Q,q){let X=new Map;for(let U of Q)if(typeof U.value==="string"&&U9(U.value)){let Y=U.name.match(/@(dark|light)$/),H=Y?Y[1]:"light";if(!X.has(H))X.set(H,[]);X.get(H).push(U)}let $=[];if(X.size===0)return[];if(X.size===1){let[U,Y]=Array.from(X.entries())[0],H=HJ(Y,U,q);$.push({fileName:"tokens.icons.css",content:H.endsWith(`
|
|
103
103
|
`)?H:`${H}
|
|
104
|
-
`})}else for(let[U,Y]of X){let H=
|
|
104
|
+
`})}else for(let[U,Y]of X){let H=HJ(Y,U,q);$.push({fileName:`tokens.icons.${U}.css`,content:H.endsWith(`
|
|
105
105
|
`)?H:`${H}
|
|
106
|
-
`})}return $}function
|
|
106
|
+
`})}return $}function HJ(Q,q,X){let $=`/**
|
|
107
107
|
* Design System Tokens - Icons (${q})
|
|
108
108
|
* Generated: ${new Date().toISOString()}
|
|
109
109
|
*
|
|
@@ -111,17 +111,17 @@ ${M.join(`
|
|
|
111
111
|
* Icons are provided as data URIs for direct embedding.
|
|
112
112
|
*/
|
|
113
113
|
|
|
114
|
-
`,U=[];for(let Y of Q){let G=` ${Y.cssVar||
|
|
114
|
+
`,U=[];for(let Y of Q){let G=` ${Y.cssVar||s1(Y,X)}: ${s8(Y.value,Y.type)};`;U.push(G)}if(U.length>0){U.sort();let Y=X.defaultMode||"light",H=X.isHost||!1,G=S9(q,Y,H);$+=`${G} {
|
|
115
115
|
${U.join(`
|
|
116
116
|
`)}
|
|
117
117
|
}
|
|
118
118
|
`}return $+`
|
|
119
|
-
`}function
|
|
119
|
+
`}function s1(Q,q){let $=Q.name.split("@")[0].replace(/\.$/,"").replace(/\.+/g,"."),U=fZ($,q.hooks);return`--${q.prefix||F6}-${U.replace(/\./g,"-")}`}function fZ(Q,q,X){if(!q?.shortenName?.enabled)return Q;let $=Q;if(q.shortenName.prefix)for(let U of q.shortenName.prefix)$=$.replace(new RegExp(U.find,"g"),U.replace);if(q.shortenName.suffix){for(let U of q.shortenName.suffix)if($.endsWith(U.find))$=$.substring(0,$.length-U.find.length)+U.replace}if(X&&X!=="light"){let U=`-${X}`;if($.endsWith(U))$=$.slice(0,-U.length)}return $}function OJ(Q,q){let X=new Map,$=q.modes||[];for(let H of Q)if(jZ(H)){if(n1(H))continue;let z=$.length>0?$[0]:"default";if(H.name.includes("#")){let O=H.name.split("#"),E=O[O.length-1];if($.includes(E))z=E}if(!X.has(z))X.set(z,[]);X.get(z).push(H)}let U=[];if(q.separateThemeFiles??!1)for(let[H,G]of X.entries()){let z=WJ(G,H,q,$);U.push({fileName:`tokens.typography.${H}.css`,content:z.endsWith(`
|
|
120
120
|
`)?z:`${z}
|
|
121
|
-
`})}else{let H="";for(let[G,z]of X.entries()){let O=
|
|
121
|
+
`})}else{let H="";for(let[G,z]of X.entries()){let O=WJ(z,G,q,$);if(H)H+=`
|
|
122
122
|
`;H+=O}if(H)U.push({fileName:"tokens.typography.css",content:H.endsWith(`
|
|
123
123
|
`)?H:`${H}
|
|
124
|
-
`})}return U}function
|
|
124
|
+
`})}return U}function WJ(Q,q,X,$){let U=`/**
|
|
125
125
|
* Design System Tokens - Typography (${q})
|
|
126
126
|
* Generated: ${new Date().toISOString()}
|
|
127
127
|
*
|
|
@@ -129,27 +129,27 @@ ${U.join(`
|
|
|
129
129
|
* Includes fontSize, fontWeight, fontFamily, lineHeight, and typography compositions.
|
|
130
130
|
*/
|
|
131
131
|
|
|
132
|
-
`,Y=new Map;for(let H of Q){let G="default";if(H.name.includes("@")){let z=H.name.split("@");for(let O of z)if(O.includes("screen_")||O.includes("min_width")||O.includes("max_width")){G=O.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!Y.has(G))Y.set(G,[]);Y.get(G).push(H)}for(let[H,G]of Y.entries()){let z=[];for(let O of G){let
|
|
132
|
+
`,Y=new Map;for(let H of Q){let G="default";if(H.name.includes("@")){let z=H.name.split("@");for(let O of z)if(O.includes("screen_")||O.includes("min_width")||O.includes("max_width")){G=O.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!Y.has(G))Y.set(G,[]);Y.get(G).push(H)}for(let[H,G]of Y.entries()){let z=[];for(let O of G){let w=` ${O.cssVar||s1(O,X)}: ${s8(O.value,O.type)};`;z.push(w)}if(z.length>0){let O=X.defaultMode||"light",E=X.isHost||!1,w=S9(q,O,E);if(H==="default")z.sort(),U+=`${w} {
|
|
133
133
|
${z.join(`
|
|
134
134
|
`)}
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
`;else{let
|
|
138
|
-
`,U+=` ${
|
|
137
|
+
`;else{let M=H.startsWith("(")?H:`(${H})`;U+=`@media ${M} {
|
|
138
|
+
`,U+=` ${w} {
|
|
139
139
|
${z.sort().map((D)=>` ${D}`).join(`
|
|
140
140
|
`)}
|
|
141
141
|
}
|
|
142
142
|
`,U+=`}
|
|
143
143
|
|
|
144
144
|
`}}}return U+`
|
|
145
|
-
`}function
|
|
145
|
+
`}function s8(Q,q){if(Q===null||Q===void 0)return"";if(typeof Q==="object"&&Q!==null&&!Array.isArray(Q)){let $=Q;if($.$value!==void 0){if(typeof $.$value==="string")return $.$value;return s8($.$value,$.$type||q)}}let X=String(Q);switch(q){case"color":return RE(X);case"dimension":return VE(X);case"duration":return SE(X);case"fontFamily":return xE(X);case"fontWeight":return TE(X);case"cubicBezier":return CE(Q);case"shadow":return jE(Q);case"border":return fE(Q);case"typography":return bE(Q);case"composition":return bZ(Q);default:if(X.startsWith("data:"))return`"${X}"`;return X}}function RE(Q){if(Q.startsWith("oklch(")||Q.startsWith("rgb(")||Q.startsWith("rgba(")||Q.startsWith("hsl(")||Q.startsWith("hsla(")||Q.startsWith("#"))return Q;return Q}function VE(Q){if(/^\d+(\.\d+)?(px|rem|em|%|vh|vw|vmin|vmax)$/.test(Q))return Q;if(/^\d+(\.\d+)?$/.test(Q))return`${Q}rem`;return Q}function SE(Q){if(/^\d+(\.\d+)?(s|ms)$/.test(Q))return Q;if(/^\d+(\.\d+)?$/.test(Q))return`${Q}ms`;return Q}function xE(Q){return Q.split(",").map(($)=>$.trim()).map(($)=>{if($.includes(" ")&&!$.startsWith('"')&&!$.startsWith("'"))return`"${$}"`;return $}).join(", ")}function TE(Q){return{thin:"100","extra-light":"200",light:"300",normal:"400",medium:"500","semi-bold":"600",bold:"700","extra-bold":"800",black:"900"}[Q]||Q}function CE(Q){if(Array.isArray(Q)&&Q.length===4)return`cubic-bezier(${Q.join(", ")})`;return String(Q)}function jE(Q){if(Array.isArray(Q))return Q.map((q)=>GJ(q)).join(", ");return GJ(Q)}function GJ(Q){if(typeof Q==="object"&&Q!==null){let q=Q,X=q.color||"transparent";if(typeof X==="string"&&X.includes("{")&&X.includes("}")){console.warn(`Unresolved token reference in shadow color: ${X}`);let U=X.match(/\{([^}]+)\}/)?.[1];if(U)X=`var(${`--${F6}-${U.replace(/\./g,"-").replace(/@/g,"-")}`})`}let $=[q.offsetX||"0",q.offsetY||"0",q.blur||"0",q.spread||"0",X];if(q.inset)$.unshift("inset");return $.join(" ")}return String(Q)}function fE(Q){if(typeof Q==="object"&&Q!==null){let q=Q,X=k0(q.width)||"1px",$=k0(q.style)||"solid",U=k0(q.color)||"transparent";return`${X} ${$} ${U}`}return String(Q)}function bE(Q){if(typeof Q==="object"&&Q!==null){let q=Q,X=q.fontWeight||"normal",$=q.fontSize||"1rem",U=q.lineHeight||"normal",Y=q.fontFamily||"sans-serif";if(Y.includes(" ")&&!Y.startsWith('"')&&!Y.startsWith("'"))Y=`'${Y}'`;let H;if($.includes("/"))H=$;else H=`${$}/${U}`;return`${X} ${H} ${Y}`}return String(Q)}function bZ(Q){if(typeof Q!=="object"||Q===null)return String(Q);if(Array.isArray(Q))return Q.map((X)=>bZ(X)).join(", ");let q=Q;if(q.offsetX!==void 0&&q.offsetY!==void 0)return EJ(q);if(q.width!==void 0&&q.style!==void 0&&q.color!==void 0){let X=String(q.width||"1px"),$=String(q.style||"solid"),U=String(q.color||"transparent");return`${X} ${$} ${U}`}if(q.blur!==void 0||q.saturate!==void 0||q.brightness!==void 0)return kE(q);if(q.fontSize!==void 0||q.fontFamily!==void 0)return vE(q);return yE(q)}function EJ(Q){let q=[k0(Q.offsetX)||"0",k0(Q.offsetY)||"0",k0(Q.blur)||"0",k0(Q.spread)||"0",k0(Q.color)||"transparent"];if(Q.inset&&k0(Q.inset)==="true")q.unshift("inset");return q.join(" ")}function kE(Q){let q=[];if(Q.blur)q.push(k0(Q.blur)||"blur(0)");if(Q.saturate)q.push(k0(Q.saturate)||"saturate(100%)");if(Q.brightness)q.push(k0(Q.brightness)||"brightness(100%)");if(Q.contrast)q.push(k0(Q.contrast)||"contrast(100%)");if(Q.hueRotate)q.push(k0(Q.hueRotate)||"hue-rotate(0deg)");return q.join(" ")||"none"}function vE(Q){let q=k0(Q.fontWeight)||"normal",X=k0(Q.fontSize)||"1rem",$=k0(Q.lineHeight),U=k0(Q.fontFamily)||"sans-serif";if(U.includes(" ")&&!U.startsWith('"')&&!U.startsWith("'"))U=`'${U}'`;if(X.includes("/"))return`${q} ${X} ${U}`;else if($)return`${q} ${X}/${$} ${U}`;return`${q} ${X} ${U}`}function BJ(Q,q,X){let $=Q.match(/^\{(.+)\}$/);if(!$)return Q;let Y=$[1].replace(/\./g,"-");if(X)Y=fZ(Y,{shortenName:X.$metaData?.tokens?.css?.hooks?.shortenName});return`var(--${Y})`}function k0(Q,q,X){if(Q===null||Q===void 0)return"";if(typeof Q==="string"){if(Q.match(/^\{.+\}$/))return BJ(Q,q||"ds",X);return Q}if(typeof Q==="object"&&Q.value!==void 0){let $=String(Q.value);if($.match(/^\{.+\}$/))return BJ($,q||"ds",X);return $}return String(Q)}function yE(Q){let q=[];for(let[,U]of Object.entries(Q)){let Y=U;if(typeof U==="object"&&U!==null&&Y.$value&&typeof Y.$value==="object"){let H=Y.$value;if(H.offsetX!==void 0&&H.offsetY!==void 0){let G=EJ(H);if(G)q.push(G)}else{let G=bZ(H);if(G)q.push(G)}}else{let H=k0(U);if(H)q.push(H)}}let $=q.some((U)=>/^\d/.test(U)&&U.includes(" "))?", ":" ";return q.join($)||String(Q)}function n1(Q){if(Q.extensions?.mediaQuery&&typeof Q.extensions.mediaQuery==="string"){let X=Q.extensions.mediaQuery;if(X=X.replace(/\{universe\.foundation\.breakpoint\.screen\.width\.lg\}/g,"64rem"),!X.startsWith("@media"))X=`@media ${X}`;return X}let q=Q.name.match(/@(media[^@]+)/);if(q)return`@${q[1].replace(/_/g," ")}`;if(Q.name.includes("@screen_and__min_width__300px_"))return"@media screen and (min-width: 300px)";if(Q.name.includes("@screen_and__min_width__600px_"))return"@media screen and (min-width: 600px)";if(Q.name.includes("@")&&Q.name.includes("_"))return"@media (unknown-breakpoint)";return null}function r1(Q){let q=Q?.$name||"Design System",X=Q?.$version||"1.0.0",$=new Date().toISOString();return`/**
|
|
146
146
|
* ${q} - CSS Custom Properties
|
|
147
147
|
* Version: ${X}
|
|
148
148
|
* Generated: ${$}
|
|
149
149
|
*
|
|
150
150
|
* This file contains CSS custom properties (CSS variables) generated from design tokens.
|
|
151
151
|
* Do not edit this file directly - it will be overwritten.
|
|
152
|
-
*/`}function
|
|
152
|
+
*/`}function gE(Q){let q=Q.replace(/\r?\n|\r/g,"").replace(/\s+/g," ").trim();return`data:image/svg+xml;base64,${Buffer.from(q,"utf8").toString("base64")}`}function kZ(Q,q={}){let{customHeader:X,objectPath:$="universe.custom.path.icons",isHost:U=!1,defaultMode:Y="light"}=q,H="--"+$.replace(/\./g,"-"),G="";if(X)G+=X+`
|
|
153
153
|
|
|
154
154
|
`;else G+=`/**
|
|
155
155
|
* Icon CSS - Base64 Encoded SVG Icons as CSS Custom Properties
|
|
@@ -165,21 +165,21 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
165
165
|
* Do not edit this file directly - it will be overwritten.
|
|
166
166
|
*/
|
|
167
167
|
|
|
168
|
-
`;let z=
|
|
169
|
-
`;let O=[...Q].sort((
|
|
168
|
+
`;let z=S9(Y,Y,U);G+=`${z} {
|
|
169
|
+
`;let O=[...Q].sort((E,w)=>E.name.localeCompare(w.name));for(let E of O){let w=E.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),M=E.category?`${H}-${E.category}-${w}`:`${H}-${w}`;if(q.hooks?.shortenName?.enabled)M=fZ(M,q.hooks);let D=gE(E.value);G+=` ${M}: url("${D}");
|
|
170
170
|
`}return G+=`}
|
|
171
171
|
`,{fileName:"tokens.icons.css",content:G.trim()+`
|
|
172
|
-
`}}var
|
|
173
|
-
`}function
|
|
172
|
+
`}}var o1=f0(()=>{C8()});import{readFileSync as hE,existsSync as mE}from"fs";import{join as _J,relative as pE}from"path";async function vZ(){try{let{assets:Q}=await u9(!0),{icons:q}=await X8(),X=await O6(),$=Q?.icons?.distDir??"build",U=_J(X,$),Y=_J(U,"tokens",await F5("json"));if(!mE(Y)){let F=pE(process.cwd(),Y);return console.log(`ℹ️ Icon data not found (skipping icon types): ${F}`),console.log(" Run icon build first if you need icon types generated."),[]}let H=JSON.parse(hE(Y,"utf8")),G=q?.objectPath??"universe.icons",z=G.split("."),O=H;for(let F of z)if(O&&typeof O==="object"&&F in O)O=O[F];else throw Error(`Icon path ${G} not found in icons file`);let E=[],w=Object.keys(O)[0],M=O[w];if(M&&typeof M==="object"&&"$value"in M){for(let[F,A]of Object.entries(O))if(typeof A==="object"&&A!==null){let S=A;if(F.startsWith("$"))continue;E.push({name:F,category:"",value:S.$value||"",description:S.$description||"",style:S.$style||"",dimensions:S.$extensions?.dimensions||S.$dimensions})}}else for(let[F,A]of Object.entries(O))if(typeof A==="object"&&A!==null){for(let[S,x]of Object.entries(A))if(typeof x==="object"&&x!==null){let b=x;if(S.startsWith("$"))continue;E.push({name:S,category:F,value:b.$value||"",description:b.$description||"",style:b.$style||"",dimensions:b.$extensions?.dimensions||b.$dimensions})}}return E}catch(Q){if(Q instanceof Error){if("code"in Q&&Q.code!=="ENOENT")console.warn(`⚠️ Could not load icon data: ${Q.message}`)}return[]}}async function yZ(Q,q={},X){let{generateTypes:$=!0,generateConsts:U=!0}=q,Y=q.icons;if(!Y)Y=await vZ();let H={...q,icons:Y},G=[];if($)G.push({fileName:"tokens.types.ts",content:dE(Q,H),type:"types"});if(U)G.push({fileName:"tokens.constants.ts",content:uE(Q,H),type:"constants"});return G.push({fileName:"index.ts",content:cE(G,X),type:"index"}),G}function dE(Q,q){let{tokenInterface:X="DesignTokens",includeJSDoc:$=!0,icons:U=[]}=q,Y=gZ("Type Definitions");if(Y+=iE(Q,$),Y+=lE(Q,$),U.length>0)Y+=sE(U,$);return Y+=nE(Q,X,$),Y+=oE(Q,$),Y+`
|
|
173
|
+
`}function uE(Q,q){let{includeJSDoc:X=!0,icons:$=[]}=q,U=gZ("Token Constants"),Y="TokenPaths, CSSVariableNames";if($.length>0)Y+=", IconNames, IconCategories, Icon";if(U+=`import type { ${Y} } from './tokens.types';
|
|
174
174
|
|
|
175
|
-
`,U+=
|
|
176
|
-
`}function
|
|
175
|
+
`,U+=aE(Q,X),U+=eE(Q,X),$.length>0)U+=tE($,X);return U+=Q_(Q,X),U+`
|
|
176
|
+
`}function cE(Q,q){let X=gZ("Main Export");if(Q.some(($)=>$.type==="types"))X+=`export type * from './tokens.types';
|
|
177
177
|
`;if(Q.some(($)=>$.type==="constants"))X+=`export * from './tokens.constants';
|
|
178
|
-
`;if(q)try{let $=
|
|
178
|
+
`;if(q)try{let $=h8("fs"),Y=h8("path").join(q,"typescript","tokens.icons.ts");if($.existsSync(Y))X+=`export type * from './tokens.icons';
|
|
179
179
|
`,X+=`export * from './tokens.icons';
|
|
180
180
|
`}catch($){}return X+=`
|
|
181
181
|
`,X+`
|
|
182
|
-
`}function
|
|
182
|
+
`}function iE(Q,q){let X=Q.map((U)=>`"${U.name}"`).join(`
|
|
183
183
|
| `),$="";if(q)$+=`/**
|
|
184
184
|
* All available token paths as string literals
|
|
185
185
|
*/
|
|
@@ -187,7 +187,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
187
187
|
| ${X};
|
|
188
188
|
|
|
189
189
|
`,$+`
|
|
190
|
-
`}function
|
|
190
|
+
`}function lE(Q,q){let X=Z_(Q),$="";for(let[U,Y]of X){let H=`${q_(U)}TokenValue`,G=new Set(Y.map((O)=>I6(O.value))),z=Array.from(G).join(`
|
|
191
191
|
| `);if(q)$+=`/**
|
|
192
192
|
* Possible values for ${U} tokens
|
|
193
193
|
*/
|
|
@@ -195,7 +195,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
195
195
|
| ${z};
|
|
196
196
|
|
|
197
197
|
`}return $+`
|
|
198
|
-
`}function
|
|
198
|
+
`}function sE(Q,q){let X="",$=Q.map((H)=>`"${H.name}"`).join(`
|
|
199
199
|
| `);if(q)X+=`/**
|
|
200
200
|
* All available icon names as string literals
|
|
201
201
|
*/
|
|
@@ -231,23 +231,23 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
231
231
|
`,X+=`}
|
|
232
232
|
|
|
233
233
|
`,X+`
|
|
234
|
-
`}function
|
|
234
|
+
`}function nE(Q,q,X){let $="";if(X)$+=`/**
|
|
235
235
|
* Design tokens interface with all token paths and their values
|
|
236
236
|
*/
|
|
237
237
|
`;$+=`export interface ${q} {
|
|
238
238
|
`;for(let U of Q){if(X&&U.description)$+=` /** ${U.description} */
|
|
239
|
-
`;$+=` "${U.name}": ${
|
|
239
|
+
`;$+=` "${U.name}": ${I6(U.value)};
|
|
240
240
|
`}return $+=`}
|
|
241
241
|
|
|
242
|
-
`,$+=
|
|
243
|
-
`}function
|
|
242
|
+
`,$+=rE(Q,`${q}Nested`,X),$+`
|
|
243
|
+
`}function rE(Q,q,X){let $=K_(Q),U="";if(X)U+=`/**
|
|
244
244
|
* Design tokens interface with nested structure
|
|
245
245
|
*/
|
|
246
246
|
`;return U+=`export interface ${q} {
|
|
247
|
-
`,U+=
|
|
247
|
+
`,U+=wJ($,1),U+=`}
|
|
248
248
|
|
|
249
249
|
`,U+`
|
|
250
|
-
`}function
|
|
250
|
+
`}function oE(Q,q){let $=Array.from(new Set(Q.map((Y)=>Y.cssVar))).map((Y)=>`"${Y}"`).join(`
|
|
251
251
|
| `),U="";if(q)U+=`/**
|
|
252
252
|
* All available CSS variable names
|
|
253
253
|
*/
|
|
@@ -255,7 +255,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
255
255
|
| ${$};
|
|
256
256
|
|
|
257
257
|
`,U+`
|
|
258
|
-
`}function
|
|
258
|
+
`}function aE(Q,q){let X="";if(q)X+=`/**
|
|
259
259
|
* Object containing all token values
|
|
260
260
|
*/
|
|
261
261
|
`;X+=`export const tokenValues = {
|
|
@@ -263,7 +263,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
263
263
|
`;X+=` "${$.name}": ${JSON.stringify($.value)},
|
|
264
264
|
`}return X+=`} as const;
|
|
265
265
|
|
|
266
|
-
`,X}function
|
|
266
|
+
`,X}function tE(Q,q){let X="";if(q)X+=`/**
|
|
267
267
|
* Array of all available icons
|
|
268
268
|
*/
|
|
269
269
|
`;X+=`export const icons: Icon[] = [
|
|
@@ -306,7 +306,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
306
306
|
`,X+=`}
|
|
307
307
|
|
|
308
308
|
`,X+`
|
|
309
|
-
`}function
|
|
309
|
+
`}function eE(Q,q){let X="";if(q)X+=`/**
|
|
310
310
|
* Object mapping token paths to CSS variable names
|
|
311
311
|
*/
|
|
312
312
|
`;X+=`export const cssVariableNames = {
|
|
@@ -314,7 +314,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
314
314
|
`;return X+=`} as const;
|
|
315
315
|
|
|
316
316
|
`,X+`
|
|
317
|
-
`}function
|
|
317
|
+
`}function Q_(Q,q){let X="";if(q)X+=`/**
|
|
318
318
|
* Get the value of a design token
|
|
319
319
|
*/
|
|
320
320
|
`;if(X+=`export function getTokenValue<T extends TokenPaths>(tokenPath: T): typeof tokenValues[T] {
|
|
@@ -343,10 +343,10 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
343
343
|
}
|
|
344
344
|
|
|
345
345
|
`,X+`
|
|
346
|
-
`}function
|
|
347
|
-
`,X+=
|
|
346
|
+
`}function Z_(Q){let q=new Map;for(let X of Q){if(!q.has(X.type))q.set(X.type,[]);q.get(X.type).push(X)}return q}function K_(Q){let q={};for(let X of Q){if(X.path.some((z)=>z.includes("@")||z.includes("#")||z.includes("-")||z.includes(".")))continue;let U=q,Y=[...X.path];for(let z=0;z<Y.length-1;z++){let O=Y[z];if(!U[O])U[O]={};U=U[O]}let H=Y[Y.length-1],G=I6(X.value);U[H]=G}return q}function wJ(Q,q){let X="",$=" ".repeat(q);for(let[U,Y]of Object.entries(Q)){let H=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(U)?U:`"${U}"`;if(typeof Y==="object"&&!Array.isArray(Y))X+=`${$}${H}: {
|
|
347
|
+
`,X+=wJ(Y,q+1),X+=`${$}};
|
|
348
348
|
`;else X+=`${$}${H}: ${Y};
|
|
349
|
-
`}return X}function
|
|
349
|
+
`}return X}function I6(Q){if(typeof Q==="string")return`"${Q}"`;else if(typeof Q==="number")return Q.toString();else if(typeof Q==="boolean")return Q.toString();else if(Array.isArray(Q)){let q=new Set(Q.map(($)=>I6($)));return`Array<${Array.from(q).join(" | ")}>`}else if(Q===null)return"null";else if(Q===void 0)return"undefined";else if(typeof Q==="object"&&Q!==null)return`{ ${Object.entries(Q).map(([$,U])=>`${$}: ${I6(U)}`).join("; ")} }`;else return"unknown"}function q_(Q){if(!Q||typeof Q!=="string")return"";return Q.charAt(0).toUpperCase()+Q.slice(1)}function gZ(Q){let q=new Date().toISOString();return`/**
|
|
350
350
|
* ${Q}
|
|
351
351
|
* Generated: ${q}
|
|
352
352
|
*
|
|
@@ -354,7 +354,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
354
354
|
* Do not edit this file directly - it will be overwritten.
|
|
355
355
|
*/
|
|
356
356
|
|
|
357
|
-
`}var
|
|
357
|
+
`}var hZ=f0(()=>{C8()});function X_(Q,q,X){let $=t0(Q,{isIncludedOriginalValue:!0}),U=T8(Q,X);if(!U||!P9(Q,"mode",{isIncludedOriginalValue:!1}))U=$;return g1(Q,U,q,X)}function p1(Q,q,X){let $=X_(Q,q,X),U=typeof $==="string"?$8($):null;if(U&&(U?.length??0)>=1)return M5($,U,q,X);else return $_(Q,q,X)}function $_(Q,q,X){return g1(Q,qZ(Q,q,X),q,X)}function g1(Q,q,X,$){if(!Q)return null;if(Q.$type==="color")q=v1(q,Q,X,$);else if(Q.$type==="composition"||Q.$type==="typography")q=N5(Q,X,$);return q}var F6="did";var C8=f0(()=>{H6();W6();y1();H6();N6();i$();l$();s$();W6();y1();PZ();CZ();o1();hZ();pZ()});import{readFileSync as J_,mkdirSync as DJ}from"fs";import{writeFile as MJ,readdir as U_,mkdir as Y_}from"fs/promises";import{resolve as H_,relative as LJ,join as a1,dirname as FJ}from"path";async function AJ(Q){let q=await U_(Q,{withFileTypes:!0}),X=await Promise.all(q.map(($)=>{let U=H_(Q,$.name);return $.isDirectory()?AJ(U):U}));return Array.prototype.concat(...X)}async function PJ(Q,q){if(!Q)throw Error("outputDir is required for buildIcons");let{assets:X,icons:$,tokenNamespace:U,__dirname:Y,buildDir:H}=await R9(),G=a1(Y,X?.icons?.sourceDir??"icons"),z="build",O=X?.icons?.distDir??z,E=a1(Y,O),w=a1(Y,H,"icons");if(!X?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}d9(a1(Y,H));let M=(await AJ(G)).filter((u)=>u.endsWith(".svg")),A=(await Promise.all(M.map(async(u)=>{let p=J_(u,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";p=await IZ(p);let q0=LJ(G,u).split("/").pop(),W0=(p.match(/name="(.*?)"/)??[])[1]??q0?.replace(".svg",""),X0=(p.match(/data-style="(.*?)"/)??[])[1],D0=(p.match(/description="(.*?)"/)??[])[1],[d0]=p.match(/<svg[^>]*>/)??[],[,H8]=d0?.match(/width="([\d.]+)(px)?"/)??[],[,T0]=d0?.match(/height="([\d.]+)(px)?"/)??[];if(X0!=="animated"&&X0!=="custom")return{path:u,folder:LJ(G,u).split("/").slice(0,-1).concat(W0),file:q0,style:X0,content:p,name:W0,dimensions:{width:Number(H8),height:Number(T0)},description:D0??""};return}))).filter((u)=>u!==void 0).reduce((u,p)=>{if(p?.style!=="animated"&&p?.style!=="custom"&&p)dZ(u,p.folder.join("."),{$type:"icon",$name:p.name,$description:p.description,$style:p.style,$value:p.content,$extensions:{dimensions:p.dimensions},...W_(u,p.folder.join("."))});return u},{}),S=$?.objectPath??`${U}.icons`,b=Object.keys(A).some((u)=>u.includes("."));Object.keys(A).forEach(async(u)=>{let p,q0;if(b)p=`${w}/${u}`,q0=`${p}/svg.${u}.tokens.json`;else p=w,q0=`${w}/svg.${u}.tokens.json`;await Y_(p,{recursive:!0});let W0=dZ({},`${S}${S?".":""}${u}`,A[u]);await MJ(q0,JSON.stringify(W0,null,2),{flag:"w",encoding:"utf-8"})});let k=`${E}/tokens/${await F5("json")}`,v=FJ(k);DJ(v,{recursive:!0});let g=dZ({},S,A);await MJ(k,JSON.stringify(g,null,2),{flag:"w",encoding:"utf-8"}),await G_(A,Q,q)}async function G_(Q,q,X){let{writeFileSync:$}=h8("fs"),{join:U}=h8("path");try{let Y=Object.keys(Q).sort(),H=`/**
|
|
358
358
|
* Icon Names Type Definition
|
|
359
359
|
* Generated: ${new Date().toISOString()}
|
|
360
360
|
*
|
|
@@ -368,25 +368,25 @@ export const icons = [
|
|
|
368
368
|
] as const;
|
|
369
369
|
|
|
370
370
|
export type IconName = typeof icons[number];
|
|
371
|
-
`,G=U(q,"typescript","tokens.icons.ts"),z=
|
|
371
|
+
`,G=U(q,"typescript","tokens.icons.ts"),z=FJ(G);DJ(z,{recursive:!0}),$(G,H,"utf-8"),console.log(`✓ Generated ${Y.length} icon names`)}catch(Y){console.error("Failed to generate icon names:",Y)}}var IJ,dZ,W_;var RJ=f0(()=>{C8();IJ=H5(E$(),1),{set:dZ,get:W_}=IJ.default});function xJ(Q,q={}){let X=[],$=q.typescript?"ts":"js",U=q.modes||[],Y=Q.filter((G)=>G.extensions?.mediaQuery||G.name.includes("@screen")||G.name.includes("@_")),H=Q.filter((G)=>!G.extensions?.mediaQuery&&!G.name.includes("@screen")&&!G.name.includes("@_"));if(q.separateThemeFiles&&U.length>0){let G=U.join("|"),z=new RegExp(`#(${G})$`),O=new Map;for(let E of U)O.set(E,[]);for(let E of H){let w=E.name.match(z);if(w){let M=w[1];O.get(M).push(E)}else{let M=U[0];O.get(M).push(E)}}for(let E of U){let w=O.get(E)||[];if(w.length>0){if(q.typescript){let M=TJ(w,E);X.push({fileName:`${E}.d.ts`,content:w_(M,q,E),theme:E})}X.push({fileName:`${E}.${$}`,content:SJ(w,{...q,theme:E}),theme:E})}}}else X.push({fileName:`tokens.${$}`,content:SJ(H,q)});if(Y.length>0)X.push({fileName:`breakpoints.${$}`,content:B_(Y,Q,q)});if(q.separateThemeFiles&&X.length>1)X.push({fileName:`index.${$}`,content:M_(X,q)});return X}function B_(Q,q,X={}){let{typescript:$,includeJSDoc:U,moduleType:Y="es",customHeader:H,modes:G=[]}=X,z=new Map(q.map((M)=>[M.name,M])),O={};for(let M of Q){let D=M.extensions?.mediaQuery||z_(M.name),F=G.length>0?G[0]:"default";for(let x of G)if(M.name.includes(`#${x}`)){F=x;break}if(typeof D==="string"&&D.includes("{")&&D.includes("}"))D=E_(D,z);if(!O[D])O[D]={};if(!O[D][F])O[D][F]={};let A=O_(M.name),S=__(A,t1(M.value,z));O[D][F]={...O[D][F],...S}}let E=Object.keys(O).sort((M,D)=>{let F=VJ(M),A=VJ(D);return F-A}).reduce((M,D)=>{return M[D]=O[D],M},{}),w="";if(H)w+=`${H}
|
|
372
372
|
|
|
373
|
-
`;else
|
|
374
|
-
`,
|
|
375
|
-
`,
|
|
376
|
-
`,
|
|
377
|
-
`,
|
|
373
|
+
`;else w+=`/**
|
|
374
|
+
`,w+=` * Design Tokens - Breakpoints
|
|
375
|
+
`,w+=` * Auto-generated from design token definitions
|
|
376
|
+
`,w+=` * Do not edit this file directly
|
|
377
|
+
`,w+=` */
|
|
378
378
|
|
|
379
|
-
`;if($)
|
|
380
|
-
`;if(Y==="es"){if($)
|
|
379
|
+
`;if($)w+=CJ(E,U),w+=`
|
|
380
|
+
`;if(Y==="es"){if($)w+=`const breakpoints: Tokens = ${i9(E,U,0)};
|
|
381
381
|
|
|
382
|
-
`;else
|
|
382
|
+
`;else w+=`const breakpoints = ${i9(E,U,0)};
|
|
383
383
|
|
|
384
|
-
`;
|
|
385
|
-
`}else
|
|
384
|
+
`;w+=`export default breakpoints;
|
|
385
|
+
`}else w+=`const breakpoints = ${i9(E,U,0)};
|
|
386
386
|
|
|
387
|
-
`,
|
|
388
|
-
`,
|
|
389
|
-
`;return
|
|
387
|
+
`,w+=`module.exports = breakpoints;
|
|
388
|
+
`,w+=`module.exports.default = breakpoints;
|
|
389
|
+
`;return w}function z_(Q){if(Q.includes("@_max_width_")){let q=Q.match(/@_max_width___(.+?)__/);if(q)return`screen and (max-width: {${q[1].replace(/_/g,".")}})`}if(Q.includes("@_min_width_")){let q=Q.match(/@_min_width___(.+?)__/);if(q)return`screen and (min-width: {${q[1].replace(/_/g,".")}})`}return"screen"}function O_(Q){let q=Q.replace(/@_.*?__/,"").replace(/@screen.*/,"").replace(/#[^#]*$/,"").replace(/^universe\./,"");return q=q.replace(/_universe_foundation_breakpoint_screen_width_[^_]+__?$/,""),q}function VJ(Q){let q=Q.match(/(\d+(?:\.\d+)?)/);return q?parseFloat(q[1]):0}function E_(Q,q){return Q.replace(/\{([^}]+)\}/g,(X,$)=>{let U=q.get($);if(U){let Y=U.value;if(typeof Y==="object"&&Y!==null&&"$value"in Y)Y=Y.$value;return String(Y)}return X})}function __(Q,q){let X=Q.split("."),$={},U=$;for(let Y=0;Y<X.length-1;Y++)U[X[Y]]={},U=U[X[Y]];return U[X[X.length-1]]=q,$}function SJ(Q,q={}){let{typescript:X,includeJSDoc:$,moduleType:U="es",customHeader:Y,theme:H}=q,G="";if(Y)G+=`${Y}
|
|
390
390
|
|
|
391
391
|
`;else G+=`/**
|
|
392
392
|
`,G+=` * Design Tokens - ${H?`${H.charAt(0).toUpperCase()+H.slice(1)} Theme`:"All Tokens"}
|
|
@@ -394,27 +394,27 @@ export type IconName = typeof icons[number];
|
|
|
394
394
|
`,G+=` * Do not edit this file directly
|
|
395
395
|
`,G+=` */
|
|
396
396
|
|
|
397
|
-
`;let z=
|
|
397
|
+
`;let z=TJ(Q,H);if(X)if(q.separateThemeFiles&&H)G+=`import type { Tokens } from "./${H}.d";
|
|
398
398
|
|
|
399
|
-
`;else G+=
|
|
400
|
-
`;if(U==="es"){if(X)G+=`const tokens: Tokens = ${
|
|
399
|
+
`;else G+=CJ(z,$),G+=`
|
|
400
|
+
`;if(U==="es"){if(X)G+=`const tokens: Tokens = ${i9(z,$,0)};
|
|
401
401
|
|
|
402
|
-
`;else G+=`const tokens = ${
|
|
402
|
+
`;else G+=`const tokens = ${i9(z,$,0)};
|
|
403
403
|
|
|
404
404
|
`;G+=`export default tokens;
|
|
405
405
|
`;let O=Object.keys(z);if(O.length>0){G+=`
|
|
406
406
|
// Named exports for convenience
|
|
407
|
-
`;for(let
|
|
408
|
-
`}}else G+=`const tokens = ${
|
|
407
|
+
`;for(let E of O)G+=`export const ${E} = tokens.${E};
|
|
408
|
+
`}}else G+=`const tokens = ${i9(z,$,0)};
|
|
409
409
|
|
|
410
410
|
`,G+=`module.exports = tokens;
|
|
411
411
|
`,G+=`module.exports.default = tokens;
|
|
412
412
|
`;return G+`
|
|
413
|
-
`}function
|
|
413
|
+
`}function TJ(Q,q){let X={},$=new Map(Q.map((U)=>[U.name,U]));for(let U of Q){let Y=U.name;if(q){if(Y.includes(`#${q}`))Y=Y.replace(`#${q}`,"")}else Y=Y.replace(/#[^#]*$/,"");let H=Y.split("."),G=X;for(let O=0;O<H.length-1;O++){let E=H[O];if(!G[E])G[E]={};G=G[E]}let z=H[H.length-1];G[z]=t1(U.value,$)}return X}function t1(Q,q){if(typeof Q==="object"&&Q!==null&&!Array.isArray(Q)){let X=Q;if(X.color&&typeof X.color==="string"&&X.color.includes("{")&&X.color.includes("}")){let $=s8(Q,"shadow");if(typeof $==="string"&&!$.includes("{")){let U={...X},Y=$.split(" "),H=Y[Y.length-1];if(H&&H.startsWith("#"))U.color=H;else U.color=s8(X.color,"color");return U}}}if(typeof Q==="string"){if(Q.startsWith("{")&&Q.endsWith("}")){let X=Q.slice(1,-1),$=q.get(X);if($)return $.value;let U=s8(Q,"color");if(U!==Q)return U}return Q}if(Array.isArray(Q))return Q.map((X)=>t1(X,q));if(typeof Q==="object"&&Q!==null){let X={};for(let[$,U]of Object.entries(Q))X[$]=t1(U,q);return X}return Q}function CJ(Q,q){let X="";if(q)X+=`/**
|
|
414
414
|
* Token object type definition
|
|
415
415
|
*/
|
|
416
|
-
`;return X+=`type Tokens = ${
|
|
417
|
-
`,X}function
|
|
416
|
+
`;return X+=`type Tokens = ${uZ(Q,0)};
|
|
417
|
+
`,X}function w_(Q,q,X){let{customHeader:$,includeJSDoc:U}=q,Y="";if($)Y+=`${$}
|
|
418
418
|
|
|
419
419
|
`;else{let H=X?` - ${X.charAt(0).toUpperCase()+X.slice(1)} Theme`:"";Y+=`/**
|
|
420
420
|
`,Y+=` * Universe Design System Tokens - Type Definitions${H}
|
|
@@ -425,13 +425,13 @@ export type IconName = typeof icons[number];
|
|
|
425
425
|
`}if(U)Y+=`/**
|
|
426
426
|
* Token object type definition
|
|
427
427
|
*/
|
|
428
|
-
`;return Y+=`export type Tokens = ${
|
|
428
|
+
`;return Y+=`export type Tokens = ${uZ(Q,0)};
|
|
429
429
|
`,Y+`
|
|
430
|
-
`}function
|
|
431
|
-
`;for(let[Y,H]of $){let G=
|
|
432
|
-
`}return U+=" ".repeat(q)+"}",U}function
|
|
433
|
-
`;for(let G=0;G<Y.length;G++){let[z,O]=Y[G],
|
|
434
|
-
`;let
|
|
430
|
+
`}function uZ(Q,q){if(typeof Q!=="object"||Q===null)return typeof Q==="string"?"string":typeof Q==="number"?"number":typeof Q==="boolean"?"boolean":"any";let X=" ".repeat(q+1),$=Object.entries(Q);if($.length===0)return"{}";let U=`{
|
|
431
|
+
`;for(let[Y,H]of $){let G=N_(Y)?`"${Y}"`:Y;U+=`${X}${G}: ${uZ(H,q+1)};
|
|
432
|
+
`}return U+=" ".repeat(q)+"}",U}function N_(Q){return Q.startsWith("@")||Q.includes(" ")||Q.includes("-")||Q.includes("(")||Q.includes(")")||Q.includes("@")||Q.includes(":")||!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Q)}function i9(Q,q,X=0){if(typeof Q!=="object"||Q===null)return JSON.stringify(Q);let $=" ".repeat(X),U=" ".repeat(X+1),Y=Object.entries(Q);if(Y.length===0)return"{}";let H=`{
|
|
433
|
+
`;for(let G=0;G<Y.length;G++){let[z,O]=Y[G],E=G===Y.length-1;if(q&&typeof O==="string")H+=`${U}/** Token value: ${JSON.stringify(O)} */
|
|
434
|
+
`;let w=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z)?z:JSON.stringify(z),M=i9(O,q,X+1);H+=`${U}${w}: ${M}${E?"":","}
|
|
435
435
|
`}return H+=`${$}}`,H}function M_(Q,q){let X=q.typescript?"ts":"js",{moduleType:$="es",customHeader:U}=q,Y=(G)=>{return G.replace(/-([a-z])/g,(z,O)=>O.toUpperCase())},H="";if(U)H+=`${U}
|
|
436
436
|
|
|
437
437
|
`;else H+=`/**
|
|
@@ -450,7 +450,7 @@ export type IconName = typeof icons[number];
|
|
|
450
450
|
// Default export points to light theme
|
|
451
451
|
`,H+=`module.exports = require('./light');
|
|
452
452
|
`}return H+`
|
|
453
|
-
`}var
|
|
453
|
+
`}var jJ=f0(()=>{o1()});var fJ={};SQ(fJ,{validateCSSFiles:()=>L_,printValidationResults:()=>D_});import{readFileSync as cZ,existsSync as A5}from"fs";import{join as Y9}from"path";function L_(Q,q){let X={isValid:!0,errors:[],warnings:[],checks:[]},$=Y9(Q,"css"),U=Y9($,"tokens.css"),Y=A5(U);if(X.checks.push({name:"CSS file exists: tokens.css",passed:Y,message:Y?void 0:"Missing required CSS file: tokens.css"}),!Y)X.errors.push("Missing required CSS file: tokens.css"),X.isValid=!1;if(q.$metaData?.tokens?.css?.mediaQuery?.separateThemeFiles??!1){let w=Y9($,"tokens.dark.css"),M=A5(w);if(X.checks.push({name:"CSS file exists: tokens.dark.css",passed:M,message:M?void 0:"Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"}),!M)X.errors.push("Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"),X.isValid=!1}let G=Y9($,"tokens.breakpoints.css");if(A5(G))X.checks.push({name:"CSS file exists: tokens.breakpoints.css",passed:!0,message:void 0});let O=q.$metaData?.tokens?.css?.hooks?.shortenName;if(O?.enabled&&A5(Y9($,"tokens.css"))){let w=cZ(Y9($,"tokens.css"),"utf8");if(O.prefix)for(let{find:M,replace:D}of O.prefix){let F=`--${F6}-${M}`,A=`--${D}`,S=w.includes(F),x=w.includes(A);if(X.checks.push({name:`Prefix hook applied: ${M} → ${D}`,passed:!S&&x,message:S?`Old prefix "${F}" still found in CSS, should be "${A}"`:void 0}),S)X.errors.push(`Prefix transformation failed: "${F}" should be replaced with "${A}"`),X.isValid=!1}if(O.suffix)for(let{find:M,replace:D}of O.suffix){let A=new RegExp(`--[^:]+${M.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(w);if(X.checks.push({name:`Suffix hook applied: ${M} → ${D}`,passed:!A,message:A?`Old suffix "${M}" still found in CSS variable names`:void 0}),A)X.errors.push(`Suffix transformation failed: "${M}" should be removed/replaced with "${D}"`),X.isValid=!1}}if(A5(Y9($,"tokens.css"))){let M=cZ(Y9($,"tokens.css"),"utf8").match(/:\s*{[^}]+}/g);if(X.checks.push({name:"No unresolved token references",passed:!M,message:M?`Found unresolved references: ${M.join(", ")}`:void 0}),M)X.errors.push(`Unresolved token references found: ${M.join(", ")}`),X.isValid=!1}let E=["tokens.css","tokens.dark.css","tokens.breakpoints.css"];for(let w of E){let M=Y9($,w);if(A5(M)){let D=cZ(M,"utf8"),F=(D.match(/\{/g)||[]).length-(D.match(/\}/g)||[]).length;if(X.checks.push({name:`CSS syntax valid: ${w}`,passed:F===0,message:F!==0?`Mismatched braces in ${w}`:void 0}),F!==0)X.errors.push(`CSS syntax error in ${w}: mismatched braces`),X.isValid=!1}}return X}function D_(Q){console.log(`
|
|
454
454
|
|
|
455
455
|
Build Validation Results:`),console.log("========================================================");for(let q of Q.checks){let X=q.passed?"✓":"✗";if(console.log(` ${X} ${q.name}`),q.message)console.log(` ${q.message}`)}if(Q.warnings.length>0){console.log(`
|
|
456
456
|
⚠️ Warnings:`);for(let q of Q.warnings)console.log(` ${q}`)}if(Q.errors.length>0){console.log(`
|
|
@@ -458,7 +458,7 @@ Build Validation Results:`),console.log("=======================================
|
|
|
458
458
|
Validation Summary:`),console.log(` - Checks: ${Q.checks.filter((q)=>q.passed).length}/${Q.checks.length} passed`),console.log(` - Errors: ${Q.errors.length}`),console.log(` - Warnings: ${Q.warnings.length}`),console.log(`
|
|
459
459
|
${Q.isValid?"✅":"❌"} Build ${Q.isValid?"passed":"failed"}`),console.log(`
|
|
460
460
|
========================================================
|
|
461
|
-
`)}var
|
|
461
|
+
`)}var bJ=f0(()=>{C8()});import{writeFileSync as F_,mkdirSync as I_,existsSync as iZ,readFileSync as lZ,readdirSync as A_,statSync as P_}from"fs";import{join as e0,dirname as A6}from"path";function R_(Q,q,X=!1,$=!1){let U=[],Y=[],H=[];for(let z of Q)if(z.fileName.includes("breakpoint"))Y.push(`@import url("./css/${z.fileName}");`);else H.push(`@import url("./css/${z.fileName}");`);if(U.push(...H),X)U.push('@import url("./css/tokens.icons.css");');if($)U.push('@import url("./css/fonts.css");');U.push(...Y);let G=`/**
|
|
462
462
|
* ${q} Design System - Main CSS Entry Point
|
|
463
463
|
* Generated: ${new Date().toISOString()}
|
|
464
464
|
*
|
|
@@ -471,7 +471,7 @@ ${Q.isValid?"✅":"❌"} Build ${Q.isValid?"passed":"failed"}`),console.log(`
|
|
|
471
471
|
${U.join(`
|
|
472
472
|
`)}
|
|
473
473
|
`;return{fileName:`${q}.design-system.tokens.css`,content:G+`
|
|
474
|
-
`,theme:void 0}}function
|
|
474
|
+
`,theme:void 0}}function V_(Q,q,X=!1,$=!1,U,Y){let{readFileSync:H}=h8("fs"),{join:G}=h8("path"),z=[],O=(D)=>{try{let F=G(U,"css",D);return H(F,"utf-8")}catch(F){return console.warn(`Could not read ${D}:`,F),""}},E=[];for(let D of Q){let F=O(D.fileName);if(!F)continue;if(D.fileName.includes("breakpoint"))E.push(F);else z.push(F)}let w=Y?.$paths?.assets?.icons?.excludeFromRaw??!1;if(X&&!w){let D=O("tokens.icons.css");if(D)z.push(D)}if($){let D=O("fonts.css");if(D)z.push(D)}z.push(...E);let M=`/**
|
|
475
475
|
* ${q} Design System - Raw/Inline CSS
|
|
476
476
|
* Generated: ${new Date().toISOString()}
|
|
477
477
|
*
|
|
@@ -485,49 +485,49 @@ ${U.join(`
|
|
|
485
485
|
${z.join(`
|
|
486
486
|
|
|
487
487
|
`)}
|
|
488
|
-
`;return{fileName:`${q}.design-system.tokens.raw.css`,content:
|
|
489
|
-
`,theme:void 0}}function
|
|
488
|
+
`;return{fileName:`${q}.design-system.tokens.raw.css`,content:M+`
|
|
489
|
+
`,theme:void 0}}function S_(Q,q){let X=Q.replace(/\\/g,"/");if(q.replace(/\\/g,"/").startsWith(X))return{valid:!1,error:`⚠️ Compositions directory cannot be inside tokens directory.
|
|
490
490
|
`+` Tokens dir: ${Q}
|
|
491
491
|
Compositions dir: ${q}
|
|
492
|
-
Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function
|
|
493
|
-
`),O.length===0)
|
|
494
|
-
`);U.push({fileName:z,content:
|
|
495
|
-
`,theme:void 0})}return U}async function
|
|
496
|
-
Starting token build process...`,Q.verbose);let{initializeColorspace:$}=await Promise.resolve().then(() => (
|
|
497
|
-
Generating CSS files...`,Q.verbose);let O=
|
|
498
|
-
Generated icon tokens`,Q.verbose)}catch(O){if(Q.verbose)console.warn("Could not build icon tokens:",O)}if(Q.generateCSS!==!1)try{let O=await
|
|
499
|
-
Processing composition files...`,Q.verbose);let
|
|
500
|
-
Generating TypeScript files...`,Q.verbose);let O=
|
|
501
|
-
Generating JavaScript files...`,Q.verbose);let O=
|
|
502
|
-
Generating JSON files...`,Q.verbose);let O=
|
|
503
|
-
Build completed in ${X.duration}ms`,Q.verbose)}catch($){let U=$ instanceof Error?$.message:String($);X.errors.push(U),
|
|
504
|
-
Validating build output...`,Q.verbose);let{validateCSSFiles:$,printValidationResults:U}=await Promise.resolve().then(() => (
|
|
492
|
+
Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function yJ(Q,q){try{let X=A_(Q,{withFileTypes:!0});for(let $ of X){let U=e0(Q,$.name);if($.isDirectory())yJ(U,q);else if($.isFile()&&$.name.endsWith(".json"))try{let Y=lZ(U,"utf-8"),H=JSON.parse(Y);if(Array.isArray(H))q.push(...H);else q.push(H)}catch(Y){console.warn(`⚠️ Failed to parse composition file ${U}:`,Y)}}}catch(X){console.warn(`⚠️ Failed to read directory ${Q}:`,X)}}function x_(Q,q){let X=[];if(iZ(Q)){let $=P_(Q);if($.isDirectory())yJ(Q,X);else if($.isFile()&&Q.endsWith(".json"))try{let U=lZ(Q,"utf-8"),Y=JSON.parse(U);if(Array.isArray(Y))X.push(...Y);else X.push(Y)}catch(U){console.warn("⚠️ Failed to parse compositions file:",U)}}if(q&&X.length===0){let $=e0(q,"compositions.json");if(iZ($))try{let U=lZ($,"utf-8"),Y=JSON.parse(U);if(Array.isArray(Y))X.push(...Y)}catch(U){console.warn("⚠️ Failed to parse compositions.json:",U)}}return X}function kJ(Q,q){let X=q.$metaData?.tokens?.css?.hooks?.shortenName;if(!X?.enabled)return Q;let $=Q;if(X.prefix&&Array.isArray(X.prefix))for(let U of X.prefix)$=$.replace(new RegExp(U.find,"g"),U.replace);if(X.suffix&&Array.isArray(X.suffix)){for(let U of X.suffix)if($.endsWith(U.find))$=$.substring(0,$.length-U.find.length)+U.replace}return $}function T_(Q,q){let X=Q.match(/^\{(.+)\}$/);if(X){let U=X[1].replace(/\./g,"-");return U=kJ(U,q),`var(--${U})`}return Q.replace(/\{([^}]+)\}/g,($,U)=>{let Y=U.replace(/\./g,"-");return Y=kJ(Y,q),`var(--${Y})`})}function C_(Q,q,X,$){let U=[],Y=Q.filter((z)=>z.platform==="css");if(Y.length===0)return U;let H=new Map,G="compositions.css";for(let z of Y){let O=z.fileName||"";if(O.endsWith(".css"))O=O.slice(0,-4);let E=O?`${O}.css`:G;if(!H.has(E))H.set(E,[]);H.get(E).push(z)}for(let[z,O]of H.entries()){let E=[];if(E.push("/**"),E.push(" * Design System Compositions - Generated Styles"),E.push(" * DO NOT EDIT THIS FILE DIRECTLY"),E.push(" * Generated from composition definitions"),E.push(` * Namespace: ${q.$metaData?.dsNamespace||"ds"}.${q.$metaData?.tokenNamespace||"tokens"}`),E.push(` * File: ${z}`),E.push(` */
|
|
493
|
+
`),O.length===0)E.push("/* No compositions defined */");else for(let M of O){E.push(`/* ${M.name} */`);let D=M.groupProperties,F=D&&(D.mediaQuery||D.parentSelector||D.containerQuery||D.customAtRule),A="",S=[];if(F){if(D.customAtRule){let x=O0(D.customAtRule,X);E.push(`${x} {`),S.push("}"),A=" "}if(D.mediaQuery){let x=O0(D.mediaQuery,X);E.push(`${A}${x} {`),S.push("}"),A+=" "}if(D.containerQuery){let x=O0(D.containerQuery,X);E.push(`${A}${x} {`),S.push("}"),A+=" "}if(D.parentSelector){let x=O0(D.parentSelector,X);E.push(`${A}${x} {`),S.push("}"),A+=" "}}E.push(`${A}${M.selector} {`);for(let x of M.properties){let b=T_(x.token,q);E.push(`${A} ${x.property}: ${b};`)}E.push(`${A}}`);while(S.length>0)A=A.slice(2),E.push(`${A}${S.pop()}`);E.push("")}let w=E.join(`
|
|
494
|
+
`);U.push({fileName:z,content:w+`
|
|
495
|
+
`,theme:void 0})}return U}async function NJ(Q){let q=Date.now(),X={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{E0(`
|
|
496
|
+
Starting token build process...`,Q.verbose);let{initializeColorspace:$}=await Promise.resolve().then(() => (H6(),N$));await $(),E0("Loading token files...",Q.verbose);let U=VZ(Q.tokensDir);E0("Parsing tokens...",Q.verbose);let Y=j_(Q.config),H=SZ(U,Y);if(E0(`Found ${H.length} tokens`,Q.verbose),X.tokenCount=H.length,H.length===0&&Y.namespace){let O=Object.keys(U).filter((E)=>!E.startsWith("$"));if(O.length>0)X.warnings.push(`⚠️ No tokens found matching tokenNamespace "${Y.namespace}". Found root keys: ${O.join(", ")}. Please check if your $metaData.tokenNamespace in designid.config.ts matches.`)}let G=xZ(H,Y);if(E0(`Resolved ${G.length} tokens`,Q.verbose),Q.generateCSS!==!1){E0(`
|
|
497
|
+
Generating CSS files...`,Q.verbose);let O=vJ(Q.config,Q.cssOptions),E=l1(G,O);for(let w of E){let M=e0(Q.outputDir,"css",w.fileName);x9(M,w.content),E0(` ✓ ${w.fileName}`,Q.verbose)}X.cssFiles=E}if(Q.generateCSS!==!1)try{await PJ(Q.outputDir,Q.config),E0(`
|
|
498
|
+
Generated icon tokens`,Q.verbose)}catch(O){if(Q.verbose)console.warn("Could not build icon tokens:",O)}if(Q.generateCSS!==!1)try{let O=await vZ();if(O.length>0){let E=vJ(Q.config,Q.cssOptions),w=Q.config.$metaData?.modes?.isHost??!1,M=Q.config.$modes?.default||"light",D=kZ(O,{customHeader:r1(Q.config),objectPath:Q.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:E.hooks,isHost:w,defaultMode:M}),F=e0(Q.outputDir,"css",D.fileName);if(x9(F,D.content),E0(` ✓ Generated ${D.fileName}`,Q.verbose),X.cssFiles)X.cssFiles.push(D);else X.cssFiles=[D]}}catch(O){if(Q.verbose)console.warn("Could not generate icon CSS:",O)}let z=!1;if(Q.generateCSS!==!1)try{let O=Q.config.$fonts;if(O&&O.length>0){await AZ(O,Q.outputDir),E0(" ✓ Generated fonts.css",Q.verbose),z=!0;let E={fileName:"fonts.css",content:"Generated by appendTypographyTokens",theme:void 0};if(X.cssFiles)X.cssFiles.push(E);else X.cssFiles=[E]}}catch(O){if(Q.verbose)console.warn("Could not generate font CSS:",O)}if(Q.generateCSS!==!1&&X.cssFiles.length>0){let O=Q.config.$metaData?.tokenNamespace||"tokens",E=X.cssFiles.some((A)=>A.fileName==="tokens.icons.css"),w=Q.config.$metaData?.modes?.isHost||!1,M=X.cssFiles.filter((A)=>{if(A.fileName==="tokens.icons.css"||A.fileName==="fonts.css")return!1;if(w&&A.fileName.includes("composition"))return!1;return!0}),D=R_(M,O,E,z),F=e0(Q.outputDir,D.fileName);if(x9(F,D.content),E0(` ✓ Generated ${D.fileName}`,Q.verbose),X.cssFiles.push(D),w){let A=V_(X.cssFiles.filter((x)=>x.fileName!=="tokens.icons.css"&&x.fileName!=="fonts.css"&&!x.fileName.includes(".design-system.tokens.css")),O,E,z,Q.outputDir,Q.config),S=e0(Q.outputDir,A.fileName);x9(S,A.content),E0(` ✓ Generated ${A.fileName} (raw/inline for web components)`,Q.verbose),X.cssFiles.push(A)}}if(Q.generateCSS!==!1&&Q.config.$paths.compositionsDir)try{let O=Q.config.$paths.baseDir,E=Q.config.$paths.tokensDir,w=Q.tokensDir,M=E.split("/").filter((x)=>x&&x!=="."&&x!=="..");for(let x=0;x<M.length;x++)w=A6(w);let D=O.split("/").filter((x)=>x&&x!=="."&&x!=="..");for(let x=0;x<D.length;x++)w=A6(w);let F=e0(w,O,Q.config.$paths.compositionsDir),A=e0(w,O);if(Q.verbose)console.log(` Project root: ${w}`),console.log(` Base dir: ${A}`),console.log(` Compositions dir: ${F}`);let S=S_(Q.tokensDir,F);if(!S.valid)console.error(S.error),X.errors.push(S.error);else{E0(`
|
|
499
|
+
Processing composition files...`,Q.verbose);let x=x_(F,A);if(x.length>0){E0(` Found ${x.length} composition(s)`,Q.verbose);let b=new Map;for(let v of G){let g=Array.isArray(v.path)?v.path.join("."):v.path;b.set(g,v)}let k=C_(x,Q.config,b,Q.outputDir);for(let v of k){let g=e0(Q.outputDir,"css",v.fileName);x9(g,v.content),E0(` ✓ Generated ${v.fileName}`,Q.verbose),X.cssFiles.push(v)}}else E0(` No compositions found in ${F}`,Q.verbose)}}catch(O){if(Q.verbose)console.warn("Could not generate composition CSS:",O)}if(Q.generateTypeScript!==!1){E0(`
|
|
500
|
+
Generating TypeScript files...`,Q.verbose);let O=f_(Q.config,Q.typescriptOptions),E=await yZ(G,O,Q.outputDir);for(let w of E){let M=e0(Q.outputDir,"typescript",w.fileName);x9(M,w.content),E0(` ✓ Generated ${w.fileName}`,Q.verbose)}X.typescriptFiles=E}if(Q.generateJavaScript!==!1){E0(`
|
|
501
|
+
Generating JavaScript files...`,Q.verbose);let O=b_(Q.config,Q.javascriptOptions),E=xJ(G,O);for(let w of E){let M=e0(Q.outputDir,"js",w.fileName);x9(M,w.content),E0(` ✓ Generated ${w.fileName}`,Q.verbose)}X.javascriptFiles=E}if(Q.generateJSON!==!1){E0(`
|
|
502
|
+
Generating JSON files...`,Q.verbose);let O=k_(G,H,Q.config);for(let E of O){let w=e0(Q.outputDir,"json",E.fileName);x9(w,E.content),E0(` ✓ Generated ${E.fileName}`,Q.verbose)}X.jsonFiles=O}X.duration=Date.now()-q,E0(`
|
|
503
|
+
Build completed in ${X.duration}ms`,Q.verbose)}catch($){let U=$ instanceof Error?$.message:String($);X.errors.push(U),E0(`❌ Build failed: ${U}`,Q.verbose)}if(Q.validate!==!1){E0(`
|
|
504
|
+
Validating build output...`,Q.verbose);let{validateCSSFiles:$,printValidationResults:U}=await Promise.resolve().then(() => (bJ(),fJ)),Y=$(Q.outputDir,Q.config);if(Q.verbose||!Y.isValid)U(Y);if(!Y.isValid)X.errors.push(...Y.errors)}return X}function j_(Q){let q=Q.$metaData,X=Q.$modes?[...Object.values(Q.$modes)]:[];return{prefix:q.dsNamespace||q.tokenNamespace,namespace:q.tokenNamespace,generateModes:!0,modes:X,generateDerivedTokens:!0,generateBreakpointTokens:!0,failOnBrokenReferences:!0,transformName:($)=>{let U=q.tokens?.css?.hooks?.shortenName;if(U?.enabled){let Y=$;if(U.prefix)for(let{find:H,replace:G}of U.prefix){let z=H.replace(/\./g,"-").replace(/-$/,""),O=G.replace(/\./g,"-").replace(/-$/,"");Y=Y.replace(z,O)}if(U.suffix){for(let{find:H,replace:G}of U.suffix)if(Y.endsWith(H))Y=Y.substring(0,Y.length-H.length)+G}return Y}return $}}}function vJ(Q,q){let X=Q.$metaData,$=X.tokens?.css,U=Q.$modes?[...Object.values(Q.$modes)]:["light","dark"],Y=U.length>0?U[0]:"light",H=X.modes?.isHost??!1;return{...q,separateThemeFiles:$?.mediaQuery?.separateThemeFiles??!1,rootSelector:":root",generateMediaQueries:!0,customHeader:r1(Q),themeSelector:$?.mediaQuery?.match||"[data-theme]",modes:U,defaultMode:Y,isHost:H,hooks:$?.hooks}}function f_(Q,q){let X=Q.$metaData;return{...q,tokenInterface:"DesignTokens",exportNamespace:X.dsNamespace||X.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function b_(Q,q){let X=Q.$modes?[...Object.values(Q.$modes)]:["light","dark"];return{...q,modes:X,typescript:!0,separateThemeFiles:!0,includeJSDoc:!1,moduleType:"es",customHeader:`/**
|
|
505
505
|
* ${Q.$name}
|
|
506
506
|
* Generated: ${new Date().toISOString()}
|
|
507
|
-
*/`}}function
|
|
507
|
+
*/`}}function k_(Q,q,X){let $=[],U=JSON.stringify({$schema:"https://schemas.designtokens.org/design-tokens.schema.json",$name:X.$name,$version:X.$version,tokens:q.reduce((G,z)=>{return G[z.name]={$type:z.type,$value:z.value,$description:z.description,$extensions:z.extensions},G},{})},null,2);$.push({fileName:"tokens.raw.json",content:U+`
|
|
508
508
|
`});let Y=JSON.stringify({$name:X.$name,$version:X.$version,tokens:Q.reduce((G,z)=>{return G[z.name]={$type:z.type,$value:z.value,$description:z.description,cssVar:z.cssVar},G},{})},null,2);$.push({fileName:"tokens.resolved.json",content:Y+`
|
|
509
509
|
`});let H=JSON.stringify({$name:`${X.$name} - CSS Variables`,$version:X.$version,variables:Q.reduce((G,z)=>{return G[z.cssVar]=z.value,G},{})},null,2);return $.push({fileName:"css-variables.json",content:H+`
|
|
510
|
-
`}),$}function
|
|
511
|
-
\uD83C\uDFA8 Generating Compositions CSS`),console.log(` Total compositions: ${Q.length}`),console.log(` Project root: ${q}`),console.log(` Base dir: ${_0}`),console.log(` Dist dir: ${$}`),console.log(` CSS output directory: ${U}`);try{await
|
|
512
|
-
Files to generate: ${z.size}`);for(let[
|
|
513
|
-
`),
|
|
514
|
-
`);
|
|
515
|
-
`)?
|
|
516
|
-
`;if(await
|
|
517
|
-
|
|
518
|
-
`)}async function
|
|
519
|
-
`);let
|
|
510
|
+
`}),$}function x9(Q,q){let X=A6(Q);if(!iZ(X))I_(X,{recursive:!0});F_(Q,q,"utf-8")}function E0(Q,q){if(q!==!1)console.log(Q)}async function mZ(Q,q){let X=typeof globalThis.Bun<"u",$=Q,U=null;if(Q.endsWith(".ts")&&!X){let{compileConfigFile:w,getDistConfigFile:M}=await Promise.resolve().then(() => (N6(),c$)),D=A6(Q);await w(D),$=M(D),U=$}let H=(await import($)).default,G=A6(Q),z=(w)=>{if(w.startsWith("../"))return e0(G,w);return e0(G,H.$paths.baseDir,w)},O=e0(G,H.$paths.baseDir,H.$paths.tokensDir),E=q||z(H.$paths.distDir);try{return await NJ({config:H,tokensDir:O,outputDir:E,verbose:!0})}finally{if(U){let{existsSync:w,unlinkSync:M}=await import("fs");if(w(U))try{M(U)}catch(D){}}}}var pZ=f0(()=>{RJ();o1();jJ();CZ();hZ();PZ();W6()});var l_={};import{readFile as U8,writeFile as n8,readdir as rZ,stat as R5,mkdir as sZ}from"fs/promises";import{createServer as v_}from"http";import{join as U0,relative as Y8,dirname as oZ}from"path";function e1(Q){try{let q=Q.match(/calc\s*\(([^)]+)\)/);if(!q)return null;let $=q[1].trim().match(/([0-9.]+)(px|rem|em|%|vh|vw|vmin|vmax)?|\+|\-|\*|\//g);if(!$)return null;let U=0,Y="+",H="";for(let z of $)if(z==="+"||z==="-"||z==="*"||z==="/")Y=z;else{let O=z.match(/([0-9.]+)(px|rem|em|%|vh|vw|vmin|vmax)?/);if(!O)continue;let E=parseFloat(O[1]),w=O[2]||"";if(!H&&w)H=w;switch(Y){case"+":U=U+E;break;case"-":U=U-E;break;case"*":U=U*E;break;case"/":U=E!==0?U/E:U;break}}return`${Math.round(U*100)/100}${H}`}catch(q){return null}}function m_(Q){return typeof Q==="object"&&Q!==null&&"$type"in Q&&"$value"in Q}function p_(Q){if(typeof Q!=="object"||Q===null)return!1;return!(("$type"in Q)&&("$value"in Q))}function gJ(Q){let q=[];if(!Q||Q.trim()==="")return q.push("Path cannot be empty"),{valid:!1,errors:q};if(/[^a-zA-Z0-9._-]/.test(Q))q.push("Path can only contain letters, numbers, dots (.), hyphens (-), and underscores (_)");if(/\.\./.test(Q))q.push("Path cannot contain consecutive dots (..)");if(Q.startsWith(".")||Q.endsWith("."))q.push("Path cannot start or end with a dot (.)");let $=Q.split(".");if($.some((Y)=>Y===""))q.push("Path cannot have empty segments");let U=$.find((Y)=>/^[_-]/.test(Y));if(U)q.push(`Segment "${U}" cannot start with underscore or hyphen`);if($.length<1)q.push("Path must have at least one segment");return{valid:q.length===0,errors:q}}function pJ(Q,q="",X=""){let $=[];for(let[U,Y]of Object.entries(Q)){if(U.startsWith("$"))continue;let H=q?`${q}.${U}`:U,G={name:U,path:H,filePath:X};if(typeof Y==="object"&&Y!==null){if(m_(Y)){if(G.type=Y.$type,G.value=Y.$value,Y.$description)G.$description=Y.$description;if(Y.$extensions)G.$extensions=Y.$extensions}else if(p_(Y))G.children=pJ(Y,H,X)}$.push(G)}return $}async function dJ(Q){let q=[];try{let X=await rZ(Q);for(let $ of X){let U=U0(Q,$);if((await R5(U)).isDirectory()){let H=await dJ(U);q.push(...H)}else if($.endsWith(".tokens.json"))q.push(U)}}catch(X){console.error(`Error reading directory ${Q}:`,X)}return q}async function K4(){let Q=await dJ(P5),q=[],X={};for(let $ of Q)try{let U=await U8($,"utf-8");if(!U.trim()){console.warn(`⚠️ Skipping empty file: ${$}`);continue}let Y=JSON.parse(U),H=Y8(P5,$);X[H]=Y;let G=pJ(Y,"",H);q.push(...G)}catch(U){console.error(`❌ Error loading ${$}:`,U instanceof Error?U.message:U);continue}return{tokens:q,files:X}}function hJ(Q,q,X){let $=q.split("."),U=Q;for(let Y=0;Y<$.length-1;Y++){if(!($[Y]in U))U[$[Y]]={};U=U[$[Y]]}U[$[$.length-1]]=X}function uJ(Q){if(typeof Q!=="object"||Q===null)return!1;let q=Object.keys(Q);if(q.length===0)return!0;if("$type"in Q||"$value"in Q)return!1;if(q.some(($)=>$.startsWith("$")))return!1;for(let $ of q)if(!uJ(Q[$]))return!1;return console.log(`Object with keys [${q.join(", ")}] is considered empty`),!0}function d_(Q,q){let X=q.split("."),$=Q,U=[];for(let H=0;H<X.length-1;H++){if(!(X[H]in $))return!1;U.push({obj:$,key:X[H]}),$=$[X[H]]}let Y=X[X.length-1];if(!(Y in $))return!1;delete $[Y],console.log(`Deleted token at path: ${q}`);for(let H=U.length-1;H>=0;H--){let{obj:G,key:z}=U[H];if(console.log(`Checking if parent "${z}" is empty...`),uJ(G[z]))console.log(`Deleting empty parent: ${z}`),delete G[z];else{console.log(`Parent "${z}" is not empty, stopping cleanup`);break}}return!0}function q4(Q,q=new Map){for(let X of Q){if(X.value!==void 0)q.set(X.path,X.value);if(X.children)q4(X.children,q)}return q}function mJ(Q,q){let X=q.$metaData?.tokens?.css?.hooks?.shortenName;if(!X?.enabled)return Q;let $=Q;if(X.prefix&&Array.isArray(X.prefix))for(let U of X.prefix)$=$.replace(new RegExp(U.find,"g"),U.replace);if(X.suffix&&Array.isArray(X.suffix)){for(let U of X.suffix)if($.endsWith(U.find))$=$.substring(0,$.length-U.find.length)+U.replace}return $}async function cJ(Q,q){try{let X=await rZ(Q,{withFileTypes:!0});for(let $ of X){let U=U0(Q,$.name);if($.isDirectory())await cJ(U,q);else if($.isFile()&&$.name.endsWith(".json"))try{let Y=await U8(U,"utf-8"),H=JSON.parse(Y),G=Array.isArray(H)?H:[H];for(let z of G)q.push({...z,$sourceFile:Y8(_0,U)});if(R0)console.log(` Loaded ${G.length} composition(s) from ${Y8(_0,U)}`)}catch(Y){console.warn(`⚠️ Failed to parse composition file ${U}:`,Y)}}}catch(X){console.warn(`⚠️ Failed to read directory ${Q}:`,X)}}async function l9(){let Q=[];if(!V0.$paths.compositionsDir){try{let X=await U8(j8,"utf-8"),$=JSON.parse(X),U=Array.isArray($)?$:[$];for(let Y of U)Q.push({...Y,$sourceFile:Y8(_0,j8)})}catch(X){}return Q}let q=U0(_0,V0.$paths.compositionsDir);try{let X=await R5(q);if(X.isDirectory())await cJ(q,Q);else if(X.isFile()&&q.endsWith(".json")){let $=await U8(q,"utf-8"),U=JSON.parse($),Y=Array.isArray(U)?U:[U];for(let H of Y)Q.push({...H,$sourceFile:Y8(_0,q)})}}catch(X){try{let $=await U8(j8,"utf-8"),U=JSON.parse($),Y=Array.isArray(U)?U:[U];for(let H of Y)Q.push({...H,$sourceFile:Y8(_0,j8)})}catch($){}}if(R0)console.log(` Total compositions loaded: ${Q.length}`);return Q}async function Q4(Q){let q=oZ(Q);try{await R5(q)}catch{await sZ(q,{recursive:!0})}}function iJ(Q,q,X){let $=Q.match(/^\{(.+)\}$/);if($){let Y=$[1].replace(/\./g,"-");return Y=mJ(Y,q),`var(--${Y})`}return Q.replace(/\{([^}]+)\}/g,(U,Y)=>{let H=Y.replace(/\./g,"-");return H=mJ(H,q),`var(--${H})`})}async function Z4(Q){let q=process.cwd(),$=((w)=>{if(w.startsWith("../"))return U0(q,w);return U0(_0,w)})(V0.$paths.distDir),U=U0($,"css");if(R0)console.log(`
|
|
511
|
+
\uD83C\uDFA8 Generating Compositions CSS`),console.log(` Total compositions: ${Q.length}`),console.log(` Project root: ${q}`),console.log(` Base dir: ${_0}`),console.log(` Dist dir: ${$}`),console.log(` CSS output directory: ${U}`);try{await R5(U)}catch{if(R0)console.log(` Creating CSS directory: ${U}`);await sZ(U,{recursive:!0})}let Y=await K4(),H=q4(Y.tokens),G=Q.filter((w)=>w.platform==="css");if(R0)console.log(` CSS compositions: ${G.length}`);let z=new Map,O="compositions.css";for(let w of G){let M=w.fileName||"";if(M.endsWith(".css"))M=M.slice(0,-4);let D=M?`${M}.css`:O;if(R0)console.log(` → ${w.name}: fileName="${w.fileName||""}" → ${D}`);if(!z.has(D))z.set(D,[]);z.get(D).push(w)}let E=[];if(R0){console.log(`
|
|
512
|
+
Files to generate: ${z.size}`);for(let[w]of z.entries())console.log(` - ${w}`)}for(let[w,M]of z.entries()){let D=[];if(D.push("/**"),D.push(" * Design System Compositions - Generated Styles"),D.push(" * DO NOT EDIT THIS FILE DIRECTLY"),D.push(" * Generated from composition definitions"),D.push(` * Namespace: ${V0.$metaData?.dsNamespace||"ds"}.${V0.$metaData?.tokenNamespace||"tokens"}`),D.push(` * File: ${w}`),D.push(` */
|
|
513
|
+
`),M.length===0)D.push("/* No compositions defined */");else for(let b of M){D.push(`/* ${b.name} */`);let k=b.groupProperties,v=k&&(k.mediaQuery||k.parentSelector||k.containerQuery||k.customAtRule),g="",u=[];if(v){if(k.customAtRule){let p=O0(k.customAtRule,H);D.push(`${p} {`),u.push("}"),g=" "}if(k.mediaQuery){let p=O0(k.mediaQuery,H);if(!p.trim().startsWith("@"))console.warn(`Warning: mediaQuery for "${b.name}" doesn't start with @ - invalid CSS: "${p}"`);D.push(`${g}${p} {`),u.push("}"),g+=" "}if(k.containerQuery){let p=O0(k.containerQuery,H);if(!p.trim().startsWith("@"))console.warn(`Warning: containerQuery for "${b.name}" doesn't start with @ - invalid CSS: "${p}"`);D.push(`${g}${p} {`),u.push("}"),g+=" "}if(k.parentSelector){let p=O0(k.parentSelector,H);D.push(`${g}${p} {`),u.push("}"),g+=" "}}D.push(`${g}${b.selector} {`);for(let p of b.properties){let q0=iJ(p.token,V0,H);D.push(`${g} ${p.property}: ${q0};`)}D.push(`${g}}`);while(u.length>0)g=g.slice(2),D.push(`${g}${u.pop()}`);D.push("")}let F=D.join(`
|
|
514
|
+
`);E.push(F);let A=U0(U,w),S=oZ(A);if(R0)console.log(` → Generating composition file: ${w}`),console.log(` Full path: ${A}`),console.log(` Directory: ${S}`),console.log(` Compositions: ${M.length}`);try{await R5(S)}catch{if(R0)console.log(` Creating directory: ${S}`);await sZ(S,{recursive:!0})}let x=F.endsWith(`
|
|
515
|
+
`)?F:`${F}
|
|
516
|
+
`;if(await n8(A,x,"utf-8"),R0)console.log(" ✓ File written successfully")}return await u_($),E.join(`
|
|
517
|
+
|
|
518
|
+
`)}async function u_(Q){let q=V0.$metaData?.tokenNamespace||"tokens",X=`${q}.design-system.tokens.css`,$=U0(Q,X),U="";try{U=await U8($,"utf-8")}catch(M){return}let Y=/@import url\("\.\/css\/([^"]+)"\);/g,H=new Set,G;while((G=Y.exec(U))!==null)H.add(G[1]);let z=V0.$metaData?.modes?.isHost??!1;if(!z&&!H.has("compositions.css"))H.add("compositions.css");if(z)Array.from(H).filter((D)=>D.includes("composition")).forEach((D)=>H.delete(D));let O=[];O.push("/**"),O.push(` * ${V0.$name||q} Design System - Main CSS Entry Point`),O.push(` * Generated: ${new Date().toISOString()}`),O.push(" * "),O.push(" * This file imports all generated CSS files for the design system."),O.push(" * Import this single file to get all design tokens, typography, icons, and breakpoints."),O.push(" * "),O.push(" * Do not edit this file directly - it will be overwritten."),O.push(` */
|
|
519
|
+
`);let E=Array.from(H).sort();for(let M of E)O.push(`@import url("./css/${M}");`);let w=O.join(`
|
|
520
520
|
`)+`
|
|
521
|
-
`;await
|
|
521
|
+
`;await n8($,w,"utf-8")}async function i_(){console.log("\uD83D\uDD28 Building tokens before starting editor...");try{await mZ(aZ),console.log(`✅ Initial token build completed successfully
|
|
522
522
|
`)}catch(Q){console.error("⚠️ Warning: Initial token build failed:",Q),console.log(` Editor will start anyway, but tokens may not be up to date
|
|
523
|
-
`)}
|
|
524
|
-
========================================================`),console.log("\uD83D\uDE80 Token Editor is ready!"),console.log("========================================================"),console.log(`\uD83D\uDCDD Open in browser: http://localhost:${
|
|
525
|
-
`)})}var
|
|
523
|
+
`)}c_.listen(nZ,()=>{console.log(`
|
|
524
|
+
========================================================`),console.log("\uD83D\uDE80 Token Editor is ready!"),console.log("========================================================"),console.log(`\uD83D\uDCDD Open in browser: http://localhost:${nZ}`),console.log(`========================================================
|
|
525
|
+
`)})}var y_=`<!DOCTYPE html>
|
|
526
526
|
<html lang="en">
|
|
527
527
|
<head>
|
|
528
528
|
<meta charset="UTF-8">
|
|
529
529
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
530
|
-
<title>@DesignID
|
|
530
|
+
<title>@DesignID Tokens Editor</title>
|
|
531
531
|
<style>
|
|
532
532
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
533
533
|
|
|
@@ -569,6 +569,7 @@ body {
|
|
|
569
569
|
padding: 12px 16px;
|
|
570
570
|
background: transparent;
|
|
571
571
|
border: none;
|
|
572
|
+
border-radius: 0;
|
|
572
573
|
border-bottom: 3px solid transparent;
|
|
573
574
|
cursor: pointer;
|
|
574
575
|
font-size: 14px;
|
|
@@ -665,6 +666,7 @@ body {
|
|
|
665
666
|
display: flex;
|
|
666
667
|
align-items: center;
|
|
667
668
|
gap: 6px;
|
|
669
|
+
font-size: 13px;
|
|
668
670
|
}
|
|
669
671
|
|
|
670
672
|
.tree-item:hover {
|
|
@@ -676,6 +678,31 @@ body {
|
|
|
676
678
|
color: #1976d2;
|
|
677
679
|
}
|
|
678
680
|
|
|
681
|
+
.tree-item.has-draft {
|
|
682
|
+
position: relative;
|
|
683
|
+
font-weight: 500;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.tree-item.has-draft::before {
|
|
687
|
+
content: "●";
|
|
688
|
+
color: #ff9800;
|
|
689
|
+
margin-right: 4px;
|
|
690
|
+
font-size: 10px;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.tree-item.temporary {
|
|
694
|
+
font-style: italic;
|
|
695
|
+
opacity: 0.8;
|
|
696
|
+
background: #fff3e0;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.tree-item.temporary::after {
|
|
700
|
+
content: " ✎";
|
|
701
|
+
color: #ff9800;
|
|
702
|
+
font-size: 12px;
|
|
703
|
+
margin-left: 4px;
|
|
704
|
+
}
|
|
705
|
+
|
|
679
706
|
.tree-item.folder {
|
|
680
707
|
font-weight: 500;
|
|
681
708
|
}
|
|
@@ -906,7 +933,7 @@ button:hover {
|
|
|
906
933
|
<body>
|
|
907
934
|
<div class="container">
|
|
908
935
|
<div class="sidebar">
|
|
909
|
-
<h1>@DesignID
|
|
936
|
+
<h1>@DesignID Tokens Editor</h1>
|
|
910
937
|
|
|
911
938
|
<!-- View Tabs -->
|
|
912
939
|
<div class="view-tabs">
|
|
@@ -957,7 +984,7 @@ button:hover {
|
|
|
957
984
|
<div class="editor">
|
|
958
985
|
<div id="editor-content">
|
|
959
986
|
<div class="empty-state">
|
|
960
|
-
<h3>Welcome to @DesignID
|
|
987
|
+
<h3>Welcome to @DesignID Tokens Editor</h3>
|
|
961
988
|
<p>Get started by creating tokens or compositions</p>
|
|
962
989
|
<br>
|
|
963
990
|
<div style="display: flex; gap: 12px; justify-content: center;">
|
|
@@ -969,6 +996,7 @@ button:hover {
|
|
|
969
996
|
</div>
|
|
970
997
|
</div>
|
|
971
998
|
|
|
999
|
+
<script src="https://cdn.jsdelivr.net/npm/colorjs.io@0.5.2/dist/color.global.js"></script>
|
|
972
1000
|
<script>
|
|
973
1001
|
/* eslint-env browser */
|
|
974
1002
|
|
|
@@ -989,6 +1017,39 @@ let selectedComposition = null;
|
|
|
989
1017
|
let compositionFiles = []; // Available composition files
|
|
990
1018
|
let currentView = 'tokens'; // 'tokens' or 'compositions'
|
|
991
1019
|
|
|
1020
|
+
// Draft state management
|
|
1021
|
+
const drafts = new Map(); // Map<compositionId, draftData> for unsaved composition changes
|
|
1022
|
+
const tokenDrafts = new Map(); // Map<tokenPath, draftData> for unsaved token changes
|
|
1023
|
+
const temporaryTokenPaths = new Set(); // Set of token paths that are being added but not yet saved
|
|
1024
|
+
|
|
1025
|
+
// ==================== COLOR UTILITIES ====================
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* Convert any color value to hex using colorjs.io
|
|
1029
|
+
* Supports all color spaces: hex, rgb, rgba, hsl, hsla, lab, lch, oklch, oklab, display-p3, color(), etc.
|
|
1030
|
+
*/
|
|
1031
|
+
function colorToHex(colorValue) {
|
|
1032
|
+
try {
|
|
1033
|
+
// Use window.Color to access the global Color object from colorjs.io CDN
|
|
1034
|
+
const color = new window.Color(colorValue);
|
|
1035
|
+
return color.to('srgb').toString({ format: 'hex' });
|
|
1036
|
+
} catch {
|
|
1037
|
+
return null;
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
/**
|
|
1042
|
+
* Check if a value is a valid color using colorjs.io
|
|
1043
|
+
*/
|
|
1044
|
+
function isValidColor(colorValue) {
|
|
1045
|
+
try {
|
|
1046
|
+
new window.Color(colorValue);
|
|
1047
|
+
return true;
|
|
1048
|
+
} catch {
|
|
1049
|
+
return false;
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
|
|
992
1053
|
// ==================== ROUTING SYSTEM ====================
|
|
993
1054
|
|
|
994
1055
|
/**
|
|
@@ -1168,6 +1229,18 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
|
1168
1229
|
handleRoute();
|
|
1169
1230
|
});
|
|
1170
1231
|
|
|
1232
|
+
// Warn before leaving page if there are unsaved changes
|
|
1233
|
+
window.addEventListener('beforeunload', (event) => {
|
|
1234
|
+
const hasDrafts = drafts.size > 0 || tokenDrafts.size > 0;
|
|
1235
|
+
|
|
1236
|
+
if (hasDrafts) {
|
|
1237
|
+
// Standard way to trigger confirmation dialog
|
|
1238
|
+
event.preventDefault();
|
|
1239
|
+
event.returnValue = ''; // Chrome requires returnValue to be set
|
|
1240
|
+
return ''; // Some browsers show this message
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
1243
|
+
|
|
1171
1244
|
// ==================== VIEW SWITCHING (Legacy - now uses router) ====================
|
|
1172
1245
|
|
|
1173
1246
|
// Switch between Tokens and Compositions views
|
|
@@ -1696,6 +1769,9 @@ function renderTree() {
|
|
|
1696
1769
|
const html = renderTokenNode(tokens);
|
|
1697
1770
|
tree.innerHTML = html;
|
|
1698
1771
|
|
|
1772
|
+
// Restore saved tree state from localStorage
|
|
1773
|
+
restoreTreeState('#token-tree', 'tokensTreeState');
|
|
1774
|
+
|
|
1699
1775
|
// Restore selection from URL after rendering
|
|
1700
1776
|
restoreSelectionFromURL();
|
|
1701
1777
|
}
|
|
@@ -1713,6 +1789,131 @@ function buildNodeMap(nodes) {
|
|
|
1713
1789
|
}
|
|
1714
1790
|
}
|
|
1715
1791
|
|
|
1792
|
+
// Add a temporary token to the tree structure
|
|
1793
|
+
function addTemporaryTokenToTree(tokenPath, tokenData) {
|
|
1794
|
+
if (!tokenPath || !tokenData) return;
|
|
1795
|
+
|
|
1796
|
+
// Parse the path into segments
|
|
1797
|
+
const segments = tokenPath.split('.');
|
|
1798
|
+
if (segments.length === 0) return;
|
|
1799
|
+
|
|
1800
|
+
// Find or create the nested structure in the tokens array
|
|
1801
|
+
let currentLevel = tokens;
|
|
1802
|
+
let currentPath = '';
|
|
1803
|
+
|
|
1804
|
+
for (let i = 0; i < segments.length; i++) {
|
|
1805
|
+
const segment = segments[i];
|
|
1806
|
+
currentPath = currentPath ? \`\${currentPath}.\${segment}\` : segment;
|
|
1807
|
+
const isLastSegment = i === segments.length - 1;
|
|
1808
|
+
|
|
1809
|
+
// Find existing node at this level
|
|
1810
|
+
let node = currentLevel.find(n => n.name === segment && n.path === currentPath);
|
|
1811
|
+
|
|
1812
|
+
if (!node) {
|
|
1813
|
+
// Create new node
|
|
1814
|
+
if (isLastSegment) {
|
|
1815
|
+
// This is the actual token
|
|
1816
|
+
node = {
|
|
1817
|
+
name: segment,
|
|
1818
|
+
path: currentPath,
|
|
1819
|
+
type: tokenData.type,
|
|
1820
|
+
value: tokenData.value,
|
|
1821
|
+
description: tokenData.description,
|
|
1822
|
+
filePath: tokenData.filePath,
|
|
1823
|
+
$extensions: tokenData.modes ? { $mode: tokenData.modes } : undefined
|
|
1824
|
+
};
|
|
1825
|
+
} else {
|
|
1826
|
+
// This is a folder/parent node
|
|
1827
|
+
node = {
|
|
1828
|
+
name: segment,
|
|
1829
|
+
path: currentPath,
|
|
1830
|
+
children: []
|
|
1831
|
+
};
|
|
1832
|
+
}
|
|
1833
|
+
currentLevel.push(node);
|
|
1834
|
+
|
|
1835
|
+
// Sort the level alphabetically
|
|
1836
|
+
currentLevel.sort((a, b) => a.name.localeCompare(b.name));
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
// Move to next level if not the last segment
|
|
1840
|
+
if (!isLastSegment) {
|
|
1841
|
+
if (!node.children) {
|
|
1842
|
+
node.children = [];
|
|
1843
|
+
}
|
|
1844
|
+
currentLevel = node.children;
|
|
1845
|
+
}
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
// Mark this path as temporary
|
|
1849
|
+
temporaryTokenPaths.add(tokenPath);
|
|
1850
|
+
|
|
1851
|
+
// Re-render the tree
|
|
1852
|
+
renderTree();
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
// Remove a temporary token from the tree structure
|
|
1856
|
+
function removeTemporaryTokenFromTree(tokenPath) {
|
|
1857
|
+
if (!tokenPath) return;
|
|
1858
|
+
|
|
1859
|
+
temporaryTokenPaths.delete(tokenPath);
|
|
1860
|
+
|
|
1861
|
+
// Parse the path into segments
|
|
1862
|
+
const segments = tokenPath.split('.');
|
|
1863
|
+
if (segments.length === 0) return;
|
|
1864
|
+
|
|
1865
|
+
// Find and remove the token
|
|
1866
|
+
let currentLevel = tokens;
|
|
1867
|
+
let parentLevel = null;
|
|
1868
|
+
let nodeToRemove = null;
|
|
1869
|
+
|
|
1870
|
+
for (let i = 0; i < segments.length; i++) {
|
|
1871
|
+
const segment = segments[i];
|
|
1872
|
+
const currentPath = segments.slice(0, i + 1).join('.');
|
|
1873
|
+
const isLastSegment = i === segments.length - 1;
|
|
1874
|
+
|
|
1875
|
+
const node = currentLevel.find(n => n.name === segment && n.path === currentPath);
|
|
1876
|
+
|
|
1877
|
+
if (!node) break;
|
|
1878
|
+
|
|
1879
|
+
if (isLastSegment) {
|
|
1880
|
+
nodeToRemove = node;
|
|
1881
|
+
break;
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1884
|
+
parentLevel = currentLevel;
|
|
1885
|
+
currentLevel = node.children || [];
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
// Remove the node
|
|
1889
|
+
if (nodeToRemove) {
|
|
1890
|
+
const index = currentLevel.indexOf(nodeToRemove);
|
|
1891
|
+
if (index > -1) {
|
|
1892
|
+
currentLevel.splice(index, 1);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
// Clean up empty parent folders
|
|
1896
|
+
if (parentLevel && currentLevel.length === 0) {
|
|
1897
|
+
// Recursively remove empty parents
|
|
1898
|
+
for (let i = segments.length - 2; i >= 0; i--) {
|
|
1899
|
+
const segment = segments[i];
|
|
1900
|
+
const parentPath = segments.slice(0, i + 1).join('.');
|
|
1901
|
+
const parentNode = parentLevel.find(n => n.name === segment && n.path === parentPath);
|
|
1902
|
+
|
|
1903
|
+
if (parentNode && parentNode.children && parentNode.children.length === 0) {
|
|
1904
|
+
const idx = parentLevel.indexOf(parentNode);
|
|
1905
|
+
if (idx > -1) {
|
|
1906
|
+
parentLevel.splice(idx, 1);
|
|
1907
|
+
}
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
// Re-render the tree
|
|
1914
|
+
renderTree();
|
|
1915
|
+
}
|
|
1916
|
+
|
|
1716
1917
|
function renderTokenNode(nodes, level = 0) {
|
|
1717
1918
|
if (!nodes || nodes.length === 0) return '';
|
|
1718
1919
|
|
|
@@ -1724,21 +1925,59 @@ function renderTokenNode(nodes, level = 0) {
|
|
|
1724
1925
|
|
|
1725
1926
|
let html = \`<div class="tree-node" data-path="\${nodePath}">\`;
|
|
1726
1927
|
|
|
1928
|
+
// Check if this token has a draft or is temporary
|
|
1929
|
+
const hasDraft = isToken && tokenDrafts.has(nodePath);
|
|
1930
|
+
const isTemporary = isToken && temporaryTokenPaths.has(nodePath);
|
|
1931
|
+
|
|
1727
1932
|
// Render the item with expand/collapse toggle
|
|
1728
1933
|
// Pass just the path instead of the full node object
|
|
1729
|
-
html += \`<div class="tree-item \${hasChildren ? 'folder' : ''}"
|
|
1934
|
+
html += \`<div class="tree-item \${hasChildren ? 'folder' : ''} \${hasDraft ? 'has-draft' : ''} \${isTemporary ? 'temporary' : ''}"
|
|
1730
1935
|
onclick="selectToken(event, '\${nodePath}')">\`;
|
|
1731
1936
|
|
|
1732
1937
|
if (hasChildren) {
|
|
1733
|
-
html += \`<span class="tree-toggle" onclick="
|
|
1938
|
+
html += \`<span class="tree-toggle" onclick="toggleTokenNode(event, '\${nodeId}')">▼</span>\`;
|
|
1734
1939
|
} else {
|
|
1735
1940
|
html += \`<span style="width: 16px;"></span>\`;
|
|
1736
1941
|
}
|
|
1737
1942
|
|
|
1943
|
+
// Add color swatch for color tokens
|
|
1944
|
+
if (isToken && node.type === 'color' && node.value) {
|
|
1945
|
+
const colorValue = resolveTokenValue(node.value);
|
|
1946
|
+
// Use colorjs.io to validate and convert any color format to hex
|
|
1947
|
+
if (colorValue && isValidColor(colorValue)) {
|
|
1948
|
+
const hexColor = colorToHex(colorValue);
|
|
1949
|
+
if (hexColor) {
|
|
1950
|
+
html += \`<span style="display: inline-block; width: 16px; height: 16px; border: 1px solid #ccc; border-radius: 3px; background-color: \${hexColor}; margin-right: 4px; vertical-align: middle;" title="default"></span>\`;
|
|
1951
|
+
}
|
|
1952
|
+
}
|
|
1953
|
+
|
|
1954
|
+
// Add swatches for all mode values
|
|
1955
|
+
const modes = node.$extensions?.$mode || {};
|
|
1956
|
+
for (const [modeKey, modeValue] of Object.entries(modes)) {
|
|
1957
|
+
if (modeKey !== 'default' && modeValue) {
|
|
1958
|
+
const resolvedModeValue = resolveTokenValue(modeValue);
|
|
1959
|
+
if (resolvedModeValue && isValidColor(resolvedModeValue)) {
|
|
1960
|
+
const modeHexColor = colorToHex(resolvedModeValue);
|
|
1961
|
+
if (modeHexColor) {
|
|
1962
|
+
const modeLabel = availableModes[modeKey]?.label || modeKey;
|
|
1963
|
+
html += \`<span style="display: inline-block; width: 16px; height: 16px; border: 1px solid #ccc; border-radius: 3px; background-color: \${modeHexColor}; margin-right: 4px; vertical-align: middle;" title="\${modeLabel}"></span>\`;
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1738
1970
|
html += \`\${node.name}\`;
|
|
1739
1971
|
|
|
1740
1972
|
if (isToken) {
|
|
1741
|
-
|
|
1973
|
+
// Don't show type label for color tokens (obvious from swatch)
|
|
1974
|
+
if (node.type === 'color') {
|
|
1975
|
+
if (isTemporary) {
|
|
1976
|
+
html += \` <span style="color: #999; font-size: 11px;">(new)</span>\`;
|
|
1977
|
+
}
|
|
1978
|
+
} else {
|
|
1979
|
+
html += \` <span style="color: #999; font-size: 11px;">(\${node.type}\${isTemporary ? ', new' : ''})</span>\`;
|
|
1980
|
+
}
|
|
1742
1981
|
}
|
|
1743
1982
|
|
|
1744
1983
|
html += '</div>';
|
|
@@ -1753,9 +1992,13 @@ function renderTokenNode(nodes, level = 0) {
|
|
|
1753
1992
|
}).join('');
|
|
1754
1993
|
}
|
|
1755
1994
|
|
|
1756
|
-
// Token-specific wrapper functions
|
|
1995
|
+
// Token-specific wrapper functions
|
|
1996
|
+
function toggleTokenNode(event, nodeId) {
|
|
1997
|
+
return toggleTreeNode(event, nodeId, '#token-tree', 'tokensTreeState');
|
|
1998
|
+
}
|
|
1999
|
+
|
|
1757
2000
|
function toggleNode(event, nodeId) {
|
|
1758
|
-
return
|
|
2001
|
+
return toggleTokenNode(event, nodeId);
|
|
1759
2002
|
}
|
|
1760
2003
|
|
|
1761
2004
|
function expandAll() {
|
|
@@ -1775,8 +2018,9 @@ function collapseAll() {
|
|
|
1775
2018
|
* @param {Event} event - The click event
|
|
1776
2019
|
* @param {string} nodeId - The ID of the node to toggle
|
|
1777
2020
|
* @param {string} scope - Optional scope selector to limit query (e.g., '#compositions-list')
|
|
2021
|
+
* @param {string} storageKey - Optional localStorage key to save state
|
|
1778
2022
|
*/
|
|
1779
|
-
function toggleTreeNode(event, nodeId, scope = '') {
|
|
2023
|
+
function toggleTreeNode(event, nodeId, scope = '', storageKey = null) {
|
|
1780
2024
|
if (event) event.stopPropagation();
|
|
1781
2025
|
|
|
1782
2026
|
const childrenElement = document.getElementById(nodeId);
|
|
@@ -1796,6 +2040,60 @@ function toggleTreeNode(event, nodeId, scope = '') {
|
|
|
1796
2040
|
childrenElement.classList.add('collapsed');
|
|
1797
2041
|
if (toggle) toggle.classList.add('collapsed');
|
|
1798
2042
|
}
|
|
2043
|
+
|
|
2044
|
+
// Save tree state if storage key provided
|
|
2045
|
+
if (storageKey) {
|
|
2046
|
+
saveTreeState(scope || 'body', storageKey);
|
|
2047
|
+
} else if (scope === '#compositions-list') {
|
|
2048
|
+
// Backward compatibility
|
|
2049
|
+
saveCompositionsTreeState();
|
|
2050
|
+
}
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
/**
|
|
2054
|
+
* Generic function to save tree state to localStorage
|
|
2055
|
+
* @param {string} scope - Selector for the tree container
|
|
2056
|
+
* @param {string} storageKey - localStorage key
|
|
2057
|
+
*/
|
|
2058
|
+
function saveTreeState(scope, storageKey) {
|
|
2059
|
+
const expandedFolders = [];
|
|
2060
|
+
const selector = \`\${scope} .tree-children\`;
|
|
2061
|
+
document.querySelectorAll(selector).forEach(treeChildren => {
|
|
2062
|
+
if (treeChildren.id && !treeChildren.classList.contains('collapsed')) {
|
|
2063
|
+
expandedFolders.push(treeChildren.id);
|
|
2064
|
+
}
|
|
2065
|
+
});
|
|
2066
|
+
localStorage.setItem(storageKey, JSON.stringify(expandedFolders));
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
/**
|
|
2070
|
+
* Generic function to restore tree state from localStorage
|
|
2071
|
+
* @param {string} scope - Selector for the tree container
|
|
2072
|
+
* @param {string} storageKey - localStorage key
|
|
2073
|
+
*/
|
|
2074
|
+
function restoreTreeState(scope, storageKey) {
|
|
2075
|
+
try {
|
|
2076
|
+
const savedState = localStorage.getItem(storageKey);
|
|
2077
|
+
if (savedState) {
|
|
2078
|
+
const expandedFolders = JSON.parse(savedState);
|
|
2079
|
+
expandedFolders.forEach(folderId => {
|
|
2080
|
+
const folder = document.getElementById(folderId);
|
|
2081
|
+
if (folder) {
|
|
2082
|
+
folder.classList.remove('collapsed');
|
|
2083
|
+
// Also update the toggle arrow
|
|
2084
|
+
const parentTreeNode = folder.parentElement;
|
|
2085
|
+
if (parentTreeNode) {
|
|
2086
|
+
const toggle = parentTreeNode.querySelector('.tree-toggle');
|
|
2087
|
+
if (toggle) {
|
|
2088
|
+
toggle.classList.remove('collapsed');
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
2092
|
+
});
|
|
2093
|
+
}
|
|
2094
|
+
} catch (error) {
|
|
2095
|
+
console.error('Error restoring tree state:', error);
|
|
2096
|
+
}
|
|
1799
2097
|
}
|
|
1800
2098
|
|
|
1801
2099
|
/**
|
|
@@ -1932,6 +2230,9 @@ function clearSearch() {
|
|
|
1932
2230
|
function selectToken(event, nodePath) {
|
|
1933
2231
|
event.stopPropagation();
|
|
1934
2232
|
|
|
2233
|
+
// Save current token draft if needed before navigating
|
|
2234
|
+
saveTokenDraftIfNeeded();
|
|
2235
|
+
|
|
1935
2236
|
// Look up the node from the path
|
|
1936
2237
|
const node = nodesByPath.get(nodePath);
|
|
1937
2238
|
if (!node) {
|
|
@@ -1941,8 +2242,9 @@ function selectToken(event, nodePath) {
|
|
|
1941
2242
|
const clickedItem = event.currentTarget;
|
|
1942
2243
|
const wasSelected = clickedItem.classList.contains('selected');
|
|
1943
2244
|
|
|
2245
|
+
// Just highlight the item for reference - don't navigate away from current form
|
|
1944
2246
|
// Remove previous selection
|
|
1945
|
-
document.querySelectorAll('.tree-item').forEach(el => el.classList.remove('selected'));
|
|
2247
|
+
document.querySelectorAll('#token-tree .tree-item').forEach(el => el.classList.remove('selected'));
|
|
1946
2248
|
|
|
1947
2249
|
// If this folder was already selected, navigate to parent
|
|
1948
2250
|
const hasChildren = node.children && node.children.length > 0;
|
|
@@ -1976,29 +2278,14 @@ function selectToken(event, nodePath) {
|
|
|
1976
2278
|
updateURL(node.path);
|
|
1977
2279
|
}
|
|
1978
2280
|
|
|
1979
|
-
// If this is a folder (has children),
|
|
2281
|
+
// If this is a folder (has children), show add form (without filtering)
|
|
1980
2282
|
if (hasChildren && node.path) {
|
|
1981
|
-
const searchInput = document.getElementById('search-input');
|
|
1982
|
-
searchInput.value = node.path;
|
|
1983
|
-
searchTree(node.path);
|
|
1984
2283
|
showAddForm(node.path);
|
|
1985
2284
|
}
|
|
1986
2285
|
|
|
1987
|
-
// If it's a token, show the editor
|
|
2286
|
+
// If it's a token, show the editor (without filtering)
|
|
1988
2287
|
if (node.type && node.value !== undefined) {
|
|
1989
2288
|
selectedToken = node;
|
|
1990
|
-
|
|
1991
|
-
// Get parent path for filtering
|
|
1992
|
-
const pathParts = node.path.split('.');
|
|
1993
|
-
pathParts.pop(); // Remove token name
|
|
1994
|
-
const parentPath = pathParts.join('.');
|
|
1995
|
-
|
|
1996
|
-
if (parentPath) {
|
|
1997
|
-
const searchInput = document.getElementById('search-input');
|
|
1998
|
-
searchInput.value = parentPath;
|
|
1999
|
-
searchTree(parentPath);
|
|
2000
|
-
}
|
|
2001
|
-
|
|
2002
2289
|
showTokenEditor(node);
|
|
2003
2290
|
}
|
|
2004
2291
|
}
|
|
@@ -2080,30 +2367,17 @@ function restoreSelectionFromURL() {
|
|
|
2080
2367
|
element.classList.add('selected');
|
|
2081
2368
|
element.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
2082
2369
|
|
|
2083
|
-
// If
|
|
2370
|
+
// If this is a folder (has children), show add form (without filtering)
|
|
2084
2371
|
const hasChildren = node.children && node.children.length > 0;
|
|
2085
2372
|
if (hasChildren) {
|
|
2086
2373
|
const searchInput = document.getElementById('search-input');
|
|
2087
2374
|
searchInput.value = path;
|
|
2088
|
-
searchTree(path);
|
|
2089
2375
|
showAddForm(path);
|
|
2090
2376
|
}
|
|
2091
2377
|
|
|
2092
|
-
// If it's a token, show the editor
|
|
2378
|
+
// If it's a token, show the editor (without filtering)
|
|
2093
2379
|
if (node.type && node.value !== undefined) {
|
|
2094
2380
|
selectedToken = node;
|
|
2095
|
-
|
|
2096
|
-
// Get parent path for filtering
|
|
2097
|
-
const pathParts = path.split('.');
|
|
2098
|
-
pathParts.pop(); // Remove token name
|
|
2099
|
-
const parentPath = pathParts.join('.');
|
|
2100
|
-
|
|
2101
|
-
if (parentPath) {
|
|
2102
|
-
const searchInput = document.getElementById('search-input');
|
|
2103
|
-
searchInput.value = parentPath;
|
|
2104
|
-
searchTree(parentPath);
|
|
2105
|
-
}
|
|
2106
|
-
|
|
2107
2381
|
showTokenEditor(node);
|
|
2108
2382
|
}
|
|
2109
2383
|
|
|
@@ -2113,13 +2387,17 @@ function restoreSelectionFromURL() {
|
|
|
2113
2387
|
}
|
|
2114
2388
|
|
|
2115
2389
|
function showTokenEditor(token) {
|
|
2390
|
+
// Check if there's a draft for this token
|
|
2391
|
+
const draft = loadTokenDraftIfExists(token.path);
|
|
2392
|
+
const dataToShow = draft || token;
|
|
2393
|
+
|
|
2116
2394
|
const editor = document.getElementById('editor-content');
|
|
2117
2395
|
const fileOptions = Object.keys(files).map(f =>
|
|
2118
|
-
\`<option value="\${f}" \${f === token.filePath ? 'selected' : ''}>\${f}</option>\`
|
|
2396
|
+
\`<option value="\${f}" \${f === (dataToShow.filePath || token.filePath) ? 'selected' : ''}>\${f}</option>\`
|
|
2119
2397
|
).join('');
|
|
2120
2398
|
|
|
2121
|
-
// Extract mode values if
|
|
2122
|
-
const modes = token.$extensions?.$mode || {};
|
|
2399
|
+
// Extract mode values - use draft modes if available
|
|
2400
|
+
const modes = dataToShow.modes || token.$extensions?.$mode || {};
|
|
2123
2401
|
const hasModes = Object.keys(modes).length > 0;
|
|
2124
2402
|
|
|
2125
2403
|
// Generate mode input fields dynamically based on config
|
|
@@ -2128,7 +2406,7 @@ function showTokenEditor(token) {
|
|
|
2128
2406
|
.filter(modeKey => modeKey !== 'default')
|
|
2129
2407
|
.map(modeKey => {
|
|
2130
2408
|
const modeLabel = availableModes[modeKey];
|
|
2131
|
-
const modeValue = modes[
|
|
2409
|
+
const modeValue = modes[modeKey] || '';
|
|
2132
2410
|
const displayName = modeLabel.charAt(0).toUpperCase() + modeLabel.slice(1);
|
|
2133
2411
|
|
|
2134
2412
|
// Check if token type is composition - modes should match
|
|
@@ -2169,10 +2447,10 @@ function showTokenEditor(token) {
|
|
|
2169
2447
|
}).join('');
|
|
2170
2448
|
|
|
2171
2449
|
editor.innerHTML = \`
|
|
2172
|
-
<h2>Edit Token</h2>
|
|
2450
|
+
<h2>Edit Token \${draft ? '<span style="color: #ff9800; font-size: 14px;">(Unsaved Changes)</span>' : ''}</h2>
|
|
2173
2451
|
<div class="form-group">
|
|
2174
2452
|
<label>Path</label>
|
|
2175
|
-
<input type="text" id="token-path" value="\${
|
|
2453
|
+
<input type="text" id="token-path" value="\${dataToShow.path}" placeholder="e.g., foundation.color.primary" oninput="checkPathExists(this, '\${token.path}')">
|
|
2176
2454
|
<div class="path-exists-warning" id="path-warning"></div>
|
|
2177
2455
|
</div>
|
|
2178
2456
|
<div class="form-group">
|
|
@@ -2184,24 +2462,24 @@ function showTokenEditor(token) {
|
|
|
2184
2462
|
<div class="form-group">
|
|
2185
2463
|
<label>Type</label>
|
|
2186
2464
|
<select id="token-type" onchange="handleTypeChange(true)">
|
|
2187
|
-
<option value="color" \${
|
|
2188
|
-
<option value="dimension" \${
|
|
2189
|
-
<option value="string" \${
|
|
2190
|
-
<option value="number" \${
|
|
2191
|
-
<option value="fontFamily" \${
|
|
2192
|
-
<option value="fontWeight" \${
|
|
2193
|
-
<option value="composition" \${
|
|
2465
|
+
<option value="color" \${dataToShow.type === 'color' ? 'selected' : ''}>color</option>
|
|
2466
|
+
<option value="dimension" \${dataToShow.type === 'dimension' ? 'selected' : ''}>dimension</option>
|
|
2467
|
+
<option value="string" \${dataToShow.type === 'string' ? 'selected' : ''}>string</option>
|
|
2468
|
+
<option value="number" \${dataToShow.type === 'number' ? 'selected' : ''}>number</option>
|
|
2469
|
+
<option value="fontFamily" \${dataToShow.type === 'fontFamily' ? 'selected' : ''}>fontFamily</option>
|
|
2470
|
+
<option value="fontWeight" \${dataToShow.type === 'fontWeight' ? 'selected' : ''}>fontWeight</option>
|
|
2471
|
+
<option value="composition" \${dataToShow.type === 'composition' ? 'selected' : ''}>composition</option>
|
|
2194
2472
|
</select>
|
|
2195
2473
|
</div>
|
|
2196
2474
|
<div class="form-group">
|
|
2197
2475
|
<label>Value (Default)</label>
|
|
2198
2476
|
<div id="value-container">
|
|
2199
|
-
\${
|
|
2477
|
+
\${dataToShow.type === 'composition' ? \`
|
|
2200
2478
|
<div style="margin-top: 10px;">
|
|
2201
|
-
\${renderCompositionEditor(
|
|
2479
|
+
\${renderCompositionEditor(dataToShow.value, 'token-value')}
|
|
2202
2480
|
</div>
|
|
2203
2481
|
\` : \`
|
|
2204
|
-
<input type="text" id="token-value" value="\${
|
|
2482
|
+
<input type="text" id="token-value" value="\${dataToShow.value}" autocomplete="off">
|
|
2205
2483
|
\`}
|
|
2206
2484
|
</div>
|
|
2207
2485
|
</div>
|
|
@@ -2223,9 +2501,27 @@ function showTokenEditor(token) {
|
|
|
2223
2501
|
|
|
2224
2502
|
<div class="form-group">
|
|
2225
2503
|
<label>Description</label>
|
|
2226
|
-
<textarea id="token-description">\${
|
|
2504
|
+
<textarea id="token-description">\${dataToShow.description || dataToShow.$description || ''}</textarea>
|
|
2227
2505
|
</div>
|
|
2228
|
-
|
|
2506
|
+
|
|
2507
|
+
<div style="margin-top: 30px;">
|
|
2508
|
+
<label>CSS Variable Preview</label>
|
|
2509
|
+
<div id="token-preview" style="background: #f9f9f9; border: 1px solid #ddd;
|
|
2510
|
+
padding: 15px; border-radius: 4px; font-family: monospace; font-size: 13px;
|
|
2511
|
+
white-space: pre; overflow-x: auto;">/* Loading preview... */</div>
|
|
2512
|
+
<div style="display: flex; gap: 10px; margin-top: 10px;">
|
|
2513
|
+
<button onclick="updateTokenPreview()"
|
|
2514
|
+
style="background: #666;">
|
|
2515
|
+
\uD83D\uDD04 Refresh Preview
|
|
2516
|
+
</button>
|
|
2517
|
+
<button onclick="copyTokenPreview(event)"
|
|
2518
|
+
style="background: #666;">
|
|
2519
|
+
\uD83D\uDCCB Copy Preview
|
|
2520
|
+
</button>
|
|
2521
|
+
</div>
|
|
2522
|
+
</div>
|
|
2523
|
+
|
|
2524
|
+
<div style="display: flex; gap: 10px; margin-top: 30px;">
|
|
2229
2525
|
<button onclick="saveToken()">Save Token</button>
|
|
2230
2526
|
<button onclick="duplicateToken()" style="background: #9C27B0;">Duplicate Token</button>
|
|
2231
2527
|
<button onclick="location.reload()" style="background: #666;">Cancel</button>
|
|
@@ -2246,11 +2542,40 @@ function showTokenEditor(token) {
|
|
|
2246
2542
|
});
|
|
2247
2543
|
}
|
|
2248
2544
|
|
|
2545
|
+
// Auto-update preview on load and changes
|
|
2546
|
+
setTimeout(() => updateTokenPreview(), 100);
|
|
2547
|
+
|
|
2548
|
+
// Add preview update listeners
|
|
2549
|
+
let previewDebounce;
|
|
2550
|
+
const updatePreviewDebounced = () => {
|
|
2551
|
+
clearTimeout(previewDebounce);
|
|
2552
|
+
previewDebounce = setTimeout(() => updateTokenPreview(), 300);
|
|
2553
|
+
};
|
|
2554
|
+
|
|
2555
|
+
['token-path', 'token-type', 'token-value'].forEach(id => {
|
|
2556
|
+
const el = document.getElementById(id);
|
|
2557
|
+
if (el) {
|
|
2558
|
+
el.addEventListener('input', updatePreviewDebounced);
|
|
2559
|
+
el.addEventListener('change', () => updateTokenPreview());
|
|
2560
|
+
}
|
|
2561
|
+
});
|
|
2562
|
+
|
|
2563
|
+
// Add listeners for mode inputs
|
|
2564
|
+
Object.keys(availableModes).forEach(modeKey => {
|
|
2565
|
+
if (modeKey !== 'default') {
|
|
2566
|
+
const modeInput = document.getElementById(\`mode-\${modeKey}\`);
|
|
2567
|
+
if (modeInput) {
|
|
2568
|
+
modeInput.addEventListener('input', updatePreviewDebounced);
|
|
2569
|
+
modeInput.addEventListener('change', () => updateTokenPreview());
|
|
2570
|
+
}
|
|
2571
|
+
}
|
|
2572
|
+
});
|
|
2573
|
+
|
|
2249
2574
|
// Setup autocomplete for all mode inputs
|
|
2250
2575
|
Object.keys(availableModes).forEach(modeKey => {
|
|
2251
2576
|
if (modeKey === 'default') return;
|
|
2252
2577
|
|
|
2253
|
-
if (
|
|
2578
|
+
if (dataToShow.type === 'composition') {
|
|
2254
2579
|
// Setup autocomplete for composition mode inputs
|
|
2255
2580
|
const modeEditor = document.querySelector(\`[data-id-prefix="mode-\${modeKey}"]\`);
|
|
2256
2581
|
if (modeEditor) {
|
|
@@ -2266,6 +2591,16 @@ function showTokenEditor(token) {
|
|
|
2266
2591
|
}
|
|
2267
2592
|
}
|
|
2268
2593
|
});
|
|
2594
|
+
|
|
2595
|
+
// Add change detection to mark as draft while editing
|
|
2596
|
+
// Debounce the draft save to avoid too many re-renders
|
|
2597
|
+
let debounceTimer;
|
|
2598
|
+
editor.addEventListener('input', () => {
|
|
2599
|
+
clearTimeout(debounceTimer);
|
|
2600
|
+
debounceTimer = setTimeout(() => {
|
|
2601
|
+
saveTokenDraftIfNeeded();
|
|
2602
|
+
}, 500); // Wait 500ms after user stops typing
|
|
2603
|
+
});
|
|
2269
2604
|
}
|
|
2270
2605
|
|
|
2271
2606
|
function toggleModeValues() {
|
|
@@ -2281,7 +2616,23 @@ function toggleModeValues() {
|
|
|
2281
2616
|
}
|
|
2282
2617
|
|
|
2283
2618
|
function showAddForm(prefillPath = '') {
|
|
2619
|
+
// Clear selectedToken since we're adding a new token, not editing an existing one
|
|
2620
|
+
selectedToken = null;
|
|
2621
|
+
|
|
2284
2622
|
const editor = document.getElementById('editor-content');
|
|
2623
|
+
|
|
2624
|
+
// Check if there's a draft for a new token with this path prefix
|
|
2625
|
+
let draftToRestore = null;
|
|
2626
|
+
if (prefillPath) {
|
|
2627
|
+
// Look for drafts that start with this path
|
|
2628
|
+
for (const [path, draft] of tokenDrafts.entries()) {
|
|
2629
|
+
if (path.startsWith(prefillPath + '.')) {
|
|
2630
|
+
draftToRestore = draft;
|
|
2631
|
+
break;
|
|
2632
|
+
}
|
|
2633
|
+
}
|
|
2634
|
+
}
|
|
2635
|
+
|
|
2285
2636
|
const fileOptions = Object.keys(files).map(f => \`<option value="\${f}">\${f}</option>\`).join('');
|
|
2286
2637
|
|
|
2287
2638
|
// If a path is provided, suggest adding a child token
|
|
@@ -2289,7 +2640,9 @@ function showAddForm(prefillPath = '') {
|
|
|
2289
2640
|
? \`\${prefillPath}.newToken\`
|
|
2290
2641
|
: 'universe.foundation.color.newColor';
|
|
2291
2642
|
|
|
2292
|
-
const pathValue = prefillPath ? \`\${prefillPath}.\` : '';
|
|
2643
|
+
const pathValue = draftToRestore?.path || (prefillPath ? \`\${prefillPath}.\` : '');
|
|
2644
|
+
const typeValue = draftToRestore?.type || 'color';
|
|
2645
|
+
const descriptionValue = draftToRestore?.description || '';
|
|
2293
2646
|
|
|
2294
2647
|
// Generate mode input fields dynamically based on config
|
|
2295
2648
|
// Skip 'default' mode as it's already covered by the main Value field
|
|
@@ -2338,25 +2691,28 @@ function showAddForm(prefillPath = '') {
|
|
|
2338
2691
|
</div>
|
|
2339
2692
|
<div class="form-group">
|
|
2340
2693
|
<label>Token Path (e.g., \${pathPlaceholder})</label>
|
|
2341
|
-
<input type="text" id="token-path" value="\${pathValue}" placeholder="\${pathPlaceholder}" oninput="checkPathExists(this)" autocomplete="off">
|
|
2694
|
+
<input type="text" id="token-path" value="\${pathValue}" placeholder="\${pathPlaceholder}" oninput="checkPathExists(this)" onblur="validatePathOnBlur(this)" autocomplete="off">
|
|
2342
2695
|
<div class="path-exists-warning" id="path-warning"></div>
|
|
2343
2696
|
</div>
|
|
2344
2697
|
<div class="form-group">
|
|
2345
2698
|
<label>Type</label>
|
|
2346
2699
|
<select id="token-type" onchange="handleTypeChange(false)">
|
|
2347
|
-
<option value="color">color</option>
|
|
2348
|
-
<option value="dimension">dimension</option>
|
|
2349
|
-
<option value="string">string</option>
|
|
2350
|
-
<option value="number">number</option>
|
|
2351
|
-
<option value="fontFamily">fontFamily</option>
|
|
2352
|
-
<option value="fontWeight">fontWeight</option>
|
|
2353
|
-
<option value="composition">composition</option>
|
|
2700
|
+
<option value="color" \${typeValue === 'color' ? 'selected' : ''}>color</option>
|
|
2701
|
+
<option value="dimension" \${typeValue === 'dimension' ? 'selected' : ''}>dimension</option>
|
|
2702
|
+
<option value="string" \${typeValue === 'string' ? 'selected' : ''}>string</option>
|
|
2703
|
+
<option value="number" \${typeValue === 'number' ? 'selected' : ''}>number</option>
|
|
2704
|
+
<option value="fontFamily" \${typeValue === 'fontFamily' ? 'selected' : ''}>fontFamily</option>
|
|
2705
|
+
<option value="fontWeight" \${typeValue === 'fontWeight' ? 'selected' : ''}>fontWeight</option>
|
|
2706
|
+
<option value="composition" \${typeValue === 'composition' ? 'selected' : ''}>composition</option>
|
|
2354
2707
|
</select>
|
|
2355
2708
|
</div>
|
|
2356
2709
|
<div class="form-group">
|
|
2357
2710
|
<label>Value (Default)</label>
|
|
2358
2711
|
<div id="value-container">
|
|
2359
|
-
|
|
2712
|
+
\${typeValue === 'composition' && draftToRestore?.value ?
|
|
2713
|
+
renderCompositionEditor(draftToRestore.value, 'token-value') :
|
|
2714
|
+
\`<input type="text" id="token-value" value="\${draftToRestore?.value || ''}" placeholder="#ff0000 or 16px or 'Inter'" autocomplete="off">\`
|
|
2715
|
+
}
|
|
2360
2716
|
</div>
|
|
2361
2717
|
</div>
|
|
2362
2718
|
|
|
@@ -2377,10 +2733,30 @@ function showAddForm(prefillPath = '') {
|
|
|
2377
2733
|
|
|
2378
2734
|
<div class="form-group">
|
|
2379
2735
|
<label>Description (optional)</label>
|
|
2380
|
-
<textarea id="token-description"
|
|
2736
|
+
<textarea id="token-description">\${descriptionValue}</textarea>
|
|
2737
|
+
</div>
|
|
2738
|
+
|
|
2739
|
+
<div style="margin-top: 30px;">
|
|
2740
|
+
<label>CSS Variable Preview</label>
|
|
2741
|
+
<div id="token-preview" style="background: #f9f9f9; border: 1px solid #ddd;
|
|
2742
|
+
padding: 15px; border-radius: 4px; font-family: monospace; font-size: 13px;
|
|
2743
|
+
white-space: pre; overflow-x: auto;">/* Add path and value to see preview */</div>
|
|
2744
|
+
<div style="display: flex; gap: 10px; margin-top: 10px;">
|
|
2745
|
+
<button onclick="updateTokenPreview()"
|
|
2746
|
+
style="background: #666;">
|
|
2747
|
+
\uD83D\uDD04 Refresh Preview
|
|
2748
|
+
</button>
|
|
2749
|
+
<button onclick="copyTokenPreview(event)"
|
|
2750
|
+
style="background: #666;">
|
|
2751
|
+
\uD83D\uDCCB Copy Preview
|
|
2752
|
+
</button>
|
|
2753
|
+
</div>
|
|
2754
|
+
</div>
|
|
2755
|
+
|
|
2756
|
+
<div style="margin-top: 30px;">
|
|
2757
|
+
<button onclick="addToken()">Add Token</button>
|
|
2758
|
+
<button onclick="cancelAddToken()" style="background: #666; margin-left: 10px;">Cancel</button>
|
|
2381
2759
|
</div>
|
|
2382
|
-
<button onclick="addToken()">Add Token</button>
|
|
2383
|
-
<button onclick="location.reload()" style="background: #666; margin-left: 10px;">Cancel</button>
|
|
2384
2760
|
\`;
|
|
2385
2761
|
|
|
2386
2762
|
// Focus on the path input at the end (after the pre-filled path)
|
|
@@ -2397,6 +2773,32 @@ function showAddForm(prefillPath = '') {
|
|
|
2397
2773
|
setupAutocomplete(valueInput);
|
|
2398
2774
|
}
|
|
2399
2775
|
|
|
2776
|
+
// Auto-update preview on changes
|
|
2777
|
+
let previewDebounce;
|
|
2778
|
+
const updatePreviewDebounced = () => {
|
|
2779
|
+
clearTimeout(previewDebounce);
|
|
2780
|
+
previewDebounce = setTimeout(() => updateTokenPreview(), 300);
|
|
2781
|
+
};
|
|
2782
|
+
|
|
2783
|
+
['token-path', 'token-type', 'token-value'].forEach(id => {
|
|
2784
|
+
const el = document.getElementById(id);
|
|
2785
|
+
if (el) {
|
|
2786
|
+
el.addEventListener('input', updatePreviewDebounced);
|
|
2787
|
+
el.addEventListener('change', () => updateTokenPreview());
|
|
2788
|
+
}
|
|
2789
|
+
});
|
|
2790
|
+
|
|
2791
|
+
// Add listeners for mode inputs
|
|
2792
|
+
Object.keys(availableModes).forEach(modeKey => {
|
|
2793
|
+
if (modeKey !== 'default') {
|
|
2794
|
+
const modeInput = document.getElementById(\`mode-\${modeKey}\`);
|
|
2795
|
+
if (modeInput) {
|
|
2796
|
+
modeInput.addEventListener('input', updatePreviewDebounced);
|
|
2797
|
+
modeInput.addEventListener('change', () => updateTokenPreview());
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
});
|
|
2801
|
+
|
|
2400
2802
|
// Setup autocomplete for all mode inputs
|
|
2401
2803
|
Object.keys(availableModes).forEach(modeKey => {
|
|
2402
2804
|
const input = document.getElementById(\`mode-\${modeKey}\`);
|
|
@@ -2404,9 +2806,60 @@ function showAddForm(prefillPath = '') {
|
|
|
2404
2806
|
setupAutocomplete(input);
|
|
2405
2807
|
}
|
|
2406
2808
|
});
|
|
2809
|
+
|
|
2810
|
+
// Add debounced input listeners to detect changes for draft system
|
|
2811
|
+
let draftTimeout;
|
|
2812
|
+
const debouncedSaveDraft = () => {
|
|
2813
|
+
clearTimeout(draftTimeout);
|
|
2814
|
+
draftTimeout = setTimeout(() => saveTokenDraftIfNeeded(), 500);
|
|
2815
|
+
};
|
|
2816
|
+
|
|
2817
|
+
// Add listeners to all form inputs
|
|
2818
|
+
['token-path', 'token-type', 'token-value', 'token-description', 'target-file'].forEach(id => {
|
|
2819
|
+
const element = document.getElementById(id);
|
|
2820
|
+
if (element) {
|
|
2821
|
+
element.addEventListener('input', debouncedSaveDraft);
|
|
2822
|
+
element.addEventListener('change', debouncedSaveDraft);
|
|
2823
|
+
}
|
|
2824
|
+
});
|
|
2825
|
+
|
|
2826
|
+
// Add listeners for mode inputs
|
|
2827
|
+
Object.keys(availableModes).forEach(modeKey => {
|
|
2828
|
+
const input = document.getElementById(\`mode-\${modeKey}\`);
|
|
2829
|
+
if (input) {
|
|
2830
|
+
input.addEventListener('input', debouncedSaveDraft);
|
|
2831
|
+
}
|
|
2832
|
+
});
|
|
2407
2833
|
}, 0);
|
|
2408
2834
|
}
|
|
2409
2835
|
|
|
2836
|
+
// Validate path on blur - show error and focus if invalid
|
|
2837
|
+
function validatePathOnBlur(inputElement) {
|
|
2838
|
+
const path = inputElement.value.trim();
|
|
2839
|
+
if (!path) return; // Empty is ok, user might be starting
|
|
2840
|
+
|
|
2841
|
+
const validation = validateTokenPath(path);
|
|
2842
|
+
if (!validation.valid) {
|
|
2843
|
+
const warningElement = document.getElementById('path-warning');
|
|
2844
|
+
if (warningElement) {
|
|
2845
|
+
warningElement.innerHTML = \`
|
|
2846
|
+
<strong>❌ Invalid path format</strong>
|
|
2847
|
+
\${validation.errors.join('<br>')}
|
|
2848
|
+
\`;
|
|
2849
|
+
warningElement.classList.add('visible');
|
|
2850
|
+
warningElement.style.background = '#f8d7da';
|
|
2851
|
+
warningElement.style.borderColor = '#dc3545';
|
|
2852
|
+
warningElement.style.color = '#721c24';
|
|
2853
|
+
}
|
|
2854
|
+
|
|
2855
|
+
// Focus back on the input
|
|
2856
|
+
setTimeout(() => {
|
|
2857
|
+
inputElement.focus();
|
|
2858
|
+
inputElement.select();
|
|
2859
|
+
}, 100);
|
|
2860
|
+
}
|
|
2861
|
+
}
|
|
2862
|
+
|
|
2410
2863
|
// Check if a token path already exists and show warning
|
|
2411
2864
|
function checkPathExists(inputElement, currentPath = '') {
|
|
2412
2865
|
const newPath = inputElement.value.trim();
|
|
@@ -2504,6 +2957,23 @@ function validateTokenPath(path) {
|
|
|
2504
2957
|
};
|
|
2505
2958
|
}
|
|
2506
2959
|
|
|
2960
|
+
// Cancel adding a new token - cleanup and navigate away
|
|
2961
|
+
function cancelAddToken() {
|
|
2962
|
+
const pathInput = document.getElementById('token-path');
|
|
2963
|
+
if (pathInput) {
|
|
2964
|
+
const path = pathInput.value.trim();
|
|
2965
|
+
if (path) {
|
|
2966
|
+
// Remove temporary token from tree
|
|
2967
|
+
removeTemporaryTokenFromTree(path);
|
|
2968
|
+
// Remove draft
|
|
2969
|
+
tokenDrafts.delete(path);
|
|
2970
|
+
}
|
|
2971
|
+
}
|
|
2972
|
+
|
|
2973
|
+
// Navigate back to tokens view
|
|
2974
|
+
navigate('/tokens');
|
|
2975
|
+
}
|
|
2976
|
+
|
|
2507
2977
|
async function addToken() {
|
|
2508
2978
|
const path = document.getElementById('token-path').value;
|
|
2509
2979
|
const type = document.getElementById('token-type').value;
|
|
@@ -2769,6 +3239,9 @@ async function saveToken() {
|
|
|
2769
3239
|
});
|
|
2770
3240
|
|
|
2771
3241
|
if (addResponse.ok) {
|
|
3242
|
+
// Clear draft after successful save
|
|
3243
|
+
clearTokenDraft(selectedToken.path);
|
|
3244
|
+
|
|
2772
3245
|
// Update URL with new path
|
|
2773
3246
|
const url = new URL(window.location);
|
|
2774
3247
|
url.searchParams.set('path', newPath);
|
|
@@ -2797,6 +3270,8 @@ async function saveToken() {
|
|
|
2797
3270
|
});
|
|
2798
3271
|
|
|
2799
3272
|
if (response.ok) {
|
|
3273
|
+
// Clear draft after successful save
|
|
3274
|
+
clearTokenDraft(selectedToken.path);
|
|
2800
3275
|
location.reload();
|
|
2801
3276
|
} else {
|
|
2802
3277
|
alert('Error updating token');
|
|
@@ -3025,6 +3500,31 @@ function renderCompositionsList() {
|
|
|
3025
3500
|
// Build tree structure organized by fileName
|
|
3026
3501
|
const tree = buildCompositionsTree(compositions);
|
|
3027
3502
|
container.innerHTML = renderCompositionsNode(tree);
|
|
3503
|
+
|
|
3504
|
+
// Collapse all nodes by default
|
|
3505
|
+
collapseAllCompositions();
|
|
3506
|
+
|
|
3507
|
+
// Restore saved tree state from localStorage
|
|
3508
|
+
restoreCompositionsTreeState();
|
|
3509
|
+
|
|
3510
|
+
// Then expand path to selected composition (overrides saved state for selected item)
|
|
3511
|
+
if (selectedComposition) {
|
|
3512
|
+
expandPathToComposition(selectedComposition);
|
|
3513
|
+
}
|
|
3514
|
+
}
|
|
3515
|
+
|
|
3516
|
+
/**
|
|
3517
|
+
* Save compositions tree expand/collapse state to localStorage
|
|
3518
|
+
*/
|
|
3519
|
+
function saveCompositionsTreeState() {
|
|
3520
|
+
saveTreeState('#compositions-list', 'compositionsTreeState');
|
|
3521
|
+
}
|
|
3522
|
+
|
|
3523
|
+
/**
|
|
3524
|
+
* Restore compositions tree expand/collapse state from localStorage
|
|
3525
|
+
*/
|
|
3526
|
+
function restoreCompositionsTreeState() {
|
|
3527
|
+
restoreTreeState('#compositions-list', 'compositionsTreeState');
|
|
3028
3528
|
}
|
|
3029
3529
|
|
|
3030
3530
|
/**
|
|
@@ -3034,14 +3534,22 @@ function buildCompositionsTree(compositions) {
|
|
|
3034
3534
|
const root = { name: 'root', children: [], compositions: [] };
|
|
3035
3535
|
|
|
3036
3536
|
compositions.forEach(comp => {
|
|
3037
|
-
|
|
3038
|
-
|
|
3537
|
+
let pathToUse = '';
|
|
3538
|
+
|
|
3539
|
+
if (comp.$sourceFile && comp.$sourceFile.trim() !== '') {
|
|
3540
|
+
const sourceFile = comp.$sourceFile.replace(/^.*?compositions\\//, '').replace(/\\.json$/, '');
|
|
3541
|
+
pathToUse = sourceFile;
|
|
3542
|
+
} else if (comp.fileName && comp.fileName.trim() !== '') {
|
|
3543
|
+
pathToUse = comp.fileName;
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
if (!pathToUse || pathToUse.trim() === '') {
|
|
3039
3547
|
root.compositions.push({ ...comp, _missingFileName: true });
|
|
3040
3548
|
return;
|
|
3041
3549
|
}
|
|
3042
3550
|
|
|
3043
|
-
// Split the
|
|
3044
|
-
const fileName =
|
|
3551
|
+
// Split the path into parts (e.g., "buttons" -> ["buttons"], "forms/input" -> ["forms", "input"])
|
|
3552
|
+
const fileName = pathToUse.replace(/\\.css$/, '');
|
|
3045
3553
|
const parts = fileName.split('/').filter(Boolean);
|
|
3046
3554
|
|
|
3047
3555
|
// Navigate/create the tree structure
|
|
@@ -3073,6 +3581,24 @@ function buildCompositionsTree(compositions) {
|
|
|
3073
3581
|
return root;
|
|
3074
3582
|
}
|
|
3075
3583
|
|
|
3584
|
+
/**
|
|
3585
|
+
* Check if a folder node contains any compositions with drafts (recursively)
|
|
3586
|
+
*/
|
|
3587
|
+
function folderContainsDrafts(node) {
|
|
3588
|
+
// Check if any compositions in this node have drafts
|
|
3589
|
+
if (node.compositions && node.compositions.length > 0) {
|
|
3590
|
+
const hasDraftInCompositions = node.compositions.some(comp => drafts.has(comp.id));
|
|
3591
|
+
if (hasDraftInCompositions) return true;
|
|
3592
|
+
}
|
|
3593
|
+
|
|
3594
|
+
// Check children recursively
|
|
3595
|
+
if (node.children && node.children.length > 0) {
|
|
3596
|
+
return node.children.some(child => folderContainsDrafts(child));
|
|
3597
|
+
}
|
|
3598
|
+
|
|
3599
|
+
return false;
|
|
3600
|
+
}
|
|
3601
|
+
|
|
3076
3602
|
/**
|
|
3077
3603
|
* Render compositions tree node recursively (similar pattern to renderTokenNode)
|
|
3078
3604
|
*/
|
|
@@ -3107,11 +3633,16 @@ function renderCompositionsNode(node, level = 0, parentPath = '') {
|
|
|
3107
3633
|
const fullPath = child.path || child.name;
|
|
3108
3634
|
|
|
3109
3635
|
if (hasChildren) {
|
|
3636
|
+
// Check if this folder contains any drafts
|
|
3637
|
+
const containsDrafts = folderContainsDrafts(child);
|
|
3638
|
+
const folderIcon = containsDrafts ? '\uD83D\uDCC1' : '\uD83D\uDCC1';
|
|
3639
|
+
const folderColor = containsDrafts ? ' style="color: #ff9800;"' : '';
|
|
3640
|
+
|
|
3110
3641
|
// Render as folder with toggle
|
|
3111
3642
|
html += \`<div class="tree-node" data-level="\${level}" data-path="\${fullPath}" data-folder-path="\${fullPath}">\`;
|
|
3112
|
-
html += \`<div class="tree-item folder" onclick="
|
|
3643
|
+
html += \`<div class="tree-item folder"\${folderColor} onclick="selectCompositionFolder(event, '\${fullPath}')">\`;
|
|
3113
3644
|
html += \`<span class="tree-toggle" onclick="toggleTreeNode(event, '\${nodeId}')">▼</span>\`;
|
|
3114
|
-
html +=
|
|
3645
|
+
html += \`\${folderIcon} \${child.name}\`;
|
|
3115
3646
|
if (hasCompositions) {
|
|
3116
3647
|
html += \` <span style="color: #999; font-size: 11px;">(\${child.compositions.length})</span>\`;
|
|
3117
3648
|
}
|
|
@@ -3144,17 +3675,19 @@ function renderCompositionsNode(node, level = 0, parentPath = '') {
|
|
|
3144
3675
|
*/
|
|
3145
3676
|
function renderCompositionLeaf(comp, level, uniqueId, isWarning = false) {
|
|
3146
3677
|
const isSelected = selectedComposition?.id === comp.id;
|
|
3678
|
+
const hasDraft = drafts.has(comp.id);
|
|
3147
3679
|
|
|
3148
3680
|
let html = \`<div class="tree-node" data-level="\${level}" data-comp-id="\${comp.id}">\`;
|
|
3149
|
-
html += \`<div class="tree-item \${isSelected ? 'selected' : ''}" onclick="selectComposition('\${comp.id}')">\`;
|
|
3681
|
+
html += \`<div class="tree-item \${isSelected ? 'selected' : ''} \${hasDraft ? 'has-draft' : ''}" onclick="selectComposition('\${comp.id}')" style="display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding-left: 24px;">\`;
|
|
3150
3682
|
html += \`<span style="width: 16px; display: inline-block;"></span>\`; // Spacer
|
|
3151
3683
|
|
|
3684
|
+
html += \`<div style="display: flex; align-items: center; gap: 4px;">\`;
|
|
3152
3685
|
if (isWarning) {
|
|
3153
3686
|
html += \`⚠️ \`;
|
|
3154
3687
|
}
|
|
3155
|
-
|
|
3156
|
-
html +=
|
|
3157
|
-
html +=
|
|
3688
|
+
html += \`<span>\${comp.name}</span>\`;
|
|
3689
|
+
html += \`</div>\`;
|
|
3690
|
+
html += \`<span style="color: #999; font-size: 11px;">\${comp.selector}</span>\`;
|
|
3158
3691
|
html += \`</div></div>\`;
|
|
3159
3692
|
|
|
3160
3693
|
return html;
|
|
@@ -3169,11 +3702,398 @@ function collapseAllCompositions() {
|
|
|
3169
3702
|
collapseAllNodes('#compositions-list');
|
|
3170
3703
|
}
|
|
3171
3704
|
|
|
3705
|
+
/**
|
|
3706
|
+
* Expand tree path to show the selected composition
|
|
3707
|
+
*/
|
|
3708
|
+
function expandPathToComposition(comp) {
|
|
3709
|
+
if (!comp || !comp.id) return;
|
|
3710
|
+
|
|
3711
|
+
// Find the tree node containing this composition
|
|
3712
|
+
const compNode = document.querySelector(\`#compositions-list [data-comp-id="\${comp.id}"]\`);
|
|
3713
|
+
if (!compNode) return;
|
|
3714
|
+
|
|
3715
|
+
// Walk up the tree and expand all parent nodes
|
|
3716
|
+
let currentElement = compNode.parentElement;
|
|
3717
|
+
while (currentElement && currentElement.id !== 'compositions-list') {
|
|
3718
|
+
if (currentElement.classList.contains('tree-children') && currentElement.id) {
|
|
3719
|
+
// Remove collapsed class to expand this node
|
|
3720
|
+
currentElement.classList.remove('collapsed');
|
|
3721
|
+
|
|
3722
|
+
// Also remove collapsed class from the toggle
|
|
3723
|
+
const toggle = document.querySelector(\`#compositions-list .tree-toggle[onclick*="\${currentElement.id}"]\`);
|
|
3724
|
+
if (toggle) {
|
|
3725
|
+
toggle.classList.remove('collapsed');
|
|
3726
|
+
}
|
|
3727
|
+
}
|
|
3728
|
+
currentElement = currentElement.parentElement;
|
|
3729
|
+
}
|
|
3730
|
+
|
|
3731
|
+
// Save the updated state to localStorage
|
|
3732
|
+
saveCompositionsTreeState();
|
|
3733
|
+
}
|
|
3734
|
+
|
|
3735
|
+
// ==================== DRAFT MANAGEMENT ====================
|
|
3736
|
+
|
|
3737
|
+
/**
|
|
3738
|
+
* Save current form state as draft if there are unsaved changes
|
|
3739
|
+
*/
|
|
3740
|
+
function saveDraftIfNeeded() {
|
|
3741
|
+
if (!selectedComposition) return;
|
|
3742
|
+
|
|
3743
|
+
// Get form data using actual element IDs
|
|
3744
|
+
const nameInput = document.getElementById('comp-name');
|
|
3745
|
+
const selectorInput = document.getElementById('comp-selector');
|
|
3746
|
+
const fileNameInput = document.getElementById('comp-filename');
|
|
3747
|
+
const platformSelect = document.getElementById('comp-platform');
|
|
3748
|
+
|
|
3749
|
+
if (!nameInput || !selectorInput) return;
|
|
3750
|
+
|
|
3751
|
+
// Collect properties
|
|
3752
|
+
const properties = [];
|
|
3753
|
+
const propertyBody = document.getElementById('comp-properties-body');
|
|
3754
|
+
if (propertyBody) {
|
|
3755
|
+
const propertyRows = propertyBody.querySelectorAll('tr');
|
|
3756
|
+
propertyRows.forEach(row => {
|
|
3757
|
+
const propInput = row.querySelector('.comp-prop-name');
|
|
3758
|
+
const tokenInput = row.querySelector('.comp-prop-token');
|
|
3759
|
+
if (propInput && tokenInput && propInput.value && tokenInput.value) {
|
|
3760
|
+
properties.push({
|
|
3761
|
+
property: propInput.value,
|
|
3762
|
+
token: tokenInput.value
|
|
3763
|
+
});
|
|
3764
|
+
}
|
|
3765
|
+
});
|
|
3766
|
+
}
|
|
3767
|
+
|
|
3768
|
+
// Collect group properties
|
|
3769
|
+
const groupProperties = {};
|
|
3770
|
+
const mediaQueryInput = document.getElementById('comp-media-query');
|
|
3771
|
+
const parentSelectorInput = document.getElementById('comp-parent-selector');
|
|
3772
|
+
const containerQueryInput = document.getElementById('comp-container-query');
|
|
3773
|
+
const customAtRuleInput = document.getElementById('comp-custom-atrule');
|
|
3774
|
+
|
|
3775
|
+
if (mediaQueryInput?.value) groupProperties.mediaQuery = mediaQueryInput.value;
|
|
3776
|
+
if (parentSelectorInput?.value) groupProperties.parentSelector = parentSelectorInput.value;
|
|
3777
|
+
if (containerQueryInput?.value) groupProperties.containerQuery = containerQueryInput.value;
|
|
3778
|
+
if (customAtRuleInput?.value) groupProperties.customAtRule = customAtRuleInput.value;
|
|
3779
|
+
|
|
3780
|
+
// Create draft object
|
|
3781
|
+
const draft = {
|
|
3782
|
+
name: nameInput.value,
|
|
3783
|
+
selector: selectorInput.value,
|
|
3784
|
+
fileName: fileNameInput?.value || '',
|
|
3785
|
+
platform: platformSelect?.value || 'css',
|
|
3786
|
+
properties,
|
|
3787
|
+
groupProperties: Object.keys(groupProperties).length > 0 ? groupProperties : undefined
|
|
3788
|
+
};
|
|
3789
|
+
|
|
3790
|
+
// Check if draft is different from original
|
|
3791
|
+
const original = compositions.find(c => c.id === selectedComposition.id);
|
|
3792
|
+
if (original && isDraftDifferent(draft, original)) {
|
|
3793
|
+
drafts.set(selectedComposition.id, draft);
|
|
3794
|
+
} else {
|
|
3795
|
+
// No changes, remove draft if exists
|
|
3796
|
+
drafts.delete(selectedComposition.id);
|
|
3797
|
+
}
|
|
3798
|
+
|
|
3799
|
+
// Update just the draft indicator for this specific item without re-rendering entire tree
|
|
3800
|
+
updateCompositionDraftIndicator(selectedComposition.id);
|
|
3801
|
+
}
|
|
3802
|
+
|
|
3803
|
+
/**
|
|
3804
|
+
* Update the draft indicator for a specific composition without re-rendering the tree
|
|
3805
|
+
*/
|
|
3806
|
+
function updateCompositionDraftIndicator(compositionId) {
|
|
3807
|
+
// Find the tree item for this composition
|
|
3808
|
+
const treeNode = document.querySelector(\`#compositions-list .tree-node[data-comp-id="\${compositionId}"]\`);
|
|
3809
|
+
if (treeNode) {
|
|
3810
|
+
const treeItem = treeNode.querySelector('.tree-item');
|
|
3811
|
+
if (treeItem) {
|
|
3812
|
+
const hasDraft = drafts.has(compositionId);
|
|
3813
|
+
if (hasDraft) {
|
|
3814
|
+
treeItem.classList.add('has-draft');
|
|
3815
|
+
} else {
|
|
3816
|
+
treeItem.classList.remove('has-draft');
|
|
3817
|
+
}
|
|
3818
|
+
}
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3821
|
+
// Update parent folder colors by re-rendering while preserving expand/collapse state
|
|
3822
|
+
updateFolderDraftIndicators();
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
/**
|
|
3826
|
+
* Update folder colors to show which folders contain drafts
|
|
3827
|
+
*/
|
|
3828
|
+
function updateFolderDraftIndicators() {
|
|
3829
|
+
// Save current expanded state (folders that are NOT collapsed)
|
|
3830
|
+
const expandedFolders = [];
|
|
3831
|
+
document.querySelectorAll('#compositions-list .tree-children').forEach(treeChildren => {
|
|
3832
|
+
if (treeChildren.id && !treeChildren.classList.contains('collapsed')) {
|
|
3833
|
+
expandedFolders.push(treeChildren.id);
|
|
3834
|
+
}
|
|
3835
|
+
});
|
|
3836
|
+
|
|
3837
|
+
// Re-render the tree
|
|
3838
|
+
const tree = buildCompositionsTree(compositions);
|
|
3839
|
+
const container = document.getElementById('compositions-list');
|
|
3840
|
+
container.innerHTML = renderCompositionsNode(tree);
|
|
3841
|
+
|
|
3842
|
+
// Collapse all first (default state)
|
|
3843
|
+
collapseAllCompositions();
|
|
3844
|
+
|
|
3845
|
+
// Then expand only the folders that were previously expanded
|
|
3846
|
+
expandedFolders.forEach(folderId => {
|
|
3847
|
+
const folder = document.getElementById(folderId);
|
|
3848
|
+
if (folder) {
|
|
3849
|
+
folder.classList.remove('collapsed');
|
|
3850
|
+
// Also update the toggle arrow
|
|
3851
|
+
const parentTreeNode = folder.parentElement;
|
|
3852
|
+
if (parentTreeNode) {
|
|
3853
|
+
const toggle = parentTreeNode.querySelector('.tree-toggle');
|
|
3854
|
+
if (toggle) {
|
|
3855
|
+
toggle.classList.remove('collapsed');
|
|
3856
|
+
}
|
|
3857
|
+
}
|
|
3858
|
+
}
|
|
3859
|
+
});
|
|
3860
|
+
|
|
3861
|
+
// Save the state to localStorage
|
|
3862
|
+
saveCompositionsTreeState();
|
|
3863
|
+
}
|
|
3864
|
+
|
|
3865
|
+
/**
|
|
3866
|
+
* Check if draft data is different from original composition
|
|
3867
|
+
*/
|
|
3868
|
+
function isDraftDifferent(draft, original) {
|
|
3869
|
+
if (draft.name !== original.name) return true;
|
|
3870
|
+
if (draft.selector !== original.selector) return true;
|
|
3871
|
+
if ((draft.fileName || '') !== (original.fileName || '')) return true;
|
|
3872
|
+
if (draft.platform !== original.platform) return true;
|
|
3873
|
+
|
|
3874
|
+
// Compare properties
|
|
3875
|
+
if (draft.properties.length !== original.properties.length) return true;
|
|
3876
|
+
for (let i = 0; i < draft.properties.length; i++) {
|
|
3877
|
+
if (draft.properties[i].property !== original.properties[i].property) return true;
|
|
3878
|
+
if (draft.properties[i].token !== original.properties[i].token) return true;
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
// Compare group properties
|
|
3882
|
+
const draftGroupProps = draft.groupProperties || {};
|
|
3883
|
+
const originalGroupProps = original.groupProperties || {};
|
|
3884
|
+
|
|
3885
|
+
if ((draftGroupProps.mediaQuery || '') !== (originalGroupProps.mediaQuery || '')) return true;
|
|
3886
|
+
if ((draftGroupProps.parentSelector || '') !== (originalGroupProps.parentSelector || '')) return true;
|
|
3887
|
+
if ((draftGroupProps.containerQuery || '') !== (originalGroupProps.containerQuery || '')) return true;
|
|
3888
|
+
if ((draftGroupProps.customAtRule || '') !== (originalGroupProps.customAtRule || '')) return true;
|
|
3889
|
+
|
|
3890
|
+
return false;
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
/**
|
|
3894
|
+
* Load draft data into form if exists
|
|
3895
|
+
*/
|
|
3896
|
+
function loadDraftIfExists(compositionId) {
|
|
3897
|
+
const draft = drafts.get(compositionId);
|
|
3898
|
+
if (!draft) return false;
|
|
3899
|
+
|
|
3900
|
+
// Draft exists, populate form with draft data instead of original
|
|
3901
|
+
// This will be handled by showEditCompositionForm by checking drafts
|
|
3902
|
+
return true;
|
|
3903
|
+
}
|
|
3904
|
+
|
|
3905
|
+
/**
|
|
3906
|
+
* Clear draft for a composition (after successful save)
|
|
3907
|
+
*/
|
|
3908
|
+
function clearDraft(compositionId) {
|
|
3909
|
+
drafts.delete(compositionId);
|
|
3910
|
+
updateCompositionDraftIndicator(compositionId); // Update just the draft indicator
|
|
3911
|
+
}
|
|
3912
|
+
|
|
3913
|
+
// ==================== TOKEN DRAFT MANAGEMENT ====================
|
|
3914
|
+
|
|
3915
|
+
/**
|
|
3916
|
+
* Save current token form state as draft if there are unsaved changes
|
|
3917
|
+
*/
|
|
3918
|
+
function saveTokenDraftIfNeeded() {
|
|
3919
|
+
// Get form data using actual element IDs
|
|
3920
|
+
const pathInput = document.getElementById('token-path');
|
|
3921
|
+
const typeSelect = document.getElementById('token-type');
|
|
3922
|
+
const descriptionInput = document.getElementById('token-description');
|
|
3923
|
+
const fileSelect = document.getElementById('token-file');
|
|
3924
|
+
|
|
3925
|
+
if (!pathInput || !typeSelect) return;
|
|
3926
|
+
|
|
3927
|
+
// Get the path to save draft under - either from selectedToken or from the form input
|
|
3928
|
+
const draftPath = selectedToken?.path || pathInput.value.trim();
|
|
3929
|
+
|
|
3930
|
+
// Don't save draft if path is empty
|
|
3931
|
+
if (!draftPath) return;
|
|
3932
|
+
|
|
3933
|
+
// Get value based on type
|
|
3934
|
+
let value;
|
|
3935
|
+
const type = typeSelect.value;
|
|
3936
|
+
if (type === 'composition') {
|
|
3937
|
+
value = collectCompositionValue('token-value');
|
|
3938
|
+
} else {
|
|
3939
|
+
const valueInput = document.getElementById('token-value');
|
|
3940
|
+
value = valueInput ? valueInput.value : undefined;
|
|
3941
|
+
}
|
|
3942
|
+
|
|
3943
|
+
// Collect mode values
|
|
3944
|
+
const modes = {};
|
|
3945
|
+
for (const modeKey of Object.keys(availableModes)) {
|
|
3946
|
+
if (modeKey === 'default') continue;
|
|
3947
|
+
|
|
3948
|
+
const modeLabel = availableModes[modeKey];
|
|
3949
|
+
if (type === 'composition') {
|
|
3950
|
+
const collectedValue = collectCompositionValue(\`mode-\${modeKey}\`);
|
|
3951
|
+
if (collectedValue && Object.keys(collectedValue).length > 0) {
|
|
3952
|
+
modes[modeLabel] = collectedValue;
|
|
3953
|
+
}
|
|
3954
|
+
} else {
|
|
3955
|
+
const input = document.getElementById(\`mode-\${modeKey}\`);
|
|
3956
|
+
if (input && input.value) {
|
|
3957
|
+
modes[modeLabel] = input.value;
|
|
3958
|
+
}
|
|
3959
|
+
}
|
|
3960
|
+
}
|
|
3961
|
+
|
|
3962
|
+
// Create draft object
|
|
3963
|
+
const draft = {
|
|
3964
|
+
path: pathInput.value,
|
|
3965
|
+
type: type,
|
|
3966
|
+
value: value,
|
|
3967
|
+
description: descriptionInput ? descriptionInput.value : '',
|
|
3968
|
+
filePath: fileSelect ? fileSelect.value : (selectedToken?.filePath || fileSelect?.value),
|
|
3969
|
+
modes: Object.keys(modes).length > 0 ? modes : undefined
|
|
3970
|
+
};
|
|
3971
|
+
|
|
3972
|
+
// For add mode (no selectedToken), only save draft if user has entered some data
|
|
3973
|
+
if (!selectedToken) {
|
|
3974
|
+
// Check if any meaningful data has been entered
|
|
3975
|
+
const hasData = draft.path || draft.value || draft.description ||
|
|
3976
|
+
(draft.modes && Object.keys(draft.modes).length > 0);
|
|
3977
|
+
|
|
3978
|
+
if (hasData && draft.path) {
|
|
3979
|
+
// Validate the path format
|
|
3980
|
+
const pathValidation = validateTokenPath(draft.path);
|
|
3981
|
+
if (pathValidation.valid) {
|
|
3982
|
+
tokenDrafts.set(draftPath, draft);
|
|
3983
|
+
|
|
3984
|
+
// Add temporary token to tree if it doesn't exist yet
|
|
3985
|
+
if (!nodesByPath.has(draftPath)) {
|
|
3986
|
+
addTemporaryTokenToTree(draftPath, draft);
|
|
3987
|
+
}
|
|
3988
|
+
|
|
3989
|
+
updateTokenDraftIndicator(draftPath);
|
|
3990
|
+
}
|
|
3991
|
+
}
|
|
3992
|
+
return;
|
|
3993
|
+
}
|
|
3994
|
+
|
|
3995
|
+
// For edit mode, check if draft is different from original
|
|
3996
|
+
if (isTokenDraftDifferent(draft, selectedToken)) {
|
|
3997
|
+
tokenDrafts.set(draftPath, draft);
|
|
3998
|
+
} else {
|
|
3999
|
+
// No changes, remove draft if exists
|
|
4000
|
+
tokenDrafts.delete(draftPath);
|
|
4001
|
+
}
|
|
4002
|
+
|
|
4003
|
+
// Update just the draft indicator for this specific token without re-rendering entire tree
|
|
4004
|
+
updateTokenDraftIndicator(draftPath);
|
|
4005
|
+
}
|
|
4006
|
+
|
|
4007
|
+
/**
|
|
4008
|
+
* Update the draft indicator for a specific token without re-rendering the tree
|
|
4009
|
+
*/
|
|
4010
|
+
function updateTokenDraftIndicator(tokenPath) {
|
|
4011
|
+
// Find the tree item for this token
|
|
4012
|
+
const treeNode = document.querySelector(\`#token-tree .tree-node[data-path="\${tokenPath}"]\`);
|
|
4013
|
+
if (treeNode) {
|
|
4014
|
+
const treeItem = treeNode.querySelector('.tree-item');
|
|
4015
|
+
if (treeItem) {
|
|
4016
|
+
const hasDraft = tokenDrafts.has(tokenPath);
|
|
4017
|
+
if (hasDraft) {
|
|
4018
|
+
treeItem.classList.add('has-draft');
|
|
4019
|
+
} else {
|
|
4020
|
+
treeItem.classList.remove('has-draft');
|
|
4021
|
+
}
|
|
4022
|
+
}
|
|
4023
|
+
}
|
|
4024
|
+
}
|
|
4025
|
+
|
|
4026
|
+
/**
|
|
4027
|
+
* Check if token draft data is different from original token
|
|
4028
|
+
*/
|
|
4029
|
+
function isTokenDraftDifferent(draft, original) {
|
|
4030
|
+
if (draft.path !== original.path) return true;
|
|
4031
|
+
if (draft.type !== original.type) return true;
|
|
4032
|
+
if ((draft.description || '') !== (original.description || '')) return true;
|
|
4033
|
+
if (draft.filePath !== original.filePath) return true;
|
|
4034
|
+
|
|
4035
|
+
// Compare values (handle different types)
|
|
4036
|
+
if (typeof draft.value === 'object' && typeof original.value === 'object') {
|
|
4037
|
+
if (JSON.stringify(draft.value) !== JSON.stringify(original.value)) return true;
|
|
4038
|
+
} else {
|
|
4039
|
+
if (draft.value !== original.value) return true;
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
// Compare modes
|
|
4043
|
+
const originalModes = original.$extensions?.$mode || {};
|
|
4044
|
+
const draftModes = draft.modes || {};
|
|
4045
|
+
if (JSON.stringify(draftModes) !== JSON.stringify(originalModes)) return true;
|
|
4046
|
+
|
|
4047
|
+
return false;
|
|
4048
|
+
}
|
|
4049
|
+
|
|
4050
|
+
/**
|
|
4051
|
+
* Check if draft exists for a token
|
|
4052
|
+
*/
|
|
4053
|
+
function loadTokenDraftIfExists(tokenPath) {
|
|
4054
|
+
return tokenDrafts.get(tokenPath);
|
|
4055
|
+
}
|
|
4056
|
+
|
|
4057
|
+
/**
|
|
4058
|
+
* Clear draft for a token (after successful save)
|
|
4059
|
+
*/
|
|
4060
|
+
function clearTokenDraft(tokenPath) {
|
|
4061
|
+
tokenDrafts.delete(tokenPath);
|
|
4062
|
+
updateTokenDraftIndicator(tokenPath); // Update just the draft indicator
|
|
4063
|
+
}
|
|
4064
|
+
|
|
3172
4065
|
// Select a composition
|
|
3173
4066
|
function selectComposition(id) {
|
|
4067
|
+
// Save current form state as draft if there are changes
|
|
4068
|
+
saveDraftIfNeeded();
|
|
4069
|
+
|
|
4070
|
+
// Navigate to the composition
|
|
3174
4071
|
navigate(\`/compositions/\${id}\`);
|
|
3175
4072
|
}
|
|
3176
4073
|
|
|
4074
|
+
// Handle clicking on a composition folder to show add form
|
|
4075
|
+
function selectCompositionFolder(event, folderPath) {
|
|
4076
|
+
event.stopPropagation();
|
|
4077
|
+
|
|
4078
|
+
// Save current form state as draft if there are changes
|
|
4079
|
+
saveDraftIfNeeded();
|
|
4080
|
+
|
|
4081
|
+
// Clear selected composition and update URL
|
|
4082
|
+
selectedComposition = null;
|
|
4083
|
+
window.history.pushState({}, '', '#/compositions');
|
|
4084
|
+
|
|
4085
|
+
// Highlight the selected folder
|
|
4086
|
+
document.querySelectorAll('#compositions-list .tree-item').forEach(el => el.classList.remove('selected'));
|
|
4087
|
+
event.currentTarget.classList.add('selected');
|
|
4088
|
+
|
|
4089
|
+
// Derive the file path from the folder path
|
|
4090
|
+
// e.g., "buttons/base" -> "compositions/buttons/base/"
|
|
4091
|
+
const suggestedFile = folderPath ? \`compositions/\${folderPath}/\` : 'compositions/';
|
|
4092
|
+
|
|
4093
|
+
// Show add composition form with the suggested file
|
|
4094
|
+
showAddCompositionForm(suggestedFile);
|
|
4095
|
+
}
|
|
4096
|
+
|
|
3177
4097
|
// Search compositions
|
|
3178
4098
|
function handleCompositionsSearchInput(value) {
|
|
3179
4099
|
searchCompositions(value);
|
|
@@ -3261,47 +4181,91 @@ function searchCompositions(query) {
|
|
|
3261
4181
|
});
|
|
3262
4182
|
}
|
|
3263
4183
|
|
|
3264
|
-
// Show
|
|
3265
|
-
function
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
const folderName = prefillPath ? prefillPath.split('/').pop() : '';
|
|
3270
|
-
const suggestedFileName = prefillPath || '';
|
|
4184
|
+
// Show edit composition form
|
|
4185
|
+
function showEditCompositionForm(composition) {
|
|
4186
|
+
// Check if there's a draft for this composition
|
|
4187
|
+
const draft = drafts.get(composition.id);
|
|
4188
|
+
const dataToShow = draft || composition;
|
|
3271
4189
|
|
|
3272
4190
|
const editorContent = document.getElementById('editor-content');
|
|
3273
4191
|
editorContent.innerHTML = \`
|
|
3274
|
-
<h2>
|
|
3275
|
-
<p style="color: #666; margin-bottom: 20px;">Create a CSS class by mapping tokens to properties</p>
|
|
4192
|
+
<h2>Edit Composition \${draft ? '<span style="color: #ff9800; font-size: 14px;">(Unsaved Changes)</span>' : ''}</h2>
|
|
3276
4193
|
|
|
3277
|
-
\${renderCompositionForm(
|
|
4194
|
+
\${renderCompositionForm(dataToShow, true)}
|
|
3278
4195
|
\`;
|
|
3279
4196
|
|
|
3280
4197
|
// Initialize autocomplete on existing property inputs
|
|
3281
4198
|
initializeCompositionAutocomplete();
|
|
3282
4199
|
|
|
3283
|
-
//
|
|
3284
|
-
|
|
4200
|
+
// Auto-update preview on load
|
|
4201
|
+
setTimeout(() => {
|
|
4202
|
+
updateCompositionPreview();
|
|
4203
|
+
}, 100);
|
|
4204
|
+
|
|
4205
|
+
// Add change detection to mark as draft while editing and update preview
|
|
4206
|
+
// Reuse the editorContent variable declared above
|
|
4207
|
+
// Debounce the draft save to avoid too many re-renders
|
|
4208
|
+
let debounceTimer;
|
|
4209
|
+
let previewTimer;
|
|
4210
|
+
editorContent.addEventListener('input', () => {
|
|
4211
|
+
clearTimeout(debounceTimer);
|
|
4212
|
+
debounceTimer = setTimeout(() => {
|
|
4213
|
+
saveDraftIfNeeded();
|
|
4214
|
+
}, 500); // Wait 500ms after user stops typing
|
|
4215
|
+
|
|
4216
|
+
// Update preview with shorter debounce
|
|
4217
|
+
clearTimeout(previewTimer);
|
|
4218
|
+
previewTimer = setTimeout(() => {
|
|
4219
|
+
updateCompositionPreview();
|
|
4220
|
+
}, 300);
|
|
4221
|
+
});
|
|
4222
|
+
editorContent.addEventListener('change', () => {
|
|
4223
|
+
updateCompositionPreview();
|
|
4224
|
+
});
|
|
3285
4225
|
}
|
|
3286
4226
|
|
|
3287
|
-
//
|
|
3288
|
-
function
|
|
4227
|
+
// Initialize autocomplete on all composition property token inputs
|
|
4228
|
+
function initializeCompositionAutocomplete() {
|
|
4229
|
+
const tokenInputs = document.querySelectorAll('.comp-prop-token');
|
|
4230
|
+
tokenInputs.forEach(input => {
|
|
4231
|
+
setupAutocomplete(input);
|
|
4232
|
+
});
|
|
4233
|
+
}
|
|
4234
|
+
|
|
4235
|
+
// Show add composition form with pre-filled file path
|
|
4236
|
+
function showAddCompositionForm(suggestedFile = '') {
|
|
4237
|
+
// Clear selected composition since we're adding a new one
|
|
4238
|
+
selectedComposition = null;
|
|
4239
|
+
|
|
3289
4240
|
const editorContent = document.getElementById('editor-content');
|
|
4241
|
+
const targetFile = suggestedFile || compositionFiles[0] || '';
|
|
4242
|
+
|
|
3290
4243
|
editorContent.innerHTML = \`
|
|
3291
|
-
<h2>
|
|
4244
|
+
<h2>Add New Composition</h2>
|
|
3292
4245
|
|
|
3293
|
-
\${renderCompositionForm(
|
|
4246
|
+
\${renderCompositionForm({
|
|
4247
|
+
name: '',
|
|
4248
|
+
selector: '',
|
|
4249
|
+
fileName: '',
|
|
4250
|
+
properties: [],
|
|
4251
|
+
$sourceFile: targetFile
|
|
4252
|
+
}, false)}
|
|
3294
4253
|
\`;
|
|
3295
4254
|
|
|
3296
4255
|
// Initialize autocomplete on existing property inputs
|
|
3297
4256
|
initializeCompositionAutocomplete();
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
4257
|
+
|
|
4258
|
+
// Auto-update preview on load and on input changes
|
|
4259
|
+
setTimeout(() => {
|
|
4260
|
+
updateCompositionPreview();
|
|
4261
|
+
}, 100);
|
|
4262
|
+
|
|
4263
|
+
// Add input listeners to auto-update preview
|
|
4264
|
+
editorContent.addEventListener('input', () => {
|
|
4265
|
+
updateCompositionPreview();
|
|
4266
|
+
});
|
|
4267
|
+
editorContent.addEventListener('change', () => {
|
|
4268
|
+
updateCompositionPreview();
|
|
3305
4269
|
});
|
|
3306
4270
|
}
|
|
3307
4271
|
|
|
@@ -3340,7 +4304,7 @@ function renderCompositionForm(composition, isEditMode = false) {
|
|
|
3340
4304
|
<input type="text"
|
|
3341
4305
|
id="comp-target-file"
|
|
3342
4306
|
list="comp-file-suggestions"
|
|
3343
|
-
value="\${
|
|
4307
|
+
value="\${composition.$sourceFile || compositionFiles[0] || ''}"
|
|
3344
4308
|
placeholder="e.g., compositions.json or compositions/buttons.json"
|
|
3345
4309
|
style="width: 100%; padding: 8px; font-family: monospace;">
|
|
3346
4310
|
<datalist id="comp-file-suggestions">
|
|
@@ -3466,10 +4430,16 @@ function renderCompositionForm(composition, isEditMode = false) {
|
|
|
3466
4430
|
<div id="composition-preview" style="background: #f9f9f9; border: 1px solid #ddd;
|
|
3467
4431
|
padding: 15px; border-radius: 4px; font-family: monospace; font-size: 13px;
|
|
3468
4432
|
white-space: pre; overflow-x: auto;"></div>
|
|
3469
|
-
<
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
4433
|
+
<div style="display: flex; gap: 10px; margin-top: 10px;">
|
|
4434
|
+
<button onclick="updateCompositionPreview()"
|
|
4435
|
+
style="background: #666;">
|
|
4436
|
+
\uD83D\uDD04 Refresh Preview
|
|
4437
|
+
</button>
|
|
4438
|
+
<button onclick="copyPreviewToClipboard(event)"
|
|
4439
|
+
style="background: #666;">
|
|
4440
|
+
\uD83D\uDCCB Copy Preview
|
|
4441
|
+
</button>
|
|
4442
|
+
</div>
|
|
3473
4443
|
</div>
|
|
3474
4444
|
|
|
3475
4445
|
<div style="display: flex; gap: 10px; margin-top: 30px;">
|
|
@@ -3518,6 +4488,9 @@ function addCompositionProperty() {
|
|
|
3518
4488
|
// Setup autocomplete for the new token input
|
|
3519
4489
|
const tokenInput = row.querySelector('.comp-prop-token');
|
|
3520
4490
|
setupAutocomplete(tokenInput);
|
|
4491
|
+
|
|
4492
|
+
// Update preview after adding property
|
|
4493
|
+
updateCompositionPreview();
|
|
3521
4494
|
}
|
|
3522
4495
|
|
|
3523
4496
|
// Remove a property row
|
|
@@ -3525,6 +4498,8 @@ function removeCompositionProperty(idx) {
|
|
|
3525
4498
|
const row = document.querySelector(\`tr[data-prop-idx="\${idx}"]\`);
|
|
3526
4499
|
if (row) {
|
|
3527
4500
|
row.remove();
|
|
4501
|
+
// Update preview after removing property
|
|
4502
|
+
updateCompositionPreview();
|
|
3528
4503
|
}
|
|
3529
4504
|
}
|
|
3530
4505
|
|
|
@@ -3594,6 +4569,127 @@ async function updateCompositionPreview() {
|
|
|
3594
4569
|
}
|
|
3595
4570
|
}
|
|
3596
4571
|
|
|
4572
|
+
// Copy preview content to clipboard
|
|
4573
|
+
async function copyPreviewToClipboard(event) {
|
|
4574
|
+
const preview = document.getElementById('composition-preview');
|
|
4575
|
+
const content = (preview.textContent || '').trim();
|
|
4576
|
+
|
|
4577
|
+
if (!content || content === '/* Add properties to see preview */') {
|
|
4578
|
+
alert('No preview content to copy');
|
|
4579
|
+
return;
|
|
4580
|
+
}
|
|
4581
|
+
|
|
4582
|
+
try {
|
|
4583
|
+
await navigator.clipboard.writeText(content);
|
|
4584
|
+
|
|
4585
|
+
// Visual feedback
|
|
4586
|
+
const button = event.target;
|
|
4587
|
+
const originalText = button.textContent;
|
|
4588
|
+
button.textContent = '✅ Copied!';
|
|
4589
|
+
button.style.background = '#4CAF50';
|
|
4590
|
+
|
|
4591
|
+
setTimeout(() => {
|
|
4592
|
+
button.textContent = originalText;
|
|
4593
|
+
button.style.background = '#666';
|
|
4594
|
+
}, 2000);
|
|
4595
|
+
} catch (error) {
|
|
4596
|
+
alert('Failed to copy to clipboard: ' + error.message);
|
|
4597
|
+
}
|
|
4598
|
+
}
|
|
4599
|
+
|
|
4600
|
+
// Update token preview
|
|
4601
|
+
async function updateTokenPreview() {
|
|
4602
|
+
const preview = document.getElementById('token-preview');
|
|
4603
|
+
if (!preview) return;
|
|
4604
|
+
|
|
4605
|
+
const path = document.getElementById('token-path')?.value?.trim();
|
|
4606
|
+
const type = document.getElementById('token-type')?.value;
|
|
4607
|
+
const value = document.getElementById('token-value')?.value?.trim();
|
|
4608
|
+
|
|
4609
|
+
if (!path || !value) {
|
|
4610
|
+
preview.textContent = '/* Add path and value to see preview */';
|
|
4611
|
+
return;
|
|
4612
|
+
}
|
|
4613
|
+
|
|
4614
|
+
// Collect mode values
|
|
4615
|
+
const modes = { default: value };
|
|
4616
|
+
Object.keys(availableModes).forEach(modeKey => {
|
|
4617
|
+
if (modeKey !== 'default') {
|
|
4618
|
+
const modeInput = document.getElementById(\`mode-\${modeKey}\`);
|
|
4619
|
+
if (modeInput && modeInput.value.trim()) {
|
|
4620
|
+
modes[modeKey] = modeInput.value.trim();
|
|
4621
|
+
}
|
|
4622
|
+
}
|
|
4623
|
+
});
|
|
4624
|
+
|
|
4625
|
+
try {
|
|
4626
|
+
const response = await fetch(\`\${API_BASE}/api/tokens/preview\`, {
|
|
4627
|
+
method: 'POST',
|
|
4628
|
+
headers: { 'Content-Type': 'application/json' },
|
|
4629
|
+
body: JSON.stringify({ path, type, value, modes })
|
|
4630
|
+
});
|
|
4631
|
+
|
|
4632
|
+
const result = await response.json();
|
|
4633
|
+
const previewText = result.preview || '/* Error generating preview */';
|
|
4634
|
+
|
|
4635
|
+
// For color tokens, add color swatches
|
|
4636
|
+
if (type === 'color') {
|
|
4637
|
+
const lines = previewText.split('\\n');
|
|
4638
|
+
const htmlLines = lines.map(line => {
|
|
4639
|
+
// Extract any color value from the line - match everything after the colon until semicolon
|
|
4640
|
+
const valueMatch = line.match(/:\\s*([^;]+)/);
|
|
4641
|
+
if (valueMatch) {
|
|
4642
|
+
const colorValue = valueMatch[1].trim();
|
|
4643
|
+
// Use colorjs.io to validate and convert any color format to hex
|
|
4644
|
+
if (isValidColor(colorValue)) {
|
|
4645
|
+
const hexColor = colorToHex(colorValue);
|
|
4646
|
+
if (hexColor) {
|
|
4647
|
+
return \`<div style="display: flex; align-items: center; gap: 8px;">
|
|
4648
|
+
<span style="display: inline-block; width: 24px; height: 24px; border: 1px solid #ccc; border-radius: 4px; background-color: \${hexColor};"></span>
|
|
4649
|
+
<span>\${line}</span>
|
|
4650
|
+
</div>\`;
|
|
4651
|
+
}
|
|
4652
|
+
}
|
|
4653
|
+
}
|
|
4654
|
+
return \`<div>\${line}</div>\`;
|
|
4655
|
+
});
|
|
4656
|
+
preview.innerHTML = htmlLines.join('');
|
|
4657
|
+
} else {
|
|
4658
|
+
preview.textContent = previewText;
|
|
4659
|
+
}
|
|
4660
|
+
} catch (error) {
|
|
4661
|
+
preview.textContent = '/* Error: ' + error.message + ' */';
|
|
4662
|
+
}
|
|
4663
|
+
}
|
|
4664
|
+
|
|
4665
|
+
// Copy token preview to clipboard
|
|
4666
|
+
async function copyTokenPreview(event) {
|
|
4667
|
+
const preview = document.getElementById('token-preview');
|
|
4668
|
+
const content = (preview.textContent || preview.innerText || '').trim();
|
|
4669
|
+
|
|
4670
|
+
if (!content || content === '/* Add path and value to see preview */') {
|
|
4671
|
+
alert('No preview content to copy');
|
|
4672
|
+
return;
|
|
4673
|
+
}
|
|
4674
|
+
|
|
4675
|
+
try {
|
|
4676
|
+
await navigator.clipboard.writeText(content);
|
|
4677
|
+
|
|
4678
|
+
// Visual feedback
|
|
4679
|
+
const button = event.target;
|
|
4680
|
+
const originalText = button.textContent;
|
|
4681
|
+
button.textContent = '✅ Copied!';
|
|
4682
|
+
button.style.background = '#4CAF50';
|
|
4683
|
+
|
|
4684
|
+
setTimeout(() => {
|
|
4685
|
+
button.textContent = originalText;
|
|
4686
|
+
button.style.background = '#666';
|
|
4687
|
+
}, 2000);
|
|
4688
|
+
} catch (error) {
|
|
4689
|
+
alert('Failed to copy to clipboard: ' + error.message);
|
|
4690
|
+
}
|
|
4691
|
+
}
|
|
4692
|
+
|
|
3597
4693
|
// Save composition
|
|
3598
4694
|
async function saveComposition(isUpdate) {
|
|
3599
4695
|
const data = collectCompositionData();
|
|
@@ -3632,6 +4728,11 @@ async function saveComposition(isUpdate) {
|
|
|
3632
4728
|
if (response.ok) {
|
|
3633
4729
|
const result = await response.json();
|
|
3634
4730
|
|
|
4731
|
+
// Clear draft on successful save
|
|
4732
|
+
if (isUpdate && selectedComposition) {
|
|
4733
|
+
clearDraft(selectedComposition.id);
|
|
4734
|
+
}
|
|
4735
|
+
|
|
3635
4736
|
// Navigate to the composition in edit mode (no success alert)
|
|
3636
4737
|
const compositionId = isUpdate ? selectedComposition.id : (result.composition?.id || result.id || data.id);
|
|
3637
4738
|
navigate(\`/compositions/\${compositionId}\`);
|
|
@@ -3847,23 +4948,25 @@ init();
|
|
|
3847
4948
|
</script>
|
|
3848
4949
|
</body>
|
|
3849
4950
|
</html>
|
|
3850
|
-
`,
|
|
3851
|
-
\uD83D\uDCDD POST /api/compositions/add received:`),console.log(" Body:",JSON.stringify(H,null,2));let{name:G,selector:z,platform:O,fileName:
|
|
3852
|
-
Created composition:`),console.log(" ",JSON.stringify(S,null,2));if(
|
|
3853
|
-
\uD83D\uDCDD Updating composition ${G}`),console.log(` Source file (relative): ${S}`),console.log(` Source file (absolute): ${
|
|
3854
|
-
\uD83D\uDDD1️ Deleting composition ${G}`),console.log(` Source file (relative): ${
|
|
3855
|
-
`,
|
|
3856
|
-
`,
|
|
3857
|
-
`,
|
|
3858
|
-
`,
|
|
3859
|
-
`;for(let S of z){let
|
|
3860
|
-
`;else D+=`${
|
|
3861
|
-
`}
|
|
3862
|
-
|
|
3863
|
-
${
|
|
3864
|
-
${
|
|
3865
|
-
${
|
|
3866
|
-
`)
|
|
4951
|
+
`,nZ,aZ,R0,g_,V0,h_,hN,_0,P5,j8,c_;var lJ=f0(async()=>{pZ();W6();y1();nZ=parseInt(process.env.EDITOR_PORT||"3002",10),aZ=process.env.EDITOR_CONFIG_PATH||U0(process.cwd(),"designid.config.ts"),R0=process.env.EDITOR_VERBOSE==="true",g_=await import(aZ),V0=g_.default,h_=U0(oZ(new URL(import.meta.url).pathname),".."),hN=U0(h_,"public"),_0=U0(process.cwd(),V0.$paths.baseDir),P5=U0(_0,V0.$paths.tokensDir);if(V0.$paths.compositionsDir){let Q=U0(_0,V0.$paths.compositionsDir);if(V0.$paths.compositionsDir.endsWith(".json"))j8=Q;else j8=U0(Q,"compositions.json")}else j8=U0(_0,"compositions.json");if(R0)console.log("Editor configuration:"),console.log(` Port: ${nZ}`),console.log(` Config: ${aZ}`),console.log(` Tokens: ${P5}`),console.log(` Compositions: ${j8}`);c_=v_(async(Q,q)=>{let X=new URL(Q.url||"/",`http://${Q.headers.host||"localhost"}`),$={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};if(Q.method==="OPTIONS"){q.writeHead(200,$),q.end();return}let U=(H,G=200)=>{q.writeHead(G,{...$,"Content-Type":"application/json"}),q.end(JSON.stringify(H))},Y=async()=>{return new Promise((H,G)=>{let z="";Q.on("data",(O)=>z+=O.toString()),Q.on("end",()=>{try{H(JSON.parse(z))}catch(O){G(O)}}),Q.on("error",G)})};try{if(X.pathname==="/api/tokens"&&Q.method==="GET"){try{let H=await K4();U(H)}catch(H){U({error:"Failed to load tokens"},500)}return}if(X.pathname==="/api/config/modes"&&Q.method==="GET"){try{let H=V0.$modes||{};U({modes:H})}catch(H){U({error:"Failed to load modes"},500)}return}if(X.pathname==="/api/tokens/add"&&Q.method==="POST"){try{let H=await Y(),{filePath:G,parentPath:z,tokenData:O}=H,E=U0(P5,G),w=await U8(E,"utf-8"),M=JSON.parse(w),D=z?`${z}.${O.name}`:O.name,F=gJ(D);if(!F.valid){U({error:"Invalid token path",details:F.errors},400);return}let A={$value:O.value};if(O.type)A.$type=O.type;if(O.description)A.$description=O.description;if(O.$extensions)A.$extensions=O.$extensions;hJ(M,D,A),await n8(E,JSON.stringify(M,null,2),"utf-8"),U({success:!0})}catch(H){console.error("Error adding token:",H),U({error:"Failed to add token"},500)}return}if(X.pathname==="/api/tokens/update"&&Q.method==="POST"){try{let H=await Y(),{filePath:G,path:z,type:O,value:E,description:w,$extensions:M}=H,D=gJ(z);if(!D.valid){U({error:"Invalid token path",details:D.errors},400);return}let F=U0(P5,G),A=await U8(F,"utf-8"),S=JSON.parse(A),x={$value:E};if(O)x.$type=O;if(w)x.$description=w;if(M)x.$extensions=M;hJ(S,z,x),await n8(F,JSON.stringify(S,null,2),"utf-8"),U({success:!0})}catch(H){console.error("Error updating token:",H),U({error:"Failed to update token"},500)}return}if(X.pathname==="/api/tokens/delete"&&Q.method==="POST"){try{let H=await Y(),{filePath:G,tokenPath:z}=H,O=U0(P5,G),E=await U8(O,"utf-8"),w=JSON.parse(E);if(!d_(w,z)){U({error:"Token not found"},404);return}await n8(O,JSON.stringify(w,null,2),"utf-8"),U({success:!0})}catch(H){console.error("Error deleting token:",H),U({error:"Failed to delete token"},500)}return}if(X.pathname==="/api/compositions/files"&&Q.method==="GET"){try{let H=[];if(!V0.$paths.compositionsDir){let G=Y8(_0,j8);H.push(G)}else{let G=U0(_0,V0.$paths.compositionsDir);try{let z=await R5(G);if(z.isDirectory()){let O=await rZ(G);for(let M of O)if(M.endsWith(".json")){let D=U0(G,M);H.push(Y8(_0,D))}let E=U0(G,"compositions.json"),w=Y8(_0,E);if(!H.includes(w))H.push(w)}else if(z.isFile()&&G.endsWith(".json"))H.push(Y8(_0,G))}catch(z){let O=U0(G,"compositions.json");H.push(Y8(_0,O))}}U({files:H})}catch(H){console.error("Error listing composition files:",H),U({error:"Failed to list composition files"},500)}return}if(X.pathname==="/api/compositions"&&Q.method==="GET"){try{let H=await l9();U({compositions:H})}catch(H){console.error("Error loading compositions:",H),U({error:"Failed to load compositions"},500)}return}if(X.pathname==="/api/compositions/add"&&Q.method==="POST"){try{let H=await Y();if(R0)console.log(`
|
|
4952
|
+
\uD83D\uDCDD POST /api/compositions/add received:`),console.log(" Body:",JSON.stringify(H,null,2));let{name:G,selector:z,platform:O,fileName:E,properties:w,targetFile:M}=H;if(!G||!z||!w||w.length===0){U({error:"Missing required fields"},400);return}let D=M||Y8(_0,j8),F=U0(_0,D);if(R0)console.log(` Target file (relative): ${D}`),console.log(` Target file (absolute): ${F}`);let A=[];try{let b=await U8(F,"utf-8"),k=JSON.parse(b);A=Array.isArray(k)?k:[k]}catch(b){A=[]}let S={id:`comp-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:G,selector:z,platform:O||"css",fileName:E||void 0,properties:w,...H.groupProperties&&Object.keys(H.groupProperties).length>0?{groupProperties:H.groupProperties}:{}};if(R0)console.log(`
|
|
4953
|
+
Created composition:`),console.log(" ",JSON.stringify(S,null,2));if(A.push(S),await Q4(F),await n8(F,JSON.stringify(A,null,2),"utf-8"),R0)console.log(` Saved to: ${F}`),console.log(` Total compositions in this file: ${A.length}`);let x=await l9();await Z4(x),U({success:!0,composition:S})}catch(H){console.error("Error adding composition:",H),U({error:"Failed to add composition"},500)}return}if(X.pathname==="/api/compositions/update"&&Q.method==="POST"){try{let H=await Y(),{id:G,name:z,selector:O,platform:E,fileName:w,properties:M,targetFile:D}=H;if(!G||!z||!O||!M){U({error:"Missing required fields"},400);return}let A=(await l9()).find((p)=>p.id===G);if(!A){U({error:"Composition not found"},404);return}let S=A.$sourceFile||Y8(_0,j8),x=U0(_0,S),b=D?D.trim():S,k=U0(_0,b),v=x!==k;if(R0){if(console.log(`
|
|
4954
|
+
\uD83D\uDCDD Updating composition ${G}`),console.log(` Source file (relative): ${S}`),console.log(` Source file (absolute): ${x}`),v)console.log(` Target file (relative): ${b}`),console.log(` Target file (absolute): ${k}`),console.log(" \uD83D\uDD04 Moving composition to new file")}let g={id:G,name:z,selector:O,platform:E||"css",fileName:w||void 0,properties:M,...H.groupProperties&&Object.keys(H.groupProperties).length>0?{groupProperties:H.groupProperties}:{}};if(v){let p=[];try{let W0=await U8(x,"utf-8"),X0=JSON.parse(W0);p=Array.isArray(X0)?X0:[X0]}catch(W0){p=[]}if(p=p.filter((W0)=>W0.id!==G),await n8(x,JSON.stringify(p,null,2),"utf-8"),R0)console.log(` ✅ Removed from ${x}`);let q0=[];try{let W0=await U8(k,"utf-8"),X0=JSON.parse(W0);q0=Array.isArray(X0)?X0:[X0]}catch(W0){q0=[]}if(q0.push(g),await Q4(k),await n8(k,JSON.stringify(q0,null,2),"utf-8"),R0)console.log(` ✅ Added to ${k}`)}else{let p=[];try{let W0=await U8(x,"utf-8"),X0=JSON.parse(W0);p=Array.isArray(X0)?X0:[X0]}catch(W0){p=[]}let q0=p.findIndex((W0)=>W0.id===G);if(q0===-1){U({error:"Composition not found in source file"},404);return}if(p[q0]=g,await Q4(x),await n8(x,JSON.stringify(p,null,2),"utf-8"),R0)console.log(` ✅ Updated composition in ${x}`)}let u=await l9();await Z4(u),U({success:!0,composition:g})}catch(H){console.error("Error updating composition:",H),U({error:"Failed to update composition"},500)}return}if(X.pathname==="/api/compositions/delete"&&Q.method==="POST"){try{let H=await Y(),{id:G}=H;if(!G){U({error:"Missing composition ID"},400);return}let O=(await l9()).find((A)=>A.id===G);if(!O){U({error:"Composition not found"},404);return}let E=O.$sourceFile||Y8(_0,j8),w=U0(_0,E);if(R0)console.log(`
|
|
4955
|
+
\uD83D\uDDD1️ Deleting composition ${G}`),console.log(` Source file (relative): ${E}`),console.log(` Source file (absolute): ${w}`);let M=[];try{let A=await U8(w,"utf-8"),S=JSON.parse(A);M=Array.isArray(S)?S:[S]}catch(A){U({error:"Composition not found"},404);return}let D=M.filter((A)=>A.id!==G);if(D.length===M.length){U({error:"Composition not found in source file"},404);return}if(await Q4(w),await n8(w,JSON.stringify(D,null,2),"utf-8"),R0)console.log(` ✅ Deleted composition from ${w}`);let F=await l9();await Z4(F),U({success:!0})}catch(H){console.error("Error deleting composition:",H),U({error:"Failed to delete composition"},500)}return}if(X.pathname==="/api/compositions/preview"&&Q.method==="POST"){try{let H=await Y(),{selector:G,properties:z,platform:O,groupProperties:E}=H;if(!G||!z||z.length===0){U({error:"Missing required fields"},400);return}let w=await K4(),M=q4(w.tokens),D="";if(O==="css"||!O){let F=E&&(E.mediaQuery||E.parentSelector||E.containerQuery||E.customAtRule),A="";if(F){if(E.customAtRule){let S=O0(E.customAtRule,M);D+=`${S} {
|
|
4956
|
+
`,A=" "}if(E.mediaQuery){let S=O0(E.mediaQuery,M);D+=`${A}${S} {
|
|
4957
|
+
`,A+=" "}if(E.containerQuery){let S=O0(E.containerQuery,M);D+=`${A}${S} {
|
|
4958
|
+
`,A+=" "}if(E.parentSelector){let S=O0(E.parentSelector,M);D+=`${A}${S} {
|
|
4959
|
+
`,A+=" "}}D+=`${A}${G} {
|
|
4960
|
+
`;for(let S of z){let x=O0(S.token,M),b=$8(x),k=b?O0(x,M):x,v=iJ(S.token,V0,M);if(($8(S.token)||b)&&v!==k){let u=k.includes("calc(")?e1(k):null;if(u)D+=`${A} ${S.property}: ${v}; /* = ${k} */ /* ${u} */
|
|
4961
|
+
`;else D+=`${A} ${S.property}: ${v}; /* = ${k} */
|
|
4962
|
+
`}else D+=`${A} ${S.property}: ${v};
|
|
4963
|
+
`}if(D+=`${A}}`,F){if(E.parentSelector)A=A.slice(2),D+=`
|
|
4964
|
+
${A}}`;if(E.containerQuery)A=A.slice(2),D+=`
|
|
4965
|
+
${A}}`;if(E.mediaQuery)A=A.slice(2),D+=`
|
|
4966
|
+
${A}}`;if(E.customAtRule)A=A.slice(2),D+=`
|
|
4967
|
+
${A}}`}}else D=`/* ${O} output format coming soon */`;U({preview:D})}catch(H){console.error("Error generating preview:",H),U({error:"Failed to generate preview",preview:"/* Error */"},500)}return}if(X.pathname==="/api/tokens/preview"&&Q.method==="POST"){try{let H=await Y(),{path:G,type:z,value:O,modes:E={}}=H;if(!G||!O){U({error:"Path and value are required"},400);return}let w=await K4(),M=q4(w.tokens),D=new Map,F=(X0)=>{for(let D0 of X0){if(D0.value!==void 0)D.set(D0.path,D0);if(D0.children)F(D0.children)}};F(w.tokens);let A=(X0,D0,d0=new Set)=>{if(!$8(X0))return null;let H8=X0.match(/\{([^}]+)\}/);if(!H8)return null;let T0=H8[1];if(d0.has(T0))return null;d0.add(T0);let F0=D.get(T0);if(!F0)return null;let H0=F0.$extensions?.$mode?.[D0];if(H0)return H0;if(F0.value&&$8(F0.value))return A(F0.value,D0,d0);return null},S=V0.$modes||{},x=Object.keys(S),b=[],k=E.default||O,v=O0(k,M)||k,u=$8(v)?O0(v,M)||v:v,p=u&&typeof u==="string"&&u.toLowerCase().includes("calc(")?e1(u):null,q0=`default: ${u}`;if(p)q0+=` = ${p}`;b.push(q0);for(let X0 of x){if(X0==="default")continue;let D0=S[X0]||X0,d0=E[X0];if(d0){let T0=A(d0,X0)||d0,F0=O0(T0,M)||T0,W8=$8(F0)?O0(F0,M)||F0:F0,D8=W8&&typeof W8==="string"&&W8.toLowerCase().includes("calc(")?e1(W8):null,u0=`${D0}: ${W8}`;if(D8)u0+=` = ${D8}`;b.push(u0)}else{let H8=A(k,X0);if(H8){let T0=O0(H8,M)||H8,H0=$8(T0)?O0(T0,M)||T0:T0,W8=H0&&typeof H0==="string"&&H0.toLowerCase().includes("calc(")?e1(H0):null,D8=`${D0}: ${H0}`;if(W8)D8+=` = ${W8}`;b.push(D8)}else b.push(`${D0}: ${u}`)}}let W0=b.join(`
|
|
4968
|
+
`);U({preview:W0})}catch(H){console.error("Error generating token preview:",H),console.error("Error stack:",H?.stack),U({error:"Failed to generate preview",preview:`/* Error: ${H?.message||"Unknown error"} */`},500)}return}if(X.pathname==="/api/compositions/export"&&Q.method==="POST"){try{let H=await l9();if(H.length===0){U({success:!0,css:"/* No compositions found */",message:"No compositions to export"});return}let G=await Z4(H),z=U0(_0,V0.$paths.distDir),O=V0.$metaData?.tokenNamespace||"tokens",E=U0(z,"css","compositions.css"),w=U0(z,`${O}.design-system.tokens.css`);U({success:!0,css:G,files:{compositions:E,main:w},message:`Exported ${H.filter((M)=>M.platform==="css").length} CSS composition(s)`})}catch(H){console.error("Error exporting compositions:",H),U({error:"Failed to export compositions"},500)}return}if(Q.method==="GET"){q.writeHead(200,{"Content-Type":"text/html","Cache-Control":"no-cache"}),q.end(y_);return}q.writeHead(404),q.end("Not Found")}catch(H){console.error("Server error:",H),q.writeHead(500),q.end("Internal Server Error")}});i_()});import{execSync as c2}from"child_process";import{existsSync as w1,statSync as Cq}from"fs";import{resolve as jq}from"path";async function fq(Q,q=!1){let X=process.cwd(),$=Q||jq(X,"designid.config.ts"),U=jq(X,"designid.config.mjs");if(!w1($))return!1;if(!(!w1(U)||w1($)&&w1(U)&&Cq($).mtimeMs>Cq(U).mtimeMs)){if(q)console.log("✓ Config file is up to date");return!1}if(q)console.log("\uD83D\uDD04 Compiling config file...");try{if(c2(`bun build ${$} --outfile ${U} --minify --target node --packages external --no-bundle`,{stdio:q?"inherit":"pipe"}),q)console.log(`✅ Config compiled successfully
|
|
4969
|
+
`);return!0}catch(H){if(console.error("❌ Failed to compile config file"),H instanceof Error)console.error(H.message);throw H}}var V5=process.argv.slice(2),s_=V5.find((Q)=>Q.startsWith("--port="))?.split("=")[1],rJ=V5.find((Q)=>Q.startsWith("--config="))?.split("=")[1]||void 0,S5=V5.includes("--verbose")||V5.includes("-v");if(V5.includes("--help")||V5.includes("-h"))console.log(`
|
|
3867
4970
|
tokens-editor - Design Token Editor Server
|
|
3868
4971
|
|
|
3869
4972
|
Usage:
|
|
@@ -3888,5 +4991,5 @@ Note:
|
|
|
3888
4991
|
port: 3002
|
|
3889
4992
|
}
|
|
3890
4993
|
}
|
|
3891
|
-
`),process.exit(0);await
|
|
3892
|
-
Shutting down...`),
|
|
4994
|
+
`),process.exit(0);await fq(rJ,S5);var eZ=process.cwd(),n_=eZ+"/designid.config.ts",sJ=eZ+"/designid.config.mjs",x5=rJ;if(!x5){let{existsSync:Q}=await import("fs");if(Q(sJ))x5=sJ;else if(Q(n_))console.error("Error: designid.config.ts found but not compiled."),console.error("This should not happen - auto-compilation failed."),process.exit(1);else console.error("Error: No config file found."),console.error("Please create designid.config.ts or designid.config.mjs in your project root."),process.exit(1)}var tZ={enabled:!0,port:3002};if(x5)try{let Q=await import(x5),q=Q.default||Q;if(q.$metaData?.editor?.enabled===!1)console.error("Error: Token editor is disabled in config file."),console.error("To enable it, set $metaData.editor.enabled = true in your designid.config.ts"),process.exit(1);let X=q.$metaData?.editor?.port||3002;if(tZ={enabled:q.$metaData?.editor?.enabled!==!1,port:X},S5)console.log("Editor config from file:",tZ)}catch(Q){if(console.error("Warning: Could not read editor config from file, using defaults"),S5)console.error(Q)}var nJ=s_||String(tZ.port);if(nJ)process.env.EDITOR_PORT=nJ;if(S5)process.env.EDITOR_VERBOSE="true";if(x5)process.env.EDITOR_CONFIG_PATH=x5;var{spawn:r_}=await import("child_process"),{join:oJ,dirname:o_}=await import("path"),{fileURLToPath:a_}=await import("url"),t_=a_(import.meta.url),aJ=o_(t_),pN=oJ(aJ,".."),L8=null,X4=null,tJ=()=>{if(console.log(`
|
|
4995
|
+
Shutting down...`),X4&&!X4.killed)X4.kill();if(L8&&!L8.killed)L8.kill();process.exit(0)};process.on("SIGINT",tJ);process.on("SIGTERM",tJ);console.log("Starting Token Editor Server...");var eJ=oJ(aJ,"watch.js");console.log("Starting token watch process...");if(S5)console.log("Watch path:",eJ);L8=r_("node",[eJ],{stdio:["ignore","pipe","pipe"],env:process.env,cwd:eZ});L8.stdout?.on("data",(Q)=>{let q=Q.toString().trim();if(q)console.log("[watch]",q)});L8.stderr?.on("data",(Q)=>{let q=Q.toString().trim();if(q)console.error("[watch]",q)});L8.on("error",(Q)=>{console.error("Warning: Failed to start watch process:",Q.message)});L8.on("exit",(Q,q)=>{if(Q!==0&&Q!==null)console.error(`[watch] Process exited with code ${Q}`);else if(q)console.log(`[watch] Process killed with signal ${q}`);else if(S5)console.log("[watch] Process exited normally")});setTimeout(()=>{if(L8&&L8.exitCode===null&&!L8.killed)console.log("✓ Token watch process running");else if(L8)console.warn("⚠️ Token watch process not running (exit code:",L8.exitCode,")")},1000);X4={killed:!1,kill:()=>{},exitCode:null};var dN=await lJ().then(() => l_);
|