@adea-ai/themes 0.4.0 → 0.4.1

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.
Files changed (69) hide show
  1. package/dist/accents.d.ts +150 -0
  2. package/dist/accents.d.ts.map +1 -0
  3. package/dist/accents.js +205 -0
  4. package/dist/accents.js.map +1 -0
  5. package/dist/adapters/base24.d.ts +117 -0
  6. package/dist/adapters/base24.d.ts.map +1 -0
  7. package/dist/adapters/base24.js +313 -0
  8. package/dist/adapters/base24.js.map +1 -0
  9. package/dist/adapters/css.d.ts +68 -0
  10. package/dist/adapters/css.d.ts.map +1 -0
  11. package/dist/adapters/css.js +107 -0
  12. package/dist/adapters/css.js.map +1 -0
  13. package/dist/adapters/shadcn.d.ts +51 -0
  14. package/dist/adapters/shadcn.d.ts.map +1 -0
  15. package/dist/adapters/shadcn.js +120 -0
  16. package/dist/adapters/shadcn.js.map +1 -0
  17. package/dist/adapters/shiki.d.ts +60 -0
  18. package/dist/adapters/shiki.d.ts.map +1 -0
  19. package/dist/adapters/shiki.js +139 -0
  20. package/dist/adapters/shiki.js.map +1 -0
  21. package/dist/adapters/tailwind.d.ts +35 -0
  22. package/dist/adapters/tailwind.d.ts.map +1 -0
  23. package/dist/adapters/tailwind.js +58 -0
  24. package/dist/adapters/tailwind.js.map +1 -0
  25. package/dist/adapters/xterm.d.ts +64 -0
  26. package/dist/adapters/xterm.d.ts.map +1 -0
  27. package/dist/adapters/xterm.js +112 -0
  28. package/dist/adapters/xterm.js.map +1 -0
  29. package/dist/catalogue.d.ts +66 -0
  30. package/dist/catalogue.d.ts.map +1 -0
  31. package/dist/catalogue.js +110 -0
  32. package/dist/catalogue.js.map +1 -0
  33. package/dist/derive.d.ts +89 -0
  34. package/dist/derive.d.ts.map +1 -0
  35. package/dist/derive.js +172 -0
  36. package/dist/derive.js.map +1 -0
  37. package/dist/generated/schemes.d.ts +16 -0
  38. package/dist/generated/schemes.d.ts.map +1 -0
  39. package/dist/generated/schemes.js +880 -0
  40. package/dist/generated/schemes.js.map +1 -0
  41. package/dist/generated/themes.d.ts +11 -0
  42. package/dist/generated/themes.d.ts.map +1 -0
  43. package/dist/generated/themes.js +1658 -0
  44. package/dist/generated/themes.js.map +1 -0
  45. package/dist/index.d.ts +69 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +59 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/normalize.d.ts +192 -0
  50. package/dist/normalize.d.ts.map +1 -0
  51. package/dist/normalize.js +958 -0
  52. package/dist/normalize.js.map +1 -0
  53. package/dist/oklch.d.ts +141 -0
  54. package/dist/oklch.d.ts.map +1 -0
  55. package/dist/oklch.js +311 -0
  56. package/dist/oklch.js.map +1 -0
  57. package/dist/schema.d.ts +178 -0
  58. package/dist/schema.d.ts.map +1 -0
  59. package/dist/schema.js +69 -0
  60. package/dist/schema.js.map +1 -0
  61. package/dist/sources.d.ts +296 -0
  62. package/dist/sources.d.ts.map +1 -0
  63. package/dist/sources.js +634 -0
  64. package/dist/sources.js.map +1 -0
  65. package/dist/validate.d.ts +121 -0
  66. package/dist/validate.d.ts.map +1 -0
  67. package/dist/validate.js +255 -0
  68. package/dist/validate.js.map +1 -0
  69. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * The colour core.
3
+ *
4
+ * OKLCH is the canonical representation in this package, which means every value
5
+ * that enters the catalogue is converted to it and every value that leaves is
6
+ * derived from it. The reason is not fashion: OKLCH's lightness axis is
7
+ * perceptually uniform, so a surface ladder built by adding `0.035` to L produces
8
+ * rungs that *look* evenly spaced across every hue, and a contrast repair that
9
+ * moves L by a fixed amount changes the perceived brightness by a predictable
10
+ * amount. Neither holds in sRGB or HSL, where the same numeric step is a large
11
+ * change in yellow and an invisible one in blue.
12
+ *
13
+ * Two conversion directions are needed and they are not symmetric:
14
+ *
15
+ * - **In**, from the hex values upstream palettes publish. Lossless.
16
+ * - **Out**, to hex, for consumers that cannot express OKLCH — xterm.js reads
17
+ * hex, and older Shiki engines resolve hex. This direction can land outside
18
+ * sRGB, so it gamut-maps rather than clipping.
19
+ *
20
+ * Clipping a channel is what turns a carefully chosen out-of-gamut purple into a
21
+ * flat, over-bright magenta. The gamut mapping here reduces chroma at constant
22
+ * lightness and hue instead, which is the standard CSS Color 4 approach and keeps
23
+ * the colour recognisably the one that was asked for.
24
+ */
25
+ /** A colour in OKLCH. `l` and `c` are unbounded here; use {@link inGamut} to test. */
26
+ export type Oklch = {
27
+ /** Perceptual lightness, nominally 0–1. */
28
+ l: number;
29
+ /** Chroma, nominally 0–0.4. */
30
+ c: number;
31
+ /** Hue angle in degrees, 0–360. Meaningless when `c` is 0. */
32
+ h: number;
33
+ };
34
+ /** OKLab, the rectangular form OKLCH is the polar form of. */
35
+ type Oklab = {
36
+ l: number;
37
+ a: number;
38
+ b: number;
39
+ };
40
+ export declare const oklchToOklab: ({ l, c, h }: Oklch) => Oklab;
41
+ export declare const oklabToOklch: ({ l, a, b }: Oklab) => Oklch;
42
+ /** True when every linear channel sits inside the sRGB cube. */
43
+ export declare function inGamut(color: Oklch, tolerance?: number): boolean;
44
+ /**
45
+ * Brings a colour into sRGB by reducing chroma at constant lightness and hue.
46
+ *
47
+ * Reduction is a bisection because the sRGB boundary along a constant-hue line is
48
+ * not a linear function of chroma — a fixed number of decrements either stops
49
+ * short of the boundary (leaving a clipped colour) or overshoots it (desaturating
50
+ * far more than necessary). 24 iterations resolve chroma to well under one
51
+ * 8-bit-steps' worth of difference.
52
+ */
53
+ export declare function gamutMap(color: Oklch): Oklch;
54
+ /** Parses `#rgb` and `#rrggbb`. Returns undefined rather than throwing. */
55
+ export declare function hexToOklch(hex: string): Oklch | undefined;
56
+ /** Serialises to `#rrggbb` after gamut mapping. Always lower case. */
57
+ export declare function oklchToHex(color: Oklch): string;
58
+ /**
59
+ * Parses an `oklch()` string.
60
+ *
61
+ * Alpha is accepted and discarded: every role in the catalogue is opaque, and a
62
+ * translucent value would silently break the contrast floors, which are defined
63
+ * for opaque colours.
64
+ */
65
+ export declare function parseOklch(input: string): Oklch | undefined;
66
+ /** Accepts either notation, so adapters and fixtures can use whichever reads better. */
67
+ export declare function parseColor(input: string): Oklch | undefined;
68
+ /**
69
+ * Serialises to the canonical `oklch(L C H)` form, rounded to the precision the
70
+ * catalogue is committed at.
71
+ *
72
+ * The rounding is part of the on-disk contract, not cosmetic: generated files are
73
+ * diffed in CI to prove the committed catalogue matches its sources, and a full
74
+ * float would make that diff unstable across platforms.
75
+ */
76
+ export declare function formatOklch(color: Oklch): string;
77
+ /**
78
+ * Relative luminance of an sRGB colour, per WCAG 2.1.
79
+ *
80
+ * Computed from linear-light channels, which is why this goes through OKLab
81
+ * rather than being read off `L`: OKLCH lightness is perceptual and WCAG's is
82
+ * not, and the two disagree most in the saturated blues and yellows where the
83
+ * contrast floors actually bite.
84
+ */
85
+ export declare function relativeLuminance(color: Oklch): number;
86
+ /** The WCAG 2.1 contrast ratio, 1–21. Order-independent. */
87
+ export declare function contrastRatio(a: Oklch, b: Oklch): number;
88
+ /** The direction in which a colour's lightness must move to gain contrast. */
89
+ export declare function contrastDirection(foreground: Oklch, background: Oklch): 1 | -1;
90
+ /**
91
+ * The colour as it will actually be written.
92
+ *
93
+ * Repairs must be measured against this rather than against their own working
94
+ * value. {@link formatOklch} rounds lightness to four decimals, and rounding can
95
+ * move a pairing from 4.5001:1 to 4.4998:1 — so a repair that converges on the
96
+ * exact floor and is then rounded ships a value that fails the floor it was
97
+ * computed to satisfy. Measuring the canonical form closes that gap by making the
98
+ * thing measured and the thing committed the same thing.
99
+ */
100
+ export declare function canonical(color: Oklch): Oklch;
101
+ export type ContrastRepair = {
102
+ color: Oklch;
103
+ ratio: number;
104
+ /** How far L moved, 0 when the input already cleared the floor. */
105
+ delta: number;
106
+ /** False when the floor could not be reached within `budget`. */
107
+ satisfied: boolean;
108
+ };
109
+ /**
110
+ * Moves a colour's lightness until it clears a contrast floor, by the smallest
111
+ * step that works.
112
+ *
113
+ * A theme's status colours come from its author's palette, and a palette chosen
114
+ * for a terminal is not automatically legible as a UI accent: Solarized's yellow
115
+ * is the colour Solarized is famous for, and it is also nearly invisible on
116
+ * Solarized's own light background. The catalogue's answer is not to discard the
117
+ * colour or to accept the failure, but to keep the hue and chroma the author
118
+ * chose and move only the lightness, by the least amount that clears the floor.
119
+ *
120
+ * `budget` bounds that movement. Past it the colour is no longer the one the
121
+ * palette specifies, so the repair reports `satisfied: false` and the validator
122
+ * fails the theme instead of shipping a palette that quietly is not Solarized.
123
+ */
124
+ export declare function repairContrast(foreground: Oklch, background: Oklch, minimum: number, budget?: number): ContrastRepair;
125
+ /**
126
+ * Interpolates two colours in OKLCH.
127
+ *
128
+ * Hue takes the shorter arc, so a blend from magenta (330°) to orange (30°) goes
129
+ * through red rather than the long way round through green. When either side is
130
+ * neutral its hue is meaningless, so the other side's hue is carried across
131
+ * instead of being interpolated toward an arbitrary zero.
132
+ */
133
+ export declare function mix(a: Oklch, b: Oklch, amount: number): Oklch;
134
+ /** Shifts lightness by `delta`, keeping chroma and hue. Chroma is damped at the extremes. */
135
+ export declare function shiftLightness(color: Oklch, delta: number): Oklch;
136
+ /** Scales chroma, clamped to the maximum the hue can hold. */
137
+ export declare function scaleChroma(color: Oklch, factor: number): Oklch;
138
+ /** The perceptual distance between two colours, for deduplication and assertions. */
139
+ export declare function deltaEok(a: Oklch, b: Oklch): number;
140
+ export {};
141
+ //# sourceMappingURL=oklch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch.d.ts","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,sFAAsF;AACtF,MAAM,MAAM,KAAK,GAAG;IAClB,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAA;IACT,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAA;IACT,8DAA8D;IAC9D,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAiBD,8DAA8D;AAC9D,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AA2BhD,eAAO,MAAM,YAAY,GAAI,aAAa,KAAK,KAAG,KAGjD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,aAAa,KAAK,KAAG,KAMjD,CAAA;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,SAAO,GAAG,OAAO,CAK/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAa5C;AAID,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAiBzD;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAI/C;AAaD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAQ3D;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAG3D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAKhD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAGtD;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAKxD;AAOD,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAE9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAE7C;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,SAAO,GACZ,cAAc,CA0ChB;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAqB7D;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAOjE;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAInD"}
package/dist/oklch.js ADDED
@@ -0,0 +1,311 @@
1
+ /**
2
+ * The colour core.
3
+ *
4
+ * OKLCH is the canonical representation in this package, which means every value
5
+ * that enters the catalogue is converted to it and every value that leaves is
6
+ * derived from it. The reason is not fashion: OKLCH's lightness axis is
7
+ * perceptually uniform, so a surface ladder built by adding `0.035` to L produces
8
+ * rungs that *look* evenly spaced across every hue, and a contrast repair that
9
+ * moves L by a fixed amount changes the perceived brightness by a predictable
10
+ * amount. Neither holds in sRGB or HSL, where the same numeric step is a large
11
+ * change in yellow and an invisible one in blue.
12
+ *
13
+ * Two conversion directions are needed and they are not symmetric:
14
+ *
15
+ * - **In**, from the hex values upstream palettes publish. Lossless.
16
+ * - **Out**, to hex, for consumers that cannot express OKLCH — xterm.js reads
17
+ * hex, and older Shiki engines resolve hex. This direction can land outside
18
+ * sRGB, so it gamut-maps rather than clipping.
19
+ *
20
+ * Clipping a channel is what turns a carefully chosen out-of-gamut purple into a
21
+ * flat, over-bright magenta. The gamut mapping here reduces chroma at constant
22
+ * lightness and hue instead, which is the standard CSS Color 4 approach and keeps
23
+ * the colour recognisably the one that was asked for.
24
+ */
25
+ const SRGB_TO_LINEAR = (channel) => channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;
26
+ const LINEAR_TO_SRGB = (channel) => channel <= 0.0031308 ? channel * 12.92 : 1.055 * channel ** (1 / 2.4) - 0.055;
27
+ /** One sRGB channel as a two-digit hex pair. */
28
+ function hexChannel(value) {
29
+ return Math.round(Math.min(1, Math.max(0, LINEAR_TO_SRGB(value))) * 255)
30
+ .toString(16)
31
+ .padStart(2, '0');
32
+ }
33
+ function linearRgbToOklab({ r, g, b }) {
34
+ const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
35
+ const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
36
+ const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
37
+ return {
38
+ l: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,
39
+ a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,
40
+ b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,
41
+ };
42
+ }
43
+ function oklabToLinearRgb({ l, a, b }) {
44
+ const lp = l + 0.3963377774 * a + 0.2158037573 * b;
45
+ const mp = l - 0.1055613458 * a - 0.0638541728 * b;
46
+ const sp = l - 0.0894841775 * a - 1.291485548 * b;
47
+ const lc = lp ** 3;
48
+ const mc = mp ** 3;
49
+ const sc = sp ** 3;
50
+ return {
51
+ r: 4.0767416621 * lc - 3.3077115913 * mc + 0.2309699292 * sc,
52
+ g: -1.2684380046 * lc + 2.6097574011 * mc - 0.3413193965 * sc,
53
+ b: -0.0041960863 * lc - 0.7034186147 * mc + 1.707614701 * sc,
54
+ };
55
+ }
56
+ export const oklchToOklab = ({ l, c, h }) => {
57
+ const radians = (h * Math.PI) / 180;
58
+ return { l, a: c * Math.cos(radians), b: c * Math.sin(radians) };
59
+ };
60
+ export const oklabToOklch = ({ l, a, b }) => {
61
+ const c = Math.hypot(a, b);
62
+ // Hue is undefined for a neutral; report 0 rather than NaN so that a grey
63
+ // survives a round trip and can still be interpolated.
64
+ const h = c < 1e-6 ? 0 : ((Math.atan2(b, a) * 180) / Math.PI + 360) % 360;
65
+ return { l, c, h };
66
+ };
67
+ /** True when every linear channel sits inside the sRGB cube. */
68
+ export function inGamut(color, tolerance = 1e-4) {
69
+ const { r, g, b } = oklabToLinearRgb(oklchToOklab(color));
70
+ const within = (channel) => channel >= -tolerance && channel <= 1 + tolerance;
71
+ return within(r) && within(g) && within(b);
72
+ }
73
+ /**
74
+ * Brings a colour into sRGB by reducing chroma at constant lightness and hue.
75
+ *
76
+ * Reduction is a bisection because the sRGB boundary along a constant-hue line is
77
+ * not a linear function of chroma — a fixed number of decrements either stops
78
+ * short of the boundary (leaving a clipped colour) or overshoots it (desaturating
79
+ * far more than necessary). 24 iterations resolve chroma to well under one
80
+ * 8-bit-steps' worth of difference.
81
+ */
82
+ export function gamutMap(color) {
83
+ const lightness = Math.min(1, Math.max(0, color.l));
84
+ const saturated = { ...color, l: lightness };
85
+ if (inGamut(saturated))
86
+ return saturated;
87
+ let low = 0;
88
+ let high = saturated.c;
89
+ for (let iteration = 0; iteration < 24; iteration += 1) {
90
+ const mid = (low + high) / 2;
91
+ if (inGamut({ ...saturated, c: mid }))
92
+ low = mid;
93
+ else
94
+ high = mid;
95
+ }
96
+ return { ...saturated, c: low };
97
+ }
98
+ const HEX_PATTERN = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
99
+ /** Parses `#rgb` and `#rrggbb`. Returns undefined rather than throwing. */
100
+ export function hexToOklch(hex) {
101
+ const match = HEX_PATTERN.exec(hex.trim());
102
+ if (!match)
103
+ return undefined;
104
+ const digits = match[1] ?? '';
105
+ const expanded = digits.length === 3
106
+ ? digits
107
+ .split('')
108
+ .map((digit) => digit + digit)
109
+ .join('')
110
+ : digits;
111
+ const [r, g, b] = [0, 2, 4].map((offset) => SRGB_TO_LINEAR(Number.parseInt(expanded.slice(offset, offset + 2), 16) / 255));
112
+ return oklabToOklch(linearRgbToOklab({ r, g, b }));
113
+ }
114
+ /** Serialises to `#rrggbb` after gamut mapping. Always lower case. */
115
+ export function oklchToHex(color) {
116
+ const mapped = gamutMap(color);
117
+ const { r, g, b } = oklabToLinearRgb(oklchToOklab(mapped));
118
+ return `#${hexChannel(r)}${hexChannel(g)}${hexChannel(b)}`;
119
+ }
120
+ /** Reads one component, allowing a percentage scaled to the channel's own maximum. */
121
+ function readComponent(raw, scale) {
122
+ const text = raw ?? '0';
123
+ const value = Number.parseFloat(text);
124
+ if (Number.isNaN(value))
125
+ return Number.NaN;
126
+ return text.endsWith('%') ? (value / 100) * scale : value;
127
+ }
128
+ const OKLCH_PATTERN = /^oklch\(\s*([\d.]+%?)\s+([\d.]+%?)\s+([\d.]+)(?:deg)?\s*(?:\/\s*[\d.]+%?\s*)?\)$/i;
129
+ /**
130
+ * Parses an `oklch()` string.
131
+ *
132
+ * Alpha is accepted and discarded: every role in the catalogue is opaque, and a
133
+ * translucent value would silently break the contrast floors, which are defined
134
+ * for opaque colours.
135
+ */
136
+ export function parseOklch(input) {
137
+ const match = OKLCH_PATTERN.exec(input.trim());
138
+ if (!match)
139
+ return undefined;
140
+ const l = readComponent(match[1], 1);
141
+ const c = readComponent(match[2], 0.4);
142
+ const h = Number.parseFloat(match[3] ?? '0');
143
+ if ([l, c, h].some(Number.isNaN))
144
+ return undefined;
145
+ return { l, c, h };
146
+ }
147
+ /** Accepts either notation, so adapters and fixtures can use whichever reads better. */
148
+ export function parseColor(input) {
149
+ const text = input.trim();
150
+ return text.toLowerCase().startsWith('oklch') ? parseOklch(text) : hexToOklch(text);
151
+ }
152
+ /**
153
+ * Serialises to the canonical `oklch(L C H)` form, rounded to the precision the
154
+ * catalogue is committed at.
155
+ *
156
+ * The rounding is part of the on-disk contract, not cosmetic: generated files are
157
+ * diffed in CI to prove the committed catalogue matches its sources, and a full
158
+ * float would make that diff unstable across platforms.
159
+ */
160
+ export function formatOklch(color) {
161
+ const l = Number(color.l.toFixed(4));
162
+ const c = Number(color.c.toFixed(4));
163
+ const h = color.c < 1e-6 ? 0 : Number(color.h.toFixed(2));
164
+ return `oklch(${l} ${c} ${h})`;
165
+ }
166
+ /**
167
+ * Relative luminance of an sRGB colour, per WCAG 2.1.
168
+ *
169
+ * Computed from linear-light channels, which is why this goes through OKLab
170
+ * rather than being read off `L`: OKLCH lightness is perceptual and WCAG's is
171
+ * not, and the two disagree most in the saturated blues and yellows where the
172
+ * contrast floors actually bite.
173
+ */
174
+ export function relativeLuminance(color) {
175
+ const { r, g, b } = oklabToLinearRgb(oklchToOklab(gamutMap(color)));
176
+ return 0.2126 * unit(r) + 0.7152 * unit(g) + 0.0722 * unit(b);
177
+ }
178
+ /** The WCAG 2.1 contrast ratio, 1–21. Order-independent. */
179
+ export function contrastRatio(a, b) {
180
+ const la = relativeLuminance(a);
181
+ const lb = relativeLuminance(b);
182
+ const [lighter, darker] = la > lb ? [la, lb] : [lb, la];
183
+ return (lighter + 0.05) / (darker + 0.05);
184
+ }
185
+ /** Clamps a linear channel into 0–1. */
186
+ function unit(value) {
187
+ return Math.min(1, Math.max(0, value));
188
+ }
189
+ /** The direction in which a colour's lightness must move to gain contrast. */
190
+ export function contrastDirection(foreground, background) {
191
+ return foreground.l >= background.l ? 1 : -1;
192
+ }
193
+ /**
194
+ * The colour as it will actually be written.
195
+ *
196
+ * Repairs must be measured against this rather than against their own working
197
+ * value. {@link formatOklch} rounds lightness to four decimals, and rounding can
198
+ * move a pairing from 4.5001:1 to 4.4998:1 — so a repair that converges on the
199
+ * exact floor and is then rounded ships a value that fails the floor it was
200
+ * computed to satisfy. Measuring the canonical form closes that gap by making the
201
+ * thing measured and the thing committed the same thing.
202
+ */
203
+ export function canonical(color) {
204
+ return parseColor(formatOklch(color)) ?? color;
205
+ }
206
+ /**
207
+ * Moves a colour's lightness until it clears a contrast floor, by the smallest
208
+ * step that works.
209
+ *
210
+ * A theme's status colours come from its author's palette, and a palette chosen
211
+ * for a terminal is not automatically legible as a UI accent: Solarized's yellow
212
+ * is the colour Solarized is famous for, and it is also nearly invisible on
213
+ * Solarized's own light background. The catalogue's answer is not to discard the
214
+ * colour or to accept the failure, but to keep the hue and chroma the author
215
+ * chose and move only the lightness, by the least amount that clears the floor.
216
+ *
217
+ * `budget` bounds that movement. Past it the colour is no longer the one the
218
+ * palette specifies, so the repair reports `satisfied: false` and the validator
219
+ * fails the theme instead of shipping a palette that quietly is not Solarized.
220
+ */
221
+ export function repairContrast(foreground, background, minimum, budget = 0.22) {
222
+ // Measured in the canonical form, for the reason {@link canonical} gives: the caller
223
+ // commits `formatOklch`'s rounded output, and a repair that converges on the exact
224
+ // floor of an unrounded value ships a value that fails it. The lower a floor is, the
225
+ // more this matters, and the scale starts at 1.2:1 — so a selection colour's whole
226
+ // range is a few rounding steps wide.
227
+ const initial = contrastRatio(canonical(foreground), background);
228
+ if (initial >= minimum) {
229
+ return { color: foreground, ratio: initial, delta: 0, satisfied: true };
230
+ }
231
+ // Both directions are tried, nearest first. Moving away from the background's
232
+ // lightness is the usual answer, but when the colour is already near an end of the
233
+ // range there is no headroom in that direction — Solarized Light's cursor is a
234
+ // mid grey on a near-white canvas, and *lightening* it has 0.03 to work with while
235
+ // darkening it has the whole range.
236
+ const preferred = contrastDirection(foreground, background);
237
+ const step = 0.002;
238
+ const maximumSteps = Math.floor(budget / step);
239
+ for (let index = 1; index <= maximumSteps; index += 1) {
240
+ for (const direction of [preferred, -preferred]) {
241
+ const candidate = { ...foreground, l: foreground.l + direction * step * index };
242
+ if (candidate.l <= 0 || candidate.l >= 1)
243
+ continue;
244
+ const ratio = contrastRatio(canonical(candidate), background);
245
+ if (ratio >= minimum) {
246
+ return {
247
+ color: canonical(candidate),
248
+ ratio,
249
+ delta: Number((step * index).toFixed(4)),
250
+ satisfied: true,
251
+ };
252
+ }
253
+ }
254
+ }
255
+ return {
256
+ color: foreground,
257
+ ratio: initial,
258
+ delta: 0,
259
+ satisfied: false,
260
+ };
261
+ }
262
+ /**
263
+ * Interpolates two colours in OKLCH.
264
+ *
265
+ * Hue takes the shorter arc, so a blend from magenta (330°) to orange (30°) goes
266
+ * through red rather than the long way round through green. When either side is
267
+ * neutral its hue is meaningless, so the other side's hue is carried across
268
+ * instead of being interpolated toward an arbitrary zero.
269
+ */
270
+ export function mix(a, b, amount) {
271
+ const t = Math.min(1, Math.max(0, amount));
272
+ const neutral = 1e-6;
273
+ const aChromatic = a.c > neutral;
274
+ const bChromatic = b.c > neutral;
275
+ let hue;
276
+ if (aChromatic && bChromatic) {
277
+ const delta = ((b.h - a.h + 540) % 360) - 180;
278
+ hue = (a.h + delta * t + 360) % 360;
279
+ }
280
+ else if (aChromatic) {
281
+ hue = a.h;
282
+ }
283
+ else {
284
+ hue = b.h;
285
+ }
286
+ return {
287
+ l: a.l + (b.l - a.l) * t,
288
+ c: a.c + (b.c - a.c) * t,
289
+ h: hue,
290
+ };
291
+ }
292
+ /** Shifts lightness by `delta`, keeping chroma and hue. Chroma is damped at the extremes. */
293
+ export function shiftLightness(color, delta) {
294
+ const l = Math.min(1, Math.max(0, color.l + delta));
295
+ // Chroma that was representable at the original lightness may not be at the new
296
+ // one — every hue's maximum chroma collapses toward the black and white ends.
297
+ // Damping before the gamut map keeps the hue from drifting as it is reduced.
298
+ const headroom = Math.min(1, 4 * Math.min(l, 1 - l) + 0.15);
299
+ return { l, c: color.c * headroom, h: color.h };
300
+ }
301
+ /** Scales chroma, clamped to the maximum the hue can hold. */
302
+ export function scaleChroma(color, factor) {
303
+ return { ...color, c: Math.max(0, Math.min(0.4, color.c * factor)) };
304
+ }
305
+ /** The perceptual distance between two colours, for deduplication and assertions. */
306
+ export function deltaEok(a, b) {
307
+ const first = oklchToOklab(a);
308
+ const second = oklchToOklab(b);
309
+ return Math.hypot(first.l - second.l, first.a - second.a, first.b - second.b);
310
+ }
311
+ //# sourceMappingURL=oklch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch.js","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAYH,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE,CACjD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA;AAE3E,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE,CACjD,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;AAE/E,gDAAgD;AAChD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;SACrE,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACrB,CAAC;AAOD,SAAS,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAa;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAA;IAC3E,OAAO;QACL,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACxD,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACxD,CAAC,EAAE,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC;KACzD,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAS;IAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAClD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAClD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAClB,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAClB,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAClB,OAAO;QACL,CAAC,EAAE,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE;QAC5D,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE;QAC7D,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,WAAW,GAAG,EAAE;KAC7D,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAS,EAAS,EAAE;IACxD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;IACnC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAS,EAAS,EAAE;IACxD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IACzE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AACpB,CAAC,CAAA;AAED,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,SAAS,GAAG,IAAI;IACpD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,CAAC,OAAe,EAAW,EAAE,CAC1C,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,GAAG,SAAS,CAAA;IACnD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAA;IAC5C,IAAI,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAExC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAA;IACtB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAE,GAAG,GAAG,GAAG,CAAA;;YAC3C,IAAI,GAAG,GAAG,CAAA;IACjB,CAAC;IACD,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;AACjC,CAAC;AAED,MAAM,WAAW,GAAG,gCAAgC,CAAA;AAEpD,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,MAAM;aACH,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;aAC7B,IAAI,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,MAAM,CAAA;IAEZ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAClD,CAAA;IAE7B,OAAO,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED,sFAAsF;AACtF,SAAS,aAAa,CAAC,GAAuB,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAA;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAA;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAC3D,CAAC;AAED,MAAM,aAAa,GACjB,mFAAmF,CAAA;AAErF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AACpB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAQ;IAC9C,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACvD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,wCAAwC;AACxC,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,UAAiB,EAAE,UAAiB;IACpE,OAAO,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAA;AAChD,CAAC;AAWD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAiB,EACjB,UAAiB,EACjB,OAAe,EACf,MAAM,GAAG,IAAI;IAEb,qFAAqF;IACrF,mFAAmF;IACnF,qFAAqF;IACrF,mFAAmF;IACnF,sCAAsC;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAChE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IACzE,CAAC;IAED,8EAA8E;IAC9E,mFAAmF;IACnF,+EAA+E;IAC/E,mFAAmF;IACnF,oCAAoC;IACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAA;IAClB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAE9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,YAAY,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAU,EAAE,CAAC;YACzD,MAAM,SAAS,GAAU,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,CAAA;YACtF,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAClD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAA;YAC7D,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBACrB,OAAO;oBACL,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;oBAC3B,KAAK;oBACL,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxC,SAAS,EAAE,IAAI;iBAChB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,MAAc;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAA;IACpB,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;IAChC,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;IAEhC,IAAI,GAAW,CAAA;IACf,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QAC7C,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IACrC,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACX,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACX,CAAC;IAED,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxB,CAAC,EAAE,GAAG;KACP,CAAA;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,KAAa;IACxD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;IACnD,gFAAgF;IAChF,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3D,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAA;AACjD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc;IACtD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAA;AACtE,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,CAAQ;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC"}