UNPKG

storybook

Version:

Storybook: Develop, document, and test UI components in isolation

837 lines (753 loc) • 31.3 kB
import { _extends } from "./chunk-CHUV5WSW.js"; // ../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js function _assertThisInitialized(e) { if (e === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } // ../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) { return t2.__proto__ = e2, t2; }, _setPrototypeOf(t, e); } // ../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); } // ../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t2) { return t2.__proto__ || Object.getPrototypeOf(t2); }, _getPrototypeOf(t); } // ../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js function _isNativeFunction(t) { try { return Function.toString.call(t).indexOf("[native code]") !== -1; } catch { return typeof t == "function"; } } // ../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); } catch { } return (_isNativeReflectConstruct = function() { return !!t; })(); } // ../node_modules/@babel/runtime/helpers/esm/construct.js function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } // ../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js function _wrapNativeSuper(t) { var r = typeof Map == "function" ? /* @__PURE__ */ new Map() : void 0; return _wrapNativeSuper = function(t2) { if (t2 === null || !_isNativeFunction(t2)) return t2; if (typeof t2 != "function") throw new TypeError("Super expression must either be null or a function"); if (r !== void 0) { if (r.has(t2)) return r.get(t2); r.set(t2, Wrapper); } function Wrapper() { return _construct(t2, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t2.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t2); }, _wrapNativeSuper(t); } // ../node_modules/polished/dist/polished.esm.js var ERRORS = { 1: `Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }). `, 2: `Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }). `, 3: `Passed an incorrect argument to a color function, please pass a string representation of a color. `, 4: `Couldn't generate valid rgb string from %s, it returned %s. `, 5: `Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation. `, 6: `Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }). `, 7: `Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }). `, 8: `Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object. `, 9: `Please provide a number of steps to the modularScale helper. `, 10: `Please pass a number or one of the predefined scales to the modularScale helper as the ratio. `, 11: `Invalid value passed as base to modularScale, expected number or em string but got "%s" `, 12: `Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead. `, 13: `Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead. `, 14: `Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12. `, 15: `Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12. `, 16: `You must provide a template to this method. `, 17: `You passed an unsupported selector state to this method. `, 18: `minScreen and maxScreen must be provided as stringified numbers with the same units. `, 19: `fromSize and toSize must be provided as stringified numbers with the same units. `, 20: `expects either an array of objects or a single object with the properties prop, fromSize, and toSize. `, 21: "expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n", 22: "expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n", 23: `fontFace expects a name of a font-family. `, 24: `fontFace expects either the path to the font file(s) or a name of a local copy. `, 25: `fontFace expects localFonts to be an array. `, 26: `fontFace expects fileFormats to be an array. `, 27: `radialGradient requries at least 2 color-stops to properly render. `, 28: `Please supply a filename to retinaImage() as the first argument. `, 29: `Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'. `, 30: "Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n", 31: `The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation `, 32: `To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s']) To pass a single animation please supply them in simple values, e.g. animation('rotate', '2s') `, 33: `The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation `, 34: `borderRadius expects a radius value as a string or number as the second argument. `, 35: `borderRadius expects one of "top", "bottom", "left" or "right" as the first argument. `, 36: `Property must be a string value. `, 37: `Syntax Error at %s. `, 38: `Formula contains a function that needs parentheses at %s. `, 39: `Formula is missing closing parenthesis at %s. `, 40: `Formula has too many closing parentheses at %s. `, 41: `All values in a formula must have the same unit or be unitless. `, 42: `Please provide a number of steps to the modularScale helper. `, 43: `Please pass a number or one of the predefined scales to the modularScale helper as the ratio. `, 44: `Invalid value passed as base to modularScale, expected number or em/rem string but got %s. `, 45: `Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object. `, 46: `Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object. `, 47: `minScreen and maxScreen must be provided as stringified numbers with the same units. `, 48: `fromSize and toSize must be provided as stringified numbers with the same units. `, 49: `Expects either an array of objects or a single object with the properties prop, fromSize, and toSize. `, 50: `Expects the objects in the first argument array to have the properties prop, fromSize, and toSize. `, 51: `Expects the first argument object to have the properties prop, fromSize, and toSize. `, 52: `fontFace expects either the path to the font file(s) or a name of a local copy. `, 53: `fontFace expects localFonts to be an array. `, 54: `fontFace expects fileFormats to be an array. `, 55: `fontFace expects a name of a font-family. `, 56: `linearGradient requries at least 2 color-stops to properly render. `, 57: `radialGradient requries at least 2 color-stops to properly render. `, 58: `Please supply a filename to retinaImage() as the first argument. `, 59: `Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'. `, 60: "Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n", 61: `Property must be a string value. `, 62: `borderRadius expects a radius value as a string or number as the second argument. `, 63: `borderRadius expects one of "top", "bottom", "left" or "right" as the first argument. `, 64: `The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation. `, 65: `To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s'). `, 66: `The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation. `, 67: `You must provide a template to this method. `, 68: `You passed an unsupported selector state to this method. `, 69: `Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead. `, 70: `Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead. `, 71: `Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12. `, 72: `Passed invalid base value %s to %s(), please pass a value like "12px" or 12. `, 73: `Please provide a valid CSS variable. `, 74: `CSS variable not found and no default was provided. `, 75: `important requires a valid style object, got a %s instead. `, 76: `fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen. `, 77: `remToPx expects a value in "rem" but you provided it in "%s". `, 78: `base must be set in "px" or "%" but you set it in "%s". ` }; function format() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; var a = args[0], b = [], c; for (c = 1; c < args.length; c += 1) b.push(args[c]); return b.forEach(function(d) { a = a.replace(/%[a-z]/, d); }), a; } var PolishedError = (function(_Error) { _inheritsLoose(PolishedError2, _Error); function PolishedError2(code) { var _this; if (process.env.NODE_ENV === "production") _this = _Error.call(this, "An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#" + code + " for more information.") || this; else { for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) args[_key2 - 1] = arguments[_key2]; _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this; } return _assertThisInitialized(_this); } return PolishedError2; })(_wrapNativeSuper(Error)); function endsWith(string, suffix) { return string.substr(-suffix.length) === suffix; } var cssRegex$1 = /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/; function stripUnit(value) { if (typeof value != "string") return value; var matchedValue = value.match(cssRegex$1); return matchedValue ? parseFloat(value) : value; } var pxtoFactory = function(to) { return function(pxval, base) { base === void 0 && (base = "16px"); var newPxval = pxval, newBase = base; if (typeof pxval == "string") { if (!endsWith(pxval, "px")) throw new PolishedError(69, to, pxval); newPxval = stripUnit(pxval); } if (typeof base == "string") { if (!endsWith(base, "px")) throw new PolishedError(70, to, base); newBase = stripUnit(base); } if (typeof newPxval == "string") throw new PolishedError(71, pxval, to); if (typeof newBase == "string") throw new PolishedError(72, base, to); return "" + newPxval / newBase + to; }; }, pixelsto = pxtoFactory, em = pixelsto("em"); var rem = pixelsto("rem"); function colorToInt(color) { return Math.round(color * 255); } function convertToInt(red, green, blue) { return colorToInt(red) + "," + colorToInt(green) + "," + colorToInt(blue); } function hslToRgb(hue, saturation, lightness, convert) { if (convert === void 0 && (convert = convertToInt), saturation === 0) return convert(lightness, lightness, lightness); var huePrime = (hue % 360 + 360) % 360 / 60, chroma = (1 - Math.abs(2 * lightness - 1)) * saturation, secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1)), red = 0, green = 0, blue = 0; huePrime >= 0 && huePrime < 1 ? (red = chroma, green = secondComponent) : huePrime >= 1 && huePrime < 2 ? (red = secondComponent, green = chroma) : huePrime >= 2 && huePrime < 3 ? (green = chroma, blue = secondComponent) : huePrime >= 3 && huePrime < 4 ? (green = secondComponent, blue = chroma) : huePrime >= 4 && huePrime < 5 ? (red = secondComponent, blue = chroma) : huePrime >= 5 && huePrime < 6 && (red = chroma, blue = secondComponent); var lightnessModification = lightness - chroma / 2, finalRed = red + lightnessModification, finalGreen = green + lightnessModification, finalBlue = blue + lightnessModification; return convert(finalRed, finalGreen, finalBlue); } var namedColorMap = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000", blanchedalmond: "ffebcd", blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkgrey: "a9a9a9", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkslategrey: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dimgrey: "696969", dodgerblue: "1e90ff", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", grey: "808080", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgray: "d3d3d3", lightgreen: "90ee90", lightgrey: "d3d3d3", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslategray: "789", lightslategrey: "789", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "0f0", limegreen: "32cd32", linen: "faf0e6", magenta: "f0f", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370db", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "db7093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", rebeccapurple: "639", red: "f00", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", slategrey: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", wheat: "f5deb3", white: "fff", whitesmoke: "f5f5f5", yellow: "ff0", yellowgreen: "9acd32" }; function nameToHex(color) { if (typeof color != "string") return color; var normalizedColorName = color.toLowerCase(); return namedColorMap[normalizedColorName] ? "#" + namedColorMap[normalizedColorName] : color; } var hexRegex = /^#[a-fA-F0-9]{6}$/, hexRgbaRegex = /^#[a-fA-F0-9]{8}$/, reducedHexRegex = /^#[a-fA-F0-9]{3}$/, reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/, rgbRegex = /^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i, rgbaRegex = /^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i, hslRegex = /^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i, hslaRegex = /^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i; function parseToRgb(color) { if (typeof color != "string") throw new PolishedError(3); var normalizedColor = nameToHex(color); if (normalizedColor.match(hexRegex)) return { red: parseInt("" + normalizedColor[1] + normalizedColor[2], 16), green: parseInt("" + normalizedColor[3] + normalizedColor[4], 16), blue: parseInt("" + normalizedColor[5] + normalizedColor[6], 16) }; if (normalizedColor.match(hexRgbaRegex)) { var alpha = parseFloat((parseInt("" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2)); return { red: parseInt("" + normalizedColor[1] + normalizedColor[2], 16), green: parseInt("" + normalizedColor[3] + normalizedColor[4], 16), blue: parseInt("" + normalizedColor[5] + normalizedColor[6], 16), alpha }; } if (normalizedColor.match(reducedHexRegex)) return { red: parseInt("" + normalizedColor[1] + normalizedColor[1], 16), green: parseInt("" + normalizedColor[2] + normalizedColor[2], 16), blue: parseInt("" + normalizedColor[3] + normalizedColor[3], 16) }; if (normalizedColor.match(reducedRgbaHexRegex)) { var _alpha = parseFloat((parseInt("" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2)); return { red: parseInt("" + normalizedColor[1] + normalizedColor[1], 16), green: parseInt("" + normalizedColor[2] + normalizedColor[2], 16), blue: parseInt("" + normalizedColor[3] + normalizedColor[3], 16), alpha: _alpha }; } var rgbMatched = rgbRegex.exec(normalizedColor); if (rgbMatched) return { red: parseInt("" + rgbMatched[1], 10), green: parseInt("" + rgbMatched[2], 10), blue: parseInt("" + rgbMatched[3], 10) }; var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50)); if (rgbaMatched) return { red: parseInt("" + rgbaMatched[1], 10), green: parseInt("" + rgbaMatched[2], 10), blue: parseInt("" + rgbaMatched[3], 10), alpha: parseFloat("" + rgbaMatched[4]) > 1 ? parseFloat("" + rgbaMatched[4]) / 100 : parseFloat("" + rgbaMatched[4]) }; var hslMatched = hslRegex.exec(normalizedColor); if (hslMatched) { var hue = parseInt("" + hslMatched[1], 10), saturation = parseInt("" + hslMatched[2], 10) / 100, lightness = parseInt("" + hslMatched[3], 10) / 100, rgbColorString = "rgb(" + hslToRgb(hue, saturation, lightness) + ")", hslRgbMatched = rgbRegex.exec(rgbColorString); if (!hslRgbMatched) throw new PolishedError(4, normalizedColor, rgbColorString); return { red: parseInt("" + hslRgbMatched[1], 10), green: parseInt("" + hslRgbMatched[2], 10), blue: parseInt("" + hslRgbMatched[3], 10) }; } var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50)); if (hslaMatched) { var _hue = parseInt("" + hslaMatched[1], 10), _saturation = parseInt("" + hslaMatched[2], 10) / 100, _lightness = parseInt("" + hslaMatched[3], 10) / 100, _rgbColorString = "rgb(" + hslToRgb(_hue, _saturation, _lightness) + ")", _hslRgbMatched = rgbRegex.exec(_rgbColorString); if (!_hslRgbMatched) throw new PolishedError(4, normalizedColor, _rgbColorString); return { red: parseInt("" + _hslRgbMatched[1], 10), green: parseInt("" + _hslRgbMatched[2], 10), blue: parseInt("" + _hslRgbMatched[3], 10), alpha: parseFloat("" + hslaMatched[4]) > 1 ? parseFloat("" + hslaMatched[4]) / 100 : parseFloat("" + hslaMatched[4]) }; } throw new PolishedError(5); } function rgbToHsl(color) { var red = color.red / 255, green = color.green / 255, blue = color.blue / 255, max = Math.max(red, green, blue), min = Math.min(red, green, blue), lightness = (max + min) / 2; if (max === min) return color.alpha !== void 0 ? { hue: 0, saturation: 0, lightness, alpha: color.alpha } : { hue: 0, saturation: 0, lightness }; var hue, delta = max - min, saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min); switch (max) { case red: hue = (green - blue) / delta + (green < blue ? 6 : 0); break; case green: hue = (blue - red) / delta + 2; break; default: hue = (red - green) / delta + 4; break; } return hue *= 60, color.alpha !== void 0 ? { hue, saturation, lightness, alpha: color.alpha } : { hue, saturation, lightness }; } function parseToHsl(color) { return rgbToHsl(parseToRgb(color)); } var reduceHexValue = function(value) { return value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6] ? "#" + value[1] + value[3] + value[5] : value; }, reduceHexValue$1 = reduceHexValue; function numberToHex(value) { var hex = value.toString(16); return hex.length === 1 ? "0" + hex : hex; } function colorToHex(color) { return numberToHex(Math.round(color * 255)); } function convertToHex(red, green, blue) { return reduceHexValue$1("#" + colorToHex(red) + colorToHex(green) + colorToHex(blue)); } function hslToHex(hue, saturation, lightness) { return hslToRgb(hue, saturation, lightness, convertToHex); } function hsl(value, saturation, lightness) { if (typeof value == "number" && typeof saturation == "number" && typeof lightness == "number") return hslToHex(value, saturation, lightness); if (typeof value == "object" && saturation === void 0 && lightness === void 0) return hslToHex(value.hue, value.saturation, value.lightness); throw new PolishedError(1); } function hsla(value, saturation, lightness, alpha) { if (typeof value == "number" && typeof saturation == "number" && typeof lightness == "number" && typeof alpha == "number") return alpha >= 1 ? hslToHex(value, saturation, lightness) : "rgba(" + hslToRgb(value, saturation, lightness) + "," + alpha + ")"; if (typeof value == "object" && saturation === void 0 && lightness === void 0 && alpha === void 0) return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : "rgba(" + hslToRgb(value.hue, value.saturation, value.lightness) + "," + value.alpha + ")"; throw new PolishedError(2); } function rgb(value, green, blue) { if (typeof value == "number" && typeof green == "number" && typeof blue == "number") return reduceHexValue$1("#" + numberToHex(value) + numberToHex(green) + numberToHex(blue)); if (typeof value == "object" && green === void 0 && blue === void 0) return reduceHexValue$1("#" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue)); throw new PolishedError(6); } function rgba(firstValue, secondValue, thirdValue, fourthValue) { if (typeof firstValue == "string" && typeof secondValue == "number") { var rgbValue = parseToRgb(firstValue); return "rgba(" + rgbValue.red + "," + rgbValue.green + "," + rgbValue.blue + "," + secondValue + ")"; } else { if (typeof firstValue == "number" && typeof secondValue == "number" && typeof thirdValue == "number" && typeof fourthValue == "number") return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : "rgba(" + firstValue + "," + secondValue + "," + thirdValue + "," + fourthValue + ")"; if (typeof firstValue == "object" && secondValue === void 0 && thirdValue === void 0 && fourthValue === void 0) return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : "rgba(" + firstValue.red + "," + firstValue.green + "," + firstValue.blue + "," + firstValue.alpha + ")"; } throw new PolishedError(7); } var isRgb = function(color) { return typeof color.red == "number" && typeof color.green == "number" && typeof color.blue == "number" && (typeof color.alpha != "number" || typeof color.alpha > "u"); }, isRgba = function(color) { return typeof color.red == "number" && typeof color.green == "number" && typeof color.blue == "number" && typeof color.alpha == "number"; }, isHsl = function(color) { return typeof color.hue == "number" && typeof color.saturation == "number" && typeof color.lightness == "number" && (typeof color.alpha != "number" || typeof color.alpha > "u"); }, isHsla = function(color) { return typeof color.hue == "number" && typeof color.saturation == "number" && typeof color.lightness == "number" && typeof color.alpha == "number"; }; function toColorString(color) { if (typeof color != "object") throw new PolishedError(8); if (isRgba(color)) return rgba(color); if (isRgb(color)) return rgb(color); if (isHsla(color)) return hsla(color); if (isHsl(color)) return hsl(color); throw new PolishedError(8); } function curried(f, length, acc) { return function() { var combined = acc.concat(Array.prototype.slice.call(arguments)); return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined); }; } function curry(f) { return curried(f, f.length, []); } function adjustHue(degree, color) { if (color === "transparent") return color; var hslColor = parseToHsl(color); return toColorString(_extends({}, hslColor, { hue: hslColor.hue + parseFloat(degree) })); } var curriedAdjustHue = curry(adjustHue); function guard(lowerBoundary, upperBoundary, value) { return Math.max(lowerBoundary, Math.min(upperBoundary, value)); } function darken(amount, color) { if (color === "transparent") return color; var hslColor = parseToHsl(color); return toColorString(_extends({}, hslColor, { lightness: guard(0, 1, hslColor.lightness - parseFloat(amount)) })); } var curriedDarken = curry(darken), curriedDarken$1 = curriedDarken; function desaturate(amount, color) { if (color === "transparent") return color; var hslColor = parseToHsl(color); return toColorString(_extends({}, hslColor, { saturation: guard(0, 1, hslColor.saturation - parseFloat(amount)) })); } var curriedDesaturate = curry(desaturate); function lighten(amount, color) { if (color === "transparent") return color; var hslColor = parseToHsl(color); return toColorString(_extends({}, hslColor, { lightness: guard(0, 1, hslColor.lightness + parseFloat(amount)) })); } var curriedLighten = curry(lighten), curriedLighten$1 = curriedLighten; function mix(weight, color, otherColor) { if (color === "transparent") return otherColor; if (otherColor === "transparent") return color; if (weight === 0) return otherColor; var parsedColor1 = parseToRgb(color), color1 = _extends({}, parsedColor1, { alpha: typeof parsedColor1.alpha == "number" ? parsedColor1.alpha : 1 }), parsedColor2 = parseToRgb(otherColor), color2 = _extends({}, parsedColor2, { alpha: typeof parsedColor2.alpha == "number" ? parsedColor2.alpha : 1 }), alphaDelta = color1.alpha - color2.alpha, x = parseFloat(weight) * 2 - 1, y = x * alphaDelta === -1 ? x : x + alphaDelta, z = 1 + x * alphaDelta, weight1 = (y / z + 1) / 2, weight2 = 1 - weight1, mixedColor = { red: Math.floor(color1.red * weight1 + color2.red * weight2), green: Math.floor(color1.green * weight1 + color2.green * weight2), blue: Math.floor(color1.blue * weight1 + color2.blue * weight2), alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight)) }; return rgba(mixedColor); } var curriedMix = curry(mix), mix$1 = curriedMix; function opacify(amount, color) { if (color === "transparent") return color; var parsedColor = parseToRgb(color), alpha = typeof parsedColor.alpha == "number" ? parsedColor.alpha : 1, colorWithAlpha = _extends({}, parsedColor, { alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100) }); return rgba(colorWithAlpha); } var curriedOpacify = curry(opacify), curriedOpacify$1 = curriedOpacify; function saturate(amount, color) { if (color === "transparent") return color; var hslColor = parseToHsl(color); return toColorString(_extends({}, hslColor, { saturation: guard(0, 1, hslColor.saturation + parseFloat(amount)) })); } var curriedSaturate = curry(saturate); function setHue(hue, color) { return color === "transparent" ? color : toColorString(_extends({}, parseToHsl(color), { hue: parseFloat(hue) })); } var curriedSetHue = curry(setHue); function setLightness(lightness, color) { return color === "transparent" ? color : toColorString(_extends({}, parseToHsl(color), { lightness: parseFloat(lightness) })); } var curriedSetLightness = curry(setLightness); function setSaturation(saturation, color) { return color === "transparent" ? color : toColorString(_extends({}, parseToHsl(color), { saturation: parseFloat(saturation) })); } var curriedSetSaturation = curry(setSaturation); function shade(percentage, color) { return color === "transparent" ? color : mix$1(parseFloat(percentage), "rgb(0, 0, 0)", color); } var curriedShade = curry(shade); function tint(percentage, color) { return color === "transparent" ? color : mix$1(parseFloat(percentage), "rgb(255, 255, 255)", color); } var curriedTint = curry(tint); function transparentize(amount, color) { if (color === "transparent") return color; var parsedColor = parseToRgb(color), alpha = typeof parsedColor.alpha == "number" ? parsedColor.alpha : 1, colorWithAlpha = _extends({}, parsedColor, { alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100) }); return rgba(colorWithAlpha); } var curriedTransparentize = curry(transparentize), curriedTransparentize$1 = curriedTransparentize; export { rgba, curriedDarken$1, curriedLighten$1, curriedOpacify$1, curriedTransparentize$1 };