colorsort-js 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +17 -0
- package/dist/colorsort.js +5412 -0
- package/dist/colorsort.js.map +1 -0
- package/dist/colorsort.umd.cjs +5 -0
- package/dist/colorsort.umd.cjs.map +1 -0
- package/dist/trained.json +1804 -0
- package/dist/types/src/auto-sort.d.ts +1 -0
- package/dist/types/src/auto.d.ts +6 -0
- package/dist/types/src/color.d.ts +42 -0
- package/dist/types/src/fft.d.ts +3 -0
- package/dist/types/src/genetic-algo.d.ts +63 -0
- package/dist/types/src/index.d.ts +23 -0
- package/dist/types/src/method-runner.d.ts +21 -0
- package/dist/types/src/metrics-extended.d.ts +27 -0
- package/dist/types/src/metrics-fft.d.ts +44 -0
- package/dist/types/src/metrics-hilbert.d.ts +9 -0
- package/dist/types/src/metrics-spectral-similarity.d.ts +21 -0
- package/dist/types/src/metrics-spectral.d.ts +55 -0
- package/dist/types/src/metrics.d.ts +8 -0
- package/dist/types/src/randomizer.d.ts +1 -0
- package/dist/types/src/resample.d.ts +6 -0
- package/dist/types/src/similarity.d.ts +8 -0
- package/dist/types/src/sorting-methods/clustering.d.ts +34 -0
- package/dist/types/src/sorting-methods/genetic.d.ts +3 -0
- package/dist/types/src/sorting-methods/graph.d.ts +14 -0
- package/dist/types/src/sorting-methods/harmonize.d.ts +22 -0
- package/dist/types/src/sorting-methods/hilbert.d.ts +14 -0
- package/dist/types/src/sorting-methods/index.d.ts +21 -0
- package/dist/types/src/sorting-methods/momentum.d.ts +12 -0
- package/dist/types/src/sorting-methods/principal.d.ts +9 -0
- package/dist/types/src/sorting-methods/radial.d.ts +17 -0
- package/dist/types/src/sorting-methods/ramp.d.ts +77 -0
- package/dist/types/src/sorting-methods/raw.d.ts +7 -0
- package/dist/types/src/sorting-methods/spectral.d.ts +26 -0
- package/dist/types/src/spectral-edit.d.ts +53 -0
- package/dist/types/src/statistics.d.ts +12 -0
- package/dist/types/src/type-detect.d.ts +16 -0
- package/dist/types/src/type-relative.d.ts +2 -0
- package/dist/types/src/type-variances.d.ts +19 -0
- package/dist/types/src/uni-neighbors.d.ts +6 -0
- package/dist/types/src/uni-tsp.d.ts +2 -0
- package/dist/types/src/vector.d.ts +15 -0
- package/package.json +61 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(function(P,zt){typeof exports=="object"&&typeof module<"u"?zt(exports):typeof define=="function"&&define.amd?define(["exports"],zt):(P=typeof globalThis<"u"?globalThis:P||self,zt(P.colorsort={}))})(this,(function(P){"use strict";function zt(t){const e=Be(t);return Be(t.map(n=>(n-e)**2))}function Be(t){return t.reduce((e,n)=>e+n,0)/t.length}function he(t){return t.reduce((e,n)=>e+n*n,0)}function Xn(t){const e=Math.floor(t.length*.4),n=t.slice(e).reduce((o,s)=>o+s*s,0),r=he(t);return r>0?n/r:0}function ns(t){return Math.round((t||0)*1e3)/1e3}function Zn(t){const e=[...t];for(let n=0;n<e.length;n++)if(!isFinite(e[n])){let r=n-1;for(;r>=0&&!isFinite(e[r]);)r--;let o=n+1;for(;o<e.length&&!isFinite(e[o]);)o++;if(r>=0&&o<e.length){const s=e[r],i=e[o],a=o-r,c=n-r;e[n]=s+(i-s)*(c/a)}else r>=0?e[n]=e[r]:o<e.length?e[n]=e[o]:e[n]=0}return e}const{min:rs,max:os}=Math,Et=(t,e=0,n=1)=>rs(os(e,t),n),Te=t=>{t._clipped=!1,t._unclipped=t.slice(0);for(let e=0;e<=3;e++)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]=Et(t[e],0,255)):e===3&&(t[e]=Et(t[e],0,1));return t},Vn={};for(let t of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])Vn[`[object ${t}]`]=t.toLowerCase();function O(t){return Vn[Object.prototype.toString.call(t)]||"object"}const $=(t,e=null)=>t.length>=3?Array.prototype.slice.call(t):O(t[0])=="object"&&e?e.split("").filter(n=>t[0][n]!==void 0).map(n=>t[0][n]):t[0].slice(0),Bt=t=>{if(t.length<2)return null;const e=t.length-1;return O(t[e])=="string"?t[e].toLowerCase():null},{PI:de,min:Qn,max:Jn}=Math,rt=t=>Math.round(t*100)/100,qe=t=>Math.round(t*100)/100,bt=de*2,Fe=de/3,ss=de/180,is=180/de;function tr(t){return[...t.slice(0,3).reverse(),...t.slice(3)]}const E={format:{},autodetect:[]};class v{constructor(...e){const n=this;if(O(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let r=Bt(e),o=!1;if(!r){o=!0,E.sorted||(E.autodetect=E.autodetect.sort((s,i)=>i.p-s.p),E.sorted=!0);for(let s of E.autodetect)if(r=s.test(...e),r)break}if(E.format[r]){const s=E.format[r].apply(null,o?e:e.slice(0,-1));n._rgb=Te(s)}else throw new Error("unknown format: "+e);n._rgb.length===3&&n._rgb.push(1)}toString(){return O(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}}const as="3.2.0",I=(...t)=>new v(...t);I.version=as;const Tt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},cs=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,ls=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,er=t=>{if(t.match(cs)){(t.length===4||t.length===7)&&(t=t.substr(1)),t.length===3&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);const e=parseInt(t,16),n=e>>16,r=e>>8&255,o=e&255;return[n,r,o,1]}if(t.match(ls)){(t.length===5||t.length===9)&&(t=t.substr(1)),t.length===4&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);const e=parseInt(t,16),n=e>>24&255,r=e>>16&255,o=e>>8&255,s=Math.round((e&255)/255*100)/100;return[n,r,o,s]}throw new Error(`unknown hex color: ${t}`)},{round:me}=Math,nr=(...t)=>{let[e,n,r,o]=$(t,"rgba"),s=Bt(t)||"auto";o===void 0&&(o=1),s==="auto"&&(s=o<1?"rgba":"rgb"),e=me(e),n=me(n),r=me(r);let a="000000"+(e<<16|n<<8|r).toString(16);a=a.substr(a.length-6);let c="0"+me(o*255).toString(16);switch(c=c.substr(c.length-2),s.toLowerCase()){case"rgba":return`#${a}${c}`;case"argb":return`#${c}${a}`;default:return`#${a}`}};v.prototype.name=function(){const t=nr(this._rgb,"rgb");for(let e of Object.keys(Tt))if(Tt[e]===t)return e.toLowerCase();return t},E.format.named=t=>{if(t=t.toLowerCase(),Tt[t])return er(Tt[t]);throw new Error("unknown color name: "+t)},E.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&O(t)==="string"&&Tt[t.toLowerCase()])return"named"}}),v.prototype.alpha=function(t,e=!1){return t!==void 0&&O(t)==="number"?e?(this._rgb[3]=t,this):new v([this._rgb[0],this._rgb[1],this._rgb[2],t],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};const ut={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,kE:216/24389,kKE:8,kK:24389/27,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},fs=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function Mt(t){const e=fs.get(String(t).toLowerCase());if(!e)throw new Error("unknown Lab illuminant "+t);ut.labWhitePoint=t,ut.Xn=e[0],ut.Zn=e[1]}function ne(){return ut.labWhitePoint}const Ge=(...t)=>{t=$(t,"lab");const[e,n,r]=t,[o,s,i]=us(e,n,r),[a,c,l]=rr(o,s,i);return[a,c,l,t.length>3?t[3]:1]},us=(t,e,n)=>{const{kE:r,kK:o,kKE:s,Xn:i,Yn:a,Zn:c}=ut,l=(t+16)/116,f=.002*e+l,u=l-.005*n,h=f*f*f,m=u*u*u,p=h>r?h:(116*f-16)/o,M=t>s?Math.pow((t+16)/116,3):t/o,g=m>r?m:(116*u-16)/o,d=p*i,x=M*a,C=g*c;return[d,x,C]},je=t=>{const e=Math.sign(t);return t=Math.abs(t),(t<=.0031308?t*12.92:1.055*Math.pow(t,1/2.4)-.055)*e},rr=(t,e,n)=>{const{MtxAdaptMa:r,MtxAdaptMaI:o,MtxXYZ2RGB:s,RefWhiteRGB:i,Xn:a,Yn:c,Zn:l}=ut,f=a*r.m00+c*r.m10+l*r.m20,u=a*r.m01+c*r.m11+l*r.m21,h=a*r.m02+c*r.m12+l*r.m22,m=i.X*r.m00+i.Y*r.m10+i.Z*r.m20,p=i.X*r.m01+i.Y*r.m11+i.Z*r.m21,M=i.X*r.m02+i.Y*r.m12+i.Z*r.m22,g=(t*r.m00+e*r.m10+n*r.m20)*(m/f),d=(t*r.m01+e*r.m11+n*r.m21)*(p/u),x=(t*r.m02+e*r.m12+n*r.m22)*(M/h),C=g*o.m00+d*o.m10+x*o.m20,A=g*o.m01+d*o.m11+x*o.m21,R=g*o.m02+d*o.m12+x*o.m22,H=je(C*s.m00+A*s.m10+R*s.m20),N=je(C*s.m01+A*s.m11+R*s.m21),b=je(C*s.m02+A*s.m12+R*s.m22);return[H*255,N*255,b*255]},Ke=(...t)=>{const[e,n,r,...o]=$(t,"rgb"),[s,i,a]=or(e,n,r),[c,l,f]=hs(s,i,a);return[c,l,f,...o.length>0&&o[0]<1?[o[0]]:[]]};function hs(t,e,n){const{Xn:r,Yn:o,Zn:s,kE:i,kK:a}=ut,c=t/r,l=e/o,f=n/s,u=c>i?Math.pow(c,1/3):(a*c+16)/116,h=l>i?Math.pow(l,1/3):(a*l+16)/116,m=f>i?Math.pow(f,1/3):(a*f+16)/116;return[116*h-16,500*(u-h),200*(h-m)]}function Ye(t){const e=Math.sign(t);return t=Math.abs(t),(t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4))*e}const or=(t,e,n)=>{t=Ye(t/255),e=Ye(e/255),n=Ye(n/255);const{MtxRGB2XYZ:r,MtxAdaptMa:o,MtxAdaptMaI:s,Xn:i,Yn:a,Zn:c,As:l,Bs:f,Cs:u}=ut;let h=t*r.m00+e*r.m10+n*r.m20,m=t*r.m01+e*r.m11+n*r.m21,p=t*r.m02+e*r.m12+n*r.m22;const M=i*o.m00+a*o.m10+c*o.m20,g=i*o.m01+a*o.m11+c*o.m21,d=i*o.m02+a*o.m12+c*o.m22;let x=h*o.m00+m*o.m10+p*o.m20,C=h*o.m01+m*o.m11+p*o.m21,A=h*o.m02+m*o.m12+p*o.m22;return x*=M/l,C*=g/f,A*=d/u,h=x*s.m00+C*s.m10+A*s.m20,m=x*s.m01+C*s.m11+A*s.m21,p=x*s.m02+C*s.m12+A*s.m22,[h,m,p]};v.prototype.lab=function(){return Ke(this._rgb)},Object.assign(I,{lab:(...t)=>new v(...t,"lab"),getLabWhitePoint:ne,setLabWhitePoint:Mt}),E.format.lab=Ge,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"lab"),O(t)==="array"&&t.length===3)return"lab"}}),v.prototype.darken=function(t=1){const e=this,n=e.lab();return n[0]-=ut.Kn*t,new v(n,"lab").alpha(e.alpha(),!0)},v.prototype.brighten=function(t=1){return this.darken(-t)},v.prototype.darker=v.prototype.darken,v.prototype.brighter=v.prototype.brighten,v.prototype.get=function(t){const[e,n]=t.split("."),r=this[e]();if(n){const o=e.indexOf(n)-(e.substr(0,2)==="ok"?2:0);if(o>-1)return r[o];throw new Error(`unknown channel ${n} in mode ${e}`)}else return r};const{pow:ds}=Math,ms=1e-7,gs=20;v.prototype.luminance=function(t,e="rgb"){if(t!==void 0&&O(t)==="number"){if(t===0)return new v([0,0,0,this._rgb[3]],"rgb");if(t===1)return new v([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),r=gs;const o=(i,a)=>{const c=i.interpolate(a,.5,e),l=c.luminance();return Math.abs(t-l)<ms||!r--?c:l>t?o(i,c):o(c,a)},s=(n>t?o(new v([0,0,0]),this):o(this,new v([255,255,255]))).rgb();return new v([...s,this._rgb[3]])}return ps(...this._rgb.slice(0,3))};const ps=(t,e,n)=>(t=We(t),e=We(e),n=We(n),.2126*t+.7152*e+.0722*n),We=t=>(t/=255,t<=.03928?t/12.92:ds((t+.055)/1.055,2.4)),U={},qt=(t,e,n=.5,...r)=>{let o=r[0]||"lrgb";if(!U[o]&&!r.length&&(o=Object.keys(U)[0]),!U[o])throw new Error(`interpolation mode ${o} is not defined`);return O(t)!=="object"&&(t=new v(t)),O(e)!=="object"&&(e=new v(e)),U[o](t,e,n).alpha(t.alpha()+n*(e.alpha()-t.alpha()))};v.prototype.mix=v.prototype.interpolate=function(t,e=.5,...n){return qt(this,t,e,...n)},v.prototype.premultiply=function(t=!1){const e=this._rgb,n=e[3];return t?(this._rgb=[e[0]*n,e[1]*n,e[2]*n,n],this):new v([e[0]*n,e[1]*n,e[2]*n,n],"rgb")};const{sin:bs,cos:Ms}=Math,sr=(...t)=>{let[e,n,r]=$(t,"lch");return isNaN(r)&&(r=0),r=r*ss,[e,Ms(r)*n,bs(r)*n]},Ue=(...t)=>{t=$(t,"lch");const[e,n,r]=t,[o,s,i]=sr(e,n,r),[a,c,l]=Ge(o,s,i);return[a,c,l,t.length>3?t[3]:1]},vs=(...t)=>{const e=tr($(t,"hcl"));return Ue(...e)},{sqrt:ys,atan2:xs,round:ks}=Math,ir=(...t)=>{const[e,n,r]=$(t,"lab"),o=ys(n*n+r*r);let s=(xs(r,n)*is+360)%360;return ks(o*1e4)===0&&(s=Number.NaN),[e,o,s]},Xe=(...t)=>{const[e,n,r,...o]=$(t,"rgb"),[s,i,a]=Ke(e,n,r),[c,l,f]=ir(s,i,a);return[c,l,f,...o.length>0&&o[0]<1?[o[0]]:[]]};v.prototype.lch=function(){return Xe(this._rgb)},v.prototype.hcl=function(){return tr(Xe(this._rgb))},Object.assign(I,{lch:(...t)=>new v(...t,"lch"),hcl:(...t)=>new v(...t,"hcl")}),E.format.lch=Ue,E.format.hcl=vs,["lch","hcl"].forEach(t=>E.autodetect.push({p:2,test:(...e)=>{if(e=$(e,t),O(e)==="array"&&e.length===3)return t}})),v.prototype.saturate=function(t=1){const e=this,n=e.lch();return n[1]+=ut.Kn*t,n[1]<0&&(n[1]=0),new v(n,"lch").alpha(e.alpha(),!0)},v.prototype.desaturate=function(t=1){return this.saturate(-t)},v.prototype.set=function(t,e,n=!1){const[r,o]=t.split("."),s=this[r]();if(o){const i=r.indexOf(o)-(r.substr(0,2)==="ok"?2:0);if(i>-1){if(O(e)=="string")switch(e.charAt(0)){case"+":s[i]+=+e;break;case"-":s[i]+=+e;break;case"*":s[i]*=+e.substr(1);break;case"/":s[i]/=+e.substr(1);break;default:s[i]=+e}else if(O(e)==="number")s[i]=e;else throw new Error("unsupported value for Color.set");const a=new v(s,r);return n?(this._rgb=a._rgb,this):a}throw new Error(`unknown channel ${o} in mode ${r}`)}else return s},v.prototype.tint=function(t=.5,...e){return qt(this,"white",t,...e)},v.prototype.shade=function(t=.5,...e){return qt(this,"black",t,...e)};const ws=(t,e,n)=>{const r=t._rgb,o=e._rgb;return new v(r[0]+n*(o[0]-r[0]),r[1]+n*(o[1]-r[1]),r[2]+n*(o[2]-r[2]),"rgb")};U.rgb=ws;const{sqrt:Ze,pow:Ft}=Math,Cs=(t,e,n)=>{const[r,o,s]=t._rgb,[i,a,c]=e._rgb;return new v(Ze(Ft(r,2)*(1-n)+Ft(i,2)*n),Ze(Ft(o,2)*(1-n)+Ft(a,2)*n),Ze(Ft(s,2)*(1-n)+Ft(c,2)*n),"rgb")};U.lrgb=Cs;const _s=(t,e,n)=>{const r=t.lab(),o=e.lab();return new v(r[0]+n*(o[0]-r[0]),r[1]+n*(o[1]-r[1]),r[2]+n*(o[2]-r[2]),"lab")};U.lab=_s;const Gt=(t,e,n,r)=>{let o,s;r==="hsl"?(o=t.hsl(),s=e.hsl()):r==="hsv"?(o=t.hsv(),s=e.hsv()):r==="hcg"?(o=t.hcg(),s=e.hcg()):r==="hsi"?(o=t.hsi(),s=e.hsi()):r==="lch"||r==="hcl"?(r="hcl",o=t.hcl(),s=e.hcl()):r==="oklch"&&(o=t.oklch().reverse(),s=e.oklch().reverse());let i,a,c,l,f,u;(r.substr(0,1)==="h"||r==="oklch")&&([i,c,f]=o,[a,l,u]=s);let h,m,p,M;return!isNaN(i)&&!isNaN(a)?(a>i&&a-i>180?M=a-(i+360):a<i&&i-a>180?M=a+360-i:M=a-i,m=i+n*M):isNaN(i)?isNaN(a)?m=Number.NaN:(m=a,(f==1||f==0)&&r!="hsv"&&(h=l)):(m=i,(u==1||u==0)&&r!="hsv"&&(h=c)),h===void 0&&(h=c+n*(l-c)),p=f+n*(u-f),r==="oklch"?new v([p,h,m],r):new v([m,h,p],r)},ar=(t,e,n)=>Gt(t,e,n,"lch");U.lch=ar,U.hcl=ar;const As=t=>{if(O(t)=="number"&&t>=0&&t<=16777215){const e=t>>16,n=t>>8&255,r=t&255;return[e,n,r,1]}throw new Error("unknown num color: "+t)},Ds=(...t)=>{const[e,n,r]=$(t,"rgb");return(e<<16)+(n<<8)+r};v.prototype.num=function(){return Ds(this._rgb)},Object.assign(I,{num:(...t)=>new v(...t,"num")}),E.format.num=As,E.autodetect.push({p:5,test:(...t)=>{if(t.length===1&&O(t[0])==="number"&&t[0]>=0&&t[0]<=16777215)return"num"}});const Ss=(t,e,n)=>{const r=t.num(),o=e.num();return new v(r+n*(o-r),"num")};U.num=Ss;const{floor:Ns}=Math,Rs=(...t)=>{t=$(t,"hcg");let[e,n,r]=t,o,s,i;r=r*255;const a=n*255;if(n===0)o=s=i=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const c=Ns(e),l=e-c,f=r*(1-n),u=f+a*(1-l),h=f+a*l,m=f+a;switch(c){case 0:[o,s,i]=[m,h,f];break;case 1:[o,s,i]=[u,m,f];break;case 2:[o,s,i]=[f,m,h];break;case 3:[o,s,i]=[f,u,m];break;case 4:[o,s,i]=[h,f,m];break;case 5:[o,s,i]=[m,f,u];break}}return[o,s,i,t.length>3?t[3]:1]},Ls=(...t)=>{const[e,n,r]=$(t,"rgb"),o=Qn(e,n,r),s=Jn(e,n,r),i=s-o,a=i*100/255,c=o/(255-i)*100;let l;return i===0?l=Number.NaN:(e===s&&(l=(n-r)/i),n===s&&(l=2+(r-e)/i),r===s&&(l=4+(e-n)/i),l*=60,l<0&&(l+=360)),[l,a,c]};v.prototype.hcg=function(){return Ls(this._rgb)};const Es=(...t)=>new v(...t,"hcg");I.hcg=Es,E.format.hcg=Rs,E.autodetect.push({p:1,test:(...t)=>{if(t=$(t,"hcg"),O(t)==="array"&&t.length===3)return"hcg"}});const $s=(t,e,n)=>Gt(t,e,n,"hcg");U.hcg=$s;const{cos:jt}=Math,Hs=(...t)=>{t=$(t,"hsi");let[e,n,r]=t,o,s,i;return isNaN(e)&&(e=0),isNaN(n)&&(n=0),e>360&&(e-=360),e<0&&(e+=360),e/=360,e<1/3?(i=(1-n)/3,o=(1+n*jt(bt*e)/jt(Fe-bt*e))/3,s=1-(i+o)):e<2/3?(e-=1/3,o=(1-n)/3,s=(1+n*jt(bt*e)/jt(Fe-bt*e))/3,i=1-(o+s)):(e-=2/3,s=(1-n)/3,i=(1+n*jt(bt*e)/jt(Fe-bt*e))/3,o=1-(s+i)),o=Et(r*o*3),s=Et(r*s*3),i=Et(r*i*3),[o*255,s*255,i*255,t.length>3?t[3]:1]},{min:Os,sqrt:Ps,acos:Is}=Math,zs=(...t)=>{let[e,n,r]=$(t,"rgb");e/=255,n/=255,r/=255;let o;const s=Os(e,n,r),i=(e+n+r)/3,a=i>0?1-s/i:0;return a===0?o=NaN:(o=(e-n+(e-r))/2,o/=Ps((e-n)*(e-n)+(e-r)*(n-r)),o=Is(o),r>n&&(o=bt-o),o/=bt),[o*360,a,i]};v.prototype.hsi=function(){return zs(this._rgb)};const Bs=(...t)=>new v(...t,"hsi");I.hsi=Bs,E.format.hsi=Hs,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"hsi"),O(t)==="array"&&t.length===3)return"hsi"}});const Ts=(t,e,n)=>Gt(t,e,n,"hsi");U.hsi=Ts;const Ve=(...t)=>{t=$(t,"hsl");const[e,n,r]=t;let o,s,i;if(n===0)o=s=i=r*255;else{const a=[0,0,0],c=[0,0,0],l=r<.5?r*(1+n):r+n-r*n,f=2*r-l,u=e/360;a[0]=u+1/3,a[1]=u,a[2]=u-1/3;for(let h=0;h<3;h++)a[h]<0&&(a[h]+=1),a[h]>1&&(a[h]-=1),6*a[h]<1?c[h]=f+(l-f)*6*a[h]:2*a[h]<1?c[h]=l:3*a[h]<2?c[h]=f+(l-f)*(2/3-a[h])*6:c[h]=f;[o,s,i]=[c[0]*255,c[1]*255,c[2]*255]}return t.length>3?[o,s,i,t[3]]:[o,s,i,1]},cr=(...t)=>{t=$(t,"rgba");let[e,n,r]=t;e/=255,n/=255,r/=255;const o=Qn(e,n,r),s=Jn(e,n,r),i=(s+o)/2;let a,c;return s===o?(a=0,c=Number.NaN):a=i<.5?(s-o)/(s+o):(s-o)/(2-s-o),e==s?c=(n-r)/(s-o):n==s?c=2+(r-e)/(s-o):r==s&&(c=4+(e-n)/(s-o)),c*=60,c<0&&(c+=360),t.length>3&&t[3]!==void 0?[c,a,i,t[3]]:[c,a,i]};v.prototype.hsl=function(){return cr(this._rgb)};const qs=(...t)=>new v(...t,"hsl");I.hsl=qs,E.format.hsl=Ve,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"hsl"),O(t)==="array"&&t.length===3)return"hsl"}});const Fs=(t,e,n)=>Gt(t,e,n,"hsl");U.hsl=Fs;const{floor:Gs}=Math,js=(...t)=>{t=$(t,"hsv");let[e,n,r]=t,o,s,i;if(r*=255,n===0)o=s=i=r;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;const a=Gs(e),c=e-a,l=r*(1-n),f=r*(1-n*c),u=r*(1-n*(1-c));switch(a){case 0:[o,s,i]=[r,u,l];break;case 1:[o,s,i]=[f,r,l];break;case 2:[o,s,i]=[l,r,u];break;case 3:[o,s,i]=[l,f,r];break;case 4:[o,s,i]=[u,l,r];break;case 5:[o,s,i]=[r,l,f];break}}return[o,s,i,t.length>3?t[3]:1]},{min:Ks,max:Ys}=Math,Ws=(...t)=>{t=$(t,"rgb");let[e,n,r]=t;const o=Ks(e,n,r),s=Ys(e,n,r),i=s-o;let a,c,l;return l=s/255,s===0?(a=Number.NaN,c=0):(c=i/s,e===s&&(a=(n-r)/i),n===s&&(a=2+(r-e)/i),r===s&&(a=4+(e-n)/i),a*=60,a<0&&(a+=360)),[a,c,l]};v.prototype.hsv=function(){return Ws(this._rgb)};const Us=(...t)=>new v(...t,"hsv");I.hsv=Us,E.format.hsv=js,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"hsv"),O(t)==="array"&&t.length===3)return"hsv"}});const Xs=(t,e,n)=>Gt(t,e,n,"hsv");U.hsv=Xs;function ge(t,e){let n=t.length;Array.isArray(t[0])||(t=[t]),Array.isArray(e[0])||(e=e.map(i=>[i]));let r=e[0].length,o=e[0].map((i,a)=>e.map(c=>c[a])),s=t.map(i=>o.map(a=>Array.isArray(i)?i.reduce((c,l,f)=>c+l*(a[f]||0),0):a.reduce((c,l)=>c+l*i,0)));return n===1&&(s=s[0]),r===1?s.map(i=>i[0]):s}const Qe=(...t)=>{t=$(t,"lab");const[e,n,r,...o]=t,[s,i,a]=Zs([e,n,r]),[c,l,f]=rr(s,i,a);return[c,l,f,...o.length>0&&o[0]<1?[o[0]]:[]]};function Zs(t){var e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],n=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],r=ge(n,t);return ge(e,r.map(o=>o**3))}const Je=(...t)=>{const[e,n,r,...o]=$(t,"rgb"),s=or(e,n,r);return[...Vs(s),...o.length>0&&o[0]<1?[o[0]]:[]]};function Vs(t){const e=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],n=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],r=ge(e,t);return ge(n,r.map(o=>Math.cbrt(o)))}v.prototype.oklab=function(){return Je(this._rgb)},Object.assign(I,{oklab:(...t)=>new v(...t,"oklab")}),E.format.oklab=Qe,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"oklab"),O(t)==="array"&&t.length===3)return"oklab"}});const Qs=(t,e,n)=>{const r=t.oklab(),o=e.oklab();return new v(r[0]+n*(o[0]-r[0]),r[1]+n*(o[1]-r[1]),r[2]+n*(o[2]-r[2]),"oklab")};U.oklab=Qs;const Js=(t,e,n)=>Gt(t,e,n,"oklch");U.oklch=Js;const{pow:tn,sqrt:en,PI:nn,cos:lr,sin:fr,atan2:ti}=Math,ei=(t,e="lrgb",n=null)=>{const r=t.length;n||(n=Array.from(new Array(r)).map(()=>1));const o=r/n.reduce(function(u,h){return u+h});if(n.forEach((u,h)=>{n[h]*=o}),t=t.map(u=>new v(u)),e==="lrgb")return ni(t,n);const s=t.shift(),i=s.get(e),a=[];let c=0,l=0;for(let u=0;u<i.length;u++)if(i[u]=(i[u]||0)*n[0],a.push(isNaN(i[u])?0:n[0]),e.charAt(u)==="h"&&!isNaN(i[u])){const h=i[u]/180*nn;c+=lr(h)*n[0],l+=fr(h)*n[0]}let f=s.alpha()*n[0];t.forEach((u,h)=>{const m=u.get(e);f+=u.alpha()*n[h+1];for(let p=0;p<i.length;p++)if(!isNaN(m[p]))if(a[p]+=n[h+1],e.charAt(p)==="h"){const M=m[p]/180*nn;c+=lr(M)*n[h+1],l+=fr(M)*n[h+1]}else i[p]+=m[p]*n[h+1]});for(let u=0;u<i.length;u++)if(e.charAt(u)==="h"){let h=ti(l/a[u],c/a[u])/nn*180;for(;h<0;)h+=360;for(;h>=360;)h-=360;i[u]=h}else i[u]=i[u]/a[u];return f/=r,new v(i,e).alpha(f>.99999?1:f,!0)},ni=(t,e)=>{const n=t.length,r=[0,0,0,0];for(let o=0;o<t.length;o++){const s=t[o],i=e[o]/n,a=s._rgb;r[0]+=tn(a[0],2)*i,r[1]+=tn(a[1],2)*i,r[2]+=tn(a[2],2)*i,r[3]+=a[3]*i}return r[0]=en(r[0]),r[1]=en(r[1]),r[2]=en(r[2]),r[3]>.9999999&&(r[3]=1),new v(Te(r))},{pow:ri}=Math;function pe(t){let e="rgb",n=I("#ccc"),r=0,o=[0,1],s=[0,1],i=[],a=[0,0],c=!1,l=[],f=!1,u=0,h=1,m=!1,p={},M=!0,g=1;const d=function(b){if(b=b||["#fff","#000"],b&&O(b)==="string"&&I.brewer&&I.brewer[b.toLowerCase()]&&(b=I.brewer[b.toLowerCase()]),O(b)==="array"){b.length===1&&(b=[b[0],b[0]]),b=b.slice(0);for(let _=0;_<b.length;_++)b[_]=I(b[_]);i.length=0;for(let _=0;_<b.length;_++)i.push(_/(b.length-1))}return H(),l=b},x=function(b){if(c!=null){const _=c.length-1;let S=0;for(;S<_&&b>=c[S];)S++;return S-1}return 0};let C=b=>b,A=b=>b;const R=function(b,_){let S,D;if(_==null&&(_=!1),isNaN(b)||b===null)return n;_?D=b:c&&c.length>2?D=x(b)/(c.length-2):h!==u?D=(b-u)/(h-u):D=1,D=A(D),_||(D=C(D)),g!==1&&(D=ri(D,g)),D=a[0]+D*(1-a[0]-a[1]),D=Et(D,0,1);const w=Math.floor(D*1e4);if(M&&p[w])S=p[w];else{if(O(l)==="array")for(let k=0;k<i.length;k++){const B=i[k];if(D<=B){S=l[k];break}if(D>=B&&k===i.length-1){S=l[k];break}if(D>B&&D<i[k+1]){D=(D-B)/(i[k+1]-B),S=I.interpolate(l[k],l[k+1],D,e);break}}else O(l)==="function"&&(S=l(D));M&&(p[w]=S)}return S};var H=()=>p={};d(t);const N=function(b){const _=I(R(b));return f&&_[f]?_[f]():_};return N.classes=function(b){if(b!=null){if(O(b)==="array")c=b,o=[b[0],b[b.length-1]];else{const _=I.analyze(o);b===0?c=[_.min,_.max]:c=I.limits(_,"e",b)}return N}return c},N.domain=function(b){if(!arguments.length)return s;s=b.slice(0),u=b[0],h=b[b.length-1],i=[];const _=l.length;if(b.length===_&&u!==h)for(let S of Array.from(b))i.push((S-u)/(h-u));else{for(let S=0;S<_;S++)i.push(S/(_-1));if(b.length>2){const S=b.map((w,k)=>k/(b.length-1)),D=b.map(w=>(w-u)/(h-u));D.every((w,k)=>S[k]===w)||(A=w=>{if(w<=0||w>=1)return w;let k=0;for(;w>=D[k+1];)k++;const B=(w-D[k])/(D[k+1]-D[k]);return S[k]+B*(S[k+1]-S[k])})}}return o=[u,h],N},N.mode=function(b){return arguments.length?(e=b,H(),N):e},N.range=function(b,_){return d(b),N},N.out=function(b){return f=b,N},N.spread=function(b){return arguments.length?(r=b,N):r},N.correctLightness=function(b){return b==null&&(b=!0),m=b,H(),m?C=function(_){const S=R(0,!0).lab()[0],D=R(1,!0).lab()[0],w=S>D;let k=R(_,!0).lab()[0];const B=S+(D-S)*_;let j=k-B,K=0,Y=1,J=20;for(;Math.abs(j)>.01&&J-- >0;)(function(){return w&&(j*=-1),j<0?(K=_,_+=(Y-_)*.5):(Y=_,_+=(K-_)*.5),k=R(_,!0).lab()[0],j=k-B})();return _}:C=_=>_,N},N.padding=function(b){return b!=null?(O(b)==="number"&&(b=[b,b]),a=b,N):a},N.colors=function(b,_){arguments.length<2&&(_="hex");let S=[];if(arguments.length===0)S=l.slice(0);else if(b===1)S=[N(.5)];else if(b>1){const D=o[0],w=o[1]-D;S=oi(0,b).map(k=>N(D+k/(b-1)*w))}else{t=[];let D=[];if(c&&c.length>2)for(let w=1,k=c.length,B=1<=k;B?w<k:w>k;B?w++:w--)D.push((c[w-1]+c[w])*.5);else D=o;S=D.map(w=>N(w))}return I[_]&&(S=S.map(D=>D[_]())),S},N.cache=function(b){return b!=null?(M=b,N):M},N.gamma=function(b){return b!=null?(g=b,N):g},N.nodata=function(b){return b!=null?(n=I(b),N):n},N}function oi(t,e,n){let r=[],o=t<e,s=e;for(let i=t;o?i<s:i>s;o?i++:i--)r.push(i);return r}const si=function(t){let e=[1,1];for(let n=1;n<t;n++){let r=[1];for(let o=1;o<=e.length;o++)r[o]=(e[o]||0)+e[o-1];e=r}return e},ii=function(t){let e,n,r,o;if(t=t.map(s=>new v(s)),t.length===2)[n,r]=t.map(s=>s.lab()),e=function(s){const i=[0,1,2].map(a=>n[a]+s*(r[a]-n[a]));return new v(i,"lab")};else if(t.length===3)[n,r,o]=t.map(s=>s.lab()),e=function(s){const i=[0,1,2].map(a=>(1-s)*(1-s)*n[a]+2*(1-s)*s*r[a]+s*s*o[a]);return new v(i,"lab")};else if(t.length===4){let s;[n,r,o,s]=t.map(i=>i.lab()),e=function(i){const a=[0,1,2].map(c=>(1-i)*(1-i)*(1-i)*n[c]+3*(1-i)*(1-i)*i*r[c]+3*(1-i)*i*i*o[c]+i*i*i*s[c]);return new v(a,"lab")}}else if(t.length>=5){let s,i,a;s=t.map(c=>c.lab()),a=t.length-1,i=si(a),e=function(c){const l=1-c,f=[0,1,2].map(u=>s.reduce((h,m,p)=>h+i[p]*l**(a-p)*c**p*m[u],0));return new v(f,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return e},ai=t=>{const e=ii(t);return e.scale=()=>pe(e),e},{round:ur}=Math;v.prototype.rgb=function(t=!0){return t===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(ur)},v.prototype.rgba=function(t=!0){return this._rgb.slice(0,4).map((e,n)=>n<3?t===!1?e:ur(e):e)},Object.assign(I,{rgb:(...t)=>new v(...t,"rgb")}),E.format.rgb=(...t)=>{const e=$(t,"rgba");return e[3]===void 0&&(e[3]=1),e},E.autodetect.push({p:3,test:(...t)=>{if(t=$(t,"rgba"),O(t)==="array"&&(t.length===3||t.length===4&&O(t[3])=="number"&&t[3]>=0&&t[3]<=1))return"rgb"}});const it=(t,e,n)=>{if(!it[n])throw new Error("unknown blend mode "+n);return it[n](t,e)},At=t=>(e,n)=>{const r=I(n).rgb(),o=I(e).rgb();return I.rgb(t(r,o))},Dt=t=>(e,n)=>{const r=[];return r[0]=t(e[0],n[0]),r[1]=t(e[1],n[1]),r[2]=t(e[2],n[2]),r},ci=t=>t,li=(t,e)=>t*e/255,fi=(t,e)=>t>e?e:t,ui=(t,e)=>t>e?t:e,hi=(t,e)=>255*(1-(1-t/255)*(1-e/255)),di=(t,e)=>e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255)),mi=(t,e)=>255*(1-(1-e/255)/(t/255)),gi=(t,e)=>t===255?255:(t=255*(e/255)/(1-t/255),t>255?255:t);it.normal=At(Dt(ci)),it.multiply=At(Dt(li)),it.screen=At(Dt(hi)),it.overlay=At(Dt(di)),it.darken=At(Dt(fi)),it.lighten=At(Dt(ui)),it.dodge=At(Dt(gi)),it.burn=At(Dt(mi));const{pow:pi,sin:bi,cos:Mi}=Math;function vi(t=300,e=-1.5,n=1,r=1,o=[0,1]){let s=0,i;O(o)==="array"?i=o[1]-o[0]:(i=0,o=[o,o]);const a=function(c){const l=bt*((t+120)/360+e*c),f=pi(o[0]+i*c,r),h=(s!==0?n[0]+c*s:n)*f*(1-f)/2,m=Mi(l),p=bi(l),M=f+h*(-.14861*m+1.78277*p),g=f+h*(-.29227*m-.90649*p),d=f+h*(1.97294*m);return I(Te([M*255,g*255,d*255,1]))};return a.start=function(c){return c==null?t:(t=c,a)},a.rotations=function(c){return c==null?e:(e=c,a)},a.gamma=function(c){return c==null?r:(r=c,a)},a.hue=function(c){return c==null?n:(n=c,O(n)==="array"?(s=n[1]-n[0],s===0&&(n=n[1])):s=0,a)},a.lightness=function(c){return c==null?o:(O(c)==="array"?(o=c,i=c[1]-c[0]):(o=[c,c],i=0),a)},a.scale=()=>I.scale(a),a.hue(n),a}const yi="0123456789abcdef",{floor:xi,random:ki}=Math,wi=(t=ki)=>{let e="#";for(let n=0;n<6;n++)e+=yi.charAt(xi(t()*16));return new v(e,"hex")},{log:hr,pow:Ci,floor:_i,abs:Ai}=Math;function dr(t,e=null){const n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return O(t)==="object"&&(t=Object.values(t)),t.forEach(r=>{e&&O(r)==="object"&&(r=r[e]),r!=null&&!isNaN(r)&&(n.values.push(r),n.sum+=r,r<n.min&&(n.min=r),r>n.max&&(n.max=r),n.count+=1)}),n.domain=[n.min,n.max],n.limits=(r,o)=>mr(n,r,o),n}function mr(t,e="equal",n=7){O(t)=="array"&&(t=dr(t));const{min:r,max:o}=t,s=t.values.sort((a,c)=>a-c);if(n===1)return[r,o];const i=[];if(e.substr(0,1)==="c"&&(i.push(r),i.push(o)),e.substr(0,1)==="e"){i.push(r);for(let a=1;a<n;a++)i.push(r+a/n*(o-r));i.push(o)}else if(e.substr(0,1)==="l"){if(r<=0)throw new Error("Logarithmic scales are only possible for values > 0");const a=Math.LOG10E*hr(r),c=Math.LOG10E*hr(o);i.push(r);for(let l=1;l<n;l++)i.push(Ci(10,a+l/n*(c-a)));i.push(o)}else if(e.substr(0,1)==="q"){i.push(r);for(let a=1;a<n;a++){const c=(s.length-1)*a/n,l=_i(c);if(l===c)i.push(s[l]);else{const f=c-l;i.push(s[l]*(1-f)+s[l+1]*f)}}i.push(o)}else if(e.substr(0,1)==="k"){let a;const c=s.length,l=new Array(c),f=new Array(n);let u=!0,h=0,m=null;m=[],m.push(r);for(let g=1;g<n;g++)m.push(r+g/n*(o-r));for(m.push(o);u;){for(let d=0;d<n;d++)f[d]=0;for(let d=0;d<c;d++){const x=s[d];let C=Number.MAX_VALUE,A;for(let R=0;R<n;R++){const H=Ai(m[R]-x);H<C&&(C=H,A=R),f[A]++,l[d]=A}}const g=new Array(n);for(let d=0;d<n;d++)g[d]=null;for(let d=0;d<c;d++)a=l[d],g[a]===null?g[a]=s[d]:g[a]+=s[d];for(let d=0;d<n;d++)g[d]*=1/f[d];u=!1;for(let d=0;d<n;d++)if(g[d]!==m[d]){u=!0;break}m=g,h++,h>200&&(u=!1)}const p={};for(let g=0;g<n;g++)p[g]=[];for(let g=0;g<c;g++)a=l[g],p[a].push(s[g]);let M=[];for(let g=0;g<n;g++)M.push(p[g][0]),M.push(p[g][p[g].length-1]);M=M.sort((g,d)=>g-d),i.push(M[0]);for(let g=1;g<M.length;g+=2){const d=M[g];!isNaN(d)&&i.indexOf(d)===-1&&i.push(d)}}return i}const Di=(t,e)=>{t=new v(t),e=new v(e);const n=t.luminance(),r=e.luminance();return n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)};const gr=.027,Si=5e-4,Ni=.1,pr=1.14,be=.022,br=1.414,Ri=(t,e)=>{t=new v(t),e=new v(e),t.alpha()<1&&(t=qt(e,t,t.alpha(),"rgb"));const n=Mr(...t.rgb()),r=Mr(...e.rgb()),o=n>=be?n:n+Math.pow(be-n,br),s=r>=be?r:r+Math.pow(be-r,br),i=Math.pow(s,.56)-Math.pow(o,.57),a=Math.pow(s,.65)-Math.pow(o,.62),c=Math.abs(s-o)<Si?0:o<s?i*pr:a*pr;return(Math.abs(c)<Ni?0:c>0?c-gr:c+gr)*100};function Mr(t,e,n){return .2126729*Math.pow(t/255,2.4)+.7151522*Math.pow(e/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:vt,pow:q,min:Li,max:Ei,atan2:vr,abs:yr,cos:Me,sin:xr,exp:$i,PI:kr}=Math;function Hi(t,e,n=1,r=1,o=1){var s=function(st){return 360*st/(2*kr)},i=function(st){return 2*kr*st/360};t=new v(t),e=new v(e);const[a,c,l]=Array.from(t.lab()),[f,u,h]=Array.from(e.lab()),m=(a+f)/2,p=vt(q(c,2)+q(l,2)),M=vt(q(u,2)+q(h,2)),g=(p+M)/2,d=.5*(1-vt(q(g,7)/(q(g,7)+q(25,7)))),x=c*(1+d),C=u*(1+d),A=vt(q(x,2)+q(l,2)),R=vt(q(C,2)+q(h,2)),H=(A+R)/2,N=s(vr(l,x)),b=s(vr(h,C)),_=N>=0?N:N+360,S=b>=0?b:b+360,D=yr(_-S)>180?(_+S+360)/2:(_+S)/2,w=1-.17*Me(i(D-30))+.24*Me(i(2*D))+.32*Me(i(3*D+6))-.2*Me(i(4*D-63));let k=S-_;k=yr(k)<=180?k:S<=_?k+360:k-360,k=2*vt(A*R)*xr(i(k)/2);const B=f-a,j=R-A,K=1+.015*q(m-50,2)/vt(20+q(m-50,2)),Y=1+.045*H,J=1+.015*H*w,tt=30*$i(-q((D-275)/25,2)),gt=-(2*vt(q(H,7)/(q(H,7)+q(25,7))))*xr(2*i(tt)),ft=vt(q(B/(n*K),2)+q(j/(r*Y),2)+q(k/(o*J),2)+gt*(j/(r*Y))*(k/(o*J)));return Ei(0,Li(100,ft))}function Oi(t,e,n="lab"){t=new v(t),e=new v(e);const r=t.get(n),o=e.get(n);let s=0;for(let i in r){const a=(r[i]||0)-(o[i]||0);s+=a*a}return Math.sqrt(s)}const Pi=(...t)=>{try{return new v(...t),!0}catch{return!1}},Ii={cool(){return pe([I.hsl(180,1,.9),I.hsl(250,.7,.4)])},hot(){return pe(["#000","#f00","#ff0","#fff"]).mode("rgb")}},rn={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},wr=Object.keys(rn),Cr=new Map(wr.map(t=>[t.toLowerCase(),t])),zi=typeof Proxy=="function"?new Proxy(rn,{get(t,e){const n=e.toLowerCase();if(Cr.has(n))return t[Cr.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(wr)}}):rn,Bi=(...t)=>{t=$(t,"cmyk");const[e,n,r,o]=t,s=t.length>4?t[4]:1;return o===1?[0,0,0,s]:[e>=1?0:255*(1-e)*(1-o),n>=1?0:255*(1-n)*(1-o),r>=1?0:255*(1-r)*(1-o),s]},{max:_r}=Math,Ti=(...t)=>{let[e,n,r]=$(t,"rgb");e=e/255,n=n/255,r=r/255;const o=1-_r(e,_r(n,r)),s=o<1?1/(1-o):0,i=(1-e-o)*s,a=(1-n-o)*s,c=(1-r-o)*s;return[i,a,c,o]};v.prototype.cmyk=function(){return Ti(this._rgb)},Object.assign(I,{cmyk:(...t)=>new v(...t,"cmyk")}),E.format.cmyk=Bi,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"cmyk"),O(t)==="array"&&t.length===4)return"cmyk"}});const qi=(...t)=>{const e=$(t,"hsla");let n=Bt(t)||"lsa";return e[0]=rt(e[0]||0)+"deg",e[1]=rt(e[1]*100)+"%",e[2]=rt(e[2]*100)+"%",n==="hsla"||e.length>3&&e[3]<1?(e[3]="/ "+(e.length>3?e[3]:1),n="hsla"):e.length=3,`${n.substr(0,3)}(${e.join(" ")})`},Fi=(...t)=>{const e=$(t,"lab");let n=Bt(t)||"lab";return e[0]=rt(e[0])+"%",e[1]=rt(e[1]),e[2]=rt(e[2]),n==="laba"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lab(${e.join(" ")})`},Gi=(...t)=>{const e=$(t,"lch");let n=Bt(t)||"lab";return e[0]=rt(e[0])+"%",e[1]=rt(e[1]),e[2]=isNaN(e[2])?"none":rt(e[2])+"deg",n==="lcha"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lch(${e.join(" ")})`},ji=(...t)=>{const e=$(t,"lab");return e[0]=rt(e[0]*100)+"%",e[1]=qe(e[1]),e[2]=qe(e[2]),e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklab(${e.join(" ")})`},Ar=(...t)=>{const[e,n,r,...o]=$(t,"rgb"),[s,i,a]=Je(e,n,r),[c,l,f]=ir(s,i,a);return[c,l,f,...o.length>0&&o[0]<1?[o[0]]:[]]},Ki=(...t)=>{const e=$(t,"lch");return e[0]=rt(e[0]*100)+"%",e[1]=qe(e[1]),e[2]=isNaN(e[2])?"none":rt(e[2])+"deg",e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklch(${e.join(" ")})`},{round:on}=Math,Yi=(...t)=>{const e=$(t,"rgba");let n=Bt(t)||"rgb";if(n.substr(0,3)==="hsl")return qi(cr(e),n);if(n.substr(0,3)==="lab"){const r=ne();Mt("d50");const o=Fi(Ke(e),n);return Mt(r),o}if(n.substr(0,3)==="lch"){const r=ne();Mt("d50");const o=Gi(Xe(e),n);return Mt(r),o}return n.substr(0,5)==="oklab"?ji(Je(e)):n.substr(0,5)==="oklch"?Ki(Ar(e)):(e[0]=on(e[0]),e[1]=on(e[1]),e[2]=on(e[2]),(n==="rgba"||e.length>3&&e[3]<1)&&(e[3]="/ "+(e.length>3?e[3]:1),n="rgba"),`${n.substr(0,3)}(${e.slice(0,n==="rgb"?3:4).join(" ")})`)},Dr=(...t)=>{t=$(t,"lch");const[e,n,r,...o]=t,[s,i,a]=sr(e,n,r),[c,l,f]=Qe(s,i,a);return[c,l,f,...o.length>0&&o[0]<1?[o[0]]:[]]},yt=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,at=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,ve=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,ot=/\s*/.source,Kt=/\s+/.source,sn=/\s*,\s*/.source,ye=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Yt=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,Sr=new RegExp("^rgba?\\("+ot+[yt,yt,yt].join(Kt)+Yt+"\\)$"),Nr=new RegExp("^rgb\\("+ot+[yt,yt,yt].join(sn)+ot+"\\)$"),Rr=new RegExp("^rgba\\("+ot+[yt,yt,yt,at].join(sn)+ot+"\\)$"),Lr=new RegExp("^hsla?\\("+ot+[ye,ve,ve].join(Kt)+Yt+"\\)$"),Er=new RegExp("^hsl?\\("+ot+[ye,ve,ve].join(sn)+ot+"\\)$"),$r=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,Hr=new RegExp("^lab\\("+ot+[at,at,at].join(Kt)+Yt+"\\)$"),Or=new RegExp("^lch\\("+ot+[at,at,ye].join(Kt)+Yt+"\\)$"),Pr=new RegExp("^oklab\\("+ot+[at,at,at].join(Kt)+Yt+"\\)$"),Ir=new RegExp("^oklch\\("+ot+[at,at,ye].join(Kt)+Yt+"\\)$"),{round:zr}=Math,Wt=t=>t.map((e,n)=>n<=2?Et(zr(e),0,255):e),F=(t,e=0,n=100,r=!1)=>(typeof t=="string"&&t.endsWith("%")&&(t=parseFloat(t.substring(0,t.length-1))/100,r?t=e+(t+1)*.5*(n-e):t=e+t*(n-e)),+t),Z=(t,e)=>t==="none"?e:t,an=t=>{if(t=t.toLowerCase().trim(),t==="transparent")return[0,0,0,0];let e;if(E.format.named)try{return E.format.named(t)}catch{}if((e=t.match(Sr))||(e=t.match(Nr))){let n=e.slice(1,4);for(let o=0;o<3;o++)n[o]=+F(Z(n[o],0),0,255);n=Wt(n);const r=e[4]!==void 0?+F(e[4],0,1):1;return n[3]=r,n}if(e=t.match(Rr)){const n=e.slice(1,5);for(let r=0;r<4;r++)n[r]=+F(n[r],0,255);return n}if((e=t.match(Lr))||(e=t.match(Er))){const n=e.slice(1,4);n[0]=+Z(n[0].replace("deg",""),0),n[1]=+F(Z(n[1],0),0,100)*.01,n[2]=+F(Z(n[2],0),0,100)*.01;const r=Wt(Ve(n)),o=e[4]!==void 0?+F(e[4],0,1):1;return r[3]=o,r}if(e=t.match($r)){const n=e.slice(1,4);n[1]*=.01,n[2]*=.01;const r=Ve(n);for(let o=0;o<3;o++)r[o]=zr(r[o]);return r[3]=+e[4],r}if(e=t.match(Hr)){const n=e.slice(1,4);n[0]=F(Z(n[0],0),0,100),n[1]=F(Z(n[1],0),-125,125,!0),n[2]=F(Z(n[2],0),-125,125,!0);const r=ne();Mt("d50");const o=Wt(Ge(n));Mt(r);const s=e[4]!==void 0?+F(e[4],0,1):1;return o[3]=s,o}if(e=t.match(Or)){const n=e.slice(1,4);n[0]=F(n[0],0,100),n[1]=F(Z(n[1],0),0,150,!1),n[2]=+Z(n[2].replace("deg",""),0);const r=ne();Mt("d50");const o=Wt(Ue(n));Mt(r);const s=e[4]!==void 0?+F(e[4],0,1):1;return o[3]=s,o}if(e=t.match(Pr)){const n=e.slice(1,4);n[0]=F(Z(n[0],0),0,1),n[1]=F(Z(n[1],0),-.4,.4,!0),n[2]=F(Z(n[2],0),-.4,.4,!0);const r=Wt(Qe(n)),o=e[4]!==void 0?+F(e[4],0,1):1;return r[3]=o,r}if(e=t.match(Ir)){const n=e.slice(1,4);n[0]=F(Z(n[0],0),0,1),n[1]=F(Z(n[1],0),0,.4,!1),n[2]=+Z(n[2].replace("deg",""),0);const r=Wt(Dr(n)),o=e[4]!==void 0?+F(e[4],0,1):1;return r[3]=o,r}};an.test=t=>Sr.test(t)||Lr.test(t)||Hr.test(t)||Or.test(t)||Pr.test(t)||Ir.test(t)||Nr.test(t)||Rr.test(t)||Er.test(t)||$r.test(t)||t==="transparent",v.prototype.css=function(t){return Yi(this._rgb,t)};const Wi=(...t)=>new v(...t,"css");I.css=Wi,E.format.css=an,E.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&O(t)==="string"&&an.test(t))return"css"}}),E.format.gl=(...t)=>{const e=$(t,"rgba");return e[0]*=255,e[1]*=255,e[2]*=255,e};const Ui=(...t)=>new v(...t,"gl");I.gl=Ui,v.prototype.gl=function(){const t=this._rgb;return[t[0]/255,t[1]/255,t[2]/255,t[3]]},v.prototype.hex=function(t){return nr(this._rgb,t)};const Xi=(...t)=>new v(...t,"hex");I.hex=Xi,E.format.hex=er,E.autodetect.push({p:4,test:(t,...e)=>{if(!e.length&&O(t)==="string"&&[3,4,5,6,7,8,9].indexOf(t.length)>=0)return"hex"}});const{log:xe}=Math,Br=t=>{const e=t/100;let n,r,o;return e<66?(n=255,r=e<6?0:-155.25485562709179-.44596950469579133*(r=e-2)+104.49216199393888*xe(r),o=e<20?0:-254.76935184120902+.8274096064007395*(o=e-10)+115.67994401066147*xe(o)):(n=351.97690566805693+.114206453784165*(n=e-55)-40.25366309332127*xe(n),r=325.4494125711974+.07943456536662342*(r=e-50)-28.0852963507957*xe(r),o=255),[n,r,o,1]},{round:Zi}=Math,Vi=(...t)=>{const e=$(t,"rgb"),n=e[0],r=e[2];let o=1e3,s=4e4;const i=.4;let a;for(;s-o>i;){a=(s+o)*.5;const c=Br(a);c[2]/c[0]>=r/n?s=a:o=a}return Zi(a)};v.prototype.temp=v.prototype.kelvin=v.prototype.temperature=function(){return Vi(this._rgb)};const cn=(...t)=>new v(...t,"temp");Object.assign(I,{temp:cn,kelvin:cn,temperature:cn}),E.format.temp=E.format.kelvin=E.format.temperature=Br,v.prototype.oklch=function(){return Ar(this._rgb)},Object.assign(I,{oklch:(...t)=>new v(...t,"oklch")}),E.format.oklch=Dr,E.autodetect.push({p:2,test:(...t)=>{if(t=$(t,"oklch"),O(t)==="array"&&t.length===3)return"oklch"}}),Object.assign(I,{analyze:dr,average:ei,bezier:ai,blend:it,brewer:zi,Color:v,colors:Tt,contrast:Di,contrastAPCA:Ri,cubehelix:vi,deltaE:Hi,distance:Oi,input:E,interpolate:qt,limits:mr,mix:qt,random:wi,scale:pe,scales:Ii,valid:Pi});const Tr=(t,e)=>{if(typeof t=="number"){if(e===3)return{mode:"rgb",r:(t>>8&15|t>>4&240)/255,g:(t>>4&15|t&240)/255,b:(t&15|t<<4&240)/255};if(e===4)return{mode:"rgb",r:(t>>12&15|t>>8&240)/255,g:(t>>8&15|t>>4&240)/255,b:(t>>4&15|t&240)/255,alpha:(t&15|t<<4&240)/255};if(e===6)return{mode:"rgb",r:(t>>16&255)/255,g:(t>>8&255)/255,b:(t&255)/255};if(e===8)return{mode:"rgb",r:(t>>24&255)/255,g:(t>>16&255)/255,b:(t>>8&255)/255,alpha:(t&255)/255}}},Qi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ji=t=>Tr(Qi[t.toLowerCase()],6),ta=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,ea=t=>{let e;return(e=t.match(ta))?Tr(parseInt(e[1],16),e[1].length):void 0},St="([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)",re=`${St}%`,ln=`(?:${St}%|${St})`,na=`(?:${St}(deg|grad|rad|turn)|${St})`,Ut="\\s*,\\s*",ra=new RegExp(`^rgba?\\(\\s*${St}${Ut}${St}${Ut}${St}\\s*(?:,\\s*${ln}\\s*)?\\)$`),oa=new RegExp(`^rgba?\\(\\s*${re}${Ut}${re}${Ut}${re}\\s*(?:,\\s*${ln}\\s*)?\\)$`),sa=t=>{let e={mode:"rgb"},n;if(n=t.match(ra))n[1]!==void 0&&(e.r=n[1]/255),n[2]!==void 0&&(e.g=n[2]/255),n[3]!==void 0&&(e.b=n[3]/255);else if(n=t.match(oa))n[1]!==void 0&&(e.r=n[1]/100),n[2]!==void 0&&(e.g=n[2]/100),n[3]!==void 0&&(e.b=n[3]/100);else return;return n[4]!==void 0?e.alpha=Math.max(0,Math.min(1,n[4]/100)):n[5]!==void 0&&(e.alpha=Math.max(0,Math.min(1,+n[5]))),e},ia=(t,e)=>t===void 0?void 0:typeof t!="object"?pa(t):t.mode!==void 0?t:e?{...t,mode:e}:void 0,qr=(t="rgb")=>e=>(e=ia(e,t))!==void 0?e.mode===t?e:ht[e.mode][t]?ht[e.mode][t](e):t==="rgb"?ht[e.mode].rgb(e):ht.rgb[t](ht[e.mode].rgb(e)):void 0,ht={},Fr={},ke=[],Gr={},aa=t=>t,xt=t=>(ht[t.mode]={...ht[t.mode],...t.toMode},Object.keys(t.fromMode||{}).forEach(e=>{ht[e]||(ht[e]={}),ht[e][t.mode]=t.fromMode[e]}),t.ranges||(t.ranges={}),t.difference||(t.difference={}),t.channels.forEach(e=>{if(t.ranges[e]===void 0&&(t.ranges[e]=[0,1]),!t.interpolate[e])throw new Error(`Missing interpolator for: ${e}`);typeof t.interpolate[e]=="function"&&(t.interpolate[e]={use:t.interpolate[e]}),t.interpolate[e].fixup||(t.interpolate[e].fixup=aa)}),Fr[t.mode]=t,(t.parse||[]).forEach(e=>{la(e,t.mode)}),qr(t.mode)),ca=t=>Fr[t],la=(t,e)=>{if(typeof t=="string"){if(!e)throw new Error("'mode' required when 'parser' is a string");Gr[t]=e}else typeof t=="function"&&ke.indexOf(t)<0&&ke.push(t)},fn=/[^\x00-\x7F]|[a-zA-Z_]/,fa=/[^\x00-\x7F]|[-\w]/,y={Function:"function",Ident:"ident",Number:"number",Percentage:"percentage",ParenClose:")",None:"none",Hue:"hue",Alpha:"alpha"};let L=0;function we(t){let e=t[L],n=t[L+1];return e==="-"||e==="+"?/\d/.test(n)||n==="."&&/\d/.test(t[L+2]):e==="."?/\d/.test(n):/\d/.test(e)}function un(t){if(L>=t.length)return!1;let e=t[L];if(fn.test(e))return!0;if(e==="-"){if(t.length-L<2)return!1;let n=t[L+1];return!!(n==="-"||fn.test(n))}return!1}const ua={deg:1,rad:180/Math.PI,grad:9/10,turn:360};function oe(t){let e="";if((t[L]==="-"||t[L]==="+")&&(e+=t[L++]),e+=Ce(t),t[L]==="."&&/\d/.test(t[L+1])&&(e+=t[L++]+Ce(t)),(t[L]==="e"||t[L]==="E")&&((t[L+1]==="-"||t[L+1]==="+")&&/\d/.test(t[L+2])?e+=t[L++]+t[L++]+Ce(t):/\d/.test(t[L+1])&&(e+=t[L++]+Ce(t))),un(t)){let n=_e(t);return n==="deg"||n==="rad"||n==="turn"||n==="grad"?{type:y.Hue,value:e*ua[n]}:void 0}return t[L]==="%"?(L++,{type:y.Percentage,value:+e}):{type:y.Number,value:+e}}function Ce(t){let e="";for(;/\d/.test(t[L]);)e+=t[L++];return e}function _e(t){let e="";for(;L<t.length&&fa.test(t[L]);)e+=t[L++];return e}function ha(t){let e=_e(t);return t[L]==="("?(L++,{type:y.Function,value:e}):e==="none"?{type:y.None,value:void 0}:{type:y.Ident,value:e}}function da(t=""){let e=t.trim(),n=[],r;for(L=0;L<e.length;){if(r=e[L++],r===`
|
|
2
|
+
`||r===" "||r===" "){for(;L<e.length&&(e[L]===`
|
|
3
|
+
`||e[L]===" "||e[L]===" ");)L++;continue}if(r===",")return;if(r===")"){n.push({type:y.ParenClose});continue}if(r==="+"){if(L--,we(e)){n.push(oe(e));continue}return}if(r==="-"){if(L--,we(e)){n.push(oe(e));continue}if(un(e)){n.push({type:y.Ident,value:_e(e)});continue}return}if(r==="."){if(L--,we(e)){n.push(oe(e));continue}return}if(r==="/"){for(;L<e.length&&(e[L]===`
|
|
4
|
+
`||e[L]===" "||e[L]===" ");)L++;let o;if(we(e)&&(o=oe(e),o.type!==y.Hue)){n.push({type:y.Alpha,value:o});continue}if(un(e)&&_e(e)==="none"){n.push({type:y.Alpha,value:{type:y.None,value:void 0}});continue}return}if(/\d/.test(r)){L--,n.push(oe(e));continue}if(fn.test(r)){L--,n.push(ha(e));continue}return}return n}function ma(t){t._i=0;let e=t[t._i++];if(!e||e.type!==y.Function||e.value!=="color"||(e=t[t._i++],e.type!==y.Ident))return;const n=Gr[e.value];if(!n)return;const r={mode:n},o=jr(t,!1);if(!o)return;const s=ca(n).channels;for(let i=0,a,c;i<s.length;i++)a=o[i],c=s[i],a.type!==y.None&&(r[c]=a.type===y.Number?a.value:a.value/100,c==="alpha"&&(r[c]=Math.max(0,Math.min(1,r[c]))));return r}function jr(t,e){const n=[];let r;for(;t._i<t.length;){if(r=t[t._i++],r.type===y.None||r.type===y.Number||r.type===y.Alpha||r.type===y.Percentage||e&&r.type===y.Hue){n.push(r);continue}if(r.type===y.ParenClose){if(t._i<t.length)return;continue}return}if(!(n.length<3||n.length>4)){if(n.length===4){if(n[3].type!==y.Alpha)return;n[3]=n[3].value}return n.length===3&&n.push({type:y.None,value:void 0}),n.every(o=>o.type!==y.Alpha)?n:void 0}}function ga(t,e){t._i=0;let n=t[t._i++];if(!n||n.type!==y.Function)return;let r=jr(t,e);if(r)return r.unshift(n.value),r}const pa=t=>{if(typeof t!="string")return;const e=da(t),n=e?ga(e,!0):void 0;let r,o=0,s=ke.length;for(;o<s;)if((r=ke[o++](t,n))!==void 0)return r;return e?ma(e):void 0};function ba(t,e){if(!e||e[0]!=="rgb"&&e[0]!=="rgba")return;const n={mode:"rgb"},[,r,o,s,i]=e;if(!(r.type===y.Hue||o.type===y.Hue||s.type===y.Hue))return r.type!==y.None&&(n.r=r.type===y.Number?r.value/255:r.value/100),o.type!==y.None&&(n.g=o.type===y.Number?o.value/255:o.value/100),s.type!==y.None&&(n.b=s.type===y.Number?s.value/255:s.value/100),i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const Ma=t=>t==="transparent"?{mode:"rgb",r:0,g:0,b:0,alpha:0}:void 0,va=(t,e,n)=>t+n*(e-t),ya=t=>{let e=[];for(let n=0;n<t.length-1;n++){let r=t[n],o=t[n+1];r===void 0&&o===void 0?e.push(void 0):r!==void 0&&o!==void 0?e.push([r,o]):e.push(r!==void 0?[r,r]:[o,o])}return e},G=(t=>e=>{let n=ya(e);return r=>{let o=r*n.length,s=r>=1?n.length-1:Math.max(Math.floor(o),0),i=n[s];return i===void 0?void 0:t(i[0],i[1],o-s)}})(va),se=t=>{let e=!1,n=t.map(r=>r!==void 0?(e=!0,r):1);return e?n:t},xa={mode:"rgb",channels:["r","g","b","alpha"],parse:[ba,ea,sa,Ji,Ma,"srgb"],serialize:"srgb",interpolate:{r:G,g:G,b:G,alpha:{use:G,fixup:se}},gamut:!0,white:{r:1,g:1,b:1},black:{r:0,g:0,b:0}},hn=(t=0)=>{const e=Math.abs(t);return e<=.04045?t/12.92:(Math.sign(t)||1)*Math.pow((e+.055)/1.055,2.4)},Kr=({r:t,g:e,b:n,alpha:r})=>{let o={mode:"lrgb",r:hn(t),g:hn(e),b:hn(n)};return r!==void 0&&(o.alpha=r),o},dn=(t=0)=>{const e=Math.abs(t);return e>.0031308?(Math.sign(t)||1)*(1.055*Math.pow(e,1/2.4)-.055):t*12.92},Yr=({r:t,g:e,b:n,alpha:r},o="rgb")=>{let s={mode:o,r:dn(t),g:dn(e),b:dn(n)};return r!==void 0&&(s.alpha=r),s},ct=t=>(t=t%360)<0?t+360:t,ka=(t,e)=>t.map((n,r,o)=>{if(n===void 0)return n;let s=ct(n);return r===0||t[r-1]===void 0?s:e(s-ct(o[r-1]))}).reduce((n,r)=>!n.length||r===void 0||n[n.length-1]===void 0?(n.push(r),n):(n.push(r+n[n.length-1]),n),[]),mn=t=>ka(t,e=>Math.abs(e)<=180?e:e-360*Math.sign(e)),Wr=(t,e)=>{if(t.h===void 0||e.h===void 0||!t.s||!e.s)return 0;let n=ct(t.h),r=ct(e.h),o=Math.sin((r-n+360)/2*Math.PI/180);return 2*Math.sqrt(t.s*e.s)*o},wa=(t,e)=>{if(t.h===void 0||e.h===void 0||!t.c||!e.c)return 0;let n=ct(t.h),r=ct(e.h),o=Math.sin((r-n+360)/2*Math.PI/180);return 2*Math.sqrt(t.c*e.c)*o},gn=t=>{let e=t.reduce((r,o)=>{if(o!==void 0){let s=o*Math.PI/180;r.sin+=Math.sin(s),r.cos+=Math.cos(s)}return r},{sin:0,cos:0}),n=Math.atan2(e.sin,e.cos)*180/Math.PI;return n<0?360+n:n},Ae=({l:t,a:e,b:n,alpha:r},o="lch")=>{e===void 0&&(e=0),n===void 0&&(n=0);let s=Math.sqrt(e*e+n*n),i={mode:o,l:t,c:s};return s&&(i.h=ct(Math.atan2(n,e)*180/Math.PI)),r!==void 0&&(i.alpha=r),i},De=({l:t,c:e,h:n,alpha:r},o="lab")=>{n===void 0&&(n=0);let s={mode:o,l:t,a:e?e*Math.cos(n/180*Math.PI):0,b:e?e*Math.sin(n/180*Math.PI):0};return r!==void 0&&(s.alpha=r),s},Xt={X:.3457/.3585,Y:1,Z:(1-.3457-.3585)/.3585};function Ca({h:t,s:e,l:n,alpha:r}){t=ct(t!==void 0?t:0),e===void 0&&(e=0),n===void 0&&(n=0);let o=n+e*(n<.5?n:1-n),s=o-(o-n)*2*Math.abs(t/60%2-1),i;switch(Math.floor(t/60)){case 0:i={r:o,g:s,b:2*n-o};break;case 1:i={r:s,g:o,b:2*n-o};break;case 2:i={r:2*n-o,g:o,b:s};break;case 3:i={r:2*n-o,g:s,b:o};break;case 4:i={r:s,g:2*n-o,b:o};break;case 5:i={r:o,g:2*n-o,b:s};break;default:i={r:2*n-o,g:2*n-o,b:2*n-o}}return i.mode="rgb",r!==void 0&&(i.alpha=r),i}function _a({r:t,g:e,b:n,alpha:r}){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Math.max(t,e,n),s=Math.min(t,e,n),i={mode:"hsl",s:o===s?0:(o-s)/(1-Math.abs(o+s-1)),l:.5*(o+s)};return o-s!==0&&(i.h=(o===t?(e-n)/(o-s)+(e<n)*6:o===e?(n-t)/(o-s)+2:(t-e)/(o-s)+4)*60),r!==void 0&&(i.alpha=r),i}const Aa=(t,e)=>{switch(e){case"deg":return+t;case"rad":return t/Math.PI*180;case"grad":return t/10*9;case"turn":return t*360}},Da=new RegExp(`^hsla?\\(\\s*${na}${Ut}${re}${Ut}${re}\\s*(?:,\\s*${ln}\\s*)?\\)$`),Sa=t=>{let e=t.match(Da);if(!e)return;let n={mode:"hsl"};return e[3]!==void 0?n.h=+e[3]:e[1]!==void 0&&e[2]!==void 0&&(n.h=Aa(e[1],e[2])),e[4]!==void 0&&(n.s=Math.min(Math.max(0,e[4]/100),1)),e[5]!==void 0&&(n.l=Math.min(Math.max(0,e[5]/100),1)),e[6]!==void 0?n.alpha=Math.max(0,Math.min(1,e[6]/100)):e[7]!==void 0&&(n.alpha=Math.max(0,Math.min(1,+e[7]))),n};function Na(t,e){if(!e||e[0]!=="hsl"&&e[0]!=="hsla")return;const n={mode:"hsl"},[,r,o,s,i]=e;if(r.type!==y.None){if(r.type===y.Percentage)return;n.h=r.value}if(o.type!==y.None){if(o.type===y.Hue)return;n.s=o.value/100}if(s.type!==y.None){if(s.type===y.Hue)return;n.l=s.value/100}return i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const Ur={mode:"hsl",toMode:{rgb:Ca},fromMode:{rgb:_a},channels:["h","s","l","alpha"],ranges:{h:[0,360]},gamut:"rgb",parse:[Na,Sa],serialize:t=>`hsl(${t.h!==void 0?t.h:"none"} ${t.s!==void 0?t.s*100+"%":"none"} ${t.l!==void 0?t.l*100+"%":"none"}${t.alpha<1?` / ${t.alpha}`:""})`,interpolate:{h:{use:G,fixup:mn},s:G,l:G,alpha:{use:G,fixup:se}},difference:{h:Wr},average:{h:gn}};function Ra({h:t,s:e,v:n,alpha:r}){t=ct(t!==void 0?t:0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Math.abs(t/60%2-1),s;switch(Math.floor(t/60)){case 0:s={r:n,g:n*(1-e*o),b:n*(1-e)};break;case 1:s={r:n*(1-e*o),g:n,b:n*(1-e)};break;case 2:s={r:n*(1-e),g:n,b:n*(1-e*o)};break;case 3:s={r:n*(1-e),g:n*(1-e*o),b:n};break;case 4:s={r:n*(1-e*o),g:n*(1-e),b:n};break;case 5:s={r:n,g:n*(1-e),b:n*(1-e*o)};break;default:s={r:n*(1-e),g:n*(1-e),b:n*(1-e)}}return s.mode="rgb",r!==void 0&&(s.alpha=r),s}function La({r:t,g:e,b:n,alpha:r}){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Math.max(t,e,n),s=Math.min(t,e,n),i={mode:"hsv",s:o===0?0:1-s/o,v:o};return o-s!==0&&(i.h=(o===t?(e-n)/(o-s)+(e<n)*6:o===e?(n-t)/(o-s)+2:(t-e)/(o-s)+4)*60),r!==void 0&&(i.alpha=r),i}const Xr={mode:"hsv",toMode:{rgb:Ra},parse:["--hsv"],serialize:"--hsv",fromMode:{rgb:La},channels:["h","s","v","alpha"],ranges:{h:[0,360]},gamut:"rgb",interpolate:{h:{use:G,fixup:mn},s:G,v:G,alpha:{use:G,fixup:se}},difference:{h:Wr},average:{h:gn}},Zr=Math.pow(29,3)/Math.pow(3,3),Vr=Math.pow(6,3)/Math.pow(29,3);let pn=t=>Math.pow(t,3)>Vr?Math.pow(t,3):(116*t-16)/Zr;const Qr=({l:t,a:e,b:n,alpha:r})=>{t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=(t+16)/116,s=e/500+o,i=o-n/200,a={mode:"xyz50",x:pn(s)*Xt.X,y:pn(o)*Xt.Y,z:pn(i)*Xt.Z};return r!==void 0&&(a.alpha=r),a},Ea=({x:t,y:e,z:n,alpha:r})=>{t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Yr({r:t*3.1341359569958707-e*1.6173863321612538-.4906619460083532*n,g:t*-.978795502912089+e*1.916254567259524+.03344273116131949*n,b:t*.07195537988411677-e*.2289768264158322+1.405386058324125*n});return r!==void 0&&(o.alpha=r),o},Jr=t=>Ea(Qr(t)),$a=t=>{let{r:e,g:n,b:r,alpha:o}=Kr(t),s={mode:"xyz50",x:.436065742824811*e+.3851514688337912*n+.14307845442264197*r,y:.22249319175623702*e+.7168870538238823*n+.06061979053616537*r,z:.013923904500943465*e+.09708128566574634*n+.7140993584005155*r};return o!==void 0&&(s.alpha=o),s},bn=t=>t>Vr?Math.cbrt(t):(Zr*t+16)/116,to=({x:t,y:e,z:n,alpha:r})=>{t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=bn(t/Xt.X),s=bn(e/Xt.Y),i=bn(n/Xt.Z),a={mode:"lab",l:116*s-16,a:500*(o-s),b:200*(s-i)};return r!==void 0&&(a.alpha=r),a},eo=t=>{let e=to($a(t));return t.r===t.b&&t.b===t.g&&(e.a=e.b=0),e};function Ha(t,e){if(!e||e[0]!=="lab")return;const n={mode:"lab"},[,r,o,s,i]=e;if(!(r.type===y.Hue||o.type===y.Hue||s.type===y.Hue))return r.type!==y.None&&(n.l=Math.min(Math.max(0,r.value),100)),o.type!==y.None&&(n.a=o.type===y.Number?o.value:o.value*125/100),s.type!==y.None&&(n.b=s.type===y.Number?s.value:s.value*125/100),i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const no={mode:"lab",toMode:{xyz50:Qr,rgb:Jr},fromMode:{xyz50:to,rgb:eo},channels:["l","a","b","alpha"],ranges:{l:[0,100],a:[-125,125],b:[-125,125]},parse:[Ha],serialize:t=>`lab(${t.l!==void 0?t.l:"none"} ${t.a!==void 0?t.a:"none"} ${t.b!==void 0?t.b:"none"}${t.alpha<1?` / ${t.alpha}`:""})`,interpolate:{l:G,a:G,b:G,alpha:{use:G,fixup:se}}};function Oa(t,e){if(!e||e[0]!=="lch")return;const n={mode:"lch"},[,r,o,s,i]=e;if(r.type!==y.None){if(r.type===y.Hue)return;n.l=Math.min(Math.max(0,r.value),100)}if(o.type!==y.None&&(n.c=Math.max(0,o.type===y.Number?o.value:o.value*150/100)),s.type!==y.None){if(s.type===y.Percentage)return;n.h=s.value}return i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const ro={mode:"lch",toMode:{lab:De,rgb:t=>Jr(De(t))},fromMode:{rgb:t=>Ae(eo(t)),lab:Ae},channels:["l","c","h","alpha"],ranges:{l:[0,100],c:[0,150],h:[0,360]},parse:[Oa],serialize:t=>`lch(${t.l!==void 0?t.l:"none"} ${t.c!==void 0?t.c:"none"} ${t.h!==void 0?t.h:"none"}${t.alpha<1?` / ${t.alpha}`:""})`,interpolate:{h:{use:G,fixup:mn},c:G,l:G,alpha:{use:G,fixup:se}},difference:{h:wa},average:{h:gn}},oo=({r:t,g:e,b:n,alpha:r})=>{t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Math.cbrt(.412221469470763*t+.5363325372617348*e+.0514459932675022*n),s=Math.cbrt(.2119034958178252*t+.6806995506452344*e+.1073969535369406*n),i=Math.cbrt(.0883024591900564*t+.2817188391361215*e+.6299787016738222*n),a={mode:"oklab",l:.210454268309314*o+.7936177747023054*s-.0040720430116193*i,a:1.9779985324311684*o-2.42859224204858*s+.450593709617411*i,b:.0259040424655478*o+.7827717124575296*s-.8086757549230774*i};return r!==void 0&&(a.alpha=r),a},Se=t=>{let e=oo(Kr(t));return t.r===t.b&&t.b===t.g&&(e.a=e.b=0),e},ie=({l:t,a:e,b:n,alpha:r})=>{t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0);let o=Math.pow(t+.3963377773761749*e+.2158037573099136*n,3),s=Math.pow(t-.1055613458156586*e-.0638541728258133*n,3),i=Math.pow(t-.0894841775298119*e-1.2914855480194092*n,3),a={mode:"lrgb",r:4.076741636075957*o-3.3077115392580616*s+.2309699031821044*i,g:-1.2684379732850317*o+2.6097573492876887*s-.3413193760026573*i,b:-.0041960761386756*o-.7034186179359362*s+1.7076146940746117*i};return r!==void 0&&(a.alpha=r),a},Ne=t=>Yr(ie(t));function Mn(t){const r=1.170873786407767;return .5*(r*t-.206+Math.sqrt((r*t-.206)*(r*t-.206)+4*.03*r*t))}function Re(t){return(t*t+.206*t)/(1.170873786407767*(t+.03))}function Pa(t,e){let n,r,o,s,i,a,c,l;-1.88170328*t-.80936493*e>1?(n=1.19086277,r=1.76576728,o=.59662641,s=.75515197,i=.56771245,a=4.0767416621,c=-3.3077115913,l=.2309699292):1.81444104*t-1.19445276*e>1?(n=.73956515,r=-.45954404,o=.08285427,s=.1254107,i=.14503204,a=-1.2684380046,c=2.6097574011,l=-.3413193965):(n=1.35733652,r=-.00915799,o=-1.1513021,s=-.50559606,i=.00692167,a=-.0041960863,c=-.7034186147,l=1.707614701);let f=n+r*t+o*e+s*t*t+i*t*e,u=.3963377774*t+.2158037573*e,h=-.1055613458*t-.0638541728*e,m=-.0894841775*t-1.291485548*e;{let p=1+f*u,M=1+f*h,g=1+f*m,d=p*p*p,x=M*M*M,C=g*g*g,A=3*u*p*p,R=3*h*M*M,H=3*m*g*g,N=6*u*u*p,b=6*h*h*M,_=6*m*m*g,S=a*d+c*x+l*C,D=a*A+c*R+l*H,w=a*N+c*b+l*_;f=f-S*D/(D*D-.5*S*w)}return f}function vn(t,e){let n=Pa(t,e),r=ie({l:1,a:n*t,b:n*e}),o=Math.cbrt(1/Math.max(r.r,r.g,r.b)),s=o*n;return[o,s]}function Ia(t,e,n,r,o,s=null){s||(s=vn(t,e));let i;if((n-o)*s[1]-(s[0]-o)*r<=0)i=s[1]*o/(r*s[0]+s[1]*(o-n));else{i=s[1]*(o-1)/(r*(s[0]-1)+s[1]*(o-n));{let a=n-o,c=r,l=.3963377774*t+.2158037573*e,f=-.1055613458*t-.0638541728*e,u=-.0894841775*t-1.291485548*e,h=a+c*l,m=a+c*f,p=a+c*u;{let M=o*(1-i)+i*n,g=i*r,d=M+g*l,x=M+g*f,C=M+g*u,A=d*d*d,R=x*x*x,H=C*C*C,N=3*h*d*d,b=3*m*x*x,_=3*p*C*C,S=6*h*h*d,D=6*m*m*x,w=6*p*p*C,k=4.0767416621*A-3.3077115913*R+.2309699292*H-1,B=4.0767416621*N-3.3077115913*b+.2309699292*_,j=4.0767416621*S-3.3077115913*D+.2309699292*w,K=B/(B*B-.5*k*j),Y=-k*K,J=-1.2684380046*A+2.6097574011*R-.3413193965*H-1,tt=-1.2684380046*N+2.6097574011*b-.3413193965*_,nt=-1.2684380046*S+2.6097574011*D-.3413193965*w,gt=tt/(tt*tt-.5*J*nt),ft=-J*gt,st=-.0041960863*A-.7034186147*R+1.707614701*H-1,_t=-.0041960863*N-.7034186147*b+1.707614701*_,It=-.0041960863*S-.7034186147*D+1.707614701*w,Lt=_t/(_t*_t-.5*st*It),pt=-st*Lt;Y=K>=0?Y:1e6,ft=gt>=0?ft:1e6,pt=Lt>=0?pt:1e6,i+=Math.min(Y,Math.min(ft,pt))}}}return i}function yn(t,e,n=null){n||(n=vn(t,e));let r=n[0],o=n[1];return[o/r,o/(1-r)]}function so(t,e,n){let r=vn(e,n),o=Ia(e,n,t,1,t,r),s=yn(e,n,r),i=.11516993+1/(7.4477897+4.1590124*n+e*(-2.19557347+1.75198401*n+e*(-2.13704948-10.02301043*n+e*(-4.24894561+5.38770819*n+4.69891013*e)))),a=.11239642+1/(1.6132032-.68124379*n+e*(.40370612+.90148123*n+e*(-.27087943+.6122399*n+e*(.00299215-.45399568*n-.14661872*e)))),c=o/Math.min(t*s[0],(1-t)*s[1]),l=t*i,f=(1-t)*a,u=.9*c*Math.sqrt(Math.sqrt(1/(1/(l*l*l*l)+1/(f*f*f*f))));return l=t*.4,f=(1-t)*.8,[Math.sqrt(1/(1/(l*l)+1/(f*f))),u,o]}function io(t){const e=t.l!==void 0?t.l:0,n=t.a!==void 0?t.a:0,r=t.b!==void 0?t.b:0,o={mode:"okhsl",l:Mn(e)};t.alpha!==void 0&&(o.alpha=t.alpha);let s=Math.sqrt(n*n+r*r);if(!s)return o.s=0,o;let[i,a,c]=so(e,n/s,r/s),l;if(s<a){let f=0,u=.8*i,h=1-u/a;l=(s-f)/(u+h*(s-f))*.8}else{let f=a,u=.2*a*a*1.25*1.25/i,h=1-u/(c-a);l=.8+.2*((s-f)/(u+h*(s-f)))}return l&&(o.s=l,o.h=ct(Math.atan2(r,n)*180/Math.PI)),o}function ao(t){let e=t.h!==void 0?t.h:0,n=t.s!==void 0?t.s:0,r=t.l!==void 0?t.l:0;const o={mode:"oklab",l:Re(r)};if(t.alpha!==void 0&&(o.alpha=t.alpha),!n||r===1)return o.a=o.b=0,o;let s=Math.cos(e/180*Math.PI),i=Math.sin(e/180*Math.PI),[a,c,l]=so(o.l,s,i),f,u,h,m;n<.8?(f=1.25*n,u=0,h=.8*a,m=1-h/c):(f=5*(n-.8),u=c,h=.2*c*c*1.25*1.25/a,m=1-h/(l-c));let p=u+f*h/(1-m*f);return o.a=p*s,o.b=p*i,o}const za={...Ur,mode:"okhsl",channels:["h","s","l","alpha"],parse:["--okhsl"],serialize:"--okhsl",fromMode:{oklab:io,rgb:t=>io(Se(t))},toMode:{oklab:ao,rgb:t=>Ne(ao(t))}};function co(t){let e=t.l!==void 0?t.l:0,n=t.a!==void 0?t.a:0,r=t.b!==void 0?t.b:0,o=Math.sqrt(n*n+r*r),s=o?n/o:1,i=o?r/o:1,[a,c]=yn(s,i),l=.5,f=1-l/a,u=c/(o+e*c),h=u*e,m=u*o,p=Re(h),M=m*p/h,g=ie({l:p,a:s*M,b:i*M}),d=Math.cbrt(1/Math.max(g.r,g.g,g.b,0));e=e/d,o=o/d*Mn(e)/e,e=Mn(e);const x={mode:"okhsv",s:o?(l+c)*m/(c*l+c*f*m):0,v:e?e/h:0};return x.s&&(x.h=ct(Math.atan2(r,n)*180/Math.PI)),t.alpha!==void 0&&(x.alpha=t.alpha),x}function lo(t){const e={mode:"oklab"};t.alpha!==void 0&&(e.alpha=t.alpha);const n=t.h!==void 0?t.h:0,r=t.s!==void 0?t.s:0,o=t.v!==void 0?t.v:0,s=Math.cos(n/180*Math.PI),i=Math.sin(n/180*Math.PI),[a,c]=yn(s,i),l=.5,f=1-l/a,u=1-r*l/(l+c-c*f*r),h=r*c*l/(l+c-c*f*r),m=Re(u),p=h*m/u,M=ie({l:m,a:s*p,b:i*p}),g=Math.cbrt(1/Math.max(M.r,M.g,M.b,0)),d=Re(o*u),x=h*d/u;return e.l=d*g,e.a=x*s*g,e.b=x*i*g,e}const Ba={...Xr,mode:"okhsv",channels:["h","s","v","alpha"],parse:["--okhsv"],serialize:"--okhsv",fromMode:{oklab:co,rgb:t=>co(Se(t))},toMode:{oklab:lo,rgb:t=>Ne(lo(t))}};function Ta(t,e){if(!e||e[0]!=="oklab")return;const n={mode:"oklab"},[,r,o,s,i]=e;if(!(r.type===y.Hue||o.type===y.Hue||s.type===y.Hue))return r.type!==y.None&&(n.l=Math.min(Math.max(0,r.type===y.Number?r.value:r.value/100),1)),o.type!==y.None&&(n.a=o.type===y.Number?o.value:o.value*.4/100),s.type!==y.None&&(n.b=s.type===y.Number?s.value:s.value*.4/100),i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const qa={...no,mode:"oklab",toMode:{lrgb:ie,rgb:Ne},fromMode:{lrgb:oo,rgb:Se},ranges:{l:[0,1],a:[-.4,.4],b:[-.4,.4]},parse:[Ta],serialize:t=>`oklab(${t.l!==void 0?t.l:"none"} ${t.a!==void 0?t.a:"none"} ${t.b!==void 0?t.b:"none"}${t.alpha<1?` / ${t.alpha}`:""})`};function Fa(t,e){if(!e||e[0]!=="oklch")return;const n={mode:"oklch"},[,r,o,s,i]=e;if(r.type!==y.None){if(r.type===y.Hue)return;n.l=Math.min(Math.max(0,r.type===y.Number?r.value:r.value/100),1)}if(o.type!==y.None&&(n.c=Math.max(0,o.type===y.Number?o.value:o.value*.4/100)),s.type!==y.None){if(s.type===y.Percentage)return;n.h=s.value}return i.type!==y.None&&(n.alpha=Math.min(1,Math.max(0,i.type===y.Number?i.value:i.value/100))),n}const Ga={...ro,mode:"oklch",toMode:{oklab:t=>De(t,"oklab"),rgb:t=>Ne(De(t,"oklab"))},fromMode:{rgb:t=>Ae(Se(t),"oklch"),oklab:t=>Ae(t,"oklch")},parse:[Fa],serialize:t=>`oklch(${t.l!==void 0?t.l:"none"} ${t.c!==void 0?t.c:"none"} ${t.h!==void 0?t.h:"none"}${t.alpha<1?` / ${t.alpha}`:""})`,ranges:{l:[0,1],c:[0,.4],h:[0,360]}},ja=t=>Math.max(0,Math.min(1,t||0)),xn=t=>Math.round(ja(t)*255),Ka=qr("rgb"),Ya=t=>{if(t===void 0)return;let e=xn(t.r),n=xn(t.g),r=xn(t.b);return"#"+(1<<24|e<<16|n<<8|r).toString(16).slice(1)},fo=t=>Ya(Ka(t));xt(xa);const Wa=xt(no),Ua=xt(ro),Xa=xt(Ur),Za=xt(Xr),Va=xt(za),uo=xt(qa),Qa=xt(Ba),Ja=xt(Ga);function tc([t,e,n]){return fo({l:t,c:e,h:n,mode:"oklch"})}function ec([t,e,n]){return fo({l:t,a:e,b:n,mode:"oklab"})}function nc([t,e,n]){const{l:r,a:o,b:s}=uo({l:t,c:e,h:n,mode:"oklch"});return[r,o,s]}function rc([t,e,n]){const r=kn(t),o=kn(e),s=kn(n);return .2126*r+.7152*o+.0722*s}function kn(t){return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function lt(t){const e=new Map;return n=>{if(e.has(n))return e.get(n);const r=t(n);return e.set(n,r),r}}function wn(t){const e=parseInt(t.slice(1),16);return[e>>16&255,e>>8&255,e&255]}const Le=lt(t=>{const[e,n,r]=wn(t);return[e/255,n/255,r/255]}),oc=lt(t=>uc(Le(t))),kt=lt(t=>{const{l:e,a:n,b:r}=uo(t);return[e,n,r]}),sc=lt(t=>{const{h:e,s:n,l:r}=Va(t);return[e,n,r]}),ic=lt(t=>{const{h:e,s:n,v:r}=Qa(t);return[e,n,r]}),ho=lt(t=>{const{l:e,c:n,h:r}=Ja(t);return[e,n,r]}),dt=lt(t=>{const{l:e,c:n,h:r}=Ua(t);return[e,n,r]}),Ee=lt(t=>{const{l:e,a:n,b:r}=Wa(t);return[e,n,r]}),ac=lt(t=>{const{h:e,s:n,l:r}=Xa(t);return[e,n,r]}),cc=lt(t=>{const{h:e,s:n,v:r}=Za(t);return[e,n,r]});function Nt(t){return t===void 0}const mo=lt(t=>rc(Le(t)));function go(t,e){const n=mo(t),r=mo(e);if(n!==r)return n-r;const o=dt(t),s=dt(e);return o[0]!==s[0]?o[0]-s[0]:o[1]!==s[1]?o[1]-s[1]:o[2]-s[2]}function lc(t){return t.map(e=>wn(e)).flat()}function wt(t,e,n=1,r=1,o=1){return I.deltaE(t,e,n,r,o)}function po(t){return[t[0]/100,(t[1]+128)/255,(t[2]+128)/255]}function fc(t){return[Math.round(t[0]/100*255),Math.round(t[1]+128),Math.round(t[2]+128)]}function uc([t,e,n]){const r=1-Math.max(t,e,n),o=r<1?1/(1-r):0,s=(1-t-r)*o,i=(1-e-r)*o,a=(1-n-r)*o;return[s,i,a,r]}const bo=(2.016+2.045)/2;function hc([t,e,n],[r,o,s]){let i=t-r,a=bo*(e-o),c=bo*(n-s);return Math.sqrt(i**2+a**2+c**2)}function dc(t,e){if(e==="rgb")return t.map(n=>[wn(n),n]);if(e==="gl")return t.map(n=>[Le(n),n]);if(e==="oklab")return t.map(n=>[kt(n),n]);if(e==="oklch")return t.map(n=>[ho(n),n]);if(e==="okhsl")return t.map(n=>[sc(n),n]);if(e==="okhsv")return t.map(n=>[ic(n),n]);if(e==="lab")return t.map(n=>[Ee(n),n]);if(e==="lab_norm")return t.map(n=>[po(Ee(n)),n]);if(e==="lab_int")return t.map(n=>[fc(Ee(n)),n]);if(e==="lch")return t.map(n=>[dt(n),n]);if(e==="hsl")return t.map(n=>[ac(n),n]);if(e==="hsv")return t.map(n=>[cc(n),n]);if(e==="hex")return t.map(n=>[n,n]);if(e==="cmyk")return t.map(n=>[oc(n),n]);throw`Unknown model ${e}`}function V(t,e){const n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.sqrt(n*n+r*r+o*o)}function mc(t,e){const n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2],s=t[3]-e[3];return Math.sqrt(n*n+r*r+o*o+s*s)}function gc(t,e){let n=Nt(t[0])&&Nt(e[0])?0:t[0]-e[0]||0;const r=t[1]-e[1],o=t[2]-e[2];return n+=n>180?-360:n<-180?360:0,n/=180,Math.sqrt(n*n+r*r+o*o)}function pc(t,e){const n=t[0]-e[0],r=t[1]-e[1];let o=Nt(t[2])&&Nt(e[2])?0:t[2]-e[2]||0;return o+=o>180?-360:o<-180?360:0,o/=180,Math.sqrt(n*n+r*r+o*o)}function Rt(t){const e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);return e===0?[0,0,0]:[t[0]/e,t[1]/e,t[2]/e]}function mt(t,e){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function Zt(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Mo(t){const e=t.reduce((n,r)=>[n[0]+r[0],n[1]+r[1],n[2]+r[2]],[0,0,0]);return[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function T(t,e){return t[0]!==e[0]?t[0]-e[0]:t[1]!==e[1]?t[1]-e[1]:t[2]-e[2]}function Vt(t,e){return t[1]!==e[1]?t[1]-e[1]:t[2]!==e[2]?t[2]-e[2]:t[0]-e[0]}function Cn(t,e){return t[2]!==e[2]?(t[2]??0)-(e[2]??0):t[1]!==e[1]?t[1]-e[1]:t[0]-e[0]}const vo={};function yo(t){const e=t.name||t.toString(),n=vo[e]=vo[e]||new Map;return(r,o)=>{const s=[r,o].sort().join("|");let i=n.get(s);return i===void 0&&(i=t(r,o),n.set(s,i)),i}}function bc(t){return t.at(-1)==="h"?pc:t.at(-3)==="h"?gc:t==="oklab"?hc:t==="cmyk"?mc:V}function z(t,e,n="gl",r,o){const s=new Map;let i=bc(n),a=i;typeof a!="function"&&(a.color?a=((g,d,...x)=>i.fn(h(g),h(d),...x)):a=i.fn);let c=r,l=c;l&&typeof l!="function"&&(l.color?l=((g,d,...x)=>c.fn(h(g),h(d),...x)):l=c.fn);const f=dc(t,n);for(const[g,d]of f)s.set(g,d);function u(g){return g.map(d=>s.get(d))}function h(g){return s.get(g)}const m={distance:yo(a),delta:l?yo(l):void 0,toColors:u,toColor:h},p=[...s.keys()];return e.call(m,p)?.map(g=>s.get(g))}function xo([t,e,n]){let r=0;for(let o=7;o>=0;o--){const s=1<<o,i=t&s?1:0,a=e&s?1:0,c=n&s?1:0;r=r<<3|Mc([i,a,c])}return r}function Mc([t,e,n]){return t<<2|e<<1|n}function vc(t){const e=new Map;return[...t].sort((n,r)=>{let o,s;return e.has(n)?o=e.get(n):(o=xo(n),e.set(n,o)),e.has(r)?s=e.get(r):(s=xo(r),e.set(r,s)),o-s})}function ko(t,e="rgb"){const n=[...t].sort();return z(n,r=>vc(r),e)}ko.params=[{name:"model",values:["rgb","lab_int"]}];class yc{populationSize;generations;maxStagnation;mutationRate;crossoverRate;eliteSize;tournamentSize;random;fitnessFunc;seedFunc;fitnessCompare;onGeneration;population;currentGeneration;bestIndividual;bestFitness;peakGeneration;constructor(e){this.populationSize=e.populationSize||100,this.generations=e.generations||200,this.maxStagnation=e.maxStagnation||20,this.mutationRate=e.mutationRate||.1,this.crossoverRate=e.crossoverRate||.9,this.eliteSize=e.eliteSize||5,this.tournamentSize=e.tournamentSize||5,this.random=e.random||Math.random,this.fitnessFunc=e.fitness||(()=>0),this.seedFunc=e.seed,this.fitnessCompare=e.compare||((n,r)=>r-n),this.onGeneration=e.onGeneration,this.population=[],this.currentGeneration=0,this.bestIndividual=null,this.bestFitness=-1/0,this.peakGeneration=0}initializePopulation(){this.population=[];for(let e=0;e<this.populationSize;e++){const n=this.seedFunc(),r=this.fitnessFunc(n);this.population.push({genome:n,fitness:r})}this.sortPopulation(),this.updateBest()}sortPopulation(){this.population.sort((e,n)=>this.fitnessCompare(e.fitness,n.fitness))}updateBest(){(this.bestFitness===-1/0||this.fitnessCompare(this.population[0].fitness,this.bestFitness)<0)&&(this.peakGeneration=this.currentGeneration,this.bestFitness=this.population[0].fitness,this.bestIndividual=[...this.population[0].genome])}tournamentSelect(){const e=[];for(let n=0;n<this.tournamentSize;n++){const r=Math.floor(this.random()*this.population.length);e.push(this.population[r])}return e.sort((n,r)=>this.fitnessCompare(n.fitness,r.fitness)),e[0]}orderCrossover(e,n){const r=e.length,o=Math.floor(this.random()*r),s=o+Math.floor(this.random()*(r-o)),i=Array(r);for(let f=o;f<=s;f++)i[f]=e[f];const a=new Set(i.slice(o,s+1)),c=[];for(let f=0;f<r;f++){const u=n[f];a.has(u)||c.push(u)}let l=0;for(let f=0;f<r;f++)i[f]===void 0&&(i[f]=c[l],l++);return i}swapMutate(e){const n=[...e],r=Math.floor(this.random()*n.length),o=Math.floor(this.random()*n.length);return[n[r],n[o]]=[n[o],n[r]],n}shiftMutate(e){const n=[...e];return n.push(n.shift()),n}cheatMutate(e){let n=this.shiftMutate(e),r=n,o=this.fitnessFunc(r);for(let i=1;i<e.length;i++){n=this.shiftMutate(n);const a=this.fitnessFunc(n);this.fitnessCompare(a,o)<0&&(o=a,r=n)}const s=[...r].reverse();return this.fitnessCompare(o,this.fitnessFunc(s))<0?s:r}evolve(){const e=[];for(let n=0;n<this.eliteSize;n++)e.push({genome:[...this.population[n].genome],fitness:this.population[n].fitness});for(;e.length<this.populationSize;){const n=this.tournamentSelect(),r=this.tournamentSelect();let o;if(this.random()<this.crossoverRate?o=this.orderCrossover(n.genome,r.genome):o=[...n.genome],this.random()<this.mutationRate){const i=this.random();i<.5?o=this.swapMutate(o):i<.7?o=this.shiftMutate(o):i<.9?o=[...o].reverse():o=this.cheatMutate(o)}const s=this.fitnessFunc(o);e.push({genome:o,fitness:s})}this.population=e,this.sortPopulation(),this.updateBest()}run(){this.initializePopulation();for(let e=0;e<this.generations&&(this.currentGeneration=e,this.onGeneration&&this.onGeneration({generation:e,bestFitness:this.population[0].fitness,bestGenome:this.population[0].genome,averageFitness:this.population.reduce((n,r)=>n+(typeof r.fitness=="number"?r.fitness:0),0)/this.population.length}),!(this.currentGeneration>this.peakGeneration+this.maxStagnation));e++)this.evolve();return{bestGenome:this.cheatMutate(this.bestIndividual),bestFitness:this.bestFitness,finalPopulation:this.population,peakGeneration:this.peakGeneration}}}function ae(t){if(t.length<2)return{totalDistance:0,avgAngleChange:0,maxAngleChange:0,meanDistance:0,devDistance:0};let e=0,n=[],r=null;const o=[];for(let l=1;l<t.length;l++){const f=V(t[l-1],t[l]);e+=f,o.push(f);const u=Rt(mt(t[l],t[l-1]));if(r&&f>0){const h=Math.max(-1,Math.min(1,Zt(r,u))),m=Math.acos(h)*(180/Math.PI);n.push(m)}r=u}const s=e/(t.length-1),i=Math.sqrt(o.reduce((l,f)=>l+Math.pow(f-s,2),0)/(t.length-1)),a=n.length>0?n.reduce((l,f)=>l+f,0)/n.length:0,c=n.length>0?Math.max(...n):0;return{totalDistance:e,avgAngleChange:a,maxAngleChange:c,meanDistance:s,devDistance:i}}function xc(t){let e=0;for(let n=0;n<t.length-1;n++){const r=kt(t[n]),o=kt(t[n+1]);e+=V(r,o)}return-e}function kc(t,e){return e-t}function wc(t){return wo(t,xc,kc)}function wo(t,e,n){let r=1;const o=[...t].sort(),s=()=>(r=r*16807%2147483647,r/2147483647),i=Math.min(40,Math.max(10,t.length))*5,a=t.length<50?250:Math.floor(31250*64/(i*t.length));return new yc({populationSize:i,generations:a,maxStagnation:t.length<50?20:10,mutationRate:.5,crossoverRate:.9,eliteSize:5,random:s,fitness:e,compare:n,seed:()=>[...o].sort(()=>s()-.5)}).run().bestGenome}function Cc(t){const e=t.map(s=>kt(s)),{avgAngleChange:n,maxAngleChange:r,totalDistance:o}=ae(e);return[-o,-n,-r]}function _c(t,e,n=.01){for(let r=0;r<t.length;r++){const o=(t[r]+e[r])/2,s=Math.abs(o*n),i=e[r]-t[r];if(Math.abs(i)>s)return i}return e[0]-t[0]}function Ac(t){return wo(t,Cc,_c)}function _n(t,e){let n=!0;for(;n;){n=!1;for(let r=0;r<t.length-2;r++)for(let o=r+1;o<t.length-1;o++){const s=e(t[r],t[r+1])+e(t[o],t[o+1]);e(t[r],t[o])+e(t[r+1],t[o+1])<s&&(t=[...t.slice(0,r+1),...t.slice(r+1,o+1).reverse(),...t.slice(o+1)],n=!0)}}return t}function Dc(t){const e=t.reduce((n,r)=>[n[0]+r[0],n[1]+r[1],n[2]+r[2]],[0,0,0]);return[e[0]/t.length,e[1]/t.length,e[2]/t.length]}function Sc(t,e){const n=t.length,r=[[0,0,0],[0,0,0],[0,0,0]];for(const o of t){const s=mt(o,e);for(let i=0;i<3;i++)for(let a=0;a<3;a++)r[i][a]+=s[i]*s[a]/n}return r}function Nc(t){let e=[1,1,1];for(let n=0;n<100;n++){const r=[t[0][0]*e[0]+t[0][1]*e[1]+t[0][2]*e[2],t[1][0]*e[0]+t[1][1]*e[1]+t[1][2]*e[2],t[2][0]*e[0]+t[2][1]*e[1]+t[2][2]*e[2]];e=Rt(r)}return e}function Rc(t){if(t.length===0)return[];const e=Dc(t),n=Sc(t,e),r=Nc(n);return[...t].sort((o,s)=>{const i=Zt(mt(o,e),r),a=Zt(mt(s,e),r);return i-a})}function Lc(t){const e=t.length,n=t.reduce((o,s)=>[o[0]+s[0],o[1]+s[1],o[2]+s[2]],[0,0,0]).map(o=>o/e);return t.reduce((o,s)=>[o[0]+(s[0]-n[0])**2,o[1]+(s[1]-n[1])**2,o[2]+(s[2]-n[2])**2],[0,0,0]).map(o=>Math.sqrt(o/e)||1e-6)}function Co(t){const e=Lc(t);return(n,r)=>Math.hypot((n[0]-r[0])/e[0],(n[1]-r[1])/e[1],(n[2]-r[2])/e[2])}function _o(t,e,n="raw"){return z(t,function(r){const o=[...r].sort(e.at(-3)?Vt:T),s=Rc(o);if(n==="raw")return s;let i=this.distance,a=this.toColor;if(n==="tsp-adapt")if(e==="oklab")i=Co(o);else{const c=t.map(f=>kt(f)),l=Co(c);i=(f,u)=>l(kt(a(f)),kt(a(u)))}return _n(s,i)},e)}_o.params=[{name:"model",values:["gl","lab","oklab"]},{name:"post",values:["raw","tsp","tsp-adapt"]}];function Ec(t,e="hsl",n="bottom-up"){return t.map(o=>({vec:o,hsl:e.at(-1)==="h"?[...o].reverse():o})).sort((o,s)=>{let[i,a,c]=o.hsl,[l,f,u]=s.hsl;switch(i=i||0,l=l||0,n){case"bottom-up":return Math.abs(c-u)>.05?c-u:Math.abs(i-l)>5?i-l:a-f;case"top-down":return Math.abs(c-u)>.05?u-c:Math.abs(i-l)>5?i-l:a-f;case"outward":return Math.abs(a-f)>.05?a-f:Math.abs(i-l)>5?i-l:c-u;case"inward":return Math.abs(a-f)>.05?f-a:Math.abs(i-l)>5?i-l:c-u;default:return 0}}).map(o=>o.vec)}function Ao(t,e="hsl",n="bottom-up"){return z(t,function(r){const o=e.at(-3)?Vt:T,s=[...r].sort(o);return Ec(s,e,n)},e)}Ao.params=[{name:"model",values:["hsl","hsv","lch","okhsl","okhsv","oklch"]},{name:"mode",values:["outward","inward","bottom-up","top-down"]}];function $c(t,e="hsl",n="ascending"){const r=t.map(o=>{const s=e.at(-1)==="h"?[...o].reverse():o,i=(s[2]||0)*360+s[0];return{vec:o,hsl:s,spiralParam:i}});return r.sort((o,s)=>{const i=n==="ascending"?o.spiralParam-s.spiralParam:s.spiralParam-o.spiralParam;return Math.abs(i)<1?o.hsl[1]-s.hsl[1]:i}),r.map(o=>o.vec)}function Do(t,e="hsl",n="ascending"){return z(t,function(r){const o=e.at(-3)?Vt:T,s=[...r].sort(o);return $c(s,e,n)},e)}Do.params=[{name:"model",values:["hsl","hsv","lch","okhsl","okhsv","oklch"]},{name:"direction",values:["ascending"]}];function So(t=1){let e=t;return()=>(e=e*16807%2147483647,e/2147483647)}function Hc(t,e){return $e(t,e)[0]}function $e(t,e){const n=[];for(let r=0;r<t.length;r++)for(let o=r+1;o<t.length;o++){const s=t[r][0]-t[o][0],i=t[r][1]-t[o][1],a=t[r][2]-t[o][2],c=Math.sqrt(s*s+i*i+a*a);n.push({data:[t[r],t[o]],dist:c})}return n.sort((r,o)=>{if(r.dist!==o.dist)return r.dist-o.dist;const s=[...r.data].sort(e),i=[...o.data].sort(e);return e(s[0],i[0])}),n.map(r=>r.data)}function An(t,e){if(t.length===2)return[...t];let n=-1/0,r=null,o=null,s=null;for(let i=0;i<t.length;i++)for(let a=0;a<t.length;a++)if(a!==i)for(let c=0;c<t.length;c++){if(c===i||c===a)continue;const l=Rt(mt(t[a],t[i])),f=Rt(mt(t[c],t[a])),u=Zt(l,f);u>n&&(n=u,r=t[i],o=t[a],s=t[c])}return e.distance(r,o)<e.distance(o,s)?s=o:r=o,[r,s]}function Oc(t,e,n="average"){switch(n){case"single":let r=1/0;for(const s of t.colors)for(const i of e.colors)r=Math.min(r,V(s,i));return r;case"complete":let o=0;for(const s of t.colors)for(const i of e.colors)o=Math.max(o,V(s,i));return o;default:return V(t.centroid,e.centroid)}}function Pc(t,e="average"){let n=t.map(r=>({colors:[r],centroid:r,distance:0}));for(;n.length>1;){let r=1/0,o=0,s=1;for(let a=0;a<n.length;a++)for(let c=a+1;c<n.length;c++){const l=Oc(n[a],n[c],e);l<r&&(r=l,o=a,s=c)}const i={colors:[...n[o].colors,...n[s].colors],left:n[o],right:n[s],centroid:Mo([...n[o].colors,...n[s].colors]),distance:r};n=n.filter((a,c)=>c!==o&&c!==s),n.push(i)}return n[0]}function Ct(t,e="balanced"){if(!t.left&&!t.right||!t.left||!t.right)return t.colors;switch(e){case"depth-first":return[...Ct(t.left,e),...Ct(t.right,e)];case"breadth-first":return t.left.colors.length<=t.right.colors.length?[...Ct(t.left,e),...Ct(t.right,e)]:[...Ct(t.right,e),...Ct(t.left,e)];default:const n=Ct(t.left,e),r=Ct(t.right,e),o=V(n[n.length-1],r[0]),s=V(r[r.length-1],n[0]);return o<=s?[...n,...r]:[...r,...n]}}function Ic(t,e="average",n="balanced"){if(t.length===0)return[];if(t.length===1)return t;const r=Pc(t,e);return Ct(r,n)}function zc(t,e,n){return[...t].sort(()=>n()-.5).slice(0,e)}function Bc(t,e){return t.map(n=>{let r=1/0,o=0;return e.forEach((s,i)=>{const a=V(n,s);a<r&&(r=a,o=i)}),o})}function Tc(t,e,n,r){const o=[];for(let s=0;s<n;s++){const i=t.filter((a,c)=>e[c]===s);i.length>0?o.push(Mo(i)):o.push(t[Math.floor(r()*t.length)])}return o}function qc(t,e=8,n=50){if(t.length===0)return[];if(t.length<=e)return t;const r=So();let o=zc(t,e,r),s=[];for(let l=0;l<n;l++){const f=Bc(t,o);if(JSON.stringify(f)===JSON.stringify(s))break;s=f,o=Tc(t,s,e,r)}const i=Array.from({length:e},()=>[]);t.forEach((l,f)=>{i[s[f]].push(l)});const a=i.map((l,f)=>({cluster:l,centroid:o[f]})).filter(l=>l.cluster.length>0).sort((l,f)=>{const u=l.centroid[0]+l.centroid[1]+l.centroid[2],h=f.centroid[0]+f.centroid[1]+f.centroid[2];return u-h}),c=[];for(const{cluster:l,centroid:f}of a){const u=l.sort((h,m)=>V(h,f)-V(m,f));c.push(...u)}return c}function No(t,e,n){const r=[],o=t[e];return t.forEach((s,i)=>{V(o,s)<=n&&r.push(i)}),r}function Fc(t,e=30,n=3){if(t.length===0)return[];const r=new Set,o=[],s=[];t.forEach((a,c)=>{if(r.has(c))return;r.add(c);const l=No(t,c,e);if(l.length<n)s.push(c);else{const f=[],u=[...l];for(;u.length>0;){const h=u.shift();if(!r.has(h)){r.add(h);const m=No(t,h,e);m.length>=n&&u.push(...m)}f.push(h)}o.push(f)}}),o.sort((a,c)=>{const l=a.reduce((u,h)=>{const m=t[h];return u+m[0]+m[1]+m[2]},0)/a.length,f=c.reduce((u,h)=>{const m=t[h];return u+m[0]+m[1]+m[2]},0)/c.length;return l-f});const i=[];for(const a of o){const c=new Set(a),l=[];let f=a[0];for(l.push(f),c.delete(f);c.size>0;){let u=-1,h=1/0;for(const m of c){const p=V(t[f],t[m]);p<h&&(h=p,u=m)}if(u!==-1)l.push(u),c.delete(u),f=u;else break}i.push(...l.map(u=>t[u]))}return i.push(...s.map(a=>t[a])),i}const Dn={rgb:"gl",lab:"lab_norm"};function Ro(t,e="rgb",n="average",r="balanced"){return z(t,o=>{const s=[...o].sort(T);return Ic(s,n,r)},Dn[e]||e)}Ro.params=[{name:"modes",values:["rgb","lab","oklab"]},{name:"linkage",values:["single","complete","average"]},{name:"traversal",values:["depth-first","breadth-first","balanced"]}];function Lo(t,e="rgb",n=.5,r=50){return z(t,o=>{const s=[...o].sort(T);return qc(s,Math.ceil(n*o.length),r)},Dn[e]||e)}Lo.params=[{name:"modes",values:["rgb","lab","oklab"]},{name:"k",values:[.3,.5,.7]},{name:"iterations",values:[10,50,100,250]}];function Eo(t,e="rgb",n=.3,r=3){const o=e.at(-3)==="h"?Vt:T;return z(t,s=>{const i=[...s].sort(T),[a,c]=$e(i,o).at(-1),l=V(a,c)*n;return Fc(i,l,r)},Dn[e]||e)}Eo.params=[{name:"modes",values:["rgb","lab","oklab"]},{name:"eps",values:[.3,.5]},{name:"pts",values:[3,5,7]}];function Gc(t,e){if(t.length===0)return[];if(t.length===1)return t;const{selectStart:n,distance:r,compareColors:o}=e,s=new Map;for(const l of t)s.set(l,t.filter(f=>f!==l));let i=n(t);const a=[i],c=new Set([i]);for(;a.length<t.length;){const f=s.get(i).filter(m=>!c.has(m));let u=f[0],h=r(i,u);for(let m=1;m<f.length;m++){const p=f[m],M=r(i,p);(M<h||M===h&&o(p,u)<0)&&(h=M,u=p)}i=u,c.add(i),a.push(i)}return a}function Sn(t,e="rgb",n="bright",r="euclidean"){return z(t,function(o){const{toColors:s}=this;function i(c){const l=s(c),f=l.reduce((u,h)=>go(h,u)>0?h:u);return c[l.indexOf(f)]}function a(c){const l=s(c),f=l.reduce((u,h)=>go(h,u)<0?h:u);return c[l.indexOf(f)]}return Gc(o,{selectStart:n==="bright"?i:a,distance:r==="euclidean"?this.distance:this.delta,compareColors:e.at(-3)==="h"?Vt:T})},e,{fn:wt,color:!0})}Sn.params=[{name:"model",values:["hsl","hsv","oklch","oklab","okhsl","okhsv","lch","lab","rgb","cmyk"]},{name:"start",values:["bright","dark"]}];function $o(t,e="bright"){return Sn(t,"rgb",e,"delta")}$o.params=[{name:"start",values:["bright","dark"]}];function jc(t){let e=0,n=0,r=0;for(const[f,u,h]of t)e+=f,n+=u,r+=h||0;const o=e/t.length,s=n/t.length,i=r/t.length;let a=0,c=0,l=0;for(const[f,u,h]of t){const m=Math.abs(f-o)/(f+o)||0,p=Math.abs(u-s)/(u+s)||0,M=Math.abs(h-i)/(h+i)||0;a+=m,c+=p,l+=M}return[a,c,l]}function Nn(t){const e=t.reduce((a,[c])=>a+c,0)/t.length,n=t.reduce((a,[,c])=>a+c,0)/t.length,r=Kc(t.map(([,,a])=>a).filter(a=>!Nt(a))),o=t.reduce((a,[c])=>a+Math.pow(c-e,2),0)/t.length,s=t.reduce((a,[,c])=>a+Math.pow(c-n,2),0)/t.length,i=Yc(t.map(([,,a])=>a).filter(a=>!Nt(a)),r);return{L:Math.sqrt(o),C:Math.sqrt(s),H:Math.sqrt(i),meanL:e,meanC:n,meanH:r}}function Kc(t){if(t.length===0)return 0;const e=t.filter(s=>!Nt(s)).map(s=>s*Math.PI/180),n=e.reduce((s,i)=>s+Math.sin(i),0),r=e.reduce((s,i)=>s+Math.cos(i),0);let o=Math.atan2(n/t.length,r/t.length)*(180/Math.PI);return o<0&&(o+=360),o}function Yc(t,e){return t.length===0?0:t.map(r=>{let o=r-e;return o>180&&(o-=360),o<-180&&(o+=360),o*o}).reduce((r,o)=>r+o,0)/t.length}function Ho(t){const e=Math.max(Number.EPSILON,t.L+t.C+(t.H??0));return{Kl:(e-t.L)/(2*e),Kc:(e-t.C)/(2*e),Kh:(e-t.H)/(2*e)}}function Rn(t){const e=Nn(t),n=t.map(([c])=>c),r=t.map(([,c])=>c),o=Math.max(...n)-Math.min(...n),s=Math.max(...r)-Math.min(...r),i=Oo(t),a={...e,lightnessRange:o,chromaRange:s,hueSpread:i};return i>180&&e.H>70&&e.L<80?{Kl:.5,Kc:1,Kh:2,type:"Rainbow",data:a}:o>50&&e.L>20&&i<30?{Kl:2,Kc:.5,Kh:.5,type:"Monochromatic",data:a}:s>50&&e.C>15&&i<60?{Kl:.5,Kc:2,Kh:1,type:"Wide Chroma",data:a}:e.H<15&&e.L<15&&e.C<15?{Kl:1.2,Kc:1.2,Kh:1.2,type:"Uniform",data:a}:{Kl:1,Kc:1,Kh:1,type:"Balanced",data:a}}function Wc(t){if(t.length===0)return 0;const e=[...t].sort((o,s)=>o-s);let n=0;for(let o=0;o<e.length-1;o++){const s=e[o+1]-e[o];n=Math.max(n,s)}const r=360-(e[e.length-1]-e[0]);return n=Math.max(n,r),360-n}function Oo(t){return Wc(t.map(([,,e])=>e).filter(e=>!Nt(e)))}function ce(t,e){const n=new Map;for(let i=0;i<t.length;i++){const a=new Set;for(let c=0;c<t.length;c++)i!==c&&a.add({color:t[c],distance:e(t[i],t[c])});n.set(t[i],a)}const r=[],o=new Set;function s(i){r.push(i),o.add(i);const a=[...n.get(i)].sort((c,l)=>c.distance-l.distance);for(const c of a)o.has(c.color)||s(c.color)}return s(t[0]),r}function Po(t,e="raw"){return z(t,function(n){const r=[...n].sort(),o=ce(r,this.delta);return e==="raw"?o:_n(o,this.delta)},"hex",wt)}Po.params=[{name:"post",values:["raw","tsp"]}];function Uc(t){return z(t,function(e){const n=[...e].sort(T),r=jc(n);return ce(n,(o,s)=>this.delta(o,s,...r))},"lch",{fn:wt,color:!0})}function Xc(t){const e=t.map(i=>dt(i)),{Kl:n,Kc:r,Kh:o}=Rn(e),s=[n,r,o];return z(t,function(i){const a=[...i].sort();return ce(a,(c,l)=>this.delta(c,l,...s))},"hex",wt)}function Zc(t){const e=t.map(a=>dt(a)),n=Nn(e),{Kc:r,Kh:o,Kl:s}=Ho(n),i=[s,r,o];return z(t,function(a){const c=[...a].sort();return ce(c,(l,f)=>this.delta(l,f,...i))},"hex",wt)}function Vc(t){const e=t.map(a=>dt(a)),n=Nn(e),{Kc:r,Kh:o,Kl:s}=Ho(n),i=[s,r,o+.5];return z(t,function(a){const c=[...a].sort();return ce(c,(l,f)=>this.delta(l,f,...i))},"hex",wt)}function Ln(t,e,n,r,o=1e6){const s=r(t,e),i=Rt(mt(e,t));let a=s;if(n){const l=(1-Zt(n,i))*o;a=s*(1+l)}return{score:a,direction:i}}function En(t,e,n,r,o,s=1e6){const i=o(t,e),a=r(t,e)*i/128,c=Rt(mt(e,t));let l=a;if(n){const u=(1-Zt(n,c))*s;l=a*(1+u)}return{score:l,direction:c}}function Qt(t,e,n){const r=new Set(t),o=[];let[s,i]=e;o.push(s,i),r.delete(s),r.delete(i);let a=Rt(mt(s,i)),c=Rt(mt(i,s));for(;r.size>0;){let l=[];for(const u of r){const h=n(s,u,a),m=n(i,u,c),p=Math.min(h.score,m.score);l.push({candidate:u,scoreStart:h,scoreEnd:m,minScore:p})}l.sort((u,h)=>u.minScore-h.minScore);const f=l[0];f.scoreStart.score<=f.scoreEnd.score?(o.unshift(f.candidate),a=f.scoreStart.direction,s=f.candidate):(o.push(f.candidate),c=f.scoreEnd.direction,i=f.candidate),r.delete(f.candidate)}return o}function Qc(t){return z(t,function(e){const n=[...e].sort(T),r=(o,s,i)=>Ln(o,s,i,this.distance);return Qt(n,Hc(n,T),r)},"oklab")}function Io(t,e="raw"){return z(t,function(n){const r=[...n].sort(T),o=$e(r,T).slice(0,128),s=(a,c,l)=>Ln(a,c,l,this.distance),i=o.map(a=>{const c=Qt(r,a,s);return{vectors:c,metrics:ae(this.toColors(c))}});return i.sort((a,c)=>a.metrics.totalDistance-c.metrics.totalDistance),e==="tsp"?_n(i[0].vectors,this.distance):i[0].vectors},"oklab")}Io.params=[{name:"post",values:["raw","tsp"]}];function Jc(t){return z(t,function(e){const n=[...e].sort(T),r=$e(n,T).slice(0,128),o=(a,c)=>this.delta(a,c),s=(a,c,l)=>En(a,c,l,this.distance,o),i=r.map(a=>{const c=Qt(n,a,s);return{vectors:c,metrics:ae(this.toColors(c))}});return i.sort((a,c)=>a.metrics.totalDistance-c.metrics.totalDistance),i[0].vectors},"oklab",{fn:wt,color:!0})}function t0(t){return z(t,function(e){const n=[...e].sort(T),r=(o,s,i)=>Ln(o,s,i,this.distance);return Qt(n,An(n,this),r)},"oklab")}function e0(t){return z(t,function(e){const n=[...e].sort(T),r=(s,i)=>this.delta(s,i),o=(s,i,a)=>En(s,i,a,this.distance,r);return Qt(n,An(n,this),o)},"oklab",{fn:wt,color:!0})}function n0(t){const e=t.map(i=>dt(i)),{Kl:n,Kc:r,Kh:o}=Rn(e),s=[n,r,o];return z(t,function(i){const a=[...i].sort(T),c=(f,u)=>this.delta(f,u,...s),l=(f,u,h)=>En(f,u,h,this.distance,c);return Qt(a,An(a,this),l)},"oklab",{fn:wt,color:!0})}const r0={Original:0,SPI:1,CYL:1,HIL:2,KM:2,DBSCAN:2,HARM:3,HARMED:3,"NNA(DE) Lab":3,"NNA(DE+) Lab":3,"NNA(DE++) Lab":3,"NNA(DE+1) Lab":3,"NNA(DE+2) Lab":3,"MOM(Closest)-Oklab":3,PCA:3,CL:3,"MOM(Inlinest)-Oklab":4,"MOM(Inlinest,DE)-Oklab":4,"MOM(Inlinest,DE++)-Oklab":4,"MOM(Closest+)-Oklab":5,"MOM(Closest+,DE)-Oklab":5,"GEN-Oklab":5,"GEN3-Oklab":5,_TOTAL:70};function o0(t,e=12,n=.05){const r=[],o=[];for(const c of t)c[1]<n||c[2]===void 0?r.push(c):o.push(c);r.sort(([c],[l])=>c-l);const s=360/e,i=Array.from({length:e},()=>[]);for(const c of o){const l=Math.floor(c[2]/s)%e;i[l].push(c)}i.forEach(c=>{c.sort(([l,f],[u,h])=>{const m=h-f;return Math.abs(m)>.02?m:u-l})});const a=i.flat();return[...r,...a]}function s0(t,e=25,n=.05){const r=t.filter(([,f,u])=>f<n||u===void 0),o=t.filter(([,f,u])=>f>=n&&u!==void 0);if(o.length===0)return r.length>0?[r]:[];const s=[...o].sort(Cn),i=[];for(let f=0;f<s.length;f++){const u=s[f][2],h=s[(f+1)%s.length][2];let m;f===s.length-1?m=360-u+h:m=h-u,m>=e&&i.push({index:f,size:m})}if(i.length===0)return r.length>0?[r,s]:[s];i.sort((f,u)=>u.size-f.size);const a=[],c=i.map(f=>f.index).sort((f,u)=>f-u);let l=0;for(const f of c){const u=s.slice(l,f+1);u.length>0&&a.push(u),l=f+1}return l<s.length&&a.push(s.slice(l)),r.length>0&&a.unshift(r),a}function i0(t,e=25,n=.05,r="cl"){return s0(t,e,n).map(i=>i.every(([,c,l])=>c<n||l===void 0)?[...i].sort(T):[...i].sort((c,l)=>{const f=c[2]-l[2];if(Math.abs(f)>2)return f;if(r==="cl"){const u=l[1]-c[1];return Math.abs(u)>.02?u:l[0]-c[0]}else{const u=l[0]-c[0];return Math.abs(u)>.05?u:l[1]-c[1]}})).flat()}function a0(t,e){const n=Math.abs(t[2]-e[2]),r=Math.min(n,360-n),o=1,s=2.5,i=2,a=(t[0]-e[0])*o,c=(t[1]-e[1])*s,l=r/180*i;return Math.sqrt(a*a+c*c+l*l)}function c0(t){if(t.length===0)return[];const e=[],n=[...t].sort(Cn);let r=0,o=-1/0;for(const s of n){const i=n.indexOf(s),a=s[0]*10-s[1]*5;a>o&&(o=a,r=i)}for(e.push(n[r]),n.splice(r,1);n.length>0;){const s=e[e.length-1];let i=0,a=1/0;n.forEach((c,l)=>{const f=a0(s,c);f<a&&(a=f,i=l)}),e.push(n[i]),n.splice(i,1)}return e}function l0(t){return[...t].sort((e,n)=>{const r=u=>u<.08?0:u<.25?1:u<.5?2:3,o=r(e[1]),s=r(n[1]);if(o!==s)return o-s;if(o===0)return n[0]-e[0];const i=u=>(u+40)%360,a=i(e[2]),c=i(n[2]),l=a-c;if(Math.abs(l)>5)return l;const f=n[0]-e[0];return Math.abs(f)>.03?f:n[1]-e[1]})}function f0(t){return[...t].sort((e,n)=>{const o=e[1]<.03,s=n[1]<.03;if(o!==s)return o?-1:1;if(o)return n[0]-e[0];const i=d=>d>=268&&d<272?0:d>=355?55+(d-355):d>=310&&d<355?5+(d-310):d>=0&&d<30?60+d:d>=30&&d<110?90+(d-30):d>=110&&d<180?170+(d-110):d>=180&&d<220?240+(d-180):d>=220&&d<268?280+(d-220):d>=272&&d<310?328+(d-272):1e3+d,a=i(e[2]),c=i(n[2]),l=a-c,f=(d,x)=>d<5?0:d>=5&&d<50?x<.25?1:7:d>=50&&d<90?2:d>=90&&d<170?3:d>=170&&d<240?4:d>=240&&d<280?5:d>=280&&d<328?6:8,u=f(a,e[1]),h=f(c,n[1]);if(u!==h)return u-h;const m=d=>d<.25?2:d<.5?1:0,p=m(e[1]),M=m(n[1]);if(p!==M)return p-M;if(u===1&&p===2||p===0){const d=n[0]-e[0];return Math.abs(d)>.01?d:Math.abs(l)>1?l:n[1]-e[1]}if(Math.abs(l)>5)return l;const g=n[0]-e[0];return Math.abs(g)>.01?g:n[1]-e[1]})}function u0(t){return[...t].sort((e,n)=>{const r=e[1]<.03||e[2]===void 0,o=n[1]<.03||n[2]===void 0;if(r!==o)return r?-1:1;if(r)return n[0]-e[0];const s=g=>(g-270+360)%360,i=s(e[2]),a=s(n[2]),c=g=>Math.floor(g/40),l=c(i),f=c(a),u=g=>g<.15?0:g<.3?1:g<.5?2:g<.7?3:4,h=u(e[1]),m=u(n[1]);if(l!==f)return l-f;const p=m-h;if(Math.abs(p)>0)return p;const M=n[0]-e[0];return Math.abs(M)>.01?M:Math.abs(i-a)>1?i-a:n[1]-e[1]})}function h0(t){return[...t].sort((e,n)=>{const r=e[1]<.03,o=n[1]<.03;if(r!==o)return r?-1:1;if(r)return n[0]-e[0];const s=c=>{const l=(c[2]-270+360)%360/360,f=Math.min(c[1],1),u=c[0];return l*1e3+(1-f)*100+(1-u)*10},i=s(e),a=s(n);return i-a})}function d0(t,e=.03,n=40,r=270,o="vivid"){return[...t].sort(Cn).sort((s,i)=>{const a=s[1]<e||s[2]===void 0,c=i[1]<e||i[2]===void 0;if(a!==c)return a?-1:1;if(a)return T(i,s);const l=A=>(A-r+360)%360,f=l(s[2]),u=l(i[2]),h=A=>Math.floor(A/n),m=h(f),p=h(u),M=A=>A<.15?0:A<.3?1:A<.5?2:A<.7?3:4,g=M(s[1]),d=M(i[1]);if(m!==p)return m-p;const x=o==="vivid"?d-g:g-d;if(x!==0)return x;const C=i[0]-s[0];return Math.abs(C)>.01?C:Math.abs(f-u)>1?f-u:i[1]-s[1]})}function zo(t,e=3){let n=[...t].sort((o,s)=>o[0]-s[0]);const r=Array.from({length:e},(o,s)=>[n[s]]);for(r.sort((o,s)=>o[0][2]-s[0][2]),n=n.slice(e);n.length;){const o=n.shift();let s=1/0,i=-1;for(let a=0;a<e;a++){const c=r[a].at(-1),l=r[a].at(-2);let f;if(l){const u=l[2],h=c[2]-u,m=c[2]+h;f=Math.pow(m-o[2],2)}else f=Math.pow(c[2]-o[2],2);f<s&&(s=f,i=a)}i===-1&&(i=0),r[i].push(o)}return r.flat()}function m0(t,e=72){const n=t.map(a=>a[2]),r=Array.from({length:e}).fill(0);for(const a of n){const c=Math.floor(a/360*e)%e;r[c]++}let o=0,s=!0;for(let a=0;a<e*2;a++){const c=a%e,l=r[(c-1+e)%e],f=r[c],u=r[(c+1)%e];f>l&&f>u&&f>=2?s&&(o++,s=!1):(f<l||f<u)&&(s=!0)}return{suggestedK:Math.max(1,Math.min(8,o||3)),scores:r}}function g0(t){return z(t,function(e){return o0(e,12,0)},"oklch")}function Bo(t,e=360/9,n=0,r="cl"){return z(t,function(o){return i0(o,e,n,r)},"oklch")}Bo.params=[{name:"gap",values:[0,360/12,360/9,360/6]},{name:"threshold",values:[0,.05,.1]},{name:"strategy",values:["cl","lc"]}];function p0(t){return z(t,function(e){return c0(e)},"oklch")}function b0(t){return z(t,function(e){return l0(e)},"oklch")}function M0(t){return z(t,function(e){return f0(e)},"oklch")}function v0(t){return z(t,function(e){return u0(e)},"oklch")}function y0(t){return z(t,function(e){return h0(e)},"oklch")}function To(t,e,n,r,o){return z(t,function(s){return d0(s,e,n,r,o)},"oklch")}To.params=[{name:"threshold",values:[0,.01,.03,.06,.09]},{name:"zone",values:[20,40,60,90,120]},{name:"rotation",values:[0]},{name:"order",values:["vivid","muted"]}];function $n(t,e=3){return z(t,function(n){return zo(n,e)},"oklch")}$n.params=[{name:"ramps",values:[2,3,4,5,6,8,8,9,12,24]}],$n.valid=(t,e)=>t.length>e;function x0(t){return z(t,function(e){const n=Math.min(e.length,m0(e).suggestedK);return zo(e,n)},"oklch")}function qo(t,e="rgb"){const n=e.at(-3)==="h"?Vt:T;return z(t,function(r){return r.sort(n)},e)}qo.params=[{name:"model",values:["hsl","hsv","oklch","oklab","okhsl","okhsv","lch","lab","rgb","cmyk"]}];const Q={PCA:["PCA","Principal component analysis","https://en.wikipedia.org/wiki/Principal_component_analysis"],HIL:["HIL","Hilbert curve","https://en.wikipedia.org/wiki/Hilbert_curve"],GEN:["GEN","Genetic algorithm","https://en.wikipedia.org/wiki/Genetic_algorithm"],NNA:["NNA","Nearest neighbour algorithm","https://en.wikipedia.org/wiki/Nearest_neighbour_algorithm"],MOM:["MON","Greedy with momentum"," https://en.wikipedia.org/wiki/Greedy_algorithm"]},et={RGB:["RGB","https://en.wikipedia.org/wiki/RGB_color_model"],LAB:["CIELAB","https://en.wikipedia.org/wiki/CIELAB_color_space"],OKLAB:["Oklab","https://en.wikipedia.org/wiki/Oklab_color_space"]},$t={DE:["DE","Delta E","http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html"]},k0=[{name:"Original",fn:t=>t,mid:"Original",description:{model:null}},{name:"HARM",fn:Sn,mid:"HARM",description:{}},{name:"HARMED",fn:$o,mid:"HARMED",description:{}},{name:"NNA(Delta E)",fn:Po,mid:"NNA(DE) Lab",description:{method:Q.NNA,model:et.LAB,diff:$t.DE}},{name:"NNA(Delta E+)",fn:Uc,mid:"NNA(DE+) Lab",description:{method:Q.NNA,model:et.LAB,diff:$t.DE}},{name:"NNA(Delta E++)",fn:Xc,mid:"NNA(DE++) Lab",description:{method:Q.NNA,model:et.LAB,diff:$t.DE}},{name:"NNA(Delta E+1)",fn:Zc,mid:"NNA(DE+1) Lab",description:{method:Q.NNA,model:et.LAB,diff:$t.DE}},{name:"NNA(Delta E+2)",fn:Vc,mid:"NNA(DE+2) Lab",description:{method:Q.NNA,model:et.LAB,diff:$t.DE}},{name:"MOM(Closest) Oklab",fn:Qc,mid:"MOM(Closest)-Oklab",description:{method:Q.MOM,model:et.OKLAB}},{name:"MOM(Closest+) Oklab",fn:Io,mid:"MOM(Closest+)-Oklab",description:{method:Q.MOM,model:et.OKLAB}},{name:"MOM(Closest+, Delta E) Oklab",fn:Jc,mid:"MOM(Closest+,DE)-Oklab",description:{method:Q.MOM,model:et.OKLAB}},{name:"MOM(Inlinest) Oklab",fn:t0,mid:"MOM(Inlinest)-Oklab",description:{method:Q.MOM,model:et.OKLAB}},{name:"MOM(Inlinest, Delta E) Oklab",fn:e0,mid:"MOM(Inlinest,DE)-Oklab",description:{method:Q.MOM,model:et.OKLAB,diff:$t.DE}},{name:"MOM(Inlinest, Delta E++) Oklab",fn:n0,mid:"MOM(Inlinest,DE++)-Oklab",description:{method:Q.MOM,model:et.OKLAB,diff:$t.DE}},{name:"Genetic Oklab",fn:wc,mid:"GEN-Oklab",description:{method:Q.GEN,model:et.OKLAB}},{name:"Genetic3 Oklab",fn:Ac,mid:"GEN3-Oklab",description:{method:Q.GEN,model:et.OKLAB}},{name:"Hilbert",fn:ko,mid:"HIL",description:{method:Q.HIL,model:et.RGB}},{name:"PCA",fn:_o,mid:"PCA",description:{method:Q.PCA}},{name:"Spiral",fn:Ao,mid:"SPI",description:{}},{name:"Cylindrical",fn:Do,mid:"CYL",description:{}},{name:"Cluster",fn:Ro,mid:"CL",description:{}},{name:"K-means",fn:Lo,mid:"KM",description:{}},{name:"DBSCAN",fn:Eo,mid:"DBSCAN",description:{}},{name:"RAMP",fn:g0,mid:"RAMP",description:{}},{name:"RAMPA",fn:Bo,mid:"RAMPA",description:{}},{name:"RAMPB",fn:p0,mid:"RAMPB",description:{}},{name:"RAMPC",fn:b0,mid:"RAMPC",description:{}},{name:"RAMPD",fn:M0,mid:"RAMPD",description:{}},{name:"RAMPE",fn:v0,mid:"RAMPE",description:{}},{name:"RAMPF",fn:y0,mid:"RAMPF",description:{}},{name:"RAMPG",fn:To,mid:"RAMPG",description:{}},{name:"RAMPH",fn:$n,mid:"RAMPH",description:{}},{name:"RAMPI",fn:x0,mid:"RAMPI",description:{}},{name:"RAW",fn:qo,mid:"RAW",description:{}}];function w0(t){return t.reduce((e,{values:n})=>e.flatMap(r=>n.map(o=>[...r,o])),[[]])}const Fo=k0.reduce((t,e)=>{if(e.fn.params){const n=w0(e.fn.params);for(const r of n)t.push({...e,name:`${e.name} [${r.join(",")}]`,mid:`${e.mid}:[${r.join(",")}]`,speed:r0[e.mid]||0,fn:o=>e.fn.call(null,o,...r),valid:e.fn?.valid?o=>e.fn?.valid?.call(null,o,...r):void 0})}else t.push(e);return t},[]);function C0(t){if(t.length<2)return{totalDistance:0,avgAngleChange:0,maxAngleChange:0,meanDistance:0,devDistance:0,totalCurveDistance:0,meanCurveDistance:0,devCurveDistance:0,lchAvgChange:{L:0,C:0,H:0},lchMaxChange:{L:0,C:0,H:0},lchDeviation:{L:0,C:0,H:0},curveRatio:0,perceptualUniformity:0,curveUniformity:0,harmonicScore:0,harmonicCurveScore:0};const e=t.map(w=>kt(w)),n=t.map(w=>dt(w)),{totalDistance:r,avgAngleChange:o,devDistance:s,maxAngleChange:i,meanDistance:a}=ae(e),c=Oo(n);let l=0;const f=[],u=[e[0],...e,e[e.length-1]],h=[],m=[],p=[];for(let w=1;w<e.length;w++){const k=A0(u[w-1],u[w],u[w+1],u[w+2]);l+=k,f.push(k);const[B,j,K]=n[w-1],[Y,J,tt]=n[w];if(h.push(Math.abs(Y-B)),m.push(Math.abs(J-j)),!isNaN(K)&&!isNaN(tt)){let nt=Math.abs(tt-K);nt>180&&(nt=360-nt),p.push(nt)}else isNaN(K)&&isNaN(tt)?p.push(0):p.push(90)}const M=l/(e.length-1),g=Math.sqrt(f.reduce((w,k)=>w+Math.pow(k-M,2),0)/(e.length-1)),d={L:h.reduce((w,k)=>w+k,0)/h.length,C:m.reduce((w,k)=>w+k,0)/m.length,H:p.reduce((w,k)=>w+k,0)/p.length},x={L:Math.max(...h),C:Math.max(...m),H:Math.max(...p)},C=d.L,A=d.C,R=d.H,H={L:Math.sqrt(h.reduce((w,k)=>w+Math.pow(k-C,2),0)/h.length),C:Math.sqrt(m.reduce((w,k)=>w+Math.pow(k-A,2),0)/m.length),H:Math.sqrt(p.reduce((w,k)=>w+Math.pow(k-R,2),0)/p.length)},N=1/(1+s),b=1/(1+g),_=l/r-1,S=N*.4+Math.min(c/180,1)*.3+1/(1+H.H/45)*.3,D=b*.4+Math.min(c/180,1)*.3+1/(1+H.H/45)*.3;return{totalDistance:r,avgAngleChange:o,maxAngleChange:i,meanDistance:a,devDistance:s,totalCurveDistance:l,meanCurveDistance:M,devCurveDistance:g,lchAvgChange:d,lchMaxChange:x,lchDeviation:H,curveRatio:_,perceptualUniformity:N,curveUniformity:b,harmonicScore:S,harmonicCurveScore:D}}function _0(t,e,n,r,o){const s=o*o,i=s*o;return[.5*(2*e[0]+(-t[0]+n[0])*o+(2*t[0]-5*e[0]+4*n[0]-r[0])*s+(-t[0]+3*e[0]-3*n[0]+r[0])*i),.5*(2*e[1]+(-t[1]+n[1])*o+(2*t[1]-5*e[1]+4*n[1]-r[1])*s+(-t[1]+3*e[1]-3*n[1]+r[1])*i),.5*(2*e[2]+(-t[2]+n[2])*o+(2*t[2]-5*e[2]+4*n[2]-r[2])*s+(-t[2]+3*e[2]-3*n[2]+r[2])*i)]}function A0(t,e,n,r,o=12){let s=0,i=e;for(let a=1;a<=o;a++){const c=a/o,l=_0(t,e,n,r,c);s+=V(i,l),i=l}return s}const W=(t,e)=>t-e,He=(t,e)=>e-t;function D0(t){const e={totalDistance:[],avgAngleChange:[],maxAngleChange:[],meanDistance:[],devDistance:[],totalCurveDistance:[],meanCurveDistance:[],devCurveDistance:[],lchAvgChange:{L:[],C:[],H:[]},lchMaxChange:{L:[],C:[],H:[]},lchDeviation:{L:[],C:[],H:[]},curveRatio:[],perceptualUniformity:[],curveUniformity:[],harmonicScore:[],harmonicCurveScore:[]};for(const n of t)e.totalDistance.push(n.totalDistance),e.avgAngleChange.push(n.avgAngleChange),e.maxAngleChange.push(n.maxAngleChange),e.meanDistance.push(n.meanDistance),e.devDistance.push(n.devDistance),e.totalCurveDistance.push(n.totalCurveDistance),e.meanCurveDistance.push(n.meanCurveDistance),e.devCurveDistance.push(n.devCurveDistance),e.lchAvgChange.L.push(n.lchAvgChange.L),e.lchAvgChange.C.push(n.lchAvgChange.C),e.lchAvgChange.H.push(n.lchAvgChange.H),e.lchMaxChange.L.push(n.lchMaxChange.L),e.lchMaxChange.C.push(n.lchMaxChange.C),e.lchMaxChange.H.push(n.lchMaxChange.H),e.lchDeviation.L.push(n.lchDeviation.L),e.lchDeviation.C.push(n.lchDeviation.C),e.lchDeviation.H.push(n.lchDeviation.H),e.curveRatio.push(n.curveRatio),e.perceptualUniformity.push(n.perceptualUniformity),e.curveUniformity.push(n.curveUniformity),e.harmonicScore.push(n.harmonicScore),e.harmonicCurveScore.push(n.harmonicCurveScore);return e.totalDistance.sort(W),e.avgAngleChange.sort(W),e.maxAngleChange.sort(W),e.meanDistance.sort(W),e.devDistance.sort(W),e.totalCurveDistance.sort(W),e.meanCurveDistance.sort(W),e.devCurveDistance.sort(W),e.lchAvgChange.L.sort(W),e.lchAvgChange.C.sort(W),e.lchAvgChange.H.sort(W),e.lchMaxChange.L.sort(W),e.lchMaxChange.C.sort(W),e.lchMaxChange.H.sort(W),e.lchDeviation.L.sort(W),e.lchDeviation.C.sort(W),e.lchDeviation.H.sort(W),e.curveRatio.sort(W),e.perceptualUniformity.sort(He),e.curveUniformity.sort(He),e.harmonicScore.sort(He),e.harmonicCurveScore.sort(He),{totalDistance:[e.totalDistance[0],e.totalDistance.at(-1)],avgAngleChange:[e.avgAngleChange[0],e.avgAngleChange.at(-1)],maxAngleChange:[e.maxAngleChange[0],e.maxAngleChange.at(-1)],meanDistance:[e.meanDistance[0],e.meanDistance.at(-1)],devDistance:[e.devDistance[0],e.devDistance.at(-1)],totalCurveDistance:[e.totalCurveDistance[0],e.totalCurveDistance.at(-1)],meanCurveDistance:[e.meanCurveDistance[0],e.meanCurveDistance.at(-1)],devCurveDistance:[e.devCurveDistance[0],e.devCurveDistance.at(-1)],lchAvgChange:{L:[e.lchAvgChange.L[0],e.lchAvgChange.L.at(-1)],C:[e.lchAvgChange.C[0],e.lchAvgChange.C.at(-1)],H:[e.lchAvgChange.H[0],e.lchAvgChange.H.at(-1)]},lchMaxChange:{L:[e.lchMaxChange.L[0],e.lchMaxChange.L.at(-1)],C:[e.lchMaxChange.C[0],e.lchMaxChange.C.at(-1)],H:[e.lchMaxChange.H[0],e.lchMaxChange.H.at(-1)]},lchDeviation:{L:[e.lchDeviation.L[0],e.lchDeviation.L.at(-1)],C:[e.lchDeviation.C[0],e.lchDeviation.C.at(-1)],H:[e.lchDeviation.H[0],e.lchDeviation.H.at(-1)]},curveRatio:[e.curveRatio[0],e.curveRatio.at(-1)],perceptualUniformity:[e.perceptualUniformity[0],e.perceptualUniformity.at(-1)],curveUniformity:[e.curveUniformity[0],e.curveUniformity.at(-1)],harmonicScore:[e.harmonicScore[0],e.harmonicScore.at(-1)],harmonicCurveScore:[e.harmonicCurveScore[0],e.harmonicCurveScore.at(-1)]}}function X(t,[e,n]){return n===e?0:Math.max(0,Math.min(1,(t-e)/(n-e)))}function Hn(t,e){return{L:X(t.L,e.L),C:X(t.C,e.C),H:X(t.H,e.H)}}function S0(t,e){return{totalDistance:X(t.totalDistance,e.totalDistance),avgAngleChange:X(t.avgAngleChange,e.avgAngleChange),maxAngleChange:X(t.maxAngleChange,e.maxAngleChange),meanDistance:X(t.meanDistance,e.meanDistance),devDistance:X(t.devDistance,e.devDistance),totalCurveDistance:X(t.totalCurveDistance,e.totalCurveDistance),meanCurveDistance:X(t.meanCurveDistance,e.meanCurveDistance),devCurveDistance:X(t.devCurveDistance,e.devCurveDistance),lchAvgChange:Hn(t.lchAvgChange,e.lchAvgChange),lchMaxChange:Hn(t.lchMaxChange,e.lchMaxChange),lchDeviation:Hn(t.lchDeviation,e.lchDeviation),curveRatio:X(t.curveRatio,e.curveRatio),perceptualUniformity:X(t.perceptualUniformity,e.perceptualUniformity),curveUniformity:X(t.curveUniformity,e.curveUniformity),harmonicScore:X(t.harmonicScore,e.harmonicScore),harmonicCurveScore:X(t.harmonicCurveScore,e.harmonicCurveScore)}}function N0(t){const{totalDistance:e,avgAngleChange:n,maxAngleChange:r,meanDistance:o,devDistance:s,totalCurveDistance:i,meanCurveDistance:a,devCurveDistance:c,lchAvgChange:{L:l,C:f,H:u},lchMaxChange:{L:h,C:m,H:p},lchDeviation:{L:M,C:g,H:d},curveRatio:x,perceptualUniformity:C,curveUniformity:A,harmonicScore:R,harmonicCurveScore:H}=t;return e+n+r+o+s+i+a+c+l+f+u+h+m+p+M+g+d+x+C+A+R+H}function On(t,e){const n=t.reduce((s,i,a)=>s+i*e[a],0),r=Math.sqrt(t.reduce((s,i)=>s+i*i,0)),o=Math.sqrt(e.reduce((s,i)=>s+i*i,0));return r===0||o===0?0:n/(r*o)}function Go(t,e){return Math.sqrt(t.reduce((n,r,o)=>n+(r-e[o])**2,0))}function jo(t,e,n){const r=Math.abs(t-e);return Math.exp(-(r*r)/(2*n*n))}function Oe(t,e){const n=t.length;if(n!==e.length||n===0)return 0;const r=t.reduce((l,f)=>l+f,0)/n,o=e.reduce((l,f)=>l+f,0)/n;let s=0,i=0,a=0;for(let l=0;l<n;l++){const f=t[l]-r,u=e[l]-o;s+=f*u,i+=f*f,a+=u*u}const c=Math.sqrt(i*a);return c===0?0:(s/c+1)/2}function Pn(t){return t.reduce((e,n)=>e.map((r,o)=>r+n[o]),Array.from({length:t[0].length}).fill(0)).map(e=>e/t.length)}function Ko(t){if(t.length===0)return[];const e=t[0].length,n=[];for(let r=0;r<e;r++){const o=t.map(i=>i[r]).sort((i,a)=>i-a),s=Math.floor(o.length/2);n[r]=o.length%2===0?(o[s-1]+o[s])/2:o[s]}return n}function R0(t){if(t.length===0)return[];if(t.length===1)return t[0];const e=Ko(t),n=t.map(l=>Math.sqrt(l.reduce((f,u,h)=>f+Math.pow(u-e[h],2),0))),r=[...n].sort((l,f)=>l-f),o=r[Math.floor(r.length*.25)],s=r[Math.floor(r.length*.75)],i=s-o,a=s+1.5*i,c=t.filter((l,f)=>n[f]<=a);return c.length?Pn(c):Pn(t)}function In(t,e){const n=(t.length-1)/(e-1);return r=>{const o=r*n,s=Math.floor(o),i=Math.min(s+1,t.length-1),a=o-s;if(Math.floor((r+1)*n)>s&&(r+1)*n!==i)return t[i];{const l=r-1,f=l*n,u=Math.floor(f),h=Math.min(u+1,t.length-1);if(Math.floor((l+1)*n)>u&&(l+1)*n!==h)return t[h]}return t[s]*(1-a)+t[i]*a}}function L0(t,e=256){if(t.length<2)return t;const n=[],r=In(t.map(i=>i[0]),e),o=In(t.map(i=>i[1]),e),s=In(t.map(i=>i[2]),e);for(let i=0;i<e;i++)n.push([r(i),o(i),s(i)]);return n}function E0(t,e){if(t.length===e)return t;const n=[],r=t.length,o=(r-1)/(e-1);for(let s=0;s<e;s++){const i=s*o,a=Math.floor(i),c=Math.min(a+1,r-1),l=i-a,f=t[a],u=t[c];n.push([f[0]*(1-l)+u[0]*l,f[1]*(1-l)+u[1]*l,f[2]*(1-l)+u[2]*l])}return n}function $0(t,e=256){if(t.length<2)return t;const n=[],r=(t.length-1)/(e-1);for(let o=0;o<e;o++){const s=o*r,i=Math.floor(s),a=Math.min(i+1,t.length-1),c=s-i,l=t[i],f=t[a];n.push([l[0]*(1-c)+f[0]*c,l[1]*(1-c)+f[1]*c,l[2]*(1-c)+f[2]*c])}return n}function H0(t,e=256){const n=[],r=(t.length-1)/(e-1);for(let o=0;o<e;o++){const s=o*r,i=Math.floor(s),a=Math.min(i+1,t.length-1),c=s-i;n.push(t[i]*(1-c)+t[a]*c)}return n}function O0(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var zn,Yo;function P0(){if(Yo)return zn;Yo=1;function t(e){if(this.size=e|0,this.size<=1||(this.size&this.size-1)!==0)throw new Error("FFT size must be a power of two and bigger than 1");this._csize=e<<1;for(var n=new Array(this.size*2),r=0;r<n.length;r+=2){const l=Math.PI*r/this.size;n[r]=Math.cos(l),n[r+1]=-Math.sin(l)}this.table=n;for(var o=0,s=1;this.size>s;s<<=1)o++;this._width=o%2===0?o-1:o,this._bitrev=new Array(1<<this._width);for(var i=0;i<this._bitrev.length;i++){this._bitrev[i]=0;for(var a=0;a<this._width;a+=2){var c=this._width-a-2;this._bitrev[i]|=(i>>>a&3)<<c}}this._out=null,this._data=null,this._inv=0}return zn=t,t.prototype.fromComplexArray=function(n,r){for(var o=r||new Array(n.length>>>1),s=0;s<n.length;s+=2)o[s>>>1]=n[s];return o},t.prototype.createComplexArray=function(){const n=new Array(this._csize);for(var r=0;r<n.length;r++)n[r]=0;return n},t.prototype.toComplexArray=function(n,r){for(var o=r||this.createComplexArray(),s=0;s<o.length;s+=2)o[s]=n[s>>>1],o[s+1]=0;return o},t.prototype.completeSpectrum=function(n){for(var r=this._csize,o=r>>>1,s=2;s<o;s+=2)n[r-s]=n[s],n[r-s+1]=-n[s+1]},t.prototype.transform=function(n,r){if(n===r)throw new Error("Input and output buffers must be different");this._out=n,this._data=r,this._inv=0,this._transform4(),this._out=null,this._data=null},t.prototype.realTransform=function(n,r){if(n===r)throw new Error("Input and output buffers must be different");this._out=n,this._data=r,this._inv=0,this._realTransform4(),this._out=null,this._data=null},t.prototype.inverseTransform=function(n,r){if(n===r)throw new Error("Input and output buffers must be different");this._out=n,this._data=r,this._inv=1,this._transform4();for(var o=0;o<n.length;o++)n[o]/=this.size;this._out=null,this._data=null},t.prototype._transform4=function(){var n=this._out,r=this._csize,o=this._width,s=1<<o,i=r/s<<1,a,c,l=this._bitrev;if(i===4)for(a=0,c=0;a<r;a+=i,c++){const g=l[c];this._singleTransform2(a,g,s)}else for(a=0,c=0;a<r;a+=i,c++){const g=l[c];this._singleTransform4(a,g,s)}var f=this._inv?-1:1,u=this.table;for(s>>=2;s>=2;s>>=2){i=r/s<<1;var h=i>>>2;for(a=0;a<r;a+=i)for(var m=a+h,p=a,M=0;p<m;p+=2,M+=s){const g=p,d=g+h,x=d+h,C=x+h,A=n[g],R=n[g+1],H=n[d],N=n[d+1],b=n[x],_=n[x+1],S=n[C],D=n[C+1],w=A,k=R,B=u[M],j=f*u[M+1],K=H*B-N*j,Y=H*j+N*B,J=u[2*M],tt=f*u[2*M+1],nt=b*J-_*tt,gt=b*tt+_*J,ft=u[3*M],st=f*u[3*M+1],_t=S*ft-D*st,It=S*st+D*ft,Lt=w+nt,pt=k+gt,Jt=w-nt,le=k-gt,fe=K+_t,te=Y+It,ee=f*(K-_t),ue=f*(Y-It),ze=Lt+fe,qn=pt+te,Fn=Lt-fe,Gn=pt-te,jn=Jt+ue,Kn=le-ee,Yn=Jt-ue,Wn=le+ee;n[g]=ze,n[g+1]=qn,n[d]=jn,n[d+1]=Kn,n[x]=Fn,n[x+1]=Gn,n[C]=Yn,n[C+1]=Wn}}},t.prototype._singleTransform2=function(n,r,o){const s=this._out,i=this._data,a=i[r],c=i[r+1],l=i[r+o],f=i[r+o+1],u=a+l,h=c+f,m=a-l,p=c-f;s[n]=u,s[n+1]=h,s[n+2]=m,s[n+3]=p},t.prototype._singleTransform4=function(n,r,o){const s=this._out,i=this._data,a=this._inv?-1:1,c=o*2,l=o*3,f=i[r],u=i[r+1],h=i[r+o],m=i[r+o+1],p=i[r+c],M=i[r+c+1],g=i[r+l],d=i[r+l+1],x=f+p,C=u+M,A=f-p,R=u-M,H=h+g,N=m+d,b=a*(h-g),_=a*(m-d),S=x+H,D=C+N,w=A+_,k=R-b,B=x-H,j=C-N,K=A-_,Y=R+b;s[n]=S,s[n+1]=D,s[n+2]=w,s[n+3]=k,s[n+4]=B,s[n+5]=j,s[n+6]=K,s[n+7]=Y},t.prototype._realTransform4=function(){var n=this._out,r=this._csize,o=this._width,s=1<<o,i=r/s<<1,a,c,l=this._bitrev;if(i===4)for(a=0,c=0;a<r;a+=i,c++){const Un=l[c];this._singleRealTransform2(a,Un>>>1,s>>>1)}else for(a=0,c=0;a<r;a+=i,c++){const Un=l[c];this._singleRealTransform4(a,Un>>>1,s>>>1)}var f=this._inv?-1:1,u=this.table;for(s>>=2;s>=2;s>>=2){i=r/s<<1;var h=i>>>1,m=h>>>1,p=m>>>1;for(a=0;a<r;a+=i)for(var M=0,g=0;M<=p;M+=2,g+=s){var d=a+M,x=d+m,C=x+m,A=C+m,R=n[d],H=n[d+1],N=n[x],b=n[x+1],_=n[C],S=n[C+1],D=n[A],w=n[A+1],k=R,B=H,j=u[g],K=f*u[g+1],Y=N*j-b*K,J=N*K+b*j,tt=u[2*g],nt=f*u[2*g+1],gt=_*tt-S*nt,ft=_*nt+S*tt,st=u[3*g],_t=f*u[3*g+1],It=D*st-w*_t,Lt=D*_t+w*st,pt=k+gt,Jt=B+ft,le=k-gt,fe=B-ft,te=Y+It,ee=J+Lt,ue=f*(Y-It),ze=f*(J-Lt),qn=pt+te,Fn=Jt+ee,Gn=le+ze,jn=fe-ue;if(n[d]=qn,n[d+1]=Fn,n[x]=Gn,n[x+1]=jn,M===0){var Kn=pt-te,Yn=Jt-ee;n[C]=Kn,n[C+1]=Yn;continue}if(M!==p){var Wn=le,ll=-fe,fl=pt,ul=-Jt,hl=-f*ze,dl=-f*ue,ml=-f*ee,gl=-f*te,pl=Wn+hl,bl=ll+dl,Ml=fl+gl,vl=ul-ml,ts=a+m-M,es=a+h-M;n[ts]=pl,n[ts+1]=bl,n[es]=Ml,n[es+1]=vl}}}},t.prototype._singleRealTransform2=function(n,r,o){const s=this._out,i=this._data,a=i[r],c=i[r+o],l=a+c,f=a-c;s[n]=l,s[n+1]=0,s[n+2]=f,s[n+3]=0},t.prototype._singleRealTransform4=function(n,r,o){const s=this._out,i=this._data,a=this._inv?-1:1,c=o*2,l=o*3,f=i[r],u=i[r+o],h=i[r+c],m=i[r+l],p=f+h,M=f-h,g=u+m,d=a*(u-m),x=p+g,C=M,A=-d,R=p-g,H=M,N=d;s[n]=x,s[n+1]=0,s[n+2]=C,s[n+3]=A,s[n+4]=R,s[n+5]=0,s[n+6]=H,s[n+7]=N},zn}var I0=P0();const Wo=O0(I0);function Ht(t){if(!t.length)return[0,0];const e=Math.pow(2,Math.ceil(Math.log(Math.max(2,t.length))/Math.log(2))),n=t.length<e?H0(t,e):t,r=new Wo(e),o=r.createComplexArray();return r.realTransform(o,n),o}function Ot(t){return t.slice(2,Math.floor(t.length/2))}function Pt(t){return Array.from({length:t.length/2}).map((e,n)=>Math.sqrt(t[n]**2+t[n+1]**2))}function z0(t,e=.03){const n=t.filter(o=>o[1]>=e&&o[1]!==void 0),r=t.filter(o=>o[1]<e||o[1]===void 0);return{chromatic:n,achromatic:r}}function B0(t){const e=t.map(f=>f[0]),n=t.map(f=>f[1]),o=t.map(f=>f[2]).map(f=>(f%360+360)%360),s=[...o].filter(f=>isFinite(f)).sort((f,u)=>f-u),i=[];for(let f=0;f<s.length-1;f++)i.push(s[f+1]-s[f]);s.length>0&&i.push(360-s[s.length-1]+s[0]);const a=Pt(Ot(Ht(i))),c=Pt(Ot(Ht(n))),l=Pt(Ot(Ht(e)));return{hueDeltaMags:a,chromaMags:c,lightnessMags:l,hues:o,hueDeltas:i,sortedHues:s,chromas:n,lightnesses:e}}function T0(t){const e=t.map(l=>l[0]),n=Zn(t.map(l=>l[1])),r=Zn(t.map(l=>l[2])),o=t.map((l,f)=>Math.sqrt(n[f]**2+r[f]**2)),s=Pt(Ot(Ht(e))),i=Pt(Ot(Ht(n))),a=Pt(Ot(Ht(r))),c=Pt(Ot(Ht(o)));return{lightnessMags:s,aMags:i,bMags:a,chromaMags:c}}function Uo({lightnessMags:t,aMags:e,bMags:n,chromaMags:r},o){return{lightness:o(t),a:o(e),b:o(n),chroma:o(r)}}function q0(t){const e=Uo(t,G0),n=Uo(t,j0),{lightnessMags:r,aMags:o,bMags:s,chromaMags:i}=t,a={lightness:Pe(r,e.lightness),a:Pe(o,e.a),b:Pe(s,e.b),chroma:Pe(i,e.chroma)},c=o.map((m,p)=>Math.sqrt(m**2+s[p]**2)),l=K0(c),f=Y0(c),u=W0(c),h=U0(c,3);return{spectralCentroid:e,spectralSpread:a,spectralRolloff:n,energyRatios:l,smoothness:f,complexity:u,dominantFrequencies:h}}function F0(t){const e=$0(t,256),n=T0(e),r=q0(n);return{...n,...r}}function G0(t){const e=t.reduce((r,o)=>r+o,0);return e===0?0:t.reduce((r,o,s)=>r+o*s,0)/e/t.length}function Pe(t,e){const n=t.reduce((s,i)=>s+i,0);if(n===0)return 0;const r=e*t.length,o=t.reduce((s,i,a)=>s+i*(a-r)**2,0)/n;return Math.sqrt(o)/t.length}function j0(t,e=.85){const n=t.map(s=>s*s),r=n.reduce((s,i)=>s+i,0);if(r===0)return 0;let o=0;for(let s=0;s<t.length;s++)if(o+=n[s],o>=e*r)return s/t.length;return 1}function K0(t){const e=t.map(c=>c*c),n=e.reduce((c,l)=>c+l,0);if(n===0)return{lowFreq:0,midFreq:0,highFreq:0};const r=Math.floor(t.length*.3),o=Math.floor(t.length*.7),s=e.slice(0,r).reduce((c,l)=>c+l,0),i=e.slice(r,o).reduce((c,l)=>c+l,0),a=e.slice(o).reduce((c,l)=>c+l,0);return{lowFreq:s/n,midFreq:i/n,highFreq:a/n}}function Y0(t){const e=Math.floor(t.length*.3),n=t.map(s=>s*s),r=n.slice(0,e).reduce((s,i)=>s+i,0),o=n.slice(e).reduce((s,i)=>s+i,0);return o>0?r/o:1/0}function W0(t){const e=t.reduce((o,s)=>o+s*s,0);return e===0?0:-t.map(o=>o*o/e).reduce((o,s)=>o+(s>0?s*Math.log(s):0),0)}function U0(t,e){return t.map((n,r)=>({freq:r+1,mag:n})).sort((n,r)=>r.mag-n.mag).slice(0,e).map(n=>n.freq)}function X0(t){const{chromatic:e,achromatic:n}=z0(t),{hueDeltaMags:r,chromaMags:o,lightnessMags:s,hueDeltas:i,sortedHues:a,chromas:c,lightnesses:l}=B0(t),f=Math.max(...i),u=a.length>0?360-f:0,h=zt(c),m=zt(l),p=i.filter(b=>b>45).length,M=Be(i),g=he(r),d=he(o),x=he(s),C=Xn(r),A=Xn(o);let R="unknown",H=0;u<60?(R="monochromatic",H=.9):p>=2||C>.3?(R="multi-ramp",H=Math.min(.95,.6+C)):u>300||p===0?(R="full-spectrum",H=.85):(R="wide-gamut",H=.7);const N=[C,A,h,m,p/i.length,(f||0)/360,e.length/t.length,...s.slice(0,4)];return{type:R,confidence:H,features:{hueSpread:u,chromaticCount:e.length,achromaticCount:n.length,largeGaps:p,avgGap:M,maxGap:f,chromaVariance:h,hueHighFreqRatio:C,chromaHighFreqRatio:A},fingerprint:N,spectra:{hueDeltaMags:r,chromaMags:o,lightnessMags:s,hueDeltaEnergy:g,chromaEnergy:d,lightnessEnergy:x}}}function Xo(t){const e=X0(t),n=e?.spectra?.hueDeltaMags?e.spectra.hueDeltaMags.slice(0,16).map((r,o)=>({freq:o,hueDelta:r,chroma:e?.spectra?.chromaMags[o]||0,lightness:e?.spectra?.lightnessMags[o]||0})):[];return{analysis:e,spectrumData:n}}function Z0(t,e){const n=jo(t.smoothness,e.smoothness,1),r=jo(t.complexity,e.complexity,.5),o=[t.energyRatios.lowFreq,t.energyRatios.midFreq,t.energyRatios.highFreq],s=[e.energyRatios.lowFreq,e.energyRatios.midFreq,e.energyRatios.highFreq],i=On(o,s),a=[t.spectralCentroid.lightness,t.spectralCentroid.a,t.spectralCentroid.b,t.spectralCentroid.chroma],c=[e.spectralCentroid.lightness,e.spectralCentroid.a,e.spectralCentroid.b,e.spectralCentroid.chroma],l=1-Go(a,c)/Math.sqrt(4),f=[t.spectralRolloff.lightness,t.spectralRolloff.a,t.spectralRolloff.b,t.spectralRolloff.chroma],u=[e.spectralRolloff.lightness,e.spectralRolloff.a,e.spectralRolloff.b,e.spectralRolloff.chroma],h=1-Go(f,u)/Math.sqrt(4),m=Oe(t.chromaMags,e.chromaMags),p=Oe(t.aMags,e.aMags),M=Oe(t.bMags,e.bMags),g=Oe(t.lightnessMags,e.lightnessMags),d=(m+p+M+g)/4,x=d*.5+i*.2+n*.15+(l+h)/2*.15,C=l*.4+h*.3+i*.3,A=x*.7+C*.3;let R;return A>.9?R="Nearly Identical Structure":A>.75?R="Very Similar Structure":A>.6?R="Similar Structure":A>.45?R="Somewhat Similar":A>.3?R="Somewhat Different":R="Very Different Structure",{overall:A,structural:x,perceptual:C,breakdown:{smoothnessSimilarity:n,complexitySimilarity:r,energyDistributionSimilarity:i,centroidSimilarity:l,rolloffSimilarity:h,spectrumCorrelation:d},interpretation:R}}function V0(t,e={}){const r=new Wo(256),o=L0(t,256),s=o.map(g=>g[0]),i=o.map(g=>g[1]),a=o.map(g=>g[2]);let c=[...s];e.lightnessSmoothing&&(c=il(c,t.length*e.lightnessSmoothing));let l=[...i],f=[...a];if(e.distortion&&(l=Zo(l,e.distortion),f=Zo(f,e.distortion)),e.stereoWidth!==void 0){const g=l.map((C,A)=>(C+f[A])/2),d=l.map((C,A)=>(C-f[A])/2),x=e.stereoWidth;l=g.map((C,A)=>C+d[A]*x),f=g.map((C,A)=>C-d[A]*x)}const u=Bn(r,c,e,!0),h=Bn(r,l,e),m=Bn(r,f,e);l=h.result,f=m.result,e.compression&&(l=Vo(l,e.compression),f=Vo(f,e.compression));const p=[];for(let g=0;g<256;g++){const d=[Tn(c[g],0,1),Tn(l[g],-.4,.4),Tn(f[g],-.4,.4)];p.push(d)}return{colors:E0(p,t.length),resampled:o,processed:p,spectrum:[u.spectrum.filter((g,d)=>d%2===0&&d>0&&d<=256),h.spectrum.filter((g,d)=>d%2===0&&d>0&&d<=256),m.spectrum.filter((g,d)=>d%2===0&&d>0&&d<=256)]}}function Bn(t,e,n,r=!1){const o=t.size,s=t.createComplexArray();t.realTransform(s,e);const i=o/2;r||(n.dc&&(s[0]*=n.dc,s[1]*=n.dc),n.eq&&Q0(s,n.eq),n.exciter&&J0(s,n.exciter),n.phaseShift&&tl(s,n.phaseShift),n.reverb&&el(s,i,n.reverb),n.combFilter&&nl(s,n.combFilter),n.spectralBlur&&rl(s,n.spectralBlur),n.spectralGate&&ol(s,n.spectralGate),n.partialExtraction&&sl(s,n.partialExtraction)),t.completeSpectrum(s);const a=t.createComplexArray();t.inverseTransform(a,s);const c=[];for(let l=0;l<o;l++)c[l]=a[l*2];return{result:c,spectrum:s}}function Q0(t,e){const n=t.length/2,r=Math.pow(2,3)*2,o=Math.pow(2,5)*2;for(let s=2;s<n;s+=2){let i=1;s<r?i=e.lowGain:s<o?i=e.midGain:i=e.highGain;const a=1+Math.log2(s/n+1)*2;i*=a,t[s]*=i,t[s+1]*=i}}function J0(t,e){const n=t.length/2,r=Math.floor(1+n/2*e.frequency),o=Math.max(2,r*2);for(let s=o;s<n;s+=2){const a=Math.floor(s/4)*2*2,c=1+Math.log2(s/n+1)*2;t[s]+=t[a]*e.amount*.5*c,t[s+1]+=t[a+1]*e.amount*.5*c}}function tl(t,e){const n=e*Math.PI/180,r=t.length/2;for(let o=2;o<=r;o+=2){const s=t[o],i=t[o+1],a=Math.sqrt(s*s+i*i),c=Math.atan2(i,s)+n;t[o]=a*Math.cos(c),t[o+1]=a*Math.sin(c)}}function el(t,e,n){const r=new Float64Array(t);for(let o=1;o<e;o++){const s=o*2,i=(o-1)*2,a=Math.min(o+1,e)*2,c=t[s],l=t[s+1],f=Math.atan2(l,c),u=Math.sqrt(t[i]**2+t[i+1]**2),h=Math.sqrt(c*c+l*l),m=Math.sqrt(t[a]**2+t[a+1]**2),p=(u+h*2+m)/4*n.decay,M=p*Math.cos(f),g=p*Math.sin(f);t[s]=r[s]*(1-n.mix)+M*n.mix,t[s+1]=r[s+1]*(1-n.mix)+g*n.mix}}function Zo(t,e){const n=1+e.amount*9;return t.map(r=>{const o=r*n;switch(e.type){case"soft":return o/(1+Math.abs(o));case"hard":return Math.max(-1,Math.min(1,o));case"tube":return o>0?o/(1+o*.5):o/(1-o*.3);default:return o}})}function Vo(t,e){let n=0;const r=[];for(const o of t){const s=Math.abs(o);s>n?n+=(s-n)*e.attack:n+=(s-n)*e.release;let i=1;if(n>e.threshold){const c=(n-e.threshold)/e.ratio;i=(e.threshold+c)/n}r.push(o*i)}return r}function Tn(t,e,n){return Math.max(e,Math.min(n,t))}function nl(t,e){const n=t.length/2/2,r=Math.floor(n*e.frequency);if(r===0)return;const o=new Float64Array(t);for(let s=1;s<n;s++){const i=s*2,c=Math.round(s/r)*r,f=Math.abs(s-c)/r,u=1-e.feedback*Math.exp(-f*5);t[i]=o[i]*(1-e.mix)+o[i]*u*e.mix,t[i+1]=o[i+1]*(1-e.mix)+o[i+1]*u*e.mix}}function rl(t,e){const n=t.length/2;if(e.amount===0)return;const r=Math.max(1,Math.round(e.amount)),o=new Float64Array(t);for(let s=2;s<n;s+=2){let i=0,a=0,c=0;for(let l=-r;l<=r;l++){const f=s+l;f>=2&&f<n&&(i+=t[f],a+=t[f+1],c++)}o[s]=i/c,o[s+1]=a/c}for(let s=2;s<n;s++)t[s]=o[s]}function ol(t,e){const n=t.length/2/2;let r=0;for(let s=1;s<n;s++){const i=s*2,a=Math.sqrt(t[i]**2+t[i+1]**2);r=Math.max(r,a)}const o=r*e.threshold;for(let s=1;s<n;s++){const i=s*2,a=t[i],c=t[i+1];if(Math.sqrt(a*a+c*c)<o){const f=e.ratio;t[i]*=f,t[i+1]*=f}}}function sl(t,e){const n=t.length/2/2,r=Math.floor(n*e.fundamental);if(r===0)return;const o=Math.max(1,Math.floor(n*e.bandwidth)),s=Array.from({length:n+1}).fill(!1);s[0]=!0;for(let i=1;i<=e.harmonics;i++){const a=r*i;if(a>n)break;for(let c=-o;c<=o;c++){const l=a+c;l>=0&&l<=n&&(s[l]=!0)}}for(let i=0;i<=n;i++){if(!s[i]){const a=i*2;t[a]=0,t[a+1]=0}if(i>0&&i<n){const c=(n*2-i)*2;s[i]?(t[c]=t[i*2],t[c+1]=-t[i*2+1]):(t[c]=0,t[c+1]=0)}}}function il(t,e){if(e===0)return t;const n=[...t],r=Math.max(1,Math.round(e));for(let o=0;o<r;o++){const s=[...n];for(let i=1;i<n.length-1;i++)s[i]=(n[i-1]+n[i]*2+n[i+1])/4;n.splice(0,n.length,...s)}return n}const Ie=On;function Tl(t){return t}function Qo(t,e){const n=t.map(Jo).sort(T);let r=[],o=[],s=t.length;for(;!r.length&&s>1;)r=e.filter(c=>c.colors===s),s--;for(;!o.length&&s>1;)o=e.filter(c=>c.colors===s),s--;let{fingerprint:i}=Xo(n).analysis;i=i,r.sort((c,l)=>(l.fingerprint&&i?Ie(i,l.fingerprint):0)-(c.fingerprint&&i?Ie(i,c.fingerprint):0)),o.sort((c,l)=>(l.fingerprint&&i?Ie(i,l.fingerprint):0)-(c.fingerprint&&i?Ie(i,c.fingerprint):0));let a=[...r,...o];return t.length<64&&(a=a.filter(c=>!c.mid.startsWith("RAW"))),t.length<32&&(a=a.filter(c=>!c.mid.startsWith("RAMPH"))),t.length<6&&(a=a.filter(c=>!c.mid.startsWith("SPI"))),t.length<9&&(a=a.filter(c=>!c.mid.startsWith("CYL"))),a.length?a[0].mid:r.length?r[0].mid:o[0].mid}function al(t,e){const n=Qo(t,e);return Fo.find(r=>r.mid===n)?.fn(t)}const Jo=dt,cl=ns;P.MASTER_LCH=Jo,P.MASTER_ROUND=cl,P.SORTING_METHODS=Fo,P.applySpectralProcessing=V0,P.auto=al,P.compareColors=T,P.compareSpectralFeatures=Z0,P.cosineSimilarity=On,P.detectPaletteType=Rn,P.featuresLab=F0,P.fingerprintAverage=Pn,P.fingerprintAverageWithoutOutliers=R0,P.fingerprintMedian=Ko,P.flatRgb=lc,P.getAuto=Qo,P.getMetricsExRange=D0,P.gl=Le,P.lab=Ee,P.lch=dt,P.metrics=ae,P.metricsEx=C0,P.metricsExQuality=S0,P.metricsExQualitySum=N0,P.metricsFftFingerprint=Xo,P.normalizeLab=po,P.oklab=kt,P.oklab2hex=ec,P.oklch=ho,P.oklch2hex=tc,P.oklch2oklab=nc,P.randomizer=So,Object.defineProperty(P,Symbol.toStringTag,{value:"Module"})}));
|
|
5
|
+
//# sourceMappingURL=colorsort.umd.cjs.map
|