UNPKG

@johnny95731/color-utils

Version:

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

2 lines (1 loc) 17.4 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 a=0;if("number"==typeof e)for(;a<e;)n[a]=t(a++);else for(;a<r;)n[a]=t(e[a],a++);return n},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?e=t:e>r&&(e=r),e),rangeMapping=(e,t,r,n,a,o)=>{const l=n+clip((e-t)/(r-t),0,1)*(a-n);return null==o?l:round(l,o)},[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=/^#?(([\dA-F]{3}){1,2})$/i,isValidHex=e=>r.test(e),rgb2hex=e=>("#"+(1<<24|Math.round(e[0])<<16|Math.round(e[1])<<8|Math.round(e[2])).toString(16).slice(1)).toUpperCase(),hex2rgb=e=>{const t=r.exec(e);if(!t)return[0,0,0];3===(e=t[1]).length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);const n=parseInt(e,16);return[n>>16,n>>8&255,255&n]},n=[],a=[],o=[],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],[a,o,l],[s,i,u]]=e,h=o*u-i*l,c=l*s-a*u,m=a*i-s*o,_=t*h+r*c+n*m;return _?[[h/_,(n*i-r*u)/_,(r*l-n*o)/_],[c/_,(t*u-n*s)/_,(a*n-t*l)/_],[m/_,(s*r-t*i)/_,(t*o-a*r)/_]]:null})(s);u&&(n.splice(0,3,...cloneDeep(s)),a.splice(0,3,...u),o.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=[srgb2linearRgb(e[0]),srgb2linearRgb(e[1]),srgb2linearRgb(e[2])];return[dot3(n[0],t),dot3(n[1],t),dot3(n[2],t)]},xyz2rgb=e=>{const t=dot3(a[0],e),r=dot3(a[1],e),n=dot3(a[2],e);return[linearRgb2srgb(t<1?t>0?t:0:1),linearRgb2srgb(r<1?r>0?r:0:1),linearRgb2srgb(n<1?n>0?n:0:1)]},hsbHelper=e=>{const t=e[0],r=e[1],n=e[2],a=Math.max(t,r,n),o=Math.min(t,r,n),l=a-o;let s;return s=a===n?(t-r)/l+4:a===r?(n-t)/l+2:(r-n)/l+(r<n?6:0),[l&&60*s,o,a,l]},rgb2hsb=e=>{const[t,,r,n]=hsbHelper(e);return[t,n/r*100||0,r/2.55]},hsb2rgb=e=>{const t=e[0]/60,r=e[1]/100,n=2.55*e[2],a=n*r,f=e=>n-a*((e=(e=((e+t)%6+6)%6)<2?e:4-e)<1?e>0?e:0:1);return[f(5),f(3),f(1)]},rgb2hsl=e=>{const[t,r,n,a]=hsbHelper(e),o=n+r;return[t,a/(o<255?o:510-o)*100||0,o/5.1]},hsl2rgb=e=>{const t=e[0]/30,r=2.55*e[2],n=e[1]/100*(r<127.5?r:255-r),f=e=>r-n*((e=(e=((e+t)%12+12)%12)<6?e-3:9-e)<1?e>-1?e:-1:1);return[f(0),f(8),f(4)]},rgb2hwb=e=>{const[t,r,n]=hsbHelper(e);return[t,r/2.55,100-n/2.55]},hwb2rgb=e=>{let t=e[1],r=e[2],n=100-r;return t+r>100&&(n=t/=(t+r)/100),hsb2rgb([e[0],100-100*t/n||0,n])},rgb2cmyk=e=>{const t=e[0],r=e[1],n=e[2],a=.01*Math.max(t,r,n);return[100-t/a||0,100-r/a||0,100-n/a||0,100-a/.0255]},cmyk2rgb=e=>{let t=255-2.55*e[3],r=1-e[0]/100,n=1-e[1]/100,a=1-e[2]/100;return r*=t,n*=t,a*=t,[r,n,a]},lcc2lch=e=>{const r=e[1],n=e[2],a=t(Math.atan2(n,r));return[e[0],l2Norm3(r,n),a<0?a+360:a]},lch2lcc=t=>{const r=e(t[2]);return[t[0],t[1]*Math.cos(r),t[1]*Math.sin(r)]},rgb2lab=e=>{const t=rgb2xyz(e),r=i(t[1]/o[1]);return[116*r-16,500*(i(t[0]/o[0])-r),200*(r-i(t[2]/o[2]))]},lab2rgb=e=>{const t=(e[0]+16)/116,r=t+e[1]/500,n=t-e[2]/200;return xyz2rgb([u(r)*o[0],u(t)*o[1],u(n)*o[2]])},rgb2lchab=e=>lcc2lch(rgb2lab(e)),lchab2rgb=e=>lab2rgb(lch2lcc(e)),[h,c]=(()=>{const weightedSum=e=>e[0]+15*e[1]+3*e[2];return[e=>{const t=rgb2xyz(e),r=weightedSum(o),n=4*o[0]/r,a=9*o[1]/r,l=116*i(t[1]/o[1])-16,s=1/weightedSum(t);return[l,13*l*(4*t[0]*s-n)||0,13*l*(9*t[1]*s-a)||0]},e=>{if(!e[0])return[0,0,0];const t=e[0],r=e[1],n=e[2],a=1/weightedSum(o),l=4*o[0]*a,s=9*o[1]*a,i=u((t+16)/116)*o[1],h=52/(r+13*t*l),c=39*i/(n+13*t*s);return xyz2rgb([3*c/h,i,t*c-c/h-5*i])}]})(),rgb2lchuv=e=>lcc2lch(h(e)),lchuv2rgb=e=>c(lch2lcc(e)),rgb2oklab=e=>{const t=rgb2xyz(e),r=t[0],n=t[1],a=t[2],o=Math.cbrt(.008189330101*r+.003618667424*n+-.001288597137*a),l=Math.cbrt(.000329845436*r+.009293118715*n+.000361456387*a),s=Math.cbrt(.000482003018*r+.002643662691*n+.00633851707*a);return[.2104542553*o+.793617785*l+-.0040720468*s,1.9779984951*o+-2.428592205*l+.4505937099*s,.0259040371*o+.7827717662*l+-.808675766*s]},oklab2rgb=e=>{const t=e[0],r=e[1],n=e[2];let a=.9999999984505199*t+.39633779217376786*r+.2158037580607588*n,o=1.0000000088817607*t+-.10556134232365634*r+-.0638541747717059*n,l=1.000000054672411*t+-.08948418209496577*r+-1.291485537864092*n;a*=a*a,o*=o*o,l*=l*l;return xyz2rgb([122.7013851103521*a+-55.77999806518222*o+28.12561489664678*l,-4.058017842328059*a+111.225686961683*o+-7.167667866560119*l,-7.63812845057069*a+-42.14819784180127*o+158.6163220440795*l])},rgb2oklch=e=>lcc2lch(rgb2oklab(e)),oklch2rgb=e=>oklab2rgb(lch2lcc(e)),m=(()=>{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_:h,toRgb_:c,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})(),_={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=m[0])=>"string"==typeof e?(e=e.toUpperCase(),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,a,o,{checkSupport_:l=!1,sep_:s=" ",percent_:i=!0,place_:u=2}=r;if(t=getColorSpace(t),l&&!t.isSupported_)return getCssColor(t.toRgb_(e),m[0],r);l&&(s=" "),!0===u&&(u=2);const h=!1===u,c=/^LCH/.test(t.name_)?"lch":t.name_.toLowerCase(),_="xyz"===c,g=t.max_.reduce(((t,r,c)=>(o=r[1],n=e[c],a=i&&360!==o||100===o?"%":"",_&&!i&&l?n/=100:!_&&i&&360!==o&&(n*=100/o),t+(c?s:"")+(h?n:round(n,u))+a)),"");return _&&l?`color(xyz-${t.white_??""} ${g})`:`${c}(${g})`},rgbArraylize=e=>"string"==typeof e?hex2rgb(e):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,getRelativeLuminance=e=>(e=rgbArraylize(e),.2126*srgb2linearRgb(e[0])+.7152*srgb2linearRgb(e[1])+.0722*srgb2linearRgb(e[2])),getContrastRatio=(e,t)=>{const r=(getRelativeLuminance(e)+.05)/(getRelativeLuminance(t)+.05);return round(r<1?1/r:r,2)},isReadable=(e,t,r={})=>{const{levelAAA:n,isLarge:a}=r,o=n&&!a?7:!n&&a?3:4.5;return getContrastRatio(e,t)>=o},randRgbGen=()=>map(3,(()=>randInt(255))),g=["mean","brighter","deeper","soft light","additive","weighted"],mix=(e,t,r=.5,n=1-r)=>(r+n>1&&(n=1-(r/=r+n)),map(Math.min(e.length,t.length),(a=>r*e[a]+n*t[a]))),d=elementwiseMean,gammaMix=(e,t,r=.3)=>{const n=elementwiseMean(e,t),a=rgb2hsl(n);return a[1]=100*pow(a[1]/100,r),a[2]=100*pow(a[2]/100,r),hsl2rgb(a)},brighterMix=(e,t)=>gammaMix(e,t,.3),deeperMix=(e,t)=>gammaMix(e,t,1.5),softLightBlend=(e,t,r="w3c")=>{let n,a,o;return e=map(e,(e=>e/255)),t=map(t,(e=>e/255)),n="photoshop"===r?(e,r)=>(a=t[r],255*(a<.5?e*(2*a+e*(1-2*a)):2*e*(1-a)+Math.sqrt(e)*(2*a-1))):"pegtop"===r?(e,r)=>(a=t[r],255*e*(2*a+e*(1-2*a))):"illusions.hu"===r?(e,r)=>(a=t[r],255*e**(2**(1-2*a))):(e,r)=>(a=t[r],o=e<=.25?((16*e-12)*e+4)*e:Math.sqrt(e),255*(a<=.5?e-(1-2*a)*e*(1-e):e+(2*a-1)*(o-e))),map(e,n)},additive=(e,t)=>map(e,((e,r)=>clip(e+t[r],0,255)),3),mixColors=(e,t="mean",...r)=>{"number"==typeof t&&(t=g[t]);const n={[g[0]]:d,[g[1]]:brighterMix,[g[2]]:deeperMix,[g[3]]:softLightBlend,[g[4]]:additive,[g[5]]:mix}[t]??d;let a=[...e[0]],o=1;for(;o<e.length;)a=n(a,e[o++],...r);return a},p=["shades","tints","tones","analogous","triadic","square","complementary","split complementary","tetradic1","tetradic2","tetradic3"],shiftHue=(e,t)=>{const r=e[0],n=e[1],a=e[2];return t.map((e=>[r+e,n,a]))},shades=(e,t=6)=>{const[r,n,a]=e;return map(t,(e=>[r,n,a*(1-e/t)]))},tints=(e,t=6)=>{const[r,n,a]=e;return map(t,(e=>[r,n*(1-e/t),a]))},tones=(e,t=6)=>{const[r,n,a]=e;return map(t,(e=>[r,n*(e=1-e/t),a*e]))},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)=>{"number"==typeof t&&(t=p[t]),t||(t="analogous");const n=M[t],a=Array.isArray(n)?shiftHue(e,n):n(e,r);return map(a,(e=>hsb2rgb(e)))},b=["linear","gamma","auto enhancement","auto brightness"],scaling=(e,t=1)=>map(e,(e=>map(e,(e=>clip(e*t,0,255))))),gammaCorrection=(e,t=1)=>map(e,(e=>map(e,(e=>255*pow(e/255,t))))),autoEnhancement=e=>{let t,r=1/0,n=0,a=0;const o=map(e,(e=>{const t=rgb2lab(e),a=t[0];return a<r&&(r=a),a>n&&(n=a),t}));for(;a<o.length;)t=o[a],t[0]=rangeMapping(t[0],r,n,0,100),o[a++]=lab2rgb(t);return o},autoBrightness=(e,t=.7)=>{let r,n,a=0;const o=map(e,(e=>(n=rgb2lab(e),a+=n[0],n)));if(t<=1e-7)r=()=>[0,0,0];else if(a<1e-5||1===t)r=()=>[255,255,255];else{const n=Math.log(t)/Math.log(a/e.length/100);r=e=>(e[0]=100*pow(e[0]/100,n),lab2rgb(e))}return map(o,r)},getAdjuster=e=>e===b[0]?scaling:e===b[1]?gammaCorrection:e===b[2]?autoEnhancement:autoBrightness,adjContrast=(e,t,...r)=>{"number"==typeof t&&(t=b[t]),t||(t="linear");return getAdjuster(t)(e,...r)},S=["luminance","random","reversion","CIE76","CIE94","CIEDE2000"],diffLuminance=(e,t)=>rgb2gray(e)-rgb2gray(t),distE76=(e,t)=>l2Dist3(e,t),distE94=(e,t)=>{const r=e[0],n=e[1],a=e[2],o=t[0],l=t[1],s=t[2],i=l2Norm3(n,a),u=n-l,h=a-s,c=r-o,m=i-l2Norm3(l,s),_=Math.sqrt(u*u+h*h-m*m)||0;return squareSum4(c,m/(1+.045*i),_/(1+.015*i))},B=(()=>{const r=Math.cos(e(6)),n=Math.sin(e(6)),a=Math.cos(e(30)),o=Math.cos(e(63)),l=Math.sin(e(63));return(s,i)=>{const u=s[0],h=s[1],c=s[2],m=i[0],_=i[1],g=i[2],d=l2Norm3(h,c),p=l2Norm3(_,g),M=pow((d+p)/2,7),b=1.5-Math.sqrt(M/(M+6103515625))/2,S=h*b,B=_*b,R=l2Norm3(S,c),L=l2Norm3(B,g),y=(t(Math.atan2(c,S))+360)%360,G=(t(Math.atan2(g,B))+360)%360;let k=G-y,C=(y+G)/2;R&&L?(k>180||k<-180)&&(k+=360,C+=C<180?180:-180):(k=0,C*=2);const D=Math.cos(e(C)),x=Math.sin(e(C)),w=2*D*D-1,A=1+.2*o-.17*(D*a+x/2)+.32*((4*D*D-3)*D*r+(4*x*x-3)*x*n)+.4*w*(.6-w*o-2*D*x*l),q=((u+m)/2-50)**2,H=(R+L)/2,P=pow(H,7),v=1+.015*q/Math.sqrt(20+q),O=1+.045*H,W=1+.015*H*A,Y=2*Math.sqrt(P/(P+6103515625))*Math.sin(e(60/Math.exp((C/25-11)**2))),I=(m-u)/v,T=(L-R)/O,V=2*Math.sqrt(R*L)*Math.sin(e(k/2))/W;return Math.sqrt(squareSum4(I,T,V)-Y*T*V)}})(),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 a=[],o=map(e,((e,t)=>t)),l=map(e,(e=>rgb2lab(t(e))));let s,i,u,h=l[0];for(;o.length;){i=1/0,u=0;for(let e=0;e<o.length;e++)s=r(h,l[o[e]]),s<i&&(i=s,u=e);h=l[o[u]],a.push(e[o[u]]),o.splice(u,1)}return n?cloneDeep(a):a},sortColors=(e,t,r)=>{"number"==typeof t&&(t=S[t]);let n,a=cloneDeep(e);return t===S[0]?a=a.sort(((e,t)=>diffLuminance(r(e),r(t)))):t===S[1]?a=shuffle(a):t===S[2]?a.reverse():n=t===S[3]?distE76:t===S[4]?distE94:B,n&&(a=tspGreedy(a,r,n)),a},sortRgbs=(e,t)=>sortColors(e,t,(e=>e)),R=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[a,o]of R)t=l2Dist3(e,o),t<n&&(r=a,n=t);return r},named2rgb=e=>R.get(e)??[0,0,0];export{m as COLOR_SPACES,b as CONTRAST_METHODS,p as HARMONY_METHODS,g as MIXING_MODES,S as SORTING_ACTIONS,additive,adjContrast,autoBrightness,autoEnhancement,brighterMix,i as cieTrans,u as cieTransInv,clip,cloneDeep,cmyk2rgb,deeperMix,e as deg2rad,diffLuminance,B as distE00,distE76,distE94,dot3,elementwiseMean,gammaCorrection,gammaMix,getAdjuster,getColorSpace,getContrastRatio,getCssColor,getRelativeLuminance,getSpaceRange,harmonize,hex2rgb,hsb2rgb,hsbHelper,hsl2rgb,hwb2rgb,isLight,isReadable,isValidHex,l2Dist3,l2Norm3,lab2rgb,lcc2lch,lch2lcc,lchab2rgb,lchuv2rgb,linearRgb2srgb,c as luv2rgb,map,matVecProduct3,d as meanMix,mix,mixColors,named2rgb,R as namedColor,oklab2rgb,oklch2rgb,pow,t as rad2deg,randInt,randRgbGen,rangeMapping,rgb2cmyk,rgb2gray,rgb2hex,rgb2hsb,rgb2hsl,rgb2hue,rgb2hwb,rgb2lab,rgb2lchab,rgb2lchuv,h 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};