UNPKG

@johnny95731/color-utils

Version:

High-performance color utilities that including conversions, harmonies, mix, and sort.

2 lines (1 loc) 18.5 kB
const cloneDeep=e=>{let t;if(null==e?t=e:[Number,String,Boolean].forEach((r=>{e instanceof r&&(t=r(e))})),void 0===t)if(Array.isArray(e)){t=[];for(const r of e)t.push(cloneDeep(r))}else if(e instanceof Date)t=new Date(e);else if("object"==typeof e){t={};for(const r in e)t[r]=cloneDeep(e[r])}else t=e;return t},map=(e,t,r)=>{const n=Array(r??=e.length??e);let o=0;if("number"==typeof e)for(;o<e;)n[o]=t(o++);else for(;o<r;)n[o]=t(e[o],o++);return n},normalizeOption=(e,t,r=t[0])=>("number"==typeof e&&(e=t[e]),e||(e=r),e),pow=(e,t)=>t?e?Math.exp(t*Math.log(e)):0:1,randInt=e=>Math.random()*(e+1)|0,round=(e,t=0)=>Math.round(10**t*e)/10**t,clip=(e,t,r)=>e<t?t:e>r?r:e,rangeMapping=(e,t,r,n,o,a)=>{const l=n+clip((e-t)/(r-t),0,1)*(o-n);return null==a?l:round(l,a)},[e,t]=(()=>{const e=Math.PI/180;return[t=>t*e,t=>t/e]})(),dot3=(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],squareSum4=(e,t,r=0,n=0)=>e*e+t*t+r*r+n*n,l2Norm3=(e,t,r=0)=>Math.sqrt(squareSum4(e,t,r)),l2Dist3=(e,t)=>l2Norm3(e[0]-t[0],e[1]-t[1],e[2]-t[2]),elementwiseMean=(e,t)=>map(Math.min(e.length,t.length),(r=>(e[r]+t[r])/2)),matVecProduct3=(e,t)=>[dot3(e[0],t),dot3(e[1],t),dot3(e[2],t)],r=/^#?([0-9a-f]{3,8})$/i,isValidHex=e=>{const t=r.exec(e)?.[1].length;return null!=t&&5!==t&&7!==t},rgb2hex=e=>{let t,r=alphaNormalize(e[3]),n=(16777216|e[0]+.5<<16|e[1]+.5<<8|e[2]+.5).toString(16).slice(1);return r<1&&(r=255*r+.5|0,t=r.toString(16),n+=r<16?"0"+t:t),("#"+n).toUpperCase()},hex2rgb=e=>{const t=r.exec(e),n=t?.[1].length;if(!n||5===n||7===n)return[0,0,0,1];const o=parseInt(t[1],16);let a;return n<5?(a=n<4?8:12,[17*(o>>a&15),17*(o>>a-4&15),17*(o>>a-8&15),n>3?17*(15&o)/255:1]):(a=n<8?16:24,[o>>a&255,o>>a-8&255,o>>a-16&255,n>6?(255&o)/255:1])},n=[],o=[],a=[],l={name_:"XYZ",labels_:["X","Y","Z"],isSupported_:!0},s=(()=>{const e=[[41.24564,35.75761,18.04375],[21.26729,71.51522,7.2175],[1.93339,11.9192,95.03041]],t=[[43.60747,38.50649,14.30804],[22.25045,71.68786,6.06169],[1.39322,9.71045,71.41733]],setReferenceWhite=r=>{const s="D50"===r?t:e,i=map(s,(e=>e[0]+e[1]+e[2])),u=(e=>{const[[t,r,n],[o,a,l],[s,i,u]]=e,c=a*u-i*l,g=l*s-o*u,h=o*i-s*a,m=t*c+r*g+n*h;return m?[[c/m,(n*i-r*u)/m,(r*l-n*a)/m],[g/m,(t*u-n*s)/m,(o*n-t*l)/m],[h/m,(s*r-t*i)/m,(t*a-o*r)/m]]:null})(s);u&&(n.splice(0,3,...cloneDeep(s)),o.splice(0,3,...u),a.splice(0,3,...i),l.max_=map(i,(e=>[0,e])),l.white_="D50"===r?"d50":"d65")};return setReferenceWhite("D65"),setReferenceWhite})(),[i,u]=(()=>{const e=6/29,t=e**3,r=841/108,n=4/29;return[e=>e>t?Math.cbrt(e):r*e+n,t=>t>e?t*t*t:(t-n)/r]})(),rgb2xyz=e=>{const t=e[3],r=[srgb2linearRgb(e[0]),srgb2linearRgb(e[1]),srgb2linearRgb(e[2])];return[dot3(n[0],r),dot3(n[1],r),dot3(n[2],r),t]},xyz2rgb=e=>{const t=e[3],r=dot3(o[0],e),n=dot3(o[1],e),a=dot3(o[2],e);return[linearRgb2srgb(r<1?r>0?r:0:1),linearRgb2srgb(n<1?n>0?n:0:1),linearRgb2srgb(a<1?a>0?a:0:1),t]},hsbHelper=e=>{const t=e[3],r=e[0],n=e[1],o=e[2],a=Math.max(r,n,o),l=Math.min(r,n,o),s=a-l;let i;return i=a===o?(r-n)/s+4:a===n?(o-r)/s+2:(n-o)/s+(n<o?6:0),[s&&60*i,l,a,s,t]},rgb2hsb=e=>{const[t,,r,n,o]=hsbHelper(e);return[t,n/r*100||0,r/2.55,o]},hsb2rgb=e=>{const t=e[3],r=e[0]/60,n=e[1]/100,o=2.55*e[2],a=o*n,f=e=>o-a*((e=(e=((e+r)%6+6)%6)<2?e:4-e)<1?e>0?e:0:1);return[f(5),f(3),f(1),t]},rgb2hsl=e=>{const[t,r,n,o,a]=hsbHelper(e),l=n+r;return[t,o/(l<255?l:510-l)*100||0,l/5.1,a]},hsl2rgb=e=>{const t=e[3],r=e[0]/30,n=2.55*e[2],o=e[1]/100*(n<127.5?n:255-n),f=e=>n-o*((e=(e=((e+r)%12+12)%12)<6?e-3:9-e)<1?e>-1?e:-1:1);return[f(0),f(8),f(4),t]},rgb2hwb=e=>{const[t,r,n,,o]=hsbHelper(e);return[t,r/2.55,100-n/2.55,o]},hwb2rgb=e=>{const t=e[3],r=e[2];let n=e[1],o=100-r;return n+r>100&&(o=n/=(n+r)/100),hsb2rgb([e[0],100-100*n/o||0,o,t])},rgb2cmyk=e=>{const t=e[3],r=e[0],n=e[1],o=e[2],a=.01*Math.max(r,n,o);return[100-r/a||0,100-n/a||0,100-o/a||0,100-a/.0255,t]},cmyk2rgb=e=>{const t=e[4],r=255-2.55*e[3];let n=1-e[0]/100,o=1-e[1]/100,a=1-e[2]/100;return n*=r,o*=r,a*=r,[n,o,a,t]},lcc2lch=e=>{const r=e[1],n=e[2],o=t(Math.atan2(n,r));return[e[0],l2Norm3(r,n),o<0?o+360:o,e[3]]},lch2lcc=t=>{const r=e(t[2]);return[t[0],t[1]*Math.cos(r),t[1]*Math.sin(r),t[3]]},rgb2lab=e=>{const t=e[3],r=rgb2xyz(e),n=i(r[1]/a[1]);return[116*n-16,500*(i(r[0]/a[0])-n),200*(n-i(r[2]/a[2])),t]},lab2rgb=e=>{const t=e[3],r=(e[0]+16)/116,n=r+e[1]/500,o=r-e[2]/200;return xyz2rgb([u(n)*a[0],u(r)*a[1],u(o)*a[2],t])},rgb2lchab=e=>lcc2lch(rgb2lab(e)),lchab2rgb=e=>lab2rgb(lch2lcc(e)),[c,g]=(()=>{const weightedSum=e=>e[0]+15*e[1]+3*e[2];return[e=>{const t=e[3],r=rgb2xyz(e),n=weightedSum(a),o=4*a[0]/n,l=9*a[1]/n,s=116*i(r[1]/a[1])-16,u=1/weightedSum(r);return[s,13*s*(4*r[0]*u-o)||0,13*s*(9*r[1]*u-l)||0,t]},e=>{if(!e[0])return[0,0,0,e[3]];const t=e[3],r=e[0],n=e[1],o=e[2],l=1/weightedSum(a),s=4*a[0]*l,i=9*a[1]*l,c=u((r+16)/116)*a[1],g=52/(n+13*r*s),h=39*c/(o+13*r*i);return xyz2rgb([3*h/g,c,r*h-h/g-5*c,t])}]})(),rgb2lchuv=e=>lcc2lch(c(e)),lchuv2rgb=e=>g(lch2lcc(e)),rgb2oklab=e=>{const t=rgb2xyz(e),r=t[3],n=t[0],o=t[1],a=t[2],l=Math.cbrt(.008189330101*n+.003618667424*o+-.001288597137*a),s=Math.cbrt(.000329845436*n+.009293118715*o+.000361456387*a),i=Math.cbrt(.000482003018*n+.002643662691*o+.00633851707*a);return[.2104542553*l+.793617785*s+-.0040720468*i,1.9779984951*l+-2.428592205*s+.4505937099*i,.0259040371*l+.7827717662*s+-.808675766*i,r]},oklab2rgb=e=>{const t=e[3],r=e[0],n=e[1],o=e[2];let a=.9999999984505199*r+.39633779217376786*n+.2158037580607588*o,l=1.0000000088817607*r+-.10556134232365634*n+-.0638541747717059*o,s=1.000000054672411*r+-.08948418209496577*n+-1.291485537864092*o;a*=a*a,l*=l*l,s*=s*s;return xyz2rgb([122.7013851103521*a+-55.77999806518222*l+28.12561489664678*s,-4.058017842328059*a+111.225686961683*l+-7.167667866560119*s,-7.63812845057069*a+-42.14819784180127*l+158.6163220440795*s,t])},rgb2oklch=e=>lcc2lch(rgb2oklab(e)),oklch2rgb=e=>oklab2rgb(lch2lcc(e)),h=(()=>{const e=[[0,360],[0,100],[0,100]],t=[[0,100],[0,150],[0,360]],identityMap=e=>[...e],r=[{name_:"RGB",fromRgb_:identityMap,toRgb_:identityMap,labels_:["Red","Green","Blue"],max_:map(3,(()=>[0,255])),isSupported_:!0},{name_:"HSL",fromRgb_:rgb2hsl,toRgb_:hsl2rgb,labels_:["Hue","Saturation","Luminance"],max_:e,isSupported_:!0},{name_:"HSB",fromRgb_:rgb2hsb,toRgb_:hsb2rgb,labels_:["Hue","Saturation","Brightness"],max_:e,isSupported_:!1},{name_:"HWB",fromRgb_:rgb2hwb,toRgb_:hwb2rgb,labels_:["Hue","Whiteness","Blackness"],max_:e,isSupported_:!0},{name_:"CMYK",fromRgb_:rgb2cmyk,toRgb_:cmyk2rgb,labels_:["Cyan","Magenta","Yellow","Black"],max_:map(4,(()=>[0,100])),isSupported_:!1},(l.fromRgb_=rgb2xyz,l.toRgb_=xyz2rgb,l),{name_:"LAB",fromRgb_:rgb2lab,toRgb_:lab2rgb,labels_:["L*","a*","b*"],max_:[[0,100],[-125,125],[-125,125]],isSupported_:!0},{name_:"LUV",fromRgb_:c,toRgb_:g,labels_:["L*","u*","v*"],max_:[[0,100],[-134,220],[-140,122]],isSupported_:!1},{name_:"LCHab",fromRgb_:rgb2lchab,toRgb_:lchab2rgb,labels_:["L*","C*","h"],max_:t,isSupported_:!0},{name_:"LCHuv",fromRgb_:rgb2lchuv,toRgb_:lchuv2rgb,labels_:["L*","C*","h"],max_:t,isSupported_:!1},{name_:"Oklab",fromRgb_:rgb2oklab,toRgb_:oklab2rgb,labels_:["L","a","b"],max_:[[0,1],[-.4,.4],[-.4,.4]],isSupported_:!0},{name_:"Oklch",fromRgb_:rgb2oklch,toRgb_:oklch2rgb,labels_:["L","C","h"],max_:[[0,1],[0,.4],[0,360]],isSupported_:!0}];if("undefined"!=typeof CSS)for(const e of r){const t=/^LCH/.test(e.name_)?"lch":e.name_,r=map(e.labels_,(()=>0)).join(" ");e.isSupported_=CSS.supports("color","XYZ"===t?`color(xyz ${r})`:`${t}(${r})`)}return r})(),m={RGB:0,HSL:1,HSB:2,HWB:3,CMYK:4,XYZ:5,LAB:6,LUV:7,LCHAB:8,LCHUV:9,OKLAB:10,OKLCH:11},getColorSpace=(e=h[0])=>"string"==typeof e?(e=e.toUpperCase(),h[m[e]??0]):e,getSpaceRange=e=>map(getColorSpace(e).max_,(e=>[e[0],e[1]])),toSpace=(e,t,r)=>(t=getColorSpace(t))===(r=getColorSpace(r))?[...e]:"RGB"===t.name_?r.fromRgb_(e):"RGB"===r.name_?t.toRgb_(e):r.fromRgb_(t.toRgb_(e)),getCssColor=(e,t="RGB",r={})=>{let n,o,a,l=0,s="",{checkSupport_:i=!1,sep_:u=" ",percent_:c=!0,place_:g=2}=r;if(t=getColorSpace(t),i&&!t.isSupported_)return getCssColor(t.toRgb_(e),h[0],r);u=i?" ":u,g=!0===g?2:g;const m=/^LCH/.test(t.name_)?"lch":t.name_.toLowerCase(),d="xyz"===m,_=!1===g?e=>e:round;for([,a]of t.max_)n=e[l++],o=c&&360!==a?"%":"",d&&!c&&i?n/=100:!d&&o&&(n*=100/a),s&&(s+=u),s+=_(n,g)+o;return n=alphaNormalize(e[l]),s+=n<1?" / "+(c?_(100*n,g)+"%":_(n,g)):"",d&&i?`color(xyz-${t.white_??"d65"} ${s})`:`${m}(${s})`},rgbArraylize=e=>"string"==typeof e?hex2rgb(e):e,alphaNormalize=e=>void 0===e?1:clip(e,0,1),getAlpha=e=>alphaNormalize(e[e.length-1]),mapNonAlpha=(e,t)=>map(e,((e,r)=>r<3?t(e,r):e)),rgb2hue=e=>hsbHelper(rgbArraylize(e))[0],srgb2linearRgb=e=>e<10.31475?e/3294.6:pow((e+14.025)/269.025,2.4),linearRgb2srgb=e=>e<.0031308?3294.6*e:269.025*pow(e,1/2.4)-14.025,rgb2gray=e=>dot3(rgbArraylize(e),[.299,.587,.114]),isLight=e=>rgb2gray(e)>127.5,rgb2luminance=e=>(e=rgbArraylize(e),.2126*srgb2linearRgb(e[0])+.7152*srgb2linearRgb(e[1])+.0722*srgb2linearRgb(e[2])),d=rgb2luminance,rgb2contrast=(e,t)=>{const r=(rgb2luminance(e)+.05)/(rgb2luminance(t)+.05);return round(r<1?1/r:r,2)},_=rgb2contrast,isReadable=(e,t,r={})=>{const{levelAAA:n,isLarge:o}=r,a=n&&!o?7:!n&&o?3:4.5;return rgb2contrast(e,t)>=a},randRgbGen=(e=!1)=>[randInt(255),randInt(255),randInt(255),e?Math.random():1],b=["mean","brighter","deeper","soft light","additive","weighted"],mix=(e,t,r=.5,n=1-r)=>{const o=Math.min(e.length,t.length);let a=r+n,l=a<1?a:1;return 1!==a&&(r/=a,n/=a),r*=getAlpha(e),n*=getAlpha(t),a=r+n,map(o,(s=>s<o-1?(r*e[s]+n*t[s])/a:a*l))},meanMix=(e,t)=>mix(e,t),gammaMix=(e,t,r=.3)=>{const n=mix(e,t),o=rgb2hsl(n);return o[1]=100*pow(o[1]/100,r),o[2]=100*pow(o[2]/100,r),hsl2rgb(o)},brighterMix=(e,t)=>gammaMix(e,t,.3),deeperMix=(e,t)=>gammaMix(e,t,1.5),blendAndComposite=(e,t,r)=>{const n=getAlpha(t),o=getAlpha(e),a=n*o,l=n-a,s=o-a,i=n+o-a;return map(4,(n=>{if(n<3){return(l*t[n]+s*e[n]+255*a*r(e[n]/255,t[n]/255))/i}return i}))},softLightBlend=(e,t,r="w3c")=>{let n,o;return n="photoshop"===r?(e,t)=>t<.5?e*(2*t+e*(1-2*t)):2*e*(1-t)+Math.sqrt(e)*(2*t-1):"pegtop"===r?(e,t)=>e*(2*t+e*(1-2*t)):"illusions.hu"===r?(e,t)=>pow(e,pow(2,1-2*t)):(e,t)=>t<=.5?e-(1-2*t)*e*(1-e):(o=e<=.25?((16*e-12)*e+4)*e:Math.sqrt(e),e+(2*t-1)*(o-e)),blendAndComposite(e,t,n)},additive=(e,t)=>{const r=getAlpha(e),n=getAlpha(t),o=clip(r+n,0,1);return map(e,((e,a)=>a<3?clip((r*e+n*t[a])/o,0,255):o),4)},mixColors=(e,t="mean",...r)=>{t=normalizeOption(t,b);const n={[b[0]]:meanMix,[b[1]]:brighterMix,[b[2]]:deeperMix,[b[3]]:softLightBlend,[b[4]]:additive,[b[5]]:mix}[t];let o=[...e[0]],a=1;for(;a<e.length;)o=n(o,e[a++],...r);return o},p=["shades","tints","tones","analogous","triadic","square","complementary","split complementary","tetradic1","tetradic2","tetradic3"],shiftHue=(e,t)=>{const[r,n,o,a]=e;return map(t,(e=>[r+e,n,o,a]))},shades=(e,t=6)=>{const[r,n,o,a]=e;return map(t,(e=>[r,n,o*(1-e/t),a]))},tints=(e,t=6)=>{const[r,n,o,a]=e;return map(t,(e=>[r,n*(1-e/t),o,a]))},tones=(e,t=6)=>{const[r,n,o,a]=e;return map(t,(e=>[r,n*(e=1-e/t),o*e,a]))},M={[p[0]]:shades,[p[1]]:tints,[p[2]]:tones,[p[3]]:[-30,0,30],[p[4]]:[0,120,240],[p[5]]:[0,90,180,270],[p[6]]:[0,180],[p[7]]:[0,150,210],[p[8]]:[0,30,180,210],[p[9]]:[0,60,180,240],[p[10]]:[0,30,150,180]},harmonize=(e,t,r)=>{t=normalizeOption(t,p,"analogous");const n=M[t],o=Array.isArray(n)?shiftHue(e,n):n(e,r);return map(o,(e=>hsb2rgb(e)))},y=["linear","gamma","auto enhancement","auto brightness"],scaling=(e,t=1)=>map(e,(e=>mapNonAlpha(e,(e=>clip(e*t,0,255))))),gammaCorrection=(e,t=1)=>map(e,(e=>mapNonAlpha(e,(e=>255*pow(e/255,t))))),autoEnhancement=e=>{let t,r=1/0,n=0,o=0;const a=map(e,(e=>{const t=rgb2lab(e),o=t[0];return o<r&&(r=o),o>n&&(n=o),t}));for(;o<a.length;)t=a[o],t[0]=rangeMapping(t[0],r,n,0,100),a[o++]=lab2rgb(t);return a},autoBrightness=(e,t=.7)=>{let r,n,o=0;const a=map(e,(e=>(n=rgb2lab(e),o+=n[0],n)));return t<=1e-7?map(a,(e=>mapNonAlpha(e,(e=>0)))):o<1e-5||1===t?map(a,(e=>mapNonAlpha(e,(e=>255)))):(r=Math.log(t)/Math.log(o/e.length/100),map(a,(e=>(e[0]=100*pow(e[0]/100,r),lab2rgb(e)))))},getAdjuster=e=>e===y[0]?scaling:e===y[1]?gammaCorrection:e===y[2]?autoEnhancement:autoBrightness,adjContrast=(e,t,...r)=>{t=normalizeOption(t,y);return getAdjuster(t)(e,...r)},k=["brightness","random","reversion","CIE76","CIE94","CIEDE2000"],diffBrightness=(e,t)=>rgb2gray(e)-rgb2gray(t),distE76=(e,t)=>l2Dist3(e,t),distE94=(e,t)=>{const r=e[0],n=e[1],o=e[2],a=t[0],l=t[1],s=t[2],i=l2Norm3(n,o),u=n-l,c=o-s,g=r-a,h=i-l2Norm3(l,s),m=Math.sqrt(u*u+c*c-h*h)||0;return l2Norm3(g,h/(1+.045*i),m/(1+.015*i))},R=(()=>{const r=Math.cos(e(6)),n=Math.sin(e(6)),o=Math.cos(e(30)),a=Math.cos(e(63)),l=Math.sin(e(63));return(s,i)=>{const u=s[0],c=s[1],g=s[2],h=i[0],m=i[1],d=i[2],_=l2Norm3(c,g),b=l2Norm3(m,d),p=pow((_+b)/2,7),M=(1-Math.sqrt(p/(p+6103515625)))/2,y=c*(1+M),k=m*(1+M),R=l2Norm3(y,g),w=l2Norm3(k,d);let S=t(Math.atan2(g,y)),x=t(Math.atan2(d,k));S<0&&(S+=360),x<0&&(x+=360);let L=x-S,v=(S+x)/2;R*w==0?(L=0,v*=2):(L>180||L<-180)&&(L+=360,v+=v<180?180:-180);const C=Math.cos(e(v)),q=Math.sin(e(v)),B=2*C*C-1,H=1+.2*a-.17*(C*o+q/2)+.32*((4*C*C-3)*C*r+(4*q*q-3)*q*n)+.4*B*(.6-B*a-2*C*q*l),A=((u+h)/2-50)**2,$=(R+w)/2,D=pow($,7),E=1+.015*A/Math.sqrt(20+A),Y=1+.045*$,G=1+.015*$*H,I=2*Math.sqrt(D/(D+6103515625))*Math.sin(e(60/Math.exp((v/25-11)**2))),O=(h-u)/E,U=(w-R)/Y,j=2*Math.sqrt(R*w)*Math.sin(e(L/2))/G;return Math.sqrt(squareSum4(O,U,j)-I*U*j)}})(),shuffle=e=>{let t;for(let r=e.length-1;r>0;r--)t=randInt(r),[e[r],e[t]]=[e[t],e[r]];return e},tspGreedy=(e,t,r,n=!1)=>{const o=e.length,a=map(e,(e=>rgb2lab(t(e)))),l=map(o-1,(e=>e+1)),s=[e[0]];let i,u,c,g,h,m=a[0],d=o-1;for(;d>1;){for(u=1/0,c=0,h=0;h<d;h++)i=r(m,a[l[h]]),i<u&&(u=i,c=h);g=l[c],l[c]=l[--d],l[d]=g,m=a[g],s.push(e[g])}return s.push(e[l[0]]),n?cloneDeep(s):s},sortColors=(e,t,r)=>{t=normalizeOption(t,k,"CIEDE2000");let n,o=cloneDeep(e);return t===k[0]?o=o.sort(((e,t)=>diffBrightness(r(e),r(t)))):t===k[1]?o=shuffle(o):t===k[2]?o.reverse():n=t===k[3]?distE76:t===k[4]?distE94:R,n&&(o=tspGreedy(o,r,n)),o},sortRgbs=(e,t)=>sortColors(e,t,(e=>e)),w=new Map(Object.entries({rosybrown:[188,143,143],indianred:[205,92,92],brown:[165,42,42],firebrick:[178,34,34],lightcoral:[240,128,128],maroon:[128,0,0],darkred:[139,0,0],red:[255,0,0],snow:[255,250,250],mistyrose:[255,228,225],salmon:[250,128,114],tomato:[255,99,71],darksalmon:[233,150,122],coral:[255,127,80],orangered:[255,69,0],lightsalmon:[255,160,122],sienna:[160,82,45],seashell:[255,245,238],chocolate:[210,105,30],saddlebrown:[139,69,19],sandybrown:[244,164,96],peachpuff:[255,218,185],peru:[205,133,63],linen:[250,240,230],bisque:[255,228,196],darkorange:[255,140,0],burlywood:[222,184,135],antiquewhite:[250,235,215],tan:[210,180,140],navajowhite:[255,222,173],blanchedalmond:[255,235,205],papayawhip:[255,239,213],moccasin:[255,228,181],orange:[255,165,0],wheat:[245,222,179],oldlace:[253,245,230],floralwhite:[255,250,240],darkgoldenrod:[184,134,11],goldenrod:[218,165,32],cornsilk:[255,248,220],gold:[255,215,0],lemonchiffon:[255,250,205],khaki:[240,230,140],palegoldenrod:[238,232,170],darkkhaki:[189,183,107],beige:[245,245,220],lightgoldenrodyellow:[250,250,210],olive:[128,128,0],yellow:[255,255,0],lightyellow:[255,255,224],ivory:[255,255,240],olivedrab:[107,142,35],yellowgreen:[154,205,50],darkolivegreen:[85,107,47],greenyellow:[173,255,47],chartreuse:[127,255,0],lawngreen:[124,252,0],darkseagreen:[143,188,143],forestgreen:[34,139,34],limegreen:[50,205,50],lightgreen:[144,238,144],palegreen:[152,251,152],darkgreen:[0,100,0],green:[0,128,0],lime:[0,255,0],honeydew:[240,255,240],seagreen:[46,139,87],mediumseagreen:[60,179,113],springgreen:[0,255,127],mintcream:[245,255,250],mediumspringgreen:[0,250,154],mediumaquamarine:[102,205,170],aquamarine:[127,255,212],turquoise:[64,224,208],lightseagreen:[32,178,170],mediumturquoise:[72,209,204],darkslategray:[47,79,79],paleturquoise:[175,238,238],teal:[0,128,128],darkcyan:[0,139,139],cyan:[0,255,255],lightcyan:[224,255,255],azure:[240,255,255],darkturquoise:[0,206,209],cadetblue:[95,158,160],powderblue:[176,224,230],lightblue:[173,216,230],deepskyblue:[0,191,255],skyblue:[135,206,235],lightskyblue:[135,206,250],steelblue:[70,130,180],aliceblue:[240,248,255],dodgerblue:[30,144,255],slategray:[112,128,144],lightslategray:[119,136,153],lightsteelblue:[176,196,222],cornflowerblue:[100,149,237],royalblue:[65,105,225],midnightblue:[25,25,112],lavender:[230,230,250],navy:[0,0,128],rebeccapurple:[102,51,153],darkblue:[0,0,139],mediumblue:[0,0,205],blue:[0,0,255],ghostwhite:[248,248,255],slateblue:[106,90,205],darkslateblue:[72,61,139],mediumslateblue:[123,104,238],mediumpurple:[147,112,216],blueviolet:[138,43,226],indigo:[75,0,130],darkorchid:[153,50,204],darkviolet:[148,0,211],mediumorchid:[186,85,211],thistle:[216,191,216],plum:[221,160,221],violet:[238,130,238],purple:[128,0,128],darkmagenta:[139,0,139],magenta:[255,0,255],orchid:[218,112,214],mediumvioletred:[199,21,133],deeppink:[255,20,147],hotpink:[255,105,180],palevioletred:[216,112,147],lavenderblush:[255,240,245],crimson:[220,20,60],pink:[255,192,203],lightpink:[255,182,193],white:[255,255,255],whitesmoke:[245,245,245],gainsboro:[220,220,220],lightgray:[211,211,211],silver:[192,192,192],darkgray:[169,169,169],gray:[128,128,128],dimgray:[105,105,105],black:[0,0,0]})),rgb2named=e=>{let t,r,n=1/0;for(const[o,a]of w)t=l2Dist3(e,a),t<n&&(r=o,n=t);return r},named2rgb=e=>{let t=w.get(e.toLowerCase());return void 0===t?t=[0,0,0,1]:t[3]=1,t};export{h as COLOR_SPACES,y as CONTRAST_METHODS,p as HARMONY_METHODS,b as MIXING_MODES,k as SORTING_ACTIONS,additive,adjContrast,alphaNormalize,autoBrightness,autoEnhancement,blendAndComposite,brighterMix,i as cieTrans,u as cieTransInv,clip,cloneDeep,cmyk2rgb,deeperMix,e as deg2rad,diffBrightness,R as distE00,distE76,distE94,dot3,elementwiseMean,gammaCorrection,gammaMix,getAdjuster,getAlpha,getColorSpace,_ as getContrastRatio,getCssColor,d as getRelativeLuminance,getSpaceRange,harmonize,hex2rgb,hsb2rgb,hsbHelper,hsl2rgb,hwb2rgb,isLight,isReadable,isValidHex,l2Dist3,l2Norm3,lab2rgb,lcc2lch,lch2lcc,lchab2rgb,lchuv2rgb,linearRgb2srgb,g as luv2rgb,map,mapNonAlpha,matVecProduct3,meanMix,mix,mixColors,named2rgb,w as namedColor,oklab2rgb,oklch2rgb,pow,t as rad2deg,randInt,randRgbGen,rangeMapping,rgb2cmyk,rgb2contrast,rgb2gray,rgb2hex,rgb2hsb,rgb2hsl,rgb2hue,rgb2hwb,rgb2lab,rgb2lchab,rgb2lchuv,rgb2luminance,c as rgb2luv,rgb2named,rgb2oklab,rgb2oklch,rgb2xyz,rgbArraylize,round,scaling,s as setReferenceWhite,shades,shiftHue,shuffle,softLightBlend,sortColors,sortRgbs,squareSum4,srgb2linearRgb,tints,toSpace,tones,tspGreedy,xyz2rgb};