-
Notifications
You must be signed in to change notification settings - Fork 14
/
index.cjs.js.map
1 lines (1 loc) · 111 KB
/
index.cjs.js.map
1
{"version":3,"file":"index.cjs.js","sources":["lib/get-custom-properties.js","lib/import-from.js","lib/conversions.js","lib/color.js","lib/manage-unresolved.js","lib/transform.js","index.js"],"sourcesContent":["import valueParser from 'postcss-value-parser';\n\n// return custom selectors from the css root, conditionally removing them\nexport default function getCustomProperties(root, opts) {\n\t// initialize custom selectors\n\tconst customPropertiesFromHtmlElement = {};\n\tconst customPropertiesFromRootPsuedo = {};\n\n\t// for each html or :root rule\n\troot.nodes.slice().forEach(rule => {\n\t\tconst customPropertiesObject = isHtmlRule(rule)\n\t\t\t? customPropertiesFromHtmlElement\n\t\t: isRootRule(rule)\n\t\t\t? customPropertiesFromRootPsuedo\n\t\t: null;\n\n\t\t// for each custom property\n\t\tif (customPropertiesObject) {\n\t\t\trule.nodes.slice().forEach(decl => {\n\t\t\t\tif (isCustomDecl(decl)) {\n\t\t\t\t\tconst { prop } = decl;\n\n\t\t\t\t\t// write the parsed value to the custom property\n\t\t\t\t\tcustomPropertiesObject[prop] = valueParser(decl.value);\n\n\t\t\t\t\t// conditionally remove the custom property declaration\n\t\t\t\t\tif (!opts.preserve) {\n\t\t\t\t\t\tdecl.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// conditionally remove the empty html or :root rule\n\t\t\tif (!opts.preserve && isEmptyParent(rule)) {\n\t\t\t\trule.remove();\n\t\t\t}\n\t\t}\n\t});\n\n\t// return all custom properties, preferring :root properties over html properties\n\treturn { ...customPropertiesFromHtmlElement, ...customPropertiesFromRootPsuedo };\n}\n\n// match html and :root rules\nconst htmlSelectorRegExp = /^html$/i;\nconst rootSelectorRegExp = /^:root$/i;\nconst customPropertyRegExp = /^--[A-z][\\w-]*$/;\n\n// whether the node is an html or :root rule\nconst isHtmlRule = node => node.type === 'rule' && htmlSelectorRegExp.test(node.selector) && Object(node.nodes).length;\nconst isRootRule = node => node.type === 'rule' && rootSelectorRegExp.test(node.selector) && Object(node.nodes).length;\n\n// whether the node is an custom property\nconst isCustomDecl = node => node.type === 'decl' && customPropertyRegExp.test(node.prop);\n\n// whether the node is a parent without children\nconst isEmptyParent = node => Object(node.nodes).length === 0;\n","import fs from 'fs';\nimport path from 'path';\nimport postcss from 'postcss';\nimport getCustomProperties from './get-custom-properties';\nimport valueParser from 'postcss-value-parser';\n\n/* Import Custom Properties from CSS AST\n/* ========================================================================== */\n\nfunction importCustomPropertiesFromCSSAST(root) {\n\treturn getCustomProperties(root, { preserve: true });\n}\n\n/* Import Custom Properties from CSS File\n/* ========================================================================== */\n\nasync function importCustomPropertiesFromCSSFile(from) {\n\tconst css = await readFile(from);\n\tconst root = postcss.parse(css, { from });\n\n\treturn importCustomPropertiesFromCSSAST(root);\n}\n\n/* Import Custom Properties from Object\n/* ========================================================================== */\n\nfunction importCustomPropertiesFromObject(object) {\n\tconst customProperties = Object.assign(\n\t\t{},\n\t\tObject(object).customProperties || Object(object)['custom-properties']\n\t);\n\n\tfor (const prop in customProperties) {\n\t\tcustomProperties[prop] = valueParser(customProperties[prop]);\n\t}\n\n\treturn customProperties;\n}\n\n/* Import Custom Properties from JSON file\n/* ========================================================================== */\n\nasync function importCustomPropertiesFromJSONFile(from) {\n\tconst object = await readJSON(from);\n\n\treturn importCustomPropertiesFromObject(object);\n}\n\n/* Import Custom Properties from JS file\n/* ========================================================================== */\n\nasync function importCustomPropertiesFromJSFile(from) {\n\tconst object = await import(from);\n\n\treturn importCustomPropertiesFromObject(('default' in object) ? object.default : object);\n}\n\n/* Import Custom Properties from Sources\n/* ========================================================================== */\n\nexport default function importCustomPropertiesFromSources(sources) {\n\treturn sources.map(source => {\n\t\tif (source instanceof Promise) {\n\t\t\treturn source;\n\t\t} else if (source instanceof Function) {\n\t\t\treturn source();\n\t\t}\n\n\t\t// read the source as an object\n\t\tconst opts = source === Object(source) ? source : { from: String(source) };\n\n\t\t// skip objects with Custom Properties\n\t\tif (opts.customProperties || opts['custom-properties']) {\n\t\t\treturn opts\n\t\t}\n\n\t\t// source pathname\n\t\tconst from = path.resolve(String(opts.from || ''));\n\n\t\t// type of file being read from\n\t\tconst type = (opts.type || path.extname(from).slice(1)).toLowerCase();\n\n\t\treturn { type, from };\n\t}).reduce(async (customProperties, source) => {\n\t\tconst { type, from } = await source;\n\n\t\tif (type === 'ast') {\n\t\t\treturn Object.assign(await customProperties, importCustomPropertiesFromCSSAST(from));\n\t\t}\n\n\t\tif (type === 'css') {\n\t\t\treturn Object.assign(await customProperties, await importCustomPropertiesFromCSSFile(from));\n\t\t}\n\n\t\tif (type === 'js') {\n\t\t\treturn Object.assign(await customProperties, await importCustomPropertiesFromJSFile(from));\n\t\t}\n\n\t\tif (type === 'json') {\n\t\t\treturn Object.assign(await customProperties, await importCustomPropertiesFromJSONFile(from));\n\t\t}\n\n\t\treturn Object.assign(await customProperties, await importCustomPropertiesFromObject(await source));\n\t}, {});\n}\n\n/* Helper utilities\n/* ========================================================================== */\n\nconst readFile = from => new Promise((resolve, reject) => {\n\tfs.readFile(from, 'utf8', (error, result) => {\n\t\tif (error) {\n\t\t\treject(error);\n\t\t} else {\n\t\t\tresolve(result);\n\t\t}\n\t});\n});\n\nconst readJSON = async from => JSON.parse(await readFile(from));\n","/* Convert Degree to Hue Degree\n/* ========================================================================== */\n\nexport function convertDtoD(deg) {\n\treturn deg % 360;\n}\n\n/* Convert Gradian to Hue Degree\n/* ========================================================================== */\n\nexport function convertGtoD(grad) {\n\treturn grad * 0.9 % 360;\n}\n\n/* Convert Radian to Hue Degree\n/* ========================================================================== */\n\nexport function convertRtoD(rad) {\n\treturn rad * 180 / Math.PI % 360;\n}\n\n/* Convert Turn to Hue Degree\n/* ========================================================================== */\n\nexport function convertTtoD(turn) {\n\treturn turn * 360 % 360;\n}\n\n/* Convert a Name to Red/Green/Blue\n/* ========================================================================== */\n\nexport function convertNtoRGB(name) {\n\tconst names = {\n\t\taliceblue: [240, 248, 255],\n\t\tantiquewhite: [250, 235, 215],\n\t\taqua: [0, 255, 255],\n\t\taquamarine: [127, 255, 212],\n\t\tazure: [240, 255, 255],\n\t\tbeige: [245, 245, 220],\n\t\tbisque: [255, 228, 196],\n\t\tblack: [0, 0, 0],\n\t\tblanchedalmond: [255, 235, 205],\n\t\tblue: [0, 0, 255],\n\t\tblueviolet: [138, 43, 226],\n\t\tbrown: [165, 42, 42],\n\t\tburlywood: [222, 184, 135],\n\t\tcadetblue: [95, 158, 160],\n\t\tchartreuse: [127, 255, 0],\n\t\tchocolate: [210, 105, 30],\n\t\tcoral: [255, 127, 80],\n\t\tcornflowerblue: [100, 149, 237],\n\t\tcornsilk: [255, 248, 220],\n\t\tcrimson: [220, 20, 60],\n\t\tcyan: [0, 255, 255],\n\t\tdarkblue: [0, 0, 139],\n\t\tdarkcyan: [0, 139, 139],\n\t\tdarkgoldenrod: [184, 134, 11],\n\t\tdarkgray: [169, 169, 169],\n\t\tdarkgreen: [0, 100, 0],\n\t\tdarkgrey: [169, 169, 169],\n\t\tdarkkhaki: [189, 183, 107],\n\t\tdarkmagenta: [139, 0, 139],\n\t\tdarkolivegreen: [85, 107, 47],\n\t\tdarkorange: [255, 140, 0],\n\t\tdarkorchid: [153, 50, 204],\n\t\tdarkred: [139, 0, 0],\n\t\tdarksalmon: [233, 150, 122],\n\t\tdarkseagreen: [143, 188, 143],\n\t\tdarkslateblue: [72, 61, 139],\n\t\tdarkslategray: [47, 79, 79],\n\t\tdarkslategrey: [47, 79, 79],\n\t\tdarkturquoise: [0, 206, 209],\n\t\tdarkviolet: [148, 0, 211],\n\t\tdeeppink: [255, 20, 147],\n\t\tdeepskyblue: [0, 191, 255],\n\t\tdimgray: [105, 105, 105],\n\t\tdimgrey: [105, 105, 105],\n\t\tdodgerblue: [30, 144, 255],\n\t\tfirebrick: [178, 34, 34],\n\t\tfloralwhite: [255, 250, 240],\n\t\tforestgreen: [34, 139, 34],\n\t\tfuchsia: [255, 0, 255],\n\t\tgainsboro: [220, 220, 220],\n\t\tghostwhite: [248, 248, 255],\n\t\tgold: [255, 215, 0],\n\t\tgoldenrod: [218, 165, 32],\n\t\tgray: [128, 128, 128],\n\t\tgreen: [0, 128, 0],\n\t\tgreenyellow: [173, 255, 47],\n\t\tgrey: [128, 128, 128],\n\t\thoneydew: [240, 255, 240],\n\t\thotpink: [255, 105, 180],\n\t\tindianred: [205, 92, 92],\n\t\tindigo: [75, 0, 130],\n\t\tivory: [255, 255, 240],\n\t\tkhaki: [240, 230, 140],\n\t\tlavender: [230, 230, 250],\n\t\tlavenderblush: [255, 240, 245],\n\t\tlawngreen: [124, 252, 0],\n\t\tlemonchiffon: [255, 250, 205],\n\t\tlightblue: [173, 216, 230],\n\t\tlightcoral: [240, 128, 128],\n\t\tlightcyan: [224, 255, 255],\n\t\tlightgoldenrodyellow: [250, 250, 210],\n\t\tlightgray: [211, 211, 211],\n\t\tlightgreen: [144, 238, 144],\n\t\tlightgrey: [211, 211, 211],\n\t\tlightpink: [255, 182, 193],\n\t\tlightsalmon: [255, 160, 122],\n\t\tlightseagreen: [32, 178, 170],\n\t\tlightskyblue: [135, 206, 250],\n\t\tlightslategray: [119, 136, 153],\n\t\tlightslategrey: [119, 136, 153],\n\t\tlightsteelblue: [176, 196, 222],\n\t\tlightyellow: [255, 255, 224],\n\t\tlime: [0, 255, 0],\n\t\tlimegreen: [50, 205, 50],\n\t\tlinen: [250, 240, 230],\n\t\tmagenta: [255, 0, 255],\n\t\tmaroon: [128, 0, 0],\n\t\tmediumaquamarine: [102, 205, 170],\n\t\tmediumblue: [0, 0, 205],\n\t\tmediumorchid: [186, 85, 211],\n\t\tmediumpurple: [147, 112, 219],\n\t\tmediumseagreen: [60, 179, 113],\n\t\tmediumslateblue: [123, 104, 238],\n\t\tmediumspringgreen: [0, 250, 154],\n\t\tmediumturquoise: [72, 209, 204],\n\t\tmediumvioletred: [199, 21, 133],\n\t\tmidnightblue: [25, 25, 112],\n\t\tmintcream: [245, 255, 250],\n\t\tmistyrose: [255, 228, 225],\n\t\tmoccasin: [255, 228, 181],\n\t\tnavajowhite: [255, 222, 173],\n\t\tnavy: [0, 0, 128],\n\t\toldlace: [253, 245, 230],\n\t\tolive: [128, 128, 0],\n\t\tolivedrab: [107, 142, 35],\n\t\torange: [255, 165, 0],\n\t\torangered: [255, 69, 0],\n\t\torchid: [218, 112, 214],\n\t\tpalegoldenrod: [238, 232, 170],\n\t\tpalegreen: [152, 251, 152],\n\t\tpaleturquoise: [175, 238, 238],\n\t\tpalevioletred: [219, 112, 147],\n\t\tpapayawhip: [255, 239, 213],\n\t\tpeachpuff: [255, 218, 185],\n\t\tperu: [205, 133, 63],\n\t\tpink: [255, 192, 203],\n\t\tplum: [221, 160, 221],\n\t\tpowderblue: [176, 224, 230],\n\t\tpurple: [128, 0, 128],\n\t\trebeccapurple: [102, 51, 153],\n\t\tred: [255, 0, 0],\n\t\trosybrown: [188, 143, 143],\n\t\troyalblue: [65, 105, 225],\n\t\tsaddlebrown: [139, 69, 19],\n\t\tsalmon: [250, 128, 114],\n\t\tsandybrown: [244, 164, 96],\n\t\tseagreen: [46, 139, 87],\n\t\tseashell: [255, 245, 238],\n\t\tsienna: [160, 82, 45],\n\t\tsilver: [192, 192, 192],\n\t\tskyblue: [135, 206, 235],\n\t\tslateblue: [106, 90, 205],\n\t\tslategray: [112, 128, 144],\n\t\tslategrey: [112, 128, 144],\n\t\tsnow: [255, 250, 250],\n\t\tspringgreen: [0, 255, 127],\n\t\tsteelblue: [70, 130, 180],\n\t\ttan: [210, 180, 140],\n\t\tteal: [0, 128, 128],\n\t\tthistle: [216, 191, 216],\n\t\ttomato: [255, 99, 71],\n\t\ttransparent: [0, 0, 0],\n\t\tturquoise: [64, 224, 208],\n\t\tviolet: [238, 130, 238],\n\t\twheat: [245, 222, 179],\n\t\twhite: [255, 255, 255],\n\t\twhitesmoke: [245, 245, 245],\n\t\tyellow: [255, 255, 0],\n\t\tyellowgreen: [154, 205, 50]\n\t};\n\n\treturn names[name] && names[name].map(c => c / 2.55);\n}\n\n\n/* Convert a Hex to Red/Green/Blue\n/* ========================================================================== */\n\nexport function convertHtoRGB(hex) {\n\t// #<hex-color>{3,4,6,8}\n\tconst [r, g, b, a, rr, gg, bb, aa] = (hex.match(hexColorMatch) || []).slice(1);\n\n\tif (rr !== undefined || r !== undefined) {\n\t\tconst red = rr !== undefined ? parseInt(rr, 16) : r !== undefined ? parseInt(r + r, 16) : 0;\n\t\tconst green = gg !== undefined ? parseInt(gg, 16) : g !== undefined ? parseInt(g + g, 16) : 0;\n\t\tconst blue = bb !== undefined ? parseInt(bb, 16) : b !== undefined ? parseInt(b + b, 16) : 0;\n\t\tconst alpha = aa !== undefined ? parseInt(aa, 16) : a !== undefined ? parseInt(a + a, 16) : 255;\n\n\t\treturn [red, green, blue, alpha].map(c => c / 2.55);\n\t}\n\n\treturn undefined;\n}\n\nconst hexColorMatch = /^#(?:([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?)$/i;\n","import { rgb2hsl, rgb2hwb, hsl2rgb, hsl2hwb, hwb2rgb, hwb2hsl, rgb2hue } from '@csstools/convert-colors';\n\nexport default class Color {\n\tconstructor(color) {\n\t\tthis.color = Object(Object(color).color || color);\n\n\t\tthis.color.colorspace = this.color.colorspace\n\t\t\t? this.color.colorspace\n\t\t: 'red' in color && 'green' in color && 'blue' in color\n\t\t\t? 'rgb'\n\t\t: 'hue' in color && 'saturation' in color && 'lightness' in color\n\t\t\t? 'hsl'\n\t\t: 'hue' in color && 'whiteness' in color && 'blackness' in color\n\t\t\t? 'hwb'\n\t\t: 'unknown';\n\n\t\tif (color.colorspace === 'rgb') {\n\t\t\tthis.color.hue = rgb2hue(color.red, color.green, color.blue, color.hue || 0);\n\t\t}\n\t}\n\n\talpha(alpha) {\n\t\tconst color = this.color;\n\n\t\treturn alpha === undefined\n\t\t\t? color.alpha\n\t\t: new Color(assign(color, { alpha }));\n\t}\n\n\tblackness(blackness) {\n\t\tconst hwb = color2hwb(this.color);\n\n\t\treturn blackness === undefined\n\t\t\t? hwb.blackness\n\t\t: new Color(assign(hwb, { blackness }));\n\t}\n\n\tblend(color, percentage, colorspace = 'rgb') {\n\t\tconst base = this.color;\n\n\t\treturn new Color(blend(base, color, percentage, colorspace));\n\t}\n\n\tblenda(color, percentage, colorspace = 'rgb') {\n\t\tconst base = this.color;\n\n\t\treturn new Color(blend(base, color, percentage, colorspace, true));\n\t}\n\n\tblue(blue) {\n\t\tconst rgb = color2rgb(this.color);\n\n\t\treturn blue === undefined\n\t\t\t? rgb.blue\n\t\t: new Color(assign(rgb, { blue }));\n\t}\n\n\tcontrast(percentage) {\n\t\tconst base = this.color;\n\n\t\treturn new Color(contrast(base, percentage));\n\t}\n\n\tgreen(green) {\n\t\tconst rgb = color2rgb(this.color);\n\n\t\treturn green === undefined\n\t\t\t? rgb.green\n\t\t: new Color(assign(rgb, { green }));\n\t}\n\n\thue(hue) {\n\t\tconst hsl = color2hsl(this.color);\n\n\t\treturn hue === undefined\n\t\t\t? hsl.hue\n\t\t: new Color(assign(hsl, { hue }));\n\t}\n\n\tlightness(lightness) {\n\t\tconst hsl = color2hsl(this.color);\n\n\t\treturn lightness === undefined\n\t\t\t? hsl.lightness\n\t\t: new Color(assign(hsl, { lightness }))\n\t}\n\n\tred(red) {\n\t\tconst rgb = color2rgb(this.color);\n\n\t\treturn red === undefined\n\t\t\t? rgb.red\n\t\t: new Color(assign(rgb, { red }));\n\t}\n\n\trgb(red, green, blue) {\n\t\tconst rgb = color2rgb(this.color);\n\n\t\treturn new Color(assign(rgb, { red, green, blue }));\n\t}\n\n\tsaturation(saturation) {\n\t\tconst hsl = color2hsl(this.color);\n\n\t\treturn saturation === undefined\n\t\t\t? hsl.saturation\n\t\t: new Color(assign(hsl, { saturation }));\n\t}\n\n\tshade(percentage) {\n\t\tconst hwb = color2hwb(this.color);\n\t\tconst shade = { hue: 0, whiteness: 0, blackness: 100, colorspace: 'hwb' };\n\t\tconst colorspace = 'rgb';\n\n\t\treturn percentage === undefined\n\t\t\t? hwb.blackness\n\t\t: new Color(blend(hwb, shade, percentage, colorspace));\n\t}\n\n\ttint(percentage) {\n\t\tconst hwb = color2hwb(this.color);\n\t\tconst tint = { hue: 0, whiteness: 100, blackness: 0, colorspace: 'hwb' };\n\t\tconst colorspace = 'rgb';\n\n\t\treturn percentage === undefined\n\t\t\t? hwb.blackness\n\t\t: new Color(blend(hwb, tint, percentage, colorspace));\n\t}\n\n\twhiteness(whiteness) {\n\t\tconst hwb = color2hwb(this.color);\n\n\t\treturn whiteness === undefined\n\t\t\t? hwb.whiteness\n\t\t: new Color(assign(hwb, { whiteness }));\n\t}\n\n\ttoHSL() {\n\t\treturn color2hslString(this.color);\n\t}\n\n\ttoHWB() {\n\t\treturn color2hwbString(this.color);\n\t}\n\n\ttoLegacy() {\n\t\treturn color2legacyString(this.color);\n\t}\n\n\ttoRGB() {\n\t\treturn color2rgbString(this.color);\n\t}\n\n\ttoRGBLegacy() {\n\t\treturn color2rgbLegacyString(this.color);\n\t}\n\n\ttoString() {\n\t\treturn color2string(this.color);\n\t}\n}\n\n/* Blending\n/* ========================================================================== */\n\nfunction blend(base, color, percentage, colorspace, isBlendingAlpha) {\n\tconst addition = percentage / 100;\n\tconst subtraction = 1 - addition;\n\n\tif (colorspace === 'hsl') {\n\t\tconst { hue: h1, saturation: s1, lightness: l1, alpha: a1 } = color2hsl(base);\n\t\tconst { hue: h2, saturation: s2, lightness: l2, alpha: a2 } = color2hsl(color);\n\n\t\tconst [hue, saturation, lightness, alpha] = [\n\t\t\th1 * subtraction + h2 * addition,\n\t\t\ts1 * subtraction + s2 * addition,\n\t\t\tl1 * subtraction + l2 * addition,\n\t\t\tisBlendingAlpha\n\t\t\t\t? a1 * subtraction + a2 * addition\n\t\t\t: a1\n\t\t];\n\n\t\treturn { hue, saturation, lightness, alpha, colorspace: 'hsl' };\n\t} else if (colorspace === 'hwb') {\n\t\tconst { hue: h1, whiteness: w1, blackness: b1, alpha: a1 } = color2hwb(base);\n\t\tconst { hue: h2, whiteness: w2, blackness: b2, alpha: a2 } = color2hwb(color);\n\n\t\tconst [hue, whiteness, blackness, alpha] = [\n\t\t\th1 * subtraction + h2 * addition,\n\t\t\tw1 * subtraction + w2 * addition,\n\t\t\tb1 * subtraction + b2 * addition,\n\t\t\tisBlendingAlpha\n\t\t\t\t? a1 * subtraction + a2 * addition\n\t\t\t: a1\n\t\t];\n\n\t\treturn { hue, whiteness, blackness, alpha, colorspace: 'hwb' };\n\t} else {\n\t\tconst { red: r1, green: g1, blue: b1, alpha: a1 } = color2rgb(base);\n\t\tconst { red: r2, green: g2, blue: b2, alpha: a2 } = color2rgb(color);\n\n\t\tconst [red, green, blue, alpha] = [\n\t\t\tr1 * subtraction + r2 * addition,\n\t\t\tg1 * subtraction + g2 * addition,\n\t\t\tb1 * subtraction + b2 * addition,\n\t\t\tisBlendingAlpha\n\t\t\t\t? a1 * subtraction + a2 * addition\n\t\t\t: a1\n\t\t];\n\n\t\treturn { red, green, blue, alpha, colorspace: 'rgb' };\n\t}\n}\n\n/* Assign channels to a new instance of a base color\n/* ========================================================================== */\n\nfunction assign(base, channels) {\n\tconst color = Object.assign({}, base);\n\n\tObject.keys(channels).forEach(\n\t\tchannel => {\n\t\t\t// detect channel\n\t\t\tconst channelIsHue = channel === 'hue';\n\t\t\tconst isRGB = !channelIsHue && blueGreenRedMatch.test(channel);\n\n\t\t\t// normalized value of the channel\n\t\t\tconst value = normalize(channels[channel], channel);\n\n\t\t\t// assign channel to new object\n\t\t\tcolor[channel] = value;\n\n\t\t\tif (isRGB) {\n\t\t\t\t// conditionally preserve the hue\n\t\t\t\tcolor.hue = rgb2hue(color.red, color.green, color.blue, base.hue || 0);\n\t\t\t}\n\t\t}\n\t);\n\n\treturn color;\n}\n\nfunction normalize(value, channel) {\n\t// detect channel\n\tconst channelIsHue = channel === 'hue';\n\n\t// value limitations\n\tconst min = 0;\n\tconst max = channelIsHue ? 360 : 100;\n\n\tconst normalizedValue = Math.min(Math.max(channelIsHue\n\t\t? value % 360\n\t: value, min), max);\n\n\treturn normalizedValue;\n}\n\n/* Convert colors\n/* ========================================================================== */\n\nfunction color2rgb(color) {\n\tconst [ red, green, blue ] = color.colorspace === 'hsl'\n\t\t? hsl2rgb(color.hue, color.saturation, color.lightness)\n\t: color.colorspace === 'hwb'\n\t\t? hwb2rgb(color.hue, color.whiteness, color.blackness)\n\t: [ color.red, color.green, color.blue ];\n\n\treturn { red, green, blue, hue: color.hue, alpha: color.alpha, colorspace: 'rgb' };\n}\n\nfunction color2hsl(color) {\n\tconst [ hue, saturation, lightness ] = color.colorspace === 'rgb'\n\t\t? rgb2hsl(color.red, color.green, color.blue, color.hue)\n\t: color.colorspace === 'hwb'\n\t\t? hwb2hsl(color.hue, color.whiteness, color.blackness)\n\t: [ color.hue, color.saturation, color.lightness ];\n\n\treturn { hue, saturation, lightness, alpha: color.alpha, colorspace: 'hsl' };\n}\n\nfunction color2hwb(color) {\n\tconst [ hue, whiteness, blackness ] = color.colorspace === 'rgb'\n\t\t? rgb2hwb(color.red, color.green, color.blue, color.hue)\n\t: color.colorspace === 'hsl'\n\t\t? hsl2hwb(color.hue, color.saturation, color.lightness)\n\t: [ color.hue, color.whiteness, color.blackness ];\n\n\treturn { hue, whiteness, blackness, alpha: color.alpha, colorspace: 'hwb' };\n}\n\n/* Contrast functions\n/* ========================================================================== */\n\nfunction contrast(color, percentage) {\n\t// https://drafts.csswg.org/css-color/#contrast-adjuster\n\tconst hwb = color2hwb(color);\n\tconst rgb = color2rgb(color);\n\n\t// compute the luminance of the color.\n\tconst luminance = rgb2luminance(rgb.red, rgb.green, rgb.blue);\n\n\t// the maximum-contrast color, if it is less than .5\n\tconst maxContrastColor = luminance < 0.5\n\t\t// hwb(X, 100%, 0%), where X is the hue angle of the color\n\t\t? { hue: hwb.hue, whiteness: 100, blackness: 0, alpha: hwb.alpha, colorspace: 'hwb' }\n\t// otherwise, hwb(X, 0%, 100%), where X is the hue angle of the color\n\t: { hue: hwb.hue, whiteness: 0, blackness: 100, alpha: hwb.alpha, colorspace: 'hwb' };\n\n\t// contrast ratio\n\tconst contrastRatio = colors2contrast(color, maxContrastColor);\n\n\tconst minContrastColor = contrastRatio > 4.5\n\t\t// the color with the smallest contrast ratio with the base color that is greater than 4.5\n\t\t? colors2contrastRatioColor(hwb, maxContrastColor)\n\t// otherwise, the maximum-contrast color\n\t: maxContrastColor;\n\n\t// color(maximum-contrast blend(minimum-contrast <percentage> hwb)));\n\treturn blend(maxContrastColor, minContrastColor, percentage, 'hwb', false);\n}\n\nfunction colors2contrast(color1, color2) {\n\t// https://drafts.csswg.org/css-color/#contrast-ratio\n\tconst rgb1 = color2rgb(color1);\n\tconst rgb2 = color2rgb(color2);\n\tconst l1 = rgb2luminance(rgb1.red, rgb1.green, rgb1.blue);\n\tconst l2 = rgb2luminance(rgb2.red, rgb2.green, rgb2.blue);\n\n\treturn l1 > l2\n\t\t// if l1 is the relative luminance of the lighter of the colors\n\t\t? (l1 + 0.05) / (l2 + 0.05)\n\t// otherwise, if l2 is the relative luminance of the lighter of the colors\n\t: (l2 + 0.05) / (l1 + 0.05);\n}\n\nfunction rgb2luminance(red, green, blue) {\n\tconst [ redLuminance, greenLuminance, blueLuminance ] = [\n\t\tchannel2luminance(red),\n\t\tchannel2luminance(green),\n\t\tchannel2luminance(blue)\n\t];\n\n\t// https://drafts.csswg.org/css-color/#luminance\n\tconst luminance = 0.2126 * redLuminance + 0.7152 * greenLuminance + 0.0722 * blueLuminance;\n\n\treturn luminance;\n}\n\nfunction channel2luminance(value) {\n\t// https://drafts.csswg.org/css-color/#luminance\n\tconst luminance = value <= 0.03928 ? value / 12.92 : Math.pow((value + 0.055) /1.055, 2.4);\n\n\treturn luminance;\n}\n\n// return the smallest contrast ratio from a color and a maximum contrast (credit: @thetalecrafter)\nfunction colors2contrastRatioColor(hwb, maxHWB) {\n\tconst modifiedHWB = Object.assign({}, hwb);\n\n\t// values to be used for linear interpolations in HWB space\n\tlet minW = hwb.whiteness;\n\tlet minB = hwb.blackness;\n\tlet maxW = maxHWB.whiteness;\n\tlet maxB = maxHWB.blackness;\n\n\t// find the color with the smallest contrast ratio with the base color that is greater than 4.5\n\twhile (Math.abs(minW - maxW) > 100 || Math.abs(minB - maxB) > 100) {\n\t\tconst midW = Math.round((maxW + minW) / 2);\n\t\tconst midB = Math.round((maxB + minB) / 2);\n\n\t\tmodifiedHWB.whiteness = midW;\n\t\tmodifiedHWB.blackness = midB;\n\n\t\tif (colors2contrast(modifiedHWB, hwb) > 4.5) {\n\t\t\tmaxW = midW;\n\t\t\tmaxB = midB;\n\t\t} else {\n\t\t\tminW = midW;\n\t\t\tminB = midB;\n\t\t}\n\t}\n\n\treturn modifiedHWB;\n}\n\n/* Match\n/* ========================================================================== */\n\nconst blueGreenRedMatch = /^(blue|green|red)$/i;\n\n/* Stringifiers\n/* ========================================================================== */\n\nfunction color2string(color) {\n\treturn color.colorspace === 'hsl'\n\t\t? color2hslString(color)\n\t: color.colorspace === 'hwb'\n\t\t? color2hwbString(color)\n\t: color2rgbString(color);\n}\n\nfunction color2hslString(color) {\n\tconst hsl = color2hsl(color);\n\tconst isOpaque = hsl.alpha === 100;\n\tconst hue = hsl.hue;\n\tconst saturation = Math.round(hsl.saturation * 10000000000) / 10000000000;\n\tconst lightness = Math.round(hsl.lightness * 10000000000) / 10000000000;\n\tconst alpha = Math.round(hsl.alpha * 10000000000) / 10000000000;\n\n\treturn `hsl(${hue} ${saturation}% ${lightness}%${isOpaque\n\t\t? ''\n\t: ` / ${alpha}%`})`;\n}\n\nfunction color2hwbString(color) {\n\tconst hwb = color2hwb(color);\n\tconst isOpaque = hwb.alpha === 100;\n\tconst hue = hwb.hue;\n\tconst whiteness = Math.round(hwb.whiteness * 10000000000) / 10000000000;\n\tconst blackness = Math.round(hwb.blackness * 10000000000) / 10000000000;\n\tconst alpha = Math.round(hwb.alpha * 10000000000) / 10000000000;\n\n\treturn `hwb(${hue} ${whiteness}% ${blackness}%${isOpaque\n\t\t? ''\n\t: ` / ${alpha}%`})`;\n}\n\nfunction color2rgbString(color) {\n\tconst rgb = color2rgb(color);\n\tconst isOpaque = rgb.alpha === 100;\n\tconst red = Math.round(rgb.red * 10000000000) / 10000000000;\n\tconst green = Math.round(rgb.green * 10000000000) / 10000000000;\n\tconst blue = Math.round(rgb.blue * 10000000000) / 10000000000;\n\tconst alpha = Math.round(rgb.alpha * 10000000000) / 10000000000;\n\n\treturn `rgb(${red}% ${green}% ${blue}%${isOpaque\n\t\t? ''\n\t: ` / ${alpha}%`})`;\n}\n\nfunction color2legacyString(color) {\n\treturn color.colorspace === 'hsl'\n\t\t? color2hslLegacyString(color)\n\t: color2rgbLegacyString(color);\n}\n\nfunction color2rgbLegacyString(color) {\n\tconst rgb = color2rgb(color);\n\tconst isOpaque = rgb.alpha === 100;\n\tconst name = isOpaque ? 'rgb' : 'rgba';\n\tconst red = Math.round(rgb.red * 255 / 100);\n\tconst green = Math.round(rgb.green * 255 / 100);\n\tconst blue = Math.round(rgb.blue * 255 / 100);\n\tconst alpha = Math.round(rgb.alpha / 100 * 10000000000) / 10000000000;\n\n\treturn `${name}(${red}, ${green}, ${blue}${isOpaque\n\t\t? ''\n\t: `, ${alpha}`})`;\n}\n\nfunction color2hslLegacyString(color) {\n\tconst hsl = color2hsl(color);\n\tconst isOpaque = hsl.alpha === 100;\n\tconst name = isOpaque ? 'hsl' : 'hsla';\n\tconst hue = hsl.hue;\n\tconst saturation = Math.round(hsl.saturation * 10000000000) / 10000000000;\n\tconst lightness = Math.round(hsl.lightness * 10000000000) / 10000000000;\n\tconst alpha = Math.round(hsl.alpha / 100 * 10000000000) / 10000000000;\n\n\treturn `${name}(${hue}, ${saturation}%, ${lightness}%${isOpaque\n\t\t? ''\n\t: `, ${alpha}`})`;\n}\n","export default function manageUnresolved(node, opts, word, message) {\n\tif ('warn' === opts.unresolved) {\n\t\topts.decl.warn(opts.result, message, { word });\n\t} else if ('ignore' !== opts.unresolved) {\n\t\tthrow opts.decl.error(message, { word });\n\t}\n}\n","// tooling\nimport { convertDtoD, convertGtoD, convertRtoD, convertTtoD, convertNtoRGB, convertHtoRGB } from './conversions';\nimport Color from './color';\nimport manageUnresolved from './manage-unresolved';\nimport parser from 'postcss-value-parser';\n\n/* Transform AST\n/* ========================================================================== */\n\nexport default function transformAST(node, opts) {\n\tnode.nodes.slice(0).forEach((child, index) => {\n\t\tif (isColorModFunction(child)) {\n\t\t\t// transform any variables within the color-mod() function\n\t\t\tif (opts.transformVars) {\n\t\t\t\ttransformVariables(child, opts);\n\t\t\t}\n\n\t\t\t// transform any color-mod() functions\n\t\t\tconst color = transformColorModFunction(child, opts);\n\n\t\t\tif (color) {\n\t\t\t\t// update the color-mod() function with the transformed value\n\t\t\t\tnode.nodes.splice(index, 1, {\n\t\t\t\t\ttype: 'word',\n\t\t\t\t\tvalue: opts.stringifier(color)\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (child.nodes && Object(child.nodes).length) {\n\t\t\ttransformAST(child, opts);\n\t\t}\n\t});\n}\n\n/* Transform <var> functions\n/* ========================================================================== */\n\nfunction transformVariables(node, opts) {\n\tparser.walk(node.nodes, (child, index, nodes) => {\n\t\tif (isVariable(child)) {\n\t\t\t// get the custom property and fallback value from var()\n\t\t\tconst [prop, fallbackNode] = transformArgsByParams(child, [\n\t\t\t\t// <value> , [ <fallback> ]?\n\t\t\t\t[transformWord, isComma, transformNode]\n\t\t\t]);\n\n\t\t\t// if the custom property is known\n\t\t\tif (prop in opts.customProperties) {\n\t\t\t\tlet customPropertyValue = opts.customProperties[prop];\n\n\t\t\t\t// follow custom properties referencing custom properties\n\t\t\t\tif (looseVarMatch.test(parser.stringify(customPropertyValue))) {\n\t\t\t\t\tconst rootChildAST = JSON.parse(JSON.stringify({ nodes: customPropertyValue.nodes }));\n\n\t\t\t\t\ttransformVariables(rootChildAST, opts);\n\n\t\t\t\t\tcustomPropertyValue = rootChildAST;\n\t\t\t\t}\n\n\t\t\t\t// replace var() with the custom property value\n\t\t\t\tif (customPropertyValue.nodes.length) {\n\t\t\t\t\tnodes.splice(index, 0, ...JSON.parse(JSON.stringify(customPropertyValue.nodes)));\n\t\t\t\t}\n\n\t\t\t\tnodes.splice(nodes.indexOf(child), 1);\n\t\t\t} else if (fallbackNode && fallbackNode.nodes.length === 1 && fallbackNode.nodes[0].nodes.length) {\n\t\t\t\t// otherwise, replace var() with the fallback value\n\t\t\t\ttransformVariables(fallbackNode, opts);\n\n\t\t\t\tnodes.splice(index, 1, ...fallbackNode.nodes[0].nodes[0]);\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* Transform <color> functions\n/* ========================================================================== */\n\nfunction transformColor(node, opts) {\n\tif (isRGBFunction(node)) {\n\t\treturn transformRGBFunction(node, opts);\n\t} else if (isHSLFunction(node)) {\n\t\treturn transformHSLFunction(node, opts);\n\t} else if (isHWBFunction(node)) {\n\t\treturn transformHWBFunction(node, opts);\n\t} else if (isColorModFunction(node)) {\n\t\treturn transformColorModFunction(node, opts);\n\t} else if (isHexColor(node)) {\n\t\treturn transformHexColor(node, opts);\n\t} else if (isNamedColor(node)) {\n\t\treturn transformNamedColor(node, opts);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a color`);\n\t}\n}\n\n// return a transformed rgb/rgba color function\nfunction transformRGBFunction(node, opts) {\n\tconst [red, green, blue, alpha = 100] = transformArgsByParams(node, [\n\t\t// <percentage> <percentage> <percentage> [ , <alpha-value> ]?\n\t\t[transformPercentage, transformPercentage, transformPercentage, isSlash, transformAlpha],\n\t\t// <number> <number> <number> [ , <alpha-value> ]?\n\t\t[transformRGBNumber, transformRGBNumber, transformRGBNumber, isSlash, transformAlpha],\n\t\t// <percentage> , <percentage> , <percentage> [ , <alpha-value> ]?\n\t\t[transformPercentage, isComma, transformPercentage, isComma, transformPercentage, isComma, transformAlpha],\n\t\t// <number> , <number> , <number> [ , <alpha-value> ]?\n\t\t[transformRGBNumber, isComma, transformRGBNumber, isComma, transformRGBNumber, isComma, transformAlpha]\n\t]);\n\n\tif (red !== undefined) {\n\t\tconst color = new Color({ red, green, blue, alpha, colorspace: 'rgb' });\n\n\t\treturn color;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid rgb() function`);\n\t}\n}\n\n// return a transformed hsl/hsla color function\nfunction transformHSLFunction(node, opts) {\n\tconst [hue, saturation, lightness, alpha = 100] = transformArgsByParams(node, [\n\t\t// <hue> <percentage> <percentage> [ / <alpha-value> ]?\n\t\t[transformHue, transformPercentage, transformPercentage, isSlash, transformAlpha],\n\t\t// <hue> , <percentage> , <percentage> [ , <alpha-value> ]?\n\t\t[transformHue, isComma, transformPercentage, isComma, transformPercentage, isComma, transformAlpha]\n\t]);\n\n\tif (lightness !== undefined) {\n\t\tconst color = new Color({ hue, saturation, lightness, alpha, colorspace: 'hsl' });\n\n\t\treturn color;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid hsl() function`);\n\t}\n}\n\n// return a transformed hwb color function\nfunction transformHWBFunction(node, opts) {\n\tconst [hue, whiteness, blackness, alpha = 100] = transformArgsByParams(node, [\n\t\t// <hue> <percentage> <percentage> [ / <alpha-value> ]?\n\t\t[transformHue, transformPercentage, transformPercentage, isSlash, transformAlpha]\n\t]);\n\n\tif (blackness !== undefined) {\n\t\tconst color = new Color({ hue, whiteness, blackness, alpha, colorspace: 'hwb' });\n\n\t\treturn color;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid hwb() function`);\n\t}\n}\n\n// return a transformed color-mod color function\nfunction transformColorModFunction(node, opts) {\n\t// [ <color> | <hue> ] <color-adjuster>*\n\tconst [colorOrHueNode, ...adjusterNodes] = node.nodes || [];\n\n\tif (colorOrHueNode !== undefined) {\n\t\tconst color = isHue(colorOrHueNode)\n\t\t\t? new Color({\n\t\t\t\thue: transformHue(colorOrHueNode, opts),\n\t\t\t\tsaturation: 100,\n\t\t\t\tlightness: 50,\n\t\t\t\talpha: 100,\n\t\t\t\tcolorspace: 'hsl'\n\t\t\t})\n\t\t: transformColor(colorOrHueNode, opts);\n\n\t\tif (color) {\n\t\t\tconst adjustedColor = transformColorByAdjusters(color, adjusterNodes, opts);\n\n\t\t\treturn adjustedColor;\n\t\t} else {\n\t\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid color`);\n\t\t}\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid color-mod() function`);\n\t}\n}\n\n// return a transformed hex color\nfunction transformHexColor(node, opts) {\n\tif (hexColorMatch.test(node.value)) {\n\t\t// #<hex-color>{3,4,6,8}\n\t\tconst [red, green, blue, alpha] = convertHtoRGB(node.value);\n\n\t\tconst color = new Color({ red, green, blue, alpha });\n\n\t\treturn color;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid hex color`);\n\t}\n}\n\n// return a transformed named-color\nfunction transformNamedColor(node, opts) {\n\tif (isNamedColor(node)) {\n\t\t// <named-color>\n\t\tconst [red, green, blue] = convertNtoRGB(node.value);\n\n\t\tconst color = new Color({ red, green, blue, alpha: 100, colorspace: 'rgb' });\n\n\t\treturn color;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid named-color`);\n\t}\n}\n\n/* Transform <color-adjuster> functions\n/* ========================================================================== */\n\n// return a transformed color using adjustments\nfunction transformColorByAdjusters(color, adjusterNodes, opts) {\n\tconst adjustedColor = adjusterNodes.filter((node) => {\n\t\treturn node.type !== 'space' && node.type !== 'comment';\n\t}).reduce((base, node) => {\n\t\tif (isAlphaBlueGreenRedAdjuster(node)) {\n\t\t\treturn transformAlphaBlueGreenRedAdjuster(base, node, opts);\n\t\t} else if (isRGBAdjuster(node)) {\n\t\t\treturn transformRGBAdjuster(base, node, opts);\n\t\t} else if (isHueAdjuster(node)) {\n\t\t\treturn transformHueAdjuster(base, node, opts);\n\t\t} else if (isBlacknessLightnessSaturationWhitenessAdjuster(node)) {\n\t\t\treturn transformBlacknessLightnessSaturationWhitenessAdjuster(base, node, opts);\n\t\t} else if (isShadeTintAdjuster(node)) {\n\t\t\treturn transformShadeTintAdjuster(base, node, opts);\n\t\t} else if (isBlendAdjuster(node)) {\n\t\t\treturn transformBlendAdjuster(base, node, node.value === 'blenda', opts);\n\t\t} else if (isContrastAdjuster(node)) {\n\t\t\treturn transformContrastAdjuster(base, node, opts);\n\t\t} else {\n\t\t\tmanageUnresolved(node, opts, node.value, `Expected a valid color adjuster`);\n\n\t\t\treturn base;\n\t\t}\n\t}, color);\n\n\treturn adjustedColor;\n}\n\n// return a transformed color using a/alpha/blue/green/red adjustments\nfunction transformAlphaBlueGreenRedAdjuster(base, node, opts) {\n\tconst [operatorOrValue, adjustment] = transformArgsByParams(node, alphaMatch.test(node.value)\n\t\t\t// a/alpha adjustments\n\t\t\t? [\n\t\t\t\t// [ + | - ] <alpha-value>\n\t\t\t\t[transformMinusPlusOperator, transformAlpha],\n\t\t\t\t// * <percentage>\n\t\t\t\t[transformTimesOperator, transformPercentage],\n\t\t\t\t// <alpha-value>\n\t\t\t\t[transformAlpha]\n\t\t\t]\n\t\t// blue/green/red adjustments\n\t\t: [\n\t\t\t// [ + | - ] <percentage>\n\t\t\t[transformMinusPlusOperator, transformPercentage],\n\t\t\t// [ + | - ] <number>\n\t\t\t[transformMinusPlusOperator, transformRGBNumber],\n\t\t\t// * <percentage>\n\t\t\t[transformTimesOperator, transformPercentage],\n\t\t\t// <percentage>\n\t\t\t[transformPercentage],\n\t\t\t// <number>\n\t\t\t[transformRGBNumber]\n\t\t]\n\t);\n\n\tif (operatorOrValue !== undefined) {\n\t\t// normalized channel name\n\t\tconst channel = node.value.toLowerCase().replace(alphaMatch, 'alpha');\n\n\t\tconst existingValue = base[channel]();\n\n\t\tconst modifiedValue = adjustment !== undefined\n\t\t\t? operatorOrValue === '+'\n\t\t\t\t? existingValue + Number(adjustment)\n\t\t\t: operatorOrValue === '-'\n\t\t\t\t? existingValue - Number(adjustment)\n\t\t\t: operatorOrValue === '*'\n\t\t\t\t? existingValue * Number(adjustment)\n\t\t\t: Number(adjustment)\n\t\t: Number(operatorOrValue);\n\n\t\tconst modifiedColor = base[channel](modifiedValue);\n\n\t\treturn modifiedColor;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid modifier()`);\n\t}\n}\n\n// return a transformed color using an rgb adjustment\nfunction transformRGBAdjuster(base, node, opts) {\n\tconst [arg1, arg2, arg3, arg4] = transformArgsByParams(node, [\n\t\t\t// [ + | - ] <percentage> <percentage> <percentage>\n\t\t\t[transformMinusPlusOperator, transformPercentage, transformPercentage, transformPercentage],\n\t\t\t// [ + | - ] <number> <number> <number>\n\t\t\t[transformMinusPlusOperator, transformRGBNumber, transformRGBNumber, transformRGBNumber],\n\t\t\t// [ + | - ] <hash-token>\n\t\t\t[transformMinusPlusOperator, transformHexColor],\n\t\t\t// [ * ] <percentage>\n\t\t\t[transformTimesOperator, transformPercentage]\n\t\t]\n\t);\n\n\tif (arg2 !== undefined && arg2.color) {\n\t\tconst modifiedColor = base.rgb(\n\t\t\targ1 === '+'\n\t\t\t\t? base.red() + arg2.red()\n\t\t\t: base.red() - arg2.red(),\n\t\t\targ1 === '+'\n\t\t\t\t? base.green() + arg2.green()\n\t\t\t: base.green() - arg2.green(),\n\t\t\targ1 === '+'\n\t\t\t\t? base.blue() + arg2.blue()\n\t\t\t: base.blue() - arg2.blue()\n\t\t);\n\n\t\treturn modifiedColor;\n\t} else if (arg1 !== undefined && minusPlusMatch.test(arg1)) {\n\t\tconst modifiedColor = base.rgb(\n\t\t\targ1 === '+'\n\t\t\t\t? base.red() + arg2\n\t\t\t: base.red() - arg2,\n\t\t\targ1 === '+'\n\t\t\t\t? base.green() + arg3\n\t\t\t: base.green() - arg3,\n\t\t\targ1 === '+'\n\t\t\t\t? base.blue() + arg4\n\t\t\t: base.blue() - arg4\n\t\t);\n\n\t\treturn modifiedColor;\n\t} else if (arg1 !== undefined && arg2 !== undefined) {\n\t\tconst modifiedColor = base.rgb(\n\t\t\tbase.red() * arg2,\n\t\t\tbase.green() * arg2,\n\t\t\tbase.blue() * arg2\n\t\t);\n\n\t\treturn modifiedColor;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid rgb() adjuster`);\n\t}\n}\n\n// return a transformed color using a blend/blenda adjustment\nfunction transformBlendAdjuster(base, node, isAlphaBlend, opts) {\n\tconst [color, percentage, colorspace = 'rgb'] = transformArgsByParams(node, [\n\t\t[transformColor, transformPercentage, transformColorSpace]\n\t]);\n\n\tif (percentage !== undefined) {\n\t\tconst modifiedColor = isAlphaBlend\n\t\t\t? base.blenda(color.color, percentage, colorspace)\n\t\t: base.blend(color.color, percentage, colorspace);\n\n\t\treturn modifiedColor;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid blend() adjuster)`);\n\t}\n}\n\n// return a transformed color using a contrast adjustment\nfunction transformContrastAdjuster(base, node, opts) {\n\tconst [percentage] = transformArgsByParams(node, [\n\t\t// <percentage>\n\t\t[transformPercentage]\n\t]);\n\n\tif (percentage !== undefined) {\n\t\tconst modifiedColor = base.contrast(percentage);\n\n\t\treturn modifiedColor;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid contrast() adjuster)`);\n\t}\n}\n\n// return a transformed color using a hue adjustment\nfunction transformHueAdjuster(base, node, opts) {\n\tconst [operatorOrHue, adjustment] = transformArgsByParams(node, [\n\t\t// [ + | - | * ] <angle>\n\t\t[transformMinusPlusTimesOperator, transformHue],\n\t\t// <angle>\n\t\t[transformHue]\n\t]);\n\n\tif (operatorOrHue !== undefined) {\n\t\tconst existingHue = base.hue();\n\n\t\tconst modifiedValue = adjustment !== undefined\n\t\t\t? operatorOrHue === '+'\n\t\t\t\t? existingHue + Number(adjustment)\n\t\t\t: operatorOrHue === '-'\n\t\t\t\t? existingHue - Number(adjustment)\n\t\t\t: operatorOrHue === '*'\n\t\t\t\t? existingHue * Number(adjustment)\n\t\t\t: Number(adjustment)\n\t\t: Number(operatorOrHue);\n\n\t\treturn base.hue(modifiedValue);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid hue() function)`);\n\t}\n}\n\n// [ b | blackness | l | lightness | s | saturation | w | whiteness ]( [ + | - | * ]? <percentage> )\nfunction transformBlacknessLightnessSaturationWhitenessAdjuster(base, node, opts) {\n\tconst channel = node.value.toLowerCase().replace(/^b$/, 'blackness').replace(/^l$/, 'lightness').replace(/^s$/, 'saturation').replace(/^w$/, 'whiteness');\n\tconst [operatorOrValue, adjustment] = transformArgsByParams(node, [\n\t\t[transformMinusPlusTimesOperator, transformPercentage],\n\t\t[transformPercentage]\n\t]);\n\n\tif (operatorOrValue !== undefined) {\n\t\tconst existingValue = base[channel]();\n\n\t\tconst modifiedValue = adjustment !== undefined\n\t\t\t? operatorOrValue === '+'\n\t\t\t\t? existingValue + Number(adjustment)\n\t\t\t: operatorOrValue === '-'\n\t\t\t\t? existingValue - Number(adjustment)\n\t\t\t: operatorOrValue === '*'\n\t\t\t\t? existingValue * Number(adjustment)\n\t\t\t: Number(adjustment)\n\t\t: Number(operatorOrValue);\n\n\t\treturn base[channel](modifiedValue);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid ${channel}() function)`);\n\t}\n}\n\n// return a transformed color using shade/tint adjustments\nfunction transformShadeTintAdjuster(base, node, opts) {\n\tconst channel = node.value.toLowerCase();\n\tconst [percentage] = transformArgsByParams(node, [\n\t\t// [ shade | tint ]( <percentage> )\n\t\t[transformPercentage]\n\t]);\n\n\tif (percentage !== undefined) {\n\t\tconst modifiedValue = Number(percentage);\n\n\t\treturn base[channel](modifiedValue);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected valid ${channel}() arguments`);\n\t}\n}\n\n/* Argument Transforms\n/* ========================================================================== */\n\n// return a transformed color space\nfunction transformColorSpace(node, opts) {\n\tif (isColorSpace(node)) {\n\t\t// [ hsl | hwb | rgb ]\n\t\treturn node.value;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid color space)`);\n\t}\n}\n\n// return a transformed alpha value\nfunction transformAlpha(node, opts) {\n\tif (isNumber(node)) {\n\t\t// <number>\n\t\treturn Number(parser.unit(node.value).number) * 100;\n\t} else if (isPercentage(node)) {\n\t\t// <percentage>\n\t\treturn transformPercentage(node, opts);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid alpha value)`);\n\t}\n}\n\n// return a transformed rgb number\nfunction transformRGBNumber(node, opts) {\n\tif (isNumber(node)) {\n\t\t// <number>\n\t\treturn node.value / 2.55;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid RGB value)`);\n\t}\n}\n\n// return a transformed hue\nfunction transformHue(node, opts) {\n\tif (isHue(node)) {\n\t\t// <hue> = <number> | <angle>\n\t\tconst unit = parser.unit(node.value).unit.toLowerCase();\n\n\t\tif (unit === 'grad') {\n\t\t\t// if <angle> = <gradian> (400 per circle)\n\t\t\treturn convertGtoD(Number(parser.unit(node.value).number));\n\t\t} else if (unit === 'rad') {\n\t\t\t// if <angle> = <radian> (2π per circle)\n\t\t\treturn convertRtoD(Number(parser.unit(node.value).number));\n\t\t} else if (unit === 'turn') {\n\t\t\t// if <angle> = <turn> (1 per circle)\n\t\t\treturn convertTtoD(Number(parser.unit(node.value).number));\n\t\t} else {\n\t\t\t// if <angle> = [ <degree> | <number> ] (360 per circle)\n\t\t\treturn convertDtoD(Number(parser.unit(node.value).number));\n\t\t}\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid hue`);\n\t}\n}\n\n// return a transformed percentage\nfunction transformPercentage(node, opts) {\n\tif (isPercentage(node)) {\n\t\t// <percentage>\n\t\treturn Number(parser.unit(node.value).number);\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid percentage`);\n\t}\n}\n\n// return a transformed minus-plus operator\nfunction transformMinusPlusOperator(node, opts) {\n\tif (isMinusPlusOperator(node)) {\n\t\t// [ - | + ]\n\t\treturn node.value;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a plus or minus operator`);\n\t}\n}\n\n// return a transformed times operator\nfunction transformTimesOperator(node, opts) {\n\tif (isTimesOperator(node)) {\n\t\t// [ * ]\n\t\treturn node.value;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a times operator`);\n\t}\n}\n\n// return a transformed minus-plus-times operator\nfunction transformMinusPlusTimesOperator(node, opts) {\n\tif (isMinusPlusTimesOperator(node)) {\n\t\t// [ - | + | * ]\n\t\treturn node.value;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a plus, minus, or times operator`);\n\t}\n}\n\n/* Additional transforms\n/* ========================================================================== */\n\nfunction transformWord(node, opts) {\n\tif (isWord(node)) {\n\t\treturn node.value;\n\t} else {\n\t\treturn manageUnresolved(node, opts, node.value, `Expected a valid word`);\n\t}\n}\n\nfunction transformNode(node) {\n\treturn Object(node);\n}\n\n/* Transform helper\n/* ========================================================================== */\n\n// return the first set of transformed arguments allowable by the parameters\nfunction transformArgsByParams(node, params) {\n\tconst nodes = (node.nodes || []).filter((node) => {\n\t\treturn node.type !== 'space' && node.type !== 'comment';\n\t});\n\tconst opts = { unresolved: 'ignore' };\n\n\treturn params.map((param) => {\n\t\treturn nodes.map((childNode, index) => {\n\t\t\treturn typeof param[index] === 'function' ? param[index](childNode, opts) : undefined\n\t\t}).filter((child) => {\n\t\t\treturn typeof child !== 'boolean'\n\t\t})\n\t}).filter((param) => {\n\t\treturn param.every((result) => {\n\t\t\treturn result !== undefined\n\t\t})\n\t})[0] || [];\n}\n\n/* Variable validators\n/* ========================================================================== */\n\n// return whether the node is a var function\nfunction isVariable(node) {\n\t// var()\n\treturn Object(node).type === 'function' && varMatch.test(node.value);\n}\n\n/* Adjustment validators\n/* ========================================================================== */\n\n// return whether the node is an a/alpha/blue/green/red adjuster\nfunction isAlphaBlueGreenRedAdjuster(node) {\n\t// [ a(), alpha(), blue(), green(), red() ]\n\treturn Object(node).type === 'function' && alphaBlueGreenRedMatch.test(node.value);\n}\n\n// return whether the node is an rgb adjuster\nfunction isRGBAdjuster(node) {\n\treturn Object(node).type === 'function' && rgbMatch.test(node.value);\n}\n\n// return whether the node is a hue adjuster\nfunction isHueAdjuster(node) {\n\t// [ h() | hue() ]\n\treturn Object(node).type === 'function' && hueMatch.test(node.value);\n}\n\n// return whether the node is a blackness/lightness/saturation/whiteness adjuster\nfunction isBlacknessLightnessSaturationWhitenessAdjuster(node) {\n\t// [ b() | blackness() | l() | lightness() | s() | saturation() | w() | whiteness() ]\n\treturn Object(node).type === 'function' && blacknessLightnessSaturationWhitenessMatch.test(node.value);\n}\n\n// return whether the node is a shade/tint adjuster\nfunction isShadeTintAdjuster(node) {\n\t// [ shade() | tint() ]\n\treturn Object(node).type === 'function' && shadeTintMatch.test(node.value);\n}\n\n// return whether the node is a blend adjuster\nfunction isBlendAdjuster(node) {\n\t// [ blend(), blenda() ]\n\treturn Object(node).type === 'function' && blendMatch.test(node.value);\n}\n\n// return whether the node is a contrast adjuster\nfunction isContrastAdjuster(node) {\n\t// [ contrast() ]\n\treturn Object(node).type === 'function' && contrastMatch.test(node.value);\n}\n\n/* Color validators\n/* ========================================================================== */\n\n// return whether the node is an rgb/rgba color function\nfunction isRGBFunction(node) {\n\t// [ rgb(), rgba() ]\n\treturn Object(node).type === 'function' && rgbaMatch.test(node.value);\n}\n\n// return whether the node is an hsl color function\nfunction isHSLFunction(node) {\n\t// [ hsl(), hsla() ]\n\treturn Object(node).type === 'function' && hslaMatch.test(node.value);\n}\n\n// return whether the node is an hwb color function\nfunction isHWBFunction(node) {\n\t// hwb()\n\treturn Object(node).type === 'function' && hwbMatch.test(node.value);\n}\n\n// return whether the node is a color-mod function\nfunction isColorModFunction(node) {\n\t// color-mod()\n\treturn Object(node).type === 'function' && colorModMatch.test(node.value);\n}\n\n// return whether the node is a valid named-color\nfunction isNamedColor(node) {\n\treturn Object(node).type === 'word' && Boolean(convertNtoRGB(node.value));\n}\n\n// return whether the node is a valid hex color\nfunction isHexColor(node) {\n\t// #<hex-color>{3,4,6,8}\n\treturn Object(node).type === 'word' && hexColorMatch.test(node.value);\n}\n\n// return whether the node is a valid color space\nfunction isColorSpace(node) {\n\t// [ hsl | hwb | rgb ]\n\treturn Object(node).type === 'word' && colorSpaceMatch.test(node.value);\n}\n\n/* Additional validators\n/* ========================================================================== */\n\n// return whether the hue value is valid\nfunction isHue(node) {\n\tif (Object(node).type !== 'word') {\n\t\treturn false;\n\t}\n\n\tconst parsedNumber = parser.unit(node.value);\n\treturn parsedNumber && hueUnitMatch.test(parsedNumber.unit);\n}\n\n// return whether the comma is valid\nfunction isComma(node) {\n\treturn Object(node).type === 'div' && node.value === ',';\n}\n\n// return whether the slash operator is valid\nfunction isSlash(node) {\n\treturn Object(node).type === 'div' && node.value === '/';\n}\n\n// return whether the number is valid\nfunction isNumber(node) {\n\tif (Object(node).type !== 'word') {\n\t\treturn false;\n\t}\n\n\tconst parsedNumber = parser.unit(node.value);\n\treturn parsedNumber && parsedNumber.unit === '';\n}\n\n// return whether the mind-plus operator is valid\nfunction isMinusPlusOperator(node) {\n\treturn Object(node).type === 'word' && minusPlusMatch.test(node.value);\n}\n\n// return whether the minus-plus-times operator is valid\nfunction isMinusPlusTimesOperator(node) {\n\treturn Object(node).type === 'word' && minusPlusTimesMatch.test(node.value);\n}\n\n// return whether the times operator is valid\nfunction isTimesOperator(node) {\n\treturn Object(node).type === 'word' && timesMatch.test(node.value);\n}\n\n// return whether the percentage is valid\nfunction isPercentage(node) {\n\tif (Object(node).type !== 'word') {\n\t\treturn false;\n\t}\n\n\tconst parsedNumber = parser.unit(node.value);\n\treturn parsedNumber && (parsedNumber.unit === '%' || parseFloat(parsedNumber.number) === 0);\n}\n\n// return whether the node is a word\nfunction isWord(node) {\n\t// <word>\n\treturn Object(node).type === 'word';\n}\n\n/* Matchers\n/* ========================================================================== */\n\nconst alphaMatch = /^a(lpha)?$/i;\nconst alphaBlueGreenRedMatch = /^(a(lpha)?|blue|green|red)$/i;\nconst blacknessLightnessSaturationWhitenessMatch = /^(b(lackness)?|l(ightness)?|s(aturation)?|w(hiteness)?)$/i;\nconst blendMatch = /^blenda?$/i;\nconst colorModMatch = /^color-mod$/i;\nconst colorSpaceMatch = /^(hsl|hwb|rgb)$/i;\nconst contrastMatch = /^contrast$/i;\nconst hexColorMatch = /^#(?:([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?)$/i;\nconst hslaMatch = /^hsla?$/i;\nconst hueUnitMatch = /^(deg|grad|rad|turn)?$/i;\nconst hueMatch = /^h(ue)?$/i;\nconst hwbMatch = /^hwb$/i;\nconst minusPlusMatch = /^[+-]$/;\nconst minusPlusTimesMatch = /^[*+-]$/;\nconst rgbMatch = /^rgb$/i;\nconst rgbaMatch = /^rgba?$/i;\nconst shadeTintMatch = /^(shade|tint)$/i;\nconst varMatch = /^var$/i;\nconst looseVarMatch = /(^|[^\\w-])var\\(/i;\nconst timesMatch = /^[*]$/;\n","import getCustomProperties from './lib/get-custom-properties';\nimport importCustomPropertiesFromSources from './lib/import-from';\nimport parser from 'postcss-value-parser';\nimport transformAST from './lib/transform';\n\nmodule.exports = (opts = {}) => {\n\t// how unresolved functions and arguments should be handled (default: \"throw\")\n\tconst unresolvedOpt = String(Object(opts).unresolved || 'throw').toLowerCase();\n\n\t// how transformed colors will be produced in CSS\n\tconst stringifierOpt = Object(opts).stringifier || (color => color.toLegacy());\n\n\t// sources to import custom selectors from\n\tconst importFrom = [].concat(Object(opts).importFrom || []);\n\n\t// whether var() within color-mod() should use Custom Properties or var() fallback\n\tconst transformVarsOpt = 'transformVars' in Object(opts) ? opts.transformVars : true;\n\n\t// promise any custom selectors are imported\n\tconst customPropertiesPromise = importCustomPropertiesFromSources(importFrom);\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-color-mod-function',\n\t\tasync Once (root, { result }) {\n\t\t\tconst customProperties = Object.assign(\n\t\t\t\tawait customPropertiesPromise,\n\t\t\t\tgetCustomProperties(root, { preserve: true })\n\t\t\t);\n\n\t\t\troot.walkDecls(decl => {\n\t\t\t\tconst originalValue = decl.value;\n\n\t\t\t\tif (colorModFunctionMatch.test(originalValue)) {\n\t\t\t\t\tconst ast = parser(originalValue);\n\n\t\t\t\t\ttransformAST(ast, {\n\t\t\t\t\t\tunresolved: unresolvedOpt,\n\t\t\t\t\t\tstringifier: stringifierOpt,\n\t\t\t\t\t\ttransformVars: transformVarsOpt,\n\t\t\t\t\t\tdecl,\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tcustomProperties\n\t\t\t\t\t});\n\n\t\t\t\t\tconst modifiedValue = parser.stringify(ast);\n\n\t\t\t\t\tif (originalValue !== modifiedValue) {\n\t\t\t\t\t\tdecl.value = modifiedValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n\nmodule.exports.postcss = true;\n\nconst colorModFunctionMatch = /(^|[^\\w-])color-mod\\(/i;\n"],"names":["valueParser","hexColorMatch","rgb2hue","hsl2rgb","hwb2rgb","rgb2hsl","hwb2hsl","rgb2hwb","hsl2hwb"],"mappings":"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"}