reanimated-color-picker 2.3.5 → 2.4.0
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.
- package/lib/commonjs/colorKit/colorKit.js +17 -0
- package/lib/commonjs/colorKit/colorKit.js.map +13 -4
- package/lib/commonjs/components/Panels/Panel5.js +70 -60
- package/lib/commonjs/components/Panels/Panel5.js.map +16 -15
- package/lib/commonjs/utils.js +16 -5
- package/lib/commonjs/utils.js.map +8 -4
- package/lib/module/colorKit/colorKit.js +17 -0
- package/lib/module/colorKit/colorKit.js.map +13 -4
- package/lib/module/components/Panels/Panel5.js +70 -62
- package/lib/module/components/Panels/Panel5.js.map +16 -15
- package/lib/module/utils.js +15 -5
- package/lib/module/utils.js.map +8 -4
- package/lib/src/colorKit/colorKit.js +15 -0
- package/lib/src/components/Panels/Panel5.js +29 -23
- package/lib/src/utils.js +9 -0
- package/lib/typescript/colorKit/colorKit.d.ts +7 -0
- package/lib/typescript/colorKit/colorKit.d.ts.map +1 -1
- package/lib/typescript/components/Panels/Panel5.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +2 -0
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1046,6 +1046,23 @@ class Colors {
|
|
|
1046
1046
|
return luminance >= 0.5;
|
|
1047
1047
|
}
|
|
1048
1048
|
|
|
1049
|
+
/**
|
|
1050
|
+
* - Check if two colors are similar within a specified tolerance.
|
|
1051
|
+
* @example
|
|
1052
|
+
* const tolerance = 0;
|
|
1053
|
+
* const isEqual = colorKit.areColorsEqual("#F00", "red", tolerance); // true
|
|
1054
|
+
*/
|
|
1055
|
+
areColorsEqual(color1, color2) {
|
|
1056
|
+
let tolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
1057
|
+
const rgb1 = this.RGB(color1).object();
|
|
1058
|
+
const rgb2 = this.RGB(color2).object();
|
|
1059
|
+
const deltaR = rgb1.r - rgb2.r;
|
|
1060
|
+
const deltaG = rgb1.g - rgb2.g;
|
|
1061
|
+
const deltaB = rgb1.b - rgb2.b;
|
|
1062
|
+
const difference = Math.sqrt(deltaR * deltaR + deltaG * deltaG + deltaB * deltaB);
|
|
1063
|
+
return difference <= tolerance;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1049
1066
|
/**
|
|
1050
1067
|
* - Blends two colors by a certain amount.
|
|
1051
1068
|
* @example
|
|
@@ -182,6 +182,17 @@
|
|
|
182
182
|
"isDark",
|
|
183
183
|
"luminance",
|
|
184
184
|
"isLight",
|
|
185
|
+
"areColorsEqual",
|
|
186
|
+
"tolerance",
|
|
187
|
+
"arguments",
|
|
188
|
+
"undefined",
|
|
189
|
+
"rgb1",
|
|
190
|
+
"rgb2",
|
|
191
|
+
"deltaR",
|
|
192
|
+
"deltaG",
|
|
193
|
+
"deltaB",
|
|
194
|
+
"difference",
|
|
195
|
+
"sqrt",
|
|
185
196
|
"blend",
|
|
186
197
|
"percentage",
|
|
187
198
|
"rgba1",
|
|
@@ -193,8 +204,6 @@
|
|
|
193
204
|
"gray",
|
|
194
205
|
"grayColor",
|
|
195
206
|
"randomHslColor",
|
|
196
|
-
"arguments",
|
|
197
|
-
"undefined",
|
|
198
207
|
"random",
|
|
199
208
|
"randomNumber",
|
|
200
209
|
"randomHsvColor",
|
|
@@ -215,7 +224,7 @@
|
|
|
215
224
|
],
|
|
216
225
|
"sources": ["../../../src/colorKit/colorKit.ts"],
|
|
217
226
|
"sourcesContent": [
|
|
218
|
-
"import colorsRegex from './colorsRegex';\r\nimport namedColors from './namedColors';\r\nimport PrivateMethods from './PrivateMethods';\r\nimport { clamp100, clampAlpha, clampHue, clampRGB, randomNumber } from './utilities';\r\n\r\nimport type {\r\n ColorFormats,\r\n ConversionMethods,\r\n hslaT,\r\n hslT,\r\n hsvaT,\r\n hsvT,\r\n hwbaT,\r\n hwbT,\r\n rgbaT,\r\n rgbT,\r\n SupportedColorFormats,\r\n} from './types';\r\n\r\nclass Colors {\r\n private _: InstanceType<typeof PrivateMethods>;\r\n private returnColorObject: (color: SupportedColorFormats) => ConversionMethods;\r\n\r\n constructor() {\r\n this._ = new PrivateMethods();\r\n\r\n this.returnColorObject = (color: SupportedColorFormats) => {\r\n return {\r\n hex: () => this.HEX(color),\r\n rgb: () => this.RGB(color),\r\n hsl: () => this.HSL(color),\r\n hsv: () => this.HSV(color),\r\n hwb: () => this.HWB(color),\r\n };\r\n };\r\n }\r\n\r\n /** - Identify the color format of a given `string` or `object`, and return `null` for invalid colors. */\r\n getFormat(color: SupportedColorFormats): ColorFormats | 'named' | null {\r\n // color int\r\n if (typeof color === 'number') color = '#' + color.toString(16);\r\n\r\n // color string\r\n if (typeof color === 'string') {\r\n color = color.trim().toLowerCase();\r\n if (namedColors.hasOwnProperty(color)) return 'named';\r\n\r\n for (const key in colorsRegex) {\r\n const format = key as ColorFormats;\r\n const entry = colorsRegex[format];\r\n if (Array.isArray(entry)) {\r\n for (let i = 0; i < entry.length; i++) if (entry[i].test(color)) return format;\r\n continue;\r\n }\r\n if (entry.test(color)) return format;\r\n }\r\n }\r\n\r\n // color object\r\n if (typeof color === 'object') {\r\n const rgbaKeys = ['r', 'g', 'b', 'a'] as (keyof rgbaT)[];\r\n const isRgbaOb = rgbaKeys.every(k => color.hasOwnProperty(k) && typeof (color as rgbaT)[k] === 'number');\r\n if (isRgbaOb) return 'rgba';\r\n\r\n const rgbKeys = ['r', 'g', 'b'] as (keyof rgbT)[];\r\n const isRgbOb = rgbKeys.every(k => color.hasOwnProperty(k) && typeof (color as rgbT)[k] === 'number');\r\n if (isRgbOb) return 'rgb';\r\n\r\n const hslaKeys = ['h', 's', 'l', 'a'] as (keyof hslaT)[];\r\n const isHslaOb = hslaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hslaT)[k] === 'number');\r\n if (isHslaOb) return 'hsla';\r\n\r\n const hslKeys = ['h', 's', 'l'] as (keyof hslT)[];\r\n const isHslOb = hslKeys.every(k => color.hasOwnProperty(k) && typeof (color as hslT)[k] === 'number');\r\n if (isHslOb) return 'hsl';\r\n\r\n const hsvaKeys = ['h', 's', 'v', 'a'] as (keyof hsvaT)[];\r\n const isHsvaOb = hsvaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hsvaT)[k] === 'number');\r\n if (isHsvaOb) return 'hsva';\r\n\r\n const hsvKeys = ['h', 's', 'v'] as (keyof hsvT)[];\r\n const isHsvOb = hsvKeys.every(k => color.hasOwnProperty(k) && typeof (color as hsvT)[k] === 'number');\r\n if (isHsvOb) return 'hsv';\r\n\r\n const hwbaKeys = ['h', 'w', 'b', 'a'] as (keyof hwbaT)[];\r\n const isHwbaOb = hwbaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hwbaT)[k] === 'number');\r\n if (isHwbaOb) return 'hwba';\r\n\r\n const hwbKeys = ['h', 'w', 'b'] as (keyof hwbT)[];\r\n const isHwbOb = hwbKeys.every(k => color.hasOwnProperty(k) && typeof (color as hwbT)[k] === 'number');\r\n if (isHwbOb) return 'hwb';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // * RGB\r\n /** - Convert `HSL`, `HSLA`, `HSV`, `HSVA` or `HEX` color to `RGBA` color format. */\r\n RGB(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HEX_RGBA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HEX_RGBA(color as string);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HEX_RGBA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HSL_RGBA(color as hslaT | hslT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HSL_RGBA(color as hslaT | hslT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HSL_RGBA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HSV_RGBA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HSV_RGBA(color as hsvaT | hsvT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HSV_RGBA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HWB_RGBA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HWB_RGBA(color as hwbaT | hwbT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HWB_RGBA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n return [r, g, b, a];\r\n },\r\n object: () => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n return { r, g, b, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `RGB` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'rgba(0, 0, 0, 1)' : 'rgb(0, 0, 0)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ r: 0, g: 0, b: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HEX\r\n /** - Convert `HSL`, `HSLA`, `HSV`, `HSVA`, `RGB` or `RGBA` color to `HEX` color format. */\r\n HEX(color: SupportedColorFormats): string {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return this._.RGB_HEX(color as string | rgbaT);\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return this._.HSL_HEX(color as string | hslaT | hslT);\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return this._.HSV_HEX(color as hsvaT | hsvT);\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return this._.HWB_HEX(color as hwbaT | hwbT);\r\n }\r\n\r\n if (colorType?.includes('hex')) return color as string;\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HEX` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return '#000000';\r\n }\r\n\r\n // * HSL\r\n /** - Convert `HEX`, `HSV`, `HSVA`, `RGB` or `RGBA` color to `HSLA` color format. */\r\n HSL(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HEX_HSLA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HEX_HSLA(color as string);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HEX_HSLA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.RGB_HSLA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.RGB_HSLA(color as rgbaT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.RGB_HSLA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HSV_HSLA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HSV_HSLA(color as hsvaT | hsvT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HSV_HSLA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HWB_HSLA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HWB_HSLA(color as hwbaT | hwbT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HWB_HSLA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n return [h, s, l, a];\r\n },\r\n object: () => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n return { h, s, l, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HSL` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hsla(0, 0%, 0%, 1)' : 'hsl(0, 0%, 0%)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ h: 0, s: 0, l: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HSV\r\n /** - Convert `HSL`, `HSLA`, `HEX`, `RGB` or `RGBA` color to `HSVA` color format. */\r\n HSV(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HEX_HSVA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HEX_HSVA(color as string);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HEX_HSVA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.RGB_HSVA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.RGB_HSVA(color as rgbaT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.RGB_HSVA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HSL_HSVA(color as hslaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HSL_HSVA(color as hslaT | hslT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HSL_HSVA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HWB_HSVA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HWB_HSVA(color as hwbaT | hwbT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HWB_HSVA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n return [h, s, v, a];\r\n },\r\n object: () => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n return { h, s, v, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HSV` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hsva(0, 0%, 0%, 1)' : 'hsv(0, 0%, 0%)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ h: 0, s: 0, v: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HWB\r\n /** - Convert `HSL`, `HSLA`, `HEX`, `RGB` or `RGBA` color to `HWBA` color format. */\r\n HWB(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HEX_HWBA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HEX_HWBA(color as string);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HEX_HWBA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.RGB_HWBA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.RGB_HWBA(color as rgbaT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.RGB_HWBA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HSL_HWBA(color as hslaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HSL_HWBA(color as hslaT | hslT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HSL_HWBA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HSV_HWBA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HSV_HWBA(color as hsvaT | hsvT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HSV_HWBA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n return [h, w, b, a];\r\n },\r\n object: () => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n return { h, w, b, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HWB` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hwba(0, 0%, 100%, 1)' : 'hwb(0, 0%, 100%)'),\r\n array: () => [0, 0, 100, 1],\r\n object: () => ({ h: 0, w: 0, b: 100, a: 1 }),\r\n };\r\n }\r\n\r\n // * color's channels\r\n /** - Get the `red` channel value of a given color. */\r\n getRed(color: SupportedColorFormats): number {\r\n const { r } = this.RGB(color).object();\r\n return r;\r\n }\r\n /** Set the `red` value of a color to a specific amount.*/\r\n setRed(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { g, b, a } = this.RGB(color).object();\r\n const newR = clampRGB(amount);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `red` value of a color by the given percentage/amount.\r\n * @example\r\n * increaseRed(''rgb(100, 100, 100)', 20).hex();\r\n * increaseRed('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseRed(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const red = typeof amount === 'string' ? r + r * (parseFloat(amount) / 100) : r + amount;\r\n const newR = clampRGB(red);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `red` value of a color by the given percentage/amount\r\n * @example\r\n * decreaseRed('rgb(100, 100, 100)', 20).hex();\r\n * decreaseRed('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseRed(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const red = typeof amount === 'string' ? r - r * (parseFloat(amount) / 100) : r - amount;\r\n const newR = clampRGB(red);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n /** - Get the `green` channel value of a given color. */\r\n getGreen(color: SupportedColorFormats): number {\r\n const { g } = this.RGB(color).object();\r\n return g;\r\n }\r\n /** - Set the `green` value of a color to a specific amount.*/\r\n setGreen(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, b, a } = this.RGB(color).object();\r\n const newG = clampRGB(amount);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `green` value of a color by the given percentage.\r\n * @example\r\n * increaseGreen('rgb(100, 100, 100)', 20).hex();\r\n * increaseGreen('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseGreen(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const green = typeof amount === 'string' ? g + g * (parseFloat(amount) / 100) : g + amount;\r\n const newG = clampRGB(green);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `green` value of a color by the given percentage.\r\n * @example\r\n * decreaseGreen('rgb(100, 100, 100)', 20).hex();\r\n * decreaseGreen('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseGreen(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const green = typeof amount === 'string' ? g - g * (parseFloat(amount) / 100) : g - amount;\r\n const newG = clampRGB(green);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n /** - Get the `blue` channel value of a given color. */\r\n getBlue(color: SupportedColorFormats): number {\r\n const { b } = this.RGB(color).object();\r\n return b;\r\n }\r\n /** - Set the `blue` value of a color to a specific amount.*/\r\n setBlur(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, g, a } = this.RGB(color).object();\r\n const newB = clampRGB(amount);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `blue` value of a color by the given percentage.\r\n * @example\r\n * increaseBlue('rgb(100, 100, 100)', 20).hex();\r\n * increaseBlue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseBlue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const blue = typeof amount === 'string' ? b + b * (parseFloat(amount) / 100) : b + amount;\r\n const newB = clampRGB(blue);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `blue` value of a color by the given percentage.\r\n * @example\r\n * decreaseBlue('rgb(100, 100, 100)', 20).hex();\r\n * decreaseBlue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseBlue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const blue = typeof amount === 'string' ? b - b * (parseFloat(amount) / 100) : b - amount;\r\n const newB = clampRGB(blue);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* hue\r\n /** - Get the `hue` channel value of a given color. */\r\n getHue(color: SupportedColorFormats): number {\r\n const { h } = this.HSL(color).object();\r\n return h;\r\n }\r\n /** - Set the `hue` value of a color to a specific amount.*/\r\n setHue(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { s, l, a } = this.HSL(color).object();\r\n const newH = clampHue(amount);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `hue` value of a color by the given percentage/amount.\r\n * @example\r\n * increaseHue('rgb(100, 100, 100)', 20).hex();\r\n * increaseHue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseHue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const hue = typeof amount === 'string' ? h + h * (parseFloat(amount) / 100) : h + amount;\r\n const newH = clampHue(hue);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `hue` value of a color by the given percentage/amount.\r\n * @example\r\n * decreaseHue('rgb(100, 100, 100)', 20).hex();\r\n * decreaseHue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseHue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const hue = typeof amount === 'string' ? h - h * (parseFloat(amount) / 100) : h - amount;\r\n const newH = clampHue(hue);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /**\r\n * - Spin the `hue` channel by a certain percentage/amount.\r\n * @example\r\n * spin('red', 20).hex();\r\n * spin('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n spin(color: SupportedColorFormats, degree: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const spin = typeof degree === 'string' ? s * (parseFloat(degree) / 100) : degree;\r\n const newColor = { h: Math.round((h + spin) % 360), s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* saturation\r\n /** - Get the `saturation` value of a given color. */\r\n getSaturation(color: SupportedColorFormats): number {\r\n const { s } = this.HSL(color).object();\r\n return s;\r\n }\r\n /** - Set the `saturation` value of a color to a specific amount.*/\r\n setSaturation(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, l, a } = this.HSL(color).object();\r\n const newS = clamp100(amount);\r\n const saturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(saturatedColor);\r\n }\r\n /**\r\n * - Increase the saturation of the given color by a certain percentage/amount.\r\n * @example\r\n * saturate('red', 20).hex();\r\n * saturate('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n saturate(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const saturation = typeof amount === 'string' ? s + s * (parseFloat(amount) / 100) : s + amount;\r\n const newS = clamp100(saturation);\r\n const saturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(saturatedColor);\r\n }\r\n /**\r\n * - Decrease the saturation of the given color by a certain percentage/amount.\r\n * @example\r\n * saturate('red', 20).hex();\r\n * saturate('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n desaturate(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const saturation = typeof amount === 'string' ? s - s * (parseFloat(amount) / 100) : s - amount;\r\n const newS = clamp100(saturation);\r\n const desaturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(desaturatedColor);\r\n }\r\n\r\n //* brightness\r\n /** - Get color's HSL `luminosity` channel value.\r\n * - If you want the overall `luminosity` of a color use `getLuminanceWCAG` method.\r\n */\r\n getLuminance(color: SupportedColorFormats): number {\r\n const { l } = this.HSL(color).object();\r\n return l;\r\n }\r\n /** - Set HSL's `luminosity` channel for a given color to a specific amount.*/\r\n setLuminance(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, s, a } = this.HSL(color).object();\r\n const newL = clamp100(amount);\r\n const newColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /**\r\n * - Increase the brightness of the given color by a certain percentage/amount.\r\n * @example\r\n * brighten('red', 20).hex();\r\n * brighten('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n brighten(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const lum = typeof amount === 'string' ? l + l * (parseFloat(amount) / 100) : l + amount;\r\n const newL = clamp100(lum);\r\n const brightenedColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(brightenedColor);\r\n }\r\n /**\r\n * - Decrease the brightness of the given color by a certain percentage/amount.\r\n * @example\r\n * darken('red', 20).hex();\r\n * darken('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n darken(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const lum = typeof amount === 'string' ? l - l * (parseFloat(amount) / 100) : l - amount;\r\n const newL = clamp100(lum);\r\n const darkenedColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(darkenedColor);\r\n }\r\n\r\n /** - Get the HSV's `value` (brightness) channel value of a given color. */\r\n getBrightness(color: SupportedColorFormats): number {\r\n const { v } = this.HSV(color).object();\r\n return v;\r\n }\r\n /** - Set HSV's `value` (brightness) channel for a given color to a specific amount.*/\r\n setBrightness(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, s, a } = this.HSV(color).object();\r\n const newV = clamp100(amount);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase HSV's `value` (brightness) channel value of a color by the given percentage/amount.*/\r\n increaseBrightness(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, v, a } = this.HSV(color).object();\r\n const value = typeof amount === 'string' ? v + v * (parseFloat(amount) / 100) : v + amount;\r\n const newV = clamp100(value);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease HSV's `value` (brightness) channel value of a color by the given percentage/amount.*/\r\n decreaseBrightness(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, v, a } = this.HSV(color).object();\r\n const value = typeof amount === 'string' ? v - v * (parseFloat(amount) / 100) : v - amount;\r\n const newV = clamp100(value);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* alpha\r\n /** - Get the `alpha` value of a given color. */\r\n getAlpha(color: SupportedColorFormats): number {\r\n const { a } = this.RGB(color).object();\r\n return a;\r\n }\r\n /** - Set the `alpha` value of a color to a specific amount.*/\r\n setAlpha(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, g, b } = this.RGB(color).object();\r\n const newA = clampAlpha(amount);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `alpha` value of a color by the given percentage.*/\r\n increaseAlpha(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const alpha = typeof amount === 'string' ? a + a * (parseFloat(amount) / 100) : a + amount;\r\n const newA = clampAlpha(alpha);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `alpha` value of a color by the given percentage.*/\r\n decreaseAlpha(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const alpha = typeof amount === 'string' ? a - a * (parseFloat(amount) / 100) : a - amount;\r\n const newA = clampAlpha(alpha);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n // * tools\r\n /** - Returns the perceived `luminance` of a color, from `0-1` as defined by Web Content Accessibility Guidelines (Version 2.0). */\r\n getLuminanceWCAG(color: SupportedColorFormats): number {\r\n const { r, g, b } = this.RGB(color).object();\r\n const a = [r, g, b].map(v => (v / 255 <= 0.03928 ? v / 255 / 12.92 : Math.pow((v / 255 + 0.055) / 1.055, 2.4)));\r\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\r\n }\r\n\r\n /** - Calculates the contrast ratio between two colors, useful for ensuring accessibility and readability. */\r\n contrastRatio(color1: SupportedColorFormats, color2: SupportedColorFormats): number {\r\n const luminance1 = this.getLuminanceWCAG(color1);\r\n const luminance2 = this.getLuminanceWCAG(color2);\r\n const contrast = (Math.max(luminance1, luminance2) + 0.05) / (Math.min(luminance1, luminance2) + 0.05);\r\n return Math.round(contrast * 100) / 100;\r\n }\r\n\r\n /** - Returns a boolean indicating whether the color is considered \"dark\" or not */\r\n isDark(color: SupportedColorFormats): boolean {\r\n const luminance = this.getLuminanceWCAG(color);\r\n return luminance < 0.5;\r\n }\r\n\r\n /** - Returns a boolean indicating whether the color is considered \"light\" or not */\r\n isLight(color: SupportedColorFormats): boolean {\r\n const luminance = this.getLuminanceWCAG(color);\r\n return luminance >= 0.5;\r\n }\r\n\r\n /**\r\n * - Blends two colors by a certain amount.\r\n * @example\r\n * blend('yellow', 'red', 50).hex(); // #ff8000\r\n */\r\n blend(color1: SupportedColorFormats, color2: SupportedColorFormats, percentage: number): ConversionMethods {\r\n percentage = percentage / 100;\r\n\r\n const rgba1 = this.RGB(color1).object();\r\n const rgba2 = this.RGB(color2).object();\r\n\r\n const r = clampRGB(rgba1.r * (1 - percentage) + rgba2.r * percentage),\r\n g = clampRGB(rgba1.g * (1 - percentage) + rgba2.g * percentage),\r\n b = clampRGB(rgba1.b * (1 - percentage) + rgba2.b * percentage),\r\n a = clampAlpha(rgba1.a * (1 - percentage) + rgba2.a * percentage);\r\n\r\n const blendedColor = { r, g, b, a };\r\n\r\n return this.returnColorObject(blendedColor);\r\n }\r\n\r\n /** - Invert (negate) a color, black becomes white, white becomes black, blue becomes orange and so on. */\r\n invert(color: SupportedColorFormats): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const invertedColor = { r: 255 - r, g: 255 - g, b: 255 - b, a };\r\n return this.returnColorObject(invertedColor);\r\n }\r\n\r\n /** - Completely desaturate a color into grayscale. */\r\n grayscale(color: SupportedColorFormats): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const gray = clampRGB(r * 0.3 + g * 0.59 + b * 0.11);\r\n const grayColor = { r: gray, g: gray, b: gray, a };\r\n\r\n return this.returnColorObject(grayColor);\r\n }\r\n\r\n /** - Generate a random color from `HSL` values. */\r\n randomHslColor({ h = [0, 360], s = [0, 100], l = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n s: clamp100(randomNumber(s[0], s[1])),\r\n l: clamp100(randomNumber(l[0], l[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `HSV` values. */\r\n randomHsvColor({ h = [0, 360], s = [0, 100], v = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n s: clamp100(randomNumber(s[0], s[1])),\r\n v: clamp100(randomNumber(v[0], v[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `RGB` values. */\r\n randomRgbColor({ r = [0, 255], g = [0, 255], b = [0, 255], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n r: clampRGB(randomNumber(r[0], r[1])),\r\n g: clampRGB(randomNumber(g[0], g[1])),\r\n b: clampRGB(randomNumber(b[0], b[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `HWB` values. */\r\n randomHwbColor({ h = [0, 360], w = [0, 100], b = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n w: clamp100(randomNumber(w[0], w[1])),\r\n b: clamp100(randomNumber(b[0], b[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n\r\n /** - Returns the first color with the desired contrast ratio against the second color */\r\n adjustContrast(color1: SupportedColorFormats, color2: SupportedColorFormats, ratio = 4.5): ConversionMethods {\r\n const contrast = this.contrastRatio(color1, color2);\r\n const color1RGB = this.RGB(color1).object();\r\n const channels = ['r', 'g', 'b'] as const;\r\n\r\n const adjustLuminance = (colorRGB: rgbaT, by: number) => {\r\n const r = clampRGB(colorRGB.r + by);\r\n const g = clampRGB(colorRGB.g + by);\r\n const b = clampRGB(colorRGB.b + by);\r\n return { r, g, b, a: colorRGB.a };\r\n };\r\n\r\n let newColor = color1RGB;\r\n\r\n //* increase contrast\r\n if (ratio && contrast < ratio) {\r\n while (this.contrastRatio(newColor, color2) < ratio) {\r\n const increase = this.isDark(color2); // if the background color is dark\r\n newColor = adjustLuminance(newColor, increase ? 1 : -1);\r\n\r\n // break if the color reached the limit\r\n if (channels.every(e => newColor[e] === 0)) break;\r\n if (channels.every(e => newColor[e] === 255)) break;\r\n }\r\n //* decrease contrast\r\n } else if (ratio && contrast > ratio) {\r\n while (this.contrastRatio(newColor, color2) > ratio) {\r\n const increase = !this.isDark(color2); // if the background color is light\r\n newColor = adjustLuminance(newColor, increase ? 1 : -1);\r\n\r\n // break if the color reached the limit\r\n if (channels.every(e => newColor[e] === 0)) break;\r\n if (channels.every(e => newColor[e] === 255)) break;\r\n }\r\n }\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n}\r\n\r\nconst colorKit = new Colors();\r\n\r\nexport default colorKit;\r\n"
|
|
227
|
+
"import colorsRegex from './colorsRegex';\r\nimport namedColors from './namedColors';\r\nimport PrivateMethods from './PrivateMethods';\r\nimport { clamp100, clampAlpha, clampHue, clampRGB, randomNumber } from './utilities';\r\n\r\nimport type {\r\n ColorFormats,\r\n ConversionMethods,\r\n hslaT,\r\n hslT,\r\n hsvaT,\r\n hsvT,\r\n hwbaT,\r\n hwbT,\r\n rgbaT,\r\n rgbT,\r\n SupportedColorFormats,\r\n} from './types';\r\n\r\nclass Colors {\r\n private _: InstanceType<typeof PrivateMethods>;\r\n private returnColorObject: (color: SupportedColorFormats) => ConversionMethods;\r\n\r\n constructor() {\r\n this._ = new PrivateMethods();\r\n\r\n this.returnColorObject = (color: SupportedColorFormats) => {\r\n return {\r\n hex: () => this.HEX(color),\r\n rgb: () => this.RGB(color),\r\n hsl: () => this.HSL(color),\r\n hsv: () => this.HSV(color),\r\n hwb: () => this.HWB(color),\r\n };\r\n };\r\n }\r\n\r\n /** - Identify the color format of a given `string` or `object`, and return `null` for invalid colors. */\r\n getFormat(color: SupportedColorFormats): ColorFormats | 'named' | null {\r\n // color int\r\n if (typeof color === 'number') color = '#' + color.toString(16);\r\n\r\n // color string\r\n if (typeof color === 'string') {\r\n color = color.trim().toLowerCase();\r\n if (namedColors.hasOwnProperty(color)) return 'named';\r\n\r\n for (const key in colorsRegex) {\r\n const format = key as ColorFormats;\r\n const entry = colorsRegex[format];\r\n if (Array.isArray(entry)) {\r\n for (let i = 0; i < entry.length; i++) if (entry[i].test(color)) return format;\r\n continue;\r\n }\r\n if (entry.test(color)) return format;\r\n }\r\n }\r\n\r\n // color object\r\n if (typeof color === 'object') {\r\n const rgbaKeys = ['r', 'g', 'b', 'a'] as (keyof rgbaT)[];\r\n const isRgbaOb = rgbaKeys.every(k => color.hasOwnProperty(k) && typeof (color as rgbaT)[k] === 'number');\r\n if (isRgbaOb) return 'rgba';\r\n\r\n const rgbKeys = ['r', 'g', 'b'] as (keyof rgbT)[];\r\n const isRgbOb = rgbKeys.every(k => color.hasOwnProperty(k) && typeof (color as rgbT)[k] === 'number');\r\n if (isRgbOb) return 'rgb';\r\n\r\n const hslaKeys = ['h', 's', 'l', 'a'] as (keyof hslaT)[];\r\n const isHslaOb = hslaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hslaT)[k] === 'number');\r\n if (isHslaOb) return 'hsla';\r\n\r\n const hslKeys = ['h', 's', 'l'] as (keyof hslT)[];\r\n const isHslOb = hslKeys.every(k => color.hasOwnProperty(k) && typeof (color as hslT)[k] === 'number');\r\n if (isHslOb) return 'hsl';\r\n\r\n const hsvaKeys = ['h', 's', 'v', 'a'] as (keyof hsvaT)[];\r\n const isHsvaOb = hsvaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hsvaT)[k] === 'number');\r\n if (isHsvaOb) return 'hsva';\r\n\r\n const hsvKeys = ['h', 's', 'v'] as (keyof hsvT)[];\r\n const isHsvOb = hsvKeys.every(k => color.hasOwnProperty(k) && typeof (color as hsvT)[k] === 'number');\r\n if (isHsvOb) return 'hsv';\r\n\r\n const hwbaKeys = ['h', 'w', 'b', 'a'] as (keyof hwbaT)[];\r\n const isHwbaOb = hwbaKeys.every(k => color.hasOwnProperty(k) && typeof (color as hwbaT)[k] === 'number');\r\n if (isHwbaOb) return 'hwba';\r\n\r\n const hwbKeys = ['h', 'w', 'b'] as (keyof hwbT)[];\r\n const isHwbOb = hwbKeys.every(k => color.hasOwnProperty(k) && typeof (color as hwbT)[k] === 'number');\r\n if (isHwbOb) return 'hwb';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // * RGB\r\n /** - Convert `HSL`, `HSLA`, `HSV`, `HSVA` or `HEX` color to `RGBA` color format. */\r\n RGB(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HEX_RGBA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HEX_RGBA(color as string);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HEX_RGBA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HSL_RGBA(color as hslaT | hslT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HSL_RGBA(color as hslaT | hslT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HSL_RGBA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HSV_RGBA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HSV_RGBA(color as hsvaT | hsvT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HSV_RGBA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { r, g, b, a } = this._.HWB_RGBA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a ?? 1})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const { r, g, b, a } = this._.HWB_RGBA(color as hwbaT | hwbT);\r\n return [r, g, b, a];\r\n },\r\n object: () => this._.HWB_RGBA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n if (alpha) return `rgba(${r}, ${g}, ${b}, ${a})`;\r\n\r\n return `rgb(${r}, ${g}, ${b})`;\r\n },\r\n array: () => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n return [r, g, b, a];\r\n },\r\n object: () => {\r\n const rgba = typeof color === 'string' ? this._.getRgbObject(color) : (color as rgbaT),\r\n r = clampRGB(rgba.r),\r\n g = clampRGB(rgba.g),\r\n b = clampRGB(rgba.b),\r\n a = clampAlpha(rgba.a ?? 1);\r\n\r\n return { r, g, b, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `RGB` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'rgba(0, 0, 0, 1)' : 'rgb(0, 0, 0)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ r: 0, g: 0, b: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HEX\r\n /** - Convert `HSL`, `HSLA`, `HSV`, `HSVA`, `RGB` or `RGBA` color to `HEX` color format. */\r\n HEX(color: SupportedColorFormats): string {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return this._.RGB_HEX(color as string | rgbaT);\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return this._.HSL_HEX(color as string | hslaT | hslT);\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return this._.HSV_HEX(color as hsvaT | hsvT);\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return this._.HWB_HEX(color as hwbaT | hwbT);\r\n }\r\n\r\n if (colorType?.includes('hex')) return color as string;\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HEX` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return '#000000';\r\n }\r\n\r\n // * HSL\r\n /** - Convert `HEX`, `HSV`, `HSVA`, `RGB` or `RGBA` color to `HSLA` color format. */\r\n HSL(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HEX_HSLA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HEX_HSLA(color as string);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HEX_HSLA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.RGB_HSLA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.RGB_HSLA(color as rgbaT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.RGB_HSLA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HSV_HSLA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HSV_HSLA(color as hsvaT | hsvT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HSV_HSLA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, l, a } = this._.HWB_HSLA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a ?? 1})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const { h, s, l, a } = this._.HWB_HSLA(color as hwbaT | hwbT);\r\n return [h, s, l, a];\r\n },\r\n object: () => this._.HWB_HSLA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hsla(${h}, ${s}%, ${l}%, ${a})` : `hsl(${h}, ${s}%, ${l}%)`;\r\n\r\n if (alpha) return `hsla(${h}, ${s}%, ${l}%, ${a})`;\r\n\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n },\r\n array: () => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n return [h, s, l, a];\r\n },\r\n object: () => {\r\n const hsla = typeof color === 'string' ? this._.getHslObject(color) : (color as hslaT),\r\n h = clampHue(hsla.h),\r\n s = clamp100(hsla.s),\r\n l = clamp100(hsla.l),\r\n a = clampAlpha(hsla.a ?? 1);\r\n\r\n return { h, s, l, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HSL` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hsla(0, 0%, 0%, 1)' : 'hsl(0, 0%, 0%)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ h: 0, s: 0, l: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HSV\r\n /** - Convert `HSL`, `HSLA`, `HEX`, `RGB` or `RGBA` color to `HSVA` color format. */\r\n HSV(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HEX_HSVA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HEX_HSVA(color as string);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HEX_HSVA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.RGB_HSVA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.RGB_HSVA(color as rgbaT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.RGB_HSVA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HSL_HSVA(color as hslaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HSL_HSVA(color as hslaT | hslT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HSL_HSVA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, s, v, a } = this._.HWB_HSVA(color as hwbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a ?? 1})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const { h, s, v, a } = this._.HWB_HSVA(color as hwbaT | hwbT);\r\n return [h, s, v, a];\r\n },\r\n object: () => this._.HWB_HSVA(color as hwbaT | hwbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hsva(${h}, ${s}%, ${v}%, ${a})` : `hsv(${h}, ${s}%, ${v}%)`;\r\n\r\n if (alpha) return `hsva(${h}, ${s}%, ${v}%, ${a})`;\r\n\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n },\r\n array: () => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n return [h, s, v, a];\r\n },\r\n object: () => {\r\n const hsva = typeof color === 'string' ? this._.getHsvObject(color) : (color as hsvaT),\r\n h = clampHue(hsva.h),\r\n s = clamp100(hsva.s),\r\n v = clamp100(hsva.v),\r\n a = clampAlpha(hsva.a ?? 1);\r\n\r\n return { h, s, v, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HSV` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hsva(0, 0%, 0%, 1)' : 'hsv(0, 0%, 0%)'),\r\n array: () => [0, 0, 0, 1],\r\n object: () => ({ h: 0, s: 0, v: 0, a: 1 }),\r\n };\r\n }\r\n\r\n // * HWB\r\n /** - Convert `HSL`, `HSLA`, `HEX`, `RGB` or `RGBA` color to `HWBA` color format. */\r\n HWB(color: SupportedColorFormats) {\r\n if (typeof color === 'string') color = color.trim().toLowerCase();\r\n\r\n color =\r\n typeof color === 'string' && namedColors.hasOwnProperty(color)\r\n ? (namedColors[color as keyof typeof namedColors] as string)\r\n : color;\r\n\r\n const colorType = this._.detectColorFormat(color);\r\n\r\n if (colorType?.includes('hex')) {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HEX_HWBA(color as string);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HEX_HWBA(color as string);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HEX_HWBA(color as string),\r\n };\r\n }\r\n\r\n if (colorType === 'rgb' || colorType === 'rgba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.RGB_HWBA(color as rgbaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.RGB_HWBA(color as rgbaT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.RGB_HWBA(color as rgbaT | rgbT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsl' || colorType === 'hsla') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HSL_HWBA(color as hslaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HSL_HWBA(color as hslaT | hslT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HSL_HWBA(color as hslaT | hslT),\r\n };\r\n }\r\n\r\n if (colorType === 'hsv' || colorType === 'hsva') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const { h, w, b, a } = this._.HSV_HWBA(color as hsvaT);\r\n\r\n if (typeof alpha === 'undefined')\r\n return typeof a === 'number' && a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a ?? 1})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const { h, w, b, a } = this._.HSV_HWBA(color as hsvaT | hsvT);\r\n return [h, w, b, a];\r\n },\r\n object: () => this._.HSV_HWBA(color as hsvaT | hsvT),\r\n };\r\n }\r\n\r\n if (colorType === 'hwb' || colorType === 'hwba') {\r\n return {\r\n string: (alpha?: boolean) => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n if (typeof alpha === 'undefined') return a !== 1 ? `hwba(${h}, ${w}%, ${b}%, ${a})` : `hwb(${h}, ${w}%, ${b}%)`;\r\n\r\n if (alpha) return `hwba(${h}, ${w}%, ${b}%, ${a})`;\r\n\r\n return `hwb(${h}, ${w}%, ${b}%)`;\r\n },\r\n array: () => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n return [h, w, b, a];\r\n },\r\n object: () => {\r\n const hwba = typeof color === 'string' ? this._.getHwbObject(color) : (color as hwbaT),\r\n h = clampHue(hwba.h),\r\n w = clamp100(hwba.w),\r\n b = clamp100(hwba.b),\r\n a = clampAlpha(hwba.a ?? 1);\r\n\r\n return { h, w, b, a };\r\n },\r\n };\r\n }\r\n\r\n // ! error\r\n console.error(\r\n '[colorKit] An error occurred while attempting to convert the provided parameter into an `HWB` color. As a result, the default color \"black\" will be used instead.'\r\n );\r\n\r\n return {\r\n string: (alpha?: boolean) => (alpha ? 'hwba(0, 0%, 100%, 1)' : 'hwb(0, 0%, 100%)'),\r\n array: () => [0, 0, 100, 1],\r\n object: () => ({ h: 0, w: 0, b: 100, a: 1 }),\r\n };\r\n }\r\n\r\n // * color's channels\r\n /** - Get the `red` channel value of a given color. */\r\n getRed(color: SupportedColorFormats): number {\r\n const { r } = this.RGB(color).object();\r\n return r;\r\n }\r\n /** Set the `red` value of a color to a specific amount.*/\r\n setRed(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { g, b, a } = this.RGB(color).object();\r\n const newR = clampRGB(amount);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `red` value of a color by the given percentage/amount.\r\n * @example\r\n * increaseRed(''rgb(100, 100, 100)', 20).hex();\r\n * increaseRed('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseRed(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const red = typeof amount === 'string' ? r + r * (parseFloat(amount) / 100) : r + amount;\r\n const newR = clampRGB(red);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `red` value of a color by the given percentage/amount\r\n * @example\r\n * decreaseRed('rgb(100, 100, 100)', 20).hex();\r\n * decreaseRed('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseRed(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const red = typeof amount === 'string' ? r - r * (parseFloat(amount) / 100) : r - amount;\r\n const newR = clampRGB(red);\r\n const newColor = { r: newR, g, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n /** - Get the `green` channel value of a given color. */\r\n getGreen(color: SupportedColorFormats): number {\r\n const { g } = this.RGB(color).object();\r\n return g;\r\n }\r\n /** - Set the `green` value of a color to a specific amount.*/\r\n setGreen(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, b, a } = this.RGB(color).object();\r\n const newG = clampRGB(amount);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `green` value of a color by the given percentage.\r\n * @example\r\n * increaseGreen('rgb(100, 100, 100)', 20).hex();\r\n * increaseGreen('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseGreen(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const green = typeof amount === 'string' ? g + g * (parseFloat(amount) / 100) : g + amount;\r\n const newG = clampRGB(green);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `green` value of a color by the given percentage.\r\n * @example\r\n * decreaseGreen('rgb(100, 100, 100)', 20).hex();\r\n * decreaseGreen('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseGreen(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const green = typeof amount === 'string' ? g - g * (parseFloat(amount) / 100) : g - amount;\r\n const newG = clampRGB(green);\r\n const newColor = { r, g: newG, b, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n /** - Get the `blue` channel value of a given color. */\r\n getBlue(color: SupportedColorFormats): number {\r\n const { b } = this.RGB(color).object();\r\n return b;\r\n }\r\n /** - Set the `blue` value of a color to a specific amount.*/\r\n setBlur(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, g, a } = this.RGB(color).object();\r\n const newB = clampRGB(amount);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `blue` value of a color by the given percentage.\r\n * @example\r\n * increaseBlue('rgb(100, 100, 100)', 20).hex();\r\n * increaseBlue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseBlue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const blue = typeof amount === 'string' ? b + b * (parseFloat(amount) / 100) : b + amount;\r\n const newB = clampRGB(blue);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `blue` value of a color by the given percentage.\r\n * @example\r\n * decreaseBlue('rgb(100, 100, 100)', 20).hex();\r\n * decreaseBlue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseBlue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const blue = typeof amount === 'string' ? b - b * (parseFloat(amount) / 100) : b - amount;\r\n const newB = clampRGB(blue);\r\n const newColor = { r, g, b: newB, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* hue\r\n /** - Get the `hue` channel value of a given color. */\r\n getHue(color: SupportedColorFormats): number {\r\n const { h } = this.HSL(color).object();\r\n return h;\r\n }\r\n /** - Set the `hue` value of a color to a specific amount.*/\r\n setHue(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { s, l, a } = this.HSL(color).object();\r\n const newH = clampHue(amount);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `hue` value of a color by the given percentage/amount.\r\n * @example\r\n * increaseHue('rgb(100, 100, 100)', 20).hex();\r\n * increaseHue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n increaseHue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const hue = typeof amount === 'string' ? h + h * (parseFloat(amount) / 100) : h + amount;\r\n const newH = clampHue(hue);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `hue` value of a color by the given percentage/amount.\r\n * @example\r\n * decreaseHue('rgb(100, 100, 100)', 20).hex();\r\n * decreaseHue('rgb(100, 100, 100)', '20%').rgb().string();\r\n */\r\n decreaseHue(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const hue = typeof amount === 'string' ? h - h * (parseFloat(amount) / 100) : h - amount;\r\n const newH = clampHue(hue);\r\n const newColor = { h: newH, s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /**\r\n * - Spin the `hue` channel by a certain percentage/amount.\r\n * @example\r\n * spin('red', 20).hex();\r\n * spin('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n spin(color: SupportedColorFormats, degree: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const spin = typeof degree === 'string' ? s * (parseFloat(degree) / 100) : degree;\r\n const newColor = { h: Math.round((h + spin) % 360), s, l, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* saturation\r\n /** - Get the `saturation` value of a given color. */\r\n getSaturation(color: SupportedColorFormats): number {\r\n const { s } = this.HSL(color).object();\r\n return s;\r\n }\r\n /** - Set the `saturation` value of a color to a specific amount.*/\r\n setSaturation(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, l, a } = this.HSL(color).object();\r\n const newS = clamp100(amount);\r\n const saturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(saturatedColor);\r\n }\r\n /**\r\n * - Increase the saturation of the given color by a certain percentage/amount.\r\n * @example\r\n * saturate('red', 20).hex();\r\n * saturate('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n saturate(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const saturation = typeof amount === 'string' ? s + s * (parseFloat(amount) / 100) : s + amount;\r\n const newS = clamp100(saturation);\r\n const saturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(saturatedColor);\r\n }\r\n /**\r\n * - Decrease the saturation of the given color by a certain percentage/amount.\r\n * @example\r\n * saturate('red', 20).hex();\r\n * saturate('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n desaturate(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const saturation = typeof amount === 'string' ? s - s * (parseFloat(amount) / 100) : s - amount;\r\n const newS = clamp100(saturation);\r\n const desaturatedColor = { h, s: newS, l, a };\r\n\r\n return this.returnColorObject(desaturatedColor);\r\n }\r\n\r\n //* brightness\r\n /** - Get color's HSL `luminosity` channel value.\r\n * - If you want the overall `luminosity` of a color use `getLuminanceWCAG` method.\r\n */\r\n getLuminance(color: SupportedColorFormats): number {\r\n const { l } = this.HSL(color).object();\r\n return l;\r\n }\r\n /** - Set HSL's `luminosity` channel for a given color to a specific amount.*/\r\n setLuminance(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, s, a } = this.HSL(color).object();\r\n const newL = clamp100(amount);\r\n const newColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /**\r\n * - Increase the brightness of the given color by a certain percentage/amount.\r\n * @example\r\n * brighten('red', 20).hex();\r\n * brighten('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n brighten(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const lum = typeof amount === 'string' ? l + l * (parseFloat(amount) / 100) : l + amount;\r\n const newL = clamp100(lum);\r\n const brightenedColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(brightenedColor);\r\n }\r\n /**\r\n * - Decrease the brightness of the given color by a certain percentage/amount.\r\n * @example\r\n * darken('red', 20).hex();\r\n * darken('rgb(255, 0, 0)', '20%').rgb().string();\r\n */\r\n darken(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, l, a } = this.HSL(color).object();\r\n const lum = typeof amount === 'string' ? l - l * (parseFloat(amount) / 100) : l - amount;\r\n const newL = clamp100(lum);\r\n const darkenedColor = { h, s, l: newL, a };\r\n\r\n return this.returnColorObject(darkenedColor);\r\n }\r\n\r\n /** - Get the HSV's `value` (brightness) channel value of a given color. */\r\n getBrightness(color: SupportedColorFormats): number {\r\n const { v } = this.HSV(color).object();\r\n return v;\r\n }\r\n /** - Set HSV's `value` (brightness) channel for a given color to a specific amount.*/\r\n setBrightness(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { h, s, a } = this.HSV(color).object();\r\n const newV = clamp100(amount);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase HSV's `value` (brightness) channel value of a color by the given percentage/amount.*/\r\n increaseBrightness(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, v, a } = this.HSV(color).object();\r\n const value = typeof amount === 'string' ? v + v * (parseFloat(amount) / 100) : v + amount;\r\n const newV = clamp100(value);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease HSV's `value` (brightness) channel value of a color by the given percentage/amount.*/\r\n decreaseBrightness(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { h, s, v, a } = this.HSV(color).object();\r\n const value = typeof amount === 'string' ? v - v * (parseFloat(amount) / 100) : v - amount;\r\n const newV = clamp100(value);\r\n const newColor = { h, s, v: newV, a };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n //* alpha\r\n /** - Get the `alpha` value of a given color. */\r\n getAlpha(color: SupportedColorFormats): number {\r\n const { a } = this.RGB(color).object();\r\n return a;\r\n }\r\n /** - Set the `alpha` value of a color to a specific amount.*/\r\n setAlpha(color: SupportedColorFormats, amount: number): ConversionMethods {\r\n const { r, g, b } = this.RGB(color).object();\r\n const newA = clampAlpha(amount);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Increase the `alpha` value of a color by the given percentage.*/\r\n increaseAlpha(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const alpha = typeof amount === 'string' ? a + a * (parseFloat(amount) / 100) : a + amount;\r\n const newA = clampAlpha(alpha);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n /** Decrease the `alpha` value of a color by the given percentage.*/\r\n decreaseAlpha(color: SupportedColorFormats, amount: number | string): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const alpha = typeof amount === 'string' ? a - a * (parseFloat(amount) / 100) : a - amount;\r\n const newA = clampAlpha(alpha);\r\n const newColor = { r, g, b, a: newA };\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n\r\n // * tools\r\n /** - Returns the perceived `luminance` of a color, from `0-1` as defined by Web Content Accessibility Guidelines (Version 2.0). */\r\n getLuminanceWCAG(color: SupportedColorFormats): number {\r\n const { r, g, b } = this.RGB(color).object();\r\n const a = [r, g, b].map(v => (v / 255 <= 0.03928 ? v / 255 / 12.92 : Math.pow((v / 255 + 0.055) / 1.055, 2.4)));\r\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\r\n }\r\n\r\n /** - Calculates the contrast ratio between two colors, useful for ensuring accessibility and readability. */\r\n contrastRatio(color1: SupportedColorFormats, color2: SupportedColorFormats): number {\r\n const luminance1 = this.getLuminanceWCAG(color1);\r\n const luminance2 = this.getLuminanceWCAG(color2);\r\n const contrast = (Math.max(luminance1, luminance2) + 0.05) / (Math.min(luminance1, luminance2) + 0.05);\r\n return Math.round(contrast * 100) / 100;\r\n }\r\n\r\n /** - Returns a boolean indicating whether the color is considered \"dark\" or not */\r\n isDark(color: SupportedColorFormats): boolean {\r\n const luminance = this.getLuminanceWCAG(color);\r\n return luminance < 0.5;\r\n }\r\n\r\n /** - Returns a boolean indicating whether the color is considered \"light\" or not */\r\n isLight(color: SupportedColorFormats): boolean {\r\n const luminance = this.getLuminanceWCAG(color);\r\n return luminance >= 0.5;\r\n }\r\n\r\n /**\r\n * - Check if two colors are similar within a specified tolerance.\r\n * @example\r\n * const tolerance = 0;\r\n * const isEqual = colorKit.areColorsEqual(\"#F00\", \"red\", tolerance); // true\r\n */\r\n areColorsEqual(color1: SupportedColorFormats, color2: SupportedColorFormats, tolerance = 0): boolean {\r\n const rgb1 = this.RGB(color1).object();\r\n const rgb2 = this.RGB(color2).object();\r\n\r\n const deltaR = rgb1.r - rgb2.r;\r\n const deltaG = rgb1.g - rgb2.g;\r\n const deltaB = rgb1.b - rgb2.b;\r\n const difference = Math.sqrt(deltaR * deltaR + deltaG * deltaG + deltaB * deltaB);\r\n\r\n return difference <= tolerance;\r\n }\r\n\r\n /**\r\n * - Blends two colors by a certain amount.\r\n * @example\r\n * blend('yellow', 'red', 50).hex(); // #ff8000\r\n */\r\n blend(color1: SupportedColorFormats, color2: SupportedColorFormats, percentage: number): ConversionMethods {\r\n percentage = percentage / 100;\r\n\r\n const rgba1 = this.RGB(color1).object();\r\n const rgba2 = this.RGB(color2).object();\r\n\r\n const r = clampRGB(rgba1.r * (1 - percentage) + rgba2.r * percentage),\r\n g = clampRGB(rgba1.g * (1 - percentage) + rgba2.g * percentage),\r\n b = clampRGB(rgba1.b * (1 - percentage) + rgba2.b * percentage),\r\n a = clampAlpha(rgba1.a * (1 - percentage) + rgba2.a * percentage);\r\n\r\n const blendedColor = { r, g, b, a };\r\n\r\n return this.returnColorObject(blendedColor);\r\n }\r\n\r\n /** - Invert (negate) a color, black becomes white, white becomes black, blue becomes orange and so on. */\r\n invert(color: SupportedColorFormats): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const invertedColor = { r: 255 - r, g: 255 - g, b: 255 - b, a };\r\n return this.returnColorObject(invertedColor);\r\n }\r\n\r\n /** - Completely desaturate a color into grayscale. */\r\n grayscale(color: SupportedColorFormats): ConversionMethods {\r\n const { r, g, b, a } = this.RGB(color).object();\r\n const gray = clampRGB(r * 0.3 + g * 0.59 + b * 0.11);\r\n const grayColor = { r: gray, g: gray, b: gray, a };\r\n\r\n return this.returnColorObject(grayColor);\r\n }\r\n\r\n /** - Generate a random color from `HSL` values. */\r\n randomHslColor({ h = [0, 360], s = [0, 100], l = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n s: clamp100(randomNumber(s[0], s[1])),\r\n l: clamp100(randomNumber(l[0], l[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `HSV` values. */\r\n randomHsvColor({ h = [0, 360], s = [0, 100], v = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n s: clamp100(randomNumber(s[0], s[1])),\r\n v: clamp100(randomNumber(v[0], v[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `RGB` values. */\r\n randomRgbColor({ r = [0, 255], g = [0, 255], b = [0, 255], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n r: clampRGB(randomNumber(r[0], r[1])),\r\n g: clampRGB(randomNumber(g[0], g[1])),\r\n b: clampRGB(randomNumber(b[0], b[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n /** - Generate a random color from `HWB` values. */\r\n randomHwbColor({ h = [0, 360], w = [0, 100], b = [0, 100], a = [1, 1] } = {}): ConversionMethods {\r\n const random = {\r\n h: clampHue(randomNumber(h[0], h[1])),\r\n w: clamp100(randomNumber(w[0], w[1])),\r\n b: clamp100(randomNumber(b[0], b[1])),\r\n a: clampAlpha(randomNumber(a[0], a[1])),\r\n };\r\n\r\n return this.returnColorObject(random);\r\n }\r\n\r\n /** - Returns the first color with the desired contrast ratio against the second color */\r\n adjustContrast(color1: SupportedColorFormats, color2: SupportedColorFormats, ratio = 4.5): ConversionMethods {\r\n const contrast = this.contrastRatio(color1, color2);\r\n const color1RGB = this.RGB(color1).object();\r\n const channels = ['r', 'g', 'b'] as const;\r\n\r\n const adjustLuminance = (colorRGB: rgbaT, by: number) => {\r\n const r = clampRGB(colorRGB.r + by);\r\n const g = clampRGB(colorRGB.g + by);\r\n const b = clampRGB(colorRGB.b + by);\r\n return { r, g, b, a: colorRGB.a };\r\n };\r\n\r\n let newColor = color1RGB;\r\n\r\n //* increase contrast\r\n if (ratio && contrast < ratio) {\r\n while (this.contrastRatio(newColor, color2) < ratio) {\r\n const increase = this.isDark(color2); // if the background color is dark\r\n newColor = adjustLuminance(newColor, increase ? 1 : -1);\r\n\r\n // break if the color reached the limit\r\n if (channels.every(e => newColor[e] === 0)) break;\r\n if (channels.every(e => newColor[e] === 255)) break;\r\n }\r\n //* decrease contrast\r\n } else if (ratio && contrast > ratio) {\r\n while (this.contrastRatio(newColor, color2) > ratio) {\r\n const increase = !this.isDark(color2); // if the background color is light\r\n newColor = adjustLuminance(newColor, increase ? 1 : -1);\r\n\r\n // break if the color reached the limit\r\n if (channels.every(e => newColor[e] === 0)) break;\r\n if (channels.every(e => newColor[e] === 255)) break;\r\n }\r\n }\r\n\r\n return this.returnColorObject(newColor);\r\n }\r\n}\r\n\r\nconst colorKit = new Colors();\r\n\r\nexport default colorKit;\r\n"
|
|
219
228
|
],
|
|
220
|
-
"mappings": "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"
|
|
229
|
+
"mappings": "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"
|
|
221
230
|
}
|