diff --git a/docs/_include/google-tag.html b/docs/_include/google-tag.html new file mode 100644 index 0000000..59567f0 --- /dev/null +++ b/docs/_include/google-tag.html @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/docs/_ux/designToken.js b/docs/_ux/designToken.js new file mode 100644 index 0000000..02637d5 --- /dev/null +++ b/docs/_ux/designToken.js @@ -0,0 +1,4 @@ +var color={blue:"#3584e4",green:"#33d17a",yellow:"#f6d32d",orange:"#ff7800",red:"\ +#e01b24",purple:"#9141ac",violet:"#9141ac",brown:"#986a44",light:"#deddda",dark:"\ +#3d3846"};export{color}; +//# sourceMappingURL=designToken.js.map diff --git a/docs/_ux/designToken.js.map b/docs/_ux/designToken.js.map new file mode 100644 index 0000000..623a9c1 --- /dev/null +++ b/docs/_ux/designToken.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../docs-src/_ux/designToken.ts"], + "sourcesContent": ["const color = {\n blue: \"#3584e4\",\n green: \"#33d17a\",\n yellow: \"#f6d32d\",\n orange: \"#ff7800\",\n red: \"#e01b24\",\n purple: \"#9141ac\",\n violet: \"#9141ac\",\n brown: \"#986a44\",\n light: \"#deddda\",\n dark: \"#3d3846\"\n}\n\nexport { color };"], + "mappings": "AAAA,IAAM,MAAQ,CACV,KAAM,UACN,MAAO,UACP,OAAQ,UACR,OAAQ,UACR,IAAK;AAAA,SACL,OAAQ,UACR,OAAQ,UACR,MAAO,UACP,MAAO,UACP,KAAM;AAAA,QACV", + "names": [] +} diff --git a/docs/_ux/style.js b/docs/_ux/style.js new file mode 100644 index 0000000..65c8211 --- /dev/null +++ b/docs/_ux/style.js @@ -0,0 +1,377 @@ +var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])( +(mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from== +"function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!== +except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from, +key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)): +{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod, +enumerable:!0}):target,mod));var require_color_name=__commonJS({"node_modules/color-name/index.js"(exports,module){ +"use strict";module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215], +aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220], +bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[ +138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[ +127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237], +cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[ +0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0], +darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[ +85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[ +233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[ +47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211], +deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105, +105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240], +forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[ +248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0, +128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[ +255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[ +240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252, +0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[ +224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[ +144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160, +122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136, +153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255, +255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0, +255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[ +186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[ +123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[ +199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228, +225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253, +245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[ +255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152], +paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213], +peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221], +powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255, +0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[ +250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238], +sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90, +205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[ +0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216, +191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245, +222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[ +154,205,50]}}});var require_is_arrayish=__commonJS({"node_modules/simple-swizzle/node_modules/is\ +-arrayish/index.js"(exports,module){module.exports=__name(function(obj){return!obj|| +typeof obj=="string"?!1:obj instanceof Array||Array.isArray(obj)||obj.length>=0&& +(obj.splice instanceof Function||Object.getOwnPropertyDescriptor(obj,obj.length- +1)&&obj.constructor.name!=="String")},"isArrayish")}});var require_simple_swizzle=__commonJS({"node_modules/simple-swizzle/index.js"(exports,module){ +"use strict";var isArrayish=require_is_arrayish(),concat=Array.prototype.concat, +slice=Array.prototype.slice,swizzle=module.exports=__name(function(args){for(var results=[], +i=0,len=args.length;i=4&&hwba[3]!==1&&(a=", "+hwba[3]),"hwb("+hwba[0]+", "+hwba[1]+ +"%, "+hwba[2]+"%"+a+")"};cs.to.keyword=function(rgb){return reverseNames[rgb.slice( +0,3)]};function clamp(num,min,max){return Math.min(Math.max(min,num),max)}__name( +clamp,"clamp");function hexDouble(num){var str=Math.round(num).toString(16).toUpperCase(); +return str.length<2?"0"+str:str}__name(hexDouble,"hexDouble")}});var require_conversions=__commonJS({"node_modules/color-convert/conversions.js"(exports,module){ +var cssKeywords=require_color_name(),reverseKeywords={};for(let key of Object.keys( +cssKeywords))reverseKeywords[cssKeywords[key]]=key;var convert={rgb:{channels:3, +labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3, +labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{ +channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["\ +hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi1\ +6"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]}, +apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}}; +module.exports=convert;for(let model of Object.keys(convert)){if(!("channels"in convert[model])) +throw new Error("missing channels property: "+model);if(!("labels"in convert[model])) +throw new Error("missing channel labels property: "+model);if(convert[model].labels. +length!==convert[model].channels)throw new Error("channel and label counts misma\ +tch: "+model);let{channels,labels}=convert[model];delete convert[model].channels, +delete convert[model].labels,Object.defineProperty(convert[model],"channels",{value:channels}), +Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){ +let r=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,min=Math.min(r,g,b),max=Math.max(r,g, +b),delta=max-min,h,s;max===min?h=0:r===max?h=(g-b)/delta:g===max?h=2+(b-r)/delta: +b===max&&(h=4+(r-g)/delta),h=Math.min(h*60,360),h<0&&(h+=360);let l=(min+max)/2; +return max===min?s=0:l<=.5?s=delta/(max+min):s=delta/(2-max-min),[h,s*100,l*100]}; +convert.rgb.hsv=function(rgb){let rdif,gdif,bdif,h,s,r=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/ +255,v=Math.max(r,g,b),diff=v-Math.min(r,g,b),diffc=__name(function(c){return(v-c)/ +6/diff+1/2},"diffc");return diff===0?(h=0,s=0):(s=diff/v,rdif=diffc(r),gdif=diffc( +g),bdif=diffc(b),r===v?h=bdif-gdif:g===v?h=1/3+rdif-bdif:b===v&&(h=2/3+gdif-rdif), +h<0?h+=1:h>1&&(h-=1)),[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){let r=rgb[0], +g=rgb[1],b=rgb[2],h=convert.rgb.hsl(rgb)[0],w=1/255*Math.min(r,Math.min(g,b));return b= +1-1/255*Math.max(r,Math.max(g,b)),[h,w*100,b*100]};convert.rgb.cmyk=function(rgb){ +let r=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,k=Math.min(1-r,1-g,1-b),c=(1-r-k)/(1- +k)||0,m=(1-g-k)/(1-k)||0,y=(1-b-k)/(1-k)||0;return[c*100,m*100,y*100,k*100]};function comparativeDistance(x,y){ +return(x[0]-y[0])**2+(x[1]-y[1])**2+(x[2]-y[2])**2}__name(comparativeDistance,"c\ +omparativeDistance");convert.rgb.keyword=function(rgb){let reversed=reverseKeywords[rgb]; +if(reversed)return reversed;let currentClosestDistance=1/0,currentClosestKeyword; +for(let keyword of Object.keys(cssKeywords)){let value=cssKeywords[keyword],distance=comparativeDistance( +rgb,value);distance.04045? +((r+.055)/1.055)**2.4:r/12.92,g=g>.04045?((g+.055)/1.055)**2.4:g/12.92,b=b>.04045? +((b+.055)/1.055)**2.4:b/12.92;let x=r*.4124+g*.3576+b*.1805,y=r*.2126+g*.7152+b* +.0722,z=r*.0193+g*.1192+b*.9505;return[x*100,y*100,z*100]};convert.rgb.lab=function(rgb){ +let xyz=convert.rgb.xyz(rgb),x=xyz[0],y=xyz[1],z=xyz[2];x/=95.047,y/=100,z/=108.883, +x=x>.008856?x**(1/3):7.787*x+16/116,y=y>.008856?y**(1/3):7.787*y+16/116,z=z>.008856? +z**(1/3):7.787*z+16/116;let l=116*y-16,a=500*(x-y),b=200*(y-z);return[l,a,b]};convert. +hsl.rgb=function(hsl){let h=hsl[0]/360,s=hsl[1]/100,l=hsl[2]/100,t2,t3,val;if(s=== +0)return val=l*255,[val,val,val];l<.5?t2=l*(1+s):t2=l+s-l*s;let t1=2*l-t2,rgb=[0, +0,0];for(let i=0;i<3;i++)t3=h+1/3*-(i-1),t3<0&&t3++,t3>1&&t3--,6*t3<1?val=t1+(t2- +t1)*6*t3:2*t3<1?val=t2:3*t3<2?val=t1+(t2-t1)*(2/3-t3)*6:val=t1,rgb[i]=val*255;return rgb}; +convert.hsl.hsv=function(hsl){let h=hsl[0],s=hsl[1]/100,l=hsl[2]/100,smin=s,lmin=Math. +max(l,.01);l*=2,s*=l<=1?l:2-l,smin*=lmin<=1?lmin:2-lmin;let v=(l+s)/2,sv=l===0?2* +smin/(lmin+smin):2*s/(l+s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){ +let h=hsv[0]/60,s=hsv[1]/100,v=hsv[2]/100,hi=Math.floor(h)%6,f=h-Math.floor(h),p=255* +v*(1-s),q=255*v*(1-s*f),t=255*v*(1-s*(1-f));switch(v*=255,hi){case 0:return[v,t, +p];case 1:return[q,v,p];case 2:return[p,v,t];case 3:return[p,q,v];case 4:return[ +t,p,v];case 5:return[v,p,q]}};convert.hsv.hsl=function(hsv){let h=hsv[0],s=hsv[1]/ +100,v=hsv[2]/100,vmin=Math.max(v,.01),sl,l;l=(2-s)*v;let lmin=(2-s)*vmin;return sl= +s*vmin,sl/=lmin<=1?lmin:2-lmin,sl=sl||0,l/=2,[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){ +let h=hwb[0]/360,wh=hwb[1]/100,bl=hwb[2]/100,ratio=wh+bl,f;ratio>1&&(wh/=ratio,bl/= +ratio);let i=Math.floor(6*h),v=1-bl;f=6*h-i,i&1&&(f=1-f);let n=wh+f*(v-wh),r,g,b; +switch(i){default:case 6:case 0:r=v,g=n,b=wh;break;case 1:r=n,g=v,b=wh;break;case 2: +r=wh,g=v,b=n;break;case 3:r=wh,g=n,b=v;break;case 4:r=n,g=wh,b=v;break;case 5:r= +v,g=wh,b=n;break}return[r*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){let c=cmyk[0]/ +100,m=cmyk[1]/100,y=cmyk[2]/100,k=cmyk[3]/100,r=1-Math.min(1,c*(1-k)+k),g=1-Math. +min(1,m*(1-k)+k),b=1-Math.min(1,y*(1-k)+k);return[r*255,g*255,b*255]};convert.xyz. +rgb=function(xyz){let x=xyz[0]/100,y=xyz[1]/100,z=xyz[2]/100,r,g,b;return r=x*3.2406+ +y*-1.5372+z*-.4986,g=x*-.9689+y*1.8758+z*.0415,b=x*.0557+y*-.204+z*1.057,r=r>.0031308? +1.055*r**(1/2.4)-.055:r*12.92,g=g>.0031308?1.055*g**(1/2.4)-.055:g*12.92,b=b>.0031308? +1.055*b**(1/2.4)-.055:b*12.92,r=Math.min(Math.max(0,r),1),g=Math.min(Math.max(0, +g),1),b=Math.min(Math.max(0,b),1),[r*255,g*255,b*255]};convert.xyz.lab=function(xyz){ +let x=xyz[0],y=xyz[1],z=xyz[2];x/=95.047,y/=100,z/=108.883,x=x>.008856?x**(1/3): +7.787*x+16/116,y=y>.008856?y**(1/3):7.787*y+16/116,z=z>.008856?z**(1/3):7.787*z+ +16/116;let l=116*y-16,a=500*(x-y),b=200*(y-z);return[l,a,b]};convert.lab.xyz=function(lab){ +let l=lab[0],a=lab[1],b=lab[2],x,y,z;y=(l+16)/116,x=a/500+y,z=y-b/200;let y2=y** +3,x2=x**3,z2=z**3;return y=y2>.008856?y2:(y-16/116)/7.787,x=x2>.008856?x2:(x-16/ +116)/7.787,z=z2>.008856?z2:(z-16/116)/7.787,x*=95.047,y*=100,z*=108.883,[x,y,z]}; +convert.lab.lch=function(lab){let l=lab[0],a=lab[1],b=lab[2],h;h=Math.atan2(b,a)* +360/2/Math.PI,h<0&&(h+=360);let c=Math.sqrt(a*a+b*b);return[l,c,h]};convert.lch. +lab=function(lch){let l=lch[0],c=lch[1],hr=lch[2]/360*2*Math.PI,a=c*Math.cos(hr), +b=c*Math.sin(hr);return[l,a,b]};convert.rgb.ansi16=function(args,saturation=null){ +let[r,g,b]=args,value=saturation===null?convert.rgb.hsv(args)[2]:saturation;if(value= +Math.round(value/50),value===0)return 30;let ansi=30+(Math.round(b/255)<<2|Math. +round(g/255)<<1|Math.round(r/255));return value===2&&(ansi+=60),ansi};convert.hsv. +ansi16=function(args){return convert.rgb.ansi16(convert.hsv.rgb(args),args[2])}; +convert.rgb.ansi256=function(args){let r=args[0],g=args[1],b=args[2];return r=== +g&&g===b?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+ +6*Math.round(g/255*5)+Math.round(b/255*5)};convert.ansi16.rgb=function(args){let color=args% +10;if(color===0||color===7)return args>50&&(color+=3.5),color=color/10.5*255,[color, +color,color];let mult=(~~(args>50)+1)*.5,r=(color&1)*mult*255,g=(color>>1&1)*mult* +255,b=(color>>2&1)*mult*255;return[r,g,b]};convert.ansi256.rgb=function(args){if(args>= +232){let c=(args-232)*10+8;return[c,c,c]}args-=16;let rem,r=Math.floor(args/36)/ +5*255,g=Math.floor((rem=args%36)/6)/5*255,b=rem%6/5*255;return[r,g,b]};convert.rgb. +hex=function(args){let string=(((Math.round(args[0])&255)<<16)+((Math.round(args[1])& +255)<<8)+(Math.round(args[2])&255)).toString(16).toUpperCase();return"000000".substring( +string.length)+string};convert.hex.rgb=function(args){let match=args.toString(16). +match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!match)return[0,0,0];let colorString=match[0]; +match[0].length===3&&(colorString=colorString.split("").map(char=>char+char).join( +""));let integer=parseInt(colorString,16),r=integer>>16&255,g=integer>>8&255,b=integer& +255;return[r,g,b]};convert.rgb.hcg=function(rgb){let r=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/ +255,max=Math.max(Math.max(r,g),b),min=Math.min(Math.min(r,g),b),chroma=max-min,grayscale, +hue;return chroma<1?grayscale=min/(1-chroma):grayscale=0,chroma<=0?hue=0:max===r? +hue=(g-b)/chroma%6:max===g?hue=2+(b-r)/chroma:hue=4+(r-g)/chroma,hue/=6,hue%=1,[ +hue*360,chroma*100,grayscale*100]};convert.hsl.hcg=function(hsl){let s=hsl[1]/100, +l=hsl[2]/100,c=l<.5?2*s*l:2*s*(1-l),f=0;return c<1&&(f=(l-.5*c)/(1-c)),[hsl[0],c* +100,f*100]};convert.hsv.hcg=function(hsv){let s=hsv[1]/100,v=hsv[2]/100,c=s*v,f=0; +return c<1&&(f=(v-c)/(1-c)),[hsv[0],c*100,f*100]};convert.hcg.rgb=function(hcg){ +let h=hcg[0]/360,c=hcg[1]/100,g=hcg[2]/100;if(c===0)return[g*255,g*255,g*255];let pure=[ +0,0,0],hi=h%1*6,v=hi%1,w=1-v,mg=0;switch(Math.floor(hi)){case 0:pure[0]=1,pure[1]= +v,pure[2]=0;break;case 1:pure[0]=w,pure[1]=1,pure[2]=0;break;case 2:pure[0]=0,pure[1]= +1,pure[2]=v;break;case 3:pure[0]=0,pure[1]=w,pure[2]=1;break;case 4:pure[0]=v,pure[1]= +0,pure[2]=1;break;default:pure[0]=1,pure[1]=0,pure[2]=w}return mg=(1-c)*g,[(c*pure[0]+ +mg)*255,(c*pure[1]+mg)*255,(c*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){let c=hcg[1]/ +100,g=hcg[2]/100,v=c+g*(1-c),f=0;return v>0&&(f=c/v),[hcg[0],f*100,v*100]};convert. +hcg.hsl=function(hcg){let c=hcg[1]/100,l=hcg[2]/100*(1-c)+.5*c,s=0;return l>0&&l< +.5?s=c/(2*l):l>=.5&&l<1&&(s=c/(2*(1-l))),[hcg[0],s*100,l*100]};convert.hcg.hwb=function(hcg){ +let c=hcg[1]/100,g=hcg[2]/100,v=c+g*(1-c);return[hcg[0],(v-c)*100,(1-v)*100]};convert. +hwb.hcg=function(hwb){let w=hwb[1]/100,v=1-hwb[2]/100,c=v-w,g=0;return c<1&&(g=(v- +c)/(1-c)),[hwb[0],c*100,g*100]};convert.apple.rgb=function(apple){return[apple[0]/ +65535*255,apple[1]/65535*255,apple[2]/65535*255]};convert.rgb.apple=function(rgb){ +return[rgb[0]/255*65535,rgb[1]/255*65535,rgb[2]/255*65535]};convert.gray.rgb=function(args){ +return[args[0]/100*255,args[0]/100*255,args[0]/100*255]};convert.gray.hsl=function(args){ +return[0,0,args[0]]};convert.gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){ +return[0,100,gray[0]]};convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert. +gray.lab=function(gray){return[gray[0],0,0]};convert.gray.hex=function(gray){let val=Math. +round(gray[0]/100*255)&255,string=((val<<16)+(val<<8)+val).toString(16).toUpperCase(); +return"000000".substring(string.length)+string};convert.rgb.gray=function(rgb){return[ +(rgb[0]+rgb[1]+rgb[2])/3/255*100]}}});var require_route=__commonJS({"node_modules/color-convert/route.js"(exports,module){ +var conversions=require_conversions();function buildGraph(){let graph={},models=Object. +keys(conversions);for(let len=models.length,i=0;i1&&(args=arg0),fn(args))},"wrappedFn");return"\ +conversion"in fn&&(wrappedFn.conversion=fn.conversion),wrappedFn}__name(wrapRaw, +"wrapRaw");function wrapRounded(fn){let wrappedFn=__name(function(...args){let arg0=args[0]; +if(arg0==null)return arg0;arg0.length>1&&(args=arg0);let result=fn(args);if(typeof result== +"object")for(let len=result.length,i=0;i{convert[fromModel]= +{},Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel]. +channels}),Object.defineProperty(convert[fromModel],"labels",{value:conversions[fromModel]. +labels});let routes=route(fromModel);Object.keys(routes).forEach(toModel=>{let fn=routes[toModel]; +convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrapRaw( +fn)})});module.exports=convert}});var require_color=__commonJS({"node_modules/color/index.js"(exports,module){var colorString=require_color_string(), +convert=require_color_convert(),skippedModels=["keyword","gray","hex"],hashedModelKeys={}; +for(let model of Object.keys(convert))hashedModelKeys[[...convert[model].labels]. +sort().join("")]=model;var limiters={};function Color2(object,model){if(!(this instanceof +Color2))return new Color2(object,model);if(model&&model in skippedModels&&(model= +null),model&&!(model in convert))throw new Error("Unknown model: "+model);let i, +channels;if(object==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(object instanceof +Color2)this.model=object.model,this.color=[...object.color],this.valpha=object.valpha;else if(typeof object== +"string"){let result=colorString.get(object);if(result===null)throw new Error("U\ +nable to parse color from string: "+object);this.model=result.model,channels=convert[this. +model].channels,this.color=result.value.slice(0,channels),this.valpha=typeof result. +value[channels]=="number"?result.value[channels]:1}else if(object.length>0){this. +model=model||"rgb",channels=convert[this.model].channels;let newArray=Array.prototype. +slice.call(object,0,channels);this.color=zeroArray(newArray,channels),this.valpha= +typeof object[channels]=="number"?object[channels]:1}else if(typeof object=="num\ +ber")this.model="rgb",this.color=[object>>16&255,object>>8&255,object&255],this. +valpha=1;else{this.valpha=1;let keys=Object.keys(object);"alpha"in object&&(keys. +splice(keys.indexOf("alpha"),1),this.valpha=typeof object.alpha=="number"?object. +alpha:0);let hashedKeys=keys.sort().join("");if(!(hashedKeys in hashedModelKeys)) +throw new Error("Unable to parse color from object: "+JSON.stringify(object));this. +model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color=[];for(i= +0;i(value%360+ +360)%360),saturationl:getset("hsl",1,maxfn(100)),lightness:getset("hsl",2,maxfn( +100)),saturationv:getset("hsv",1,maxfn(100)),value:getset("hsv",2,maxfn(100)),chroma:getset( +"hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn(100)),white:getset("hwb",1,maxfn(100)), +wblack:getset("hwb",2,maxfn(100)),cyan:getset("cmyk",0,maxfn(100)),magenta:getset( +"cmyk",1,maxfn(100)),yellow:getset("cmyk",2,maxfn(100)),black:getset("cmyk",3,maxfn( +100)),x:getset("xyz",0,maxfn(95.047)),y:getset("xyz",1,maxfn(100)),z:getset("xyz", +2,maxfn(108.833)),l:getset("lab",0,maxfn(100)),a:getset("lab",1),b:getset("lab", +2),keyword(value){return value!==void 0?new Color2(value):convert[this.model].keyword( +this.color)},hex(value){return value!==void 0?new Color2(value):colorString.to.hex( +this.rgb().round().color)},hexa(value){if(value!==void 0)return new Color2(value); +let rgbArray=this.rgb().round().color,alphaHex=Math.round(this.valpha*255).toString( +16).toUpperCase();return alphaHex.length===1&&(alphaHex="0"+alphaHex),colorString. +to.hex(rgbArray)+alphaHex},rgbNumber(){let rgb=this.rgb().color;return(rgb[0]&255)<< +16|(rgb[1]&255)<<8|rgb[2]&255},luminosity(){let rgb=this.rgb().color,lum=[];for(let[ +i,element]of rgb.entries()){let chan=element/255;lum[i]=chan<=.04045?chan/12.92: +((chan+.055)/1.055)**2.4}return .2126*lum[0]+.7152*lum[1]+.0722*lum[2]},contrast(color2){ +let lum1=this.luminosity(),lum2=color2.luminosity();return lum1>lum2?(lum1+.05)/ +(lum2+.05):(lum2+.05)/(lum1+.05)},level(color2){let contrastRatio=this.contrast( +color2);return contrastRatio>=7?"AAA":contrastRatio>=4.5?"AA":""},isDark(){let rgb=this. +rgb().color;return(rgb[0]*2126+rgb[1]*7152+rgb[2]*722)/1e4<128},isLight(){return!this. +isDark()},negate(){let rgb=this.rgb();for(let i=0;i<3;i++)rgb.color[i]=255-rgb.color[i]; +return rgb},lighten(ratio){let hsl=this.hsl();return hsl.color[2]+=hsl.color[2]* +ratio,hsl},darken(ratio){let hsl=this.hsl();return hsl.color[2]-=hsl.color[2]*ratio, +hsl},saturate(ratio){let hsl=this.hsl();return hsl.color[1]+=hsl.color[1]*ratio, +hsl},desaturate(ratio){let hsl=this.hsl();return hsl.color[1]-=hsl.color[1]*ratio, +hsl},whiten(ratio){let hwb=this.hwb();return hwb.color[1]+=hwb.color[1]*ratio,hwb}, +blacken(ratio){let hwb=this.hwb();return hwb.color[2]+=hwb.color[2]*ratio,hwb},grayscale(){ +let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11;return Color2.rgb( +value,value,value)},fade(ratio){return this.alpha(this.valpha-this.valpha*ratio)}, +opaquer(ratio){return this.alpha(this.valpha+this.valpha*ratio)},rotate(degrees){ +let hsl=this.hsl(),hue=hsl.color[0];return hue=(hue+degrees)%360,hue=hue<0?360+hue: +hue,hsl.color[0]=hue,hsl},mix(mixinColor,weight){if(!mixinColor||!mixinColor.rgb) +throw new Error('Argument to "mix" was not a Color instance, but rather an insta\ +nce of '+typeof mixinColor);let color1=mixinColor.rgb(),color2=this.rgb(),p=weight=== +void 0?.5:weight,w=2*p-1,a=color1.alpha()-color2.alpha(),w1=((w*a===-1?w:(w+a)/(1+ +w*a))+1)/2,w2=1-w1;return Color2.rgb(w1*color1.red()+w2*color2.red(),w1*color1.green()+ +w2*color2.green(),w1*color1.blue()+w2*color2.blue(),color1.alpha()*p+color2.alpha()* +(1-p))}};for(let model of Object.keys(convert)){if(skippedModels.includes(model)) +continue;let{channels}=convert[model];Color2.prototype[model]=function(...args){ +return this.model===model?new Color2(this):args.length>0?new Color2(args,model): +new Color2([...assertArray(convert[this.model][model].raw(this.color)),this.valpha], +model)},Color2[model]=function(...args){let color=args[0];return typeof color=="\ +number"&&(color=zeroArray(args,channels)),new Color2(color,model)}}function roundTo(number,places){ +return Number(number.toFixed(places))}__name(roundTo,"roundTo");function roundToPlace(places){ +return function(number){return roundTo(number,places)}}__name(roundToPlace,"roun\ +dToPlace");function getset(model,channel,modifier){model=Array.isArray(model)?model: +[model];for(let m of model)(limiters[m]||(limiters[m]=[]))[channel]=modifier;return model= +model[0],function(value){let result;return value!==void 0?(modifier&&(value=modifier( +value)),result=this[model](),result.color[channel]=value,result):(result=this[model](). +color[channel],modifier&&(result=modifier(result)),result)}}__name(getset,"getse\ +t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}__name( +maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} +__name(assertArray,"assertArray");function zeroArray(array,length){for(let i=0;i< +length;i++)typeof array[i]!="number"&&(array[i]=0);return array}__name(zeroArray, +"zeroArray");module.exports=Color2}});var import_color=__toESM(require_color(),1);function bgColor(color){return` + background-color: ${color}; + color: ${(0,import_color.default)(color).isDark()?"white":"black"}; + `.trim()}__name(bgColor,"bgColor");function lift(level,color="black"){return`\ +filter: drop-shadow(0 0 ${level*2}px ${color});`}__name(lift,"lift");function pxToRem(px){ +px=parseFloat(px);let rem1=parseFloat(getComputedStyle(document.documentElement). +fontSize);return`${px/rem1}rem`}__name(pxToRem,"pxToRem");var aspectRatio=__name( +(ratio="1/1")=>` + height: auto; + aspect-ratio: ${ratio}; + @supports not (aspect-ratio: ${ratio}) { + &::before { + float: left; + padding-top: 100% / ${ratio}; + content: ""; + } + + &::after { + display: block; + content: ""; + clear: both; + } + } + `.trim(),"aspectRatio");export{aspectRatio,bgColor,lift,pxToRem}; +//# sourceMappingURL=style.js.map diff --git a/docs/_ux/style.js.map b/docs/_ux/style.js.map new file mode 100644 index 0000000..6503d1a --- /dev/null +++ b/docs/_ux/style.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/color-name/index.js", "../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "../../node_modules/simple-swizzle/index.js", "../../node_modules/color-string/index.js", "../../node_modules/color-convert/conversions.js", "../../node_modules/color-convert/route.js", "../../node_modules/color-convert/index.js", "../../node_modules/color/index.js", "../../docs-src/_ux/style.ts"], + "sourcesContent": ["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n", "'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n", "/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n", "import Color from \"color\";\n\nfunction bgColor(color) {\n return /*css*/`\n background-color: ${color};\n color: ${Color(color).isDark() ? 'white' : 'black'};\n `.trim();\n}\n\nfunction lift(level: number, color: string = 'black') {\n return `filter: drop-shadow(0 0 ${level * 2}px ${color});`;\n}\n\nfunction pxToRem(px: any) {\n px = parseFloat(px);\n const rem1 = parseFloat(\n getComputedStyle(document.documentElement).fontSize);\n return `${px / rem1}rem`;\n}\n\nconst aspectRatio = (ratio: string = '1/1'): string => {\n return `\n height: auto;\n aspect-ratio: ${ratio};\n @supports not (aspect-ratio: ${ratio}) {\n &::before {\n float: left;\n padding-top: 100% / ${ratio};\n content: \"\";\n }\n\n &::after {\n display: block;\n content: \"\";\n clear: both;\n }\n }\n `.trim();\n}\n\nexport { bgColor, lift, pxToRem, aspectRatio };"], + "mappings": "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", + "names": ["Color", "Color"] +} diff --git a/docs/_ux/ui/blockquote.js b/docs/_ux/ui/blockquote.js new file mode 100644 index 0000000..ef108fa --- /dev/null +++ b/docs/_ux/ui/blockquote.js @@ -0,0 +1,458 @@ +var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])( +(mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from== +"function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!== +except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from, +key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)): +{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod, +enumerable:!0}):target,mod));var require_color_name=__commonJS({"node_modules/color-name/index.js"(exports,module){ +"use strict";module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215], +aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220], +bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[ +138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[ +127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237], +cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[ +0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0], +darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[ +85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[ +233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[ +47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211], +deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105, +105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240], +forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[ +248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0, +128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[ +255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[ +240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252, +0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[ +224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[ +144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160, +122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136, +153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255, +255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0, +255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[ +186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[ +123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[ +199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228, +225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253, +245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[ +255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152], +paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213], +peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221], +powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255, +0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[ +250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238], +sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90, +205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[ +0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216, +191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245, +222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[ +154,205,50]}}});var require_is_arrayish=__commonJS({"node_modules/simple-swizzle/node_modules/is\ +-arrayish/index.js"(exports,module){module.exports=__name(function(obj){return!obj|| +typeof obj=="string"?!1:obj instanceof Array||Array.isArray(obj)||obj.length>=0&& +(obj.splice instanceof Function||Object.getOwnPropertyDescriptor(obj,obj.length- +1)&&obj.constructor.name!=="String")},"isArrayish")}});var require_simple_swizzle=__commonJS({"node_modules/simple-swizzle/index.js"(exports,module){ +"use strict";var isArrayish=require_is_arrayish(),concat=Array.prototype.concat, +slice=Array.prototype.slice,swizzle=module.exports=__name(function(args){for(var results=[], +i2=0,len=args.length;i2=4&&hwba[3]!==1&&(a2=", "+hwba[3]),"hwb("+hwba[0]+ +", "+hwba[1]+"%, "+hwba[2]+"%"+a2+")"};cs.to.keyword=function(rgb){return reverseNames[rgb. +slice(0,3)]};function clamp(num,min,max){return Math.min(Math.max(min,num),max)} +__name(clamp,"clamp");function hexDouble(num){var str=Math.round(num).toString(16). +toUpperCase();return str.length<2?"0"+str:str}__name(hexDouble,"hexDouble")}});var require_conversions=__commonJS({"node_modules/color-convert/conversions.js"(exports,module){ +var cssKeywords=require_color_name(),reverseKeywords={};for(let key of Object.keys( +cssKeywords))reverseKeywords[cssKeywords[key]]=key;var convert={rgb:{channels:3, +labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3, +labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{ +channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["\ +hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi1\ +6"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]}, +apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}}; +module.exports=convert;for(let model of Object.keys(convert)){if(!("channels"in convert[model])) +throw new Error("missing channels property: "+model);if(!("labels"in convert[model])) +throw new Error("missing channel labels property: "+model);if(convert[model].labels. +length!==convert[model].channels)throw new Error("channel and label counts misma\ +tch: "+model);let{channels,labels}=convert[model];delete convert[model].channels, +delete convert[model].labels,Object.defineProperty(convert[model],"channels",{value:channels}), +Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){ +let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,min=Math.min(r2,g,b),max=Math.max(r2, +g,b),delta=max-min,h,s;max===min?h=0:r2===max?h=(g-b)/delta:g===max?h=2+(b-r2)/delta: +b===max&&(h=4+(r2-g)/delta),h=Math.min(h*60,360),h<0&&(h+=360);let l=(min+max)/2; +return max===min?s=0:l<=.5?s=delta/(max+min):s=delta/(2-max-min),[h,s*100,l*100]}; +convert.rgb.hsv=function(rgb){let rdif,gdif,bdif,h,s,r2=rgb[0]/255,g=rgb[1]/255, +b=rgb[2]/255,v=Math.max(r2,g,b),diff=v-Math.min(r2,g,b),diffc=__name(function(c2){ +return(v-c2)/6/diff+1/2},"diffc");return diff===0?(h=0,s=0):(s=diff/v,rdif=diffc( +r2),gdif=diffc(g),bdif=diffc(b),r2===v?h=bdif-gdif:g===v?h=1/3+rdif-bdif:b===v&& +(h=2/3+gdif-rdif),h<0?h+=1:h>1&&(h-=1)),[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){ +let r2=rgb[0],g=rgb[1],b=rgb[2],h=convert.rgb.hsl(rgb)[0],w2=1/255*Math.min(r2,Math. +min(g,b));return b=1-1/255*Math.max(r2,Math.max(g,b)),[h,w2*100,b*100]};convert. +rgb.cmyk=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,k=Math.min(1- +r2,1-g,1-b),c2=(1-r2-k)/(1-k)||0,m=(1-g-k)/(1-k)||0,y2=(1-b-k)/(1-k)||0;return[c2* +100,m*100,y2*100,k*100]};function comparativeDistance(x2,y2){return(x2[0]-y2[0])** +2+(x2[1]-y2[1])**2+(x2[2]-y2[2])**2}__name(comparativeDistance,"comparativeDista\ +nce");convert.rgb.keyword=function(rgb){let reversed=reverseKeywords[rgb];if(reversed) +return reversed;let currentClosestDistance=1/0,currentClosestKeyword;for(let keyword of Object. +keys(cssKeywords)){let value=cssKeywords[keyword],distance=comparativeDistance(rgb, +value);distance +.04045?((r2+.055)/1.055)**2.4:r2/12.92,g=g>.04045?((g+.055)/1.055)**2.4:g/12.92, +b=b>.04045?((b+.055)/1.055)**2.4:b/12.92;let x2=r2*.4124+g*.3576+b*.1805,y2=r2*.2126+ +g*.7152+b*.0722,z2=r2*.0193+g*.1192+b*.9505;return[x2*100,y2*100,z2*100]};convert. +rgb.lab=function(rgb){let xyz=convert.rgb.xyz(rgb),x2=xyz[0],y2=xyz[1],z2=xyz[2]; +x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116,y2=y2>.008856? +y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116;let l=116*y2-16, +a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.hsl.rgb=function(hsl){let h=hsl[0]/ +360,s=hsl[1]/100,l=hsl[2]/100,t2,t3,val;if(s===0)return val=l*255,[val,val,val]; +l<.5?t2=l*(1+s):t2=l+s-l*s;let t1=2*l-t2,rgb=[0,0,0];for(let i2=0;i2<3;i2++)t3=h+ +1/3*-(i2-1),t3<0&&t3++,t3>1&&t3--,6*t3<1?val=t1+(t2-t1)*6*t3:2*t3<1?val=t2:3*t3< +2?val=t1+(t2-t1)*(2/3-t3)*6:val=t1,rgb[i2]=val*255;return rgb};convert.hsl.hsv=function(hsl){ +let h=hsl[0],s=hsl[1]/100,l=hsl[2]/100,smin=s,lmin=Math.max(l,.01);l*=2,s*=l<=1? +l:2-l,smin*=lmin<=1?lmin:2-lmin;let v=(l+s)/2,sv=l===0?2*smin/(lmin+smin):2*s/(l+ +s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){let h=hsv[0]/60,s=hsv[1]/ +100,v=hsv[2]/100,hi=Math.floor(h)%6,f=h-Math.floor(h),p2=255*v*(1-s),q2=255*v*(1- +s*f),t=255*v*(1-s*(1-f));switch(v*=255,hi){case 0:return[v,t,p2];case 1:return[q2, +v,p2];case 2:return[p2,v,t];case 3:return[p2,q2,v];case 4:return[t,p2,v];case 5: +return[v,p2,q2]}};convert.hsv.hsl=function(hsv){let h=hsv[0],s=hsv[1]/100,v=hsv[2]/ +100,vmin=Math.max(v,.01),sl,l;l=(2-s)*v;let lmin=(2-s)*vmin;return sl=s*vmin,sl/= +lmin<=1?lmin:2-lmin,sl=sl||0,l/=2,[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){ +let h=hwb[0]/360,wh=hwb[1]/100,bl=hwb[2]/100,ratio=wh+bl,f;ratio>1&&(wh/=ratio,bl/= +ratio);let i2=Math.floor(6*h),v=1-bl;f=6*h-i2,i2&1&&(f=1-f);let n=wh+f*(v-wh),r2, +g,b;switch(i2){default:case 6:case 0:r2=v,g=n,b=wh;break;case 1:r2=n,g=v,b=wh;break;case 2: +r2=wh,g=v,b=n;break;case 3:r2=wh,g=n,b=v;break;case 4:r2=n,g=wh,b=v;break;case 5: +r2=v,g=wh,b=n;break}return[r2*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){ +let c2=cmyk[0]/100,m=cmyk[1]/100,y2=cmyk[2]/100,k=cmyk[3]/100,r2=1-Math.min(1,c2* +(1-k)+k),g=1-Math.min(1,m*(1-k)+k),b=1-Math.min(1,y2*(1-k)+k);return[r2*255,g*255, +b*255]};convert.xyz.rgb=function(xyz){let x2=xyz[0]/100,y2=xyz[1]/100,z2=xyz[2]/ +100,r2,g,b;return r2=x2*3.2406+y2*-1.5372+z2*-.4986,g=x2*-.9689+y2*1.8758+z2*.0415, +b=x2*.0557+y2*-.204+z2*1.057,r2=r2>.0031308?1.055*r2**(1/2.4)-.055:r2*12.92,g=g> +.0031308?1.055*g**(1/2.4)-.055:g*12.92,b=b>.0031308?1.055*b**(1/2.4)-.055:b*12.92, +r2=Math.min(Math.max(0,r2),1),g=Math.min(Math.max(0,g),1),b=Math.min(Math.max(0, +b),1),[r2*255,g*255,b*255]};convert.xyz.lab=function(xyz){let x2=xyz[0],y2=xyz[1], +z2=xyz[2];x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116, +y2=y2>.008856?y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116; +let l=116*y2-16,a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.lab.xyz=function(lab){ +let l=lab[0],a2=lab[1],b=lab[2],x2,y2,z2;y2=(l+16)/116,x2=a2/500+y2,z2=y2-b/200; +let y22=y2**3,x22=x2**3,z22=z2**3;return y2=y22>.008856?y22:(y2-16/116)/7.787,x2= +x22>.008856?x22:(x2-16/116)/7.787,z2=z22>.008856?z22:(z2-16/116)/7.787,x2*=95.047, +y2*=100,z2*=108.883,[x2,y2,z2]};convert.lab.lch=function(lab){let l=lab[0],a2=lab[1], +b=lab[2],h;h=Math.atan2(b,a2)*360/2/Math.PI,h<0&&(h+=360);let c2=Math.sqrt(a2*a2+ +b*b);return[l,c2,h]};convert.lch.lab=function(lch){let l=lch[0],c2=lch[1],hr2=lch[2]/ +360*2*Math.PI,a2=c2*Math.cos(hr2),b=c2*Math.sin(hr2);return[l,a2,b]};convert.rgb. +ansi16=function(args,saturation=null){let[r2,g,b]=args,value=saturation===null?convert. +rgb.hsv(args)[2]:saturation;if(value=Math.round(value/50),value===0)return 30;let ansi=30+ +(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r2/255));return value===2&& +(ansi+=60),ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert. +hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){let r2=args[0],g=args[1], +b=args[2];return r2===g&&g===b?r2<8?16:r2>248?231:Math.round((r2-8)/247*24)+232: +16+36*Math.round(r2/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5)};convert.ansi16. +rgb=function(args){let color2=args%10;if(color2===0||color2===7)return args>50&& +(color2+=3.5),color2=color2/10.5*255,[color2,color2,color2];let mult=(~~(args>50)+ +1)*.5,r2=(color2&1)*mult*255,g=(color2>>1&1)*mult*255,b=(color2>>2&1)*mult*255;return[ +r2,g,b]};convert.ansi256.rgb=function(args){if(args>=232){let c2=(args-232)*10+8; +return[c2,c2,c2]}args-=16;let rem,r2=Math.floor(args/36)/5*255,g=Math.floor((rem= +args%36)/6)/5*255,b=rem%6/5*255;return[r2,g,b]};convert.rgb.hex=function(args){let string=(((Math. +round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255)). +toString(16).toUpperCase();return"000000".substring(string.length)+string};convert. +hex.rgb=function(args){let match=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); +if(!match)return[0,0,0];let colorString=match[0];match[0].length===3&&(colorString= +colorString.split("").map(char=>char+char).join(""));let integer=parseInt(colorString, +16),r2=integer>>16&255,g=integer>>8&255,b=integer&255;return[r2,g,b]};convert.rgb. +hcg=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,max=Math.max(Math. +max(r2,g),b),min=Math.min(Math.min(r2,g),b),chroma=max-min,grayscale,hue;return chroma< +1?grayscale=min/(1-chroma):grayscale=0,chroma<=0?hue=0:max===r2?hue=(g-b)/chroma% +6:max===g?hue=2+(b-r2)/chroma:hue=4+(r2-g)/chroma,hue/=6,hue%=1,[hue*360,chroma* +100,grayscale*100]};convert.hsl.hcg=function(hsl){let s=hsl[1]/100,l=hsl[2]/100, +c2=l<.5?2*s*l:2*s*(1-l),f=0;return c2<1&&(f=(l-.5*c2)/(1-c2)),[hsl[0],c2*100,f*100]}; +convert.hsv.hcg=function(hsv){let s=hsv[1]/100,v=hsv[2]/100,c2=s*v,f=0;return c2< +1&&(f=(v-c2)/(1-c2)),[hsv[0],c2*100,f*100]};convert.hcg.rgb=function(hcg){let h=hcg[0]/ +360,c2=hcg[1]/100,g=hcg[2]/100;if(c2===0)return[g*255,g*255,g*255];let pure=[0,0, +0],hi=h%1*6,v=hi%1,w2=1-v,mg=0;switch(Math.floor(hi)){case 0:pure[0]=1,pure[1]=v, +pure[2]=0;break;case 1:pure[0]=w2,pure[1]=1,pure[2]=0;break;case 2:pure[0]=0,pure[1]= +1,pure[2]=v;break;case 3:pure[0]=0,pure[1]=w2,pure[2]=1;break;case 4:pure[0]=v,pure[1]= +0,pure[2]=1;break;default:pure[0]=1,pure[1]=0,pure[2]=w2}return mg=(1-c2)*g,[(c2* +pure[0]+mg)*255,(c2*pure[1]+mg)*255,(c2*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){ +let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2),f=0;return v>0&&(f=c2/v),[hcg[0],f* +100,v*100]};convert.hcg.hsl=function(hcg){let c2=hcg[1]/100,l=hcg[2]/100*(1-c2)+ +.5*c2,s=0;return l>0&&l<.5?s=c2/(2*l):l>=.5&&l<1&&(s=c2/(2*(1-l))),[hcg[0],s*100, +l*100]};convert.hcg.hwb=function(hcg){let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2); +return[hcg[0],(v-c2)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){let w2=hwb[1]/ +100,v=1-hwb[2]/100,c2=v-w2,g=0;return c2<1&&(g=(v-c2)/(1-c2)),[hwb[0],c2*100,g*100]}; +convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/ +65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535, +rgb[2]/255*65535]};convert.gray.rgb=function(args){return[args[0]/100*255,args[0]/ +100*255,args[0]/100*255]};convert.gray.hsl=function(args){return[0,0,args[0]]};convert. +gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){return[0,100,gray[0]]}; +convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert.gray.lab=function(gray){ +return[gray[0],0,0]};convert.gray.hex=function(gray){let val=Math.round(gray[0]/ +100*255)&255,string=((val<<16)+(val<<8)+val).toString(16).toUpperCase();return"0\ +00000".substring(string.length)+string};convert.rgb.gray=function(rgb){return[(rgb[0]+ +rgb[1]+rgb[2])/3/255*100]}}});var require_route=__commonJS({"node_modules/color-convert/route.js"(exports,module){ +var conversions=require_conversions();function buildGraph(){let graph={},models=Object. +keys(conversions);for(let len=models.length,i2=0;i21&&(args=arg0),fn(args))},"wrappedFn");return"\ +conversion"in fn&&(wrappedFn.conversion=fn.conversion),wrappedFn}__name(wrapRaw, +"wrapRaw");function wrapRounded(fn){let wrappedFn=__name(function(...args){let arg0=args[0]; +if(arg0==null)return arg0;arg0.length>1&&(args=arg0);let result=fn(args);if(typeof result== +"object")for(let len=result.length,i2=0;i2{convert[fromModel]= +{},Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel]. +channels}),Object.defineProperty(convert[fromModel],"labels",{value:conversions[fromModel]. +labels});let routes=route(fromModel);Object.keys(routes).forEach(toModel=>{let fn=routes[toModel]; +convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrapRaw( +fn)})});module.exports=convert}});var require_color=__commonJS({"node_modules/color/index.js"(exports,module){var colorString=require_color_string(), +convert=require_color_convert(),skippedModels=["keyword","gray","hex"],hashedModelKeys={}; +for(let model of Object.keys(convert))hashedModelKeys[[...convert[model].labels]. +sort().join("")]=model;var limiters={};function Color2(object,model){if(!(this instanceof +Color2))return new Color2(object,model);if(model&&model in skippedModels&&(model= +null),model&&!(model in convert))throw new Error("Unknown model: "+model);let i2, +channels;if(object==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(object instanceof +Color2)this.model=object.model,this.color=[...object.color],this.valpha=object.valpha;else if(typeof object== +"string"){let result=colorString.get(object);if(result===null)throw new Error("U\ +nable to parse color from string: "+object);this.model=result.model,channels=convert[this. +model].channels,this.color=result.value.slice(0,channels),this.valpha=typeof result. +value[channels]=="number"?result.value[channels]:1}else if(object.length>0){this. +model=model||"rgb",channels=convert[this.model].channels;let newArray=Array.prototype. +slice.call(object,0,channels);this.color=zeroArray(newArray,channels),this.valpha= +typeof object[channels]=="number"?object[channels]:1}else if(typeof object=="num\ +ber")this.model="rgb",this.color=[object>>16&255,object>>8&255,object&255],this. +valpha=1;else{this.valpha=1;let keys=Object.keys(object);"alpha"in object&&(keys. +splice(keys.indexOf("alpha"),1),this.valpha=typeof object.alpha=="number"?object. +alpha:0);let hashedKeys=keys.sort().join("");if(!(hashedKeys in hashedModelKeys)) +throw new Error("Unable to parse color from object: "+JSON.stringify(object));this. +model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color2=[];for(i2= +0;i2(value%360+360)%360),saturationl:getset("hsl",1,maxfn(100)), +lightness:getset("hsl",2,maxfn(100)),saturationv:getset("hsv",1,maxfn(100)),value:getset( +"hsv",2,maxfn(100)),chroma:getset("hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn( +100)),white:getset("hwb",1,maxfn(100)),wblack:getset("hwb",2,maxfn(100)),cyan:getset( +"cmyk",0,maxfn(100)),magenta:getset("cmyk",1,maxfn(100)),yellow:getset("cmyk",2, +maxfn(100)),black:getset("cmyk",3,maxfn(100)),x:getset("xyz",0,maxfn(95.047)),y:getset( +"xyz",1,maxfn(100)),z:getset("xyz",2,maxfn(108.833)),l:getset("lab",0,maxfn(100)), +a:getset("lab",1),b:getset("lab",2),keyword(value){return value!==void 0?new Color2( +value):convert[this.model].keyword(this.color)},hex(value){return value!==void 0? +new Color2(value):colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!== +void 0)return new Color2(value);let rgbArray=this.rgb().round().color,alphaHex=Math. +round(this.valpha*255).toString(16).toUpperCase();return alphaHex.length===1&&(alphaHex= +"0"+alphaHex),colorString.to.hex(rgbArray)+alphaHex},rgbNumber(){let rgb=this.rgb(). +color;return(rgb[0]&255)<<16|(rgb[1]&255)<<8|rgb[2]&255},luminosity(){let rgb=this. +rgb().color,lum=[];for(let[i2,element]of rgb.entries()){let chan=element/255;lum[i2]= +chan<=.04045?chan/12.92:((chan+.055)/1.055)**2.4}return .2126*lum[0]+.7152*lum[1]+ +.0722*lum[2]},contrast(color2){let lum1=this.luminosity(),lum2=color2.luminosity(); +return lum1>lum2?(lum1+.05)/(lum2+.05):(lum2+.05)/(lum1+.05)},level(color2){let contrastRatio=this. +contrast(color2);return contrastRatio>=7?"AAA":contrastRatio>=4.5?"AA":""},isDark(){ +let rgb=this.rgb().color;return(rgb[0]*2126+rgb[1]*7152+rgb[2]*722)/1e4<128},isLight(){ +return!this.isDark()},negate(){let rgb=this.rgb();for(let i2=0;i2<3;i2++)rgb.color[i2]= +255-rgb.color[i2];return rgb},lighten(ratio){let hsl=this.hsl();return hsl.color[2]+= +hsl.color[2]*ratio,hsl},darken(ratio){let hsl=this.hsl();return hsl.color[2]-=hsl. +color[2]*ratio,hsl},saturate(ratio){let hsl=this.hsl();return hsl.color[1]+=hsl. +color[1]*ratio,hsl},desaturate(ratio){let hsl=this.hsl();return hsl.color[1]-=hsl. +color[1]*ratio,hsl},whiten(ratio){let hwb=this.hwb();return hwb.color[1]+=hwb.color[1]* +ratio,hwb},blacken(ratio){let hwb=this.hwb();return hwb.color[2]+=hwb.color[2]*ratio, +hwb},grayscale(){let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11; +return Color2.rgb(value,value,value)},fade(ratio){return this.alpha(this.valpha- +this.valpha*ratio)},opaquer(ratio){return this.alpha(this.valpha+this.valpha*ratio)}, +rotate(degrees){let hsl=this.hsl(),hue=hsl.color[0];return hue=(hue+degrees)%360, +hue=hue<0?360+hue:hue,hsl.color[0]=hue,hsl},mix(mixinColor,weight){if(!mixinColor|| +!mixinColor.rgb)throw new Error('Argument to "mix" was not a Color instance, but\ + rather an instance of '+typeof mixinColor);let color1=mixinColor.rgb(),color2=this. +rgb(),p2=weight===void 0?.5:weight,w2=2*p2-1,a2=color1.alpha()-color2.alpha(),w1=((w2* +a2===-1?w2:(w2+a2)/(1+w2*a2))+1)/2,w22=1-w1;return Color2.rgb(w1*color1.red()+w22* +color2.red(),w1*color1.green()+w22*color2.green(),w1*color1.blue()+w22*color2.blue(), +color1.alpha()*p2+color2.alpha()*(1-p2))}};for(let model of Object.keys(convert)){ +if(skippedModels.includes(model))continue;let{channels}=convert[model];Color2.prototype[model]= +function(...args){return this.model===model?new Color2(this):args.length>0?new Color2( +args,model):new Color2([...assertArray(convert[this.model][model].raw(this.color)), +this.valpha],model)},Color2[model]=function(...args){let color2=args[0];return typeof color2== +"number"&&(color2=zeroArray(args,channels)),new Color2(color2,model)}}function roundTo(number,places){ +return Number(number.toFixed(places))}__name(roundTo,"roundTo");function roundToPlace(places){ +return function(number){return roundTo(number,places)}}__name(roundToPlace,"roun\ +dToPlace");function getset(model,channel,modifier){model=Array.isArray(model)?model: +[model];for(let m of model)(limiters[m]||(limiters[m]=[]))[channel]=modifier;return model= +model[0],function(value){let result;return value!==void 0?(modifier&&(value=modifier( +value)),result=this[model](),result.color[channel]=value,result):(result=this[model](). +color[channel],modifier&&(result=modifier(result)),result)}}__name(getset,"getse\ +t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}__name( +maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} +__name(assertArray,"assertArray");function zeroArray(array,length){for(let i2=0;i2< +length;i2++)typeof array[i2]!="number"&&(array[i2]=0);return array}__name(zeroArray, +"zeroArray");module.exports=Color2}});function i(t){let n=new Date().getTime()+t,e=new Date().getTime();for(;e0?O(I,--p):0,L--,c===10&&(L=1,j--),c}__name(nr,"nr");function x(){return c= +p2||Z(c)>3?"":" "}__name(or,"or");function ir(r2,e){for(;--e&& +x()&&!(c<48||c>102||c>57&&c<65||c>70&&c<97););return W(r2,F()+(e<6&&w()==32&&x()== +32))}__name(ir,"ir");function q(r2){for(;x();)switch(c){case r2:return p;case 34:case 39: +r2!==34&&r2!==39&&q(c);break;case 40:r2===41&&q(r2);break;case 92:x();break}return p} +__name(q,"q");function sr(r2,e){for(;x()&&r2+c!==47+10&&!(r2+c===42+42&&w()===47);) +;return"/*"+W(e,p-1)+"*"+z(r2===47?r2:x())}__name(sr,"sr");function fr(r2){for(;!Z( +w());)x();return W(r2,p)}__name(fr,"fr");function xr(r2){return cr(G("",null,null, +null,[""],r2=ar(r2),0,[0],r2))}__name(xr,"xr");function G(r2,e,a2,n,i2,l,M,v,b){ +for(var C=0,E=0,s=M,S=0,k=0,T=0,f=1,U=1,m=1,o=0,d2="",A=i2,g=l,h=n,t=d2;U;)switch(T= +o,o=x()){case 40:if(T!=108&&O(t,s-1)==58){y(t+=P(B(o),"&","&\f"),"&\f")!=-1&&(m= +-1);break}case 34:case 39:case 91:t+=B(o);break;case 9:case 10:case 13:case 32:t+= +or(T);break;case 92:t+=ir(F()-1,7);continue;case 47:switch(w()){case 42:case 47: +N(hr(sr(x(),F()),e,a2,b),b);break;default:t+="/"}break;case 123*f:v[C++]=u(t)*m;case 125* +f:case 59:case 0:switch(o){case 0:case 125:U=0;case 59+E:m==-1&&(t=P(t,/\f/g,"")), +k>0&&u(t)-s&&N(k>32?pr(t+";",n,a2,s-1,b):pr(P(t," ","")+";",n,a2,s-2,b),b);break;case 59: +t+=";";default:if(N(h=ur(t,e,a2,C,E,i2,v,d2,A=[],g=[],s,l),l),o===123)if(E===0)G( +t,e,h,h,A,l,s,v,g);else switch(S===99&&O(t,3)===110?100:S){case 100:case 108:case 109:case 115: +G(r2,h,h,n&&N(ur(r2,h,h,0,0,i2,v,d2,i2,A=[],s,g),g),i2,g,s,v,n?A:g);break;default: +G(t,h,h,h,[""],g,0,v,g)}}C=E=k=0,f=m=1,d2=t="",s=M;break;case 58:s=1+u(t),k=T;default: +if(f<1){if(o==123)--f;else if(o==125&&f++==0&&nr()==125)continue}switch(t+=z(o), +o*f){case 38:m=E>0?1:(t+="\f",-1);break;case 44:v[C++]=(u(t)-1)*m,m=1;break;case 64: +w()===45&&(t+=B(x())),S=w(),E=s=u(d2=t+=fr(F())),o++;break;case 45:T===45&&u(t)== +2&&(f=0)}}return l}__name(G,"G");function ur(r2,e,a2,n,i2,l,M,v,b,C,E,s){for(var S=i2- +1,k=i2===0?l:[""],T=rr(k),f=0,U=0,m=0;f0?k[o]+" "+d2:P(d2,/&\f/g,k[o])))&&(b[m++]=A);return V(r2,e, +a2,i2===0?Y:v,b,C,E,s)}__name(ur,"ur");function hr(r2,e,a2,n){return V(r2,e,a2,D, +z(tr()),R(r2,2,-2),0,n)}__name(hr,"hr");function pr(r2,e,a2,n,i2){return V(r2,e, +a2,_,R(r2,0,n),R(r2,n+1,-1),n,i2)}__name(pr,"pr");function H(r2,e){for(var a2="", +n=0;n= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n", "'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n", "/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n", "export function sleepSync(ms: number) {\n const end = new Date().getTime() + ms;\n let time = new Date().getTime();\n while (time < end) {\n time = new Date().getTime();\n }\n return time;\n}\n\nexport function uuid() {\n return sleepSync(1).toString(36);\n}", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import { compile, serialize, stringify } from 'stylis';\n\nexport function stylis(css: string) {\n return serialize(compile(css), stringify);\n}\n", "import { uuid } from './util.js';\nimport { stylis } from './cssProcessor/stylis.bundle.js';\n\ntype Constructor = new (...args: any[]) => T;\n\nexport function AdapterMixin>(\n Base: TBase\n) {\n return class Adapter extends Base {\n /** CSSStyleSheet() for this component */\n static _cssStyleSheet: CSSStyleSheet;\n\n /** Tag name of this component */\n static _tagName: string | null;\n\n /** Styles which contain only css for this component */\n static _styles: string[] = [];\n\n /** CSS Process middleware, This function will be called\n * before applying CSS to CSSStyleSheet.\n */\n static cssProcess(css: string): string {\n return css;\n }\n\n /**\n * Retreive styles for this component,\n * also prevent inherit values from super class.\n */\n static get styles(): string[] {\n if (this._styles === Object.getPrototypeOf(this).styles) {\n this._styles = [];\n }\n return this._styles;\n }\n\n /** Retreive inherited styles for all super classes. */\n static get inheritedStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n let inheritedStyles: string[] = [];\n\n while (superClass.styles !== undefined) {\n inheritedStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n\n return inheritedStyles;\n }\n\n /** Set CSS for this component */\n static set css(css: string) {\n this._styles = [css];\n\n if (this.tagName) {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return [...this.inheritedStyles, ...this.styles].join(\"\\n\");\n }\n\n /** Get tagName for this class which will be defined after\n * the class has been registerd with CustomElementsRegistry.\n */\n static get tagName(): string | null {\n if (this._tagName === Object.getPrototypeOf(this).tagName) {\n this._tagName = null;\n }\n return this._tagName;\n }\n\n /** Get CSSStyleSheet() for this component.\n * Create a new one if haven't been created yet.\n */\n static get cssStyleSheet(): CSSStyleSheet {\n const superCSSStyleSheet = Object.getPrototypeOf(this)._cssStyleSheet;\n if (this._cssStyleSheet === superCSSStyleSheet) {\n this._cssStyleSheet = new CSSStyleSheet();\n }\n return this._cssStyleSheet;\n }\n\n /** Add style to this component */\n static addStyle(css: string) {\n this._styles = this._styles.concat(css);\n\n if (this.tagName) {\n const rule = `${this.tagName} { ${css} }`;\n const processedCss = this.cssProcess(rule);\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n }\n\n /**\n * Define component to element tag and init component style.\n * To extends this function, sub-elements must be defined\n * before call this function as `super.define(tagName);`\n */\n static define(tagName: string): void {\n this._tagName = tagName;\n customElements.define(tagName, this);\n this.initStyle();\n }\n\n /** Init component style */\n static initStyle() {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n\n /** Deprecated, will be removed in v3 */\n static tagStyle(css: string): void {\n console.warn('tagStyle() is deprecated, use addStyle() instead');\n this.addStyle(css);\n }\n\n /** Deprecated, will be removed in v3 */\n static classStyle(class_: string, css: string) {\n console.warn('classStyle() is deprecated, use addStyle() instead');\n this.addStyle(`&.${class_} { ${css} }`);\n }\n\n _class!: typeof Adapter; // instance's class for using as shortcut\n\n _cssStyleSheet?: CSSStyleSheet;\n\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n /**\n * In constructor, there any some if condition to check\n * if it has been inited or not to prevent recursive call in Mixin\n */\n constructor(...args: any[]) {\n super(...args);\n if (this._class) {\n return;\n }\n this._class = this.constructor as unknown as typeof Adapter;\n\n /**\n * If class tagName has been defined from somewhere else.\n * Then it shouldn't be initialized again.\n */\n if (this._class.tagName) {\n return;\n }\n this._class._styles = [];\n this._class._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Dynamically create and return uuid for the element */\n get uuid(): string {\n if (!this._uuid) {\n this._uuid = `${this.tagName}-${uuid()}`;\n }\n return this._uuid;\n }\n\n /**\n * Dynamically create a CSSStyleSheet() and keep track of the adopted\n * stylesheet index for later reference.\n */\n get cssStyleSheet() {\n if (!this._cssStyleSheet) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n this._cssStyleSheet = new CSSStyleSheet();\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\n return this._cssStyleSheet;\n }\n\n /**\n * Return a selector for the this element as a class chain.\n */\n get objectClassSelector(): string {\n return `&.${this.classList.value.replace(/ /g, \".\")}`;\n }\n\n /**\n * Set CSS for this element.\n * It works like `` but with CSS processor.\n */\n set css(css: string) {\n this.cssStyleSheet.replaceSync(\n this._class.cssProcess(`\n ${this.objectClassSelector} { ${css} }\n `)\n );\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n this.cssStyleSheet.insertRule(\n `${this.tagName} {\n ${this.objectClassSelector} { ${css} }\n }`,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this.remove();\n }\n };\n}\n\nexport class Adapter extends AdapterMixin(HTMLElement) {\n static cssProcess(css: string): string {\n return stylis(css);\n }\n}\n", "const color = {\n blue: \"#3584e4\",\n green: \"#33d17a\",\n yellow: \"#f6d32d\",\n orange: \"#ff7800\",\n red: \"#e01b24\",\n purple: \"#9141ac\",\n violet: \"#9141ac\",\n brown: \"#986a44\",\n light: \"#deddda\",\n dark: \"#3d3846\"\n}\n\nexport { color };", "import { Adapter } from \"@devcapsule/adapter\";\nimport { color } from '../designToken.js';\nimport Color from 'color';\n\nexport class BlockQuote extends Adapter {\n static css = /*css*/`\n & {\n display: flex;\n }\n & blockquote {\n margin: 0;\n padding: 0rem 1rem;\n background-color: ${Color(color.yellow).alpha(0.2)};\n border-left: 0.25em solid ${color.yellow};\n border-bottom-left-radius: 0.5rem;\n }\n `\n}"], + "mappings": "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", + "names": ["i", "i", "i2", "a", "w", "r", "r", "c", "w", "y", "x", "z", "a", "i", "p", "q", "y2", "x2", "z2", "hr", "color", "i", "i", "Color", "i", "color", "p", "w", "a", "w2", "sleepSync", "ms", "end", "time", "uuid", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "value", "replace", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "root", "parent", "type", "props", "children", "siblings", "char", "prev", "next", "peek", "caret", "slice", "token", "alloc", "dealloc", "delimit", "delimiter", "whitespace", "escaping", "count", "commenter", "identifier", "compile", "parse", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "offset", "atrule", "property", "previous", "variable", "scanning", "ampersand", "reference", "comment", "declaration", "ruleset", "post", "size", "i", "j", "k", "x", "y", "z", "serialize", "callback", "output", "stringify", "element", "stylis", "css", "AdapterMixin", "Base", "args", "css", "superClass", "inheritedStyles", "superCSSStyleSheet", "rule", "processedCss", "tagName", "class_", "uuid", "index", "Adapter", "stylis", "Color"] +} diff --git a/docs/_ux/ui/button.js b/docs/_ux/ui/button.js new file mode 100644 index 0000000..a424eed --- /dev/null +++ b/docs/_ux/ui/button.js @@ -0,0 +1,483 @@ +var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])( +(mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from== +"function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!== +except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from, +key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)): +{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod, +enumerable:!0}):target,mod));var require_color_name=__commonJS({"node_modules/color-name/index.js"(exports,module){ +"use strict";module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215], +aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220], +bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[ +138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[ +127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237], +cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[ +0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0], +darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[ +85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[ +233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[ +47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211], +deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105, +105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240], +forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[ +248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0, +128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[ +255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[ +240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252, +0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[ +224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[ +144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160, +122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136, +153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255, +255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0, +255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[ +186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[ +123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[ +199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228, +225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253, +245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[ +255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152], +paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213], +peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221], +powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255, +0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[ +250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238], +sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90, +205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[ +0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216, +191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245, +222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[ +154,205,50]}}});var require_is_arrayish=__commonJS({"node_modules/simple-swizzle/node_modules/is\ +-arrayish/index.js"(exports,module){module.exports=__name(function(obj){return!obj|| +typeof obj=="string"?!1:obj instanceof Array||Array.isArray(obj)||obj.length>=0&& +(obj.splice instanceof Function||Object.getOwnPropertyDescriptor(obj,obj.length- +1)&&obj.constructor.name!=="String")},"isArrayish")}});var require_simple_swizzle=__commonJS({"node_modules/simple-swizzle/index.js"(exports,module){ +"use strict";var isArrayish=require_is_arrayish(),concat=Array.prototype.concat, +slice=Array.prototype.slice,swizzle=module.exports=__name(function(args){for(var results=[], +i2=0,len=args.length;i2=4&&hwba[3]!==1&&(a2=", "+hwba[3]),"hwb("+hwba[0]+ +", "+hwba[1]+"%, "+hwba[2]+"%"+a2+")"};cs.to.keyword=function(rgb){return reverseNames[rgb. +slice(0,3)]};function clamp(num,min,max){return Math.min(Math.max(min,num),max)} +__name(clamp,"clamp");function hexDouble(num){var str=Math.round(num).toString(16). +toUpperCase();return str.length<2?"0"+str:str}__name(hexDouble,"hexDouble")}});var require_conversions=__commonJS({"node_modules/color-convert/conversions.js"(exports,module){ +var cssKeywords=require_color_name(),reverseKeywords={};for(let key of Object.keys( +cssKeywords))reverseKeywords[cssKeywords[key]]=key;var convert={rgb:{channels:3, +labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3, +labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{ +channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["\ +hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi1\ +6"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]}, +apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}}; +module.exports=convert;for(let model of Object.keys(convert)){if(!("channels"in convert[model])) +throw new Error("missing channels property: "+model);if(!("labels"in convert[model])) +throw new Error("missing channel labels property: "+model);if(convert[model].labels. +length!==convert[model].channels)throw new Error("channel and label counts misma\ +tch: "+model);let{channels,labels}=convert[model];delete convert[model].channels, +delete convert[model].labels,Object.defineProperty(convert[model],"channels",{value:channels}), +Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){ +let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,min=Math.min(r2,g,b),max=Math.max(r2, +g,b),delta=max-min,h,s;max===min?h=0:r2===max?h=(g-b)/delta:g===max?h=2+(b-r2)/delta: +b===max&&(h=4+(r2-g)/delta),h=Math.min(h*60,360),h<0&&(h+=360);let l=(min+max)/2; +return max===min?s=0:l<=.5?s=delta/(max+min):s=delta/(2-max-min),[h,s*100,l*100]}; +convert.rgb.hsv=function(rgb){let rdif,gdif,bdif,h,s,r2=rgb[0]/255,g=rgb[1]/255, +b=rgb[2]/255,v=Math.max(r2,g,b),diff=v-Math.min(r2,g,b),diffc=__name(function(c2){ +return(v-c2)/6/diff+1/2},"diffc");return diff===0?(h=0,s=0):(s=diff/v,rdif=diffc( +r2),gdif=diffc(g),bdif=diffc(b),r2===v?h=bdif-gdif:g===v?h=1/3+rdif-bdif:b===v&& +(h=2/3+gdif-rdif),h<0?h+=1:h>1&&(h-=1)),[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){ +let r2=rgb[0],g=rgb[1],b=rgb[2],h=convert.rgb.hsl(rgb)[0],w2=1/255*Math.min(r2,Math. +min(g,b));return b=1-1/255*Math.max(r2,Math.max(g,b)),[h,w2*100,b*100]};convert. +rgb.cmyk=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,k=Math.min(1- +r2,1-g,1-b),c2=(1-r2-k)/(1-k)||0,m=(1-g-k)/(1-k)||0,y2=(1-b-k)/(1-k)||0;return[c2* +100,m*100,y2*100,k*100]};function comparativeDistance(x2,y2){return(x2[0]-y2[0])** +2+(x2[1]-y2[1])**2+(x2[2]-y2[2])**2}__name(comparativeDistance,"comparativeDista\ +nce");convert.rgb.keyword=function(rgb){let reversed=reverseKeywords[rgb];if(reversed) +return reversed;let currentClosestDistance=1/0,currentClosestKeyword;for(let keyword of Object. +keys(cssKeywords)){let value=cssKeywords[keyword],distance=comparativeDistance(rgb, +value);distance +.04045?((r2+.055)/1.055)**2.4:r2/12.92,g=g>.04045?((g+.055)/1.055)**2.4:g/12.92, +b=b>.04045?((b+.055)/1.055)**2.4:b/12.92;let x2=r2*.4124+g*.3576+b*.1805,y2=r2*.2126+ +g*.7152+b*.0722,z2=r2*.0193+g*.1192+b*.9505;return[x2*100,y2*100,z2*100]};convert. +rgb.lab=function(rgb){let xyz=convert.rgb.xyz(rgb),x2=xyz[0],y2=xyz[1],z2=xyz[2]; +x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116,y2=y2>.008856? +y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116;let l=116*y2-16, +a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.hsl.rgb=function(hsl){let h=hsl[0]/ +360,s=hsl[1]/100,l=hsl[2]/100,t2,t3,val;if(s===0)return val=l*255,[val,val,val]; +l<.5?t2=l*(1+s):t2=l+s-l*s;let t1=2*l-t2,rgb=[0,0,0];for(let i2=0;i2<3;i2++)t3=h+ +1/3*-(i2-1),t3<0&&t3++,t3>1&&t3--,6*t3<1?val=t1+(t2-t1)*6*t3:2*t3<1?val=t2:3*t3< +2?val=t1+(t2-t1)*(2/3-t3)*6:val=t1,rgb[i2]=val*255;return rgb};convert.hsl.hsv=function(hsl){ +let h=hsl[0],s=hsl[1]/100,l=hsl[2]/100,smin=s,lmin=Math.max(l,.01);l*=2,s*=l<=1? +l:2-l,smin*=lmin<=1?lmin:2-lmin;let v=(l+s)/2,sv=l===0?2*smin/(lmin+smin):2*s/(l+ +s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){let h=hsv[0]/60,s=hsv[1]/ +100,v=hsv[2]/100,hi=Math.floor(h)%6,f=h-Math.floor(h),p2=255*v*(1-s),q2=255*v*(1- +s*f),t=255*v*(1-s*(1-f));switch(v*=255,hi){case 0:return[v,t,p2];case 1:return[q2, +v,p2];case 2:return[p2,v,t];case 3:return[p2,q2,v];case 4:return[t,p2,v];case 5: +return[v,p2,q2]}};convert.hsv.hsl=function(hsv){let h=hsv[0],s=hsv[1]/100,v=hsv[2]/ +100,vmin=Math.max(v,.01),sl,l;l=(2-s)*v;let lmin=(2-s)*vmin;return sl=s*vmin,sl/= +lmin<=1?lmin:2-lmin,sl=sl||0,l/=2,[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){ +let h=hwb[0]/360,wh=hwb[1]/100,bl=hwb[2]/100,ratio=wh+bl,f;ratio>1&&(wh/=ratio,bl/= +ratio);let i2=Math.floor(6*h),v=1-bl;f=6*h-i2,i2&1&&(f=1-f);let n=wh+f*(v-wh),r2, +g,b;switch(i2){default:case 6:case 0:r2=v,g=n,b=wh;break;case 1:r2=n,g=v,b=wh;break;case 2: +r2=wh,g=v,b=n;break;case 3:r2=wh,g=n,b=v;break;case 4:r2=n,g=wh,b=v;break;case 5: +r2=v,g=wh,b=n;break}return[r2*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){ +let c2=cmyk[0]/100,m=cmyk[1]/100,y2=cmyk[2]/100,k=cmyk[3]/100,r2=1-Math.min(1,c2* +(1-k)+k),g=1-Math.min(1,m*(1-k)+k),b=1-Math.min(1,y2*(1-k)+k);return[r2*255,g*255, +b*255]};convert.xyz.rgb=function(xyz){let x2=xyz[0]/100,y2=xyz[1]/100,z2=xyz[2]/ +100,r2,g,b;return r2=x2*3.2406+y2*-1.5372+z2*-.4986,g=x2*-.9689+y2*1.8758+z2*.0415, +b=x2*.0557+y2*-.204+z2*1.057,r2=r2>.0031308?1.055*r2**(1/2.4)-.055:r2*12.92,g=g> +.0031308?1.055*g**(1/2.4)-.055:g*12.92,b=b>.0031308?1.055*b**(1/2.4)-.055:b*12.92, +r2=Math.min(Math.max(0,r2),1),g=Math.min(Math.max(0,g),1),b=Math.min(Math.max(0, +b),1),[r2*255,g*255,b*255]};convert.xyz.lab=function(xyz){let x2=xyz[0],y2=xyz[1], +z2=xyz[2];x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116, +y2=y2>.008856?y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116; +let l=116*y2-16,a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.lab.xyz=function(lab){ +let l=lab[0],a2=lab[1],b=lab[2],x2,y2,z2;y2=(l+16)/116,x2=a2/500+y2,z2=y2-b/200; +let y22=y2**3,x22=x2**3,z22=z2**3;return y2=y22>.008856?y22:(y2-16/116)/7.787,x2= +x22>.008856?x22:(x2-16/116)/7.787,z2=z22>.008856?z22:(z2-16/116)/7.787,x2*=95.047, +y2*=100,z2*=108.883,[x2,y2,z2]};convert.lab.lch=function(lab){let l=lab[0],a2=lab[1], +b=lab[2],h;h=Math.atan2(b,a2)*360/2/Math.PI,h<0&&(h+=360);let c2=Math.sqrt(a2*a2+ +b*b);return[l,c2,h]};convert.lch.lab=function(lch){let l=lch[0],c2=lch[1],hr2=lch[2]/ +360*2*Math.PI,a2=c2*Math.cos(hr2),b=c2*Math.sin(hr2);return[l,a2,b]};convert.rgb. +ansi16=function(args,saturation=null){let[r2,g,b]=args,value=saturation===null?convert. +rgb.hsv(args)[2]:saturation;if(value=Math.round(value/50),value===0)return 30;let ansi=30+ +(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r2/255));return value===2&& +(ansi+=60),ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert. +hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){let r2=args[0],g=args[1], +b=args[2];return r2===g&&g===b?r2<8?16:r2>248?231:Math.round((r2-8)/247*24)+232: +16+36*Math.round(r2/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5)};convert.ansi16. +rgb=function(args){let color=args%10;if(color===0||color===7)return args>50&&(color+= +3.5),color=color/10.5*255,[color,color,color];let mult=(~~(args>50)+1)*.5,r2=(color& +1)*mult*255,g=(color>>1&1)*mult*255,b=(color>>2&1)*mult*255;return[r2,g,b]};convert. +ansi256.rgb=function(args){if(args>=232){let c2=(args-232)*10+8;return[c2,c2,c2]} +args-=16;let rem,r2=Math.floor(args/36)/5*255,g=Math.floor((rem=args%36)/6)/5*255, +b=rem%6/5*255;return[r2,g,b]};convert.rgb.hex=function(args){let string=(((Math. +round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255)). +toString(16).toUpperCase();return"000000".substring(string.length)+string};convert. +hex.rgb=function(args){let match=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); +if(!match)return[0,0,0];let colorString=match[0];match[0].length===3&&(colorString= +colorString.split("").map(char=>char+char).join(""));let integer=parseInt(colorString, +16),r2=integer>>16&255,g=integer>>8&255,b=integer&255;return[r2,g,b]};convert.rgb. +hcg=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,max=Math.max(Math. +max(r2,g),b),min=Math.min(Math.min(r2,g),b),chroma=max-min,grayscale,hue;return chroma< +1?grayscale=min/(1-chroma):grayscale=0,chroma<=0?hue=0:max===r2?hue=(g-b)/chroma% +6:max===g?hue=2+(b-r2)/chroma:hue=4+(r2-g)/chroma,hue/=6,hue%=1,[hue*360,chroma* +100,grayscale*100]};convert.hsl.hcg=function(hsl){let s=hsl[1]/100,l=hsl[2]/100, +c2=l<.5?2*s*l:2*s*(1-l),f=0;return c2<1&&(f=(l-.5*c2)/(1-c2)),[hsl[0],c2*100,f*100]}; +convert.hsv.hcg=function(hsv){let s=hsv[1]/100,v=hsv[2]/100,c2=s*v,f=0;return c2< +1&&(f=(v-c2)/(1-c2)),[hsv[0],c2*100,f*100]};convert.hcg.rgb=function(hcg){let h=hcg[0]/ +360,c2=hcg[1]/100,g=hcg[2]/100;if(c2===0)return[g*255,g*255,g*255];let pure=[0,0, +0],hi=h%1*6,v=hi%1,w2=1-v,mg=0;switch(Math.floor(hi)){case 0:pure[0]=1,pure[1]=v, +pure[2]=0;break;case 1:pure[0]=w2,pure[1]=1,pure[2]=0;break;case 2:pure[0]=0,pure[1]= +1,pure[2]=v;break;case 3:pure[0]=0,pure[1]=w2,pure[2]=1;break;case 4:pure[0]=v,pure[1]= +0,pure[2]=1;break;default:pure[0]=1,pure[1]=0,pure[2]=w2}return mg=(1-c2)*g,[(c2* +pure[0]+mg)*255,(c2*pure[1]+mg)*255,(c2*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){ +let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2),f=0;return v>0&&(f=c2/v),[hcg[0],f* +100,v*100]};convert.hcg.hsl=function(hcg){let c2=hcg[1]/100,l=hcg[2]/100*(1-c2)+ +.5*c2,s=0;return l>0&&l<.5?s=c2/(2*l):l>=.5&&l<1&&(s=c2/(2*(1-l))),[hcg[0],s*100, +l*100]};convert.hcg.hwb=function(hcg){let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2); +return[hcg[0],(v-c2)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){let w2=hwb[1]/ +100,v=1-hwb[2]/100,c2=v-w2,g=0;return c2<1&&(g=(v-c2)/(1-c2)),[hwb[0],c2*100,g*100]}; +convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/ +65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535, +rgb[2]/255*65535]};convert.gray.rgb=function(args){return[args[0]/100*255,args[0]/ +100*255,args[0]/100*255]};convert.gray.hsl=function(args){return[0,0,args[0]]};convert. +gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){return[0,100,gray[0]]}; +convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert.gray.lab=function(gray){ +return[gray[0],0,0]};convert.gray.hex=function(gray){let val=Math.round(gray[0]/ +100*255)&255,string=((val<<16)+(val<<8)+val).toString(16).toUpperCase();return"0\ +00000".substring(string.length)+string};convert.rgb.gray=function(rgb){return[(rgb[0]+ +rgb[1]+rgb[2])/3/255*100]}}});var require_route=__commonJS({"node_modules/color-convert/route.js"(exports,module){ +var conversions=require_conversions();function buildGraph(){let graph={},models=Object. +keys(conversions);for(let len=models.length,i2=0;i21&&(args=arg0),fn(args))},"wrappedFn");return"\ +conversion"in fn&&(wrappedFn.conversion=fn.conversion),wrappedFn}__name(wrapRaw, +"wrapRaw");function wrapRounded(fn){let wrappedFn=__name(function(...args){let arg0=args[0]; +if(arg0==null)return arg0;arg0.length>1&&(args=arg0);let result=fn(args);if(typeof result== +"object")for(let len=result.length,i2=0;i2{convert[fromModel]= +{},Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel]. +channels}),Object.defineProperty(convert[fromModel],"labels",{value:conversions[fromModel]. +labels});let routes=route(fromModel);Object.keys(routes).forEach(toModel=>{let fn=routes[toModel]; +convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrapRaw( +fn)})});module.exports=convert}});var require_color=__commonJS({"node_modules/color/index.js"(exports,module){var colorString=require_color_string(), +convert=require_color_convert(),skippedModels=["keyword","gray","hex"],hashedModelKeys={}; +for(let model of Object.keys(convert))hashedModelKeys[[...convert[model].labels]. +sort().join("")]=model;var limiters={};function Color3(object,model){if(!(this instanceof +Color3))return new Color3(object,model);if(model&&model in skippedModels&&(model= +null),model&&!(model in convert))throw new Error("Unknown model: "+model);let i2, +channels;if(object==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(object instanceof +Color3)this.model=object.model,this.color=[...object.color],this.valpha=object.valpha;else if(typeof object== +"string"){let result=colorString.get(object);if(result===null)throw new Error("U\ +nable to parse color from string: "+object);this.model=result.model,channels=convert[this. +model].channels,this.color=result.value.slice(0,channels),this.valpha=typeof result. +value[channels]=="number"?result.value[channels]:1}else if(object.length>0){this. +model=model||"rgb",channels=convert[this.model].channels;let newArray=Array.prototype. +slice.call(object,0,channels);this.color=zeroArray(newArray,channels),this.valpha= +typeof object[channels]=="number"?object[channels]:1}else if(typeof object=="num\ +ber")this.model="rgb",this.color=[object>>16&255,object>>8&255,object&255],this. +valpha=1;else{this.valpha=1;let keys=Object.keys(object);"alpha"in object&&(keys. +splice(keys.indexOf("alpha"),1),this.valpha=typeof object.alpha=="number"?object. +alpha:0);let hashedKeys=keys.sort().join("");if(!(hashedKeys in hashedModelKeys)) +throw new Error("Unable to parse color from object: "+JSON.stringify(object));this. +model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color=[];for(i2= +0;i2(value%360+360)%360),saturationl:getset("hsl",1,maxfn(100)), +lightness:getset("hsl",2,maxfn(100)),saturationv:getset("hsv",1,maxfn(100)),value:getset( +"hsv",2,maxfn(100)),chroma:getset("hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn( +100)),white:getset("hwb",1,maxfn(100)),wblack:getset("hwb",2,maxfn(100)),cyan:getset( +"cmyk",0,maxfn(100)),magenta:getset("cmyk",1,maxfn(100)),yellow:getset("cmyk",2, +maxfn(100)),black:getset("cmyk",3,maxfn(100)),x:getset("xyz",0,maxfn(95.047)),y:getset( +"xyz",1,maxfn(100)),z:getset("xyz",2,maxfn(108.833)),l:getset("lab",0,maxfn(100)), +a:getset("lab",1),b:getset("lab",2),keyword(value){return value!==void 0?new Color3( +value):convert[this.model].keyword(this.color)},hex(value){return value!==void 0? +new Color3(value):colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!== +void 0)return new Color3(value);let rgbArray=this.rgb().round().color,alphaHex=Math. +round(this.valpha*255).toString(16).toUpperCase();return alphaHex.length===1&&(alphaHex= +"0"+alphaHex),colorString.to.hex(rgbArray)+alphaHex},rgbNumber(){let rgb=this.rgb(). +color;return(rgb[0]&255)<<16|(rgb[1]&255)<<8|rgb[2]&255},luminosity(){let rgb=this. +rgb().color,lum=[];for(let[i2,element]of rgb.entries()){let chan=element/255;lum[i2]= +chan<=.04045?chan/12.92:((chan+.055)/1.055)**2.4}return .2126*lum[0]+.7152*lum[1]+ +.0722*lum[2]},contrast(color2){let lum1=this.luminosity(),lum2=color2.luminosity(); +return lum1>lum2?(lum1+.05)/(lum2+.05):(lum2+.05)/(lum1+.05)},level(color2){let contrastRatio=this. +contrast(color2);return contrastRatio>=7?"AAA":contrastRatio>=4.5?"AA":""},isDark(){ +let rgb=this.rgb().color;return(rgb[0]*2126+rgb[1]*7152+rgb[2]*722)/1e4<128},isLight(){ +return!this.isDark()},negate(){let rgb=this.rgb();for(let i2=0;i2<3;i2++)rgb.color[i2]= +255-rgb.color[i2];return rgb},lighten(ratio){let hsl=this.hsl();return hsl.color[2]+= +hsl.color[2]*ratio,hsl},darken(ratio){let hsl=this.hsl();return hsl.color[2]-=hsl. +color[2]*ratio,hsl},saturate(ratio){let hsl=this.hsl();return hsl.color[1]+=hsl. +color[1]*ratio,hsl},desaturate(ratio){let hsl=this.hsl();return hsl.color[1]-=hsl. +color[1]*ratio,hsl},whiten(ratio){let hwb=this.hwb();return hwb.color[1]+=hwb.color[1]* +ratio,hwb},blacken(ratio){let hwb=this.hwb();return hwb.color[2]+=hwb.color[2]*ratio, +hwb},grayscale(){let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11; +return Color3.rgb(value,value,value)},fade(ratio){return this.alpha(this.valpha- +this.valpha*ratio)},opaquer(ratio){return this.alpha(this.valpha+this.valpha*ratio)}, +rotate(degrees){let hsl=this.hsl(),hue=hsl.color[0];return hue=(hue+degrees)%360, +hue=hue<0?360+hue:hue,hsl.color[0]=hue,hsl},mix(mixinColor,weight){if(!mixinColor|| +!mixinColor.rgb)throw new Error('Argument to "mix" was not a Color instance, but\ + rather an instance of '+typeof mixinColor);let color1=mixinColor.rgb(),color2=this. +rgb(),p2=weight===void 0?.5:weight,w2=2*p2-1,a2=color1.alpha()-color2.alpha(),w1=((w2* +a2===-1?w2:(w2+a2)/(1+w2*a2))+1)/2,w22=1-w1;return Color3.rgb(w1*color1.red()+w22* +color2.red(),w1*color1.green()+w22*color2.green(),w1*color1.blue()+w22*color2.blue(), +color1.alpha()*p2+color2.alpha()*(1-p2))}};for(let model of Object.keys(convert)){ +if(skippedModels.includes(model))continue;let{channels}=convert[model];Color3.prototype[model]= +function(...args){return this.model===model?new Color3(this):args.length>0?new Color3( +args,model):new Color3([...assertArray(convert[this.model][model].raw(this.color)), +this.valpha],model)},Color3[model]=function(...args){let color=args[0];return typeof color== +"number"&&(color=zeroArray(args,channels)),new Color3(color,model)}}function roundTo(number,places){ +return Number(number.toFixed(places))}__name(roundTo,"roundTo");function roundToPlace(places){ +return function(number){return roundTo(number,places)}}__name(roundToPlace,"roun\ +dToPlace");function getset(model,channel,modifier){model=Array.isArray(model)?model: +[model];for(let m of model)(limiters[m]||(limiters[m]=[]))[channel]=modifier;return model= +model[0],function(value){let result;return value!==void 0?(modifier&&(value=modifier( +value)),result=this[model](),result.color[channel]=value,result):(result=this[model](). +color[channel],modifier&&(result=modifier(result)),result)}}__name(getset,"getse\ +t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}__name( +maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} +__name(assertArray,"assertArray");function zeroArray(array,length){for(let i2=0;i2< +length;i2++)typeof array[i2]!="number"&&(array[i2]=0);return array}__name(zeroArray, +"zeroArray");module.exports=Color3}});function i(t){let n=new Date().getTime()+t,e=new Date().getTime();for(;e0?O(I,--p):0,L--,c===10&&(L=1,j--),c}__name(nr,"nr");function x(){return c= +p2||Z(c)>3?"":" "}__name(or,"or");function ir(r2,e){for(;--e&& +x()&&!(c<48||c>102||c>57&&c<65||c>70&&c<97););return W(r2,F()+(e<6&&w()==32&&x()== +32))}__name(ir,"ir");function q(r2){for(;x();)switch(c){case r2:return p;case 34:case 39: +r2!==34&&r2!==39&&q(c);break;case 40:r2===41&&q(r2);break;case 92:x();break}return p} +__name(q,"q");function sr(r2,e){for(;x()&&r2+c!==47+10&&!(r2+c===42+42&&w()===47);) +;return"/*"+W(e,p-1)+"*"+z(r2===47?r2:x())}__name(sr,"sr");function fr(r2){for(;!Z( +w());)x();return W(r2,p)}__name(fr,"fr");function xr(r2){return cr(G("",null,null, +null,[""],r2=ar(r2),0,[0],r2))}__name(xr,"xr");function G(r2,e,a2,n,i2,l,M,v,b){ +for(var C=0,E=0,s=M,S=0,k=0,T=0,f=1,U=1,m=1,o=0,d2="",A=i2,g=l,h=n,t=d2;U;)switch(T= +o,o=x()){case 40:if(T!=108&&O(t,s-1)==58){y(t+=P(B(o),"&","&\f"),"&\f")!=-1&&(m= +-1);break}case 34:case 39:case 91:t+=B(o);break;case 9:case 10:case 13:case 32:t+= +or(T);break;case 92:t+=ir(F()-1,7);continue;case 47:switch(w()){case 42:case 47: +N(hr(sr(x(),F()),e,a2,b),b);break;default:t+="/"}break;case 123*f:v[C++]=u(t)*m;case 125* +f:case 59:case 0:switch(o){case 0:case 125:U=0;case 59+E:m==-1&&(t=P(t,/\f/g,"")), +k>0&&u(t)-s&&N(k>32?pr(t+";",n,a2,s-1,b):pr(P(t," ","")+";",n,a2,s-2,b),b);break;case 59: +t+=";";default:if(N(h=ur(t,e,a2,C,E,i2,v,d2,A=[],g=[],s,l),l),o===123)if(E===0)G( +t,e,h,h,A,l,s,v,g);else switch(S===99&&O(t,3)===110?100:S){case 100:case 108:case 109:case 115: +G(r2,h,h,n&&N(ur(r2,h,h,0,0,i2,v,d2,i2,A=[],s,g),g),i2,g,s,v,n?A:g);break;default: +G(t,h,h,h,[""],g,0,v,g)}}C=E=k=0,f=m=1,d2=t="",s=M;break;case 58:s=1+u(t),k=T;default: +if(f<1){if(o==123)--f;else if(o==125&&f++==0&&nr()==125)continue}switch(t+=z(o), +o*f){case 38:m=E>0?1:(t+="\f",-1);break;case 44:v[C++]=(u(t)-1)*m,m=1;break;case 64: +w()===45&&(t+=B(x())),S=w(),E=s=u(d2=t+=fr(F())),o++;break;case 45:T===45&&u(t)== +2&&(f=0)}}return l}__name(G,"G");function ur(r2,e,a2,n,i2,l,M,v,b,C,E,s){for(var S=i2- +1,k=i2===0?l:[""],T=rr(k),f=0,U=0,m=0;f0?k[o]+" "+d2:P(d2,/&\f/g,k[o])))&&(b[m++]=A);return V(r2,e, +a2,i2===0?Y:v,b,C,E,s)}__name(ur,"ur");function hr(r2,e,a2,n){return V(r2,e,a2,D, +z(tr()),R(r2,2,-2),0,n)}__name(hr,"hr");function pr(r2,e,a2,n,i2){return V(r2,e, +a2,_,R(r2,0,n),R(r2,n+1,-1),n,i2)}__name(pr,"pr");function H(r2,e){for(var a2="", +n=0;n` + & { + display: inline-flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + box-sizing: border-box; + } + + & button { + display: inline-flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + box-sizing: border-box; + border: 0; + border-radius: 0.25rem; + padding: 0.5rem 0.7rem; + font-weight: bold; + line-height: 1; + cursor: pointer; + ${lift(.7,"#555")} + ${bgColor(color)} + &:hover { + background-color: ${(0,import_color2.default)(color).lighten(.1).saturate( +.1)}; + ${lift(1.1,"#555")} + } + &:active { + background-color: ${(0,import_color2.default)(color).darken(.1).saturate( +-.1)}; + ${lift(.5,"#555")} + } + } + `,"buttonStyle"),Button=class extends d{constructor(){super();this.initialHTML= +this.innerHTML;this.render()}static{__name(this,"Button")}render(){this.innerHTML= +``}};export{Button,buttonStyle}; +//# sourceMappingURL=button.js.map diff --git a/docs/_ux/ui/button.js.map b/docs/_ux/ui/button.js.map new file mode 100644 index 0000000..b700a2e --- /dev/null +++ b/docs/_ux/ui/button.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/color-name/index.js", "../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "../../../node_modules/simple-swizzle/index.js", "../../../node_modules/color-string/index.js", "../../../node_modules/color-convert/conversions.js", "../../../node_modules/color-convert/route.js", "../../../node_modules/color-convert/index.js", "../../../node_modules/color/index.js", "../../../src/util.ts", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../src/cssProcessor/stylis.bundle.ts", "../../../src/adapter.ts", "../../../docs-src/_ux/ui/button.ts", "../../../docs-src/_ux/style.ts"], + "sourcesContent": ["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n", "'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n", "/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n", "export function sleepSync(ms: number) {\n const end = new Date().getTime() + ms;\n let time = new Date().getTime();\n while (time < end) {\n time = new Date().getTime();\n }\n return time;\n}\n\nexport function uuid() {\n return sleepSync(1).toString(36);\n}", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import { compile, serialize, stringify } from 'stylis';\n\nexport function stylis(css: string) {\n return serialize(compile(css), stringify);\n}\n", "import { uuid } from './util.js';\nimport { stylis } from './cssProcessor/stylis.bundle.js';\n\ntype Constructor = new (...args: any[]) => T;\n\nexport function AdapterMixin>(\n Base: TBase\n) {\n return class Adapter extends Base {\n /** CSSStyleSheet() for this component */\n static _cssStyleSheet: CSSStyleSheet;\n\n /** Tag name of this component */\n static _tagName: string | null;\n\n /** Styles which contain only css for this component */\n static _styles: string[] = [];\n\n /** CSS Process middleware, This function will be called\n * before applying CSS to CSSStyleSheet.\n */\n static cssProcess(css: string): string {\n return css;\n }\n\n /**\n * Retreive styles for this component,\n * also prevent inherit values from super class.\n */\n static get styles(): string[] {\n if (this._styles === Object.getPrototypeOf(this).styles) {\n this._styles = [];\n }\n return this._styles;\n }\n\n /** Retreive inherited styles for all super classes. */\n static get inheritedStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n let inheritedStyles: string[] = [];\n\n while (superClass.styles !== undefined) {\n inheritedStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n\n return inheritedStyles;\n }\n\n /** Set CSS for this component */\n static set css(css: string) {\n this._styles = [css];\n\n if (this.tagName) {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return [...this.inheritedStyles, ...this.styles].join(\"\\n\");\n }\n\n /** Get tagName for this class which will be defined after\n * the class has been registerd with CustomElementsRegistry.\n */\n static get tagName(): string | null {\n if (this._tagName === Object.getPrototypeOf(this).tagName) {\n this._tagName = null;\n }\n return this._tagName;\n }\n\n /** Get CSSStyleSheet() for this component.\n * Create a new one if haven't been created yet.\n */\n static get cssStyleSheet(): CSSStyleSheet {\n const superCSSStyleSheet = Object.getPrototypeOf(this)._cssStyleSheet;\n if (this._cssStyleSheet === superCSSStyleSheet) {\n this._cssStyleSheet = new CSSStyleSheet();\n }\n return this._cssStyleSheet;\n }\n\n /** Add style to this component */\n static addStyle(css: string) {\n this._styles = this._styles.concat(css);\n\n if (this.tagName) {\n const rule = `${this.tagName} { ${css} }`;\n const processedCss = this.cssProcess(rule);\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n }\n\n /**\n * Define component to element tag and init component style.\n * To extends this function, sub-elements must be defined\n * before call this function as `super.define(tagName);`\n */\n static define(tagName: string): void {\n this._tagName = tagName;\n customElements.define(tagName, this);\n this.initStyle();\n }\n\n /** Init component style */\n static initStyle() {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n\n /** Deprecated, will be removed in v3 */\n static tagStyle(css: string): void {\n console.warn('tagStyle() is deprecated, use addStyle() instead');\n this.addStyle(css);\n }\n\n /** Deprecated, will be removed in v3 */\n static classStyle(class_: string, css: string) {\n console.warn('classStyle() is deprecated, use addStyle() instead');\n this.addStyle(`&.${class_} { ${css} }`);\n }\n\n _class!: typeof Adapter; // instance's class for using as shortcut\n\n _cssStyleSheet?: CSSStyleSheet;\n\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n /**\n * In constructor, there any some if condition to check\n * if it has been inited or not to prevent recursive call in Mixin\n */\n constructor(...args: any[]) {\n super(...args);\n if (this._class) {\n return;\n }\n this._class = this.constructor as unknown as typeof Adapter;\n\n /**\n * If class tagName has been defined from somewhere else.\n * Then it shouldn't be initialized again.\n */\n if (this._class.tagName) {\n return;\n }\n this._class._styles = [];\n this._class._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Dynamically create and return uuid for the element */\n get uuid(): string {\n if (!this._uuid) {\n this._uuid = `${this.tagName}-${uuid()}`;\n }\n return this._uuid;\n }\n\n /**\n * Dynamically create a CSSStyleSheet() and keep track of the adopted\n * stylesheet index for later reference.\n */\n get cssStyleSheet() {\n if (!this._cssStyleSheet) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n this._cssStyleSheet = new CSSStyleSheet();\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\n return this._cssStyleSheet;\n }\n\n /**\n * Return a selector for the this element as a class chain.\n */\n get objectClassSelector(): string {\n return `&.${this.classList.value.replace(/ /g, \".\")}`;\n }\n\n /**\n * Set CSS for this element.\n * It works like `` but with CSS processor.\n */\n set css(css: string) {\n this.cssStyleSheet.replaceSync(\n this._class.cssProcess(`\n ${this.objectClassSelector} { ${css} }\n `)\n );\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n this.cssStyleSheet.insertRule(\n `${this.tagName} {\n ${this.objectClassSelector} { ${css} }\n }`,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this.remove();\n }\n };\n}\n\nexport class Adapter extends AdapterMixin(HTMLElement) {\n static cssProcess(css: string): string {\n return stylis(css);\n }\n}\n", "import { Adapter } from \"@devcapsule/adapter\";\nimport Color from 'color';\nimport { bgColor, lift } from '../style';\n\nconst buttonStyle = (color) => {\n return /*css*/`\n & {\n display: inline-flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n }\n\n & button {\n display: inline-flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n border: 0;\n border-radius: 0.25rem;\n padding: 0.5rem 0.7rem;\n font-weight: bold;\n line-height: 1;\n cursor: pointer;\n ${lift(0.7, '#555')}\n ${bgColor(color)}\n &:hover {\n background-color: ${Color(color)\n .lighten(0.1)\n .saturate(0.1)};\n ${lift(1.1, '#555')}\n }\n &:active {\n background-color: ${Color(color)\n .darken(0.1)\n .saturate(-0.1)};\n ${lift(0.5, '#555')}\n }\n }\n `\n}\n\nclass Button extends Adapter {\n initialHTML = this.innerHTML;\n\n constructor() {\n super();\n this.render();\n }\n\n render() {\n this.innerHTML = ``;\n }\n};\n\nexport { buttonStyle, Button };", "import Color from \"color\";\n\nfunction bgColor(color) {\n return /*css*/`\n background-color: ${color};\n color: ${Color(color).isDark() ? 'white' : 'black'};\n `.trim();\n}\n\nfunction lift(level: number, color: string = 'black') {\n return `filter: drop-shadow(0 0 ${level * 2}px ${color});`;\n}\n\nfunction pxToRem(px: any) {\n px = parseFloat(px);\n const rem1 = parseFloat(\n getComputedStyle(document.documentElement).fontSize);\n return `${px / rem1}rem`;\n}\n\nconst aspectRatio = (ratio: string = '1/1'): string => {\n return `\n height: auto;\n aspect-ratio: ${ratio};\n @supports not (aspect-ratio: ${ratio}) {\n &::before {\n float: left;\n padding-top: 100% / ${ratio};\n content: \"\";\n }\n\n &::after {\n display: block;\n content: \"\";\n clear: both;\n }\n }\n `.trim();\n}\n\nexport { bgColor, lift, pxToRem, aspectRatio };"], + "mappings": "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", + "names": ["i", "i", "i2", "a", "w", "r", "r", "c", "w", "y", "x", "z", "a", "i", "p", "q", "y2", "x2", "z2", "hr", "i", "i", "Color", "i", "p", "w", "a", "w2", "sleepSync", "ms", "end", "time", "uuid", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "value", "replace", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "root", "parent", "type", "props", "children", "siblings", "char", "prev", "next", "peek", "caret", "slice", "token", "alloc", "dealloc", "delimit", "delimiter", "whitespace", "escaping", "count", "commenter", "identifier", "compile", "parse", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "offset", "atrule", "property", "previous", "variable", "scanning", "ampersand", "reference", "comment", "declaration", "ruleset", "post", "size", "i", "j", "k", "x", "y", "z", "serialize", "callback", "output", "stringify", "element", "stylis", "css", "AdapterMixin", "Base", "args", "css", "superClass", "inheritedStyles", "superCSSStyleSheet", "rule", "processedCss", "tagName", "class_", "uuid", "index", "Adapter", "stylis", "import_color", "Color", "Color"] +} diff --git a/docs/_ux/ui/code-block.js b/docs/_ux/ui/code-block.js new file mode 100644 index 0000000..3fedc10 --- /dev/null +++ b/docs/_ux/ui/code-block.js @@ -0,0 +1,1029 @@ +var __defProp=Object.defineProperty;var __getOwnPropNames=Object.getOwnPropertyNames;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])( +(mod={exports:{}}).exports,mod),mod.exports};var require_color_name=__commonJS({"node_modules/color-name/index.js"(exports,module){ +"use strict";module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215], +aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220], +bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[ +138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[ +127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237], +cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[ +0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0], +darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[ +85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[ +233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[ +47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211], +deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105, +105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240], +forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[ +248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0, +128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[ +255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[ +240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252, +0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[ +224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[ +144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160, +122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136, +153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255, +255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0, +255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[ +186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[ +123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[ +199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228, +225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253, +245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[ +255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152], +paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213], +peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221], +powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255, +0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[ +250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238], +sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90, +205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[ +0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216, +191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245, +222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[ +154,205,50]}}});var require_is_arrayish=__commonJS({"node_modules/simple-swizzle/node_modules/is\ +-arrayish/index.js"(exports,module){module.exports=__name(function(obj){return!obj|| +typeof obj=="string"?!1:obj instanceof Array||Array.isArray(obj)||obj.length>=0&& +(obj.splice instanceof Function||Object.getOwnPropertyDescriptor(obj,obj.length- +1)&&obj.constructor.name!=="String")},"isArrayish")}});var require_simple_swizzle=__commonJS({"node_modules/simple-swizzle/index.js"(exports,module){ +"use strict";var isArrayish=require_is_arrayish(),concat=Array.prototype.concat, +slice3=Array.prototype.slice,swizzle=module.exports=__name(function(args){for(var results=[], +i2=0,len=args.length;i2=4&&hwba[3]!==1&&(a2=", "+hwba[3]),"hwb("+hwba[0]+ +", "+hwba[1]+"%, "+hwba[2]+"%"+a2+")"};cs.to.keyword=function(rgb){return reverseNames[rgb. +slice(0,3)]};function clamp(num,min,max){return Math.min(Math.max(min,num),max)} +__name(clamp,"clamp");function hexDouble(num){var str=Math.round(num).toString(16). +toUpperCase();return str.length<2?"0"+str:str}__name(hexDouble,"hexDouble")}});var require_conversions=__commonJS({"node_modules/color-convert/conversions.js"(exports,module){ +var cssKeywords=require_color_name(),reverseKeywords={};for(let key of Object.keys( +cssKeywords))reverseKeywords[cssKeywords[key]]=key;var convert={rgb:{channels:3, +labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3, +labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{ +channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["\ +hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi1\ +6"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]}, +apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}}; +module.exports=convert;for(let model of Object.keys(convert)){if(!("channels"in convert[model])) +throw new Error("missing channels property: "+model);if(!("labels"in convert[model])) +throw new Error("missing channel labels property: "+model);if(convert[model].labels. +length!==convert[model].channels)throw new Error("channel and label counts misma\ +tch: "+model);let{channels,labels}=convert[model];delete convert[model].channels, +delete convert[model].labels,Object.defineProperty(convert[model],"channels",{value:channels}), +Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){ +let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,min=Math.min(r2,g,b),max=Math.max(r2, +g,b),delta=max-min,h,s;max===min?h=0:r2===max?h=(g-b)/delta:g===max?h=2+(b-r2)/delta: +b===max&&(h=4+(r2-g)/delta),h=Math.min(h*60,360),h<0&&(h+=360);let l=(min+max)/2; +return max===min?s=0:l<=.5?s=delta/(max+min):s=delta/(2-max-min),[h,s*100,l*100]}; +convert.rgb.hsv=function(rgb){let rdif,gdif,bdif,h,s,r2=rgb[0]/255,g=rgb[1]/255, +b=rgb[2]/255,v=Math.max(r2,g,b),diff2=v-Math.min(r2,g,b),diffc=__name(function(c2){ +return(v-c2)/6/diff2+1/2},"diffc");return diff2===0?(h=0,s=0):(s=diff2/v,rdif=diffc( +r2),gdif=diffc(g),bdif=diffc(b),r2===v?h=bdif-gdif:g===v?h=1/3+rdif-bdif:b===v&& +(h=2/3+gdif-rdif),h<0?h+=1:h>1&&(h-=1)),[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){ +let r2=rgb[0],g=rgb[1],b=rgb[2],h=convert.rgb.hsl(rgb)[0],w2=1/255*Math.min(r2,Math. +min(g,b));return b=1-1/255*Math.max(r2,Math.max(g,b)),[h,w2*100,b*100]};convert. +rgb.cmyk=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,k=Math.min(1- +r2,1-g,1-b),c2=(1-r2-k)/(1-k)||0,m=(1-g-k)/(1-k)||0,y2=(1-b-k)/(1-k)||0;return[c2* +100,m*100,y2*100,k*100]};function comparativeDistance(x2,y2){return(x2[0]-y2[0])** +2+(x2[1]-y2[1])**2+(x2[2]-y2[2])**2}__name(comparativeDistance,"comparativeDista\ +nce");convert.rgb.keyword=function(rgb){let reversed=reverseKeywords[rgb];if(reversed) +return reversed;let currentClosestDistance=1/0,currentClosestKeyword;for(let keyword of Object. +keys(cssKeywords)){let value=cssKeywords[keyword],distance=comparativeDistance(rgb, +value);distance +.04045?((r2+.055)/1.055)**2.4:r2/12.92,g=g>.04045?((g+.055)/1.055)**2.4:g/12.92, +b=b>.04045?((b+.055)/1.055)**2.4:b/12.92;let x2=r2*.4124+g*.3576+b*.1805,y2=r2*.2126+ +g*.7152+b*.0722,z2=r2*.0193+g*.1192+b*.9505;return[x2*100,y2*100,z2*100]};convert. +rgb.lab=function(rgb){let xyz=convert.rgb.xyz(rgb),x2=xyz[0],y2=xyz[1],z2=xyz[2]; +x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116,y2=y2>.008856? +y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116;let l=116*y2-16, +a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.hsl.rgb=function(hsl){let h=hsl[0]/ +360,s=hsl[1]/100,l=hsl[2]/100,t2,t3,val;if(s===0)return val=l*255,[val,val,val]; +l<.5?t2=l*(1+s):t2=l+s-l*s;let t1=2*l-t2,rgb=[0,0,0];for(let i2=0;i2<3;i2++)t3=h+ +1/3*-(i2-1),t3<0&&t3++,t3>1&&t3--,6*t3<1?val=t1+(t2-t1)*6*t3:2*t3<1?val=t2:3*t3< +2?val=t1+(t2-t1)*(2/3-t3)*6:val=t1,rgb[i2]=val*255;return rgb};convert.hsl.hsv=function(hsl){ +let h=hsl[0],s=hsl[1]/100,l=hsl[2]/100,smin=s,lmin=Math.max(l,.01);l*=2,s*=l<=1? +l:2-l,smin*=lmin<=1?lmin:2-lmin;let v=(l+s)/2,sv=l===0?2*smin/(lmin+smin):2*s/(l+ +s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){let h=hsv[0]/60,s=hsv[1]/ +100,v=hsv[2]/100,hi=Math.floor(h)%6,f=h-Math.floor(h),p2=255*v*(1-s),q2=255*v*(1- +s*f),t=255*v*(1-s*(1-f));switch(v*=255,hi){case 0:return[v,t,p2];case 1:return[q2, +v,p2];case 2:return[p2,v,t];case 3:return[p2,q2,v];case 4:return[t,p2,v];case 5: +return[v,p2,q2]}};convert.hsv.hsl=function(hsv){let h=hsv[0],s=hsv[1]/100,v=hsv[2]/ +100,vmin=Math.max(v,.01),sl,l;l=(2-s)*v;let lmin=(2-s)*vmin;return sl=s*vmin,sl/= +lmin<=1?lmin:2-lmin,sl=sl||0,l/=2,[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){ +let h=hwb[0]/360,wh=hwb[1]/100,bl=hwb[2]/100,ratio=wh+bl,f;ratio>1&&(wh/=ratio,bl/= +ratio);let i2=Math.floor(6*h),v=1-bl;f=6*h-i2,i2&1&&(f=1-f);let n=wh+f*(v-wh),r2, +g,b;switch(i2){default:case 6:case 0:r2=v,g=n,b=wh;break;case 1:r2=n,g=v,b=wh;break;case 2: +r2=wh,g=v,b=n;break;case 3:r2=wh,g=n,b=v;break;case 4:r2=n,g=wh,b=v;break;case 5: +r2=v,g=wh,b=n;break}return[r2*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){ +let c2=cmyk[0]/100,m=cmyk[1]/100,y2=cmyk[2]/100,k=cmyk[3]/100,r2=1-Math.min(1,c2* +(1-k)+k),g=1-Math.min(1,m*(1-k)+k),b=1-Math.min(1,y2*(1-k)+k);return[r2*255,g*255, +b*255]};convert.xyz.rgb=function(xyz){let x2=xyz[0]/100,y2=xyz[1]/100,z2=xyz[2]/ +100,r2,g,b;return r2=x2*3.2406+y2*-1.5372+z2*-.4986,g=x2*-.9689+y2*1.8758+z2*.0415, +b=x2*.0557+y2*-.204+z2*1.057,r2=r2>.0031308?1.055*r2**(1/2.4)-.055:r2*12.92,g=g> +.0031308?1.055*g**(1/2.4)-.055:g*12.92,b=b>.0031308?1.055*b**(1/2.4)-.055:b*12.92, +r2=Math.min(Math.max(0,r2),1),g=Math.min(Math.max(0,g),1),b=Math.min(Math.max(0, +b),1),[r2*255,g*255,b*255]};convert.xyz.lab=function(xyz){let x2=xyz[0],y2=xyz[1], +z2=xyz[2];x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116, +y2=y2>.008856?y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116; +let l=116*y2-16,a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.lab.xyz=function(lab){ +let l=lab[0],a2=lab[1],b=lab[2],x2,y2,z2;y2=(l+16)/116,x2=a2/500+y2,z2=y2-b/200; +let y22=y2**3,x22=x2**3,z22=z2**3;return y2=y22>.008856?y22:(y2-16/116)/7.787,x2= +x22>.008856?x22:(x2-16/116)/7.787,z2=z22>.008856?z22:(z2-16/116)/7.787,x2*=95.047, +y2*=100,z2*=108.883,[x2,y2,z2]};convert.lab.lch=function(lab){let l=lab[0],a2=lab[1], +b=lab[2],h;h=Math.atan2(b,a2)*360/2/Math.PI,h<0&&(h+=360);let c2=Math.sqrt(a2*a2+ +b*b);return[l,c2,h]};convert.lch.lab=function(lch){let l=lch[0],c2=lch[1],hr2=lch[2]/ +360*2*Math.PI,a2=c2*Math.cos(hr2),b=c2*Math.sin(hr2);return[l,a2,b]};convert.rgb. +ansi16=function(args,saturation=null){let[r2,g,b]=args,value=saturation===null?convert. +rgb.hsv(args)[2]:saturation;if(value=Math.round(value/50),value===0)return 30;let ansi=30+ +(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r2/255));return value===2&& +(ansi+=60),ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert. +hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){let r2=args[0],g=args[1], +b=args[2];return r2===g&&g===b?r2<8?16:r2>248?231:Math.round((r2-8)/247*24)+232: +16+36*Math.round(r2/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5)};convert.ansi16. +rgb=function(args){let color2=args%10;if(color2===0||color2===7)return args>50&& +(color2+=3.5),color2=color2/10.5*255,[color2,color2,color2];let mult=(~~(args>50)+ +1)*.5,r2=(color2&1)*mult*255,g=(color2>>1&1)*mult*255,b=(color2>>2&1)*mult*255;return[ +r2,g,b]};convert.ansi256.rgb=function(args){if(args>=232){let c2=(args-232)*10+8; +return[c2,c2,c2]}args-=16;let rem,r2=Math.floor(args/36)/5*255,g=Math.floor((rem= +args%36)/6)/5*255,b=rem%6/5*255;return[r2,g,b]};convert.rgb.hex=function(args){let string=(((Math. +round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255)). +toString(16).toUpperCase();return"000000".substring(string.length)+string};convert. +hex.rgb=function(args){let match2=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); +if(!match2)return[0,0,0];let colorString=match2[0];match2[0].length===3&&(colorString= +colorString.split("").map(char2=>char2+char2).join(""));let integer=parseInt(colorString, +16),r2=integer>>16&255,g=integer>>8&255,b=integer&255;return[r2,g,b]};convert.rgb. +hcg=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,max=Math.max(Math. +max(r2,g),b),min=Math.min(Math.min(r2,g),b),chroma=max-min,grayscale,hue;return chroma< +1?grayscale=min/(1-chroma):grayscale=0,chroma<=0?hue=0:max===r2?hue=(g-b)/chroma% +6:max===g?hue=2+(b-r2)/chroma:hue=4+(r2-g)/chroma,hue/=6,hue%=1,[hue*360,chroma* +100,grayscale*100]};convert.hsl.hcg=function(hsl){let s=hsl[1]/100,l=hsl[2]/100, +c2=l<.5?2*s*l:2*s*(1-l),f=0;return c2<1&&(f=(l-.5*c2)/(1-c2)),[hsl[0],c2*100,f*100]}; +convert.hsv.hcg=function(hsv){let s=hsv[1]/100,v=hsv[2]/100,c2=s*v,f=0;return c2< +1&&(f=(v-c2)/(1-c2)),[hsv[0],c2*100,f*100]};convert.hcg.rgb=function(hcg){let h=hcg[0]/ +360,c2=hcg[1]/100,g=hcg[2]/100;if(c2===0)return[g*255,g*255,g*255];let pure=[0,0, +0],hi=h%1*6,v=hi%1,w2=1-v,mg=0;switch(Math.floor(hi)){case 0:pure[0]=1,pure[1]=v, +pure[2]=0;break;case 1:pure[0]=w2,pure[1]=1,pure[2]=0;break;case 2:pure[0]=0,pure[1]= +1,pure[2]=v;break;case 3:pure[0]=0,pure[1]=w2,pure[2]=1;break;case 4:pure[0]=v,pure[1]= +0,pure[2]=1;break;default:pure[0]=1,pure[1]=0,pure[2]=w2}return mg=(1-c2)*g,[(c2* +pure[0]+mg)*255,(c2*pure[1]+mg)*255,(c2*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){ +let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2),f=0;return v>0&&(f=c2/v),[hcg[0],f* +100,v*100]};convert.hcg.hsl=function(hcg){let c2=hcg[1]/100,l=hcg[2]/100*(1-c2)+ +.5*c2,s=0;return l>0&&l<.5?s=c2/(2*l):l>=.5&&l<1&&(s=c2/(2*(1-l))),[hcg[0],s*100, +l*100]};convert.hcg.hwb=function(hcg){let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2); +return[hcg[0],(v-c2)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){let w2=hwb[1]/ +100,v=1-hwb[2]/100,c2=v-w2,g=0;return c2<1&&(g=(v-c2)/(1-c2)),[hwb[0],c2*100,g*100]}; +convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/ +65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535, +rgb[2]/255*65535]};convert.gray.rgb=function(args){return[args[0]/100*255,args[0]/ +100*255,args[0]/100*255]};convert.gray.hsl=function(args){return[0,0,args[0]]};convert. +gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){return[0,100,gray[0]]}; +convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert.gray.lab=function(gray){ +return[gray[0],0,0]};convert.gray.hex=function(gray){let val=Math.round(gray[0]/ +100*255)&255,string=((val<<16)+(val<<8)+val).toString(16).toUpperCase();return"0\ +00000".substring(string.length)+string};convert.rgb.gray=function(rgb){return[(rgb[0]+ +rgb[1]+rgb[2])/3/255*100]}}});var require_route=__commonJS({"node_modules/color-convert/route.js"(exports,module){ +var conversions=require_conversions();function buildGraph(){let graph={},models=Object. +keys(conversions);for(let len=models.length,i2=0;i21&&(args=arg0),fn(args))},"wrappedFn");return"\ +conversion"in fn&&(wrappedFn.conversion=fn.conversion),wrappedFn}__name(wrapRaw, +"wrapRaw");function wrapRounded(fn){let wrappedFn=__name(function(...args){let arg0=args[0]; +if(arg0==null)return arg0;arg0.length>1&&(args=arg0);let result=fn(args);if(typeof result== +"object")for(let len=result.length,i2=0;i2{convert[fromModel]= +{},Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel]. +channels}),Object.defineProperty(convert[fromModel],"labels",{value:conversions[fromModel]. +labels});let routes=route(fromModel);Object.keys(routes).forEach(toModel=>{let fn=routes[toModel]; +convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrapRaw( +fn)})});module.exports=convert}});var require_color=__commonJS({"node_modules/color/index.js"(exports,module){var colorString=require_color_string(), +convert=require_color_convert(),skippedModels=["keyword","gray","hex"],hashedModelKeys={}; +for(let model of Object.keys(convert))hashedModelKeys[[...convert[model].labels]. +sort().join("")]=model;var limiters={};function Color8(object,model){if(!(this instanceof +Color8))return new Color8(object,model);if(model&&model in skippedModels&&(model= +null),model&&!(model in convert))throw new Error("Unknown model: "+model);let i2, +channels;if(object==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(object instanceof +Color8)this.model=object.model,this.color=[...object.color],this.valpha=object.valpha;else if(typeof object== +"string"){let result=colorString.get(object);if(result===null)throw new Error("U\ +nable to parse color from string: "+object);this.model=result.model,channels=convert[this. +model].channels,this.color=result.value.slice(0,channels),this.valpha=typeof result. +value[channels]=="number"?result.value[channels]:1}else if(object.length>0){this. +model=model||"rgb",channels=convert[this.model].channels;let newArray=Array.prototype. +slice.call(object,0,channels);this.color=zeroArray(newArray,channels),this.valpha= +typeof object[channels]=="number"?object[channels]:1}else if(typeof object=="num\ +ber")this.model="rgb",this.color=[object>>16&255,object>>8&255,object&255],this. +valpha=1;else{this.valpha=1;let keys=Object.keys(object);"alpha"in object&&(keys. +splice(keys.indexOf("alpha"),1),this.valpha=typeof object.alpha=="number"?object. +alpha:0);let hashedKeys=keys.sort().join("");if(!(hashedKeys in hashedModelKeys)) +throw new Error("Unable to parse color from object: "+JSON.stringify(object));this. +model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color2=[];for(i2= +0;i2(value%360+360)%360),saturationl:getset("hsl",1,maxfn(100)), +lightness:getset("hsl",2,maxfn(100)),saturationv:getset("hsv",1,maxfn(100)),value:getset( +"hsv",2,maxfn(100)),chroma:getset("hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn( +100)),white:getset("hwb",1,maxfn(100)),wblack:getset("hwb",2,maxfn(100)),cyan:getset( +"cmyk",0,maxfn(100)),magenta:getset("cmyk",1,maxfn(100)),yellow:getset("cmyk",2, +maxfn(100)),black:getset("cmyk",3,maxfn(100)),x:getset("xyz",0,maxfn(95.047)),y:getset( +"xyz",1,maxfn(100)),z:getset("xyz",2,maxfn(108.833)),l:getset("lab",0,maxfn(100)), +a:getset("lab",1),b:getset("lab",2),keyword(value){return value!==void 0?new Color8( +value):convert[this.model].keyword(this.color)},hex(value){return value!==void 0? +new Color8(value):colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!== +void 0)return new Color8(value);let rgbArray=this.rgb().round().color,alphaHex=Math. +round(this.valpha*255).toString(16).toUpperCase();return alphaHex.length===1&&(alphaHex= +"0"+alphaHex),colorString.to.hex(rgbArray)+alphaHex},rgbNumber(){let rgb=this.rgb(). +color;return(rgb[0]&255)<<16|(rgb[1]&255)<<8|rgb[2]&255},luminosity(){let rgb=this. +rgb().color,lum=[];for(let[i2,element]of rgb.entries()){let chan=element/255;lum[i2]= +chan<=.04045?chan/12.92:((chan+.055)/1.055)**2.4}return .2126*lum[0]+.7152*lum[1]+ +.0722*lum[2]},contrast(color2){let lum1=this.luminosity(),lum2=color2.luminosity(); +return lum1>lum2?(lum1+.05)/(lum2+.05):(lum2+.05)/(lum1+.05)},level(color2){let contrastRatio=this. +contrast(color2);return contrastRatio>=7?"AAA":contrastRatio>=4.5?"AA":""},isDark(){ +let rgb=this.rgb().color;return(rgb[0]*2126+rgb[1]*7152+rgb[2]*722)/1e4<128},isLight(){ +return!this.isDark()},negate(){let rgb=this.rgb();for(let i2=0;i2<3;i2++)rgb.color[i2]= +255-rgb.color[i2];return rgb},lighten(ratio){let hsl=this.hsl();return hsl.color[2]+= +hsl.color[2]*ratio,hsl},darken(ratio){let hsl=this.hsl();return hsl.color[2]-=hsl. +color[2]*ratio,hsl},saturate(ratio){let hsl=this.hsl();return hsl.color[1]+=hsl. +color[1]*ratio,hsl},desaturate(ratio){let hsl=this.hsl();return hsl.color[1]-=hsl. +color[1]*ratio,hsl},whiten(ratio){let hwb=this.hwb();return hwb.color[1]+=hwb.color[1]* +ratio,hwb},blacken(ratio){let hwb=this.hwb();return hwb.color[2]+=hwb.color[2]*ratio, +hwb},grayscale(){let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11; +return Color8.rgb(value,value,value)},fade(ratio){return this.alpha(this.valpha- +this.valpha*ratio)},opaquer(ratio){return this.alpha(this.valpha+this.valpha*ratio)}, +rotate(degrees){let hsl=this.hsl(),hue=hsl.color[0];return hue=(hue+degrees)%360, +hue=hue<0?360+hue:hue,hsl.color[0]=hue,hsl},mix(mixinColor,weight){if(!mixinColor|| +!mixinColor.rgb)throw new Error('Argument to "mix" was not a Color instance, but\ + rather an instance of '+typeof mixinColor);let color1=mixinColor.rgb(),color2=this. +rgb(),p2=weight===void 0?.5:weight,w2=2*p2-1,a2=color1.alpha()-color2.alpha(),w1=((w2* +a2===-1?w2:(w2+a2)/(1+w2*a2))+1)/2,w22=1-w1;return Color8.rgb(w1*color1.red()+w22* +color2.red(),w1*color1.green()+w22*color2.green(),w1*color1.blue()+w22*color2.blue(), +color1.alpha()*p2+color2.alpha()*(1-p2))}};for(let model of Object.keys(convert)){ +if(skippedModels.includes(model))continue;let{channels}=convert[model];Color8.prototype[model]= +function(...args){return this.model===model?new Color8(this):args.length>0?new Color8( +args,model):new Color8([...assertArray(convert[this.model][model].raw(this.color)), +this.valpha],model)},Color8[model]=function(...args){let color2=args[0];return typeof color2== +"number"&&(color2=zeroArray(args,channels)),new Color8(color2,model)}}function roundTo(number,places){ +return Number(number.toFixed(places))}__name(roundTo,"roundTo");function roundToPlace(places){ +return function(number){return roundTo(number,places)}}__name(roundToPlace,"roun\ +dToPlace");function getset(model,channel,modifier){model=Array.isArray(model)?model: +[model];for(let m of model)(limiters[m]||(limiters[m]=[]))[channel]=modifier;return model= +model[0],function(value){let result;return value!==void 0?(modifier&&(value=modifier( +value)),result=this[model](),result.color[channel]=value,result):(result=this[model](). +color[channel],modifier&&(result=modifier(result)),result)}}__name(getset,"getse\ +t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}__name( +maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} +__name(assertArray,"assertArray");function zeroArray(array,length2){for(let i2=0;i2< +length2;i2++)typeof array[i2]!="number"&&(array[i2]=0);return array}__name(zeroArray, +"zeroArray");module.exports=Color8}});function i(t){let n=new Date().getTime()+t,e=new Date().getTime();for(;e0?O(I,--p):0,L--,c===10&&(L=1,j--),c}__name(nr,"nr");function x(){return c= +p2||Z(c)>3?"":" "}__name(or,"or");function ir(r2,e){for(;--e&& +x()&&!(c<48||c>102||c>57&&c<65||c>70&&c<97););return W(r2,F()+(e<6&&w()==32&&x()== +32))}__name(ir,"ir");function q(r2){for(;x();)switch(c){case r2:return p;case 34:case 39: +r2!==34&&r2!==39&&q(c);break;case 40:r2===41&&q(r2);break;case 92:x();break}return p} +__name(q,"q");function sr(r2,e){for(;x()&&r2+c!==47+10&&!(r2+c===42+42&&w()===47);) +;return"/*"+W(e,p-1)+"*"+z(r2===47?r2:x())}__name(sr,"sr");function fr(r2){for(;!Z( +w());)x();return W(r2,p)}__name(fr,"fr");function xr(r2){return cr(G("",null,null, +null,[""],r2=ar(r2),0,[0],r2))}__name(xr,"xr");function G(r2,e,a2,n,i2,l,M,v,b){ +for(var C=0,E=0,s=M,S=0,k=0,T=0,f=1,U=1,m=1,o=0,d2="",A=i2,g=l,h=n,t=d2;U;)switch(T= +o,o=x()){case 40:if(T!=108&&O(t,s-1)==58){y(t+=P(B(o),"&","&\f"),"&\f")!=-1&&(m= +-1);break}case 34:case 39:case 91:t+=B(o);break;case 9:case 10:case 13:case 32:t+= +or(T);break;case 92:t+=ir(F()-1,7);continue;case 47:switch(w()){case 42:case 47: +N(hr(sr(x(),F()),e,a2,b),b);break;default:t+="/"}break;case 123*f:v[C++]=u(t)*m;case 125* +f:case 59:case 0:switch(o){case 0:case 125:U=0;case 59+E:m==-1&&(t=P(t,/\f/g,"")), +k>0&&u(t)-s&&N(k>32?pr(t+";",n,a2,s-1,b):pr(P(t," ","")+";",n,a2,s-2,b),b);break;case 59: +t+=";";default:if(N(h=ur(t,e,a2,C,E,i2,v,d2,A=[],g=[],s,l),l),o===123)if(E===0)G( +t,e,h,h,A,l,s,v,g);else switch(S===99&&O(t,3)===110?100:S){case 100:case 108:case 109:case 115: +G(r2,h,h,n&&N(ur(r2,h,h,0,0,i2,v,d2,i2,A=[],s,g),g),i2,g,s,v,n?A:g);break;default: +G(t,h,h,h,[""],g,0,v,g)}}C=E=k=0,f=m=1,d2=t="",s=M;break;case 58:s=1+u(t),k=T;default: +if(f<1){if(o==123)--f;else if(o==125&&f++==0&&nr()==125)continue}switch(t+=z(o), +o*f){case 38:m=E>0?1:(t+="\f",-1);break;case 44:v[C++]=(u(t)-1)*m,m=1;break;case 64: +w()===45&&(t+=B(x())),S=w(),E=s=u(d2=t+=fr(F())),o++;break;case 45:T===45&&u(t)== +2&&(f=0)}}return l}__name(G,"G");function ur(r2,e,a2,n,i2,l,M,v,b,C,E,s){for(var S=i2- +1,k=i2===0?l:[""],T=rr(k),f=0,U=0,m=0;f0?k[o]+" "+d2:P(d2,/&\f/g,k[o])))&&(b[m++]=A);return V(r2,e, +a2,i2===0?Y:v,b,C,E,s)}__name(ur,"ur");function hr(r2,e,a2,n){return V(r2,e,a2,D, +z(tr()),R(r2,2,-2),0,n)}__name(hr,"hr");function pr(r2,e,a2,n,i2){return V(r2,e, +a2,_,R(r2,0,n),R(r2,n+1,-1),n,i2)}__name(pr,"pr");function H(r2,e){for(var a2="", +n=0;n0? +charat(characters,--position):0,column--,character===10&&(column=1,line--),character} +__name(prev,"prev");function next(){return character=position2||token(character)>3?"":" "}__name(whitespace,"whitespace");function escaping(index,count){for(;--count&&next()&&!(character<48||character>102|| +character>57&&character<65||character>70&&character<97););return slice(index,caret()+ +(count<6&&peek()==32&&next()==32))}__name(escaping,"escaping");function delimiter(type){ +for(;next();)switch(character){case type:return position;case 34:case 39:type!== +34&&type!==39&&delimiter(character);break;case 40:type===41&&delimiter(type);break;case 92: +next();break}return position}__name(delimiter,"delimiter");function commenter(type,index){ +for(;next()&&type+character!==47+10;)if(type+character===42+42&&peek()===47)break; +return"/*"+slice(index,position-1)+"*"+from(type===47?type:next())}__name(commenter, +"commenter");function identifier(index){for(;!token(peek());)next();return slice( +index,position)}__name(identifier,"identifier");function compile(value){return dealloc(parse("",null,null,null,[""],value=alloc( +value),0,[0],value))}__name(compile,"compile");function parse(value,root,parent,rule,rules,rulesets,pseudo,points,declarations){ +for(var index=0,offset=0,length2=pseudo,atrule=0,property=0,previous=0,variable=1, +scanning=1,ampersand=1,character2=0,type="",props=rules,children=rulesets,reference=rule, +characters2=type;scanning;)switch(previous=character2,character2=next()){case 40: +if(previous!=108&&charat(characters2,length2-1)==58){indexof(characters2+=replace( +delimit(character2),"&","&\f"),"&\f")!=-1&&(ampersand=-1);break}case 34:case 39:case 91: +characters2+=delimit(character2);break;case 9:case 10:case 13:case 32:characters2+= +whitespace(previous);break;case 92:characters2+=escaping(caret()-1,7);continue;case 47: +switch(peek()){case 42:case 47:append(comment(commenter(next(),caret()),root,parent), +declarations);break;default:characters2+="/"}break;case 123*variable:points[index++]= +strlen(characters2)*ampersand;case 125*variable:case 59:case 0:switch(character2){case 0:case 125: +scanning=0;case 59+offset:ampersand==-1&&(characters2=replace(characters2,/\f/g, +"")),property>0&&strlen(characters2)-length2&&append(property>32?declaration(characters2+ +";",rule,parent,length2-1):declaration(replace(characters2," ","")+";",rule,parent, +length2-2),declarations);break;case 59:characters2+=";";default:if(append(reference= +ruleset(characters2,root,parent,index,offset,rules,points,type,props=[],children= +[],length2),rulesets),character2===123)if(offset===0)parse(characters2,root,reference, +reference,props,rulesets,length2,points,children);else switch(atrule===99&&charat( +characters2,3)===110?100:atrule){case 100:case 108:case 109:case 115:parse(value, +reference,reference,rule&&append(ruleset(value,reference,reference,0,0,rules,points, +type,rules,props=[],length2),children),rules,children,length2,points,rule?props: +children);break;default:parse(characters2,reference,reference,reference,[""],children, +0,points,children)}}index=offset=property=0,variable=ampersand=1,type=characters2= +"",length2=pseudo;break;case 58:length2=1+strlen(characters2),property=previous;default: +if(variable<1){if(character2==123)--variable;else if(character2==125&&variable++== +0&&prev()==125)continue}switch(characters2+=from(character2),character2*variable){case 38: +ampersand=offset>0?1:(characters2+="\f",-1);break;case 44:points[index++]=(strlen( +characters2)-1)*ampersand,ampersand=1;break;case 64:peek()===45&&(characters2+=delimit( +next())),atrule=peek(),offset=length2=strlen(type=characters2+=identifier(caret())), +character2++;break;case 45:previous===45&&strlen(characters2)==2&&(variable=0)}} +return rulesets}__name(parse,"parse");function ruleset(value,root,parent,index,offset,rules,points,type,props,children,length2){ +for(var post=offset-1,rule=offset===0?rules:[""],size=sizeof(rule),i2=0,j2=0,k=0;i2< +index;++i2)for(var x2=0,y2=substr(value,post+1,post=abs(j2=points[i2])),z2=value;x2< +size;++x2)(z2=trim(j2>0?rule[x2]+" "+y2:replace(y2,/&\f/g,rule[x2])))&&(props[k++]= +z2);return node(value,root,parent,offset===0?RULESET:type,props,children,length2)} +__name(ruleset,"ruleset");function comment(value,root,parent){return node(value, +root,parent,COMMENT,from(char()),substr(value,2,-2),0)}__name(comment,"comment"); +function declaration(value,root,parent,length2){return node(value,root,parent,DECLARATION, +substr(value,0,length2),substr(value,length2+1,-1),length2)}__name(declaration,"\ +declaration");function serialize(children,callback){for(var output="",length2=sizeof(children), +i2=0;i2-1},"isIgnoringComment"),createUnsafeSelectorsAlarm=__name( +function(cache4){return function(element,index,children){if(!(element.type!=="ru\ +le"||cache4.compat)){var unsafePseudoClasses=element.value.match(/(:first|:nth|:nth-last)-child/g); +if(unsafePseudoClasses){for(var isNested=!!element.parent,commentContainer=isNested? +element.parent.children:children,i2=commentContainer.length-1;i2>=0;i2--){var node3=commentContainer[i2]; +if(node3.line=0;i2--)if(!isImportRule(children[i2]))return!0;return!1},"isPrependedWithR\ +egularRules"),nullifyElement=__name(function(element){element.type="",element.value= +"",element.return="",element.children="",element.props=""},"nullifyElement"),incorrectImportAlarm=__name( +function(element,index,children){isImportRule(element)&&(element.parent?(console. +error("`@import` rules can't be nested inside other rules. Please move it to the\ + top level and put it before regular rules. Keep in mind that they can only be u\ +sed within global styles."),nullifyElement(element)):isPrependedWithRegularRules( +index,children)&&(console.error("`@import` rules can't be after other rules. Ple\ +ase put your `@import` rules before your other rules."),nullifyElement(element)))}, +"incorrectImportAlarm");function prefix(value,length2){switch(hash(value,length2)){case 5103: +return WEBKIT+"print-"+value+value;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829: +return WEBKIT+value+value;case 5349:case 4246:case 4810:case 6968:case 2756:return WEBKIT+ +value+MOZ+value+MS+value+value;case 6828:case 4268:return WEBKIT+value+MS+value+ +value;case 6165:return WEBKIT+value+MS+"flex-"+value+value;case 5187:return WEBKIT+ +value+replace(value,/(\w+).+(:[^]+)/,WEBKIT+"box-$1$2"+MS+"flex-$1$2")+value;case 5443: +return WEBKIT+value+MS+"flex-item-"+replace(value,/flex-|-self/,"")+value;case 4675: +return WEBKIT+value+MS+"flex-line-pack"+replace(value,/align-content|flex-|-self/, +"")+value;case 5548:return WEBKIT+value+MS+replace(value,"shrink","negative")+value;case 5292: +return WEBKIT+value+MS+replace(value,"basis","preferred-size")+value;case 6060:return WEBKIT+ +"box-"+replace(value,"-grow","")+WEBKIT+value+MS+replace(value,"grow","positive")+ +value;case 4554:return WEBKIT+replace(value,/([^-])(transform)/g,"$1"+WEBKIT+"$2")+ +value;case 6187:return replace(replace(replace(value,/(zoom-|grab)/,WEBKIT+"$1"), +/(image-set)/,WEBKIT+"$1"),value,"")+value;case 5495:case 3959:return replace(value, +/(image-set\([^]*)/,WEBKIT+"$1$`$1");case 4968:return replace(replace(value,/(.+:)(flex-)?(.*)/, +WEBKIT+"box-pack:$3"+MS+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+WEBKIT+value+value;case 4095:case 3583:case 4068:case 2532: +return replace(value,/(.+)-inline(.+)/,WEBKIT+"$1$2")+value;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765: +if(strlen(value)-1-length2>6)switch(charat(value,length2+1)){case 109:if(charat( +value,length2+4)!==45)break;case 102:return replace(value,/(.+:)(.+)-([^]+)/,"$1"+ +WEBKIT+"$2-$3$1"+MOZ+(charat(value,length2+3)==108?"$3":"$2-$3"))+value;case 115: +return~indexof(value,"stretch")?prefix(replace(value,"stretch","fill-available"), +length2)+value:value}break;case 4949:if(charat(value,length2+1)!==115)break;case 6444: +switch(charat(value,strlen(value)-3-(~indexof(value,"!important")&&10))){case 107: +return replace(value,":",":"+WEBKIT)+value;case 101:return replace(value,/(.+:)([^;!]+)(;|!.+)?/, +"$1"+WEBKIT+(charat(value,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$\ +2box$3")+value}break;case 5936:switch(charat(value,length2+11)){case 114:return WEBKIT+ +value+MS+replace(value,/[svh]\w+-[tblr]{2}/,"tb")+value;case 108:return WEBKIT+value+ +MS+replace(value,/[svh]\w+-[tblr]{2}/,"tb-rl")+value;case 45:return WEBKIT+value+ +MS+replace(value,/[svh]\w+-[tblr]{2}/,"lr")+value}return WEBKIT+value+MS+value+value} +return value}__name(prefix,"prefix");var prefixer=__name(function(element,index,children,callback){ +if(element.length>-1&&!element.return)switch(element.type){case DECLARATION:element. +return=prefix(element.value,element.length);break;case KEYFRAMES:return serialize( +[copy(element,{value:replace(element.value,"@","@"+WEBKIT)})],callback);case RULESET: +if(element.length)return combine(element.props,function(value){switch(match(value, +/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy( +element,{props:[replace(value,/:(read-\w+)/,":"+MOZ+"$1")]})],callback);case"::p\ +laceholder":return serialize([copy(element,{props:[replace(value,/:(plac\w+)/,":"+ +WEBKIT+"input-$1")]}),copy(element,{props:[replace(value,/:(plac\w+)/,":"+MOZ+"$\ +1")]}),copy(element,{props:[replace(value,/:(plac\w+)/,MS+"input-$1")]})],callback)} +return""})}},"prefixer"),defaultStylisPlugins=[prefixer],createCache=__name(function(options){ +var key=options.key;if(!key)throw new Error(`You have to configure \`key\` for you\ +r cache. Please make sure it's unique (and not equal to 'css') as it's used for \ +linking styles to your cache. +If multiple caches share the same key they might "fight" for each other's style \ +elements.`);if(key==="css"){var ssrStyles=document.querySelectorAll("style[data-\ +emotion]:not([data-s])");Array.prototype.forEach.call(ssrStyles,function(node3){ +var dataEmotionAttribute=node3.getAttribute("data-emotion");dataEmotionAttribute. +indexOf(" ")!==-1&&(document.head.appendChild(node3),node3.setAttribute("data-s", +""))})}var stylisPlugins=options.stylisPlugins||defaultStylisPlugins;if(/[^a-z-]/. +test(key))throw new Error('Emotion key must only contain lower case alphabetical\ + characters and - but "'+key+'" was passed');var inserted={},container,nodesToHydrate=[]; +container=options.container||document.head,Array.prototype.forEach.call(document. +querySelectorAll('style[data-emotion^="'+key+' "]'),function(node3){for(var attrib=node3. +getAttribute("data-emotion").split(" "),i2=1;i2=4;++i2,len-=4)k=str. +charCodeAt(i2)&255|(str.charCodeAt(++i2)&255)<<8|(str.charCodeAt(++i2)&255)<<16| +(str.charCodeAt(++i2)&255)<<24,k=(k&65535)*1540483477+((k>>>16)*59797<<16),k^=k>>> +24,h=(k&65535)*1540483477+((k>>>16)*59797<<16)^(h&65535)*1540483477+((h>>>16)*59797<< +16);switch(len){case 3:h^=(str.charCodeAt(i2+2)&255)<<16;case 2:h^=(str.charCodeAt( +i2+1)&255)<<8;case 1:h^=str.charCodeAt(i2)&255,h=(h&65535)*1540483477+((h>>>16)* +59797<<16)}return h^=h>>>13,h=(h&65535)*1540483477+((h>>>16)*59797<<16),((h^h>>> +15)>>>0).toString(36)}__name(murmur2,"murmur2");var unitlessKeys={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1, +borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1, +flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1, +gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1, +gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1, +fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1, +zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1, +strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var ILLEGAL_ESCAPE_SEQUENCE_ERROR=`You have illegal escape sequence in your temp\ +late literal, most likely inside content's property value. +Because you write your CSS inside a JavaScript string you actually have to do do\ +uble escaping, so for example "content: '\\00d7';" should become "content: '\\\\00d\ +7';". +You can read more about this here: +https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_liter\ +als#ES2018_revision_of_illegal_escape_sequences`,UNDEFINED_AS_OBJECT_KEY_ERROR="\ +You have passed in falsy value as style object's key (can happen when in example\ + you pass unexported component as computed key).",hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g, +isCustomProperty=__name(function(property){return property.charCodeAt(1)===45},"\ +isCustomProperty"),isProcessableValue=__name(function(value){return value!=null&& +typeof value!="boolean"},"isProcessableValue"),processStyleName=memoize(function(styleName){ +return isCustomProperty(styleName)?styleName:styleName.replace(hyphenateRegex,"-\ +$&").toLowerCase()}),processStyleValue=__name(function(key,value){switch(key){case"\ +animation":case"animationName":if(typeof value=="string")return value.replace(animationRegex, +function(match2,p1,p2){return cursor={name:p1,styles:p2,next:cursor},p1})}return unitlessKeys[key]!== +1&&!isCustomProperty(key)&&typeof value=="number"&&value!==0?value+"px":value},"\ +processStyleValue");contentValuePattern=/(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/, +contentValues=["normal","none","initial","inherit","unset"],oldProcessStyleValue= +processStyleValue,msPattern=/^-ms-/,hyphenPattern=/-(.)/g,hyphenatedCache={},processStyleValue= +__name(function(key,value){if(key==="content"&&(typeof value!="string"||contentValues. +indexOf(value)===-1&&!contentValuePattern.test(value)&&(value.charAt(0)!==value. +charAt(value.length-1)||value.charAt(0)!=='"'&&value.charAt(0)!=="'")))throw new Error( +"You seem to be using a value for 'content' without quotes, try replacing it wit\ +h `content: '\""+value+"\"'`");var processed=oldProcessStyleValue(key,value);return processed!== +""&&!isCustomProperty(key)&&key.indexOf("-")!==-1&&hyphenatedCache[key]===void 0&& +(hyphenatedCache[key]=!0,console.error("Using kebab-case for css properties in o\ +bjects is not supported. Did you mean "+key.replace(msPattern,"ms-").replace(hyphenPattern, +function(str,_char){return _char.toUpperCase()})+"?")),processed},"processStyleV\ +alue");var contentValuePattern,contentValues,oldProcessStyleValue,msPattern,hyphenPattern, +hyphenatedCache,noComponentSelectorMessage="Component selectors can only be used\ + in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another E\ +motion-aware compiler transform.";function handleInterpolation(mergedProps,registered,interpolation){ +if(interpolation==null)return"";if(interpolation.__emotion_styles!==void 0){if(interpolation. +toString()==="NO_COMPONENT_SELECTOR")throw new Error(noComponentSelectorMessage); +return interpolation}switch(typeof interpolation){case"boolean":return"";case"ob\ +ject":{if(interpolation.anim===1)return cursor={name:interpolation.name,styles:interpolation. +styles,next:cursor},interpolation.name;if(interpolation.styles!==void 0){var next2=interpolation. +next;if(next2!==void 0)for(;next2!==void 0;)cursor={name:next2.name,styles:next2. +styles,next:cursor},next2=next2.next;var styles=interpolation.styles+";";return interpolation. +map!==void 0&&(styles+=interpolation.map),styles}return createStringFromObject(mergedProps, +registered,interpolation)}case"function":{if(mergedProps!==void 0){var previousCursor=cursor, +result=interpolation(mergedProps);return cursor=previousCursor,handleInterpolation( +mergedProps,registered,result)}else console.error("Functions that are interpolat\ +ed in css calls will be stringified.\nIf you want to have a css call based on pro\ +ps, create a function that returns a css call like this\nlet dynamicStyle = (prop\ +s) => css`color: ${props.color}`\nIt can be called directly with props or interpo\ +lated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyl\ +e}`");break}case"string":var matched=[],replaced=interpolation.replace(animationRegex, +function(match2,p1,p2){var fakeVarName="animation"+matched.length;return matched. +push("const "+fakeVarName+" = keyframes`"+p2.replace(/^@keyframes animation-\w+/, +"")+"`"),"${"+fakeVarName+"}"});matched.length&&console.error("`keyframes` outpu\ +t got interpolated into plain string, please wrap it with `css`.\n\nInstead of doi\ +ng this:\n\n"+[].concat(matched,["`"+replaced+"`"]).join(` +`)+` + +You should wrap it with \`css\` like this: + +`+("css`"+replaced+"`"));break}if(registered==null)return interpolation;var cached=registered[interpolation]; +return cached!==void 0?cached:interpolation}__name(handleInterpolation,"handleIn\ +terpolation");function createStringFromObject(mergedProps,registered,obj){var string=""; +if(Array.isArray(obj))for(var i2=0;i2{let fontColor=Color(color2). +isDark()?"white":"black";return` + background-color: ${color2}; + color: ${fontColor}; + `.trim()},"bgColor");var esm_default=__name(_2=>({get:key=>_2.get(key),set:(key,value)=>(_2.set(key,value), +value)}),"default");var attr=/([^\s\\>"'=]+)\s*=\s*(['"]?)$/,empty=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i, +node2=/<[a-z][^>]+$/i,notNode=/>[^<>]*$/,selfClosing=/<([a-z]+[a-z0-9:._-]*)([^>]*?)(\/>)/ig, +trimEnd=/\s+$/,isNode=__name((template,i2)=>0empty. +test(name)?original:`<${name}${extra.replace(trimEnd,"")}>`,"regular"), +esm_default2=__name((template,prefix3,svg2)=>{let text2=[],{length:length2}=template; +for(let i2=1;i2`${prefix3}${i2-1}=${$2||'"'}${$1}${$2? +"":'"'}`):`${chunk}`)}text2.push(template[length2-1]);let output=text2. +join("").trim();return svg2?output:output.replace(selfClosing,regular)},"default");var{isArray}=Array,{indexOf,slice:slice2}=[];var ELEMENT_NODE=1,nodeType=111,remove=__name(({firstChild,lastChild})=>{let range=document. +createRange();return range.setStartAfter(firstChild),range.setEndAfter(lastChild), +range.deleteContents(),firstChild},"remove"),diffable=__name((node3,operation)=>node3. +nodeType===nodeType?1/operation<0?operation?remove(node3):node3.lastChild:operation? +node3.valueOf():node3.firstChild:node3,"diffable"),persistent=__name(fragment=>{ +let{childNodes}=fragment,{length:length2}=childNodes;if(length2<2)return length2? +childNodes[0]:fragment;let nodes=slice2.call(childNodes,0),firstChild=nodes[0],lastChild=nodes[length2- +1];return{ELEMENT_NODE,nodeType,firstChild,lastChild,valueOf(){if(childNodes.length!== +length2){let i2=0;for(;i2{let bLength=b.length,aEnd=a2. +length,bEnd=bLength,aStart=0,bStart=0,map=null;for(;aStartindex-bStart){let node3=get(a2[aStart],0);for(;bStart< +index;)parentNode.insertBefore(get(b[bStart++],1),node3)}else parentNode.replaceChild( +get(b[bStart++],1),get(a2[aStart++],-1))}else aStart++}else parentNode.removeChild( +get(a2[aStart++],-1))}return b},"default");var useForeign=!1,Foreign=class{static{__name(this,"Foreign")}constructor(handler,value){ +useForeign=!0,this._=(...args)=>handler(...args,value)}};var aria=__name(node3=>values=>{for(let key in values){let name=key==="role"?key: +`aria-${key}`,value=values[key];value==null?node3.removeAttribute(name):node3.setAttribute( +name,value)}},"aria"),attribute=__name((node3,name)=>{let oldValue,orphan=!0,attributeNode=document. +createAttributeNS(null,name);return newValue=>{if(oldValue!==newValue)if(oldValue= +newValue,oldValue==null)orphan||(node3.removeAttributeNode(attributeNode),orphan= +!0);else{let value=useForeign&&newValue instanceof Foreign?newValue._(node3,name): +newValue;value==null?(orphan||node3.removeAttributeNode(attributeNode),orphan=!0): +(attributeNode.value=value,orphan&&(node3.setAttributeNodeNS(attributeNode),orphan= +!1))}}},"attribute"),boolean=__name((node3,key,oldValue)=>newValue=>{oldValue!== +!!newValue&&((oldValue=!!newValue)?node3.setAttribute(key,""):node3.removeAttribute( +key))},"boolean"),data=__name(({dataset})=>values=>{for(let key in values){let value=values[key]; +value==null?delete dataset[key]:dataset[key]=value}},"data"),event=__name((node3,name)=>{ +let oldValue,lower,type=name.slice(2);return!(name in node3)&&(lower=name.toLowerCase())in +node3&&(type=lower.slice(2)),newValue=>{let info=isArray(newValue)?newValue:[newValue, +!1];oldValue!==info[0]&&(oldValue&&node3.removeEventListener(type,oldValue,info[1]), +(oldValue=info[0])&&node3.addEventListener(type,oldValue,info[1]))}},"event"),ref=__name( +node3=>{let oldValue;return value=>{oldValue!==value&&(oldValue=value,typeof value== +"function"?value(node3):value.current=node3)}},"ref"),setter=__name((node3,key)=>key=== +"dataset"?data(node3):value=>{node3[key]=value},"setter"),text=__name(node3=>{let oldValue; +return newValue=>{oldValue!=newValue&&(oldValue=newValue,node3.textContent=newValue?? +"")}},"text");var reducePath=__name(({childNodes},i2)=>childNodes[i2],"reducePath"),diff=__name( +(comment2,oldNodes,newNodes)=>esm_default3(comment2.parentNode,oldNodes,newNodes, +diffable,comment2),"diff"),handleAnything=__name(comment2=>{let oldValue,text2,nodes=[], +anyContent=__name(newValue=>{switch(typeof newValue){case"string":case"number":case"\ +boolean":oldValue!==newValue&&(oldValue=newValue,text2||(text2=document.createTextNode( +"")),text2.data=newValue,nodes=diff(comment2,nodes,[text2]));break;case"object":case"\ +undefined":if(newValue==null){oldValue!=newValue&&(oldValue=newValue,nodes=diff( +comment2,nodes,[]));break}if(isArray(newValue)){oldValue=newValue,newValue.length=== +0?nodes=diff(comment2,nodes,[]):typeof newValue[0]=="object"?nodes=diff(comment2, +nodes,newValue):anyContent(String(newValue));break}oldValue!==newValue&&"ELEMENT\ +_NODE"in newValue&&(oldValue=newValue,nodes=diff(comment2,nodes,newValue.nodeType=== +11?slice2.call(newValue.childNodes):[newValue]));break;case"function":anyContent( +newValue(comment2));break}},"anyContent");return anyContent},"handleAnything"),handleAttribute=__name( +(node3,name)=>{switch(name[0]){case"?":return boolean(node3,name.slice(1),!1);case"\ +.":return setter(node3,name.slice(1));case"@":return event(node3,"on"+name.slice( +1));case"o":if(name[1]==="n")return event(node3,name)}switch(name){case"ref":return ref( +node3);case"aria":return aria(node3)}return attribute(node3,name)},"handleAttrib\ +ute");function handlers(options){let{type,path}=options,node3=path.reduceRight(reducePath, +this);return type==="node"?handleAnything(node3):type==="attr"?handleAttribute(node3, +options.name):text(node3)}__name(handlers,"handlers");var createContent=function(document2){"use strict";var FRAGMENT="fragment",TEMPLATE="\ +template",HAS_CONTENT="content"in create2(TEMPLATE),createHTML=HAS_CONTENT?function(html2){ +var template=create2(TEMPLATE);return template.innerHTML=html2,template.content}: +function(html2){var content=create2(FRAGMENT),template=create2(TEMPLATE),childNodes=null; +if(/^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(html2)){var selector=RegExp. +$1;template.innerHTML=""+html2+"
",childNodes=template.querySelectorAll( +selector)}else template.innerHTML=html2,childNodes=template.childNodes;return append2( +content,childNodes),content};return __name(function(markup,type){return(type==="\ +svg"?createSVG:createHTML)(markup)},"createContent");function append2(root,childNodes){ +for(var length2=childNodes.length;length2--;)root.appendChild(childNodes[0])}function create2(element){ +return element===FRAGMENT?document2.createDocumentFragment():document2.createElementNS( +"http://www.w3.org/1999/xhtml",element)}function createSVG(svg2){var content=create2( +FRAGMENT),template=create2("div");return template.innerHTML=''+svg2+"",append2(content,template.firstChild.childNodes), +content}}(document),esm_default4=createContent;var isImportNodeLengthWrong=document.importNode.length!=1,createFragment=isImportNodeLengthWrong? +(text2,type,normalize)=>document.importNode(esm_default4(text2,type,normalize),!0): +esm_default4,createWalker=isImportNodeLengthWrong?fragment=>document.createTreeWalker( +fragment,129,null,!1):fragment=>document.createTreeWalker(fragment,129);var createPath=__name(node3=>{let path=[],{parentNode}=node3;for(;parentNode;)path. +push(indexOf.call(parentNode.childNodes,node3)),node3=parentNode,parentNode=node3. +parentNode;return path},"createPath"),prefix2="is\xB5",cache2=esm_default(new WeakMap), +textOnly=/^(?:plaintext|script|style|textarea|title|xmp)$/i,createCache3=__name( +()=>({stack:[],entry:null,wire:null}),"createCache"),createEntry=__name((type,template)=>{ +let{content,updates}=mapUpdates(type,template);return{type,template,content,updates, +wire:null}},"createEntry"),mapTemplate=__name((type,template)=>{let text2=esm_default2( +template,prefix2,type==="svg"),content=createFragment(text2,type),tw=createWalker( +content),nodes=[],length2=template.length-1,i2=0,search=`${prefix2}${i2}`;for(;i2< +length2;){let node3=tw.nextNode();if(!node3)throw`bad template: ${text2}`;if(node3. +nodeType===8)node3.data===search&&(nodes.push({type:"node",path:createPath(node3)}), +search=`${prefix2}${++i2}`);else{for(;node3.hasAttribute(search);)nodes.push({type:"\ +attr",path:createPath(node3),name:node3.getAttribute(search)}),node3.removeAttribute( +search),search=`${prefix2}${++i2}`;textOnly.test(node3.tagName)&&node3.textContent. +trim()===``&&(node3.textContent="",nodes.push({type:"text",path:createPath( +node3)}),search=`${prefix2}${++i2}`)}}return{content,nodes}},"mapTemplate"),mapUpdates=__name( +(type,template)=>{let{content,nodes}=cache2.get(template)||cache2.set(template,mapTemplate( +type,template)),fragment=document.importNode(content,!0),updates=nodes.map(handlers, +fragment);return{content:fragment,updates}},"mapUpdates"),unroll=__name((info,{type, +template,values})=>{let{length:length2}=values;unrollValues(info,values,length2); +let{entry}=info;(!entry||entry.template!==template||entry.type!==type)&&(info.entry= +entry=createEntry(type,template));let{content,updates,wire}=entry;for(let i2=0;i2< +length2;i2++)updates[i2](values[i2]);return wire||(entry.wire=persistent(content))}, +"unroll"),unrollValues=__name(({stack},values,length2)=>{for(let i2=0;i2{let keyed=esm_default(new WeakMap), +fixed=__name(cache4=>(template,...values)=>unroll(cache4,{type,template,values}), +"fixed");return defineProperties((template,...values)=>new Hole(type,template,values), +{for:{value(ref2,id){let memo=keyed.get(ref2)||keyed.set(ref2,create(null));return memo[id]|| +(memo[id]=fixed(createCache3()))}},node:{value:(template,...values)=>unroll(createCache3(), +{type,template,values}).valueOf()}})},"tag"),cache3=esm_default(new WeakMap);var html=tag("html"),svg=tag("svg");var Color2=require_color();var InputStyle=class extends StyleClass{static{__name(this,"InputStyle")}static css(style={}){ +return` + font-size: 1em; + border: 1px solid grey; + border-radius: 0.2em; + padding: 0.4em; + `.trim()}};injectGlobal` +input { + ${InputStyle.css()} +}`;var Color3=require_color();var Color4=require_color();var Color5=require_color();var Color6=require_color();var Color7=require_color();var color={blue:"#3584e4",green:"#33d17a",yellow:"#f6d32d",orange:"#ff7800",red:"\ +#e01b24",purple:"#9141ac",violet:"#9141ac",brown:"#986a44",light:"#deddda",dark:"\ +#3d3846"};var CodeBlock=class extends d{static{__name(this,"CodeBlock")}};CodeBlock.tagStyle( +` + & { + display: block; + margin: auto; + margin-top: 1.5rem; + max-width: 80ch; + line-height: 1.5; + } + [el="bar-top-left"] { + display: inline-flex; + ${bgColor(color.yellow)} + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; + line-height: 2; + padding-left: 0.5rem; + padding-right: 0.5rem; + font-size: 0.8rem; + } + & pre { + margin-top: 0; + font-size: 0.8rem; + & code { + all: unset; + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; + border-top-right-radius: 0.4em; + } + } +`);export{CodeBlock}; +/*! Bundled license information: + +@ungap/create-content/esm/index.js: + (*! (c) Andrea Giammarchi - ISC *) +*/ +//# sourceMappingURL=code-block.js.map diff --git a/docs/_ux/ui/code-block.js.map b/docs/_ux/ui/code-block.js.map new file mode 100644 index 0000000..b3a00e7 --- /dev/null +++ b/docs/_ux/ui/code-block.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/color-name/index.js", "../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "../../../node_modules/simple-swizzle/index.js", "../../../node_modules/color-string/index.js", "../../../node_modules/color-convert/conversions.js", "../../../node_modules/color-convert/route.js", "../../../node_modules/color-convert/index.js", "../../../node_modules/color/index.js", "../../../src/util.ts", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../src/cssProcessor/stylis.bundle.ts", "../../../src/adapter.ts", "../../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Enum.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Utility.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Tokenizer.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Parser.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Serializer.js", "../../../node_modules/@emotion/cache/node_modules/stylis/src/Middleware.js", "../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js", "../../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js", "../../../node_modules/@emotion/hash/dist/emotion-hash.esm.js", "../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js", "../../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js", "../../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js", "../../../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js", "../../../node_modules/@emotion/css/dist/emotion-css.esm.js", "../../../node_modules/@nitipit/adapter/src/adapter.ts", "../../../node_modules/gadjet/src/style/bg-color.ts", "../../../node_modules/umap/esm/index.js", "../../../node_modules/uparser/esm/index.js", "../../../node_modules/uarray/esm/index.js", "../../../node_modules/uwire/esm/index.js", "../../../node_modules/udomdiff/esm/index.js", "../../../node_modules/uhandlers/esm/index.js", "../../../node_modules/gadjet/node_modules/uhtml/esm/handlers.js", "../../../node_modules/@ungap/create-content/esm/index.js", "../../../node_modules/gadjet/node_modules/uhtml/esm/node.js", "../../../node_modules/gadjet/node_modules/uhtml/esm/rabbit.js", "../../../node_modules/gadjet/node_modules/uhtml/esm/index.js", "../../../node_modules/gadjet/src/ui/checkbox/checkbox.style.ts", "../../../node_modules/gadjet/src/ui/input/input.style.ts", "../../../node_modules/gadjet/src/ui/input/input.ts", "../../../node_modules/gadjet/src/ui/input/input-radio.style.ts", "../../../node_modules/gadjet/src/ui/tag/tag.style.ts", "../../../node_modules/gadjet/src/ui/tag/tagx.style.ts", "../../../node_modules/gadjet/src/ui/menu/menu.style.ts", "../../../node_modules/gadjet/src/ui/table/table.style.ts", "../../../docs-src/_ux/designToken.ts", "../../../docs-src/_ux/ui/code-block.ts"], + "sourcesContent": ["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n", "'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n", "/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n", "export function sleepSync(ms: number) {\n const end = new Date().getTime() + ms;\n let time = new Date().getTime();\n while (time < end) {\n time = new Date().getTime();\n }\n return time;\n}\n\nexport function uuid() {\n return sleepSync(1).toString(36);\n}", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import { compile, serialize, stringify } from 'stylis';\n\nexport function stylis(css: string) {\n return serialize(compile(css), stringify);\n}\n", "import { uuid } from './util.js';\nimport { stylis } from './cssProcessor/stylis.bundle.js';\n\ntype Constructor = new (...args: any[]) => T;\n\nexport function AdapterMixin>(\n Base: TBase\n) {\n return class Adapter extends Base {\n /** CSSStyleSheet() for this component */\n static _cssStyleSheet: CSSStyleSheet;\n\n /** Tag name of this component */\n static _tagName: string | null;\n\n /** Styles which contain only css for this component */\n static _styles: string[] = [];\n\n /** CSS Process middleware, This function will be called\n * before applying CSS to CSSStyleSheet.\n */\n static cssProcess(css: string): string {\n return css;\n }\n\n /**\n * Retreive styles for this component,\n * also prevent inherit values from super class.\n */\n static get styles(): string[] {\n if (this._styles === Object.getPrototypeOf(this).styles) {\n this._styles = [];\n }\n return this._styles;\n }\n\n /** Retreive inherited styles for all super classes. */\n static get inheritedStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n let inheritedStyles: string[] = [];\n\n while (superClass.styles !== undefined) {\n inheritedStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n\n return inheritedStyles;\n }\n\n /** Set CSS for this component */\n static set css(css: string) {\n this._styles = [css];\n\n if (this.tagName) {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return [...this.inheritedStyles, ...this.styles].join(\"\\n\");\n }\n\n /** Get tagName for this class which will be defined after\n * the class has been registerd with CustomElementsRegistry.\n */\n static get tagName(): string | null {\n if (this._tagName === Object.getPrototypeOf(this).tagName) {\n this._tagName = null;\n }\n return this._tagName;\n }\n\n /** Get CSSStyleSheet() for this component.\n * Create a new one if haven't been created yet.\n */\n static get cssStyleSheet(): CSSStyleSheet {\n const superCSSStyleSheet = Object.getPrototypeOf(this)._cssStyleSheet;\n if (this._cssStyleSheet === superCSSStyleSheet) {\n this._cssStyleSheet = new CSSStyleSheet();\n }\n return this._cssStyleSheet;\n }\n\n /** Add style to this component */\n static addStyle(css: string) {\n this._styles = this._styles.concat(css);\n\n if (this.tagName) {\n const rule = `${this.tagName} { ${css} }`;\n const processedCss = this.cssProcess(rule);\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n }\n\n /**\n * Define component to element tag and init component style.\n * To extends this function, sub-elements must be defined\n * before call this function as `super.define(tagName);`\n */\n static define(tagName: string): void {\n this._tagName = tagName;\n customElements.define(tagName, this);\n this.initStyle();\n }\n\n /** Init component style */\n static initStyle() {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n\n /** Deprecated, will be removed in v3 */\n static tagStyle(css: string): void {\n console.warn('tagStyle() is deprecated, use addStyle() instead');\n this.addStyle(css);\n }\n\n /** Deprecated, will be removed in v3 */\n static classStyle(class_: string, css: string) {\n console.warn('classStyle() is deprecated, use addStyle() instead');\n this.addStyle(`&.${class_} { ${css} }`);\n }\n\n _class!: typeof Adapter; // instance's class for using as shortcut\n\n _cssStyleSheet?: CSSStyleSheet;\n\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n /**\n * In constructor, there any some if condition to check\n * if it has been inited or not to prevent recursive call in Mixin\n */\n constructor(...args: any[]) {\n super(...args);\n if (this._class) {\n return;\n }\n this._class = this.constructor as unknown as typeof Adapter;\n\n /**\n * If class tagName has been defined from somewhere else.\n * Then it shouldn't be initialized again.\n */\n if (this._class.tagName) {\n return;\n }\n this._class._styles = [];\n this._class._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Dynamically create and return uuid for the element */\n get uuid(): string {\n if (!this._uuid) {\n this._uuid = `${this.tagName}-${uuid()}`;\n }\n return this._uuid;\n }\n\n /**\n * Dynamically create a CSSStyleSheet() and keep track of the adopted\n * stylesheet index for later reference.\n */\n get cssStyleSheet() {\n if (!this._cssStyleSheet) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n this._cssStyleSheet = new CSSStyleSheet();\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\n return this._cssStyleSheet;\n }\n\n /**\n * Return a selector for the this element as a class chain.\n */\n get objectClassSelector(): string {\n return `&.${this.classList.value.replace(/ /g, \".\")}`;\n }\n\n /**\n * Set CSS for this element.\n * It works like `` but with CSS processor.\n */\n set css(css: string) {\n this.cssStyleSheet.replaceSync(\n this._class.cssProcess(`\n ${this.objectClassSelector} { ${css} }\n `)\n );\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n this.cssStyleSheet.insertRule(\n `${this.tagName} {\n ${this.objectClassSelector} { ${css} }\n }`,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this.remove();\n }\n };\n}\n\nexport class Adapter extends AdapterMixin(HTMLElement) {\n static cssProcess(css: string): string {\n return stylis(css);\n }\n}\n", "/*\n\nBased off glamor's StyleSheet, thanks Sunil \u2764\uFE0F\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n", "function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n", "import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n", "/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n", "var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n", "import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n", "var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n", "import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport { createEmotion as default };\n", "import createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\nimport '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n", "import { injectGlobal as addStyle } from \"@emotion/css\";\n\nexport { addStyle };\n\nexport const define = (tagName: string, Class: any = Adapter) => {\n Class.define(tagName);\n}\n\nexport class StyleClass {\n static readonly default: object;\n static css(style: Object = {}): string { return '' };\n static style(style: Object = {}): string { return '' };\n}\n\nexport class Adapter extends HTMLElement {\n static Style = StyleClass;\n static _tagName: string;\n\n static get tagName() {\n if (!this._tagName) {\n throw `${this.name} hasn't been defined a tag name`;\n }\n return this._tagName;\n }\n\n static set tagName(tagName) {\n this._tagName = tagName;\n }\n \n static define(tagName: string): void {\n // To extends this function, sub-elements must be defined before call\n // this function as `super.define(tagName);`\n try {\n customElements.define(tagName, this);\n } catch (error) {\n if (error instanceof DOMException) {\n console.error(\n `DOMException: '${this.name}' ` +\n `has already been defined to tag '${this.tagName}'\\n` +\n `${error.stack}`\n );\n return;\n }\n }\n this.tagName = tagName;\n this.initStyle();\n };\n\n static initStyle(): void {\n addStyle`\n ${this.tagName} {\n all: unset;\n }`;\n\n if (!this.Style) {return};\n\n addStyle`\n ${this.tagName} {\n ${this.Style.css()}\n }`;\n };\n\n static tagStyle(style: string | Object): void {\n if (typeof style == \"string\") {\n addStyle`\n ${this.tagName} {\n ${style}\n }`;\n return;\n }\n\n addStyle`\n ${this.tagName} {\n ${this.Style.style(style)}\n }`;\n }\n\n static classStyle(class_: string, style: string | Object): void {\n if (typeof style == \"string\") {\n addStyle`\n ${this.tagName}.${class_} {\n ${style}\n }`;\n } else if (typeof style == \"object\") {\n addStyle`\n ${this.tagName}.${class_} {\n ${this.Style.style(style)}\n }`;\n };\n }\n\n static readonly max_id = Math.pow(16, 4) - 1;\n static instance = {};\n static _generate_id() {\n return `adt-${Math.floor(Math.random() * this.max_id).toString(16)}`;\n }\n\n _class: any | Adapter; // store class to access static props.\n _id: string; // instance id.\n \n constructor() {\n super();\n this._class = this.constructor;\n let id = this._class._generate_id();\n while (id in this._class.instance) {\n id = this._class._generate_id();\n }\n this._class.instance[id] = true;\n this._id = id;\n }\n\n addStyle(style: string | Object): void {\n this.classList.add(this._id);\n let selector = this.classList.value.replace(/ /g, '.');\n if (typeof style == \"string\") {\n addStyle`\n ${this.tagName}.${selector} {\n ${style}\n }`;\n } else if (typeof style == \"object\") {\n addStyle`\n ${this.tagName}.${selector} {\n ${this._class.Style.style(style)}\n }`;\n };\n }\n\n notify(name: string, options?: object) {\n const event = new CustomEvent(name, options);\n this.dispatchEvent(event);\n }\n}", "const Color = require('color');\n\nexport const bgColor = (color: string = 'blue'): string => {\n let fontColor: string = Color(color).isDark() ? 'white' : 'black';\n return `\n background-color: ${color};\n color: ${fontColor};\n `.trim();\n}", "export default _ => ({\n // About: get: _.get.bind(_)\n // It looks like WebKit/Safari didn't optimize bind at all,\n // so that using bind slows it down by 60%.\n // Firefox and Chrome are just fine in both cases,\n // so let's use the approach that works fast everywhere \uD83D\uDC4D\n get: key => _.get(key),\n set: (key, value) => (_.set(key, value), value)\n});\n", "const attr = /([^\\s\\\\>\"'=]+)\\s*=\\s*(['\"]?)$/;\nconst empty = /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;\nconst node = /<[a-z][^>]+$/i;\nconst notNode = />[^<>]*$/;\nconst selfClosing = /<([a-z]+[a-z0-9:._-]*)([^>]*?)(\\/>)/ig;\nconst trimEnd = /\\s+$/;\n\nconst isNode = (template, i) => (\n 0 < i-- && (\n node.test(template[i]) || (\n !notNode.test(template[i]) && isNode(template, i)\n )\n )\n);\n\nconst regular = (original, name, extra) => empty.test(name) ?\n original : `<${name}${extra.replace(trimEnd,'')}>`;\n\nexport default (template, prefix, svg) => {\n const text = [];\n const {length} = template;\n for (let i = 1; i < length; i++) {\n const chunk = template[i - 1];\n text.push(attr.test(chunk) && isNode(template, i) ?\n chunk.replace(\n attr,\n (_, $1, $2) => `${prefix}${i - 1}=${$2 || '\"'}${$1}${$2 ? '' : '\"'}`\n ) :\n `${chunk}`\n );\n }\n text.push(template[length - 1]);\n const output = text.join('').trim();\n return svg ? output : output.replace(selfClosing, regular);\n};\n", "const {isArray} = Array;\nconst {indexOf, slice} = [];\n\nexport {isArray, indexOf, slice};\n", "import {slice} from 'uarray';\n\nconst ELEMENT_NODE = 1;\nconst nodeType = 111;\n\nconst remove = ({firstChild, lastChild}) => {\n const range = document.createRange();\n range.setStartAfter(firstChild);\n range.setEndAfter(lastChild);\n range.deleteContents();\n return firstChild;\n};\n\nexport const diffable = (node, operation) => node.nodeType === nodeType ?\n ((1 / operation) < 0 ?\n (operation ? remove(node) : node.lastChild) :\n (operation ? node.valueOf() : node.firstChild)) :\n node\n;\n\nexport const persistent = fragment => {\n const {childNodes} = fragment;\n const {length} = childNodes;\n if (length < 2)\n return length ? childNodes[0] : fragment;\n const nodes = slice.call(childNodes, 0);\n const firstChild = nodes[0];\n const lastChild = nodes[length - 1];\n return {\n ELEMENT_NODE,\n nodeType,\n firstChild,\n lastChild,\n valueOf() {\n if (childNodes.length !== length) {\n let i = 0;\n while (i < length)\n fragment.appendChild(nodes[i++]);\n }\n return fragment;\n }\n };\n};\n", "/**\n * ISC License\n *\n * Copyright (c) 2020, Andrea Giammarchi, @WebReflection\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\n * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * @param {Node} parentNode The container where children live\n * @param {Node[]} a The list of current/live children\n * @param {Node[]} b The list of future children\n * @param {(entry: Node, action: number) => Node} get\n * The callback invoked per each entry related DOM operation.\n * @param {Node} [before] The optional node used as anchor to insert before.\n * @returns {Node[]} The same list of future children.\n */\nexport default (parentNode, a, b, get, before) => {\n const bLength = b.length;\n let aEnd = a.length;\n let bEnd = bLength;\n let aStart = 0;\n let bStart = 0;\n let map = null;\n while (aStart < aEnd || bStart < bEnd) {\n // append head, tail, or nodes in between: fast path\n if (aEnd === aStart) {\n // we could be in a situation where the rest of nodes that\n // need to be added are not at the end, and in such case\n // the node to `insertBefore`, if the index is more than 0\n // must be retrieved, otherwise it's gonna be the first item.\n const node = bEnd < bLength ?\n (bStart ?\n (get(b[bStart - 1], -0).nextSibling) :\n get(b[bEnd - bStart], 0)) :\n before;\n while (bStart < bEnd)\n parentNode.insertBefore(get(b[bStart++], 1), node);\n }\n // remove head or tail: fast path\n else if (bEnd === bStart) {\n while (aStart < aEnd) {\n // remove the node only if it's unknown or not live\n if (!map || !map.has(a[aStart]))\n parentNode.removeChild(get(a[aStart], -1));\n aStart++;\n }\n }\n // same node: fast path\n else if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n }\n // same tail: fast path\n else if (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n // The once here single last swap \"fast path\" has been removed in v1.1.0\n // https://github.com/WebReflection/udomdiff/blob/single-final-swap/esm/index.js#L69-L85\n // reverse swap: also fast path\n else if (\n a[aStart] === b[bEnd - 1] &&\n b[bStart] === a[aEnd - 1]\n ) {\n // this is a \"shrink\" operation that could happen in these cases:\n // [1, 2, 3, 4, 5]\n // [1, 4, 3, 2, 5]\n // or asymmetric too\n // [1, 2, 3, 4, 5]\n // [1, 2, 3, 5, 6, 4]\n const node = get(a[--aEnd], -1).nextSibling;\n parentNode.insertBefore(\n get(b[bStart++], 1),\n get(a[aStart++], -1).nextSibling\n );\n parentNode.insertBefore(get(b[--bEnd], 1), node);\n // mark the future index as identical (yeah, it's dirty, but cheap \uD83D\uDC4D)\n // The main reason to do this, is that when a[aEnd] will be reached,\n // the loop will likely be on the fast path, as identical to b[bEnd].\n // In the best case scenario, the next loop will skip the tail,\n // but in the worst one, this node will be considered as already\n // processed, bailing out pretty quickly from the map index check\n a[aEnd] = b[bEnd];\n }\n // map based fallback, \"slow\" path\n else {\n // the map requires an O(bEnd - bStart) operation once\n // to store all future nodes indexes for later purposes.\n // In the worst case scenario, this is a full O(N) cost,\n // and such scenario happens at least when all nodes are different,\n // but also if both first and last items of the lists are different\n if (!map) {\n map = new Map;\n let i = bStart;\n while (i < bEnd)\n map.set(b[i], i++);\n }\n // if it's a future node, hence it needs some handling\n if (map.has(a[aStart])) {\n // grab the index of such node, 'cause it might have been processed\n const index = map.get(a[aStart]);\n // if it's not already processed, look on demand for the next LCS\n if (bStart < index && index < bEnd) {\n let i = aStart;\n // counts the amount of nodes that are the same in the future\n let sequence = 1;\n while (++i < aEnd && i < bEnd && map.get(a[i]) === (index + sequence))\n sequence++;\n // effort decision here: if the sequence is longer than replaces\n // needed to reach such sequence, which would brings again this loop\n // to the fast path, prepend the difference before a sequence,\n // and move only the future list index forward, so that aStart\n // and bStart will be aligned again, hence on the fast path.\n // An example considering aStart and bStart are both 0:\n // a: [1, 2, 3, 4]\n // b: [7, 1, 2, 3, 6]\n // this would place 7 before 1 and, from that time on, 1, 2, and 3\n // will be processed at zero cost\n if (sequence > (index - bStart)) {\n const node = get(a[aStart], 0);\n while (bStart < index)\n parentNode.insertBefore(get(b[bStart++], 1), node);\n }\n // if the effort wasn't good enough, fallback to a replace,\n // moving both source and target indexes forward, hoping that some\n // similar node will be found later on, to go back to the fast path\n else {\n parentNode.replaceChild(\n get(b[bStart++], 1),\n get(a[aStart++], -1)\n );\n }\n }\n // otherwise move the source forward, 'cause there's nothing to do\n else\n aStart++;\n }\n // this node has no meaning in the future list, so it's more than safe\n // to remove it, and check the next live node out instead, meaning\n // that only the live list index should be forwarded\n else\n parentNode.removeChild(get(a[aStart++], -1));\n }\n }\n return b;\n};\n", "import {isArray} from 'uarray';\n\n// flag for foreign checks (slower path, fast by default)\nlet useForeign = false;\n\nexport class Foreign {\n constructor(handler, value) {\n useForeign = true;\n this._ = (...args) => handler(...args, value);\n }\n}\n\nexport const foreign = (handler, value) => new Foreign(handler, value);\n\nexport const aria = node => values => {\n for (const key in values) {\n const name = key === 'role' ? key : `aria-${key}`;\n const value = values[key];\n if (value == null)\n node.removeAttribute(name);\n else\n node.setAttribute(name, value);\n }\n};\n\nexport const attribute = (node, name) => {\n let oldValue, orphan = true;\n const attributeNode = document.createAttributeNS(null, name);\n return newValue => {\n if (oldValue !== newValue) {\n oldValue = newValue;\n if (oldValue == null) {\n if (!orphan) {\n node.removeAttributeNode(attributeNode);\n orphan = true;\n }\n }\n else {\n const value = useForeign && (newValue instanceof Foreign) ?\n newValue._(node, name) : newValue;\n if (value == null) {\n if (!orphan)\n node.removeAttributeNode(attributeNode);\n orphan = true;\n }\n else {\n attributeNode.value = value;\n if (orphan) {\n node.setAttributeNodeNS(attributeNode);\n orphan = false;\n }\n }\n }\n }\n };\n};\n\nexport const boolean = (node, key, oldValue) => newValue => {\n if (oldValue !== !!newValue) {\n // when IE won't be around anymore ...\n // node.toggleAttribute(key, oldValue = !!newValue);\n if ((oldValue = !!newValue))\n node.setAttribute(key, '');\n else\n node.removeAttribute(key);\n }\n};\n\nexport const data = ({dataset}) => values => {\n for (const key in values) {\n const value = values[key];\n if (value == null)\n delete dataset[key];\n else\n dataset[key] = value;\n }\n};\n\nexport const event = (node, name) => {\n let oldValue, lower, type = name.slice(2);\n if (!(name in node) && (lower = name.toLowerCase()) in node)\n type = lower.slice(2);\n return newValue => {\n const info = isArray(newValue) ? newValue : [newValue, false];\n if (oldValue !== info[0]) {\n if (oldValue)\n node.removeEventListener(type, oldValue, info[1]);\n if (oldValue = info[0])\n node.addEventListener(type, oldValue, info[1]);\n }\n };\n};\n\nexport const ref = node => {\n let oldValue;\n return value => {\n if (oldValue !== value) {\n oldValue = value;\n if (typeof value === 'function')\n value(node);\n else\n value.current = node;\n }\n };\n};\n\nexport const setter = (node, key) => key === 'dataset' ?\n data(node) :\n value => {\n node[key] = value;\n };\n\nexport const text = node => {\n let oldValue;\n return newValue => {\n if (oldValue != newValue) {\n oldValue = newValue;\n node.textContent = newValue == null ? '' : newValue;\n }\n };\n};\n", "import {isArray, slice} from 'uarray';\nimport udomdiff from 'udomdiff';\nimport {aria, attribute, boolean, event, ref, setter, text} from 'uhandlers';\nimport {diffable} from 'uwire';\n\n// from a generic path, retrieves the exact targeted node\nconst reducePath = ({childNodes}, i) => childNodes[i];\n\n// this helper avoid code bloat around handleAnything() callback\nconst diff = (comment, oldNodes, newNodes) => udomdiff(\n comment.parentNode,\n // TODO: there is a possible edge case where a node has been\n // removed manually, or it was a keyed one, attached\n // to a shared reference between renders.\n // In this case udomdiff might fail at removing such node\n // as its parent won't be the expected one.\n // The best way to avoid this issue is to filter oldNodes\n // in search of those not live, or not in the current parent\n // anymore, but this would require both a change to uwire,\n // exposing a parentNode from the firstChild, as example,\n // but also a filter per each diff that should exclude nodes\n // that are not in there, penalizing performance quite a lot.\n // As this has been also a potential issue with domdiff,\n // and both lighterhtml and hyperHTML might fail with this\n // very specific edge case, I might as well document this possible\n // \"diffing shenanigan\" and call it a day.\n oldNodes,\n newNodes,\n diffable,\n comment\n);\n\n// if an interpolation represents a comment, the whole\n// diffing will be related to such comment.\n// This helper is in charge of understanding how the new\n// content for such interpolation/hole should be updated\nconst handleAnything = comment => {\n let oldValue, text, nodes = [];\n const anyContent = newValue => {\n switch (typeof newValue) {\n // primitives are handled as text content\n case 'string':\n case 'number':\n case 'boolean':\n if (oldValue !== newValue) {\n oldValue = newValue;\n if (!text)\n text = document.createTextNode('');\n text.data = newValue;\n nodes = diff(comment, nodes, [text]);\n }\n break;\n // null, and undefined are used to cleanup previous content\n case 'object':\n case 'undefined':\n if (newValue == null) {\n if (oldValue != newValue) {\n oldValue = newValue;\n nodes = diff(comment, nodes, []);\n }\n break;\n }\n // arrays and nodes have a special treatment\n if (isArray(newValue)) {\n oldValue = newValue;\n // arrays can be used to cleanup, if empty\n if (newValue.length === 0)\n nodes = diff(comment, nodes, []);\n // or diffed, if these contains nodes or \"wires\"\n else if (typeof newValue[0] === 'object')\n nodes = diff(comment, nodes, newValue);\n // in all other cases the content is stringified as is\n else\n anyContent(String(newValue));\n break;\n }\n // if the new value is a DOM node, or a wire, and it's\n // different from the one already live, then it's diffed.\n // if the node is a fragment, it's appended once via its childNodes\n // There is no `else` here, meaning if the content\n // is not expected one, nothing happens, as easy as that.\n if (oldValue !== newValue && 'ELEMENT_NODE' in newValue) {\n oldValue = newValue;\n nodes = diff(\n comment,\n nodes,\n newValue.nodeType === 11 ?\n slice.call(newValue.childNodes) :\n [newValue]\n );\n }\n break;\n case 'function':\n anyContent(newValue(comment));\n break;\n }\n };\n return anyContent;\n};\n\n// attributes can be:\n// * ref=${...} for hooks and other purposes\n// * aria=${...} for aria attributes\n// * ?boolean=${...} for boolean attributes\n// * .dataset=${...} for dataset related attributes\n// * .setter=${...} for Custom Elements setters or nodes with setters\n// such as buttons, details, options, select, etc\n// * @event=${...} to explicitly handle event listeners\n// * onevent=${...} to automatically handle event listeners\n// * generic=${...} to handle an attribute just like an attribute\nconst handleAttribute = (node, name/*, svg*/) => {\n switch (name[0]) {\n case '?': return boolean(node, name.slice(1), false);\n case '.': return setter(node, name.slice(1));\n case '@': return event(node, 'on' + name.slice(1));\n case 'o': if (name[1] === 'n') return event(node, name);\n }\n\n switch (name) {\n case 'ref': return ref(node);\n case 'aria': return aria(node);\n }\n\n return attribute(node, name/*, svg*/);\n};\n\n// each mapped update carries the update type and its path\n// the type is either node, attribute, or text, while\n// the path is how to retrieve the related node to update.\n// In the attribute case, the attribute name is also carried along.\nexport function handlers(options) {\n const {type, path} = options;\n const node = path.reduceRight(reducePath, this);\n return type === 'node' ?\n handleAnything(node) :\n (type === 'attr' ?\n handleAttribute(node, options.name/*, options.svg*/) :\n text(node));\n};\n", "/*! (c) Andrea Giammarchi - ISC */\nvar createContent = (function (document) {'use strict';\n var FRAGMENT = 'fragment';\n var TEMPLATE = 'template';\n var HAS_CONTENT = 'content' in create(TEMPLATE);\n\n var createHTML = HAS_CONTENT ?\n function (html) {\n var template = create(TEMPLATE);\n template.innerHTML = html;\n return template.content;\n } :\n function (html) {\n var content = create(FRAGMENT);\n var template = create(TEMPLATE);\n var childNodes = null;\n if (/^[^\\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(html)) {\n var selector = RegExp.$1;\n template.innerHTML = '' + html + '
';\n childNodes = template.querySelectorAll(selector);\n } else {\n template.innerHTML = html;\n childNodes = template.childNodes;\n }\n append(content, childNodes);\n return content;\n };\n\n return function createContent(markup, type) {\n return (type === 'svg' ? createSVG : createHTML)(markup);\n };\n\n function append(root, childNodes) {\n var length = childNodes.length;\n while (length--)\n root.appendChild(childNodes[0]);\n }\n\n function create(element) {\n return element === FRAGMENT ?\n document.createDocumentFragment() :\n document.createElementNS('http://www.w3.org/1999/xhtml', element);\n }\n\n // it could use createElementNS when hasNode is there\n // but this fallback is equally fast and easier to maintain\n // it is also battle tested already in all IE\n function createSVG(svg) {\n var content = create(FRAGMENT);\n var template = create('div');\n template.innerHTML = '' + svg + '';\n append(content, template.firstChild.childNodes);\n return content;\n }\n\n}(document));\nexport default createContent;\n", "import createContent from '@ungap/create-content';\n\n// this \"hack\" tells the library if the browser is IE11 or old Edge\nconst isImportNodeLengthWrong = document.importNode.length != 1;\n\n// IE11 and old Edge discard empty nodes when cloning, potentially\n// resulting in broken paths to find updates. The workaround here\n// is to import once, upfront, the fragment that will be cloned\n// later on, so that paths are retrieved from one already parsed,\n// hence without missing child nodes once re-cloned.\nexport const createFragment = isImportNodeLengthWrong ?\n (text, type, normalize) => document.importNode(\n createContent(text, type, normalize),\n true\n ) :\n createContent;\n\n// IE11 and old Edge have a different createTreeWalker signature that\n// has been deprecated in other browsers. This export is needed only\n// to guarantee the TreeWalker doesn't show warnings and, ultimately, works\nexport const createWalker = isImportNodeLengthWrong ?\n fragment => document.createTreeWalker(fragment, 1 | 128, null, false) :\n fragment => document.createTreeWalker(fragment, 1 | 128);\n", "import umap from 'umap';\nimport instrument from 'uparser';\nimport {indexOf, isArray} from 'uarray';\nimport {persistent} from 'uwire';\n\nimport {handlers} from './handlers.js';\nimport {createFragment, createWalker} from './node.js';\n\n// from a fragment container, create an array of indexes\n// related to its child nodes, so that it's possible\n// to retrieve later on exact node via reducePath\nconst createPath = node => {\n const path = [];\n let {parentNode} = node;\n while (parentNode) {\n path.push(indexOf.call(parentNode.childNodes, node));\n node = parentNode;\n parentNode = node.parentNode;\n }\n return path;\n};\n\n// the prefix is used to identify either comments, attributes, or nodes\n// that contain the related unique id. In the attribute cases\n// is\u00B5X=\"attribute-name\" will be used to map current X update to that\n// attribute name, while comments will be like , to map\n// the update to that specific comment node, hence its parent.\n// style and textarea will have text content, and are handled\n// directly through text-only updates.\nconst prefix = 'is\u00B5';\n\n// Template Literals are unique per scope and static, meaning a template\n// should be parsed once, and once only, as it will always represent the same\n// content, within the exact same amount of updates each time.\n// This cache relates each template to its unique content and updates.\nconst cache = umap(new WeakMap);\n\n// a RegExp that helps checking nodes that cannot contain comments\nconst textOnly = /^(?:plaintext|script|style|textarea|title|xmp)$/i;\n\nexport const createCache = () => ({\n stack: [], // each template gets a stack for each interpolation \"hole\"\n\n entry: null, // each entry contains details, such as:\n // * the template that is representing\n // * the type of node it represents (html or svg)\n // * the content fragment with all nodes\n // * the list of updates per each node (template holes)\n // * the \"wired\" node or fragment that will get updates\n // if the template or type are different from the previous one\n // the entry gets re-created each time\n\n wire: null // each rendered node represent some wired content and\n // this reference to the latest one. If different, the node\n // will be cleaned up and the new \"wire\" will be appended\n});\n\n// the entry stored in the rendered node cache, and per each \"hole\"\nconst createEntry = (type, template) => {\n const {content, updates} = mapUpdates(type, template);\n return {type, template, content, updates, wire: null};\n};\n\n// a template is instrumented to be able to retrieve where updates are needed.\n// Each unique template becomes a fragment, cloned once per each other\n// operation based on the same template, i.e. data => html`

${data}

`\nconst mapTemplate = (type, template) => {\n const text = instrument(template, prefix, type === 'svg');\n const content = createFragment(text, type);\n // once instrumented and reproduced as fragment, it's crawled\n // to find out where each update is in the fragment tree\n const tw = createWalker(content);\n const nodes = [];\n const length = template.length - 1;\n let i = 0;\n // updates are searched via unique names, linearly increased across the tree\n //
\n let search = `${prefix}${i}`;\n while (i < length) {\n const node = tw.nextNode();\n // if not all updates are bound but there's nothing else to crawl\n // it means that there is something wrong with the template.\n if (!node)\n throw `bad template: ${text}`;\n // if the current node is a comment, and it contains is\u00B5X\n // it means the update should take care of any content\n if (node.nodeType === 8) {\n // The only comments to be considered are those\n // which content is exactly the same as the searched one.\n if (node.data === search) {\n nodes.push({type: 'node', path: createPath(node)});\n search = `${prefix}${++i}`;\n }\n }\n else {\n // if the node is not a comment, loop through all its attributes\n // named is\u00B5X and relate attribute updates to this node and the\n // attribute name, retrieved through node.getAttribute(\"is\u00B5X\")\n // the is\u00B5X attribute will be removed as irrelevant for the layout\n // let svg = -1;\n while (node.hasAttribute(search)) {\n nodes.push({\n type: 'attr',\n path: createPath(node),\n name: node.getAttribute(search),\n //svg: svg < 0 ? (svg = ('ownerSVGElement' in node ? 1 : 0)) : svg\n });\n node.removeAttribute(search);\n search = `${prefix}${++i}`;\n }\n // if the node was a style, textarea, or others, check its content\n // and if it is then update tex-only this node\n if (\n textOnly.test(node.tagName) &&\n node.textContent.trim() === ``\n ){\n node.textContent = '';\n nodes.push({type: 'text', path: createPath(node)});\n search = `${prefix}${++i}`;\n }\n }\n }\n // once all nodes to update, or their attributes, are known, the content\n // will be cloned in the future to represent the template, and all updates\n // related to such content retrieved right away without needing to re-crawl\n // the exact same template, and its content, more than once.\n return {content, nodes};\n};\n\n// if a template is unknown, perform the previous mapping, otherwise grab\n// its details such as the fragment with all nodes, and updates info.\nconst mapUpdates = (type, template) => {\n const {content, nodes} = (\n cache.get(template) ||\n cache.set(template, mapTemplate(type, template))\n );\n // clone deeply the fragment\n const fragment = document.importNode(content, true);\n // and relate an update handler per each node that needs one\n const updates = nodes.map(handlers, fragment);\n // return the fragment and all updates to use within its nodes\n return {content: fragment, updates};\n};\n\n// as html and svg can be nested calls, but no parent node is known\n// until rendered somewhere, the unroll operation is needed to\n// discover what to do with each interpolation, which will result\n// into an update operation.\nexport const unroll = (info, {type, template, values}) => {\n const {length} = values;\n // interpolations can contain holes and arrays, so these need\n // to be recursively discovered\n unrollValues(info, values, length);\n let {entry} = info;\n // if the cache entry is either null or different from the template\n // and the type this unroll should resolve, create a new entry\n // assigning a new content fragment and the list of updates.\n if (!entry || (entry.template !== template || entry.type !== type))\n info.entry = (entry = createEntry(type, template));\n const {content, updates, wire} = entry;\n // even if the fragment and its nodes is not live yet,\n // it is already possible to update via interpolations values.\n for (let i = 0; i < length; i++)\n updates[i](values[i]);\n // if the entry was new, or representing a different template or type,\n // create a new persistent entity to use during diffing.\n // This is simply a DOM node, when the template has a single container,\n // as in `

`, or a \"wire\" in `

` and similar cases.\n return wire || (entry.wire = persistent(content));\n};\n\n// the stack retains, per each interpolation value, the cache\n// related to each interpolation value, or null, if the render\n// was conditional and the value is not special (Array or Hole)\nconst unrollValues = ({stack}, values, length) => {\n for (let i = 0; i < length; i++) {\n const hole = values[i];\n // each Hole gets unrolled and re-assigned as value\n // so that domdiff will deal with a node/wire, not with a hole\n if (hole instanceof Hole)\n values[i] = unroll(\n stack[i] || (stack[i] = createCache()),\n hole\n );\n // arrays are recursively resolved so that each entry will contain\n // also a DOM node or a wire, hence it can be diffed if/when needed\n else if (isArray(hole))\n unrollValues(\n stack[i] || (stack[i] = createCache()),\n hole,\n hole.length\n );\n // if the value is nothing special, the stack doesn't need to retain data\n // this is useful also to cleanup previously retained data, if the value\n // was a Hole, or an Array, but not anymore, i.e.:\n // const update = content => html`
${content}
`;\n // update(listOfItems); update(null); update(html`hole`)\n else\n stack[i] = null;\n }\n if (length < stack.length)\n stack.splice(length);\n};\n\n/**\n * Holds all details wrappers needed to render the content further on.\n * @constructor\n * @param {string} type The hole type, either `html` or `svg`.\n * @param {string[]} template The template literals used to the define the content.\n * @param {Array} values Zero, one, or more interpolated values to render.\n */\nexport function Hole(type, template, values) {\n this.type = type;\n this.template = template;\n this.values = values;\n};\n", "import umap from 'umap';\nimport {Hole, createCache, unroll} from './rabbit.js';\nimport {foreign} from 'uhandlers';\n\nconst {create, defineProperties} = Object;\n\n// both `html` and `svg` template literal tags are polluted\n// with a `for(ref[, id])` and a `node` tag too\nconst tag = type => {\n // both `html` and `svg` tags have their own cache\n const keyed = umap(new WeakMap);\n // keyed operations always re-use the same cache and unroll\n // the template and its interpolations right away\n const fixed = cache => (template, ...values) => unroll(\n cache,\n {type, template, values}\n );\n return defineProperties(\n // non keyed operations are recognized as instance of Hole\n // during the \"unroll\", recursively resolved and updated\n (template, ...values) => new Hole(type, template, values),\n {\n for: {\n // keyed operations need a reference object, usually the parent node\n // which is showing keyed results, and optionally a unique id per each\n // related node, handy with JSON results and mutable list of objects\n // that usually carry a unique identifier\n value(ref, id) {\n const memo = keyed.get(ref) || keyed.set(ref, create(null));\n return memo[id] || (memo[id] = fixed(createCache()));\n }\n },\n node: {\n // it is possible to create one-off content out of the box via node tag\n // this might return the single created node, or a fragment with all\n // nodes present at the root level and, of course, their child nodes\n value: (template, ...values) => unroll(\n createCache(),\n {type, template, values}\n ).valueOf()\n }\n }\n );\n};\n\n// each rendered node gets its own cache\nconst cache = umap(new WeakMap);\n\n// rendering means understanding what `html` or `svg` tags returned\n// and it relates a specific node to its own unique cache.\n// Each time the content to render changes, the node is cleaned up\n// and the new new content is appended, and if such content is a Hole\n// then it's \"unrolled\" to resolve all its inner nodes.\nconst render = (where, what) => {\n const hole = typeof what === 'function' ? what() : what;\n const info = cache.get(where) || cache.set(where, createCache());\n const wire = hole instanceof Hole ? unroll(info, hole) : hole;\n if (wire !== info.wire) {\n info.wire = wire;\n where.textContent = '';\n // valueOf() simply returns the node itself, but in case it was a \"wire\"\n // it will eventually re-append all nodes to its fragment so that such\n // fragment can be re-appended many times in a meaningful way\n // (wires are basically persistent fragments facades with special behavior)\n where.appendChild(wire.valueOf());\n }\n return where;\n};\n\nconst html = tag('html');\nconst svg = tag('svg');\n\nexport {Hole, render, html, svg, foreign};\n", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\nconst Color = require('color');\n\n\nexport interface CheckboxStyleParam {\n bgColor?: string;\n activeColor?: string;\n}\n\nexport class CheckboxStyle extends StyleClass {\n static default: CheckboxStyleParam = {\n bgColor: '#ccc',\n activeColor: 'blue'\n }\n static css(style: CheckboxStyleParam = {}): string {\n style = { ...this.default, ...style };\n let css = `\n position: relative;\n width: 1em;\n height: 1em;\n user-select: none;\n display: inline-block;\n\n /* Hide the browser's default checkbox */\n input {\n opacity: 0;\n cursor: pointer;\n width: 1em;\n height: 1em;\n margin: 0;\n position: absolute;\n top: 1;\n left: 0;\n z-index: 1;\n }\n\n /* Create a custom checkbox */\n span {\n position: absolute;\n top: 0;\n left: 0;\n width: 1em;\n height: 1em;\n box-shadow: 0 1px 1px 0 grey;\n }\n\n /* Create the checkmark/indicator (hidden when not checked) */\n span:after {\n content: \"\";\n position: absolute;\n display: none;\n }\n\n /* Show the checkmark when checked */\n input:checked ~ span:after {\n display: block;\n }\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: CheckboxStyleParam = {}): string {\n let css = `\n ${this._bgColor(style)}\n ${this._activeColor(style)}\n `.trim();\n \n return css;\n }\n\n static _bgColor(style: CheckboxStyleParam = {}): string {\n if (style.bgColor == undefined) { return '' };\n return `\n span {\n background-color: ${style.bgColor};\n }\n `.trim();\n }\n\n static _activeColor(style: CheckboxStyleParam = {}): string {\n if (style.activeColor == undefined) { return '' };\n\n let markColor = 'black';\n if (Color(style.activeColor).isDark()) {\n markColor = 'white';\n }\n\n return `\n /* Style the checkmark/indicator */\n span:after {\n border: solid ${markColor};\n left: 0.25em;\n width: 0.3em;\n height: 0.6em;\n border-width: 0 0.2em 0.2em 0;\n transform: rotate(45deg);\n }\n\n /* When the checkbox is checked, add background color */\n input:checked ~ span {\n background-color: ${style.activeColor};\n }\n\n /* On mouse-over, add background color */\n &:hover input ~ span {\n background-color: ${Color(style.activeColor).lighten(0.2)}\n }\n `.trim();\n }\n}", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\n\n\nexport class InputStyle extends StyleClass {\n static css(style = {}): string {\n return `\n font-size: 1em;\n border: 1px solid grey;\n border-radius: 0.2em;\n padding: 0.4em;\n `.trim()\n }\n}", "import { addStyle, Adapter } from \"@nitipit/adapter/src/adapter\";\nimport { InputStyle } from './input.style';\n\n\nexport class Input extends Adapter {\n static Style = InputStyle;\n}\n\naddStyle`\ninput {\n ${InputStyle.css()}\n}`;", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\nvar Color = require('color');\n\nexport interface InputRadioStyleParam {\n color?: string;\n boxShadowColor?: string;\n activeColor?: string;\n}\n\n\nexport class InputRadioStyle extends StyleClass {\n static readonly default: InputRadioStyleParam = {\n color: '#ccc',\n boxShadowColor: '#777',\n activeColor: 'blue'\n }\n\n static css(style: InputRadioStyleParam = {}): string {\n style = {...this.default, ...style};\n let markDotColor = 'black';\n if (Color(style.activeColor).isDark()) {\n markDotColor = 'white';\n }\n\n const css = `\n position: relative;\n display: inline-block;\n font-size: 1em;\n user-select: none;\n width: 1.1em;\n height: 1.1em;\n input {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n opacity: 0;\n cursor: pointer;\n width: 1.1em;\n height: 1.1em;\n vertical-align: middle;\n }\n\n /* Create a custom radio button */\n span {\n position: absolute;\n top: 0;\n left: 0;\n width: 1.1em;\n height: 1.1em;\n border-radius: 50%;\n }\n\n /* Create the indicator (the dot/circle - hidden when not checked) */\n span:after {\n content: \"\";\n position: absolute;\n display: none;\n }\n\n /* Show the indicator (dot/circle) when checked */\n input:checked ~ span:after {\n display: block;\n }\n\n /* Style the indicator (dot/circle) */\n span:after {\n top: 0.35em;\n left: 0.35em;\n width: 0.4em;\n height: 0.4em;\n border-radius: 50%;\n background-color: ${markDotColor};\n }\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: InputRadioStyleParam = {}): string {\n const css = `\n ${this._color(style)}\n ${this._boxShadowColor(style)}\n ${this._activeColor(style)}\n `.trim();\n\n return css;\n }\n\n static _color(style: InputRadioStyleParam = {}): string {\n if (style.color == undefined) { return '' };\n return `\n span {\n background-color: ${style.color};\n }\n `.trim();\n }\n\n static _boxShadowColor(style: InputRadioStyleParam = {}): string {\n if (style.boxShadowColor == undefined) { return '' };\n return `\n span {\n box-shadow: 0 1px 1px 0 ${style.boxShadowColor};\n }`.trim();\n }\n\n static _activeColor(style: InputRadioStyleParam = {}): string {\n if (style.activeColor == undefined) { return '' };\n return`\n /* On mouse-over, add a background color */\n &:hover input ~ span {\n background-color: ${Color(style.activeColor).lighten(0.2).saturate(0.2)};\n }\n\n /* When the radio button is checked, add background color */\n input:checked ~ span {\n background-color: ${style.activeColor};\n }`.trim();\n }\n}", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\nimport { bgColor } from \"../../style\";\nconst Color = require('color');\n\n\nexport class TagStyleParam {\n color?: string;\n borderRadius?: string;\n}\n\nexport class TagStyle extends StyleClass {\n static readonly default: TagStyleParam = {\n color: 'blue',\n borderRadius: '4px'\n }\n\n static css(style: TagStyleParam = {}): string {\n style = {...this.default, ...style};\n\n let css = `\n display: inline-flex;\n align-items: center;\n padding: 0.1em 0.4em;\n font-size: 0.9em;\n line-height: unset;\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: TagStyleParam = {}): string {\n let css = `\n ${this._color(style)}\n ${this._borderRadius(style)}\n `.trim();\n\n return css;\n }\n\n static _color(style: TagStyleParam = {}): string {\n if (style.color == undefined) { return '' };\n return `\n ${bgColor(style.color)}\n box-shadow: 0 0.17em 0 0 ${Color(style.color).darken(0.5)};\n `.trim();\n }\n\n static _borderRadius(style: TagStyleParam = {}): string {\n if (style.borderRadius == undefined) { return '' };\n return `\n border-radius: ${style.borderRadius};\n `.trim();\n }\n}\n\n", "import { TagStyle } from \"./tag.style\";\nimport { bgColorInt } from \"../../style\";\nconst Color = require('color');\n\n\nexport interface TagXStyleParam {\n color?: string;\n borderRadius?: string;\n}\n\nexport class TagXStyle extends TagStyle {\n static default: TagXStyleParam = {\n color: 'blue',\n borderRadius: '4px'\n }\n\n static css(style: TagXStyleParam = {}): string {\n style = { ...this.default, ...style };\n let css = `\n ${super.css(style)}\n padding-right: 0;\n [el=\"remove\"] {\n margin-left: 0.3em;\n padding-left: 0.4em;\n padding-right: 0.5em;\n font-weight: bold;\n border-left: 1px solid;\n cursor: pointer;\n }\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: TagXStyleParam = {}): string {\n let css = `\n ${this._color(style)}\n ${this._borderRadius(style)}\n `.trim();\n return css;\n }\n\n static _color(style: TagXStyleParam = {}): string {\n if (style.color == undefined) { return '' };\n return `\n ${bgColorInt({color: style.color})}\n box-shadow: 0 0.17em 0 0 ${Color(style.color).darken(0.5)};\n `.trim();\n }\n\n static _borderRadius(style: TagXStyleParam = {}): string {\n if (style.borderRadius == undefined) { return '' };\n return super._borderRadius(style);\n }\n}", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\nimport { bgColor } from \"../../style\";\nconst Color = require('color');\n\nexport interface MenuStyleParam {\n hoverColor?: string;\n arrowColor?: string;\n}\n\nexport class MenuStyle extends StyleClass {\n static readonly default: MenuStyleParam = {\n hoverColor: 'blue',\n arrowColor: 'blue'\n }\n\n static css(style: MenuStyleParam = {}) {\n style = {...this.default, ...style};\n const css = `\n display: block;\n padding: 0;\n margin: 0;\n border: 1px solid blue;\n border-radius: 0.2em;\n\n .arrow i {\n font-size: 1.2em;\n float: right;\n border-left: 0.25em solid transparent;\n border-right: 0.25em solid transparent;\n will-change: transform;\n transform: rotateZ(90deg);\n transition: transform 0.2s;\n }\n\n ul {\n margin: 0;\n padding-left: 1em;\n transition: height 0.2s;\n will-change: transition;\n }\n\n > ul {\n padding-left: 0;\n }\n\n li {\n list-style: none;\n display: block;\n overflow-y: hidden;\n overflow-x: hidden;\n }\n\n a {\n display: flex;\n align-items: center;\n cursor: pointer;\n padding: 0.5em 1em;\n div.content {\n width: 100%;\n }\n div.arrow {\n min-width: 1em;\n }\n }\n\n a ~ ul {\n height: 0;\n }\n\n a.show {\n .arrow i {\n transform: rotateZ(180deg);\n }\n }\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: MenuStyleParam = {}): string {\n const css = `\n ${this._hoverColor(style)}\n ${this._arrowColor(style)}\n `.trim();\n return css;\n }\n\n static _hoverColor(style: MenuStyleParam = {}): string {\n if (style.hoverColor == undefined) { return '' };\n let arrowColor = 'black';\n if (Color(style.hoverColor).isDark()) {\n arrowColor = 'white';\n }\n return `\n a {\n -webkit-tap-highlight-color: ${Color(style.hoverColor)};\n }\n a:hover {\n ${bgColor(style.hoverColor)};\n .arrow i {\n border-bottom-color: ${arrowColor};\n }\n }\n `.trim();\n }\n static _arrowColor(style: MenuStyleParam = {}): string {\n if (style.arrowColor == undefined) { return '' };\n return `\n .arrow i {\n border-bottom: 0.25em solid ${style.arrowColor};\n }\n `.trim();\n }\n}", "import { StyleClass } from \"@nitipit/adapter/src/adapter\";\nimport { bgColor } from \"../../style\";\nconst Color = require('color');\n\n\nexport interface TableStyleParam {\n theadBgColor?: string;\n activeColor?: string;\n verticalLine?: boolean;\n horizontalLine?: boolean;\n}\n\n\nexport class TableStyle extends StyleClass {\n static readonly default: TableStyleParam = {\n theadBgColor: '#ccc',\n activeColor: 'blue',\n horizontalLine: true,\n verticalLine: true,\n }\n static css(style: TableStyleParam = {}): string {\n style = {...this.default, ...style};\n const css = `\n display: block;\n overflow: auto;\n border: 1px solid;\n border-collapse: separate;\n border-spacing: 0;\n\n thead {\n font-weight: bold;\n }\n th, td {\n padding: 0.5rem;\n }\n ${this.style(style)}\n `.trim();\n\n return css;\n }\n\n static style(style: TableStyleParam = {}): string {\n const css = `\n ${this._theadBgColor(style)}\n ${this._activeColor(style)}\n ${this._horizontalLine(style)}\n ${this._verticalLine(style)}\n `.trim();\n return css;\n }\n\n static _theadBgColor(style: TableStyleParam = {}): string {\n if (style.theadBgColor == undefined) { return '' };\n return `\n thead {\n ${bgColor(style.theadBgColor)}\n }`.trim();\n }\n\n static _activeColor(style: TableStyleParam = {}): string {\n if (style.activeColor == undefined) { return '' };\n return `\n tbody td:hover {\n ${bgColor(style.activeColor)}\n &::selection {\n ${bgColor(Color(style.activeColor).rotate(180))}\n }\n }\n `.trim();\n }\n\n static _horizontalLine(style: TableStyleParam = {}): string {\n if (style.horizontalLine == undefined) { return '' };\n let horizontalLineCSS = null;\n if (style.horizontalLine) {\n horizontalLineCSS = `\n td, th {\n border-bottom: 1px solid;\n }\n thead {\n td, th {\n border-bottom: 3px double;\n }\n }`.trim();\n } else {\n horizontalLineCSS = `\n td, th {\n border-bottom: 0;\n }\n thead {\n td, th {\n border-bottom: 0;\n }\n }`.trim();\n }\n return horizontalLineCSS;\n }\n\n static _verticalLine(style: TableStyleParam = {}): string {\n if (style.verticalLine == undefined) { return };\n let verticalLineCSS = null;\n if (style.verticalLine) {\n verticalLineCSS = `\n td:not(:first-child), th:not(:first-child) {\n border-left: 1px solid;\n }`.trim();\n } else {\n verticalLineCSS = `\n td:not(:first-child), th:not(:first-child) {\n border-left: 0;\n }`.trim();\n }\n return verticalLineCSS;\n }\n}", "const color = {\n blue: \"#3584e4\",\n green: \"#33d17a\",\n yellow: \"#f6d32d\",\n orange: \"#ff7800\",\n red: \"#e01b24\",\n purple: \"#9141ac\",\n violet: \"#9141ac\",\n brown: \"#986a44\",\n light: \"#deddda\",\n dark: \"#3d3846\"\n}\n\nexport { color };", "import { Adapter } from '@devcapsule/adapter';\nimport { bgColor } from 'gadjet/src/gadjet';\nimport { color } from '../designToken'; \n\nclass CodeBlock extends Adapter {};\n\nCodeBlock.tagStyle(/*css*/`\n & {\n display: block;\n margin: auto;\n margin-top: 1.5rem;\n max-width: 80ch;\n line-height: 1.5;\n }\n [el=\"bar-top-left\"] {\n display: inline-flex;\n ${bgColor(color.yellow)}\n border-top-left-radius: 0.4em;\n border-top-right-radius: 0.4em;\n line-height: 2;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n font-size: 0.8rem;\n }\n & pre {\n margin-top: 0;\n font-size: 0.8rem;\n & code {\n all: unset;\n border-bottom-left-radius: 0.4em;\n border-bottom-right-radius: 0.4em;\n border-top-right-radius: 0.4em;\n }\n }\n`)\n\nexport { CodeBlock };"], + "mappings": "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", + "names": ["slice", "i", "prefix", "match", "i", "i2", "a", "w", "r", "r", "diff", "c", "w", "y", "x", "z", "a", "i", "p", "q", "y2", "x2", "z2", "hr", "color", "match", "char", "i", "node", "from", "i", "Color", "i", "color", "p", "w", "a", "w2", "length", "sleepSync", "ms", "end", "time", "uuid", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "value", "replace", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "root", "parent", "type", "props", "children", "siblings", "char", "prev", "next", "peek", "caret", "slice", "token", "alloc", "dealloc", "delimit", "delimiter", "whitespace", "escaping", "count", "commenter", "identifier", "compile", "parse", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "offset", "atrule", "property", "previous", "variable", "scanning", "ampersand", "reference", "comment", "declaration", "ruleset", "post", "size", "i", "j", "k", "x", "y", "z", "serialize", "callback", "output", "stringify", "element", "stylis", "css", "AdapterMixin", "Base", "args", "css", "superClass", "inheritedStyles", "superCSSStyleSheet", "rule", "processedCss", "tagName", "class_", "uuid", "index", "Adapter", "stylis", "tag", "i", "StyleSheet", "isImportRule", "sheet", "length", "length", "length", "character", "characters", "i", "j", "x", "y", "z", "length", "i", "length", "i", "cache", "character", "i", "j", "cache", "node", "length", "sheet", "i", "match", "next", "i", "cache", "cache", "css", "keyframes", "injectGlobal", "cx", "classnames", "i", "merge", "getRegisteredStyles", "event", "color", "_", "node", "i", "esm_default", "prefix", "svg", "text", "length", "_", "slice", "node", "length", "slice", "i", "esm_default", "a", "node", "i", "node", "i", "comment", "esm_default", "text", "slice", "node", "document", "create", "html", "append", "length", "svg", "esm_default", "text", "esm_default", "node", "prefix", "cache", "createCache", "text", "esm_default", "length", "i", "cache", "ref", "createCache", "Color", "Color", "Color", "Color", "Color", "Color"] +} diff --git a/docs/_ux/ui/menu.js b/docs/_ux/ui/menu.js new file mode 100644 index 0000000..e5fc7b7 --- /dev/null +++ b/docs/_ux/ui/menu.js @@ -0,0 +1,546 @@ +var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])( +(mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from== +"function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!== +except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from, +key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)): +{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod, +enumerable:!0}):target,mod));var require_color_name=__commonJS({"node_modules/color-name/index.js"(exports,module){ +"use strict";module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215], +aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220], +bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[ +138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[ +127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237], +cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[ +0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0], +darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[ +85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[ +233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[ +47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211], +deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105, +105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240], +forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[ +248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0, +128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[ +255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[ +240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252, +0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[ +224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[ +144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160, +122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136, +153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255, +255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0, +255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[ +186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[ +123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[ +199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228, +225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253, +245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[ +255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152], +paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213], +peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221], +powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255, +0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[ +250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238], +sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90, +205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[ +0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216, +191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245, +222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[ +154,205,50]}}});var require_is_arrayish=__commonJS({"node_modules/simple-swizzle/node_modules/is\ +-arrayish/index.js"(exports,module){module.exports=__name(function(obj){return!obj|| +typeof obj=="string"?!1:obj instanceof Array||Array.isArray(obj)||obj.length>=0&& +(obj.splice instanceof Function||Object.getOwnPropertyDescriptor(obj,obj.length- +1)&&obj.constructor.name!=="String")},"isArrayish")}});var require_simple_swizzle=__commonJS({"node_modules/simple-swizzle/index.js"(exports,module){ +"use strict";var isArrayish=require_is_arrayish(),concat=Array.prototype.concat, +slice=Array.prototype.slice,swizzle=module.exports=__name(function(args){for(var results=[], +i2=0,len=args.length;i2=4&&hwba[3]!==1&&(a2=", "+hwba[3]),"hwb("+hwba[0]+ +", "+hwba[1]+"%, "+hwba[2]+"%"+a2+")"};cs.to.keyword=function(rgb){return reverseNames[rgb. +slice(0,3)]};function clamp(num,min,max){return Math.min(Math.max(min,num),max)} +__name(clamp,"clamp");function hexDouble(num){var str=Math.round(num).toString(16). +toUpperCase();return str.length<2?"0"+str:str}__name(hexDouble,"hexDouble")}});var require_conversions=__commonJS({"node_modules/color-convert/conversions.js"(exports,module){ +var cssKeywords=require_color_name(),reverseKeywords={};for(let key of Object.keys( +cssKeywords))reverseKeywords[cssKeywords[key]]=key;var convert={rgb:{channels:3, +labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3, +labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{ +channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["\ +hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi1\ +6"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]}, +apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}}; +module.exports=convert;for(let model of Object.keys(convert)){if(!("channels"in convert[model])) +throw new Error("missing channels property: "+model);if(!("labels"in convert[model])) +throw new Error("missing channel labels property: "+model);if(convert[model].labels. +length!==convert[model].channels)throw new Error("channel and label counts misma\ +tch: "+model);let{channels,labels}=convert[model];delete convert[model].channels, +delete convert[model].labels,Object.defineProperty(convert[model],"channels",{value:channels}), +Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){ +let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,min=Math.min(r2,g,b),max=Math.max(r2, +g,b),delta=max-min,h,s;max===min?h=0:r2===max?h=(g-b)/delta:g===max?h=2+(b-r2)/delta: +b===max&&(h=4+(r2-g)/delta),h=Math.min(h*60,360),h<0&&(h+=360);let l=(min+max)/2; +return max===min?s=0:l<=.5?s=delta/(max+min):s=delta/(2-max-min),[h,s*100,l*100]}; +convert.rgb.hsv=function(rgb){let rdif,gdif,bdif,h,s,r2=rgb[0]/255,g=rgb[1]/255, +b=rgb[2]/255,v=Math.max(r2,g,b),diff=v-Math.min(r2,g,b),diffc=__name(function(c2){ +return(v-c2)/6/diff+1/2},"diffc");return diff===0?(h=0,s=0):(s=diff/v,rdif=diffc( +r2),gdif=diffc(g),bdif=diffc(b),r2===v?h=bdif-gdif:g===v?h=1/3+rdif-bdif:b===v&& +(h=2/3+gdif-rdif),h<0?h+=1:h>1&&(h-=1)),[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){ +let r2=rgb[0],g=rgb[1],b=rgb[2],h=convert.rgb.hsl(rgb)[0],w2=1/255*Math.min(r2,Math. +min(g,b));return b=1-1/255*Math.max(r2,Math.max(g,b)),[h,w2*100,b*100]};convert. +rgb.cmyk=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,k=Math.min(1- +r2,1-g,1-b),c2=(1-r2-k)/(1-k)||0,m=(1-g-k)/(1-k)||0,y2=(1-b-k)/(1-k)||0;return[c2* +100,m*100,y2*100,k*100]};function comparativeDistance(x2,y2){return(x2[0]-y2[0])** +2+(x2[1]-y2[1])**2+(x2[2]-y2[2])**2}__name(comparativeDistance,"comparativeDista\ +nce");convert.rgb.keyword=function(rgb){let reversed=reverseKeywords[rgb];if(reversed) +return reversed;let currentClosestDistance=1/0,currentClosestKeyword;for(let keyword of Object. +keys(cssKeywords)){let value=cssKeywords[keyword],distance=comparativeDistance(rgb, +value);distance +.04045?((r2+.055)/1.055)**2.4:r2/12.92,g=g>.04045?((g+.055)/1.055)**2.4:g/12.92, +b=b>.04045?((b+.055)/1.055)**2.4:b/12.92;let x2=r2*.4124+g*.3576+b*.1805,y2=r2*.2126+ +g*.7152+b*.0722,z2=r2*.0193+g*.1192+b*.9505;return[x2*100,y2*100,z2*100]};convert. +rgb.lab=function(rgb){let xyz=convert.rgb.xyz(rgb),x2=xyz[0],y2=xyz[1],z2=xyz[2]; +x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116,y2=y2>.008856? +y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116;let l=116*y2-16, +a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.hsl.rgb=function(hsl){let h=hsl[0]/ +360,s=hsl[1]/100,l=hsl[2]/100,t2,t3,val;if(s===0)return val=l*255,[val,val,val]; +l<.5?t2=l*(1+s):t2=l+s-l*s;let t1=2*l-t2,rgb=[0,0,0];for(let i2=0;i2<3;i2++)t3=h+ +1/3*-(i2-1),t3<0&&t3++,t3>1&&t3--,6*t3<1?val=t1+(t2-t1)*6*t3:2*t3<1?val=t2:3*t3< +2?val=t1+(t2-t1)*(2/3-t3)*6:val=t1,rgb[i2]=val*255;return rgb};convert.hsl.hsv=function(hsl){ +let h=hsl[0],s=hsl[1]/100,l=hsl[2]/100,smin=s,lmin=Math.max(l,.01);l*=2,s*=l<=1? +l:2-l,smin*=lmin<=1?lmin:2-lmin;let v=(l+s)/2,sv=l===0?2*smin/(lmin+smin):2*s/(l+ +s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){let h=hsv[0]/60,s=hsv[1]/ +100,v=hsv[2]/100,hi=Math.floor(h)%6,f=h-Math.floor(h),p2=255*v*(1-s),q2=255*v*(1- +s*f),t=255*v*(1-s*(1-f));switch(v*=255,hi){case 0:return[v,t,p2];case 1:return[q2, +v,p2];case 2:return[p2,v,t];case 3:return[p2,q2,v];case 4:return[t,p2,v];case 5: +return[v,p2,q2]}};convert.hsv.hsl=function(hsv){let h=hsv[0],s=hsv[1]/100,v=hsv[2]/ +100,vmin=Math.max(v,.01),sl,l;l=(2-s)*v;let lmin=(2-s)*vmin;return sl=s*vmin,sl/= +lmin<=1?lmin:2-lmin,sl=sl||0,l/=2,[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){ +let h=hwb[0]/360,wh=hwb[1]/100,bl=hwb[2]/100,ratio=wh+bl,f;ratio>1&&(wh/=ratio,bl/= +ratio);let i2=Math.floor(6*h),v=1-bl;f=6*h-i2,i2&1&&(f=1-f);let n=wh+f*(v-wh),r2, +g,b;switch(i2){default:case 6:case 0:r2=v,g=n,b=wh;break;case 1:r2=n,g=v,b=wh;break;case 2: +r2=wh,g=v,b=n;break;case 3:r2=wh,g=n,b=v;break;case 4:r2=n,g=wh,b=v;break;case 5: +r2=v,g=wh,b=n;break}return[r2*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){ +let c2=cmyk[0]/100,m=cmyk[1]/100,y2=cmyk[2]/100,k=cmyk[3]/100,r2=1-Math.min(1,c2* +(1-k)+k),g=1-Math.min(1,m*(1-k)+k),b=1-Math.min(1,y2*(1-k)+k);return[r2*255,g*255, +b*255]};convert.xyz.rgb=function(xyz){let x2=xyz[0]/100,y2=xyz[1]/100,z2=xyz[2]/ +100,r2,g,b;return r2=x2*3.2406+y2*-1.5372+z2*-.4986,g=x2*-.9689+y2*1.8758+z2*.0415, +b=x2*.0557+y2*-.204+z2*1.057,r2=r2>.0031308?1.055*r2**(1/2.4)-.055:r2*12.92,g=g> +.0031308?1.055*g**(1/2.4)-.055:g*12.92,b=b>.0031308?1.055*b**(1/2.4)-.055:b*12.92, +r2=Math.min(Math.max(0,r2),1),g=Math.min(Math.max(0,g),1),b=Math.min(Math.max(0, +b),1),[r2*255,g*255,b*255]};convert.xyz.lab=function(xyz){let x2=xyz[0],y2=xyz[1], +z2=xyz[2];x2/=95.047,y2/=100,z2/=108.883,x2=x2>.008856?x2**(1/3):7.787*x2+16/116, +y2=y2>.008856?y2**(1/3):7.787*y2+16/116,z2=z2>.008856?z2**(1/3):7.787*z2+16/116; +let l=116*y2-16,a2=500*(x2-y2),b=200*(y2-z2);return[l,a2,b]};convert.lab.xyz=function(lab){ +let l=lab[0],a2=lab[1],b=lab[2],x2,y2,z2;y2=(l+16)/116,x2=a2/500+y2,z2=y2-b/200; +let y22=y2**3,x22=x2**3,z22=z2**3;return y2=y22>.008856?y22:(y2-16/116)/7.787,x2= +x22>.008856?x22:(x2-16/116)/7.787,z2=z22>.008856?z22:(z2-16/116)/7.787,x2*=95.047, +y2*=100,z2*=108.883,[x2,y2,z2]};convert.lab.lch=function(lab){let l=lab[0],a2=lab[1], +b=lab[2],h;h=Math.atan2(b,a2)*360/2/Math.PI,h<0&&(h+=360);let c2=Math.sqrt(a2*a2+ +b*b);return[l,c2,h]};convert.lch.lab=function(lch){let l=lch[0],c2=lch[1],hr2=lch[2]/ +360*2*Math.PI,a2=c2*Math.cos(hr2),b=c2*Math.sin(hr2);return[l,a2,b]};convert.rgb. +ansi16=function(args,saturation=null){let[r2,g,b]=args,value=saturation===null?convert. +rgb.hsv(args)[2]:saturation;if(value=Math.round(value/50),value===0)return 30;let ansi=30+ +(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r2/255));return value===2&& +(ansi+=60),ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert. +hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){let r2=args[0],g=args[1], +b=args[2];return r2===g&&g===b?r2<8?16:r2>248?231:Math.round((r2-8)/247*24)+232: +16+36*Math.round(r2/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5)};convert.ansi16. +rgb=function(args){let color2=args%10;if(color2===0||color2===7)return args>50&& +(color2+=3.5),color2=color2/10.5*255,[color2,color2,color2];let mult=(~~(args>50)+ +1)*.5,r2=(color2&1)*mult*255,g=(color2>>1&1)*mult*255,b=(color2>>2&1)*mult*255;return[ +r2,g,b]};convert.ansi256.rgb=function(args){if(args>=232){let c2=(args-232)*10+8; +return[c2,c2,c2]}args-=16;let rem,r2=Math.floor(args/36)/5*255,g=Math.floor((rem= +args%36)/6)/5*255,b=rem%6/5*255;return[r2,g,b]};convert.rgb.hex=function(args){let string=(((Math. +round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255)). +toString(16).toUpperCase();return"000000".substring(string.length)+string};convert. +hex.rgb=function(args){let match=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); +if(!match)return[0,0,0];let colorString=match[0];match[0].length===3&&(colorString= +colorString.split("").map(char=>char+char).join(""));let integer=parseInt(colorString, +16),r2=integer>>16&255,g=integer>>8&255,b=integer&255;return[r2,g,b]};convert.rgb. +hcg=function(rgb){let r2=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,max=Math.max(Math. +max(r2,g),b),min=Math.min(Math.min(r2,g),b),chroma=max-min,grayscale,hue;return chroma< +1?grayscale=min/(1-chroma):grayscale=0,chroma<=0?hue=0:max===r2?hue=(g-b)/chroma% +6:max===g?hue=2+(b-r2)/chroma:hue=4+(r2-g)/chroma,hue/=6,hue%=1,[hue*360,chroma* +100,grayscale*100]};convert.hsl.hcg=function(hsl){let s=hsl[1]/100,l=hsl[2]/100, +c2=l<.5?2*s*l:2*s*(1-l),f=0;return c2<1&&(f=(l-.5*c2)/(1-c2)),[hsl[0],c2*100,f*100]}; +convert.hsv.hcg=function(hsv){let s=hsv[1]/100,v=hsv[2]/100,c2=s*v,f=0;return c2< +1&&(f=(v-c2)/(1-c2)),[hsv[0],c2*100,f*100]};convert.hcg.rgb=function(hcg){let h=hcg[0]/ +360,c2=hcg[1]/100,g=hcg[2]/100;if(c2===0)return[g*255,g*255,g*255];let pure=[0,0, +0],hi=h%1*6,v=hi%1,w2=1-v,mg=0;switch(Math.floor(hi)){case 0:pure[0]=1,pure[1]=v, +pure[2]=0;break;case 1:pure[0]=w2,pure[1]=1,pure[2]=0;break;case 2:pure[0]=0,pure[1]= +1,pure[2]=v;break;case 3:pure[0]=0,pure[1]=w2,pure[2]=1;break;case 4:pure[0]=v,pure[1]= +0,pure[2]=1;break;default:pure[0]=1,pure[1]=0,pure[2]=w2}return mg=(1-c2)*g,[(c2* +pure[0]+mg)*255,(c2*pure[1]+mg)*255,(c2*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){ +let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2),f=0;return v>0&&(f=c2/v),[hcg[0],f* +100,v*100]};convert.hcg.hsl=function(hcg){let c2=hcg[1]/100,l=hcg[2]/100*(1-c2)+ +.5*c2,s=0;return l>0&&l<.5?s=c2/(2*l):l>=.5&&l<1&&(s=c2/(2*(1-l))),[hcg[0],s*100, +l*100]};convert.hcg.hwb=function(hcg){let c2=hcg[1]/100,g=hcg[2]/100,v=c2+g*(1-c2); +return[hcg[0],(v-c2)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){let w2=hwb[1]/ +100,v=1-hwb[2]/100,c2=v-w2,g=0;return c2<1&&(g=(v-c2)/(1-c2)),[hwb[0],c2*100,g*100]}; +convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/ +65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535, +rgb[2]/255*65535]};convert.gray.rgb=function(args){return[args[0]/100*255,args[0]/ +100*255,args[0]/100*255]};convert.gray.hsl=function(args){return[0,0,args[0]]};convert. +gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){return[0,100,gray[0]]}; +convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert.gray.lab=function(gray){ +return[gray[0],0,0]};convert.gray.hex=function(gray){let val=Math.round(gray[0]/ +100*255)&255,string=((val<<16)+(val<<8)+val).toString(16).toUpperCase();return"0\ +00000".substring(string.length)+string};convert.rgb.gray=function(rgb){return[(rgb[0]+ +rgb[1]+rgb[2])/3/255*100]}}});var require_route=__commonJS({"node_modules/color-convert/route.js"(exports,module){ +var conversions=require_conversions();function buildGraph(){let graph={},models=Object. +keys(conversions);for(let len=models.length,i2=0;i21&&(args=arg0),fn(args))},"wrappedFn");return"\ +conversion"in fn&&(wrappedFn.conversion=fn.conversion),wrappedFn}__name(wrapRaw, +"wrapRaw");function wrapRounded(fn){let wrappedFn=__name(function(...args){let arg0=args[0]; +if(arg0==null)return arg0;arg0.length>1&&(args=arg0);let result=fn(args);if(typeof result== +"object")for(let len=result.length,i2=0;i2{convert[fromModel]= +{},Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel]. +channels}),Object.defineProperty(convert[fromModel],"labels",{value:conversions[fromModel]. +labels});let routes=route(fromModel);Object.keys(routes).forEach(toModel=>{let fn=routes[toModel]; +convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrapRaw( +fn)})});module.exports=convert}});var require_color=__commonJS({"node_modules/color/index.js"(exports,module){var colorString=require_color_string(), +convert=require_color_convert(),skippedModels=["keyword","gray","hex"],hashedModelKeys={}; +for(let model of Object.keys(convert))hashedModelKeys[[...convert[model].labels]. +sort().join("")]=model;var limiters={};function Color2(object,model){if(!(this instanceof +Color2))return new Color2(object,model);if(model&&model in skippedModels&&(model= +null),model&&!(model in convert))throw new Error("Unknown model: "+model);let i2, +channels;if(object==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(object instanceof +Color2)this.model=object.model,this.color=[...object.color],this.valpha=object.valpha;else if(typeof object== +"string"){let result=colorString.get(object);if(result===null)throw new Error("U\ +nable to parse color from string: "+object);this.model=result.model,channels=convert[this. +model].channels,this.color=result.value.slice(0,channels),this.valpha=typeof result. +value[channels]=="number"?result.value[channels]:1}else if(object.length>0){this. +model=model||"rgb",channels=convert[this.model].channels;let newArray=Array.prototype. +slice.call(object,0,channels);this.color=zeroArray(newArray,channels),this.valpha= +typeof object[channels]=="number"?object[channels]:1}else if(typeof object=="num\ +ber")this.model="rgb",this.color=[object>>16&255,object>>8&255,object&255],this. +valpha=1;else{this.valpha=1;let keys=Object.keys(object);"alpha"in object&&(keys. +splice(keys.indexOf("alpha"),1),this.valpha=typeof object.alpha=="number"?object. +alpha:0);let hashedKeys=keys.sort().join("");if(!(hashedKeys in hashedModelKeys)) +throw new Error("Unable to parse color from object: "+JSON.stringify(object));this. +model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color2=[];for(i2= +0;i2(value%360+360)%360),saturationl:getset("hsl",1,maxfn(100)), +lightness:getset("hsl",2,maxfn(100)),saturationv:getset("hsv",1,maxfn(100)),value:getset( +"hsv",2,maxfn(100)),chroma:getset("hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn( +100)),white:getset("hwb",1,maxfn(100)),wblack:getset("hwb",2,maxfn(100)),cyan:getset( +"cmyk",0,maxfn(100)),magenta:getset("cmyk",1,maxfn(100)),yellow:getset("cmyk",2, +maxfn(100)),black:getset("cmyk",3,maxfn(100)),x:getset("xyz",0,maxfn(95.047)),y:getset( +"xyz",1,maxfn(100)),z:getset("xyz",2,maxfn(108.833)),l:getset("lab",0,maxfn(100)), +a:getset("lab",1),b:getset("lab",2),keyword(value){return value!==void 0?new Color2( +value):convert[this.model].keyword(this.color)},hex(value){return value!==void 0? +new Color2(value):colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!== +void 0)return new Color2(value);let rgbArray=this.rgb().round().color,alphaHex=Math. +round(this.valpha*255).toString(16).toUpperCase();return alphaHex.length===1&&(alphaHex= +"0"+alphaHex),colorString.to.hex(rgbArray)+alphaHex},rgbNumber(){let rgb=this.rgb(). +color;return(rgb[0]&255)<<16|(rgb[1]&255)<<8|rgb[2]&255},luminosity(){let rgb=this. +rgb().color,lum=[];for(let[i2,element]of rgb.entries()){let chan=element/255;lum[i2]= +chan<=.04045?chan/12.92:((chan+.055)/1.055)**2.4}return .2126*lum[0]+.7152*lum[1]+ +.0722*lum[2]},contrast(color2){let lum1=this.luminosity(),lum2=color2.luminosity(); +return lum1>lum2?(lum1+.05)/(lum2+.05):(lum2+.05)/(lum1+.05)},level(color2){let contrastRatio=this. +contrast(color2);return contrastRatio>=7?"AAA":contrastRatio>=4.5?"AA":""},isDark(){ +let rgb=this.rgb().color;return(rgb[0]*2126+rgb[1]*7152+rgb[2]*722)/1e4<128},isLight(){ +return!this.isDark()},negate(){let rgb=this.rgb();for(let i2=0;i2<3;i2++)rgb.color[i2]= +255-rgb.color[i2];return rgb},lighten(ratio){let hsl=this.hsl();return hsl.color[2]+= +hsl.color[2]*ratio,hsl},darken(ratio){let hsl=this.hsl();return hsl.color[2]-=hsl. +color[2]*ratio,hsl},saturate(ratio){let hsl=this.hsl();return hsl.color[1]+=hsl. +color[1]*ratio,hsl},desaturate(ratio){let hsl=this.hsl();return hsl.color[1]-=hsl. +color[1]*ratio,hsl},whiten(ratio){let hwb=this.hwb();return hwb.color[1]+=hwb.color[1]* +ratio,hwb},blacken(ratio){let hwb=this.hwb();return hwb.color[2]+=hwb.color[2]*ratio, +hwb},grayscale(){let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11; +return Color2.rgb(value,value,value)},fade(ratio){return this.alpha(this.valpha- +this.valpha*ratio)},opaquer(ratio){return this.alpha(this.valpha+this.valpha*ratio)}, +rotate(degrees){let hsl=this.hsl(),hue=hsl.color[0];return hue=(hue+degrees)%360, +hue=hue<0?360+hue:hue,hsl.color[0]=hue,hsl},mix(mixinColor,weight){if(!mixinColor|| +!mixinColor.rgb)throw new Error('Argument to "mix" was not a Color instance, but\ + rather an instance of '+typeof mixinColor);let color1=mixinColor.rgb(),color2=this. +rgb(),p2=weight===void 0?.5:weight,w2=2*p2-1,a2=color1.alpha()-color2.alpha(),w1=((w2* +a2===-1?w2:(w2+a2)/(1+w2*a2))+1)/2,w22=1-w1;return Color2.rgb(w1*color1.red()+w22* +color2.red(),w1*color1.green()+w22*color2.green(),w1*color1.blue()+w22*color2.blue(), +color1.alpha()*p2+color2.alpha()*(1-p2))}};for(let model of Object.keys(convert)){ +if(skippedModels.includes(model))continue;let{channels}=convert[model];Color2.prototype[model]= +function(...args){return this.model===model?new Color2(this):args.length>0?new Color2( +args,model):new Color2([...assertArray(convert[this.model][model].raw(this.color)), +this.valpha],model)},Color2[model]=function(...args){let color2=args[0];return typeof color2== +"number"&&(color2=zeroArray(args,channels)),new Color2(color2,model)}}function roundTo(number,places){ +return Number(number.toFixed(places))}__name(roundTo,"roundTo");function roundToPlace(places){ +return function(number){return roundTo(number,places)}}__name(roundToPlace,"roun\ +dToPlace");function getset(model,channel,modifier){model=Array.isArray(model)?model: +[model];for(let m of model)(limiters[m]||(limiters[m]=[]))[channel]=modifier;return model= +model[0],function(value){let result;return value!==void 0?(modifier&&(value=modifier( +value)),result=this[model](),result.color[channel]=value,result):(result=this[model](). +color[channel],modifier&&(result=modifier(result)),result)}}__name(getset,"getse\ +t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}__name( +maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} +__name(assertArray,"assertArray");function zeroArray(array,length){for(let i2=0;i2< +length;i2++)typeof array[i2]!="number"&&(array[i2]=0);return array}__name(zeroArray, +"zeroArray");module.exports=Color2}});function i(t){let n=new Date().getTime()+t,e=new Date().getTime();for(;e0?O(I,--p):0,L--,c===10&&(L=1,j--),c}__name(nr,"nr");function x(){return c= +p2||Z(c)>3?"":" "}__name(or,"or");function ir(r2,e){for(;--e&& +x()&&!(c<48||c>102||c>57&&c<65||c>70&&c<97););return W(r2,F()+(e<6&&w()==32&&x()== +32))}__name(ir,"ir");function q(r2){for(;x();)switch(c){case r2:return p;case 34:case 39: +r2!==34&&r2!==39&&q(c);break;case 40:r2===41&&q(r2);break;case 92:x();break}return p} +__name(q,"q");function sr(r2,e){for(;x()&&r2+c!==47+10&&!(r2+c===42+42&&w()===47);) +;return"/*"+W(e,p-1)+"*"+z(r2===47?r2:x())}__name(sr,"sr");function fr(r2){for(;!Z( +w());)x();return W(r2,p)}__name(fr,"fr");function xr(r2){return cr(G("",null,null, +null,[""],r2=ar(r2),0,[0],r2))}__name(xr,"xr");function G(r2,e,a2,n,i2,l,M,v,b){ +for(var C=0,E=0,s=M,S=0,k=0,T=0,f=1,U=1,m=1,o=0,d2="",A=i2,g=l,h=n,t=d2;U;)switch(T= +o,o=x()){case 40:if(T!=108&&O(t,s-1)==58){y(t+=P(B(o),"&","&\f"),"&\f")!=-1&&(m= +-1);break}case 34:case 39:case 91:t+=B(o);break;case 9:case 10:case 13:case 32:t+= +or(T);break;case 92:t+=ir(F()-1,7);continue;case 47:switch(w()){case 42:case 47: +N(hr(sr(x(),F()),e,a2,b),b);break;default:t+="/"}break;case 123*f:v[C++]=u(t)*m;case 125* +f:case 59:case 0:switch(o){case 0:case 125:U=0;case 59+E:m==-1&&(t=P(t,/\f/g,"")), +k>0&&u(t)-s&&N(k>32?pr(t+";",n,a2,s-1,b):pr(P(t," ","")+";",n,a2,s-2,b),b);break;case 59: +t+=";";default:if(N(h=ur(t,e,a2,C,E,i2,v,d2,A=[],g=[],s,l),l),o===123)if(E===0)G( +t,e,h,h,A,l,s,v,g);else switch(S===99&&O(t,3)===110?100:S){case 100:case 108:case 109:case 115: +G(r2,h,h,n&&N(ur(r2,h,h,0,0,i2,v,d2,i2,A=[],s,g),g),i2,g,s,v,n?A:g);break;default: +G(t,h,h,h,[""],g,0,v,g)}}C=E=k=0,f=m=1,d2=t="",s=M;break;case 58:s=1+u(t),k=T;default: +if(f<1){if(o==123)--f;else if(o==125&&f++==0&&nr()==125)continue}switch(t+=z(o), +o*f){case 38:m=E>0?1:(t+="\f",-1);break;case 44:v[C++]=(u(t)-1)*m,m=1;break;case 64: +w()===45&&(t+=B(x())),S=w(),E=s=u(d2=t+=fr(F())),o++;break;case 45:T===45&&u(t)== +2&&(f=0)}}return l}__name(G,"G");function ur(r2,e,a2,n,i2,l,M,v,b,C,E,s){for(var S=i2- +1,k=i2===0?l:[""],T=rr(k),f=0,U=0,m=0;f0?k[o]+" "+d2:P(d2,/&\f/g,k[o])))&&(b[m++]=A);return V(r2,e, +a2,i2===0?Y:v,b,C,E,s)}__name(ur,"ur");function hr(r2,e,a2,n){return V(r2,e,a2,D, +z(tr()),R(r2,2,-2),0,n)}__name(hr,"hr");function pr(r2,e,a2,n,i2){return V(r2,e, +a2,_,R(r2,0,n),R(r2,n+1,-1),n,i2)}__name(pr,"pr");function H(r2,e){for(var a2="", +n=0;n div.container { + display: block; + box-sizing: border-box; + border-left: 0.2rem groove; + border-bottom-left-radius: 0.3rem; + border-top-left-radius: 0.3rem; + margin-left: 0.6rem; + transition: height 0.3s ease; + } + } + + /** Item CSS */ + div.container { + > div:not(:has(details)), + > div:has(details) summary { + display: flex; + box-sizing: border-box; + padding-left: 0.5rem; + line-height: 2.5; + ${param.itemCSS} + } + } + + /** Item Hover CSS */ + summary:has(> a), div:has(> a) { + &:hover { + ${bgColor(color.light)} + ${param.itemHoverCSS} + } + } + + details > summary > .toggle { + display: flex; + justify-content: center; + align-items: center; + font-size: 1.5rem; + min-width: 3rem; + cursor: pointer; + user-select: none; + outline: none; + -webkit-tap-highlight-color: transparent; + transition: transform 0.3s ease; + transform: rotate(0deg) + } + + details.open > summary > .toggle { + transition: transform 0.3s ease; + transform: rotate(90deg); + } + + summary { + list-style: none; + display: flex; + box-sizing: border-box; + width: 100%; + padding-left: 0.5rem; + } + + a { + width: 100%; + } + `.trim()}__name(menuStyle,"menuStyle");var Menu=class extends d{static{__name( +this,"Menu")}static{this.css=menuStyle()}static{this.style=menuStyle}constructor(){ +super(),this.addEventListener("click",e=>{let target=e.target;if(target.tagName. +toLowerCase()==="summary"){e.preventDefault();return}if(!target.classList.contains( +"toggle"))return;e.preventDefault();let el_details=target.closest(`${this.tagName}\ + summary`);el_details&&(el_details=el_details.parentElement,el_details.open?this. +close(el_details):this.open(el_details))})}open(el_details){el_details||(el_details= +this.querySelector("details")),el_details.classList.add("open");let el_parentContainer=el_details. +parentElement.closest(`${this.tagName} div.container`);el_parentContainer&&(el_parentContainer. +style.height="auto");let el_container=el_details.querySelector("div.container"), +height=pxToRem(getComputedStyle(el_container).height),parentDetailsElement=el_details. +parentElement.closest(`${this.tagName} details`);for(;parentDetailsElement;)parentDetailsElement. +open||this.open(parentDetailsElement),parentDetailsElement=parentDetailsElement. +parentElement.closest("details");return el_details.open=!0,el_container.style.height= +"0",setTimeout(()=>{el_container.style.height=height},0),this}expand(el_details){ +let childDetailsElement=el_details.querySelector("details");for(;childDetailsElement;) +this.open(childDetailsElement),childDetailsElement=childDetailsElement.querySelector( +"details")}close(el_details){el_details.classList.remove("open");let el_container=el_details. +querySelector("div.container");el_container.style.height=pxToRem(getComputedStyle( +el_container).height),setTimeout(()=>{el_container.style.height="0"},0),setTimeout( +()=>{el_details.open=!1,el_container.style.height="auto"},300)}collapse(el_details){ +this.close(el_details);let childDetailsElement=el_details.querySelector("details"); +for(;childDetailsElement;)this.close(childDetailsElement),childDetailsElement=childDetailsElement. +querySelector("details")}};export{Menu}; +//# sourceMappingURL=menu.js.map diff --git a/docs/_ux/ui/menu.js.map b/docs/_ux/ui/menu.js.map new file mode 100644 index 0000000..8555a56 --- /dev/null +++ b/docs/_ux/ui/menu.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/color-name/index.js", "../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "../../../node_modules/simple-swizzle/index.js", "../../../node_modules/color-string/index.js", "../../../node_modules/color-convert/conversions.js", "../../../node_modules/color-convert/route.js", "../../../node_modules/color-convert/index.js", "../../../node_modules/color/index.js", "../../../src/util.ts", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../src/cssProcessor/stylis.bundle.ts", "../../../src/adapter.ts", "../../../docs-src/_ux/style.ts", "../../../docs-src/_ux/designToken.ts", "../../../docs-src/_ux/ui/menu.ts"], + "sourcesContent": ["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n", "'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n", "/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n", "/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n", "export function sleepSync(ms: number) {\n const end = new Date().getTime() + ms;\n let time = new Date().getTime();\n while (time < end) {\n time = new Date().getTime();\n }\n return time;\n}\n\nexport function uuid() {\n return sleepSync(1).toString(36);\n}", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import { compile, serialize, stringify } from 'stylis';\n\nexport function stylis(css: string) {\n return serialize(compile(css), stringify);\n}\n", "import { uuid } from './util.js';\nimport { stylis } from './cssProcessor/stylis.bundle.js';\n\ntype Constructor = new (...args: any[]) => T;\n\nexport function AdapterMixin>(\n Base: TBase\n) {\n return class Adapter extends Base {\n /** CSSStyleSheet() for this component */\n static _cssStyleSheet: CSSStyleSheet;\n\n /** Tag name of this component */\n static _tagName: string | null;\n\n /** Styles which contain only css for this component */\n static _styles: string[] = [];\n\n /** CSS Process middleware, This function will be called\n * before applying CSS to CSSStyleSheet.\n */\n static cssProcess(css: string): string {\n return css;\n }\n\n /**\n * Retreive styles for this component,\n * also prevent inherit values from super class.\n */\n static get styles(): string[] {\n if (this._styles === Object.getPrototypeOf(this).styles) {\n this._styles = [];\n }\n return this._styles;\n }\n\n /** Retreive inherited styles for all super classes. */\n static get inheritedStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n let inheritedStyles: string[] = [];\n\n while (superClass.styles !== undefined) {\n inheritedStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n\n return inheritedStyles;\n }\n\n /** Set CSS for this component */\n static set css(css: string) {\n this._styles = [css];\n\n if (this.tagName) {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return [...this.inheritedStyles, ...this.styles].join(\"\\n\");\n }\n\n /** Get tagName for this class which will be defined after\n * the class has been registerd with CustomElementsRegistry.\n */\n static get tagName(): string | null {\n if (this._tagName === Object.getPrototypeOf(this).tagName) {\n this._tagName = null;\n }\n return this._tagName;\n }\n\n /** Get CSSStyleSheet() for this component.\n * Create a new one if haven't been created yet.\n */\n static get cssStyleSheet(): CSSStyleSheet {\n const superCSSStyleSheet = Object.getPrototypeOf(this)._cssStyleSheet;\n if (this._cssStyleSheet === superCSSStyleSheet) {\n this._cssStyleSheet = new CSSStyleSheet();\n }\n return this._cssStyleSheet;\n }\n\n /** Add style to this component */\n static addStyle(css: string) {\n this._styles = this._styles.concat(css);\n\n if (this.tagName) {\n const rule = `${this.tagName} { ${css} }`;\n const processedCss = this.cssProcess(rule);\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n }\n\n /**\n * Define component to element tag and init component style.\n * To extends this function, sub-elements must be defined\n * before call this function as `super.define(tagName);`\n */\n static define(tagName: string): void {\n this._tagName = tagName;\n customElements.define(tagName, this);\n this.initStyle();\n }\n\n /** Init component style */\n static initStyle() {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n\n /** Deprecated, will be removed in v3 */\n static tagStyle(css: string): void {\n console.warn('tagStyle() is deprecated, use addStyle() instead');\n this.addStyle(css);\n }\n\n /** Deprecated, will be removed in v3 */\n static classStyle(class_: string, css: string) {\n console.warn('classStyle() is deprecated, use addStyle() instead');\n this.addStyle(`&.${class_} { ${css} }`);\n }\n\n _class!: typeof Adapter; // instance's class for using as shortcut\n\n _cssStyleSheet?: CSSStyleSheet;\n\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n /**\n * In constructor, there any some if condition to check\n * if it has been inited or not to prevent recursive call in Mixin\n */\n constructor(...args: any[]) {\n super(...args);\n if (this._class) {\n return;\n }\n this._class = this.constructor as unknown as typeof Adapter;\n\n /**\n * If class tagName has been defined from somewhere else.\n * Then it shouldn't be initialized again.\n */\n if (this._class.tagName) {\n return;\n }\n this._class._styles = [];\n this._class._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Dynamically create and return uuid for the element */\n get uuid(): string {\n if (!this._uuid) {\n this._uuid = `${this.tagName}-${uuid()}`;\n }\n return this._uuid;\n }\n\n /**\n * Dynamically create a CSSStyleSheet() and keep track of the adopted\n * stylesheet index for later reference.\n */\n get cssStyleSheet() {\n if (!this._cssStyleSheet) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n this._cssStyleSheet = new CSSStyleSheet();\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\n return this._cssStyleSheet;\n }\n\n /**\n * Return a selector for the this element as a class chain.\n */\n get objectClassSelector(): string {\n return `&.${this.classList.value.replace(/ /g, \".\")}`;\n }\n\n /**\n * Set CSS for this element.\n * It works like `` but with CSS processor.\n */\n set css(css: string) {\n this.cssStyleSheet.replaceSync(\n this._class.cssProcess(`\n ${this.objectClassSelector} { ${css} }\n `)\n );\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n this.cssStyleSheet.insertRule(\n `${this.tagName} {\n ${this.objectClassSelector} { ${css} }\n }`,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this.remove();\n }\n };\n}\n\nexport class Adapter extends AdapterMixin(HTMLElement) {\n static cssProcess(css: string): string {\n return stylis(css);\n }\n}\n", "import Color from \"color\";\n\nfunction bgColor(color) {\n return /*css*/`\n background-color: ${color};\n color: ${Color(color).isDark() ? 'white' : 'black'};\n `.trim();\n}\n\nfunction lift(level: number, color: string = 'black') {\n return `filter: drop-shadow(0 0 ${level * 2}px ${color});`;\n}\n\nfunction pxToRem(px: any) {\n px = parseFloat(px);\n const rem1 = parseFloat(\n getComputedStyle(document.documentElement).fontSize);\n return `${px / rem1}rem`;\n}\n\nconst aspectRatio = (ratio: string = '1/1'): string => {\n return `\n height: auto;\n aspect-ratio: ${ratio};\n @supports not (aspect-ratio: ${ratio}) {\n &::before {\n float: left;\n padding-top: 100% / ${ratio};\n content: \"\";\n }\n\n &::after {\n display: block;\n content: \"\";\n clear: both;\n }\n }\n `.trim();\n}\n\nexport { bgColor, lift, pxToRem, aspectRatio };", "const color = {\n blue: \"#3584e4\",\n green: \"#33d17a\",\n yellow: \"#f6d32d\",\n orange: \"#ff7800\",\n red: \"#e01b24\",\n purple: \"#9141ac\",\n violet: \"#9141ac\",\n brown: \"#986a44\",\n light: \"#deddda\",\n dark: \"#3d3846\"\n}\n\nexport { color };", "import { Adapter } from '@devcapsule/adapter';\nimport { bgColor, pxToRem } from '../style';\nimport { color } from '../designToken';\n\n\ninterface MenuStyleParam {\n itemCSS?: string;\n itemHoverCSS?: string;\n}\n\nfunction menuStyle(param: MenuStyleParam = {}) {\n\n return /*css*/`\n div[class] {all: unset};\n\n & {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n width: 100%;\n }\n\n details, details[class] {\n width: 100%;\n overflow: hidden;\n > div.container {\n display: block;\n box-sizing: border-box;\n border-left: 0.2rem groove;\n border-bottom-left-radius: 0.3rem;\n border-top-left-radius: 0.3rem;\n margin-left: 0.6rem;\n transition: height 0.3s ease;\n }\n }\n\n /** Item CSS */\n div.container {\n > div:not(:has(details)),\n > div:has(details) summary {\n display: flex;\n box-sizing: border-box;\n padding-left: 0.5rem;\n line-height: 2.5;\n ${param.itemCSS}\n }\n }\n\n /** Item Hover CSS */\n summary:has(> a), div:has(> a) {\n &:hover {\n ${bgColor(color.light)}\n ${param.itemHoverCSS}\n }\n }\n\n details > summary > .toggle {\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 1.5rem;\n min-width: 3rem;\n cursor: pointer;\n user-select: none;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n transition: transform 0.3s ease;\n transform: rotate(0deg)\n }\n\n details.open > summary > .toggle {\n transition: transform 0.3s ease;\n transform: rotate(90deg);\n }\n\n summary {\n list-style: none;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n padding-left: 0.5rem;\n }\n\n a {\n width: 100%;\n }\n `.trim();\n}\n\nclass Menu extends Adapter {\n static css = menuStyle();\n static style = menuStyle;\n\n constructor() {\n super();\n this.addEventListener('click', (e) => {\n const target = e.target as HTMLElement;\n if (target.tagName.toLowerCase() === 'summary') {\n e.preventDefault();\n return\n };\n if (!target.classList.contains('toggle')) { \n return;\n };\n e.preventDefault();\n let el_details = target.closest(`${this.tagName} summary`) as HTMLDetailsElement;\n\n if (!el_details) {return};\n el_details = el_details.parentElement as HTMLDetailsElement;\n el_details.open ? this.close(el_details) : this.open(el_details);\n });\n }\n\n open(el_details?: HTMLDetailsElement) {\n if (!el_details) {\n el_details = this.querySelector('details') as HTMLDetailsElement;\n };\n el_details.classList.add('open');\n const el_parentContainer :HTMLElement = el_details\n .parentElement!\n .closest(`${this.tagName} div.container`)! as HTMLElement;\n el_parentContainer ? el_parentContainer.style.height = \"auto\" : null;\n\n const el_container: HTMLElement = el_details\n .querySelector('div.container') as HTMLElement;\n\n const height = pxToRem(getComputedStyle(el_container).height);\n\n let parentDetailsElement = el_details\n .parentElement!\n .closest(`${this.tagName} details`) as HTMLDetailsElement;\n while (parentDetailsElement) {\n parentDetailsElement.open ? null : this.open(parentDetailsElement);\n parentDetailsElement = parentDetailsElement\n .parentElement!\n .closest('details') as HTMLDetailsElement;\n }\n\n el_details.open = true;\n el_container.style.height = \"0\";\n setTimeout(() => {\n el_container.style.height = height;\n }, 0);\n return this;\n }\n\n expand(el_details: HTMLDetailsElement) {\n let childDetailsElement = el_details\n .querySelector('details') as HTMLDetailsElement;\n while (childDetailsElement) {\n this.open(childDetailsElement);\n childDetailsElement = childDetailsElement\n .querySelector('details') as HTMLDetailsElement;\n }\n }\n\n close(el_details: HTMLDetailsElement) {\n el_details.classList.remove('open');\n const el_container: HTMLElement = el_details.querySelector('div.container')!;\n el_container.style.height = pxToRem(getComputedStyle(el_container).height);\n setTimeout(() => {\n el_container.style.height = \"0\";\n }, 0);\n setTimeout(() => {\n el_details.open = false;\n el_container.style.height = \"auto\";\n }, 300);\n }\n\n collapse(el_details: HTMLDetailsElement) {\n this.close(el_details);\n let childDetailsElement = el_details\n .querySelector('details') as HTMLDetailsElement;\n while (childDetailsElement) {\n this.close(childDetailsElement);\n childDetailsElement = childDetailsElement\n .querySelector('details') as HTMLDetailsElement;\n }\n }\n}\n\nexport { Menu };"], + "mappings": "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", + "names": ["i", "i", "i2", "a", "w", "r", "r", "c", "w", "y", "x", "z", "a", "i", "p", "q", "y2", "x2", "z2", "hr", "color", "i", "i", "Color", "i", "color", "p", "w", "a", "w2", "sleepSync", "ms", "end", "time", "uuid", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "value", "replace", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "root", "parent", "type", "props", "children", "siblings", "char", "prev", "next", "peek", "caret", "slice", "token", "alloc", "dealloc", "delimit", "delimiter", "whitespace", "escaping", "count", "commenter", "identifier", "compile", "parse", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "offset", "atrule", "property", "previous", "variable", "scanning", "ampersand", "reference", "comment", "declaration", "ruleset", "post", "size", "i", "j", "k", "x", "y", "z", "serialize", "callback", "output", "stringify", "element", "stylis", "css", "AdapterMixin", "Base", "args", "css", "superClass", "inheritedStyles", "superCSSStyleSheet", "rule", "processedCss", "tagName", "class_", "uuid", "index", "Adapter", "stylis", "color", "Color"] +} diff --git a/docs/_ux/ui/sidebar.js b/docs/_ux/ui/sidebar.js new file mode 100644 index 0000000..ba10f82 --- /dev/null +++ b/docs/_ux/ui/sidebar.js @@ -0,0 +1,118 @@ +var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});function i(t){let n=new Date().getTime()+t,e=new Date().getTime();for(;e0?O(I,--p):0,L--,c===10&&(L=1,j--),c}__name(nr,"nr");function x(){return c= +p2||Z(c)>3?"":" "}__name(or,"or");function ir(r2,e){for(;--e&& +x()&&!(c<48||c>102||c>57&&c<65||c>70&&c<97););return W(r2,F()+(e<6&&w()==32&&x()== +32))}__name(ir,"ir");function q(r2){for(;x();)switch(c){case r2:return p;case 34:case 39: +r2!==34&&r2!==39&&q(c);break;case 40:r2===41&&q(r2);break;case 92:x();break}return p} +__name(q,"q");function sr(r2,e){for(;x()&&r2+c!==47+10&&!(r2+c===42+42&&w()===47);) +;return"/*"+W(e,p-1)+"*"+z(r2===47?r2:x())}__name(sr,"sr");function fr(r2){for(;!Z( +w());)x();return W(r2,p)}__name(fr,"fr");function xr(r2){return cr(G("",null,null, +null,[""],r2=ar(r2),0,[0],r2))}__name(xr,"xr");function G(r2,e,a2,n,i2,l,M,v,b){ +for(var C=0,E=0,s=M,S=0,k=0,T=0,f=1,U=1,m=1,o=0,d2="",A=i2,g=l,h=n,t=d2;U;)switch(T= +o,o=x()){case 40:if(T!=108&&O(t,s-1)==58){y(t+=P(B(o),"&","&\f"),"&\f")!=-1&&(m= +-1);break}case 34:case 39:case 91:t+=B(o);break;case 9:case 10:case 13:case 32:t+= +or(T);break;case 92:t+=ir(F()-1,7);continue;case 47:switch(w()){case 42:case 47: +N(hr(sr(x(),F()),e,a2,b),b);break;default:t+="/"}break;case 123*f:v[C++]=u(t)*m;case 125* +f:case 59:case 0:switch(o){case 0:case 125:U=0;case 59+E:m==-1&&(t=P(t,/\f/g,"")), +k>0&&u(t)-s&&N(k>32?pr(t+";",n,a2,s-1,b):pr(P(t," ","")+";",n,a2,s-2,b),b);break;case 59: +t+=";";default:if(N(h=ur(t,e,a2,C,E,i2,v,d2,A=[],g=[],s,l),l),o===123)if(E===0)G( +t,e,h,h,A,l,s,v,g);else switch(S===99&&O(t,3)===110?100:S){case 100:case 108:case 109:case 115: +G(r2,h,h,n&&N(ur(r2,h,h,0,0,i2,v,d2,i2,A=[],s,g),g),i2,g,s,v,n?A:g);break;default: +G(t,h,h,h,[""],g,0,v,g)}}C=E=k=0,f=m=1,d2=t="",s=M;break;case 58:s=1+u(t),k=T;default: +if(f<1){if(o==123)--f;else if(o==125&&f++==0&&nr()==125)continue}switch(t+=z(o), +o*f){case 38:m=E>0?1:(t+="\f",-1);break;case 44:v[C++]=(u(t)-1)*m,m=1;break;case 64: +w()===45&&(t+=B(x())),S=w(),E=s=u(d2=t+=fr(F())),o++;break;case 45:T===45&&u(t)== +2&&(f=0)}}return l}__name(G,"G");function ur(r2,e,a2,n,i2,l,M,v,b,C,E,s){for(var S=i2- +1,k=i2===0?l:[""],T=rr(k),f=0,U=0,m=0;f0?k[o]+" "+d2:P(d2,/&\f/g,k[o])))&&(b[m++]=A);return V(r2,e, +a2,i2===0?Y:v,b,C,E,s)}__name(ur,"ur");function hr(r2,e,a2,n){return V(r2,e,a2,D, +z(tr()),R(r2,2,-2),0,n)}__name(hr,"hr");function pr(r2,e,a2,n,i2){return V(r2,e, +a2,_,R(r2,0,n),R(r2,n+1,-1),n,i2)}__name(pr,"pr");function H(r2,e){for(var a2="", +n=0;n` + & { + all: unset; + display: flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: flex-start; + box-sizing: border-box; + position: fixed; + left: 0; + z-index: 100; + width: 28ch; + min-height: 50dvh; + padding-top: 30dvh; + padding-bottom: 20dvh; + background-color: white; + transition: transform 0.4s ease; + transform: translateX(0); + } + + &.show { + transform: translateX(0); + } + + &.hide { + transform: translateX(-100%); + } + + `.trim(),"sidebarStyle"),Sidebar=class extends d{static{__name(this,"Sidebar")}static{ +this.css=`${sidebarStyle()}`}static{this.style=sidebarStyle}constructor(){super()}show(){ +this.classList.remove("hide"),this.classList.add("show")}hide(){this.classList.remove( +"show"),this.classList.add("hide")}toggle(){this.classList.contains("show")?this. +hide():this.show()}};export{Sidebar}; +//# sourceMappingURL=sidebar.js.map diff --git a/docs/_ux/ui/sidebar.js.map b/docs/_ux/ui/sidebar.js.map new file mode 100644 index 0000000..0315fbf --- /dev/null +++ b/docs/_ux/ui/sidebar.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../src/util.ts", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../src/cssProcessor/stylis.bundle.ts", "../../../src/adapter.ts", "../../../docs-src/_ux/ui/sidebar.ts"], + "sourcesContent": ["export function sleepSync(ms: number) {\n const end = new Date().getTime() + ms;\n let time = new Date().getTime();\n while (time < end) {\n time = new Date().getTime();\n }\n return time;\n}\n\nexport function uuid() {\n return sleepSync(1).toString(36);\n}", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import { compile, serialize, stringify } from 'stylis';\n\nexport function stylis(css: string) {\n return serialize(compile(css), stringify);\n}\n", "import { uuid } from './util.js';\nimport { stylis } from './cssProcessor/stylis.bundle.js';\n\ntype Constructor = new (...args: any[]) => T;\n\nexport function AdapterMixin>(\n Base: TBase\n) {\n return class Adapter extends Base {\n /** CSSStyleSheet() for this component */\n static _cssStyleSheet: CSSStyleSheet;\n\n /** Tag name of this component */\n static _tagName: string | null;\n\n /** Styles which contain only css for this component */\n static _styles: string[] = [];\n\n /** CSS Process middleware, This function will be called\n * before applying CSS to CSSStyleSheet.\n */\n static cssProcess(css: string): string {\n return css;\n }\n\n /**\n * Retreive styles for this component,\n * also prevent inherit values from super class.\n */\n static get styles(): string[] {\n if (this._styles === Object.getPrototypeOf(this).styles) {\n this._styles = [];\n }\n return this._styles;\n }\n\n /** Retreive inherited styles for all super classes. */\n static get inheritedStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n let inheritedStyles: string[] = [];\n\n while (superClass.styles !== undefined) {\n inheritedStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n\n return inheritedStyles;\n }\n\n /** Set CSS for this component */\n static set css(css: string) {\n this._styles = [css];\n\n if (this.tagName) {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return [...this.inheritedStyles, ...this.styles].join(\"\\n\");\n }\n\n /** Get tagName for this class which will be defined after\n * the class has been registerd with CustomElementsRegistry.\n */\n static get tagName(): string | null {\n if (this._tagName === Object.getPrototypeOf(this).tagName) {\n this._tagName = null;\n }\n return this._tagName;\n }\n\n /** Get CSSStyleSheet() for this component.\n * Create a new one if haven't been created yet.\n */\n static get cssStyleSheet(): CSSStyleSheet {\n const superCSSStyleSheet = Object.getPrototypeOf(this)._cssStyleSheet;\n if (this._cssStyleSheet === superCSSStyleSheet) {\n this._cssStyleSheet = new CSSStyleSheet();\n }\n return this._cssStyleSheet;\n }\n\n /** Add style to this component */\n static addStyle(css: string) {\n this._styles = this._styles.concat(css);\n\n if (this.tagName) {\n const rule = `${this.tagName} { ${css} }`;\n const processedCss = this.cssProcess(rule);\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n }\n\n /**\n * Define component to element tag and init component style.\n * To extends this function, sub-elements must be defined\n * before call this function as `super.define(tagName);`\n */\n static define(tagName: string): void {\n this._tagName = tagName;\n customElements.define(tagName, this);\n this.initStyle();\n }\n\n /** Init component style */\n static initStyle() {\n this.cssStyleSheet.replaceSync(\n this.cssProcess(`${this.tagName} { ${this.css} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n\n /** Deprecated, will be removed in v3 */\n static tagStyle(css: string): void {\n console.warn('tagStyle() is deprecated, use addStyle() instead');\n this.addStyle(css);\n }\n\n /** Deprecated, will be removed in v3 */\n static classStyle(class_: string, css: string) {\n console.warn('classStyle() is deprecated, use addStyle() instead');\n this.addStyle(`&.${class_} { ${css} }`);\n }\n\n _class!: typeof Adapter; // instance's class for using as shortcut\n\n _cssStyleSheet?: CSSStyleSheet;\n\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n /**\n * In constructor, there any some if condition to check\n * if it has been inited or not to prevent recursive call in Mixin\n */\n constructor(...args: any[]) {\n super(...args);\n if (this._class) {\n return;\n }\n this._class = this.constructor as unknown as typeof Adapter;\n\n /**\n * If class tagName has been defined from somewhere else.\n * Then it shouldn't be initialized again.\n */\n if (this._class.tagName) {\n return;\n }\n this._class._styles = [];\n this._class._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Dynamically create and return uuid for the element */\n get uuid(): string {\n if (!this._uuid) {\n this._uuid = `${this.tagName}-${uuid()}`;\n }\n return this._uuid;\n }\n\n /**\n * Dynamically create a CSSStyleSheet() and keep track of the adopted\n * stylesheet index for later reference.\n */\n get cssStyleSheet() {\n if (!this._cssStyleSheet) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n this._cssStyleSheet = new CSSStyleSheet();\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\n return this._cssStyleSheet;\n }\n\n /**\n * Return a selector for the this element as a class chain.\n */\n get objectClassSelector(): string {\n return `&.${this.classList.value.replace(/ /g, \".\")}`;\n }\n\n /**\n * Set CSS for this element.\n * It works like `` but with CSS processor.\n */\n set css(css: string) {\n this.cssStyleSheet.replaceSync(\n this._class.cssProcess(`\n ${this.objectClassSelector} { ${css} }\n `)\n );\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n this.cssStyleSheet.insertRule(\n `${this.tagName} {\n ${this.objectClassSelector} { ${css} }\n }`,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this.remove();\n }\n };\n}\n\nexport class Adapter extends AdapterMixin(HTMLElement) {\n static cssProcess(css: string): string {\n return stylis(css);\n }\n}\n", "import { Adapter } from '@devcapsule/adapter';\n\nconst sidebarStyle = (): string => {\n const style = /*css*/`\n & {\n all: unset;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n align-content: flex-start;\n box-sizing: border-box;\n position: fixed;\n left: 0;\n z-index: 100;\n width: 28ch;\n min-height: 50dvh;\n padding-top: 30dvh;\n padding-bottom: 20dvh;\n background-color: white;\n transition: transform 0.4s ease;\n transform: translateX(0);\n }\n\n &.show {\n transform: translateX(0);\n }\n \n &.hide {\n transform: translateX(-100%);\n }\n\n `.trim();\n return style;\n};\n\nclass Sidebar extends Adapter {\n static css = `${sidebarStyle()}`;\n static style = sidebarStyle;\n\n constructor() {\n super();\n }\n\n show() {\n this.classList.remove('hide');\n this.classList.add('show');\n }\n\n hide() {\n this.classList.remove('show');\n this.classList.add('hide');\n }\n\n toggle() {\n if (this.classList.contains('show')) {\n this.hide();\n } else {\n this.show();\n }\n }\n};\n\nexport { Sidebar };"], + "mappings": "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", + "names": ["sleepSync", "ms", "end", "time", "uuid", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "value", "replace", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "root", "parent", "type", "props", "children", "siblings", "char", "prev", "next", "peek", "caret", "slice", "token", "alloc", "dealloc", "delimit", "delimiter", "whitespace", "escaping", "count", "commenter", "identifier", "compile", "parse", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "offset", "atrule", "property", "previous", "variable", "scanning", "ampersand", "reference", "comment", "declaration", "ruleset", "post", "size", "i", "j", "k", "x", "y", "z", "serialize", "callback", "output", "stringify", "element", "stylis", "css", "AdapterMixin", "Base", "args", "css", "superClass", "inheritedStyles", "superCSSStyleSheet", "rule", "processedCss", "tagName", "class_", "uuid", "index", "Adapter", "stylis"] +} diff --git a/docs/asset/font/FiraCode-Variable.ttf b/docs/asset/font/FiraCode-Variable.ttf new file mode 100644 index 0000000..5655ed5 Binary files /dev/null and b/docs/asset/font/FiraCode-Variable.ttf differ diff --git a/docs/asset/font/FiraSans-Regular.ttf b/docs/asset/font/FiraSans-Regular.ttf new file mode 100644 index 0000000..6f80647 Binary files /dev/null and b/docs/asset/font/FiraSans-Regular.ttf differ diff --git a/docs/asset/icon/icomoon/SVG/discord.svg b/docs/asset/icon/icomoon/SVG/discord.svg new file mode 100644 index 0000000..d8dc413 --- /dev/null +++ b/docs/asset/icon/icomoon/SVG/discord.svg @@ -0,0 +1,5 @@ + + +discord + + diff --git a/docs/asset/icon/icomoon/SVG/github.svg b/docs/asset/icon/icomoon/SVG/github.svg new file mode 100644 index 0000000..985f3e3 --- /dev/null +++ b/docs/asset/icon/icomoon/SVG/github.svg @@ -0,0 +1,5 @@ + + +github + + diff --git a/docs/asset/icon/icomoon/SVG/open-book.svg b/docs/asset/icon/icomoon/SVG/open-book.svg new file mode 100644 index 0000000..47eb766 --- /dev/null +++ b/docs/asset/icon/icomoon/SVG/open-book.svg @@ -0,0 +1,13 @@ + + +open-book + + + + + + + + + + diff --git a/docs/asset/icon/icomoon/demo-external-svg.html b/docs/asset/icon/icomoon/demo-external-svg.html new file mode 100644 index 0000000..1f5b565 --- /dev/null +++ b/docs/asset/icon/icomoon/demo-external-svg.html @@ -0,0 +1,36 @@ + + + + IcoMoon - SVG Icons + + + + + + +
+
+

SVG Icons - Generated by IcoMoon

Notice: This demo (along with "symbol-defs.svg" and "svgxuse.js" files) should be hosted on a web server to work properly.

+
+
+
+

Grid Size: 0

+
+
+ open-book +
+
+
+
+ discord +
+
+
+
+ github +
+
+
+ + + \ No newline at end of file diff --git a/docs/asset/icon/icomoon/demo.html b/docs/asset/icon/icomoon/demo.html new file mode 100644 index 0000000..d5a904d --- /dev/null +++ b/docs/asset/icon/icomoon/demo.html @@ -0,0 +1,58 @@ + + + + IcoMoon - SVG Icons + + + + + + + + +
+
+

SVG Icons - Generated by IcoMoon

+
+
+
+

Grid Size: 0

+
+
+ open-book +
+
+
+
+ discord +
+
+
+
+ github +
+
+
+ + + \ No newline at end of file diff --git a/docs/asset/icon/icomoon/svgxuse.js b/docs/asset/icon/icomoon/svgxuse.js new file mode 100644 index 0000000..4057c98 --- /dev/null +++ b/docs/asset/icon/icomoon/svgxuse.js @@ -0,0 +1,57 @@ +var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});(function(){"use strict";if(typeof window<"u"&&window.addEventListener){var cache=Object. +create(null),checkUseElems,tid,debouncedCheck=__name(function(){clearTimeout(tid), +tid=setTimeout(checkUseElems,100)},"debouncedCheck"),unobserveChanges=__name(function(){}, +"unobserveChanges"),observeChanges=__name(function(){var observer;window.addEventListener( +"resize",debouncedCheck,!1),window.addEventListener("orientationchange",debouncedCheck, +!1),window.MutationObserver?(observer=new MutationObserver(debouncedCheck),observer. +observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0}),unobserveChanges= +__name(function(){try{observer.disconnect(),window.removeEventListener("resize", +debouncedCheck,!1),window.removeEventListener("orientationchange",debouncedCheck, +!1)}catch{}},"unobserveChanges")):(document.documentElement.addEventListener("DO\ +MSubtreeModified",debouncedCheck,!1),unobserveChanges=__name(function(){document. +documentElement.removeEventListener("DOMSubtreeModified",debouncedCheck,!1),window. +removeEventListener("resize",debouncedCheck,!1),window.removeEventListener("orie\ +ntationchange",debouncedCheck,!1)},"unobserveChanges"))},"observeChanges"),createRequest=__name( +function(url){function getOrigin(loc){var a;return loc.protocol!==void 0?a=loc:(a= +document.createElement("a"),a.href=loc),a.protocol.replace(/:/g,"")+a.host}__name( +getOrigin,"getOrigin");var Request,origin,origin2;return window.XMLHttpRequest&& +(Request=new XMLHttpRequest,origin=getOrigin(location),origin2=getOrigin(url),Request. +withCredentials===void 0&&origin2!==""&&origin2!==origin?Request=XDomainRequest|| +void 0:Request=XMLHttpRequest),Request},"createRequest"),xlinkNS="http://www.w3.\ +org/1999/xlink";checkUseElems=__name(function(){var base,bcr,fallback="",hash,href, +i,inProgressCount=0,isHidden,Request,url,uses,xhr;function observeIfDone(){inProgressCount-= +1,inProgressCount===0&&(unobserveChanges(),observeChanges())}__name(observeIfDone, +"observeIfDone");function attrUpdateFunc(spec){return function(){cache[spec.base]!== +!0&&(spec.useEl.setAttributeNS(xlinkNS,"xlink:href","#"+spec.hash),spec.useEl.hasAttribute( +"href")&&spec.useEl.setAttribute("href","#"+spec.hash))}}__name(attrUpdateFunc,"\ +attrUpdateFunc");function onloadFunc(xhr2){return function(){var body=document.body, +x=document.createElement("x"),svg;xhr2.onload=null,x.innerHTML=xhr2.responseText, +svg=x.getElementsByTagName("svg")[0],svg&&(svg.setAttribute("aria-hidden","true"), +svg.style.position="absolute",svg.style.width=0,svg.style.height=0,svg.style.overflow= +"hidden",body.insertBefore(svg,body.firstChild)),observeIfDone()}}__name(onloadFunc, +"onloadFunc");function onErrorTimeout(xhr2){return function(){xhr2.onerror=null, +xhr2.ontimeout=null,observeIfDone()}}for(__name(onErrorTimeout,"onErrorTimeout"), +unobserveChanges(),uses=document.getElementsByTagName("use"),i=0;i