@designid/tokens 1.2.10 → 1.2.12
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/bin/build.js +53 -50
- package/bin/editor.js +1384 -278
- package/bin/watch.js +83 -80
- package/package.json +1 -1
package/bin/editor.js
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as m2}from"node:module";var k2=Object.create;var{getPrototypeOf:v2,defineProperty:RQ,getOwnPropertyNames:y2}=Object;var g2=Object.prototype.hasOwnProperty;var U5=(Q,q,X)=>{X=Q!=null?k2(v2(Q)):{};let $=q||!Q||!Q.__esModule?RQ(X,"default",{value:Q,enumerable:!0}):X;for(let U of y2(Q))if(!g2.call($,U))RQ($,U,{get:()=>Q[U],enumerable:!0});return $};var h2=(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=m2(import.meta.url);var jq=h2((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]",aJ="[object DOMException]",A6="[object Error]",V6="[object Function]",tZ="[object GeneratorFunction]",I8="[object Map]",C5="[object Number]",tJ="[object Null]",u8="[object Object]",eZ="[object Promise]",eJ="[object Proxy]",j5="[object RegExp]",A8="[object Set]",f5="[object String]",S6="[object Symbol]",QU="[object Undefined]",b5="[object WeakMap]",ZU="[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]",KU=/\b__p \+= '';/g,qU=/\b(__p \+=) '' \+/g,XU=/(__e\(.*?\)|\b__t\)) \+\n'';/g,QK=/&(?:amp|lt|gt|quot|#39);/g,ZK=/[&<>"']/g,$U=RegExp(QK.source),JU=RegExp(ZK.source),UU=/<%-([\s\S]+?)%>/g,YU=/<%([\s\S]+?)%>/g,KK=/<%=([\s\S]+?)%>/g,HU=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,WU=/^\w*$/,GU=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G4=/[\\^$.*+?()[\]{}|]/g,BU=RegExp(G4.source),B4=/^\s+/,zU=/\s/,OU=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,EU=/\{\n\/\* \[wrapped with (.+)\] \*/,_U=/,? & /,MU=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,wU=/[()=,{}\[\]\/\s]/,NU=/\\(\\)?/g,LU=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qK=/\w*$/,DU=/^[-+]0x[0-9a-f]+$/i,FU=/^0b[01]+$/i,RU=/^\[object .+?Constructor\]$/,PU=/^0o[0-7]+$/i,IU=/^(?:0|[1-9]\d*)$/,AU=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,x6=/($^)/,VU=/['\n\r\u2028\u2029\\]/g,T6="\\ud800-\\udfff",SU="\\u0300-\\u036f",xU="\\ufe20-\\ufe2f",TU="\\u20d0-\\u20ff",XK=SU+xU+TU,$K="\\u2700-\\u27bf",JK="a-z\\xdf-\\xf6\\xf8-\\xff",CU="\\xac\\xb1\\xd7\\xf7",jU="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fU="\\u2000-\\u206f",bU=" \\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=CU+jU+fU+bU,z4="['’]",kU="["+T6+"]",WK="["+HK+"]",C6="["+XK+"]",GK="\\d+",vU="["+$K+"]",BK="["+JK+"]",zK="[^"+T6+HK+GK+$K+JK+UK+"]",O4="\\ud83c[\\udffb-\\udfff]",yU="(?:"+C6+"|"+O4+")",OK="[^"+T6+"]",E4="(?:\\ud83c[\\udde6-\\uddff]){2}",_4="[\\ud800-\\udbff][\\udc00-\\udfff]",n9="["+UK+"]",EK="\\u200d",_K="(?:"+BK+"|"+zK+")",gU="(?:"+n9+"|"+zK+")",MK="(?:"+z4+"(?:d|ll|m|re|s|t|ve))?",wK="(?:"+z4+"(?:D|LL|M|RE|S|T|VE))?",NK=yU+"?",LK="["+YK+"]?",hU="(?:"+EK+"(?:"+[OK,E4,_4].join("|")+")"+LK+NK+")*",mU="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",pU="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",DK=LK+NK+hU,dU="(?:"+[vU,E4,_4].join("|")+")"+DK,uU="(?:"+[OK+C6+"?",C6,E4,_4,kU].join("|")+")",cU=RegExp(z4,"g"),lU=RegExp(C6,"g"),M4=RegExp(O4+"(?="+O4+")|"+uU+DK,"g"),iU=RegExp([n9+"?"+BK+"+"+MK+"(?="+[WK,n9,"$"].join("|")+")",gU+"+"+wK+"(?="+[WK,n9+_K,"$"].join("|")+")",n9+"?"+_K+"+"+MK,n9+"+"+wK,pU,mU,GK,dU].join("|"),"g"),sU=RegExp("["+EK+T6+XK+YK+"]"),nU=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,rU=["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"],oU=-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 aU={"À":"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"},tU={"&":"&","<":"<",">":">",'"':""","'":"'"},eU={"&":"&","<":"<",">":">",""":'"',"'":"'"},QY={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ZY=parseFloat,KY=parseInt,FK=typeof global=="object"&&global&&global.Object===Object&&global,qY=typeof self=="object"&&self&&self.Object===Object&&self,j0=FK||qY||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 XY(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 $Y(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 JY(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 UY=R4("length");function YY(I){return I.split("")}function HY(I){return I.match(MU)||[]}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?DY(I,x,V):f6(I,jK,V)}function WY(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 GY(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 BY(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 zY(I,x){var V=I.length,h=0;while(V--)if(I[V]===x)++h;return h}var OY=P4(aU),EY=P4(tU);function _Y(I){return"\\"+QY[I]}function MY(I,x){return I==null?Q:I[x]}function o9(I){return sU.test(I)}function wY(I){return nU.test(I)}function NY(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 LY(I){var x=-1,V=Array(I.size);return I.forEach(function(h){V[++x]=[h,h]}),V}function DY(I,x,V){var h=V-1,s=I.length;while(++h<s)if(I[h]===x)return h;return-1}function FY(I,x,V){var h=V+1;while(h--)if(I[h]===x)return h;return h}function a9(I){return o9(I)?PY(I):UY(I)}function V8(I){return o9(I)?IY(I):YY(I)}function hK(I){var x=I.length;while(x--&&zU.test(I.charAt(x)));return x}var RY=P4(eU);function PY(I){var x=M4.lastIndex=0;while(M4.test(I))++x;return x}function IY(I){return I.match(M4)||[]}function AY(I){return I.match(iU)||[]}var VY=function I(x){x=x==null?j0:Y9.defaults(j0.Object(),x,Y9.pick(j0,rU));var{Array:V,Date:h,Error:s,Function:q0,Math:A0,Object:Y0,RegExp:x4,String:SY,TypeError:_8}=x,k6=V.prototype,xY=q0.prototype,t9=Y0.prototype,v6=x["__core-js_shared__"],y6=xY.toString,J0=t9.hasOwnProperty,TY=0,mK=function(){var Z=/[^.]+$/.exec(v6&&v6.keys&&v6.keys.IE_PROTO||"");return Z?"Symbol(src)_1."+Z:""}(),g6=t9.toString,CY=y6.call(Y0),jY=j0._,fY=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){}}(),bY=x.clearTimeout!==j0.clearTimeout&&x.clearTimeout,kY=h&&h.now!==j0.Date.now&&h.now,vY=x.setTimeout!==j0.setTimeout&&x.setTimeout,c6=A0.ceil,l6=A0.floor,T4=Y0.getOwnPropertySymbols,yY=h6?h6.isBuffer:Q,lK=x.isFinite,gY=k6.join,hY=gK(Y0.keys,Y0),V0=A0.max,h0=A0.min,mY=h.now,pY=x.parseInt,iK=A0.random,dY=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={},uY=b9(C4),cY=b9(g5),lY=b9(j4),iY=b9(e9),sY=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:UU,evaluate:YU,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 nY(){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 rY(){if(this.__filtered__){var Z=new Q0(this);Z.__dir__=-1,Z.__filtered__=!0}else Z=this.clone(),Z.__dir__*=-1;return Z}function oY(){var Z=this.__wrapped__.value(),K=this.__dir__,J=n(Z),W=K<0,B=J?Z.length:0,w=Y3(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 aY(){this.__data__=m5?m5(null):{},this.size=0}function tY(Z){var K=this.has(Z)&&delete this.__data__[Z];return this.size-=K?1:0,K}function eY(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 QH(Z){var K=this.__data__;return m5?K[Z]!==Q:J0.call(K,Z)}function ZH(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=aY,x9.prototype.delete=tY,x9.prototype.get=eY,x9.prototype.has=QH,x9.prototype.set=ZH;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 KH(){this.__data__=[],this.size=0}function qH(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 XH(Z){var K=this.__data__,J=r6(K,Z);return J<0?Q:K[J][1]}function $H(Z){return r6(this.__data__,Z)>-1}function JH(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=KH,c8.prototype.delete=qH,c8.prototype.get=XH,c8.prototype.has=$H,c8.prototype.set=JH;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 UH(){this.size=0,this.__data__={hash:new x9,map:new(g5||c8),string:new x9}}function YH(Z){var K=U1(this,Z).delete(Z);return this.size-=K?1:0,K}function HH(Z){return U1(this,Z).get(Z)}function WH(Z){return U1(this,Z).has(Z)}function GH(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=UH,l8.prototype.delete=YH,l8.prototype.get=HH,l8.prototype.has=WH,l8.prototype.set=GH;function T9(Z){var K=-1,J=Z==null?0:Z.length;this.__data__=new l8;while(++K<J)this.add(Z[K])}function BH(Z){return this.__data__.set(Z,H),this}function zH(Z){return this.__data__.has(Z)}T9.prototype.add=T9.prototype.push=BH,T9.prototype.has=zH;function S8(Z){var K=this.__data__=new c8(Z);this.size=K.size}function OH(){this.__data__=new c8,this.size=0}function EH(Z){var K=this.__data__,J=K.delete(Z);return this.size=K.size,J}function _H(Z){return this.__data__.get(Z)}function MH(Z){return this.__data__.has(Z)}function wH(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=OH,S8.prototype.delete=EH,S8.prototype.get=_H,S8.prototype.has=MH,S8.prototype.set=wH;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,SY):[],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 NH(Z,K){return Y1(r0(Z),C9(K,0,Z.length))}function LH(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 DH(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 FH(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=W3(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?eH(Z,FH(L,Z)):tH(Z,oK(L,Z))}else{if(!H0[f])return B?Z:{};L=G3(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 RH(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 PH(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 IH(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=z3),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?QU:tJ;return S9&&S9 in Y0(Z)?U3(Z):L3(Z)}function y4(Z,K){return Z>K}function AH(Z,K){return Z!=null&&J0.call(Z,K)}function VH(Z,K){return Z!=null&&K in Y0(Z)}function SH(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 xH(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 TH(Z){return w0(Z)&&d0(Z)==k5}function CH(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 jH(Z,K,J,W,l5,B)}function jH(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):$3(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),J3(Z,K,J,W,B,w)}function fH(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)||E3(Z))return!1;var K=o8(Z)?fY:RU;return K.test(b9(Z))}function bH(Z){return w0(Z)&&d0(Z)==j5}function kH(Z){return w0(Z)&&m0(Z)==A8}function vH(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 hY(Z);var K=[];for(var J in Y0(Z))if(J0.call(Z,J)&&J!="constructor")K.push(J);return K}function yH(Z){if(!M0(Z))return N3(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))gH(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 gH(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 GY(B,function(w,L){return aH(w,L,J)})}function hH(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 mH(Z){return function(K){return j9(K,Z)}}function d4(Z,K,J,W){var B=W?WY: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 pH(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 dH(Z){return rK(J5(Z))}function uH(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},cH=!u6?t0:function(Z,K){return u6(Z,"toString",{configurable:!0,enumerable:!1,value:MQ(K),writable:!0})};function lH(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 iH(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:q3(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 sH=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=bY||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 nH(Z,K){var J=K?o4(Z.buffer):Z.buffer;return new Z.constructor(J,Z.byteOffset,Z.byteLength)}function rH(Z){var K=new Z.constructor(Z.source,qK.exec(Z));return K.lastIndex=Z.lastIndex,K}function oH(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 aH(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 tH(Z,K){return k8(Z,qQ(Z),K)}function eH(Z,K){return k8(Z,y7(Z),K)}function Z1(Z,K){return function(J,W){var B=n(J)?XY:DH,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 Q3(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(cU,"")),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 Z3(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=zY(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=D3(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 xH(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 K3(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),pH(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 q3=!(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 LY(K);return BY(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)w3(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=Q3(Z,K,J);else if(K==T||K==b)c=Z3(Z,K,F);else if((K==k||K==(R|k))&&!B.length)c=K3(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 X3(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 $3(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 J3(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 O3(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=MY(Z,K);return X7(J)?J:Q}function U3(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 uY:return s9;case cY:return I8;case lY:return eZ;case iY:return A8;case sY:return b5}return K};function Y3(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 H3(Z){var K=Z.match(EU);return K?K[1].split(_U):[]}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 W3(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 G3(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 nH(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 rH(Z);case A8:return new W;case S6:return oH(Z)}}function B3(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(OU,`{
|
|
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 yX(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 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 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+vq))),S=(1+A)*H,x=(1+A)*E,b=Math.sqrt(S**2+G**2),k=Math.sqrt(x**2+w**2),y=S===0&&G===0?0:Math.atan2(G,S),g=x===0&&w===0?0:Math.atan2(w,x);if(y<0)y+=2*x1;if(g<0)g+=2*x1;y*=gq,g*=gq;let u=O-Y,p=k-b,q0=g-y,W0=y+g,X0=Math.abs(q0),L0;if(b*k===0)L0=0;else if(X0<=180)L0=q0;else if(q0>180)L0=q0-360;else if(q0<-180)L0=q0+360;else M8.warn("the unthinkable has happened");let d0=2*Math.sqrt(k*b)*Math.sin(L0*W5/2),H8=(Y+O)/2,T0=(b+k)/2,D0=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(D0/(D0+vq)),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,y;if(Number.isNaN(z))z=0;if(z>=164&&z<=345)y=0.56+Math.abs(0.2*Math.cos((z+168)*mq));else y=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*y+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=vX(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,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)%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]*yz,$=q*Math.cos(X),U=q*Math.sin(X);return[Q[2],$,U]}function vz(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,y]=S[b].range;return yX(k,x,y)}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*yQ),E=X*(838422*yQ+769860*NX+731718*wX),w=X*(632260*yQ-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,yq=0.20689655172413793,N1=903.2962962962963,xQ,N8,Z6,vq=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,yz,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,yQ,bO,kO,DX=203,FX=0.1593017578125,yO=6.277394636015326,vO=78.84375,IX=0.012683313515655966,AX=0.8359375,PX=18.8515625,RX=18.6875,gO,VX=0.17883277,SX=0.28466892,xX=0.55991073,vQ=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:vX,clamp:yX,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]>yq?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]>yq?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>"]}}}),yz=Math.PI/180,tq=[1,0.007,0.0228];_5={deltaE76:qz,deltaECMC:$z,deltaE2000:mX,deltaEJz:Bz,deltaEITP:Dz,deltaEOK:mQ,deltaEHCT:vz};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],yQ=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))**yO*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)**vO})}}),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*vQ;return(Math.exp((q-xX)/VX)+SX)/12*vQ})},fromBase(Q){return Q.map(function(q){if(q/=vQ,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,y=64,g=128,u=256,p=512,q0=30,W0="...",X0=800,L0=16,d0=1,H8=2,T0=3,D0=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",y],["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]",y5="[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",yU="\\u2000-\\u206f",vU=" \\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+yU+vU,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[y5]=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[y5]=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,y0=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 yK(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 vK(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 v5(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?y0:z9.defaults(y0.Object(),T,z9.pick(y0,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,y6=T["__core-js_shared__"],v6=jY.toString,Y0=Q5.hasOwnProperty,fY=0,dK=function(){var Z=/[^.]+$/.exec(y6&&y6.keys&&y6.keys.IE_PROTO||"");return Z?"Symbol(src)_1."+Z:""}(),g6=Q5.toString,bY=v6.call(G0),kY=y0._,yY=f4("^"+v6.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=v9(G0,"defineProperty");return Z({},"",{}),Z}catch(K){}}(),vY=T.clearTimeout!==y0.clearTimeout&&T.clearTimeout,gY=h&&h.now!==y0.Date.now&&h.now,hY=T.setTimeout!==y0.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=v9(T,"DataView"),h5=v9(T,"Map"),y4=v9(T,"Promise"),Z5=v9(T,"Set"),m5=v9(T,"WeakMap"),p5=v9(G0,"create"),l6=m5&&new m5,K5={},lY=g9(k4),sY=g9(h5),nY=g9(y4),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(!F0(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,v=0,d=c0(R,this.__takeCount__);if(!J||!W&&B==R&&d==R)return M7(Z,this.__actions__);var i=[];Q:while(R--&&v<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[v++]=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 y8(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}y8.prototype.clear=wH,y8.prototype.delete=NH,y8.prototype.get=MH,y8.prototype.has=LH,y8.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 v4(Z,K,J){if(J!==Q&&!v8(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)&&v8(W,J))||J===Q&&!(K in Z))t8(Z,K,J)}function r6(Z,K){var J=Z.length;while(J--)if(v8(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,v0(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(!F0(Z))return Z;var j=n(Z);if(j){if(L=z3(Z),!I)return Q8(Z,L)}else{var f=i0(Z),v=f==V6||f==QK;if(M9(Z))return F7(Z,I);if(f==r8||f==H9||v&&!B){if(L=R||v?{}: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 y8);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:v0,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=v0(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=v5,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 v=C;while(v--)if(K[v]===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,v0)}function m4(Z,K){return Z&&q7(Z,K,v0)}function a6(Z,K){return W9(K,function(J){return K9(Z[J])})}function y9(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,v=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,!(v?v5(v,i):W(C,i,J))){L=N;while(--L){var a=I[L];if(!(a?v5(a,i):W(Z[L],i,J)))continue Q}if(v)v.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)==y5}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,v=R==C;if(v&&M9(Z)){if(!M9(K))return!1;L=!0,j=!1}if(v&&!j)return N||(N=new y8),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 y8),B(a,l,J,W,N)}}if(!v)return!1;return N||(N=new y8),H3(Z,K,J,W,B,N)}function yH(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 y8;if(W)var v=W(C,j,R,Z,K,f);if(!(v===Q?l5(j,C,M|D,W,f):v))return!1}}return!0}function J7(Z){if(!F0(Z)||N3(Z))return!1;var K=K9(Z)?yY:RU;return K.test(g9(Z))}function vH(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(!F0(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 y8),F0(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;v4(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){v4(Z,J,C);return}var j=N?N(I,R,J+"",Z,K,L):Q,f=j===Q;if(f){var v=n(R),d=!v&&M9(R),i=!v&&!d&&U5(R);if(j=R,v||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(!F0(I)||K9(I))j=p7(R)}else f=!1}if(f)L.set(R,j),B(j,R,W,N,L),L.delete(R);v4(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 y9(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=y9(Z,L);if(J(I,L))s5(N,w9(L,Z),I)}return N}function uH(Z){return function(K){return y9(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(!F0(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=F0(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]),v=f!==Q,d=f===null,i=f===f,a=O8(f);if(L)var l=W||i;else if(C)l=i&&(W||v);else if(I)l=i&&v&&(W||!d);else if(R)l=i&&v&&!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||!v8(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==-D0?"-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=v5,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 v=R.length;while(v--)if(R[v]===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(y9(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=vY||function(Z){return y0.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),v=!W;while(++B<j)f[B]=Z[B];var d=B;while(++R<C)f[d+R]=K[R];while(++L<I)if(v||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!==y0&&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 F0(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!==y0&&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=v0(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,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,N,L,I,R,C){var j=K&g,f=K&F,v=K&A,d=K&(x|b),i=K&p,a=v?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=v?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!==y0&&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),v=this&&this!==y0&&this instanceof L?N:Z;while(++C<j)f[C]=W[C];while(R--)f[C++]=arguments[++I];return G8(v,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,v=j?Q:L,d=j?N:Q,i=j?Q:N;if(K|=j?k:y,K&=~(j?y:k),!(K&S))K&=~(F|A);var a=[Z,K,B,d,f,i,v,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]==D0)?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|y),W=B=Q;if(L=L===Q?L:j0(r(L),0),I=I===Q?I:r(I),C-=B?B.length:0,K&y){var j=W,f=B;W=B=Q}var v=R?Q:$Q(Z),d=[Z,K,J,W,B,j,f,N,L,I];if(v)D3(d,v);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=v?E7:l7;return s7(a(i,d),Z,K)}function y7(Z,K,J,W){if(Z===Q||v8(Z,Q5[J])&&!Y0.call(W,J))return K;return Z}function v7(Z,K,J,W,B,N){if(F0(Z)&&F0(K))N.set(K,Z),t6(Z,K,Q,v7,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,v=!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;v=!1;break}if(d){if(!R4(K,function(e,Z0){if(!v5(d,Z0)&&(i===e||B(i,e,J,W,N)))return d.push(Z0)})){v=!1;break}}else if(!(i===a||B(i,a,J,W,N))){v=!1;break}}return N.delete(Z),N.delete(K),v}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 y5:if(Z.byteLength!=K.byteLength||!N(new m6(Z),new m6(K)))return!1;return!0;case T5:case C5:case j5:return v8(+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 v=I[f];if(!(L?v in K:Y0.call(K,v)))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){v=I[f];var e=Z[v],Z0=K[v];if(W)var E8=L?W(Z0,e,v,K,Z,N):W(e,Z0,v,Z,K,N);if(!(E8===Q?e===Z0||B(e,Z0,J,W,N):E8)){a=!1;break}l||(l=v=="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,v0,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=v0(Z),J=K.length;while(J--){var W=K[J],B=Z[W];K[J]=[W,B,d7(B)]}return K}function v9(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||y4&&i0(y4.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 y5: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 z3(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"&&IU.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 WU.test(Z)||!HU.test(Z)||K!=null&&Z in Y0(K)}function O3(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 E3(Z){return!!mK&&mK in Z}var _3=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 M3(Z){var K=B1(Z,function(W){if(J.size===G)J.clear();return W}),J=K.cache;return K}function w3(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 N3(Z){var K=[];if(Z!=null)for(var J in Y0(Z))K.push(J);return K}function L3(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 D3(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=vY||function(Z,K){return j0.setTimeout(Z,K)},UQ=i7(cH);function l7(Z,K,J){var W=K+"";return UQ(Z,B3(W,F3(H3(W),J)))}function i7(Z){var K=0,J=0;return function(){var W=mY(),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=M3(function(Z){var K=[];if(Z.charCodeAt(0)===46)K.push("");return Z.replace(GU,function(J,W,B,w){K.push(B?w.replace(NU,"$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 F3(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 R3(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 P3(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 I3(){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 A3=t(function(Z,K){return N0(Z)?u5(Z,y0(K,1,N0,!0)):[]}),V3=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)):[]}),S3=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 x3(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 T3(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 C3(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!0,!0):[]}function j3(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!0):[]}function f3(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 IH(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 b3(Z){var K=Z==null?0:Z.length;return K?y0(Z,f8):[]}function k3(Z,K){var J=Z==null?0:Z.length;if(!J)return[];return K=K===Q?1:r(K),y0(Z,K)}function v3(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 y3(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 g3(Z){var K=Z==null?0:Z.length;return K?N8(Z,0,-1):[]}var h3=t(function(Z){var K=z0(Z,n4);return K.length&&K[0]===Z[0]?g4(K):[]}),m3=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)):[]}),p3=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 d3(Z,K){return Z==null?"":gY.call(Z,K)}function L8(Z){var K=Z==null?0:Z.length;return K?Z[K-1]:Q}function u3(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?FY(Z,K,B):f6(Z,jK,B,!0)}function c3(Z,K){return Z&&Z.length?H7(Z,r(K)):Q}var l3=t(e7);function e7(Z,K){return Z&&Z.length&&K&&K.length?d4(Z,K):Z}function i3(Z,K,J){return Z&&Z.length&&K&&K.length?d4(Z,K,u(J,2)):Z}function s3(Z,K,J){return Z&&Z.length&&K&&K.length?d4(Z,K,Q,J):Z}var n3=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 r3(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:dY.call(Z)}function o3(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 a3(Z,K){return e6(Z,K)}function t3(Z,K,J){return l4(Z,K,u(J,2))}function e3(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 QW(Z,K){return e6(Z,K,!0)}function ZW(Z,K,J){return l4(Z,K,u(J,2),!0)}function KW(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 qW(Z){return Z&&Z.length?O7(Z):[]}function XW(Z,K){return Z&&Z.length?O7(Z,u(K,2)):[]}function $W(Z){var K=Z==null?0:Z.length;return K?N8(Z,1,K):[]}function JW(Z,K,J){if(!(Z&&Z.length))return[];return K=J||K===Q?1:r(K),N8(Z,0,K<0?0:K)}function UW(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 YW(Z,K){return Z&&Z.length?Q1(Z,u(K,3),!1,!0):[]}function HW(Z,K){return Z&&Z.length?Q1(Z,u(K,3)):[]}var WW=t(function(Z){return G9(y0(Z,1,N0,!0))}),GW=t(function(Z){var K=L8(Z);if(N0(K))K=Q;return G9(y0(Z,1,N0,!0),u(K,2))}),BW=t(function(Z){var K=L8(Z);return K=typeof K=="function"?K:Q,G9(y0(Z,1,N0,!0),Q,K)});function zW(Z){return Z&&Z.length?G9(Z):[]}function OW(Z,K){return Z&&Z.length?G9(Z,u(K,2)):[]}function EW(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 _W=t(function(Z,K){return N0(Z)?u5(Z,K):[]}),MW=t(function(Z){return s4($9(Z,N0))}),wW=t(function(Z){var K=L8(Z);if(N0(K))K=Q;return s4($9(Z,N0),u(K,2))}),NW=t(function(Z){var K=L8(Z);return K=typeof K=="function"?K:Q,s4($9(Z,N0),Q,K)}),LW=t(HQ);function DW(Z,K){return w7(Z||[],K||[],d5)}function FW(Z,K){return w7(Z||[],K||[],i5)}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,Qq(Z,J)});function Zq(Z){var K=E(Z);return K.__chain__=!0,K}function PW(Z,K){return K(Z),Z}function H1(Z,K){return K(Z)}var IW=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 AW(){return Zq(this)}function VW(){return new M8(this.value(),this.__chain__)}function SW(){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 xW(){return this}function TW(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 CW(){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 jW(){return M7(this.__wrapped__,this.__actions__)}var fW=Z1(function(Z,K,J){if(J0.call(Z,J))++Z[J];else i8(Z,J,1)});function bW(Z,K,J){var W=n(Z)?TK:PH;if(J&&u0(Z,K,J))K=Q;return W(Z,u(K,3))}function kW(Z,K){var J=n(Z)?$9:Q7;return J(Z,u(K,3))}var vW=S7(r7),yW=S7(o7);function gW(Z,K){return y0(W1(Z,K),1)}function hW(Z,K){return y0(W1(Z,K),f8)}function mW(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)?$Y:eK;return J(Z,u(K,3))}var pW=Z1(function(Z,K,J){if(J0.call(Z,J))Z[J].push(K);else i8(Z,J,[K])});function dW(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 uW=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}),cW=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 lW(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 iW=Z1(function(Z,K,J){Z[J?0:1].push(K)},function(){return[[],[]]});function sW(Z,K,J){var W=n(Z)?D4:bK,B=arguments.length<3;return W(Z,u(K,4),J,B,W9)}function nW(Z,K,J){var W=n(Z)?JY:bK,B=arguments.length<3;return W(Z,u(K,4),J,B,eK)}function rW(Z,K){var J=n(Z)?$9:Q7;return J(Z,z1(u(K,3)))}function oW(Z){var K=n(Z)?rK:dH;return K(Z)}function aW(Z,K,J){if(J?u0(Z,K,J):K===Q)K=1;else K=r(K);var W=n(Z)?NH:uH;return W(Z,K)}function tW(Z){var K=n(Z)?LH:lH;return K(Z)}function eW(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 QG(Z,K,J){var W=n(Z)?F4:iH;if(J&&u0(Z,K,J))K=Q;return W(Z,u(K,3))}var ZG=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=kY||function(){return j0.Date.now()};function KG(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 qG=t(function(Z,K){return tK(Z,1,K)}),XG=t(function(Z,K,J){return tK(Z,D8(K)||0,J)});function $G(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 JG(Z){return $q(2,Z)}var UG=sH(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)}),YG=n8(function(Z,K){return s8(Z,i,Q,Q,Q,K)});function HG(Z,K){if(typeof Z!="function")throw new _8(U);return K=K===Q?K:r(K),t(Z,K)}function WG(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 GG(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 BG(Z){return Xq(Z,1)}function zG(Z,K){return GQ(r4(K),Z)}function OG(){if(!arguments.length)return[];var Z=arguments[0];return n(Z)?Z:[Z]}function EG(Z){return w8(Z,M)}function _G(Z,K){return K=typeof K=="function"?K:Q,w8(Z,M,K)}function MG(Z){return w8(Z,O|M)}function wG(Z,K){return K=typeof K=="function"?K:Q,w8(Z,O|M,K)}function NG(Z,K){return K==null||aK(Z,K,f0(K))}function x8(Z,K){return Z===K||Z!==Z&&K!==K}var LG=$1(y4),DG=$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,FG=PK?X8(PK):TH;function o0(Z){return Z!=null&&O1(Z.length)&&!o8(Z)}function N0(Z){return w0(Z)&&o0(Z)}function RG(Z){return Z===!0||Z===!1||w0(Z)&&d0(Z)==x5}var O9=yY||FQ,PG=IK?X8(IK):CH;function IG(Z){return w0(Z)&&Z.nodeType===1&&!o5(Z)}function AG(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 VG(Z,K){return l5(Z,K)}function SG(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==aJ||typeof Z.message=="string"&&typeof Z.name=="string"&&!o5(Z)}function xG(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==eJ}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):fH;function TG(Z,K){return Z===K||h4(Z,K,KQ(K))}function CG(Z,K,J){return J=typeof J=="function"?J:Q,h4(Z,K,KQ(K),J)}function jG(Z){return zq(Z)&&Z!=+Z}function fG(Z){if(_3(Z))throw new s($);return X7(Z)}function bG(Z){return Z===null}function kG(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)==CY}var zQ=VK?X8(VK):bH;function vG(Z){return Gq(Z)&&Z>=-C0&&Z<=C0}var Oq=SK?X8(SK):kH;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):vH;function yG(Z){return Z===Q}function gG(Z){return w0(Z)&&m0(Z)==b5}function hG(Z){return w0(Z)&&d0(Z)==ZU}var mG=$1(p4),pG=$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 NY(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=FU.test(Z);return J||PU.test(Z)?KY(Z.slice(2),J?2:8):DU.test(Z)?c9:+Z}function Mq(Z){return k8(Z,a0(Z))}function dG(Z){return Z?C9(r(Z),-C0,C0):Z===0?Z:0}function X0(Z){return Z==null?"":$8(Z)}var uG=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)}),cG=K5(function(Z,K,J,W){k8(K,f0(K),Z,W)}),lG=n8(b4);function iG(Z,K){var J=Z5(Z);return K==null?J:oK(J,K)}var sG=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}),nG=t(function(Z){return Z.push(Q,k7),q8(Nq,Q,Z)});function rG(Z,K){return CK(Z,u(K,3),b8)}function oG(Z,K){return CK(Z,u(K,3),v4)}function aG(Z,K){return Z==null?Z:k4(Z,u(K,3),a0)}function tG(Z,K){return Z==null?Z:Z7(Z,u(K,3),a0)}function eG(Z,K){return Z&&b8(Z,u(K,3))}function QB(Z,K){return Z&&v4(Z,u(K,3))}function ZB(Z){return Z==null?[]:a6(Z,f0(Z))}function KB(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 qB(Z,K){return Z!=null&&g7(Z,K,AH)}function EQ(Z,K){return Z!=null&&g7(Z,K,VH)}var XB=T7(function(Z,K,J){if(K!=null&&typeof K.toString!="function")K=g6.call(K);Z[K]=J},MQ(t0)),$B=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),JB=t(c5);function f0(Z){return o0(Z)?nK(Z):m4(Z)}function a0(Z){return o0(Z)?nK(Z,!0):yH(Z)}function UB(Z,K){var J={};return K=u(K,3),b8(Z,function(W,B,w){i8(J,K(W,B,w),W)}),J}function YB(Z,K){var J={};return K=u(K,3),b8(Z,function(W,B,w){i8(J,B,K(W,B,w))}),J}var HB=K5(function(Z,K,J){t6(Z,K,J)}),Nq=K5(function(Z,K,J,W){t6(Z,K,J,W)}),WB=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,X3);var B=K.length;while(B--)i4(J,K[B]);return J});function GB(Z,K){return Lq(Z,z1(u(K)))}var BB=n8(function(Z,K){return Z==null?{}:hH(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 zB(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 OB(Z,K,J){return Z==null?Z:i5(Z,K,J)}function EB(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 _B(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 MB(Z,K){return Z==null?!0:i4(Z,K)}function wB(Z,K,J){return Z==null?Z:_7(Z,K,r4(J))}function NB(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 LB(Z){return Z==null?[]:V4(Z,a0(Z))}function DB(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 FB(Z,K,J){if(K=a8(K),J===Q)J=K,K=0;else J=a8(J);return Z=D8(Z),SH(Z,K,J)}function RB(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+ZY("1e-"+((B+"").length-1))),K)}return u4(Z,K)}var PB=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(AU,OY).replace(lU,"")}function IB(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 AB(Z){return Z=X0(Z),Z&&JU.test(Z)?Z.replace(ZK,EY):Z}function VB(Z){return Z=X0(Z),Z&&BU.test(Z)?Z.replace(G4,"\\$&"):Z}var SB=q5(function(Z,K,J){return Z+(J?"-":"")+K.toLowerCase()}),xB=q5(function(Z,K,J){return Z+(J?" ":"")+K.toLowerCase()}),TB=V7("toLowerCase");function CB(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 jB(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 fB(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 bB(Z,K,J){if(J||K==null)K=0;else if(K)K=+K;return pY(X0(Z).replace(B4,""),K||0)}function kB(Z,K,J){if(J?u0(Z,K,J):K===Q)K=1;else K=r(K);return c4(X0(Z),K)}function vB(){var Z=arguments,K=X0(Z[0]);return Z.length<3?K:K.replace(Z[1],Z[2])}var yB=q5(function(Z,K,J){return Z+(J?"_":"")+K.toLowerCase()});function gB(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 hB=q5(function(Z,K,J){return Z+(J?" ":"")+_Q(K)});function mB(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 pB(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?LU:x6).source+"|"+(K.evaluate||x6).source+"|$","g"),d="//# sourceURL="+(J0.call(K,"sourceURL")?(K.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++oU+"]")+`
|
|
5
|
-
`;Z.replace(v,function(l,e,Z0,
|
|
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(!F0(J))return!1;var W=typeof K;if(W=="number"?Z8(J)&&Z9(K,J.length):W=="string"&&(K in J))return v8(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=y6?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&&!F0(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:y9(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 y0.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=L0-(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==-D0?"-0":K}function g9(Z){if(Z!=null){try{return v6.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 y3(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 v3(Z){var K=Z==null?0:Z.length;return K?m0(Z,D0):[]}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&&v8(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(v8(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 yW=Z1(function(Z,K,J){if(Y0.call(Z,J))++Z[J];else t8(Z,J,1)});function vW(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),D0)}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:yK,B=arguments.length<3;return W(Z,c(K,4),J,B,E9)}function aW(Z,K,J){var W=n(Z)?HY:yK,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 y0.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,v=!0;if(typeof Z!="function")throw new A8(U);if(K=x8(K)||0,F0(J))j=!!J.leading,f="maxWait"in J,N=f?j0(x8(J.maxWait)||0,K):N,v="trailing"in J?!!J.trailing:v;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,v&&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,y,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(F0(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,v0(K))}function v8(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(!F0(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 F0(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):yH;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 yG(Z){if(M3(Z))throw new s($);return J7(Z)}function vG(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&&v6.call(J)==bY}var wQ=xK?B8(xK):vH;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===D0||Z===-D0){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(F0(Z)){var K=typeof Z.valueOf=="function"?Z.valueOf():Z;Z=F0(K)?K+"":K}if(typeof Z!="string")return Z===0?Z:+Z;Z=vK(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,v0(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,v0(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||v8(j,Q5[C])&&!Y0.call(Z,C))Z[C]=N[C]}}return Z}),aG=t(function(Z){return Z.push(Q,v7),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,v0(Z))}function $B(Z){return Z==null?[]:a6(Z,K8(Z))}function NQ(Z,K,J){var W=Z==null?Q:y9(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 v0(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(v0),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(F0(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,v0(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 yB(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 vB(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,y7);var B=_1({},K.imports,W.imports,y7),N=v0(B),L=C4(B,N),I,R,C=0,j=K.interpolate||x6,f="__p += '",v=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(v,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 dB(Z){return X0(Z).toLowerCase()}function uB(Z){return X0(Z).toUpperCase()}function cB(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 lB(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 iB(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 sB(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 nB(Z){return Z=X0(Z),Z&&$U.test(Z)?Z.replace(QK,RY):Z}var rB=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 wY(Z)?AY(Z):HY(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)}}),oB=n8(function(Z,K){return E8(K,function(J){J=v8(J),i8(Z,J,WQ(Z[J],Z))}),Z});function aB(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 tB(Z){return RH(w8(Z,O))}function MQ(Z){return function(){return Z}}function eB(Z,K){return Z==null||Z!==Z?K:Z}var Q2=x7(),Z2=x7(!0);function t0(Z){return Z}function wQ(Z){return $7(typeof Z=="function"?Z:w8(Z,O))}function K2(Z){return U7(w8(Z,O))}function q2(Z,K){return Y7(Z,w8(K,O))}var X2=t(function(Z,K){return function(J){return c5(J,Z,K)}}),$2=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 J2(){if(j0._===this)j0._=jY;return this}function LQ(){}function U2(Z){return Z=r(Z),t(function(K){return H7(K,Z)})}var Y2=a4(z0),H2=a4(TK),W2=a4(F4);function Vq(Z){return XQ(Z)?R4(v8(Z)):mH(Z)}function G2(Z){return function(K){return Z==null?Q:j9(Z,K)}}var B2=C7(),z2=C7(!0);function DQ(){return[]}function FQ(){return!1}function O2(){return{}}function E2(){return""}function _2(){return!0}function M2(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 w2(Z){if(n(Z))return z0(Z,v8);return J8(Z)?[Z]:r0(s7(X0(Z)))}function N2(Z){var K=++TY;return X0(Z)+K}var L2=q1(function(Z,K){return Z+K},0),D2=t4("ceil"),F2=q1(function(Z,K){return Z/K},1),R2=t4("floor");function P2(Z){return Z&&Z.length?o6(Z,t0,y4):Q}function I2(Z,K){return Z&&Z.length?o6(Z,u(K,2),y4):Q}function A2(Z){return fK(Z,t0)}function V2(Z,K){return fK(Z,u(K,2))}function S2(Z){return Z&&Z.length?o6(Z,t0,p4):Q}function x2(Z,K){return Z&&Z.length?o6(Z,u(K,2),p4):Q}var T2=q1(function(Z,K){return Z*K},1),C2=t4("round"),j2=q1(function(Z,K){return Z-K},0);function f2(Z){return Z&&Z.length?I4(Z,t0):0}function b2(Z,K){return Z&&Z.length?I4(Z,u(K,2)):0}if(E.after=KG,E.ary=Xq,E.assign=uG,E.assignIn=wq,E.assignInWith=_1,E.assignWith=cG,E.at=lG,E.before=$q,E.bind=WQ,E.bindAll=oB,E.bindKey=Jq,E.castArray=OG,E.chain=Zq,E.chunk=R3,E.compact=P3,E.concat=I3,E.cond=aB,E.conforms=tB,E.constant=MQ,E.countBy=fW,E.create=iG,E.curry=Uq,E.curryRight=Yq,E.debounce=Hq,E.defaults=sG,E.defaultsDeep=nG,E.defer=qG,E.delay=XG,E.difference=A3,E.differenceBy=V3,E.differenceWith=S3,E.drop=x3,E.dropRight=T3,E.dropRightWhile=C3,E.dropWhile=j3,E.fill=f3,E.filter=kW,E.flatMap=gW,E.flatMapDeep=hW,E.flatMapDepth=mW,E.flatten=a7,E.flattenDeep=b3,E.flattenDepth=k3,E.flip=$G,E.flow=Q2,E.flowRight=Z2,E.fromPairs=v3,E.functions=ZB,E.functionsIn=KB,E.groupBy=pW,E.initial=g3,E.intersection=h3,E.intersectionBy=m3,E.intersectionWith=p3,E.invert=XB,E.invertBy=$B,E.invokeMap=uW,E.iteratee=wQ,E.keyBy=cW,E.keys=f0,E.keysIn=a0,E.map=W1,E.mapKeys=UB,E.mapValues=YB,E.matches=K2,E.matchesProperty=q2,E.memoize=B1,E.merge=HB,E.mergeWith=Nq,E.method=X2,E.methodOf=$2,E.mixin=NQ,E.negate=z1,E.nthArg=U2,E.omit=WB,E.omitBy=GB,E.once=JG,E.orderBy=lW,E.over=Y2,E.overArgs=UG,E.overEvery=H2,E.overSome=W2,E.partial=GQ,E.partialRight=Wq,E.partition=iW,E.pick=BB,E.pickBy=Lq,E.property=Vq,E.propertyOf=G2,E.pull=l3,E.pullAll=e7,E.pullAllBy=i3,E.pullAllWith=s3,E.pullAt=n3,E.range=B2,E.rangeRight=z2,E.rearg=YG,E.reject=rW,E.remove=r3,E.rest=HG,E.reverse=YQ,E.sampleSize=aW,E.set=OB,E.setWith=EB,E.shuffle=tW,E.slice=o3,E.sortBy=ZG,E.sortedUniq=qW,E.sortedUniqBy=XW,E.split=gB,E.spread=WG,E.tail=$W,E.take=JW,E.takeRight=UW,E.takeRightWhile=YW,E.takeWhile=HW,E.tap=PW,E.throttle=GG,E.thru=H1,E.toArray=Eq,E.toPairs=Dq,E.toPairsIn=Fq,E.toPath=w2,E.toPlainObject=Mq,E.transform=_B,E.unary=BG,E.union=WW,E.unionBy=GW,E.unionWith=BW,E.uniq=zW,E.uniqBy=OW,E.uniqWith=EW,E.unset=MB,E.unzip=HQ,E.unzipWith=Qq,E.update=wB,E.updateWith=NB,E.values=J5,E.valuesIn=LB,E.without=_W,E.words=Iq,E.wrap=zG,E.xor=MW,E.xorBy=wW,E.xorWith=NW,E.zip=LW,E.zipObject=DW,E.zipObjectDeep=FW,E.zipWith=RW,E.entries=Dq,E.entriesIn=Fq,E.extend=wq,E.extendWith=_1,NQ(E,E),E.add=L2,E.attempt=Aq,E.camelCase=PB,E.capitalize=Rq,E.ceil=D2,E.clamp=DB,E.clone=EG,E.cloneDeep=MG,E.cloneDeepWith=wG,E.cloneWith=_G,E.conformsTo=NG,E.deburr=Pq,E.defaultTo=eB,E.divide=F2,E.endsWith=IB,E.eq=x8,E.escape=AB,E.escapeRegExp=VB,E.every=bW,E.find=vW,E.findIndex=r7,E.findKey=rG,E.findLast=yW,E.findLastIndex=o7,E.findLastKey=oG,E.floor=R2,E.forEach=Kq,E.forEachRight=qq,E.forIn=aG,E.forInRight=tG,E.forOwn=eG,E.forOwnRight=QB,E.get=OQ,E.gt=LG,E.gte=DG,E.has=qB,E.hasIn=EQ,E.head=t7,E.identity=t0,E.includes=dW,E.indexOf=y3,E.inRange=FB,E.invoke=JB,E.isArguments=k9,E.isArray=n,E.isArrayBuffer=FG,E.isArrayLike=o0,E.isArrayLikeObject=N0,E.isBoolean=RG,E.isBuffer=O9,E.isDate=PG,E.isElement=IG,E.isEmpty=AG,E.isEqual=VG,E.isEqualWith=SG,E.isError=BQ,E.isFinite=xG,E.isFunction=o8,E.isInteger=Gq,E.isLength=O1,E.isMap=Bq,E.isMatch=TG,E.isMatchWith=CG,E.isNaN=jG,E.isNative=fG,E.isNil=kG,E.isNull=bG,E.isNumber=zq,E.isObject=M0,E.isObjectLike=w0,E.isPlainObject=o5,E.isRegExp=zQ,E.isSafeInteger=vG,E.isSet=Oq,E.isString=E1,E.isSymbol=J8,E.isTypedArray=$5,E.isUndefined=yG,E.isWeakMap=gG,E.isWeakSet=hG,E.join=d3,E.kebabCase=SB,E.last=L8,E.lastIndexOf=u3,E.lowerCase=xB,E.lowerFirst=TB,E.lt=mG,E.lte=pG,E.max=P2,E.maxBy=I2,E.mean=A2,E.meanBy=V2,E.min=S2,E.minBy=x2,E.stubArray=DQ,E.stubFalse=FQ,E.stubObject=O2,E.stubString=E2,E.stubTrue=_2,E.multiply=T2,E.nth=c3,E.noConflict=J2,E.noop=LQ,E.now=G1,E.pad=CB,E.padEnd=jB,E.padStart=fB,E.parseInt=bB,E.random=RB,E.reduce=sW,E.reduceRight=nW,E.repeat=kB,E.replace=vB,E.result=zB,E.round=C2,E.runInContext=I,E.sample=oW,E.size=eW,E.snakeCase=yB,E.some=QG,E.sortedIndex=a3,E.sortedIndexBy=t3,E.sortedIndexOf=e3,E.sortedLastIndex=QW,E.sortedLastIndexBy=ZW,E.sortedLastIndexOf=KW,E.startCase=hB,E.startsWith=mB,E.subtract=j2,E.sum=f2,E.sumBy=b2,E.template=pB,E.times=M2,E.toFinite=a8,E.toInteger=r,E.toLength=_q,E.toLower=dB,E.toNumber=D8,E.toSafeInteger=dG,E.toString=X0,E.toUpper=uB,E.trim=cB,E.trimEnd=lB,E.trimStart=iB,E.truncate=sB,E.unescape=nB,E.uniqueId=N2,E.upperCase=rB,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=nY,Q0.prototype.reverse=rY,Q0.prototype.value=oY,E.prototype.at=IW,E.prototype.chain=AW,E.prototype.commit=VW,E.prototype.next=SW,E.prototype.plant=TW,E.prototype.reverse=CW,E.prototype.toJSON=E.prototype.valueOf=E.prototype.value=jW,E.prototype.first=E.prototype.head,y5)E.prototype[y5]=xW;return E},Y9=VY();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*d2[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)=>c2.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 i2(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 n2(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=e2}={}){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 Qz(Q,q){return mX(Q,q,"lab")}function Kz(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 Hz(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 _z(Q){let q=Q.map(function(X){let $=dX+uX*(X/1e4)**iq,U=1+cX*(X/1e4)**iq;return($/U)**Wz});return E0(zz,q)}function Mz(Q){return E0(Oz,Q).map(function($){let U=Math.max($**sq-dX,0),Y=uX-cX*$**sq;return 1e4*(U/Y)**Gz})}function wz(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 Pz(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 Iz(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 Az(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);$=Fz[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=Az(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=Pz(E0(Dz,[M,D,R]).map((S)=>{return S*1/1403}),q.fl);return E0(Lz,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*Rz),T=Iz(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 Tz(Q){return 116*(Q>xz?Math.cbrt(Q):(oX*Q+16)/116)-16}function mQ(Q){return Q>8?Math.pow((Q+16)/116,3):Q/oX}function Cz(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 jz(Q,q){let X=Tz(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]*fz,$=q*Math.cos(X),U=q*Math.sin(X);return[Q[2],$,U]}function bz(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 kz(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=vz(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=kz(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 vz(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 uz(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(!(dz??=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 cz(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 lz(Q){Object.defineProperty(Q.prototype,"luminance",{get(){return N9(this)},set(q){Z$(this,q)}})}function sz(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)**tz}function H5(Q){let q=Q<0?-1:1,X=Math.abs(Q);return q*Math.pow(X,2.4)}function qO(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-_)<QO)$=0;else if(N)X=M**nz-_**rz,$=X*ZO;else X=M**az-_**oz,$=X*KO;if(Math.abs($)<ez)U=0;else if($>0)U=$-JX;else U=$+JX;return U*100}function XO(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 JO(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?$O:(X-$)/$}function UO(Q,q){Q=o(Q),q=o(q);let X=H8(Q,[W8,"l"]),$=H8(q,[W8,"l"]);return Math.abs(X-$)}function HO(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 WO(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 GO(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 zO(Q,q=0.25){let $=[m.get("oklch","lch"),"l"];return e8(Q,$,(U)=>U*(1+q))}function OO(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]=n2(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 _O(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>xO?q:Q/TO,$=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=uz(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 d2,u2,M9,G8,l0,c2,l2=0.000075,m,g0,i0,iQ,s2=0.008856451679035631,kq=0.20689655172413793,w1=903.2962962962963,IQ,W8,K6,vq=6103515625,x1,yq,Y5,r2,o2,a2,t2,B5,e2=0.000075,Zz,hq,mq=203,sQ,N1=1.15,L1=0.66,pq=0.1593017578125,qz=6.277394636015326,dq=0.8359375,uq=18.8515625,cq=18.6875,Xz=134.03437499999998,lq=0.007460772656268216,D1=-0.56,AQ=0.000000000016295499532821565,$z,Jz,Uz,Yz,pX,yQ,dX=0.8359375,uX=18.8515625,cX=18.6875,iq=0.1593017578125,Wz=78.84375,Gz=6.277394636015326,sq=0.012683313515655966,Bz,zz,Oz,Ez,gQ,Nz,lX=0.42,nq,VQ,iX,Lz,Dz,Fz,v9,Rz,rq,oq,Vz,Sz,xz=0.008856451679035631,oX=903.2962962962963,nQ,q6,fz,aq,O5,eq,QX,yz,gz,j1,F1=1.09929682680944,ZX=0.018053968510807,aX,hz,mz,tX,pz,x0,eX,KX,qX,XX,E5,Q$,dz,iz,nz=0.56,rz=0.57,oz=0.62,az=0.65,$X=0.022,tz=1.414,ez=0.1,QO=0.0005,ZO=1.14,JX=0.027,KO=1.14,$O=50000,YO=0.008856451679035631,YX=0.20689655172413793,R1=903.2962962962963,SQ,pQ,xQ,A1,BO,EO,MO,$$,J$,wO,NO,LO,U$,DO,FO,RO,Y$,PO=0.001953125,IO=0.03125,AO,VO,H$,SO=0.008856451679035631,HX=903.2962962962963,WX,GX,W$,oQ,xO=0.008856451679035631,TO=903.2962962962963,BX,zX,TQ,OX,EX,CQ,_X,MX,jQ,CO,jO,LX=203,DX=0.1593017578125,fO=6.277394636015326,bO=78.84375,FX=0.012683313515655966,RX=0.8359375,PX=18.8515625,IX=18.6875,kO,AX=0.17883277,VX=0.28466892,SX=0.55991073,fQ=3.7743,vO,G$,yO,gO,z$,P1=0.0000152587890625,bQ=-0.35828683,I1,hO,xX;var aQ=S0(()=>{d2={deg:1,grad:0.9,rad:180/Math.PI,turn:360};u2=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]};c2=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:i2(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),M9.run("colorspace-init-end",this)}inGamut(Q,{epsilon:q=l2}={}){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(($)=>$>s2?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;r2=[[0.819022437996703,0.3619062600528904,-0.1288737815209879],[0.0329836539323885,0.9292868615863434,0.0361446663506424],[0.0481771893596242,0.2642395317527308,0.6335478284694309]],o2=[[1.2268798758459243,-0.5578149944602171,0.2813910456659647],[-0.0405757452148008,1.112286803280317,-0.0717110580655164],[-0.0763729366746601,-0.4214933324022432,1.5869240198367816]],a2=[[0.210454268309314,0.7936177747023054,-0.0040720430116193],[1.9779985324311684,-2.42859224204858,0.450593709617411],[0.0259040424655478,0.7827717124575296,-0.8086757549230774]],t2=[[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(r2,Q).map(($)=>Math.cbrt($));return E0(a2,X)},toBase(Q){let X=E0(t2,Q).map(($)=>$**3);return E0(o2,X)},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});Zz=Math.PI,hq=Zz/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))}}),$z=[[0.41478972,0.579999,0.014648],[-0.20151,1.120649,0.0531008],[-0.0166008,0.2648,0.6684799]],Jz=[[1.9242264357876067,-1.0047923125953657,0.037651404030618],[0.35031676209499907,0.7264811939316552,-0.06538442294808501],[-0.09098281098284752,-0.3127282905230739,1.5227665613052603]],Uz=[[0.5,0.5,0],[3.524,-4.066708,0.542708],[0.199076,1.096799,-1.295875]],Yz=[[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($z,[U,Y,$]).map(function(N){let D=dq+uq*(N/1e4)**pq,R=1+cq*(N/1e4)**pq;return(D/R)**Xz}),[z,O,_]=E0(Uz,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(Yz,[U,X,$]).map(function(N){let D=dq-N**lq,R=cq*N**lq-uq;return 1e4*(D/R)**qz}),[G,z,O]=E0(Jz,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)]}});Bz=[[0.3592832590121217,0.6976051147779502,-0.035891593232029],[-0.1920808463704993,1.100476797037432,0.0753748658519118],[0.0070797844607479,0.0748396662186362,0.8433265453898765]],zz=[[0.5,0.5,0],[1.61376953125,-3.323486328125,1.709716796875],[4.378173828125,-4.24560546875,-0.132568359375]],Oz=[[0.9999999999999998,0.0086090370379328,0.111029625003026],[0.9999999999999998,-0.0086090370379328,-0.1110296250030259],[0.9999999999999998,0.5600313357106791,-0.3206271749873188]],Ez=[[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(Bz,Q);return _z(q)},toBase(Q){let q=Mz(Q);return E0(Ez,q)}});Nz=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]],Lz=[[1.8620678550872327,-1.0112546305316843,0.14918677544445175],[0.38752654323613717,0.6214474419314753,-0.008973985167612518],[-0.015841498849333856,-0.03412293802851557,1.0499644368778496]],Dz=[[460,451,288],[460,-891,-261],[460,-220,-6300]],Fz={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]},Rz=180/Math.PI,rq=Math.PI/180;oq=nX(Nz,64/Math.PI*0.2,20,"average",!1);Vz=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)}}),Sz=l0.D65;nQ=nX(Sz,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 jz(Q)},toBase(Q){return Cz(Q,nQ)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),fz=Math.PI/180,aq=[1,0.007,0.0228];O5={deltaE76:Qz,deltaECMC:Kz,deltaE2000:hX,deltaEJz:Hz,deltaEITP:wz,deltaEOK:vQ,deltaEHCT:bz};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";yz=[[0.6369580483012914,0.14461690358620832,0.1688809751641721],[0.2627002120112671,0.6779980715188708,0.05930171646986196],[0,0.028072693049087428,1.060985057710791]],gz=[[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:yz,fromXYZ_M:gz}),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})}}),hz=[[0.4865709486482162,0.26566769316909306,0.1982172852343625],[0.2289745640697488,0.6917385218365064,0.079286914093745],[0,0.04511338185890264,1.043944368900976]],mz=[[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:hz,fromXYZ_M:mz}),pz=[[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:pz,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}}iz=Object.freeze({__proto__:null,getLuminance:N9,register:lz,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(($)=>$>YO?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:qO,contrastDeltaPhi:HO,contrastLstar:UO,contrastMichelson:XO,contrastWCAG21:sz,contrastWeber:JO});BO=Object.freeze({__proto__:null,register:GO,uv:f1,xy:K$});EO=Object.freeze({__proto__:null,darken:OO,lighten:zO});G8.interpolationSpace="lab";MO=Object.freeze({__proto__:null,isRange:rQ,mix:q$,range:J6,register:_O,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>"]}}}),wO=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>"]}}}),NO=[[0.5766690429101305,0.1855582379065463,0.1882286462349947],[0.29734497525053605,0.6273635662554661,0.07529145849399788],[0.02703136138641234,0.07068885253582723,0.9913375368376388]],LO=[[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:NO,fromXYZ_M:LO}),DO=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))}),FO=[[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]],Y$=new i0({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:iQ,toXYZ_M:FO,fromXYZ_M:RO}),AO=new i0({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:Y$,toBase(Q){return Q.map((q)=>q<IO?q/16:q**1.8)},fromBase(Q){return Q.map((q)=>q>=PO?q**0.5555555555555556:16*q)}}),VO=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<=SO?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];CO=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];jO=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>"]}}}),kO=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))**fO*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)**bO})}}),vO=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];yO=[[0.6624541811085053,0.13400420645643313,0.1561876870049078],[0.27222871678091454,0.6740817658111484,0.05368951740793705],[-0.005574649490394108,0.004060733528982826,1.0103391003129971]],gO=[[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:yO,fromXYZ_M:gO}),I1=(Math.log2(65504)+9.72)/17.52,hO=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:DO,A98RGB_Linear:U$,ACEScc:hO,ACEScg:z$,CAM16_JMh:Vz,HCT:q6,HPLuv:jO,HSL:$$,HSLuv:CO,HSV:J$,HWB:wO,ICTCP:gQ,JzCzHz:yQ,Jzazbz:pX,LCH:K6,LCHuv:oQ,Lab:W8,Lab_D65:pQ,Luv:W$,OKLCH:VO,OKLab:B5,P3:Q$,P3_Linear:tX,ProPhoto:AO,ProPhoto_Linear:Y$,REC_2020:aX,REC_2020_Linear:j1,REC_2100_HLG:vO,REC_2100_PQ:kO,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:cz,inGamut:y9,toGamut:w9,distance:mX,toString:Q6});Object.assign(K0,{util:u2,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(EO);K0.extend({contrast:WO});K0.extend(BO);K0.extend(iz);K0.extend(MO);K0.extend(A1)});var _$={};PQ(_$,{transformColorValueAsync:()=>dO,transformColorValue:()=>b0,transformColorToken:()=>v1,setAlpha:()=>U6,isColor:()=>Q9,initializeColorspace:()=>pO});async function O$(){if(k1===null){let{colorspace:Q}=await e0();k1=Q||"hex"}return k1}function mO(){return k1||"hex"}async function pO(){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=mO();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 dO(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 uO(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=uO(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:()=>oO,getLazyTokensConfig:()=>qZ,getLazyProjectPaths:()=>MZ,getLazyProjectModes:()=>G6,getLazyProjectMetaData:()=>_6,getLazyProjectFonts:()=>aO,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 cO}from"child_process";import{existsSync as h8,mkdirSync as lO,readFileSync as iO,unlinkSync as w$,writeFileSync as sO}from"fs";import{readdir as F$,rmdir as nO,unlink as rO}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=cO("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 nO($);else await rO($)}}}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))lO(Q,{recursive:!0})}async function F5(Q,q=!1){let X=O6(),$;if(X.endsWith(".json"))$=JSON.parse(iO(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 oO(){return(await F5(process.cwd())).$fonts??[]}async function aO(){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 vK(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(F0(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 v=R.lastIndexOf(B);if(v>-1)R=R.slice(0,v)}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=v0(K),B=a6(K,W);if(J==null&&!(F0(K)&&(B.length||!W.length)))J=K,K=Z,Z=this,B=a6(K,v0(K));var N=!(F0(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(y0._===this)y0._=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:y9(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 y2(Z){return Z&&Z.length?x4(Z,q8):0}function v2(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=yW,_.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=y3,_.filter=gW,_.flatMap=pW,_.flatMapDeep=dW,_.flatMapDepth=uW,_.flatten=e7,_.flattenDeep=v3,_.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=v0,_.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=v8,_.escape=xB,_.escapeRegExp=TB,_.every=vW,_.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=yG,_.isNil=gG,_.isNull=vG,_.isNumber=Eq,_.isObject=F0,_.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=yB,_.parseInt=vB,_.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=y2,_.sumBy=v2,_.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&&v?Z0[0]:Z0};if(j&&J&&typeof C=="function"&&C.length!=1)R=j=!1;var v=this.__chain__,d=!!this.__actions__.length,i=N&&!v,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,v)}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)y0._=z9,define(function(){return z9});else if(C9)(C9.exports=z9)._=z9,F4._=z9;else y0._=z9}).call(J6)});var N$={};SQ(N$,{transformColorValueAsync:()=>iO,transformColorValue:()=>g0,transformColorToken:()=>y1,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 y1(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 v1=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:()=>v$,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:()=>y$,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 y$(){let{tokenNamespace:Q}=await X8();return`${Q}-design-system.tokens.css`}async function v$(){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 y$()),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 EE(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=_E(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 ME(U,Number(X)/100);break;case"scale":if(typeof U==="string"&&U.match(/[\d.]+/))return wE(U,Number(X));break;case"hue":if(typeof U==="string")return NE(U,Number(X));break;default:return console.warn(`Unknown generator type: ${q}`),U}return U}function _E(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 ME(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 wE(Q,q){let X=Q.match(/([\d.]+)(\w+)/);if(X){let[,$,U]=X;return`${parseFloat($)*q}${U}`}return Q}function NE(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 DE(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(),y=q?J8(q,"css"):k,g=YE(y,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[,y,g]=k,u=X?.get(y);if(u){if(u.extensions?.mode?.dark!==void 0)return!0;if(u.extensions?.generators)return!0;return F(y,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=(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("{")&&F(y.slice(1,-1),new Set(x))||typeof y==="object"&&y!==null&&(Object.values(y).some((g)=>typeof g==="string"&&g.includes("{")&&F(g.slice(1,-1),new Set(x)))||k(y)));else if(typeof b.value==="object")return Object.values(b.value).some((y)=>typeof y==="string"&&y.includes("{")&&F(y.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 y=b.name.match(E);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 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 y=G.get(k)||[];if(y.length>0){y.sort();let g=S9(k,M,D);if(D)w+=`}
|
|
59
59
|
|
|
60
60
|
${g} {
|
|
61
61
|
${y.join(`
|
|
62
62
|
`)}
|
|
63
|
-
`;else{let
|
|
64
|
-
${
|
|
63
|
+
`;else{let u=g.replace("[data-theme=","&[data-theme=");w+=`
|
|
64
|
+
${u} {
|
|
65
65
|
${y.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,y]of z)y.sort(),w+=`
|
|
70
70
|
${k} {
|
|
71
71
|
${b} {
|
|
72
72
|
${y.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,14 +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
|
|
120
|
-
`)?
|
|
121
|
-
`})}
|
|
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
|
+
`)?z:`${z}
|
|
121
|
+
`})}else{let H="";for(let[G,z]of X.entries()){let O=WJ(z,G,q,$);if(H)H+=`
|
|
122
|
+
`;H+=O}if(H)U.push({fileName:"tokens.typography.css",content:H.endsWith(`
|
|
123
|
+
`)?H:`${H}
|
|
124
|
+
`})}return U}function WJ(Q,q,X,$){let U=`/**
|
|
122
125
|
* Design System Tokens - Typography (${q})
|
|
123
126
|
* Generated: ${new Date().toISOString()}
|
|
124
127
|
*
|
|
@@ -126,27 +129,27 @@ ${U.join(`
|
|
|
126
129
|
* Includes fontSize, fontWeight, fontFamily, lineHeight, and typography compositions.
|
|
127
130
|
*/
|
|
128
131
|
|
|
129
|
-
`,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} {
|
|
130
133
|
${z.join(`
|
|
131
134
|
`)}
|
|
132
135
|
}
|
|
133
136
|
|
|
134
|
-
`;else{let
|
|
135
|
-
`,U+=` ${
|
|
137
|
+
`;else{let M=H.startsWith("(")?H:`(${H})`;U+=`@media ${M} {
|
|
138
|
+
`,U+=` ${w} {
|
|
136
139
|
${z.sort().map((D)=>` ${D}`).join(`
|
|
137
140
|
`)}
|
|
138
141
|
}
|
|
139
142
|
`,U+=`}
|
|
140
143
|
|
|
141
144
|
`}}}return U+`
|
|
142
|
-
`}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){if((Q.includes(",")||Q.includes(" "))&&!Q.startsWith('"')&&!Q.startsWith("'"))return`"${Q}"`;return Q}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 yE(q);return vE(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 yE(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 vE(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`/**
|
|
143
146
|
* ${q} - CSS Custom Properties
|
|
144
147
|
* Version: ${X}
|
|
145
148
|
* Generated: ${$}
|
|
146
149
|
*
|
|
147
150
|
* This file contains CSS custom properties (CSS variables) generated from design tokens.
|
|
148
151
|
* Do not edit this file directly - it will be overwritten.
|
|
149
|
-
*/`}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+`
|
|
150
153
|
|
|
151
154
|
`;else G+=`/**
|
|
152
155
|
* Icon CSS - Base64 Encoded SVG Icons as CSS Custom Properties
|
|
@@ -162,21 +165,21 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
162
165
|
* Do not edit this file directly - it will be overwritten.
|
|
163
166
|
*/
|
|
164
167
|
|
|
165
|
-
`;let z=
|
|
166
|
-
`;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}");
|
|
167
170
|
`}return G+=`}
|
|
168
171
|
`,{fileName:"tokens.icons.css",content:G.trim()+`
|
|
169
|
-
`}}var
|
|
170
|
-
`}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 yZ(){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 vZ(Q,q={},X){let{generateTypes:$=!0,generateConsts:U=!0}=q,Y=q.icons;if(!Y)Y=await yZ();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';
|
|
171
174
|
|
|
172
|
-
`,U+=
|
|
173
|
-
`}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';
|
|
174
177
|
`;if(Q.some(($)=>$.type==="constants"))X+=`export * from './tokens.constants';
|
|
175
|
-
`;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';
|
|
176
179
|
`,X+=`export * from './tokens.icons';
|
|
177
180
|
`}catch($){}return X+=`
|
|
178
181
|
`,X+`
|
|
179
|
-
`}function
|
|
182
|
+
`}function iE(Q,q){let X=Q.map((U)=>`"${U.name}"`).join(`
|
|
180
183
|
| `),$="";if(q)$+=`/**
|
|
181
184
|
* All available token paths as string literals
|
|
182
185
|
*/
|
|
@@ -184,7 +187,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
184
187
|
| ${X};
|
|
185
188
|
|
|
186
189
|
`,$+`
|
|
187
|
-
`}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(`
|
|
188
191
|
| `);if(q)$+=`/**
|
|
189
192
|
* Possible values for ${U} tokens
|
|
190
193
|
*/
|
|
@@ -192,7 +195,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
192
195
|
| ${z};
|
|
193
196
|
|
|
194
197
|
`}return $+`
|
|
195
|
-
`}function
|
|
198
|
+
`}function sE(Q,q){let X="",$=Q.map((H)=>`"${H.name}"`).join(`
|
|
196
199
|
| `);if(q)X+=`/**
|
|
197
200
|
* All available icon names as string literals
|
|
198
201
|
*/
|
|
@@ -228,23 +231,23 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
228
231
|
`,X+=`}
|
|
229
232
|
|
|
230
233
|
`,X+`
|
|
231
|
-
`}function
|
|
234
|
+
`}function nE(Q,q,X){let $="";if(X)$+=`/**
|
|
232
235
|
* Design tokens interface with all token paths and their values
|
|
233
236
|
*/
|
|
234
237
|
`;$+=`export interface ${q} {
|
|
235
238
|
`;for(let U of Q){if(X&&U.description)$+=` /** ${U.description} */
|
|
236
|
-
`;$+=` "${U.name}": ${
|
|
239
|
+
`;$+=` "${U.name}": ${I6(U.value)};
|
|
237
240
|
`}return $+=`}
|
|
238
241
|
|
|
239
|
-
`,$+=
|
|
240
|
-
`}function
|
|
242
|
+
`,$+=rE(Q,`${q}Nested`,X),$+`
|
|
243
|
+
`}function rE(Q,q,X){let $=K_(Q),U="";if(X)U+=`/**
|
|
241
244
|
* Design tokens interface with nested structure
|
|
242
245
|
*/
|
|
243
246
|
`;return U+=`export interface ${q} {
|
|
244
|
-
`,U+=
|
|
247
|
+
`,U+=wJ($,1),U+=`}
|
|
245
248
|
|
|
246
249
|
`,U+`
|
|
247
|
-
`}function
|
|
250
|
+
`}function oE(Q,q){let $=Array.from(new Set(Q.map((Y)=>Y.cssVar))).map((Y)=>`"${Y}"`).join(`
|
|
248
251
|
| `),U="";if(q)U+=`/**
|
|
249
252
|
* All available CSS variable names
|
|
250
253
|
*/
|
|
@@ -252,7 +255,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
252
255
|
| ${$};
|
|
253
256
|
|
|
254
257
|
`,U+`
|
|
255
|
-
`}function
|
|
258
|
+
`}function aE(Q,q){let X="";if(q)X+=`/**
|
|
256
259
|
* Object containing all token values
|
|
257
260
|
*/
|
|
258
261
|
`;X+=`export const tokenValues = {
|
|
@@ -260,7 +263,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
260
263
|
`;X+=` "${$.name}": ${JSON.stringify($.value)},
|
|
261
264
|
`}return X+=`} as const;
|
|
262
265
|
|
|
263
|
-
`,X}function
|
|
266
|
+
`,X}function tE(Q,q){let X="";if(q)X+=`/**
|
|
264
267
|
* Array of all available icons
|
|
265
268
|
*/
|
|
266
269
|
`;X+=`export const icons: Icon[] = [
|
|
@@ -303,7 +306,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
303
306
|
`,X+=`}
|
|
304
307
|
|
|
305
308
|
`,X+`
|
|
306
|
-
`}function
|
|
309
|
+
`}function eE(Q,q){let X="";if(q)X+=`/**
|
|
307
310
|
* Object mapping token paths to CSS variable names
|
|
308
311
|
*/
|
|
309
312
|
`;X+=`export const cssVariableNames = {
|
|
@@ -311,7 +314,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
311
314
|
`;return X+=`} as const;
|
|
312
315
|
|
|
313
316
|
`,X+`
|
|
314
|
-
`}function
|
|
317
|
+
`}function Q_(Q,q){let X="";if(q)X+=`/**
|
|
315
318
|
* Get the value of a design token
|
|
316
319
|
*/
|
|
317
320
|
`;if(X+=`export function getTokenValue<T extends TokenPaths>(tokenPath: T): typeof tokenValues[T] {
|
|
@@ -340,10 +343,10 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
340
343
|
}
|
|
341
344
|
|
|
342
345
|
`,X+`
|
|
343
|
-
`}function
|
|
344
|
-
`,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+=`${$}};
|
|
345
348
|
`;else X+=`${$}${H}: ${Y};
|
|
346
|
-
`}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`/**
|
|
347
350
|
* ${Q}
|
|
348
351
|
* Generated: ${q}
|
|
349
352
|
*
|
|
@@ -351,7 +354,7 @@ ${z.sort().map((D)=>` ${D}`).join(`
|
|
|
351
354
|
* Do not edit this file directly - it will be overwritten.
|
|
352
355
|
*/
|
|
353
356
|
|
|
354
|
-
`}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=y1(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();v1();H6();N6();i$();l$();s$();W6();v1();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],L0=(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:L0??""};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")}`,y=FJ(k);DJ(y,{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=`/**
|
|
355
358
|
* Icon Names Type Definition
|
|
356
359
|
* Generated: ${new Date().toISOString()}
|
|
357
360
|
*
|
|
@@ -365,25 +368,25 @@ export const icons = [
|
|
|
365
368
|
] as const;
|
|
366
369
|
|
|
367
370
|
export type IconName = typeof icons[number];
|
|
368
|
-
`,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}
|
|
369
372
|
|
|
370
|
-
`;else
|
|
371
|
-
`,
|
|
372
|
-
`,
|
|
373
|
-
`,
|
|
374
|
-
`,
|
|
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+=` */
|
|
375
378
|
|
|
376
|
-
`;if($)
|
|
377
|
-
`;if(Y==="es"){if($)
|
|
379
|
+
`;if($)w+=CJ(E,U),w+=`
|
|
380
|
+
`;if(Y==="es"){if($)w+=`const breakpoints: Tokens = ${i9(E,U,0)};
|
|
378
381
|
|
|
379
|
-
`;else
|
|
382
|
+
`;else w+=`const breakpoints = ${i9(E,U,0)};
|
|
380
383
|
|
|
381
|
-
`;
|
|
382
|
-
`}else
|
|
384
|
+
`;w+=`export default breakpoints;
|
|
385
|
+
`}else w+=`const breakpoints = ${i9(E,U,0)};
|
|
383
386
|
|
|
384
|
-
`,
|
|
385
|
-
`,
|
|
386
|
-
`;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}
|
|
387
390
|
|
|
388
391
|
`;else G+=`/**
|
|
389
392
|
`,G+=` * Design Tokens - ${H?`${H.charAt(0).toUpperCase()+H.slice(1)} Theme`:"All Tokens"}
|
|
@@ -391,27 +394,27 @@ export type IconName = typeof icons[number];
|
|
|
391
394
|
`,G+=` * Do not edit this file directly
|
|
392
395
|
`,G+=` */
|
|
393
396
|
|
|
394
|
-
`;let z=
|
|
397
|
+
`;let z=TJ(Q,H);if(X)if(q.separateThemeFiles&&H)G+=`import type { Tokens } from "./${H}.d";
|
|
395
398
|
|
|
396
|
-
`;else G+=
|
|
397
|
-
`;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)};
|
|
398
401
|
|
|
399
|
-
`;else G+=`const tokens = ${
|
|
402
|
+
`;else G+=`const tokens = ${i9(z,$,0)};
|
|
400
403
|
|
|
401
404
|
`;G+=`export default tokens;
|
|
402
405
|
`;let O=Object.keys(z);if(O.length>0){G+=`
|
|
403
406
|
// Named exports for convenience
|
|
404
|
-
`;for(let
|
|
405
|
-
`}}else G+=`const tokens = ${
|
|
407
|
+
`;for(let E of O)G+=`export const ${E} = tokens.${E};
|
|
408
|
+
`}}else G+=`const tokens = ${i9(z,$,0)};
|
|
406
409
|
|
|
407
410
|
`,G+=`module.exports = tokens;
|
|
408
411
|
`,G+=`module.exports.default = tokens;
|
|
409
412
|
`;return G+`
|
|
410
|
-
`}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+=`/**
|
|
411
414
|
* Token object type definition
|
|
412
415
|
*/
|
|
413
|
-
`;return X+=`type Tokens = ${
|
|
414
|
-
`,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+=`${$}
|
|
415
418
|
|
|
416
419
|
`;else{let H=X?` - ${X.charAt(0).toUpperCase()+X.slice(1)} Theme`:"";Y+=`/**
|
|
417
420
|
`,Y+=` * Universe Design System Tokens - Type Definitions${H}
|
|
@@ -422,13 +425,13 @@ export type IconName = typeof icons[number];
|
|
|
422
425
|
`}if(U)Y+=`/**
|
|
423
426
|
* Token object type definition
|
|
424
427
|
*/
|
|
425
|
-
`;return Y+=`export type Tokens = ${
|
|
428
|
+
`;return Y+=`export type Tokens = ${uZ(Q,0)};
|
|
426
429
|
`,Y+`
|
|
427
|
-
`}function
|
|
428
|
-
`;for(let[Y,H]of $){let G=
|
|
429
|
-
`}return U+=" ".repeat(q)+"}",U}function
|
|
430
|
-
`;for(let G=0;G<Y.length;G++){let[z,O]=Y[G],
|
|
431
|
-
`;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?"":","}
|
|
432
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}
|
|
433
436
|
|
|
434
437
|
`;else H+=`/**
|
|
@@ -447,7 +450,7 @@ export type IconName = typeof icons[number];
|
|
|
447
450
|
// Default export points to light theme
|
|
448
451
|
`,H+=`module.exports = require('./light');
|
|
449
452
|
`}return H+`
|
|
450
|
-
`}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(`
|
|
451
454
|
|
|
452
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(`
|
|
453
456
|
⚠️ Warnings:`);for(let q of Q.warnings)console.log(` ${q}`)}if(Q.errors.length>0){console.log(`
|
|
@@ -455,7 +458,7 @@ Build Validation Results:`),console.log("=======================================
|
|
|
455
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(`
|
|
456
459
|
${Q.isValid?"✅":"❌"} Build ${Q.isValid?"passed":"failed"}`),console.log(`
|
|
457
460
|
========================================================
|
|
458
|
-
`)}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=`/**
|
|
459
462
|
* ${q} Design System - Main CSS Entry Point
|
|
460
463
|
* Generated: ${new Date().toISOString()}
|
|
461
464
|
*
|
|
@@ -468,7 +471,7 @@ ${Q.isValid?"✅":"❌"} Build ${Q.isValid?"passed":"failed"}`),console.log(`
|
|
|
468
471
|
${U.join(`
|
|
469
472
|
`)}
|
|
470
473
|
`;return{fileName:`${q}.design-system.tokens.css`,content:G+`
|
|
471
|
-
`,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=`/**
|
|
472
475
|
* ${q} Design System - Raw/Inline CSS
|
|
473
476
|
* Generated: ${new Date().toISOString()}
|
|
474
477
|
*
|
|
@@ -482,49 +485,49 @@ ${U.join(`
|
|
|
482
485
|
${z.join(`
|
|
483
486
|
|
|
484
487
|
`)}
|
|
485
|
-
`;return{fileName:`${q}.design-system.tokens.raw.css`,content:
|
|
486
|
-
`,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.
|
|
487
490
|
`+` Tokens dir: ${Q}
|
|
488
491
|
Compositions dir: ${q}
|
|
489
|
-
Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function
|
|
490
|
-
`),O.length===0)
|
|
491
|
-
`);U.push({fileName:z,content:
|
|
492
|
-
`,theme:void 0})}return U}async function
|
|
493
|
-
Starting token build process...`,Q.verbose);let{initializeColorspace:$}=await Promise.resolve().then(() => (
|
|
494
|
-
Generating CSS files...`,Q.verbose);let O=
|
|
495
|
-
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
|
|
496
|
-
Processing composition files...`,Q.verbose);let
|
|
497
|
-
Generating TypeScript files...`,Q.verbose);let O=
|
|
498
|
-
Generating JavaScript files...`,Q.verbose);let O=
|
|
499
|
-
Generating JSON files...`,Q.verbose);let O=
|
|
500
|
-
Build completed in ${X.duration}ms`,Q.verbose)}catch($){let U=$ instanceof Error?$.message:String($);X.errors.push(U),
|
|
501
|
-
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 vJ(Q,q){try{let X=A_(Q,{withFileTypes:!0});for(let $ of X){let U=e0(Q,$.name);if($.isDirectory())vJ(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())vJ(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=yJ(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 yZ();if(O.length>0){let E=yJ(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 y of G){let g=Array.isArray(y.path)?y.path.join("."):y.path;b.set(g,y)}let k=C_(x,Q.config,b,Q.outputDir);for(let y of k){let g=e0(Q.outputDir,"css",y.fileName);x9(g,y.content),E0(` ✓ Generated ${y.fileName}`,Q.verbose),X.cssFiles.push(y)}}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 vZ(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 yJ(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:`/**
|
|
502
505
|
* ${Q.$name}
|
|
503
506
|
* Generated: ${new Date().toISOString()}
|
|
504
|
-
*/`}}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+`
|
|
505
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+`
|
|
506
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+`
|
|
507
|
-
`}),$}function
|
|
508
|
-
\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
|
|
509
|
-
Files to generate: ${z.size}`);for(let[
|
|
510
|
-
`),
|
|
511
|
-
`);
|
|
512
|
-
`)?
|
|
513
|
-
`;if(await
|
|
514
|
-
|
|
515
|
-
`)}async function
|
|
516
|
-
`);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 y_}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,y=k&&(k.mediaQuery||k.parentSelector||k.containerQuery||k.customAtRule),g="",u=[];if(y){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(`
|
|
517
520
|
`)+`
|
|
518
|
-
`;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
|
|
519
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
|
|
520
|
-
`)}
|
|
521
|
-
========================================================`),console.log("\uD83D\uDE80 Token Editor is ready!"),console.log("========================================================"),console.log(`\uD83D\uDCDD Open in browser: http://localhost:${
|
|
522
|
-
`)})}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 v_=`<!DOCTYPE html>
|
|
523
526
|
<html lang="en">
|
|
524
527
|
<head>
|
|
525
528
|
<meta charset="UTF-8">
|
|
526
529
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
527
|
-
<title>@DesignID
|
|
530
|
+
<title>@DesignID Tokens Editor</title>
|
|
528
531
|
<style>
|
|
529
532
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
530
533
|
|
|
@@ -566,6 +569,7 @@ body {
|
|
|
566
569
|
padding: 12px 16px;
|
|
567
570
|
background: transparent;
|
|
568
571
|
border: none;
|
|
572
|
+
border-radius: 0;
|
|
569
573
|
border-bottom: 3px solid transparent;
|
|
570
574
|
cursor: pointer;
|
|
571
575
|
font-size: 14px;
|
|
@@ -662,6 +666,7 @@ body {
|
|
|
662
666
|
display: flex;
|
|
663
667
|
align-items: center;
|
|
664
668
|
gap: 6px;
|
|
669
|
+
font-size: 13px;
|
|
665
670
|
}
|
|
666
671
|
|
|
667
672
|
.tree-item:hover {
|
|
@@ -673,6 +678,31 @@ body {
|
|
|
673
678
|
color: #1976d2;
|
|
674
679
|
}
|
|
675
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
|
+
|
|
676
706
|
.tree-item.folder {
|
|
677
707
|
font-weight: 500;
|
|
678
708
|
}
|
|
@@ -903,7 +933,7 @@ button:hover {
|
|
|
903
933
|
<body>
|
|
904
934
|
<div class="container">
|
|
905
935
|
<div class="sidebar">
|
|
906
|
-
<h1>@DesignID
|
|
936
|
+
<h1>@DesignID Tokens Editor</h1>
|
|
907
937
|
|
|
908
938
|
<!-- View Tabs -->
|
|
909
939
|
<div class="view-tabs">
|
|
@@ -954,7 +984,7 @@ button:hover {
|
|
|
954
984
|
<div class="editor">
|
|
955
985
|
<div id="editor-content">
|
|
956
986
|
<div class="empty-state">
|
|
957
|
-
<h3>Welcome to @DesignID
|
|
987
|
+
<h3>Welcome to @DesignID Tokens Editor</h3>
|
|
958
988
|
<p>Get started by creating tokens or compositions</p>
|
|
959
989
|
<br>
|
|
960
990
|
<div style="display: flex; gap: 12px; justify-content: center;">
|
|
@@ -966,6 +996,7 @@ button:hover {
|
|
|
966
996
|
</div>
|
|
967
997
|
</div>
|
|
968
998
|
|
|
999
|
+
<script src="https://cdn.jsdelivr.net/npm/colorjs.io@0.5.2/dist/color.global.js"></script>
|
|
969
1000
|
<script>
|
|
970
1001
|
/* eslint-env browser */
|
|
971
1002
|
|
|
@@ -986,6 +1017,39 @@ let selectedComposition = null;
|
|
|
986
1017
|
let compositionFiles = []; // Available composition files
|
|
987
1018
|
let currentView = 'tokens'; // 'tokens' or 'compositions'
|
|
988
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
|
+
|
|
989
1053
|
// ==================== ROUTING SYSTEM ====================
|
|
990
1054
|
|
|
991
1055
|
/**
|
|
@@ -1165,6 +1229,18 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
|
1165
1229
|
handleRoute();
|
|
1166
1230
|
});
|
|
1167
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
|
+
|
|
1168
1244
|
// ==================== VIEW SWITCHING (Legacy - now uses router) ====================
|
|
1169
1245
|
|
|
1170
1246
|
// Switch between Tokens and Compositions views
|
|
@@ -1693,6 +1769,9 @@ function renderTree() {
|
|
|
1693
1769
|
const html = renderTokenNode(tokens);
|
|
1694
1770
|
tree.innerHTML = html;
|
|
1695
1771
|
|
|
1772
|
+
// Restore saved tree state from localStorage
|
|
1773
|
+
restoreTreeState('#token-tree', 'tokensTreeState');
|
|
1774
|
+
|
|
1696
1775
|
// Restore selection from URL after rendering
|
|
1697
1776
|
restoreSelectionFromURL();
|
|
1698
1777
|
}
|
|
@@ -1710,6 +1789,131 @@ function buildNodeMap(nodes) {
|
|
|
1710
1789
|
}
|
|
1711
1790
|
}
|
|
1712
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
|
+
|
|
1713
1917
|
function renderTokenNode(nodes, level = 0) {
|
|
1714
1918
|
if (!nodes || nodes.length === 0) return '';
|
|
1715
1919
|
|
|
@@ -1721,21 +1925,59 @@ function renderTokenNode(nodes, level = 0) {
|
|
|
1721
1925
|
|
|
1722
1926
|
let html = \`<div class="tree-node" data-path="\${nodePath}">\`;
|
|
1723
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
|
+
|
|
1724
1932
|
// Render the item with expand/collapse toggle
|
|
1725
1933
|
// Pass just the path instead of the full node object
|
|
1726
|
-
html += \`<div class="tree-item \${hasChildren ? 'folder' : ''}"
|
|
1934
|
+
html += \`<div class="tree-item \${hasChildren ? 'folder' : ''} \${hasDraft ? 'has-draft' : ''} \${isTemporary ? 'temporary' : ''}"
|
|
1727
1935
|
onclick="selectToken(event, '\${nodePath}')">\`;
|
|
1728
1936
|
|
|
1729
1937
|
if (hasChildren) {
|
|
1730
|
-
html += \`<span class="tree-toggle" onclick="
|
|
1938
|
+
html += \`<span class="tree-toggle" onclick="toggleTokenNode(event, '\${nodeId}')">▼</span>\`;
|
|
1731
1939
|
} else {
|
|
1732
1940
|
html += \`<span style="width: 16px;"></span>\`;
|
|
1733
1941
|
}
|
|
1734
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
|
+
|
|
1735
1970
|
html += \`\${node.name}\`;
|
|
1736
1971
|
|
|
1737
1972
|
if (isToken) {
|
|
1738
|
-
|
|
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
|
+
}
|
|
1739
1981
|
}
|
|
1740
1982
|
|
|
1741
1983
|
html += '</div>';
|
|
@@ -1750,9 +1992,13 @@ function renderTokenNode(nodes, level = 0) {
|
|
|
1750
1992
|
}).join('');
|
|
1751
1993
|
}
|
|
1752
1994
|
|
|
1753
|
-
// Token-specific wrapper functions
|
|
1995
|
+
// Token-specific wrapper functions
|
|
1996
|
+
function toggleTokenNode(event, nodeId) {
|
|
1997
|
+
return toggleTreeNode(event, nodeId, '#token-tree', 'tokensTreeState');
|
|
1998
|
+
}
|
|
1999
|
+
|
|
1754
2000
|
function toggleNode(event, nodeId) {
|
|
1755
|
-
return
|
|
2001
|
+
return toggleTokenNode(event, nodeId);
|
|
1756
2002
|
}
|
|
1757
2003
|
|
|
1758
2004
|
function expandAll() {
|
|
@@ -1772,8 +2018,9 @@ function collapseAll() {
|
|
|
1772
2018
|
* @param {Event} event - The click event
|
|
1773
2019
|
* @param {string} nodeId - The ID of the node to toggle
|
|
1774
2020
|
* @param {string} scope - Optional scope selector to limit query (e.g., '#compositions-list')
|
|
2021
|
+
* @param {string} storageKey - Optional localStorage key to save state
|
|
1775
2022
|
*/
|
|
1776
|
-
function toggleTreeNode(event, nodeId, scope = '') {
|
|
2023
|
+
function toggleTreeNode(event, nodeId, scope = '', storageKey = null) {
|
|
1777
2024
|
if (event) event.stopPropagation();
|
|
1778
2025
|
|
|
1779
2026
|
const childrenElement = document.getElementById(nodeId);
|
|
@@ -1793,6 +2040,60 @@ function toggleTreeNode(event, nodeId, scope = '') {
|
|
|
1793
2040
|
childrenElement.classList.add('collapsed');
|
|
1794
2041
|
if (toggle) toggle.classList.add('collapsed');
|
|
1795
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
|
+
}
|
|
1796
2097
|
}
|
|
1797
2098
|
|
|
1798
2099
|
/**
|
|
@@ -1929,6 +2230,9 @@ function clearSearch() {
|
|
|
1929
2230
|
function selectToken(event, nodePath) {
|
|
1930
2231
|
event.stopPropagation();
|
|
1931
2232
|
|
|
2233
|
+
// Save current token draft if needed before navigating
|
|
2234
|
+
saveTokenDraftIfNeeded();
|
|
2235
|
+
|
|
1932
2236
|
// Look up the node from the path
|
|
1933
2237
|
const node = nodesByPath.get(nodePath);
|
|
1934
2238
|
if (!node) {
|
|
@@ -1938,8 +2242,9 @@ function selectToken(event, nodePath) {
|
|
|
1938
2242
|
const clickedItem = event.currentTarget;
|
|
1939
2243
|
const wasSelected = clickedItem.classList.contains('selected');
|
|
1940
2244
|
|
|
2245
|
+
// Just highlight the item for reference - don't navigate away from current form
|
|
1941
2246
|
// Remove previous selection
|
|
1942
|
-
document.querySelectorAll('.tree-item').forEach(el => el.classList.remove('selected'));
|
|
2247
|
+
document.querySelectorAll('#token-tree .tree-item').forEach(el => el.classList.remove('selected'));
|
|
1943
2248
|
|
|
1944
2249
|
// If this folder was already selected, navigate to parent
|
|
1945
2250
|
const hasChildren = node.children && node.children.length > 0;
|
|
@@ -1973,29 +2278,14 @@ function selectToken(event, nodePath) {
|
|
|
1973
2278
|
updateURL(node.path);
|
|
1974
2279
|
}
|
|
1975
2280
|
|
|
1976
|
-
// If this is a folder (has children),
|
|
2281
|
+
// If this is a folder (has children), show add form (without filtering)
|
|
1977
2282
|
if (hasChildren && node.path) {
|
|
1978
|
-
const searchInput = document.getElementById('search-input');
|
|
1979
|
-
searchInput.value = node.path;
|
|
1980
|
-
searchTree(node.path);
|
|
1981
2283
|
showAddForm(node.path);
|
|
1982
2284
|
}
|
|
1983
2285
|
|
|
1984
|
-
// If it's a token, show the editor
|
|
2286
|
+
// If it's a token, show the editor (without filtering)
|
|
1985
2287
|
if (node.type && node.value !== undefined) {
|
|
1986
2288
|
selectedToken = node;
|
|
1987
|
-
|
|
1988
|
-
// Get parent path for filtering
|
|
1989
|
-
const pathParts = node.path.split('.');
|
|
1990
|
-
pathParts.pop(); // Remove token name
|
|
1991
|
-
const parentPath = pathParts.join('.');
|
|
1992
|
-
|
|
1993
|
-
if (parentPath) {
|
|
1994
|
-
const searchInput = document.getElementById('search-input');
|
|
1995
|
-
searchInput.value = parentPath;
|
|
1996
|
-
searchTree(parentPath);
|
|
1997
|
-
}
|
|
1998
|
-
|
|
1999
2289
|
showTokenEditor(node);
|
|
2000
2290
|
}
|
|
2001
2291
|
}
|
|
@@ -2077,30 +2367,17 @@ function restoreSelectionFromURL() {
|
|
|
2077
2367
|
element.classList.add('selected');
|
|
2078
2368
|
element.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
2079
2369
|
|
|
2080
|
-
// If
|
|
2370
|
+
// If this is a folder (has children), show add form (without filtering)
|
|
2081
2371
|
const hasChildren = node.children && node.children.length > 0;
|
|
2082
2372
|
if (hasChildren) {
|
|
2083
2373
|
const searchInput = document.getElementById('search-input');
|
|
2084
2374
|
searchInput.value = path;
|
|
2085
|
-
searchTree(path);
|
|
2086
2375
|
showAddForm(path);
|
|
2087
2376
|
}
|
|
2088
2377
|
|
|
2089
|
-
// If it's a token, show the editor
|
|
2378
|
+
// If it's a token, show the editor (without filtering)
|
|
2090
2379
|
if (node.type && node.value !== undefined) {
|
|
2091
2380
|
selectedToken = node;
|
|
2092
|
-
|
|
2093
|
-
// Get parent path for filtering
|
|
2094
|
-
const pathParts = path.split('.');
|
|
2095
|
-
pathParts.pop(); // Remove token name
|
|
2096
|
-
const parentPath = pathParts.join('.');
|
|
2097
|
-
|
|
2098
|
-
if (parentPath) {
|
|
2099
|
-
const searchInput = document.getElementById('search-input');
|
|
2100
|
-
searchInput.value = parentPath;
|
|
2101
|
-
searchTree(parentPath);
|
|
2102
|
-
}
|
|
2103
|
-
|
|
2104
2381
|
showTokenEditor(node);
|
|
2105
2382
|
}
|
|
2106
2383
|
|
|
@@ -2110,13 +2387,17 @@ function restoreSelectionFromURL() {
|
|
|
2110
2387
|
}
|
|
2111
2388
|
|
|
2112
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
|
+
|
|
2113
2394
|
const editor = document.getElementById('editor-content');
|
|
2114
2395
|
const fileOptions = Object.keys(files).map(f =>
|
|
2115
|
-
\`<option value="\${f}" \${f === token.filePath ? 'selected' : ''}>\${f}</option>\`
|
|
2396
|
+
\`<option value="\${f}" \${f === (dataToShow.filePath || token.filePath) ? 'selected' : ''}>\${f}</option>\`
|
|
2116
2397
|
).join('');
|
|
2117
2398
|
|
|
2118
|
-
// Extract mode values if
|
|
2119
|
-
const modes = token.$extensions?.$mode || {};
|
|
2399
|
+
// Extract mode values - use draft modes if available
|
|
2400
|
+
const modes = dataToShow.modes || token.$extensions?.$mode || {};
|
|
2120
2401
|
const hasModes = Object.keys(modes).length > 0;
|
|
2121
2402
|
|
|
2122
2403
|
// Generate mode input fields dynamically based on config
|
|
@@ -2125,7 +2406,7 @@ function showTokenEditor(token) {
|
|
|
2125
2406
|
.filter(modeKey => modeKey !== 'default')
|
|
2126
2407
|
.map(modeKey => {
|
|
2127
2408
|
const modeLabel = availableModes[modeKey];
|
|
2128
|
-
const modeValue = modes[
|
|
2409
|
+
const modeValue = modes[modeKey] || '';
|
|
2129
2410
|
const displayName = modeLabel.charAt(0).toUpperCase() + modeLabel.slice(1);
|
|
2130
2411
|
|
|
2131
2412
|
// Check if token type is composition - modes should match
|
|
@@ -2166,10 +2447,10 @@ function showTokenEditor(token) {
|
|
|
2166
2447
|
}).join('');
|
|
2167
2448
|
|
|
2168
2449
|
editor.innerHTML = \`
|
|
2169
|
-
<h2>Edit Token</h2>
|
|
2450
|
+
<h2>Edit Token \${draft ? '<span style="color: #ff9800; font-size: 14px;">(Unsaved Changes)</span>' : ''}</h2>
|
|
2170
2451
|
<div class="form-group">
|
|
2171
2452
|
<label>Path</label>
|
|
2172
|
-
<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}')">
|
|
2173
2454
|
<div class="path-exists-warning" id="path-warning"></div>
|
|
2174
2455
|
</div>
|
|
2175
2456
|
<div class="form-group">
|
|
@@ -2181,24 +2462,24 @@ function showTokenEditor(token) {
|
|
|
2181
2462
|
<div class="form-group">
|
|
2182
2463
|
<label>Type</label>
|
|
2183
2464
|
<select id="token-type" onchange="handleTypeChange(true)">
|
|
2184
|
-
<option value="color" \${
|
|
2185
|
-
<option value="dimension" \${
|
|
2186
|
-
<option value="string" \${
|
|
2187
|
-
<option value="number" \${
|
|
2188
|
-
<option value="fontFamily" \${
|
|
2189
|
-
<option value="fontWeight" \${
|
|
2190
|
-
<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>
|
|
2191
2472
|
</select>
|
|
2192
2473
|
</div>
|
|
2193
2474
|
<div class="form-group">
|
|
2194
2475
|
<label>Value (Default)</label>
|
|
2195
2476
|
<div id="value-container">
|
|
2196
|
-
\${
|
|
2477
|
+
\${dataToShow.type === 'composition' ? \`
|
|
2197
2478
|
<div style="margin-top: 10px;">
|
|
2198
|
-
\${renderCompositionEditor(
|
|
2479
|
+
\${renderCompositionEditor(dataToShow.value, 'token-value')}
|
|
2199
2480
|
</div>
|
|
2200
2481
|
\` : \`
|
|
2201
|
-
<input type="text" id="token-value" value="\${
|
|
2482
|
+
<input type="text" id="token-value" value="\${dataToShow.value}" autocomplete="off">
|
|
2202
2483
|
\`}
|
|
2203
2484
|
</div>
|
|
2204
2485
|
</div>
|
|
@@ -2220,9 +2501,27 @@ function showTokenEditor(token) {
|
|
|
2220
2501
|
|
|
2221
2502
|
<div class="form-group">
|
|
2222
2503
|
<label>Description</label>
|
|
2223
|
-
<textarea id="token-description">\${
|
|
2504
|
+
<textarea id="token-description">\${dataToShow.description || dataToShow.$description || ''}</textarea>
|
|
2224
2505
|
</div>
|
|
2225
|
-
|
|
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;">
|
|
2226
2525
|
<button onclick="saveToken()">Save Token</button>
|
|
2227
2526
|
<button onclick="duplicateToken()" style="background: #9C27B0;">Duplicate Token</button>
|
|
2228
2527
|
<button onclick="location.reload()" style="background: #666;">Cancel</button>
|
|
@@ -2243,11 +2542,40 @@ function showTokenEditor(token) {
|
|
|
2243
2542
|
});
|
|
2244
2543
|
}
|
|
2245
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
|
+
|
|
2246
2574
|
// Setup autocomplete for all mode inputs
|
|
2247
2575
|
Object.keys(availableModes).forEach(modeKey => {
|
|
2248
2576
|
if (modeKey === 'default') return;
|
|
2249
2577
|
|
|
2250
|
-
if (
|
|
2578
|
+
if (dataToShow.type === 'composition') {
|
|
2251
2579
|
// Setup autocomplete for composition mode inputs
|
|
2252
2580
|
const modeEditor = document.querySelector(\`[data-id-prefix="mode-\${modeKey}"]\`);
|
|
2253
2581
|
if (modeEditor) {
|
|
@@ -2263,6 +2591,16 @@ function showTokenEditor(token) {
|
|
|
2263
2591
|
}
|
|
2264
2592
|
}
|
|
2265
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
|
+
});
|
|
2266
2604
|
}
|
|
2267
2605
|
|
|
2268
2606
|
function toggleModeValues() {
|
|
@@ -2278,7 +2616,23 @@ function toggleModeValues() {
|
|
|
2278
2616
|
}
|
|
2279
2617
|
|
|
2280
2618
|
function showAddForm(prefillPath = '') {
|
|
2619
|
+
// Clear selectedToken since we're adding a new token, not editing an existing one
|
|
2620
|
+
selectedToken = null;
|
|
2621
|
+
|
|
2281
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
|
+
|
|
2282
2636
|
const fileOptions = Object.keys(files).map(f => \`<option value="\${f}">\${f}</option>\`).join('');
|
|
2283
2637
|
|
|
2284
2638
|
// If a path is provided, suggest adding a child token
|
|
@@ -2286,7 +2640,9 @@ function showAddForm(prefillPath = '') {
|
|
|
2286
2640
|
? \`\${prefillPath}.newToken\`
|
|
2287
2641
|
: 'universe.foundation.color.newColor';
|
|
2288
2642
|
|
|
2289
|
-
const pathValue = prefillPath ? \`\${prefillPath}.\` : '';
|
|
2643
|
+
const pathValue = draftToRestore?.path || (prefillPath ? \`\${prefillPath}.\` : '');
|
|
2644
|
+
const typeValue = draftToRestore?.type || 'color';
|
|
2645
|
+
const descriptionValue = draftToRestore?.description || '';
|
|
2290
2646
|
|
|
2291
2647
|
// Generate mode input fields dynamically based on config
|
|
2292
2648
|
// Skip 'default' mode as it's already covered by the main Value field
|
|
@@ -2335,25 +2691,28 @@ function showAddForm(prefillPath = '') {
|
|
|
2335
2691
|
</div>
|
|
2336
2692
|
<div class="form-group">
|
|
2337
2693
|
<label>Token Path (e.g., \${pathPlaceholder})</label>
|
|
2338
|
-
<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">
|
|
2339
2695
|
<div class="path-exists-warning" id="path-warning"></div>
|
|
2340
2696
|
</div>
|
|
2341
2697
|
<div class="form-group">
|
|
2342
2698
|
<label>Type</label>
|
|
2343
2699
|
<select id="token-type" onchange="handleTypeChange(false)">
|
|
2344
|
-
<option value="color">color</option>
|
|
2345
|
-
<option value="dimension">dimension</option>
|
|
2346
|
-
<option value="string">string</option>
|
|
2347
|
-
<option value="number">number</option>
|
|
2348
|
-
<option value="fontFamily">fontFamily</option>
|
|
2349
|
-
<option value="fontWeight">fontWeight</option>
|
|
2350
|
-
<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>
|
|
2351
2707
|
</select>
|
|
2352
2708
|
</div>
|
|
2353
2709
|
<div class="form-group">
|
|
2354
2710
|
<label>Value (Default)</label>
|
|
2355
2711
|
<div id="value-container">
|
|
2356
|
-
|
|
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
|
+
}
|
|
2357
2716
|
</div>
|
|
2358
2717
|
</div>
|
|
2359
2718
|
|
|
@@ -2374,10 +2733,30 @@ function showAddForm(prefillPath = '') {
|
|
|
2374
2733
|
|
|
2375
2734
|
<div class="form-group">
|
|
2376
2735
|
<label>Description (optional)</label>
|
|
2377
|
-
<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>
|
|
2378
2759
|
</div>
|
|
2379
|
-
<button onclick="addToken()">Add Token</button>
|
|
2380
|
-
<button onclick="location.reload()" style="background: #666; margin-left: 10px;">Cancel</button>
|
|
2381
2760
|
\`;
|
|
2382
2761
|
|
|
2383
2762
|
// Focus on the path input at the end (after the pre-filled path)
|
|
@@ -2394,6 +2773,32 @@ function showAddForm(prefillPath = '') {
|
|
|
2394
2773
|
setupAutocomplete(valueInput);
|
|
2395
2774
|
}
|
|
2396
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
|
+
|
|
2397
2802
|
// Setup autocomplete for all mode inputs
|
|
2398
2803
|
Object.keys(availableModes).forEach(modeKey => {
|
|
2399
2804
|
const input = document.getElementById(\`mode-\${modeKey}\`);
|
|
@@ -2401,9 +2806,60 @@ function showAddForm(prefillPath = '') {
|
|
|
2401
2806
|
setupAutocomplete(input);
|
|
2402
2807
|
}
|
|
2403
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
|
+
});
|
|
2404
2833
|
}, 0);
|
|
2405
2834
|
}
|
|
2406
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
|
+
|
|
2407
2863
|
// Check if a token path already exists and show warning
|
|
2408
2864
|
function checkPathExists(inputElement, currentPath = '') {
|
|
2409
2865
|
const newPath = inputElement.value.trim();
|
|
@@ -2501,6 +2957,23 @@ function validateTokenPath(path) {
|
|
|
2501
2957
|
};
|
|
2502
2958
|
}
|
|
2503
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
|
+
|
|
2504
2977
|
async function addToken() {
|
|
2505
2978
|
const path = document.getElementById('token-path').value;
|
|
2506
2979
|
const type = document.getElementById('token-type').value;
|
|
@@ -2766,6 +3239,9 @@ async function saveToken() {
|
|
|
2766
3239
|
});
|
|
2767
3240
|
|
|
2768
3241
|
if (addResponse.ok) {
|
|
3242
|
+
// Clear draft after successful save
|
|
3243
|
+
clearTokenDraft(selectedToken.path);
|
|
3244
|
+
|
|
2769
3245
|
// Update URL with new path
|
|
2770
3246
|
const url = new URL(window.location);
|
|
2771
3247
|
url.searchParams.set('path', newPath);
|
|
@@ -2794,6 +3270,8 @@ async function saveToken() {
|
|
|
2794
3270
|
});
|
|
2795
3271
|
|
|
2796
3272
|
if (response.ok) {
|
|
3273
|
+
// Clear draft after successful save
|
|
3274
|
+
clearTokenDraft(selectedToken.path);
|
|
2797
3275
|
location.reload();
|
|
2798
3276
|
} else {
|
|
2799
3277
|
alert('Error updating token');
|
|
@@ -3022,6 +3500,31 @@ function renderCompositionsList() {
|
|
|
3022
3500
|
// Build tree structure organized by fileName
|
|
3023
3501
|
const tree = buildCompositionsTree(compositions);
|
|
3024
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');
|
|
3025
3528
|
}
|
|
3026
3529
|
|
|
3027
3530
|
/**
|
|
@@ -3031,14 +3534,22 @@ function buildCompositionsTree(compositions) {
|
|
|
3031
3534
|
const root = { name: 'root', children: [], compositions: [] };
|
|
3032
3535
|
|
|
3033
3536
|
compositions.forEach(comp => {
|
|
3034
|
-
|
|
3035
|
-
|
|
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() === '') {
|
|
3036
3547
|
root.compositions.push({ ...comp, _missingFileName: true });
|
|
3037
3548
|
return;
|
|
3038
3549
|
}
|
|
3039
3550
|
|
|
3040
|
-
// Split the
|
|
3041
|
-
const fileName =
|
|
3551
|
+
// Split the path into parts (e.g., "buttons" -> ["buttons"], "forms/input" -> ["forms", "input"])
|
|
3552
|
+
const fileName = pathToUse.replace(/\\.css$/, '');
|
|
3042
3553
|
const parts = fileName.split('/').filter(Boolean);
|
|
3043
3554
|
|
|
3044
3555
|
// Navigate/create the tree structure
|
|
@@ -3070,6 +3581,24 @@ function buildCompositionsTree(compositions) {
|
|
|
3070
3581
|
return root;
|
|
3071
3582
|
}
|
|
3072
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
|
+
|
|
3073
3602
|
/**
|
|
3074
3603
|
* Render compositions tree node recursively (similar pattern to renderTokenNode)
|
|
3075
3604
|
*/
|
|
@@ -3104,11 +3633,16 @@ function renderCompositionsNode(node, level = 0, parentPath = '') {
|
|
|
3104
3633
|
const fullPath = child.path || child.name;
|
|
3105
3634
|
|
|
3106
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
|
+
|
|
3107
3641
|
// Render as folder with toggle
|
|
3108
3642
|
html += \`<div class="tree-node" data-level="\${level}" data-path="\${fullPath}" data-folder-path="\${fullPath}">\`;
|
|
3109
|
-
html += \`<div class="tree-item folder" onclick="
|
|
3643
|
+
html += \`<div class="tree-item folder"\${folderColor} onclick="selectCompositionFolder(event, '\${fullPath}')">\`;
|
|
3110
3644
|
html += \`<span class="tree-toggle" onclick="toggleTreeNode(event, '\${nodeId}')">▼</span>\`;
|
|
3111
|
-
html +=
|
|
3645
|
+
html += \`\${folderIcon} \${child.name}\`;
|
|
3112
3646
|
if (hasCompositions) {
|
|
3113
3647
|
html += \` <span style="color: #999; font-size: 11px;">(\${child.compositions.length})</span>\`;
|
|
3114
3648
|
}
|
|
@@ -3141,17 +3675,19 @@ function renderCompositionsNode(node, level = 0, parentPath = '') {
|
|
|
3141
3675
|
*/
|
|
3142
3676
|
function renderCompositionLeaf(comp, level, uniqueId, isWarning = false) {
|
|
3143
3677
|
const isSelected = selectedComposition?.id === comp.id;
|
|
3678
|
+
const hasDraft = drafts.has(comp.id);
|
|
3144
3679
|
|
|
3145
3680
|
let html = \`<div class="tree-node" data-level="\${level}" data-comp-id="\${comp.id}">\`;
|
|
3146
|
-
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;">\`;
|
|
3147
3682
|
html += \`<span style="width: 16px; display: inline-block;"></span>\`; // Spacer
|
|
3148
3683
|
|
|
3684
|
+
html += \`<div style="display: flex; align-items: center; gap: 4px;">\`;
|
|
3149
3685
|
if (isWarning) {
|
|
3150
3686
|
html += \`⚠️ \`;
|
|
3151
3687
|
}
|
|
3152
|
-
|
|
3153
|
-
html +=
|
|
3154
|
-
html +=
|
|
3688
|
+
html += \`<span>\${comp.name}</span>\`;
|
|
3689
|
+
html += \`</div>\`;
|
|
3690
|
+
html += \`<span style="color: #999; font-size: 11px;">\${comp.selector}</span>\`;
|
|
3155
3691
|
html += \`</div></div>\`;
|
|
3156
3692
|
|
|
3157
3693
|
return html;
|
|
@@ -3166,11 +3702,398 @@ function collapseAllCompositions() {
|
|
|
3166
3702
|
collapseAllNodes('#compositions-list');
|
|
3167
3703
|
}
|
|
3168
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
|
+
|
|
3169
4065
|
// Select a composition
|
|
3170
4066
|
function selectComposition(id) {
|
|
4067
|
+
// Save current form state as draft if there are changes
|
|
4068
|
+
saveDraftIfNeeded();
|
|
4069
|
+
|
|
4070
|
+
// Navigate to the composition
|
|
3171
4071
|
navigate(\`/compositions/\${id}\`);
|
|
3172
4072
|
}
|
|
3173
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
|
+
|
|
3174
4097
|
// Search compositions
|
|
3175
4098
|
function handleCompositionsSearchInput(value) {
|
|
3176
4099
|
searchCompositions(value);
|
|
@@ -3258,47 +4181,91 @@ function searchCompositions(query) {
|
|
|
3258
4181
|
});
|
|
3259
4182
|
}
|
|
3260
4183
|
|
|
3261
|
-
// Show
|
|
3262
|
-
function
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
const folderName = prefillPath ? prefillPath.split('/').pop() : '';
|
|
3267
|
-
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;
|
|
3268
4189
|
|
|
3269
4190
|
const editorContent = document.getElementById('editor-content');
|
|
3270
4191
|
editorContent.innerHTML = \`
|
|
3271
|
-
<h2>
|
|
3272
|
-
<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>
|
|
3273
4193
|
|
|
3274
|
-
\${renderCompositionForm(
|
|
4194
|
+
\${renderCompositionForm(dataToShow, true)}
|
|
3275
4195
|
\`;
|
|
3276
4196
|
|
|
3277
4197
|
// Initialize autocomplete on existing property inputs
|
|
3278
4198
|
initializeCompositionAutocomplete();
|
|
3279
4199
|
|
|
3280
|
-
//
|
|
3281
|
-
|
|
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
|
+
});
|
|
3282
4225
|
}
|
|
3283
4226
|
|
|
3284
|
-
//
|
|
3285
|
-
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
|
+
|
|
3286
4240
|
const editorContent = document.getElementById('editor-content');
|
|
4241
|
+
const targetFile = suggestedFile || compositionFiles[0] || '';
|
|
4242
|
+
|
|
3287
4243
|
editorContent.innerHTML = \`
|
|
3288
|
-
<h2>
|
|
4244
|
+
<h2>Add New Composition</h2>
|
|
3289
4245
|
|
|
3290
|
-
\${renderCompositionForm(
|
|
4246
|
+
\${renderCompositionForm({
|
|
4247
|
+
name: '',
|
|
4248
|
+
selector: '',
|
|
4249
|
+
fileName: '',
|
|
4250
|
+
properties: [],
|
|
4251
|
+
$sourceFile: targetFile
|
|
4252
|
+
}, false)}
|
|
3291
4253
|
\`;
|
|
3292
4254
|
|
|
3293
4255
|
// Initialize autocomplete on existing property inputs
|
|
3294
4256
|
initializeCompositionAutocomplete();
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
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();
|
|
3302
4269
|
});
|
|
3303
4270
|
}
|
|
3304
4271
|
|
|
@@ -3337,7 +4304,7 @@ function renderCompositionForm(composition, isEditMode = false) {
|
|
|
3337
4304
|
<input type="text"
|
|
3338
4305
|
id="comp-target-file"
|
|
3339
4306
|
list="comp-file-suggestions"
|
|
3340
|
-
value="\${
|
|
4307
|
+
value="\${composition.$sourceFile || compositionFiles[0] || ''}"
|
|
3341
4308
|
placeholder="e.g., compositions.json or compositions/buttons.json"
|
|
3342
4309
|
style="width: 100%; padding: 8px; font-family: monospace;">
|
|
3343
4310
|
<datalist id="comp-file-suggestions">
|
|
@@ -3463,10 +4430,16 @@ function renderCompositionForm(composition, isEditMode = false) {
|
|
|
3463
4430
|
<div id="composition-preview" style="background: #f9f9f9; border: 1px solid #ddd;
|
|
3464
4431
|
padding: 15px; border-radius: 4px; font-family: monospace; font-size: 13px;
|
|
3465
4432
|
white-space: pre; overflow-x: auto;"></div>
|
|
3466
|
-
<
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
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>
|
|
3470
4443
|
</div>
|
|
3471
4444
|
|
|
3472
4445
|
<div style="display: flex; gap: 10px; margin-top: 30px;">
|
|
@@ -3515,6 +4488,9 @@ function addCompositionProperty() {
|
|
|
3515
4488
|
// Setup autocomplete for the new token input
|
|
3516
4489
|
const tokenInput = row.querySelector('.comp-prop-token');
|
|
3517
4490
|
setupAutocomplete(tokenInput);
|
|
4491
|
+
|
|
4492
|
+
// Update preview after adding property
|
|
4493
|
+
updateCompositionPreview();
|
|
3518
4494
|
}
|
|
3519
4495
|
|
|
3520
4496
|
// Remove a property row
|
|
@@ -3522,6 +4498,8 @@ function removeCompositionProperty(idx) {
|
|
|
3522
4498
|
const row = document.querySelector(\`tr[data-prop-idx="\${idx}"]\`);
|
|
3523
4499
|
if (row) {
|
|
3524
4500
|
row.remove();
|
|
4501
|
+
// Update preview after removing property
|
|
4502
|
+
updateCompositionPreview();
|
|
3525
4503
|
}
|
|
3526
4504
|
}
|
|
3527
4505
|
|
|
@@ -3591,6 +4569,127 @@ async function updateCompositionPreview() {
|
|
|
3591
4569
|
}
|
|
3592
4570
|
}
|
|
3593
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
|
+
|
|
3594
4693
|
// Save composition
|
|
3595
4694
|
async function saveComposition(isUpdate) {
|
|
3596
4695
|
const data = collectCompositionData();
|
|
@@ -3629,6 +4728,11 @@ async function saveComposition(isUpdate) {
|
|
|
3629
4728
|
if (response.ok) {
|
|
3630
4729
|
const result = await response.json();
|
|
3631
4730
|
|
|
4731
|
+
// Clear draft on successful save
|
|
4732
|
+
if (isUpdate && selectedComposition) {
|
|
4733
|
+
clearDraft(selectedComposition.id);
|
|
4734
|
+
}
|
|
4735
|
+
|
|
3632
4736
|
// Navigate to the composition in edit mode (no success alert)
|
|
3633
4737
|
const compositionId = isUpdate ? selectedComposition.id : (result.composition?.id || result.id || data.id);
|
|
3634
4738
|
navigate(\`/compositions/\${compositionId}\`);
|
|
@@ -3844,23 +4948,25 @@ init();
|
|
|
3844
4948
|
</script>
|
|
3845
4949
|
</body>
|
|
3846
4950
|
</html>
|
|
3847
|
-
`,
|
|
3848
|
-
\uD83D\uDCDD POST /api/compositions/add received:`),console.log(" Body:",JSON.stringify(H,null,2));let{name:G,selector:z,platform:O,fileName:
|
|
3849
|
-
Created composition:`),console.log(" ",JSON.stringify(S,null,2));if(
|
|
3850
|
-
\uD83D\uDCDD Updating composition ${G}`),console.log(` Source file (relative): ${S}`),console.log(` Source file (absolute): ${
|
|
3851
|
-
\uD83D\uDDD1️ Deleting composition ${G}`),console.log(` Source file (relative): ${
|
|
3852
|
-
`,
|
|
3853
|
-
`,
|
|
3854
|
-
`,
|
|
3855
|
-
`,
|
|
3856
|
-
`;for(let S of z){let
|
|
3857
|
-
`;else D+=`${
|
|
3858
|
-
`}
|
|
3859
|
-
|
|
3860
|
-
${
|
|
3861
|
-
${
|
|
3862
|
-
${
|
|
3863
|
-
`)
|
|
4951
|
+
`,nZ,aZ,R0,g_,V0,h_,hN,_0,P5,j8,c_;var lJ=f0(async()=>{pZ();W6();v1();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_=y_(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),y=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}`),y)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(y){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,y=iJ(S.token,V0,M);if(($8(S.token)||b)&&y!==k){let u=k.includes("calc(")?e1(k):null;if(u)D+=`${A} ${S.property}: ${y}; /* = ${k} */ /* ${u} */
|
|
4961
|
+
`;else D+=`${A} ${S.property}: ${y}; /* = ${k} */
|
|
4962
|
+
`}else D+=`${A} ${S.property}: ${y};
|
|
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 L0 of X0){if(L0.value!==void 0)D.set(L0.path,L0);if(L0.children)F(L0.children)}};F(w.tokens);let A=(X0,L0,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 D0=D.get(T0);if(!D0)return null;let H0=D0.$extensions?.$mode?.[L0]||D0.$modes?.[L0];if(H0)return H0;if(D0.value&&$8(D0.value))return A(D0.value,L0,d0);return null},S=V0.$modes||{},x=Object.keys(S),b=[],k=E.default||O,y=O0(k,M)||k,u=$8(y)?O0(y,M)||y:y,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 L0=S[X0]||X0,d0=E[X0];if(d0){let T0=A(d0,X0)||d0,D0=O0(T0,M)||T0,W8=$8(D0)?O0(D0,M)||D0:D0,D8=W8&&typeof W8==="string"&&W8.toLowerCase().includes("calc(")?e1(W8):null,u0=`${L0}: ${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=`${L0}: ${H0}`;if(W8)D8+=` = ${W8}`;b.push(D8)}else b.push(`${L0}: ${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(v_);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(`
|
|
3864
4970
|
tokens-editor - Design Token Editor Server
|
|
3865
4971
|
|
|
3866
4972
|
Usage:
|
|
@@ -3885,5 +4991,5 @@ Note:
|
|
|
3885
4991
|
port: 3002
|
|
3886
4992
|
}
|
|
3887
4993
|
}
|
|
3888
|
-
`),process.exit(0);await
|
|
3889
|
-
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_);
|