@salty-css/core 0.0.1-alpha.30 → 0.0.1-alpha.300
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/.saltyrc.schema.json +48 -0
- package/README.md +469 -26
- package/bin/main.cjs +8 -5
- package/bin/main.js +230 -108
- package/cache/resolve-dynamic-config-cache.cjs +1 -0
- package/cache/resolve-dynamic-config-cache.d.ts +1 -0
- package/cache/resolve-dynamic-config-cache.js +11 -0
- package/compiler/get-files.d.ts +3 -0
- package/compiler/get-function-range.d.ts +1 -0
- package/compiler/helpers.d.ts +2 -0
- package/compiler/index.cjs +1 -11
- package/compiler/index.d.ts +19 -11
- package/compiler/index.js +20 -172
- package/config/define-config.d.ts +1 -1
- package/config/index.cjs +1 -1
- package/config/index.d.ts +2 -1
- package/config/index.js +12 -2
- package/css/index.cjs +1 -1
- package/css/index.d.ts +4 -1
- package/css/index.js +10 -2
- package/css/keyframes.cjs +1 -0
- package/css/keyframes.d.ts +22 -0
- package/css/keyframes.js +39 -0
- package/css/media.cjs +1 -0
- package/css/media.d.ts +87 -0
- package/css/media.js +88 -0
- package/css/merge.cjs +1 -0
- package/css/merge.d.ts +7 -0
- package/css/merge.js +5 -0
- package/css/token.cjs +1 -0
- package/css/token.d.ts +1 -0
- package/css/token.js +4 -0
- package/{dash-case-DKzpenwY.cjs → dash-case-BJEkFEGQ.cjs} +1 -1
- package/{dash-case-DMQMcCO6.js → dash-case-DBThphLm.js} +2 -2
- package/define-templates-4A2yHcMF.js +52 -0
- package/define-templates-Cunsb_Tr.cjs +1 -0
- package/factories/define-global-styles.d.ts +7 -0
- package/factories/define-media-query.d.ts +8 -0
- package/factories/define-templates.d.ts +27 -0
- package/factories/define-variables.d.ts +12 -0
- package/factories/index.cjs +1 -0
- package/factories/index.d.ts +4 -0
- package/factories/index.js +30 -0
- package/generators/class-name-generator.d.ts +6 -0
- package/generators/index.cjs +1 -0
- package/generators/index.d.ts +2 -0
- package/generators/index.js +88 -0
- package/generators/styled-generator.d.ts +20 -0
- package/generators/styles-generator.d.ts +22 -0
- package/helpers/color.d.ts +18 -0
- package/helpers/index.cjs +1 -0
- package/helpers/index.d.ts +2 -0
- package/helpers/index.js +1183 -0
- package/helpers/viewport-clamp.d.ts +9 -0
- package/helpers-CC5pFyba.cjs +1 -0
- package/helpers-nHqH4L9L.js +11 -0
- package/index-CituHO0U.js +524 -0
- package/index-ol1Q_xul.cjs +41 -0
- package/package.json +54 -6
- package/parse-styles-B1E0JeC7.cjs +5 -0
- package/parse-styles-y_-drahL.js +161 -0
- package/parsers/index.cjs +2 -0
- package/parsers/index.d.ts +5 -0
- package/parsers/index.js +33 -0
- package/parsers/parse-modifiers.d.ts +3 -0
- package/parsers/parse-styles.d.ts +13 -0
- package/parsers/parse-templates.d.ts +4 -0
- package/parsers/parse-tokens.d.ts +3 -0
- package/parsers/parser-types.d.ts +8 -0
- package/parsers/property-name-check.d.ts +1 -0
- package/parsers/unit-check.d.ts +7 -0
- package/react-vanilla-file-CCXbsjIb.js +18 -0
- package/react-vanilla-file-CG_WJLam.cjs +15 -0
- package/{salty.config-D9ANEDiH.js → salty.config-BhBY_oOk.js} +1 -0
- package/{salty.config-BupieCfE.cjs → salty.config-Dk6ZcCxI.cjs} +3 -2
- package/server/index.cjs +1 -0
- package/server/index.d.ts +1 -0
- package/server/index.js +4 -0
- package/server/should-restart.d.ts +1 -0
- package/should-restart-C6VJ-qaY.js +12 -0
- package/should-restart-DAhvRrtu.cjs +1 -0
- package/templates/salty-reset.d.ts +2 -0
- package/types/cli-types.d.ts +10 -0
- package/types/config-types.d.ts +85 -0
- package/types/index.d.ts +57 -23
- package/util/dot-case.d.ts +1 -0
- package/util/index.cjs +1 -1
- package/util/index.js +1 -1
- package/util/module-type.d.ts +1 -0
- package/viewport-clamp-CaYwREKc.js +7 -0
- package/viewport-clamp-mq_DFtRR.cjs +1 -0
- package/config/config-types.d.ts +0 -59
- package/generator/index.cjs +0 -1
- package/generator/index.d.ts +0 -1
- package/generator/index.js +0 -61
- package/generator/parse-modifiers.d.ts +0 -3
- package/generator/parse-styles.d.ts +0 -2
- package/generator/parse-templates.d.ts +0 -2
- package/generator/parse-tokens.d.ts +0 -2
- package/generator/parser-types.d.ts +0 -4
- package/generator/style-generator.d.ts +0 -28
- package/parse-templates-D4p3pgQR.js +0 -92
- package/parse-templates-W0YfTmOT.cjs +0 -8
@@ -0,0 +1,12 @@
|
|
1
|
+
import { SaltyVariables } from '../types/config-types';
|
2
|
+
export declare class VariablesFactory {
|
3
|
+
_current: SaltyVariables;
|
4
|
+
constructor(_current: SaltyVariables);
|
5
|
+
get isDefineVariables(): boolean;
|
6
|
+
}
|
7
|
+
/**
|
8
|
+
* Base level variables that can be used in all styles as they are applied globally to :root.
|
9
|
+
@param responsive Variables that are defined for different media queries.
|
10
|
+
@param conditional Variables that are defined for different parent selectors (classes or data attributes).
|
11
|
+
*/
|
12
|
+
export declare const defineVariables: (variables: SaltyVariables) => VariablesFactory;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../css/media.cjs"),r=require("../define-templates-Cunsb_Tr.cjs");class a{constructor(t){this._current=t}get isGlobalDefine(){return!0}}const i=e=>new a(e),n=e=>e(l.media);class s{constructor(t){this._current=t}get isDefineVariables(){return!0}}const o=e=>new s(e);exports.TemplateFactory=r.TemplateFactory;exports.TemplatesFactory=r.TemplatesFactory;exports.defineTemplates=r.defineTemplates;exports.GlobalStylesFactory=a;exports.VariablesFactory=s;exports.defineGlobalStyles=i;exports.defineMediaQuery=n;exports.defineVariables=o;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { media as t } from "../css/media.js";
|
2
|
+
import { T as f, a as d, d as m } from "../define-templates-4A2yHcMF.js";
|
3
|
+
class a {
|
4
|
+
constructor(r) {
|
5
|
+
this._current = r;
|
6
|
+
}
|
7
|
+
get isGlobalDefine() {
|
8
|
+
return !0;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
const o = (e) => new a(e), i = (e) => e(t);
|
12
|
+
class s {
|
13
|
+
constructor(r) {
|
14
|
+
this._current = r;
|
15
|
+
}
|
16
|
+
get isDefineVariables() {
|
17
|
+
return !0;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
const l = (e) => new s(e);
|
21
|
+
export {
|
22
|
+
a as GlobalStylesFactory,
|
23
|
+
f as TemplateFactory,
|
24
|
+
d as TemplatesFactory,
|
25
|
+
s as VariablesFactory,
|
26
|
+
o as defineGlobalStyles,
|
27
|
+
i as defineMediaQuery,
|
28
|
+
m as defineTemplates,
|
29
|
+
l as defineVariables
|
30
|
+
};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { StylesGenerator } from './styles-generator';
|
2
|
+
import { StyledParams } from '../types';
|
3
|
+
export declare class ClassNameGenerator<const STYLE_PARAMS extends StyledParams = StyledParams> extends StylesGenerator<STYLE_PARAMS> {
|
4
|
+
_params: STYLE_PARAMS;
|
5
|
+
constructor(_params: STYLE_PARAMS);
|
6
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var N=Object.defineProperty;var S=(r,s,t)=>s in r?N(r,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[s]=t;var y=(r,s,t)=>S(r,typeof s!="symbol"?s+"":s,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../parse-styles-B1E0JeC7.cjs"),o=require("../dash-case-BJEkFEGQ.cjs");class f{constructor(s){y(this,"buildContext",{});this.params=s}get priority(){return 0}get isRoot(){return this.priority===0}get hash(){const{base:s,variants:t,compoundVariants:e,anyOfVariants:i}=this.params;return o.toHash({base:s,variants:t,compoundVariants:e,anyOfVariants:i})}get cssClassName(){return this.hash}get classNames(){const s=new Set([this.cssClassName]),{className:t}=this.params;return typeof t=="string"&&s.add(t),typeof t=="object"&&t.forEach(e=>s.add(e)),this.getTemplateClasses().forEach(e=>s.add(e)),this.buildContext.classNames&&this.buildContext.classNames.forEach(e=>s.add(e)),[...s].join(" ")}get cssFileName(){const{callerName:s}=this.buildContext;return s?`cl_${o.dashCase(s)}-${this.hash}.css`:`${this.hash}.css`}get css(){const{base:s={},variants:t={},compoundVariants:e=[],anyOfVariants:i=[]}=this.params,{config:n}=this.buildContext,h={...s,variants:t,compoundVariants:e,anyOfVariants:i};return v.parseAndJoinStyles(h,`.${this.cssClassName}`,n,this.isRoot)}getTemplateClasses(s=this.buildContext.config){if(!(s!=null&&s.templates)||!this.params.base||this.priority>0)return[];const t=Object.keys(s.templates);return Object.entries(this.params.base).reduce((e,[i,n])=>(t.includes(i)&&e.push("t_"+o.toHash(o.dashCase(`${i}-${n}`),4)),e),[])}_withBuildContext(s){return this.buildContext=s,this}}class x extends f{constructor(s){super(s),this._params=s}}class V extends f{constructor(s,t){super(t),this.tagName=s,this._params=t}get priority(){var s;return this.params.priority?this.params.priority:typeof this.tagName=="function"||typeof this.tagName=="object"?(((s=this.tagName.generator)==null?void 0:s.priority)||0)+1:0}get clientProps(){const{element:s,variants:t={},compoundVariants:e=[],anyOfVariants:i=[],defaultVariants:n={},defaultProps:h={},passProps:p}=this.params,{callerName:b,isProduction:g}=this.buildContext,d=new Set([]),l=a=>{const c=n[a];c!==void 0?d.add(`${a}=${String(c)}`):d.add(a)};Object.keys(t).forEach(l),e.map(a=>Object.keys(a).forEach(l)),i.map(a=>Object.keys(a).forEach(l));const u=new Set([]);if(this.params.base){const a=JSON.stringify(this.params.base).match(/\{-?props\.([^}]+)\}/gi);a&&a.forEach(c=>{const m=c.replace(/\{(?:-)?props\.([^}]+)\}/gi,"$1"),C=o.dashCase(m);m&&u.add(C)})}return{element:s,hash:this.hash,variantKeys:[...d],propValueKeys:[...u],passProps:p,defaultProps:h,attr:{"data-component-name":g?void 0:b}}}}exports.ClassNameGenerator=x;exports.StyledGenerator=V;
|
@@ -0,0 +1,88 @@
|
|
1
|
+
var x = Object.defineProperty;
|
2
|
+
var V = (r, t, s) => t in r ? x(r, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[t] = s;
|
3
|
+
var f = (r, t, s) => V(r, typeof t != "symbol" ? t + "" : t, s);
|
4
|
+
import { p as v } from "../parse-styles-y_-drahL.js";
|
5
|
+
import { t as y, d } from "../dash-case-DBThphLm.js";
|
6
|
+
class b {
|
7
|
+
constructor(t) {
|
8
|
+
f(this, "buildContext", {});
|
9
|
+
this.params = t;
|
10
|
+
}
|
11
|
+
get priority() {
|
12
|
+
return 0;
|
13
|
+
}
|
14
|
+
get isRoot() {
|
15
|
+
return this.priority === 0;
|
16
|
+
}
|
17
|
+
get hash() {
|
18
|
+
const { base: t, variants: s, compoundVariants: a, anyOfVariants: i } = this.params;
|
19
|
+
return y({ base: t, variants: s, compoundVariants: a, anyOfVariants: i });
|
20
|
+
}
|
21
|
+
get cssClassName() {
|
22
|
+
return this.hash;
|
23
|
+
}
|
24
|
+
get classNames() {
|
25
|
+
const t = /* @__PURE__ */ new Set([this.cssClassName]), { className: s } = this.params;
|
26
|
+
return typeof s == "string" && t.add(s), typeof s == "object" && s.forEach((a) => t.add(a)), this.getTemplateClasses().forEach((a) => t.add(a)), this.buildContext.classNames && this.buildContext.classNames.forEach((a) => t.add(a)), [...t].join(" ");
|
27
|
+
}
|
28
|
+
get cssFileName() {
|
29
|
+
const { callerName: t } = this.buildContext;
|
30
|
+
return t ? `cl_${d(t)}-${this.hash}.css` : `${this.hash}.css`;
|
31
|
+
}
|
32
|
+
get css() {
|
33
|
+
const { base: t = {}, variants: s = {}, compoundVariants: a = [], anyOfVariants: i = [] } = this.params, { config: n } = this.buildContext, c = { ...t, variants: s, compoundVariants: a, anyOfVariants: i };
|
34
|
+
return v(c, `.${this.cssClassName}`, n, this.isRoot);
|
35
|
+
}
|
36
|
+
getTemplateClasses(t = this.buildContext.config) {
|
37
|
+
if (!(t != null && t.templates) || !this.params.base || this.priority > 0) return [];
|
38
|
+
const s = Object.keys(t.templates);
|
39
|
+
return Object.entries(this.params.base).reduce((a, [i, n]) => (s.includes(i) && a.push("t_" + y(d(`${i}-${n}`), 4)), a), []);
|
40
|
+
}
|
41
|
+
_withBuildContext(t) {
|
42
|
+
return this.buildContext = t, this;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
class j extends b {
|
46
|
+
constructor(t) {
|
47
|
+
super(t), this._params = t;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
class E extends b {
|
51
|
+
constructor(t, s) {
|
52
|
+
super(s), this.tagName = t, this._params = s;
|
53
|
+
}
|
54
|
+
get priority() {
|
55
|
+
var t;
|
56
|
+
return this.params.priority ? this.params.priority : typeof this.tagName == "function" || typeof this.tagName == "object" ? (((t = this.tagName.generator) == null ? void 0 : t.priority) || 0) + 1 : 0;
|
57
|
+
}
|
58
|
+
get clientProps() {
|
59
|
+
const { element: t, variants: s = {}, compoundVariants: a = [], anyOfVariants: i = [], defaultVariants: n = {}, defaultProps: c = {}, passProps: l } = this.params, { callerName: g, isProduction: N } = this.buildContext, h = /* @__PURE__ */ new Set([]), p = (e) => {
|
60
|
+
const o = n[e];
|
61
|
+
o !== void 0 ? h.add(`${e}=${String(o)}`) : h.add(e);
|
62
|
+
};
|
63
|
+
Object.keys(s).forEach(p), a.map((e) => Object.keys(e).forEach(p)), i.map((e) => Object.keys(e).forEach(p));
|
64
|
+
const m = /* @__PURE__ */ new Set([]);
|
65
|
+
if (this.params.base) {
|
66
|
+
const e = JSON.stringify(this.params.base).match(/\{-?props\.([^}]+)\}/gi);
|
67
|
+
e && e.forEach((o) => {
|
68
|
+
const u = o.replace(/\{(?:-)?props\.([^}]+)\}/gi, "$1"), C = d(u);
|
69
|
+
u && m.add(C);
|
70
|
+
});
|
71
|
+
}
|
72
|
+
return {
|
73
|
+
element: t,
|
74
|
+
hash: this.hash,
|
75
|
+
variantKeys: [...h],
|
76
|
+
propValueKeys: [...m],
|
77
|
+
passProps: l,
|
78
|
+
defaultProps: c,
|
79
|
+
attr: {
|
80
|
+
"data-component-name": N ? void 0 : g
|
81
|
+
}
|
82
|
+
};
|
83
|
+
}
|
84
|
+
}
|
85
|
+
export {
|
86
|
+
j as ClassNameGenerator,
|
87
|
+
E as StyledGenerator
|
88
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { StylesGenerator } from './styles-generator';
|
2
|
+
import { StyledParams, Tag } from '../types';
|
3
|
+
export interface StyledGeneratorClientProps {
|
4
|
+
element?: string;
|
5
|
+
hash?: string;
|
6
|
+
variantKeys?: string[];
|
7
|
+
propValueKeys?: string[];
|
8
|
+
passProps?: boolean | string | string[];
|
9
|
+
defaultProps?: Record<PropertyKey, unknown>;
|
10
|
+
attr?: {
|
11
|
+
[key: string]: any;
|
12
|
+
};
|
13
|
+
}
|
14
|
+
export declare class StyledGenerator<const STYLE_PARAMS extends StyledParams = StyledParams> extends StylesGenerator<STYLE_PARAMS> {
|
15
|
+
tagName: Tag<any>;
|
16
|
+
_params: STYLE_PARAMS;
|
17
|
+
constructor(tagName: Tag<any>, _params: STYLE_PARAMS);
|
18
|
+
get priority(): number;
|
19
|
+
get clientProps(): StyledGeneratorClientProps;
|
20
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { StyledParams } from '../types';
|
2
|
+
import { CachedConfig, SaltyConfig } from '../types/config-types';
|
3
|
+
export interface StylesGeneratorBuildTimeProps {
|
4
|
+
callerName?: string;
|
5
|
+
isProduction?: boolean;
|
6
|
+
config?: SaltyConfig & CachedConfig;
|
7
|
+
classNames?: string[];
|
8
|
+
}
|
9
|
+
export declare class StylesGenerator<const STYLE_PARAMS extends StyledParams = StyledParams> {
|
10
|
+
params: STYLE_PARAMS;
|
11
|
+
buildContext: StylesGeneratorBuildTimeProps;
|
12
|
+
constructor(params: STYLE_PARAMS);
|
13
|
+
get priority(): number;
|
14
|
+
get isRoot(): boolean;
|
15
|
+
get hash(): string;
|
16
|
+
get cssClassName(): string;
|
17
|
+
get classNames(): string;
|
18
|
+
get cssFileName(): string;
|
19
|
+
get css(): Promise<string>;
|
20
|
+
getTemplateClasses(config?: (SaltyConfig & CachedConfig) | undefined): string[];
|
21
|
+
_withBuildContext(context: StylesGeneratorBuildTimeProps): this;
|
22
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { CachedConfig } from '../config';
|
2
|
+
import { ColorInstance, ColorLike } from 'color';
|
3
|
+
declare global {
|
4
|
+
const saltyConfig: CachedConfig;
|
5
|
+
}
|
6
|
+
type BaseColor = Omit<ColorLike, string> | PropertyValueToken;
|
7
|
+
declare class Color {
|
8
|
+
base: BaseColor;
|
9
|
+
isColor: boolean;
|
10
|
+
currentColor: ColorInstance;
|
11
|
+
constructor(base: BaseColor);
|
12
|
+
private _createProxy;
|
13
|
+
private _resolveBaseColor;
|
14
|
+
_handleColorMethod(method: keyof ColorInstance): any;
|
15
|
+
toString(): string;
|
16
|
+
}
|
17
|
+
export declare const color: (value: BaseColor) => Color & ColorInstance;
|
18
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var P=Object.defineProperty;var I=(t,e,n)=>e in t?P(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var N=(t,e,n)=>I(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("../viewport-clamp-mq_DFtRR.cjs"),v={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]},C=Object.create(null);for(const t in v)Object.hasOwn(v,t)&&(C[v[t]]=t);const d={to:{},get:{}};d.get=function(t){const e=t.slice(0,3).toLowerCase();let n,r;switch(e){case"hsl":{n=d.get.hsl(t),r="hsl";break}case"hwb":{n=d.get.hwb(t),r="hwb";break}default:{n=d.get.rgb(t),r="rgb";break}}return n?{model:r,value:n}:null};d.get.rgb=function(t){if(!t)return null;const e=/^#([a-f\d]{3,4})$/i,n=/^#([a-f\d]{6})([a-f\d]{2})?$/i,r=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,o=/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/,l=/^(\w+)$/;let s=[0,0,0,1],a,c,u;if(a=t.match(n)){for(u=a[2],a=a[1],c=0;c<3;c++){const m=c*2;s[c]=Number.parseInt(a.slice(m,m+2),16)}u&&(s[3]=Number.parseInt(u,16)/255)}else if(a=t.match(e)){for(a=a[1],u=a[3],c=0;c<3;c++)s[c]=Number.parseInt(a[c]+a[c],16);u&&(s[3]=Number.parseInt(u+u,16)/255)}else if(a=t.match(r)){for(c=0;c<3;c++)s[c]=Number.parseInt(a[c+1],10);a[4]&&(s[3]=a[5]?Number.parseFloat(a[4])*.01:Number.parseFloat(a[4]))}else if(a=t.match(o)){for(c=0;c<3;c++)s[c]=Math.round(Number.parseFloat(a[c+1])*2.55);a[4]&&(s[3]=a[5]?Number.parseFloat(a[4])*.01:Number.parseFloat(a[4]))}else return(a=t.match(l))?a[1]==="transparent"?[0,0,0,0]:Object.hasOwn(v,a[1])?(s=v[a[1]],s[3]=1,s):null:null;for(c=0;c<3;c++)s[c]=y(s[c],0,255);return s[3]=y(s[3],0,1),s};d.get.hsl=function(t){if(!t)return null;const e=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,n=t.match(e);if(n){const r=Number.parseFloat(n[4]),o=(Number.parseFloat(n[1])%360+360)%360,l=y(Number.parseFloat(n[2]),0,100),s=y(Number.parseFloat(n[3]),0,100),a=y(Number.isNaN(r)?1:r,0,1);return[o,l,s,a]}return null};d.get.hwb=function(t){if(!t)return null;const e=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,n=t.match(e);if(n){const r=Number.parseFloat(n[4]),o=(Number.parseFloat(n[1])%360+360)%360,l=y(Number.parseFloat(n[2]),0,100),s=y(Number.parseFloat(n[3]),0,100),a=y(Number.isNaN(r)?1:r,0,1);return[o,l,s,a]}return null};d.to.hex=function(...t){return"#"+F(t[0])+F(t[1])+F(t[2])+(t[3]<1?F(Math.round(t[3]*255)):"")};d.to.rgb=function(...t){return t.length<4||t[3]===1?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"};d.to.rgb.percent=function(...t){const e=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||t[3]===1?"rgb("+e+"%, "+n+"%, "+r+"%)":"rgba("+e+"%, "+n+"%, "+r+"%, "+t[3]+")"};d.to.hsl=function(...t){return t.length<4||t[3]===1?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"};d.to.hwb=function(...t){let e="";return t.length>=4&&t[3]!==1&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"};d.to.keyword=function(...t){return C[t.slice(0,3)]};function y(t,e,n){return Math.min(Math.max(e,t),n)}function F(t){const e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}const x={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]},z={};for(const t of Object.keys(x))z[x[t]]=t;const i={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"]}},p=(6/29)**3;function k(t){const e=t>.0031308?1.055*t**.4166666666666667-.055:t*12.92;return Math.min(Math.max(0,e),1)}function w(t){return t>.04045?((t+.055)/1.055)**2.4:t/12.92}for(const t of Object.keys(i)){if(!("channels"in i[t]))throw new Error("missing channels property: "+t);if(!("labels"in i[t]))throw new Error("missing channel labels property: "+t);if(i[t].labels.length!==i[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:n}=i[t];delete i[t].channels,delete i[t].labels,Object.defineProperty(i[t],"channels",{value:e}),Object.defineProperty(i[t],"labels",{value:n})}i.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,o=Math.min(e,n,r),l=Math.max(e,n,r),s=l-o;let a,c;switch(l){case o:{a=0;break}case e:{a=(n-r)/s;break}case n:{a=2+(r-e)/s;break}case r:{a=4+(e-n)/s;break}}a=Math.min(a*60,360),a<0&&(a+=360);const u=(o+l)/2;return l===o?c=0:u<=.5?c=s/(l+o):c=s/(2-l-o),[a,c*100,u*100]};i.rgb.hsv=function(t){let e,n,r,o,l;const s=t[0]/255,a=t[1]/255,c=t[2]/255,u=Math.max(s,a,c),m=u-Math.min(s,a,c),_=function(S){return(u-S)/6/m+1/2};if(m===0)o=0,l=0;else{switch(l=m/u,e=_(s),n=_(a),r=_(c),u){case s:{o=r-n;break}case a:{o=1/3+e-r;break}case c:{o=2/3+n-e;break}}o<0?o+=1:o>1&&(o-=1)}return[o*360,l*100,u*100]};i.rgb.hwb=function(t){const e=t[0],n=t[1];let r=t[2];const o=i.rgb.hsl(t)[0],l=1/255*Math.min(e,Math.min(n,r));return r=1-1/255*Math.max(e,Math.max(n,r)),[o,l*100,r*100]};i.rgb.oklab=function(t){const e=w(t[0]/255),n=w(t[1]/255),r=w(t[2]/255),o=Math.cbrt(.4122214708*e+.5363325363*n+.0514459929*r),l=Math.cbrt(.2119034982*e+.6806995451*n+.1073969566*r),s=Math.cbrt(.0883024619*e+.2817188376*n+.6299787005*r),a=.2104542553*o+.793617785*l-.0040720468*s,c=1.9779984951*o-2.428592205*l+.4505937099*s,u=.0259040371*o+.7827717662*l-.808675766*s;return[a*100,c*100,u*100]};i.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,o=Math.min(1-e,1-n,1-r),l=(1-e-o)/(1-o)||0,s=(1-n-o)/(1-o)||0,a=(1-r-o)/(1-o)||0;return[l*100,s*100,a*100,o*100]};function E(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}i.rgb.keyword=function(t){const e=z[t];if(e)return e;let n=Number.POSITIVE_INFINITY,r;for(const o of Object.keys(x)){const l=x[o],s=E(t,l);s<n&&(n=s,r=o)}return r};i.keyword.rgb=function(t){return x[t]};i.rgb.xyz=function(t){const e=w(t[0]/255),n=w(t[1]/255),r=w(t[2]/255),o=e*.4124564+n*.3575761+r*.1804375,l=e*.2126729+n*.7151522+r*.072175,s=e*.0193339+n*.119192+r*.9503041;return[o*100,l*100,s*100]};i.rgb.lab=function(t){const e=i.rgb.xyz(t);let n=e[0],r=e[1],o=e[2];n/=95.047,r/=100,o/=108.883,n=n>p?n**(1/3):7.787*n+16/116,r=r>p?r**(1/3):7.787*r+16/116,o=o>p?o**(1/3):7.787*o+16/116;const l=116*r-16,s=500*(n-r),a=200*(r-o);return[l,s,a]};i.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,r=t[2]/100;let o,l;if(n===0)return l=r*255,[l,l,l];const s=r<.5?r*(1+n):r+n-r*n,a=2*r-s,c=[0,0,0];for(let u=0;u<3;u++)o=e+1/3*-(u-1),o<0&&o++,o>1&&o--,6*o<1?l=a+(s-a)*6*o:2*o<1?l=s:3*o<2?l=a+(s-a)*(2/3-o)*6:l=a,c[u]=l*255;return c};i.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,r=t[2]/100,o=n;const l=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,o*=l<=1?l:2-l;const s=(r+n)/2,a=r===0?2*o/(l+o):2*n/(r+n);return[e,a*100,s*100]};i.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let r=t[2]/100;const o=Math.floor(e)%6,l=e-Math.floor(e),s=255*r*(1-n),a=255*r*(1-n*l),c=255*r*(1-n*(1-l));switch(r*=255,o){case 0:return[r,c,s];case 1:return[a,r,s];case 2:return[s,r,c];case 3:return[s,a,r];case 4:return[c,s,r];case 5:return[r,s,a]}};i.hsv.hsl=function(t){const e=t[0],n=t[1]/100,r=t[2]/100,o=Math.max(r,.01);let l,s;s=(2-n)*r;const a=(2-n)*o;return l=n*o,l/=a<=1?a:2-a,l=l||0,s/=2,[e,l*100,s*100]};i.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,r=t[2]/100;const o=n+r;let l;o>1&&(n/=o,r/=o);const s=Math.floor(6*e),a=1-r;l=6*e-s,(s&1)!==0&&(l=1-l);const c=n+l*(a-n);let u,m,_;switch(s){default:case 6:case 0:{u=a,m=c,_=n;break}case 1:{u=c,m=a,_=n;break}case 2:{u=n,m=a,_=c;break}case 3:{u=n,m=c,_=a;break}case 4:{u=c,m=n,_=a;break}case 5:{u=a,m=n,_=c;break}}return[u*255,m*255,_*255]};i.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,r=t[2]/100,o=t[3]/100,l=1-Math.min(1,e*(1-o)+o),s=1-Math.min(1,n*(1-o)+o),a=1-Math.min(1,r*(1-o)+o);return[l*255,s*255,a*255]};i.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,r=t[2]/100;let o,l,s;return o=e*3.2404542+n*-1.5371385+r*-.4985314,l=e*-.969266+n*1.8760108+r*.041556,s=e*.0556434+n*-.2040259+r*1.0572252,o=k(o),l=k(l),s=k(s),[o*255,l*255,s*255]};i.xyz.lab=function(t){let e=t[0],n=t[1],r=t[2];e/=95.047,n/=100,r/=108.883,e=e>p?e**(1/3):7.787*e+16/116,n=n>p?n**(1/3):7.787*n+16/116,r=r>p?r**(1/3):7.787*r+16/116;const o=116*n-16,l=500*(e-n),s=200*(n-r);return[o,l,s]};i.xyz.oklab=function(t){const e=t[0]/100,n=t[1]/100,r=t[2]/100,o=Math.cbrt(.8189330101*e+.3618667424*n-.1288597137*r),l=Math.cbrt(.0329845436*e+.9293118715*n+.0361456387*r),s=Math.cbrt(.0482003018*e+.2643662691*n+.633851707*r),a=.2104542553*o+.793617785*l-.0040720468*s,c=1.9779984951*o-2.428592205*l+.4505937099*s,u=.0259040371*o+.7827717662*l-.808675766*s;return[a*100,c*100,u*100]};i.oklab.oklch=function(t){return i.lab.lch(t)};i.oklab.xyz=function(t){const e=t[0]/100,n=t[1]/100,r=t[2]/100,o=(.999999998*e+.396337792*n+.215803758*r)**3,l=(1.000000008*e-.105561342*n-.063854175*r)**3,s=(1.000000055*e-.089484182*n-1.291485538*r)**3,a=1.227013851*o-.55779998*l+.281256149*s,c=-.040580178*o+1.11225687*l-.071676679*s,u=-.076381285*o-.421481978*l+1.58616322*s;return[a*100,c*100,u*100]};i.oklab.rgb=function(t){const e=t[0]/100,n=t[1]/100,r=t[2]/100,o=(e+.3963377774*n+.2158037573*r)**3,l=(e-.1055613458*n-.0638541728*r)**3,s=(e-.0894841775*n-1.291485548*r)**3,a=k(4.0767416621*o-3.3077115913*l+.2309699292*s),c=k(-1.2684380046*o+2.6097574011*l-.3413193965*s),u=k(-.0041960863*o-.7034186147*l+1.707614701*s);return[a*255,c*255,u*255]};i.oklch.oklab=function(t){return i.lch.lab(t)};i.lab.xyz=function(t){const e=t[0],n=t[1],r=t[2];let o,l,s;l=(e+16)/116,o=n/500+l,s=l-r/200;const a=l**3,c=o**3,u=s**3;return l=a>p?a:(l-16/116)/7.787,o=c>p?c:(o-16/116)/7.787,s=u>p?u:(s-16/116)/7.787,o*=95.047,l*=100,s*=108.883,[o,l,s]};i.lab.lch=function(t){const e=t[0],n=t[1],r=t[2];let o;o=Math.atan2(r,n)*360/2/Math.PI,o<0&&(o+=360);const s=Math.sqrt(n*n+r*r);return[e,s,o]};i.lch.lab=function(t){const e=t[0],n=t[1],o=t[2]/360*2*Math.PI,l=n*Math.cos(o),s=n*Math.sin(o);return[e,l,s]};i.rgb.ansi16=function(t,e=null){const[n,r,o]=t;let l=e===null?i.rgb.hsv(t)[2]:e;if(l=Math.round(l/50),l===0)return 30;let s=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return l===2&&(s+=60),s};i.hsv.ansi16=function(t){return i.rgb.ansi16(i.hsv.rgb(t),t[2])};i.rgb.ansi256=function(t){const e=t[0],n=t[1],r=t[2];return e>>4===n>>4&&n>>4===r>>4?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};i.ansi16.rgb=function(t){t=t[0];let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=(Math.trunc(t>50)+1)*.5,r=(e&1)*n*255,o=(e>>1&1)*n*255,l=(e>>2&1)*n*255;return[r,o,l]};i.ansi256.rgb=function(t){if(t=t[0],t>=232){const l=(t-232)*10+8;return[l,l,l]}t-=16;let e;const n=Math.floor(t/36)/5*255,r=Math.floor((e=t%36)/6)/5*255,o=e%6/5*255;return[n,r,o]};i.rgb.hex=function(t){const n=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".slice(n.length)+n};i.hex.rgb=function(t){const e=t.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!e)return[0,0,0];let n=e[0];e[0].length===3&&(n=[...n].map(a=>a+a).join(""));const r=Number.parseInt(n,16),o=r>>16&255,l=r>>8&255,s=r&255;return[o,l,s]};i.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,o=Math.max(Math.max(e,n),r),l=Math.min(Math.min(e,n),r),s=o-l;let a;const c=s<1?l/(1-s):0;return s<=0?a=0:o===e?a=(n-r)/s%6:o===n?a=2+(r-e)/s:a=4+(e-n)/s,a/=6,a%=1,[a*360,s*100,c*100]};i.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,r=n<.5?2*e*n:2*e*(1-n);let o=0;return r<1&&(o=(n-.5*r)/(1-r)),[t[0],r*100,o*100]};i.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,r=e*n;let o=0;return r<1&&(o=(n-r)/(1-r)),[t[0],r*100,o*100]};i.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,r=t[2]/100;if(n===0)return[r*255,r*255,r*255];const o=[0,0,0],l=e%1*6,s=l%1,a=1-s;let c=0;switch(Math.floor(l)){case 0:{o[0]=1,o[1]=s,o[2]=0;break}case 1:{o[0]=a,o[1]=1,o[2]=0;break}case 2:{o[0]=0,o[1]=1,o[2]=s;break}case 3:{o[0]=0,o[1]=a,o[2]=1;break}case 4:{o[0]=s,o[1]=0,o[2]=1;break}default:o[0]=1,o[1]=0,o[2]=a}return c=(1-n)*r,[(n*o[0]+c)*255,(n*o[1]+c)*255,(n*o[2]+c)*255]};i.hcg.hsv=function(t){const e=t[1]/100,n=t[2]/100,r=e+n*(1-e);let o=0;return r>0&&(o=e/r),[t[0],o*100,r*100]};i.hcg.hsl=function(t){const e=t[1]/100,r=t[2]/100*(1-e)+.5*e;let o=0;return r>0&&r<.5?o=e/(2*r):r>=.5&&r<1&&(o=e/(2*(1-r))),[t[0],o*100,r*100]};i.hcg.hwb=function(t){const e=t[1]/100,n=t[2]/100,r=e+n*(1-e);return[t[0],(r-e)*100,(1-r)*100]};i.hwb.hcg=function(t){const e=t[1]/100,r=1-t[2]/100,o=r-e;let l=0;return o<1&&(l=(r-o)/(1-o)),[t[0],o*100,l*100]};i.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};i.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};i.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};i.gray.hsl=function(t){return[0,0,t[0]]};i.gray.hsv=i.gray.hsl;i.gray.hwb=function(t){return[0,100,t[0]]};i.gray.cmyk=function(t){return[0,0,0,t[0]]};i.gray.lab=function(t){return[t[0],0,0]};i.gray.hex=function(t){const e=Math.round(t[0]/100*255)&255,r=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".slice(r.length)+r};i.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};function T(){const t={},e=Object.keys(i);for(let{length:n}=e,r=0;r<n;r++)t[e[r]]={distance:-1,parent:null};return t}function $(t){const e=T(),n=[t];for(e[t].distance=0;n.length>0;){const r=n.pop(),o=Object.keys(i[r]);for(let{length:l}=o,s=0;s<l;s++){const a=o[s],c=e[a];c.distance===-1&&(c.distance=e[r].distance+1,c.parent=r,n.unshift(a))}}return e}function U(t,e){return function(n){return e(t(n))}}function D(t,e){const n=[e[t].parent,t];let r=i[e[t].parent][t],o=e[t].parent;for(;e[o].parent;)n.unshift(e[o].parent),r=U(i[e[o].parent][o],r),o=e[o].parent;return r.conversion=n,r}function K(t){const e=$(t),n={},r=Object.keys(e);for(let{length:o}=r,l=0;l<o;l++){const s=r[l];e[s].parent!==null&&(n[s]=D(s,e))}return n}const g={},V=Object.keys(i);function B(t){const e=function(...n){const r=n[0];return r==null?r:(r.length>1&&(n=r),t(n))};return"conversion"in t&&(e.conversion=t.conversion),e}function L(t){const e=function(...n){const r=n[0];if(r==null)return r;r.length>1&&(n=r);const o=t(n);if(typeof o=="object")for(let{length:l}=o,s=0;s<l;s++)o[s]=Math.round(o[s]);return o};return"conversion"in t&&(e.conversion=t.conversion),e}for(const t of V){g[t]={},Object.defineProperty(g[t],"channels",{value:i[t].channels}),Object.defineProperty(g[t],"labels",{value:i[t].labels});const e=K(t),n=Object.keys(e);for(const r of n){const o=e[r];g[t][r]=L(o),g[t][r].raw=B(o)}}const A=["keyword","gray","hex"],O={};for(const t of Object.keys(g))O[[...g[t].labels].sort().join("")]=t;const M={};function b(t,e){if(!(this instanceof b))return new b(t,e);if(e&&e in A&&(e=null),e&&!(e in g))throw new Error("Unknown model: "+e);let n,r;if(t==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof b)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if(typeof t=="string"){const o=d.get(t);if(o===null)throw new Error("Unable to parse color from string: "+t);this.model=o.model,r=g[this.model].channels,this.color=o.value.slice(0,r),this.valpha=typeof o.value[r]=="number"?o.value[r]:1}else if(t.length>0){this.model=e||"rgb",r=g[this.model].channels;const o=Array.prototype.slice.call(t,0,r);this.color=q(o,r),this.valpha=typeof t[r]=="number"?t[r]:1}else if(typeof t=="number")this.model="rgb",this.color=[t>>16&255,t>>8&255,t&255],this.valpha=1;else{this.valpha=1;const o=Object.keys(t);"alpha"in t&&(o.splice(o.indexOf("alpha"),1),this.valpha=typeof t.alpha=="number"?t.alpha:0);const l=o.sort().join("");if(!(l in O))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=O[l];const{labels:s}=g[this.model],a=[];for(n=0;n<s.length;n++)a.push(t[s[n]]);this.color=q(a)}if(M[this.model])for(r=g[this.model].channels,n=0;n<r;n++){const o=M[this.model][n];o&&(this.color[n]=o(this.color[n]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}b.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in d.to?this:this.rgb();e=e.round(typeof t=="number"?t:1);const n=e.valpha===1?e.color:[...e.color,this.valpha];return d.to[e.model](...n)},percentString(t){const e=this.rgb().round(typeof t=="number"?t:1),n=e.valpha===1?e.color:[...e.color,this.valpha];return d.to.rgb.percent(...n)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const t={},{channels:e}=g[this.model],{labels:n}=g[this.model];for(let r=0;r<e;r++)t[n[r]]=this.color[r];return this.valpha!==1&&(t.alpha=this.valpha),t},unitArray(){const t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,this.valpha!==1&&t.push(this.valpha),t},unitObject(){const t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,this.valpha!==1&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new b([...this.color.map(J(t)),this.valpha],this.model)},alpha(t){return t!==void 0?new b([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:h("rgb",0,f(255)),green:h("rgb",1,f(255)),blue:h("rgb",2,f(255)),hue:h(["hsl","hsv","hsl","hwb","hcg"],0,t=>(t%360+360)%360),saturationl:h("hsl",1,f(100)),lightness:h("hsl",2,f(100)),saturationv:h("hsv",1,f(100)),value:h("hsv",2,f(100)),chroma:h("hcg",1,f(100)),gray:h("hcg",2,f(100)),white:h("hwb",1,f(100)),wblack:h("hwb",2,f(100)),cyan:h("cmyk",0,f(100)),magenta:h("cmyk",1,f(100)),yellow:h("cmyk",2,f(100)),black:h("cmyk",3,f(100)),x:h("xyz",0,f(95.047)),y:h("xyz",1,f(100)),z:h("xyz",2,f(108.833)),l:h("lab",0,f(100)),a:h("lab",1),b:h("lab",2),keyword(t){return t!==void 0?new b(t):g[this.model].keyword(this.color)},hex(t){return t!==void 0?new b(t):d.to.hex(...this.rgb().round().color)},hexa(t){if(t!==void 0)return new b(t);const e=this.rgb().round().color;let n=Math.round(this.valpha*255).toString(16).toUpperCase();return n.length===1&&(n="0"+n),d.to.hex(...e)+n},rgbNumber(){const t=this.rgb().color;return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255},luminosity(){const t=this.rgb().color,e=[];for(const[n,r]of t.entries()){const o=r/255;e[n]=o<=.04045?o/12.92:((o+.055)/1.055)**2.4}return .2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){const e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level(t){const e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){const t=this.rgb().color;return(t[0]*2126+t[1]*7152+t[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){const e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){const e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){const e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){const e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){const e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){const e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){const t=this.rgb().color,e=t[0]*.3+t[1]*.59+t[2]*.11;return b.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){const e=this.hsl();let n=e.color[0];return n=(n+t)%360,n=n<0?360+n:n,e.color[0]=n,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);const n=t.rgb(),r=this.rgb(),o=e===void 0?.5:e,l=2*o-1,s=n.alpha()-r.alpha(),a=((l*s===-1?l:(l+s)/(1+l*s))+1)/2,c=1-a;return b.rgb(a*n.red()+c*r.red(),a*n.green()+c*r.green(),a*n.blue()+c*r.blue(),n.alpha()*o+r.alpha()*(1-o))}};for(const t of Object.keys(g)){if(A.includes(t))continue;const{channels:e}=g[t];b.prototype[t]=function(...n){return this.model===t?new b(this):n.length>0?new b(n,t):new b([...G(g[this.model][t].raw(this.color)),this.valpha],t)},b[t]=function(...n){let r=n[0];return typeof r=="number"&&(r=q(n,e)),new b(r,t)}}function R(t,e){return Number(t.toFixed(e))}function J(t){return function(e){return R(e,t)}}function h(t,e,n){t=Array.isArray(t)?t:[t];for(const r of t)(M[r]||(M[r]=[]))[e]=n;return t=t[0],function(r){let o;return r!==void 0?(n&&(r=n(r)),o=this[t](),o.color[e]=r,o):(o=this[t]().color[e],n&&(o=n(o)),o)}}function f(t){return function(e){return Math.max(0,Math.min(t,e))}}function G(t){return Array.isArray(t)?t:[t]}function q(t,e){for(let n=0;n<e;n++)typeof t[n]!="number"&&(t[n]=0);return t}class H{constructor(e){N(this,"isColor",!0);N(this,"currentColor");this.base=e;const n=this._resolveBaseColor(e);return this.currentColor=b(n),this._createProxy()}_createProxy(){return new Proxy(this,{get(e,n){return n in e?e[n]:n in e.currentColor?e._handleColorMethod(n):e[n]}})}_resolveBaseColor(e){if(typeof e!="string"||!/\{[^{}]+\}/g.test(e))return e;if(typeof saltyConfig>"u")return"transparent";const{staticVariables:r}=saltyConfig;return r?e.replace(/^\{|\}$/g,"").split(".").reduce((s,a)=>s[a],r):"transparent"}_handleColorMethod(e){const n=this.currentColor;return typeof n[e]!="function"?n[e]:(...r)=>(this.currentColor=n[e](...r),this._createProxy())}toString(){return this.currentColor.toString()}}const Y=t=>new H(t);exports.defineViewportClamp=j.defineViewportClamp;exports.color=Y;
|