import I from "../../@babel/runtime/helpers/esm/extends.js";
import A from "../../@babel/runtime/helpers/esm/assertThisInitialized.js";
import M from "../../@babel/runtime/helpers/esm/inheritsLoose.js";
import $ from "../../@babel/runtime/helpers/esm/wrapNativeSuper.js";
var D = {
  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 G() {
  for (var n = arguments.length, e = new Array(n), a = 0; a < n; a++)
    e[a] = arguments[a];
  var s = e[0], r = [], t;
  for (t = 1; t < e.length; t += 1)
    r.push(e[t]);
  return r.forEach(function(i) {
    s = s.replace(/%[a-z]/, i);
  }), s;
}
var d = /* @__PURE__ */ function(n) {
  M(e, n);
  function e(a) {
    var s;
    if (process.env.NODE_ENV === "production")
      s = n.call(this, "An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#" + a + " for more information.") || this;
    else {
      for (var r = arguments.length, t = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++)
        t[i - 1] = arguments[i];
      s = n.call(this, G.apply(void 0, [D[a]].concat(t))) || this;
    }
    return A(s);
  }
  return e;
}(/* @__PURE__ */ $(Error)), N = /--[\S]*/g;
function ue(n, e) {
  if (!n || !n.match(N))
    throw new d(73);
  var a;
  return typeof document < "u" && document.documentElement !== null && (a = getComputedStyle(document.documentElement).getPropertyValue(n)), a ? a.trim() : e;
}
function v(n) {
  return Math.round(n * 255);
}
function Y(n, e, a) {
  return v(n) + "," + v(e) + "," + v(a);
}
function b(n, e, a, s) {
  if (s === void 0 && (s = Y), e === 0)
    return s(a, a, a);
  var r = (n % 360 + 360) % 360 / 60, t = (1 - Math.abs(2 * a - 1)) * e, i = t * (1 - Math.abs(r % 2 - 1)), o = 0, f = 0, l = 0;
  r >= 0 && r < 1 ? (o = t, f = i) : r >= 1 && r < 2 ? (o = i, f = t) : r >= 2 && r < 3 ? (f = t, l = i) : r >= 3 && r < 4 ? (f = i, l = t) : r >= 4 && r < 5 ? (o = i, l = t) : r >= 5 && r < 6 && (o = t, l = i);
  var m = a - t / 2, h = o + m, u = f + m, c = l + m;
  return s(h, u, c);
}
var k = {
  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 L(n) {
  if (typeof n != "string") return n;
  var e = n.toLowerCase();
  return k[e] ? "#" + k[e] : n;
}
var O = /^#[a-fA-F0-9]{6}$/, B = /^#[a-fA-F0-9]{8}$/, J = /^#[a-fA-F0-9]{3}$/, K = /^#[a-fA-F0-9]{4}$/, y = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i, Q = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i, U = /^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i, W = /^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;
function P(n) {
  if (typeof n != "string")
    throw new d(3);
  var e = L(n);
  if (e.match(O))
    return {
      red: parseInt("" + e[1] + e[2], 16),
      green: parseInt("" + e[3] + e[4], 16),
      blue: parseInt("" + e[5] + e[6], 16)
    };
  if (e.match(B)) {
    var a = parseFloat((parseInt("" + e[7] + e[8], 16) / 255).toFixed(2));
    return {
      red: parseInt("" + e[1] + e[2], 16),
      green: parseInt("" + e[3] + e[4], 16),
      blue: parseInt("" + e[5] + e[6], 16),
      alpha: a
    };
  }
  if (e.match(J))
    return {
      red: parseInt("" + e[1] + e[1], 16),
      green: parseInt("" + e[2] + e[2], 16),
      blue: parseInt("" + e[3] + e[3], 16)
    };
  if (e.match(K)) {
    var s = parseFloat((parseInt("" + e[4] + e[4], 16) / 255).toFixed(2));
    return {
      red: parseInt("" + e[1] + e[1], 16),
      green: parseInt("" + e[2] + e[2], 16),
      blue: parseInt("" + e[3] + e[3], 16),
      alpha: s
    };
  }
  var r = y.exec(e);
  if (r)
    return {
      red: parseInt("" + r[1], 10),
      green: parseInt("" + r[2], 10),
      blue: parseInt("" + r[3], 10)
    };
  var t = Q.exec(e);
  if (t)
    return {
      red: parseInt("" + t[1], 10),
      green: parseInt("" + t[2], 10),
      blue: parseInt("" + t[3], 10),
      alpha: parseFloat("" + t[4])
    };
  var i = U.exec(e);
  if (i) {
    var o = parseInt("" + i[1], 10), f = parseInt("" + i[2], 10) / 100, l = parseInt("" + i[3], 10) / 100, m = "rgb(" + b(o, f, l) + ")", h = y.exec(m);
    if (!h)
      throw new d(4, e, m);
    return {
      red: parseInt("" + h[1], 10),
      green: parseInt("" + h[2], 10),
      blue: parseInt("" + h[3], 10)
    };
  }
  var u = W.exec(e);
  if (u) {
    var c = parseInt("" + u[1], 10), E = parseInt("" + u[2], 10) / 100, q = parseInt("" + u[3], 10) / 100, S = "rgb(" + b(c, E, q) + ")", g = y.exec(S);
    if (!g)
      throw new d(4, e, S);
    return {
      red: parseInt("" + g[1], 10),
      green: parseInt("" + g[2], 10),
      blue: parseInt("" + g[3], 10),
      alpha: parseFloat("" + u[4])
    };
  }
  throw new d(5);
}
function X(n) {
  var e = n.red / 255, a = n.green / 255, s = n.blue / 255, r = Math.max(e, a, s), t = Math.min(e, a, s), i = (r + t) / 2;
  if (r === t)
    return n.alpha !== void 0 ? {
      hue: 0,
      saturation: 0,
      lightness: i,
      alpha: n.alpha
    } : {
      hue: 0,
      saturation: 0,
      lightness: i
    };
  var o, f = r - t, l = i > 0.5 ? f / (2 - r - t) : f / (r + t);
  switch (r) {
    case e:
      o = (a - s) / f + (a < s ? 6 : 0);
      break;
    case a:
      o = (s - e) / f + 2;
      break;
    default:
      o = (e - a) / f + 4;
      break;
  }
  return o *= 60, n.alpha !== void 0 ? {
    hue: o,
    saturation: l,
    lightness: i,
    alpha: n.alpha
  } : {
    hue: o,
    saturation: l,
    lightness: i
  };
}
function F(n) {
  return X(P(n));
}
var w = function(e) {
  return e.length === 7 && e[1] === e[2] && e[3] === e[4] && e[5] === e[6] ? "#" + e[1] + e[3] + e[5] : e;
};
function p(n) {
  var e = n.toString(16);
  return e.length === 1 ? "0" + e : e;
}
function x(n) {
  return p(Math.round(n * 255));
}
function Z(n, e, a) {
  return w("#" + x(n) + x(e) + x(a));
}
function z(n, e, a) {
  return b(n, e, a, Z);
}
function V(n, e, a) {
  if (typeof n == "object" && e === void 0 && a === void 0)
    return z(n.hue, n.saturation, n.lightness);
  throw new d(1);
}
function _(n, e, a, s) {
  if (typeof n == "object" && e === void 0 && a === void 0 && s === void 0)
    return n.alpha >= 1 ? z(n.hue, n.saturation, n.lightness) : "rgba(" + b(n.hue, n.saturation, n.lightness) + "," + n.alpha + ")";
  throw new d(2);
}
function R(n, e, a) {
  if (typeof n == "number" && typeof e == "number" && typeof a == "number")
    return w("#" + p(n) + p(e) + p(a));
  if (typeof n == "object" && e === void 0 && a === void 0)
    return w("#" + p(n.red) + p(n.green) + p(n.blue));
  throw new d(6);
}
function ee(n, e, a, s) {
  if (typeof n == "string" && typeof e == "number") {
    var r = P(n);
    return "rgba(" + r.red + "," + r.green + "," + r.blue + "," + e + ")";
  } else if (typeof n == "object" && e === void 0 && a === void 0 && s === void 0)
    return n.alpha >= 1 ? R(n.red, n.green, n.blue) : "rgba(" + n.red + "," + n.green + "," + n.blue + "," + n.alpha + ")";
  throw new d(7);
}
var ne = function(e) {
  return typeof e.red == "number" && typeof e.green == "number" && typeof e.blue == "number" && (typeof e.alpha != "number" || typeof e.alpha > "u");
}, ae = function(e) {
  return typeof e.red == "number" && typeof e.green == "number" && typeof e.blue == "number" && typeof e.alpha == "number";
}, re = function(e) {
  return typeof e.hue == "number" && typeof e.saturation == "number" && typeof e.lightness == "number" && (typeof e.alpha != "number" || typeof e.alpha > "u");
}, te = function(e) {
  return typeof e.hue == "number" && typeof e.saturation == "number" && typeof e.lightness == "number" && typeof e.alpha == "number";
};
function T(n) {
  if (typeof n != "object") throw new d(8);
  if (ae(n)) return ee(n);
  if (ne(n)) return R(n);
  if (te(n)) return _(n);
  if (re(n)) return V(n);
  throw new d(8);
}
function j(n, e, a) {
  return function() {
    var r = a.concat(Array.prototype.slice.call(arguments));
    return r.length >= e ? n.apply(this, r) : j(n, e, r);
  };
}
function C(n) {
  return j(n, n.length, []);
}
function H(n, e, a) {
  return Math.max(n, Math.min(e, a));
}
function se(n, e) {
  if (e === "transparent") return e;
  var a = F(e);
  return T(I({}, a, {
    lightness: H(0, 1, a.lightness - parseFloat(n))
  }));
}
var pe = /* @__PURE__ */ C(se);
function ie(n, e) {
  if (e === "transparent") return e;
  var a = F(e);
  return T(I({}, a, {
    lightness: H(0, 1, a.lightness + parseFloat(n))
  }));
}
var me = /* @__PURE__ */ C(ie);
export {
  ue as cssVar,
  pe as darken,
  V as hsl,
  _ as hsla,
  me as lighten,
  F as parseToHsl,
  P as parseToRgb,
  R as rgb,
  ee as rgba,
  T as toColorString
};
