{
  "version": 3,
  "sources": ["../../src/duotone-picker/utils.ts"],
  "sourcesContent": ["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * Internal dependencies\n */\n\nextend([namesPlugin]);\n\n/**\n * Object representation for a color.\n *\n * @typedef {Object} RGBColor\n * @property {number} r Red component of the color in the range [0,1].\n * @property {number} g Green component of the color in the range [0,1].\n * @property {number} b Blue component of the color in the range [0,1].\n */\n\n/**\n * Calculate the brightest and darkest values from a color palette.\n *\n * @param palette Color palette for the theme.\n *\n * @return Tuple of the darkest color and brightest color.\n */\nexport function getDefaultColors(palette) {\n  // A default dark and light color are required.\n  if (!palette || palette.length < 2) {\n    return ['#000', '#fff'];\n  }\n  return palette.map(({\n    color\n  }) => ({\n    color,\n    brightness: colord(color).brightness()\n  })).reduce(([min, max], current) => {\n    return [current.brightness <= min.brightness ? current : min, current.brightness >= max.brightness ? current : max];\n  }, [{\n    brightness: 1,\n    color: ''\n  }, {\n    brightness: 0,\n    color: ''\n  }]).map(({\n    color\n  }) => color);\n}\n\n/**\n * Generate a duotone gradient from a list of colors.\n *\n * @param colors CSS color strings.\n * @param angle  CSS gradient angle.\n *\n * @return  CSS gradient string for the duotone swatch.\n */\nexport function getGradientFromCSSColors(colors = [], angle = '90deg') {\n  const l = 100 / colors.length;\n  const stops = colors.map((c, i) => `${c} ${i * l}%, ${c} ${(i + 1) * l}%`).join(', ');\n  return `linear-gradient( ${angle}, ${stops} )`;\n}\n\n/**\n * Convert a color array to an array of color stops.\n *\n * @param colors CSS colors array\n *\n * @return Color stop information.\n */\nexport function getColorStopsFromColors(colors) {\n  return colors.map((color, i) => ({\n    position: i * 100 / (colors.length - 1),\n    color\n  }));\n}\n\n/**\n * Convert a color stop array to an array colors.\n *\n * @param colorStops Color stop information.\n *\n * @return CSS colors array.\n */\nexport function getColorsFromColorStops(colorStops = []) {\n  return colorStops.map(({\n    color\n  }) => color);\n}"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAA+B;AAC/B,mBAAwB;AAAA,IAMxB,sBAAO,CAAC,aAAAA,OAAW,CAAC;AAkBb,SAAS,iBAAiB,SAAS;AAExC,MAAI,CAAC,WAAW,QAAQ,SAAS,GAAG;AAClC,WAAO,CAAC,QAAQ,MAAM;AAAA,EACxB;AACA,SAAO,QAAQ,IAAI,CAAC;AAAA,IAClB;AAAA,EACF,OAAO;AAAA,IACL;AAAA,IACA,gBAAY,sBAAO,KAAK,EAAE,WAAW;AAAA,EACvC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,YAAY;AAClC,WAAO,CAAC,QAAQ,cAAc,IAAI,aAAa,UAAU,KAAK,QAAQ,cAAc,IAAI,aAAa,UAAU,GAAG;AAAA,EACpH,GAAG,CAAC;AAAA,IACF,YAAY;AAAA,IACZ,OAAO;AAAA,EACT,GAAG;AAAA,IACD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT,CAAC,CAAC,EAAE,IAAI,CAAC;AAAA,IACP;AAAA,EACF,MAAM,KAAK;AACb;AAUO,SAAS,yBAAyB,SAAS,CAAC,GAAG,QAAQ,SAAS;AACrE,QAAM,IAAI,MAAM,OAAO;AACvB,QAAM,QAAQ,OAAO,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,IAAI;AACpF,SAAO,oBAAoB,KAAK,KAAK,KAAK;AAC5C;AASO,SAAS,wBAAwB,QAAQ;AAC9C,SAAO,OAAO,IAAI,CAAC,OAAO,OAAO;AAAA,IAC/B,UAAU,IAAI,OAAO,OAAO,SAAS;AAAA,IACrC;AAAA,EACF,EAAE;AACJ;AASO,SAAS,wBAAwB,aAAa,CAAC,GAAG;AACvD,SAAO,WAAW,IAAI,CAAC;AAAA,IACrB;AAAA,EACF,MAAM,KAAK;AACb;",
  "names": ["namesPlugin"]
}
