@studiotoolkit/color-palette-generator 1.0.0 → 1.0.1
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/dist/index.js +2 -4
- package/dist/index.mjs +1564 -1389
- package/package.json +8 -7
package/dist/index.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const mt=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),G=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,y=t=>Math.max(0,Math.min(1,t)),H=(t,n,o)=>t+(n-t)*o,st=Math.PI*2,Ft=({r:t,g:n,b:o})=>{const e=mt(t),s=mt(n),r=mt(o),l=Math.cbrt(.4122214708*e+.5363325363*s+.0514459929*r),c=Math.cbrt(.2119034982*e+.6806995451*s+.1073969566*r),a=Math.cbrt(.0883024619*e+.2817188376*s+.6299787005*r);return{L:.2104542553*l+.793617785*c-.0040720468*a,a:1.9779984951*l-2.428592205*c+.4505937099*a,b:.0259040371*l+.7827717662*c-.808675766*a}},Gt=({L:t,a:n,b:o})=>{const e=t+.3963377774*n+.2158037573*o,s=t-.1055613458*n-.0638541728*o,r=t-.0894841775*n-1.291485548*o,l=e*e*e,c=s*s*s,a=r*r*r;return{r:y(G(4.0767416621*l-3.3077115913*c+.2309699292*a)),g:y(G(-1.2684380046*l+2.6097574011*c-.3413193965*a)),b:y(G(-.0041960863*l-.7034186147*c+1.707614701*a))}},en=({L:t,a:n,b:o})=>({L:t,C:Math.sqrt(n*n+o*o),H:(Math.atan2(o,n)*180/Math.PI+360)%360}),sn=({L:t,C:n,H:o})=>({L:t,a:n*Math.cos(o*Math.PI/180),b:n*Math.sin(o*Math.PI/180)}),Xt=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),it=({r:t,g:n,b:o})=>{const e=s=>Math.round(s*255).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},k=t=>en(Ft(Xt(t))),D=t=>it(Gt(sn(t))),rn=t=>it(Gt(t)),St=(t,n,o)=>({L:H(t.L,n.L,o),a:H(t.a,n.a,o),b:H(t.b,n.b,o)}),Vt=t=>{let n=t>>>0;return()=>{n+=1831565813;let o=n;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}},Qt=t=>{let n=0;for(let o=1;o<7;o++)n=Math.imul(31,n)+parseInt(t[o],16)|0;return Math.abs(n)},gt=t=>{const n=[],o=Vt(t);for(let s=0;s<256;s++)n.push(o());const e=s=>s*s*(3-2*s);return s=>{const r=Math.floor(s)&255,l=s-Math.floor(s);return H(n[r],n[r+1&255],e(l))}},ft=(t,n,o,e,s)=>{const r=1-s;return r*r*r*t+3*r*r*s*n+3*r*s*s*o+s*s*s*e},an=(t,n,o,e,s)=>({L:ft(t.L,n.L,o.L,e.L,s),a:ft(t.a,n.a,o.a,e.a,s),b:ft(t.b,t.b,o.b,e.b,s)}),cn=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,ln=t=>{let n;t>=1667&&t<=4e3?n=-266123900/(t*t*t)-234358/(t*t)+877.6956/t+.17991:n=-3025846900/(t*t*t)+21070379e-1/(t*t)+222.6347/t+.24039;let o;t>=1667&&t<=2222?o=-1.1063814*n*n*n-1.3481102*n*n+2.18555832*n-.20219683:t<=4e3?o=-.9549476*n*n*n-1.37418593*n*n+2.09137015*n-.16748867:o=3.081758*n*n*n-5.8733867*n*n+3.75112997*n-.37001483;const e=1,s=e*n/Math.max(o,1e-6),r=e*(1-n-o)/Math.max(o,1e-6),l=3.2406*s-1.5372*e-.4986*r,c=-.9689*s+1.8758*e+.0415*r,a=.0557*s-.204*e+1.057*r,i=Math.max(l,c,a,1e-6);return{r:y(G(l/i)),g:y(G(c/i)),b:y(G(a/i))}},hn=(t,n=.5,o=-1.5,e=1.2,s=1)=>{const r=st*(n/3+o*t),l=Math.pow(t,s),c=e*l*(1-l)/2,a=Math.cos(r),i=Math.sin(r);return{r:y(l+c*(-.14861*a+1.78277*i)),g:y(l+c*(-.29227*a-.90649*i)),b:y(l+c*(1.97294*a))}},un=(t,n)=>{const o=Vt(Qt(t));return Array.from({length:n},()=>D({L:H(.35,.75,o()),C:H(.08,.2,o()),H:o()*360}))},mn=(t,n)=>{const o=k(t),e=137.50776405003785;return Array.from({length:n},(s,r)=>{const l=(o.H+e*r)%360;return D({L:H(.45,.7,r%3/2),C:Math.max(o.C,.1),H:l})})},gn=(t,n)=>{const o=k(t),e=Qt(t),s=gt(e),r=gt(e+1),l=gt(e+2);return Array.from({length:n},(c,a)=>{const i=a/Math.max(n-1,1);return D({L:y(H(.35,.8,s(i*3.5))),C:y(H(.06,.22,r(i*4.1+1))),H:(o.H+l(i*2.7+2)*120-60)%360})})},fn=(t,n)=>{const o=k(t),e=20,s=220,r=(o.H-120+360)%360;return Array.from({length:n},(l,c)=>{const a=c/(n-1),i=(H(e,s,a)+r)%360,u=.35+.45*Math.sin(a*Math.PI),g=H(.18,.12,Math.abs(a-.5)*2);return D({L:u,C:g,H:i})})},Mn=(t,n)=>{const o=t.slice(0,4).map(s=>Ft(Xt(s)));for(;o.length<4;)o.push({...o[o.length-1]});const e={L:(o[0].L+o[3].L)/2,a:(o[0].a+o[3].a)/2,b:(o[0].b+o[3].b)/2};return o[1]=St(o[1],e,.35),o[2]=St(o[2],e,.35),Array.from({length:n},(s,r)=>{const l=r/(n-1);return rn(an(o[0],o[1],o[2],o[3],l))})},bn=(t,n)=>{const o=k(t),e=.28,s=.88;return Array.from({length:n},(r,l)=>{const c=l/(n-1),a=cn(c),i=H(e,s,a),u=o.C*(1-.4*Math.abs(c-.5)*2);return D({L:i,C:u,H:o.H})})},dn=(t,n)=>{const e=k(t).H/360*3e3,s=Math.max(900,1500+e),r=Math.min(15e3,9e3+e);return Array.from({length:n},(l,c)=>{const a=c/(n-1),i=H(s,r,a);return it(ln(i))})},pn=(t,n)=>{const o=k(t),e=[1,1];for(;e.length<n;)e.push(e[e.length-1]+e[e.length-2]);return Array.from({length:n},(s,r)=>{const l=(o.H+e[r]*47%360)%360,c=H(.4,.72,r%4/3),a=Math.max(o.C,.1);return D({L:c,C:a,H:l})})},Ln=(t,n)=>{const o=k(t),e=.88,s=.28;return Array.from({length:n},(r,l)=>{const c=1/(l+1),a=1,i=1/n,u=(c-i)/(a-i),g=H(s,e,u),h=H(o.C*1.3,o.C*.5,u);return D({L:g,C:y(h),H:o.H})})},Cn=(t,n)=>{const o=k(t);return Array.from({length:n},(e,s)=>{const r=s/Math.max(n-1,1),l=.55+.25*Math.sin(st*r*1+0),c=o.C*(.7+.5*Math.sin(st*r*1.5+Math.PI/3)),a=(o.H+60*Math.sin(st*r*.75+Math.PI/6)+360)%360;return D({L:y(l),C:y(c),H:a})})},xn=(t,n)=>{const e=k(t).H/120%3;return Array.from({length:n},(s,r)=>{const l=r/(n-1);return it(hn(l,e,-1.5,1.2,1))})},Hn=(t,n=5)=>{const o=t.square??[],e=o[0]??"#0065ff",s=o[1]??"#ff0000",r=o[2]??"#00ff00",l=o[3]??"#ffff00";return{random:un(e,n),goldenRatio:mn(e,n),noise:gn(e,n),temperature:fn(e,n),bezierInterpolation:Mn([e,s,r,l],n),easeInOut:bn(e,n),blackbody:dn(e,n),fibonacci:pn(e,n),harmonicSeries:Ln(e,n),sinusoidal:Cn(e,n),cubehelix:xn(e,n)}},_t=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),z=({r:t,g:n,b:o})=>{const e=s=>Math.max(0,Math.min(255,Math.round(s*255))).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},R=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),X=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,B=(t,n,o)=>t+(n-t)*o,$=(t,n=0,o=1)=>Math.max(n,Math.min(o,t)),E={r:1,g:1,b:1},j={r:0,g:0,b:0},wt=({r:t,g:n,b:o})=>.2126*R(t)+.7152*R(n)+.0722*R(o),_=(t,n)=>{const o=wt(t),e=wt(n);return(Math.max(o,e)+.05)/(Math.min(o,e)+.05)},yn=(t,n)=>{const o=({r:f,g:b,b:M})=>.2126729*Math.pow(f,2.4)+.7151522*Math.pow(b,2.4)+.072175*Math.pow(M,2.4);let h=o(t),m=o(n);if(h=h>.022?h:h+Math.pow(.022-h,1.414),m=m>.022?m:m+Math.pow(.022-m,1.414),Math.abs(m-h)<5e-4)return 0;if(m>h){const f=(Math.pow(m,.56)-Math.pow(h,.57))*1.14;return f<.1?0:(f-.027)*100}else{const f=(Math.pow(m,.65)-Math.pow(h,.62))*1.14;return f>-.1?0:(f+.027)*100}},Ut=({r:t,g:n,b:o})=>{const e=Math.max(t,n,o),s=Math.min(t,n,o),r=(e+s)/2;if(e===s)return{h:0,s:0,l:r};const l=e-s,c=l/(r>.5?2-e-s:e+s);let a=0;return e===t?a=(n-o)/l+(n<o?6:0):e===n?a=(o-t)/l+2:a=(t-n)/l+4,{h:a*60,s:c,l:r}},A=({h:t,s:n,l:o})=>{const e=(1-Math.abs(2*o-1))*n,s=e*(1-Math.abs(t/60%2-1)),r=o-e/2;let l=0,c=0,a=0;return t<60?(l=e,c=s):t<120?(l=s,c=e):t<180?(c=e,a=s):t<240?(c=s,a=e):t<300?(l=s,a=e):(l=e,a=s),{r:l+r,g:c+r,b:a+r}},Pt=(t,n,o,e=48)=>{if(_(t,n)>=o)return t;const s=Ut(t);let r=null;{let l=0,c=s.l;for(let a=0;a<e;a++){const i=(l+c)/2,u=A({...s,l:i});_(u,n)>=o?(r=u,c=i):l=i}}if(r&&_(r,n)>=o)return r;{let l=s.l,c=1;for(let a=0;a<e;a++){const i=(l+c)/2,u=A({...s,l:i});_(u,n)>=o?(r=u,l=i):c=i}}return r&&_(r,n)>=o?r:_(j,n)>=_(E,n)?j:E},Rt=(t,n,o,e,s,r,l=48)=>{let c=r==="dark"?0:o,a=r==="dark"?o:1,i=null;for(let u=0;u<l;u++){const g=(c+a)/2,h=A({h:t,s:n,l:g});_(h,e)>=s?(i=h,r==="dark"?c=g:a=g):r==="dark"?a=g:c=g}return i&&_(i,e)>=s?i:_(j,e)>=_(E,e)?j:E},vt=({r:t,g:n,b:o})=>{const e=R(t),s=R(n),r=R(o);return{r:X($(.29031*e+.70969*s+0*r)),g:X($(.29031*e+.70969*s+0*r)),b:X($(-.02197*e+.02197*s+1*r))}},Ot=({r:t,g:n,b:o})=>{const e=R(t),s=R(n),r=R(o);return{r:X($(.10889*e+.89111*s+0*r)),g:X($(.10889*e+.89111*s+0*r)),b:X($(.00452*e-.00452*s+1*r))}},kt=(t,n)=>Math.sqrt((t.r-n.r)**2+(t.g-n.g)**2+(t.b-n.b)**2),An=(t,n,o=.12)=>kt(vt(t),vt(n))>o||kt(Ot(t),Ot(n))>o,Tn=(t,n=9)=>{const o=Object.values(t).find(l=>Array.isArray(l)&&l.length>0);if(!o)return{};const e=_t(o[0]),s=Ut(e),r={};r.contrastScale=Array.from({length:n},(l,c)=>{const a=c/(n-1);return z(A({h:s.h,s:s.s,l:Math.pow(a,.8)}))});{const c=Math.ceil(n/2);r.accessible=Array.from({length:n},(a,i)=>{const u=i%2===0,g=u?B(.05,.35,i/2/c):B(.88,.98,Math.floor(i/2)/c),h=A({h:s.h,s:s.s*.6,l:g}),m=A(u?{h:s.h,s:s.s*.1,l:.96}:{h:s.h,s:s.s*.8,l:.15});return z(Pt(h,m,4.5))})}{const l=[{bg:E,ratio:4.5,startL:.2},{bg:E,ratio:7,startL:.1},{bg:j,ratio:4.5,startL:.8},{bg:j,ratio:7,startL:.9}];r.wcag=Array.from({length:n},(c,a)=>{const{bg:i,ratio:u,startL:g}=l[a%l.length],h=Math.floor(a/l.length),m=$(1-h*.3),f=h*(g<.5?.08:-.08),b=A({h:s.h,s:s.s*m,l:$(g+f)});return z(Pt(b,i,u))})}{const l={r:1,g:1,b:1};r.apca=Array.from({length:n},(c,a)=>{const i=a/(n-1),u=B(30,90,i);let g=0,h=1;for(let m=0;m<48;m++){const f=(g+h)/2,b=A({h:s.h,s:s.s,l:f});Math.abs(yn(b,l))>u?g=f:h=f}return z(A({h:s.h,s:s.s,l:(g+h)/2}))})}{const l=[202,27,56,180,291,343,120,240,30],c=[];for(let a=0;a<n;a++){const i=l[a%l.length],u=B(s.h,i,.65),g=B(.25,.75,a/Math.max(n-1,1));let h=A({h:u,s:$(s.s,.4,.85),l:g});a>0&&!An(h,_t(c[a-1]))&&(h=A({h:u,s:s.s,l:$(g+.15)})),c.push(z(h))}r.colorBlindSafe=c}{const l=[{name:"background",l:.97,s:.08},{name:"surface",l:.93,s:.12},{name:"border",l:.8,s:.18},{name:"muted",l:.65,s:.25},{name:"default",l:.45,s:s.s},{name:"emphasis",l:.35,s:s.s},{name:"strong",l:.22,s:s.s},{name:"onColor",l:.98,s:.05},{name:"error",l:.4,s:.85,h:0},{name:"success",l:.35,s:.6,h:142}];r.colorTokenized=Array.from({length:n},(c,a)=>{const{h:i,s:u,l:g}=l[a%l.length];return z(A({h:i??s.h,s:u,l:g}))})}{const c=Math.ceil(n/2),a=n-c;r.highContrast=Array.from({length:n},(i,u)=>{if(u<c){const g=u/Math.max(c-1,1),h=B(.05,.28,g),m=$(B(s.s,0,g),0,1);return z(Rt(s.h,m,h,E,7,"dark"))}else{const h=(u-c)/Math.max(a-1,1),m=B(.65,.98,h),f=$(s.s*.7,.2,.8);return z(Rt(s.h,f,m,j,7,"light"))}})}return r},Mt=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),bt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Z=t=>Math.max(0,Math.min(1,t)),K=(t,n,o)=>t+(n-t)*o,$n=({r:t,g:n,b:o})=>{const e=Mt(t),s=Mt(n),r=Mt(o),l=Math.cbrt(.4122214708*e+.5363325363*s+.0514459929*r),c=Math.cbrt(.2119034982*e+.6806995451*s+.1073969566*r),a=Math.cbrt(.0883024619*e+.2817188376*s+.6299787005*r);return{L:.2104542553*l+.793617785*c-.0040720468*a,a:1.9779984951*l-2.428592205*c+.4505937099*a,b:.0259040371*l+.7827717662*c-.808675766*a}},In=({L:t,a:n,b:o})=>{const e=t+.3963377774*n+.2158037573*o,s=t-.1055613458*n-.0638541728*o,r=t-.0894841775*n-1.291485548*o,l=e*e*e,c=s*s*s,a=r*r*r;return{r:Z(bt(4.0767416621*l-3.3077115913*c+.2309699292*a)),g:Z(bt(-1.2684380046*l+2.6097574011*c-.3413193965*a)),b:Z(bt(-.0041960863*l-.7034186147*c+1.707614701*a))}},Sn=({L:t,a:n,b:o})=>({L:t,C:Math.sqrt(n*n+o*o),H:(Math.atan2(o,n)*180/Math.PI+360)%360}),_n=({L:t,C:n,H:o})=>({L:t,a:n*Math.cos(o*Math.PI/180),b:n*Math.sin(o*Math.PI/180)}),wn=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),Pn=({r:t,g:n,b:o})=>{const e=s=>Math.round(s*255).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},O=t=>Sn($n(wn(t))),q=t=>Pn(In(_n(t))),$t=(t,n,o)=>{let e=n-t;return e>180&&(e-=360),e<-180&&(e+=360),(t+e*o+360)%360},At=(t,n,o)=>({L:K(t.L,n.L,o),C:K(t.C,n.C,o),H:$t(t.H,n.H,o)}),Rn=(t,n)=>{const o=O(t);return Array.from({length:n},(e,s)=>{const r=s/(n-1);return q({L:K(.92,.25,r),C:o.C,H:o.H})})},vn=(t,n,o)=>{const e=O(t),s=O(n),r={L:.9,C:.02,H:e.H};return Array.from({length:o},(l,c)=>{const a=c/(o-1),i=a*2;if(a<=.5){const u={...e,L:.4};return q(At(u,r,i))}else{const u={...s,L:.4};return q(At(r,u,i-1))}})},On=(t,n)=>{const o=O(t),e=Z(K(.55,.65,.5)),s=Math.max(o.C,.12);return Array.from({length:n},(r,l)=>{const c=(o.H+360/n*l)%360;return q({L:e,C:s,H:c})})},kn=(t,n,o)=>{const e=O(t),s=O(n),r=[{L:.85,C:e.C*.5,H:e.H},{L:.45,C:e.C,H:e.H},{L:.85,C:s.C*.5,H:s.H},{L:.45,C:Math.max(e.C,s.C),H:$t(e.H,s.H,.5)}];return Array.from({length:o},(l,c)=>{const i=c/Math.max(o-1,1)*(r.length-1),u=Math.floor(i),g=Math.min(u+1,r.length-1);return q(At(r[u],r[g],i-u))})},zn=(t,n)=>{const o=O(t),e=Z(o.L>.7?o.L:.62),s=Math.max(o.C,.12);return Array.from({length:n},(r,l)=>{const c=l/n,a=(o.H+360*c)%360;return q({L:e,C:s,H:a})})},Bn=(t,n)=>{const o=O(t),e=(o.H-30+360)%360,s=[0,30,60,120,180,240,280].map(c=>(c+e)%360),r=Math.max(o.C,.14),l=[.45,.6,.8,.72,.62,.5,.42];return Array.from({length:n},(c,a)=>{const u=a/(n-1)*(s.length-1),g=Math.floor(u),h=Math.min(g+1,s.length-1),m=u-g;return q({L:K(l[g],l[h],m),C:r,H:$t(s[g],s[h],m)})})},qn=(t,n)=>{const o=O(t),e=.3,s=.88,r=(s-e)/n;return Array.from({length:n},(l,c)=>{const a=s-r*(c+.5);return q({L:a,C:o.C*.85,H:o.H})})},Dn=(t,n=4)=>{const o=t.square??[],e=o[0]??"#0000ff",s=o[1]??"#ff0000",r=o[2]??"#00ff00";return{sequential:Rn(e,n),diverging:vn(e,r,n),qualitative:On(e,n),bivariate:kn(e,s,n),cyclical:zn(e,n),spectral:Bn(e,n),stepped:qn(e,n)}},Nn=t=>{const n=parseInt(t.slice(1,3),16)/255,o=parseInt(t.slice(3,5),16)/255,e=parseInt(t.slice(5,7),16)/255,s=Math.max(n,o,e),r=Math.min(n,o,e);let l=0,c=0;const a=(s+r)/2;if(s!==r){const i=s-r;switch(c=a>.5?i/(2-s-r):i/(s+r),s){case n:l=(o-e)/i+(o<e?6:0);break;case o:l=(e-n)/i+2;break;case e:l=(n-o)/i+4;break}l/=6}return{h:l*360,s:c*100,l:a*100}},zt=({h:t,s:n,l:o})=>{const e=o/100,r=n/100*Math.min(e,1-e),l=c=>{const a=(c+t/30)%12,i=e-r*Math.max(Math.min(a-3,9-a,1),-1);return Math.round(255*i).toString(16).padStart(2,"0")};return`#${l(0)}${l(8)}${l(4)}`},L=(t,n)=>({...t,h:(t.h+n+360)%360}),En=(t,n=9)=>{const o=Object.values(t).find(a=>Array.isArray(a)&&a.length>0);if(!o||o.length===0)return{};const e=o[0],s=Nn(e),r={analogous:a=>[L(a,-30),a,L(a,30)],complementary:a=>[a,L(a,180)],splitComplementary:a=>[a,L(a,150),L(a,210)],triadic:a=>[a,L(a,120),L(a,240)],tetradic:a=>[a,L(a,60),L(a,180),L(a,240)],square:a=>[a,L(a,90),L(a,180),L(a,270)],accentedAnalogous:a=>[L(a,-30),a,L(a,30),L(a,180)],doubleSplitComplementary:a=>[a,L(a,30),L(a,150),L(a,210),L(a,180),L(a,240)],ambiguous:a=>[L(a,15),L(a,85),L(a,145)]},l={monochromatic:(a,i)=>Array.from({length:i},(u,g)=>({...a,l:Math.max(5,Math.min(95,15+70/(i-1||1)*g))})),monochromaticTintShade:(a,i)=>Array.from({length:i},(u,g)=>({...a,s:Math.max(0,a.s-g*2),l:Math.max(5,Math.min(95,10+80/(i-1||1)*g))}))},c={harmonyPalette:o};return Object.entries(r).forEach(([a,i])=>{c[a]=i(s).map(zt)}),Object.entries(l).forEach(([a,i])=>{c[a]=i(s,n).map(zt)}),c},dt=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),pt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,T=t=>Math.max(0,Math.min(1,t)),jn=({r:t,g:n,b:o})=>{const e=dt(t),s=dt(n),r=dt(o),l=Math.cbrt(.4122214708*e+.5363325363*s+.0514459929*r),c=Math.cbrt(.2119034982*e+.6806995451*s+.1073969566*r),a=Math.cbrt(.0883024619*e+.2817188376*s+.6299787005*r);return{L:.2104542553*l+.793617785*c-.0040720468*a,a:1.9779984951*l-2.428592205*c+.4505937099*a,b:.0259040371*l+.7827717662*c-.808675766*a}},Wn=({L:t,a:n,b:o})=>{const e=t+.3963377774*n+.2158037573*o,s=t-.1055613458*n-.0638541728*o,r=t-.0894841775*n-1.291485548*o,l=e*e*e,c=s*s*s,a=r*r*r;return{r:T(pt(4.0767416621*l-3.3077115913*c+.2309699292*a)),g:T(pt(-1.2684380046*l+2.6097574011*c-.3413193965*a)),b:T(pt(-.0041960863*l-.7034186147*c+1.707614701*a))}},tt=(t,n)=>(t.L-n.L)**2+(t.a-n.a)**2+(t.b-n.b)**2,Y=t=>Math.sqrt(t.a*t.a+t.b*t.b),Yn=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),rt=({r:t,g:n,b:o})=>{const e=s=>Math.round(s*255).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},N=t=>rt(Wn(t)),U=(t,n)=>{if(t.length>=n)return t.slice(0,n);const o=[...t],e=t[t.length-1]??{L:.5,a:0,b:0};for(;o.length<n;){const s=o.length/n;o.push({...e,L:T(.2+s*.6)})}return o},ct=(t,n)=>{if(t.length>=n)return t.slice(0,n);const o=[...t];for(;o.length<n;){const e=o.length/n;o.push({r:e,g:e,b:e})}return o},Fn=(t,n=6e3)=>{const o=Math.max(1,Math.floor(t.length/4/n)),e=[],s=[];for(let r=0;r<t.length;r+=4*o){if(t[r+3]<128)continue;const l={r:t[r]/255,g:t[r+1]/255,b:t[r+2]/255};e.push(l),s.push(jn(l))}return{rgbs:e,labs:s}},Gn=t=>{const o=new Uint8ClampedArray(t.length*800*4);let e=0;for(const s of t){const r=Yn(s);for(let l=0;l<800;l++){const c=()=>(Math.random()-.5)*30;o[e++]=Math.round(T(r.r)*255+c()),o[e++]=Math.round(T(r.g)*255+c()),o[e++]=Math.round(T(r.b)*255+c()),o[e++]=255}}return o},ut=(t,n,o=25)=>{if(t.length===0)return[];const e=t.filter(i=>{const u=Y(i);return Math.random()<=(u<.05?.2:u<.15?.6:1)}),s=e.length>=n?e:t,r=s.length,l=[s[Math.floor(Math.random()*r)]];for(let i=1;i<n;i++){const u=s.map(f=>Math.min(...l.map(b=>tt(f,b)))),g=u.reduce((f,b)=>f+b,0);let h=Math.random()*g,m=0;for(let f=0;f<r;f++)if(h-=u[f],h<=0){m=f;break}l.push({...s[m]})}const c=new Int32Array(r);for(let i=0;i<o;i++){let u=!1;for(let h=0;h<r;h++){let m=0,f=1/0;for(let b=0;b<n;b++){const M=tt(s[h],l[b]);M<f&&(f=M,m=b)}c[h]!==m&&(c[h]=m,u=!0)}if(!u)break;const g=Array.from({length:n},()=>({L:0,a:0,b:0,count:0}));for(let h=0;h<r;h++){const m=c[h];g[m].L+=s[h].L,g[m].a+=s[h].a,g[m].b+=s[h].b,g[m].count++}for(let h=0;h<n;h++)g[h].count>0&&(l[h]={L:g[h].L/g[h].count,a:g[h].a/g[h].count,b:g[h].b/g[h].count})}const a=new Array(n).fill(0);for(let i=0;i<r;i++)a[c[i]]++;return U(l.map((i,u)=>({lab:i,score:a[u]*(1+3*Y(i))})).sort((i,u)=>u.score-i.score).map(i=>i.lab),n)},Xn=(t,n)=>{if(t.length===0)return ct([],n);const o=[{pixels:[...t]}],e=s=>{let r=1,l=0,c=1,a=0,i=1,u=0;for(const m of s.pixels)r=Math.min(r,m.r),l=Math.max(l,m.r),c=Math.min(c,m.g),a=Math.max(a,m.g),i=Math.min(i,m.b),u=Math.max(u,m.b);const g=l-r>=a-c&&l-r>=u-i?"r":a-c>=u-i?"g":"b";s.pixels.sort((m,f)=>m[g]-f[g]);const h=Math.floor(s.pixels.length/2);return[{pixels:s.pixels.slice(0,h)},{pixels:s.pixels.slice(h)}]};for(;o.length<n&&(o.sort((l,c)=>c.pixels.length-l.pixels.length),!(o[0].pixels.length<2));){const[s,r]=e(o.shift());o.push(s,r)}return ct(o.map(s=>{const r=s.pixels.length;return{r:s.pixels.reduce((l,c)=>l+c.r,0)/r,g:s.pixels.reduce((l,c)=>l+c.g,0)/r,b:s.pixels.reduce((l,c)=>l+c.b,0)/r}}),n)},Vn=(t,n)=>{const o=new Map;for(const e of t){const s=Math.round(e.r*7)/7,r=Math.round(e.g*7)/7,l=Math.round(e.b*7)/7,c=`${s},${r},${l}`,a=o.get(c);a?a.count++:o.set(c,{rgb:{r:s,g:r,b:l},count:1})}return ct(Array.from(o.values()).sort((e,s)=>s.count-e.count).slice(0,n).map(e=>e.rgb),n)},Qn=(t,n)=>{const o=t.filter(e=>Y(e)>.1&&e.L>.25&&e.L<.85);return ut(o.length>=n?o:t,n)},Un=(t,n)=>{const o=t.filter(e=>{const s=Y(e);return s>=.02&&s<=.09&&e.L>.2&&e.L<.9});return ut(o.length>=n?o:t,n)},Jn=(t,n)=>{const o=()=>({r:0,g:0,b:0,count:0,children:new Array(8).fill(null),isLeaf:!1}),e=o(),s=(c,a,i,u,g)=>{if(g===8){c.isLeaf=!0,c.r+=a,c.g+=i,c.b+=u,c.count++;return}const h=7-g,m=(a>>h&1)<<2|(i>>h&1)<<1|u>>h&1;c.children[m]||(c.children[m]=o()),s(c.children[m],a,i,u,g+1)},r=c=>c.isLeaf&&c.count>0?[c]:c.children.filter(Boolean).flatMap(a=>r(a));for(const c of t)s(e,Math.round(c.r*255),Math.round(c.g*255),Math.round(c.b*255),0);let l=r(e);for(;l.length>n;)l.sort((c,a)=>c.count-a.count),l[0].count=0,l=r(e);return ct(l.filter(c=>c.count>0).sort((c,a)=>a.count-c.count).slice(0,n).map(c=>({r:T(c.r/c.count/255),g:T(c.g/c.count/255),b:T(c.b/c.count/255)})),n)},Zn=(t,n)=>{if(t.length===0)return U([],n);const o=t.length,e=t.reduce((h,m)=>h+m.L,0)/o,s=t.reduce((h,m)=>h+m.a,0)/o,r=t.reduce((h,m)=>h+m.b,0)/o,l=Math.sqrt(t.reduce((h,m)=>h+(m.L-e)**2,0)/o),c=Math.sqrt(t.reduce((h,m)=>h+(m.a-s)**2,0)/o),a=Math.sqrt(t.reduce((h,m)=>h+(m.b-r)**2,0)/o),i=Math.cbrt(t.reduce((h,m)=>h+(m.L-e)**3,0)/o),u=Math.cbrt(t.reduce((h,m)=>h+(m.a-s)**3,0)/o),g=Math.cbrt(t.reduce((h,m)=>h+(m.b-r)**3,0)/o);return Array.from({length:n},(h,m)=>{const f=n===1?0:m/(n-1)*2-1;return{L:T(e+f*l+(f*f-1/3)*i*.3),a:T(s+f*c+(f*f-1/3)*u*.3),b:T(r+f*a+(f*f-1/3)*g*.3)}})},Kn=(t,n)=>{if(t.length<n)return U(ut(t,t.length),n);const o=Array.from({length:n},(c,a)=>({...t[Math.floor(a/n*t.length)]})),e=.4,s=Math.min(t.length,4e3),r=Math.max(1,Math.floor(t.length/s));for(let c=0;c<s;c++){const a=t[c*r%t.length],i=e*(1-c/s);let u=0,g=1/0;for(let m=0;m<n;m++){const f=tt(a,o[m]);f<g&&(g=f,u=m)}const h=Math.max(1,Math.round(n/4*(1-c/s)));for(let m=0;m<n;m++){const f=Math.abs(m-u);if(f>h)continue;const b=i*Math.exp(-(f*f)/(2*h*h));o[m].L+=b*(a.L-o[m].L),o[m].a+=b*(a.a-o[m].a),o[m].b+=b*(a.b-o[m].b)}}const l=[];for(const c of o)l.some(a=>tt(a,c)<5e-4)||l.push(c);return U(l,n)},to=(t,n)=>{const e=Array.from({length:72},()=>({sumL:0,sumC:0,count:0}));for(const u of t){const g=(Math.atan2(u.b,u.a)*180/Math.PI+360)%360,h=Math.floor(g/(360/72))%72;e[h].sumL+=u.L,e[h].sumC+=Y(u),e[h].count++}const s=e.map((u,g)=>({count:(e[(g-1+72)%72].count+e[g].count+e[(g+1)%72].count)/3,idx:g})),r=[];for(let u=0;u<72;u++)s[u].count>s[(u-1+72)%72].count&&s[u].count>=s[(u+1)%72].count&&e[u].count>0&&r.push(u);r.sort((u,g)=>s[g].count-s[u].count);const l=r.slice(0,n),c=[...s].sort((u,g)=>g.count-u.count);let a=0;for(;l.length<n&&a<72;)!l.includes(c[a].idx)&&e[c[a].idx].count>0&&l.push(c[a].idx),a++;let i=0;for(;l.length<n;)l.push(i),i+=Math.floor(72/n);return l.slice(0,n).map(u=>{const g=u/72*360+2.5,h=e[u].count>0?e[u].sumL/e[u].count:.5,m=e[u].count>0?e[u].sumC/e[u].count:.12,f=g*Math.PI/180;return{L:h,a:m*Math.cos(f),b:m*Math.sin(f)}})},no=(t,n)=>{if(t.length===0)return U([],n);const e=Math.max(1,Math.floor(t.length/2e3)),s=t.filter((c,a)=>a%e===0),l=[s.reduce((c,a)=>Y(a)>Y(c)?a:c)];for(;l.length<n;){let c=s[0],a=-1/0;for(const i of s){const u=l.reduce((g,h)=>Math.min(g,tt(i,h)),1/0);u>a&&(a=u,c=i)}if(a===0)break;l.push(c)}return U(l,n)},oo=(t,n=6,o)=>{const e=o??Gn(t.square??["#888888"]),{rgbs:s,labs:r}=Fn(e);if(r.length===0){const l=Array(n).fill("#000000");return{kmeans:l,medianCut:l,dominant:l,vibrant:l,muted:l,octree:l,colorMoments:l,neuralQuant:l,histogram:l,deltaE:l}}return{kmeans:ut(r,n).map(N),medianCut:Xn(s,n).map(rt),dominant:Vn(s,n).map(rt),vibrant:Qn(r,n).map(N),muted:Un(r,n).map(N),octree:Jn(s,n).map(rt),colorMoments:Zn(r,n).map(N),neuralQuant:Kn(r,n).map(N),histogram:to(r,n).map(N),deltaE:no(r,n).map(N)}},Lt=t=>{const n=parseInt(t.slice(1,3),16)/255,o=parseInt(t.slice(3,5),16)/255,e=parseInt(t.slice(5,7),16)/255;return{r:n,g:o,b:e}},eo=({r:t,g:n,b:o})=>{const e=s=>Math.max(0,Math.min(255,Math.round(s*255))).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},I=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),v=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,x=(t,n,o)=>t+(n-t)*o,Ct=(t,n,o)=>{const e=n-t,s=e>180?e-360:e<-180?e+360:e;return(t+s*o+360)%360},nt=t=>{const n=I(t.r),o=I(t.g),e=I(t.b),s=.4122*n+.5363*o+.0514*e,r=.2119*n+.6807*o+.1074*e,l=.0883*n+.2817*o+.63*e,c=Math.cbrt(s),a=Math.cbrt(r),i=Math.cbrt(l);return{L:.2104*c+.7936*a-.004*i,a:1.9779*c-2.4285*a+.4505*i,b:.0259*c+.7827*a-.8086*i}},Bt=t=>{const n=t.L+.3963*t.a+.2158*t.b,o=t.L-.1055*t.a-.0638*t.b,e=t.L-.0894*t.a-1.2914*t.b,s=n*n*n,r=o*o*o,l=e*e*e,c=4.0767*s-3.3077*r+.2309*l,a=-1.2684*s+2.6097*r-.3413*l,i=-.0041*s-.7034*r+1.7076*l;return{r:v(c),g:v(a),b:v(i)}},ot=t=>{const n=I(t.r),o=I(t.g),e=I(t.b),s=(.4124*n+.3575*o+.1804*e)/.9504,r=.2126*n+.7151*o+.0721*e,l=(.0193*n+.1191*o+.9503*e)/1.0888,c=a=>a>.008856?Math.pow(a,1/3):7.787*a+16/116;return{L:116*c(r)-16,a:500*(c(s)-c(r)),b:200*(c(r)-c(l))}},qt=t=>{const n=(t.L+16)/116,o=t.a/500+n,e=n-t.b/200,s=g=>g>.20689?g*g*g:(g-16/116)/7.787,r=s(o)*.9504,l=s(n),c=s(e)*1.0888,a=3.2404*r-1.5371*l-.4985*c,i=-.9692*r+1.8759*l+.0415*c,u=.0556*r-.204*l+1.0572*c;return{r:v(a),g:v(i),b:v(u)}},Dt=t=>{const n=Math.max(t.r,t.g,t.b),o=Math.min(t.r,t.g,t.b),e=n-o;let s=0;return e!==0&&(n===t.r?s=(t.g-t.b)/e+(t.g<t.b?6:0):n===t.g?s=(t.b-t.r)/e+2:s=(t.r-t.g)/e+4),{h:s*60,s:n===0?0:e/n,v:n}},so=({h:t,s:n,v:o})=>{const e=Math.floor(t/60)%6,s=t/60-e,r=o*(1-n),l=o*(1-s*n),c=o*(1-(1-s)*n);switch(e){case 0:return{r:o,g:c,b:r};case 1:return{r:l,g:o,b:r};case 2:return{r,g:o,b:c};case 3:return{r,g:l,b:o};case 4:return{r:c,g:r,b:o};default:return{r:o,g:r,b:l}}},ro=(t,n=9)=>{const o=Object.values(t).find(l=>Array.isArray(l));if(!o||o.length<1)return{};const e=o.length===1?[Lt(o[0]),Lt("#ffffff")]:o.map(Lt),s={};return["lab","lch","oklab","oklch","hct","cam16","hsl","hsv","jzazbz","ipt"].forEach(l=>{const c=[];for(let a=0;a<n;a++){const u=a/(n-1)*(e.length-1),g=Math.min(Math.floor(u),e.length-2),h=u-g,m=e[g],f=e[g+1];let b;switch(l){case"oklab":{const M=nt(m),p=nt(f);b=Bt({L:x(M.L,p.L,h),a:x(M.a,p.a,h),b:x(M.b,p.b,h)});break}case"oklch":{const M=nt(m),p=nt(f),F=Math.atan2(M.b,M.a)*180/Math.PI,P=Math.atan2(p.b,p.a)*180/Math.PI,d=Math.sqrt(M.a**2+M.b**2),C=Math.sqrt(p.a**2+p.b**2),S=Ct(F,P,h)*Math.PI/180,w=x(d,C,h);b=Bt({L:x(M.L,p.L,h),a:w*Math.cos(S),b:w*Math.sin(S)});break}case"lab":{const M=ot(m),p=ot(f);b=qt({L:x(M.L,p.L,h),a:x(M.a,p.a,h),b:x(M.b,p.b,h)});break}case"lch":{const M=ot(m),p=ot(f),F=Math.atan2(M.b,M.a)*180/Math.PI,P=Math.atan2(p.b,p.a)*180/Math.PI,d=Math.sqrt(M.a**2+M.b**2),C=Math.sqrt(p.a**2+p.b**2),S=Ct(F,P,h)*Math.PI/180,w=x(d,C,h);b=qt({L:x(M.L,p.L,h),a:w*Math.cos(S),b:w*Math.sin(S)});break}case"hsl":case"hsv":{const M=Dt(m),p=Dt(f);b=so({h:Ct(M.h,p.h,h),s:x(M.s,p.s,h),v:x(M.v,p.v,h)});break}case"ipt":case"jzazbz":case"cam16":case"hct":{b={r:v(x(I(m.r),I(f.r),h)),g:v(x(I(m.g),I(f.g),h)),b:v(x(I(m.b),I(f.b),h))};const M=Math.sin(Math.PI*h)*(l==="jzazbz"?.05:.02);b.r=Math.min(1,b.r+M);break}default:b={r:x(m.r,f.r,h),g:x(m.g,f.g,h),b:x(m.b,f.b,h)}}c.push(eo(b))}s[l]=c}),s},V=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4),xt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,W=t=>Math.max(0,Math.min(1,t)),Jt=(t,n,o)=>t+(n-t)*o,It=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),Nt=({r:t,g:n,b:o})=>{const e=s=>Math.round(W(s)*255).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},ao=({r:t,g:n,b:o})=>{const e=V(t),s=V(n),r=V(o),l=Math.cbrt(.4122214708*e+.5363325363*s+.0514459929*r),c=Math.cbrt(.2119034982*e+.6806995451*s+.1073969566*r),a=Math.cbrt(.0883024619*e+.2817188376*s+.6299787005*r);return{L:.2104542553*l+.793617785*c-.0040720468*a,a:1.9779984951*l-2.428592205*c+.4505937099*a,b:.0259040371*l+.7827717662*c-.808675766*a}},Tt=({L:t,a:n,b:o})=>{const e=t+.3963377774*n+.2158037573*o,s=t-.1055613458*n-.0638541728*o,r=t-.0894841775*n-1.291485548*o,l=e*e*e,c=s*s*s,a=r*r*r;return{r:xt(4.0767416621*l-3.3077115913*c+.2309699292*a),g:xt(-1.2684380046*l+2.6097574011*c-.3413193965*a),b:xt(-.0041960863*l-.7034186147*c+1.707614701*a)}},Et=t=>{const{r:n,g:o,b:e}=Tt(t);return{r:W(n),g:W(o),b:W(e)}},co=({L:t,a:n,b:o})=>({L:t,C:Math.sqrt(n*n+o*o),H:(Math.atan2(o,n)*180/Math.PI+360)%360}),et=({L:t,C:n,H:o})=>({L:t,a:n*Math.cos(o*Math.PI/180),b:n*Math.sin(o*Math.PI/180)}),lo=t=>co(ao(It(t))),J=t=>{const n=r=>r.r>=-.001&&r.r<=1.001&&r.g>=-.001&&r.g<=1.001&&r.b>=-.001&&r.b<=1.001,o=Tt(et(t));if(n(o))return Nt(Et(et(t)));let e=0,s=t.C;for(let r=0;r<24;r++){const l=(e+s)/2;n(Tt(et({...t,C:l})))?e=l:s=l}return Nt(Et(et({...t,C:e})))},ho={harmonypalette:[0,150,210],analogous:[-30,0,30],complementary:[0,180],splitcomplementary:[0,150,210],triadic:[0,120,240],tetradic:[0,60,180,240],square:[0,90,180,270],accentedanalogous:[-30,0,30,180],doublesplitcomplementary:[0,30,150,180,210,330],ambiguous:[15,135,255]},io=[{match:t=>t.includes("neutrallight")||t.includes("neutral")&&t.includes("light"),apply:t=>({...t,L:.93,C:Math.min(t.C*.08,.015)})},{match:t=>t.includes("neutraldark")||t.includes("neutral")&&t.includes("dark"),apply:t=>({...t,L:.1,C:Math.min(t.C*.08,.015)})},{match:t=>t.includes("neutral"),apply:t=>({...t,L:.55,C:Math.min(t.C*.06,.012)})},{match:t=>t.endsWith("shade")||t.includes("colorshade"),apply:t=>({...t,L:.3,C:t.C})},{match:t=>t.endsWith("dark"),apply:t=>({...t,L:.22,C:t.C})},{match:t=>t.endsWith("light")||t.endsWith("tint"),apply:t=>({...t,L:.88,C:t.C*.5})},{match:t=>t.startsWith("accent"),apply:t=>({...t,L:.62,C:Math.max(t.C,.22)})},{match:t=>t.startsWith("main")||t.startsWith("primary")||t.startsWith("brand"),apply:t=>({...t,L:.52,C:Math.max(t.C,.22)})},{match:t=>t.startsWith("background")||t.startsWith("bg"),apply:t=>({...t,L:.97,C:Math.min(t.C*.08,.012)})},{match:t=>t.startsWith("surface"),apply:t=>({...t,L:.91,C:Math.min(t.C*.18,.025)})},{match:t=>t.startsWith("foreground")||t.startsWith("text")||t.startsWith("on"),apply:t=>({...t,L:.18,C:Math.min(t.C*.12,.02)})}],uo=(t,n,o)=>{const e=t.toLowerCase().replace(/[^a-z]/g,"");if(o>1){if(e.includes("tintshade"))return jt(n,o);if(e.includes("monochromatic"))return fo(n,o);if(e.includes("tint")||e.includes("shade"))return jt(n,o);const s=ho[e];return s?mo(n,s,o):go(n,o)}for(const{match:s,apply:r}of io)if(s(e))return[J(r(n))];return[J({...n,L:.55,C:Math.max(n.C,.18)})]},mo=(t,n,o)=>Array.from({length:o},(e,s)=>{const r=n[s%n.length],l=Math.floor(s/n.length)*.08;return J({...t,L:W(t.L-l),H:(t.H+r+360)%360})}),go=(t,n)=>Array.from({length:n},(o,e)=>J({...t,H:(t.H+360/n*e)%360})),fo=(t,n)=>Array.from({length:n},(o,e)=>{const s=e/Math.max(n-1,1),r=Jt(.12,.94,s),l=t.C*W(1-Math.pow(Math.abs(s-.45),2.5));return J({L:r,C:l,H:t.H})}),jt=(t,n)=>Array.from({length:n},(o,e)=>{const s=e/Math.max(n-1,1),r=s<.5?.5*Math.pow(s*2,1.6):1-.5*Math.pow((1-s)*2,1.4),l=Jt(.1,.96,r),c=t.C*W(1-Math.pow((s-.4)/.7,2)*.6);return J({L:l,C:c,H:t.H})}),Mo=/^#[0-9a-fA-F]{6}$/,bo=t=>{for(const n of t)if(Mo.test(n))return n;return"#ff0000"},po=t=>Object.fromEntries(Object.entries(t).map(([n,o])=>{const e=bo(o),s=lo(e);return[n,uo(n,s,o.length)]})),Zt=t=>{const{r:n,g:o,b:e}=It(t);return{r:Math.round(n*255),g:Math.round(o*255),b:Math.round(e*255)}},Lo=(t,n=1)=>{const{r:o,g:e,b:s}=Zt(t);return`rgba(${o}, ${e}, ${s}, ${n})`},lt=t=>{const{r:n,g:o,b:e}=It(t);return .2126*V(n)+.7152*V(o)+.0722*V(e)},Co=(t,n)=>{const o=lt(t),e=lt(n);return(Math.max(o,e)+.05)/(Math.min(o,e)+.05)},xo=t=>lt(t)>.179?"#000000":"#ffffff",Q=t=>t<=.04045?t/12.92:((t+.055)/1.055)**2.4,Ht=t=>t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055,at=t=>t<0?0:t>1?1:t,Ho=(t,n,o)=>{const e=Q(t),s=Q(n),r=Q(o),l=Math.cbrt(.4122214708*e+.5363325363*s+.0514459929*r),c=Math.cbrt(.2119034982*e+.6806995451*s+.1073969566*r),a=Math.cbrt(.0883024619*e+.2817188376*s+.6299787005*r);return{L:.2104542553*l+.793617785*c-.0040720468*a,a:1.9779984951*l-2.428592205*c+.4505937099*a,b:.0259040371*l+.7827717662*c-.808675766*a}},yo=(t,n,o)=>{const e=t+.3963377774*n+.2158037573*o,s=t-.1055613458*n-.0638541728*o,r=t-.0894841775*n-1.291485548*o,l=e*e*e,c=s*s*s,a=r*r*r;return{r:at(Ht(4.0767416621*l-3.3077115913*c+.2309699292*a)),g:at(Ht(-1.2684380046*l+2.6097574011*c-.3413193965*a)),b:at(Ht(-.0041960863*l-.7034186147*c+1.707614701*a))}},Kt=t=>{if(typeof t!="string")throw new TypeError(`Color must be a string, got ${typeof t}: ${JSON.stringify(t)}`);const n=t.trim().replace(/^#/,"").toLowerCase();if(/^[0-9a-f]{3}$/.test(n))return"#"+n[0]+n[0]+n[1]+n[1]+n[2]+n[2];if(/^[0-9a-f]{6}$/.test(n))return"#"+n;throw new RangeError(`Invalid hex color: "${t}" — expected "#rgb" or "#rrggbb"`)},tn=t=>({r:parseInt(t.slice(1,3),16)/255,g:parseInt(t.slice(3,5),16)/255,b:parseInt(t.slice(5,7),16)/255}),Ao=(t,n,o)=>{const e=s=>Math.round(at(s)*255).toString(16).padStart(2,"0");return`#${e(t)}${e(n)}${e(o)}`},Wt=t=>{const{r:n,g:o,b:e}=tn(t),s=Ho(n,o,e);return{L:s.L,C:Math.sqrt(s.a*s.a+s.b*s.b),H:(Math.atan2(s.b,s.a)*180/Math.PI+360)%360}},yt=(t,n,o)=>{const e=o*Math.PI/180,{r:s,g:r,b:l}=yo(t,n*Math.cos(e),n*Math.sin(e));return Ao(s,r,l)},Yt=(t,n)=>{const o=Math.abs(t-n)%360;return o>180?360-o:o},ht=(t,n)=>{const o=r=>{const{r:l,g:c,b:a}=tn(Kt(r));return .2126*Q(l)+.7152*Q(c)+.0722*Q(a)},e=o(t),s=o(n);return(Math.max(e,s)+.05)/(Math.min(e,s)+.05)},nn=t=>ht(t,"#ffffff")>=ht(t,"#111111")?"#ffffff":"#111111";function To(t,n={}){if(!Array.isArray(t)||t.length===0)throw new TypeError("palette must be a non-empty array of hex color strings");const o={neutralChromaMax:n.neutralChromaMax??.06,mainLightnessMin:n.mainLightnessMin??.4,mainLightnessMax:n.mainLightnessMax??.72,shadeHueTolerance:n.shadeHueTolerance??30,accentHueMin:n.accentHueMin??100,derivedDarkL:n.derivedDarkL??.2,derivedDarkC:n.derivedDarkC??.035},e=t.map(d=>{const C=Kt(d);return{hex:C,lch:Wt(C)}}),s=e.filter(d=>d.lch.C<o.neutralChromaMax),r=(s.length>0?s:e).slice().sort((d,C)=>C.lch.L-d.lch.L)[0],l=e.filter(d=>d.lch.L>=o.mainLightnessMin&&d.lch.L<=o.mainLightnessMax),c=(l.length>0?l:e).slice().sort((d,C)=>C.lch.C-d.lch.C)[0],a=s.filter(d=>d.lch.L<.35&&d.hex!==r.hex);let i,u;a.length>0?(i=a.slice().sort((d,C)=>d.lch.L-C.lch.L)[0].hex,u=!1):(i=yt(o.derivedDarkL,o.derivedDarkC,c.lch.H),u=!0);const g=new Set([r.hex,c.hex]),h=e.filter(d=>!g.has(d.hex));let m,f=!1;if(h.length>0){const d=h.filter(C=>Yt(C.lch.H,c.lch.H)<o.shadeHueTolerance&&C.lch.C>.1);m=(d.length>0?d:h).slice().sort((C,S)=>S.lch.C-C.lch.C)[0].hex}else m=yt(Math.max(.05,c.lch.L-.08),c.lch.C*.92,c.lch.H),f=!0;const b=new Set([r.hex,c.hex,m]),M=e.filter(d=>!b.has(d.hex));let p,F=!1;if(M.length>0){const d=M.filter(C=>Yt(C.lch.H,c.lch.H)>=o.accentHueMin);p=(d.length>0?d:M).slice().sort((C,S)=>S.lch.C-C.lch.C)[0].hex}else p=yt(.72,Math.min(c.lch.C,.18),(c.lch.H+150)%360),F=!0;const P=(d,C,S,w,on=!1)=>({hex:w,role:d,label:C,weight:S,derived:on,lch:Wt(w),textColor:nn(w),contrast:parseFloat(ht(w,r.hex).toFixed(2))});return{neutralLight:P("neutralLight","Neutral Light","60%",r.hex),neutralDark:P("neutralDark","Neutral Dark","—",i,u),mainColor:P("mainColor","Main Color","30%",c.hex),mainColorShade:P("mainColorShade","Main Color Shade","—",m,f),accentColor:P("accentColor","Accent Color","10%",p,F)}}const $o=t=>[t.neutralLight.hex,t.neutralDark.hex,t.mainColor.hex,t.mainColorShade.hex,t.accentColor.hex],Io=t=>({neutralLight:t.neutralLight.hex,neutralDark:t.neutralDark.hex,mainColor:t.mainColor.hex,mainColorShade:t.mainColorShade.hex,accentColor:t.accentColor.hex}),So=(t,n="--color")=>{const o=[["neutral-light",t.neutralLight.hex],["neutral-dark",t.neutralDark.hex],["main",t.mainColor.hex],["main-shade",t.mainColorShade.hex],["accent",t.accentColor.hex]],e=Math.max(...o.map(([r])=>(n+"-"+r).length));return`:root {
|
|
2
|
-
|
|
3
|
-
`)}
|
|
4
|
-
}`};exports.bestTextOn=nn;exports.generateAlgorithmic=Hn;exports.generateContrastPalettes=Tn;exports.generateDataVisuals=Dn;exports.generateHarmonyPalettes=En;exports.generateImagePalettes=oo;exports.generatePerceptualPalettes=ro;exports.generateRadiumColors=po;exports.getContrastRatio=Co;exports.getLuminance=lt;exports.getReadableTextColor=xo;exports.hexToRgb=Zt;exports.hexToRgba=Lo;exports.select60_30_10=To;exports.toCssVars=So;exports.toHexArray=$o;exports.toObject=Io;exports.wcagContrast=ht;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,t=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,n=e=>Math.max(0,Math.min(1,e)),r=(e,t,n)=>e+(t-e)*n,i=Math.PI*2,a=({r:t,g:n,b:r})=>{let i=e(t),a=e(n),o=e(r),s=Math.cbrt(.4122214708*i+.5363325363*a+.0514459929*o),c=Math.cbrt(.2119034982*i+.6806995451*a+.1073969566*o),l=Math.cbrt(.0883024619*i+.2817188376*a+.6299787005*o);return{L:.2104542553*s+.793617785*c-.0040720468*l,a:1.9779984951*s-2.428592205*c+.4505937099*l,b:.0259040371*s+.7827717662*c-.808675766*l}},o=({L:e,a:r,b:i})=>{let a=e+.3963377774*r+.2158037573*i,o=e-.1055613458*r-.0638541728*i,s=e-.0894841775*r-1.291485548*i,c=a*a*a,l=o*o*o,u=s*s*s;return{r:n(t(4.0767416621*c-3.3077115913*l+.2309699292*u)),g:n(t(-1.2684380046*c+2.6097574011*l-.3413193965*u)),b:n(t(-.0041960863*c-.7034186147*l+1.707614701*u))}},s=({L:e,a:t,b:n})=>({L:e,C:Math.sqrt(t*t+n*n),H:(Math.atan2(n,t)*180/Math.PI+360)%360}),c=({L:e,C:t,H:n})=>({L:e,a:t*Math.cos(n*Math.PI/180),b:t*Math.sin(n*Math.PI/180)}),l=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),u=({r:e,g:t,b:n})=>{let r=e=>Math.round(e*255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},d=e=>s(a(l(e))),f=e=>u(o(c(e))),p=e=>u(o(e)),m=(e,t,n)=>({L:r(e.L,t.L,n),a:r(e.a,t.a,n),b:r(e.b,t.b,n)}),ee=e=>{let t=e>>>0;return()=>{t+=1831565813;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}},h=e=>{let t=0;for(let n=1;n<7;n++)t=Math.imul(31,t)+parseInt(e[n],16)|0;return Math.abs(t)},g=e=>{let t=[],n=ee(e);for(let e=0;e<256;e++)t.push(n());let i=e=>e*e*(3-2*e);return e=>{let n=Math.floor(e)&255,a=e-Math.floor(e);return r(t[n],t[n+1&255],i(a))}},_=(e,t,n,r,i)=>{let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r},v=(e,t,n,r,i)=>({L:_(e.L,t.L,n.L,r.L,i),a:_(e.a,t.a,n.a,r.a,i),b:_(e.b,e.b,n.b,r.b,i)}),te=e=>e<.5?4*e*e*e:1-(-2*e+2)**3/2,ne=e=>{let r;r=e>=1667&&e<=4e3?-266123900/(e*e*e)-234358/(e*e)+877.6956/e+.17991:-3025846900/(e*e*e)+2107037.9/(e*e)+222.6347/e+.24039;let i;i=e>=1667&&e<=2222?-1.1063814*r*r*r-1.3481102*r*r+2.18555832*r-.20219683:e<=4e3?-.9549476*r*r*r-1.37418593*r*r+2.09137015*r-.16748867:3.081758*r*r*r-5.8733867*r*r+3.75112997*r-.37001483;let a=1*r/Math.max(i,1e-6),o=1*(1-r-i)/Math.max(i,1e-6),s=3.2406*a-1.5372-.4986*o,c=-.9689*a+1.8758+.0415*o,l=.0557*a-.204+1.057*o,u=Math.max(s,c,l,1e-6);return{r:n(t(s/u)),g:n(t(c/u)),b:n(t(l/u))}},re=(e,t=.5,r=-1.5,a=1.2,o=1)=>{let s=i*(t/3+r*e),c=e**+o,l=a*c*(1-c)/2,u=Math.cos(s),d=Math.sin(s);return{r:n(c+l*(-.14861*u+1.78277*d)),g:n(c+l*(-.29227*u-.90649*d)),b:n(c+1.97294*u*l)}},ie=(e,t)=>{let n=ee(h(e));return Array.from({length:t},()=>f({L:r(.35,.75,n()),C:r(.08,.2,n()),H:n()*360}))},ae=(e,t)=>{let n=d(e);return Array.from({length:t},(e,t)=>{let i=(n.H+137.50776405003785*t)%360;return f({L:r(.45,.7,t%3/2),C:Math.max(n.C,.1),H:i})})},oe=(e,t)=>{let i=d(e),a=h(e),o=g(a),s=g(a+1),c=g(a+2);return Array.from({length:t},(e,a)=>{let l=a/Math.max(t-1,1);return f({L:n(r(.35,.8,o(l*3.5))),C:n(r(.06,.22,s(l*4.1+1))),H:(i.H+c(l*2.7+2)*120-60)%360})})},se=(e,t)=>{let n=(d(e).H-120+360)%360;return Array.from({length:t},(e,i)=>{let a=i/(t-1),o=(r(20,220,a)+n)%360;return f({L:.35+.45*Math.sin(a*Math.PI),C:r(.18,.12,Math.abs(a-.5)*2),H:o})})},ce=(e,t)=>{let n=e.slice(0,4).map(e=>a(l(e)));for(;n.length<4;)n.push({...n[n.length-1]});let r={L:(n[0].L+n[3].L)/2,a:(n[0].a+n[3].a)/2,b:(n[0].b+n[3].b)/2};return n[1]=m(n[1],r,.35),n[2]=m(n[2],r,.35),Array.from({length:t},(e,r)=>{let i=r/(t-1);return p(v(n[0],n[1],n[2],n[3],i))})},le=(e,t)=>{let n=d(e);return Array.from({length:t},(e,i)=>{let a=i/(t-1);return f({L:r(.28,.88,te(a)),C:n.C*(1-.4*Math.abs(a-.5)*2),H:n.H})})},ue=(e,t)=>{let n=d(e).H/360*3e3,i=Math.max(900,1500+n),a=Math.min(15e3,9e3+n);return Array.from({length:t},(e,n)=>{let o=n/(t-1);return u(ne(r(i,a,o)))})},de=(e,t)=>{let n=d(e),i=[1,1];for(;i.length<t;)i.push(i[i.length-1]+i[i.length-2]);return Array.from({length:t},(e,t)=>{let a=(n.H+i[t]*47%360)%360;return f({L:r(.4,.72,t%4/3),C:Math.max(n.C,.1),H:a})})},fe=(e,t)=>{let i=d(e);return Array.from({length:t},(e,a)=>{let o=1/(a+1),s=1/t,c=(o-s)/(1-s);return f({L:r(.28,.88,c),C:n(r(i.C*1.3,i.C*.5,c)),H:i.H})})},pe=(e,t)=>{let r=d(e);return Array.from({length:t},(e,a)=>{let o=a/Math.max(t-1,1),s=.55+.25*Math.sin(i*o*1+0),c=r.C*(.7+.5*Math.sin(i*o*1.5+Math.PI/3)),l=(r.H+60*Math.sin(i*o*.75+Math.PI/6)+360)%360;return f({L:n(s),C:n(c),H:l})})},me=(e,t)=>{let n=d(e).H/120%3;return Array.from({length:t},(e,r)=>u(re(r/(t-1),n,-1.5,1.2,1)))},he=(e,t=5)=>{let n=e.square??[],r=n[0]??`#0065ff`,i=n[1]??`#ff0000`,a=n[2]??`#00ff00`,o=n[3]??`#ffff00`;return{random:ie(r,t),goldenRatio:ae(r,t),noise:oe(r,t),temperature:se(r,t),bezierInterpolation:ce([r,i,a,o],t),easeInOut:le(r,t),blackbody:ue(r,t),fibonacci:de(r,t),harmonicSeries:fe(r,t),sinusoidal:pe(r,t),cubehelix:me(r,t)}},ge=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),y=({r:e,g:t,b:n})=>{let r=e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},b=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,x=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,S=(e,t,n)=>e+(t-e)*n,C=(e,t=0,n=1)=>Math.max(t,Math.min(n,e)),w={r:1,g:1,b:1},T={r:0,g:0,b:0},_e=({r:e,g:t,b:n})=>.2126*b(e)+.7152*b(t)+.0722*b(n),E=(e,t)=>{let n=_e(e),r=_e(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},ve=(e,t)=>{let n=({r:e,g:t,b:n})=>.2126729*e**2.4+.7151522*t**2.4+.072175*n**2.4,r=.022,i=1.414,a=1.14,o=n(e),s=n(t);if(o=o>r?o:o+(r-o)**i,s=s>r?s:s+(r-s)**i,Math.abs(s-o)<5e-4)return 0;if(s>o){let e=(s**.56-o**.57)*a;return e<.1?0:(e-.027)*100}{let e=(s**.65-o**.62)*a;return e>-.1?0:(e+.027)*100}},ye=({r:e,g:t,b:n})=>{let r=Math.max(e,t,n),i=Math.min(e,t,n),a=(r+i)/2;if(r===i)return{h:0,s:0,l:a};let o=r-i,s=o/(a>.5?2-r-i:r+i),c=0;return c=r===e?(t-n)/o+(t<n?6:0):r===t?(n-e)/o+2:(e-t)/o+4,{h:c*60,s,l:a}},D=({h:e,s:t,l:n})=>{let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e/60%2-1)),a=n-r/2,o=0,s=0,c=0;return e<60?(o=r,s=i):e<120?(o=i,s=r):e<180?(s=r,c=i):e<240?(s=i,c=r):e<300?(o=i,c=r):(o=r,c=i),{r:o+a,g:s+a,b:c+a}},be=(e,t,n,r=48)=>{if(E(e,t)>=n)return e;let i=ye(e),a=null;{let e=0,o=i.l;for(let s=0;s<r;s++){let r=(e+o)/2,s=D({...i,l:r});E(s,t)>=n?(a=s,o=r):e=r}}if(a&&E(a,t)>=n)return a;{let e=i.l,o=1;for(let s=0;s<r;s++){let r=(e+o)/2,s=D({...i,l:r});E(s,t)>=n?(a=s,e=r):o=r}}return a&&E(a,t)>=n?a:E(T,t)>=E(w,t)?T:w},xe=(e,t,n,r,i,a,o=48)=>{let s=a===`dark`?0:n,c=a===`dark`?n:1,l=null;for(let n=0;n<o;n++){let n=(s+c)/2,o=D({h:e,s:t,l:n});E(o,r)>=i?(l=o,a===`dark`?s=n:c=n):a===`dark`?c=n:s=n}return l&&E(l,r)>=i?l:E(T,r)>=E(w,r)?T:w},Se=({r:e,g:t,b:n})=>{let r=b(e),i=b(t),a=b(n);return{r:x(C(.29031*r+.70969*i+0*a)),g:x(C(.29031*r+.70969*i+0*a)),b:x(C(-.02197*r+.02197*i+1*a))}},Ce=({r:e,g:t,b:n})=>{let r=b(e),i=b(t),a=b(n);return{r:x(C(.10889*r+.89111*i+0*a)),g:x(C(.10889*r+.89111*i+0*a)),b:x(C(.00452*r-.00452*i+1*a))}},we=(e,t)=>Math.sqrt((e.r-t.r)**2+(e.g-t.g)**2+(e.b-t.b)**2),Te=(e,t,n=.12)=>we(Se(e),Se(t))>n||we(Ce(e),Ce(t))>n,Ee=(e,t=9)=>{let n=Object.values(e).find(e=>Array.isArray(e)&&e.length>0);if(!n)return{};let r=ye(ge(n[0])),i={};i.contrastScale=Array.from({length:t},(e,n)=>{let i=n/(t-1);return y(D({h:r.h,s:r.s,l:i**.8}))});{let e=Math.ceil(t/2);i.accessible=Array.from({length:t},(t,n)=>{let i=n%2==0,a=i?S(.05,.35,n/2/e):S(.88,.98,Math.floor(n/2)/e);return y(be(D({h:r.h,s:r.s*.6,l:a}),D(i?{h:r.h,s:r.s*.1,l:.96}:{h:r.h,s:r.s*.8,l:.15}),4.5))})}{let e=[{bg:w,ratio:4.5,startL:.2},{bg:w,ratio:7,startL:.1},{bg:T,ratio:4.5,startL:.8},{bg:T,ratio:7,startL:.9}];i.wcag=Array.from({length:t},(t,n)=>{let{bg:i,ratio:a,startL:o}=e[n%e.length],s=Math.floor(n/e.length),c=C(1-s*.3),l=s*(o<.5?.08:-.08);return y(be(D({h:r.h,s:r.s*c,l:C(o+l)}),i,a))})}{let e={r:1,g:1,b:1};i.apca=Array.from({length:t},(n,i)=>{let a=S(30,90,i/(t-1)),o=0,s=1;for(let t=0;t<48;t++){let t=(o+s)/2,n=D({h:r.h,s:r.s,l:t});Math.abs(ve(n,e))>a?o=t:s=t}return y(D({h:r.h,s:r.s,l:(o+s)/2}))})}{let e=[202,27,56,180,291,343,120,240,30],n=[];for(let i=0;i<t;i++){let a=e[i%e.length],o=S(r.h,a,.65),s=S(.25,.75,i/Math.max(t-1,1)),c=D({h:o,s:C(r.s,.4,.85),l:s});i>0&&!Te(c,ge(n[i-1]))&&(c=D({h:o,s:r.s,l:C(s+.15)})),n.push(y(c))}i.colorBlindSafe=n}{let e=[{name:`background`,l:.97,s:.08},{name:`surface`,l:.93,s:.12},{name:`border`,l:.8,s:.18},{name:`muted`,l:.65,s:.25},{name:`default`,l:.45,s:r.s},{name:`emphasis`,l:.35,s:r.s},{name:`strong`,l:.22,s:r.s},{name:`onColor`,l:.98,s:.05},{name:`error`,l:.4,s:.85,h:0},{name:`success`,l:.35,s:.6,h:142}];i.colorTokenized=Array.from({length:t},(t,n)=>{let{h:i,s:a,l:o}=e[n%e.length];return y(D({h:i??r.h,s:a,l:o}))})}{let e=Math.ceil(t/2),n=t-e;i.highContrast=Array.from({length:t},(t,i)=>{if(i<e){let t=i/Math.max(e-1,1),n=S(.05,.28,t),a=C(S(r.s,0,t),0,1);return y(xe(r.h,a,n,w,7,`dark`))}{let t=S(.65,.98,(i-e)/Math.max(n-1,1)),a=C(r.s*.7,.2,.8);return y(xe(r.h,a,t,T,7,`light`))}})}return i},De=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,Oe=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,O=e=>Math.max(0,Math.min(1,e)),k=(e,t,n)=>e+(t-e)*n,ke=({r:e,g:t,b:n})=>{let r=De(e),i=De(t),a=De(n),o=Math.cbrt(.4122214708*r+.5363325363*i+.0514459929*a),s=Math.cbrt(.2119034982*r+.6806995451*i+.1073969566*a),c=Math.cbrt(.0883024619*r+.2817188376*i+.6299787005*a);return{L:.2104542553*o+.793617785*s-.0040720468*c,a:1.9779984951*o-2.428592205*s+.4505937099*c,b:.0259040371*o+.7827717662*s-.808675766*c}},Ae=({L:e,a:t,b:n})=>{let r=e+.3963377774*t+.2158037573*n,i=e-.1055613458*t-.0638541728*n,a=e-.0894841775*t-1.291485548*n,o=r*r*r,s=i*i*i,c=a*a*a;return{r:O(Oe(4.0767416621*o-3.3077115913*s+.2309699292*c)),g:O(Oe(-1.2684380046*o+2.6097574011*s-.3413193965*c)),b:O(Oe(-.0041960863*o-.7034186147*s+1.707614701*c))}},je=({L:e,a:t,b:n})=>({L:e,C:Math.sqrt(t*t+n*n),H:(Math.atan2(n,t)*180/Math.PI+360)%360}),Me=({L:e,C:t,H:n})=>({L:e,a:t*Math.cos(n*Math.PI/180),b:t*Math.sin(n*Math.PI/180)}),Ne=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),Pe=({r:e,g:t,b:n})=>{let r=e=>Math.round(e*255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},A=e=>je(ke(Ne(e))),j=e=>Pe(Ae(Me(e))),Fe=(e,t,n)=>{let r=t-e;return r>180&&(r-=360),r<-180&&(r+=360),(e+r*n+360)%360},Ie=(e,t,n)=>({L:k(e.L,t.L,n),C:k(e.C,t.C,n),H:Fe(e.H,t.H,n)}),Le=(e,t)=>{let n=A(e);return Array.from({length:t},(e,r)=>j({L:k(.92,.25,r/(t-1)),C:n.C,H:n.H}))},Re=(e,t,n)=>{let r=A(e),i=A(t),a={L:.9,C:.02,H:r.H};return Array.from({length:n},(e,t)=>{let o=t/(n-1),s=o*2;if(o<=.5)return j(Ie({...r,L:.4},a,s));{let e={...i,L:.4};return j(Ie(a,e,s-1))}})},ze=(e,t)=>{let n=A(e),r=O(k(.55,.65,.5)),i=Math.max(n.C,.12);return Array.from({length:t},(e,a)=>{let o=(n.H+360/t*a)%360;return j({L:r,C:i,H:o})})},Be=(e,t,n)=>{let r=A(e),i=A(t),a=[{L:.85,C:r.C*.5,H:r.H},{L:.45,C:r.C,H:r.H},{L:.85,C:i.C*.5,H:i.H},{L:.45,C:Math.max(r.C,i.C),H:Fe(r.H,i.H,.5)}];return Array.from({length:n},(e,t)=>{let r=t/Math.max(n-1,1)*(a.length-1),i=Math.floor(r),o=Math.min(i+1,a.length-1);return j(Ie(a[i],a[o],r-i))})},Ve=(e,t)=>{let n=A(e),r=O(n.L>.7?n.L:.62),i=Math.max(n.C,.12);return Array.from({length:t},(e,a)=>{let o=a/t,s=(n.H+360*o)%360;return j({L:r,C:i,H:s})})},He=(e,t)=>{let n=A(e),r=(n.H-30+360)%360,i=[0,30,60,120,180,240,280].map(e=>(e+r)%360),a=Math.max(n.C,.14),o=[.45,.6,.8,.72,.62,.5,.42];return Array.from({length:t},(e,n)=>{let r=n/(t-1)*(i.length-1),s=Math.floor(r),c=Math.min(s+1,i.length-1),l=r-s;return j({L:k(o[s],o[c],l),C:a,H:Fe(i[s],i[c],l)})})},Ue=(e,t)=>{let n=A(e),r=.5800000000000001/t;return Array.from({length:t},(e,t)=>j({L:.88-r*(t+.5),C:n.C*.85,H:n.H}))},We=(e,t=4)=>{let n=e.square??[],r=n[0]??`#0000ff`,i=n[1]??`#ff0000`,a=n[2]??`#00ff00`;return{sequential:Le(r,t),diverging:Re(r,a,t),qualitative:ze(r,t),bivariate:Be(r,i,t),cyclical:Ve(r,t),spectral:He(r,t),stepped:Ue(r,t)}},Ge=e=>{let t=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,r=parseInt(e.slice(5,7),16)/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=0,s=0,c=(i+a)/2;if(i!==a){let e=i-a;switch(s=c>.5?e/(2-i-a):e/(i+a),i){case t:o=(n-r)/e+(n<r?6:0);break;case n:o=(r-t)/e+2;break;case r:o=(t-n)/e+4}o/=6}return{h:o*360,s:s*100,l:c*100}},Ke=({h:e,s:t,l:n})=>{let r=n/100,i=t/100*Math.min(r,1-r),a=t=>{let n=(t+e/30)%12,a=r-i*Math.max(Math.min(n-3,9-n,1),-1);return Math.round(255*a).toString(16).padStart(2,`0`)};return`#${a(0)}${a(8)}${a(4)}`},M=(e,t)=>({...e,h:(e.h+t+360)%360}),qe=(e,t=9)=>{let n=Object.values(e).find(e=>Array.isArray(e)&&e.length>0);if(!n||n.length===0)return{};let r=n[0],i=Ge(r),a={analogous:e=>[M(e,-30),e,M(e,30)],complementary:e=>[e,M(e,180)],splitComplementary:e=>[e,M(e,150),M(e,210)],triadic:e=>[e,M(e,120),M(e,240)],tetradic:e=>[e,M(e,60),M(e,180),M(e,240)],square:e=>[e,M(e,90),M(e,180),M(e,270)],accentedAnalogous:e=>[M(e,-30),e,M(e,30),M(e,180)],doubleSplitComplementary:e=>[e,M(e,30),M(e,150),M(e,210),M(e,180),M(e,240)],ambiguous:e=>[M(e,15),M(e,85),M(e,145)]},o={monochromatic:(e,t)=>Array.from({length:t},(n,r)=>({...e,l:Math.max(5,Math.min(95,15+70/(t-1||1)*r))})),monochromaticTintShade:(e,t)=>Array.from({length:t},(n,r)=>({...e,s:Math.max(0,e.s-r*2),l:Math.max(5,Math.min(95,10+80/(t-1||1)*r))}))},s={harmonyPalette:n};return Object.entries(a).forEach(([e,t])=>{s[e]=t(i).map(Ke)}),Object.entries(o).forEach(([e,n])=>{s[e]=n(i,t).map(Ke)}),s},Je=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,Ye=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,N=e=>Math.max(0,Math.min(1,e)),Xe=({r:e,g:t,b:n})=>{let r=Je(e),i=Je(t),a=Je(n),o=Math.cbrt(.4122214708*r+.5363325363*i+.0514459929*a),s=Math.cbrt(.2119034982*r+.6806995451*i+.1073969566*a),c=Math.cbrt(.0883024619*r+.2817188376*i+.6299787005*a);return{L:.2104542553*o+.793617785*s-.0040720468*c,a:1.9779984951*o-2.428592205*s+.4505937099*c,b:.0259040371*o+.7827717662*s-.808675766*c}},Ze=({L:e,a:t,b:n})=>{let r=e+.3963377774*t+.2158037573*n,i=e-.1055613458*t-.0638541728*n,a=e-.0894841775*t-1.291485548*n,o=r*r*r,s=i*i*i,c=a*a*a;return{r:N(Ye(4.0767416621*o-3.3077115913*s+.2309699292*c)),g:N(Ye(-1.2684380046*o+2.6097574011*s-.3413193965*c)),b:N(Ye(-.0041960863*o-.7034186147*s+1.707614701*c))}},P=(e,t)=>(e.L-t.L)**2+(e.a-t.a)**2+(e.b-t.b)**2,F=e=>Math.sqrt(e.a*e.a+e.b*e.b),Qe=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),I=({r:e,g:t,b:n})=>{let r=e=>Math.round(e*255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},L=e=>I(Ze(e)),R=(e,t)=>{if(e.length>=t)return e.slice(0,t);let n=[...e],r=e[e.length-1]??{L:.5,a:0,b:0};for(;n.length<t;){let e=n.length/t;n.push({...r,L:N(.2+e*.6)})}return n},z=(e,t)=>{if(e.length>=t)return e.slice(0,t);let n=[...e];for(;n.length<t;){let e=n.length/t;n.push({r:e,g:e,b:e})}return n},$e=(e,t=6e3)=>{let n=Math.max(1,Math.floor(e.length/4/t)),r=[],i=[];for(let t=0;t<e.length;t+=4*n){if(e[t+3]<128)continue;let n={r:e[t]/255,g:e[t+1]/255,b:e[t+2]/255};r.push(n),i.push(Xe(n))}return{rgbs:r,labs:i}},et=e=>{let t=new Uint8ClampedArray(e.length*800*4),n=0;for(let r of e){let e=Qe(r);for(let r=0;r<800;r++){let r=()=>(Math.random()-.5)*30;t[n++]=Math.round(N(e.r)*255+r()),t[n++]=Math.round(N(e.g)*255+r()),t[n++]=Math.round(N(e.b)*255+r()),t[n++]=255}}return t},B=(e,t,n=25)=>{if(e.length===0)return[];let r=e.filter(e=>{let t=F(e);return Math.random()<=(t<.05?.2:t<.15?.6:1)}),i=r.length>=t?r:e,a=i.length,o=[i[Math.floor(Math.random()*a)]];for(let e=1;e<t;e++){let e=i.map(e=>Math.min(...o.map(t=>P(e,t)))),t=e.reduce((e,t)=>e+t,0),n=Math.random()*t,r=0;for(let t=0;t<a;t++)if(n-=e[t],n<=0){r=t;break}o.push({...i[r]})}let s=new Int32Array(a);for(let e=0;e<n;e++){let e=!1;for(let n=0;n<a;n++){let r=0,a=1/0;for(let e=0;e<t;e++){let t=P(i[n],o[e]);t<a&&(a=t,r=e)}s[n]!==r&&(s[n]=r,e=!0)}if(!e)break;let n=Array.from({length:t},()=>({L:0,a:0,b:0,count:0}));for(let e=0;e<a;e++){let t=s[e];n[t].L+=i[e].L,n[t].a+=i[e].a,n[t].b+=i[e].b,n[t].count++}for(let e=0;e<t;e++)n[e].count>0&&(o[e]={L:n[e].L/n[e].count,a:n[e].a/n[e].count,b:n[e].b/n[e].count})}let c=Array(t).fill(0);for(let e=0;e<a;e++)c[s[e]]++;return R(o.map((e,t)=>({lab:e,score:c[t]*(1+3*F(e))})).sort((e,t)=>t.score-e.score).map(e=>e.lab),t)},tt=(e,t)=>{if(e.length===0)return z([],t);let n=[{pixels:[...e]}],r=e=>{let t=1,n=0,r=1,i=0,a=1,o=0;for(let s of e.pixels)t=Math.min(t,s.r),n=Math.max(n,s.r),r=Math.min(r,s.g),i=Math.max(i,s.g),a=Math.min(a,s.b),o=Math.max(o,s.b);let s=n-t>=i-r&&n-t>=o-a?`r`:i-r>=o-a?`g`:`b`;e.pixels.sort((e,t)=>e[s]-t[s]);let c=Math.floor(e.pixels.length/2);return[{pixels:e.pixels.slice(0,c)},{pixels:e.pixels.slice(c)}]};for(;n.length<t&&(n.sort((e,t)=>t.pixels.length-e.pixels.length),!(n[0].pixels.length<2));){let[e,t]=r(n.shift());n.push(e,t)}return z(n.map(e=>{let t=e.pixels.length;return{r:e.pixels.reduce((e,t)=>e+t.r,0)/t,g:e.pixels.reduce((e,t)=>e+t.g,0)/t,b:e.pixels.reduce((e,t)=>e+t.b,0)/t}}),t)},nt=(e,t)=>{let n=new Map;for(let t of e){let e=Math.round(t.r*7)/7,r=Math.round(t.g*7)/7,i=Math.round(t.b*7)/7,a=`${e},${r},${i}`,o=n.get(a);o?o.count++:n.set(a,{rgb:{r:e,g:r,b:i},count:1})}return z(Array.from(n.values()).sort((e,t)=>t.count-e.count).slice(0,t).map(e=>e.rgb),t)},rt=(e,t)=>{let n=e.filter(e=>F(e)>.1&&e.L>.25&&e.L<.85);return B(n.length>=t?n:e,t)},it=(e,t)=>{let n=e.filter(e=>{let t=F(e);return t>=.02&&t<=.09&&e.L>.2&&e.L<.9});return B(n.length>=t?n:e,t)},at=(e,t)=>{let n=()=>({r:0,g:0,b:0,count:0,children:Array(8).fill(null),isLeaf:!1}),r=n(),i=(e,t,r,a,o)=>{if(o===8){e.isLeaf=!0,e.r+=t,e.g+=r,e.b+=a,e.count++;return}let s=7-o,c=(t>>s&1)<<2|(r>>s&1)<<1|a>>s&1;e.children[c]||(e.children[c]=n()),i(e.children[c],t,r,a,o+1)},a=e=>e.isLeaf&&e.count>0?[e]:e.children.filter(Boolean).flatMap(e=>a(e));for(let t of e)i(r,Math.round(t.r*255),Math.round(t.g*255),Math.round(t.b*255),0);let o=a(r);for(;o.length>t;)o.sort((e,t)=>e.count-t.count),o[0].count=0,o=a(r);return z(o.filter(e=>e.count>0).sort((e,t)=>t.count-e.count).slice(0,t).map(e=>({r:N(e.r/e.count/255),g:N(e.g/e.count/255),b:N(e.b/e.count/255)})),t)},ot=(e,t)=>{if(e.length===0)return R([],t);let n=e.length,r=e.reduce((e,t)=>e+t.L,0)/n,i=e.reduce((e,t)=>e+t.a,0)/n,a=e.reduce((e,t)=>e+t.b,0)/n,o=Math.sqrt(e.reduce((e,t)=>e+(t.L-r)**2,0)/n),s=Math.sqrt(e.reduce((e,t)=>e+(t.a-i)**2,0)/n),c=Math.sqrt(e.reduce((e,t)=>e+(t.b-a)**2,0)/n),l=Math.cbrt(e.reduce((e,t)=>e+(t.L-r)**3,0)/n),u=Math.cbrt(e.reduce((e,t)=>e+(t.a-i)**3,0)/n),d=Math.cbrt(e.reduce((e,t)=>e+(t.b-a)**3,0)/n);return Array.from({length:t},(e,n)=>{let f=t===1?0:n/(t-1)*2-1;return{L:N(r+f*o+(f*f-1/3)*l*.3),a:N(i+f*s+(f*f-1/3)*u*.3),b:N(a+f*c+(f*f-1/3)*d*.3)}})},st=(e,t)=>{if(e.length<t)return R(B(e,e.length),t);let n=Array.from({length:t},(n,r)=>({...e[Math.floor(r/t*e.length)]})),r=Math.min(e.length,4e3),i=Math.max(1,Math.floor(e.length/r));for(let a=0;a<r;a++){let o=e[a*i%e.length],s=.4*(1-a/r),c=0,l=1/0;for(let e=0;e<t;e++){let t=P(o,n[e]);t<l&&(l=t,c=e)}let u=Math.max(1,Math.round(t/4*(1-a/r)));for(let e=0;e<t;e++){let t=Math.abs(e-c);if(t>u)continue;let r=s*Math.exp(-(t*t)/(2*u*u));n[e].L+=r*(o.L-n[e].L),n[e].a+=r*(o.a-n[e].a),n[e].b+=r*(o.b-n[e].b)}}let a=[];for(let e of n)a.some(t=>P(t,e)<5e-4)||a.push(e);return R(a,t)},ct=(e,t)=>{let n=Array.from({length:72},()=>({sumL:0,sumC:0,count:0}));for(let t of e){let e=(Math.atan2(t.b,t.a)*180/Math.PI+360)%360,r=Math.floor(e/5)%72;n[r].sumL+=t.L,n[r].sumC+=F(t),n[r].count++}let r=n.map((e,t)=>({count:(n[(t-1+72)%72].count+n[t].count+n[(t+1)%72].count)/3,idx:t})),i=[];for(let e=0;e<72;e++)r[e].count>r[(e-1+72)%72].count&&r[e].count>=r[(e+1)%72].count&&n[e].count>0&&i.push(e);i.sort((e,t)=>r[t].count-r[e].count);let a=i.slice(0,t),o=[...r].sort((e,t)=>t.count-e.count),s=0;for(;a.length<t&&s<72;)!a.includes(o[s].idx)&&n[o[s].idx].count>0&&a.push(o[s].idx),s++;let c=0;for(;a.length<t;)a.push(c),c+=Math.floor(72/t);return a.slice(0,t).map(e=>{let t=e/72*360+5/2,r=n[e].count>0?n[e].sumL/n[e].count:.5,i=n[e].count>0?n[e].sumC/n[e].count:.12,a=t*Math.PI/180;return{L:r,a:i*Math.cos(a),b:i*Math.sin(a)}})},lt=(e,t)=>{if(e.length===0)return R([],t);let n=Math.max(1,Math.floor(e.length/2e3)),r=e.filter((e,t)=>t%n===0),i=[r.reduce((e,t)=>F(t)>F(e)?t:e)];for(;i.length<t;){let e=r[0],t=-1/0;for(let n of r){let r=i.reduce((e,t)=>Math.min(e,P(n,t)),1/0);r>t&&(t=r,e=n)}if(t===0)break;i.push(e)}return R(i,t)},ut=(e,t=6,n)=>{let{rgbs:r,labs:i}=$e(n??et(e.square??[`#888888`]));if(i.length===0){let e=Array(t).fill(`#000000`);return{kmeans:e,medianCut:e,dominant:e,vibrant:e,muted:e,octree:e,colorMoments:e,neuralQuant:e,histogram:e,deltaE:e}}return{kmeans:B(i,t).map(L),medianCut:tt(r,t).map(I),dominant:nt(r,t).map(I),vibrant:rt(i,t).map(L),muted:it(i,t).map(L),octree:at(r,t).map(I),colorMoments:ot(i,t).map(L),neuralQuant:st(i,t).map(L),histogram:ct(i,t).map(L),deltaE:lt(i,t).map(L)}},dt=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),ft=({r:e,g:t,b:n})=>{let r=e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},V=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,H=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,U=(e,t,n)=>e+(t-e)*n,pt=(e,t,n)=>{let r=t-e;return(e+(r>180?r-360:r<-180?r+360:r)*n+360)%360},W=e=>{let t=V(e.r),n=V(e.g),r=V(e.b),i=.4122*t+.5363*n+.0514*r,a=.2119*t+.6807*n+.1074*r,o=.0883*t+.2817*n+.63*r,s=Math.cbrt(i),c=Math.cbrt(a),l=Math.cbrt(o);return{L:.2104*s+.7936*c-.004*l,a:1.9779*s-2.4285*c+.4505*l,b:.0259*s+.7827*c-.8086*l}},mt=e=>{let t=e.L+.3963*e.a+.2158*e.b,n=e.L-.1055*e.a-.0638*e.b,r=e.L-.0894*e.a-1.2914*e.b,i=t*t*t,a=n*n*n,o=r*r*r,s=4.0767*i-3.3077*a+.2309*o,c=-1.2684*i+2.6097*a-.3413*o,l=-.0041*i-.7034*a+1.7076*o;return{r:H(s),g:H(c),b:H(l)}},G=e=>{let t=V(e.r),n=V(e.g),r=V(e.b),i=(.4124*t+.3575*n+.1804*r)/.9504,a=.2126*t+.7151*n+.0721*r,o=(.0193*t+.1191*n+.9503*r)/1.0888,s=e=>e>.008856?e**(1/3):7.787*e+16/116;return{L:116*s(a)-16,a:500*(s(i)-s(a)),b:200*(s(a)-s(o))}},ht=e=>{let t=(e.L+16)/116,n=e.a/500+t,r=t-e.b/200,i=e=>e>.20689?e*e*e:(e-16/116)/7.787,a=i(n)*.9504,o=i(t),s=i(r)*1.0888,c=3.2404*a-1.5371*o-.4985*s,l=-.9692*a+1.8759*o+.0415*s,u=.0556*a-.204*o+1.0572*s;return{r:H(c),g:H(l),b:H(u)}},gt=e=>{let t=Math.max(e.r,e.g,e.b),n=t-Math.min(e.r,e.g,e.b),r=0;return n!==0&&(r=t===e.r?(e.g-e.b)/n+(e.g<e.b?6:0):t===e.g?(e.b-e.r)/n+2:(e.r-e.g)/n+4),{h:r*60,s:t===0?0:n/t,v:t}},_t=({h:e,s:t,v:n})=>{let r=Math.floor(e/60)%6,i=e/60-r,a=n*(1-t),o=n*(1-i*t),s=n*(1-(1-i)*t);switch(r){case 0:return{r:n,g:s,b:a};case 1:return{r:o,g:n,b:a};case 2:return{r:a,g:n,b:s};case 3:return{r:a,g:o,b:n};case 4:return{r:s,g:a,b:n};default:return{r:n,g:a,b:o}}},vt=(e,t=9)=>{let n=Object.values(e).find(e=>Array.isArray(e));if(!n||n.length<1)return{};let r=n.length===1?[dt(n[0]),dt(`#ffffff`)]:n.map(dt),i={};return[`lab`,`lch`,`oklab`,`oklch`,`hct`,`cam16`,`hsl`,`hsv`,`jzazbz`,`ipt`].forEach(e=>{let n=[];for(let i=0;i<t;i++){let a=i/(t-1)*(r.length-1),o=Math.min(Math.floor(a),r.length-2),s=a-o,c=r[o],l=r[o+1],u;switch(e){case`oklab`:{let e=W(c),t=W(l);u=mt({L:U(e.L,t.L,s),a:U(e.a,t.a,s),b:U(e.b,t.b,s)});break}case`oklch`:{let e=W(c),t=W(l),n=Math.atan2(e.b,e.a)*180/Math.PI,r=Math.atan2(t.b,t.a)*180/Math.PI,i=Math.sqrt(e.a**2+e.b**2),a=Math.sqrt(t.a**2+t.b**2),o=pt(n,r,s)*Math.PI/180,d=U(i,a,s);u=mt({L:U(e.L,t.L,s),a:d*Math.cos(o),b:d*Math.sin(o)});break}case`lab`:{let e=G(c),t=G(l);u=ht({L:U(e.L,t.L,s),a:U(e.a,t.a,s),b:U(e.b,t.b,s)});break}case`lch`:{let e=G(c),t=G(l),n=Math.atan2(e.b,e.a)*180/Math.PI,r=Math.atan2(t.b,t.a)*180/Math.PI,i=Math.sqrt(e.a**2+e.b**2),a=Math.sqrt(t.a**2+t.b**2),o=pt(n,r,s)*Math.PI/180,d=U(i,a,s);u=ht({L:U(e.L,t.L,s),a:d*Math.cos(o),b:d*Math.sin(o)});break}case`hsl`:case`hsv`:{let e=gt(c),t=gt(l);u=_t({h:pt(e.h,t.h,s),s:U(e.s,t.s,s),v:U(e.v,t.v,s)});break}case`ipt`:case`jzazbz`:case`cam16`:case`hct`:{u={r:H(U(V(c.r),V(l.r),s)),g:H(U(V(c.g),V(l.g),s)),b:H(U(V(c.b),V(l.b),s))};let t=Math.sin(Math.PI*s)*(e===`jzazbz`?.05:.02);u.r=Math.min(1,u.r+t);break}default:u={r:U(c.r,l.r,s),g:U(c.g,l.g,s),b:U(c.b,l.b,s)}}n.push(ft(u))}i[e]=n}),i},K=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,yt=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,q=e=>Math.max(0,Math.min(1,e)),bt=(e,t,n)=>e+(t-e)*n,xt=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),St=({r:e,g:t,b:n})=>{let r=e=>Math.round(q(e)*255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},Ct=({r:e,g:t,b:n})=>{let r=K(e),i=K(t),a=K(n),o=Math.cbrt(.4122214708*r+.5363325363*i+.0514459929*a),s=Math.cbrt(.2119034982*r+.6806995451*i+.1073969566*a),c=Math.cbrt(.0883024619*r+.2817188376*i+.6299787005*a);return{L:.2104542553*o+.793617785*s-.0040720468*c,a:1.9779984951*o-2.428592205*s+.4505937099*c,b:.0259040371*o+.7827717662*s-.808675766*c}},wt=({L:e,a:t,b:n})=>{let r=e+.3963377774*t+.2158037573*n,i=e-.1055613458*t-.0638541728*n,a=e-.0894841775*t-1.291485548*n,o=r*r*r,s=i*i*i,c=a*a*a;return{r:yt(4.0767416621*o-3.3077115913*s+.2309699292*c),g:yt(-1.2684380046*o+2.6097574011*s-.3413193965*c),b:yt(-.0041960863*o-.7034186147*s+1.707614701*c)}},Tt=e=>{let{r:t,g:n,b:r}=wt(e);return{r:q(t),g:q(n),b:q(r)}},Et=({L:e,a:t,b:n})=>({L:e,C:Math.sqrt(t*t+n*n),H:(Math.atan2(n,t)*180/Math.PI+360)%360}),J=({L:e,C:t,H:n})=>({L:e,a:t*Math.cos(n*Math.PI/180),b:t*Math.sin(n*Math.PI/180)}),Dt=e=>Et(Ct(xt(e))),Y=e=>{let t=e=>e.r>=-.001&&e.r<=1.001&&e.g>=-.001&&e.g<=1.001&&e.b>=-.001&&e.b<=1.001;if(t(wt(J(e))))return St(Tt(J(e)));let n=0,r=e.C;for(let i=0;i<24;i++){let i=(n+r)/2;t(wt(J({...e,C:i})))?n=i:r=i}return St(Tt(J({...e,C:n})))},Ot={harmonypalette:[0,150,210],analogous:[-30,0,30],complementary:[0,180],splitcomplementary:[0,150,210],triadic:[0,120,240],tetradic:[0,60,180,240],square:[0,90,180,270],accentedanalogous:[-30,0,30,180],doublesplitcomplementary:[0,30,150,180,210,330],ambiguous:[15,135,255]},kt=[{match:e=>e.includes(`neutrallight`)||e.includes(`neutral`)&&e.includes(`light`),apply:e=>({...e,L:.93,C:Math.min(e.C*.08,.015)})},{match:e=>e.includes(`neutraldark`)||e.includes(`neutral`)&&e.includes(`dark`),apply:e=>({...e,L:.1,C:Math.min(e.C*.08,.015)})},{match:e=>e.includes(`neutral`),apply:e=>({...e,L:.55,C:Math.min(e.C*.06,.012)})},{match:e=>e.endsWith(`shade`)||e.includes(`colorshade`),apply:e=>({...e,L:.3,C:e.C})},{match:e=>e.endsWith(`dark`),apply:e=>({...e,L:.22,C:e.C})},{match:e=>e.endsWith(`light`)||e.endsWith(`tint`),apply:e=>({...e,L:.88,C:e.C*.5})},{match:e=>e.startsWith(`accent`),apply:e=>({...e,L:.62,C:Math.max(e.C,.22)})},{match:e=>e.startsWith(`main`)||e.startsWith(`primary`)||e.startsWith(`brand`),apply:e=>({...e,L:.52,C:Math.max(e.C,.22)})},{match:e=>e.startsWith(`background`)||e.startsWith(`bg`),apply:e=>({...e,L:.97,C:Math.min(e.C*.08,.012)})},{match:e=>e.startsWith(`surface`),apply:e=>({...e,L:.91,C:Math.min(e.C*.18,.025)})},{match:e=>e.startsWith(`foreground`)||e.startsWith(`text`)||e.startsWith(`on`),apply:e=>({...e,L:.18,C:Math.min(e.C*.12,.02)})}],At=(e,t,n)=>{let r=e.toLowerCase().replace(/[^a-z]/g,``);if(n>1){if(r.includes(`tintshade`))return Pt(t,n);if(r.includes(`monochromatic`))return Nt(t,n);if(r.includes(`tint`)||r.includes(`shade`))return Pt(t,n);let e=Ot[r];return e?jt(t,e,n):Mt(t,n)}for(let{match:e,apply:n}of kt)if(e(r))return[Y(n(t))];return[Y({...t,L:.55,C:Math.max(t.C,.18)})]},jt=(e,t,n)=>Array.from({length:n},(n,r)=>{let i=t[r%t.length],a=Math.floor(r/t.length)*.08;return Y({...e,L:q(e.L-a),H:(e.H+i+360)%360})}),Mt=(e,t)=>Array.from({length:t},(n,r)=>Y({...e,H:(e.H+360/t*r)%360})),Nt=(e,t)=>Array.from({length:t},(n,r)=>{let i=r/Math.max(t-1,1);return Y({L:bt(.12,.94,i),C:e.C*q(1-Math.abs(i-.45)**2.5),H:e.H})}),Pt=(e,t)=>Array.from({length:t},(n,r)=>{let i=r/Math.max(t-1,1);return Y({L:bt(.1,.96,i<.5?.5*(i*2)**1.6:1-.5*((1-i)*2)**1.4),C:e.C*q(1-((i-.4)/.7)**2*.6),H:e.H})}),Ft=/^#[0-9a-fA-F]{6}$/,It=e=>{for(let t of e)if(Ft.test(t))return t;return`#ff0000`},Lt=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,At(e,Dt(It(t)),t.length)])),Rt=e=>{let{r:t,g:n,b:r}=xt(e);return{r:Math.round(t*255),g:Math.round(n*255),b:Math.round(r*255)}},zt=(e,t=1)=>{let{r:n,g:r,b:i}=Rt(e);return`rgba(${n}, ${r}, ${i}, ${t})`},X=e=>{let{r:t,g:n,b:r}=xt(e);return .2126*K(t)+.7152*K(n)+.0722*K(r)},Bt=(e,t)=>{let n=X(e),r=X(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},Vt=e=>X(e)>.179?`#000000`:`#ffffff`,Z=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,Ht=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,Q=e=>e<0?0:e>1?1:e,Ut=(e,t,n)=>{let r=Z(e),i=Z(t),a=Z(n),o=Math.cbrt(.4122214708*r+.5363325363*i+.0514459929*a),s=Math.cbrt(.2119034982*r+.6806995451*i+.1073969566*a),c=Math.cbrt(.0883024619*r+.2817188376*i+.6299787005*a);return{L:.2104542553*o+.793617785*s-.0040720468*c,a:1.9779984951*o-2.428592205*s+.4505937099*c,b:.0259040371*o+.7827717662*s-.808675766*c}},Wt=(e,t,n)=>{let r=e+.3963377774*t+.2158037573*n,i=e-.1055613458*t-.0638541728*n,a=e-.0894841775*t-1.291485548*n,o=r*r*r,s=i*i*i,c=a*a*a;return{r:Q(Ht(4.0767416621*o-3.3077115913*s+.2309699292*c)),g:Q(Ht(-1.2684380046*o+2.6097574011*s-.3413193965*c)),b:Q(Ht(-.0041960863*o-.7034186147*s+1.707614701*c))}},Gt=e=>{if(typeof e!=`string`)throw TypeError(`Color must be a string, got ${typeof e}: ${JSON.stringify(e)}`);let t=e.trim().replace(/^#/,``).toLowerCase();if(/^[0-9a-f]{3}$/.test(t))return`#`+t[0]+t[0]+t[1]+t[1]+t[2]+t[2];if(/^[0-9a-f]{6}$/.test(t))return`#`+t;throw RangeError(`Invalid hex color: "${e}" — expected "#rgb" or "#rrggbb"`)},Kt=e=>({r:parseInt(e.slice(1,3),16)/255,g:parseInt(e.slice(3,5),16)/255,b:parseInt(e.slice(5,7),16)/255}),qt=(e,t,n)=>{let r=e=>Math.round(Q(e)*255).toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},Jt=e=>{let{r:t,g:n,b:r}=Kt(e),i=Ut(t,n,r);return{L:i.L,C:Math.sqrt(i.a*i.a+i.b*i.b),H:(Math.atan2(i.b,i.a)*180/Math.PI+360)%360}},Yt=(e,t,n)=>{let r=n*Math.PI/180,{r:i,g:a,b:o}=Wt(e,t*Math.cos(r),t*Math.sin(r));return qt(i,a,o)},Xt=(e,t)=>{let n=Math.abs(e-t)%360;return n>180?360-n:n},$=(e,t)=>{let n=e=>{let{r:t,g:n,b:r}=Kt(Gt(e));return .2126*Z(t)+.7152*Z(n)+.0722*Z(r)},r=n(e),i=n(t);return(Math.max(r,i)+.05)/(Math.min(r,i)+.05)},Zt=e=>$(e,`#ffffff`)>=$(e,`#111111`)?`#ffffff`:`#111111`;function Qt(e,t={}){if(!Array.isArray(e)||e.length===0)throw TypeError(`palette must be a non-empty array of hex color strings`);let n={neutralChromaMax:t.neutralChromaMax??.06,mainLightnessMin:t.mainLightnessMin??.4,mainLightnessMax:t.mainLightnessMax??.72,shadeHueTolerance:t.shadeHueTolerance??30,accentHueMin:t.accentHueMin??100,derivedDarkL:t.derivedDarkL??.2,derivedDarkC:t.derivedDarkC??.035},r=e.map(e=>{let t=Gt(e);return{hex:t,lch:Jt(t)}}),i=r.filter(e=>e.lch.C<n.neutralChromaMax),a=(i.length>0?i:r).slice().sort((e,t)=>t.lch.L-e.lch.L)[0],o=r.filter(e=>e.lch.L>=n.mainLightnessMin&&e.lch.L<=n.mainLightnessMax),s=(o.length>0?o:r).slice().sort((e,t)=>t.lch.C-e.lch.C)[0],c=i.filter(e=>e.lch.L<.35&&e.hex!==a.hex),l,u;c.length>0?(l=c.slice().sort((e,t)=>e.lch.L-t.lch.L)[0].hex,u=!1):(l=Yt(n.derivedDarkL,n.derivedDarkC,s.lch.H),u=!0);let d=new Set([a.hex,s.hex]),f=r.filter(e=>!d.has(e.hex)),p,m=!1;if(f.length>0){let e=f.filter(e=>Xt(e.lch.H,s.lch.H)<n.shadeHueTolerance&&e.lch.C>.1);p=(e.length>0?e:f).slice().sort((e,t)=>t.lch.C-e.lch.C)[0].hex}else p=Yt(Math.max(.05,s.lch.L-.08),s.lch.C*.92,s.lch.H),m=!0;let ee=new Set([a.hex,s.hex,p]),h=r.filter(e=>!ee.has(e.hex)),g,_=!1;if(h.length>0){let e=h.filter(e=>Xt(e.lch.H,s.lch.H)>=n.accentHueMin);g=(e.length>0?e:h).slice().sort((e,t)=>t.lch.C-e.lch.C)[0].hex}else g=Yt(.72,Math.min(s.lch.C,.18),(s.lch.H+150)%360),_=!0;let v=(e,t,n,r,i=!1)=>({hex:r,role:e,label:t,weight:n,derived:i,lch:Jt(r),textColor:Zt(r),contrast:parseFloat($(r,a.hex).toFixed(2))});return{neutralLight:v(`neutralLight`,`Neutral Light`,`60%`,a.hex),neutralDark:v(`neutralDark`,`Neutral Dark`,`—`,l,u),mainColor:v(`mainColor`,`Main Color`,`30%`,s.hex),mainColorShade:v(`mainColorShade`,`Main Color Shade`,`—`,p,m),accentColor:v(`accentColor`,`Accent Color`,`10%`,g,_)}}var $t=e=>[e.neutralLight.hex,e.neutralDark.hex,e.mainColor.hex,e.mainColorShade.hex,e.accentColor.hex],en=e=>({neutralLight:e.neutralLight.hex,neutralDark:e.neutralDark.hex,mainColor:e.mainColor.hex,mainColorShade:e.mainColorShade.hex,accentColor:e.accentColor.hex}),tn=(e,t=`--color`)=>{let n=[[`neutral-light`,e.neutralLight.hex],[`neutral-dark`,e.neutralDark.hex],[`main`,e.mainColor.hex],[`main-shade`,e.mainColorShade.hex],[`accent`,e.accentColor.hex]],r=Math.max(...n.map(([e])=>(t+`-`+e).length));return`:root {\n${n.map(([e,n])=>` ${(t+`-`+e).padEnd(r)}: ${n};`).join(`
|
|
2
|
+
`)}\n}`};exports.bestTextOn=Zt,exports.generateAlgorithmic=he,exports.generateContrastPalettes=Ee,exports.generateDataVisuals=We,exports.generateHarmonyPalettes=qe,exports.generateImagePalettes=ut,exports.generatePerceptualPalettes=vt,exports.generateRadiumColors=Lt,exports.getContrastRatio=Bt,exports.getLuminance=X,exports.getReadableTextColor=Vt,exports.hexToRgb=Rt,exports.hexToRgba=zt,exports.select60_30_10=Qt,exports.toCssVars=tn,exports.toHexArray=$t,exports.toObject=en,exports.wcagContrast=$;
|