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 CHANGED
@@ -1,31 +1,30 @@
1
- interface Accessibility {
2
- aa: boolean;
3
- aaLarge: boolean;
4
- aaa: boolean;
5
- aaaLarge: boolean;
1
+ export interface Accessibility {
2
+ aa: boolean;
3
+ aaLarge: boolean;
4
+ aaa: boolean;
5
+ aaaLarge: boolean;
6
6
  }
7
- interface Combination {
8
- accessibility: Accessibility;
9
- color?: number[];
10
- contrast: number;
11
- hex: string;
12
- model?: string;
13
- valpha?: number;
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
- color?: number[];
17
- combinations: Combination[];
18
- hex: string;
19
- model?: string;
20
- valpha?: number;
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
- threshold?: number;
24
- compact?: boolean;
25
- uniq?: boolean;
23
+ threshold?: number;
24
+ compact?: boolean;
25
+ uniq?: boolean;
26
26
  }
27
- declare const ColorCombos: (colors: {
28
- [name: string]: string;
29
- } | string[], options?: Options) => ColorCombo[] | false;
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.0",
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": "yarn clean && yarn compile",
15
- "build:dev": "yarn clean && yarn compile: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": "yarn tsup src/index.ts --dts --format esm,cjs --env.NODE_ENV production",
19
- "compile:dev": "yarn tsup src/index.ts --dts --format esm,cjs --env.NODE_ENV development",
20
- "eslint": "eslint --ext .tsx,.ts,.js ./src",
21
- "prettier": "prettier --list-different '**/*.{ts,tsx,js}'",
22
- "prettier-clean": "prettier --write '**/*.{ts,tsx,js}'",
23
- "test": "jest",
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
- "_postinstall": "husky install",
26
- "prepublishOnly": "pinst --disable",
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": "4.2.3",
68
+ "color": "5.0.3",
46
69
  "lodash.uniq": "4.5.0"
47
70
  },
48
71
  "devDependencies": {
49
- "@sitaggart/eslint-config-ts": "0.6.25",
50
- "@sitaggart/prettier-config": "0.3.24",
51
- "@swc/core": "1.3.20",
52
- "@types/color": "3.0.3",
53
- "@types/eslint": "8.4.10",
54
- "@types/jest": "29.2.3",
55
- "@types/lodash": "4.14.190",
56
- "@types/lodash.uniq": "4.5.7",
57
- "@types/node": "18.11.9",
58
- "bundlesize": "0.18.1",
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
- "prettier": "2.8.0",
65
- "semantic-release": "19.0.5",
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
- "jest": {
75
- "preset": "ts-jest",
76
- "testEnvironment": "node"
77
- },
78
- "bundlesize": [
86
+ "size-limit": [
87
+ {
88
+ "path": "dist/*.js",
89
+ "limit": "11 kB"
90
+ },
79
91
  {
80
- "path": "./dist/*.js",
81
- "maxSize": "11 kB"
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
  }