gant-core 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/@ctrl/tinycolor/dist/module/util.js","../../../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../../../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../../../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../../../node_modules/@ctrl/tinycolor/dist/module/index.js","../../../node_modules/@ctrl/tinycolor/dist/module/readability.js","../../../node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","../../../node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","../../../node_modules/@ctrl/tinycolor/dist/module/random.js","../../../node_modules/@ant-design/colors/es/generate.js","../../../node_modules/@ant-design/colors/es/index.js","../../../src/core/theme/algorithm/shared/genControlHeight.ts","../../../src/core/theme/algorithm/shared/genSizeMapToken.ts","../../../src/core/theme/seed.ts","../../../src/core/theme/utils.ts","../../../src/core/theme/algorithm/shared/genColorMapToken.ts","../../../src/core/theme/algorithm/shared/genRadius.ts","../../../src/core/theme/algorithm/shared/genCommonMapToken.ts","../../../src/core/theme/algorithm/default/colors.ts","../../../src/core/theme/algorithm/shared/genFontMapToken.ts","../../../src/core/theme/algorithm/shared/genFontSizes.ts","../../../src/core/theme/algorithm/default/index.ts","../../../src/core/theme/algorithm/dark/colors.ts","../../../src/core/theme/algorithm/dark/index.ts","../../../src/core/theme/algorithm/compact/genCompactSizeMapToken.ts","../../../src/core/theme/algorithm/compact/index.ts","../../../src/core/theme/algorithm/meeting/colors.ts","../../../src/core/theme/algorithm/util/getAlphaColor.ts","../../../src/core/theme/algorithm/util/alias.ts","../../../src/core/theme/alias/index.ts","../../../src/core/theme/algorithm/meeting/index.ts","../../../src/core/theme/interface/presetColors.ts","../../../src/core/theme/index.ts"],"sourcesContent":["/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from './index.js';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion.js';\nimport { TinyColor } from './index.js';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n","import { TinyColor } from './index.js';\nimport { convertToPercentage } from './util.js';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index.js';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n patterns.push(_colorString);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","import type { HeightMapToken, SeedToken } from '../../interface';\n\nconst genControlHeight = (token: SeedToken): HeightMapToken => {\n const { controlHeight } = token;\n\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25,\n };\n};\n\nexport default genControlHeight;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n return {\n sizeXXL: sizeUnit * (sizeStep + 8), // 48\n sizeXL: sizeUnit * (sizeStep + 4), // 32\n sizeLG: sizeUnit * (sizeStep + 2), // 24\n sizeMD: sizeUnit * (sizeStep + 1), // 20\n sizeMS: sizeUnit * sizeStep, // 16\n size: sizeUnit * sizeStep, // 16\n sizeSM: sizeUnit * (sizeStep - 1), // 12\n sizeXS: sizeUnit * (sizeStep - 2), // 8\n sizeXXS: sizeUnit * (sizeStep - 3), // 4\n };\n}\n","import type { PresetColorType, SeedToken } from './interface';\n\nexport const defaultPresetColors: PresetColorType = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911',\n};\n\nconst seedToken: SeedToken = {\n // preset color palettes\n ...defaultPresetColors,\n\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n\n colorBgBase: '',\n\n // Font\n fontFamily: `microsoft yahei,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontWeight: 400,\n fontSize: 12,\n\n // Line\n lineWidth: 1,\n lineType: 'solid',\n\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n\n // Radius\n borderRadius: 6,\n\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n\n // Control Base\n controlHeight: 32,\n\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n\n // opacity\n opacity: 1,\n\n // Wireframe\n wireframe: false,\n\n // Motion\n motion: true,\n //布局相关\n layoutHeaderHeight: 50,\n layoutSiderWidth: 200,\n layoutIconSize: 24,\n layoutNavHeight: 40,\n //渐变色\n gradientColors: ['rgba(0, 64, 237,0.3)', 'rgba(0, 229, 237,0.3)'],\n};\nexport default seedToken;\n","import { mapValues, isObject, toLower } from 'lodash-es';\nimport { TinyColor } from '@ctrl/tinycolor';\n/**\n * Sums the passed percentage to the R, G or B of a HEX color\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed part of the color\n */\nfunction addLight(color: string, amount: number) {\n const cc = parseInt(color, 16) + amount;\n const c = cc > 255 ? 255 : cc;\n return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`;\n}\n\n/**\n * Lightens a 6 char HEX color according to the passed percentage\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed color represented as HEX\n */\nexport function lighten(color: string, amount: number) {\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color;\n amount = Math.trunc((255 * amount) / 100);\n return `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount,\n )}${addLight(color.substring(4, 6), amount)}`;\n}\n\nexport function getTokenCssVar(data: any, prefix?: string) {\n if (typeof data !== 'object' || Array.isArray(data)) return;\n const tokenCss: any = {};\n mapValues(data, (itemValue, name) => {\n const varName = prefix ? '--' + `${prefix}-` + name : '--' + name;\n const value =\n typeof itemValue === 'number' &&\n !['lineheight', 'opacity', 'weight'].some((key) =>\n toLower(name).includes(key),\n )\n ? itemValue + 'px'\n : itemValue;\n if (isObject(itemValue)) return getTokenCssVar(value, name);\n tokenCss[varName] = value;\n });\n return tokenCss;\n}\n\nexport const getAlphaColor = (baseColor: string, alpha: number) => {\n return new TinyColor(baseColor).setAlpha(alpha).toRgbString();\n};\n\nexport const getDarkenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};\nexport const getLightenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};\n\nexport const getBackgroundColor = (baseColor: string, bgBaseColor: string) => {\n const color = new TinyColor(baseColor);\n return color.onBackground(bgBaseColor).toRgbString();\n};\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { ColorMapToken, SeedToken } from '../../interface';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport { getBackgroundColor, getAlphaColor } from '../../utils';\nimport { get } from 'lodash';\n\nexport const generateGradientColorPalettes: GenerateGradientColorMap = (\n bgBaseColor: string,\n gradientColors: string[],\n) => {\n return gradientColors.map(item=> getBackgroundColor(item as string, bgBaseColor));\n};\n\ninterface PaletteGenerators {\n generateColorPalettes: GenerateColorMap;\n generateNeutralColorPalettes: GenerateNeutralColorMap;\n}\n\nexport default function genColorMapToken(\n seed: SeedToken,\n { generateColorPalettes, generateNeutralColorPalettes }: PaletteGenerators,\n): ColorMapToken {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase,\n } = seed;\n\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(\n colorBgBase,\n colorTextBase,\n );\n\n const gradientColors = generateGradientColorPalettes(\n neutralColors.colorBgBase,\n seed.gradientColors as any,\n );\n\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n\n return {\n ...neutralColors,\n gradientColors,\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff',\n };\n}\n","import type { MapToken } from '../../interface';\n\nconst genRadius = (\n radiusBase: number,\n): Pick<\n MapToken,\n | 'borderRadiusXS'\n | 'borderRadiusSM'\n | 'borderRadiusLG'\n | 'borderRadius'\n | 'borderRadiusOuter'\n | 'borderRadiusXL'\n | 'borderRadiusXXL'\n> => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusXL = radiusBase;\n let radiusXXL = radiusBase;\n let radiusOuter = radiusBase;\n\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n\n radiusXL = radiusLG > 0 ? radiusLG + 4 : radiusLG;\n radiusXXL = radiusLG > 0 ? radiusLG + 8 : radiusLG;\n\n\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusXL: radiusXL,\n borderRadiusXXL: radiusXXL,\n borderRadiusOuter: radiusOuter,\n };\n};\n\nexport default genRadius;\n","import type { CommonMapToken, SeedToken } from '../../interface';\nimport genRadius from './genRadius';\n\nexport default function genCommonMapToken(token: SeedToken): CommonMapToken {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth,\n opacity,\n layoutHeaderHeight,\n } = token;\n\n return {\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n\n // line\n lineWidthBold: lineWidth + 1,\n\n // radius\n ...genRadius(borderRadius),\n opacityImage: opacity,\n opacity1: opacity * 0.8,\n opacity2: opacity * 0.6,\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport {\n getAlphaColor,\n getDarkenSolidColor,\n getBackgroundColor,\n} from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\n\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6],\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#fff';\n let colorTextBase = textBaseColor || '#000';\n\n colorBgBase = new TinyColor(colorBgBase).lighten()\n ? colorBgBase\n : new TinyColor(colorBgBase).lighten(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isDark()\n ? colorTextBase\n : new TinyColor(colorTextBase).darken(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n // colorText: getAlphaColor(colorTextBase, 0.88),\n // colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n // colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n // colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 4),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 15),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 6),\n\n colorText: '#333',\n colorTextSecondary: '#666',\n colorTextTertiary: '#999',\n colorTextQuaternary: '#999',\n\n\n };\n};\n","import type { FontMapToken } from '../../interface';\nimport genFontSizes from './genFontSizes';\n\nconst genFontMapToken = (fontSize: number): FontMapToken => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map((pair) => pair.size);\n const lineHeights = fontSizePairs.map((pair) => pair.lineHeight);\n\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2],\n };\n};\n\nexport default genFontMapToken;\n","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base: number) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * 2.71828 ** (i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n\n fontSizes[1] = base;\n\n return fontSizes.map((size) => {\n const height = size + 8;\n\n return {\n size,\n lineHeight: height / size,\n };\n });\n}\n","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nexport default function derivative(token: SeedToken): MapToken {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n return {\n ...token,\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n // Font\n ...genFontMapToken(token.fontSize),\n // Size\n ...genSizeMapToken(token),\n // Height\n ...genControlHeight(token),\n // Others\n ...genCommonMapToken(token),\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type { GenerateColorMap, GenerateNeutralColorMap } from '../ColorMap';\nimport { getAlphaColor, getLightenSolidColor } from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor, { theme: 'dark' });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4],\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#000';\n let colorTextBase = textBaseColor || '#fff';\n\n colorBgBase = new TinyColor(colorBgBase).isDark()\n ? colorBgBase\n : new TinyColor(colorBgBase).darken(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isLight()\n ? colorTextBase\n : new TinyColor(colorTextBase).lighten(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.35),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.35),\n\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n\n colorBgElevated: getLightenSolidColor(colorBgBase, 12),\n colorBgContainer: getLightenSolidColor(colorBgBase, 8),\n colorBgLayout: getLightenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getLightenSolidColor(colorBgBase, 26),\n\n colorBorder: getLightenSolidColor(colorBgBase, 26),\n colorBorderSecondary: getLightenSolidColor(colorBgBase, 19),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n DerivativeFunc,\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (\n token,\n mapToken,\n) => {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey], { theme: 'dark' });\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n return {\n ...mergedMapToken,\n\n // Dark tokens\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n };\n};\n\nexport default derivative;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n const compactSizeStep = sizeStep - 2;\n\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1),\n };\n}\n","import genControlHeight from '../shared/genControlHeight';\nimport type {\n DerivativeFunc,\n MapToken,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (token, mapToken) => {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n\n return {\n ...mergedMapToken,\n ...genCompactSizeMapToken(mapToken ?? token),\n\n // font\n ...genFontMapToken(fontSize),\n\n // controlHeight\n controlHeight,\n ...genControlHeight({ ...mergedMapToken, controlHeight }),\n };\n};\n\nexport default derivative;\n","import { getAlphaColor, getDarkenSolidColor } from '../../utils';\n\nexport const generateMettingNeutralColorPalettes = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.9),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.8),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.7),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.6),\n\n colorFill: getAlphaColor(colorTextBase, 0.3),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.2),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.1),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.06),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 6),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 1),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 30),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 12),\n };\n};\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction isStableColor(color: number): boolean {\n return color >= 0 && color <= 255;\n}\n\nfunction getAlphaColor(frontColor: string, backgroundColor: string): string {\n const { r: fR, g: fG, b: fB, a: originAlpha } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n\n const { r: bR, g: bG, b: bB } = new TinyColor(backgroundColor).toRgb();\n\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({ r, g, b, a: Math.round(fA * 100) / 100 }).toRgbString();\n }\n }\n\n // fallback\n /* istanbul ignore next */\n return new TinyColor({ r: fR, g: fG, b: fB, a: 1 }).toRgbString();\n}\n\nexport default getAlphaColor;\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { AliasToken, MapToken, SeedToken } from '../../interface';\nimport seedToken from '../../seed';\nimport getAlphaColor from './getAlphaColor';\n\n/** Raw merge of `@ant-design/cssinjs` token. Which need additional process */\ntype RawMergedToken = MapToken & { override: Partial<AliasToken> };\n\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken: RawMergedToken): AliasToken {\n const { override, ...restToken } = derivativeToken;\n const overrideTokens = { ...override };\n\n Object.keys(seedToken).forEach((token) => {\n delete overrideTokens[token as keyof SeedToken];\n });\n\n const mergedToken = {\n ...restToken,\n ...overrideTokens,\n };\n\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n\n // Generate alias token\n const aliasToken: AliasToken = {\n ...mergedToken,\n\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n\n // Line\n lineWidthFocus: mergedToken.lineWidth * 2,\n\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n\n fontWeightStrong: 700,\n\n opacityLoading: 0.65,\n\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n\n boxShadow: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowSecondary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `0px 0px 10px 0px rgba(0, 0, 0, 0.1)`,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerUp: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowTop: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowBottom: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n // boxShadowCard: `\n // 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n // 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n // 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n // `,\n // boxShadowDrawerRight: `\n // -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerLeft: `\n // 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerUp: `\n // 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerDown: `\n // 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)',\n\n // Override AliasToken\n ...overrideTokens,\n };\n\n return aliasToken;\n}\n","import defaultDerivative from '../algorithm/default';\nimport darkDerivative from '../algorithm/dark';\nimport compactDerivative from '../algorithm/compact';\nimport meetingDerivative from '../algorithm/meeting';\nimport seedToken from '../seed';\nimport type { ThemeType, MapToken, AliasToken, SeedToken } from '../interface';\nimport formatToken from '../algorithm/util/alias';\nimport { mergeWith, omit, pick } from 'lodash-es';\n\nconst getAliasToken = (\n token: Partial<AliasToken> = seedToken,\n type: ThemeType = 'default',\n) => {\n let seed = pick(token, Object.keys(seedToken)) as SeedToken;\n seed = mergeWith(seedToken, seed);\n const defaultMapToken: MapToken = defaultDerivative(seed);\n const defaultToken = omit(token, Object.keys(seedToken));\n let mapToken;\n\n switch (type) {\n case 'dark':\n mapToken = darkDerivative(seed, defaultMapToken);\n break;\n case 'compact':\n mapToken = compactDerivative(seed, defaultMapToken);\n break;\n case 'meeting':\n mapToken = meetingDerivative(seed, defaultMapToken);\n break;\n default:\n mapToken = defaultMapToken;\n break;\n }\n return formatToken({ ...mapToken, override: defaultToken });\n};\n\nexport default getAliasToken;\n","import { generate } from '@ant-design/colors';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport defaultAlgorithm from '../default';\nimport { generateMettingNeutralColorPalettes } from './colors';\n\nexport default function derivative(\n token: SeedToken,\n mapToken: MapToken,\n): MapToken {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n const { fontSize, colorBgBase, colorTextBase } = mergedMapToken;\n\n return {\n ...mergedMapToken,\n\n ...colorPalettes,\n\n // Colors\n ...generateMettingNeutralColorPalettes(colorBgBase, colorTextBase),\n // Font\n fontSizeSM: fontSize ,\n fontSize: fontSize + 2,\n fontSizeLG: fontSize + 3,\n fontSizeXL: fontSize + 4,\n };\n}\n","export const PresetColors = [\n 'blue',\n 'purple',\n 'cyan',\n 'green',\n 'magenta',\n 'pink',\n 'red',\n 'orange',\n 'yellow',\n 'volcano',\n 'geekblue',\n 'lime',\n 'gold',\n] as const;\n\nexport type PresetColorKey = (typeof PresetColors)[number];\n\nexport type PresetColorType = Record<PresetColorKey, string>;\n\ntype ColorPaletteKeyIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type LegacyColorPalettes = {\n /**\n * @deprecated\n */\n [key in `${keyof PresetColorType}-${ColorPaletteKeyIndex}`]: string;\n};\n\nexport type ColorPalettes = {\n [key in `${keyof PresetColorType}${ColorPaletteKeyIndex}`]: string;\n};\n","import getAliasToken from './alias';\nexport { default as seed } from './seed';\nexport { default as defaultAlgorithm } from './algorithm/default';\nexport { default as darkAlgorithm } from './algorithm/dark';\nexport { default as compactAlgorithm } from './algorithm/compact';\nexport { default as formatAliasToken } from './algorithm/util/alias';\nexport { getAliasToken };\nexport * from './interface';\nexport * from './utils';\nconst token = getAliasToken();\nexport default token;\n"],"names":["bound01","n","max","indexOf","parseFloat","isOnePointZero","isPercent","isPercentage","Math","min","parseInt","String","abs","clamp01","val","boundAlpha","a","isNaN","convertToPercentage","concat","Number","pad2","c","length","rgbToRgb","r","g","b","rgbToHsl","h","s","l","d","hue2rgb","p","q","t","hslToRgb","rgbToHsv","v","hsvToRgb","i","floor","f","mod","rgbToHex","allow3Char","hex","round","toString","startsWith","charAt","join","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","rgb","ok","format","stringInputToObject","isValidCSSUnit","substr","Object","prototype","hasOwnProperty","call","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsv","hsva","hex3","hex6","hex4","hex8","trim","toLowerCase","named","match","exec","Boolean","TinyColor","opts","_a","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsv","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_i","entries","_b","key","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","amount","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","hue","rgb1","rgb2","analogous","results","slices","part","ret","push","complement","monochromatic","res","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","tinycolor","readability","color1","color2","c1","c2","isReadable","wcag2","level","size","readabilityLevel","mostReadable","baseColor","colorList","args","includeFallbackColors","bestColor","bestScore","colorList_1","score","toMsFilter","firstColor","secondColor","hex8String","secondHex8String","fromRatio","ratio","newColor","undefined","legacyRandom","random","options","count","totalColors","colors","seed","randomWithin","colorInput","num","namedColor","bounds","find","name","defineColor","hueRange","parsed","getHueRange","pickHue","luminosity","saturationRange","getColorInfo","sMin","sMax","pickSaturation","H","S","bMin","lowerBounds","s1","v1","s2","v2","m","getMinimumBrightness","bMax","pickBrightness","bounds_1","Error","range","bound","brightnessRange","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","index","opacity","_ref","_ref2","getHue","light","getSaturation","saturation","toFixed","getValue","value","generate","arguments","patterns","pColor","colorString","_hsv","_colorString","theme","map","_ref3","backgroundColor","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","keys","forEach","primary","genControlHeight","token","controlHeight","controlHeightSM","controlHeightXS","controlHeightLG","genSizeMapToken","sizeUnit","sizeStep","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","defaultPresetColors","seedToken","colorPrimary","colorSuccess","colorWarning","colorError","colorInfo","colorLink","colorTextBase","colorBgBase","fontFamily","fontFamilyCode","fontWeight","fontSize","lineWidth","lineType","motionUnit","motionBase","motionEaseOutCirc","motionEaseInOutCirc","motionEaseOut","motionEaseInOut","motionEaseOutBack","motionEaseInBack","motionEaseInQuint","motionEaseOutQuint","borderRadius","sizePopupArrow","zIndexBase","zIndexPopupBase","wireframe","motion","layoutHeaderHeight","layoutSiderWidth","layoutIconSize","layoutNavHeight","gradientColors","addLight","cc","substring","trunc","getTokenCssVar","data","prefix","Array","isArray","tokenCss","mapValues","itemValue","varName","some","toLower","includes","isObject","getAlphaColor","getDarkenSolidColor","brightness","getLightenSolidColor","getBackgroundColor","bgBaseColor","generateGradientColorPalettes","item","genColorMapToken","generateColorPalettes","generateNeutralColorPalettes","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorder","colorPrimaryBorderHover","colorPrimaryHover","colorPrimaryActive","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBg","colorErrorBgHover","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBg","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","colorLinkHover","colorLinkActive","colorBgMask","colorWhite","genRadius","radiusBase","radiusLG","radiusSM","radiusXS","radiusXL","radiusXXL","radiusOuter","borderRadiusXS","borderRadiusSM","borderRadiusLG","borderRadiusXL","borderRadiusXXL","borderRadiusOuter","genCommonMapToken","motionDurationFast","motionDurationMid","motionDurationSlow","lineWidthBold","opacityImage","opacity1","opacity2","textBaseColor","colorFill","colorFillSecondary","colorFillTertiary","colorFillQuaternary","colorBgLayout","colorBgContainer","colorBgElevated","colorBgSpotlight","colorBorder","colorBorderSecondary","colorText","colorTextSecondary","colorTextTertiary","colorTextQuaternary","genFontMapToken","fontSizePairs","base","fontSizes","fill","_","baseSize","intSize","ceil","lineHeight","genFontSizes","pair","lineHeights","fontSizeSM","fontSizeLG","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","lineHeightLG","lineHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","derivative","colorPalettes","colorKey","reduce","prev","cur","mapToken","defaultAlgorithm","compactSizeStep","mergedMapToken","genCompactSizeMapToken","generateMettingNeutralColorPalettes","isStableColor","frontColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","formatToken","derivativeToken","override","restToken","overrideTokens","mergedToken","screenXL","screenXXL","fastDuration","colorFillContent","colorFillContentHover","colorFillAlter","colorBgContainerDisabled","colorBorderBg","colorSplit","colorTextPlaceholder","colorTextDisabled","colorTextHeading","colorTextLabel","colorTextDescription","colorTextLightSolid","colorHighlight","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorWarningOutline","fontSizeIcon","lineWidthFocus","controlOutlineWidth","controlInteractiveSize","controlItemBgHover","controlItemBgActive","controlItemBgActiveHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","fontWeightStrong","opacityLoading","linkDecoration","linkHoverDecoration","linkFocusDecoration","controlPaddingHorizontal","controlPaddingHorizontalSM","paddingXXS","paddingXS","paddingSM","padding","paddingMD","paddingLG","paddingXL","paddingContentHorizontalLG","paddingContentVerticalLG","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginXXS","marginXS","marginSM","margin","marginMD","marginLG","marginXL","marginXXL","boxShadow","boxShadowSecondary","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenSMMax","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","getAliasToken","type","pick","mergeWith","defaultMapToken","defaultDerivative","defaultToken","omit","darkDerivative","compactDerivative","meetingDerivative","PresetColors"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/@ctrl/tinycolor/dist/module/util.js","../../../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../../../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../../../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../../../node_modules/@ctrl/tinycolor/dist/module/index.js","../../../node_modules/@ctrl/tinycolor/dist/module/readability.js","../../../node_modules/@ctrl/tinycolor/dist/module/to-ms-filter.js","../../../node_modules/@ctrl/tinycolor/dist/module/from-ratio.js","../../../node_modules/@ctrl/tinycolor/dist/module/random.js","../../../node_modules/@ant-design/colors/es/generate.js","../../../node_modules/@ant-design/colors/es/index.js","../../../src/core/theme/algorithm/shared/genControlHeight.ts","../../../src/core/theme/algorithm/shared/genSizeMapToken.ts","../../../src/core/theme/seed.ts","../../../src/core/theme/utils.ts","../../../src/core/theme/algorithm/shared/genColorMapToken.ts","../../../src/core/theme/algorithm/shared/genRadius.ts","../../../src/core/theme/algorithm/shared/genCommonMapToken.ts","../../../src/core/theme/algorithm/default/colors.ts","../../../src/core/theme/algorithm/shared/genFontMapToken.ts","../../../src/core/theme/algorithm/shared/genFontSizes.ts","../../../src/core/theme/algorithm/default/index.ts","../../../src/core/theme/algorithm/dark/colors.ts","../../../src/core/theme/algorithm/dark/index.ts","../../../src/core/theme/algorithm/compact/genCompactSizeMapToken.ts","../../../src/core/theme/algorithm/compact/index.ts","../../../src/core/theme/algorithm/meeting/colors.ts","../../../src/core/theme/algorithm/util/getAlphaColor.ts","../../../src/core/theme/algorithm/util/alias.ts","../../../src/core/theme/alias/index.ts","../../../src/core/theme/algorithm/meeting/index.ts","../../../src/core/theme/interface/presetColors.ts","../../../src/core/theme/index.ts"],"sourcesContent":["/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from './index.js';\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n/**\n * AKA `contrast`\n *\n * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n */\nexport function readability(color1, color2) {\n var c1 = new TinyColor(color1);\n var c2 = new TinyColor(color2);\n return ((Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) /\n (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05));\n}\n/**\n * Ensure that foreground and background color combinations meet WCAG2 guidelines.\n * The third argument is an object.\n * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n * If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n *\n * Example\n * ```ts\n * new TinyColor().isReadable('#000', '#111') => false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nexport function isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nexport function mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\n","import { rgbaToArgbHex } from './conversion.js';\nimport { TinyColor } from './index.js';\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nexport function toMsFilter(firstColor, secondColor) {\n var color = new TinyColor(firstColor);\n var hex8String = '#' + rgbaToArgbHex(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new TinyColor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\n","import { TinyColor } from './index.js';\nimport { convertToPercentage } from './util.js';\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nexport function fromRatio(ratio, opts) {\n var newColor = {\n r: convertToPercentage(ratio.r),\n g: convertToPercentage(ratio.g),\n b: convertToPercentage(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new TinyColor(newColor, opts);\n}\n/** old random function */\nexport function legacyRandom() {\n return new TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nimport { TinyColor } from './index.js';\nexport function random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new TinyColor(res);\n}\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexport var bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n patterns.push(_colorString);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","import type { HeightMapToken, SeedToken } from '../../interface';\n\nconst genControlHeight = (token: SeedToken): HeightMapToken => {\n const { controlHeight } = token;\n\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25,\n };\n};\n\nexport default genControlHeight;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n return {\n sizeXXL: sizeUnit * (sizeStep + 8), // 48\n sizeXL: sizeUnit * (sizeStep + 4), // 32\n sizeLG: sizeUnit * (sizeStep + 2), // 24\n sizeMD: sizeUnit * (sizeStep + 1), // 20\n sizeMS: sizeUnit * sizeStep, // 16\n size: sizeUnit * sizeStep, // 16\n sizeSM: sizeUnit * (sizeStep - 1), // 12\n sizeXS: sizeUnit * (sizeStep - 2), // 8\n sizeXXS: sizeUnit * (sizeStep - 3), // 4\n };\n}\n","import type { PresetColorType, SeedToken } from './interface';\n\nexport const defaultPresetColors: PresetColorType = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911',\n};\n\nconst seedToken: SeedToken = {\n // preset color palettes\n ...defaultPresetColors,\n\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n\n colorBgBase: '',\n\n // Font\n fontFamily: `microsoft yahei,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontWeight: 400,\n fontSize: 12,\n\n // Line\n lineWidth: 1,\n lineType: 'solid',\n\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n\n // Radius\n borderRadius: 6,\n\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n\n // Control Base\n controlHeight: 32,\n\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n\n // opacity\n opacity: 1,\n\n // Wireframe\n wireframe: false,\n\n // Motion\n motion: true,\n //布局相关\n layoutHeaderHeight: 50,\n layoutSiderWidth: 200,\n layoutIconSize: 24,\n layoutNavHeight: 40,\n //渐变色\n gradientColors: ['rgba(0, 64, 237,0.3)', 'rgba(0, 229, 237,0.3)'],\n};\nexport default seedToken;\n","import { mapValues, isObject, toLower } from 'lodash-es';\nimport { TinyColor } from '@ctrl/tinycolor';\n/**\n * Sums the passed percentage to the R, G or B of a HEX color\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed part of the color\n */\nfunction addLight(color: string, amount: number) {\n const cc = parseInt(color, 16) + amount;\n const c = cc > 255 ? 255 : cc;\n return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`;\n}\n\n/**\n * Lightens a 6 char HEX color according to the passed percentage\n * @param {string} color The color to change\n * @param {number} amount The amount to change the color by\n * @returns {string} The processed color represented as HEX\n */\nexport function lighten(color: string, amount: number) {\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color;\n amount = Math.trunc((255 * amount) / 100);\n return `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount,\n )}${addLight(color.substring(4, 6), amount)}`;\n}\n\nexport function getTokenCssVar(data: any, prefix?: string) {\n if (typeof data !== 'object' || Array.isArray(data)) return;\n const tokenCss: any = {};\n mapValues(data, (itemValue, name) => {\n const varName = prefix ? '--' + `${prefix}-` + name : '--' + name;\n const value =\n typeof itemValue === 'number' &&\n !['lineheight', 'opacity', 'weight'].some((key) =>\n toLower(name).includes(key),\n )\n ? itemValue + 'px'\n : itemValue;\n if (isObject(itemValue)) return getTokenCssVar(value, name);\n tokenCss[varName] = value;\n });\n return tokenCss;\n}\n\nexport const getAlphaColor = (baseColor: string, alpha: number) => {\n return new TinyColor(baseColor).setAlpha(alpha).toRgbString();\n};\n\nexport const getDarkenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};\nexport const getLightenSolidColor = (baseColor: string, brightness: number) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};\n\nexport const getBackgroundColor = (baseColor: string, bgBaseColor: string) => {\n const color = new TinyColor(baseColor);\n return color.onBackground(bgBaseColor).toRgbString();\n};\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { ColorMapToken, SeedToken } from '../../interface';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport { getBackgroundColor, getAlphaColor } from '../../utils';\nimport { get } from 'lodash';\n\nexport const generateGradientColorPalettes: GenerateGradientColorMap = (\n bgBaseColor: string,\n gradientColors: string[],\n) => {\n return gradientColors.map(item=> getBackgroundColor(item as string, bgBaseColor));\n};\n\ninterface PaletteGenerators {\n generateColorPalettes: GenerateColorMap;\n generateNeutralColorPalettes: GenerateNeutralColorMap;\n}\n\nexport default function genColorMapToken(\n seed: SeedToken,\n { generateColorPalettes, generateNeutralColorPalettes }: PaletteGenerators,\n): ColorMapToken {\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase,\n } = seed;\n\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(\n colorBgBase,\n colorTextBase,\n );\n\n const gradientColors = generateGradientColorPalettes(\n neutralColors.colorBgBase,\n seed.gradientColors as any,\n );\n\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n\n return {\n ...neutralColors,\n gradientColors,\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff',\n };\n}\n","import type { MapToken } from '../../interface';\n\nconst genRadius = (\n radiusBase: number,\n): Pick<\n MapToken,\n | 'borderRadiusXS'\n | 'borderRadiusSM'\n | 'borderRadiusLG'\n | 'borderRadius'\n | 'borderRadiusOuter'\n | 'borderRadiusXL'\n | 'borderRadiusXXL'\n> => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusXL = radiusBase;\n let radiusXXL = radiusBase;\n let radiusOuter = radiusBase;\n\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n\n radiusXL = radiusLG > 0 ? radiusLG + 4 : radiusLG;\n radiusXXL = radiusLG > 0 ? radiusLG + 8 : radiusLG;\n\n\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusXL: radiusXL,\n borderRadiusXXL: radiusXXL,\n borderRadiusOuter: radiusOuter,\n };\n};\n\nexport default genRadius;\n","import type { CommonMapToken, SeedToken } from '../../interface';\nimport genRadius from './genRadius';\n\nexport default function genCommonMapToken(token: SeedToken): CommonMapToken {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth,\n opacity,\n layoutHeaderHeight,\n } = token;\n\n return {\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n\n // line\n lineWidthBold: lineWidth + 1,\n\n // radius\n ...genRadius(borderRadius),\n opacityImage: opacity,\n opacity1: opacity * 0.8,\n opacity2: opacity * 0.6,\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type {\n GenerateColorMap,\n GenerateNeutralColorMap,\n GenerateGradientColorMap,\n} from '../ColorMap';\nimport {\n getAlphaColor,\n getDarkenSolidColor,\n getBackgroundColor,\n} from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\n\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6],\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#fff';\n let colorTextBase = textBaseColor || '#000';\n\n colorBgBase = new TinyColor(colorBgBase).lighten()\n ? colorBgBase\n : new TinyColor(colorBgBase).lighten(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isDark()\n ? colorTextBase\n : new TinyColor(colorTextBase).darken(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n // colorText: getAlphaColor(colorTextBase, 0.88),\n // colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n // colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n // colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 4),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 15),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 6),\n\n colorText: '#222',\n colorTextSecondary: '#666',\n colorTextTertiary: '#999',\n colorTextQuaternary: '#999',\n\n\n };\n};\n","import type { FontMapToken } from '../../interface';\nimport genFontSizes from './genFontSizes';\n\nconst genFontMapToken = (fontSize: number): FontMapToken => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map((pair) => pair.size);\n const lineHeights = fontSizePairs.map((pair) => pair.lineHeight);\n\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2],\n };\n};\n\nexport default genFontMapToken;\n","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base: number) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * 2.71828 ** (i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n\n fontSizes[1] = base;\n\n return fontSizes.map((size) => {\n const height = size + 8;\n\n return {\n size,\n lineHeight: height / size,\n };\n });\n}\n","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nexport default function derivative(token: SeedToken): MapToken {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n return {\n ...token,\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n // Font\n ...genFontMapToken(token.fontSize),\n // Size\n ...genSizeMapToken(token),\n // Height\n ...genControlHeight(token),\n // Others\n ...genCommonMapToken(token),\n };\n}\n","import { generate } from '@ant-design/colors';\nimport type { GenerateColorMap, GenerateNeutralColorMap } from '../ColorMap';\nimport { getAlphaColor, getLightenSolidColor } from '../../utils';\nimport { TinyColor } from '@ctrl/tinycolor';\nexport const generateColorPalettes: GenerateColorMap = (baseColor: string) => {\n const colors = generate(baseColor, { theme: 'dark' });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4],\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes: GenerateNeutralColorMap = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n let colorBgBase = bgBaseColor || '#000';\n let colorTextBase = textBaseColor || '#fff';\n\n colorBgBase = new TinyColor(colorBgBase).isDark()\n ? colorBgBase\n : new TinyColor(colorBgBase).darken(100).toRgbString();\n colorTextBase = new TinyColor(colorTextBase).isLight()\n ? colorTextBase\n : new TinyColor(colorTextBase).lighten(100).toRgbString();\n\n return {\n colorBgBase,\n colorTextBase,\n\n\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.35),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.35),\n\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n\n colorBgElevated: getLightenSolidColor(colorBgBase, 12),\n colorBgContainer: getLightenSolidColor(colorBgBase, 8),\n colorBgLayout: getLightenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getLightenSolidColor(colorBgBase, 26),\n\n colorBorder: getLightenSolidColor(colorBgBase, 26),\n colorBorderSecondary: getLightenSolidColor(colorBgBase, 19),\n };\n};\n","import { generate } from '@ant-design/colors';\nimport type {\n DerivativeFunc,\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (\n token,\n mapToken,\n) => {\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey], { theme: 'dark' });\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n return {\n ...mergedMapToken,\n\n // Dark tokens\n ...colorPalettes,\n // Colors\n ...genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes,\n }),\n };\n};\n\nexport default derivative;\n","import type { SeedToken, SizeMapToken } from '../../interface';\n\nexport default function genSizeMapToken(token: SeedToken): SizeMapToken {\n const { sizeUnit, sizeStep } = token;\n\n const compactSizeStep = sizeStep - 2;\n\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1),\n };\n}\n","import genControlHeight from '../shared/genControlHeight';\nimport type {\n DerivativeFunc,\n MapToken,\n SeedToken,\n AliasToken,\n} from '../../interface';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\n\nconst derivative: DerivativeFunc<SeedToken, MapToken> = (token, mapToken) => {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n\n return {\n ...mergedMapToken,\n ...genCompactSizeMapToken(mapToken ?? token),\n\n // font\n ...genFontMapToken(fontSize),\n\n // controlHeight\n controlHeight,\n ...genControlHeight({ ...mergedMapToken, controlHeight }),\n };\n};\n\nexport default derivative;\n","import { getAlphaColor, getDarkenSolidColor } from '../../utils';\n\nexport const generateMettingNeutralColorPalettes = (\n bgBaseColor: string,\n textBaseColor: string,\n) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n\n return {\n colorBgBase,\n colorTextBase,\n\n colorText: getAlphaColor(colorTextBase, 0.9),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.8),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.7),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.6),\n\n colorFill: getAlphaColor(colorTextBase, 0.3),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.2),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.1),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.06),\n\n colorBgLayout: getDarkenSolidColor(colorBgBase, 6),\n colorBgContainer: getDarkenSolidColor(colorBgBase, 0),\n colorBgElevated: getDarkenSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 1),\n\n colorBorder: getDarkenSolidColor(colorBgBase, 30),\n colorBorderSecondary: getDarkenSolidColor(colorBgBase, 12),\n };\n};\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction isStableColor(color: number): boolean {\n return color >= 0 && color <= 255;\n}\n\nfunction getAlphaColor(frontColor: string, backgroundColor: string): string {\n const { r: fR, g: fG, b: fB, a: originAlpha } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n\n const { r: bR, g: bG, b: bB } = new TinyColor(backgroundColor).toRgb();\n\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({ r, g, b, a: Math.round(fA * 100) / 100 }).toRgbString();\n }\n }\n\n // fallback\n /* istanbul ignore next */\n return new TinyColor({ r: fR, g: fG, b: fB, a: 1 }).toRgbString();\n}\n\nexport default getAlphaColor;\n","import { TinyColor } from '@ctrl/tinycolor';\nimport type { AliasToken, MapToken, SeedToken } from '../../interface';\nimport seedToken from '../../seed';\nimport getAlphaColor from './getAlphaColor';\n\n/** Raw merge of `@ant-design/cssinjs` token. Which need additional process */\ntype RawMergedToken = MapToken & { override: Partial<AliasToken> };\n\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken: RawMergedToken): AliasToken {\n const { override, ...restToken } = derivativeToken;\n const overrideTokens = { ...override };\n\n Object.keys(seedToken).forEach((token) => {\n delete overrideTokens[token as keyof SeedToken];\n });\n\n const mergedToken = {\n ...restToken,\n ...overrideTokens,\n };\n\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n\n // Generate alias token\n const aliasToken: AliasToken = {\n ...mergedToken,\n\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n\n // Line\n lineWidthFocus: mergedToken.lineWidth * 2,\n\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n\n fontWeightStrong: 700,\n\n opacityLoading: 0.65,\n\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n\n boxShadow: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowSecondary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.04),\n 0 1px 8px -1px rgba(0, 0, 0, 0.03),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `0px 0px 10px 0px rgba(0, 0, 0, 0.1)`,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerUp: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.04),\n -3px 0 6px -4px rgba(0, 0, 0, 0.03),\n -9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowTop: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.04),\n 3px 0 6px -4px rgba(0, 0, 0, 0.03),\n 9px 0 28px 8px rgba(0, 0, 0, 0.02)\n `,\n boxShadowTabsOverflowBottom: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.04),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.03),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.02)\n `,\n // boxShadowCard: `\n // 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n // 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n // 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n // `,\n // boxShadowDrawerRight: `\n // -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerLeft: `\n // 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n // 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n // 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerUp: `\n // 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowDrawerDown: `\n // 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n // 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n // 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n // `,\n // boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n // boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)',\n\n // Override AliasToken\n ...overrideTokens,\n };\n\n return aliasToken;\n}\n","import defaultDerivative from '../algorithm/default';\nimport darkDerivative from '../algorithm/dark';\nimport compactDerivative from '../algorithm/compact';\nimport meetingDerivative from '../algorithm/meeting';\nimport seedToken from '../seed';\nimport type { ThemeType, MapToken, AliasToken, SeedToken } from '../interface';\nimport formatToken from '../algorithm/util/alias';\nimport { mergeWith, omit, pick } from 'lodash-es';\n\nconst getAliasToken = (\n token: Partial<AliasToken> = seedToken,\n type: ThemeType = 'default',\n) => {\n let seed = pick(token, Object.keys(seedToken)) as SeedToken;\n seed = mergeWith(seedToken, seed);\n const defaultMapToken: MapToken = defaultDerivative(seed);\n const defaultToken = omit(token, Object.keys(seedToken));\n let mapToken;\n\n switch (type) {\n case 'dark':\n mapToken = darkDerivative(seed, defaultMapToken);\n break;\n case 'compact':\n mapToken = compactDerivative(seed, defaultMapToken);\n break;\n case 'meeting':\n mapToken = meetingDerivative(seed, defaultMapToken);\n break;\n default:\n mapToken = defaultMapToken;\n break;\n }\n return formatToken({ ...mapToken, override: defaultToken });\n};\n\nexport default getAliasToken;\n","import { generate } from '@ant-design/colors';\nimport type {\n ColorPalettes,\n LegacyColorPalettes,\n MapToken,\n PresetColorType,\n SeedToken,\n} from '../../interface';\nimport { defaultPresetColors } from '../../seed';\nimport defaultAlgorithm from '../default';\nimport { generateMettingNeutralColorPalettes } from './colors';\n\nexport default function derivative(\n token: SeedToken,\n mapToken: MapToken,\n): MapToken {\n const mergedMapToken = mapToken ?? defaultAlgorithm(token);\n const colorPalettes = (\n Object.keys(defaultPresetColors) as (keyof PresetColorType)[]\n )\n .map((colorKey: keyof PresetColorType) => {\n const colors = generate(token[colorKey]);\n\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {}) as ColorPalettes & LegacyColorPalettes;\n })\n .reduce(\n (prev, cur) => {\n prev = {\n ...prev,\n ...cur,\n };\n return prev;\n },\n {} as ColorPalettes & LegacyColorPalettes,\n );\n const { fontSize, colorBgBase, colorTextBase } = mergedMapToken;\n\n return {\n ...mergedMapToken,\n\n ...colorPalettes,\n\n // Colors\n ...generateMettingNeutralColorPalettes(colorBgBase, colorTextBase),\n // Font\n fontSizeSM: fontSize ,\n fontSize: fontSize + 2,\n fontSizeLG: fontSize + 3,\n fontSizeXL: fontSize + 4,\n };\n}\n","export const PresetColors = [\n 'blue',\n 'purple',\n 'cyan',\n 'green',\n 'magenta',\n 'pink',\n 'red',\n 'orange',\n 'yellow',\n 'volcano',\n 'geekblue',\n 'lime',\n 'gold',\n] as const;\n\nexport type PresetColorKey = (typeof PresetColors)[number];\n\nexport type PresetColorType = Record<PresetColorKey, string>;\n\ntype ColorPaletteKeyIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type LegacyColorPalettes = {\n /**\n * @deprecated\n */\n [key in `${keyof PresetColorType}-${ColorPaletteKeyIndex}`]: string;\n};\n\nexport type ColorPalettes = {\n [key in `${keyof PresetColorType}${ColorPaletteKeyIndex}`]: string;\n};\n","import getAliasToken from './alias';\nexport { default as seed } from './seed';\nexport { default as defaultAlgorithm } from './algorithm/default';\nexport { default as darkAlgorithm } from './algorithm/dark';\nexport { default as compactAlgorithm } from './algorithm/compact';\nexport { default as formatAliasToken } from './algorithm/util/alias';\nexport { getAliasToken };\nexport * from './interface';\nexport * from './utils';\nconst token = getAliasToken();\nexport default token;\n"],"names":["bound01","n","max","indexOf","parseFloat","isOnePointZero","isPercent","isPercentage","Math","min","parseInt","String","abs","clamp01","val","boundAlpha","a","isNaN","convertToPercentage","concat","Number","pad2","c","length","rgbToRgb","r","g","b","rgbToHsl","h","s","l","d","hue2rgb","p","q","t","hslToRgb","rgbToHsv","v","hsvToRgb","i","floor","f","mod","rgbToHex","allow3Char","hex","round","toString","startsWith","charAt","join","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","rgb","ok","format","stringInputToObject","isValidCSSUnit","substr","Object","prototype","hasOwnProperty","call","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsv","hsva","hex3","hex6","hex4","hex8","trim","toLowerCase","named","match","exec","Boolean","TinyColor","opts","_a","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsv","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_i","entries","_b","key","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","amount","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","hue","rgb1","rgb2","analogous","results","slices","part","ret","push","complement","monochromatic","res","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","tinycolor","readability","color1","color2","c1","c2","isReadable","wcag2","level","size","readabilityLevel","mostReadable","baseColor","colorList","args","includeFallbackColors","bestColor","bestScore","colorList_1","score","toMsFilter","firstColor","secondColor","hex8String","secondHex8String","fromRatio","ratio","newColor","undefined","legacyRandom","random","options","count","totalColors","colors","seed","randomWithin","colorInput","num","namedColor","bounds","find","name","defineColor","hueRange","parsed","getHueRange","pickHue","luminosity","saturationRange","getColorInfo","sMin","sMax","pickSaturation","H","S","bMin","lowerBounds","s1","v1","s2","v2","m","getMinimumBrightness","bMax","pickBrightness","bounds_1","Error","range","bound","brightnessRange","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","index","opacity","_ref","_ref2","getHue","light","getSaturation","saturation","toFixed","getValue","value","generate","arguments","patterns","pColor","colorString","_hsv","_colorString","theme","map","_ref3","backgroundColor","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","keys","forEach","primary","genControlHeight","token","controlHeight","controlHeightSM","controlHeightXS","controlHeightLG","genSizeMapToken","sizeUnit","sizeStep","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","defaultPresetColors","seedToken","colorPrimary","colorSuccess","colorWarning","colorError","colorInfo","colorLink","colorTextBase","colorBgBase","fontFamily","fontFamilyCode","fontWeight","fontSize","lineWidth","lineType","motionUnit","motionBase","motionEaseOutCirc","motionEaseInOutCirc","motionEaseOut","motionEaseInOut","motionEaseOutBack","motionEaseInBack","motionEaseInQuint","motionEaseOutQuint","borderRadius","sizePopupArrow","zIndexBase","zIndexPopupBase","wireframe","motion","layoutHeaderHeight","layoutSiderWidth","layoutIconSize","layoutNavHeight","gradientColors","addLight","cc","substring","trunc","getTokenCssVar","data","prefix","Array","isArray","tokenCss","mapValues","itemValue","varName","some","toLower","includes","isObject","getAlphaColor","getDarkenSolidColor","brightness","getLightenSolidColor","getBackgroundColor","bgBaseColor","generateGradientColorPalettes","item","genColorMapToken","generateColorPalettes","generateNeutralColorPalettes","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorder","colorPrimaryBorderHover","colorPrimaryHover","colorPrimaryActive","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBg","colorErrorBgHover","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBg","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","colorLinkHover","colorLinkActive","colorBgMask","colorWhite","genRadius","radiusBase","radiusLG","radiusSM","radiusXS","radiusXL","radiusXXL","radiusOuter","borderRadiusXS","borderRadiusSM","borderRadiusLG","borderRadiusXL","borderRadiusXXL","borderRadiusOuter","genCommonMapToken","motionDurationFast","motionDurationMid","motionDurationSlow","lineWidthBold","opacityImage","opacity1","opacity2","textBaseColor","colorFill","colorFillSecondary","colorFillTertiary","colorFillQuaternary","colorBgLayout","colorBgContainer","colorBgElevated","colorBgSpotlight","colorBorder","colorBorderSecondary","colorText","colorTextSecondary","colorTextTertiary","colorTextQuaternary","genFontMapToken","fontSizePairs","base","fontSizes","fill","_","baseSize","intSize","ceil","lineHeight","genFontSizes","pair","lineHeights","fontSizeSM","fontSizeLG","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","lineHeightLG","lineHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","derivative","colorPalettes","colorKey","reduce","prev","cur","mapToken","defaultAlgorithm","compactSizeStep","mergedMapToken","genCompactSizeMapToken","generateMettingNeutralColorPalettes","isStableColor","frontColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","formatToken","derivativeToken","override","restToken","overrideTokens","mergedToken","screenXL","screenXXL","fastDuration","colorFillContent","colorFillContentHover","colorFillAlter","colorBgContainerDisabled","colorBorderBg","colorSplit","colorTextPlaceholder","colorTextDisabled","colorTextHeading","colorTextLabel","colorTextDescription","colorTextLightSolid","colorHighlight","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorWarningOutline","fontSizeIcon","lineWidthFocus","controlOutlineWidth","controlInteractiveSize","controlItemBgHover","controlItemBgActive","controlItemBgActiveHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","fontWeightStrong","opacityLoading","linkDecoration","linkHoverDecoration","linkFocusDecoration","controlPaddingHorizontal","controlPaddingHorizontalSM","paddingXXS","paddingXS","paddingSM","padding","paddingMD","paddingLG","paddingXL","paddingContentHorizontalLG","paddingContentVerticalLG","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginXXS","marginXS","marginSM","margin","marginMD","marginLG","marginXL","marginXXL","boxShadow","boxShadowSecondary","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenSMMax","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","getAliasToken","type","pick","mergeWith","defaultMapToken","defaultDerivative","defaultToken","omit","darkDerivative","compactDerivative","meetingDerivative","PresetColors"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}