UNPKG

colortranslator

Version:

A JavaScript library, written in TypeScript, to convert among different color models

2 lines (1 loc) 45.7 kB
var colortranslator=function(t){"use strict";const e=255,s=100,r=125,a=150;var i,n,c,o;!function(t){t.HEX="HEX",t.RGB="RGB",t.HWB="HWB",t.HSL="HSL",t.CIELab="CIELab",t.LCH="LCH",t.CMYK="CMYK"}(i||(i={})),t.Harmony=void 0,(n=t.Harmony||(t.Harmony={})).ANALOGOUS="ANALOGOUS",n.COMPLEMENTARY="COMPLEMENTARY",n.SPLIT_COMPLEMENTARY="SPLIT_COMPLEMENTARY",n.TRIADIC="TRIADIC",n.TETRADIC="TETRADIC",n.SQUARE="SQUARE",t.Mix=void 0,(c=t.Mix||(t.Mix={})).ADDITIVE="ADDITIVE",c.SUBTRACTIVE="SUBTRACTIVE",function(t){t.black="#000000",t.silver="#C0C0C0",t.gray="#808080",t.white="#FFFFFF",t.maroon="#800000",t.red="#FF0000",t.purple="#800080",t.fuchsia="#FF00FF",t.green="#008000",t.lime="#00FF00",t.olive="#808000",t.yellow="#FFFF00",t.navy="#000080",t.blue="#0000FF",t.teal="#008080",t.aqua="#00FFFF",t.orange="#FFA500",t.aliceblue="#F0F8FF",t.antiquewhite="#FAEBD7",t.aquamarine="#7FFFD4",t.azure="#F0FFFF",t.beige="#F5F5DC",t.bisque="#FFE4C4",t.blanchedalmond="#FFEBCD",t.blueviolet="#8A2BE2",t.brown="#A52A2A",t.burlywood="#DEB887",t.cadetblue="#5F9EA0",t.chartreuse="#7FFF00",t.chocolate="#D2691E",t.coral="#FF7F50",t.cornflowerblue="#6495ED",t.cornsilk="#FFF8DC",t.crimson="#DC143C",t.cyan="#00FFFF",t.darkblue="#00008B",t.darkcyan="#008B8B",t.darkgoldenrod="#B8860B",t.darkgray="#A9A9A9",t.darkgreen="#006400",t.darkgrey="#A9A9A9",t.darkkhaki="#BDB76B",t.darkmagenta="#8B008B",t.darkolivegreen="#556B2F",t.darkorange="#FF8C00",t.darkorchid="#9932CC",t.darkred="#8B0000",t.darksalmon="#E9967A",t.darkseagreen="#8FBC8F",t.darkslateblue="#483D8B",t.darkslategray="#2F4F4F",t.darkslategrey="#2F4F4F",t.darkturquoise="#00CED1",t.darkviolet="#9400D3",t.deeppink="#FF1493",t.deepskyblue="#00BFFF",t.dimgray="#696969",t.dimgrey="#696969",t.dodgerblue="#1E90FF",t.firebrick="#B22222",t.floralwhite="#FFFAF0",t.forestgreen="#228B22",t.gainsboro="#DCDCDC",t.ghostwhite="#F8F8FF",t.gold="#FFD700",t.goldenrod="#DAA520",t.greenyellow="#ADFF2F",t.grey="#808080",t.honeydew="#F0FFF0",t.hotpink="#FF69B4",t.indianred="#CD5C5C",t.indigo="#4B0082",t.ivory="#FFFFF0",t.khaki="#F0E68C",t.lavender="#E6E6FA",t.lavenderblush="#FFF0F5",t.lawngreen="#7CFC00",t.lemonchiffon="#FFFACD",t.lightblue="#ADD8E6",t.lightcoral="#F08080",t.lightcyan="#E0FFFF",t.lightgoldenrodyellow="#FAFAD2",t.lightgray="#D3D3D3",t.lightgreen="#90EE90",t.lightgrey="#D3D3D3",t.lightpink="#FFB6C1",t.lightsalmon="#FFA07A",t.lightseagreen="#20B2AA",t.lightskyblue="#87CEFA",t.lightslategray="#778899",t.lightslategrey="#778899",t.lightsteelblue="#B0C4DE",t.lightyellow="#FFFFE0",t.limegreen="#32CD32",t.linen="#FAF0E6",t.magenta="#FF00FF",t.mediumaquamarine="#66CDAA",t.mediumblue="#0000CD",t.mediumorchid="#BA55D3",t.mediumpurple="#9370DB",t.mediumseagreen="#3CB371",t.mediumslateblue="#7B68EE",t.mediumspringgreen="#00FA9A",t.mediumturquoise="#48D1CC",t.mediumvioletred="#C71585",t.midnightblue="#191970",t.mintcream="#F5FFFA",t.mistyrose="#FFE4E1",t.moccasin="#FFE4B5",t.navajowhite="#FFDEAD",t.oldlace="#FDF5E6",t.olivedrab="#6B8E23",t.orangered="#FF4500",t.orchid="#DA70D6",t.palegoldenrod="#EEE8AA",t.palegreen="#98FB98",t.paleturquoise="#AFEEEE",t.palevioletred="#DB7093",t.papayawhip="#FFEFD5",t.peachpuff="#FFDAB9",t.peru="#CD853F",t.pink="#FFC0CB",t.plum="#DDA0DD",t.powderblue="#B0E0E6",t.rosybrown="#BC8F8F",t.royalblue="#4169E1",t.saddlebrown="#8B4513",t.salmon="#FA8072",t.sandybrown="#F4A460",t.seagreen="#2E8B57",t.seashell="#FFF5EE",t.sienna="#A0522D",t.skyblue="#87CEEB",t.slateblue="#6A5ACD",t.slategray="#708090",t.slategrey="#708090",t.snow="#FFFAFA",t.springgreen="#00FF7F",t.steelblue="#4682B4",t.tan="#D2B48C",t.thistle="#D8BFD8",t.tomato="#FF6347",t.turquoise="#40E0D0",t.violet="#EE82EE",t.wheat="#F5DEB3",t.whitesmoke="#F5F5F5",t.yellowgreen="#9ACD32",t.rebeccapurple="#663399"}(o||(o={}));const h=Object.keys(o),l={HEX:["R","G","B","A"],RGB:["R","G","B","A"],HSL:["H","S","L","A"],HWB:["H","W","B","A"],CIELab:["L","a","b","A"],LCH:["L","C","H","A"],CMYK:["C","M","Y","K","A"]},u={ABGR:i.RGB,ABHW:i.HWB,ACHL:i.LCH,ACKMY:i.CMYK,AHLS:i.HSL,ALAB:i.CIELab,BGR:i.RGB,BHW:i.HWB,CHL:i.LCH,CKMY:i.CMYK,HLS:i.HSL,LAB:i.CIELab};var d;!function(t){t.NUMBER="number",t.BOOLEAN="boolean"}(d||(d={}));const A={[i.HEX]:/^#(?:(?<r>[a-f\d])(?<g>[a-f\d])(?<b>[a-f\d])(?<a>[a-f\d])?|(?<rr>[a-f\d]{2})(?<gg>[a-f\d]{2})(?<bb>[a-f\d]{2})(?<aa>[a-f\d]{2})?)$/i,[i.RGB]:/^rgba?\s*\(\s*(?:(?<r_legacy>(?:\d*\.)?\d+%?)\s*,\s*(?<g_legacy>(?:\d*\.)?\d+%?)\s*,\s*(?<b_legacy>(?:\d*\.)?\d+%?)(?:\s*,\s*(?<a_legacy>(?:\d*\.)?\d+))?|(?<r>(?:\d*\.)?\d+%?)\s+(?<g>(?:\d*\.)?\d+%?)\s+(?<b>(?:\d*\.)?\d+%?)(?:\s*\/\s*(?<a>(?:\d*\.)?\d+%?))?|from\s+(?<from>(?:\w+|\w+\(\s*[^())]+\s*\)|\w+\(from\s+\w+\(.*\)\s*\)|#[a-fA-F\d]+))\s+(?<relative_r>(?:[rgb]|(?:\d*\.)?\d+|calc\([rgb()/*\-+\d.\s]+\)))\s+(?<relative_g>(?:[rgb]|(?:\d*\.)?\d+|calc\([rgb()/*\-+\d.\s]+\)))\s+(?<relative_b>(?:[rgb]|(?:\d*\.)?\d+|calc\([rgb()/*\-+\d.\s]+\)))(?:\s*\/\s*(?<relative_a>(?:(?:\d*\.)?\d+%?|calc\([()/*\-+\d.\s\w]*(?:alpha)?[()/*\-+\d.\s\w]*\)|alpha)))?)\s*\)$/,[i.HWB]:/^hwb\s*\(\s*(?:(?<h>(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)\s+(?<w>(?:\d*\.)?\d+)%\s+(?<b>(?:\d*\.)?\d+)%(?:\s*\/\s*(?<a>(?:\d*\.)?\d+%?))?|from\s+(?<from>(?:\w+|\w+\(\s*[^())]+\s*\)|\w+\(from\s+\w+\(.*\)\s*\)|#[a-fA-F\d]+))\s+(?<relative_h>(?:[hwb]|(?:\d*\.)?\d+|calc\([hwb()/*\-+\d.\s]+\)))\s+(?<relative_w>(?:[hwb]|(?:\d*\.)?\d+|calc\([hwb()/*\-+\d.\s]+\)))%?\s+(?<relative_b>(?:[hwb]|(?:\d*\.)?\d+|calc\([hwb()/*\-+\d.\s]+\)))%?(?:\s*\/\s*(?<relative_a>(?:(?:\d*\.)?\d+%?|calc\([()/*\-+\d.\s\w]*(?:alpha)?[()/*\-+\d.\s\w]*\)|alpha)))?)\s*\)$/,[i.HSL]:/^hsla?\s*\(\s*(?:(?<h_legacy>-?(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)\s*,\s*(?<s_legacy>(?:\d*\.)?\d+)%\s*,\s*(?<l_legacy>(?:\d*\.)?\d+)%(?:\s*,\s*(?<a_legacy>(?:\d*\.)?\d+))?|(?<h>-?(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)\s+(?<s>(?:\d*\.)?\d+)%?\s+(?<l>(?:\d*\.)?\d+)%?(?:\s*\/\s*(?<a>(?:\d*\.)?\d+%?))?|from\s+(?<from>(?:\w+|\w+\(\s*[^())]+\s*\)|\w+\(from\s+\w+\(.*\)\s*\)|#[a-fA-F\d]+))\s+(?<relative_h>(?:[hsl]|(?:\d*\.)?\d+|calc\([hsl()/*\-+\d.\s]+\)))\s+(?<relative_s>(?:[hsl]|(?:\d*\.)?\d+|calc\([hsl()/*\-+\d.\s]+\)))%?\s+(?<relative_l>(?:[hsl]|(?:\d*\.)?\d+|calc\([hsl()/*\-+\d.\s]+\)))%?(?:\s*\/\s*(?<relative_a>(?:(?:\d*\.)?\d+%?|calc\([()/*\-+\d.\s\w]*(?:alpha)?[()/*\-+\d.\s\w]*\)|alpha)))?)\s*\)$/,[i.CIELab]:/^lab\s*\(\s*(?:(?<L>(?:\d*\.)?\d+%?)\s+(?<a>-?(?:\d*\.)?\d+%?)\s+(?<b>-?(?:\d*\.)?\d+%?)(?:\s*\/\s*(?<A>(?:\d*\.)?\d+%?))?|from\s+(?<from>(?:\w+|\w+\(\s*[^())]+\s*\)|\w+\(from\s+\w+\(.*\)\s*\)|#[a-fA-F\d]+))\s+(?<relative_L>(?:[lab]|(?:\d*\.)?\d+|calc\([lab()/*\-+\d.\s]+\)))\s+(?<relative_a>(?:[lab]|(?:\d*\.)?\d+|calc\([lab()/*\-+\d.\s]+\)))\s+(?<relative_b>(?:[lab]|(?:\d*\.)?\d+|calc\([lab()/*\-+\d.\s]+\)))(?:\s*\/\s*(?<relative_A>(?:(?:\d*\.)?\d+%?|calc\([()/*\-+\d.\s\w]*(?:alpha)?[()/*\-+\d.\s\w]*\)|alpha)))?)\s*\)$/,[i.LCH]:/^lch\s*\(\s*(?:(?<l>(?:\d*\.)?\d+%?)\s+(?<c>-?(?:\d*\.)?\d+%?)\s+(?<h>-?(?:\d*\.)?\d+(?:deg|grad|rad|turn)?)(?:\s*\/\s*(?<a>(?:\d*\.)?\d+%?))?|from\s+(?<from>(?:\w+|\w+\(\s*[^())]+\s*\)|\w+\(from\s+\w+\(.*\)\s*\)|#[a-fA-F\d]+))\s+(?<relative_l>(?:[lch]|(?:\d*\.)?\d+|calc\([lch()/*\-+\d.\s]+\)))\s+(?<relative_c>(?:[lch]|(?:\d*\.)?\d+|calc\([lch()/*\-+\d.\s]+\)))\s+(?<relative_h>(?:[lch]|(?:\d*\.)?\d+|calc\([lch()/*\-+\d.\s]+\)))(?:\s*\/\s*(?<relative_a>(?:(?:\d*\.)?\d+%?|calc\([()/*\-+\d.\s\w]*(?:alpha)?[()/*\-+\d.\s\w]*\)|alpha)))?)\s*\)$/,[i.CMYK]:/^(?:device-cmyk|cmyk)\s*\(\s*(?:(?<c_legacy>(?:\d*\.)?\d+%?)\s*,\s*(?<m_legacy>(?:\d*\.)?\d+%?)\s*,\s*(?<y_legacy>(?:\d*\.)?\d+%?)\s*,\s*(?<k_legacy>(?:\d*\.)?\d+%?)(?:\s*,\s*(?<a_legacy>(?:\d*\.)?\d+))?|(?<c>(?:\d*\.)?\d+%?)\s+(?<m>(?:\d*\.)?\d+%?)\s+(?<y>(?:\d*\.)?\d+%?)\s+(?<k>(?:\d*\.)?\d+%?)(?:\s*\/\s*(?<a>(?:\d*\.)?\d+%?))?)\s*\)$/},m={REGEXP:/^calc\(\s*(?<operation>[\d./*+-\w\s]+)\s*\)$/,SCOPED:/\(\s*([^()]+)\s*\)/g,DIVISION:/\s*(?<left>(?:(?:\d*\.)?\d+|\w+))\s*\/\s*(?<right>(?:(?:\d*\.)?\d+|\w+))\s*/,MULTIPLICATION:/\s*(?<left>(?:(?:\d*\.)?\d+|\w+))\s*\*\s*(?<right>(?:(?:\d*\.)?\d+|\w+))\s*/,SUM:/\s*(?<left>(?:(?:\d*\.)?\d+|\w+))\s*\+\s*(?<right>(?:(?:\d*\.)?\d+|\w+))\s*/,REST:/\s*(?<left>(?:(?:\d*\.)?\d+|\w+))\s*-\s*(?<right>(?:(?:\d*\.)?\d+|\w+))\s*/},b=/^(?<number>-?(?:\d*\.)?\d+)(?<units>(?:deg|grad|rad|turn)?)$/,g=/^(-?\d+(?:\.\d+)?|-?\.\d+)%$/,H=/^0x([a-f\d]{1,2})$/i,C=/\{(\d+)\}/g,L=/,( +|\d+)/g,B=/ +/,E="The provided string color doesn't have a correct format",p="The provided color object doesn't have the proper keys or format",F="is not a valid operation for a relative color";var R,_,f;!function(t){t.NONE="none",t.DEGREES="deg",t.GRADIANS="grad",t.RADIANS="rad",t.TURNS="turn"}(R||(R={})),function(t){t.NONE="none",t.PERCENT="percent"}(_||(_={})),function(t){t.DEVICE_CMYK="device-cmyk",t.CMYK="cmyk"}(f||(f={}));const M={decimals:6,legacyCSS:!1,spacesAfterCommas:!1,anglesUnit:R.NONE,rgbUnit:_.NONE,labUnit:_.NONE,lchUnit:_.NONE,cmykUnit:_.PERCENT,alphaUnit:_.NONE,cmykFunction:f.DEVICE_CMYK},S=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),G=t=>+`${t}`.replace(g,"$1"),y=t=>g.test(`${t}`)?G(t):Math.min(+t,100),I=t=>(1===t.length&&(t+=t),parseInt(t,16)),w=t=>{const e=W(t,0).toString(16).toUpperCase();return 1===e.length?`0x0${e}`:`0x${e}`},P=(t,s=!1)=>!s&&g.test(t)?Math.min(e*G(t)/100,e):H.test(t)?(3===t.length&&(t+=t.slice(-1)),s?W(t)/e:W(t)):Math.min(+t,s?1:e),O=t=>g.test(t)?j(r*G(t)/100,-125,r):j(+t,-125,r),D=t=>g.test(t)?j(a*G(t)/100,-150,a):j(+t,-150,a),x=t=>Math.min(g.test(t)?G(t)/100:+t,1),k=t=>[...t].sort().join("").toUpperCase(),W=(t,e=6)=>{const s=Math.pow(10,e);return Math.round(+t*s)/s},j=(t,e,s)=>Math.max(e,Math.min(t,s)),v=t=>180*t/Math.PI,N=t=>t*Math.PI/180,$=360,X=t=>{if("string"==typeof t){const e=t.match(b).groups,s=+e.number;switch(e.units){case R.RADIANS:t=W(v(s));break;case R.TURNS:t=W(s*$);break;case R.GRADIANS:t=W(.9*s);break;case R.DEGREES:default:t=s}}return(t>360||t<0)&&(t-=Math.floor(t/$)*$),t},Y=t=>("string"==typeof t&&(t=g.test(t)?G(t)/100:+t),isNaN(+t)||t>1?1:W(t)),U=(t,e)=>{let s;switch(e){case R.RADIANS:s=W(N(t));break;case R.TURNS:s=W(t/$);break;case R.GRADIANS:s=W(10/9*t);break;case R.DEGREES:case R.NONE:default:s=t}return s},T=e=>`${e}`in t.Mix,K=[[.4360747,.3850649,.1430804],[.2225045,.7168786,.0606169],[.0139322,.0971045,.7141733]],V=[[3.1338561,-1.6168667,-.4906146],[-.9787684,1.9161415,.033454],[.0719453,-.2289914,1.4052427]],q=K.map((t=>t.reduce(((t,e)=>t+e),0))),z=(t,s,r)=>(r<0&&(r+=6),r>=6&&(r-=6),W(r<1?((s-t)*r+t)*e:r<3?s*e:r<4?((s-t)*(4-r)+t)*e:t*e)),Q=t=>t<=.04045?t/12.92:((t+.055)/1.055)**2.4,J=t=>t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055,Z=(t,e,s,r)=>{const a=[0,0,0],i=[t,e,s];return r.forEach(((t,e)=>{t.forEach(((t,s)=>{a[e]+=t*i[s]}))})),a},tt=(t,e,s)=>{e/=100;const r=(s/=100)<=.5?s*(e+1):s+e-s*e,a=2*s-r;return{R:z(a,r,(t/=60)+2),G:z(a,r,t),B:z(a,r,t-2)}},et=(t,s,r,a=1)=>{t/=e,s/=e,r/=e,a=Math.min(a,1);const i=Math.max(t,s,r),n=Math.min(t,s,r),c=i-n;let o=0,h=0;const l=(i+n)/2;if(0!==c){switch(i){case t:o=(s-r)/c%6;break;case s:o=(r-t)/c+2;break;case r:o=(t-s)/c+4}o=W(60*o),o<0&&(o+=360),h=c/(1-Math.abs(2*l-1))}return{H:o,S:W(100*h),L:W(100*l),A:a}},st=(t,s,r)=>{const a=[t/e,s/e,r/e].map(Q),i=Z(a[0],a[1],a[2],K),n=((t,e,s)=>{const r=t=>t>(6/29)**3?Math.cbrt(t):t/(3*(6/29)**2)+4/29,a=r(t/q[0]),i=r(e/q[1]);return[116*i-16,500*(a-i),200*(i-r(s/q[2]))]})(i[0],i[1],i[2]);return{L:n[0],a:n[1],b:n[2]}},rt=(t,s,r)=>{const a=((t,e,s)=>{const r=t=>t>6/29?t**3:3*(6/29)**2*(t-4/29),a=(t+16)/116,i=e/500,n=s/200;return[q[0]*r(a+i),q[1]*r(a),q[2]*r(a-n)]})(t,s,r),i=Z(a[0],a[1],a[2],V).map(J);return{R:j(i[0]*e,0,e),G:j(i[1]*e,0,e),B:j(i[2]*e,0,e)}},at=(t,e,s)=>{const r=Math.sqrt(e**2+s**2),a=v(Math.atan2(s,e));return{L:t,C:r,H:X(a)}},it=(t,e,s)=>{const r=N(s);return{L:t,a:e*Math.cos(r),b:e*Math.sin(r)}},nt=(t,e,s)=>{const r=st(t,e,s);return at(r.L,r.a,r.b)},ct=(t,e,s)=>{const r=it(t,e,s);return rt(r.L,r.a,r.b)},ot=(t,s,r,a=1)=>({H:et(t,s,r,a).H,W:W(Math.min(t,s,r)/e*100),B:W(100*(1-Math.max(t,s,r)/e)),A:a}),ht=(t,s,r)=>{const a=1-(r/=100)-(s/=100),i=a*(1-Math.abs(t/60%2-1));let n=0,c=0,o=0;return t<60?(n=a,c=i,o=0):t>=60&&t<120?(n=i,c=a,o=0):t>=120&&t<180?(n=0,c=a,o=i):t>=180&&t<240?(n=0,c=i,o=a):t>=240&&t<300?(n=i,c=0,o=a):t>=300&&(n=a,c=0,o=i),n+=s,c+=s,o+=s,{R:j(n*e,0,e),G:j(c*e,0,e),B:j(o*e,0,e)}},lt=(t,s,r,a)=>({R:W(e*(1-t)*(a=1-a)),G:W(e*(1-s)*a),B:W(e*(1-r)*a)}),ut=(t,s,r)=>{t/=e,s/=e,r/=e;const a=1-Math.max(t,s,r),i=1-a,n=i&&(i-s)/i,c=i&&(i-r)/i;return{C:W(100*(i&&(i-t)/i)),M:W(100*n),Y:W(100*c),K:W(100*a)}},dt=(t,e)=>{if(t<0&&(t+=360),t>360&&(t-=360),360===t||0===t)return t;const s=[[0,120],[120,180],[180,240],[240,360]],r=[[0,60],[60,120],[120,240],[240,360]],a=e?r:s;let i=0,n=0,c=0,o=0;return(e?s:r).find(((e,s)=>t>=e[0]&&t<e[1]&&(i=e[0],n=e[1],c=a[s][0],o=a[s][1],!0))),c+(o-c)/(n-i)*(t-i)};class At{get rgb(){return this._rgb}}class mt extends At{constructor(t){super();const s=t.match(A.HEX).groups;this._r=s.r??s.rr,this._g=s.g??s.gg,this._b=s.b??s.bb,this._a=s.a??s.aa;const r={R:I(this._r),G:I(this._g),B:I(this._b)};void 0!==this._a&&(r.A=I(this._a)/e),this._rgb=r}}class bt{constructor(t,e,s){this._operations=new Map([[m.DIVISION,this._division],[m.MULTIPLICATION,this._multiplication],[m.SUM,this._sum],[m.REST,this._rest]]),this._colorIndex=t;let r=e,a=0;if(Number.isNaN(+e))if(e in s)this._result=s[e];else if(m.REGEXP.test(r))m.REGEXP.lastIndex=0,this._result=this._getCalcValue(r,s);else{for(;m.SCOPED.test(r)&&a<100;){if(m.SCOPED.lastIndex=0,r=r.replace(m.SCOPED,((t,e)=>this._calculate(e,s).toString())),m.REGEXP.test(r)){m.REGEXP.lastIndex=0;break}a++}this._result=this._getCalcValue(r,s)}else this._result=+e}_division(t,e){return t/e}_multiplication(t,e){return t*e}_sum(t,e){return t+e}_rest(t,e){return t-e}_getCalcValue(t,e){const s=t.match(m.REGEXP).groups.operation,r=this._calculate(s,e);if(Number.isNaN(r))throw new Error(`Invalid value for ${this._colorIndex}. ${s} ${F}`);return r}_calculate(t,e){return this._operations.forEach(((s,r)=>{let a=0;for(;r.test(t)&&a<100;)t=t.replace(r,((t,r,a)=>s(e[r]??+r,e[a]??+a).toString())),a++})),+t}get result(){return this._result}}class gt extends At{get hasPercentageAlpha(){return g.test(this._a)}}class Ht extends gt{constructor(t,s){super();const r=t.match(A.RGB).groups,{r_legacy:a,g_legacy:i,b_legacy:n,a_legacy:c,r:o,g:h,b:l,a:u,from:d,relative_r:m,relative_g:b,relative_b:g,relative_a:H}=r;if(d){const t=s(d),r={r:t.R,g:t.G,b:t.B,alpha:t.A??1},a=new bt("r",m,r).result,i=new bt("g",b,r).result,n=new bt("b",g,r).result,c={R:Math.min(a,e),G:Math.min(i,e),B:Math.min(n,e)};if(H){const t=new bt("alpha",H,r).result;c.A=Math.min(t,1)}this._rgb=c}else{this._r=a??o,this._g=i??h,this._b=n??l,this._a=c??u;const t={R:Math.min(P(this._r),e),G:Math.min(P(this._g),e),B:Math.min(P(this._b),e)};void 0!==this._a&&(t.A=Y(this._a)),this._rgb=t}}get hasPercentageValues(){return g.test(this._r)&&g.test(this._g)&&g.test(this._b)}static test(t){return A.RGB.test(t)}}class Ct extends gt{get angleUnit(){if(this._h){const t=this._h.match(b).groups.units;return""===t?R.NONE:t}return R.NONE}}class Lt extends Ct{constructor(t,e){super();const r=t.match(A.HSL).groups,{h_legacy:a,s_legacy:i,l_legacy:n,a_legacy:c,h:o,s:h,l:l,a:u,from:d,relative_h:m,relative_s:b,relative_l:g,relative_a:H}=r;if(d){const t=e(d),r=et(t.R,t.G,t.B,t.A),a={h:r.H,s:r.S,l:r.L,alpha:r.A},i=new bt("h",m,a).result,n=new bt("s",b,a).result,c=new bt("l",g,a).result,o=tt(j(i,0,360),j(n,0,s),j(c,0,s));if(H){const t=new bt("alpha",H,a).result;o.A=j(t,0,1)}this._rgb=o}else{this._h=a??o,this._s=i??h,this._l=n??l,this._a=c??u;const t=tt(X(this._h),y(this._s),y(this._l));void 0!==this._a&&(t.A=Y(this._a)),this._rgb=t}}static test(t){return A.HSL.test(t)}}class Bt extends Ct{constructor(t,e){super();const r=t.match(A.HWB).groups,{h:a,w:i,b:n,a:c,from:o,relative_h:h,relative_w:l,relative_b:u,relative_a:d}=r;if(o){const t=e(o),r=ot(t.R,t.G,t.B,t.A),a={h:r.H,w:r.W,b:r.B,alpha:r.A},i=new bt("h",h,a).result,n=new bt("w",l,a).result,c=new bt("b",u,a).result,A=ht(j(i,0,360),j(n,0,s),j(c,0,s));if(d){const t=new bt("alpha",d,a).result;A.A=j(t,0,1)}this._rgb=A}else{this._h=a,this._w=i,this._b=n,this._a=c;const t=ht(X(this._h),y(this._w),y(this._b));void 0!==this._a&&(t.A=Y(this._a)),this._rgb=t}}static test(t){return A.HWB.test(t)}}class Et extends gt{constructor(t,e){super();const a=t.match(A.CIELab).groups,{L:i,a:n,b:c,A:o,from:h,relative_L:l,relative_a:u,relative_b:d,relative_A:m}=a;if(h){const t=e(h),a=st(t.R,t.G,t.B),i={l:a.L,a:a.a,b:a.b,alpha:t.A??1},n=new bt("l",l,i).result,c=new bt("a",u,i).result,o=new bt("b",d,i).result,A=rt(j(n,0,s),j(c,-125,r),j(o,-125,r));if(m){const t=new bt("alpha",m,i).result;A.A=j(t,0,1)}this._rgb=A}else{this._L=i,this._A=n,this._B=c,this._a=o;const t=rt(y(this._L),O(this._A),O(this._B));void 0!==this._a&&(t.A=Y(this._a)),this._rgb=t}}get hasPercentageValues(){return g.test(this._L)&&g.test(this._A)&&g.test(this._B)}static test(t){return A.CIELab.test(t)}}class pt extends Ct{constructor(t,e){super();const r=t.match(A.LCH).groups,{l:i,c:n,h:c,a:o,from:h,relative_l:l,relative_c:u,relative_h:d,relative_a:m}=r;if(h){const t=e(h),r=nt(t.R,t.G,t.B),i={l:r.L,c:r.C,h:r.H,alpha:t.A??1},n=new bt("l",l,i).result,c=new bt("c",u,i).result,o=new bt("h",d,i).result,A=ct(j(n,0,s),j(c,-150,a),X(o));if(m){const t=new bt("alpha",m,i).result;A.A=j(t,0,1)}this._rgb=A}else{this._l=i,this._c=n,this._h=c,this._a=o;const t=ct(y(this._l),D(this._c),X(this._h));void 0!==this._a&&(t.A=Y(this._a)),this._rgb=t}}get hasPercentageValues(){return g.test(this._l)&&g.test(this._c)}static test(t){return A.LCH.test(t)}}class Ft extends gt{constructor(t){super();const e=t.match(A.CMYK).groups;this._c=e.c_legacy??e.c,this._m=e.m_legacy??e.m,this._y=e.y_legacy??e.y,this._k=e.k_legacy??e.k,this._a=e.a_legacy??e.a;const s=lt(x(this._c),x(this._m),x(this._y),x(this._k));void 0!==this._a&&(s.A=Y(this._a)),this._rgb=s}get hasPercentageValues(){return g.test(this._c)&&g.test(this._m)&&g.test(this._y)&&g.test(this._k)}static test(t){return A.CMYK.test(t)}}const Rt=t=>"string"==typeof t?(t=>{let e;if(Object.keys(i).some((s=>{if(A[s].test(t))return e=s,!0})),!e&&~h.indexOf(t)&&(e=i.HEX),!e)throw new Error(E);return e})(t):(t=>{let s,r=!1;const a=k(Object.keys(t));if(u[a]&&(s=u[a]),s&&s===i.RGB){const a=Object.entries(t).some((t=>!H.test(`${t[1]}`))),n=Object.entries(t).some((t=>!(g.test(`${t[1]}`)||!H.test(`${t[1]}`)&&!isNaN(+t[1])&&+t[1]<=e)));a&&n&&(r=!0),a||(s=i.HEX)}if(!s||r)throw new Error(p);return s})(t),_t={[i.HEX](t){const e=~h.indexOf(t)?o[t]:t;return new mt(e).rgb},[i.RGB]:t=>new Ht(t,Mt).rgb,[i.HSL]:t=>new Lt(t,Mt).rgb,[i.HWB]:t=>new Bt(t,Mt).rgb,[i.CIELab]:t=>new Et(t,Mt).rgb,[i.LCH]:t=>new pt(t,Mt).rgb,[i.CMYK]:t=>new Ft(t).rgb},ft={[i.HEX](t){const e={R:P(`${t.R}`),G:P(`${t.G}`),B:P(`${t.B}`)};return S(t,"A")&&(e.A=Math.min(P(`${t.A}`,!0),1)),e},[i.RGB](t){return this.HEX(t)},[i.HSL](t){const e=y(`${t.S}`),s=y(`${t.L}`),r=tt(X(t.H),e,s);return S(t,"A")&&(r.A=Y(t.A)),r},[i.HWB](t){const e=y(`${t.W}`),s=y(`${t.B}`),r=ht(X(t.H),e,s);return S(t,"A")&&(r.A=Y(t.A)),r},[i.CIELab](t){const e=y(`${t.L}`),s=O(`${t.a}`),r=O(`${t.b}`),a=rt(e,s,r);return S(t,"A")&&(a.A=Y(t.A)),a},[i.LCH](t){const e=y(`${t.L}`),s=D(`${t.C}`),r=X(`${t.H}`),a=ct(e,s,r);return S(t,"A")&&(a.A=Y(t.A)),a},[i.CMYK](t){const e=x(`${t.C}`),s=x(`${t.M}`),r=x(`${t.Y}`),a=x(`${t.K}`),i=lt(e,s,r,a);return S(t,"A")&&(i.A=Y(t.A)),i}},Mt=(t,e=Rt(t))=>"string"==typeof t?_t[e](t):ft[e](t),St=(t,...e)=>{const s=[],r=[],a=[],i=[],n=[],c=[],o=[],h=Object.values(R),l=Object.values(_),u=Object.values(f),A={legacyCSS:0,spacesAfterCommas:0,cmykFunction:0};for(const t of e)if("string"==typeof t){if(s.push(t),t.includes(",")){A.legacyCSS++;const e=t.match(L);1===new Set(e).size&&B.test(e[0].slice(1))&&A.spacesAfterCommas++}if(Lt.test(t)){const e=new Lt(t,Mt);r.push(e.angleUnit),o.push(e.hasPercentageAlpha);continue}if(Bt.test(t)){const e=new Bt(t,Mt);r.push(e.angleUnit),o.push(e.hasPercentageAlpha);continue}if(Ht.test(t)){const e=new Ht(t,Mt);a.push(e.hasPercentageValues),o.push(e.hasPercentageAlpha);continue}if(Et.test(t)){const e=new Et(t,Mt);i.push(e.hasPercentageValues),o.push(e.hasPercentageAlpha);continue}if(pt.test(t)){const e=new pt(t,Mt);r.push(e.angleUnit),n.push(e.hasPercentageValues),o.push(e.hasPercentageAlpha);continue}if(Ft.test(t)){const e=new Ft(t);c.push(e.hasPercentageValues),t.startsWith("cmyk")&&A.cmykFunction++,o.push(e.hasPercentageAlpha)}}return{decimals:typeof t.decimals===d.NUMBER?t.decimals:M.decimals,legacyCSS:typeof t.legacyCSS===d.BOOLEAN?t.legacyCSS:Boolean(s.length&&A.legacyCSS===s.length)||M.legacyCSS,spacesAfterCommas:typeof t.spacesAfterCommas===d.BOOLEAN?t.spacesAfterCommas:Boolean(s.length&&A.spacesAfterCommas===s.length)||M.spacesAfterCommas,anglesUnit:t.anglesUnit&&h.includes(t.anglesUnit)?t.anglesUnit:1===new Set(r).size?r[0]:M.anglesUnit,rgbUnit:t.rgbUnit&&l.includes(t.rgbUnit)?t.rgbUnit:1===new Set(a).size&&a[0]?_.PERCENT:M.rgbUnit,labUnit:t.labUnit&&l.includes(t.labUnit)?t.labUnit:1===new Set(i).size&&i[0]?_.PERCENT:M.labUnit,lchUnit:t.lchUnit&&l.includes(t.lchUnit)?t.lchUnit:1===new Set(n).size&&n[0]?_.PERCENT:M.lchUnit,cmykUnit:t.cmykUnit&&l.includes(t.cmykUnit)?t.cmykUnit:1!==new Set(c).size||c[0]?M.cmykUnit:_.NONE,alphaUnit:t.alphaUnit&&l.includes(t.alphaUnit)?t.alphaUnit:1===new Set(o).size&&o[0]?_.PERCENT:M.alphaUnit,cmykFunction:t.cmykFunction&&u.includes(t.cmykFunction)?t.cmykFunction:c.length&&c.length===A.cmykFunction?f.CMYK:M.cmykFunction}},Gt=(t,e)=>({H:W(t.H,e),S:W(t.S,e),L:W(t.L,e)}),yt=t=>t?", ":",",It=(t,e)=>{const s=k(Object.keys(t));return l[u[s]].reduce(((s,r,a)=>{const i=t[r];return void 0!==i&&s.push(e(i,a)),s}),[])},wt=(t,e)=>t.replace(C,((t,s)=>`${e[+s-1]}`)),Pt=(t,e,s=!1)=>{const{alphaUnit:r,legacyCSS:a,decimals:i}=e;return r!==_.PERCENT||a&&!s?W(t,i):`${W(100*t,i)}%`},Ot=t=>{const{anglesUnit:e,decimals:s}=t;return(r,a)=>{if(0===a&&e!==R.NONE){return`${W(U(r,e),s)}${e}`}return 3===a?Pt(r,t):W(r,s)}},Dt={[i.HEX]:t=>{const e=It(t,(t=>(t=>{let e=W(t,0).toString(16).toUpperCase();return 1===e.length&&(e=`0${e}`),e})(W(t)))),s=4===e.length?"#{1}{2}{3}{4}":"#{1}{2}{3}";return wt(s,e)},[i.RGB]:(t,s)=>{const{decimals:r,legacyCSS:a,spacesAfterCommas:i,rgbUnit:n}=s,c=yt(i),o=It(t,((t,a)=>n===_.PERCENT&&a<3?`${((t,s)=>W(t/e*100,s))(t,r)}%`:3===a?Pt(t,s):W(t,r))),h=a?4===o.length?`rgba({1}${c}{2}${c}{3}${c}{4})`:`rgb({1}${c}{2}${c}{3})`:4===o.length?"rgb({1} {2} {3} / {4})":"rgb({1} {2} {3})";return wt(h,o)},[i.HSL]:(t,e)=>{const{legacyCSS:s,spacesAfterCommas:r}=e,a=yt(r),i=Ot(e),n=It(t,i),c=s?4===n.length?`hsla({1}${a}{2}%${a}{3}%${a}{4})`:`hsl({1}${a}{2}%${a}{3}%)`:4===n.length?"hsl({1} {2}% {3}% / {4})":"hsl({1} {2}% {3}%)";return wt(c,n)},[i.HWB]:(t,e)=>{const s=Ot(e),r=It(t,s),a=4===r.length?"hwb({1} {2}% {3}% / {4})":"hwb({1} {2}% {3}%)";return wt(a,r)},[i.CIELab]:(t,e)=>{const{decimals:s,labUnit:a}=e,i=It(t,((t,i)=>{if(0===i){const e=W(y(t),s);return a===_.PERCENT?`${e}%`:`${e}`}return i<3?a===_.PERCENT?`${((t,e)=>W(t/r*100,e))(t,s)}%`:W(t,s):Pt(t,e,!0)})),n=4===i.length?"lab({1} {2} {3} / {4})":"lab({1} {2} {3})";return wt(n,i)},[i.LCH]:(t,e)=>{const{decimals:s,lchUnit:r,anglesUnit:i}=e,n=It(t,((t,n)=>{if(0===n){const e=W(y(t),s);return r===_.PERCENT?`${e}%`:`${e}`}if(1===n)return r===_.PERCENT?`${((t,e)=>W(t/a*100,e))(t,s)}%`:W(t,s);if(2===n){if(i!==R.NONE){return`${W(U(t,i),s)}${i}`}return W(t,s)}return Pt(t,e,!0)})),c=4===n.length?"lch({1} {2} {3} / {4})":"lch({1} {2} {3})";return wt(c,n)},[i.CMYK]:(t,e)=>{const{decimals:s,legacyCSS:r,spacesAfterCommas:a,cmykUnit:i,cmykFunction:n}=e,c=yt(a),o=It(t,((t,r)=>i===_.PERCENT&&r<4?`${W(t,s)}%`:4===r?Pt(t,e):W(t/100,s))),h=r?5===o.length?`${n}({1}${c}{2}${c}{3}${c}{4}${c}{5})`:`${n}({1}${c}{2}${c}{3}${c}{4})`:5===o.length?`${n}({1} {2} {3} {4} / {5})`:`${n}({1} {2} {3} {4})`;return wt(h,o)}},xt=(e,s,r)=>s.reduce(((s,a)=>[...s,{...e,H:r===t.Mix.ADDITIVE?X(e.H+a):X(dt(dt(e.H,!1)+a,!0))}]),[{...e}]),kt=(t,e)=>xt(t,[30,-30],e),Wt=(t,e)=>xt(t,[180],e),jt=(t,e)=>xt(t,[150,-150],e),vt=(t,e)=>xt(t,[120,-120],e),Nt=(t,e)=>xt(t,[60,-120,180],e),$t=(t,e)=>xt(t,[90,-90,180],e),Xt={[i.HEX]:t=>({R:w(t.R),G:w(t.G),B:w(t.B)}),HEXA(t){const s=Xt.HEX(t);return s.A=S(t,"A")?w(t.A*e):"0xFF",s},[i.RGB](t,e){const s=Kt(t,e);return S(s,"A")&&delete s.A,s},RGBA(t,e){const s=Xt.RGB(t,e);return s.A=S(t,"A")?W(t.A):1,s},[i.HSL](t,e){const s=et(t.R,t.G,t.B);return delete s.A,Gt(s,e)},HSLA(t,e){const s=Xt.HSL(t,e);return s.A=S(t,"A")?W(t.A,e):1,s},[i.HWB](t,e){const s=ot(t.R,t.G,t.B);return delete s.A,((t,e)=>({H:W(t.H,e),W:W(t.W,e),B:W(t.B,e)}))(s,e)},HWBA(t,e){const s=Xt.HWB(t,e);return s.A=S(t,"A")?W(t.A,e):1,s},[i.CIELab]:(t,e)=>((t,e)=>({L:W(t.L,e),a:W(t.a,e),b:W(t.b,e)}))(st(t.R,t.G,t.B),e),CIELabA(t,e){const s=Xt.CIELab(t,e);return s.A=S(t,"A")?W(t.A,e):1,s},[i.LCH]:(t,e)=>((t,e)=>({L:W(t.L,e),C:W(t.C,e),H:W(t.H,e)}))(nt(t.R,t.G,t.B),e),LCHA(t,e){const s=Xt.LCH(t,e);return s.A=S(t,"A")?W(t.A,e):1,s},[i.CMYK]:(t,e)=>((t,e)=>({C:W(t.C,e),M:W(t.M,e),Y:W(t.Y,e),K:W(t.K,e)}))(ut(t.R,t.G,t.B),e),CMYKA(t,e){const s=Xt.CMYK(t,e);return s.A=S(t,"A")?W(t.A,e):1,s}},Yt=(t,s,r,a)=>{const n=Rt(t),c="string"==typeof t,o=Mt(t,n),h="string"==typeof t&&S(o,"A")||"string"!=typeof t&&S(t,"A"),l=et(o.R,o.G,o.B,o.A);h||delete l.A;const u=r?l.L/(s+1):(100-l.L)/(s+1),d=Array(s).fill(null).map(((t,e)=>({...l,L:l.L+u*(e+1)*(1-2*+r)})));switch(n){case i.HEX:default:return d.map((t=>{const s=tt(t.H,t.S,t.L);return h&&(s.A=t.A),c?h?Dt.HEX({...s,A:W(s.A*e)}):Dt.HEX(s):h?Xt.HEXA(s):Xt.HEX(s)}));case i.RGB:return d.map((t=>{const e=tt(t.H,t.S,t.L);return h&&(e.A=t.A),c?Dt.RGB(e,a):h?Xt.RGBA(e,a.decimals):Xt.RGB(e,a.decimals)}));case i.HSL:return d.map((t=>c?Dt.HSL(t,a):h?Xt.HSLA({...tt(t.H,t.S,t.L),A:t.A},a.decimals):Xt.HSL(tt(t.H,t.S,t.L),a.decimals)));case i.HWB:return d.map((t=>{const e=tt(t.H,t.S,t.L);h&&(e.A=t.A);const s=h?Xt.HWBA(e,a.decimals):Xt.HWB(e,a.decimals);return c?Dt.HWB(s,a):s}));case i.CIELab:return d.map((t=>{const e=tt(t.H,t.S,t.L);h&&(e.A=t.A);const s=h?Xt.CIELabA(e,a.decimals):Xt.CIELab(e,a.decimals);return c?Dt.CIELab(s,a):s}));case i.LCH:return d.map((t=>{const e=tt(t.H,t.S,t.L),s=nt(e.R,e.G,e.B);return h&&(s.A=t.A),c?Dt.LCH(s,a):h?Xt.LCHA({...e,A:t.A},a.decimals):Xt.LCH(e,a.decimals)}))}},Ut={buildHarmony(t,e,s,r){const a=Rt(t),n=Mt(t,a),c=et(n.R,n.G,n.B,n.A),o="string"==typeof t&&S(n,"A")||"string"!=typeof t&&S(t,"A"),h="string"==typeof t;switch(a){case i.HEX:default:return o?this.HEXA(Gt(c,0),e,s,h):this.HEX(Gt(c,0),e,s,h);case i.HSL:return o?this.HSLA(c,e,s,h,r):this.HSL(c,e,s,h,r);case i.HWB:return o?this.HWBA(c,e,s,h,r):this.HWB(c,e,s,h,r);case i.RGB:return o?this.RGBA(c,e,s,h,r):this.RGB(c,e,s,h,r);case i.CIELab:return o?this.CIELabA(c,e,s,h,r):this.CIELab(c,e,s,h,r);case i.LCH:return o?this.LCHA(c,e,s,h,r):this.LCH(c,e,s,h,r)}},[i.HEX]:(t,e,s,r)=>e(t,s).map((t=>r?Dt.HEX(tt(t.H,t.S,t.L)):Xt.HEX(tt(t.H,t.S,t.L)))),HEXA:(t,s,r,a)=>s(t,r).map((t=>a?Dt.HEX({...tt(t.H,t.S,t.L),A:Y(t.A)*e}):Xt.HEXA({...tt(t.H,t.S,t.L),A:Y(t.A)}))),[i.RGB]:(t,e,s,r,a)=>e(t,s).map((t=>r?Dt.RGB(tt(t.H,t.S,t.L),a):Xt.RGB(tt(t.H,t.S,t.L),a.decimals))),RGBA:(t,e,s,r,a)=>e(t,s).map((t=>r?Dt.RGB({...tt(t.H,t.S,t.L),A:Y(t.A)},a):Xt.RGBA({...tt(t.H,t.S,t.L),A:Y(t.A)},a.decimals))),[i.HSL]:(t,e,s,r,a)=>e(t,s).map((t=>r?Dt.HSL({H:t.H,S:t.S,L:t.L},a):Xt.HSL(tt(t.H,t.S,t.L),a.decimals))),HSLA:(t,e,s,r,a)=>e(t,s).map((t=>r?Dt.HSL({...t,A:Y(t.A)},a):Xt.HSLA({...tt(t.H,t.S,t.L),A:Y(t.A)},a.decimals))),[i.HWB]:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L),s=ot(e.R,e.G,e.B);return r?Dt.HWB({H:s.H,W:s.W,B:s.B},a):Xt.HWB(e,a.decimals)})),HWBA:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L),s=ot(e.R,e.G,e.B);return r?Dt.HWB({...s,A:Y(t.A)},a):Xt.HWBA({...e,A:Y(t.A)},a.decimals)})),[i.CIELab]:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L);return r?Dt.CIELab(st(e.R,e.G,e.B),a):Xt.CIELab(e,a.decimals)})),CIELabA:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L);return r?Dt.CIELab({...st(e.R,e.G,e.B),A:Y(t.A)},a):Xt.CIELabA({...e,A:Y(t.A)},a.decimals)})),[i.LCH]:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L);return r?Dt.LCH(nt(e.R,e.G,e.B),a):Xt.LCH(e,a.decimals)})),LCHA:(t,e,s,r,a)=>e(t,s).map((t=>{const e=tt(t.H,t.S,t.L);return r?Dt.LCH({...nt(e.R,e.G,e.B),A:Y(t.A)},a):Xt.LCHA({...e,A:Y(t.A)},a.decimals)}))},Tt={mix(s,r){const a=s.map((t=>{const e=Rt(t);return Mt(t,e)})),i=r===t.Mix.SUBTRACTIVE?a.map((t=>{const s=((t,s,r)=>{const a=Math.min(t,s,r),i=Math.min(e-t,e-s,e-r),n=t-a,c=s-a,o=r-a,h=Math.min(n,c),l=n-h,u=(c+h)/2,d=(o+c-h)/2,A=Math.max(l,u,d)/Math.max(n,c,o),m=isNaN(A)||A===1/0||A<=0?1:A;return{R:l/m+i,Y:u/m+i,B:d/m+i}})(t.R,t.G,t.B);return S(t,"A")&&(s.A=t.A),s})):null;function n(s){const a=r===t.Mix.ADDITIVE?{R:0,G:0,B:0,A:0}:{R:0,Y:0,B:0,A:0};return s.reduce(((s,a)=>{const i=S(a,"A")?a.A:1,n={R:Math.min(s.R+a.R*i,e),B:Math.min(s.B+a.B*i,e),A:1-(1-i)*(1-s.A)},c="G"in s?s.G:s.Y,o="G"in a?a.G:a.Y;return{...n,...r===t.Mix.ADDITIVE?{G:Math.min(c+o*i,e)}:{Y:Math.min(c+o*i,e)}}}),a)}let c;if(r===t.Mix.ADDITIVE)c=n(a);else{const t=n(i);c=((t,s,r)=>{const a=Math.min(t,s,r),i=Math.min(e-t,e-s,e-r),n=t-a,c=s-a,o=r-a,h=Math.min(c,o),l=n+c-h,u=c+h,d=2*(o-h),A=Math.max(l,u,d)/Math.max(n,c,o),m=isNaN(A)||A===1/0||A<=0?1:A;return{R:l/m+i,G:u/m+i,B:d/m+i}})(t.R,t.Y,t.B),c.A=t.A}return{R:W(c.R),G:W(c.G),B:W(c.B),A:j(c.A,0,1)}},[i.HEX](t,e,s){const r=this.mix(t,e);return delete r.A,s?Dt.HEX(r):Xt.HEX(r)},HEXA(t,s,r){const a=this.mix(t,s);return a.A=r?Y(a.A)*e:Y(a.A),r?Dt.HEX(a):Xt.HEXA(a)},[i.RGB](t,e,s,r){const a=this.mix(t,e);return delete a.A,s?Dt.RGB(a,r):Xt.RGB(a,r.decimals)},RGBA(t,e,s,r){const a=this.mix(t,e);return s?Dt.RGB(a,r):Xt.RGBA(a,r.decimals)},[i.HSL](t,e,s,r){const a=this.mix(t,e),i=et(a.R,a.G,a.B);return delete a.A,delete i.A,s?Dt.HSL(i,r):Xt.HSL(a,r.decimals)},HSLA(t,e,s,r){const a=this.mix(t,e),i=et(a.R,a.G,a.B,a.A);return s?Dt.HSL(i,r):Xt.HSLA(a,r.decimals)},[i.HWB](t,e,s,r){const a=this.mix(t,e),i=ot(a.R,a.G,a.B);return delete a.A,delete i.A,s?Dt.HWB(i,r):Xt.HWB(a,r.decimals)},HWBA(t,e,s,r){const a=this.mix(t,e),i=ot(a.R,a.G,a.B,a.A);return s?Dt.HWB(i,r):Xt.HWBA(a,r.decimals)},[i.CIELab](t,e,s,r){const a=this.mix(t,e),i=st(a.R,a.G,a.B);return delete a.A,s?Dt.CIELab(i,r):Xt.CIELab(a,r.decimals)},CIELabA(t,e,s,r){const a=this.mix(t,e),i=st(a.R,a.G,a.B);return S(a,"A")&&(i.A=a.A),s?Dt.CIELab(i,r):Xt.CIELabA(a,r.decimals)},[i.LCH](t,e,s,r){const a=this.mix(t,e),i=nt(a.R,a.G,a.B);return delete a.A,s?Dt.LCH(i,r):Xt.LCH(a,r.decimals)},LCHA(t,e,s,r){const a=this.mix(t,e),i=nt(a.R,a.G,a.B);return S(a,"A")&&(i.A=a.A),s?Dt.LCH(i,r):Xt.LCHA(a,r.decimals)}},Kt=(t,e)=>({R:W(t.R,e),G:W(t.G,e),B:W(t.B,e),...S(t,"A")?{A:W(t.A,e)}:{}}),Vt=(t,e,s,r)=>r(Mt(t,e),s),qt=(t,e,s,r,a)=>{s<1&&(s=5);const i=((t,e,s)=>{const r=s-1,a=(e.R-t.R)/r,i=(e.G-t.G)/r,n=(e.B-t.B)/r,c=Y(t.A),o=(Y(e.A)-c)/r;return Array(s).fill(null).map(((s,h)=>0===h?t:h===r?e:{R:W(t.R+a*h),G:W(t.G+i*h),B:W(t.B+n*h),A:W(c+o*h)}))})(Mt(t),Mt(e),s);return i.map((t=>a(t,r)))};function zt(t){const{from:e,to:s,thirdParameter:r,fourthParameter:a,translateFunction:i,cssFunction:n}=t,c="number"==typeof r?qt(e,s,r,a?.decimals,i):qt(e,s,5,r?.decimals,i);return n?c.map((t=>n(t,St(("number"==typeof r?a:r)??{},e,s)))):c}function Qt(e){const{colors:s,secondParameter:r,thirdParameter:a,colorMixerFunction:i,css:n}=e,c=St(("string"==typeof r?a:r)??{},...s);return i(s,"string"==typeof r?r:t.Mix.ADDITIVE,n,c)}const Jt=(e,s,r,a)=>({[t.Harmony.ANALOGOUS]:Ut.buildHarmony(s,kt,r,a),[t.Harmony.COMPLEMENTARY]:Ut.buildHarmony(s,Wt,r,a),[t.Harmony.SPLIT_COMPLEMENTARY]:Ut.buildHarmony(s,jt,r,a),[t.Harmony.TRIADIC]:Ut.buildHarmony(s,vt,r,a),[t.Harmony.TETRADIC]:Ut.buildHarmony(s,Nt,r,a),[t.Harmony.SQUARE]:Ut.buildHarmony(s,$t,r,a)}[e]),Zt=Object.fromEntries(Object.entries(Tt).map((t=>{const[e,s]=t;return[e,s.bind(Tt)]})));class te{constructor(t,e={}){this._options=St(e,t),this.rgb=Mt(t),this.update("rgb")}update(...t){t.includes("rgb")||this.updateRGB(),t.includes("hsl")||this.updateHSL(),t.includes("hwb")||this.updateHWB(),t.includes("lab")||this.updateLAB(),t.includes("lch")||this.updateLCH(),t.includes("cmyk")||this.updateCMYK()}updateRGB(){this.rgb={...tt(this.hsl.H,this.hsl.S,this.hsl.L),A:this.hsl.A}}updateHSL(){this.hsl=et(this.rgb.R,this.rgb.G,this.rgb.B,this.rgb.A)}updateHWB(){this.hwb=ot(this.rgb.R,this.rgb.G,this.rgb.B,this.rgb.A)}updateLAB(){this.lab={...st(this.rgb.R,this.rgb.G,this.rgb.B),A:this.rgb.A}}updateLCH(){this.lch={...nt(this.rgb.R,this.rgb.G,this.rgb.B),A:this.rgb.A}}updateCMYK(){this.cmyk=ut(this.rgb.R,this.rgb.G,this.rgb.B)}updateRGBFromHWB(){this.rgb={...ht(this.hwb.H,this.hwb.W,this.hwb.B),A:this.rgb.A}}updateRGBFromLCH(){this.rgb={...ct(this.lch.L,this.lch.C,this.lch.H),A:this.rgb.A}}updateRGBFromCMYK(){this.rgb={...lt(this.cmyk.C,this.cmyk.M,this.cmyk.Y,this.cmyk.K),A:this.rgb.A}}updateRGBFromLAB(){this.rgb={...rt(this.lab.L,this.lab.a,this.lab.b),A:this.rgb.A}}updateLCHFromLAB(){this.lch={...at(this.lab.L,this.lab.a,this.lab.b),A:this.lab.A}}updateLABromLCH(){this.lab={...it(this.lch.L,this.lch.C,this.lch.H),A:this.lch.A}}setOptions(t={}){return this._options={...this._options,...t},this}setR(t){this.rgb.R=j(t,0,e),this.update("rgb")}setG(t){return this.rgb.G=j(t,0,e),this.update("rgb"),this}setB(t){return this.rgb.B=j(t,0,e),this.update("rgb"),this}setH(t){return this.hsl.H=X(t),this.update("hsl"),this}setS(t){return this.hsl.S=j(t,0,s),this.update("hsl"),this}setL(t){return this.hsl.L=j(t,0,s),this.update("hsl"),this}setWhiteness(t){return this.hwb.W=j(t,0,s),this.updateRGBFromHWB(),this.update("rgb","hwb"),this}setBlackness(t){return this.hwb.B=j(t,0,s),this.updateRGBFromHWB(),this.update("rgb","hwb"),this}setCIEL(t){return this.lab.L=j(t,0,s),this.updateRGBFromLAB(),this.updateLCHFromLAB(),this.update("rgb","lab","lch"),this}setCIEa(t){return this.lab.a=j(t,-125,r),this.updateRGBFromLAB(),this.updateLCHFromLAB(),this.update("rgb","lab","lch"),this}setCIEb(t){return this.lab.b=j(t,-125,r),this.updateRGBFromLAB(),this.updateLCHFromLAB(),this.update("rgb","lab","lch"),this}setLCHL(t){return this.lch.L=j(t,0,s),this.updateRGBFromLCH(),this.updateLABromLCH(),this.update("rgb","lab","lch"),this}setLCHC(t){return this.lch.C=j(t,0,a),this.updateRGBFromLCH(),this.updateLABromLCH(),this.update("rgb","lab","lch"),this}setLCHH(t){return this.lch.H=X(t),this.updateRGBFromLCH(),this.updateLABromLCH(),this.update("rgb","lab","lch"),this}setA(t){const e=j(t,0,1);return this.rgb.A=e,this.hsl.A=e,this.hwb.A=e,this.lab.A=e,this.lch.A=e,this.cmyk.A=e,this}setC(t){return this.cmyk.C=j(t,0,100),this.updateRGBFromCMYK(),this.update("cmyk"),this}setM(t){return this.cmyk.M=j(t,0,100),this.updateRGBFromCMYK(),this.update("cmyk"),this}setY(t){return this.cmyk.Y=j(t,0,100),this.updateRGBFromCMYK(),this.update("cmyk"),this}setK(t){return this.cmyk.K=j(t,0,100),this.updateRGBFromCMYK(),this.update("cmyk"),this}get options(){return this._options}get R(){return W(this.rgb.R,this.options.decimals)}get G(){return W(this.rgb.G,this.options.decimals)}get B(){return W(this.rgb.B,this.options.decimals)}get H(){return W(this.hsl.H,this.options.decimals)}get S(){return W(this.hsl.S,this.options.decimals)}get L(){return W(this.hsl.L,this.options.decimals)}get Whiteness(){return W(this.hwb.W,this.options.decimals)}get Blackness(){return W(this.hwb.B,this.options.decimals)}get CIEL(){return W(this.lab.L,this.options.decimals)}get CIEa(){return W(this.lab.a,this.options.decimals)}get CIEb(){return W(this.lab.b,this.options.decimals)}get LCHL(){return W(this.lch.L,this.options.decimals)}get LCHC(){return W(this.lch.C,this.options.decimals)}get LCHH(){return W(this.lch.H,this.options.decimals)}get A(){return W(this.hsl.A,this.options.decimals)}get C(){return W(this.cmyk.C,this.options.decimals)}get M(){return W(this.cmyk.M,this.options.decimals)}get Y(){return W(this.cmyk.Y,this.options.decimals)}get K(){return W(this.cmyk.K,this.options.decimals)}get HEXObject(){return Xt.HEX(this.rgb)}get HEXAObject(){return Xt.HEXA(this.rgb)}get RGBObject(){return{R:this.R,G:this.G,B:this.B}}get RGBAObject(){return{...this.RGBObject,A:this.A}}get HSLObject(){return{H:this.H,S:this.S,L:this.L}}get HSLAObject(){return{...this.HSLObject,A:this.A}}get HWBObject(){return{H:this.H,W:this.Whiteness,B:this.Blackness}}get HWBAObject(){return{...this.HWBObject,A:this.A}}get CIELabObject(){return{L:this.CIEL,a:this.CIEa,b:this.CIEb}}get CIELabAObject(){return{...this.CIELabObject,A:this.A}}get LCHObject(){return{L:this.LCHL,C:this.LCHC,H:this.LCHH}}get LCHAObject(){return{...this.LCHObject,A:this.A}}get CMYKObject(){return{C:this.C,M:this.M,Y:this.Y,K:this.K}}get CMYKAObject(){return{...this.CMYKObject,A:this.A}}get HEX(){return Dt.HEX({R:this.R,G:this.G,B:this.B})}get HEXA(){return Dt.HEX({R:this.R,G:this.G,B:this.B,A:this.A*e})}get RGB(){return Dt.RGB({R:this.R,G:this.G,B:this.B},this.options)}get RGBA(){return Dt.RGB({R:this.R,G:this.G,B:this.B,A:this.A},this.options)}get HSL(){return Dt.HSL({H:this.H,S:this.S,L:this.L},this.options)}get HSLA(){return Dt.HSL({H:this.H,S:this.S,L:this.L,A:this.A},this.options)}get HWB(){return Dt.HWB({H:this.H,W:this.Whiteness,B:this.Blackness},this.options)}get HWBA(){return Dt.HWB({H:this.H,W:this.Whiteness,B:this.Blackness,A:this.A},this.options)}get CIELab(){return Dt.CIELab({L:this.CIEL,a:this.CIEa,b:this.CIEb},this.options)}get CIELabA(){return Dt.CIELab({L:this.CIEL,a:this.CIEa,b:this.CIEb,A:this.A},this.options)}get LCH(){return Dt.LCH({L:this.LCHL,C:this.LCHC,H:this.LCHH},this.options)}get LCHA(){return Dt.LCH({L:this.LCHL,C:this.LCHC,H:this.LCHH,A:this.A},this.options)}get CMYK(){return Dt.CMYK({C:this.C,M:this.M,Y:this.Y,K:this.K},this.options)}get CMYKA(){return Dt.CMYK({C:this.C,M:this.M,Y:this.Y,K:this.K,A:this.A},this.options)}static toHEXObject(t){const e=Rt(t);return Vt(t,e,0,Xt.HEX)}static toHEX(t){return Dt.HEX(te.toHEXObject(t))}static toHEXAObject(t){const e=Rt(t);return Vt(t,e,0,Xt.HEXA)}static toHEXA(t){return Dt.HEX(te.toHEXAObject(t))}static toRGBObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.RGB)}static toRGB(t,e={}){const s=te.toRGBObject(t,e),r=St(e,t);return Dt.RGB(s,r)}static toRGBAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.RGBA)}static toRGBA(t,e={}){const s=te.toRGBAObject(t,e),r=St(e,t);return Dt.RGB(s,r)}static toHSLObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.HSL)}static toHSL(t,e={}){const s=te.toHSLObject(t,e),r=St(e,t);return Dt.HSL(s,r)}static toHSLAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.HSLA)}static toHSLA(t,e={}){const s=te.toHSLAObject(t,e),r=St(e,t);return Dt.HSL(s,r)}static toHWBObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.HWB)}static toHWB(t,e={}){const s=te.toHWBObject(t,e),r=St(e,t);return Dt.HWB(s,r)}static toHWBAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.HWBA)}static toHWBA(t,e={}){const s=te.toHWBAObject(t,e),r=St(e,t);return Dt.HWB(s,r)}static toCIELabObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.CIELab)}static toCIELab(t,e={}){const s=te.toCIELabObject(t,e),r=St(e,t);return Dt.CIELab(s,r)}static toCIELabAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.CIELabA)}static toCIELabA(t,e={}){const s=te.toCIELabAObject(t,e),r=St(e,t);return Dt.CIELab(s,r)}static toLCHObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.LCH)}static toLCH(t,e={}){const s=te.toLCHObject(t,e),r=St(e,t);return Dt.LCH(s,r)}static toLCHAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.LCHA)}static toLCHA(t,e={}){const s=te.toLCHAObject(t,e),r=St(e,t);return Dt.LCH(s,r)}static toCMYKObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.CMYK)}static toCMYK(t,e={}){const s=te.toCMYKObject(t,e),r=St(e,t);return Dt.CMYK(s,r)}static toCMYKAObject(t,e={}){const s=Rt(t);return Vt(t,s,e.decimals,Xt.CMYKA)}static toCMYKA(t,e={}){const s=te.toCMYKAObject(t,e),r=St(e,t);return Dt.CMYK(s,r)}static getBlendHEXObject(t,e,s=5){return qt(t,e,s,0,Xt.HEX)}static getBlendHEX(t,e,s=5){return te.getBlendHEXObject(t,e,s).map((t=>Dt.HEX(t)))}static getBlendHEXAObject(t,e,s=5){return qt(t,e,s,0,Xt.HEXA)}static getBlendHEXA(t,e,s=5){return te.getBlendHEXAObject(t,e,s).map((t=>Dt.HEX(t)))}static getBlendRGBObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.RGB})}static getBlendRGB(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.RGB,cssFunction:Dt.RGB})}static getBlendRGBAObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.RGBA})}static getBlendRGBA(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.RGBA,cssFunction:Dt.RGB})}static getBlendHSLObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HSL})}static getBlendHSL(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HSL,cssFunction:Dt.HSL})}static getBlendHSLAObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HSLA})}static getBlendHSLA(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HSLA,cssFunction:Dt.HSL})}static getBlendHWBObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HWB})}static getBlendHWB(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HWB,cssFunction:Dt.HWB})}static getBlendHWBAObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HWBA})}static getBlendHWBA(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.HWBA,cssFunction:Dt.HWB})}static getBlendCIELabObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.CIELab})}static getBlendCIELab(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.CIELab,cssFunction:Dt.CIELab})}static getBlendCIELabAObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.CIELabA})}static getBlendCIELabA(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.CIELabA,cssFunction:Dt.CIELab})}static getBlendLCHObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.LCH})}static getBlendLCH(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.LCH,cssFunction:Dt.LCH})}static getBlendLCHAObject(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.LCHA})}static getBlendLCHA(t,e,s,r){return zt({from:t,to:e,thirdParameter:s,fourthParameter:r,translateFunction:Xt.LCHA,cssFunction:Dt.LCH})}static getMixHEXObject(e,s=t.Mix.ADDITIVE){return Tt.HEX(e,s,!1)}static getMixHEX(e,s=t.Mix.ADDITIVE){return Tt.HEX(e,s,!0)}static getMixHEXAObject(e,s=t.Mix.ADDITIVE){return Tt.HEXA(e,s,!1)}static getMixHEXA(e,s=t.Mix.ADDITIVE){return Tt.HEXA(e,s,!0)}static getMixRGBObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.RGB,css:!1})}static getMixRGB(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.RGB,css:!0})}static getMixRGBAObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.RGBA,css:!1})}static getMixRGBA(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.RGBA,css:!0})}static getMixHSLObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HSL,css:!1})}static getMixHSL(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HSL,css:!0})}static getMixHSLAObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HSLA,css:!1})}static getMixHSLA(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HSLA,css:!0})}static getMixHWBObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HWB,css:!1})}static getMixHWB(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HWB,css:!0})}static getMixHWBAObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HWBA,css:!1})}static getMixHWBA(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.HWBA,css:!0})}static getMixCIELabObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.CIELab,css:!1})}static getMixCIELab(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.CIELab,css:!0})}static getMixCIELabAObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.CIELabA,css:!1})}static getMixCIELabA(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.CIELabA,css:!0})}static getMixLCHObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.LCH,css:!1})}static getMixLCH(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.LCH,css:!0})}static getMixLCHAObject(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.LCHA,css:!1})}static getMixLCHA(t,e,s){return Qt({colors:t,secondParameter:e,thirdParameter:s,colorMixerFunction:Zt.LCHA,css:!0})}static getShades(t,e,s){return"number"==typeof e?Yt(t,e,!0,St(s||{},t)):Yt(t,5,!0,St(e||{},t))}static getTints(t,e,s){return"number"==typeof e?Yt(t,e,!1,St(s||{},t)):Yt(t,5,!1,St(e||{},t))}static getHarmony(e,s,r,a){return`${s}`in t.Harmony?Jt(s,e,T(r)?r:t.Mix.ADDITIVE,St(T(r)?a||{}:r||{},e)):T(s)?Jt(t.Harmony.COMPLEMENTARY,e,s,St(r||{},e)):Jt(t.Harmony.COMPLEMENTARY,e,t.Mix.ADDITIVE,St(s||{},e))}}return t.ColorTranslator=te,t}({});