diff --git a/docs/_ux/ui/blockquote.js b/docs/_ux/ui/blockquote.js index 5b43021..08c7ca5 100644 --- a/docs/_ux/ui/blockquote.js +++ b/docs/_ux/ui/blockquote.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,39 +455,44 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var color={blue:"#3584e4",green:"#33d17a",yellow:"#f6d32d",orange:"#ff7800",red:"\ #e01b24",purple:"#9141ac",violet:"#9141ac",brown:"#986a44",light:"#deddda",dark:"\ #3d3846"};var import_color=__toESM(require_color(),1);var BlockQuote=class extends Adapter{static{__name(this,"BlockQuote")}static{this. css=` - & { - display: flex; - } - & blockquote { - margin: 0; - padding: 0rem 1rem; - background-color: ${(0,import_color.default)(color.yellow).alpha(.2)}\ -; - border-left: 0.25em solid ${color.yellow}; - border-bottom-left-radius: 0.5rem; - } - `}};export{BlockQuote}; + display: flex; + flex-wrap: wrap; + + blockquote { + margin: 0; + margin-top: 1rem; + padding: 0rem 1rem; + background-color: ${(0,import_color.default)(color.yellow).alpha(.2)}; + border-left: 0.25em solid ${color.yellow}; + border-bottom-left-radius: 0.5rem; + } + `}};export{BlockQuote}; //# sourceMappingURL=blockquote.js.map diff --git a/docs/_ux/ui/blockquote.js.map b/docs/_ux/ui/blockquote.js.map index e8c7596..75c6a64 100644 --- a/docs/_ux/ui/blockquote.js.map +++ b/docs/_ux/ui/blockquote.js.map @@ -1,7 +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/designToken.ts", "../../../docs-src/_ux/ui/blockquote.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\nimport { color } from \"../designToken.js\";\nimport Color from \"color\";\n\nexport class BlockQuote extends Adapter {\n static css = /*css*/`\n display: flex;\n flex-wrap: wrap;\n\n blockquote {\n margin: 0;\n margin-top: 1rem;\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}\n"], + "mappings": "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", "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "Color"] } diff --git a/docs/_ux/ui/button.js b/docs/_ux/ui/button.js index 3a4997c..b662a27 100644 --- a/docs/_ux/ui/button.js +++ b/docs/_ux/ui/button.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,23 +455,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var import_color2=__toESM(require_color(),1);var import_color=__toESM(require_color(),1);function bgColor(color){return` diff --git a/docs/_ux/ui/button.js.map b/docs/_ux/ui/button.js.map index 6482124..5144973 100644 --- a/docs/_ux/ui/button.js.map +++ b/docs/_ux/ui/button.js.map @@ -1,7 +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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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": ["slice", "char", "node", "from", "Color", "length", "length", "length", "character", "characters", "import_color", "Color", "Color"] } diff --git a/docs/_ux/ui/code-block.js b/docs/_ux/ui/code-block.js index 4208b5b..d985258 100644 --- a/docs/_ux/ui/code-block.js +++ b/docs/_ux/ui/code-block.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,23 +455,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var import_color=__toESM(require_color(),1);function bgColor(color2){return` diff --git a/docs/_ux/ui/code-block.js.map b/docs/_ux/ui/code-block.js.map index 0199143..9aa713f 100644 --- a/docs/_ux/ui/code-block.js.map +++ b/docs/_ux/ui/code-block.js.map @@ -1,7 +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/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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\nimport { bgColor } from '../style.js';\nimport { color } from '../designToken'; \n\nclass CodeBlock extends Adapter {\n static css = /*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};\n\nexport { CodeBlock };"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\nimport { bgColor } from '../style.js';\nimport { color } from '../designToken'; \n\nclass CodeBlock extends Adapter {\n static css = /*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};\n\nexport { CodeBlock };"], + "mappings": "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", "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "color", "Color"] } diff --git a/docs/_ux/ui/menu.js b/docs/_ux/ui/menu.js index 33f9d2b..1ffc435 100644 --- a/docs/_ux/ui/menu.js +++ b/docs/_ux/ui/menu.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,23 +455,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var import_color=__toESM(require_color(),1);function bgColor(color2){return` diff --git a/docs/_ux/ui/menu.js.map b/docs/_ux/ui/menu.js.map index 4731806..20bb5da 100644 --- a/docs/_ux/ui/menu.js.map +++ b/docs/_ux/ui/menu.js.map @@ -1,7 +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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "color", "Color"] } diff --git a/docs/_ux/ui/sidebar.js b/docs/_ux/ui/sidebar.js index 8705f7a..13aef06 100644 --- a/docs/_ux/ui/sidebar.js +++ b/docs/_ux/ui/sidebar.js @@ -79,67 +79,69 @@ return=element.return||element.value;case COMMENT:return"";case KEYFRAMES:return return=element.value+"{"+serialize(element.children,callback)+"}";case RULESET:if(!strlen( element.value=element.props.join(",")))return""}return strlen(children=serialize( element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( -stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ -lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +stringify,"stringify");function stylis(css2){return serialize(compile(css2),stringify)}__name(stylis,"s\ +tylis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css2){ +return css2}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css2){this._styles=[css2],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. getPrototypeOf(this)._cssStyleSheet;return this._cssStyleSheet===superCSSStyleSheet&& -(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css){ -if(this._styles=this._styles.concat(css),this.tagName){let rule=`${this.tagName}\ - { ${css} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, +(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css2){ +if(this._styles=this._styles.concat(css2),this.tagName){let rule=`${this.tagName}\ + { ${css2} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, this.cssStyleSheet.cssRules.length)}}static define(tagName){this._tagName=tagName, customElements.define(tagName,this),this.initStyle()}static initStyle(){this.cssStyleSheet. replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adoptedStyleSheets. -push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ -ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ +push(this.cssStyleSheet)}static tagStyle(css2){console.warn("tagStyle() is depre\ +cated, use addStyle() instead"),this.addStyle(css2)}static classStyle(class_,css2){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` -`;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( -HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( -css)}};var sidebarStyle=__name(()=>` - & { - 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); - } +`&.${class_} { ${css2} }`)}connectedCallback(){this._isConnectedOnce||(this.css= +this.css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css2){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css2} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css2=this.getAttribute("css")||"";if(css2) +return css2;for(let rule of this.cssStyleSheet.cssRules)css2+=rule.cssText+` +`;return css2}initClass(){this._class=this.constructor,!this._class.tagName&&(this. +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css2){ +this.cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this. +objectClassSelector} { ${css2} }`);this.cssStyleSheet.insertRule(processedCss,this. +cssStyleSheet.cssRules.length)}delete(){this._shadowRoot||document.adoptedStyleSheets. +splice(this.adoptedStyleSheetIndex,1),this.remove()}}}__name(AdapterMixin,"Adapt\ +erMixin");var Adapter=class extends AdapterMixin(HTMLElement){static{__name(this, +"Adapter")}static cssProcess(css2){return stylis(css2)}};var css=String.raw,sidebarStyle=__name(()=>css` + 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; &.show { transform: translateX(0); diff --git a/docs/_ux/ui/sidebar.js.map b/docs/_ux/ui/sidebar.js.map index 5b7e8f0..f34366c 100644 --- a/docs/_ux/ui/sidebar.js.map +++ b/docs/_ux/ui/sidebar.js.map @@ -1,7 +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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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": ["length", "length", "character", "characters"] + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\n\nconst css = String.raw;\n\nconst sidebarStyle = (): string => {\n const style = css`\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\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": ["length", "length", "character", "characters", "css", "css"] } diff --git a/docs/adapter.js b/docs/adapter.js index 9b6c832..62f95b2 100644 --- a/docs/adapter.js +++ b/docs/adapter.js @@ -81,14 +81,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -102,23 +103,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};export{Adapter,AdapterMixin,stylis}; diff --git a/docs/adapter.js.map b/docs/adapter.js.map index e0d694d..223ce3d 100644 --- a/docs/adapter.js.map +++ b/docs/adapter.js.map @@ -1,7 +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"], - "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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"], + "mappings": "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", "names": ["length", "length", "character", "characters"] } diff --git a/docs/base.js b/docs/base.js index d63e09f..01be21e 100644 --- a/docs/base.js +++ b/docs/base.js @@ -643,11 +643,11 @@ convert[fromModel][toModel]=wrapRounded(fn),convert[fromModel][toModel].raw=wrap 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 Color11(object,model){if(!(this instanceof -Color11))return new Color11(object,model);if(model&&model in skippedModels&&(model= +sort().join("")]=model;var limiters={};function Color12(object,model){if(!(this instanceof +Color12))return new Color12(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 -Color11)this.model=object.model,this.color=[...object.color],this.valpha=object. +Color12)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("Unable to parse color from string: "+object);this.model=result. model,channels=convert[this.model].channels,this.color=result.value.slice(0,channels), @@ -665,7 +665,7 @@ model=hashedModelKeys[hashedKeys];let{labels}=convert[this.model],color2=[];for( if(limiters[this.model])for(channels=convert[this.model].channels,i=0;i(value%360+360)%360),saturationl:getset("hsl",1,maxfn(100)),lightness:getset( @@ -689,9 +689,9 @@ maxfn(100)),chroma:getset("hcg",1,maxfn(100)),gray:getset("hcg",2,maxfn(100)),wh 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 Color11(value):convert[this. -model].keyword(this.color)},hex(value){return value!==void 0?new Color11(value): -colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!==void 0)return new Color11( +b:getset("lab",2),keyword(value){return value!==void 0?new Color12(value):convert[this. +model].keyword(this.color)},hex(value){return value!==void 0?new Color12(value): +colorString.to.hex(this.rgb().round().color)},hexa(value){if(value!==void 0)return new Color12( 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)<< @@ -709,7 +709,7 @@ 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 Color11.rgb( +let rgb=this.rgb().color,value=rgb[0]*.3+rgb[1]*.59+rgb[2]*.11;return Color12.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: @@ -717,14 +717,14 @@ 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 Color11.rgb(w1*color1.red()+w2*color2.red(),w1*color1. +w*a))+1)/2,w2=1-w1;return Color12.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];Color11.prototype[model]=function(...args){ -return this.model===model?new Color11(this):args.length>0?new Color11(args,model): -new Color11([...assertArray(convert[this.model][model].raw(this.color)),this.valpha], -model)},Color11[model]=function(...args){let color2=args[0];return typeof color2== -"number"&&(color2=zeroArray(args,channels)),new Color11(color2,model)}}function roundTo(number,places){ +model))continue;let{channels}=convert[model];Color12.prototype[model]=function(...args){ +return this.model===model?new Color12(this):args.length>0?new Color12(args,model): +new Color12([...assertArray(convert[this.model][model].raw(this.color)),this.valpha], +model)},Color12[model]=function(...args){let color2=args[0];return typeof color2== +"number"&&(color2=zeroArray(args,channels)),new Color12(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: @@ -736,7 +736,7 @@ t");function maxfn(max){return function(v){return Math.max(0,Math.min(max,v))}}_ maxfn,"maxfn");function assertArray(value){return Array.isArray(value)?value:[value]} __name(assertArray,"assertArray");function zeroArray(array,length3){for(let i=0;i< length3;i++)typeof array[i]!="number"&&(array[i]=0);return array}__name(zeroArray, -"zeroArray");module.exports=Color11}});var import_core=__toESM(require_core(),1);var core_default=import_core.default;var IDENT_RE="[A-Za-z$_][0-9A-Za-z$_]*",KEYWORDS=["as","in","of","if","for","whi\ +"zeroArray");module.exports=Color12}});var import_core=__toESM(require_core(),1);var core_default=import_core.default;var IDENT_RE="[A-Za-z$_][0-9A-Za-z$_]*",KEYWORDS=["as","in","of","if","for","whi\ le","finally","var","new","function","do","return","void","else","break","catch", "instanceof","with","throw","case","default","try","switch","continue","typeof", "delete","let","yield","const","class","debugger","async","await","static","impo\ @@ -1518,7 +1518,17 @@ dispatchEvent(event2)}};var Color=require_color(),bgColor=__name((color2="blue") isDark()?"white":"black";return` background-color: ${color2}; color: ${fontColor}; - `.trim()},"bgColor");var fontFluid=__name(({vwMin=300,vwMax=1200,fontSizeMin=16,fontSizeMax=18}={})=>{ + `.trim()},"bgColor");var import_color=__toESM(require_color());var bgColorInt=__name(({color:color2="blue",lighten=.2,saturate=.2})=>{let color_=new import_color.default( +color2),hoverColor=color_.lighten(lighten).saturate(saturate);return` + ${bgColor(color_.toString())} + &:hover { + background-color: ${color_.lighten(lighten).saturate(saturate).toString()}\ +; + } + &:active { + background-color: ${color_.lighten(-lighten).saturate(saturate).toString()}\ +; + }`.trim()},"bgColorInt");var fontFluid=__name(({vwMin=300,vwMax=1200,fontSizeMin=16,fontSizeMax=18}={})=>{ let viewportRatio=`(100vw - ${vwMin}px) / (${vwMax} - ${vwMin})`,fontScaleRatio=`\ (${fontSizeMax} - ${fontSizeMin}) * ${viewportRatio}`;return` font-size: ${fontSizeMin}px; @@ -1530,7 +1540,10 @@ let viewportRatio=`(100vw - ${vwMin}px) / (${vwMax} - ${vwMin})`,fontScaleRatio= @media screen and (min-width: ${vwMax}px) { font-size: ${fontSizeMax}px; } - `.trim()},"fontFluid");var esm_default=__name(_=>({get:key=>_.get(key),set:(key,value)=>(_.set(key,value), + `.trim()},"fontFluid");var lift=__name(({level=3,shadowColor="rgb(0, 0, 0, 50%)"})=>((level<0||level>5)&& +(level=0),`box-shadow: ${[`0 0 0 0 ${shadowColor}`,`0 1px 3px 0 ${shadowColor}`, +`0 2px 5px 0 ${shadowColor}`,`0 4px 9px 0 ${shadowColor}`,`0 8px 17px 0 ${shadowColor}`, +`0 16px 33px 0 ${shadowColor}`][level]};`.trim()),"lift");var esm_default=__name(_=>({get:key=>_.get(key),set:(key,value)=>(_.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,i)=>0(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={}){ +{type,template,values}).valueOf()}})},"tag"),cache3=esm_default(new WeakMap);var html=tag("html"),svg=tag("svg");var ButtonStyle=class extends StyleClass{static{__name(this,"ButtonStyle")}static default={ +color:"blue",borderRadius:"4px"};static css(style={}){return style={...this.default, +...style},` + border: 0; + font-size: 1em; + line-height: 1; + font-weight: bold; + text-decoration: none; + outline: none; + display: inline-flex; + align-items: center; + justify-content: center; + height: 2em; + padding-left: 0.4em; + padding-right: 0.4em; + cursor: pointer; + transition: 0.2s; + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0,0,0,0); + &[disabled]:hover { + cursor: not-allowed; + } + a { + text-decoration: none; + } + ${lift({level:1})} + &:hover { + ${lift({level:2})}; + } + &:active { + ${lift({level:1})}; + } + ${this.style(style)} + `.trim()}static style(style={}){return` + ${this._color(style)} + ${this._borderRadius(style)} + `.trim()}static _color(style={}){return style.color==null?"":` + ${bgColorInt({color:style.color})} + `.trim()}static _borderRadius(style={}){return style.borderRadius==null? +"":` + border-radius: ${style.borderRadius}; + `.trim()}};var Button=class extends Adapter{static{__name(this,"Button")}static Style=ButtonStyle;static tagName="\ +button";static define(tagName){if(tagName.toLocaleLowerCase()==="button"){this.tagName= +"button",this.initStyle();return}super.define(tagName)}static tagStyle(style){super. +tagStyle(style)}static classStyle(class_,style){super.classStyle(class_,style)}addStyle(style){ +super.addStyle(style)}};var Color3=require_color();var InputStyle=class extends StyleClass{static{__name(this,"InputStyle")}static css(style={}){ return` font-size: 1em; border: 1px solid grey; @@ -1662,7 +1720,7 @@ return` `.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:"\ +}`;var Color4=require_color();var Color5=require_color();var Color6=require_color();var Color7=require_color();var Color8=require_color();var color={blue:"#3584e4",green:"#33d17a",yellow:"#f6d32d",orange:"#ff7800",red:"\ #e01b24",purple:"#9141ac",violet:"#9141ac",brown:"#986a44",light:"#deddda",dark:"\ #3d3846"};function sleepSync(ms){let end=new Date().getTime()+ms,time=new Date().getTime(); for(;time{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css3){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css3} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css3=this.getAttribute("css")||"";if(css3) +return css3;for(let rule of this.cssStyleSheet.cssRules)css3+=rule.cssText+` `;return css3}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css3){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css3} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter2=class extends AdapterMixin( -HTMLElement){static{__name(this,"Adapter")}static cssProcess(css3){return stylis( -css3)}};function baseStyle(to_base_url){let __base_url=new URL(import.meta.url),__fira_sans_url=new URL( +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css3){ +this.cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this. +objectClassSelector} { ${css3} }`);this.cssStyleSheet.insertRule(processedCss,this. +cssStyleSheet.cssRules.length)}delete(){this._shadowRoot||document.adoptedStyleSheets. +splice(this.adoptedStyleSheetIndex,1),this.remove()}}}__name(AdapterMixin,"Adapt\ +erMixin");var Adapter2=class extends AdapterMixin(HTMLElement){static{__name(this, +"Adapter")}static cssProcess(css3){return stylis(css3)}};function baseStyle(to_base_url){let __base_url=new URL(import.meta.url),__fira_sans_url=new URL( `${to_base_url}asset/font/FiraSans-Regular.ttf`,__base_url.href),__fira_code_url=new URL( `${to_base_url}asset/font/FiraCode-Variable.ttf`,__base_url.href),style=new CSSStyleSheet; document.adoptedStyleSheets.push(style),style.replaceSync(stylis(` @@ -1813,7 +1877,7 @@ document.adoptedStyleSheets.push(style),style.replaceSync(stylis(` body { margin: 0; padding: 0; - padding-bottom: 10rem; + padding-bottom: 50dvh; } code { @@ -1837,6 +1901,10 @@ document.adoptedStyleSheets.push(style),style.replaceSync(stylis(` margin-top: -0.7rem; } + button { + ${Button.Style.css()} + } + .width-100 { width: 100%; } @@ -1898,9 +1966,9 @@ function DefIconMixin({url,objectField="deficon"},Base){class __Icon extends _Ic __name(this,"__Icon")}}return __Icon.url=url,class extends Base{constructor(...args){ super(...args),this[objectField]=new __Icon(this)}}}__name(DefIconMixin,"DefIcon\ Mixin");function DefIcon(param){return class extends DefIconMixin(param,HTMLElement){}} -__name(DefIcon,"DefIcon");var import_color=__toESM(require_color(),1);function bgColor2(color2){return` +__name(DefIcon,"DefIcon");var import_color2=__toESM(require_color(),1);function bgColor2(color2){return` background-color: ${color2}; - color: ${(0,import_color.default)(color2).isDark()?"white":"black"}; + color: ${(0,import_color2.default)(color2).isDark()?"white":"black"}; `.trim()}__name(bgColor2,"bgColor");function lift2(level,color2="black"){return`\ filter: drop-shadow(0 0 ${level*2}px ${color2});`}__name(lift2,"lift");var aspectRatio2=__name((ratio="1/1")=>` height: auto; @@ -1947,20 +2015,20 @@ css=` border-top-right-radius: 0.4em; } } - `}};var import_color2=__toESM(require_color(),1);var BlockQuote=class extends Adapter2{static{__name(this,"BlockQuote")}static{this. + `}};var import_color3=__toESM(require_color(),1);var BlockQuote=class extends Adapter2{static{__name(this,"BlockQuote")}static{this. css=` - & { - display: flex; - } - & blockquote { - margin: 0; - padding: 0rem 1rem; - background-color: ${(0,import_color2.default)(color.yellow).alpha(.2)}\ -; - border-left: 0.25em solid ${color.yellow}; - border-bottom-left-radius: 0.5rem; - } - `}};var import_color3=__toESM(require_color(),1);var buttonStyle=__name(color2=>` + display: flex; + flex-wrap: wrap; + + blockquote { + margin: 0; + margin-top: 1rem; + padding: 0rem 1rem; + background-color: ${(0,import_color3.default)(color.yellow).alpha(.2)}; + border-left: 0.25em solid ${color.yellow}; + border-bottom-left-radius: 0.5rem; + } + `}};var import_color4=__toESM(require_color(),1);var buttonStyle=__name(color2=>` & { display: inline-flex; flex-wrap: wrap; @@ -1984,12 +2052,12 @@ css=` ${lift2(.7,"#555")} ${bgColor2(color2)} &:hover { - background-color: ${(0,import_color3.default)(color2).lighten(.1).saturate( + background-color: ${(0,import_color4.default)(color2).lighten(.1).saturate( .1)}; ${lift2(1.1,"#555")} } &:active { - background-color: ${(0,import_color3.default)(color2).darken(.1).saturate( + background-color: ${(0,import_color4.default)(color2).darken(.1).saturate( -.1)}; ${lift2(.5,"#555")} } diff --git a/docs/base.js.map b/docs/base.js.map index c6214af..1c09271 100644 --- a/docs/base.js.map +++ b/docs/base.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/highlight.js/lib/core.js", "../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", "../node_modules/highlight.js/es/core.js", "../node_modules/highlight.js/es/languages/javascript.js", "../node_modules/highlight.js/es/languages/typescript.js", "../node_modules/highlight.js/es/languages/xml.js", "../node_modules/highlight.js/es/languages/shell.js", "../node_modules/highlight.js/es/languages/css.js", "../docs-src/_base.lib.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/gadjet/src/style/font-fluid.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", "../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/_base.style.ts", "../node_modules/@devcapsule/deficon/src/deficon.ts", "../docs-src/_ux/style.ts", "../docs-src/_ux/ui/code-block.ts", "../docs-src/_ux/ui/blockquote.ts", "../docs-src/_ux/ui/button.ts", "../docs-src/_base.comp.ts", "../docs-src/_base.esbuild.ts", "../docs-src/styleClass.ts", "../docs-src/base.ts"], - "sourcesContent": ["/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.9.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n", "'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", "// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n", "const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nexport { javascript as default };\n", "const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx',\n 'mts',\n 'cts'\n ]\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n", "/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the \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 };", "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 { bgColor, fontFluid } from \"gadjet/src/gadjet\";\nimport { color } from \"./_ux/designToken\";\nimport { stylis } from './adapter';\n\n\nfunction baseStyle(to_base_url: string) {\n const __base_url = new URL(import.meta.url);\n const __fira_sans_url = new URL(`${to_base_url}asset/font/FiraSans-Regular.ttf`, __base_url.href);\n const __fira_code_url = new URL(`${to_base_url}asset/font/FiraCode-Variable.ttf`, __base_url.href);\n\n const style = new CSSStyleSheet();\n document.adoptedStyleSheets.push(style);\n style.replaceSync(stylis(/*css*/`\n @font-face {\n font-family: sans;\n src: url(${__fira_sans_url});\n }\n\n @font-face {\n font-family: monospace;\n src: url(${__fira_code_url});\n }\n\n html {\n line-height: 1.75;\n font-family: sans;\n ${fontFluid({\n fontSizeMin: 16,\n fontSizeMax: 18,\n vwMin: 400,\n vwMax: 1200\n })}\n }\n\n body {\n margin: 0;\n padding: 0;\n padding-bottom: 10rem;\n }\n\n code {\n padding: 0.1rem 0.5rem;\n ${bgColor(color.light)}\n border-radius: 0.25em;\n font-family: monospace;\n font-size: 0.85em;\n }\n\n p, h1, h2, h3, h4, ul, li {\n max-width: 80ch;\n margin: auto;\n }\n\n p ~ ol {\n margin-top: -0.7rem;\n }\n\n p ~ ol ~ p {\n margin-top: -0.7rem;\n }\n\n .width-100 {\n width: 100%;\n }\n\n .text-width {\n width: 100%;\n max-width: 80ch;\n }\n\n .container {\n display: block;\n max-width: 1000px;\n min-width: 300px;\n width: 90%;\n margin: auto;\n\n h1, h2, h3 {\n max-width: 45rem;\n }\n\n & h2 {\n line-height: 2;\n text-align: center;\n margin: auto;\n margin-top: 3rem;\n margin-bottom: 2rem;\n font-size: 1.5rem;\n }\n & h3 {\n text-decoration: underline;\n margin: auto;\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n & h4 {\n font-size: 1rem;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n }\n }\n\n .flex {\n display: flex;\n flex-wrap: wrap;\n }\n `));\n}\n\nexport { baseStyle };", "type Constructor = new (...args: any[]) => T;\n\nclass Icon {\n static url: string;\n\n set name(name: string) {\n this._element.setAttribute('name', name);\n this.render();\n }\n\n get name() {\n return this._element.getAttribute('name');\n }\n\n _element: HTMLElement;\n _class: typeof Icon;\n\n constructor(element: HTMLElement) {\n this._class = this.constructor as typeof Icon;\n this._element = element;\n this.render();\n\n const observer = new MutationObserver((mutationRecords, observer) => {\n this.observerCallback(mutationRecords, observer)\n })\n observer.observe(this._element, {attributes: true});\n }\n\n observerCallback(\n mutationRecords: MutationRecord[],\n observer: MutationObserver) {\n \n for (const mutation of mutationRecords) {\n if (mutation.type === \"attributes\") {\n if (mutation.attributeName === \"name\") {\n this.render();\n }\n }\n }\n }\n\n render() {\n if (!this._class.url) {\n return;\n }\n let svg = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\");\n let use = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'use');\n\n this._element.innerHTML = '';\n svg.style.width = '1em';\n svg.style.height = '1em';\n this._element.appendChild(svg);\n use.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n 'xlink:href',\n `${this._class.url}#${this.name}`);\n svg.appendChild(use);\n }\n}\n\ninterface IconParam {\n url: string;\n deficonField?: any; \n}\n\nfunction DefIconMixin>(\n {url, deficonField='deficon'}: IconParam,\n Base: TBase) {\n\n class _Icon extends Icon {};\n _Icon.url = url;\n\n return class DefIconMixin extends Base {\n [key: string]: any;\n\n constructor(...args: any[]) {\n super(...args);\n this[deficonField] = new _Icon(this);\n };\n }\n}\n\nfunction DefIcon(param: IconParam) {\n return class DefIcon extends DefIconMixin(param, HTMLElement) {};\n}\n\nexport { DefIconMixin, DefIcon };", "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 };", "import { Adapter } from \"../../adapter.js\";\nimport { bgColor } from '../style.js';\nimport { color } from '../designToken'; \n\nclass CodeBlock extends Adapter {\n static css = /*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};\n\nexport { CodeBlock };", "import { Adapter } from \"../../adapter.js\";\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}", "import { Adapter } from \"../../adapter.js\";\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 { DefIcon } from '@devcapsule/deficon';\nimport { AdapterMixin } from './adapter';\n\nimport { CodeBlock } from './_ux/ui/code-block';\nimport { BlockQuote } from './_ux/ui/blockquote';\nimport { Button, buttonStyle } from './_ux/ui/button';\nimport { color } from './_ux/designToken';\n\nfunction baseComponents(to_base_url: string) {\n const __base_url = new URL(import.meta.url);\n\n const icomoon_url = new URL(\n 'asset/icon/icomoon/symbol-defs.svg', __base_url\n ).toString();\n\n class Icon extends AdapterMixin(DefIcon({url: icomoon_url})) {\n static css = /*css*/`\n & {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n }\n `\n };\n Icon.define('el-icon');\n\n CodeBlock.define('el-code-block');\n Button.define('el-button');\n Button.css = /*css*/`\n & {\n ${buttonStyle(color.blue)}\n }\n button {\n min-height: 2em;\n }\n el-icon {\n margin-top: -0.17rem;\n }\n `;\n BlockQuote.define('el-blockquote');\n};\n\nexport { baseComponents };", "function pageReload(to_base_url: string) {\n const __file_url = new URL(import.meta.url);\n const __event_source = new URL(`${to_base_url}esbuild`, __file_url.href)\n\n if (['0.0.0.0', '127.0.0.1', 'localhost'].includes(__file_url.hostname)) {\n new EventSource(__event_source).addEventListener(\n 'change',\n () => location.reload());\n };\n};\n\nexport { pageReload };", "import { aspectRatio } from './_ux/style';\n\nconst cssStyleSheet = new CSSStyleSheet();\n\ncssStyleSheet.replaceSync(/*css*/`\n.aspect-ratio-21-9 {\n display: flex;\n ${aspectRatio('21/9')}\n img {\n width: 100%;\n object-fit: cover;\n }\n}\n`);\n\ndocument.adoptedStyleSheets.push(cssStyleSheet);\n", "import 'highlight.js/styles/monokai.css';\n\nimport { baseLib } from './_base.lib';\nbaseLib();\n\nimport { baseStyle } from './_base.style';\nbaseStyle('./');\n\nimport { baseComponents } from './_base.comp';\nbaseComponents('./');\n\nimport { pageReload } from './_base.esbuild';\npageReload('./');\n\nimport './styleClass';\n\nwindow.addEventListener('load', () => {\n document.body.style.visibility = 'visible';\n});"], - "mappings": "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Ib,OAAO,KACR,CARS;AAAA,aAUT,OAAO,QAAUF,WC9ejB,gBAAwB,0BAExB,IAAO,aAAQ,YAAAG,QCHf,IAAM,SAAW,2BACX,SAAW,CACf,KACA,KACA,KACA,KACA,MACA;AAAA,IACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA;AACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA;AACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA;AAAA,IACA,OACA,SACA,SACF,EACM,SAAW,CACf,OACA,QACA,OACA,YACA;AACA,UACF,EAGM,MAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA;AACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA;AAAA,UACA,oBACA,aACA,aACA,cACA;AAAA,IACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA;AAAA,GACA,oBACA,UACA,WACA,OAEA,UACA,YACA;AAAA,aACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEM,YAAc;AAClB,QACA,YACA,gBACA,aACA,iBACA;AACA,YACA,UACF,EAEM,iBAAmB,CACvB,cACA,aACA;AAAA,KACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA;AAAA,UACA,YACA,qBACA,YACA,qBACA;AAAA,KACA,UACF,EAEM,mBAAqB,CACzB,YACA,OACA,QACA,UACA;AAAA,GACA,WACA,eACA,iBACA,SACA,QACF,EAEM,UAAY,CAAC,EAAE;AACnB,iBACA,MACA,WACF,EAWA,SAAS,WAAW,KAAM,CACxB,IAAM,MAAQ,KAAK;AAQb,cAAgB,QAACC,OAAO,CAAE,KAAM,IAAM,CAC1C,IAAMC,KAAM,KAAOD,OAAM,CAAC,EAAE,MAAM,CAAC,EAEnC,OADYA;AAAM,MAAM,QAAQC,KAAK,KAAK,IAC3B,EACjB,EAJsB,iBAMhB,WAAa,SACb,SAAW,CACf,MAAO;AAAA,IACP,IAAK,KACP,EAEM,iBAAmB,4BACnB,QAAU,CACd,MAAO;AACP,IAAK,4BAKL,kBAAmB,CAACD,OAAO,WAAa,CACtC,IAAM,g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rB,EACA,cACA,oBACA,iBACA,iBACA,CACE,MAAO,QACT,CACF,CACF,CACF;AAplBS,gCCvKT,IAAMC,UAAW,2BACXC,UAAW,CACf,KACA,KACA,KACA,KACA,MACA;AAAA,MACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA;AAAA,GACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA;AAAA,GACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA;AAAA,OACA,OACA,SACA,SACF,EACMC,UAAW,CACf,OACA,QACA,OACA,YACA;AAAA,KACA,UACF,EAGMC,OAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA;AAAA,OACA,SAEA,SACA,SAEA,QACA,eACA,eACA;AAAA,IACA,aACA,oBACA,aACA,aACA,cACA;AAAA,WACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA;AAAA,UACA,oBACA,UACA,WACA,OAEA,UACA;AACA,oBACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEMC,aAAc;AAClB,QACA,YACA,gBACA,aACA,iBACA;AACA,YACA,UACF,EAEMC,kBAAmB,CACvB,cACA,aACA;AAAA,MACA,eAEA,UACA,UAEA,OACA,WACA,QACA;AACA,WACA,YACA,qBACA,YACA,qBACA;AAAA,MACA,UACF,EAEMC,oBAAqB,CACzB,YACA,OACA,QACA,UACA;AAAA,KACA,WACA,eACA,iBACA,SACA,QACF,EAEMC,WAAY,CAAC;AAAE,OACnBF,kBACAF,OACAC,YACF,EAWA,SAASI,YAAW,KAAM,CACxB,IAAM,MAAQ;AAAK,MAQb,cAAgB,QAACC,OAAO,CAAE,KAAM,IAAM,CAC1C,IAAMC,KAAM,KAAOD,OAAM,CAAC,EAAE,MAAM,CAAC,EAEnC,OADYA;AAAM,MAAM,QAAQC,KAAK,KAAK,IAC3B,EACjB,EAJsB,iBAMhB,WAAaV,UACb,SAAW;AACf,MAAO,KACP,IAAK,KACP,EAEM,iBAAmB,4BACnB,QAAU,CACd,MAAO;AACP,IAAK,4BAKL,kBAAmB,CAACS,OAAO,WAAa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ACF,CACF,CAAC,EAEM,UACT,CArGS;UChwBT,SAAS,IAAI,KAAM,CACjB,IAAM,MAAQ,KAAK,MAQb,YAAc,MAAM,OAAO,YAAa;AAAM,SAAS,kBAAkB,EAAG,iBAAiB,EAC7F,aAAe;AACf,aAAe,CACnB,UAAW,SACX,MAAO,kCACT,EACM,kBAAoB;AACxB,MAAO,KACP,SAAU,CACR,CACE,UAAW,UACX,MAAO,sBACP,QAAS,IACX,CACF,CACF;AACM,sBAAwB,KAAK,QAAQ,kBAAmB,CAC5D,MAAO,KACP,IAAK,IACP,CAAC,EACK,sBAAwB;AAAK,QAAQ,KAAK,iBAAkB,CAAE,UAAW,QAAS,CAAC,EACnF,uBAAyB;AAAK,QAAQ,KAAK,kBAAmB,CAAE,UAAW,QAAS,CAAC,EACrF,cAAgB,CACpB,eAAgB;AAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,aACP,UAAW,CACb;AACA,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,WAAY,GACZ,SAAU;AACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,YAAa,CAC3B,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,YAAa,CAC3B;AACA,CAAE,MAAO,cAAe,CAC1B,CACF,CACF,CACF,CACF,CACF,EACA,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA;AAAA,GACA,OACA,MACA,MACA,MACA,QACA,MACA,KACF,EACA,iBAAkB,GAClB,aAAc;AACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACR;AACA,uBACA,sBACA,sBACA,CACE,MAAO,KACP,IAAK;AACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACR;AACA,sBACA,uBACA,qBACF,CACF,CACF,CACF,CACF,CACF,EACA,KAAK;AACH,OACA,MACA,CAAE,UAAW,EAAG,CAClB,EACA,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACb,EACA;AAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACR,sBACF,CACF;AACA,CACE,MAAO,mBACT,CACF,CAEF,EACA,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU;AAAE,KAAM,OAAQ,EAC1B,SAAU,CAAE,aAAc,EAC1B,OAAQ,CACN,IAAK,YACL,UAAW,GACX,YAAa;AACX,MACA,KACF,CACF,CACF,EACA,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CAAE,KAAM;AAAA,OAAS,EAC3B,SAAU,CAAE,aAAc,EAC1B,OAAQ,CACN,IAAK,aACL,UAAW,GACX,YAAa;AACX,aACA,aACA,KACF,CACF,CACF,EAEA,CACE,UAAW,MACX,MAAO,SACT,EAEA,CACE,UAAW;AAAA,KACX,MAAO,MAAM,OACX,IACA,MAAM,UAAU,MAAM,OACpB,YAIA,MAAM;AAAO,MAAO,IAAK,IAAI,CAC/B,CAAC,CACH,EACA,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,YACP,UAAW;AACX,OAAQ,aACV,CACF,CACF,EAEA,CACE,UAAW,MACX,MAAO,MAAM,OACX,MACA,MAAM;AAAU,MAAM,OACpB,YAAa,GACf,CAAC,CACH,EACA,SAAU,CACR,CACE,UAAW,OACX,MAAO,YACP,UAAW,CACb;AACA,CACE,MAAO,IACP,UAAW,EACX,WAAY,EACd,CACF,CACF,CACF,CACF,CACF,CAtOS,kBCCT,SAAS,MAAM,KAAM,CACnB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA;AAAA,EACF,EACA,SAAU,CACR,CACE,UAAW,cAIX,MAAO;AACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACf,CACF,CACF,CACF,CACF,CArBS,sBCTT,IAAM,MAAQ,OAAC,OACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe;AAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACT;AACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB;AACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,KAAK;AACL,KAAK,iBACP,CACF,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,KAAK,UAAY;AAAA;AAAA,gBASxB,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF;AA1CY,SA6CR,KAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA;AAAA,MACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA;AACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA;AAAA,IACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA;AAAA,MACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA;AAAA,IACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA;AAAA,MACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEM,eAAiB,CACrB,YACA;AAAA,aACA,eACA,QACA,cACA,cACA;AAAA,MACA,gBACA,eACA,eACA,gBACA,OACA;AAAA,IACA,QACA,kBACA,aACA,cACA,iBACA;AAAA,YACA,UACA,uBACA,mBACA;AAAA,SACA,+BACA,aACA,OACA,YACA;AACA,QAEA,YACA,YACA,aACA,YACF,EAGM,eAAiB,CACrB;AAAA,IACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA;AACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA;AAAA,KACA,QACA,gBACA,eACA,MACA,OACA,eACA;AACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA;AAAA,IACA,OACA,aACA,MACA,YACA,UACA,iBACA;AAAA,IACA,mBACA,cACA,aACA,eACA,WACA;AAAA,WACA,OACA,oBACA,YACA,aACA,WACA;AACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF;AAGM,gBAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA;AAAA,YACA,gBACA,SACA,OACA,cACA,YACA;AACA,gBACF,EAEM,WAAa,CACjB,gBACA,cACA,aACA,MACA;AAAA,WACA,kBACA,sBACA,qBACA;AAAA,cACA,4BACA,iBACA;AACA,4BACA,sBACA,aACA;AAAA,OACA,wBACA,kBACA,mBACA;AAAA,OACA,oBACA,sBACA,oBACA;AAAA,OACA,aACA,SACA,eACA,qBACA;AAAA,IACA,yBACA,yBACA,yBACA;AAAA,oBACA,2BACA,2BACA;AAAA,qBACA,qBACA,qBACA,gBACA;AAAA,qBACA,4BACA,6BACA;AAAA,oBACA,sBACA,kBACA,eACA;AAAA,UACA,sBACA,sBACA,qBACA;AAAA,iBACA,qBACA,gBACA,sBACA;AAAA,gBACA,0BACA,0BACA;AAAA,cACA,sBACA,4BACA;AAAA,YACA,4BACA,sBACA;AAAA,IACA,cACA,oBACA,oBACA,oBACA;AAAA,cACA,eACA,qBACA,qBACA;AAAA,YACA,iBACA,eACA,aACA,mBACA;AAAA,qBACA,0BACA,mBACA;AAAA,KACA,eACA,SACA,uBACA,aACA,aACA;AAAA,YACA,eACA,eACA,eACA,cACA,QACA;AAAA,MACA,YACA,YACA,QACA,eACA,cACA;AACA,cACA,oBACA,oBACA,oBACA;AAAA,QACA,eACA,UACA,UACA,UACA,qBACA;AAAA,cACA,gBACA,MACA,YACA,aACA,SACA;AACA,UACA,cACA,SACA,OACA,aACA,iBACA;AACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA;AAAA,SACA,wBACA,eACA,yBACA;AAAA,KACA,mBACA,iBACA,eACA,aACA;AAAA,MACA,eACA,oBACA,0BACA;AAAA,YACA,uBACA,wBACA;AAAA,KACA,cACA,MACA,6BACA,OACA,YACA;AAAA,aACA,iBACA,iBACA,cACA,kBACA;AAAA,mBACA,WACA,WACA,eACA,iBACA;AAAA,SACA,sBACA,wBACA,qBACA;AAAA,kBACA,SACA,UACA,OACA,oBACA;AACA,mBACA,WACA,cACA,YACA,kBACA;AACA,iBACA,aACA,cACA,aACA,mBACA;AAAA,kBACA,kBACA,SACA,eACA,mBACA;AAAA,oBACA,gBACA,gBACA,oBACA;AAAA,cACA,cACA,eACA,aACA,QACA,OACA;AAAA,KACA,mBACA,qBACA,qBACA;AAAA,MACA,qBACA,oBACA,YACA,iBACA;AAAA,SACA,YACA,cACA,gBACA,cACA,YACA;AAAA,SACA,iBACA,aACA,kBACA,YACA;AAAA,MACA,aACA,kBACA,YACA,iBACA,WACA;AAAA,SACA,WACA,YACA,SACA,OACA,SACA,aACA;AAAA,QACA,UACA,QACA,UACA,UACA,gBACA,iBACA;AAAA,eACA,gBACA,WACA,gBACA,aACA;AAAA,IACA,UACA,gBACA,oBACA,sBACA;AAAA,SACA,iBACA,qBACA,uBACA;AAAA,KACA,gBACA,cACA,mBACA,oBACA;AAAA,cACA,QACA,cACA,eACA,cACA;AAAA,MACA,iBACA,WACA,SACA,SACA,OACA,aACA;AAAA,MACA,QACA,UACA,gBACA,sBACA;AAAA,QACA,4BACA,uBACA;AACA,2BACA,6BACA,qBACA;AAAA,mBACA,oBACA,iBACA,uBACA;AAAA,0BACA,6BACA,wBACA;AAAA,uBACA,4BACA;AACA,sBACA,uBACA,qBACA;AAAA,MACA,mBACA,mBACA,kBACA;AACA,kBACA,wBACA,eACA,gBACA;AACA,WACA,MACA,WACA,eACA,aACA,iBACA;AAAA,WACA,uBACA,kBACA,wBACA;AAAA,mBACA,wBACA,gBACA;AACA,yBACA,sBACA,cACA,eACA;AAAA,eACA,gBACA,iBACA,cACA,iBACA;AAAA,yBACA,MACA,YACA,gBACA,mBACA;AAAA,gBACA,aACA,mBACA,sBACA;AAAA,YACA,6BACA,eACA,iBACA;AAAA,MACA,gBACA,iBACA,eACA,cACA;AACA,aACA,eACA,eACA,cACA,SACA,QACA;AAAA,QACA,aACA,eACA,YACA,eACA,SAGF,EAAE,QAAQ;AAUV,SAAS,IAAI,KAAM,CACjB,IAAM,MAAQ,KAAK,MACb,MAAQ,MAAM,IAAI,EAClB,cAAgB,CAAE,MAAO,8BAA+B;AACxD,aAAe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", - "names": ["node", "prefix", "text", "match", "IDENT_RE", "COMMENT", "MODES", "scopeName", "version", "i", "html", "highlight", "data", "result", "event", "slice", "prefix", "match", "diff", "color", "match", "char", "node", "from", "Color", "color", "length", "HighlightJS", "match", "tag", "COMMENT", "IDENT_RE", "KEYWORDS", "LITERALS", "TYPES", "ERROR_TYPES", "BUILT_IN_GLOBALS", "BUILT_IN_VARIABLES", "BUILT_INS", "javascript", "match", "tag", "COMMENT", "IDENT_RE", "tag", "StyleSheet", "isImportRule", "sheet", "length", "length", "length", "character", "characters", "length", "length", "cache", "character", "cache", "node", "length", "stylis", "sheet", "match", "next", "cache", "cache", "css", "keyframes", "injectGlobal", "cx", "classnames", "merge", "getRegisteredStyles", "css", "event", "color", "node", "esm_default", "prefix", "svg", "text", "length", "slice", "node", "length", "slice", "esm_default", "node", "node", "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", "cache", "ref", "createCache", "Color", "Color", "Color", "Color", "Color", "Color", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "replace", "indexof", "charat", "substr", "strlen", "sizeof", "append", "line", "column", "length", "position", "character", "characters", "node", "char", "character", "prev", "position", "charat", "characters", "column", "line", "next", "length", "peek", "caret", "slice", "substr", "token", "alloc", "strlen", "dealloc", "delimit", "trim", "delimiter", "whitespace", "character", "peek", "next", "token", "escaping", "next", "character", "slice", "caret", "peek", "delimiter", "position", "commenter", "from", "identifier", "token", "compile", "dealloc", "parse", "alloc", "length", "character", "characters", "next", "charat", "indexof", "replace", "delimit", "whitespace", "escaping", "caret", "peek", "append", "comment", "commenter", "strlen", "declaration", "ruleset", "prev", "from", "identifier", "sizeof", "substr", "abs", "trim", "node", "RULESET", "COMMENT", "char", "DECLARATION", "serialize", "stringify", "LAYER", "IMPORT", "DECLARATION", "COMMENT", "KEYFRAMES", "RULESET", "strlen", "css", "serialize", "compile", "stringify", "css", "Adapter", "observer", "svg", "bgColor", "color", "Color", "lift", "aspectRatio", "Adapter", "bgColor", "import_color", "Adapter", "Color", "import_color", "color", "lift", "bgColor", "Color", "Button", "Adapter", "Button", "aspectRatio"] + "sources": ["../node_modules/highlight.js/lib/core.js", "../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", "../node_modules/highlight.js/es/core.js", "../node_modules/highlight.js/es/languages/javascript.js", "../node_modules/highlight.js/es/languages/typescript.js", "../node_modules/highlight.js/es/languages/xml.js", "../node_modules/highlight.js/es/languages/shell.js", "../node_modules/highlight.js/es/languages/css.js", "../docs-src/_base.lib.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/gadjet/src/style/bg-color-int.ts", "../node_modules/gadjet/src/style/font-fluid.ts", "../node_modules/gadjet/src/style/lift.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/button/button.style.ts", "../node_modules/gadjet/src/ui/button/button.ts", "../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", "../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/_base.style.ts", "../node_modules/@devcapsule/deficon/src/deficon.ts", "../docs-src/_ux/style.ts", "../docs-src/_ux/ui/code-block.ts", "../docs-src/_ux/ui/blockquote.ts", "../docs-src/_ux/ui/button.ts", "../docs-src/_base.comp.ts", "../docs-src/_base.esbuild.ts", "../docs-src/styleClass.ts", "../docs-src/base.ts"], + "sourcesContent": ["/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '
';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.9.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n", "'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", "// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n", "const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nexport { javascript as default };\n", "const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // (key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx',\n 'mts',\n 'cts'\n ]\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n", "/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the \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\";\nimport { bgColorInt, lift } from '../../style';\n\n\nexport interface ButtonStyleParam {\n color?: string;\n borderRadius?: string;\n}\n\nexport class ButtonStyle extends StyleClass {\n static readonly default: ButtonStyleParam = {\n color: \"blue\",\n borderRadius: \"4px\"\n }\n\n static css(style: ButtonStyleParam = {}): string {\n style = {...this.default, ...style};\n return `\n border: 0;\n font-size: 1em;\n line-height: 1;\n font-weight: bold;\n text-decoration: none;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 2em;\n padding-left: 0.4em;\n padding-right: 0.4em;\n cursor: pointer;\n transition: 0.2s;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n &[disabled]:hover {\n cursor: not-allowed;\n }\n a {\n text-decoration: none;\n }\n ${lift({ level: 1 })}\n &:hover {\n ${lift({ level: 2 })};\n }\n &:active {\n ${lift({ level: 1 })};\n }\n ${this.style(style)}\n `.trim();\n }\n\n static style(style: ButtonStyleParam = {}): string {\n return `\n ${this._color(style)}\n ${this._borderRadius(style)}\n `.trim();\n }\n\n static _color(style: ButtonStyleParam = {}): string {\n if (style.color == undefined) { return '' };\n let css = `\n ${bgColorInt({color: style.color})}\n `.trim();\n\n return css;\n }\n\n static _borderRadius(style: ButtonStyleParam = {}): string {\n if (style.borderRadius == undefined) { return '' };\n let css = `\n border-radius: ${style.borderRadius};\n `.trim();\n\n return css;\n }\n}", "import { Adapter } from \"@nitipit/adapter/src/adapter\";\nimport { \n ButtonStyle, ButtonStyleParam\n} from './button.style';\n\n\nexport class Button extends Adapter {\n static Style = ButtonStyle;\n static tagName: string = 'button';\n\n static define(tagName: string) {\n if (tagName.toLocaleLowerCase() === \"button\") {\n this.tagName = \"button\";\n this.initStyle();\n return;\n };\n super.define(tagName);\n }\n\n static tagStyle(style?: string | ButtonStyleParam): void {\n super.tagStyle(style)\n }\n \n static classStyle(class_: string, style?: string | ButtonStyleParam): void {\n super.classStyle(class_, style);\n }\n\n addStyle(style?: string | ButtonStyleParam): void {\n super.addStyle(style); \n }\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 };", "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 { Button, bgColor, fontFluid } from \"gadjet/src/gadjet\";\nimport { color } from \"./_ux/designToken\";\nimport { stylis } from './adapter';\n\n\nfunction baseStyle(to_base_url: string) {\n const __base_url = new URL(import.meta.url);\n const __fira_sans_url = new URL(`${to_base_url}asset/font/FiraSans-Regular.ttf`, __base_url.href);\n const __fira_code_url = new URL(`${to_base_url}asset/font/FiraCode-Variable.ttf`, __base_url.href);\n\n const style = new CSSStyleSheet();\n document.adoptedStyleSheets.push(style);\n style.replaceSync(stylis(/*css*/`\n @font-face {\n font-family: sans;\n src: url(${__fira_sans_url});\n }\n\n @font-face {\n font-family: monospace;\n src: url(${__fira_code_url});\n }\n\n html {\n line-height: 1.75;\n font-family: sans;\n ${fontFluid({\n fontSizeMin: 16,\n fontSizeMax: 18,\n vwMin: 400,\n vwMax: 1200\n })}\n }\n\n body {\n margin: 0;\n padding: 0;\n padding-bottom: 50dvh;\n }\n\n code {\n padding: 0.1rem 0.5rem;\n ${bgColor(color.light)}\n border-radius: 0.25em;\n font-family: monospace;\n font-size: 0.85em;\n }\n\n p, h1, h2, h3, h4, ul, li {\n max-width: 80ch;\n margin: auto;\n }\n\n p ~ ol {\n margin-top: -0.7rem;\n }\n\n p ~ ol ~ p {\n margin-top: -0.7rem;\n }\n\n button {\n ${Button.Style.css()}\n }\n\n .width-100 {\n width: 100%;\n }\n\n .text-width {\n width: 100%;\n max-width: 80ch;\n }\n\n .container {\n display: block;\n max-width: 1000px;\n min-width: 300px;\n width: 90%;\n margin: auto;\n\n h1, h2, h3 {\n max-width: 45rem;\n }\n\n & h2 {\n line-height: 2;\n text-align: center;\n margin: auto;\n margin-top: 3rem;\n margin-bottom: 2rem;\n font-size: 1.5rem;\n }\n & h3 {\n text-decoration: underline;\n margin: auto;\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n & h4 {\n font-size: 1rem;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n }\n }\n\n .flex {\n display: flex;\n flex-wrap: wrap;\n }\n `));\n}\n\nexport { baseStyle };", "type Constructor = new (...args: any[]) => T;\n\nclass Icon {\n static url: string;\n\n set name(name: string) {\n this._element.setAttribute('name', name);\n this.render();\n }\n\n get name() {\n return this._element.getAttribute('name');\n }\n\n _element: HTMLElement;\n _class: typeof Icon;\n\n constructor(element: HTMLElement) {\n this._class = this.constructor as typeof Icon;\n this._element = element;\n this.render();\n\n const observer = new MutationObserver((mutationRecords, observer) => {\n this.observerCallback(mutationRecords, observer)\n })\n observer.observe(this._element, {attributes: true});\n }\n\n observerCallback(\n mutationRecords: MutationRecord[],\n observer: MutationObserver) {\n \n for (const mutation of mutationRecords) {\n if (mutation.type === \"attributes\") {\n if (mutation.attributeName === \"name\") {\n this.render();\n }\n }\n }\n }\n\n render() {\n if (!this._class.url) {\n return;\n }\n let svg = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\");\n let use = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'use');\n\n this._element.innerHTML = '';\n svg.style.width = '1em';\n svg.style.height = '1em';\n this._element.appendChild(svg);\n use.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n 'xlink:href',\n `${this._class.url}#${this.name}`);\n svg.appendChild(use);\n }\n}\n\ninterface IconParam {\n url: string;\n deficonField?: any; \n}\n\nfunction DefIconMixin>(\n {url, deficonField='deficon'}: IconParam,\n Base: TBase) {\n\n class _Icon extends Icon {};\n _Icon.url = url;\n\n return class DefIconMixin extends Base {\n [key: string]: any;\n\n constructor(...args: any[]) {\n super(...args);\n this[deficonField] = new _Icon(this);\n };\n }\n}\n\nfunction DefIcon(param: IconParam) {\n return class DefIcon extends DefIconMixin(param, HTMLElement) {};\n}\n\nexport { DefIconMixin, DefIcon };", "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 };", "import { Adapter } from \"../../adapter.js\";\nimport { bgColor } from '../style.js';\nimport { color } from '../designToken'; \n\nclass CodeBlock extends Adapter {\n static css = /*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};\n\nexport { CodeBlock };", "import { Adapter } from \"../../adapter.js\";\nimport { color } from \"../designToken.js\";\nimport Color from \"color\";\n\nexport class BlockQuote extends Adapter {\n static css = /*css*/`\n display: flex;\n flex-wrap: wrap;\n\n blockquote {\n margin: 0;\n margin-top: 1rem;\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}\n", "import { Adapter } from \"../../adapter.js\";\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 { DefIcon } from '@devcapsule/deficon';\nimport { AdapterMixin } from './adapter';\n\nimport { CodeBlock } from './_ux/ui/code-block';\nimport { BlockQuote } from './_ux/ui/blockquote';\nimport { Button, buttonStyle } from './_ux/ui/button';\nimport { color } from './_ux/designToken';\n\nfunction baseComponents(to_base_url: string) {\n const __base_url = new URL(import.meta.url);\n\n const icomoon_url = new URL(\n 'asset/icon/icomoon/symbol-defs.svg', __base_url\n ).toString();\n\n class Icon extends AdapterMixin(DefIcon({url: icomoon_url})) {\n static css = /*css*/`\n & {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n }\n `\n };\n Icon.define('el-icon');\n\n CodeBlock.define('el-code-block');\n Button.define('el-button');\n Button.css = /*css*/`\n & {\n ${buttonStyle(color.blue)}\n }\n button {\n min-height: 2em;\n }\n el-icon {\n margin-top: -0.17rem;\n }\n `;\n BlockQuote.define('el-blockquote');\n};\n\nexport { baseComponents };", "function pageReload(to_base_url: string) {\n const __file_url = new URL(import.meta.url);\n const __event_source = new URL(`${to_base_url}esbuild`, __file_url.href)\n\n if (['0.0.0.0', '127.0.0.1', 'localhost'].includes(__file_url.hostname)) {\n new EventSource(__event_source).addEventListener(\n 'change',\n () => location.reload());\n };\n};\n\nexport { pageReload };", "import { aspectRatio } from './_ux/style';\n\nconst cssStyleSheet = new CSSStyleSheet();\n\ncssStyleSheet.replaceSync(/*css*/`\n.aspect-ratio-21-9 {\n display: flex;\n ${aspectRatio('21/9')}\n img {\n width: 100%;\n object-fit: cover;\n }\n}\n`);\n\ndocument.adoptedStyleSheets.push(cssStyleSheet);\n", "import 'highlight.js/styles/monokai.css';\n\nimport { baseLib } from './_base.lib';\nbaseLib();\n\nimport { baseStyle } from './_base.style';\nbaseStyle('./');\n\nimport { baseComponents } from './_base.comp';\nbaseComponents('./');\n\nimport { pageReload } from './_base.esbuild';\npageReload('./');\n\nimport './styleClass';\n\nwindow.addEventListener('load', () => {\n document.body.style.visibility = 'visible';\n});"], + "mappings": "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Ib,OAAO,KACR,CARS;AAAA,aAUT,OAAO,QAAUF,WC9ejB,gBAAwB,0BAExB,IAAO,aAAQ,YAAAG,QCHf,IAAM,SAAW,2BACX,SAAW,CACf,KACA,KACA,KACA,KACA,MACA;AAAA,IACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA;AACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA;AACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA;AAAA,IACA,OACA,SACA,SACF,EACM,SAAW,CACf,OACA,QACA,OACA,YACA;AACA,UACF,EAGM,MAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA;AACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA;AAAA,UACA,oBACA,aACA,aACA,cACA;AAAA,IACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA;AAAA,GACA,oBACA,UACA,WACA,OAEA,UACA,YACA;AAAA,aACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEM,YAAc;AAClB,QACA,YACA,gBACA,aACA,iBACA;AACA,YACA,UACF,EAEM,iBAAmB,CACvB,cACA,aACA;AAAA,KACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA;AAAA,UACA,YACA,qBACA,YACA,qBACA;AAAA,KACA,UACF,EAEM,mBAAqB,CACzB,YACA,OACA,QACA,UACA;AAAA,GACA,WACA,eACA,iBACA,SACA,QACF,EAEM,UAAY,CAAC,EAAE;AACnB,iBACA,MACA,WACF,EAWA,SAAS,WAAW,KAAM,CACxB,IAAM,MAAQ,KAAK;AAQb,cAAgB,QAACC,OAAO,CAAE,KAAM,IAAM,CAC1C,IAAMC,KAAM,KAAOD,OAAM,CAAC,EAAE,MAAM,CAAC,EAEnC,OADYA;AAAM,MAAM,QAAQC,KAAK,KAAK,IAC3B,EACjB,EAJsB,iBAMhB,WAAa,SACb,SAAW,CACf,MAAO;AAAA,IACP,IAAK,KACP,EAEM,iBAAmB,4BACnB,QAAU,CACd,MAAO;AACP,IAAK,4BAKL,kBAAmB,CAACD,OAAO,WAAa,CACtC,IAAM,g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rB,EACA,cACA,oBACA,iBACA,iBACA,CACE,MAAO,QACT,CACF,CACF,CACF;AAplBS,gCCvKT,IAAMC,UAAW,2BACXC,UAAW,CACf,KACA,KACA,KACA,KACA,MACA;AAAA,MACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA;AAAA,GACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA;AAAA,GACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA;AAAA,OACA,OACA,SACA,SACF,EACMC,UAAW,CACf,OACA,QACA,OACA,YACA;AAAA,KACA,UACF,EAGMC,OAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA;AAAA,OACA,SAEA,SACA,SAEA,QACA,eACA,eACA;AAAA,IACA,aACA,oBACA,aACA,aACA,cACA;AAAA,WACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA;AAAA,UACA,oBACA,UACA,WACA,OAEA,UACA;AACA,oBACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEMC,aAAc;AAClB,QACA,YACA,gBACA,aACA,iBACA;AACA,YACA,UACF,EAEMC,kBAAmB,CACvB,cACA,aACA;AAAA,MACA,eAEA,UACA,UAEA,OACA,WACA,QACA;AACA,WACA,YACA,qBACA,YACA,qBACA;AAAA,MACA,UACF,EAEMC,oBAAqB,CACzB,YACA,OACA,QACA,UACA;AAAA,KACA,WACA,eACA,iBACA,SACA,QACF,EAEMC,WAAY,CAAC;AAAE,OACnBF,kBACAF,OACAC,YACF,EAWA,SAASI,YAAW,KAAM,CACxB,IAAM,MAAQ;AAAK,MAQb,cAAgB,QAACC,OAAO,CAAE,KAAM,IAAM,CAC1C,IAAMC,KAAM,KAAOD,OAAM,CAAC,EAAE,MAAM,CAAC,EAEnC,OADYA;AAAM,MAAM,QAAQC,KAAK,KAAK,IAC3B,EACjB,EAJsB,iBAMhB,WAAaV,UACb,SAAW;AACf,MAAO,KACP,IAAK,KACP,EAEM,iBAAmB,4BACnB,QAAU,CACd,MAAO;AACP,IAAK,4BAKL,kBAAmB,CAACS,OAAO,WAAa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ACF,CACF,CAAC,EAEM,UACT,CArGS;UChwBT,SAAS,IAAI,KAAM,CACjB,IAAM,MAAQ,KAAK,MAQb,YAAc,MAAM,OAAO,YAAa;AAAM,SAAS,kBAAkB,EAAG,iBAAiB,EAC7F,aAAe;AACf,aAAe,CACnB,UAAW,SACX,MAAO,kCACT,EACM,kBAAoB;AACxB,MAAO,KACP,SAAU,CACR,CACE,UAAW,UACX,MAAO,sBACP,QAAS,IACX,CACF,CACF;AACM,sBAAwB,KAAK,QAAQ,kBAAmB,CAC5D,MAAO,KACP,IAAK,IACP,CAAC,EACK,sBAAwB;AAAK,QAAQ,KAAK,iBAAkB,CAAE,UAAW,QAAS,CAAC,EACnF,uBAAyB;AAAK,QAAQ,KAAK,kBAAmB,CAAE,UAAW,QAAS,CAAC,EACrF,cAAgB,CACpB,eAAgB;AAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,aACP,UAAW,CACb;AACA,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,WAAY,GACZ,SAAU;AACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,YAAa,CAC3B,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,YAAa,CAC3B;AACA,CAAE,MAAO,cAAe,CAC1B,CACF,CACF,CACF,CACF,CACF,EACA,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA;AAAA,GACA,OACA,MACA,MACA,MACA,QACA,MACA,KACF,EACA,iBAAkB,GAClB,aAAc;AACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACR;AACA,uBACA,sBACA,sBACA,CACE,MAAO,KACP,IAAK;AACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACR;AACA,sBACA,uBACA,qBACF,CACF,CACF,CACF,CACF,CACF,EACA,KAAK;AACH,OACA,MACA,CAAE,UAAW,EAAG,CAClB,EACA,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACb,EACA;AAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACR,sBACF,CACF;AACA,CACE,MAAO,mBACT,CACF,CAEF,EACA,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU;AAAE,KAAM,OAAQ,EAC1B,SAAU,CAAE,aAAc,EAC1B,OAAQ,CACN,IAAK,YACL,UAAW,GACX,YAAa;AACX,MACA,KACF,CACF,CACF,EACA,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CAAE,KAAM;AAAA,OAAS,EAC3B,SAAU,CAAE,aAAc,EAC1B,OAAQ,CACN,IAAK,aACL,UAAW,GACX,YAAa;AACX,aACA,aACA,KACF,CACF,CACF,EAEA,CACE,UAAW,MACX,MAAO,SACT,EAEA,CACE,UAAW;AAAA,KACX,MAAO,MAAM,OACX,IACA,MAAM,UAAU,MAAM,OACpB,YAIA,MAAM;AAAO,MAAO,IAAK,IAAI,CAC/B,CAAC,CACH,EACA,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,YACP,UAAW;AACX,OAAQ,aACV,CACF,CACF,EAEA,CACE,UAAW,MACX,MAAO,MAAM,OACX,MACA,MAAM;AAAU,MAAM,OACpB,YAAa,GACf,CAAC,CACH,EACA,SAAU,CACR,CACE,UAAW,OACX,MAAO,YACP,UAAW,CACb;AACA,CACE,MAAO,IACP,UAAW,EACX,WAAY,EACd,CACF,CACF,CACF,CACF,CACF,CAtOS,kBCCT,SAAS,MAAM,KAAM,CACnB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA;AAAA,EACF,EACA,SAAU,CACR,CACE,UAAW,cAIX,MAAO;AACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACf,CACF,CACF,CACF,CACF,CArBS,sBCTT,IAAM,MAAQ,OAAC,OACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe;AAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACT;AACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB;AACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,KAAK;AACL,KAAK,iBACP,CACF,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,KAAK,UAAY;AAAA;AAAA,gBASxB,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF;AA1CY,SA6CR,KAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA;AAAA,MACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA;AACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA;AAAA,IACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA;AAAA,MACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA;AAAA,IACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA;AAAA,MACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEM,eAAiB,CACrB,YACA;AAAA,aACA,eACA,QACA,cACA,cACA;AAAA,MACA,gBACA,eACA,eACA,gBACA,OACA;AAAA,IACA,QACA,kBACA,aACA,cACA,iBACA;AAAA,YACA,UACA,uBACA,mBACA;AAAA,SACA,+BACA,aACA,OACA,YACA;AACA,QAEA,YACA,YACA,aACA,YACF,EAGM,eAAiB,CACrB;AAAA,IACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA;AACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA;AAAA,KACA,QACA,gBACA,eACA,MACA,OACA,eACA;AACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA;AAAA,IACA,OACA,aACA,MACA,YACA,UACA,iBACA;AAAA,IACA,mBACA,cACA,aACA,eACA,WACA;AAAA,WACA,OACA,oBACA,YACA,aACA,WACA;AACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF;AAGM,gBAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA;AAAA,YACA,gBACA,SACA,OACA,cACA,YACA;AACA,gBACF,EAEM,WAAa,CACjB,gBACA,cACA,aACA,MACA;AAAA,WACA,kBACA,sBACA,qBACA;AAAA,cACA,4BACA,iBACA;AACA,4BACA,sBACA,aACA;AAAA,OACA,wBACA,kBACA,mBACA;AAAA,OACA,oBACA,sBACA,oBACA;AAAA,OACA,aACA,SACA,eACA,qBACA;AAAA,IACA,yBACA,yBACA,yBACA;AAAA,oBACA,2BACA,2BACA;AAAA,qBACA,qBACA,qBACA,gBACA;AAAA,qBACA,4BACA,6BACA;AAAA,oBACA,sBACA,kBACA,eACA;AAAA,UACA,sBACA,sBACA,qBACA;AAAA,iBACA,qBACA,gBACA,sBACA;AAAA,gBACA,0BACA,0BACA;AAAA,cACA,sBACA,4BACA;AAAA,YACA,4BACA,sBACA;AAAA,IACA,cACA,oBACA,oBACA,oBACA;AAAA,cACA,eACA,qBACA,qBACA;AAAA,YACA,iBACA,eACA,aACA,mBACA;AAAA,qBACA,0BACA,mBACA;AAAA,KACA,eACA,SACA,uBACA,aACA,aACA;AAAA,YACA,eACA,eACA,eACA,cACA,QACA;AAAA,MACA,YACA,YACA,QACA,eACA,cACA;AACA,cACA,oBACA,oBACA,oBACA;AAAA,QACA,eACA,UACA,UACA,UACA,qBACA;AAAA,cACA,gBACA,MACA,YACA,aACA,SACA;AACA,UACA,cACA,SACA,OACA,aACA,iBACA;AACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA;AAAA,SACA,wBACA,eACA,yBACA;AAAA,KACA,mBACA,iBACA,eACA,aACA;AAAA,MACA,eACA,oBACA,0BACA;AAAA,YACA,uBACA,wBACA;AAAA,KACA,cACA,MACA,6BACA,OACA,YACA;AAAA,aACA,iBACA,iBACA,cACA,kBACA;AAAA,mBACA,WACA,WACA,eACA,iBACA;AAAA,SACA,sBACA,wBACA,qBACA;AAAA,kBACA,SACA,UACA,OACA,oBACA;AACA,mBACA,WACA,cACA,YACA,kBACA;AACA,iBACA,aACA,cACA,aACA,mBACA;AAAA,kBACA,kBACA,SACA,eACA,mBACA;AAAA,oBACA,gBACA,gBACA,oBACA;AAAA,cACA,cACA,eACA,aACA,QACA,OACA;AAAA,KACA,mBACA,qBACA,qBACA;AAAA,MACA,qBACA,oBACA,YACA,iBACA;AAAA,SACA,YACA,cACA,gBACA,cACA,YACA;AAAA,SACA,iBACA,aACA,kBACA,YACA;AAAA,MACA,aACA,kBACA,YACA,iBACA,WACA;AAAA,SACA,WACA,YACA,SACA,OACA,SACA,aACA;AAAA,QACA,UACA,QACA,UACA,UACA,gBACA,iBACA;AAAA,eACA,gBACA,WACA,gBACA,aACA;AAAA,IACA,UACA,gBACA,oBACA,sBACA;AAAA,SACA,iBACA,qBACA,uBACA;AAAA,KACA,gBACA,cACA,mBACA,oBACA;AAAA,cACA,QACA,cACA,eACA,cACA;AAAA,MACA,iBACA,WACA,SACA,SACA,OACA,aACA;AAAA,MACA,QACA,UACA,gBACA,sBACA;AAAA,QACA,4BACA,uBACA;AACA,2BACA,6BACA,qBACA;AAAA,mBACA,oBACA,iBACA,uBACA;AAAA,0BACA,6BACA,wBACA;AAAA,uBACA,4BACA;AACA,sBACA,uBACA,qBACA;AAAA,MACA,mBACA,mBACA,kBACA;AACA,kBACA,wBACA,eACA,gBACA;AACA,WACA,MACA,WACA,eACA,aACA,iBACA;AAAA,WACA,uBACA,kBACA,wBACA;AAAA,mBACA,wBACA,gBACA;AACA,yBACA,sBACA,cACA,eACA;AAAA,eACA,gBACA,iBACA,cACA,iBACA;AAAA,yBACA,MACA,YACA,gBACA,mBACA;AAAA,gBACA,aACA,mBACA,sBACA;AAAA,YACA,6BACA,eACA,iBACA;AAAA,MACA,gBACA,iBACA,eACA,cACA;AACA,aACA,eACA,eACA,cACA,SACA,QACA;AAAA,QACA,aACA,eACA,YACA,eACA,SAGF,EAAE,QAAQ;AAUV,SAAS,IAAI,KAAM,CACjB,IAAM,MAAQ,KAAK,MACb,MAAQ,MAAM,IAAI,EAClB,cAAgB,CAAE,MAAO,8BAA+B;AACxD,aAAe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", + "names": ["node", "prefix", "text", "match", "IDENT_RE", "COMMENT", "MODES", "scopeName", "version", "i", "html", "highlight", "data", "result", "event", "slice", "prefix", "match", "diff", "color", "match", "char", "node", "from", "Color", "color", "length", "HighlightJS", "match", "tag", "COMMENT", "IDENT_RE", "KEYWORDS", "LITERALS", "TYPES", "ERROR_TYPES", "BUILT_IN_GLOBALS", "BUILT_IN_VARIABLES", "BUILT_INS", "javascript", "match", "tag", "COMMENT", "IDENT_RE", "tag", "StyleSheet", "isImportRule", "sheet", "length", "length", "length", "character", "characters", "length", "length", "cache", "character", "cache", "node", "length", "stylis", "sheet", "match", "next", "cache", "cache", "css", "keyframes", "injectGlobal", "cx", "classnames", "merge", "getRegisteredStyles", "css", "event", "color", "color", "Color", "node", "esm_default", "prefix", "svg", "text", "length", "slice", "node", "length", "slice", "esm_default", "node", "node", "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", "cache", "ref", "createCache", "Color", "Color", "Color", "Color", "Color", "Color", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "LAYER", "abs", "from", "trim", "replace", "indexof", "charat", "substr", "strlen", "sizeof", "append", "line", "column", "length", "position", "character", "characters", "node", "char", "character", "prev", "position", "charat", "characters", "column", "line", "next", "length", "peek", "caret", "slice", "substr", "token", "alloc", "strlen", "dealloc", "delimit", "trim", "delimiter", "whitespace", "character", "peek", "next", "token", "escaping", "next", "character", "slice", "caret", "peek", "delimiter", "position", "commenter", "from", "identifier", "token", "compile", "dealloc", "parse", "alloc", "length", "character", "characters", "next", "charat", "indexof", "replace", "delimit", "whitespace", "escaping", "caret", "peek", "append", "comment", "commenter", "strlen", "declaration", "ruleset", "prev", "from", "identifier", "sizeof", "substr", "abs", "trim", "node", "RULESET", "COMMENT", "char", "DECLARATION", "serialize", "stringify", "LAYER", "IMPORT", "DECLARATION", "COMMENT", "KEYFRAMES", "RULESET", "strlen", "css", "serialize", "compile", "stringify", "css", "Adapter", "observer", "svg", "import_color", "bgColor", "color", "Color", "lift", "aspectRatio", "Adapter", "bgColor", "import_color", "Adapter", "Color", "import_color", "color", "lift", "bgColor", "Color", "Button", "Adapter", "Button", "aspectRatio"] } diff --git a/docs/guide/_ui/container.js b/docs/guide/_ui/container.js index 5d1dd2f..f6d4189 100644 --- a/docs/guide/_ui/container.js +++ b/docs/guide/_ui/container.js @@ -81,14 +81,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -102,23 +103,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var Container=class extends Adapter{static{__name(this,"Container")}static{this. @@ -126,9 +132,7 @@ css=`& { all: unset; display: block; box-sizing: border-box; - margin-bottom: 40dvh; max-width: 80ch; - min-height: 100dvh; width: 90%; transition: margin-left 0.3s ease-in-out; }`}constructor(){super();let el_sidebar=document.querySelector("el-sidebar"); diff --git a/docs/guide/_ui/container.js.map b/docs/guide/_ui/container.js.map index 84a6329..0d0c4aa 100644 --- a/docs/guide/_ui/container.js.map +++ b/docs/guide/_ui/container.js.map @@ -1,7 +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/guide/_ui/container.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\n\nclass Container extends Adapter {\n static css = /*css*/`& {\n all: unset;\n display: block;\n box-sizing: border-box;\n margin-bottom: 40dvh;\n max-width: 80ch;\n min-height: 100dvh;\n width: 90%;\n transition: margin-left 0.3s ease-in-out;\n }`;\n\n constructor() {\n super();\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n setTimeout(() => {\n this.css = this.defaultStyle();\n }, 0);\n el_sidebar.addEventListener('hide', () => {\n this.addStyle(`margin: unset;`);\n });\n el_sidebar.addEventListener('show', () => {\n this.css = this.defaultStyle();\n });\n }\n\n defaultStyle(): string {\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n return /*css*/`& {\n @media screen and (min-width: 1200px) {\n width: 68%;\n margin-left: calc(${getComputedStyle(el_sidebar).width});\n }\n }`;\n }\n};\n\nexport { Container };"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\n\nclass Container extends Adapter {\n static css = /*css*/`& {\n all: unset;\n display: block;\n box-sizing: border-box;\n max-width: 80ch;\n width: 90%;\n transition: margin-left 0.3s ease-in-out;\n }`;\n\n constructor() {\n super();\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n setTimeout(() => {\n this.css = this.defaultStyle();\n }, 0);\n el_sidebar.addEventListener('hide', () => {\n this.addStyle(`margin: unset;`);\n });\n el_sidebar.addEventListener('show', () => {\n this.css = this.defaultStyle();\n });\n }\n\n defaultStyle(): string {\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n return /*css*/`& {\n @media screen and (min-width: 1200px) {\n width: 68%;\n margin-left: calc(${getComputedStyle(el_sidebar).width});\n }\n }`;\n }\n};\n\nexport { Container };"], + "mappings": "gHAAO,SAAS,UAAU,GAAY,CACpC,IAAM,IAAM,IAAI,KAAK,EAAE,QAAQ,EAAI,GAC/B,KAAO,IAAI,KAAK,EAAE,QAAQ;AAC9B,KAAO,KAAO,KACZ,KAAO,IAAI,KAAK,EAAE,QAAQ,EAE5B,OAAO,IACT,CAPgB;AAST,SAAS,MAAO,CACrB,OAAO,UAAU,CAAC,EAAE,SAAS,EAAE,CACjC,CAFgB,oBCLT,IAAI,QAAU,OACV,QAAU,OACV,YAAc,OAIlB,IAAI,OAAS,UAMb,IAAI,UAAY,aAIhB,IAAI,MAAQ,SChBZ,IAAI,IAAM,KAAK,IAMX,KAAO,OAAO,aAqBlB,SAAS,KAAM,MAAO,CAC5B,OAAO,MAAM,KAAK,CACnB,CAFgB,oBAmBT,SAAS,QAAS,MAAO,QAAS,YAAa,CACrD,OAAO,MAAM,QAAQ,QAAS,WAAW,CAC1C;AAFgB,0BAST,SAAS,QAAS,MAAO,OAAQ,CACvC,OAAO,MAAM,QAAQ,MAAM,CAC5B;AAFgB,0BAST,SAAS,OAAQ,MAAO,MAAO,CACrC,OAAO,MAAM,WAAW,KAAK;AAAI,CAClC,CAFgB,wBAUT,SAAS,OAAQ,MAAO,MAAO,IAAK,CAC1C,OAAO,MAAM,MAAM;AAAO,GAAG,CAC9B,CAFgB,wBAQT,SAAS,OAAQ,MAAO,CAC9B,OAAO,MAAM,MACd,CAFgB;AAAA,UAQT,SAAS,OAAQ,MAAO,CAC9B,OAAO,MAAM,MACd,CAFgB,wBAST,SAAS,OAAQ,MAAO,MAAO;AACrC,OAAO,MAAM,KAAK,KAAK,EAAG,KAC3B,CAFgB,wBCrGT,IAAI,KAAO,EACP,OAAS,EACT,OAAS,EACT,SAAW,EACX,UAAY,EACZ,WAAa,GAYjB,SAAS,KAAM,MAAO,KAAM,OAAQ,KAAM,MAAO,SAAUA,QAAQ,SAAU;AACnF,MAAO,CAAC,MAAc,KAAY,OAAgB,KAAY,MAAc,SAAoB,KAAY,OAAgB,OAAQA,QAAQ,OAAQ;AAAI,QAAkB,CAC3K,CAFgB,oBA0BT,SAAS,MAAQ,CACvB,OAAO,SACR,CAFgB,oBAOT,SAAS,MAAQ,CACvB;AAAY,SAAW,EAAI,OAAO,WAAY,EAAE,QAAQ,EAAI,EAExD,SAAU,YAAc,KAC3B,OAAS,EAAG;AAEN,SACR,CAPgB,oBAYT,SAAS,MAAQ,CACvB,iBAAY,SAAW,OAAS;AAAO,WAAY,UAAU,EAAI,EAE7D,SAAU,YAAc,KAC3B,OAAS,EAAG,QAEN,SACR,CAPgB;AAAA,aAYT,SAAS,MAAQ,CACvB,OAAO,OAAO,WAAY,QAAQ,CACnC,CAFgB;AAAA,IAOT,SAAS,OAAS,CACxB,OAAO,QACR,CAFgB,sBAST,SAAS,MAAO,MAAO,IAAK;AAClC,OAAO,OAAO,WAAY,MAAO,GAAG,CACrC,CAFgB,sBAQT,SAAS,MAAO,KAAM,CAC5B,OAAQ,KAAM,CAEb,IAAK,GAAG,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK;AACtC,MAAO,GAER,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAE3D,IAAK,IAAI,IAAK,KAAK,IAAK;AACvB,MAAO,GAER,IAAK,IACJ,MAAO,GAER,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAC/B,MAAO,GAER,IAAK,IAAI,IAAK;AACb,MAAO,EACT,CAEA,MAAO,EACR,CAtBgB,sBA4BT,SAAS,MAAO,MAAO,CAC7B,OAAO,KAAO;AAAS,EAAG,OAAS,OAAO,WAAa,KAAK,EAAG,SAAW,EAAG,CAAC,CAC/E,CAFgB,sBAQT,SAAS,QAAS,MAAO;AAC/B,OAAO,WAAa,GAAI,KACzB,CAFgB,0BAQT,SAAS,QAAS,KAAM,CAC9B,OAAO;AAAK,MAAM,SAAW,EAAG,UAAU,OAAS,GAAK,KAAO,EAAI,OAAS,GAAK,KAAO,EAAI,IAAI,CAAC,CAAC,CACnG,CAFgB;WAgBT,SAAS,WAAY,KAAM,CACjC,MAAO,UAAY,KAAK,IACnB,UAAY,IACf,KAAK,EAIP,OAAO;AAAM,IAAI,EAAI,GAAK,MAAM,SAAS,EAAI,EAAI,GAAK,GACvD,CARgB,gCAgCT,SAAS,SAAU,MAAO,MAAO,CACvC,KAAO,EAAE,OAAS,KAAK,GAElB,YAAY,IAAM,UAAY;AAAQ,UAAY,IAAM,UAAY,IAAQ,UAAY,IAAM,UAAY,KAA9G,CAGD,OAAO,MAAM,MAAO,MAAM;AAAA,CAAK,MAAQ,GAAK,KAAK,GAAK,IAAM,KAAK,GAAK,GAAG,CAC1E,CAPgB,4BAaT,SAAS,UAAW,KAAM;AAChC,KAAO,KAAK,GACX,OAAQ,UAAW,CAElB,KAAK,KACJ,OAAO,SAER,IAAK,IAAI,IAAK,IACT;AAAS,IAAM,OAAS,IAC3B,UAAU,SAAS,EACpB,MAED,IAAK,IACA,OAAS,IACZ,UAAU,IAAI,EACf,MAED,IAAK;AACJ,KAAK,EACL,KACF,CAED,OAAO,QACR,CAvBgB,8BA8BT,SAAS,UAAW,KAAM,MAAO;AACvC,KAAO,KAAK,GAEP,KAAO,YAAc,GAAK,IAGzB,GAAI,KAAO,YAAc,GAAK,IAAM,KAAK,IAAM,GACnD;AAEF,MAAO,KAAO,MAAM,MAAO,SAAW,CAAC,EAAI,IAAM,KAAK,OAAS,GAAK,KAAO,KAAK,CAAC,CAClF,CAVgB;AAAA,aAgBT,SAAS,WAAY,MAAO,CAClC,KAAO,CAAC,MAAM,KAAK,CAAC,GACnB,KAAK,EAEN,OAAO;AAAM,MAAO,QAAQ,CAC7B,CALgB,gCCnPT,SAAS,QAAS,MAAO,CAC/B,OAAO,QAAQ,MAAM,GAAI,KAAM,KAAM,KAAM,CAAC,EAAE,EAAG,MAAQ;AAAM,KAAK,EAAG,EAAG,CAAC,CAAC,EAAG,KAAK,CAAC,CACtF,CAFgB,0BAgBT,SAAS,MAAO,MAAO,KAAM,OAAQ,KAAM,MAAO,SAAU,OAAQ,OAAQ,aAAc;AAiBhG,QAhBI,MAAQ,EACR,OAAS,EACTC,QAAS,OACT,OAAS,EACT,SAAW,EACX,SAAW,EACX,SAAW;AACX,SAAW,EACX,UAAY,EACZC,WAAY,EACZ,KAAO,GACP,MAAQ,MACR,SAAW,SACX,UAAY;AACZC,YAAa,KAEV,UACN,OAAQ,SAAWD,WAAWA,WAAY,KAAK,EAAG,CAEjD,IAAK;AACJ,GAAI,UAAY,KAAO,OAAOC,YAAYF,QAAS,CAAC,GAAK,GAAI,CACxD,QAAQE,aAAc;AAAQ,QAAQD,UAAS,EAAG,IAAK,KAAK,EAAG,KAAK,GAAK,KAC5E,UAAY,IACb,KACD,CAED,IAAK,IAAI,IAAK,IAAI,IAAK;AACtBC,aAAc,QAAQD,UAAS,EAC/B,MAED,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK,IAC9BC;AAAc,WAAW,QAAQ,EACjC,MAED,IAAK,IACJA,aAAc,SAAS,MAAM,EAAI,EAAG,CAAC,EACrC,SAED,IAAK;AACJ,OAAQ,KAAK,EAAG,CACf,IAAK,IAAI,IAAK,IACb,OAAO,QAAQ,UAAU,KAAK,EAAG,MAAM,CAAC,EAAG,KAAM;AAAQ,YAAY,EAAG,YAAY,EACpF,MACD,QACCA,aAAc,GAChB,CACA,MAED,IAAK,KAAM;AACV,OAAO,OAAO,EAAI,OAAOA,WAAU,EAAI,UAExC,IAAK,KAAM,SAAU,IAAK,IAAI,IAAK,GAClC,OAAQD,WAAW,CAElB,IAAK,GAAG,IAAK;AAAK,SAAW,EAE7B,IAAK,IAAK,OAAY,WAAa,KAAIC,YAAa,QAAQA,YAAY;AAAO,EAAE,GAC5E,SAAW,GAAM,OAAOA,WAAU,EAAIF,SACzC,OAAO,SAAW,GAAK,YAAYE;AAAa,IAAK,KAAM,OAAQF,QAAS,EAAG,YAAY,EAAI,YAAY,QAAQE,YAAY,IAAK,EAAE;AAAI,IAAK,KAAM,OAAQF,QAAS,EAAG,YAAY,EAAG,YAAY,EACrM,MAED,IAAK,IAAIE;AAAc,IAEvB,QAGC,GAFA,OAAO,UAAY,QAAQA,YAAY,KAAM,OAAQ,MAAO,OAAQ;AAAO,OAAQ,KAAM,MAAQ,CAAC,EAAG,SAAW,CAAC,EAAGF,QAAQ,QAAQ,EAAG,QAAQ,EAE3IC,aAAc,IACjB,GAAI;AAAW,EACd,MAAMC,YAAY,KAAM,UAAW,UAAW,MAAO,SAAUF,QAAQ,OAAQ,QAAQ;AAEvF,OAAQ,SAAW,IAAM,OAAOE,YAAY,CAAC,IAAM,IAAM,IAAM,OAAQ,CAEtE,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK;AAClC,MAAM,MAAO,UAAW,UAAW,MAAQ,OAAO,QAAQ,MAAO,UAAW,UAAW;AAAG,EAAG,MAAO,OAAQ,KAAM,MAAO,MAAQ,CAAC,EAAGF,QAAQ,QAAQ,EAAG,QAAQ,EAAG,MAAO,SAAUA;AAAQ,OAAQ,KAAO,MAAQ,QAAQ,EAC3N,MACD,QACC,MAAME,YAAY,UAAW;AAAW,UAAW,CAAC,EAAE,EAAG,SAAU,EAAG,OAAQ,QAAQ,CACxF,CACJ,CAEA,MAAQ,OAAS,SAAW,EAAG,SAAW;AAAY,EAAG,KAAOA,YAAa,GAAIF,QAAS,OAC1F,MAED,IAAK,IACJA,QAAS,EAAI,OAAOE,WAAU;AAAG,SAAW,SAC7C,QACC,GAAI,SAAW,GACd,GAAID,YAAa,IAChB,EAAE,iBACMA;AAAa,KAAO,YAAc,GAAK,KAAK,GAAK,IACzD,SAEF,OAAQC,aAAc,KAAKD,UAAS,EAAGA;AAAY,SAAU,CAE5D,IAAK,IACJ,UAAY,OAAS,EAAI,GAAKC,aAAc,KAAM,IAClD,MAED,IAAK,IACJ,OAAO,OAAO;AAAA,CAAK,OAAOA,WAAU,EAAI,GAAK,UAAW,UAAY,EACpE,MAED,IAAK,IAEA,KAAK,IAAM,KACdA;AAAc,QAAQ,KAAK,CAAC,GAE7B,OAAS,KAAK,EAAG,OAASF,QAAS,OAAO,KAAOE,aAAc;AAAW,MAAM,CAAC,CAAC,EAAGD,aACrF,MAED,IAAK,IACA,WAAa,IAAM,OAAOC,WAAU,GAAK,IAC5C;AAAW,EACd,CACF,CAED,OAAO,QACR,CAtHgB,sBAuIT,SAAS,QAAS,MAAO,KAAM,OAAQ,MAAO,OAAQ,MAAO,OAAQ,KAAM,MAAO,SAAUF,QAAQ,SAAU;AAKpH,QAJI,KAAO,OAAS,EAChB,KAAO,SAAW,EAAI,MAAQ,CAAC,EAAE,EACjC,KAAO,OAAO,IAAI,EAEb,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG;AAAI,MAAO,EAAE,EAC1C,QAAS,EAAI,EAAG,EAAI,OAAO,MAAO,KAAO,EAAG,KAAO,IAAI,EAAI,OAAO,CAAC,CAAC,CAAC,EAAG,EAAI,MAAO,EAAI,KAAM,EAAE;AAAA,CAC1F,EAAI,KAAK,EAAI,EAAI,KAAK,CAAC,EAAI,IAAM,EAAI,QAAQ,EAAG,OAAQ,KAAK,CAAC,CAAC,CAAC,KACnE,MAAM,GAAG,EAAI,GAEhB,OAAO;AAAK,MAAO,KAAM,OAAQ,SAAW,EAAI,QAAU,KAAM,MAAO,SAAUA,QAAQ,QAAQ,CAClG,CAXgB;AAAA,mBAoBT,SAAS,QAAS,MAAO,KAAM,OAAQ,SAAU,CACvD,OAAO,KAAK;AAAO,KAAM,OAAQ,QAAS,KAAK,KAAK,CAAC,EAAG,OAAO,MAAO,EAAG,EAAE,EAAG,EAAG,QAAQ,CAC1F,CAFgB;AAAA,UAYT,SAAS,YAAa,MAAO,KAAM,OAAQA,QAAQ,SAAU,CACnE,OAAO,KAAK;AAAO,KAAM,OAAQ,YAAa,OAAO,MAAO,EAAGA,OAAM,EAAG,OAAO,MAAOA,QAAS,EAAG,EAAE,EAAGA;AAAQ,QAAQ,CACxH,CAFgB,kCCvLT,SAAS,UAAW,SAAU,SAAU,CAG9C,QAFI,OAAS,GAEJ,EAAI,EAAG,EAAI,SAAS,OAAQ;AACpC,QAAU,SAAS,SAAS,CAAC,EAAG,EAAG,SAAU,QAAQ,GAAK,GAE3D,OAAO,MACR,CAPgB;AAAA,aAgBT,SAAS,UAAW,QAAS,MAAO,SAAU,SAAU,CAC9D,OAAQ;AAAQ,KAAM,CACrB,KAAK,MAAO,GAAI,QAAQ,SAAS,OAAQ,MACzC,KAAK,OAAQ,KAAK,YAAa,OAAO;AAAQ,OAAS,QAAQ,QAAU,QAAQ,MACjF,KAAK,QAAS,MAAO,GACrB,KAAK,UAAW,OAAO;AAAQ,OAAS,QAAQ,MAAQ,IAAM,UAAU,QAAQ,SAAU,QAAQ,EAAI,IACtG,KAAK,QAAS,GAAI,CAAC;AAAO,QAAQ,MAAQ,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAG,MAAO,EAC5E,CAEA,OAAO,OAAO,SAAW;AAAU,QAAQ,SAAU,QAAQ,CAAC,EAAI,QAAQ,OAAS,QAAQ,MAAQ,IAAM,SAAW,IAAM,EAC3H,CAVgB;uBCtBT,SAAS,OAAO,IAAa,CAClC,OAAO,UAAU,QAAQ,GAAG,EAAG,SAAS,CAC1C,CAFgB;MCGT,SAAS,aACd,KACA,CACA,OAAO,cAAsB,IAAK,CAiJhC,eAAe,KAAa,CAC1B;AAAM,GAAG,IAAI,EAPf,sBAAmB,GAQZ,KAAK,QAAU,KAAK,UAAU,EACnC,KAAK;AAAW,EAAI,CACtB,CA7JJ,MAQoC,wBAQhC,YAAO,QAAoB,CAAC,EAK5B,OAAO,WAAW,IAAqB;AACrC,OAAO,GACT,CAMA,WAAW,QAAmB,CAC5B,OAAI,KAAK,UAAY,OAAO,eAAe,IAAI;AAAE,SAC/C,KAAK,QAAU,CAAC,GAEX,KAAK,OACd,CAGA,WAAW,WAAsB,CAC/B,IAAI,WAAa;AAAO,eAAe,IAAI,EACrC,UAAY,CAAC,EAEnB,KAAO,WAAW,SAAW,QAC3B,UAAU;AAAK,GAAG,WAAW,MAAM,EACnC,WAAa,OAAO,eAAe,UAAU,EAE/C;AAAU,KAAK,GAAG,KAAK,MAAM,EACtB,SACT,CAGA,WAAW,IAAI,IAAa,CAC1B,KAAK,QAAU,CAAC,GAAG,EAEf,KAAK;AACP,KAAK,cAAc,YACjB,KAAK,WAAW,GAAG,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,GAAI,CACtD,CAEJ,CAGA,WAAW,KAAc,CACvB,OAAO,KAAK,OAAO,KAAK;AAAA,CAAI,CAC9B,CAEA,WAAW,QAAiB,CAC1B,OAAO,KAAK,UAAU,KAAK;AAAA,CAAI,CACjC,CAKA,WAAW,SAAyB,CAClC,OAAI,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE;AAAA,CAChD,KAAK,SAAW,MAEX,KAAK,QACd,CAKA,WAAW,eAA+B,CACxC,IAAM,mBAAqB;AAAO,eAAe,IAAI,EAAE,eACvD,OAAI,KAAK,iBAAmB;AAAA,CAC1B,KAAK,eAAiB,IAAI,eAErB,KAAK,cACd,CAGA,OAAO,SAAS,IAAa;AAG3B,GAFA,KAAK,QAAU,KAAK,QAAQ,OAAO,GAAG,EAElC,KAAK,QAAS,CAChB,IAAM,KAAO,GAAG,KAAK,OAAO;AAAA,KAAM,GAAG,KAC/B,aAAe,KAAK,WAAW,IAAI,EACzC,KAAK,cAAc,WACjB;AACA,KAAK,cAAc,SAAS,MAC9B,CACF,CACF,CAOA,OAAO,OAAO,QAAuB,CACnC,KAAK,SAAW;AAChB,eAAe,OAAO,QAAS,IAAI,EACnC,KAAK,UAAU,CACjB,CAGA,OAAO,WAAY,CACjB,KAAK;AAAc,YACjB,KAAK,WAAW,GAAG,KAAK,OAAO,MAAM,KAAK,MAAM,IAAI,CACtD,EACA,SAAS;AAAmB,KAAK,KAAK,aAAa,CACrD,CAEA,OAAO,SAAS,IAAmB,CACjC,QAAQ,KAAK;AAAA,6BAAkD,EAC/D,KAAK,SAAS,GAAG,CACnB,CAGA,OAAO,WAAW,OAAgB,IAAa;AAC7C,QAAQ,KAAK,oDAAoD,EACjE,KAAK;AAAS,KAAK,MAAM,MAAM,GAAG,IAAI,CACxC,CA2BA,mBAAoB,CACb,KAAK,mBACR,KAAK,IAAM;AAAK,IAEpB,CAEA,IAAI,aAAc,CAChB,OAAI,KAAK,aAAuB,KAAK,cAErC,KAAK;AAAe,IAAI,iBAAkB,WAAc,CACtD,QAAW,YAAY,UACjB,SAAS;AAAkB,QAC7B,KAAK,IAAM,KAAK,aAAa,KAAK,GAAK,GAG7C,CAAC,EACM,KAAK,aACd,CAGA,IAAI,MAAe,CACjB,OAAK;AAAK,QACR,KAAK,MAAQ,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,IAEjC,KAAK,KACd,CAMA,IAAI,eAAgB,CAClB,GAAI;AAAK,eAAkB,OAAO,KAAK,eAKvC,GAHA,KAAK,eAAiB,IAAI;AAGtB,CAAC,KAAK,YAAa,CACrB,IAAM,MAAQ,SAAS,mBAAmB,OAC1C,KAAK,UAAU;AAAI,KAAK,IAAI,EAC5B,SAAS,mBAAmB,KAAK,EAAI,KAAK,eAC1C,KAAK;AAAyB,KAChC,CAEA,OAAO,KAAK,cACd,CAKA,IAAI,qBAA8B,CAChC,OAAO,KAAK;AAAU,MAAM,QAAQ,KAAM,GAAG,CAC/C,CAMA,IAAI,IAAI,IAAa,CAEnB,KAAK,cAEL,IAAM,aAAe,KAAK;AAAO,WAC/B,GAAG,KAAK,OAAO,IAAI,KAAK,mBAAmB,MAAM,GAAG,IACtD,EAEA,KAAK;AAAc,YAAY,YAAY,CAC7C,CAGA,IAAI,KAAc,CAChB,IAAI,IAAM,KAAK,aAAa,KAAK,GAAK,GACtC,GAAI;AAAO,OAAO,IAClB,QAAW,QAAQ,KAAK,cAAc,SACpC,KAAO,KAAK,QAAU;AAAA,EAExB,OAAO,GACT,CAEA,WAAY,CACV,KAAK,OAAS,KAAK,YAMf,MAAK,OAAO,UAGhB;AAAK,OAAO,SAAW,KAAK,QAC5B,KAAK,OAAO,UAAU,EACxB,CAGA,WAAW,OAAiB,CACtB;AACF,KAAK,YAAY,QAAQ,KAAM,CAAE,WAAY,EAAK,CAAC,EAEnD,KAAK,YAAY,WAAW,CAEhC,CAKA,aAAa,KAAkC;AAC7C,IAAM,WAAa,MAAM,aAAa,IAAI,EAC1C,kBAAW,mBAAqB,CAC9B;AAAK,OAAO,cACZ,KAAK,aACP,EACA,SAAS,mBAAmB,OAAO;AAAK,uBAAwB,CAAC,EACjE,KAAK,YAAc,WACZ,UACT,CAGA,SAAS,IAAmB,CAE1B;AAAK,cAEL,IAAM,aAAe,KAAK,OAAO,WAC/B,GAAG,KAAK,OAAO,IAAI,KAAK,mBAAmB;AAAA,KAAM,GAAG,IACtD,EAEA,KAAK,cAAc,WACjB,aACA,KAAK,cAAc;AAAS,MAC9B,CACF,CAGA,QAAS,CACF,KAAK,aACR,SAAS,mBAAmB,OAAO,KAAK;AAAwB,CAAC,EAEnE,KAAK,OAAO,CACd,CACF,CACF,CArSgB,oCAuST,IAAM,QAAN,cAAsB;AAAa,WAAW,CAAE,CA5SvD,MA4SuD,wBACrD,OAAO,WAAW,IAAqB,CACrC,OAAO;AAAO,GAAG,CACnB,CACF,EC7SA,IAAM,UAAN,cAAwB,OAAQ,CAHhC,MAGgC,0BAC5B;AAAO,IAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OASpB,aAAc,CACV,MAAM,EACN,IAAM,WAAa,SAAS,cAAc,YAAY;AACtD,WAAW,IAAM,CACb,KAAK,IAAM,KAAK,aAAa,CACjC,EAAG,CAAC,EACJ,WAAW,iBAAiB;AAAA,IAAQ,IAAM,CACtC,KAAK,SAAS,gBAAgB,CAClC,CAAC,EACD,WAAW,iBAAiB,OAAQ,IAAM;AACtC,KAAK,IAAM,KAAK,aAAa,CACjC,CAAC,CACL,CAEA,cAAuB,CACnB,IAAM,WAAa,SAAS;AAAc,YAAY,EACtD,MAAc;AAAA;AAAA;AAAA,oCAGc,iBAAiB,UAAU,EAAE,KAAK;AAAA;AAAA,UAGlE,CACJ", "names": ["length", "length", "character", "characters"] } diff --git a/docs/guide/_ui/menu.js b/docs/guide/_ui/menu.js index 61cadfb..07c6954 100644 --- a/docs/guide/_ui/menu.js +++ b/docs/guide/_ui/menu.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,23 +455,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var import_color=__toESM(require_color(),1);function bgColor(color2){return` diff --git a/docs/guide/_ui/menu.js.map b/docs/guide/_ui/menu.js.map index d158918..c4a35d7 100644 --- a/docs/guide/_ui/menu.js.map +++ b/docs/guide/_ui/menu.js.map @@ -1,7 +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", "../../../docs-src/guide/_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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "import { Menu as _Menu } from '../../_ux/ui/menu';\n\n\nclass Menu extends _Menu {\n static css = /*css*/`\n ${_Menu.style()}\n a {\n width: 100%;\n text-decoration: none;\n color: unset;\n }\n summary {\n h2 {\n font-size: 1.25rem;\n line-height: 2;\n margin: 0;\n padding-left: 0.5rem;\n }\n }\n `;\n};\n\nexport { Menu };"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "import { Menu as _Menu } from '../../_ux/ui/menu';\n\n\nclass Menu extends _Menu {\n static css = /*css*/`\n ${_Menu.style()}\n a {\n width: 100%;\n text-decoration: none;\n color: unset;\n }\n summary {\n h2 {\n font-size: 1.25rem;\n line-height: 2;\n margin: 0;\n padding-left: 0.5rem;\n }\n }\n `;\n};\n\nexport { Menu };"], + "mappings": "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", "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "color", "Color", "Menu"] } diff --git a/docs/guide/_ui/sidebar.js b/docs/guide/_ui/sidebar.js index 6ededbe..4ae4b5b 100644 --- a/docs/guide/_ui/sidebar.js +++ b/docs/guide/_ui/sidebar.js @@ -451,49 +451,55 @@ return=element.return||element.value;case COMMENT:return"";case KEYFRAMES:return return=element.value+"{"+serialize(element.children,callback)+"}";case RULESET:if(!strlen( element.value=element.props.join(",")))return""}return strlen(children=serialize( element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( -stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ -lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +stringify,"stringify");function stylis(css3){return serialize(compile(css3),stringify)}__name(stylis,"s\ +tylis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css3){ +return css3}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css3){this._styles=[css3],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. getPrototypeOf(this)._cssStyleSheet;return this._cssStyleSheet===superCSSStyleSheet&& -(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css){ -if(this._styles=this._styles.concat(css),this.tagName){let rule=`${this.tagName}\ - { ${css} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, +(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css3){ +if(this._styles=this._styles.concat(css3),this.tagName){let rule=`${this.tagName}\ + { ${css3} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, this.cssStyleSheet.cssRules.length)}}static define(tagName){this._tagName=tagName, customElements.define(tagName,this),this.initStyle()}static initStyle(){this.cssStyleSheet. replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adoptedStyleSheets. -push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ -ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ +push(this.cssStyleSheet)}static tagStyle(css3){console.warn("tagStyle() is depre\ +cated, use addStyle() instead"),this.addStyle(css3)}static classStyle(class_,css3){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` -`;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( -HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( -css)}};var import_color2=__toESM(require_color(),1);var buttonStyle=__name(color2=>` +`&.${class_} { ${css3} }`)}connectedCallback(){this._isConnectedOnce||(this.css= +this.css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css3){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css3} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css3=this.getAttribute("css")||"";if(css3) +return css3;for(let rule of this.cssStyleSheet.cssRules)css3+=rule.cssText+` +`;return css3}initClass(){this._class=this.constructor,!this._class.tagName&&(this. +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css3){ +this.cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this. +objectClassSelector} { ${css3} }`);this.cssStyleSheet.insertRule(processedCss,this. +cssStyleSheet.cssRules.length)}delete(){this._shadowRoot||document.adoptedStyleSheets. +splice(this.adoptedStyleSheetIndex,1),this.remove()}}}__name(AdapterMixin,"Adapt\ +erMixin");var Adapter=class extends AdapterMixin(HTMLElement){static{__name(this, +"Adapter")}static cssProcess(css3){return stylis(css3)}};var import_color2=__toESM(require_color(),1);var buttonStyle=__name(color2=>` & { display: inline-flex; flex-wrap: wrap; @@ -529,25 +535,21 @@ css)}};var import_color2=__toESM(require_color(),1);var buttonStyle=__name(color } `,"buttonStyle");var color={blue:"#3584e4",green:"#33d17a",yellow:"#f6d32d",orange:"#ff7800",red:"\ #e01b24",purple:"#9141ac",violet:"#9141ac",brown:"#986a44",light:"#deddda",dark:"\ -#3d3846"};var sidebarStyle=__name(()=>` - & { - 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); - } +#3d3846"};var css=String.raw,sidebarStyle=__name(()=>css` + 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; &.show { transform: translateX(0); @@ -561,11 +563,10 @@ css)}};var import_color2=__toESM(require_color(),1);var buttonStyle=__name(color idebar")}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()}};var sideBarStyle=` - & { - height: 110dvh; - ${bgColor(color.dark)} - } +"show")?this.hide():this.show()}};var css2=String.raw,sideBarStyle=css2` + height: 110dvh; + ${bgColor(color.dark)} + transition: transform 0.4s ease; a:has(h1) { color: white; @@ -581,9 +582,7 @@ classList.remove("show"),this.classList.add("hide")}toggle(){this.classList.cont filter: drop-shadow(2px 2px 4px ${(0,import_color3.default)(color.dark).alpha( .8).string()}); - &.show { - filter: drop-shadow(2px 2px 4px ${(0,import_color3.default)(color.dark). -alpha(.8).string()}); + &.show { [el="toggle"] { span { transform: rotate(180deg) } }; @@ -623,13 +622,16 @@ alpha(.8).string()}); } } `,Sidebar2=class _Sidebar extends Sidebar{static{__name(this,"Sidebar")}static{this. -css=` +css=css2` ${_Sidebar.style()} ${sideBarStyle} `}constructor(){super(),this.querySelector('[el="toggle"]')?.addEventListener( -"click",()=>{this.toggle()});let mql=window.matchMedia("screen and (max-width: 1\ -200px)");setTimeout(()=>{this.onMediaQueryChange(mql)},0),setTimeout(()=>{mql.addEventListener( -"change",()=>{this.onMediaQueryChange(mql)})},750)}onMediaQueryChange(mql){mql.matches? -this.hide():this.show()}show(){super.show(),this.dispatchEvent(new CustomEvent("\ -show"))}hide(){super.hide(),this.dispatchEvent(new CustomEvent("hide"))}};export{Sidebar2 as Sidebar}; +"click",()=>{this.toggle()}),this.addEventListener("click",event=>{["A","H1","H2"]. +includes(event.target.tagName)&&this.onLinkClick()});let mql=window.matchMedia("\ +screen and (max-width: 1200px)");setTimeout(()=>{this.onMediaQueryChange(mql)},750), +setTimeout(()=>{mql.addEventListener("change",()=>{this.onMediaQueryChange(mql)})}, +750)}onMediaQueryChange(mql){mql.matches?this.hide():this.show()}onLinkClick(){window. +innerWidth>1200||setTimeout(()=>{this.hide()},500)}show(){super.show(),this.dispatchEvent( +new CustomEvent("show"))}hide(){super.hide(),this.dispatchEvent(new CustomEvent( +"hide"))}};export{Sidebar2 as Sidebar}; //# sourceMappingURL=sidebar.js.map diff --git a/docs/guide/_ui/sidebar.js.map b/docs/guide/_ui/sidebar.js.map index 4ce1d64..b4a2134 100644 --- a/docs/guide/_ui/sidebar.js.map +++ b/docs/guide/_ui/sidebar.js.map @@ -1,7 +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/guide/_ui/sidebar.ts", "../../../docs-src/_ux/style.ts", "../../../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/designToken.ts", "../../../docs-src/_ux/ui/sidebar.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\nimport { aspectRatio, bgColor } from '../../_ux/style';\nimport { buttonStyle } from '../../_ux/ui/button';\nimport { color } from '../../_ux/designToken';\nimport { Sidebar as _Sidebar } from '../../_ux/ui/sidebar';\n\n\nconst sideBarStyle = /*css*/`\n & {\n height: 110dvh;\n ${bgColor(color.dark)}\n }\n\n a:has(h1) {\n color: white;\n text-align: center;\n width: 100%;\n margin-bottom: 0.8rem;\n &:hover {\n color: ${color.blue};\n transition: color 0.2s ease;\n }\n }\n\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n\n &.show {\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n [el=\"toggle\"] {\n span { transform: rotate(180deg) }\n };\n }\n \n &.hide {\n filter: none;\n [el=\"toggle\"] {\n span { transform: rotate(0deg) }\n };\n }\n\n el-button[el=\"toggle\"] {\n ${buttonStyle('blue')}\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: fixed;\n top: 70dvh;\n right: 0;\n width: 3em;\n transform: translateX(100%);\n opacity: 0.7;\n &:hover { opacity: 1 };\n ${aspectRatio('1')}\n button {\n width: 100%;\n height: 100%;\n border-top-left-radius:0 ;\n border-bottom-left-radius: 0;\n }\n span {\n line-height: 1;\n font-size: 1.5em;\n transition: transform 0.4s ease;\n transform: rotate(0deg);\n }\n }\n`;\n\nclass Sidebar extends _Sidebar {\n static css = /*css*/`\n ${Sidebar.style()}\n ${sideBarStyle}\n `;\n\n constructor() {\n super();\n this.querySelector('[el=\"toggle\"]')?.addEventListener('click', () => { \n this.toggle();\n });\n\n let mql = window.matchMedia('screen and (max-width: 1200px)');\n setTimeout(() => {\n this.onMediaQueryChange(mql);\n }, 0);\n setTimeout(() => {\n mql.addEventListener('change', () => {\n this.onMediaQueryChange(mql);\n });\n }, 750);\n }\n\n onMediaQueryChange(mql: MediaQueryList) {\n mql.matches ? this.hide() : this.show();\n }\n\n show() {\n super.show();\n this.dispatchEvent(new CustomEvent('show'));\n }\n\n hide() {\n super.hide();\n this.dispatchEvent(new CustomEvent('hide'));\n }\n}\n\nexport { Sidebar };", "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 };", "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "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 \"../../adapter.js\";\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": ["slice", "color", "char", "node", "from", "Color", "color", "length", "import_color", "color", "Color", "length", "length", "character", "characters", "import_color", "color", "Color", "Color", "Sidebar"] + "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\nimport { aspectRatio, bgColor } from '../../_ux/style';\nimport { buttonStyle } from '../../_ux/ui/button';\nimport { color } from '../../_ux/designToken';\nimport { Sidebar as _Sidebar } from '../../_ux/ui/sidebar';\n\n\nconst css = String.raw;\n\nconst sideBarStyle = css`\n height: 110dvh;\n ${bgColor(color.dark)}\n transition: transform 0.4s ease;\n\n a:has(h1) {\n color: white;\n text-align: center;\n width: 100%;\n margin-bottom: 0.8rem;\n &:hover {\n color: ${color.blue};\n transition: color 0.2s ease;\n }\n }\n\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n\n &.show { \n [el=\"toggle\"] {\n span { transform: rotate(180deg) }\n };\n }\n \n &.hide {\n filter: none;\n [el=\"toggle\"] {\n span { transform: rotate(0deg) }\n };\n }\n\n el-button[el=\"toggle\"] {\n ${buttonStyle('blue')}\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: fixed;\n top: 70dvh;\n right: 0;\n width: 3em;\n transform: translateX(100%);\n opacity: 0.7;\n &:hover { opacity: 1 };\n ${aspectRatio('1')}\n button {\n width: 100%;\n height: 100%;\n border-top-left-radius:0 ;\n border-bottom-left-radius: 0;\n }\n span {\n line-height: 1;\n font-size: 1.5em;\n transition: transform 0.4s ease;\n transform: rotate(0deg);\n }\n }\n`;\n\nclass Sidebar extends _Sidebar {\n static css = css`\n ${Sidebar.style()}\n ${sideBarStyle}\n `;\n\n constructor() {\n super();\n\n this.querySelector('[el=\"toggle\"]')?.addEventListener('click', () => { \n this.toggle();\n });\n\n this.addEventListener('click', (event) => {\n if (['A', 'H1', 'H2'].includes(event.target.tagName)) {\n this.onLinkClick();\n }\n })\n\n let mql = window.matchMedia('screen and (max-width: 1200px)');\n setTimeout(() => {\n this.onMediaQueryChange(mql);\n }, 750);\n setTimeout(() => {\n mql.addEventListener('change', () => {\n this.onMediaQueryChange(mql);\n });\n }, 750);\n }\n\n onMediaQueryChange(mql: MediaQueryList) {\n mql.matches ? this.hide() : this.show();\n }\n\n onLinkClick() {\n if (window.innerWidth > 1200) { return };\n setTimeout(() => {\n this.hide();\n }, 500);\n }\n\n show() {\n super.show();\n this.dispatchEvent(new CustomEvent('show'));\n }\n\n hide() {\n super.hide();\n this.dispatchEvent(new CustomEvent('hide'));\n }\n}\n\nexport { Sidebar };", "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 };", "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "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 \"../../adapter.js\";\n\nconst css = String.raw;\n\nconst sidebarStyle = (): string => {\n const style = css`\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\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": ["slice", "color", "char", "node", "from", "Color", "color", "length", "import_color", "color", "Color", "length", "length", "character", "characters", "css", "css", "import_color", "color", "Color", "css", "Color", "Sidebar"] } diff --git a/docs/guide/base.js b/docs/guide/base.js index 8432024..feed0d9 100644 --- a/docs/guide/base.js +++ b/docs/guide/base.js @@ -431,49 +431,55 @@ return=element.return||element.value;case COMMENT:return"";case KEYFRAMES:return return=element.value+"{"+serialize(element.children,callback)+"}";case RULESET:if(!strlen( element.value=element.props.join(",")))return""}return strlen(children=serialize( element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( -stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ -lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +stringify,"stringify");function stylis(css3){return serialize(compile(css3),stringify)}__name(stylis,"s\ +tylis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css3){ +return css3}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css3){this._styles=[css3],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. getPrototypeOf(this)._cssStyleSheet;return this._cssStyleSheet===superCSSStyleSheet&& -(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css){ -if(this._styles=this._styles.concat(css),this.tagName){let rule=`${this.tagName}\ - { ${css} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, +(this._cssStyleSheet=new CSSStyleSheet),this._cssStyleSheet}static addStyle(css3){ +if(this._styles=this._styles.concat(css3),this.tagName){let rule=`${this.tagName}\ + { ${css3} }`,processedCss=this.cssProcess(rule);this.cssStyleSheet.insertRule(processedCss, this.cssStyleSheet.cssRules.length)}}static define(tagName){this._tagName=tagName, customElements.define(tagName,this),this.initStyle()}static initStyle(){this.cssStyleSheet. replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adoptedStyleSheets. -push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ -ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ +push(this.cssStyleSheet)}static tagStyle(css3){console.warn("tagStyle() is depre\ +cated, use addStyle() instead"),this.addStyle(css3)}static classStyle(class_,css3){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` -`;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( -HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( -css)}};var import_color=__toESM(require_color(),1);function bgColor(color2){return` +`&.${class_} { ${css3} }`)}connectedCallback(){this._isConnectedOnce||(this.css= +this.css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css3){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css3} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css3=this.getAttribute("css")||"";if(css3) +return css3;for(let rule of this.cssStyleSheet.cssRules)css3+=rule.cssText+` +`;return css3}initClass(){this._class=this.constructor,!this._class.tagName&&(this. +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css3){ +this.cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this. +objectClassSelector} { ${css3} }`);this.cssStyleSheet.insertRule(processedCss,this. +cssStyleSheet.cssRules.length)}delete(){this._shadowRoot||document.adoptedStyleSheets. +splice(this.adoptedStyleSheetIndex,1),this.remove()}}}__name(AdapterMixin,"Adapt\ +erMixin");var Adapter=class extends AdapterMixin(HTMLElement){static{__name(this, +"Adapter")}static cssProcess(css3){return stylis(css3)}};var import_color=__toESM(require_color(),1);function bgColor(color2){return` background-color: ${color2}; color: ${(0,import_color.default)(color2).isDark()?"white":"black"}; `.trim()}__name(bgColor,"bgColor");function lift(level,color2="black"){return`\ @@ -615,7 +621,6 @@ querySelector("details")}};var Menu2=class extends Menu{static{__name(this,"Menu body { display: flex; justify-content: center; - padding: 0; > el-container:first-of-type { margin-top: 2rem; } @@ -671,25 +676,21 @@ le");var import_color3=__toESM(require_color(),1);var import_color2=__toESM(requ ${lift(.5,"#555")} } } - `,"buttonStyle");var sidebarStyle=__name(()=>` - & { - 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); - } + `,"buttonStyle");var css=String.raw,sidebarStyle=__name(()=>css` + 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; &.show { transform: translateX(0); @@ -703,11 +704,10 @@ le");var import_color3=__toESM(require_color(),1);var import_color2=__toESM(requ idebar")}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()}};var sideBarStyle=` - & { - height: 110dvh; - ${bgColor(color.dark)} - } +"show")?this.hide():this.show()}};var css2=String.raw,sideBarStyle=css2` + height: 110dvh; + ${bgColor(color.dark)} + transition: transform 0.4s ease; a:has(h1) { color: white; @@ -723,9 +723,7 @@ classList.remove("show"),this.classList.add("hide")}toggle(){this.classList.cont filter: drop-shadow(2px 2px 4px ${(0,import_color3.default)(color.dark).alpha( .8).string()}); - &.show { - filter: drop-shadow(2px 2px 4px ${(0,import_color3.default)(color.dark). -alpha(.8).string()}); + &.show { [el="toggle"] { span { transform: rotate(180deg) } }; @@ -765,22 +763,23 @@ alpha(.8).string()}); } } `,Sidebar2=class _Sidebar extends Sidebar{static{__name(this,"Sidebar")}static{this. -css=` +css=css2` ${_Sidebar.style()} ${sideBarStyle} `}constructor(){super(),this.querySelector('[el="toggle"]')?.addEventListener( -"click",()=>{this.toggle()});let mql=window.matchMedia("screen and (max-width: 1\ -200px)");setTimeout(()=>{this.onMediaQueryChange(mql)},0),setTimeout(()=>{mql.addEventListener( -"change",()=>{this.onMediaQueryChange(mql)})},750)}onMediaQueryChange(mql){mql.matches? -this.hide():this.show()}show(){super.show(),this.dispatchEvent(new CustomEvent("\ -show"))}hide(){super.hide(),this.dispatchEvent(new CustomEvent("hide"))}};var Container=class extends Adapter{static{__name(this,"Container")}static{this. +"click",()=>{this.toggle()}),this.addEventListener("click",event=>{["A","H1","H2"]. +includes(event.target.tagName)&&this.onLinkClick()});let mql=window.matchMedia("\ +screen and (max-width: 1200px)");setTimeout(()=>{this.onMediaQueryChange(mql)},750), +setTimeout(()=>{mql.addEventListener("change",()=>{this.onMediaQueryChange(mql)})}, +750)}onMediaQueryChange(mql){mql.matches?this.hide():this.show()}onLinkClick(){window. +innerWidth>1200||setTimeout(()=>{this.hide()},500)}show(){super.show(),this.dispatchEvent( +new CustomEvent("show"))}hide(){super.hide(),this.dispatchEvent(new CustomEvent( +"hide"))}};var Container=class extends Adapter{static{__name(this,"Container")}static{this. css=`& { all: unset; display: block; box-sizing: border-box; - margin-bottom: 40dvh; max-width: 80ch; - min-height: 100dvh; width: 90%; transition: margin-left 0.3s ease-in-out; }`}constructor(){super();let el_sidebar=document.querySelector("el-sidebar"); diff --git a/docs/guide/base.js.map b/docs/guide/base.js.map index 8fa54fc..08ba942 100644 --- a/docs/guide/base.js.map +++ b/docs/guide/base.js.map @@ -1,7 +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", "../../docs-src/guide/_ui/menu.ts", "../../docs-src/guide/_base.style.ts", "../../docs-src/guide/_ui/sidebar.ts", "../../docs-src/_ux/ui/button.ts", "../../docs-src/_ux/ui/sidebar.ts", "../../docs-src/guide/_ui/container.ts", "../../docs-src/guide/base.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "import { Menu as _Menu } from '../../_ux/ui/menu';\n\n\nclass Menu extends _Menu {\n static css = /*css*/`\n ${_Menu.style()}\n a {\n width: 100%;\n text-decoration: none;\n color: unset;\n }\n summary {\n h2 {\n font-size: 1.25rem;\n line-height: 2;\n margin: 0;\n padding-left: 0.5rem;\n }\n }\n `;\n};\n\nexport { Menu };", "function baseStyle() {\n const cssStyleSheet = new CSSStyleSheet();\n cssStyleSheet.replaceSync(/*css*/`\n body {\n display: flex;\n justify-content: center;\n padding: 0;\n > el-container:first-of-type {\n margin-top: 2rem;\n }\n }\n h1, h2, h3 {\n margin: auto;\n max-width: 80ch;\n }\n h1 {\n text-align: center\n }\n h2{\n margin-top: 2.5rem;\n }\n h3 {\n margin-top: 1.5rem;\n }\n p {\n margin: 1rem auto;\n }\n `);\n document.adoptedStyleSheets.push(cssStyleSheet);\n};\n\nexport { baseStyle };", "import Color from 'color';\n\nimport { aspectRatio, bgColor } from '../../_ux/style';\nimport { buttonStyle } from '../../_ux/ui/button';\nimport { color } from '../../_ux/designToken';\nimport { Sidebar as _Sidebar } from '../../_ux/ui/sidebar';\n\n\nconst sideBarStyle = /*css*/`\n & {\n height: 110dvh;\n ${bgColor(color.dark)}\n }\n\n a:has(h1) {\n color: white;\n text-align: center;\n width: 100%;\n margin-bottom: 0.8rem;\n &:hover {\n color: ${color.blue};\n transition: color 0.2s ease;\n }\n }\n\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n\n &.show {\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n [el=\"toggle\"] {\n span { transform: rotate(180deg) }\n };\n }\n \n &.hide {\n filter: none;\n [el=\"toggle\"] {\n span { transform: rotate(0deg) }\n };\n }\n\n el-button[el=\"toggle\"] {\n ${buttonStyle('blue')}\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: fixed;\n top: 70dvh;\n right: 0;\n width: 3em;\n transform: translateX(100%);\n opacity: 0.7;\n &:hover { opacity: 1 };\n ${aspectRatio('1')}\n button {\n width: 100%;\n height: 100%;\n border-top-left-radius:0 ;\n border-bottom-left-radius: 0;\n }\n span {\n line-height: 1;\n font-size: 1.5em;\n transition: transform 0.4s ease;\n transform: rotate(0deg);\n }\n }\n`;\n\nclass Sidebar extends _Sidebar {\n static css = /*css*/`\n ${Sidebar.style()}\n ${sideBarStyle}\n `;\n\n constructor() {\n super();\n this.querySelector('[el=\"toggle\"]')?.addEventListener('click', () => { \n this.toggle();\n });\n\n let mql = window.matchMedia('screen and (max-width: 1200px)');\n setTimeout(() => {\n this.onMediaQueryChange(mql);\n }, 0);\n setTimeout(() => {\n mql.addEventListener('change', () => {\n this.onMediaQueryChange(mql);\n });\n }, 750);\n }\n\n onMediaQueryChange(mql: MediaQueryList) {\n mql.matches ? this.hide() : this.show();\n }\n\n show() {\n super.show();\n this.dispatchEvent(new CustomEvent('show'));\n }\n\n hide() {\n super.hide();\n this.dispatchEvent(new CustomEvent('hide'));\n }\n}\n\nexport { Sidebar };", "import { Adapter } from \"../../adapter.js\";\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 { Adapter } from \"../../adapter.js\";\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 };", "import { Adapter } from '../../adapter';\n\n\nclass Container extends Adapter {\n static css = /*css*/`& {\n all: unset;\n display: block;\n box-sizing: border-box;\n margin-bottom: 40dvh;\n max-width: 80ch;\n min-height: 100dvh;\n width: 90%;\n transition: margin-left 0.3s ease-in-out;\n }`;\n\n constructor() {\n super();\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n setTimeout(() => {\n this.css = this.defaultStyle();\n }, 0);\n el_sidebar.addEventListener('hide', () => {\n this.addStyle(`margin: unset;`);\n });\n el_sidebar.addEventListener('show', () => {\n this.css = this.defaultStyle();\n });\n }\n\n defaultStyle(): string {\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n return /*css*/`& {\n @media screen and (min-width: 1200px) {\n width: 68%;\n margin-left: calc(${getComputedStyle(el_sidebar).width});\n }\n }`;\n }\n};\n\nexport { Container };", "/** 3rd Party */\nimport { Sidebar as _Sidebar } from '../_ux/ui/sidebar';\nimport { Menu } from './_ui/menu';\nimport { baseStyle as guideBaseStyle } from './_base.style';\n\nimport { Sidebar } from './_ui/sidebar';\nimport { Container } from './_ui/container';\n\nguideBaseStyle();\n\nMenu.define('el-menu');\n\nSidebar.define('el-sidebar');\nContainer.define('el-container');"], - "mappings": "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", - "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "color", "Color", "Menu", "import_color", "import_color", "color", "Color", "Color", "Sidebar", "Menu", "Sidebar"] + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "import { Menu as _Menu } from '../../_ux/ui/menu';\n\n\nclass Menu extends _Menu {\n static css = /*css*/`\n ${_Menu.style()}\n a {\n width: 100%;\n text-decoration: none;\n color: unset;\n }\n summary {\n h2 {\n font-size: 1.25rem;\n line-height: 2;\n margin: 0;\n padding-left: 0.5rem;\n }\n }\n `;\n};\n\nexport { Menu };", "function baseStyle() {\n const cssStyleSheet = new CSSStyleSheet();\n cssStyleSheet.replaceSync(/*css*/`\n body {\n display: flex;\n justify-content: center;\n > el-container:first-of-type {\n margin-top: 2rem;\n }\n }\n h1, h2, h3 {\n margin: auto;\n max-width: 80ch;\n }\n h1 {\n text-align: center\n }\n h2{\n margin-top: 2.5rem;\n }\n h3 {\n margin-top: 1.5rem;\n }\n p {\n margin: 1rem auto;\n }\n `);\n document.adoptedStyleSheets.push(cssStyleSheet);\n};\n\nexport { baseStyle };", "import Color from 'color';\n\nimport { aspectRatio, bgColor } from '../../_ux/style';\nimport { buttonStyle } from '../../_ux/ui/button';\nimport { color } from '../../_ux/designToken';\nimport { Sidebar as _Sidebar } from '../../_ux/ui/sidebar';\n\n\nconst css = String.raw;\n\nconst sideBarStyle = css`\n height: 110dvh;\n ${bgColor(color.dark)}\n transition: transform 0.4s ease;\n\n a:has(h1) {\n color: white;\n text-align: center;\n width: 100%;\n margin-bottom: 0.8rem;\n &:hover {\n color: ${color.blue};\n transition: color 0.2s ease;\n }\n }\n\n filter: drop-shadow(2px 2px 4px ${Color(color.dark)\n .alpha(0.8).string()});\n\n &.show { \n [el=\"toggle\"] {\n span { transform: rotate(180deg) }\n };\n }\n \n &.hide {\n filter: none;\n [el=\"toggle\"] {\n span { transform: rotate(0deg) }\n };\n }\n\n el-button[el=\"toggle\"] {\n ${buttonStyle('blue')}\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: fixed;\n top: 70dvh;\n right: 0;\n width: 3em;\n transform: translateX(100%);\n opacity: 0.7;\n &:hover { opacity: 1 };\n ${aspectRatio('1')}\n button {\n width: 100%;\n height: 100%;\n border-top-left-radius:0 ;\n border-bottom-left-radius: 0;\n }\n span {\n line-height: 1;\n font-size: 1.5em;\n transition: transform 0.4s ease;\n transform: rotate(0deg);\n }\n }\n`;\n\nclass Sidebar extends _Sidebar {\n static css = css`\n ${Sidebar.style()}\n ${sideBarStyle}\n `;\n\n constructor() {\n super();\n\n this.querySelector('[el=\"toggle\"]')?.addEventListener('click', () => { \n this.toggle();\n });\n\n this.addEventListener('click', (event) => {\n if (['A', 'H1', 'H2'].includes(event.target.tagName)) {\n this.onLinkClick();\n }\n })\n\n let mql = window.matchMedia('screen and (max-width: 1200px)');\n setTimeout(() => {\n this.onMediaQueryChange(mql);\n }, 750);\n setTimeout(() => {\n mql.addEventListener('change', () => {\n this.onMediaQueryChange(mql);\n });\n }, 750);\n }\n\n onMediaQueryChange(mql: MediaQueryList) {\n mql.matches ? this.hide() : this.show();\n }\n\n onLinkClick() {\n if (window.innerWidth > 1200) { return };\n setTimeout(() => {\n this.hide();\n }, 500);\n }\n\n show() {\n super.show();\n this.dispatchEvent(new CustomEvent('show'));\n }\n\n hide() {\n super.hide();\n this.dispatchEvent(new CustomEvent('hide'));\n }\n}\n\nexport { Sidebar };", "import { Adapter } from \"../../adapter.js\";\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 { Adapter } from \"../../adapter.js\";\n\nconst css = String.raw;\n\nconst sidebarStyle = (): string => {\n const style = css`\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\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 };", "import { Adapter } from '../../adapter';\n\n\nclass Container extends Adapter {\n static css = /*css*/`& {\n all: unset;\n display: block;\n box-sizing: border-box;\n max-width: 80ch;\n width: 90%;\n transition: margin-left 0.3s ease-in-out;\n }`;\n\n constructor() {\n super();\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n setTimeout(() => {\n this.css = this.defaultStyle();\n }, 0);\n el_sidebar.addEventListener('hide', () => {\n this.addStyle(`margin: unset;`);\n });\n el_sidebar.addEventListener('show', () => {\n this.css = this.defaultStyle();\n });\n }\n\n defaultStyle(): string {\n const el_sidebar = document.querySelector('el-sidebar') as HTMLElement;\n return /*css*/`& {\n @media screen and (min-width: 1200px) {\n width: 68%;\n margin-left: calc(${getComputedStyle(el_sidebar).width});\n }\n }`;\n }\n};\n\nexport { Container };", "/** 3rd Party */\nimport { Sidebar as _Sidebar } from '../_ux/ui/sidebar';\nimport { Menu } from './_ui/menu';\nimport { baseStyle as guideBaseStyle } from './_base.style';\n\nimport { Sidebar } from './_ui/sidebar';\nimport { Container } from './_ui/container';\n\nguideBaseStyle();\n\nMenu.define('el-menu');\n\nSidebar.define('el-sidebar');\nContainer.define('el-container');"], + "mappings": "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", + "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "css", "css", "color", "Color", "Menu", "import_color", "import_color", "color", "Color", "css", "Color", "Sidebar", "Menu", "Sidebar"] } diff --git a/docs/guide/intro/index.html b/docs/guide/intro/index.html index c2a0409..02f9128 100644 --- a/docs/guide/intro/index.html +++ b/docs/guide/intro/index.html @@ -6,11 +6,11 @@ Adapter : Adaptive Style Web Component Framework - - + + - + @@ -31,13 +31,13 @@
-

Intro

+

Intro

-

Setup

+

Setup

@@ -47,7 +47,7 @@
-

Usage

+

Usage

@@ -58,12 +58,17 @@
-

Mixin

+

Mixin

-

Style Filtering

+

Scoped Style

+
+
+
+ +

Style Filtering

@@ -209,7 +214,7 @@

Component Styling to save the world !

* Moreover, we can write CSS for this component without worrying * about this component tagName. */ - static css = `div button { background-color: blue} `; + static css = `div button { background-color: blue }`; } ComponentA.define('el-component-a'); diff --git a/docs/guide/mixin/index.html b/docs/guide/mixin/index.html index c8b1190..c07b53d 100644 --- a/docs/guide/mixin/index.html +++ b/docs/guide/mixin/index.html @@ -6,11 +6,11 @@ Adapter : Adaptive Style Web Component Framework - - + + - + @@ -31,13 +31,13 @@
-

Intro

+

Intro

-

Setup

+

Setup

@@ -47,7 +47,7 @@
-

Usage

+

Usage

@@ -58,12 +58,17 @@
-

Mixin

+

Mixin

-

Style Filtering

+

Scoped Style

+
+
+
+ +

Style Filtering

@@ -75,8 +80,8 @@

Mixin

Use AdapterMixin() to implement Adapter with other Web Components.

-

📍 Please note that AdapterMixin doesn't include CSS processor like Adapter, -It has to manually set cssProcess() function to use CSS processor library

+

📍 AdapterMixin doesn't include CSS processor like Adapter, +It has to be manually set by cssProcess() function.

diff --git a/docs/guide/setup/index.html b/docs/guide/setup/index.html index 81074ff..cb43016 100644 --- a/docs/guide/setup/index.html +++ b/docs/guide/setup/index.html @@ -6,11 +6,11 @@ Adapter : Adaptive Style Web Component Framework - - + + - + @@ -31,13 +31,13 @@
-

Intro

+

Intro

-

Setup

+

Setup

@@ -47,7 +47,7 @@
-

Usage

+

Usage

@@ -58,12 +58,17 @@
-

Mixin

+

Mixin

-

Style Filtering

+

Scoped Style

+
+
+
+ +

Style Filtering

diff --git a/docs/guide/style-filtering/index.html b/docs/guide/style-filtering/index.html index 6a9f689..d48ef1e 100644 --- a/docs/guide/style-filtering/index.html +++ b/docs/guide/style-filtering/index.html @@ -6,14 +6,14 @@ Adapter : Adaptive Style Web Component Framework - - + + - + - + @@ -34,13 +34,13 @@
-

Intro

+

Intro

-

Setup

+

Setup

@@ -50,7 +50,7 @@
-

Usage

+

Usage

@@ -61,12 +61,17 @@
-

Mixin

+

Mixin

-

Style Filtering

+

Scoped Style

+
+
+
+ +

Style Filtering

@@ -75,6 +80,9 @@

Style Filtering

+

Style Filtering is a useful technique for filtering or bypassing styles +from other components are used inside the container component. +As a result, we can effortlessly mix and match or isolate styles between components.

Filter out & Bypass


Link

@@ -90,7 +98,10 @@

Filter out & Bypass

import { Adapter } from '@devcapsule/adapter';
 
 class FilterButton extends Adapter {
-    static css = `& button { all: revert }`;
+    static css = `
+        & button { all: revert }
+        & button:hover { all: revert };
+    `;
 }
 
 FilterButton.define('el-filter-button');
@@ -110,15 +121,6 @@ 

Filter out & Bypass

</el-filter-button>
-

Filter out all styles

-
- -
JS
-
class IsolatedComponent extends Adapter {
-    static css = `all: revert; * { all: revert };`;
-}
-
-
diff --git a/docs/guide/style-filtering/index.js b/docs/guide/style-filtering/index.js index d801870..f8845b8 100644 --- a/docs/guide/style-filtering/index.js +++ b/docs/guide/style-filtering/index.js @@ -81,14 +81,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -102,23 +103,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var cssStyleSheet=new CSSStyleSheet;cssStyleSheet.replaceSync(` @@ -134,7 +140,6 @@ a { } `);document.adoptedStyleSheets.push(cssStyleSheet);var FilterButton=class extends Adapter{static{ __name(this,"FilterButton")}static{this.css=` - all: revert; display: inline-flex; flex-wrap: wrap; box-sizing: border-box; @@ -142,5 +147,6 @@ __name(this,"FilterButton")}static{this.css=` padding: 1rem; & button { all: revert }; + & button:hover { all: revert }; `}};FilterButton.define("el-filter-button"); //# sourceMappingURL=index.js.map diff --git a/docs/guide/style-filtering/index.js.map b/docs/guide/style-filtering/index.js.map index 2c11b32..6c627ad 100644 --- a/docs/guide/style-filtering/index.js.map +++ b/docs/guide/style-filtering/index.js.map @@ -1,7 +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/guide/style-filtering/index.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\n\nconst cssStyleSheet = new CSSStyleSheet();\ncssStyleSheet.replaceSync(/*css*/`\nbutton {\n background-color: blue;\n color: white;\n padding: 0.5rem;\n cursor: pointer;\n}\na {\n color: red;\n text-decoration: underline;\n}\n`);\ndocument.adoptedStyleSheets.push(cssStyleSheet);\n\n\nclass FilterButton extends Adapter {\n static css = /*css*/`\n all: revert;\n display: inline-flex;\n flex-wrap: wrap;\n box-sizing: border-box;\n border: 1px solid #ccc;\n padding: 1rem;\n\n & button { all: revert };\n `;\n}\n\nFilterButton.define('el-filter-button');\n"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\n\nconst cssStyleSheet = new CSSStyleSheet();\ncssStyleSheet.replaceSync(/*css*/`\nbutton {\n background-color: blue;\n color: white;\n padding: 0.5rem;\n cursor: pointer;\n}\na {\n color: red;\n text-decoration: underline;\n}\n`);\ndocument.adoptedStyleSheets.push(cssStyleSheet);\n\n\nclass FilterButton extends Adapter {\n static css = /*css*/`\n display: inline-flex;\n flex-wrap: wrap;\n box-sizing: border-box;\n border: 1px solid #ccc;\n padding: 1rem;\n\n & button { all: revert };\n & button:hover { all: revert };\n `;\n}\n\nFilterButton.define('el-filter-button');\n"], + "mappings": "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", "names": ["length", "length", "character", "characters"] } diff --git a/docs/guide/usage/index.html b/docs/guide/usage/index.html index 4189244..11fd10a 100644 --- a/docs/guide/usage/index.html +++ b/docs/guide/usage/index.html @@ -6,14 +6,14 @@ Adapter : Adaptive Style Web Component Framework - - + + - + - + @@ -34,13 +34,13 @@
-

Intro

+

Intro

-

Setup

+

Setup

@@ -50,7 +50,7 @@
-

Usage

+

Usage

@@ -61,12 +61,17 @@
-

Mixin

+

Mixin

-

Style Filtering

+

Scoped Style

+
+
+
+ +

Style Filtering

@@ -171,7 +176,7 @@

Element Style ( Object Style )


Object Tier Styling will render CSS with the auto-generated unique class selector, much like the following code.

-
el-card.autogen.unique.class { /* style */ }
+
el-card.predefine.class.and.autogen { /* style */ }
 

This way, the style will be very specific to an element, but with a bit lower priority than inline style. @@ -219,7 +224,7 @@

Shadow DOM Style

for your components, Shadow DOM is the way to go.

Thanks to adoptedStyleSheets, Adapter can use it as the proper way to style Shadow DOM with ease. You have freedom to style your component -without any concorn of Shadow DOM. Adapter will automatically style +without any concern of Shadow DOM. Adapter will automatically style Shadow DOM when you use it.

JS
diff --git a/docs/guide/usage/index.js b/docs/guide/usage/index.js index e3901ff..6fd62b7 100644 --- a/docs/guide/usage/index.js +++ b/docs/guide/usage/index.js @@ -81,14 +81,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css){return serialize(compile(css),stringify)}__name(stylis,"sty\ lis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css){return css}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css){this._styles= -[css],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css){ +return css}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css){this._styles=[css],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -102,23 +103,28 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css){console.warn("tagStyle() is deprec\ ated, use addStyle() instead"),this.addStyle(css)}static classStyle(class_,css){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css="";for(let rule of this. -cssStyleSheet.cssRules)css+=rule.cssText+` +`&.${class_} { ${css} }`)}connectedCallback(){this._isConnectedOnce||(this.css=this. +css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css=this.getAttribute("css")||"";if(css) +return css;for(let rule of this.cssStyleSheet.cssRules)css+=rule.cssText+` `;return css}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css){this. +cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this.objectClassSelector}\ + { ${css} }`);this.cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules. +length)}delete(){this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( HTMLElement){static{__name(this,"Adapter")}static cssProcess(css){return stylis( css)}};var Card=class extends Adapter{static{__name(this,"Card")}static{this.css=` diff --git a/docs/guide/usage/index.js.map b/docs/guide/usage/index.js.map index a09022f..47eea40 100644 --- a/docs/guide/usage/index.js.map +++ b/docs/guide/usage/index.js.map @@ -1,7 +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/guide/usage/index.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\nclass Card extends Adapter {\n static css = `\n display: inline-flex;\n box-sizing: border-box;\n border: 1px solid;\n border-radius: 5px;\n padding: 1rem;\n `;\n};\nCard.define('el-card');\n\nclass BlueCard extends Card {};\nBlueCard.css = `\n background-color: blue;\n color: white;\n`;\n\ncustomElements.define('el-bluecard', BlueCard);\n\nBlueCard.addStyle(`\n &.largeFont { font-size: 2em }\n`);\n\ndocument.querySelector('el-bluecard#blue-card-lift')!.css = `\n filter: drop-shadow(5px 5px 10px #444);\n`;\n\ndocument.querySelector('el-bluecard#blue-card-rotate')!.addStyle(`\n transform: rotate(45deg);\n`);\n\nclass BlueCardShadow extends BlueCard {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.shadowRoot!.innerHTML = `This card use open Shadow DOM`;\n }\n}\n\ncustomElements.define('el-bluecard-shadow', BlueCardShadow);\n\nclass BlueCardShadowClosed extends BlueCard {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'closed' });\n shadowRoot.innerHTML = `This card use closed Shadow DOM`;\n }\n}\n\ncustomElements.define('el-bluecard-shadow-closed', BlueCardShadowClosed);"], - "mappings": "gHAAO,SAAS,UAAU,GAAY,CACpC,IAAM,IAAM,IAAI,KAAK,EAAE,QAAQ,EAAI,GAC/B,KAAO,IAAI,KAAK,EAAE,QAAQ;AAC9B,KAAO,KAAO,KACZ,KAAO,IAAI,KAAK,EAAE,QAAQ,EAE5B,OAAO,IACT,CAPgB;AAST,SAAS,MAAO,CACrB,OAAO,UAAU,CAAC,EAAE,SAAS,EAAE,CACjC,CAFgB,oBCLT,IAAI,QAAU,OACV,QAAU,OACV,YAAc,OAIlB,IAAI,OAAS,UAMb,IAAI,UAAY,aAIhB,IAAI,MAAQ,SChBZ,IAAI,IAAM,KAAK,IAMX,KAAO,OAAO,aAqBlB,SAAS,KAAM,MAAO,CAC5B,OAAO,MAAM,KAAK,CACnB,CAFgB,oBAmBT,SAAS,QAAS,MAAO,QAAS,YAAa,CACrD,OAAO,MAAM,QAAQ,QAAS,WAAW,CAC1C;AAFgB,0BAST,SAAS,QAAS,MAAO,OAAQ,CACvC,OAAO,MAAM,QAAQ,MAAM,CAC5B;AAFgB,0BAST,SAAS,OAAQ,MAAO,MAAO,CACrC,OAAO,MAAM,WAAW,KAAK;AAAI,CAClC,CAFgB,wBAUT,SAAS,OAAQ,MAAO,MAAO,IAAK,CAC1C,OAAO,MAAM,MAAM;AAAO,GAAG,CAC9B,CAFgB,wBAQT,SAAS,OAAQ,MAAO,CAC9B,OAAO,MAAM,MACd,CAFgB;AAAA,UAQT,SAAS,OAAQ,MAAO,CAC9B,OAAO,MAAM,MACd,CAFgB,wBAST,SAAS,OAAQ,MAAO,MAAO;AACrC,OAAO,MAAM,KAAK,KAAK,EAAG,KAC3B,CAFgB,wBCrGT,IAAI,KAAO,EACP,OAAS,EACT,OAAS,EACT,SAAW,EACX,UAAY,EACZ,WAAa,GAYjB,SAAS,KAAM,MAAO,KAAM,OAAQ,KAAM,MAAO,SAAUA,QAAQ,SAAU;AACnF,MAAO,CAAC,MAAc,KAAY,OAAgB,KAAY,MAAc,SAAoB,KAAY,OAAgB,OAAQA,QAAQ,OAAQ;AAAI,QAAkB,CAC3K,CAFgB,oBA0BT,SAAS,MAAQ,CACvB,OAAO,SACR,CAFgB,oBAOT,SAAS,MAAQ,CACvB;AAAY,SAAW,EAAI,OAAO,WAAY,EAAE,QAAQ,EAAI,EAExD,SAAU,YAAc,KAC3B,OAAS,EAAG;AAEN,SACR,CAPgB,oBAYT,SAAS,MAAQ,CACvB,iBAAY,SAAW,OAAS;AAAO,WAAY,UAAU,EAAI,EAE7D,SAAU,YAAc,KAC3B,OAAS,EAAG,QAEN,SACR,CAPgB;AAAA,aAYT,SAAS,MAAQ,CACvB,OAAO,OAAO,WAAY,QAAQ,CACnC,CAFgB;AAAA,IAOT,SAAS,OAAS,CACxB,OAAO,QACR,CAFgB,sBAST,SAAS,MAAO,MAAO,IAAK;AAClC,OAAO,OAAO,WAAY,MAAO,GAAG,CACrC,CAFgB,sBAQT,SAAS,MAAO,KAAM,CAC5B,OAAQ,KAAM,CAEb,IAAK,GAAG,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK;AACtC,MAAO,GAER,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAE3D,IAAK,IAAI,IAAK,KAAK,IAAK;AACvB,MAAO,GAER,IAAK,IACJ,MAAO,GAER,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAC/B,MAAO,GAER,IAAK,IAAI,IAAK;AACb,MAAO,EACT,CAEA,MAAO,EACR,CAtBgB,sBA4BT,SAAS,MAAO,MAAO,CAC7B,OAAO,KAAO;AAAS,EAAG,OAAS,OAAO,WAAa,KAAK,EAAG,SAAW,EAAG,CAAC,CAC/E,CAFgB,sBAQT,SAAS,QAAS,MAAO;AAC/B,OAAO,WAAa,GAAI,KACzB,CAFgB,0BAQT,SAAS,QAAS,KAAM,CAC9B,OAAO;AAAK,MAAM,SAAW,EAAG,UAAU,OAAS,GAAK,KAAO,EAAI,OAAS,GAAK,KAAO,EAAI,IAAI,CAAC,CAAC,CACnG,CAFgB;WAgBT,SAAS,WAAY,KAAM,CACjC,MAAO,UAAY,KAAK,IACnB,UAAY,IACf,KAAK,EAIP,OAAO;AAAM,IAAI,EAAI,GAAK,MAAM,SAAS,EAAI,EAAI,GAAK,GACvD,CARgB,gCAgCT,SAAS,SAAU,MAAO,MAAO,CACvC,KAAO,EAAE,OAAS,KAAK,GAElB,YAAY,IAAM,UAAY;AAAQ,UAAY,IAAM,UAAY,IAAQ,UAAY,IAAM,UAAY,KAA9G,CAGD,OAAO,MAAM,MAAO,MAAM;AAAA,CAAK,MAAQ,GAAK,KAAK,GAAK,IAAM,KAAK,GAAK,GAAG,CAC1E,CAPgB,4BAaT,SAAS,UAAW,KAAM;AAChC,KAAO,KAAK,GACX,OAAQ,UAAW,CAElB,KAAK,KACJ,OAAO,SAER,IAAK,IAAI,IAAK,IACT;AAAS,IAAM,OAAS,IAC3B,UAAU,SAAS,EACpB,MAED,IAAK,IACA,OAAS,IACZ,UAAU,IAAI,EACf,MAED,IAAK;AACJ,KAAK,EACL,KACF,CAED,OAAO,QACR,CAvBgB,8BA8BT,SAAS,UAAW,KAAM,MAAO;AACvC,KAAO,KAAK,GAEP,KAAO,YAAc,GAAK,IAGzB,GAAI,KAAO,YAAc,GAAK,IAAM,KAAK,IAAM,GACnD;AAEF,MAAO,KAAO,MAAM,MAAO,SAAW,CAAC,EAAI,IAAM,KAAK,OAAS,GAAK,KAAO,KAAK,CAAC,CAClF,CAVgB;AAAA,aAgBT,SAAS,WAAY,MAAO,CAClC,KAAO,CAAC,MAAM,KAAK,CAAC,GACnB,KAAK,EAEN,OAAO;AAAM,MAAO,QAAQ,CAC7B,CALgB,gCCnPT,SAAS,QAAS,MAAO,CAC/B,OAAO,QAAQ,MAAM,GAAI,KAAM,KAAM,KAAM,CAAC,EAAE,EAAG,MAAQ;AAAM,KAAK,EAAG,EAAG,CAAC,CAAC,EAAG,KAAK,CAAC,CACtF,CAFgB,0BAgBT,SAAS,MAAO,MAAO,KAAM,OAAQ,KAAM,MAAO,SAAU,OAAQ,OAAQ,aAAc;AAiBhG,QAhBI,MAAQ,EACR,OAAS,EACTC,QAAS,OACT,OAAS,EACT,SAAW,EACX,SAAW,EACX,SAAW;AACX,SAAW,EACX,UAAY,EACZC,WAAY,EACZ,KAAO,GACP,MAAQ,MACR,SAAW,SACX,UAAY;AACZC,YAAa,KAEV,UACN,OAAQ,SAAWD,WAAWA,WAAY,KAAK,EAAG,CAEjD,IAAK;AACJ,GAAI,UAAY,KAAO,OAAOC,YAAYF,QAAS,CAAC,GAAK,GAAI,CACxD,QAAQE,aAAc;AAAQ,QAAQD,UAAS,EAAG,IAAK,KAAK,EAAG,KAAK,GAAK,KAC5E,UAAY,IACb,KACD,CAED,IAAK,IAAI,IAAK,IAAI,IAAK;AACtBC,aAAc,QAAQD,UAAS,EAC/B,MAED,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK,IAC9BC;AAAc,WAAW,QAAQ,EACjC,MAED,IAAK,IACJA,aAAc,SAAS,MAAM,EAAI,EAAG,CAAC,EACrC,SAED,IAAK;AACJ,OAAQ,KAAK,EAAG,CACf,IAAK,IAAI,IAAK,IACb,OAAO,QAAQ,UAAU,KAAK,EAAG,MAAM,CAAC,EAAG,KAAM;AAAQ,YAAY,EAAG,YAAY,EACpF,MACD,QACCA,aAAc,GAChB,CACA,MAED,IAAK,KAAM;AACV,OAAO,OAAO,EAAI,OAAOA,WAAU,EAAI,UAExC,IAAK,KAAM,SAAU,IAAK,IAAI,IAAK,GAClC,OAAQD,WAAW,CAElB,IAAK,GAAG,IAAK;AAAK,SAAW,EAE7B,IAAK,IAAK,OAAY,WAAa,KAAIC,YAAa,QAAQA,YAAY;AAAO,EAAE,GAC5E,SAAW,GAAM,OAAOA,WAAU,EAAIF,SACzC,OAAO,SAAW,GAAK,YAAYE;AAAa,IAAK,KAAM,OAAQF,QAAS,EAAG,YAAY,EAAI,YAAY,QAAQE,YAAY,IAAK,EAAE;AAAI,IAAK,KAAM,OAAQF,QAAS,EAAG,YAAY,EAAG,YAAY,EACrM,MAED,IAAK,IAAIE;AAAc,IAEvB,QAGC,GAFA,OAAO,UAAY,QAAQA,YAAY,KAAM,OAAQ,MAAO,OAAQ;AAAO,OAAQ,KAAM,MAAQ,CAAC,EAAG,SAAW,CAAC,EAAGF,QAAQ,QAAQ,EAAG,QAAQ,EAE3IC,aAAc,IACjB,GAAI;AAAW,EACd,MAAMC,YAAY,KAAM,UAAW,UAAW,MAAO,SAAUF,QAAQ,OAAQ,QAAQ;AAEvF,OAAQ,SAAW,IAAM,OAAOE,YAAY,CAAC,IAAM,IAAM,IAAM,OAAQ,CAEtE,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK;AAClC,MAAM,MAAO,UAAW,UAAW,MAAQ,OAAO,QAAQ,MAAO,UAAW,UAAW;AAAG,EAAG,MAAO,OAAQ,KAAM,MAAO,MAAQ,CAAC,EAAGF,QAAQ,QAAQ,EAAG,QAAQ,EAAG,MAAO,SAAUA;AAAQ,OAAQ,KAAO,MAAQ,QAAQ,EAC3N,MACD,QACC,MAAME,YAAY,UAAW;AAAW,UAAW,CAAC,EAAE,EAAG,SAAU,EAAG,OAAQ,QAAQ,CACxF,CACJ,CAEA,MAAQ,OAAS,SAAW,EAAG,SAAW;AAAY,EAAG,KAAOA,YAAa,GAAIF,QAAS,OAC1F,MAED,IAAK,IACJA,QAAS,EAAI,OAAOE,WAAU;AAAG,SAAW,SAC7C,QACC,GAAI,SAAW,GACd,GAAID,YAAa,IAChB,EAAE,iBACMA;AAAa,KAAO,YAAc,GAAK,KAAK,GAAK,IACzD,SAEF,OAAQC,aAAc,KAAKD,UAAS,EAAGA;AAAY,SAAU,CAE5D,IAAK,IACJ,UAAY,OAAS,EAAI,GAAKC,aAAc,KAAM,IAClD,MAED,IAAK,IACJ,OAAO,OAAO;AAAA,CAAK,OAAOA,WAAU,EAAI,GAAK,UAAW,UAAY,EACpE,MAED,IAAK,IAEA,KAAK,IAAM,KACdA;AAAc,QAAQ,KAAK,CAAC,GAE7B,OAAS,KAAK,EAAG,OAASF,QAAS,OAAO,KAAOE,aAAc;AAAW,MAAM,CAAC,CAAC,EAAGD,aACrF,MAED,IAAK,IACA,WAAa,IAAM,OAAOC,WAAU,GAAK,IAC5C;AAAW,EACd,CACF,CAED,OAAO,QACR,CAtHgB,sBAuIT,SAAS,QAAS,MAAO,KAAM,OAAQ,MAAO,OAAQ,MAAO,OAAQ,KAAM,MAAO,SAAUF,QAAQ,SAAU;AAKpH,QAJI,KAAO,OAAS,EAChB,KAAO,SAAW,EAAI,MAAQ,CAAC,EAAE,EACjC,KAAO,OAAO,IAAI,EAEb,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG;AAAI,MAAO,EAAE,EAC1C,QAAS,EAAI,EAAG,EAAI,OAAO,MAAO,KAAO,EAAG,KAAO,IAAI,EAAI,OAAO,CAAC,CAAC,CAAC,EAAG,EAAI,MAAO,EAAI,KAAM,EAAE;AAAA,CAC1F,EAAI,KAAK,EAAI,EAAI,KAAK,CAAC,EAAI,IAAM,EAAI,QAAQ,EAAG,OAAQ,KAAK,CAAC,CAAC,CAAC,KACnE,MAAM,GAAG,EAAI,GAEhB,OAAO;AAAK,MAAO,KAAM,OAAQ,SAAW,EAAI,QAAU,KAAM,MAAO,SAAUA,QAAQ,QAAQ,CAClG,CAXgB;AAAA,mBAoBT,SAAS,QAAS,MAAO,KAAM,OAAQ,SAAU,CACvD,OAAO,KAAK;AAAO,KAAM,OAAQ,QAAS,KAAK,KAAK,CAAC,EAAG,OAAO,MAAO,EAAG,EAAE,EAAG,EAAG,QAAQ,CAC1F,CAFgB;AAAA,UAYT,SAAS,YAAa,MAAO,KAAM,OAAQA,QAAQ,SAAU,CACnE,OAAO,KAAK;AAAO,KAAM,OAAQ,YAAa,OAAO,MAAO,EAAGA,OAAM,EAAG,OAAO,MAAOA,QAAS,EAAG,EAAE,EAAGA;AAAQ,QAAQ,CACxH,CAFgB,kCCvLT,SAAS,UAAW,SAAU,SAAU,CAG9C,QAFI,OAAS,GAEJ,EAAI,EAAG,EAAI,SAAS,OAAQ;AACpC,QAAU,SAAS,SAAS,CAAC,EAAG,EAAG,SAAU,QAAQ,GAAK,GAE3D,OAAO,MACR,CAPgB;AAAA,aAgBT,SAAS,UAAW,QAAS,MAAO,SAAU,SAAU,CAC9D,OAAQ;AAAQ,KAAM,CACrB,KAAK,MAAO,GAAI,QAAQ,SAAS,OAAQ,MACzC,KAAK,OAAQ,KAAK,YAAa,OAAO;AAAQ,OAAS,QAAQ,QAAU,QAAQ,MACjF,KAAK,QAAS,MAAO,GACrB,KAAK,UAAW,OAAO;AAAQ,OAAS,QAAQ,MAAQ,IAAM,UAAU,QAAQ,SAAU,QAAQ,EAAI,IACtG,KAAK,QAAS,GAAI,CAAC;AAAO,QAAQ,MAAQ,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAG,MAAO,EAC5E,CAEA,OAAO,OAAO,SAAW;AAAU,QAAQ,SAAU,QAAQ,CAAC,EAAI,QAAQ,OAAS,QAAQ,MAAQ,IAAM,SAAW,IAAM,EAC3H,CAVgB;uBCtBT,SAAS,OAAO,IAAa,CAClC,OAAO,UAAU,QAAQ,GAAG,EAAG,SAAS,CAC1C,CAFgB;MCGT,SAAS,aACd,KACA,CACA,OAAO,cAAsB,IAAK,CA6IhC,eAAe,KAAa,CAC1B;AAAM,GAAG,IAAI,EACR,KAAK,QAAU,KAAK,UAAU,CACrC,CAxJJ,MAQoC,wBAQhC;AAAO,QAAoB,CAAC,EAK5B,OAAO,WAAW,IAAqB,CACrC,OAAO,GACT,CAMA,WAAW,QAAmB,CAC5B,OAAI,KAAK;AAAY,OAAO,eAAe,IAAI,EAAE,SAC/C,KAAK,QAAU,CAAC,GAEX,KAAK,OACd,CAGA,WAAW,WAAsB;AAC/B,IAAI,WAAa,OAAO,eAAe,IAAI,EACrC,UAAY,CAAC,EAEnB,KAAO,WAAW;AAAW,QAC3B,UAAU,KAAK,GAAG,WAAW,MAAM,EACnC,WAAa,OAAO,eAAe,UAAU;AAE/C,iBAAU,KAAK,GAAG,KAAK,MAAM,EACtB,SACT,CAGA,WAAW,IAAI,IAAa,CAC1B,KAAK;AAAU,CAAC,GAAG,EAEf,KAAK,SACP,KAAK,cAAc,YACjB,KAAK,WAAW,GAAG,KAAK,OAAO;AAAA,KAAM,KAAK,MAAM,IAAI,CACtD,CAEJ,CAGA,WAAW,KAAc,CACvB,OAAO,KAAK,OAAO,KAAK;AAAA,CAAI,CAC9B,CAEA,WAAW,QAAiB,CAC1B,OAAO,KAAK,UAAU,KAAK;AAAA,CAAI,CACjC,CAKA,WAAW,SAAyB,CAClC,OAAI,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE;AAAA,CAChD,KAAK,SAAW,MAEX,KAAK,QACd,CAKA,WAAW,eAA+B,CACxC,IAAM,mBAAqB;AAAO,eAAe,IAAI,EAAE,eACvD,OAAI,KAAK,iBAAmB;AAAA,CAC1B,KAAK,eAAiB,IAAI,eAErB,KAAK,cACd,CAGA,OAAO,SAAS,IAAa;AAG3B,GAFA,KAAK,QAAU,KAAK,QAAQ,OAAO,GAAG,EAElC,KAAK,QAAS,CAChB,IAAM,KAAO,GAAG,KAAK,OAAO;AAAA,KAAM,GAAG,KAC/B,aAAe,KAAK,WAAW,IAAI,EACzC,KAAK,cAAc,WACjB;AACA,KAAK,cAAc,SAAS,MAC9B,CACF,CACF,CAOA,OAAO,OAAO,QAAuB,CACnC,KAAK,SAAW;AAChB,eAAe,OAAO,QAAS,IAAI,EACnC,KAAK,UAAU,CACjB,CAGA,OAAO,WAAY,CACjB,KAAK;AAAc,YACjB,KAAK,WAAW,GAAG,KAAK,OAAO,MAAM,KAAK,MAAM,IAAI,CACtD,EACA,SAAS;AAAmB,KAAK,KAAK,aAAa,CACrD,CAEA,OAAO,SAAS,IAAmB,CACjC,QAAQ,KAAK;AAAA,6BAAkD,EAC/D,KAAK,SAAS,GAAG,CACnB,CAGA,OAAO,WAAW,OAAgB,IAAa;AAC7C,QAAQ,KAAK,oDAAoD,EACjE,KAAK;AAAS,KAAK,MAAM,MAAM,GAAG,IAAI,CACxC,CAuBA,IAAI,MAAe,CACjB,OAAK,KAAK,QACR,KAAK,MAAQ,GAAG,KAAK,OAAO;AAAA,GAAI,KAAK,CAAC,IAEjC,KAAK,KACd,CAMA,IAAI,eAAgB,CAClB,GAAI,KAAK,eAAkB,OAAO,KAAK;AAKvC,GAHA,KAAK,eAAiB,IAAI,cAGtB,CAAC,KAAK,YAAa,CACrB,IAAM,MAAQ,SAAS;AAAmB,OAC1C,KAAK,UAAU,IAAI,KAAK,IAAI,EAC5B,SAAS,mBAAmB,KAAK,EAAI,KAAK;AAC1C,KAAK,uBAAyB,KAChC,CAEA,OAAO,KAAK,cACd,CAKA,IAAI,qBAA8B;AAChC,OAAO,KAAK,UAAU,MAAM,QAAQ,KAAM,GAAG,CAC/C,CAMA,IAAI,IAAI,IAAa,CAEnB,KAAK,cAEL,IAAM,aAAe;AAAK,OAAO,WAC/B,GAAG,KAAK,OAAO,IAAI,KAAK,mBAAmB,MAAM,GAAG,IACtD,EAEA;AAAK,cAAc,YAAY,YAAY,CAC7C,CAGA,IAAI,KAAc,CAChB,IAAI,IAAM,GACV,QAAW,QAAQ;AAAK,cAAc,SACpC,KAAO,KAAK,QAAU;AAAA,EAExB,OAAO,GACT,CAEA,WAAY,CACV,KAAK,OAAS,KAAK,YAMf,MAAK,OAAO,UAGhB;AAAK,OAAO,SAAW,KAAK,QAC5B,KAAK,OAAO,UAAU,EACxB,CAKA,aAAa,KAAkC,CAC7C,IAAM,WAAa;AAAM,aAAa,IAAI,EAC1C,kBAAW,mBAAqB,CAC9B,KAAK,OAAO;AACZ,KAAK,aACP,EACA,SAAS,mBAAmB,OAAO,KAAK;AAAwB,CAAC,EACjE,KAAK,YAAc,WACZ,UACT,CAGA,SAAS,IAAmB,CAE1B,KAAK,cAEL,IAAM,aAAe;AAAK,OAAO,WAC/B,GAAG,KAAK,OAAO,IAAI,KAAK,mBAAmB,MAAM,GAAG,IACtD,EAEA;AAAK,cAAc,WACjB,aACA,KAAK,cAAc,SAAS,MAC9B,CACF,CAGA,QAAS;AACF,KAAK,aACR,SAAS,mBAAmB,OAAO,KAAK;AAAwB,CAAC,EAEnE,KAAK,OAAO,CACd,CACF,CACF,CAnQgB,oCAqQT,IAAM,QAAN,cAAsB;AAAa,WAAW,CAAE,CA1QvD,MA0QuD,wBACrD,OAAO,WAAW,IAAqB,CACrC,OAAO;AAAO,GAAG,CACnB,CACF,EC5QA,IAAM,KAAN,cAAmB,OAAQ,CAF3B,MAE2B,qBACvB,YAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOjB,EACA,KAAK,OAAO,SAAS,EAErB,IAAM,SAAN,cAAuB,IAAK,CAb5B,MAa4B;AAAA,YAAC,EAC7B,SAAS,IAAM;AAAA;AAAA;AAAA,EAKf,eAAe,OAAO,cAAe,QAAQ,EAE7C,SAAS,SAAS;AAAA;AAAA,CAEjB,EAED,SAAS,cAAc,4BAA4B,EAAG,IAAM;AAAA;AAAA,EAI5D,SAAS,cAAc,8BAA8B,EAAG,SAAS;AAAA;AAAA,CAEhE,EAED,IAAM,eAAN,cAA6B,QAAS,CAjCtC,MAiCsC,+BAClC,aAAc;AACV,MAAM,EACN,KAAK,aAAa,CAAE,KAAM,MAAO,CAAC,EAClC,KAAK,WAAY,UAAY;AAAA,kBACjC,CACJ,EAEA,eAAe,OAAO,qBAAsB,cAAc;AAE1D,IAAM,qBAAN,cAAmC,QAAS,CA3C5C,MA2C4C;AAAA,WACxC,aAAc,CACV,MAAM,EACN,IAAM,WAAa,KAAK,aAAa,CAAE,KAAM,QAAS,CAAC;AACvD,WAAW,UAAY,iCAC3B,CACJ,EAEA,eAAe,OAAO;AAAA,2BAA6B,oBAAoB", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 '../../adapter';\n\nclass Card extends Adapter {\n static css = `\n display: inline-flex;\n box-sizing: border-box;\n border: 1px solid;\n border-radius: 5px;\n padding: 1rem;\n `;\n};\nCard.define('el-card');\n\nclass BlueCard extends Card {};\nBlueCard.css = `\n background-color: blue;\n color: white;\n`;\n\ncustomElements.define('el-bluecard', BlueCard);\n\nBlueCard.addStyle(`\n &.largeFont { font-size: 2em }\n`);\n\ndocument.querySelector('el-bluecard#blue-card-lift')!.css = `\n filter: drop-shadow(5px 5px 10px #444);\n`;\n\ndocument.querySelector('el-bluecard#blue-card-rotate')!.addStyle(`\n transform: rotate(45deg);\n`);\n\nclass BlueCardShadow extends BlueCard {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.shadowRoot!.innerHTML = `This card use open Shadow DOM`;\n }\n}\n\ncustomElements.define('el-bluecard-shadow', BlueCardShadow);\n\nclass BlueCardShadowClosed extends BlueCard {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'closed' });\n shadowRoot.innerHTML = `This card use closed Shadow DOM`;\n }\n}\n\ncustomElements.define('el-bluecard-shadow-closed', BlueCardShadowClosed);"], + "mappings": "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", "names": ["length", "length", "character", "characters"] } diff --git a/docs/index.html b/docs/index.html index 53bc547..b67b0a4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,11 +6,11 @@ Adapter : Adaptive Style Web Component Framework - - + + - + @@ -27,7 +27,7 @@

Adapter

-

2.4.6

+

2.4.8

🎉 Now support for Shadow DOM 🎉

diff --git a/docs/index.js b/docs/index.js index 50812d4..edaa8f8 100644 --- a/docs/index.js +++ b/docs/index.js @@ -433,14 +433,15 @@ element.value=element.props.join(",")))return""}return strlen(children=serialize element.children,callback))?element.return=element.value+"{"+children+"}":""}__name( stringify,"stringify");function stylis(css2){return serialize(compile(css2),stringify)}__name(stylis,"s\ tylis");function AdapterMixin(Base){return class extends Base{constructor(...args){super( -...args);this._class||this.initClass()}static{__name(this,"Adapter")}static{this. -_styles=[]}static cssProcess(css2){return css2}static get styles(){return this._styles=== -Object.getPrototypeOf(this).styles&&(this._styles=[]),this._styles}static get allStyles(){ -let superClass=Object.getPrototypeOf(this),allStyles=[];for(;superClass.styles!== -void 0;)allStyles.push(...superClass.styles),superClass=Object.getPrototypeOf(superClass); -return allStyles.push(...this.styles),allStyles}static set css(css2){this._styles= -[css2],this.tagName&&this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName}\ - { ${this.allCSS} }`))}static get css(){return this.styles.join(` +...args);this._isConnectedOnce=!1;this._class||this.initClass(),this.cssObserve( +!0)}static{__name(this,"Adapter")}static{this._styles=[]}static cssProcess(css2){ +return css2}static get styles(){return this._styles===Object.getPrototypeOf(this). +styles&&(this._styles=[]),this._styles}static get allStyles(){let superClass=Object. +getPrototypeOf(this),allStyles=[];for(;superClass.styles!==void 0;)allStyles.push( +...superClass.styles),superClass=Object.getPrototypeOf(superClass);return allStyles. +push(...this.styles),allStyles}static set css(css2){this._styles=[css2],this.tagName&& +this.cssStyleSheet.replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS}\ + }`))}static get css(){return this.styles.join(` `)}static get allCSS(){return this.allStyles.join(` `)}static get tagName(){return this._tagName===Object.getPrototypeOf(this).tagName&& (this._tagName=null),this._tagName}static get cssStyleSheet(){let superCSSStyleSheet=Object. @@ -454,26 +455,31 @@ replaceSync(this.cssProcess(`${this.tagName} { ${this.allCSS} }`)),document.adop push(this.cssStyleSheet)}static tagStyle(css2){console.warn("tagStyle() is depre\ cated, use addStyle() instead"),this.addStyle(css2)}static classStyle(class_,css2){ console.warn("classStyle() is deprecated, use addStyle() instead"),this.addStyle( -`&.${class_} { ${css2} }`)}get uuid(){return this._uuid||(this._uuid=`${this.tagName}\ --${uuid()}`),this._uuid}get cssStyleSheet(){if(this._cssStyleSheet)return this._cssStyleSheet; -if(this._cssStyleSheet=new CSSStyleSheet,!this._shadowRoot){let index=document.adoptedStyleSheets. -length;this.classList.add(this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet, -this.adoptedStyleSheetIndex=index}return this._cssStyleSheet}get objectClassSelector(){ -return this.classList.value.replace(/ /g,".")}set css(css2){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css2} }`);this. -cssStyleSheet.replaceSync(processedCss)}get css(){let css2="";for(let rule of this. -cssStyleSheet.cssRules)css2+=rule.cssText+` +`&.${class_} { ${css2} }`)}connectedCallback(){this._isConnectedOnce||(this.css= +this.css)}get cssObserver(){return this._cssObserver?this._cssObserver:(this._cssObserver= +new MutationObserver(mutations=>{for(let mutation of mutations)mutation.attributeName=== +"css"&&(this.css=this.getAttribute("css")||"")}),this._cssObserver)}get uuid(){return this. +_uuid||(this._uuid=`${this.tagName}-${uuid()}`),this._uuid}get cssStyleSheet(){if(this. +_cssStyleSheet)return this._cssStyleSheet;if(this._cssStyleSheet=new CSSStyleSheet, +!this._shadowRoot){let index=document.adoptedStyleSheets.length;this.classList.add( +this.uuid),document.adoptedStyleSheets[index]=this._cssStyleSheet,this.adoptedStyleSheetIndex= +index}return this._cssStyleSheet}get objectClassSelector(){return this.classList. +value.replace(/ /g,".")}set css(css2){this.cssStyleSheet;let processedCss=this._class. +cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css2} }`);this.cssStyleSheet. +replaceSync(processedCss)}get css(){let css2=this.getAttribute("css")||"";if(css2) +return css2;for(let rule of this.cssStyleSheet.cssRules)css2+=rule.cssText+` `;return css2}initClass(){this._class=this.constructor,!this._class.tagName&&(this. -_class._tagName=this.tagName,this._class.initStyle())}attachShadow(init){let shadowRoot=super. -attachShadow(init);return shadowRoot.adoptedStyleSheets=[this._class.cssStyleSheet, -this.cssStyleSheet],document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css2){this.cssStyleSheet;let processedCss=this. -_class.cssProcess(`${this.tagName}.${this.objectClassSelector} { ${css2} }`);this. -cssStyleSheet.insertRule(processedCss,this.cssStyleSheet.cssRules.length)}delete(){ -this._shadowRoot||document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, -1),this.remove()}}}__name(AdapterMixin,"AdapterMixin");var Adapter=class extends AdapterMixin( -HTMLElement){static{__name(this,"Adapter")}static cssProcess(css2){return stylis( -css2)}};var import_color2=__toESM(require_color(),1);var import_color=__toESM(require_color(),1);function bgColor(color2){return` +_class._tagName=this.tagName,this._class.initStyle())}cssObserve(enable){enable? +this.cssObserver.observe(this,{attributes:!0}):this.cssObserver.disconnect()}attachShadow(init){ +let shadowRoot=super.attachShadow(init);return shadowRoot.adoptedStyleSheets=[this. +_class.cssStyleSheet,this.cssStyleSheet],document.adoptedStyleSheets.splice(this. +adoptedStyleSheetIndex,1),this._shadowRoot=shadowRoot,shadowRoot}addStyle(css2){ +this.cssStyleSheet;let processedCss=this._class.cssProcess(`${this.tagName}.${this. +objectClassSelector} { ${css2} }`);this.cssStyleSheet.insertRule(processedCss,this. +cssStyleSheet.cssRules.length)}delete(){this._shadowRoot||document.adoptedStyleSheets. +splice(this.adoptedStyleSheetIndex,1),this.remove()}}}__name(AdapterMixin,"Adapt\ +erMixin");var Adapter=class extends AdapterMixin(HTMLElement){static{__name(this, +"Adapter")}static cssProcess(css2){return stylis(css2)}};var import_color2=__toESM(require_color(),1);var import_color=__toESM(require_color(),1);function bgColor(color2){return` background-color: ${color2}; color: ${(0,import_color.default)(color2).isDark()?"white":"black"}; `.trim()}__name(bgColor,"bgColor");function lift(level,color2="black"){return`\ diff --git a/docs/index.js.map b/docs/index.js.map index eb23520..3d488f8 100644 --- a/docs/index.js.map +++ b/docs/index.js.map @@ -1,7 +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", "../docs-src/_ux/designToken.ts", "../docs-src/index.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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\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) { this.initClass() };\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = ``;\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "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 './adapter';\nimport { buttonStyle } from './_ux/ui/button';\nimport { color } from './_ux/designToken';\n\n\nconst css = String.raw;\n\nclass Particle extends Adapter {\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.parentElement!.addEventListener('mousemove', (event) => {\n this.onMouseMove(event);\n })\n this.parentElement!.addEventListener('touchmove', (event) => {\n this.onTouchMove(event);\n })\n }\n\n onMouseMove(event) {\n const mousePoint = [event.clientX, event.clientY];\n this.onClientMove(mousePoint);\n }\n\n onTouchMove(event) {\n const touchPoint = [\n event.touches[0].clientX,\n event.touches[0].clientY\n ];\n this.onClientMove(touchPoint);\n }\n\n onClientMove(clientPoint) {\n const centerPoint = this.getCenterPoint();\n let distance = Math.sqrt(\n Math.pow(clientPoint[0] - centerPoint[0], 2) +\n Math.pow(clientPoint[1] - centerPoint[1], 2)\n )\n if (distance > 400) { return };\n if (distance > 100) {\n this.style.scale = \"1\";\n return;\n };\n const scale = (Math.abs(distance / 100 - 1) * 3) + 1;\n this.style.scale = scale.toString();\n }\n\n getCenterPoint() {\n const rect = this.getBoundingClientRect();\n const point = [\n (rect.left + rect.right)/2,\n (rect.top + rect.bottom)/2\n ];\n return point;\n }\n}\n\nclass ParticleScene extends Adapter {\n constructor() {\n super();\n this.addEventListener('mouseout', () => {\n this.resetScene();\n })\n }\n\n connectedCallback() {\n for (let i=0; i<100; i++) {\n const particle = document.createElement(`el-particle`);\n this.append(particle);\n }\n }\n\n resetScene() {\n const particles = this.querySelectorAll('el-particle');\n for (const particle of particles) {\n (particle as HTMLElement).style.scale = '1';\n }\n }\n};\n\nclass Heading extends Adapter {\n static css = css`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n text-align: center;\n & h1 {\n margin-top: 2rem;\n }\n & h2, h3 {\n margin-top: 1.5rem;\n }\n `\n};\n\nclass HeadingButtons extends Adapter {\n static css = css`\n el-button {\n margin: 1rem 1rem;\n & el-icon {\n margin-right: 0.5rem;\n }\n }\n `\n};\n\nHeadingButtons.addStyle(css`\n el-button[el=\"github\"] {\n ${buttonStyle(color.dark)}\n }\n el-button[el=\"discord\"] {\n ${buttonStyle(color.light)}\n }\n`);\n\nParticleScene.css = `\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin: auto;\n margin-top: 2rem;\n max-width: 400px;\n min-width: 300px;\n`;\n\nParticle.css = `\n display: inline-flex;\n box-sizing: border-box;\n margin: 3.5%;\n width: 3%;\n height: auto;\n aspect-ratio: 1;\n background-color: orange;\n border-radius: 100%;\n border: 0.2em solid red;\n`;\n\nHeading.define('el-heading');\nHeadingButtons.define('el-heading-buttons');\nParticle.define('el-particle');\nParticleScene.define('el-particle-scene');\n\nwindow.Adapter = Adapter;\nwindow.Particle = Particle;"], - "mappings": "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", + "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 allStyles(): string[] {\n let superClass = Object.getPrototypeOf(this);\n const allStyles = [];\n\n while (superClass.styles !== undefined) {\n allStyles.push(...superClass.styles);\n superClass = Object.getPrototypeOf(superClass);\n }\n allStyles.push(...this.styles);\n return allStyles;\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.allCSS} }`)\n );\n }\n }\n\n /** Get CSS for this component, includes inherited styles */\n static get css(): string {\n return this.styles.join(\"\\n\");\n }\n\n static get allCSS(): string {\n return this.allStyles.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.allCSS} }`)\n );\n document.adoptedStyleSheets.push(this.cssStyleSheet);\n }\n /** @deprecated, will be removed */\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 */\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 // index of this.cssStyleSheet in document.adoptedStyleSheets\n adoptedStyleSheetIndex!: number;\n\n _uuid?: string;\n\n _shadowRoot!: ShadowRoot|null;\n\n _cssObserver!: MutationObserver;\n\n _isConnectedOnce = false;\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) { this.initClass() };\n this.cssObserve(true);\n }\n\n connectedCallback() {\n if (!this._isConnectedOnce) {\n this.css = this.css;\n };\n }\n\n get cssObserver() {\n if (this._cssObserver) { return this._cssObserver };\n\n this._cssObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'css') {\n this.css = this.getAttribute('css') || '';\n };\n };\n });\n return this._cssObserver;\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 reference.\n */\n get cssStyleSheet() {\n if (this._cssStyleSheet) { return this._cssStyleSheet };\n\n this._cssStyleSheet = new CSSStyleSheet();\n\n /** For normal element, attach this._cssStyleSheet to the document */\n if (!this._shadowRoot) {\n const index = document.adoptedStyleSheets.length;\n this.classList.add(this.uuid);\n document.adoptedStyleSheets[index] = this._cssStyleSheet;\n this.adoptedStyleSheetIndex = index;\n }\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 // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n \n this.cssStyleSheet.replaceSync(processedCss);\n }\n\n /** Get CSS for this element */\n get css(): string {\n let css = this.getAttribute(\"css\") || \"\";\n if (css) { return css };\n for (const rule of this.cssStyleSheet.cssRules) {\n css += rule.cssText + \"\\n\";\n }\n return css;\n }\n\n initClass() {\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._tagName = this.tagName;\n this._class.initStyle();\n }\n\n /** Enable or disable CSS Observation */\n cssObserve(enable: boolean) {\n if (enable) {\n this.cssObserver.observe(this, { attributes: true });\n } else {\n this.cssObserver.disconnect();\n }\n }\n\n /** Override super.attachShadow()\n * to add this.cssStyleSheet to shadowRoot\n */\n attachShadow(init: ShadowRootInit): ShadowRoot {\n const shadowRoot = super.attachShadow(init);\n shadowRoot.adoptedStyleSheets = [\n this._class.cssStyleSheet,\n this.cssStyleSheet\n ];\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1);\n this._shadowRoot = shadowRoot;\n return shadowRoot;\n }\n\n /** Add style for this element */\n addStyle(css: string): void {\n // Init cssStyleSheet if it hasn't been inited yet.\n this.cssStyleSheet;\n\n const processedCss = this._class.cssProcess(\n `${this.tagName}.${this.objectClassSelector} { ${css} }`\n );\n\n this.cssStyleSheet.insertRule(\n processedCss,\n this.cssStyleSheet.cssRules.length\n );\n }\n\n /** Remove the element from DOM and remove adoptedStyleSheet */\n delete() {\n if (!this._shadowRoot) {\n document.adoptedStyleSheets.splice(this.adoptedStyleSheetIndex, 1)\n };\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 \"../../adapter.js\";\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 };", "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 './adapter';\nimport { buttonStyle } from './_ux/ui/button';\nimport { color } from './_ux/designToken';\n\n\nconst css = String.raw;\n\nclass Particle extends Adapter {\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.parentElement!.addEventListener('mousemove', (event) => {\n this.onMouseMove(event);\n })\n this.parentElement!.addEventListener('touchmove', (event) => {\n this.onTouchMove(event);\n })\n }\n\n onMouseMove(event) {\n const mousePoint = [event.clientX, event.clientY];\n this.onClientMove(mousePoint);\n }\n\n onTouchMove(event) {\n const touchPoint = [\n event.touches[0].clientX,\n event.touches[0].clientY\n ];\n this.onClientMove(touchPoint);\n }\n\n onClientMove(clientPoint) {\n const centerPoint = this.getCenterPoint();\n let distance = Math.sqrt(\n Math.pow(clientPoint[0] - centerPoint[0], 2) +\n Math.pow(clientPoint[1] - centerPoint[1], 2)\n )\n if (distance > 400) { return };\n if (distance > 100) {\n this.style.scale = \"1\";\n return;\n };\n const scale = (Math.abs(distance / 100 - 1) * 3) + 1;\n this.style.scale = scale.toString();\n }\n\n getCenterPoint() {\n const rect = this.getBoundingClientRect();\n const point = [\n (rect.left + rect.right)/2,\n (rect.top + rect.bottom)/2\n ];\n return point;\n }\n}\n\nclass ParticleScene extends Adapter {\n constructor() {\n super();\n this.addEventListener('mouseout', () => {\n this.resetScene();\n })\n }\n\n connectedCallback() {\n for (let i=0; i<100; i++) {\n const particle = document.createElement(`el-particle`);\n this.append(particle);\n }\n }\n\n resetScene() {\n const particles = this.querySelectorAll('el-particle');\n for (const particle of particles) {\n (particle as HTMLElement).style.scale = '1';\n }\n }\n};\n\nclass Heading extends Adapter {\n static css = css`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n text-align: center;\n & h1 {\n margin-top: 2rem;\n }\n & h2, h3 {\n margin-top: 1.5rem;\n }\n `\n};\n\nclass HeadingButtons extends Adapter {\n static css = css`\n el-button {\n margin: 1rem 1rem;\n & el-icon {\n margin-right: 0.5rem;\n }\n }\n `\n};\n\nHeadingButtons.addStyle(css`\n el-button[el=\"github\"] {\n ${buttonStyle(color.dark)}\n }\n el-button[el=\"discord\"] {\n ${buttonStyle(color.light)}\n }\n`);\n\nParticleScene.css = `\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin: auto;\n margin-top: 2rem;\n max-width: 400px;\n min-width: 300px;\n`;\n\nParticle.css = `\n display: inline-flex;\n box-sizing: border-box;\n margin: 3.5%;\n width: 3%;\n height: auto;\n aspect-ratio: 1;\n background-color: orange;\n border-radius: 100%;\n border: 0.2em solid red;\n`;\n\nHeading.define('el-heading');\nHeadingButtons.define('el-heading-buttons');\nParticle.define('el-particle');\nParticleScene.define('el-particle-scene');\n\nwindow.Adapter = Adapter;\nwindow.Particle = Particle;"], + "mappings": "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", "names": ["slice", "color", "char", "node", "from", "Color", "color", "length", "length", "length", "character", "characters", "css", "css", "import_color", "color", "Color", "color", "Color"] }