color-combos 1.1.0 → 1.1.2
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/dist/index.d.ts +25 -26
- package/dist/index.js +1 -127
- package/dist/index.mjs +1 -100
- package/package.json +59 -47
package/dist/index.d.ts
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
interface Accessibility {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export interface Accessibility {
|
|
2
|
+
aa: boolean;
|
|
3
|
+
aaLarge: boolean;
|
|
4
|
+
aaa: boolean;
|
|
5
|
+
aaaLarge: boolean;
|
|
6
6
|
}
|
|
7
|
-
interface Combination {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
export interface Combination {
|
|
8
|
+
accessibility: Accessibility;
|
|
9
|
+
color?: number[];
|
|
10
|
+
contrast: number;
|
|
11
|
+
hex: string;
|
|
12
|
+
model?: string;
|
|
13
|
+
valpha?: number;
|
|
14
14
|
}
|
|
15
|
-
interface ColorCombo {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
export interface ColorCombo {
|
|
16
|
+
color?: number[];
|
|
17
|
+
combinations: Combination[];
|
|
18
|
+
hex: string;
|
|
19
|
+
model?: string;
|
|
20
|
+
valpha?: number;
|
|
21
21
|
}
|
|
22
22
|
interface Options {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
threshold?: number;
|
|
24
|
+
compact?: boolean;
|
|
25
|
+
uniq?: boolean;
|
|
26
26
|
}
|
|
27
|
-
declare const ColorCombos: (colors: {
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export { Accessibility, ColorCombo, Combination, ColorCombos as default };
|
|
27
|
+
declare const ColorCombos: (colors: string[] | {
|
|
28
|
+
[name: string]: string;
|
|
29
|
+
}, options?: Options) => ColorCombo[] | false;
|
|
30
|
+
export default ColorCombos;
|
package/dist/index.js
CHANGED
|
@@ -1,127 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from))
|
|
16
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
23
|
-
mod
|
|
24
|
-
));
|
|
25
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
-
|
|
27
|
-
// src/index.ts
|
|
28
|
-
var src_exports = {};
|
|
29
|
-
__export(src_exports, {
|
|
30
|
-
default: () => src_default
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(src_exports);
|
|
33
|
-
var import_lodash = __toESM(require("lodash.uniq"));
|
|
34
|
-
var import_color = __toESM(require("color"));
|
|
35
|
-
var ColorCombos = /* @__PURE__ */ __name((colors, options = {}) => {
|
|
36
|
-
let arr = [];
|
|
37
|
-
let results = [];
|
|
38
|
-
const MINIMUMS = {
|
|
39
|
-
aa: 4.5,
|
|
40
|
-
aaLarge: 3,
|
|
41
|
-
aaa: 7,
|
|
42
|
-
aaaLarge: 4.5
|
|
43
|
-
};
|
|
44
|
-
const DEFAULT_OPTIONS = {
|
|
45
|
-
threshold: 0,
|
|
46
|
-
compact: false,
|
|
47
|
-
uniq: true
|
|
48
|
-
};
|
|
49
|
-
const combinedOptions = Object.assign(DEFAULT_OPTIONS, options);
|
|
50
|
-
if (!Array.isArray(colors)) {
|
|
51
|
-
if (typeof colors === "object") {
|
|
52
|
-
arr = Object.keys(colors).map((key) => (0, import_color.default)(colors[key]));
|
|
53
|
-
if (combinedOptions.uniq) {
|
|
54
|
-
arr = (0, import_lodash.default)(arr);
|
|
55
|
-
}
|
|
56
|
-
} else {
|
|
57
|
-
console.error("Must provide an array or object");
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
} else {
|
|
61
|
-
let uniqueColors = colors;
|
|
62
|
-
if (combinedOptions.uniq) {
|
|
63
|
-
uniqueColors = (0, import_lodash.default)(colors);
|
|
64
|
-
}
|
|
65
|
-
if (uniqueColors !== void 0) {
|
|
66
|
-
arr = uniqueColors.map((color) => (0, import_color.default)(color));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
results = arr.map((color) => {
|
|
70
|
-
const result = combinedOptions.compact ? {
|
|
71
|
-
hex: "",
|
|
72
|
-
combinations: []
|
|
73
|
-
} : {
|
|
74
|
-
color: color.color,
|
|
75
|
-
model: color.model,
|
|
76
|
-
valpha: color.valpha,
|
|
77
|
-
hex: "",
|
|
78
|
-
combinations: []
|
|
79
|
-
};
|
|
80
|
-
result.hex = color.hex();
|
|
81
|
-
result.combinations = arr.filter((bg) => color !== bg).filter((bg) => {
|
|
82
|
-
if (combinedOptions.threshold !== void 0) {
|
|
83
|
-
return color.contrast(bg) > combinedOptions.threshold;
|
|
84
|
-
}
|
|
85
|
-
return true;
|
|
86
|
-
}).map((bg) => {
|
|
87
|
-
let combination = combinedOptions.compact ? {
|
|
88
|
-
accessibility: {
|
|
89
|
-
aa: false,
|
|
90
|
-
aaLarge: false,
|
|
91
|
-
aaa: false,
|
|
92
|
-
aaaLarge: false
|
|
93
|
-
},
|
|
94
|
-
hex: "",
|
|
95
|
-
contrast: 0
|
|
96
|
-
} : {
|
|
97
|
-
accessibility: {
|
|
98
|
-
aa: false,
|
|
99
|
-
aaLarge: false,
|
|
100
|
-
aaa: false,
|
|
101
|
-
aaaLarge: false
|
|
102
|
-
},
|
|
103
|
-
hex: "",
|
|
104
|
-
contrast: 0,
|
|
105
|
-
color: bg.color,
|
|
106
|
-
model: bg.model,
|
|
107
|
-
valpha: bg.valpha
|
|
108
|
-
};
|
|
109
|
-
combination = Object.assign(combination, {
|
|
110
|
-
hex: bg.hex(),
|
|
111
|
-
contrast: color.contrast(bg)
|
|
112
|
-
});
|
|
113
|
-
combination.accessibility = {
|
|
114
|
-
aa: combination.contrast >= MINIMUMS.aa,
|
|
115
|
-
aaLarge: combination.contrast >= MINIMUMS.aaLarge,
|
|
116
|
-
aaa: combination.contrast >= MINIMUMS.aaa,
|
|
117
|
-
aaaLarge: combination.contrast >= MINIMUMS.aaaLarge
|
|
118
|
-
};
|
|
119
|
-
return combination;
|
|
120
|
-
});
|
|
121
|
-
return result;
|
|
122
|
-
});
|
|
123
|
-
return results;
|
|
124
|
-
}, "ColorCombos");
|
|
125
|
-
var src_default = ColorCombos;
|
|
126
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
127
|
-
0 && (module.exports = {});
|
|
1
|
+
var J2=Object.create;var{getPrototypeOf:q2,defineProperty:j,getOwnPropertyNames:l,getOwnPropertyDescriptor:G2}=Object,t=Object.prototype.hasOwnProperty;var E2=(Q,X,$)=>{$=Q!=null?J2(q2(Q)):{};let V=X||!Q||!Q.__esModule?j($,"default",{value:Q,enumerable:!0}):$;for(let W of l(Q))if(!t.call(V,W))j(V,W,{get:()=>Q[W],enumerable:!0});return V},s=new WeakMap,P2=(Q)=>{var X=s.get(Q),$;if(X)return X;if(X=j({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")l(Q).map((V)=>!t.call(X,V)&&j(X,V,{get:()=>Q[V],enumerable:!($=G2(Q,V))||$.enumerable}));return s.set(Q,X),X},U2=(Q,X)=>()=>(X||Q((X={exports:{}}).exports,X),X.exports);var B2=(Q,X)=>{for(var $ in X)j(Q,$,{get:X[$],enumerable:!0,configurable:!0,set:(V)=>X[$]=()=>V})};var Y2=U2((u1,Z2)=>{var I2=200,b="__lodash_hash_undefined__",z2=1/0,M2="[object Function]",j2="[object GeneratorFunction]",w2=/[\\^$.*+?()[\]{}|]/g,k2=/^\[object .+?Constructor\]$/,C2=typeof global=="object"&&global&&global.Object===Object&&global,f2=typeof self=="object"&&self&&self.Object===Object&&self,h=C2||f2||Function("return this")();function x2(Q,X){var $=Q?Q.length:0;return!!$&&d2(Q,X,0)>-1}function p2(Q,X,$){var V=-1,W=Q?Q.length:0;while(++V<W)if($(X,Q[V]))return!0;return!1}function y2(Q,X,$,V){var W=Q.length,Y=$+(V?1:-1);while(V?Y--:++Y<W)if(X(Q[Y],Y,Q))return Y;return-1}function d2(Q,X,$){if(X!==X)return y2(Q,u2,$);var V=$-1,W=Q.length;while(++V<W)if(Q[V]===X)return V;return-1}function u2(Q){return Q!==Q}function v2(Q,X){return Q.has(X)}function m2(Q,X){return Q==null?void 0:Q[X]}function i2(Q){var X=!1;if(Q!=null&&typeof Q.toString!="function")try{X=!!(Q+"")}catch($){}return X}function X2(Q){var X=-1,$=Array(Q.size);return Q.forEach(function(V){$[++X]=V}),$}var b2=Array.prototype,h2=Function.prototype,$2=Object.prototype,m=h["__core-js_shared__"],Q2=function(){var Q=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||"");return Q?"Symbol(src)_1."+Q:""}(),V2=h2.toString,g=$2.hasOwnProperty,g2=$2.toString,n2=RegExp("^"+V2.call(g).replace(w2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),c2=b2.splice,s2=n(h,"Map"),i=n(h,"Set"),w=n(Object,"create");function _(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function l2(){this.__data__=w?w(null):{}}function t2(Q){return this.has(Q)&&delete this.__data__[Q]}function o2(Q){var X=this.__data__;if(w){var $=X[Q];return $===b?void 0:$}return g.call(X,Q)?X[Q]:void 0}function a2(Q){var X=this.__data__;return w?X[Q]!==void 0:g.call(X,Q)}function r2(Q,X){var $=this.__data__;return $[Q]=w&&X===void 0?b:X,this}_.prototype.clear=l2;_.prototype.delete=t2;_.prototype.get=o2;_.prototype.has=a2;_.prototype.set=r2;function z(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function e2(){this.__data__=[]}function Q1(Q){var X=this.__data__,$=x(X,Q);if($<0)return!1;var V=X.length-1;if($==V)X.pop();else c2.call(X,$,1);return!0}function X1(Q){var X=this.__data__,$=x(X,Q);return $<0?void 0:X[$][1]}function $1(Q){return x(this.__data__,Q)>-1}function V1(Q,X){var $=this.__data__,V=x($,Q);if(V<0)$.push([Q,X]);else $[V][1]=X;return this}z.prototype.clear=e2;z.prototype.delete=Q1;z.prototype.get=X1;z.prototype.has=$1;z.prototype.set=V1;function M(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function W1(){this.__data__={hash:new _,map:new(s2||z),string:new _}}function Z1(Q){return p(this,Q).delete(Q)}function Y1(Q){return p(this,Q).get(Q)}function J1(Q){return p(this,Q).has(Q)}function q1(Q,X){return p(this,Q).set(Q,X),this}M.prototype.clear=W1;M.prototype.delete=Z1;M.prototype.get=Y1;M.prototype.has=J1;M.prototype.set=q1;function f(Q){var X=-1,$=Q?Q.length:0;this.__data__=new M;while(++X<$)this.add(Q[X])}function G1(Q){return this.__data__.set(Q,b),this}function E1(Q){return this.__data__.has(Q)}f.prototype.add=f.prototype.push=G1;f.prototype.has=E1;function x(Q,X){var $=Q.length;while($--)if(F1(Q[$][0],X))return $;return-1}function P1(Q){if(!W2(Q)||L1(Q))return!1;var X=D1(Q)||i2(Q)?n2:k2;return X.test(K1(Q))}function U1(Q,X,$){var V=-1,W=x2,Y=Q.length,Z=!0,J=[],q=J;if($)Z=!1,W=p2;else if(Y>=I2){var E=X?null:B1(Q);if(E)return X2(E);Z=!1,W=v2,q=new f}else q=X?[]:J;Q:while(++V<Y){var P=Q[V],R=X?X(P):P;if(P=$||P!==0?P:0,Z&&R===R){var k=q.length;while(k--)if(q[k]===R)continue Q;if(X)q.push(R);J.push(P)}else if(!W(q,R,$)){if(q!==J)q.push(R);J.push(P)}}return J}var B1=!(i&&1/X2(new i([,-0]))[1]==z2)?H1:function(Q){return new i(Q)};function p(Q,X){var $=Q.__data__;return R1(X)?$[typeof X=="string"?"string":"hash"]:$.map}function n(Q,X){var $=m2(Q,X);return P1($)?$:void 0}function R1(Q){var X=typeof Q;return X=="string"||X=="number"||X=="symbol"||X=="boolean"?Q!=="__proto__":Q===null}function L1(Q){return!!Q2&&Q2 in Q}function K1(Q){if(Q!=null){try{return V2.call(Q)}catch(X){}try{return Q+""}catch(X){}}return""}function O1(Q){return Q&&Q.length?U1(Q):[]}function F1(Q,X){return Q===X||Q!==Q&&X!==X}function D1(Q){var X=W2(Q)?g2.call(Q):"";return X==M2||X==j2}function W2(Q){var X=typeof Q;return!!Q&&(X=="object"||X=="function")}function H1(){}Z2.exports=O1});var T1={};B2(T1,{default:()=>_1});module.exports=P2(T1);var F={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};var o=Object.create(null);for(let Q in F)if(Object.hasOwn(F,Q))o[F[Q]]=Q;var K={to:{},get:{}};K.get=function(Q){let X=Q.slice(0,3).toLowerCase(),$,V;switch(X){case"hsl":{$=K.get.hsl(Q),V="hsl";break}case"hwb":{$=K.get.hwb(Q),V="hwb";break}default:{$=K.get.rgb(Q),V="rgb";break}}if(!$)return null;return{model:V,value:$}};K.get.rgb=function(Q){if(!Q)return null;let X=/^#([a-f\d]{3,4})$/i,$=/^#([a-f\d]{6})([a-f\d]{2})?$/i,V=/^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i,W=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i,Y=/^(\w+)$/,Z=[0,0,0,1],J,q,E;if(J=Q.match($)){E=J[2],J=J[1];for(q=0;q<3;q++){let P=q*2;Z[q]=Number.parseInt(J.slice(P,P+2),16)}if(E)Z[3]=Number.parseInt(E,16)/255}else if(J=Q.match(X)){J=J[1],E=J[3];for(q=0;q<3;q++)Z[q]=Number.parseInt(J[q]+J[q],16);if(E)Z[3]=Number.parseInt(E+E,16)/255}else if(J=Q.match(V)){for(q=0;q<3;q++)Z[q]=Number.parseFloat(J[q+1]);if(J[4])Z[3]=J[5]?Number.parseFloat(J[4])*0.01:Number.parseFloat(J[4])}else if(J=Q.match(W)){for(q=0;q<3;q++)Z[q]=Math.round(Number.parseFloat(J[q+1])*2.55);if(J[4])Z[3]=J[5]?Number.parseFloat(J[4])*0.01:Number.parseFloat(J[4])}else if(J=Q.toLowerCase().match(Y)){if(J[1]==="transparent")return[0,0,0,0];if(!Object.hasOwn(F,J[1]))return null;return Z=F[J[1]].slice(),Z[3]=1,Z}else return null;for(q=0;q<3;q++)Z[q]=A(Z[q],0,255);return Z[3]=A(Z[3],0,1),Z};K.get.hsl=function(Q){if(!Q)return null;let X=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i,$=Q.match(X);if($){let V=Number.parseFloat($[4]),W=(Number.parseFloat($[1])%360+360)%360,Y=A(Number.parseFloat($[2]),0,100),Z=A(Number.parseFloat($[3]),0,100),J=A(Number.isNaN(V)?1:V,0,1);return[W,Y,Z,J]}return null};K.get.hwb=function(Q){if(!Q)return null;let X=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i,$=Q.match(X);if($){let V=Number.parseFloat($[4]),W=(Number.parseFloat($[1])%360+360)%360,Y=A(Number.parseFloat($[2]),0,100),Z=A(Number.parseFloat($[3]),0,100),J=A(Number.isNaN(V)?1:V,0,1);return[W,Y,Z,J]}return null};K.to.hex=function(...Q){return"#"+C(Q[0])+C(Q[1])+C(Q[2])+(Q[3]<1?C(Math.round(Q[3]*255)):"")};K.to.rgb=function(...Q){return Q.length<4||Q[3]===1?"rgb("+Math.round(Q[0])+", "+Math.round(Q[1])+", "+Math.round(Q[2])+")":"rgba("+Math.round(Q[0])+", "+Math.round(Q[1])+", "+Math.round(Q[2])+", "+Q[3]+")"};K.to.rgb.percent=function(...Q){let X=Math.round(Q[0]/255*100),$=Math.round(Q[1]/255*100),V=Math.round(Q[2]/255*100);return Q.length<4||Q[3]===1?"rgb("+X+"%, "+$+"%, "+V+"%)":"rgba("+X+"%, "+$+"%, "+V+"%, "+Q[3]+")"};K.to.hsl=function(...Q){return Q.length<4||Q[3]===1?"hsl("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%)":"hsla("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%, "+Q[3]+")"};K.to.hwb=function(...Q){let X="";if(Q.length>=4&&Q[3]!==1)X=", "+Q[3];return"hwb("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%"+X+")"};K.to.keyword=function(...Q){return o[Q.slice(0,3)]};function A(Q,X,$){return Math.min(Math.max(X,Q),$)}function C(Q){let X=Math.round(Q).toString(16).toUpperCase();return X.length<2?"0"+X:X}var T=K;var a={};for(let Q of Object.keys(F))a[F[Q]]=Q;var G={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},H=G,D=0.008856451679035631;function S(Q){let X=Q>0.0031308?1.055*Q**0.4166666666666667-0.055:Q*12.92;return Math.min(Math.max(0,X),1)}function N(Q){return Q>0.04045?((Q+0.055)/1.055)**2.4:Q/12.92}for(let Q of Object.keys(G)){if(!("channels"in G[Q]))throw Error("missing channels property: "+Q);if(!("labels"in G[Q]))throw Error("missing channel labels property: "+Q);if(G[Q].labels.length!==G[Q].channels)throw Error("channel and label counts mismatch: "+Q);let{channels:X,labels:$}=G[Q];delete G[Q].channels,delete G[Q].labels,Object.defineProperty(G[Q],"channels",{value:X}),Object.defineProperty(G[Q],"labels",{value:$})}G.rgb.hsl=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.min(X,$,V),Y=Math.max(X,$,V),Z=Y-W,J,q;switch(Y){case W:{J=0;break}case X:{J=($-V)/Z;break}case $:{J=2+(V-X)/Z;break}case V:{J=4+(X-$)/Z;break}}if(J=Math.min(J*60,360),J<0)J+=360;let E=(W+Y)/2;if(Y===W)q=0;else if(E<=0.5)q=Z/(Y+W);else q=Z/(2-Y-W);return[J,q*100,E*100]};G.rgb.hsv=function(Q){let X,$,V,W,Y,Z=Q[0]/255,J=Q[1]/255,q=Q[2]/255,E=Math.max(Z,J,q),P=E-Math.min(Z,J,q),R=function(k){return(E-k)/6/P+0.5};if(P===0)W=0,Y=0;else{switch(Y=P/E,X=R(Z),$=R(J),V=R(q),E){case Z:{W=V-$;break}case J:{W=0.3333333333333333+X-V;break}case q:{W=0.6666666666666666+$-X;break}}if(W<0)W+=1;else if(W>1)W-=1}return[W*360,Y*100,E*100]};G.rgb.hwb=function(Q){let X=Q[0],$=Q[1],V=Q[2],W=G.rgb.hsl(Q)[0],Y=0.00392156862745098*Math.min(X,Math.min($,V));return V=1-0.00392156862745098*Math.max(X,Math.max($,V)),[W,Y*100,V*100]};G.rgb.oklab=function(Q){let X=N(Q[0]/255),$=N(Q[1]/255),V=N(Q[2]/255),W=Math.cbrt(0.4122214708*X+0.5363325363*$+0.0514459929*V),Y=Math.cbrt(0.2119034982*X+0.6806995451*$+0.1073969566*V),Z=Math.cbrt(0.0883024619*X+0.2817188376*$+0.6299787005*V),J=0.2104542553*W+0.793617785*Y-0.0040720468*Z,q=1.9779984951*W-2.428592205*Y+0.4505937099*Z,E=0.0259040371*W+0.7827717662*Y-0.808675766*Z;return[J*100,q*100,E*100]};G.rgb.cmyk=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.min(1-X,1-$,1-V),Y=(1-X-W)/(1-W)||0,Z=(1-$-W)/(1-W)||0,J=(1-V-W)/(1-W)||0;return[Y*100,Z*100,J*100,W*100]};function R2(Q,X){return(Q[0]-X[0])**2+(Q[1]-X[1])**2+(Q[2]-X[2])**2}G.rgb.keyword=function(Q){let X=a[Q];if(X)return X;let $=Number.POSITIVE_INFINITY,V;for(let W of Object.keys(F)){let Y=F[W],Z=R2(Q,Y);if(Z<$)$=Z,V=W}return V};G.keyword.rgb=function(Q){return[...F[Q]]};G.rgb.xyz=function(Q){let X=N(Q[0]/255),$=N(Q[1]/255),V=N(Q[2]/255),W=X*0.4124564+$*0.3575761+V*0.1804375,Y=X*0.2126729+$*0.7151522+V*0.072175,Z=X*0.0193339+$*0.119192+V*0.9503041;return[W*100,Y*100,Z*100]};G.rgb.lab=function(Q){let X=G.rgb.xyz(Q),$=X[0],V=X[1],W=X[2];$/=95.047,V/=100,W/=108.883,$=$>D?$**0.3333333333333333:7.787*$+0.13793103448275862,V=V>D?V**0.3333333333333333:7.787*V+0.13793103448275862,W=W>D?W**0.3333333333333333:7.787*W+0.13793103448275862;let Y=116*V-16,Z=500*($-V),J=200*(V-W);return[Y,Z,J]};G.hsl.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100,W,Y;if($===0)return Y=V*255,[Y,Y,Y];let Z=V<0.5?V*(1+$):V+$-V*$,J=2*V-Z,q=[0,0,0];for(let E=0;E<3;E++){if(W=X+0.3333333333333333*-(E-1),W<0)W++;if(W>1)W--;if(6*W<1)Y=J+(Z-J)*6*W;else if(2*W<1)Y=Z;else if(3*W<2)Y=J+(Z-J)*(0.6666666666666666-W)*6;else Y=J;q[E]=Y*255}return q};G.hsl.hsv=function(Q){let X=Q[0],$=Q[1]/100,V=Q[2]/100,W=$,Y=Math.max(V,0.01);V*=2,$*=V<=1?V:2-V,W*=Y<=1?Y:2-Y;let Z=(V+$)/2,J=V===0?2*W/(Y+W):2*$/(V+$);return[X,J*100,Z*100]};G.hsv.rgb=function(Q){let X=Q[0]/60,$=Q[1]/100,V=Q[2]/100,W=Math.floor(X)%6,Y=X-Math.floor(X),Z=255*V*(1-$),J=255*V*(1-$*Y),q=255*V*(1-$*(1-Y));switch(V*=255,W){case 0:return[V,q,Z];case 1:return[J,V,Z];case 2:return[Z,V,q];case 3:return[Z,J,V];case 4:return[q,Z,V];case 5:return[V,Z,J]}};G.hsv.hsl=function(Q){let X=Q[0],$=Q[1]/100,V=Q[2]/100,W=Math.max(V,0.01),Y,Z;Z=(2-$)*V;let J=(2-$)*W;return Y=$*W,Y/=J<=1?J:2-J,Y=Y||0,Z/=2,[X,Y*100,Z*100]};G.hwb.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100,W=$+V,Y;if(W>1)$/=W,V/=W;let Z=Math.floor(6*X),J=1-V;if(Y=6*X-Z,(Z&1)!==0)Y=1-Y;let q=$+Y*(J-$),E,P,R;switch(Z){default:case 6:case 0:{E=J,P=q,R=$;break}case 1:{E=q,P=J,R=$;break}case 2:{E=$,P=J,R=q;break}case 3:{E=$,P=q,R=J;break}case 4:{E=q,P=$,R=J;break}case 5:{E=J,P=$,R=q;break}}return[E*255,P*255,R*255]};G.cmyk.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=Q[3]/100,Y=1-Math.min(1,X*(1-W)+W),Z=1-Math.min(1,$*(1-W)+W),J=1-Math.min(1,V*(1-W)+W);return[Y*255,Z*255,J*255]};G.xyz.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W,Y,Z;return W=X*3.2404542+$*-1.5371385+V*-0.4985314,Y=X*-0.969266+$*1.8760108+V*0.041556,Z=X*0.0556434+$*-0.2040259+V*1.0572252,W=S(W),Y=S(Y),Z=S(Z),[W*255,Y*255,Z*255]};G.xyz.lab=function(Q){let X=Q[0],$=Q[1],V=Q[2];X/=95.047,$/=100,V/=108.883,X=X>D?X**0.3333333333333333:7.787*X+0.13793103448275862,$=$>D?$**0.3333333333333333:7.787*$+0.13793103448275862,V=V>D?V**0.3333333333333333:7.787*V+0.13793103448275862;let W=116*$-16,Y=500*(X-$),Z=200*($-V);return[W,Y,Z]};G.xyz.oklab=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=Math.cbrt(0.8189330101*X+0.3618667424*$-0.1288597137*V),Y=Math.cbrt(0.0329845436*X+0.9293118715*$+0.0361456387*V),Z=Math.cbrt(0.0482003018*X+0.2643662691*$+0.633851707*V),J=0.2104542553*W+0.793617785*Y-0.0040720468*Z,q=1.9779984951*W-2.428592205*Y+0.4505937099*Z,E=0.0259040371*W+0.7827717662*Y-0.808675766*Z;return[J*100,q*100,E*100]};G.oklab.oklch=function(Q){return G.lab.lch(Q)};G.oklab.xyz=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=(0.999999998*X+0.396337792*$+0.215803758*V)**3,Y=(1.000000008*X-0.105561342*$-0.063854175*V)**3,Z=(1.000000055*X-0.089484182*$-1.291485538*V)**3,J=1.227013851*W-0.55779998*Y+0.281256149*Z,q=-0.040580178*W+1.11225687*Y-0.071676679*Z,E=-0.076381285*W-0.421481978*Y+1.58616322*Z;return[J*100,q*100,E*100]};G.oklab.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=(X+0.3963377774*$+0.2158037573*V)**3,Y=(X-0.1055613458*$-0.0638541728*V)**3,Z=(X-0.0894841775*$-1.291485548*V)**3,J=S(4.0767416621*W-3.3077115913*Y+0.2309699292*Z),q=S(-1.2684380046*W+2.6097574011*Y-0.3413193965*Z),E=S(-0.0041960863*W-0.7034186147*Y+1.707614701*Z);return[J*255,q*255,E*255]};G.oklch.oklab=function(Q){return G.lch.lab(Q)};G.lab.xyz=function(Q){let X=Q[0],$=Q[1],V=Q[2],W,Y,Z;Y=(X+16)/116,W=$/500+Y,Z=Y-V/200;let J=Y**3,q=W**3,E=Z**3;return Y=J>D?J:(Y-0.13793103448275862)/7.787,W=q>D?q:(W-0.13793103448275862)/7.787,Z=E>D?E:(Z-0.13793103448275862)/7.787,W*=95.047,Y*=100,Z*=108.883,[W,Y,Z]};G.lab.lch=function(Q){let X=Q[0],$=Q[1],V=Q[2],W;if(W=Math.atan2(V,$)*360/2/Math.PI,W<0)W+=360;let Z=Math.sqrt($*$+V*V);return[X,Z,W]};G.lch.lab=function(Q){let X=Q[0],$=Q[1],W=Q[2]/360*2*Math.PI,Y=$*Math.cos(W),Z=$*Math.sin(W);return[X,Y,Z]};G.rgb.ansi16=function(Q,X=null){let[$,V,W]=Q,Y=X===null?G.rgb.hsv(Q)[2]:X;if(Y=Math.round(Y/50),Y===0)return 30;let Z=30+(Math.round(W/255)<<2|Math.round(V/255)<<1|Math.round($/255));if(Y===2)Z+=60;return Z};G.hsv.ansi16=function(Q){return G.rgb.ansi16(G.hsv.rgb(Q),Q[2])};G.rgb.ansi256=function(Q){let X=Q[0],$=Q[1],V=Q[2];if(X>>4===$>>4&&$>>4===V>>4){if(X<8)return 16;if(X>248)return 231;return Math.round((X-8)/247*24)+232}return 16+36*Math.round(X/255*5)+6*Math.round($/255*5)+Math.round(V/255*5)};G.ansi16.rgb=function(Q){Q=Q[0];let X=Q%10;if(X===0||X===7){if(Q>50)X+=3.5;return X=X/10.5*255,[X,X,X]}let $=(Math.trunc(Q>50)+1)*0.5,V=(X&1)*$*255,W=(X>>1&1)*$*255,Y=(X>>2&1)*$*255;return[V,W,Y]};G.ansi256.rgb=function(Q){if(Q=Q[0],Q>=232){let Y=(Q-232)*10+8;return[Y,Y,Y]}Q-=16;let X,$=Math.floor(Q/36)/5*255,V=Math.floor((X=Q%36)/6)/5*255,W=X%6/5*255;return[$,V,W]};G.rgb.hex=function(Q){let $=(((Math.round(Q[0])&255)<<16)+((Math.round(Q[1])&255)<<8)+(Math.round(Q[2])&255)).toString(16).toUpperCase();return"000000".slice($.length)+$};G.hex.rgb=function(Q){let X=Q.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!X)return[0,0,0];let $=X[0];if(X[0].length===3)$=[...$].map((J)=>J+J).join("");let V=Number.parseInt($,16),W=V>>16&255,Y=V>>8&255,Z=V&255;return[W,Y,Z]};G.rgb.hcg=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.max(Math.max(X,$),V),Y=Math.min(Math.min(X,$),V),Z=W-Y,J,q=Z<1?Y/(1-Z):0;if(Z<=0)J=0;else if(W===X)J=($-V)/Z%6;else if(W===$)J=2+(V-X)/Z;else J=4+(X-$)/Z;return J/=6,J%=1,[J*360,Z*100,q*100]};G.hsl.hcg=function(Q){let X=Q[1]/100,$=Q[2]/100,V=$<0.5?2*X*$:2*X*(1-$),W=0;if(V<1)W=($-0.5*V)/(1-V);return[Q[0],V*100,W*100]};G.hsv.hcg=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X*$,W=0;if(V<1)W=($-V)/(1-V);return[Q[0],V*100,W*100]};G.hcg.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100;if($===0)return[V*255,V*255,V*255];let W=[0,0,0],Y=X%1*6,Z=Y%1,J=1-Z,q=0;switch(Math.floor(Y)){case 0:{W[0]=1,W[1]=Z,W[2]=0;break}case 1:{W[0]=J,W[1]=1,W[2]=0;break}case 2:{W[0]=0,W[1]=1,W[2]=Z;break}case 3:{W[0]=0,W[1]=J,W[2]=1;break}case 4:{W[0]=Z,W[1]=0,W[2]=1;break}default:W[0]=1,W[1]=0,W[2]=J}return q=(1-$)*V,[($*W[0]+q)*255,($*W[1]+q)*255,($*W[2]+q)*255]};G.hcg.hsv=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X+$*(1-X),W=0;if(V>0)W=X/V;return[Q[0],W*100,V*100]};G.hcg.hsl=function(Q){let X=Q[1]/100,V=Q[2]/100*(1-X)+0.5*X,W=0;if(V>0&&V<0.5)W=X/(2*V);else if(V>=0.5&&V<1)W=X/(2*(1-V));return[Q[0],W*100,V*100]};G.hcg.hwb=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X+$*(1-X);return[Q[0],(V-X)*100,(1-V)*100]};G.hwb.hcg=function(Q){let X=Q[1]/100,V=1-Q[2]/100,W=V-X,Y=0;if(W<1)Y=(V-W)/(1-W);return[Q[0],W*100,Y*100]};G.apple.rgb=function(Q){return[Q[0]/65535*255,Q[1]/65535*255,Q[2]/65535*255]};G.rgb.apple=function(Q){return[Q[0]/255*65535,Q[1]/255*65535,Q[2]/255*65535]};G.gray.rgb=function(Q){return[Q[0]/100*255,Q[0]/100*255,Q[0]/100*255]};G.gray.hsl=function(Q){return[0,0,Q[0]]};G.gray.hsv=G.gray.hsl;G.gray.hwb=function(Q){return[0,100,Q[0]]};G.gray.cmyk=function(Q){return[0,0,0,Q[0]]};G.gray.lab=function(Q){return[Q[0],0,0]};G.gray.hex=function(Q){let X=Math.round(Q[0]/100*255)&255,V=((X<<16)+(X<<8)+X).toString(16).toUpperCase();return"000000".slice(V.length)+V};G.rgb.gray=function(Q){return[(Q[0]+Q[1]+Q[2])/3/255*100]};function L2(){let Q={},X=Object.keys(H);for(let{length:$}=X,V=0;V<$;V++)Q[X[V]]={distance:-1,parent:null};return Q}function K2(Q){let X=L2(),$=[Q];X[Q].distance=0;while($.length>0){let V=$.pop(),W=Object.keys(H[V]);for(let{length:Y}=W,Z=0;Z<Y;Z++){let J=W[Z],q=X[J];if(q.distance===-1)q.distance=X[V].distance+1,q.parent=V,$.unshift(J)}}return X}function O2(Q,X){return function($){return X(Q($))}}function F2(Q,X){let $=[X[Q].parent,Q],V=H[X[Q].parent][Q],W=X[Q].parent;while(X[W].parent)$.unshift(X[W].parent),V=O2(H[X[W].parent][W],V),W=X[W].parent;return V.conversion=$,V}function D2(Q){let X=K2(Q),$={},V=Object.keys(X);for(let{length:W}=V,Y=0;Y<W;Y++){let Z=V[Y];if(X[Z].parent===null)continue;$[Z]=F2(Z,X)}return $}var r=D2;var I={},H2=Object.keys(H);function A2(Q){let X=function(...$){let V=$[0];if(V===void 0||V===null)return V;if(V.length>1)$=V;return Q($)};if("conversion"in Q)X.conversion=Q.conversion;return X}function T2(Q){let X=function(...$){let V=$[0];if(V===void 0||V===null)return V;if(V.length>1)$=V;let W=Q($);if(typeof W==="object")for(let{length:Y}=W,Z=0;Z<Y;Z++)W[Z]=Math.round(W[Z]);return W};if("conversion"in Q)X.conversion=Q.conversion;return X}for(let Q of H2){I[Q]={},Object.defineProperty(I[Q],"channels",{value:H[Q].channels}),Object.defineProperty(I[Q],"labels",{value:H[Q].labels});let X=r(Q),$=Object.keys(X);for(let V of $){let W=X[V];I[Q][V]=T2(W),I[Q][V].raw=A2(W)}}var O=I;var e=["keyword","gray","hex"],y={};for(let Q of Object.keys(O))y[[...O[Q].labels].sort().join("")]=Q;var d={};function L(Q,X){if(!(this instanceof L))return new L(Q,X);if(X&&X in e)X=null;if(X&&!(X in O))throw Error("Unknown model: "+X);let $,V;if(Q==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(Q instanceof L)this.model=Q.model,this.color=[...Q.color],this.valpha=Q.valpha;else if(typeof Q==="string"){let W=T.get(Q);if(W===null)throw Error("Unable to parse color from string: "+Q);this.model=W.model,V=O[this.model].channels,this.color=W.value.slice(0,V),this.valpha=typeof W.value[V]==="number"?W.value[V]:1}else if(Q.length>0){this.model=X||"rgb",V=O[this.model].channels;let W=Array.prototype.slice.call(Q,0,V);this.color=u(W,V),this.valpha=typeof Q[V]==="number"?Q[V]:1}else if(typeof Q==="number")this.model="rgb",this.color=[Q>>16&255,Q>>8&255,Q&255],this.valpha=1;else{this.valpha=1;let W=Object.keys(Q);if("alpha"in Q)W.splice(W.indexOf("alpha"),1),this.valpha=typeof Q.alpha==="number"?Q.alpha:0;let Y=W.sort().join("");if(!(Y in y))throw Error("Unable to parse color from object: "+JSON.stringify(Q));this.model=y[Y];let{labels:Z}=O[this.model],J=[];for($=0;$<Z.length;$++)J.push(Q[Z[$]]);this.color=u(J)}if(d[this.model]){V=O[this.model].channels;for($=0;$<V;$++){let W=d[this.model][$];if(W)this.color[$]=W(this.color[$])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}L.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(Q){let X=this.model in T.to?this:this.rgb();X=X.round(typeof Q==="number"?Q:1);let $=X.valpha===1?X.color:[...X.color,this.valpha];return T.to[X.model](...$)},percentString(Q){let X=this.rgb().round(typeof Q==="number"?Q:1),$=X.valpha===1?X.color:[...X.color,this.valpha];return T.to.rgb.percent(...$)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let Q={},{channels:X}=O[this.model],{labels:$}=O[this.model];for(let V=0;V<X;V++)Q[$[V]]=this.color[V];if(this.valpha!==1)Q.alpha=this.valpha;return Q},unitArray(){let Q=this.rgb().color;if(Q[0]/=255,Q[1]/=255,Q[2]/=255,this.valpha!==1)Q.push(this.valpha);return Q},unitObject(){let Q=this.rgb().object();if(Q.r/=255,Q.g/=255,Q.b/=255,this.valpha!==1)Q.alpha=this.valpha;return Q},round(Q){return Q=Math.max(Q||0,0),new L([...this.color.map(S2(Q)),this.valpha],this.model)},alpha(Q){if(Q!==void 0)return new L([...this.color,Math.max(0,Math.min(1,Q))],this.model);return this.valpha},red:U("rgb",0,B(255)),green:U("rgb",1,B(255)),blue:U("rgb",2,B(255)),hue:U(["hsl","hsv","hsl","hwb","hcg"],0,(Q)=>(Q%360+360)%360),saturationl:U("hsl",1,B(100)),lightness:U("hsl",2,B(100)),saturationv:U("hsv",1,B(100)),value:U("hsv",2,B(100)),chroma:U("hcg",1,B(100)),gray:U("hcg",2,B(100)),white:U("hwb",1,B(100)),wblack:U("hwb",2,B(100)),cyan:U("cmyk",0,B(100)),magenta:U("cmyk",1,B(100)),yellow:U("cmyk",2,B(100)),black:U("cmyk",3,B(100)),x:U("xyz",0,B(95.047)),y:U("xyz",1,B(100)),z:U("xyz",2,B(108.833)),l:U("lab",0,B(100)),a:U("lab",1),b:U("lab",2),keyword(Q){if(Q!==void 0)return new L(Q);return O[this.model].keyword(this.color)},hex(Q){if(Q!==void 0)return new L(Q);return T.to.hex(...this.rgb().round().color)},hexa(Q){if(Q!==void 0)return new L(Q);let X=this.rgb().round().color,$=Math.round(this.valpha*255).toString(16).toUpperCase();if($.length===1)$="0"+$;return T.to.hex(...X)+$},rgbNumber(){let Q=this.rgb().color;return(Q[0]&255)<<16|(Q[1]&255)<<8|Q[2]&255},luminosity(){let Q=this.rgb().color,X=[];for(let[$,V]of Q.entries()){let W=V/255;X[$]=W<=0.04045?W/12.92:((W+0.055)/1.055)**2.4}return 0.2126*X[0]+0.7152*X[1]+0.0722*X[2]},contrast(Q){let X=this.luminosity(),$=Q.luminosity();if(X>$)return(X+0.05)/($+0.05);return($+0.05)/(X+0.05)},level(Q){let X=this.contrast(Q);if(X>=7)return"AAA";return X>=4.5?"AA":""},isDark(){let Q=this.rgb().color;return(Q[0]*2126+Q[1]*7152+Q[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let Q=this.rgb();for(let X=0;X<3;X++)Q.color[X]=255-Q.color[X];return Q},lighten(Q){let X=this.hsl();return X.color[2]+=X.color[2]*Q,X},darken(Q){let X=this.hsl();return X.color[2]-=X.color[2]*Q,X},saturate(Q){let X=this.hsl();return X.color[1]+=X.color[1]*Q,X},desaturate(Q){let X=this.hsl();return X.color[1]-=X.color[1]*Q,X},whiten(Q){let X=this.hwb();return X.color[1]+=X.color[1]*Q,X},blacken(Q){let X=this.hwb();return X.color[2]+=X.color[2]*Q,X},grayscale(){let Q=this.rgb().color,X=Q[0]*0.3+Q[1]*0.59+Q[2]*0.11;return L.rgb(X,X,X)},fade(Q){return this.alpha(this.valpha-this.valpha*Q)},opaquer(Q){return this.alpha(this.valpha+this.valpha*Q)},rotate(Q){let X=this.hsl(),$=X.color[0];return $=($+Q)%360,$=$<0?360+$:$,X.color[0]=$,X},mix(Q,X){if(!Q||!Q.rgb)throw Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof Q);let $=Q.rgb(),V=this.rgb(),W=X===void 0?0.5:X,Y=2*W-1,Z=$.alpha()-V.alpha(),J=((Y*Z===-1?Y:(Y+Z)/(1+Y*Z))+1)/2,q=1-J;return L.rgb(J*$.red()+q*V.red(),J*$.green()+q*V.green(),J*$.blue()+q*V.blue(),$.alpha()*W+V.alpha()*(1-W))}};for(let Q of Object.keys(O)){if(e.includes(Q))continue;let{channels:X}=O[Q];L.prototype[Q]=function(...$){if(this.model===Q)return new L(this);if($.length>0)return new L($,Q);return new L([...N2(O[this.model][Q].raw(this.color)),this.valpha],Q)},L[Q]=function(...$){let V=$[0];if(typeof V==="number")V=u($,X);return new L(V,Q)}}function _2(Q,X){return Number(Q.toFixed(X))}function S2(Q){return function(X){return _2(X,Q)}}function U(Q,X,$){Q=Array.isArray(Q)?Q:[Q];for(let V of Q)(d[V]||=[])[X]=$;return Q=Q[0],function(V){let W;if(V!==void 0){if($)V=$(V);return W=this[Q](),W.color[X]=V,W}if(W=this[Q]().color[X],$)W=$(W);return W}}function B(Q){return function(X){return Math.max(0,Math.min(Q,X))}}function N2(Q){return Array.isArray(Q)?Q:[Q]}function u(Q,X){for(let $=0;$<X;$++)if(typeof Q[$]!=="number")Q[$]=0;return Q}var v=L;var c=E2(Y2(),1),A1=(Q,X={})=>{let $=[],V=[],W={aa:4.5,aaLarge:3,aaa:7,aaaLarge:4.5},Z=Object.assign({threshold:0,compact:!1,uniq:!0},X);if(Array.isArray(Q)){let J=Q;if(Z.uniq)J=c.default(Q);if(J!==void 0)$=J.map((q)=>v(q))}else if(typeof Q==="object"){if($=Object.keys(Q).map((J)=>v(Q[J])),Z.uniq)$=c.default($)}else return console.error("Must provide an array or object"),!1;return V=$.map((J)=>{let q=Z.compact?{hex:"",combinations:[]}:{color:J.color,model:J.model,valpha:J.valpha,hex:"",combinations:[]};return q.hex=J.hex(),q.combinations=$.filter((E)=>J!==E).filter((E)=>{if(Z.threshold!==void 0)return J.contrast(E)>Z.threshold;return!0}).map((E)=>{let P=Z.compact?{accessibility:{aa:!1,aaLarge:!1,aaa:!1,aaaLarge:!1},hex:"",contrast:0}:{accessibility:{aa:!1,aaLarge:!1,aaa:!1,aaaLarge:!1},hex:"",contrast:0,color:E.color,model:E.model,valpha:E.valpha};return P=Object.assign(P,{hex:E.hex(),contrast:J.contrast(E)}),P.accessibility={aa:P.contrast>=W.aa,aaLarge:P.contrast>=W.aaLarge,aaa:P.contrast>=W.aaa,aaaLarge:P.contrast>=W.aaaLarge},P}),q}),V},_1=A1;
|
package/dist/index.mjs
CHANGED
|
@@ -1,100 +1 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
|
-
// src/index.ts
|
|
5
|
-
import uniq from "lodash.uniq";
|
|
6
|
-
import Color from "color";
|
|
7
|
-
var ColorCombos = /* @__PURE__ */ __name((colors, options = {}) => {
|
|
8
|
-
let arr = [];
|
|
9
|
-
let results = [];
|
|
10
|
-
const MINIMUMS = {
|
|
11
|
-
aa: 4.5,
|
|
12
|
-
aaLarge: 3,
|
|
13
|
-
aaa: 7,
|
|
14
|
-
aaaLarge: 4.5
|
|
15
|
-
};
|
|
16
|
-
const DEFAULT_OPTIONS = {
|
|
17
|
-
threshold: 0,
|
|
18
|
-
compact: false,
|
|
19
|
-
uniq: true
|
|
20
|
-
};
|
|
21
|
-
const combinedOptions = Object.assign(DEFAULT_OPTIONS, options);
|
|
22
|
-
if (!Array.isArray(colors)) {
|
|
23
|
-
if (typeof colors === "object") {
|
|
24
|
-
arr = Object.keys(colors).map((key) => Color(colors[key]));
|
|
25
|
-
if (combinedOptions.uniq) {
|
|
26
|
-
arr = uniq(arr);
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
console.error("Must provide an array or object");
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
} else {
|
|
33
|
-
let uniqueColors = colors;
|
|
34
|
-
if (combinedOptions.uniq) {
|
|
35
|
-
uniqueColors = uniq(colors);
|
|
36
|
-
}
|
|
37
|
-
if (uniqueColors !== void 0) {
|
|
38
|
-
arr = uniqueColors.map((color) => Color(color));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
results = arr.map((color) => {
|
|
42
|
-
const result = combinedOptions.compact ? {
|
|
43
|
-
hex: "",
|
|
44
|
-
combinations: []
|
|
45
|
-
} : {
|
|
46
|
-
color: color.color,
|
|
47
|
-
model: color.model,
|
|
48
|
-
valpha: color.valpha,
|
|
49
|
-
hex: "",
|
|
50
|
-
combinations: []
|
|
51
|
-
};
|
|
52
|
-
result.hex = color.hex();
|
|
53
|
-
result.combinations = arr.filter((bg) => color !== bg).filter((bg) => {
|
|
54
|
-
if (combinedOptions.threshold !== void 0) {
|
|
55
|
-
return color.contrast(bg) > combinedOptions.threshold;
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
}).map((bg) => {
|
|
59
|
-
let combination = combinedOptions.compact ? {
|
|
60
|
-
accessibility: {
|
|
61
|
-
aa: false,
|
|
62
|
-
aaLarge: false,
|
|
63
|
-
aaa: false,
|
|
64
|
-
aaaLarge: false
|
|
65
|
-
},
|
|
66
|
-
hex: "",
|
|
67
|
-
contrast: 0
|
|
68
|
-
} : {
|
|
69
|
-
accessibility: {
|
|
70
|
-
aa: false,
|
|
71
|
-
aaLarge: false,
|
|
72
|
-
aaa: false,
|
|
73
|
-
aaaLarge: false
|
|
74
|
-
},
|
|
75
|
-
hex: "",
|
|
76
|
-
contrast: 0,
|
|
77
|
-
color: bg.color,
|
|
78
|
-
model: bg.model,
|
|
79
|
-
valpha: bg.valpha
|
|
80
|
-
};
|
|
81
|
-
combination = Object.assign(combination, {
|
|
82
|
-
hex: bg.hex(),
|
|
83
|
-
contrast: color.contrast(bg)
|
|
84
|
-
});
|
|
85
|
-
combination.accessibility = {
|
|
86
|
-
aa: combination.contrast >= MINIMUMS.aa,
|
|
87
|
-
aaLarge: combination.contrast >= MINIMUMS.aaLarge,
|
|
88
|
-
aaa: combination.contrast >= MINIMUMS.aaa,
|
|
89
|
-
aaaLarge: combination.contrast >= MINIMUMS.aaaLarge
|
|
90
|
-
};
|
|
91
|
-
return combination;
|
|
92
|
-
});
|
|
93
|
-
return result;
|
|
94
|
-
});
|
|
95
|
-
return results;
|
|
96
|
-
}, "ColorCombos");
|
|
97
|
-
var src_default = ColorCombos;
|
|
98
|
-
export {
|
|
99
|
-
src_default as default
|
|
100
|
-
};
|
|
1
|
+
var W2=Object.create;var{getPrototypeOf:Z2,defineProperty:c,getOwnPropertyNames:Y2}=Object;var J2=Object.prototype.hasOwnProperty;var q2=(Q,X,$)=>{$=Q!=null?W2(Z2(Q)):{};let V=X||!Q||!Q.__esModule?c($,"default",{value:Q,enumerable:!0}):$;for(let W of Y2(Q))if(!J2.call(V,W))c(V,W,{get:()=>Q[W],enumerable:!0});return V};var G2=(Q,X)=>()=>(X||Q((X={exports:{}}).exports,X),X.exports);var V2=G2((C1,$2)=>{var T2=200,i="__lodash_hash_undefined__",_2=1/0,S2="[object Function]",N2="[object GeneratorFunction]",I2=/[\\^$.*+?()[\]{}|]/g,z2=/^\[object .+?Constructor\]$/,M2=typeof global=="object"&&global&&global.Object===Object&&global,j2=typeof self=="object"&&self&&self.Object===Object&&self,b=M2||j2||Function("return this")();function w2(Q,X){var $=Q?Q.length:0;return!!$&&f2(Q,X,0)>-1}function k2(Q,X,$){var V=-1,W=Q?Q.length:0;while(++V<W)if($(X,Q[V]))return!0;return!1}function C2(Q,X,$,V){var W=Q.length,Y=$+(V?1:-1);while(V?Y--:++Y<W)if(X(Q[Y],Y,Q))return Y;return-1}function f2(Q,X,$){if(X!==X)return C2(Q,x2,$);var V=$-1,W=Q.length;while(++V<W)if(Q[V]===X)return V;return-1}function x2(Q){return Q!==Q}function p2(Q,X){return Q.has(X)}function y2(Q,X){return Q==null?void 0:Q[X]}function d2(Q){var X=!1;if(Q!=null&&typeof Q.toString!="function")try{X=!!(Q+"")}catch($){}return X}function r(Q){var X=-1,$=Array(Q.size);return Q.forEach(function(V){$[++X]=V}),$}var u2=Array.prototype,v2=Function.prototype,e=Object.prototype,v=b["__core-js_shared__"],a=function(){var Q=/[^.]+$/.exec(v&&v.keys&&v.keys.IE_PROTO||"");return Q?"Symbol(src)_1."+Q:""}(),Q2=v2.toString,h=e.hasOwnProperty,m2=e.toString,i2=RegExp("^"+Q2.call(h).replace(I2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),b2=u2.splice,h2=g(b,"Map"),m=g(b,"Set"),j=g(Object,"create");function _(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function g2(){this.__data__=j?j(null):{}}function n2(Q){return this.has(Q)&&delete this.__data__[Q]}function c2(Q){var X=this.__data__;if(j){var $=X[Q];return $===i?void 0:$}return h.call(X,Q)?X[Q]:void 0}function s2(Q){var X=this.__data__;return j?X[Q]!==void 0:h.call(X,Q)}function l2(Q,X){var $=this.__data__;return $[Q]=j&&X===void 0?i:X,this}_.prototype.clear=g2;_.prototype.delete=n2;_.prototype.get=c2;_.prototype.has=s2;_.prototype.set=l2;function z(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function t2(){this.__data__=[]}function o2(Q){var X=this.__data__,$=f(X,Q);if($<0)return!1;var V=X.length-1;if($==V)X.pop();else b2.call(X,$,1);return!0}function a2(Q){var X=this.__data__,$=f(X,Q);return $<0?void 0:X[$][1]}function r2(Q){return f(this.__data__,Q)>-1}function e2(Q,X){var $=this.__data__,V=f($,Q);if(V<0)$.push([Q,X]);else $[V][1]=X;return this}z.prototype.clear=t2;z.prototype.delete=o2;z.prototype.get=a2;z.prototype.has=r2;z.prototype.set=e2;function M(Q){var X=-1,$=Q?Q.length:0;this.clear();while(++X<$){var V=Q[X];this.set(V[0],V[1])}}function Q1(){this.__data__={hash:new _,map:new(h2||z),string:new _}}function X1(Q){return x(this,Q).delete(Q)}function $1(Q){return x(this,Q).get(Q)}function V1(Q){return x(this,Q).has(Q)}function W1(Q,X){return x(this,Q).set(Q,X),this}M.prototype.clear=Q1;M.prototype.delete=X1;M.prototype.get=$1;M.prototype.has=V1;M.prototype.set=W1;function C(Q){var X=-1,$=Q?Q.length:0;this.__data__=new M;while(++X<$)this.add(Q[X])}function Z1(Q){return this.__data__.set(Q,i),this}function Y1(Q){return this.__data__.has(Q)}C.prototype.add=C.prototype.push=Z1;C.prototype.has=Y1;function f(Q,X){var $=Q.length;while($--)if(R1(Q[$][0],X))return $;return-1}function J1(Q){if(!X2(Q)||P1(Q))return!1;var X=L1(Q)||d2(Q)?i2:z2;return X.test(U1(Q))}function q1(Q,X,$){var V=-1,W=w2,Y=Q.length,Z=!0,J=[],q=J;if($)Z=!1,W=k2;else if(Y>=T2){var E=X?null:G1(Q);if(E)return r(E);Z=!1,W=p2,q=new C}else q=X?[]:J;Q:while(++V<Y){var P=Q[V],R=X?X(P):P;if(P=$||P!==0?P:0,Z&&R===R){var w=q.length;while(w--)if(q[w]===R)continue Q;if(X)q.push(R);J.push(P)}else if(!W(q,R,$)){if(q!==J)q.push(R);J.push(P)}}return J}var G1=!(m&&1/r(new m([,-0]))[1]==_2)?K1:function(Q){return new m(Q)};function x(Q,X){var $=Q.__data__;return E1(X)?$[typeof X=="string"?"string":"hash"]:$.map}function g(Q,X){var $=y2(Q,X);return J1($)?$:void 0}function E1(Q){var X=typeof Q;return X=="string"||X=="number"||X=="symbol"||X=="boolean"?Q!=="__proto__":Q===null}function P1(Q){return!!a&&a in Q}function U1(Q){if(Q!=null){try{return Q2.call(Q)}catch(X){}try{return Q+""}catch(X){}}return""}function B1(Q){return Q&&Q.length?q1(Q):[]}function R1(Q,X){return Q===X||Q!==Q&&X!==X}function L1(Q){var X=X2(Q)?m2.call(Q):"";return X==S2||X==N2}function X2(Q){var X=typeof Q;return!!Q&&(X=="object"||X=="function")}function K1(){}$2.exports=B1});var F={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};var s=Object.create(null);for(let Q in F)if(Object.hasOwn(F,Q))s[F[Q]]=Q;var K={to:{},get:{}};K.get=function(Q){let X=Q.slice(0,3).toLowerCase(),$,V;switch(X){case"hsl":{$=K.get.hsl(Q),V="hsl";break}case"hwb":{$=K.get.hwb(Q),V="hwb";break}default:{$=K.get.rgb(Q),V="rgb";break}}if(!$)return null;return{model:V,value:$}};K.get.rgb=function(Q){if(!Q)return null;let X=/^#([a-f\d]{3,4})$/i,$=/^#([a-f\d]{6})([a-f\d]{2})?$/i,V=/^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i,W=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i,Y=/^(\w+)$/,Z=[0,0,0,1],J,q,E;if(J=Q.match($)){E=J[2],J=J[1];for(q=0;q<3;q++){let P=q*2;Z[q]=Number.parseInt(J.slice(P,P+2),16)}if(E)Z[3]=Number.parseInt(E,16)/255}else if(J=Q.match(X)){J=J[1],E=J[3];for(q=0;q<3;q++)Z[q]=Number.parseInt(J[q]+J[q],16);if(E)Z[3]=Number.parseInt(E+E,16)/255}else if(J=Q.match(V)){for(q=0;q<3;q++)Z[q]=Number.parseFloat(J[q+1]);if(J[4])Z[3]=J[5]?Number.parseFloat(J[4])*0.01:Number.parseFloat(J[4])}else if(J=Q.match(W)){for(q=0;q<3;q++)Z[q]=Math.round(Number.parseFloat(J[q+1])*2.55);if(J[4])Z[3]=J[5]?Number.parseFloat(J[4])*0.01:Number.parseFloat(J[4])}else if(J=Q.toLowerCase().match(Y)){if(J[1]==="transparent")return[0,0,0,0];if(!Object.hasOwn(F,J[1]))return null;return Z=F[J[1]].slice(),Z[3]=1,Z}else return null;for(q=0;q<3;q++)Z[q]=A(Z[q],0,255);return Z[3]=A(Z[3],0,1),Z};K.get.hsl=function(Q){if(!Q)return null;let X=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i,$=Q.match(X);if($){let V=Number.parseFloat($[4]),W=(Number.parseFloat($[1])%360+360)%360,Y=A(Number.parseFloat($[2]),0,100),Z=A(Number.parseFloat($[3]),0,100),J=A(Number.isNaN(V)?1:V,0,1);return[W,Y,Z,J]}return null};K.get.hwb=function(Q){if(!Q)return null;let X=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i,$=Q.match(X);if($){let V=Number.parseFloat($[4]),W=(Number.parseFloat($[1])%360+360)%360,Y=A(Number.parseFloat($[2]),0,100),Z=A(Number.parseFloat($[3]),0,100),J=A(Number.isNaN(V)?1:V,0,1);return[W,Y,Z,J]}return null};K.to.hex=function(...Q){return"#"+k(Q[0])+k(Q[1])+k(Q[2])+(Q[3]<1?k(Math.round(Q[3]*255)):"")};K.to.rgb=function(...Q){return Q.length<4||Q[3]===1?"rgb("+Math.round(Q[0])+", "+Math.round(Q[1])+", "+Math.round(Q[2])+")":"rgba("+Math.round(Q[0])+", "+Math.round(Q[1])+", "+Math.round(Q[2])+", "+Q[3]+")"};K.to.rgb.percent=function(...Q){let X=Math.round(Q[0]/255*100),$=Math.round(Q[1]/255*100),V=Math.round(Q[2]/255*100);return Q.length<4||Q[3]===1?"rgb("+X+"%, "+$+"%, "+V+"%)":"rgba("+X+"%, "+$+"%, "+V+"%, "+Q[3]+")"};K.to.hsl=function(...Q){return Q.length<4||Q[3]===1?"hsl("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%)":"hsla("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%, "+Q[3]+")"};K.to.hwb=function(...Q){let X="";if(Q.length>=4&&Q[3]!==1)X=", "+Q[3];return"hwb("+Q[0]+", "+Q[1]+"%, "+Q[2]+"%"+X+")"};K.to.keyword=function(...Q){return s[Q.slice(0,3)]};function A(Q,X,$){return Math.min(Math.max(X,Q),$)}function k(Q){let X=Math.round(Q).toString(16).toUpperCase();return X.length<2?"0"+X:X}var T=K;var l={};for(let Q of Object.keys(F))l[F[Q]]=Q;var G={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},H=G,D=0.008856451679035631;function S(Q){let X=Q>0.0031308?1.055*Q**0.4166666666666667-0.055:Q*12.92;return Math.min(Math.max(0,X),1)}function N(Q){return Q>0.04045?((Q+0.055)/1.055)**2.4:Q/12.92}for(let Q of Object.keys(G)){if(!("channels"in G[Q]))throw Error("missing channels property: "+Q);if(!("labels"in G[Q]))throw Error("missing channel labels property: "+Q);if(G[Q].labels.length!==G[Q].channels)throw Error("channel and label counts mismatch: "+Q);let{channels:X,labels:$}=G[Q];delete G[Q].channels,delete G[Q].labels,Object.defineProperty(G[Q],"channels",{value:X}),Object.defineProperty(G[Q],"labels",{value:$})}G.rgb.hsl=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.min(X,$,V),Y=Math.max(X,$,V),Z=Y-W,J,q;switch(Y){case W:{J=0;break}case X:{J=($-V)/Z;break}case $:{J=2+(V-X)/Z;break}case V:{J=4+(X-$)/Z;break}}if(J=Math.min(J*60,360),J<0)J+=360;let E=(W+Y)/2;if(Y===W)q=0;else if(E<=0.5)q=Z/(Y+W);else q=Z/(2-Y-W);return[J,q*100,E*100]};G.rgb.hsv=function(Q){let X,$,V,W,Y,Z=Q[0]/255,J=Q[1]/255,q=Q[2]/255,E=Math.max(Z,J,q),P=E-Math.min(Z,J,q),R=function(w){return(E-w)/6/P+0.5};if(P===0)W=0,Y=0;else{switch(Y=P/E,X=R(Z),$=R(J),V=R(q),E){case Z:{W=V-$;break}case J:{W=0.3333333333333333+X-V;break}case q:{W=0.6666666666666666+$-X;break}}if(W<0)W+=1;else if(W>1)W-=1}return[W*360,Y*100,E*100]};G.rgb.hwb=function(Q){let X=Q[0],$=Q[1],V=Q[2],W=G.rgb.hsl(Q)[0],Y=0.00392156862745098*Math.min(X,Math.min($,V));return V=1-0.00392156862745098*Math.max(X,Math.max($,V)),[W,Y*100,V*100]};G.rgb.oklab=function(Q){let X=N(Q[0]/255),$=N(Q[1]/255),V=N(Q[2]/255),W=Math.cbrt(0.4122214708*X+0.5363325363*$+0.0514459929*V),Y=Math.cbrt(0.2119034982*X+0.6806995451*$+0.1073969566*V),Z=Math.cbrt(0.0883024619*X+0.2817188376*$+0.6299787005*V),J=0.2104542553*W+0.793617785*Y-0.0040720468*Z,q=1.9779984951*W-2.428592205*Y+0.4505937099*Z,E=0.0259040371*W+0.7827717662*Y-0.808675766*Z;return[J*100,q*100,E*100]};G.rgb.cmyk=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.min(1-X,1-$,1-V),Y=(1-X-W)/(1-W)||0,Z=(1-$-W)/(1-W)||0,J=(1-V-W)/(1-W)||0;return[Y*100,Z*100,J*100,W*100]};function E2(Q,X){return(Q[0]-X[0])**2+(Q[1]-X[1])**2+(Q[2]-X[2])**2}G.rgb.keyword=function(Q){let X=l[Q];if(X)return X;let $=Number.POSITIVE_INFINITY,V;for(let W of Object.keys(F)){let Y=F[W],Z=E2(Q,Y);if(Z<$)$=Z,V=W}return V};G.keyword.rgb=function(Q){return[...F[Q]]};G.rgb.xyz=function(Q){let X=N(Q[0]/255),$=N(Q[1]/255),V=N(Q[2]/255),W=X*0.4124564+$*0.3575761+V*0.1804375,Y=X*0.2126729+$*0.7151522+V*0.072175,Z=X*0.0193339+$*0.119192+V*0.9503041;return[W*100,Y*100,Z*100]};G.rgb.lab=function(Q){let X=G.rgb.xyz(Q),$=X[0],V=X[1],W=X[2];$/=95.047,V/=100,W/=108.883,$=$>D?$**0.3333333333333333:7.787*$+0.13793103448275862,V=V>D?V**0.3333333333333333:7.787*V+0.13793103448275862,W=W>D?W**0.3333333333333333:7.787*W+0.13793103448275862;let Y=116*V-16,Z=500*($-V),J=200*(V-W);return[Y,Z,J]};G.hsl.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100,W,Y;if($===0)return Y=V*255,[Y,Y,Y];let Z=V<0.5?V*(1+$):V+$-V*$,J=2*V-Z,q=[0,0,0];for(let E=0;E<3;E++){if(W=X+0.3333333333333333*-(E-1),W<0)W++;if(W>1)W--;if(6*W<1)Y=J+(Z-J)*6*W;else if(2*W<1)Y=Z;else if(3*W<2)Y=J+(Z-J)*(0.6666666666666666-W)*6;else Y=J;q[E]=Y*255}return q};G.hsl.hsv=function(Q){let X=Q[0],$=Q[1]/100,V=Q[2]/100,W=$,Y=Math.max(V,0.01);V*=2,$*=V<=1?V:2-V,W*=Y<=1?Y:2-Y;let Z=(V+$)/2,J=V===0?2*W/(Y+W):2*$/(V+$);return[X,J*100,Z*100]};G.hsv.rgb=function(Q){let X=Q[0]/60,$=Q[1]/100,V=Q[2]/100,W=Math.floor(X)%6,Y=X-Math.floor(X),Z=255*V*(1-$),J=255*V*(1-$*Y),q=255*V*(1-$*(1-Y));switch(V*=255,W){case 0:return[V,q,Z];case 1:return[J,V,Z];case 2:return[Z,V,q];case 3:return[Z,J,V];case 4:return[q,Z,V];case 5:return[V,Z,J]}};G.hsv.hsl=function(Q){let X=Q[0],$=Q[1]/100,V=Q[2]/100,W=Math.max(V,0.01),Y,Z;Z=(2-$)*V;let J=(2-$)*W;return Y=$*W,Y/=J<=1?J:2-J,Y=Y||0,Z/=2,[X,Y*100,Z*100]};G.hwb.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100,W=$+V,Y;if(W>1)$/=W,V/=W;let Z=Math.floor(6*X),J=1-V;if(Y=6*X-Z,(Z&1)!==0)Y=1-Y;let q=$+Y*(J-$),E,P,R;switch(Z){default:case 6:case 0:{E=J,P=q,R=$;break}case 1:{E=q,P=J,R=$;break}case 2:{E=$,P=J,R=q;break}case 3:{E=$,P=q,R=J;break}case 4:{E=q,P=$,R=J;break}case 5:{E=J,P=$,R=q;break}}return[E*255,P*255,R*255]};G.cmyk.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=Q[3]/100,Y=1-Math.min(1,X*(1-W)+W),Z=1-Math.min(1,$*(1-W)+W),J=1-Math.min(1,V*(1-W)+W);return[Y*255,Z*255,J*255]};G.xyz.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W,Y,Z;return W=X*3.2404542+$*-1.5371385+V*-0.4985314,Y=X*-0.969266+$*1.8760108+V*0.041556,Z=X*0.0556434+$*-0.2040259+V*1.0572252,W=S(W),Y=S(Y),Z=S(Z),[W*255,Y*255,Z*255]};G.xyz.lab=function(Q){let X=Q[0],$=Q[1],V=Q[2];X/=95.047,$/=100,V/=108.883,X=X>D?X**0.3333333333333333:7.787*X+0.13793103448275862,$=$>D?$**0.3333333333333333:7.787*$+0.13793103448275862,V=V>D?V**0.3333333333333333:7.787*V+0.13793103448275862;let W=116*$-16,Y=500*(X-$),Z=200*($-V);return[W,Y,Z]};G.xyz.oklab=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=Math.cbrt(0.8189330101*X+0.3618667424*$-0.1288597137*V),Y=Math.cbrt(0.0329845436*X+0.9293118715*$+0.0361456387*V),Z=Math.cbrt(0.0482003018*X+0.2643662691*$+0.633851707*V),J=0.2104542553*W+0.793617785*Y-0.0040720468*Z,q=1.9779984951*W-2.428592205*Y+0.4505937099*Z,E=0.0259040371*W+0.7827717662*Y-0.808675766*Z;return[J*100,q*100,E*100]};G.oklab.oklch=function(Q){return G.lab.lch(Q)};G.oklab.xyz=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=(0.999999998*X+0.396337792*$+0.215803758*V)**3,Y=(1.000000008*X-0.105561342*$-0.063854175*V)**3,Z=(1.000000055*X-0.089484182*$-1.291485538*V)**3,J=1.227013851*W-0.55779998*Y+0.281256149*Z,q=-0.040580178*W+1.11225687*Y-0.071676679*Z,E=-0.076381285*W-0.421481978*Y+1.58616322*Z;return[J*100,q*100,E*100]};G.oklab.rgb=function(Q){let X=Q[0]/100,$=Q[1]/100,V=Q[2]/100,W=(X+0.3963377774*$+0.2158037573*V)**3,Y=(X-0.1055613458*$-0.0638541728*V)**3,Z=(X-0.0894841775*$-1.291485548*V)**3,J=S(4.0767416621*W-3.3077115913*Y+0.2309699292*Z),q=S(-1.2684380046*W+2.6097574011*Y-0.3413193965*Z),E=S(-0.0041960863*W-0.7034186147*Y+1.707614701*Z);return[J*255,q*255,E*255]};G.oklch.oklab=function(Q){return G.lch.lab(Q)};G.lab.xyz=function(Q){let X=Q[0],$=Q[1],V=Q[2],W,Y,Z;Y=(X+16)/116,W=$/500+Y,Z=Y-V/200;let J=Y**3,q=W**3,E=Z**3;return Y=J>D?J:(Y-0.13793103448275862)/7.787,W=q>D?q:(W-0.13793103448275862)/7.787,Z=E>D?E:(Z-0.13793103448275862)/7.787,W*=95.047,Y*=100,Z*=108.883,[W,Y,Z]};G.lab.lch=function(Q){let X=Q[0],$=Q[1],V=Q[2],W;if(W=Math.atan2(V,$)*360/2/Math.PI,W<0)W+=360;let Z=Math.sqrt($*$+V*V);return[X,Z,W]};G.lch.lab=function(Q){let X=Q[0],$=Q[1],W=Q[2]/360*2*Math.PI,Y=$*Math.cos(W),Z=$*Math.sin(W);return[X,Y,Z]};G.rgb.ansi16=function(Q,X=null){let[$,V,W]=Q,Y=X===null?G.rgb.hsv(Q)[2]:X;if(Y=Math.round(Y/50),Y===0)return 30;let Z=30+(Math.round(W/255)<<2|Math.round(V/255)<<1|Math.round($/255));if(Y===2)Z+=60;return Z};G.hsv.ansi16=function(Q){return G.rgb.ansi16(G.hsv.rgb(Q),Q[2])};G.rgb.ansi256=function(Q){let X=Q[0],$=Q[1],V=Q[2];if(X>>4===$>>4&&$>>4===V>>4){if(X<8)return 16;if(X>248)return 231;return Math.round((X-8)/247*24)+232}return 16+36*Math.round(X/255*5)+6*Math.round($/255*5)+Math.round(V/255*5)};G.ansi16.rgb=function(Q){Q=Q[0];let X=Q%10;if(X===0||X===7){if(Q>50)X+=3.5;return X=X/10.5*255,[X,X,X]}let $=(Math.trunc(Q>50)+1)*0.5,V=(X&1)*$*255,W=(X>>1&1)*$*255,Y=(X>>2&1)*$*255;return[V,W,Y]};G.ansi256.rgb=function(Q){if(Q=Q[0],Q>=232){let Y=(Q-232)*10+8;return[Y,Y,Y]}Q-=16;let X,$=Math.floor(Q/36)/5*255,V=Math.floor((X=Q%36)/6)/5*255,W=X%6/5*255;return[$,V,W]};G.rgb.hex=function(Q){let $=(((Math.round(Q[0])&255)<<16)+((Math.round(Q[1])&255)<<8)+(Math.round(Q[2])&255)).toString(16).toUpperCase();return"000000".slice($.length)+$};G.hex.rgb=function(Q){let X=Q.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!X)return[0,0,0];let $=X[0];if(X[0].length===3)$=[...$].map((J)=>J+J).join("");let V=Number.parseInt($,16),W=V>>16&255,Y=V>>8&255,Z=V&255;return[W,Y,Z]};G.rgb.hcg=function(Q){let X=Q[0]/255,$=Q[1]/255,V=Q[2]/255,W=Math.max(Math.max(X,$),V),Y=Math.min(Math.min(X,$),V),Z=W-Y,J,q=Z<1?Y/(1-Z):0;if(Z<=0)J=0;else if(W===X)J=($-V)/Z%6;else if(W===$)J=2+(V-X)/Z;else J=4+(X-$)/Z;return J/=6,J%=1,[J*360,Z*100,q*100]};G.hsl.hcg=function(Q){let X=Q[1]/100,$=Q[2]/100,V=$<0.5?2*X*$:2*X*(1-$),W=0;if(V<1)W=($-0.5*V)/(1-V);return[Q[0],V*100,W*100]};G.hsv.hcg=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X*$,W=0;if(V<1)W=($-V)/(1-V);return[Q[0],V*100,W*100]};G.hcg.rgb=function(Q){let X=Q[0]/360,$=Q[1]/100,V=Q[2]/100;if($===0)return[V*255,V*255,V*255];let W=[0,0,0],Y=X%1*6,Z=Y%1,J=1-Z,q=0;switch(Math.floor(Y)){case 0:{W[0]=1,W[1]=Z,W[2]=0;break}case 1:{W[0]=J,W[1]=1,W[2]=0;break}case 2:{W[0]=0,W[1]=1,W[2]=Z;break}case 3:{W[0]=0,W[1]=J,W[2]=1;break}case 4:{W[0]=Z,W[1]=0,W[2]=1;break}default:W[0]=1,W[1]=0,W[2]=J}return q=(1-$)*V,[($*W[0]+q)*255,($*W[1]+q)*255,($*W[2]+q)*255]};G.hcg.hsv=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X+$*(1-X),W=0;if(V>0)W=X/V;return[Q[0],W*100,V*100]};G.hcg.hsl=function(Q){let X=Q[1]/100,V=Q[2]/100*(1-X)+0.5*X,W=0;if(V>0&&V<0.5)W=X/(2*V);else if(V>=0.5&&V<1)W=X/(2*(1-V));return[Q[0],W*100,V*100]};G.hcg.hwb=function(Q){let X=Q[1]/100,$=Q[2]/100,V=X+$*(1-X);return[Q[0],(V-X)*100,(1-V)*100]};G.hwb.hcg=function(Q){let X=Q[1]/100,V=1-Q[2]/100,W=V-X,Y=0;if(W<1)Y=(V-W)/(1-W);return[Q[0],W*100,Y*100]};G.apple.rgb=function(Q){return[Q[0]/65535*255,Q[1]/65535*255,Q[2]/65535*255]};G.rgb.apple=function(Q){return[Q[0]/255*65535,Q[1]/255*65535,Q[2]/255*65535]};G.gray.rgb=function(Q){return[Q[0]/100*255,Q[0]/100*255,Q[0]/100*255]};G.gray.hsl=function(Q){return[0,0,Q[0]]};G.gray.hsv=G.gray.hsl;G.gray.hwb=function(Q){return[0,100,Q[0]]};G.gray.cmyk=function(Q){return[0,0,0,Q[0]]};G.gray.lab=function(Q){return[Q[0],0,0]};G.gray.hex=function(Q){let X=Math.round(Q[0]/100*255)&255,V=((X<<16)+(X<<8)+X).toString(16).toUpperCase();return"000000".slice(V.length)+V};G.rgb.gray=function(Q){return[(Q[0]+Q[1]+Q[2])/3/255*100]};function P2(){let Q={},X=Object.keys(H);for(let{length:$}=X,V=0;V<$;V++)Q[X[V]]={distance:-1,parent:null};return Q}function U2(Q){let X=P2(),$=[Q];X[Q].distance=0;while($.length>0){let V=$.pop(),W=Object.keys(H[V]);for(let{length:Y}=W,Z=0;Z<Y;Z++){let J=W[Z],q=X[J];if(q.distance===-1)q.distance=X[V].distance+1,q.parent=V,$.unshift(J)}}return X}function B2(Q,X){return function($){return X(Q($))}}function R2(Q,X){let $=[X[Q].parent,Q],V=H[X[Q].parent][Q],W=X[Q].parent;while(X[W].parent)$.unshift(X[W].parent),V=B2(H[X[W].parent][W],V),W=X[W].parent;return V.conversion=$,V}function L2(Q){let X=U2(Q),$={},V=Object.keys(X);for(let{length:W}=V,Y=0;Y<W;Y++){let Z=V[Y];if(X[Z].parent===null)continue;$[Z]=R2(Z,X)}return $}var t=L2;var I={},K2=Object.keys(H);function O2(Q){let X=function(...$){let V=$[0];if(V===void 0||V===null)return V;if(V.length>1)$=V;return Q($)};if("conversion"in Q)X.conversion=Q.conversion;return X}function F2(Q){let X=function(...$){let V=$[0];if(V===void 0||V===null)return V;if(V.length>1)$=V;let W=Q($);if(typeof W==="object")for(let{length:Y}=W,Z=0;Z<Y;Z++)W[Z]=Math.round(W[Z]);return W};if("conversion"in Q)X.conversion=Q.conversion;return X}for(let Q of K2){I[Q]={},Object.defineProperty(I[Q],"channels",{value:H[Q].channels}),Object.defineProperty(I[Q],"labels",{value:H[Q].labels});let X=t(Q),$=Object.keys(X);for(let V of $){let W=X[V];I[Q][V]=F2(W),I[Q][V].raw=O2(W)}}var O=I;var o=["keyword","gray","hex"],p={};for(let Q of Object.keys(O))p[[...O[Q].labels].sort().join("")]=Q;var y={};function L(Q,X){if(!(this instanceof L))return new L(Q,X);if(X&&X in o)X=null;if(X&&!(X in O))throw Error("Unknown model: "+X);let $,V;if(Q==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(Q instanceof L)this.model=Q.model,this.color=[...Q.color],this.valpha=Q.valpha;else if(typeof Q==="string"){let W=T.get(Q);if(W===null)throw Error("Unable to parse color from string: "+Q);this.model=W.model,V=O[this.model].channels,this.color=W.value.slice(0,V),this.valpha=typeof W.value[V]==="number"?W.value[V]:1}else if(Q.length>0){this.model=X||"rgb",V=O[this.model].channels;let W=Array.prototype.slice.call(Q,0,V);this.color=d(W,V),this.valpha=typeof Q[V]==="number"?Q[V]:1}else if(typeof Q==="number")this.model="rgb",this.color=[Q>>16&255,Q>>8&255,Q&255],this.valpha=1;else{this.valpha=1;let W=Object.keys(Q);if("alpha"in Q)W.splice(W.indexOf("alpha"),1),this.valpha=typeof Q.alpha==="number"?Q.alpha:0;let Y=W.sort().join("");if(!(Y in p))throw Error("Unable to parse color from object: "+JSON.stringify(Q));this.model=p[Y];let{labels:Z}=O[this.model],J=[];for($=0;$<Z.length;$++)J.push(Q[Z[$]]);this.color=d(J)}if(y[this.model]){V=O[this.model].channels;for($=0;$<V;$++){let W=y[this.model][$];if(W)this.color[$]=W(this.color[$])}}if(this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze)Object.freeze(this)}L.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(Q){let X=this.model in T.to?this:this.rgb();X=X.round(typeof Q==="number"?Q:1);let $=X.valpha===1?X.color:[...X.color,this.valpha];return T.to[X.model](...$)},percentString(Q){let X=this.rgb().round(typeof Q==="number"?Q:1),$=X.valpha===1?X.color:[...X.color,this.valpha];return T.to.rgb.percent(...$)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let Q={},{channels:X}=O[this.model],{labels:$}=O[this.model];for(let V=0;V<X;V++)Q[$[V]]=this.color[V];if(this.valpha!==1)Q.alpha=this.valpha;return Q},unitArray(){let Q=this.rgb().color;if(Q[0]/=255,Q[1]/=255,Q[2]/=255,this.valpha!==1)Q.push(this.valpha);return Q},unitObject(){let Q=this.rgb().object();if(Q.r/=255,Q.g/=255,Q.b/=255,this.valpha!==1)Q.alpha=this.valpha;return Q},round(Q){return Q=Math.max(Q||0,0),new L([...this.color.map(H2(Q)),this.valpha],this.model)},alpha(Q){if(Q!==void 0)return new L([...this.color,Math.max(0,Math.min(1,Q))],this.model);return this.valpha},red:U("rgb",0,B(255)),green:U("rgb",1,B(255)),blue:U("rgb",2,B(255)),hue:U(["hsl","hsv","hsl","hwb","hcg"],0,(Q)=>(Q%360+360)%360),saturationl:U("hsl",1,B(100)),lightness:U("hsl",2,B(100)),saturationv:U("hsv",1,B(100)),value:U("hsv",2,B(100)),chroma:U("hcg",1,B(100)),gray:U("hcg",2,B(100)),white:U("hwb",1,B(100)),wblack:U("hwb",2,B(100)),cyan:U("cmyk",0,B(100)),magenta:U("cmyk",1,B(100)),yellow:U("cmyk",2,B(100)),black:U("cmyk",3,B(100)),x:U("xyz",0,B(95.047)),y:U("xyz",1,B(100)),z:U("xyz",2,B(108.833)),l:U("lab",0,B(100)),a:U("lab",1),b:U("lab",2),keyword(Q){if(Q!==void 0)return new L(Q);return O[this.model].keyword(this.color)},hex(Q){if(Q!==void 0)return new L(Q);return T.to.hex(...this.rgb().round().color)},hexa(Q){if(Q!==void 0)return new L(Q);let X=this.rgb().round().color,$=Math.round(this.valpha*255).toString(16).toUpperCase();if($.length===1)$="0"+$;return T.to.hex(...X)+$},rgbNumber(){let Q=this.rgb().color;return(Q[0]&255)<<16|(Q[1]&255)<<8|Q[2]&255},luminosity(){let Q=this.rgb().color,X=[];for(let[$,V]of Q.entries()){let W=V/255;X[$]=W<=0.04045?W/12.92:((W+0.055)/1.055)**2.4}return 0.2126*X[0]+0.7152*X[1]+0.0722*X[2]},contrast(Q){let X=this.luminosity(),$=Q.luminosity();if(X>$)return(X+0.05)/($+0.05);return($+0.05)/(X+0.05)},level(Q){let X=this.contrast(Q);if(X>=7)return"AAA";return X>=4.5?"AA":""},isDark(){let Q=this.rgb().color;return(Q[0]*2126+Q[1]*7152+Q[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let Q=this.rgb();for(let X=0;X<3;X++)Q.color[X]=255-Q.color[X];return Q},lighten(Q){let X=this.hsl();return X.color[2]+=X.color[2]*Q,X},darken(Q){let X=this.hsl();return X.color[2]-=X.color[2]*Q,X},saturate(Q){let X=this.hsl();return X.color[1]+=X.color[1]*Q,X},desaturate(Q){let X=this.hsl();return X.color[1]-=X.color[1]*Q,X},whiten(Q){let X=this.hwb();return X.color[1]+=X.color[1]*Q,X},blacken(Q){let X=this.hwb();return X.color[2]+=X.color[2]*Q,X},grayscale(){let Q=this.rgb().color,X=Q[0]*0.3+Q[1]*0.59+Q[2]*0.11;return L.rgb(X,X,X)},fade(Q){return this.alpha(this.valpha-this.valpha*Q)},opaquer(Q){return this.alpha(this.valpha+this.valpha*Q)},rotate(Q){let X=this.hsl(),$=X.color[0];return $=($+Q)%360,$=$<0?360+$:$,X.color[0]=$,X},mix(Q,X){if(!Q||!Q.rgb)throw Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof Q);let $=Q.rgb(),V=this.rgb(),W=X===void 0?0.5:X,Y=2*W-1,Z=$.alpha()-V.alpha(),J=((Y*Z===-1?Y:(Y+Z)/(1+Y*Z))+1)/2,q=1-J;return L.rgb(J*$.red()+q*V.red(),J*$.green()+q*V.green(),J*$.blue()+q*V.blue(),$.alpha()*W+V.alpha()*(1-W))}};for(let Q of Object.keys(O)){if(o.includes(Q))continue;let{channels:X}=O[Q];L.prototype[Q]=function(...$){if(this.model===Q)return new L(this);if($.length>0)return new L($,Q);return new L([...A2(O[this.model][Q].raw(this.color)),this.valpha],Q)},L[Q]=function(...$){let V=$[0];if(typeof V==="number")V=d($,X);return new L(V,Q)}}function D2(Q,X){return Number(Q.toFixed(X))}function H2(Q){return function(X){return D2(X,Q)}}function U(Q,X,$){Q=Array.isArray(Q)?Q:[Q];for(let V of Q)(y[V]||=[])[X]=$;return Q=Q[0],function(V){let W;if(V!==void 0){if($)V=$(V);return W=this[Q](),W.color[X]=V,W}if(W=this[Q]().color[X],$)W=$(W);return W}}function B(Q){return function(X){return Math.max(0,Math.min(Q,X))}}function A2(Q){return Array.isArray(Q)?Q:[Q]}function d(Q,X){for(let $=0;$<X;$++)if(typeof Q[$]!=="number")Q[$]=0;return Q}var u=L;var n=q2(V2(),1),O1=(Q,X={})=>{let $=[],V=[],W={aa:4.5,aaLarge:3,aaa:7,aaaLarge:4.5},Z=Object.assign({threshold:0,compact:!1,uniq:!0},X);if(Array.isArray(Q)){let J=Q;if(Z.uniq)J=n.default(Q);if(J!==void 0)$=J.map((q)=>u(q))}else if(typeof Q==="object"){if($=Object.keys(Q).map((J)=>u(Q[J])),Z.uniq)$=n.default($)}else return console.error("Must provide an array or object"),!1;return V=$.map((J)=>{let q=Z.compact?{hex:"",combinations:[]}:{color:J.color,model:J.model,valpha:J.valpha,hex:"",combinations:[]};return q.hex=J.hex(),q.combinations=$.filter((E)=>J!==E).filter((E)=>{if(Z.threshold!==void 0)return J.contrast(E)>Z.threshold;return!0}).map((E)=>{let P=Z.compact?{accessibility:{aa:!1,aaLarge:!1,aaa:!1,aaaLarge:!1},hex:"",contrast:0}:{accessibility:{aa:!1,aaLarge:!1,aaa:!1,aaaLarge:!1},hex:"",contrast:0,color:E.color,model:E.model,valpha:E.valpha};return P=Object.assign(P,{hex:E.hex(),contrast:J.contrast(E)}),P.accessibility={aa:P.contrast>=W.aa,aaLarge:P.contrast>=W.aaLarge,aaa:P.contrast>=W.aaa,aaaLarge:P.contrast>=W.aaaLarge},P}),q}),V},p1=O1;export{p1 as default};
|
package/package.json
CHANGED
|
@@ -1,30 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "color-combos",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Get accessibility information about colour combinations",
|
|
5
5
|
"entry": "src/index.ts",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
8
|
"module": "dist/index.mjs",
|
|
8
9
|
"types": "dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.mjs"
|
|
15
|
+
},
|
|
16
|
+
"require": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": "24.12.0",
|
|
24
|
+
"bun": ">=1.0.0"
|
|
25
|
+
},
|
|
9
26
|
"files": [
|
|
10
27
|
"dist",
|
|
11
28
|
"README.md"
|
|
12
29
|
],
|
|
13
30
|
"scripts": {
|
|
14
|
-
"build": "
|
|
15
|
-
"build:dev": "
|
|
16
|
-
"bundlesize": "bundlesize",
|
|
31
|
+
"build": "bun run clean && bun run compile",
|
|
32
|
+
"build:dev": "bun run clean && bun run compile:dev",
|
|
17
33
|
"clean": "rm -rf ./dist",
|
|
18
|
-
"compile": "
|
|
19
|
-
"compile:dev": "
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
34
|
+
"compile": "NODE_ENV=production bun run build.ts",
|
|
35
|
+
"compile:dev": "NODE_ENV=development bun run build.ts",
|
|
36
|
+
"lint": "biome check .",
|
|
37
|
+
"lint:fix": "biome check --write .",
|
|
38
|
+
"format": "biome format .",
|
|
39
|
+
"format:fix": "biome format --write .",
|
|
40
|
+
"test": "bun test src",
|
|
41
|
+
"test:integration": "bun test _test_/integration",
|
|
42
|
+
"test:all": "bun run test && bun run build && bun run test:integration",
|
|
24
43
|
"semantic-release": "semantic-release",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"postpublish": "pinst --enable"
|
|
44
|
+
"size": "bun run build && size-limit",
|
|
45
|
+
"prepare": "husky"
|
|
28
46
|
},
|
|
29
47
|
"repository": {
|
|
30
48
|
"type": "git",
|
|
@@ -33,8 +51,13 @@
|
|
|
33
51
|
"keywords": [
|
|
34
52
|
"accessibility",
|
|
35
53
|
"color",
|
|
36
|
-
"a11y"
|
|
54
|
+
"a11y",
|
|
55
|
+
"wcag",
|
|
56
|
+
"contrast",
|
|
57
|
+
"typescript",
|
|
58
|
+
"esm"
|
|
37
59
|
],
|
|
60
|
+
"sideEffects": false,
|
|
38
61
|
"author": "sitaggart",
|
|
39
62
|
"license": "MIT",
|
|
40
63
|
"bugs": {
|
|
@@ -42,49 +65,38 @@
|
|
|
42
65
|
},
|
|
43
66
|
"homepage": "https://github.com/SiTaggart/color-combos#readme",
|
|
44
67
|
"dependencies": {
|
|
45
|
-
"color": "
|
|
68
|
+
"color": "5.0.3",
|
|
46
69
|
"lodash.uniq": "4.5.0"
|
|
47
70
|
},
|
|
48
71
|
"devDependencies": {
|
|
49
|
-
"@
|
|
50
|
-
"@sitaggart/
|
|
51
|
-
"@
|
|
52
|
-
"@types/
|
|
53
|
-
"@types/
|
|
54
|
-
"@types/
|
|
55
|
-
"@types/lodash": "4.
|
|
56
|
-
"@types/
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"eslint": "8.28.0",
|
|
60
|
-
"husky": "8.0.2",
|
|
61
|
-
"jest": "29.3.1",
|
|
62
|
-
"pinst": "3.0.0",
|
|
72
|
+
"@biomejs/biome": "2.3.10",
|
|
73
|
+
"@sitaggart/lint-config": "1.0.3",
|
|
74
|
+
"@size-limit/preset-big-lib": "12.0.0",
|
|
75
|
+
"@types/bun": "1.3.5",
|
|
76
|
+
"@types/color": "4.2.0",
|
|
77
|
+
"@types/lodash": "4.17.21",
|
|
78
|
+
"@types/lodash.uniq": "4.5.9",
|
|
79
|
+
"@types/node": "24.10.4",
|
|
80
|
+
"husky": "9.1.7",
|
|
81
|
+
"oxc-transform": "0.104.0",
|
|
63
82
|
"precise-commits": "1.0.2",
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"ts-jest": "29.0.3",
|
|
67
|
-
"ts-node": "10.9.1",
|
|
68
|
-
"tsup": "6.5.0",
|
|
69
|
-
"typescript": "4.9.3"
|
|
70
|
-
},
|
|
71
|
-
"resolutions": {
|
|
72
|
-
"npm/chalk": "^4.1.2"
|
|
83
|
+
"semantic-release": "25.0.2",
|
|
84
|
+
"size-limit": "12.0.0"
|
|
73
85
|
},
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
"size-limit": [
|
|
87
|
+
{
|
|
88
|
+
"path": "dist/*.js",
|
|
89
|
+
"limit": "11 kB"
|
|
90
|
+
},
|
|
79
91
|
{
|
|
80
|
-
"path": "
|
|
81
|
-
"
|
|
92
|
+
"path": "dist/*.mjs",
|
|
93
|
+
"limit": "11 kB",
|
|
94
|
+
"import": "ColorCombos"
|
|
82
95
|
}
|
|
83
96
|
],
|
|
84
97
|
"release": {
|
|
85
98
|
"branches": [
|
|
86
99
|
"main"
|
|
87
100
|
]
|
|
88
|
-
}
|
|
89
|
-
"packageManager": "yarn@3.3.0"
|
|
101
|
+
}
|
|
90
102
|
}
|