use-material-you
Version:
React hook to create dynamic schemes and variants based on M3/material-color-utilities
1 lines • 73.9 kB
JavaScript
(function(){"use strict";function Y(a){return a<0?-1:a===0?0:1}function nt(a,t,e){return(1-e)*a+e*t}function Et(a,t,e){return e<a?a:e>t?t:e}function z(a,t,e){return e<a?a:e>t?t:e}function bt(a){return a=a%360,a<0&&(a=a+360),a}function Ct(a){return a=a%360,a<0&&(a=a+360),a}function Lt(a,t){return 180-Math.abs(Math.abs(a-t)-180)}function ft(a,t){const e=a[0]*t[0][0]+a[1]*t[0][1]+a[2]*t[0][2],r=a[0]*t[1][0]+a[1]*t[1][1]+a[2]*t[1][2],n=a[0]*t[2][0]+a[1]*t[2][1]+a[2]*t[2][2];return[e,r,n]}const Dt=[[.41233895,.35762064,.18051042],[.2126,.7152,.0722],[.01932141,.11916382,.95034478]],Ot=[[3.2413774792388685,-1.5376652402851851,-.49885366846268053],[-.9691452513005321,1.8758853451067872,.04156585616912061],[.05562093689691305,-.20395524564742123,1.0571799111220335]],dt=[95.047,100,108.883];function it(a,t,e){return(255<<24|(a&255)<<16|(t&255)<<8|e&255)>>>0}function wt(a){const t=tt(a[0]),e=tt(a[1]),r=tt(a[2]);return it(t,e,r)}function Nt(a){return a>>24&255}function mt(a){return a>>16&255}function pt(a){return a>>8&255}function gt(a){return a&255}function Ft(a,t,e){const r=Ot,n=r[0][0]*a+r[0][1]*t+r[0][2]*e,i=r[1][0]*a+r[1][1]*t+r[1][2]*e,s=r[2][0]*a+r[2][1]*t+r[2][2]*e,c=tt(n),h=tt(i),m=tt(s);return it(c,h,m)}function _t(a){const t=$(mt(a)),e=$(pt(a)),r=$(gt(a));return ft([t,e,r],Dt)}function Vt(a,t,e){const r=dt,n=(a+16)/116,i=t/500+n,s=n-e/200,c=st(i),h=st(n),m=st(s),l=c*r[0],y=h*r[1],p=m*r[2];return Ft(l,y,p)}function zt(a){const t=$(mt(a)),e=$(pt(a)),r=$(gt(a)),n=Dt,i=n[0][0]*t+n[0][1]*e+n[0][2]*r,s=n[1][0]*t+n[1][1]*e+n[1][2]*r,c=n[2][0]*t+n[2][1]*e+n[2][2]*r,h=dt,m=i/h[0],l=s/h[1],y=c/h[2],p=at(m),f=at(l),g=at(y),d=116*f-16,P=500*(p-f),I=200*(f-g);return[d,P,I]}function Gt(a){const t=J(a),e=tt(t);return it(e,e,e)}function It(a){const t=_t(a)[1];return 116*at(t/100)-16}function J(a){return 100*st((a+16)/116)}function yt(a){return at(a/100)*116-16}function $(a){const t=a/255;return t<=.040449936?t/12.92*100:Math.pow((t+.055)/1.055,2.4)*100}function tt(a){const t=a/100;let e=0;return t<=.0031308?e=t*12.92:e=1.055*Math.pow(t,1/2.4)-.055,Et(0,255,Math.round(e*255))}function Ut(){return dt}function at(a){const t=.008856451679035631,e=24389/27;return a>t?Math.pow(a,1/3):(e*a+16)/116}function st(a){const t=.008856451679035631,e=24389/27,r=a*a*a;return r>t?r:(116*a-16)/e}class X{static make(t=Ut(),e=200/Math.PI*J(50)/100,r=50,n=2,i=!1){const s=t,c=s[0]*.401288+s[1]*.650173+s[2]*-.051461,h=s[0]*-.250268+s[1]*1.204414+s[2]*.045854,m=s[0]*-.002079+s[1]*.048952+s[2]*.953127,l=.8+n/10,y=l>=.9?nt(.59,.69,(l-.9)*10):nt(.525,.59,(l-.8)*10);let p=i?1:l*(1-1/3.6*Math.exp((-e-42)/92));p=p>1?1:p<0?0:p;const f=l,g=[p*(100/c)+1-p,p*(100/h)+1-p,p*(100/m)+1-p],d=1/(5*e+1),P=d*d*d*d,I=1-P,k=P*e+.1*I*I*Math.cbrt(5*e),D=J(r)/t[1],A=1.48+Math.sqrt(D),O=.725/Math.pow(D,.2),E=O,x=[Math.pow(k*g[0]*c/100,.42),Math.pow(k*g[1]*h/100,.42),Math.pow(k*g[2]*m/100,.42)],F=[400*x[0]/(x[0]+27.13),400*x[1]/(x[1]+27.13),400*x[2]/(x[2]+27.13)],L=(2*F[0]+F[1]+.05*F[2])*O;return new X(D,L,O,E,y,f,g,k,Math.pow(k,.25),A)}constructor(t,e,r,n,i,s,c,h,m,l){this.n=t,this.aw=e,this.nbb=r,this.ncb=n,this.c=i,this.nc=s,this.rgbD=c,this.fl=h,this.fLRoot=m,this.z=l}}X.DEFAULT=X.make();class q{constructor(t,e,r,n,i,s,c,h,m){this.hue=t,this.chroma=e,this.j=r,this.q=n,this.m=i,this.s=s,this.jstar=c,this.astar=h,this.bstar=m}distance(t){const e=this.jstar-t.jstar,r=this.astar-t.astar,n=this.bstar-t.bstar,i=Math.sqrt(e*e+r*r+n*n);return 1.41*Math.pow(i,.63)}static fromInt(t){return q.fromIntInViewingConditions(t,X.DEFAULT)}static fromIntInViewingConditions(t,e){const r=(t&16711680)>>16,n=(t&65280)>>8,i=t&255,s=$(r),c=$(n),h=$(i),m=.41233895*s+.35762064*c+.18051042*h,l=.2126*s+.7152*c+.0722*h,y=.01932141*s+.11916382*c+.95034478*h,p=.401288*m+.650173*l-.051461*y,f=-.250268*m+1.204414*l+.045854*y,g=-.002079*m+.048952*l+.953127*y,d=e.rgbD[0]*p,P=e.rgbD[1]*f,I=e.rgbD[2]*g,k=Math.pow(e.fl*Math.abs(d)/100,.42),D=Math.pow(e.fl*Math.abs(P)/100,.42),A=Math.pow(e.fl*Math.abs(I)/100,.42),O=Y(d)*400*k/(k+27.13),E=Y(P)*400*D/(D+27.13),x=Y(I)*400*A/(A+27.13),F=(11*O+-12*E+x)/11,L=(O+E-2*x)/9,M=(20*O+20*E+21*x)/20,H=(40*O+20*E+x)/20,W=Math.atan2(L,F)*180/Math.PI,V=Ct(W),et=V*Math.PI/180,ut=H*e.nbb,Z=100*Math.pow(ut/e.aw,e.c*e.z),lt=4/e.c*Math.sqrt(Z/100)*(e.aw+4)*e.fLRoot,kt=V<20.14?V+360:V,St=.25*(Math.cos(kt*Math.PI/180+2)+3.8),Tt=5e4/13*St*e.nc*e.ncb*Math.sqrt(F*F+L*L)/(M+.305),ht=Math.pow(Tt,.9)*Math.pow(1.64-Math.pow(.29,e.n),.73),vt=ht*Math.sqrt(Z/100),Mt=vt*e.fLRoot,he=50*Math.sqrt(ht*e.c/(e.aw+4)),fe=(1+100*.007)*Z/(1+.007*Z),Rt=1/.0228*Math.log(1+.0228*Mt),de=Rt*Math.cos(et),me=Rt*Math.sin(et);return new q(V,vt,Z,lt,Mt,he,fe,de,me)}static fromJch(t,e,r){return q.fromJchInViewingConditions(t,e,r,X.DEFAULT)}static fromJchInViewingConditions(t,e,r,n){const i=4/n.c*Math.sqrt(t/100)*(n.aw+4)*n.fLRoot,s=e*n.fLRoot,c=e/Math.sqrt(t/100),h=50*Math.sqrt(c*n.c/(n.aw+4)),m=r*Math.PI/180,l=(1+100*.007)*t/(1+.007*t),y=1/.0228*Math.log(1+.0228*s),p=y*Math.cos(m),f=y*Math.sin(m);return new q(r,e,t,i,s,h,l,p,f)}static fromUcs(t,e,r){return q.fromUcsInViewingConditions(t,e,r,X.DEFAULT)}static fromUcsInViewingConditions(t,e,r,n){const i=e,s=r,c=Math.sqrt(i*i+s*s),m=(Math.exp(c*.0228)-1)/.0228/n.fLRoot;let l=Math.atan2(s,i)*(180/Math.PI);l<0&&(l+=360);const y=t/(1-(t-100)*.007);return q.fromJchInViewingConditions(y,m,l,n)}toInt(){return this.viewed(X.DEFAULT)}viewed(t){const e=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),r=Math.pow(e/Math.pow(1.64-Math.pow(.29,t.n),.73),1/.9),n=this.hue*Math.PI/180,i=.25*(Math.cos(n+2)+3.8),s=t.aw*Math.pow(this.j/100,1/t.c/t.z),c=i*(5e4/13)*t.nc*t.ncb,h=s/t.nbb,m=Math.sin(n),l=Math.cos(n),y=23*(h+.305)*r/(23*c+11*r*l+108*r*m),p=y*l,f=y*m,g=(460*h+451*p+288*f)/1403,d=(460*h-891*p-261*f)/1403,P=(460*h-220*p-6300*f)/1403,I=Math.max(0,27.13*Math.abs(g)/(400-Math.abs(g))),k=Y(g)*(100/t.fl)*Math.pow(I,1/.42),D=Math.max(0,27.13*Math.abs(d)/(400-Math.abs(d))),A=Y(d)*(100/t.fl)*Math.pow(D,1/.42),O=Math.max(0,27.13*Math.abs(P)/(400-Math.abs(P))),E=Y(P)*(100/t.fl)*Math.pow(O,1/.42),x=k/t.rgbD[0],F=A/t.rgbD[1],L=E/t.rgbD[2],M=1.86206786*x-1.01125463*F+.14918677*L,H=.38752654*x+.62144744*F-.00897398*L,K=-.0158415*x-.03412294*F+1.04996444*L;return Ft(M,H,K)}static fromXyzInViewingConditions(t,e,r,n){const i=.401288*t+.650173*e-.051461*r,s=-.250268*t+1.204414*e+.045854*r,c=-.002079*t+.048952*e+.953127*r,h=n.rgbD[0]*i,m=n.rgbD[1]*s,l=n.rgbD[2]*c,y=Math.pow(n.fl*Math.abs(h)/100,.42),p=Math.pow(n.fl*Math.abs(m)/100,.42),f=Math.pow(n.fl*Math.abs(l)/100,.42),g=Y(h)*400*y/(y+27.13),d=Y(m)*400*p/(p+27.13),P=Y(l)*400*f/(f+27.13),I=(11*g+-12*d+P)/11,k=(g+d-2*P)/9,D=(20*g+20*d+21*P)/20,A=(40*g+20*d+P)/20,E=Math.atan2(k,I)*180/Math.PI,x=E<0?E+360:E>=360?E-360:E,F=x*Math.PI/180,L=A*n.nbb,M=100*Math.pow(L/n.aw,n.c*n.z),H=4/n.c*Math.sqrt(M/100)*(n.aw+4)*n.fLRoot,K=x<20.14?x+360:x,W=1/4*(Math.cos(K*Math.PI/180+2)+3.8),et=5e4/13*W*n.nc*n.ncb*Math.sqrt(I*I+k*k)/(D+.305),ut=Math.pow(et,.9)*Math.pow(1.64-Math.pow(.29,n.n),.73),Z=ut*Math.sqrt(M/100),lt=Z*n.fLRoot,kt=50*Math.sqrt(ut*n.c/(n.aw+4)),St=(1+100*.007)*M/(1+.007*M),xt=Math.log(1+.0228*lt)/.0228,Tt=xt*Math.cos(F),ht=xt*Math.sin(F);return new q(x,Z,M,H,lt,kt,St,Tt,ht)}xyzInViewingConditions(t){const e=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),r=Math.pow(e/Math.pow(1.64-Math.pow(.29,t.n),.73),1/.9),n=this.hue*Math.PI/180,i=.25*(Math.cos(n+2)+3.8),s=t.aw*Math.pow(this.j/100,1/t.c/t.z),c=i*(5e4/13)*t.nc*t.ncb,h=s/t.nbb,m=Math.sin(n),l=Math.cos(n),y=23*(h+.305)*r/(23*c+11*r*l+108*r*m),p=y*l,f=y*m,g=(460*h+451*p+288*f)/1403,d=(460*h-891*p-261*f)/1403,P=(460*h-220*p-6300*f)/1403,I=Math.max(0,27.13*Math.abs(g)/(400-Math.abs(g))),k=Y(g)*(100/t.fl)*Math.pow(I,1/.42),D=Math.max(0,27.13*Math.abs(d)/(400-Math.abs(d))),A=Y(d)*(100/t.fl)*Math.pow(D,1/.42),O=Math.max(0,27.13*Math.abs(P)/(400-Math.abs(P))),E=Y(P)*(100/t.fl)*Math.pow(O,1/.42),x=k/t.rgbD[0],F=A/t.rgbD[1],L=E/t.rgbD[2],M=1.86206786*x-1.01125463*F+.14918677*L,H=.38752654*x+.62144744*F-.00897398*L,K=-.0158415*x-.03412294*F+1.04996444*L;return[M,H,K]}}class C{static sanitizeRadians(t){return(t+Math.PI*8)%(Math.PI*2)}static trueDelinearized(t){const e=t/100;let r=0;return e<=.0031308?r=e*12.92:r=1.055*Math.pow(e,1/2.4)-.055,r*255}static chromaticAdaptation(t){const e=Math.pow(Math.abs(t),.42);return Y(t)*400*e/(e+27.13)}static hueOf(t){const e=ft(t,C.SCALED_DISCOUNT_FROM_LINRGB),r=C.chromaticAdaptation(e[0]),n=C.chromaticAdaptation(e[1]),i=C.chromaticAdaptation(e[2]),s=(11*r+-12*n+i)/11,c=(r+n-2*i)/9;return Math.atan2(c,s)}static areInCyclicOrder(t,e,r){const n=C.sanitizeRadians(e-t),i=C.sanitizeRadians(r-t);return n<i}static intercept(t,e,r){return(e-t)/(r-t)}static lerpPoint(t,e,r){return[t[0]+(r[0]-t[0])*e,t[1]+(r[1]-t[1])*e,t[2]+(r[2]-t[2])*e]}static setCoordinate(t,e,r,n){const i=C.intercept(t[n],e,r[n]);return C.lerpPoint(t,i,r)}static isBounded(t){return 0<=t&&t<=100}static nthVertex(t,e){const r=C.Y_FROM_LINRGB[0],n=C.Y_FROM_LINRGB[1],i=C.Y_FROM_LINRGB[2],s=e%4<=1?0:100,c=e%2===0?0:100;if(e<4){const h=s,m=c,l=(t-h*n-m*i)/r;return C.isBounded(l)?[l,h,m]:[-1,-1,-1]}else if(e<8){const h=s,m=c,l=(t-m*r-h*i)/n;return C.isBounded(l)?[m,l,h]:[-1,-1,-1]}else{const h=s,m=c,l=(t-h*r-m*n)/i;return C.isBounded(l)?[h,m,l]:[-1,-1,-1]}}static bisectToSegment(t,e){let r=[-1,-1,-1],n=r,i=0,s=0,c=!1,h=!0;for(let m=0;m<12;m++){const l=C.nthVertex(t,m);if(l[0]<0)continue;const y=C.hueOf(l);if(!c){r=l,n=l,i=y,s=y,c=!0;continue}(h||C.areInCyclicOrder(i,y,s))&&(h=!1,C.areInCyclicOrder(i,e,y)?(n=l,s=y):(r=l,i=y))}return[r,n]}static midpoint(t,e){return[(t[0]+e[0])/2,(t[1]+e[1])/2,(t[2]+e[2])/2]}static criticalPlaneBelow(t){return Math.floor(t-.5)}static criticalPlaneAbove(t){return Math.ceil(t-.5)}static bisectToLimit(t,e){const r=C.bisectToSegment(t,e);let n=r[0],i=C.hueOf(n),s=r[1];for(let c=0;c<3;c++)if(n[c]!==s[c]){let h=-1,m=255;n[c]<s[c]?(h=C.criticalPlaneBelow(C.trueDelinearized(n[c])),m=C.criticalPlaneAbove(C.trueDelinearized(s[c]))):(h=C.criticalPlaneAbove(C.trueDelinearized(n[c])),m=C.criticalPlaneBelow(C.trueDelinearized(s[c])));for(let l=0;l<8&&!(Math.abs(m-h)<=1);l++){const y=Math.floor((h+m)/2),p=C.CRITICAL_PLANES[y],f=C.setCoordinate(n,p,s,c),g=C.hueOf(f);C.areInCyclicOrder(i,e,g)?(s=f,m=y):(n=f,i=g,h=y)}}return C.midpoint(n,s)}static inverseChromaticAdaptation(t){const e=Math.abs(t),r=Math.max(0,27.13*e/(400-e));return Y(t)*Math.pow(r,1/.42)}static findResultByJ(t,e,r){let n=Math.sqrt(r)*11;const i=X.DEFAULT,s=1/Math.pow(1.64-Math.pow(.29,i.n),.73),h=.25*(Math.cos(t+2)+3.8)*(5e4/13)*i.nc*i.ncb,m=Math.sin(t),l=Math.cos(t);for(let y=0;y<5;y++){const p=n/100,f=e===0||n===0?0:e/Math.sqrt(p),g=Math.pow(f*s,1/.9),P=i.aw*Math.pow(p,1/i.c/i.z)/i.nbb,I=23*(P+.305)*g/(23*h+11*g*l+108*g*m),k=I*l,D=I*m,A=(460*P+451*k+288*D)/1403,O=(460*P-891*k-261*D)/1403,E=(460*P-220*k-6300*D)/1403,x=C.inverseChromaticAdaptation(A),F=C.inverseChromaticAdaptation(O),L=C.inverseChromaticAdaptation(E),M=ft([x,F,L],C.LINRGB_FROM_SCALED_DISCOUNT);if(M[0]<0||M[1]<0||M[2]<0)return 0;const H=C.Y_FROM_LINRGB[0],K=C.Y_FROM_LINRGB[1],W=C.Y_FROM_LINRGB[2],V=H*M[0]+K*M[1]+W*M[2];if(V<=0)return 0;if(y===4||Math.abs(V-r)<.002)return M[0]>100.01||M[1]>100.01||M[2]>100.01?0:wt(M);n=n-(V-r)*n/(2*V)}return 0}static solveToInt(t,e,r){if(e<1e-4||r<1e-4||r>99.9999)return Gt(r);t=Ct(t);const n=t/180*Math.PI,i=J(r),s=C.findResultByJ(n,e,i);if(s!==0)return s;const c=C.bisectToLimit(i,n);return wt(c)}static solveToCam(t,e,r){return q.fromInt(C.solveToInt(t,e,r))}}C.SCALED_DISCOUNT_FROM_LINRGB=[[.001200833568784504,.002389694492170889,.0002795742885861124],[.0005891086651375999,.0029785502573438758,.0003270666104008398],[.00010146692491640572,.0005364214359186694,.0032979401770712076]],C.LINRGB_FROM_SCALED_DISCOUNT=[[1373.2198709594231,-1100.4251190754821,-7.278681089101213],[-271.815969077903,559.6580465940733,-32.46047482791194],[1.9622899599665666,-57.173814538844006,308.7233197812385]],C.Y_FROM_LINRGB=[.2126,.7152,.0722],C.CRITICAL_PLANES=[.015176349177441876,.045529047532325624,.07588174588720938,.10623444424209313,.13658714259697685,.16693984095186062,.19729253930674434,.2276452376616281,.2579979360165119,.28835063437139563,.3188300904430532,.350925934958123,.3848314933096426,.42057480301049466,.458183274052838,.4976837250274023,.5391024159806381,.5824650784040898,.6277969426914107,.6751227633498623,.7244668422128921,.775853049866786,.829304845476233,.8848452951698498,.942497089126609,1.0022825574869039,1.0642236851973577,1.1283421258858297,1.1946592148522128,1.2631959812511864,1.3339731595349034,1.407011200216447,1.4823302800086415,1.5599503113873272,1.6398909516233677,1.7221716113234105,1.8068114625156377,1.8938294463134073,1.9832442801866852,2.075074464868551,2.1693382909216234,2.2660538449872063,2.36523901573795,2.4669114995532007,2.5710888059345764,2.6777882626779785,2.7870270208169257,2.898822059350997,3.0131901897720907,3.1301480604002863,3.2497121605402226,3.3718988244681087,3.4967242352587946,3.624204428461639,3.754355295633311,3.887192587735158,4.022731918402185,4.160988767090289,4.301978482107941,4.445716283538092,4.592217266055746,4.741496401646282,4.893568542229298,5.048448422192488,5.20615066083972,5.3666897647573375,5.5300801301023865,5.696336044816294,5.865471690767354,6.037501145825082,6.212438385869475,6.390297286737924,6.571091626112461,6.7548350853498045,6.941541251256611,7.131223617812143,7.323895587840543,7.5195704746346665,7.7182615035334345,7.919981813454504,8.124744458384042,8.332562408825165,8.543448553206703,8.757415699253682,8.974476575321063,9.194643831691977,9.417930041841839,9.644347703669503,9.873909240696694,10.106627003236781,10.342513269534024,10.58158024687427,10.8238400726681,11.069304815507364,11.317986476196008,11.569896988756009,11.825048221409341,12.083451977536606,12.345119996613247,12.610063955123938,12.878295467455942,13.149826086772048,13.42466730586372,13.702830557985108,13.984327217668513,14.269168601521828,14.55736596900856,14.848930523210871,15.143873411576273,15.44220572664832,15.743938506781891,16.04908273684337,16.35764934889634,16.66964922287304,16.985093187232053,17.30399201960269,17.62635644741625,17.95219714852476,18.281524751807332,18.614349837764564,18.95068293910138,19.290534541298456,19.633915083172692,19.98083495742689,20.331304511189067,20.685334046541502,21.042933821039977,21.404114048223256,21.76888489811322,22.137256497705877,22.50923893145328,22.884842241736916,23.264076429332462,23.6469514538663,24.033477234264016,24.42366364919083,24.817520537484558,25.21505769858089,25.61628489293138,26.021211842414342,26.429848230738664,26.842203703840827,27.258287870275353,27.678110301598522,28.10168053274597,28.529008062403893,28.96010235337422,29.39497283293396,29.83362889318845,30.276079891419332,30.722335150426627,31.172403958865512,31.62629557157785,32.08401920991837,32.54558406207592,33.010999283389665,33.4802739966603,33.953417292456834,34.430438229418264,34.911345834551085,35.39614910352207,35.88485700094671,36.37747846067349,36.87402238606382,37.37449765026789,37.87891309649659,38.38727753828926,38.89959975977785,39.41588851594697,39.93615253289054,40.460400508064545,40.98864111053629,41.520882981230194,42.05713473317016,42.597404951718396,43.141702194811224,43.6900349931913,44.24241185063697,44.798841244188324,45.35933162437017,45.92389141541209,46.49252901546552,47.065252796817916,47.64207110610409,48.22299226451468,48.808024568002054,49.3971762874833,49.9904556690408,50.587870934119984,51.189430279724725,51.79514187861014,52.40501387947288,53.0190544071392,53.637271562750364,54.259673423945976,54.88626804504493,55.517063457223934,56.15206766869424,56.79128866487574,57.43473440856916,58.08241284012621,58.734331877617365,59.39049941699807,60.05092333227251,60.715611475655585,61.38457167773311,62.057811747619894,62.7353394731159,63.417162620860914,64.10328893648692,64.79372614476921,65.48848194977529,66.18756403501224,66.89098006357258,67.59873767827808,68.31084450182222,69.02730813691093,69.74813616640164,70.47333615344107,71.20291564160104,71.93688215501312,72.67524319850172,73.41800625771542,74.16517879925733,74.9167682708136,75.67278210128072,76.43322770089146,77.1981124613393,77.96744375590167,78.74122893956174,79.51947534912904,80.30219030335869,81.08938110306934,81.88105503125999,82.67721935322541,83.4778813166706,84.28304815182372,85.09272707154808,85.90692527145302,86.72564993000343,87.54890820862819,88.3767072518277,89.2090541872801,90.04595612594655,90.88742016217518,91.73345337380438,92.58406282226491,93.43925555268066,94.29903859396902,95.16341895893969,96.03240364439274,96.9059996312159,97.78421388448044,98.6670533535366,99.55452497210776];class v{static from(t,e,r){return new v(C.solveToInt(t,e,r))}static fromInt(t){return new v(t)}toInt(){return this.argb}get hue(){return this.internalHue}set hue(t){this.setInternalState(C.solveToInt(t,this.internalChroma,this.internalTone))}get chroma(){return this.internalChroma}set chroma(t){this.setInternalState(C.solveToInt(this.internalHue,t,this.internalTone))}get tone(){return this.internalTone}set tone(t){this.setInternalState(C.solveToInt(this.internalHue,this.internalChroma,t))}setValue(t,e){this[t]=e}toString(){return`HCT(${this.hue.toFixed(0)}, ${this.chroma.toFixed(0)}, ${this.tone.toFixed(0)})`}static isBlue(t){return t>=250&&t<270}static isYellow(t){return t>=105&&t<125}static isCyan(t){return t>=170&&t<207}constructor(t){this.argb=t;const e=q.fromInt(t);this.internalHue=e.hue,this.internalChroma=e.chroma,this.internalTone=It(t),this.argb=t}setInternalState(t){const e=q.fromInt(t);this.internalHue=e.hue,this.internalChroma=e.chroma,this.internalTone=It(t),this.argb=t}inViewingConditions(t){const r=q.fromInt(this.toInt()).xyzInViewingConditions(t),n=q.fromXyzInViewingConditions(r[0],r[1],r[2],X.make());return v.from(n.hue,n.chroma,yt(r[1]))}}class N{static ratioOfTones(t,e){return t=z(0,100,t),e=z(0,100,e),N.ratioOfYs(J(t),J(e))}static ratioOfYs(t,e){const r=t>e?t:e,n=r===e?t:e;return(r+5)/(n+5)}static lighter(t,e){if(t<0||t>100)return-1;const r=J(t),n=e*(r+5)-5,i=N.ratioOfYs(n,r),s=Math.abs(i-e);if(i<e&&s>.04)return-1;const c=yt(n)+.4;return c<0||c>100?-1:c}static darker(t,e){if(t<0||t>100)return-1;const r=J(t),n=(r+5)/e-5,i=N.ratioOfYs(r,n),s=Math.abs(i-e);if(i<e&&s>.04)return-1;const c=yt(n)-.4;return c<0||c>100?-1:c}static lighterUnsafe(t,e){const r=N.lighter(t,e);return r<0?100:r}static darkerUnsafe(t,e){const r=N.darker(t,e);return r<0?0:r}}class Pt{static isDisliked(t){const e=Math.round(t.hue)>=90&&Math.round(t.hue)<=111,r=Math.round(t.chroma)>16,n=Math.round(t.tone)<65;return e&&r&&n}static fixIfDisliked(t){return Pt.isDisliked(t)?v.from(t.hue,t.chroma,70):t}}function Ht(a,t,e){if(a.name!==e.name)throw new Error(`Attempting to extend color ${a.name} with color ${e.name} of different name for spec version ${t}.`);if(a.isBackground!==e.isBackground)throw new Error(`Attempting to extend color ${a.name} as a ${a.isBackground?"background":"foreground"} with color ${e.name} as a ${e.isBackground?"background":"foreground"} for spec version ${t}.`)}function w(a,t,e){return Ht(a,t,e),u.fromPalette({name:a.name,palette:r=>r.specVersion===t?e.palette(r):a.palette(r),tone:r=>r.specVersion===t?e.tone(r):a.tone(r),isBackground:a.isBackground,chromaMultiplier:r=>{const n=r.specVersion===t?e.chromaMultiplier:a.chromaMultiplier;return n!==void 0?n(r):1},background:r=>{const n=r.specVersion===t?e.background:a.background;return n!==void 0?n(r):void 0},secondBackground:r=>{const n=r.specVersion===t?e.secondBackground:a.secondBackground;return n!==void 0?n(r):void 0},contrastCurve:r=>{const n=r.specVersion===t?e.contrastCurve:a.contrastCurve;return n!==void 0?n(r):void 0},toneDeltaPair:r=>{const n=r.specVersion===t?e.toneDeltaPair:a.toneDeltaPair;return n!==void 0?n(r):void 0}})}class u{static fromPalette(t){return new u(t.name??"",t.palette,t.tone??u.getInitialToneFromBackground(t.background),t.isBackground??!1,t.chromaMultiplier,t.background,t.secondBackground,t.contrastCurve,t.toneDeltaPair)}static getInitialToneFromBackground(t){return t===void 0?e=>50:e=>t(e)?t(e).getTone(e):50}constructor(t,e,r,n,i,s,c,h,m){if(this.name=t,this.palette=e,this.tone=r,this.isBackground=n,this.chromaMultiplier=i,this.background=s,this.secondBackground=c,this.contrastCurve=h,this.toneDeltaPair=m,this.hctCache=new Map,!s&&c)throw new Error(`Color ${t} has secondBackgrounddefined, but background is not defined.`);if(!s&&h)throw new Error(`Color ${t} has contrastCurvedefined, but background is not defined.`);if(s&&!h)throw new Error(`Color ${t} has backgrounddefined, but contrastCurve is not defined.`)}clone(){return u.fromPalette({name:this.name,palette:this.palette,tone:this.tone,isBackground:this.isBackground,chromaMultiplier:this.chromaMultiplier,background:this.background,secondBackground:this.secondBackground,contrastCurve:this.contrastCurve,toneDeltaPair:this.toneDeltaPair})}clearCache(){this.hctCache.clear()}getArgb(t){return this.getHct(t).toInt()}getHct(t){const e=this.hctCache.get(t);if(e!=null)return e;const r=Bt(t.specVersion).getHct(t,this);return this.hctCache.size>4&&this.hctCache.clear(),this.hctCache.set(t,r),r}getTone(t){return Bt(t.specVersion).getTone(t,this)}static foregroundTone(t,e){const r=N.lighterUnsafe(t,e),n=N.darkerUnsafe(t,e),i=N.ratioOfTones(r,t),s=N.ratioOfTones(n,t);if(u.tonePrefersLightForeground(t)){const h=Math.abs(i-s)<.1&&i<e&&s<e;return i>=e||i>=s||h?r:n}else return s>=e||s>=i?n:r}static tonePrefersLightForeground(t){return Math.round(t)<60}static toneAllowsLightForeground(t){return Math.round(t)<=49}static enableLightForeground(t){return u.tonePrefersLightForeground(t)&&!u.toneAllowsLightForeground(t)?49:t}}class Yt{getHct(t,e){const r=e.getTone(t);return e.palette(t).getHct(r)}getTone(t,e){const r=t.contrastLevel<0,n=e.toneDeltaPair?e.toneDeltaPair(t):void 0;if(n){const i=n.roleA,s=n.roleB,c=n.delta,h=n.polarity,m=n.stayTogether,l=h==="nearer"||h==="lighter"&&!t.isDark||h==="darker"&&t.isDark,y=l?i:s,p=l?s:i,f=e.name===y.name,g=t.isDark?1:-1;let d=y.tone(t),P=p.tone(t);if(e.background&&y.contrastCurve&&p.contrastCurve){const I=e.background(t),k=y.contrastCurve(t),D=p.contrastCurve(t);if(I&&k&&D){const A=I.getTone(t),O=k.get(t.contrastLevel),E=D.get(t.contrastLevel);N.ratioOfTones(A,d)<O&&(d=u.foregroundTone(A,O)),N.ratioOfTones(A,P)<E&&(P=u.foregroundTone(A,E)),r&&(d=u.foregroundTone(A,O),P=u.foregroundTone(A,E))}}return(P-d)*g<c&&(P=z(0,100,d+c*g),(P-d)*g>=c||(d=z(0,100,P-c*g))),50<=d&&d<60?g>0?(d=60,P=Math.max(P,d+c*g)):(d=49,P=Math.min(P,d+c*g)):50<=P&&P<60&&(m?g>0?(d=60,P=Math.max(P,d+c*g)):(d=49,P=Math.min(P,d+c*g)):g>0?P=60:P=49),f?d:P}else{let i=e.tone(t);if(e.background==null||e.background(t)===void 0||e.contrastCurve==null||e.contrastCurve(t)===void 0)return i;const s=e.background(t).getTone(t),c=e.contrastCurve(t).get(t.contrastLevel);if(N.ratioOfTones(s,i)>=c||(i=u.foregroundTone(s,c)),r&&(i=u.foregroundTone(s,c)),e.isBackground&&50<=i&&i<60&&(N.ratioOfTones(49,s)>=c?i=49:i=60),e.secondBackground==null||e.secondBackground(t)===void 0)return i;const[h,m]=[e.background,e.secondBackground],[l,y]=[h(t).getTone(t),m(t).getTone(t)],[p,f]=[Math.max(l,y),Math.min(l,y)];if(N.ratioOfTones(p,i)>=c&&N.ratioOfTones(f,i)>=c)return i;const g=N.lighter(p,c),d=N.darker(f,c),P=[];return g!==-1&&P.push(g),d!==-1&&P.push(d),u.tonePrefersLightForeground(l)||u.tonePrefersLightForeground(y)?g<0?100:g:P.length===1?P[0]:d<0?0:d}}}class qt{getHct(t,e){const r=e.palette(t),n=e.getTone(t),i=r.hue,s=r.chroma*(e.chromaMultiplier?e.chromaMultiplier(t):1);return v.from(i,s,n)}getTone(t,e){const r=e.toneDeltaPair?e.toneDeltaPair(t):void 0;if(r){const n=r.roleA,i=r.roleB,s=r.polarity,c=r.constraint,h=s==="darker"||s==="relative_lighter"&&t.isDark||s==="relative_darker"&&!t.isDark?-r.delta:r.delta,m=e.name===n.name,l=m?n:i,y=m?i:n;let p=l.tone(t),f=y.getTone(t);const g=h*(m?1:-1);if(c==="exact"?p=z(0,100,f+g):c==="nearer"?g>0?p=z(0,100,z(f,f+g,p)):p=z(0,100,z(f+g,f,p)):c==="farther"&&(g>0?p=z(f+g,100,p):p=z(0,f+g,p)),e.background&&e.contrastCurve){const d=e.background(t),P=e.contrastCurve(t);if(d&&P){const I=d.getTone(t),k=P.get(t.contrastLevel);p=N.ratioOfTones(I,p)>=k&&t.contrastLevel>=0?p:u.foregroundTone(I,k)}}return e.isBackground&&!e.name.endsWith("_fixed_dim")&&(p>=57?p=z(65,100,p):p=z(0,49,p)),p}else{let n=e.tone(t);if(e.background==null||e.background(t)===void 0||e.contrastCurve==null||e.contrastCurve(t)===void 0)return n;const i=e.background(t).getTone(t),s=e.contrastCurve(t).get(t.contrastLevel);if(n=N.ratioOfTones(i,n)>=s&&t.contrastLevel>=0?n:u.foregroundTone(i,s),e.isBackground&&!e.name.endsWith("_fixed_dim")&&(n>=57?n=z(65,100,n):n=z(0,49,n)),e.secondBackground==null||e.secondBackground(t)===void 0)return n;const[c,h]=[e.background,e.secondBackground],[m,l]=[c(t).getTone(t),h(t).getTone(t)],[y,p]=[Math.max(m,l),Math.min(m,l)];if(N.ratioOfTones(y,n)>=s&&N.ratioOfTones(p,n)>=s)return n;const f=N.lighter(y,s),g=N.darker(p,s),d=[];return f!==-1&&d.push(f),g!==-1&&d.push(g),u.tonePrefersLightForeground(m)||u.tonePrefersLightForeground(l)?f<0?100:f:d.length===1?d[0]:g<0?0:g}}}const Kt=new Yt,jt=new qt;function Bt(a){return a==="2025"?jt:Kt}class T{constructor(t,e,r,n){this.low=t,this.normal=e,this.medium=r,this.high=n}get(t){return t<=-1?this.low:t<0?nt(this.low,this.normal,(t- -1)/1):t<.5?nt(this.normal,this.medium,(t-0)/.5):t<1?nt(this.medium,this.high,(t-.5)/.5):this.high}}class R{constructor(t,e,r,n,i,s){this.roleA=t,this.roleB=e,this.delta=r,this.polarity=n,this.stayTogether=i,this.constraint=s,this.constraint=s??"exact"}}var S;(function(a){a[a.MONOCHROME=0]="MONOCHROME",a[a.NEUTRAL=1]="NEUTRAL",a[a.TONAL_SPOT=2]="TONAL_SPOT",a[a.VIBRANT=3]="VIBRANT",a[a.EXPRESSIVE=4]="EXPRESSIVE",a[a.FIDELITY=5]="FIDELITY",a[a.CONTENT=6]="CONTENT",a[a.RAINBOW=7]="RAINBOW",a[a.FRUIT_SALAD=8]="FRUIT_SALAD"})(S||(S={}));function rt(a){return a.variant===S.FIDELITY||a.variant===S.CONTENT}function _(a){return a.variant===S.MONOCHROME}function Xt(a,t,e,r){let n=e,i=v.from(a,t,e);if(i.chroma<t){let s=i.chroma;for(;i.chroma<t;){n+=r?-1:1;const c=v.from(a,t,n);if(s>c.chroma||Math.abs(c.chroma-t)<.4)break;const h=Math.abs(c.chroma-t),m=Math.abs(i.chroma-t);h<m&&(i=c),s=Math.max(s,c.chroma)}}return n}class Wt{primaryPaletteKeyColor(){return u.fromPalette({name:"primary_palette_key_color",palette:t=>t.primaryPalette,tone:t=>t.primaryPalette.keyColor.tone})}secondaryPaletteKeyColor(){return u.fromPalette({name:"secondary_palette_key_color",palette:t=>t.secondaryPalette,tone:t=>t.secondaryPalette.keyColor.tone})}tertiaryPaletteKeyColor(){return u.fromPalette({name:"tertiary_palette_key_color",palette:t=>t.tertiaryPalette,tone:t=>t.tertiaryPalette.keyColor.tone})}neutralPaletteKeyColor(){return u.fromPalette({name:"neutral_palette_key_color",palette:t=>t.neutralPalette,tone:t=>t.neutralPalette.keyColor.tone})}neutralVariantPaletteKeyColor(){return u.fromPalette({name:"neutral_variant_palette_key_color",palette:t=>t.neutralVariantPalette,tone:t=>t.neutralVariantPalette.keyColor.tone})}errorPaletteKeyColor(){return u.fromPalette({name:"error_palette_key_color",palette:t=>t.errorPalette,tone:t=>t.errorPalette.keyColor.tone})}background(){return u.fromPalette({name:"background",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:98,isBackground:!0})}onBackground(){return u.fromPalette({name:"on_background",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:10,background:t=>this.background(),contrastCurve:t=>new T(3,3,4.5,7)})}surface(){return u.fromPalette({name:"surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:98,isBackground:!0})}surfaceDim(){return u.fromPalette({name:"surface_dim",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:new T(87,87,80,75).get(t.contrastLevel),isBackground:!0})}surfaceBright(){return u.fromPalette({name:"surface_bright",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(24,24,29,34).get(t.contrastLevel):98,isBackground:!0})}surfaceContainerLowest(){return u.fromPalette({name:"surface_container_lowest",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(4,4,2,0).get(t.contrastLevel):100,isBackground:!0})}surfaceContainerLow(){return u.fromPalette({name:"surface_container_low",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(10,10,11,12).get(t.contrastLevel):new T(96,96,96,95).get(t.contrastLevel),isBackground:!0})}surfaceContainer(){return u.fromPalette({name:"surface_container",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(12,12,16,20).get(t.contrastLevel):new T(94,94,92,90).get(t.contrastLevel),isBackground:!0})}surfaceContainerHigh(){return u.fromPalette({name:"surface_container_high",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(17,17,21,25).get(t.contrastLevel):new T(92,92,88,85).get(t.contrastLevel),isBackground:!0})}surfaceContainerHighest(){return u.fromPalette({name:"surface_container_highest",palette:t=>t.neutralPalette,tone:t=>t.isDark?new T(22,22,26,30).get(t.contrastLevel):new T(90,90,84,80).get(t.contrastLevel),isBackground:!0})}onSurface(){return u.fromPalette({name:"on_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:10,background:t=>this.highestSurface(t),contrastCurve:t=>new T(4.5,7,11,21)})}surfaceVariant(){return u.fromPalette({name:"surface_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?30:90,isBackground:!0})}onSurfaceVariant(){return u.fromPalette({name:"on_surface_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?80:30,background:t=>this.highestSurface(t),contrastCurve:t=>new T(3,4.5,7,11)})}inverseSurface(){return u.fromPalette({name:"inverse_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:20,isBackground:!0})}inverseOnSurface(){return u.fromPalette({name:"inverse_on_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?20:95,background:t=>this.inverseSurface(),contrastCurve:t=>new T(4.5,7,11,21)})}outline(){return u.fromPalette({name:"outline",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?60:50,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1.5,3,4.5,7)})}outlineVariant(){return u.fromPalette({name:"outline_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?30:80,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5)})}shadow(){return u.fromPalette({name:"shadow",palette:t=>t.neutralPalette,tone:t=>0})}scrim(){return u.fromPalette({name:"scrim",palette:t=>t.neutralPalette,tone:t=>0})}surfaceTint(){return u.fromPalette({name:"surface_tint",palette:t=>t.primaryPalette,tone:t=>t.isDark?80:40,isBackground:!0})}primary(){return u.fromPalette({name:"primary",palette:t=>t.primaryPalette,tone:t=>_(t)?t.isDark?100:0:t.isDark?80:40,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(3,4.5,7,7),toneDeltaPair:t=>new R(this.primaryContainer(),this.primary(),10,"nearer",!1)})}primaryDim(){}onPrimary(){return u.fromPalette({name:"on_primary",palette:t=>t.primaryPalette,tone:t=>_(t)?t.isDark?10:90:t.isDark?20:100,background:t=>this.primary(),contrastCurve:t=>new T(4.5,7,11,21)})}primaryContainer(){return u.fromPalette({name:"primary_container",palette:t=>t.primaryPalette,tone:t=>rt(t)?t.sourceColorHct.tone:_(t)?t.isDark?85:25:t.isDark?30:90,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.primaryContainer(),this.primary(),10,"nearer",!1)})}onPrimaryContainer(){return u.fromPalette({name:"on_primary_container",palette:t=>t.primaryPalette,tone:t=>rt(t)?u.foregroundTone(this.primaryContainer().tone(t),4.5):_(t)?t.isDark?0:100:t.isDark?90:30,background:t=>this.primaryContainer(),contrastCurve:t=>new T(3,4.5,7,11)})}inversePrimary(){return u.fromPalette({name:"inverse_primary",palette:t=>t.primaryPalette,tone:t=>t.isDark?40:80,background:t=>this.inverseSurface(),contrastCurve:t=>new T(3,4.5,7,7)})}secondary(){return u.fromPalette({name:"secondary",palette:t=>t.secondaryPalette,tone:t=>t.isDark?80:40,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(3,4.5,7,7),toneDeltaPair:t=>new R(this.secondaryContainer(),this.secondary(),10,"nearer",!1)})}secondaryDim(){}onSecondary(){return u.fromPalette({name:"on_secondary",palette:t=>t.secondaryPalette,tone:t=>_(t)?t.isDark?10:100:t.isDark?20:100,background:t=>this.secondary(),contrastCurve:t=>new T(4.5,7,11,21)})}secondaryContainer(){return u.fromPalette({name:"secondary_container",palette:t=>t.secondaryPalette,tone:t=>{const e=t.isDark?30:90;return _(t)?t.isDark?30:85:rt(t)?Xt(t.secondaryPalette.hue,t.secondaryPalette.chroma,e,!t.isDark):e},isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.secondaryContainer(),this.secondary(),10,"nearer",!1)})}onSecondaryContainer(){return u.fromPalette({name:"on_secondary_container",palette:t=>t.secondaryPalette,tone:t=>_(t)?t.isDark?90:10:rt(t)?u.foregroundTone(this.secondaryContainer().tone(t),4.5):t.isDark?90:30,background:t=>this.secondaryContainer(),contrastCurve:t=>new T(3,4.5,7,11)})}tertiary(){return u.fromPalette({name:"tertiary",palette:t=>t.tertiaryPalette,tone:t=>_(t)?t.isDark?90:25:t.isDark?80:40,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(3,4.5,7,7),toneDeltaPair:t=>new R(this.tertiaryContainer(),this.tertiary(),10,"nearer",!1)})}tertiaryDim(){}onTertiary(){return u.fromPalette({name:"on_tertiary",palette:t=>t.tertiaryPalette,tone:t=>_(t)?t.isDark?10:90:t.isDark?20:100,background:t=>this.tertiary(),contrastCurve:t=>new T(4.5,7,11,21)})}tertiaryContainer(){return u.fromPalette({name:"tertiary_container",palette:t=>t.tertiaryPalette,tone:t=>{if(_(t))return t.isDark?60:49;if(!rt(t))return t.isDark?30:90;const e=t.tertiaryPalette.getHct(t.sourceColorHct.tone);return Pt.fixIfDisliked(e).tone},isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.tertiaryContainer(),this.tertiary(),10,"nearer",!1)})}onTertiaryContainer(){return u.fromPalette({name:"on_tertiary_container",palette:t=>t.tertiaryPalette,tone:t=>_(t)?t.isDark?0:100:rt(t)?u.foregroundTone(this.tertiaryContainer().tone(t),4.5):t.isDark?90:30,background:t=>this.tertiaryContainer(),contrastCurve:t=>new T(3,4.5,7,11)})}error(){return u.fromPalette({name:"error",palette:t=>t.errorPalette,tone:t=>t.isDark?80:40,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(3,4.5,7,7),toneDeltaPair:t=>new R(this.errorContainer(),this.error(),10,"nearer",!1)})}errorDim(){}onError(){return u.fromPalette({name:"on_error",palette:t=>t.errorPalette,tone:t=>t.isDark?20:100,background:t=>this.error(),contrastCurve:t=>new T(4.5,7,11,21)})}errorContainer(){return u.fromPalette({name:"error_container",palette:t=>t.errorPalette,tone:t=>t.isDark?30:90,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.errorContainer(),this.error(),10,"nearer",!1)})}onErrorContainer(){return u.fromPalette({name:"on_error_container",palette:t=>t.errorPalette,tone:t=>_(t)?t.isDark?90:10:t.isDark?90:30,background:t=>this.errorContainer(),contrastCurve:t=>new T(3,4.5,7,11)})}primaryFixed(){return u.fromPalette({name:"primary_fixed",palette:t=>t.primaryPalette,tone:t=>_(t)?40:90,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.primaryFixed(),this.primaryFixedDim(),10,"lighter",!0)})}primaryFixedDim(){return u.fromPalette({name:"primary_fixed_dim",palette:t=>t.primaryPalette,tone:t=>_(t)?30:80,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.primaryFixed(),this.primaryFixedDim(),10,"lighter",!0)})}onPrimaryFixed(){return u.fromPalette({name:"on_primary_fixed",palette:t=>t.primaryPalette,tone:t=>_(t)?100:10,background:t=>this.primaryFixedDim(),secondBackground:t=>this.primaryFixed(),contrastCurve:t=>new T(4.5,7,11,21)})}onPrimaryFixedVariant(){return u.fromPalette({name:"on_primary_fixed_variant",palette:t=>t.primaryPalette,tone:t=>_(t)?90:30,background:t=>this.primaryFixedDim(),secondBackground:t=>this.primaryFixed(),contrastCurve:t=>new T(3,4.5,7,11)})}secondaryFixed(){return u.fromPalette({name:"secondary_fixed",palette:t=>t.secondaryPalette,tone:t=>_(t)?80:90,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.secondaryFixed(),this.secondaryFixedDim(),10,"lighter",!0)})}secondaryFixedDim(){return u.fromPalette({name:"secondary_fixed_dim",palette:t=>t.secondaryPalette,tone:t=>_(t)?70:80,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.secondaryFixed(),this.secondaryFixedDim(),10,"lighter",!0)})}onSecondaryFixed(){return u.fromPalette({name:"on_secondary_fixed",palette:t=>t.secondaryPalette,tone:t=>10,background:t=>this.secondaryFixedDim(),secondBackground:t=>this.secondaryFixed(),contrastCurve:t=>new T(4.5,7,11,21)})}onSecondaryFixedVariant(){return u.fromPalette({name:"on_secondary_fixed_variant",palette:t=>t.secondaryPalette,tone:t=>_(t)?25:30,background:t=>this.secondaryFixedDim(),secondBackground:t=>this.secondaryFixed(),contrastCurve:t=>new T(3,4.5,7,11)})}tertiaryFixed(){return u.fromPalette({name:"tertiary_fixed",palette:t=>t.tertiaryPalette,tone:t=>_(t)?40:90,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.tertiaryFixed(),this.tertiaryFixedDim(),10,"lighter",!0)})}tertiaryFixedDim(){return u.fromPalette({name:"tertiary_fixed_dim",palette:t=>t.tertiaryPalette,tone:t=>_(t)?30:80,isBackground:!0,background:t=>this.highestSurface(t),contrastCurve:t=>new T(1,1,3,4.5),toneDeltaPair:t=>new R(this.tertiaryFixed(),this.tertiaryFixedDim(),10,"lighter",!0)})}onTertiaryFixed(){return u.fromPalette({name:"on_tertiary_fixed",palette:t=>t.tertiaryPalette,tone:t=>_(t)?100:10,background:t=>this.tertiaryFixedDim(),secondBackground:t=>this.tertiaryFixed(),contrastCurve:t=>new T(4.5,7,11,21)})}onTertiaryFixedVariant(){return u.fromPalette({name:"on_tertiary_fixed_variant",palette:t=>t.tertiaryPalette,tone:t=>_(t)?90:30,background:t=>this.tertiaryFixedDim(),secondBackground:t=>this.tertiaryFixed(),contrastCurve:t=>new T(3,4.5,7,11)})}highestSurface(t){return t.isDark?this.surfaceBright():this.surfaceDim()}}function B(a,t=0,e=100,r=1){let n=At(a.hue,a.chroma*r,100,!0);return z(t,e,n)}function Q(a,t=0,e=100){let r=At(a.hue,a.chroma,0,!1);return z(t,e,r)}function At(a,t,e,r){let n=e,i=v.from(a,t,n);for(;i.chroma<t&&!(e<0||e>100);){e+=r?-1:1;const s=v.from(a,t,e);i.chroma<s.chroma&&(i=s,n=e)}return n}function b(a){return a===1.5?new T(1.5,1.5,3,5.5):a===3?new T(3,3,4.5,7):a===4.5?new T(4.5,4.5,7,11):a===6?new T(6,6,7,11):a===7?new T(7,7,11,21):a===9?new T(9,9,11,21):a===11?new T(11,11,21,21):a===21?new T(21,21,21,21):new T(a,a,7,21)}class $t extends Wt{surface(){const t=u.fromPalette({name:"surface",palette:e=>e.neutralPalette,tone:e=>(super.surface().tone(e),e.platform==="phone"?e.isDark?4:v.isYellow(e.neutralPalette.hue)?99:e.variant===S.VIBRANT?97:98:0),isBackground:!0});return w(super.surface(),"2025",t)}surfaceDim(){const t=u.fromPalette({name:"surface_dim",palette:e=>e.neutralPalette,tone:e=>e.isDark?4:v.isYellow(e.neutralPalette.hue)?90:e.variant===S.VIBRANT?85:87,isBackground:!0,chromaMultiplier:e=>{if(!e.isDark){if(e.variant===S.NEUTRAL)return 2.5;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?2.7:1.75;if(e.variant===S.VIBRANT)return 1.36}return 1}});return w(super.surfaceDim(),"2025",t)}surfaceBright(){const t=u.fromPalette({name:"surface_bright",palette:e=>e.neutralPalette,tone:e=>e.isDark?18:v.isYellow(e.neutralPalette.hue)?99:e.variant===S.VIBRANT?97:98,isBackground:!0,chromaMultiplier:e=>{if(e.isDark){if(e.variant===S.NEUTRAL)return 2.5;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?2.7:1.75;if(e.variant===S.VIBRANT)return 1.36}return 1}});return w(super.surfaceBright(),"2025",t)}surfaceContainerLowest(){const t=u.fromPalette({name:"surface_container_lowest",palette:e=>e.neutralPalette,tone:e=>e.isDark?0:100,isBackground:!0});return w(super.surfaceContainerLowest(),"2025",t)}surfaceContainerLow(){const t=u.fromPalette({name:"surface_container_low",palette:e=>e.neutralPalette,tone:e=>e.platform==="phone"?e.isDark?6:v.isYellow(e.neutralPalette.hue)?98:e.variant===S.VIBRANT?95:96:15,isBackground:!0,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 1.3;if(e.variant===S.TONAL_SPOT)return 1.25;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?1.3:1.15;if(e.variant===S.VIBRANT)return 1.08}return 1}});return w(super.surfaceContainerLow(),"2025",t)}surfaceContainer(){const t=u.fromPalette({name:"surface_container",palette:e=>e.neutralPalette,tone:e=>e.platform==="phone"?e.isDark?9:v.isYellow(e.neutralPalette.hue)?96:e.variant===S.VIBRANT?92:94:20,isBackground:!0,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 1.6;if(e.variant===S.TONAL_SPOT)return 1.4;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?1.6:1.3;if(e.variant===S.VIBRANT)return 1.15}return 1}});return w(super.surfaceContainer(),"2025",t)}surfaceContainerHigh(){const t=u.fromPalette({name:"surface_container_high",palette:e=>e.neutralPalette,tone:e=>e.platform==="phone"?e.isDark?12:v.isYellow(e.neutralPalette.hue)?94:e.variant===S.VIBRANT?90:92:25,isBackground:!0,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 1.9;if(e.variant===S.TONAL_SPOT)return 1.5;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?1.95:1.45;if(e.variant===S.VIBRANT)return 1.22}return 1}});return w(super.surfaceContainerHigh(),"2025",t)}surfaceContainerHighest(){const t=u.fromPalette({name:"surface_container_highest",palette:e=>e.neutralPalette,tone:e=>e.isDark?15:v.isYellow(e.neutralPalette.hue)?92:e.variant===S.VIBRANT?88:90,isBackground:!0,chromaMultiplier:e=>e.variant===S.NEUTRAL?2.2:e.variant===S.TONAL_SPOT?1.7:e.variant===S.EXPRESSIVE?v.isYellow(e.neutralPalette.hue)?2.3:1.6:e.variant===S.VIBRANT?1.29:1});return w(super.surfaceContainerHighest(),"2025",t)}onSurface(){const t=u.fromPalette({name:"on_surface",palette:e=>e.neutralPalette,tone:e=>e.variant===S.VIBRANT?B(e.neutralPalette,0,100,1.1):u.getInitialToneFromBackground(r=>r.platform==="phone"?this.highestSurface(r):this.surfaceContainerHigh())(e),chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 2.2;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?e.isDark?3:2.3:1.6}return 1},background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.isDark&&e.platform==="phone"?b(11):b(9)});return w(super.onSurface(),"2025",t)}onSurfaceVariant(){const t=u.fromPalette({name:"on_surface_variant",palette:e=>e.neutralPalette,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 2.2;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?e.isDark?3:2.3:1.6}return 1},background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.platform==="phone"?e.isDark?b(6):b(4.5):b(7)});return w(super.onSurfaceVariant(),"2025",t)}outline(){const t=u.fromPalette({name:"outline",palette:e=>e.neutralPalette,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 2.2;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?e.isDark?3:2.3:1.6}return 1},background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.platform==="phone"?b(3):b(4.5)});return w(super.outline(),"2025",t)}outlineVariant(){const t=u.fromPalette({name:"outline_variant",palette:e=>e.neutralPalette,chromaMultiplier:e=>{if(e.platform==="phone"){if(e.variant===S.NEUTRAL)return 2.2;if(e.variant===S.TONAL_SPOT)return 1.7;if(e.variant===S.EXPRESSIVE)return v.isYellow(e.neutralPalette.hue)?e.isDark?3:2.3:1.6}return 1},background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.platform==="phone"?b(1.5):b(3)});return w(super.outlineVariant(),"2025",t)}inverseSurface(){const t=u.fromPalette({name:"inverse_surface",palette:e=>e.neutralPalette,tone:e=>e.isDark?98:4,isBackground:!0});return w(super.inverseSurface(),"2025",t)}inverseOnSurface(){const t=u.fromPalette({name:"inverse_on_surface",palette:e=>e.neutralPalette,background:e=>this.inverseSurface(),contrastCurve:e=>b(7)});return w(super.inverseOnSurface(),"2025",t)}primary(){const t=u.fromPalette({name:"primary",palette:e=>e.primaryPalette,tone:e=>e.variant===S.NEUTRAL?e.platform==="phone"?e.isDark?80:40:90:e.variant===S.TONAL_SPOT?e.platform==="phone"?e.isDark?80:B(e.primaryPalette):B(e.primaryPalette,0,90):e.variant===S.EXPRESSIVE?e.platform==="phone"?B(e.primaryPalette,0,v.isYellow(e.primaryPalette.hue)?25:v.isCyan(e.primaryPalette.hue)?88:98):B(e.primaryPalette):e.platform==="phone"?B(e.primaryPalette,0,v.isCyan(e.primaryPalette.hue)?88:98):B(e.primaryPalette),isBackground:!0,background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.platform==="phone"?b(4.5):b(7),toneDeltaPair:e=>e.platform==="phone"?new R(this.primaryContainer(),this.primary(),5,"relative_lighter",!0,"farther"):void 0});return w(super.primary(),"2025",t)}primaryDim(){return u.fromPalette({name:"primary_dim",palette:t=>t.primaryPalette,tone:t=>t.variant===S.NEUTRAL?85:t.variant===S.TONAL_SPOT?B(t.primaryPalette,0,90):B(t.primaryPalette),isBackground:!0,background:t=>this.surfaceContainerHigh(),contrastCurve:t=>b(4.5),toneDeltaPair:t=>new R(this.primaryDim(),this.primary(),5,"darker",!0,"farther")})}onPrimary(){const t=u.fromPalette({name:"on_primary",palette:e=>e.primaryPalette,background:e=>e.platform==="phone"?this.primary():this.primaryDim(),contrastCurve:e=>e.platform==="phone"?b(6):b(7)});return w(super.onPrimary(),"2025",t)}primaryContainer(){const t=u.fromPalette({name:"primary_container",palette:e=>e.primaryPalette,tone:e=>e.platform==="watch"?30:e.variant===S.NEUTRAL?e.isDark?30:90:e.variant===S.TONAL_SPOT?e.isDark?Q(e.primaryPalette,35,93):B(e.primaryPalette,0,90):e.variant===S.EXPRESSIVE?e.isDark?B(e.primaryPalette,30,93):B(e.primaryPalette,78,v.isCyan(e.primaryPalette.hue)?88:90):e.isDark?Q(e.primaryPalette,66,93):B(e.primaryPalette,66,v.isCyan(e.primaryPalette.hue)?88:93),isBackground:!0,background:e=>e.platform==="phone"?this.highestSurface(e):void 0,toneDeltaPair:e=>e.platform==="phone"?void 0:new R(this.primaryContainer(),this.primaryDim(),10,"darker",!0,"farther"),contrastCurve:e=>e.platform==="phone"&&e.contrastLevel>0?b(1.5):void 0});return w(super.primaryContainer(),"2025",t)}onPrimaryContainer(){const t=u.fromPalette({name:"on_primary_container",palette:e=>e.primaryPalette,background:e=>this.primaryContainer(),contrastCurve:e=>e.platform==="phone"?b(6):b(7)});return w(super.onPrimaryContainer(),"2025",t)}primaryFixed(){const t=u.fromPalette({name:"primary_fixed",palette:e=>e.primaryPalette,tone:e=>{let r=Object.assign({},e,{isDark:!1,contrastLevel:0});return this.primaryContainer().getTone(r)},isBackground:!0,background:e=>e.platform==="phone"?this.highestSurface(e):void 0,contrastCurve:e=>e.platform==="phone"&&e.contrastLevel>0?b(1.5):void 0});return w(super.primaryFixed(),"2025",t)}primaryFixedDim(){const t=u.fromPalette({name:"primary_fixed_dim",palette:e=>e.primaryPalette,tone:e=>this.primaryFixed().getTone(e),isBackground:!0,toneDeltaPair:e=>new R(this.primaryFixedDim(),this.primaryFixed(),5,"darker",!0,"exact")});return w(super.primaryFixedDim(),"2025",t)}onPrimaryFixed(){const t=u.fromPalette({name:"on_primary_fixed",palette:e=>e.primaryPalette,background:e=>this.primaryFixedDim(),contrastCurve:e=>b(7)});return w(super.onPrimaryFixed(),"2025",t)}onPrimaryFixedVariant(){const t=u.fromPalette({name:"on_primary_fixed_variant",palette:e=>e.primaryPalette,background:e=>this.primaryFixedDim(),contrastCurve:e=>b(4.5)});return w(super.onPrimaryFixedVariant(),"2025",t)}inversePrimary(){const t=u.fromPalette({name:"inverse_primary",palette:e=>e.primaryPalette,tone:e=>B(e.primaryPalette),background:e=>this.inverseSurface(),contrastCurve:e=>e.platform==="phone"?b(6):b(7)});return w(super.inversePrimary(),"2025",t)}secondary(){const t=u.fromPalette({name:"secondary",palette:e=>e.secondaryPalette,tone:e=>e.platform==="watch"?e.variant===S.NEUTRAL?90:B(e.secondaryPalette,0,90):e.variant===S.NEUTRAL?e.isDark?Q(e.secondaryPalette,0,98):B(e.secondaryPalette):e.variant===S.VIBRANT?B(e.secondaryPalette,0,e.isDark?90:98):e.isDark?80:B(e.secondaryPalette),isBackground:!0,background:e=>e.platform==="phone"?this.highestSurface(e):this.surfaceContainerHigh(),contrastCurve:e=>e.platform==="phone"?b(4.5):b(7),toneDeltaPair:e=>e.platform==="phone"?new R(this.secondaryContainer(),this.secondary(),5,"relative_lighter",!0,"farther"):void 0});return w(super.secondary(),"2025",t)}secondaryDim(){return u.fromPalette({name:"secondary_dim",palette:t=>t.secondaryPalette,tone:t=>t.variant===S.NEUTRAL?85:B(t.secondaryPalette,0,90),isBackground:!0,background:t=>this.surfaceContainerHigh(),contrastCurve:t=>b(4.5),toneDeltaPair:t=>new R(this.secondaryDim(),this.secondary(),5,"darker",!0,"farther")})}onSecondary(){const t=u.fromPalette({name:"on_secondary",palette:e=>e.secondaryPalette,background:e=>e.platform==="phone"?this.secondary():this.secondaryDim(),contrastCurve:e=>e.platform==="phone"?b(6):b(7)});return w(super.onSecondary(),"2025",t)}secondaryContainer(){const t=u.fromPalette({name:"secondary_container",palette:e=>e.secondaryPalette,tone:e=>e.platform==="watch"?30:e.variant===S.VIBRANT?e.isDark?Q(e.secondaryPalette,30,40):B(e.secondaryPalette,84,90):e.variant===S.EXPRESSIVE?e.isDark?15:B(e.secondaryPalette,90,95):e.isDark?25:90,isBackground:!0,background:e=>e.platform==="phone"?this.highestSurface(e):void 0,