@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/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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},eU={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},KY={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},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,U8,c0,Y8){if(Z0||(Z0=U8),f+=Z.slice(C,Y8).replace(VU,_Y),e)F=!0,f+=`' +
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(c0)A=!0,f+=`';
8
- `+c0+`;
7
+ '`;if(r0)R=!0,f+=`';
8
+ `+r0+`;
9
9
  __p += '`;if(Z0)f+=`' +
10
10
  ((__t = (`+Z0+`)) == null ? '' : __t) +
11
- '`;return C=Y8+l.length,l}),f+=`';
12
- `;var c=J0.call(K,"variable")&&K.variable;if(!c)f=`with (obj) {
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(wU.test(c))throw new s(Y);f=(A?f.replace(KU,""):f).replace(qU,"$1").replace(XU,"$1;"),f="function("+(c||"obj")+`) {
16
- `+(c?"":`obj || (obj = {});
17
- `)+"var __t, __p = ''"+(F?", __e = _.escape":"")+(A?`, __j = Array.prototype.join;
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
- ${L5}`,_=k0(X)?`:root {
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
- `,M=`${O}
25
+ `,w=`${O}
26
26
 
27
- ${_}`;if(H.forEach((N)=>{if(h1(N,Y,U))return;let D=m1(N,q,X);if(Y.transformValue)D=Y.transformValue(D);D=W6(D),M+=`${!k0(X)?" ":" "}--${N5(N.name)}: ${D};
28
- `}),Array.isArray($)&&$.length>1){let N=`
29
- `;for(let D of $){if(X===D)continue;let R=await wZ(D);N+=`${!k0(X)?" ":" "}&${R} {
30
- `,Q(q,D).forEach((S)=>{if(h1(S,Y,U))return;let T=m1(S,q,D);if(Y.transformValue)T=Y.transformValue(T);T=W6(T),N+=`${!k0(X)?" ":" "}--${N5(S.name)}: ${T};
31
- `}),N+=`${!k0(X)?" ":" "}}
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+=N}return M+=!k0(X)?` }
33
+ `}w+=M}return w+=!h0(X)?` }
34
34
  `:`}
35
- `,M+=!k0(X)?`}
36
- `:"",M}function h1(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 h$(){let Q=await _Z(),{baseDir:q,distDir:X}=await h9(),$=await p1(P0(q,X,"css")),U=P0(q,X,await b$()),Y=L5+`
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:S$,order:100},{name:I$,order:200},{name:V$,order:300},{name:A$,order:400}];if($=$.sort((G,z)=>{let O=(_)=>{let M=P$(_,".css"),N=H.find((D)=>M.includes(D.name));for(let D in Q)if(M.includes(D)){let R=Q[D]===Q.default?1:2;return N?N.order+R:0}return N?N.order:0};return O(G)-O(z)}),$.forEach((G)=>{if(G.endsWith(".css")){let O=`@import url("${m$(G,q,X)}");`;Y+=O+`
39
- `}}),!h8(P0(q,X)))g9(P0(q,X));sO(U,Y)}function m$(Q,q,X){let $=R$(q,X);return Q.startsWith($)?Q.slice($.length+1):Q}function p$(Q,q,X,$){let U=N$(Q),Y=P$(N$(q)),H=U.split(XZ),G=H.lastIndexOf(Y);if(Y===".")return L$(X,$).split(XZ).join("/");else if(G===-1)throw Error(`Base directory '${Y}' not found in '${U}'`);let z=P0(...H.slice(0,G+1)),O=P0(z,X),_=P0(z,$);return L$(O,_).split(XZ).join("/")}var I$="tokens",A$="breakpoints",V$="typography",S$="icons",L5=`/*
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
- */`,$Z=null,y$=null,JZ=null,UZ=null,YZ=null,HZ=null,WZ=null,GZ=null,BZ=null;var M6=S0(()=>{R8()});function k0(Q){return Q===NZ}var NZ="light";var u$=S0(()=>{M6()});async function LZ(Q){let q=await d1();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],_=q?.size??24,M=z/O*_;Q=Q.replace(/height="[\d.]+px?"/,`height="${_}px"`),Q=Q.replace(/width="[\d.]+px?"/,`width="${M}px"`);let N=/width="[\d.]+(px)?"/.test(U),D=/height="[\d.]+(px)?"/.test(U);if(!N)Y=Y.replace("<svg",`<svg width="${M}px"`);else Y=Y.replace(/width="[\d.]+(px)?"/,`width="${M}px"`);if(!D)Y=Y.replace("<svg",`<svg height="${_}px"`);else Y=Y.replace(/height="[\d.]+(px)?"/,`height="${_}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=tO(Q,q.style);return Q}function tO(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 c$=S0(()=>{R8()});var l$=S0(()=>{M6();R8()});import{copyFileSync as ZE,existsSync as KE,mkdirSync as i$,statSync as qE}from"fs";import{writeFile as XE}from"fs/promises";import{join as Q8,relative as $E}from"path";async function DZ(Q,q){try{let{assets:X,workspaceRoot:$,distDir:U,__dirname:Y}=await D9(),H=X?.fonts?.sourceDir?Q8(Y,X.fonts.sourceDir):null,G=Q8("assets","fonts"),z=Q8($,U),O=X?.fonts?.distDir?Q8(z,X.fonts.distDir.replace(/^\.\//,"")):Q8(z,G);if(!Q||!H)return;let _="",M=q&&X?.fonts?.distDir?Q8(q,X.fonts.distDir.replace(/^\.\//,"")):O;for(let P of Q){if(!P)continue;if(_+=`/**** ${P.family} ${P.style} ****/
44
- `,P.linkHref){let T=await(await fetch(P.linkHref)).text();_+=`${T.replace(/\s+/g," ").replace(/:\s+/g,":")}
45
- `}else if(P?.src&&H){let S=P.directory??P.family.toLowerCase().replace(/\s+/g,"-"),T=Q8(H,S,P.src);try{if(!KE(T)||!qE(T).isFile()){console.warn(`Font file not found: ${T}`);continue}}catch{console.warn(`Error accessing font file: ${T}`);continue}try{i$(Q8(M,S),{recursive:!0}),ZE(Q8(H,S,P.src),Q8(M,S,P.src))}catch(k){console.warn(`Error copying font file ${P.src}:`,k instanceof Error?k.message:k);continue}let b;if(X?.fonts?.cssImportPath)b=Q8(X.fonts.cssImportPath,S,P.src).replace(/\\/g,"/");else{let{distCSSPath:k}=await D9(),y=q?Q8(q,"css"):k,g=$E(y,M);b=Q8(g,S,P.src).replace(/\\/g,"/")}_+=`@font-face {
46
- font-family: "${P.family}";
47
- font-style: ${P.faceStyle};
48
- font-weight: ${P.weight};
49
- src: url("${b}") format("${P.format}");
50
- }
51
- `}}let{distCSSPath:N}=await D9(),D=q?Q8(q,"css"):N,R=`${D}/fonts.css`;i$(D,{recursive:!0}),await XE(R,_,{flag:"w",encoding:"utf-8"})}catch(X){console.error("Error appending typography tokens:",X)}}var FZ=S0(()=>{R8()});function w6(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 N6(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 u1(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 s$(Q){return!!Q.$extensions?.$mode}function n$(Q){return!!(Q.$extensions?.$generators&&Array.isArray(Q.$extensions.$generators))}function r$(Q){return!!(Q.$extensions?.$breakpoints&&typeof Q.$extensions.$breakpoints==="object")}function o$(Q,q){return`${Q}${q}`}function a$(Q){return typeof Q==="object"&&Q!==null&&"$value"in Q}function t$(Q){return typeof Q==="object"&&Q!==null&&!("$value"in Q)}var e$=()=>{};function QJ(Q){if(typeof Q!=="string")return!1;let q=Q.trim();return q.startsWith("<svg")&&q.includes("</svg>")}function ZJ(Q){if(typeof Q!=="string")return!1;return Q.startsWith("data:image/png;base64,")||Q.startsWith("iVBORw0KGgo")}function KJ(Q){if(typeof Q!=="string")return!1;return Q.startsWith("data:image/jpeg;base64,")||Q.startsWith("data:image/jpg;base64,")||Q.startsWith("/9j/")}function UE(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 YE(Q){if(Q.startsWith("data:image/png;base64,"))return Q;return`data:image/png;base64,${Q}`}function HE(Q){if(Q.startsWith("data:image/jpeg;base64,")||Q.startsWith("data:image/jpg;base64,"))return Q;return`data:image/jpeg;base64,${Q}`}function L6(Q){if(!Q||typeof Q!=="string")return Q;if(Q.startsWith("data:"))return Q;if(QJ(Q))return UE(Q);else if(ZJ(Q))return YE(Q);else if(KJ(Q))return HE(Q);return Q}function WE(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 Z9(Q){return QJ(Q)||ZJ(Q)||KJ(Q)||WE(Q)}import{readFileSync as GE,readdirSync as BE,statSync as zE}from"fs";import{join as OE}from"path";function PZ(Q){let q={};function X($){let U=BE($);for(let Y of U){let H=OE($,Y);if(zE(H).isDirectory())X(H);else if(Y.endsWith(".tokens.json"))try{let z=GE(H,"utf-8");if(!z.trim())continue;let O=JSON.parse(z);XJ(q,O)}catch(z){console.warn(`Failed to load token file: ${H}`,z)}}}return X(Q),q}function XJ(Q,q){for(let X in q)if(q[X]&&typeof q[X]==="object"&&!Array.isArray(q[X])){if(!Q[X])Q[X]={};XJ(Q[X],q[X])}else Q[X]=q[X]}function IZ(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(a$(G)){let _={path:z,name:O,type:G.$type,value:G.$value,description:G.$description,extensions:G.$extensions?{mode:s$(G)?G.$extensions.$mode:G.$extensions.mode?G.$extensions.mode:void 0,generators:n$(G)?G.$extensions.$generators:G.$extensions.generators?G.$extensions.generators:void 0,breakpoints:r$(G)?G.$extensions.$breakpoints:G.$extensions.breakpoint?G.$extensions.breakpoint:void 0,...Object.fromEntries(Object.entries(G.$extensions).filter(([M])=>!["$mode","$generators","$breakpoints","mode","generators","breakpoint"].includes(M)))}:void 0,original:G};if(!q.namespace||O.startsWith(q.namespace))X.push(_)}else if(t$(G))$(G,z)}}return $(Q),X}function AZ(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 _=qJ(O,q,$);if(X.push(..._),q.generateModes){for(let M of _)if(M.extensions?.mode&&!M.name.includes("#")){let N=qJ(M,q,$);X.push(...N)}}}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 _=void 0;for(let D of U)if(O.name.endsWith(`#${D}`)){_=D;break}if(!_&&q.generateModes)_=Y;let M={...H,mode:_},N=EE(O,M);G.push(N)}if(q.failOnBrokenReferences!==!1&&H.brokenReferences.length>0){let O=[...new Set(H.brokenReferences)],_=`Token reference${O.length>1?"s":""} not found:
52
- ${O.map((M)=>` - ${M}`).join(`
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 N=q.defaultMode||H[0]||"light",D=q.isHost||!1,R=G.get(N)||[];if(R.length>0){R.sort();let b=R9(N,N,D);M+=`${b} {
56
- ${R.join(`
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===N)continue;let y=G.get(k)||[];if(y.length>0){y.sort();let g=R9(k,N,D);if(D)M+=`}
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 i=g.replace("[data-theme=","&[data-theme=");M+=`
64
- ${i} {
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
- `}}}M+=`}
69
- `}if(U&&z.size>0){let b=R9(N,N,D);for(let[k,y]of z)y.sort(),M+=`
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 P=[{fileName:"tokens.css",content:M.endsWith(`
77
- `)?M:`${M}
78
- `}],S=WJ(Q,q);P.push(...S);let T=GJ(Q,q);return P.push(...T),P}function LE(Q,q){let X=[];for(let U of Q){let H=` ${U.cssVar||i1(U,q)}: ${m8(U.value,U.type)};`;X.push(H)}let $="";if(q.customHeader)$+=`${q.customHeader}
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 DE(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 R of Q){if(s1(R))continue;if(typeof R.value==="string"&&Z9(R.value))continue;if(xZ(R))continue;let P=R.name.match(z);if(P){let S=P[1];if(H.has(S)){if(!$.has(S))$.set(S,[]);$.get(S).push(R)}else U.push(R)}else U.push(R)}if(U.length>0){let R=l1(U,{...q,separateThemeFiles:!1})[0];X.push({...R,fileName:"tokens.css"})}let O=q.defaultMode||(Y.length>0?Y[0]:"default"),_=q.isHost||!1;for(let[R,P]of $){let S=R9(R,O,_),T=LE(P,{...q,separateThemeFiles:!1,rootSelector:S});X.push({...T,fileName:`tokens.${R}.css`,theme:R})}let M=FE(Q,q);X.push(...M);let N=WJ(Q,q);X.push(...N);let D=GJ(Q,q);return X.push(...D),X}function FE(Q,q){let X=new Map;for(let Y of Q){let H=s1(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 $=`/**
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,_]of H){let M=[];for(let N of _){let R=` ${N.cssVar||i1(N,q)}: ${m8(N.value,N.type)};`;M.push(R)}if(M.length>0){M.sort();let N=R9(O,G,z);$+=`${Y} {
95
- ${N} {
96
- ${M.join(`
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 WJ(Q,q){let X=new Map;for(let U of Q)if(typeof U.value==="string"&&Z9(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=UJ(Y,U,q);$.push({fileName:"tokens.icons.css",content:H.endsWith(`
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=UJ(Y,U,q);$.push({fileName:`tokens.icons.${U}.css`,content:H.endsWith(`
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 UJ(Q,q,X){let $=`/**
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||i1(Y,X)}: ${m8(Y.value,Y.type)};`;U.push(G)}if(U.length>0){U.sort();let Y=X.defaultMode||"light",H=X.isHost||!1,G=R9(q,Y,H);$+=`${G} {
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 i1(Q,q){let $=Q.name.split("@")[0].replace(/\.$/,"").replace(/\.+/g,"."),U=TZ($,q.hooks);return`--${q.prefix||D6}-${U.replace(/\./g,"-")}`}function TZ(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 GJ(Q,q){let X=new Map,$=q.modes||[];for(let Y of Q)if(xZ(Y)){if(s1(Y))continue;let G=$.length>0?$[0]:"default";if(Y.name.includes("#")){let z=Y.name.split("#"),O=z[z.length-1];if($.includes(O))G=O}if(!X.has(G))X.set(G,[]);X.get(G).push(Y)}let U=[];for(let[Y,H]of X.entries()){let G=RE(H,Y,q,$);U.push({fileName:`tokens.typography.${Y}.css`,content:G.endsWith(`
120
- `)?G:`${G}
121
- `})}return U}function RE(Q,q,X,$){let U=`/**
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 M=` ${O.cssVar||i1(O,X)}: ${m8(O.value,O.type)};`;z.push(M)}if(z.length>0){let O=X.defaultMode||"light",_=X.isHost||!1,M=R9(q,O,_);if(H==="default")z.sort(),U+=`${M} {
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 N=H.startsWith("(")?H:`(${H})`;U+=`@media ${N} {
135
- `,U+=` ${M} {
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 m8(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 m8($.$value,$.$type||q)}}let X=String(Q);switch(q){case"color":return PE(X);case"dimension":return IE(X);case"duration":return AE(X);case"fontFamily":return VE(X);case"fontWeight":return SE(X);case"cubicBezier":return xE(Q);case"shadow":return TE(Q);case"border":return CE(Q);case"typography":return jE(Q);case"composition":return CZ(Q);default:if(X.startsWith("data:"))return`"${X}"`;return X}}function PE(Q){if(Q.startsWith("oklch(")||Q.startsWith("rgb(")||Q.startsWith("rgba(")||Q.startsWith("hsl(")||Q.startsWith("hsla(")||Q.startsWith("#"))return Q;return Q}function IE(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 AE(Q){if(/^\d+(\.\d+)?(s|ms)$/.test(Q))return Q;if(/^\d+(\.\d+)?$/.test(Q))return`${Q}ms`;return Q}function VE(Q){if((Q.includes(",")||Q.includes(" "))&&!Q.startsWith('"')&&!Q.startsWith("'"))return`"${Q}"`;return Q}function SE(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 xE(Q){if(Array.isArray(Q)&&Q.length===4)return`cubic-bezier(${Q.join(", ")})`;return String(Q)}function TE(Q){if(Array.isArray(Q))return Q.map((q)=>YJ(q)).join(", ");return YJ(Q)}function YJ(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(${`--${D6}-${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 CE(Q){if(typeof Q==="object"&&Q!==null){let q=Q,X=T0(q.width)||"1px",$=T0(q.style)||"solid",U=T0(q.color)||"transparent";return`${X} ${$} ${U}`}return String(Q)}function jE(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 CZ(Q){if(typeof Q!=="object"||Q===null)return String(Q);if(Array.isArray(Q))return Q.map((X)=>CZ(X)).join(", ");let q=Q;if(q.offsetX!==void 0&&q.offsetY!==void 0)return BJ(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 fE(q);if(q.fontSize!==void 0||q.fontFamily!==void 0)return bE(q);return kE(q)}function BJ(Q){let q=[T0(Q.offsetX)||"0",T0(Q.offsetY)||"0",T0(Q.blur)||"0",T0(Q.spread)||"0",T0(Q.color)||"transparent"];if(Q.inset&&T0(Q.inset)==="true")q.unshift("inset");return q.join(" ")}function fE(Q){let q=[];if(Q.blur)q.push(T0(Q.blur)||"blur(0)");if(Q.saturate)q.push(T0(Q.saturate)||"saturate(100%)");if(Q.brightness)q.push(T0(Q.brightness)||"brightness(100%)");if(Q.contrast)q.push(T0(Q.contrast)||"contrast(100%)");if(Q.hueRotate)q.push(T0(Q.hueRotate)||"hue-rotate(0deg)");return q.join(" ")||"none"}function bE(Q){let q=T0(Q.fontWeight)||"normal",X=T0(Q.fontSize)||"1rem",$=T0(Q.lineHeight),U=T0(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 HJ(Q,q,X){let $=Q.match(/^\{(.+)\}$/);if(!$)return Q;let Y=$[1].replace(/\./g,"-");if(X)Y=TZ(Y,{shortenName:X.$metaData?.tokens?.css?.hooks?.shortenName});return`var(--${Y})`}function T0(Q,q,X){if(Q===null||Q===void 0)return"";if(typeof Q==="string"){if(Q.match(/^\{.+\}$/))return HJ(Q,q||"ds",X);return Q}if(typeof Q==="object"&&Q.value!==void 0){let $=String(Q.value);if($.match(/^\{.+\}$/))return HJ($,q||"ds",X);return $}return String(Q)}function kE(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=BJ(H);if(G)q.push(G)}else{let G=CZ(H);if(G)q.push(G)}}else{let H=T0(U);if(H)q.push(H)}}let $=q.some((U)=>/^\d/.test(U)&&U.includes(" "))?", ":" ";return q.join($)||String(Q)}function s1(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 n1(Q){let q=Q?.$name||"Design System",X=Q?.$version||"1.0.0",$=new Date().toISOString();return`/**
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 vE(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 jZ(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+`
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=R9(Y,Y,U);G+=`${z} {
166
- `;let O=[...Q].sort((_,M)=>_.name.localeCompare(M.name));for(let _ of O){let M=_.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),N=_.category?`${H}-${_.category}-${M}`:`${H}-${M}`;if(q.hooks?.shortenName?.enabled)N=TZ(N,q.hooks);let D=vE(_.value);G+=` ${N}: url("${D}");
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 r1=S0(()=>{R8()});import{readFileSync as yE,existsSync as gE}from"fs";import{join as zJ,relative as hE}from"path";async function fZ(){try{let{assets:Q}=await h9(!0),{icons:q}=await e0(),X=await z6(),$=Q?.icons?.distDir??"build",U=zJ(X,$),Y=zJ(U,"tokens",await D5("json"));if(!gE(Y)){let R=hE(process.cwd(),Y);return console.log(`ℹ️ Icon data not found (skipping icon types): ${R}`),console.log(" Run icon build first if you need icon types generated."),[]}let H=JSON.parse(yE(Y,"utf8")),G=q?.objectPath??"universe.icons",z=G.split("."),O=H;for(let R of z)if(O&&typeof O==="object"&&R in O)O=O[R];else throw Error(`Icon path ${G} not found in icons file`);let _=[],M=Object.keys(O)[0],N=O[M];if(N&&typeof N==="object"&&"$value"in N){for(let[R,P]of Object.entries(O))if(typeof P==="object"&&P!==null){let S=P;if(R.startsWith("$"))continue;_.push({name:R,category:"",value:S.$value||"",description:S.$description||"",style:S.$style||"",dimensions:S.$extensions?.dimensions||S.$dimensions})}}else for(let[R,P]of Object.entries(O))if(typeof P==="object"&&P!==null){for(let[S,T]of Object.entries(P))if(typeof T==="object"&&T!==null){let b=T;if(S.startsWith("$"))continue;_.push({name:S,category:R,value:b.$value||"",description:b.$description||"",style:b.$style||"",dimensions:b.$extensions?.dimensions||b.$dimensions})}}return _}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 bZ(Q,q={},X){let{generateTypes:$=!0,generateConsts:U=!0}=q,Y=q.icons;if(!Y)Y=await fZ();let H={...q,icons:Y},G=[];if($)G.push({fileName:"tokens.types.ts",content:mE(Q,H),type:"types"});if(U)G.push({fileName:"tokens.constants.ts",content:pE(Q,H),type:"constants"});return G.push({fileName:"index.ts",content:dE(G,X),type:"index"}),G}function mE(Q,q){let{tokenInterface:X="DesignTokens",includeJSDoc:$=!0,icons:U=[]}=q,Y=kZ("Type Definitions");if(Y+=uE(Q,$),Y+=cE(Q,$),U.length>0)Y+=lE(U,$);return Y+=iE(Q,X,$),Y+=nE(Q,$),Y+`
170
- `}function pE(Q,q){let{includeJSDoc:X=!0,icons:$=[]}=q,U=kZ("Token Constants"),Y="TokenPaths, CSSVariableNames";if($.length>0)Y+=", IconNames, IconCategories, Icon";if(U+=`import type { ${Y} } from './tokens.types';
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+=rE(Q,X),U+=aE(Q,X),$.length>0)U+=oE($,X);return U+=tE(Q,X),U+`
173
- `}function dE(Q,q){let X=kZ("Main Export");if(Q.some(($)=>$.type==="types"))X+=`export type * from './tokens.types';
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 $=C8("fs"),Y=C8("path").join(q,"typescript","tokens.icons.ts");if($.existsSync(Y))X+=`export type * from './tokens.icons';
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 uE(Q,q){let X=Q.map((U)=>`"${U.name}"`).join(`
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 cE(Q,q){let X=eE(Q),$="";for(let[U,Y]of X){let H=`${Z_(U)}TokenValue`,G=new Set(Y.map((O)=>F6(O.value))),z=Array.from(G).join(`
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 lE(Q,q){let X="",$=Q.map((H)=>`"${H.name}"`).join(`
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 iE(Q,q,X){let $="";if(X)$+=`/**
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}": ${F6(U.value)};
239
+ `;$+=` "${U.name}": ${I6(U.value)};
237
240
  `}return $+=`}
238
241
 
239
- `,$+=sE(Q,`${q}Nested`,X),$+`
240
- `}function sE(Q,q,X){let $=Q_(Q),U="";if(X)U+=`/**
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+=OJ($,1),U+=`}
247
+ `,U+=wJ($,1),U+=`}
245
248
 
246
249
  `,U+`
247
- `}function nE(Q,q){let $=Array.from(new Set(Q.map((Y)=>Y.cssVar))).map((Y)=>`"${Y}"`).join(`
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 rE(Q,q){let X="";if(q)X+=`/**
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 oE(Q,q){let X="";if(q)X+=`/**
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 aE(Q,q){let X="";if(q)X+=`/**
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 tE(Q,q){let X="";if(q)X+=`/**
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 eE(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 Q_(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=F6(X.value);U[H]=G}return q}function OJ(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}: {
344
- `,X+=OJ(Y,q+1),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 F6(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(($)=>F6($)));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])=>`${$}: ${F6(U)}`).join("; ")} }`;else return"unknown"}function Z_(Q){if(!Q||typeof Q!=="string")return"";return Q.charAt(0).toUpperCase()+Q.slice(1)}function kZ(Q){let q=new Date().toISOString();return`/**
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 vZ=S0(()=>{R8()});function K_(Q,q,X){let $=s0(Q,{isIncludedOriginalValue:!0}),U=F8(Q,X);if(!U||!L9(Q,"mode",{isIncludedOriginalValue:!1}))U=$;return y1(Q,U,q,X)}function m1(Q,q,X){let $=K_(Q,q,X),U=typeof $==="string"?w5($):null;if(U&&(U?.length??0)>=1)return M5($,U,q,X);else return q_(Q,q,X)}function q_(Q,q,X){return y1(Q,eQ(Q,q,X),q,X)}function y1(Q,q,X,$){if(!Q)return null;if(Q.$type==="color")q=v1(q,Q,X,$);else if(Q.$type==="composition"||Q.$type==="typography")q=_5(Q,X,$);return q}var D6="did";var R8=S0(()=>{Y6();H6();KZ();Y6();M6();u$();c$();l$();H6();KZ();FZ();SZ();r1();vZ();gZ()});import{readFileSync as X_,mkdirSync as wJ}from"fs";import{writeFile as _J,readdir as $_,mkdir as J_}from"fs/promises";import{resolve as U_,relative as MJ,join as o1,dirname as NJ}from"path";async function DJ(Q){let q=await $_(Q,{withFileTypes:!0}),X=await Promise.all(q.map(($)=>{let U=U_(Q,$.name);return $.isDirectory()?DJ(U):U}));return Array.prototype.concat(...X)}async function FJ(Q,q){if(!Q)throw Error("outputDir is required for buildIcons");let{assets:X,icons:$,tokenNamespace:U,__dirname:Y,buildDir:H}=await D9(),G=o1(Y,X?.icons?.sourceDir??"icons"),z="build",O=X?.icons?.distDir??z,_=o1(Y,O),M=o1(Y,H,"icons");if(!X?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}g9(o1(Y,H));let N=(await DJ(G)).filter((i)=>i.endsWith(".svg")),P=(await Promise.all(N.map(async(i)=>{let p=X_(i,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";p=await LZ(p);let $0=MJ(G,i).split("/").pop(),W0=(p.match(/name="(.*?)"/)??[])[1]??$0?.replace(".svg",""),F0=(p.match(/data-style="(.*?)"/)??[])[1],d8=(p.match(/description="(.*?)"/)??[])[1],[q9]=p.match(/<svg[^>]*>/)??[],[,S5]=q9?.match(/width="([\d.]+)(px)?"/)??[],[,I9]=q9?.match(/height="([\d.]+)(px)?"/)??[];if(F0!=="animated"&&F0!=="custom")return{path:i,folder:MJ(G,i).split("/").slice(0,-1).concat(W0),file:$0,style:F0,content:p,name:W0,dimensions:{width:Number(S5),height:Number(I9)},description:d8??""};return}))).filter((i)=>i!==void 0).reduce((i,p)=>{if(p?.style!=="animated"&&p?.style!=="custom"&&p)hZ(i,p.folder.join("."),{$type:"icon",$name:p.name,$description:p.description,$style:p.style,$value:p.content,$extensions:{dimensions:p.dimensions},...Y_(i,p.folder.join("."))});return i},{}),S=$?.objectPath??`${U}.icons`,b=Object.keys(P).some((i)=>i.includes("."));Object.keys(P).forEach(async(i)=>{let p,$0;if(b)p=`${M}/${i}`,$0=`${p}/svg.${i}.tokens.json`;else p=M,$0=`${M}/svg.${i}.tokens.json`;await J_(p,{recursive:!0});let W0=hZ({},`${S}${S?".":""}${i}`,P[i]);await _J($0,JSON.stringify(W0,null,2),{flag:"w",encoding:"utf-8"})});let k=`${_}/tokens/${await D5("json")}`,y=NJ(k);wJ(y,{recursive:!0});let g=hZ({},S,P);await _J(k,JSON.stringify(g,null,2),{flag:"w",encoding:"utf-8"}),await H_(P,Q,q)}async function H_(Q,q,X){let{writeFileSync:$}=C8("fs"),{join:U}=C8("path");try{let Y=Object.keys(Q).sort(),H=`/**
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=NJ(G);wJ(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 LJ,hZ,Y_;var RJ=S0(()=>{R8();LJ=U5(jq(),1),{set:hZ,get:Y_}=LJ.default});function AJ(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 _ of U)O.set(_,[]);for(let _ of H){let M=_.name.match(z);if(M){let N=M[1];O.get(N).push(_)}else{let N=U[0];O.get(N).push(_)}}for(let _ of U){let M=O.get(_)||[];if(M.length>0){if(q.typescript){let N=VJ(M,_);X.push({fileName:`${_}.d.ts`,content:E_(N,q,_),theme:_})}X.push({fileName:`${_}.${$}`,content:IJ(M,{...q,theme:_}),theme:_})}}}else X.push({fileName:`tokens.${$}`,content:IJ(H,q)});if(Y.length>0)X.push({fileName:`breakpoints.${$}`,content:W_(Y,Q,q)});if(q.separateThemeFiles&&X.length>1)X.push({fileName:`index.${$}`,content:M_(X,q)});return X}function W_(Q,q,X={}){let{typescript:$,includeJSDoc:U,moduleType:Y="es",customHeader:H,modes:G=[]}=X,z=new Map(q.map((N)=>[N.name,N])),O={};for(let N of Q){let D=N.extensions?.mediaQuery||G_(N.name),R=G.length>0?G[0]:"default";for(let T of G)if(N.name.includes(`#${T}`)){R=T;break}if(typeof D==="string"&&D.includes("{")&&D.includes("}"))D=z_(D,z);if(!O[D])O[D]={};if(!O[D][R])O[D][R]={};let P=B_(N.name),S=O_(P,a1(N.value,z));O[D][R]={...O[D][R],...S}}let _=Object.keys(O).sort((N,D)=>{let R=PJ(N),P=PJ(D);return R-P}).reduce((N,D)=>{return N[D]=O[D],N},{}),M="";if(H)M+=`${H}
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 M+=`/**
371
- `,M+=` * Design Tokens - Breakpoints
372
- `,M+=` * Auto-generated from design token definitions
373
- `,M+=` * Do not edit this file directly
374
- `,M+=` */
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($)M+=SJ(_,U),M+=`
377
- `;if(Y==="es"){if($)M+=`const breakpoints: Tokens = ${p9(_,U,0)};
379
+ `;if($)w+=CJ(E,U),w+=`
380
+ `;if(Y==="es"){if($)w+=`const breakpoints: Tokens = ${i9(E,U,0)};
378
381
 
379
- `;else M+=`const breakpoints = ${p9(_,U,0)};
382
+ `;else w+=`const breakpoints = ${i9(E,U,0)};
380
383
 
381
- `;M+=`export default breakpoints;
382
- `}else M+=`const breakpoints = ${p9(_,U,0)};
384
+ `;w+=`export default breakpoints;
385
+ `}else w+=`const breakpoints = ${i9(E,U,0)};
383
386
 
384
- `,M+=`module.exports = breakpoints;
385
- `,M+=`module.exports.default = breakpoints;
386
- `;return M}function G_(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 B_(Q){let q=Q.replace(/@_.*?__/,"").replace(/@screen.*/,"").replace(/#[^#]*$/,"").replace(/^universe\./,"");return q=q.replace(/_universe_foundation_breakpoint_screen_width_[^_]+__?$/,""),q}function PJ(Q){let q=Q.match(/(\d+(?:\.\d+)?)/);return q?parseFloat(q[1]):0}function z_(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 O_(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 IJ(Q,q={}){let{typescript:X,includeJSDoc:$,moduleType:U="es",customHeader:Y,theme:H}=q,G="";if(Y)G+=`${Y}
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=VJ(Q,H);if(X)if(q.separateThemeFiles&&H)G+=`import type { Tokens } from "./${H}.d";
397
+ `;let z=TJ(Q,H);if(X)if(q.separateThemeFiles&&H)G+=`import type { Tokens } from "./${H}.d";
395
398
 
396
- `;else G+=SJ(z,$),G+=`
397
- `;if(U==="es"){if(X)G+=`const tokens: Tokens = ${p9(z,$,0)};
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 = ${p9(z,$,0)};
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 _ of O)G+=`export const ${_} = tokens.${_};
405
- `}}else G+=`const tokens = ${p9(z,$,0)};
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 VJ(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 _=H[O];if(!G[_])G[_]={};G=G[_]}let z=H[H.length-1];G[z]=a1(U.value,$)}return X}function a1(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 $=m8(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=m8(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=m8(Q,"color");if(U!==Q)return U}return Q}if(Array.isArray(Q))return Q.map((X)=>a1(X,q));if(typeof Q==="object"&&Q!==null){let X={};for(let[$,U]of Object.entries(Q))X[$]=a1(U,q);return X}return Q}function SJ(Q,q){let X="";if(q)X+=`/**
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 = ${mZ(Q,0)};
414
- `,X}function E_(Q,q,X){let{customHeader:$,includeJSDoc:U}=q,Y="";if($)Y+=`${$}
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 = ${mZ(Q,0)};
428
+ `;return Y+=`export type Tokens = ${uZ(Q,0)};
426
429
  `,Y+`
427
- `}function mZ(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=`{
428
- `;for(let[Y,H]of $){let G=__(Y)?`"${Y}"`:Y;U+=`${X}${G}: ${mZ(H,q+1)};
429
- `}return U+=" ".repeat(q)+"}",U}function __(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 p9(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=`{
430
- `;for(let G=0;G<Y.length;G++){let[z,O]=Y[G],_=G===Y.length-1;if(q&&typeof O==="string")H+=`${U}/** Token value: ${JSON.stringify(O)} */
431
- `;let M=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z)?z:JSON.stringify(z),N=p9(O,q,X+1);H+=`${U}${M}: ${N}${_?"":","}
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 xJ=S0(()=>{r1()});var TJ={};PQ(TJ,{validateCSSFiles:()=>w_,printValidationResults:()=>N_});import{readFileSync as pZ,existsSync as R5}from"fs";import{join as K9}from"path";function w_(Q,q){let X={isValid:!0,errors:[],warnings:[],checks:[]},$=K9(Q,"css"),U=K9($,"tokens.css"),Y=R5(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 M=K9($,"tokens.dark.css"),N=R5(M);if(X.checks.push({name:"CSS file exists: tokens.dark.css",passed:N,message:N?void 0:"Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"}),!N)X.errors.push("Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"),X.isValid=!1}let G=K9($,"tokens.breakpoints.css");if(R5(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&&R5(K9($,"tokens.css"))){let M=pZ(K9($,"tokens.css"),"utf8");if(O.prefix)for(let{find:N,replace:D}of O.prefix){let R=`--${D6}-${N}`,P=`--${D}`,S=M.includes(R),T=M.includes(P);if(X.checks.push({name:`Prefix hook applied: ${N} → ${D}`,passed:!S&&T,message:S?`Old prefix "${R}" still found in CSS, should be "${P}"`:void 0}),S)X.errors.push(`Prefix transformation failed: "${R}" should be replaced with "${P}"`),X.isValid=!1}if(O.suffix)for(let{find:N,replace:D}of O.suffix){let P=new RegExp(`--[^:]+${N.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(M);if(X.checks.push({name:`Suffix hook applied: ${N} → ${D}`,passed:!P,message:P?`Old suffix "${N}" still found in CSS variable names`:void 0}),P)X.errors.push(`Suffix transformation failed: "${N}" should be removed/replaced with "${D}"`),X.isValid=!1}}if(R5(K9($,"tokens.css"))){let N=pZ(K9($,"tokens.css"),"utf8").match(/:\s*{[^}]+}/g);if(X.checks.push({name:"No unresolved token references",passed:!N,message:N?`Found unresolved references: ${N.join(", ")}`:void 0}),N)X.errors.push(`Unresolved token references found: ${N.join(", ")}`),X.isValid=!1}let _=["tokens.css","tokens.dark.css","tokens.breakpoints.css"];for(let M of _){let N=K9($,M);if(R5(N)){let D=pZ(N,"utf8"),R=(D.match(/\{/g)||[]).length-(D.match(/\}/g)||[]).length;if(X.checks.push({name:`CSS syntax valid: ${M}`,passed:R===0,message:R!==0?`Mismatched braces in ${M}`:void 0}),R!==0)X.errors.push(`CSS syntax error in ${M}: mismatched braces`),X.isValid=!1}}return X}function N_(Q){console.log(`
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 CJ=S0(()=>{R8()});import{writeFileSync as L_,mkdirSync as D_,existsSync as uZ,readFileSync as dZ,readdirSync as F_,statSync as jJ}from"fs";import{join as n0,dirname as R6}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=`/**
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 P_(Q,q,X=!1,$=!1,U,Y){let{readFileSync:H}=C8("fs"),{join:G}=C8("path"),z=[],O=(D)=>{try{let R=G(U,"css",D);return H(R,"utf-8")}catch(R){return console.warn(`Could not read ${D}:`,R),""}},_=[];for(let D of Q){let R=O(D.fileName);if(!R)continue;if(D.fileName.includes("breakpoint"))_.push(R);else z.push(R)}let M=Y?.$paths?.assets?.icons?.excludeFromRaw??!1;if(X&&!M){let D=O("tokens.icons.css");if(D)z.push(D)}if($){let D=O("fonts.css");if(D)z.push(D)}z.push(..._);let N=`/**
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:N+`
486
- `,theme:void 0}}function I_(Q,q){let X=Q.replace(/\\/g,"/");if(q.replace(/\\/g,"/").startsWith(X))return{valid:!1,error:`⚠️ Compositions directory cannot be inside tokens directory.
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 A_(Q,q){let X=[];if(uZ(Q)){let $=jJ(Q);if($.isDirectory())try{let U=F_(Q);for(let Y of U){if(!Y.endsWith(".json"))continue;let H=n0(Q,Y);if(jJ(H).isFile())try{let z=dZ(H,"utf-8"),O=JSON.parse(z);if(Array.isArray(O))X.push(...O);else X.push(O)}catch(z){console.warn(`⚠️ Failed to parse composition file ${Y}:`,z)}}}catch(U){console.warn("⚠️ Failed to read compositions directory:",U)}else if($.isFile()&&Q.endsWith(".json"))try{let U=dZ(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 $=n0(q,"compositions.json");if(uZ($))try{let U=dZ($,"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 fJ(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 V_(Q,q){let X=Q.match(/^\{(.+)\}$/);if(X){let U=X[1].replace(/\./g,"-");return U=fJ(U,q),`var(--${U})`}return Q.replace(/\{([^}]+)\}/g,($,U)=>{let Y=U.replace(/\./g,"-");return Y=fJ(Y,q),`var(--${Y})`})}function S_(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 _=O?`${O}.css`:G;if(!H.has(_))H.set(_,[]);H.get(_).push(z)}for(let[z,O]of H.entries()){let _=[];if(_.push("/**"),_.push(" * Design System Compositions - Generated Styles"),_.push(" * DO NOT EDIT THIS FILE DIRECTLY"),_.push(" * Generated from composition definitions"),_.push(` * Namespace: ${q.$metaData?.dsNamespace||"ds"}.${q.$metaData?.tokenNamespace||"tokens"}`),_.push(` * File: ${z}`),_.push(` */
490
- `),O.length===0)_.push("/* No compositions defined */");else for(let N of O){_.push(`/* ${N.name} */`);let D=N.groupProperties,R=D&&(D.mediaQuery||D.parentSelector||D.containerQuery||D.customAtRule),P="",S=[];if(R){if(D.customAtRule){let T=v0(D.customAtRule,X);_.push(`${T} {`),S.push("}"),P=" "}if(D.mediaQuery){let T=v0(D.mediaQuery,X);_.push(`${P}${T} {`),S.push("}"),P+=" "}if(D.containerQuery){let T=v0(D.containerQuery,X);_.push(`${P}${T} {`),S.push("}"),P+=" "}if(D.parentSelector){let T=v0(D.parentSelector,X);_.push(`${P}${T} {`),S.push("}"),P+=" "}}_.push(`${P}${N.selector} {`);for(let T of N.properties){let b=V_(T.token,q);_.push(`${P} ${T.property}: ${b};`)}_.push(`${P}}`);while(S.length>0)P=P.slice(2),_.push(`${P}${S.pop()}`);_.push("")}let M=_.join(`
491
- `);U.push({fileName:z,content:M+`
492
- `,theme:void 0})}return U}async function EJ(Q){let q=Date.now(),X={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{B0(`
493
- Starting token build process...`,Q.verbose);let{initializeColorspace:$}=await Promise.resolve().then(() => (Y6(),_$));await $(),B0("Loading token files...",Q.verbose);let U=PZ(Q.tokensDir);B0("Parsing tokens...",Q.verbose);let Y=x_(Q.config),H=IZ(U,Y);if(B0(`Found ${H.length} tokens`,Q.verbose),X.tokenCount=H.length,H.length===0&&Y.namespace){let O=Object.keys(U).filter((_)=>!_.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=AZ(H,Y);if(B0(`Resolved ${G.length} tokens`,Q.verbose),Q.generateCSS!==!1){B0(`
494
- Generating CSS files...`,Q.verbose);let O=bJ(Q.config,Q.cssOptions),_=l1(G,O);for(let M of _){let N=n0(Q.outputDir,"css",M.fileName);P9(N,M.content),B0(` ✓ ${M.fileName}`,Q.verbose)}X.cssFiles=_}if(Q.generateCSS!==!1)try{await FJ(Q.outputDir,Q.config),B0(`
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 fZ();if(O.length>0){let _=bJ(Q.config,Q.cssOptions),M=Q.config.$metaData?.modes?.isHost??!1,N=Q.config.$modes?.default||"light",D=jZ(O,{customHeader:n1(Q.config),objectPath:Q.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:_.hooks,isHost:M,defaultMode:N}),R=n0(Q.outputDir,"css",D.fileName);if(P9(R,D.content),B0(` ✓ 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 DZ(O,Q.outputDir),B0(" ✓ Generated fonts.css",Q.verbose),z=!0;let _={fileName:"fonts.css",content:"Generated by appendTypographyTokens",theme:void 0};if(X.cssFiles)X.cssFiles.push(_);else X.cssFiles=[_]}}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",_=X.cssFiles.some((P)=>P.fileName==="tokens.icons.css"),M=Q.config.$metaData?.modes?.isHost||!1,N=X.cssFiles.filter((P)=>{if(P.fileName==="tokens.icons.css"||P.fileName==="fonts.css")return!1;if(M&&P.fileName.includes("composition"))return!1;return!0}),D=R_(N,O,_,z),R=n0(Q.outputDir,D.fileName);if(P9(R,D.content),B0(` ✓ Generated ${D.fileName}`,Q.verbose),X.cssFiles.push(D),M){let P=P_(X.cssFiles.filter((T)=>T.fileName!=="tokens.icons.css"&&T.fileName!=="fonts.css"&&!T.fileName.includes(".design-system.tokens.css")),O,_,z,Q.outputDir,Q.config),S=n0(Q.outputDir,P.fileName);P9(S,P.content),B0(` ✓ Generated ${P.fileName} (raw/inline for web components)`,Q.verbose),X.cssFiles.push(P)}}if(Q.generateCSS!==!1&&Q.config.$paths.compositionsDir)try{let O=Q.config.$paths.baseDir,_=Q.config.$paths.tokensDir,M=Q.tokensDir,N=_.split("/").filter((T)=>T&&T!=="."&&T!=="..");for(let T=0;T<N.length;T++)M=R6(M);let D=O.split("/").filter((T)=>T&&T!=="."&&T!=="..");for(let T=0;T<D.length;T++)M=R6(M);let R=n0(M,O,Q.config.$paths.compositionsDir),P=n0(M,O);if(Q.verbose)console.log(` Project root: ${M}`),console.log(` Base dir: ${P}`),console.log(` Compositions dir: ${R}`);let S=I_(Q.tokensDir,R);if(!S.valid)console.error(S.error),X.errors.push(S.error);else{B0(`
496
- Processing composition files...`,Q.verbose);let T=A_(R,P);if(T.length>0){B0(` Found ${T.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=S_(T,Q.config,b,Q.outputDir);for(let y of k){let g=n0(Q.outputDir,"css",y.fileName);P9(g,y.content),B0(` ✓ Generated ${y.fileName}`,Q.verbose),X.cssFiles.push(y)}}else B0(` No compositions found in ${R}`,Q.verbose)}}catch(O){if(Q.verbose)console.warn("Could not generate composition CSS:",O)}if(Q.generateTypeScript!==!1){B0(`
497
- Generating TypeScript files...`,Q.verbose);let O=T_(Q.config,Q.typescriptOptions),_=await bZ(G,O,Q.outputDir);for(let M of _){let N=n0(Q.outputDir,"typescript",M.fileName);P9(N,M.content),B0(` ✓ Generated ${M.fileName}`,Q.verbose)}X.typescriptFiles=_}if(Q.generateJavaScript!==!1){B0(`
498
- Generating JavaScript files...`,Q.verbose);let O=C_(Q.config,Q.javascriptOptions),_=AJ(G,O);for(let M of _){let N=n0(Q.outputDir,"js",M.fileName);P9(N,M.content),B0(` ✓ Generated ${M.fileName}`,Q.verbose)}X.javascriptFiles=_}if(Q.generateJSON!==!1){B0(`
499
- Generating JSON files...`,Q.verbose);let O=j_(G,H,Q.config);for(let _ of O){let M=n0(Q.outputDir,"json",_.fileName);P9(M,_.content),B0(` ✓ Generated ${_.fileName}`,Q.verbose)}X.jsonFiles=O}X.duration=Date.now()-q,B0(`
500
- Build completed in ${X.duration}ms`,Q.verbose)}catch($){let U=$ instanceof Error?$.message:String($);X.errors.push(U),B0(`❌ Build failed: ${U}`,Q.verbose)}if(Q.validate!==!1){B0(`
501
- Validating build output...`,Q.verbose);let{validateCSSFiles:$,printValidationResults:U}=await Promise.resolve().then(() => (CJ(),TJ)),Y=$(Q.outputDir,Q.config);if(Q.verbose||!Y.isValid)U(Y);if(!Y.isValid)X.errors.push(...Y.errors)}return X}function x_(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 bJ(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:n1(Q),themeSelector:$?.mediaQuery?.match||"[data-theme]",modes:U,defaultMode:Y,isHost:H,hooks:$?.hooks}}function T_(Q,q){let X=Q.$metaData;return{...q,tokenInterface:"DesignTokens",exportNamespace:X.dsNamespace||X.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function C_(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:`/**
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 j_(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+`
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 P9(Q,q){let X=R6(Q);if(!uZ(X))D_(X,{recursive:!0});L_(Q,q,"utf-8")}function B0(Q,q){if(q!==!1)console.log(Q)}async function yZ(Q,q){let X=typeof globalThis.Bun<"u",$=Q,U=null;if(Q.endsWith(".ts")&&!X){let{compileConfigFile:M,getDistConfigFile:N}=await Promise.resolve().then(() => (M6(),d$)),D=R6(Q);await M(D),$=N(D),U=$}let H=(await import($)).default,G=R6(Q),z=(M)=>{if(M.startsWith("../"))return n0(G,M);return n0(G,H.$paths.baseDir,M)},O=n0(G,H.$paths.baseDir,H.$paths.tokensDir),_=q||z(H.$paths.distDir);try{return await EJ({config:H,tokensDir:O,outputDir:_,verbose:!0})}finally{if(U){let{existsSync:M,unlinkSync:N}=await import("fs");if(M(U))try{N(U)}catch(D){}}}}var gZ=S0(()=>{RJ();r1();xJ();SZ();vZ();FZ();H6()});var d_={};import{readFile as Z8,writeFile as p8,readdir as sZ,stat as u9,mkdir as cZ}from"fs/promises";import{createServer as f_}from"http";import{join as U0,relative as B8,dirname as gJ}from"path";function v_(Q){return typeof Q==="object"&&Q!==null&&"$type"in Q&&"$value"in Q}function y_(Q){if(typeof Q!=="object"||Q===null)return!1;return!(("$type"in Q)&&("$value"in Q))}function kJ(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 hJ(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(v_(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(y_(Y))G.children=hJ(Y,H,X)}$.push(G)}return $}async function mJ(Q){let q=[];try{let X=await sZ(Q);for(let $ of X){let U=U0(Q,$);if((await u9(U)).isDirectory()){let H=await mJ(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 iZ(){let Q=await mJ(P5),q=[],X={};for(let $ of Q)try{let U=await Z8($,"utf-8");if(!U.trim()){console.warn(`⚠️ Skipping empty file: ${$}`);continue}let Y=JSON.parse(U),H=B8(P5,$);X[H]=Y;let G=hJ(Y,"",H);q.push(...G)}catch(U){console.error(`❌ Error loading ${$}:`,U instanceof Error?U.message:U);continue}return{tokens:q,files:X}}function vJ(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 pJ(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(!pJ(Q[$]))return!1;return console.log(`Object with keys [${q.join(", ")}] is considered empty`),!0}function g_(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...`),pJ(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 rZ(Q,q=new Map){for(let X of Q){if(X.value!==void 0)q.set(X.path,X.value);if(X.children)rZ(X.children,q)}return q}function yJ(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 d9(){let Q=[];if(!I0.$paths.compositionsDir){try{let X=await Z8(P8,"utf-8"),$=JSON.parse(X),U=Array.isArray($)?$:[$];for(let Y of U)Q.push({...Y,$sourceFile:B8(_0,P8)})}catch(X){}return Q}let q=U0(_0,I0.$paths.compositionsDir);try{let X=await u9(q);if(X.isDirectory()){let $=await sZ(q);for(let U of $){if(!U.endsWith(".json"))continue;let Y=U0(q,U);try{if((await u9(Y)).isFile()){let G=await Z8(Y,"utf-8"),z=JSON.parse(G),O=Array.isArray(z)?z:[z];for(let _ of O)Q.push({..._,$sourceFile:B8(_0,Y)});if(D0)console.log(` Loaded ${O.length} composition(s) from ${U}`)}}catch(H){console.warn(`⚠️ Failed to load composition file ${U}:`,H)}}}else if(X.isFile()&&q.endsWith(".json")){let $=await Z8(q,"utf-8"),U=JSON.parse($),Y=Array.isArray(U)?U:[U];for(let H of Y)Q.push({...H,$sourceFile:B8(_0,q)})}}catch(X){try{let $=await Z8(P8,"utf-8"),U=JSON.parse($),Y=Array.isArray(U)?U:[U];for(let H of Y)Q.push({...H,$sourceFile:B8(_0,P8)})}catch($){}}if(D0)console.log(` Total compositions loaded: ${Q.length}`);return Q}async function t1(Q){let q=gJ(Q);try{await u9(q)}catch{await cZ(q,{recursive:!0})}}function dJ(Q,q,X){let $=Q.match(/^\{(.+)\}$/);if($){let Y=$[1].replace(/\./g,"-");return Y=yJ(Y,q),`var(--${Y})`}return Q.replace(/\{([^}]+)\}/g,(U,Y)=>{let H=Y.replace(/\./g,"-");return H=yJ(H,q),`var(--${H})`})}async function e1(Q){let q=process.cwd(),$=((M)=>{if(M.startsWith("../"))return U0(q,M);return U0(_0,M)})(I0.$paths.distDir),U=U0($,"css");if(D0)console.log(`
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 u9(U)}catch{if(D0)console.log(` Creating CSS directory: ${U}`);await cZ(U,{recursive:!0})}let Y=await iZ(),H=rZ(Y.tokens),G=Q.filter((M)=>M.platform==="css");if(D0)console.log(` CSS compositions: ${G.length}`);let z=new Map,O="compositions.css";for(let M of G){let N=M.fileName||"";if(N.endsWith(".css"))N=N.slice(0,-4);let D=N?`${N}.css`:O;if(D0)console.log(` → ${M.name}: fileName="${M.fileName||""}" → ${D}`);if(!z.has(D))z.set(D,[]);z.get(D).push(M)}let _=[];if(D0){console.log(`
509
- Files to generate: ${z.size}`);for(let[M]of z.entries())console.log(` - ${M}`)}for(let[M,N]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: ${I0.$metaData?.dsNamespace||"ds"}.${I0.$metaData?.tokenNamespace||"tokens"}`),D.push(` * File: ${M}`),D.push(` */
510
- `),N.length===0)D.push("/* No compositions defined */");else for(let b of N){D.push(`/* ${b.name} */`);let k=b.groupProperties,y=k&&(k.mediaQuery||k.parentSelector||k.containerQuery||k.customAtRule),g="",i=[];if(y){if(k.customAtRule){let p=v0(k.customAtRule,H);D.push(`${p} {`),i.push("}"),g=" "}if(k.mediaQuery){let p=v0(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} {`),i.push("}"),g+=" "}if(k.containerQuery){let p=v0(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} {`),i.push("}"),g+=" "}if(k.parentSelector){let p=v0(k.parentSelector,H);D.push(`${g}${p} {`),i.push("}"),g+=" "}}D.push(`${g}${b.selector} {`);for(let p of b.properties){let $0=dJ(p.token,I0,H);D.push(`${g} ${p.property}: ${$0};`)}D.push(`${g}}`);while(i.length>0)g=g.slice(2),D.push(`${g}${i.pop()}`);D.push("")}let R=D.join(`
511
- `);_.push(R);let P=U0(U,M),S=gJ(P);if(D0)console.log(` → Generating composition file: ${M}`),console.log(` Full path: ${P}`),console.log(` Directory: ${S}`),console.log(` Compositions: ${N.length}`);try{await u9(S)}catch{if(D0)console.log(` Creating directory: ${S}`);await cZ(S,{recursive:!0})}let T=R.endsWith(`
512
- `)?R:`${R}
513
- `;if(await p8(P,T,"utf-8"),D0)console.log(" ✓ File written successfully")}return await h_($),_.join(`
514
-
515
- `)}async function h_(Q){let q=I0.$metaData?.tokenNamespace||"tokens",X=`${q}.design-system.tokens.css`,$=U0(Q,X),U="";try{U=await Z8($,"utf-8")}catch(N){return}let Y=/@import url\("\.\/css\/([^"]+)"\);/g,H=new Set,G;while((G=Y.exec(U))!==null)H.add(G[1]);let z=I0.$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(` * ${I0.$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(` */
516
- `);let _=Array.from(H).sort();for(let N of _)O.push(`@import url("./css/${N}");`);let M=O.join(`
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 p8($,M,"utf-8")}async function p_(){console.log("\uD83D\uDD28 Building tokens before starting editor...");try{await yZ(nZ),console.log(`✅ Initial token build completed successfully
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
- `)}m_.listen(lZ,()=>{console.log(`
521
- ========================================================`),console.log("\uD83D\uDE80 Token Editor is ready!"),console.log("========================================================"),console.log(`\uD83D\uDCDD Open in browser: http://localhost:${lZ}`),console.log(`========================================================
522
- `)})}var b_=`<!DOCTYPE html>
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/tokens Editor</title>
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/tokens Editor</h1>
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/tokens Editor</h3>
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="toggleTreeNode(event, '\${nodeId}')">▼</span>\`;
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
- html += \` <span style="color: #999; font-size: 11px;">(\${node.type})</span>\`;
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 (for backwards compatibility)
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 toggleTreeNode(event, nodeId);
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), fill search field with path and show add form
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 and filter by parent
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 it's a folder, fill search and show add form
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 and filter by parent
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 they exist
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[modeLabel] || '';
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="\${token.path}" placeholder="e.g., foundation.color.primary" oninput="checkPathExists(this, '\${token.path}')">
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" \${token.type === 'color' ? 'selected' : ''}>color</option>
2185
- <option value="dimension" \${token.type === 'dimension' ? 'selected' : ''}>dimension</option>
2186
- <option value="string" \${token.type === 'string' ? 'selected' : ''}>string</option>
2187
- <option value="number" \${token.type === 'number' ? 'selected' : ''}>number</option>
2188
- <option value="fontFamily" \${token.type === 'fontFamily' ? 'selected' : ''}>fontFamily</option>
2189
- <option value="fontWeight" \${token.type === 'fontWeight' ? 'selected' : ''}>fontWeight</option>
2190
- <option value="composition" \${token.type === 'composition' ? 'selected' : ''}>composition</option>
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
- \${token.type === 'composition' ? \`
2477
+ \${dataToShow.type === 'composition' ? \`
2197
2478
  <div style="margin-top: 10px;">
2198
- \${renderCompositionEditor(token.value, 'token-value')}
2479
+ \${renderCompositionEditor(dataToShow.value, 'token-value')}
2199
2480
  </div>
2200
2481
  \` : \`
2201
- <input type="text" id="token-value" value="\${token.value}" autocomplete="off">
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">\${token.$description || ''}</textarea>
2504
+ <textarea id="token-description">\${dataToShow.description || dataToShow.$description || ''}</textarea>
2224
2505
  </div>
2225
- <div style="display: flex; gap: 10px;">
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 (token.type === 'composition') {
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
- <input type="text" id="token-value" placeholder="#ff0000 or 16px or 'Inter'" autocomplete="off">
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"></textarea>
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
- // fileName is required - if missing, put in warning section
3035
- if (!comp.fileName || comp.fileName.trim() === '') {
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 fileName into path parts (e.g., "buttons/primary" -> ["buttons", "primary"])
3041
- const fileName = comp.fileName.replace(/\\.css$/, '');
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="showAddCompositionForm('\${fullPath}')">\`;
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 += \`\uD83D\uDCC1 \${child.name}\`;
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 += \`\${comp.name}\`;
3154
- html += \` <span style="color: #999; font-size: 11px;">\${comp.selector}</span>\`;
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 add composition form
3262
- function showAddCompositionForm(prefillPath = '') {
3263
- selectedComposition = null;
3264
-
3265
- // Extract folder name from path for suggested name
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>Add New Composition</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({ fileName: suggestedFileName })}
4194
+ \${renderCompositionForm(dataToShow, true)}
3275
4195
  \`;
3276
4196
 
3277
4197
  // Initialize autocomplete on existing property inputs
3278
4198
  initializeCompositionAutocomplete();
3279
4199
 
3280
- // Clear selection in the list
3281
- renderCompositionsList();
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
- // Show edit composition form
3285
- function showEditCompositionForm(composition) {
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>Edit Composition</h2>
4244
+ <h2>Add New Composition</h2>
3289
4245
 
3290
- \${renderCompositionForm(composition, true)}
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
- // Initialize autocomplete on all composition property token inputs
3298
- function initializeCompositionAutocomplete() {
3299
- const tokenInputs = document.querySelectorAll('.comp-prop-token');
3300
- tokenInputs.forEach(input => {
3301
- setupAutocomplete(input);
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="\${isEditMode ? (composition.$sourceFile || '') : (compositionFiles[0] || '')}"
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
- <button onclick="updateCompositionPreview()"
3467
- style="margin-top: 10px; background: #666;">
3468
- \uD83D\uDD04 Refresh Preview
3469
- </button>
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
- `,lZ,nZ,D0,k_,I0,_0,P5,P8,m_;var uJ=S0(async()=>{gZ();H6();lZ=parseInt(process.env.EDITOR_PORT||"3002",10),nZ=process.env.EDITOR_CONFIG_PATH||U0(process.cwd(),"designid.config.ts"),D0=process.env.EDITOR_VERBOSE==="true",k_=await import(nZ),I0=k_.default,_0=U0(process.cwd(),I0.$paths.baseDir),P5=U0(_0,I0.$paths.tokensDir);if(I0.$paths.compositionsDir){let Q=U0(_0,I0.$paths.compositionsDir);if(I0.$paths.compositionsDir.endsWith(".json"))P8=Q;else P8=U0(Q,"compositions.json")}else P8=U0(_0,"compositions.json");if(D0)console.log("Editor configuration:"),console.log(` Port: ${lZ}`),console.log(` Config: ${nZ}`),console.log(` Tokens: ${P5}`),console.log(` Compositions: ${P8}`);m_=f_(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 iZ();U(H)}catch(H){U({error:"Failed to load tokens"},500)}return}if(X.pathname==="/api/config/modes"&&Q.method==="GET"){try{let H=I0.$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,_=U0(P5,G),M=await Z8(_,"utf-8"),N=JSON.parse(M),D=z?`${z}.${O.name}`:O.name,R=kJ(D);if(!R.valid){U({error:"Invalid token path",details:R.errors},400);return}let P={$value:O.value};if(O.type)P.$type=O.type;if(O.description)P.$description=O.description;if(O.$extensions)P.$extensions=O.$extensions;vJ(N,D,P),await p8(_,JSON.stringify(N,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:_,description:M,$extensions:N}=H,D=kJ(z);if(!D.valid){U({error:"Invalid token path",details:D.errors},400);return}let R=U0(P5,G),P=await Z8(R,"utf-8"),S=JSON.parse(P),T={$value:_};if(O)T.$type=O;if(M)T.$description=M;if(N)T.$extensions=N;vJ(S,z,T),await p8(R,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),_=await Z8(O,"utf-8"),M=JSON.parse(_);if(!g_(M,z)){U({error:"Token not found"},404);return}await p8(O,JSON.stringify(M,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(!I0.$paths.compositionsDir){let G=B8(_0,P8);H.push(G)}else{let G=U0(_0,I0.$paths.compositionsDir);try{let z=await u9(G);if(z.isDirectory()){let O=await sZ(G);for(let N of O)if(N.endsWith(".json")){let D=U0(G,N);H.push(B8(_0,D))}let _=U0(G,"compositions.json"),M=B8(_0,_);if(!H.includes(M))H.push(M)}else if(z.isFile()&&G.endsWith(".json"))H.push(B8(_0,G))}catch(z){let O=U0(G,"compositions.json");H.push(B8(_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 d9();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(D0)console.log(`
3848
- \uD83D\uDCDD POST /api/compositions/add received:`),console.log(" Body:",JSON.stringify(H,null,2));let{name:G,selector:z,platform:O,fileName:_,properties:M,targetFile:N}=H;if(!G||!z||!M||M.length===0){U({error:"Missing required fields"},400);return}let D=N||B8(_0,P8),R=U0(_0,D);if(D0)console.log(` Target file (relative): ${D}`),console.log(` Target file (absolute): ${R}`);let P=[];try{let b=await Z8(R,"utf-8"),k=JSON.parse(b);P=Array.isArray(k)?k:[k]}catch(b){P=[]}let S={id:`comp-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:G,selector:z,platform:O||"css",fileName:_||void 0,properties:M,...H.groupProperties&&Object.keys(H.groupProperties).length>0?{groupProperties:H.groupProperties}:{}};if(D0)console.log(`
3849
- Created composition:`),console.log(" ",JSON.stringify(S,null,2));if(P.push(S),await t1(R),await p8(R,JSON.stringify(P,null,2),"utf-8"),D0)console.log(` Saved to: ${R}`),console.log(` Total compositions in this file: ${P.length}`);let T=await d9();await e1(T),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:_,fileName:M,properties:N,targetFile:D}=H;if(!G||!z||!O||!N){U({error:"Missing required fields"},400);return}let P=(await d9()).find((p)=>p.id===G);if(!P){U({error:"Composition not found"},404);return}let S=P.$sourceFile||B8(_0,P8),T=U0(_0,S),b=D?D.trim():S,k=U0(_0,b),y=T!==k;if(D0){if(console.log(`
3850
- \uD83D\uDCDD Updating composition ${G}`),console.log(` Source file (relative): ${S}`),console.log(` Source file (absolute): ${T}`),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:_||"css",fileName:M||void 0,properties:N,...H.groupProperties&&Object.keys(H.groupProperties).length>0?{groupProperties:H.groupProperties}:{}};if(y){let p=[];try{let W0=await Z8(T,"utf-8"),F0=JSON.parse(W0);p=Array.isArray(F0)?F0:[F0]}catch(W0){p=[]}if(p=p.filter((W0)=>W0.id!==G),await p8(T,JSON.stringify(p,null,2),"utf-8"),D0)console.log(` ✅ Removed from ${T}`);let $0=[];try{let W0=await Z8(k,"utf-8"),F0=JSON.parse(W0);$0=Array.isArray(F0)?F0:[F0]}catch(W0){$0=[]}if($0.push(g),await t1(k),await p8(k,JSON.stringify($0,null,2),"utf-8"),D0)console.log(` ✅ Added to ${k}`)}else{let p=[];try{let W0=await Z8(T,"utf-8"),F0=JSON.parse(W0);p=Array.isArray(F0)?F0:[F0]}catch(W0){p=[]}let $0=p.findIndex((W0)=>W0.id===G);if($0===-1){U({error:"Composition not found in source file"},404);return}if(p[$0]=g,await t1(T),await p8(T,JSON.stringify(p,null,2),"utf-8"),D0)console.log(` ✅ Updated composition in ${T}`)}let i=await d9();await e1(i),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 d9()).find((P)=>P.id===G);if(!O){U({error:"Composition not found"},404);return}let _=O.$sourceFile||B8(_0,P8),M=U0(_0,_);if(D0)console.log(`
3851
- \uD83D\uDDD1️ Deleting composition ${G}`),console.log(` Source file (relative): ${_}`),console.log(` Source file (absolute): ${M}`);let N=[];try{let P=await Z8(M,"utf-8"),S=JSON.parse(P);N=Array.isArray(S)?S:[S]}catch(P){U({error:"Composition not found"},404);return}let D=N.filter((P)=>P.id!==G);if(D.length===N.length){U({error:"Composition not found in source file"},404);return}if(await t1(M),await p8(M,JSON.stringify(D,null,2),"utf-8"),D0)console.log(` ✅ Deleted composition from ${M}`);let R=await d9();await e1(R),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:_}=H;if(!G||!z||z.length===0){U({error:"Missing required fields"},400);return}let M=await iZ(),N=rZ(M.tokens),D="";if(O==="css"||!O){let R=_&&(_.mediaQuery||_.parentSelector||_.containerQuery||_.customAtRule),P="";if(R){if(_.customAtRule){let S=v0(_.customAtRule,N);D+=`${S} {
3852
- `,P=" "}if(_.mediaQuery){let S=v0(_.mediaQuery,N);D+=`${P}${S} {
3853
- `,P+=" "}if(_.containerQuery){let S=v0(_.containerQuery,N);D+=`${P}${S} {
3854
- `,P+=" "}if(_.parentSelector){let S=v0(_.parentSelector,N);D+=`${P}${S} {
3855
- `,P+=" "}}D+=`${P}${G} {
3856
- `;for(let S of z){let T=dJ(S.token,I0,N),b=v0(S.token,N);if(S.token.match(/^\{.+\}$/)&&T!==b)D+=`${P} ${S.property}: ${T}; /* = ${b} */
3857
- `;else D+=`${P} ${S.property}: ${T};
3858
- `}if(D+=`${P}}`,R){if(_.parentSelector)P=P.slice(2),D+=`
3859
- ${P}}`;if(_.containerQuery)P=P.slice(2),D+=`
3860
- ${P}}`;if(_.mediaQuery)P=P.slice(2),D+=`
3861
- ${P}}`;if(_.customAtRule)P=P.slice(2),D+=`
3862
- ${P}}`}}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/compositions/export"&&Q.method==="POST"){try{let H=await d9();if(H.length===0){U({success:!0,css:"/* No compositions found */",message:"No compositions to export"});return}let G=await e1(H),z=U0(_0,I0.$paths.distDir),O=I0.$metaData?.tokenNamespace||"tokens",_=U0(z,"css","compositions.css"),M=U0(z,`${O}.design-system.tokens.css`);U({success:!0,css:G,files:{compositions:_,main:M},message:`Exported ${H.filter((N)=>N.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(b_);return}q.writeHead(404),q.end("Not Found")}catch(H){console.error("Server error:",H),q.writeHead(500),q.end("Internal Server Error")}});p_()});import{execSync as p2}from"child_process";import{existsSync as M1,statSync as xq}from"fs";import{resolve as Tq}from"path";async function Cq(Q,q=!1){let X=process.cwd(),$=Q||Tq(X,"designid.config.ts"),U=Tq(X,"designid.config.mjs");if(!M1($))return!1;if(!(!M1(U)||M1($)&&M1(U)&&xq($).mtimeMs>xq(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(p2(`bun build ${$} --outfile ${U} --minify --target node --packages external --no-bundle`,{stdio:q?"inherit":"pipe"}),q)console.log(`✅ Config compiled successfully
3863
- `);return!0}catch(H){if(console.error(" Failed to compile config file"),H instanceof Error)console.error(H.message);throw H}}var I5=process.argv.slice(2),u_=I5.find((Q)=>Q.startsWith("--port="))?.split("=")[1],iJ=I5.find((Q)=>Q.startsWith("--config="))?.split("=")[1]||void 0,A5=I5.includes("--verbose")||I5.includes("-v");if(I5.includes("--help")||I5.includes("-h"))console.log(`
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 Cq(iJ,A5);var aZ=process.cwd(),c_=aZ+"/designid.config.ts",cJ=aZ+"/designid.config.mjs",V5=iJ;if(!V5){let{existsSync:Q}=await import("fs");if(Q(cJ))V5=cJ;else if(Q(c_))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 oZ={enabled:!0,port:3002};if(V5)try{let Q=await import(V5),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(oZ={enabled:q.$metaData?.editor?.enabled!==!1,port:X},A5)console.log("Editor config from file:",oZ)}catch(Q){if(console.error("Warning: Could not read editor config from file, using defaults"),A5)console.error(Q)}var lJ=u_||String(oZ.port);if(lJ)process.env.EDITOR_PORT=lJ;if(A5)process.env.EDITOR_VERBOSE="true";if(V5)process.env.EDITOR_CONFIG_PATH=V5;var{spawn:l_}=await import("child_process"),{join:sJ,dirname:i_}=await import("path"),{fileURLToPath:s_}=await import("url"),n_=s_(import.meta.url),nJ=i_(n_),kw=sJ(nJ,".."),z8=null,Q4=null,rJ=()=>{if(console.log(`
3889
- Shutting down...`),Q4&&!Q4.killed)Q4.kill();if(z8&&!z8.killed)z8.kill();process.exit(0)};process.on("SIGINT",rJ);process.on("SIGTERM",rJ);console.log("Starting Token Editor Server...");var oJ=sJ(nJ,"watch.js");console.log("Starting token watch process...");if(A5)console.log("Watch path:",oJ);z8=l_("node",[oJ],{stdio:["ignore","pipe","pipe"],env:process.env,cwd:aZ});z8.stdout?.on("data",(Q)=>{let q=Q.toString().trim();if(q)console.log("[watch]",q)});z8.stderr?.on("data",(Q)=>{let q=Q.toString().trim();if(q)console.error("[watch]",q)});z8.on("error",(Q)=>{console.error("Warning: Failed to start watch process:",Q.message)});z8.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(A5)console.log("[watch] Process exited normally")});setTimeout(()=>{if(z8&&z8.exitCode===null&&!z8.killed)console.log("✓ Token watch process running");else if(z8)console.warn("⚠️ Token watch process not running (exit code:",z8.exitCode,")")},1000);Q4={killed:!1,kill:()=>{},exitCode:null};var vw=await uJ().then(() => d_);
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_);