{"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/lib/convert/hslToRgb.ts","../src/lib/convert/rgbToHex.ts","../src/buildTints.ts","../src/color.ts","../src/config.ts","../src/lib/convert/hexToRgb.ts","../src/lib/convert/rgbToHsl.ts","../src/lib/clamp.ts","../src/lib/transform/darken.ts","../src/lib/interpolate.ts","../src/lib/transform/limit.ts","../src/lib/transform/screen.ts"],"sourcesContent":["import {ColorHueKey, ColorTintKey} from './types'\n\n/**\n * Color hue keys.\n * @public\n */\nexport const COLOR_HUES: ColorHueKey[] = [\n  'gray',\n  'blue',\n  'purple',\n  'magenta',\n  'red',\n  'orange',\n  'yellow',\n  'green',\n  'cyan',\n]\n\n/**\n * Color tint keys.\n * @public\n */\nexport const COLOR_TINTS: ColorTintKey[] = [\n  '50',\n  '100',\n  '200',\n  '300',\n  '400',\n  '500',\n  '600',\n  '700',\n  '800',\n  '900',\n  '950',\n]\n","import {HSL, RGB} from '../../types'\n\n/** @internal */\nexport function hslToRgb(hsl: HSL): RGB {\n  const h = hsl[0]\n  const s = hsl[1] / 100\n  const l = hsl[2] / 100\n  const k = (n: number) => (n + h / 30) % 12\n  const a = s * Math.min(l, 1 - l)\n  const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)))\n\n  return [255 * f(0), 255 * f(8), 255 * f(4)]\n}\n","import {RGB} from '../../types'\n\n/** @internal */\nexport function rgbToHex([r, g, b]: RGB): string {\n  const _r = Math.round(r)\n  const _g = Math.round(g)\n  const _b = Math.round(b)\n\n  return '#' + ((1 << 24) + (_r << 16) + (_g << 8) + _b).toString(16).slice(1)\n}\n","import {COLOR_TINTS} from './constants'\nimport {hslToRgb} from './lib/convert/hslToRgb'\nimport {rgbToHex} from './lib/convert/rgbToHex'\nimport {ColorTintConfig, ColorHueConfig, ColorHueKey, ColorTints} from './types'\n\n/** @internal */\nexport function buildTints(options: {\n  hueKey: ColorHueKey\n  black: ColorTintConfig\n  color: ColorHueConfig\n}): ColorTints {\n  const {hueKey, color} = options\n\n  return COLOR_TINTS.reduce<Partial<ColorTints>>((acc, tintKey) => {\n    const tint = Number(tintKey)\n    const rgb = hslToRgb(color.tints[tintKey].hsl)\n    const hex = rgbToHex([Math.round(rgb[0]), Math.round(rgb[1]), Math.round(rgb[2])])\n\n    acc[tintKey] = {\n      title: `${hueKey.slice(0, 1).toUpperCase()}${hueKey.slice(1)} ${tint}`,\n      hex,\n    }\n\n    return acc\n  }, {}) as ColorTints\n}\n","/* THIS FILE IS AUTO-GENERATED – DO NOT EDIT */\n\nimport {Color, ColorHues, ColorTint, ColorTints} from './types'\n\n/** @public */\nexport const black: ColorTint = {\n  title: 'Black',\n  hex: '#0d0e12',\n}\n\n/** @public */\nexport const white: ColorTint = {\n  title: 'White',\n  hex: '#ffffff',\n}\n\n/** @public */\nexport const gray: ColorTints = {\n  '50': {\n    title: 'Gray 50',\n    hex: '#f6f6f8',\n  },\n  '100': {\n    title: 'Gray 100',\n    hex: '#eeeef1',\n  },\n  '200': {\n    title: 'Gray 200',\n    hex: '#e3e4e8',\n  },\n  '300': {\n    title: 'Gray 300',\n    hex: '#bbbdc9',\n  },\n  '400': {\n    title: 'Gray 400',\n    hex: '#9499ad',\n  },\n  '500': {\n    title: 'Gray 500',\n    hex: '#727892',\n  },\n  '600': {\n    title: 'Gray 600',\n    hex: '#515870',\n  },\n  '700': {\n    title: 'Gray 700',\n    hex: '#383d51',\n  },\n  '800': {\n    title: 'Gray 800',\n    hex: '#252837',\n  },\n  '900': {\n    title: 'Gray 900',\n    hex: '#1b1d27',\n  },\n  '950': {\n    title: 'Gray 950',\n    hex: '#13141b',\n  },\n}\n\n/** @public */\nexport const blue: ColorTints = {\n  '50': {\n    title: 'Blue 50',\n    hex: '#f5f8ff',\n  },\n  '100': {\n    title: 'Blue 100',\n    hex: '#e5edff',\n  },\n  '200': {\n    title: 'Blue 200',\n    hex: '#dbe5ff',\n  },\n  '300': {\n    title: 'Blue 300',\n    hex: '#a8bfff',\n  },\n  '400': {\n    title: 'Blue 400',\n    hex: '#7595ff',\n  },\n  '500': {\n    title: 'Blue 500',\n    hex: '#556bfc',\n  },\n  '600': {\n    title: 'Blue 600',\n    hex: '#4043e7',\n  },\n  '700': {\n    title: 'Blue 700',\n    hex: '#2927aa',\n  },\n  '800': {\n    title: 'Blue 800',\n    hex: '#192457',\n  },\n  '900': {\n    title: 'Blue 900',\n    hex: '#161a41',\n  },\n  '950': {\n    title: 'Blue 950',\n    hex: '#101228',\n  },\n}\n\n/** @public */\nexport const purple: ColorTints = {\n  '50': {\n    title: 'Purple 50',\n    hex: '#f8f5ff',\n  },\n  '100': {\n    title: 'Purple 100',\n    hex: '#f1ebff',\n  },\n  '200': {\n    title: 'Purple 200',\n    hex: '#ece1fe',\n  },\n  '300': {\n    title: 'Purple 300',\n    hex: '#ccb1fc',\n  },\n  '400': {\n    title: 'Purple 400',\n    hex: '#b087f7',\n  },\n  '500': {\n    title: 'Purple 500',\n    hex: '#8f57ef',\n  },\n  '600': {\n    title: 'Purple 600',\n    hex: '#721fe5',\n  },\n  '700': {\n    title: 'Purple 700',\n    hex: '#4c1a9e',\n  },\n  '800': {\n    title: 'Purple 800',\n    hex: '#2f1862',\n  },\n  '900': {\n    title: 'Purple 900',\n    hex: '#23173f',\n  },\n  '950': {\n    title: 'Purple 950',\n    hex: '#181128',\n  },\n}\n\n/** @public */\nexport const magenta: ColorTints = {\n  '50': {\n    title: 'Magenta 50',\n    hex: '#fef6f9',\n  },\n  '100': {\n    title: 'Magenta 100',\n    hex: '#fde8ef',\n  },\n  '200': {\n    title: 'Magenta 200',\n    hex: '#fcdee9',\n  },\n  '300': {\n    title: 'Magenta 300',\n    hex: '#f7abc5',\n  },\n  '400': {\n    title: 'Magenta 400',\n    hex: '#f0709b',\n  },\n  '500': {\n    title: 'Magenta 500',\n    hex: '#e72767',\n  },\n  '600': {\n    title: 'Magenta 600',\n    hex: '#b11651',\n  },\n  '700': {\n    title: 'Magenta 700',\n    hex: '#7c1342',\n  },\n  '800': {\n    title: 'Magenta 800',\n    hex: '#4b1130',\n  },\n  '900': {\n    title: 'Magenta 900',\n    hex: '#341325',\n  },\n  '950': {\n    title: 'Magenta 950',\n    hex: '#1f0f14',\n  },\n}\n\n/** @public */\nexport const red: ColorTints = {\n  '50': {\n    title: 'Red 50',\n    hex: '#fff6f5',\n  },\n  '100': {\n    title: 'Red 100',\n    hex: '#ffe7e5',\n  },\n  '200': {\n    title: 'Red 200',\n    hex: '#ffdedc',\n  },\n  '300': {\n    title: 'Red 300',\n    hex: '#fdada5',\n  },\n  '400': {\n    title: 'Red 400',\n    hex: '#f77769',\n  },\n  '500': {\n    title: 'Red 500',\n    hex: '#ef4434',\n  },\n  '600': {\n    title: 'Red 600',\n    hex: '#cc2819',\n  },\n  '700': {\n    title: 'Red 700',\n    hex: '#8b2018',\n  },\n  '800': {\n    title: 'Red 800',\n    hex: '#4d1714',\n  },\n  '900': {\n    title: 'Red 900',\n    hex: '#321615',\n  },\n  '950': {\n    title: 'Red 950',\n    hex: '#1e1011',\n  },\n}\n\n/** @public */\nexport const orange: ColorTints = {\n  '50': {\n    title: 'Orange 50',\n    hex: '#fff7f0',\n  },\n  '100': {\n    title: 'Orange 100',\n    hex: '#ffeadb',\n  },\n  '200': {\n    title: 'Orange 200',\n    hex: '#ffddc7',\n  },\n  '300': {\n    title: 'Orange 300',\n    hex: '#ffb685',\n  },\n  '400': {\n    title: 'Orange 400',\n    hex: '#ff8e42',\n  },\n  '500': {\n    title: 'Orange 500',\n    hex: '#fa6400',\n  },\n  '600': {\n    title: 'Orange 600',\n    hex: '#b14802',\n  },\n  '700': {\n    title: 'Orange 700',\n    hex: '#7c3404',\n  },\n  '800': {\n    title: 'Orange 800',\n    hex: '#461e07',\n  },\n  '900': {\n    title: 'Orange 900',\n    hex: '#32160b',\n  },\n  '950': {\n    title: 'Orange 950',\n    hex: '#21120d',\n  },\n}\n\n/** @public */\nexport const yellow: ColorTints = {\n  '50': {\n    title: 'Yellow 50',\n    hex: '#fefae1',\n  },\n  '100': {\n    title: 'Yellow 100',\n    hex: '#fcf3bb',\n  },\n  '200': {\n    title: 'Yellow 200',\n    hex: '#f9e994',\n  },\n  '300': {\n    title: 'Yellow 300',\n    hex: '#f7d455',\n  },\n  '400': {\n    title: 'Yellow 400',\n    hex: '#f9bc15',\n  },\n  '500': {\n    title: 'Yellow 500',\n    hex: '#d28a04',\n  },\n  '600': {\n    title: 'Yellow 600',\n    hex: '#965908',\n  },\n  '700': {\n    title: 'Yellow 700',\n    hex: '#653a0b',\n  },\n  '800': {\n    title: 'Yellow 800',\n    hex: '#3b220c',\n  },\n  '900': {\n    title: 'Yellow 900',\n    hex: '#271a11',\n  },\n  '950': {\n    title: 'Yellow 950',\n    hex: '#181410',\n  },\n}\n\n/** @public */\nexport const green: ColorTints = {\n  '50': {\n    title: 'Green 50',\n    hex: '#e7fef5',\n  },\n  '100': {\n    title: 'Green 100',\n    hex: '#c5fce8',\n  },\n  '200': {\n    title: 'Green 200',\n    hex: '#a9f9dc',\n  },\n  '300': {\n    title: 'Green 300',\n    hex: '#59f3ba',\n  },\n  '400': {\n    title: 'Green 400',\n    hex: '#0ff0a1',\n  },\n  '500': {\n    title: 'Green 500',\n    hex: '#04b97a',\n  },\n  '600': {\n    title: 'Green 600',\n    hex: '#01794f',\n  },\n  '700': {\n    title: 'Green 700',\n    hex: '#015133',\n  },\n  '800': {\n    title: 'Green 800',\n    hex: '#023120',\n  },\n  '900': {\n    title: 'Green 900',\n    hex: '#06231a',\n  },\n  '950': {\n    title: 'Green 950',\n    hex: '#071715',\n  },\n}\n\n/** @public */\nexport const cyan: ColorTints = {\n  '50': {\n    title: 'Cyan 50',\n    hex: '#e7fefe',\n  },\n  '100': {\n    title: 'Cyan 100',\n    hex: '#c5fcfc',\n  },\n  '200': {\n    title: 'Cyan 200',\n    hex: '#96f8f8',\n  },\n  '300': {\n    title: 'Cyan 300',\n    hex: '#62efef',\n  },\n  '400': {\n    title: 'Cyan 400',\n    hex: '#18e2e2',\n  },\n  '500': {\n    title: 'Cyan 500',\n    hex: '#04b8be',\n  },\n  '600': {\n    title: 'Cyan 600',\n    hex: '#037782',\n  },\n  '700': {\n    title: 'Cyan 700',\n    hex: '#024950',\n  },\n  '800': {\n    title: 'Cyan 800',\n    hex: '#042f34',\n  },\n  '900': {\n    title: 'Cyan 900',\n    hex: '#072227',\n  },\n  '950': {\n    title: 'Cyan 950',\n    hex: '#0d181c',\n  },\n}\n\n/** @public */\nexport const hues: ColorHues = {gray, blue, purple, magenta, red, orange, yellow, green, cyan}\n\n/** @public */\nexport const color: Color = {black, white, ...hues}\n","import {ColorConfig} from './types'\n\n/** @internal */\nexport const config: ColorConfig = {\n  black: {\n    title: 'Black',\n    hsl: [225, 16, 6],\n  },\n  white: {\n    title: 'White',\n    hsl: [0, 0, 100],\n  },\n  gray: {\n    title: 'Gray',\n    tints: {\n      50: {\n        title: 'Gray 50',\n        hsl: [240, 12, 97],\n      },\n      100: {\n        title: 'Gray 100',\n        hsl: [240, 10, 94],\n      },\n      200: {\n        title: 'Gray 200',\n        hsl: [231, 10, 90],\n      },\n      300: {\n        title: 'Gray 300',\n        hsl: [232, 11, 76],\n      },\n      400: {\n        title: 'Gray 400',\n        hsl: [228, 13, 63],\n      },\n      500: {\n        title: 'Gray 500',\n        hsl: [229, 13, 51],\n      },\n      600: {\n        title: 'Gray 600',\n        hsl: [228, 16, 38],\n      },\n      700: {\n        title: 'Gray 700',\n        hsl: [229, 18, 27],\n      },\n      800: {\n        title: 'Gray 800',\n        hsl: [229, 19, 18],\n      },\n      900: {\n        title: 'Gray 900',\n        hsl: [228, 19, 13],\n      },\n      950: {\n        title: 'Gray 950',\n        hsl: [233, 17, 9],\n      },\n    },\n  },\n  blue: {\n    title: 'Blue',\n    tints: {\n      50: {\n        title: 'Blue 50',\n        hsl: [222, 100, 98],\n      },\n      100: {\n        title: 'Blue 100',\n        hsl: [222, 100, 95],\n      },\n      200: {\n        title: 'Blue 200',\n        hsl: [223, 100, 93],\n      },\n      300: {\n        title: 'Blue 300',\n        hsl: [224, 100, 83],\n      },\n      400: {\n        title: 'Blue 400',\n        hsl: [226, 100, 73],\n      },\n      500: {\n        title: 'Blue 500',\n        hsl: [232, 96, 66],\n      },\n      600: {\n        title: 'Blue 600',\n        hsl: [239, 78, 58],\n      },\n      700: {\n        title: 'Blue 700',\n        hsl: [241, 63, 41],\n      },\n      800: {\n        title: 'Blue 800',\n        hsl: [230, 55, 22],\n      },\n      900: {\n        title: 'Blue 900',\n        hsl: [234, 49, 17],\n      },\n      950: {\n        title: 'Blue 950',\n        hsl: [235, 43, 11],\n      },\n    },\n  },\n  purple: {\n    title: 'Purple',\n    tints: {\n      50: {\n        title: 'Purple 50',\n        hsl: [260, 95, 98],\n      },\n      100: {\n        title: 'Purple 100',\n        hsl: [260, 98, 96],\n      },\n      200: {\n        title: 'Purple 200',\n        hsl: [263, 96, 94],\n      },\n      300: {\n        title: 'Purple 300',\n        hsl: [262, 92, 84],\n      },\n      400: {\n        title: 'Purple 400',\n        hsl: [262, 88, 75],\n      },\n      500: {\n        title: 'Purple 500',\n        hsl: [262, 83, 64],\n      },\n      600: {\n        title: 'Purple 600',\n        hsl: [265, 79, 51],\n      },\n      700: {\n        title: 'Purple 700',\n        hsl: [263, 72, 36],\n      },\n      800: {\n        title: 'Purple 800',\n        hsl: [258, 60, 24],\n      },\n      900: {\n        title: 'Purple 900',\n        hsl: [257, 46, 17],\n      },\n      950: {\n        title: 'Purple 950',\n        hsl: [260, 41, 11],\n      },\n    },\n  },\n  magenta: {\n    title: 'Magenta',\n    tints: {\n      50: {\n        title: 'Magenta 50',\n        hsl: [340, 82, 98],\n      },\n      100: {\n        title: 'Magenta 100',\n        hsl: [339, 83, 95],\n      },\n      200: {\n        title: 'Magenta 200',\n        hsl: [339, 83, 93],\n      },\n      300: {\n        title: 'Magenta 300',\n        hsl: [340, 82, 82],\n      },\n      400: {\n        title: 'Magenta 400',\n        hsl: [340, 81, 69],\n      },\n      500: {\n        title: 'Magenta 500',\n        hsl: [340, 80, 53],\n      },\n      600: {\n        title: 'Magenta 600',\n        hsl: [337, 78, 39],\n      },\n      700: {\n        title: 'Magenta 700',\n        hsl: [333, 73, 28],\n      },\n      800: {\n        title: 'Magenta 800',\n        hsl: [328, 63, 18],\n      },\n      900: {\n        title: 'Magenta 900',\n        hsl: [327, 46, 14],\n      },\n      950: {\n        title: 'Magenta 950',\n        hsl: [341, 35, 9],\n      },\n    },\n  },\n  red: {\n    title: 'Red',\n    tints: {\n      50: {\n        title: 'Red 50',\n        hsl: [5, 100, 98],\n      },\n      100: {\n        title: 'Red 100',\n        hsl: [4, 100, 95],\n      },\n      200: {\n        title: 'Red 200',\n        hsl: [4, 98, 93],\n      },\n      300: {\n        title: 'Red 300',\n        hsl: [5, 95, 82],\n      },\n      400: {\n        title: 'Red 400',\n        hsl: [6, 90, 69],\n      },\n      500: {\n        title: 'Red 500',\n        hsl: [5, 85, 57],\n      },\n      600: {\n        title: 'Red 600',\n        hsl: [5, 78, 45],\n      },\n      700: {\n        title: 'Red 700',\n        hsl: [4, 70, 32],\n      },\n      800: {\n        title: 'Red 800',\n        hsl: [3, 58, 19],\n      },\n      900: {\n        title: 'Red 900',\n        hsl: [2, 41, 14],\n      },\n      950: {\n        title: 'Red 950',\n        hsl: [356, 30, 9],\n      },\n    },\n  },\n  orange: {\n    title: 'Orange',\n    tints: {\n      50: {\n        title: 'Orange 50',\n        hsl: [28, 100, 97],\n      },\n      100: {\n        title: 'Orange 100',\n        hsl: [25, 100, 93],\n      },\n      200: {\n        title: 'Orange 200',\n        hsl: [24, 100, 89],\n      },\n      300: {\n        title: 'Orange 300',\n        hsl: [24, 100, 76],\n      },\n      400: {\n        title: 'Orange 400',\n        hsl: [24, 100, 63],\n      },\n      500: {\n        title: 'Orange 500',\n        hsl: [24, 100, 49],\n      },\n      600: {\n        title: 'Orange 600',\n        hsl: [24, 98, 35],\n      },\n      700: {\n        title: 'Orange 700',\n        hsl: [24, 94, 25],\n      },\n      800: {\n        title: 'Orange 800',\n        hsl: [22, 82, 15],\n      },\n      900: {\n        title: 'Orange 900',\n        hsl: [17, 65, 12],\n      },\n      950: {\n        title: 'Orange 950',\n        hsl: [14, 43, 9],\n      },\n    },\n  },\n  yellow: {\n    title: 'Yellow',\n    tints: {\n      50: {\n        title: 'Yellow 50',\n        hsl: [51, 94, 94],\n      },\n      100: {\n        title: 'Yellow 100',\n        hsl: [52, 91, 86],\n      },\n      200: {\n        title: 'Yellow 200',\n        hsl: [50, 90, 78],\n      },\n      300: {\n        title: 'Yellow 300',\n        hsl: [47, 91, 65],\n      },\n      400: {\n        title: 'Yellow 400',\n        hsl: [44, 95, 53],\n      },\n      500: {\n        title: 'Yellow 500',\n        hsl: [39, 96, 42],\n      },\n      600: {\n        title: 'Yellow 600',\n        hsl: [34, 90, 31],\n      },\n      700: {\n        title: 'Yellow 700',\n        hsl: [31, 80, 22],\n      },\n      800: {\n        title: 'Yellow 800',\n        hsl: [28, 66, 14],\n      },\n      900: {\n        title: 'Yellow 900',\n        hsl: [24, 40, 11],\n      },\n      950: {\n        title: 'Yellow 950',\n        hsl: [24, 20, 8],\n      },\n    },\n  },\n  green: {\n    title: 'Green',\n    tints: {\n      50: {\n        title: 'Green 50',\n        hsl: [157, 89, 95],\n      },\n      100: {\n        title: 'Green 100',\n        hsl: [158, 89, 88],\n      },\n      200: {\n        title: 'Green 200',\n        hsl: [158, 87, 82],\n      },\n      300: {\n        title: 'Green 300',\n        hsl: [158, 86, 65],\n      },\n      400: {\n        title: 'Green 400',\n        hsl: [159, 88, 50],\n      },\n      500: {\n        title: 'Green 500',\n        hsl: [159, 96, 37],\n      },\n      600: {\n        title: 'Green 600',\n        hsl: [159, 98, 24],\n      },\n      700: {\n        title: 'Green 700',\n        hsl: [158, 98, 16],\n      },\n      800: {\n        title: 'Green 800',\n        hsl: [158, 91, 10],\n      },\n      900: {\n        title: 'Green 900',\n        hsl: [162, 72, 8],\n      },\n      950: {\n        title: 'Green 950',\n        hsl: [172, 51, 6],\n      },\n    },\n  },\n  cyan: {\n    title: 'Cyan',\n    tints: {\n      50: {\n        title: 'Cyan 50',\n        hsl: [180, 92, 95],\n      },\n      100: {\n        title: 'Cyan 100',\n        hsl: [180, 91, 88],\n      },\n      200: {\n        title: 'Cyan 200',\n        hsl: [180, 87, 78],\n      },\n      300: {\n        title: 'Cyan 300',\n        hsl: [180, 81, 66],\n      },\n      400: {\n        title: 'Cyan 400',\n        hsl: [180, 81, 49],\n      },\n      500: {\n        title: 'Cyan 500',\n        hsl: [182, 96, 38],\n      },\n      600: {\n        title: 'Cyan 600',\n        hsl: [185, 96, 26],\n      },\n      700: {\n        title: 'Cyan 700',\n        hsl: [185, 95, 16],\n      },\n      800: {\n        title: 'Cyan 800',\n        hsl: [187, 86, 11],\n      },\n      900: {\n        title: 'Cyan 900',\n        hsl: [188, 68, 9],\n      },\n      950: {\n        title: 'Cyan 950',\n        hsl: [196, 37, 8],\n      },\n    },\n  },\n}\n","import {RGB} from '../../types'\n\n/** @internal */\nexport function hexToRgb(hex: string): RGB {\n  const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\n  if (!result) {\n    throw new Error('input is not valid hex')\n  }\n\n  return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n}\n","import {HSL, RGB} from '../../types'\n\n/**\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n *\n * @internal\n */\nexport function rgbToHsl([r, g, b]: RGB): HSL {\n  // Make r, g, and b fractions of 1\n  r /= 255\n  g /= 255\n  b /= 255\n\n  // Find greatest and smallest channel values\n  const cmin = Math.min(r, g, b)\n  const cmax = Math.max(r, g, b)\n  const delta = cmax - cmin\n\n  let h = 0\n  let s = 0\n  let l = 0\n\n  // Calculate hue\n  // No difference\n  if (delta == 0) h = 0\n  // Red is max\n  else if (cmax == r) h = ((g - b) / delta) % 6\n  // Green is max\n  else if (cmax == g) h = (b - r) / delta + 2\n  // Blue is max\n  else h = (r - g) / delta + 4\n\n  h = Math.round(h * 60)\n\n  // Make negative hues positive behind 360°\n  if (h < 0) h += 360\n\n  // Calculate lightness\n  l = (cmax + cmin) / 2\n\n  // Calculate saturation\n  s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n  // Multiply l and s by 100\n  s = +(s * 100).toFixed(0)\n  l = +(l * 100).toFixed(0)\n\n  return [h, s, l]\n}\n","/** @internal */\nexport function clamp(num: number): number {\n  return Math.max(Math.min(num, 255), 0)\n}\n","import {RGB} from '../../types'\nimport {clamp} from '../clamp'\n\nfunction darkenChannel(backdrop: number, source: number) {\n  return Math.min(backdrop, source)\n}\n\n/**\n * Apply the `darken` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingdarken\n *\n * @internal\n */\nexport function darken(b: RGB, s: RGB): RGB {\n  return [\n    Math.round(clamp(darkenChannel(b[0] / 255, s[0] / 255) * 255)),\n    Math.round(clamp(darkenChannel(b[1] / 255, s[1] / 255) * 255)),\n    Math.round(clamp(darkenChannel(b[2] / 255, s[2] / 255) * 255)),\n  ]\n}\n","/** @internal */\nexport function interpolate(min: number, max: number, val: number): number {\n  const size = max - min\n\n  return min + size * val\n}\n","import {RGB} from '../../types'\nimport {interpolate} from '../interpolate'\n\n/** @internal */\nexport function limit(darkest: RGB, lightest: RGB, source: RGB): RGB {\n  const r = Math.round(interpolate(darkest[0], lightest[0], source[0] / 255))\n  const g = Math.round(interpolate(darkest[1], lightest[1], source[1] / 255))\n  const b = Math.round(interpolate(darkest[2], lightest[2], source[2] / 255))\n\n  return [r, g, b]\n}\n","import {RGB} from '../../types'\nimport {clamp} from '../clamp'\n\nfunction screenChannel(backdrop: number, source: number) {\n  return backdrop + source - backdrop * source\n}\n\n/**\n * Apply the `screen` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n *\n * @internal\n */\nexport function screen(b: RGB, s: RGB): RGB {\n  return [\n    Math.round(clamp(screenChannel(b[0] / 255, s[0] / 255) * 255)),\n    Math.round(clamp(screenChannel(b[1] / 255, s[1] / 255) * 255)),\n    Math.round(clamp(screenChannel(b[2] / 255, s[2] / 255) * 255)),\n  ]\n}\n"],"names":["color"],"mappings":"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"}