@nl-design-system-community/clippy-components 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clippy-button/index.d.ts +5 -4
- package/dist/clippy-button/index.d.ts.map +1 -1
- package/dist/clippy-button/index.js +7 -95
- package/dist/clippy-code/index.d.ts +3 -1
- package/dist/clippy-code/index.d.ts.map +1 -1
- package/dist/clippy-code/index.js +11 -10
- package/dist/clippy-color-combobox/index.d.ts +9 -4
- package/dist/clippy-color-combobox/index.d.ts.map +1 -1
- package/dist/clippy-color-combobox/index.js +5 -3
- package/dist/clippy-combobox/index.d.ts +8 -7
- package/dist/clippy-combobox/index.d.ts.map +1 -1
- package/dist/clippy-combobox/index.js +8 -384
- package/dist/clippy-font-combobox/index.d.ts +7 -2
- package/dist/clippy-font-combobox/index.d.ts.map +1 -1
- package/dist/clippy-font-combobox/index.js +55 -36
- package/dist/clippy-heading/index.d.ts +14 -0
- package/dist/clippy-heading/index.d.ts.map +1 -0
- package/dist/clippy-heading/index.js +262 -0
- package/dist/clippy-html-image/index.d.ts.map +1 -1
- package/dist/clippy-html-image/index.js +11 -8
- package/dist/clippy-icon/index.d.ts.map +1 -1
- package/dist/clippy-icon/index.js +5 -5
- package/dist/clippy-lang-combobox/index.d.ts +43 -0
- package/dist/clippy-lang-combobox/index.d.ts.map +1 -0
- package/dist/clippy-lang-combobox/index.js +290 -0
- package/dist/clippy-lang-combobox/languages.d.ts +202 -0
- package/dist/clippy-lang-combobox/languages.d.ts.map +1 -0
- package/dist/clippy-modal/index.d.ts.map +1 -1
- package/dist/clippy-modal/index.js +84 -68
- package/dist/decorators-BGpMqJ7V.js +7 -0
- package/dist/en-B-D8DBsf.js +4 -0
- package/dist/external-Dtf6f6DP.js +4 -0
- package/dist/index-CT1z3SFL.js +106 -0
- package/dist/index-CaVpiaBC.js +52 -0
- package/dist/index-CmKtM5nD.js +379 -0
- package/dist/{index-C_dkFbzv.js → index-CtreqNZ6.js} +681 -695
- package/dist/index-D3FiqptQ.js +65 -0
- package/dist/lib/{FormField → FormElement}/index.d.ts +1 -1
- package/dist/lib/FormElement/index.d.ts.map +1 -0
- package/dist/lib/LocalizationMixin/index.d.ts +29 -0
- package/dist/lib/LocalizationMixin/index.d.ts.map +1 -0
- package/dist/lib/converters/index.d.ts +1 -0
- package/dist/lib/converters/index.d.ts.map +1 -1
- package/dist/lib/decorators.d.ts +12 -0
- package/dist/lib/decorators.d.ts.map +1 -0
- package/package.json +4 -2
- package/dist/en-DR1i85jp.js +0 -4
- package/dist/external-GSP7IGqN.js +0 -4
- package/dist/lib/FormField/index.d.ts.map +0 -1
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { s as Er } from "./decorators-BGpMqJ7V.js";
|
|
2
|
+
import { L as kr } from "./index-CaVpiaBC.js";
|
|
3
|
+
import { css as $r, html as Ar, unsafeCSS as Or } from "lit";
|
|
4
|
+
import { property as Pr } from "lit/decorators.js";
|
|
5
|
+
import { styleMap as Ir } from "lit/directives/style-map.js";
|
|
6
|
+
import { C as Y0 } from "./index-CmKtM5nD.js";
|
|
7
|
+
const Hr = (t, e, r) => {
|
|
6
8
|
const n = t[e];
|
|
7
9
|
return n ? typeof n == "function" ? n() : Promise.resolve(n) : new Promise((a, s) => {
|
|
8
10
|
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(s.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + e + (e.split("/").length !== r ? ". Note that variables only represent file names one level deep." : ""))));
|
|
9
11
|
});
|
|
10
|
-
},
|
|
12
|
+
}, jr = ".nl-color-sample{background-image:repeating-conic-gradient(var(--nl-color-sample-background-color, hsl(0, 0%, 90%)) 0% 25%,#fff 0% 50%);background-size:.5rem .5rem;block-size:var(--nl-color-sample-block-size);border-color:var(--nl-color-sample-border-color);border-radius:var(--nl-color-sample-border-radius);border-style:solid;border-width:var(--nl-color-sample-border-width);display:inline-block;forced-color-adjust:none;inline-size:var(--nl-color-sample-inline-size);pointer-events:none}";
|
|
11
13
|
function _e(t, e) {
|
|
12
14
|
let r = t.length, n, a, s = !1, i = !1;
|
|
13
15
|
Array.isArray(t[0]) ? n = /** @type {number[][]} */
|
|
@@ -19,21 +21,21 @@ function _e(t, e) {
|
|
|
19
21
|
let o = a[0].length, l = a[0].map((f, u) => a.map((h) => h[u])), c = n.map((f) => l.map((u) => {
|
|
20
22
|
let h = 0;
|
|
21
23
|
if (!Array.isArray(f)) {
|
|
22
|
-
for (let
|
|
23
|
-
h += f *
|
|
24
|
+
for (let m of u)
|
|
25
|
+
h += f * m;
|
|
24
26
|
return h;
|
|
25
27
|
}
|
|
26
|
-
for (let
|
|
27
|
-
h += f[
|
|
28
|
+
for (let m = 0; m < f.length; m++)
|
|
29
|
+
h += f[m] * (u[m] || 0);
|
|
28
30
|
return h;
|
|
29
31
|
}));
|
|
30
32
|
return r === 1 && s && (c = c[0]), o === 1 && i ? r === 1 && s ? c[0] : c.map((f) => f[0]) : c;
|
|
31
33
|
}
|
|
32
|
-
function
|
|
34
|
+
function lt(t, e) {
|
|
33
35
|
return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];
|
|
34
36
|
}
|
|
35
37
|
function x(t, e, r = [0, 0, 0]) {
|
|
36
|
-
const n =
|
|
38
|
+
const n = lt(t, e[0]), a = lt(t, e[1]), s = lt(t, e[2]);
|
|
37
39
|
return r[0] = n, r[1] = a, r[2] = s, r;
|
|
38
40
|
}
|
|
39
41
|
function ye(t) {
|
|
@@ -42,16 +44,16 @@ function ye(t) {
|
|
|
42
44
|
function K(t) {
|
|
43
45
|
return (Object.prototype.toString.call(t).match(/^\[object\s+(.*?)\]$/)[1] || "").toLowerCase();
|
|
44
46
|
}
|
|
45
|
-
function
|
|
46
|
-
return L(t) ? "none" : (t =
|
|
47
|
+
function Et(t, { precision: e = 16, unit: r }) {
|
|
48
|
+
return L(t) ? "none" : (t = +kt(t, e), t + (r ?? ""));
|
|
47
49
|
}
|
|
48
50
|
function L(t) {
|
|
49
51
|
return t === null;
|
|
50
52
|
}
|
|
51
|
-
function
|
|
53
|
+
function z(t) {
|
|
52
54
|
return L(t) ? 0 : t;
|
|
53
55
|
}
|
|
54
|
-
function
|
|
56
|
+
function kt(t, e) {
|
|
55
57
|
if (t === 0)
|
|
56
58
|
return 0;
|
|
57
59
|
let r = ~~t, n = 0;
|
|
@@ -59,28 +61,28 @@ function $t(t, e) {
|
|
|
59
61
|
const a = 10 ** (e - n);
|
|
60
62
|
return Math.floor(t * a + 0.5) / a;
|
|
61
63
|
}
|
|
62
|
-
function
|
|
64
|
+
function Be(t, e, r) {
|
|
63
65
|
return isNaN(t) ? e : isNaN(e) ? t : t + (e - t) * r;
|
|
64
66
|
}
|
|
65
|
-
function
|
|
67
|
+
function N0(t, e, r) {
|
|
66
68
|
return (r - t) / (e - t);
|
|
67
69
|
}
|
|
68
|
-
function
|
|
69
|
-
return !t || !e || t === e || t[0] === e[0] && t[1] === e[1] || isNaN(r) || r === null ? r :
|
|
70
|
+
function Ct(t, e, r) {
|
|
71
|
+
return !t || !e || t === e || t[0] === e[0] && t[1] === e[1] || isNaN(r) || r === null ? r : Be(e[0], e[1], N0(t[0], t[1], r));
|
|
70
72
|
}
|
|
71
|
-
function
|
|
73
|
+
function et(t, e, r) {
|
|
72
74
|
return Math.max(Math.min(r, e), t);
|
|
73
75
|
}
|
|
74
|
-
function
|
|
76
|
+
function tt(t, e) {
|
|
75
77
|
return Math.sign(t) === Math.sign(e) ? t : -t;
|
|
76
78
|
}
|
|
77
|
-
function
|
|
78
|
-
return
|
|
79
|
+
function E(t, e) {
|
|
80
|
+
return tt(Math.abs(t) ** e, t);
|
|
79
81
|
}
|
|
80
|
-
function
|
|
82
|
+
function $t(t, e) {
|
|
81
83
|
return e === 0 ? 0 : t / e;
|
|
82
84
|
}
|
|
83
|
-
function
|
|
85
|
+
function q0(t, e, r = 0, n = t.length) {
|
|
84
86
|
for (; r < n; ) {
|
|
85
87
|
const a = r + n >> 1;
|
|
86
88
|
t[a] < e ? r = a + 1 : n = a;
|
|
@@ -101,27 +103,27 @@ function ge(t, e) {
|
|
|
101
103
|
}
|
|
102
104
|
return !1;
|
|
103
105
|
}
|
|
104
|
-
var
|
|
106
|
+
var Dr = /* @__PURE__ */ Object.freeze({
|
|
105
107
|
__proto__: null,
|
|
106
|
-
bisectLeft:
|
|
107
|
-
clamp:
|
|
108
|
-
copySign:
|
|
109
|
-
interpolate:
|
|
110
|
-
interpolateInv:
|
|
108
|
+
bisectLeft: q0,
|
|
109
|
+
clamp: et,
|
|
110
|
+
copySign: tt,
|
|
111
|
+
interpolate: Be,
|
|
112
|
+
interpolateInv: N0,
|
|
111
113
|
isInstance: ge,
|
|
112
114
|
isNone: L,
|
|
113
115
|
isString: ye,
|
|
114
|
-
mapRange:
|
|
116
|
+
mapRange: Ct,
|
|
115
117
|
multiplyMatrices: _e,
|
|
116
118
|
multiply_v3_m3x3: x,
|
|
117
|
-
serializeNumber:
|
|
118
|
-
skipNone:
|
|
119
|
-
spow:
|
|
120
|
-
toPrecision:
|
|
119
|
+
serializeNumber: Et,
|
|
120
|
+
skipNone: z,
|
|
121
|
+
spow: E,
|
|
122
|
+
toPrecision: kt,
|
|
121
123
|
type: K,
|
|
122
|
-
zdiv:
|
|
124
|
+
zdiv: $t
|
|
123
125
|
});
|
|
124
|
-
class
|
|
126
|
+
class Tr {
|
|
125
127
|
add(e, r, n) {
|
|
126
128
|
if (typeof arguments[0] != "string") {
|
|
127
129
|
for (var e in arguments[0])
|
|
@@ -138,8 +140,8 @@ class Xr {
|
|
|
138
140
|
});
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
|
-
const te = new
|
|
142
|
-
var
|
|
143
|
+
const te = new Tr();
|
|
144
|
+
var N = {
|
|
143
145
|
gamut_mapping: "css",
|
|
144
146
|
precision: 5,
|
|
145
147
|
deltaE: "76",
|
|
@@ -149,7 +151,7 @@ var Y = {
|
|
|
149
151
|
this.verbose && globalThis?.console?.warn?.(e);
|
|
150
152
|
}
|
|
151
153
|
};
|
|
152
|
-
class
|
|
154
|
+
class Xt {
|
|
153
155
|
// Class properties - declared here so that type inference works
|
|
154
156
|
type;
|
|
155
157
|
coordMeta;
|
|
@@ -185,7 +187,7 @@ class Jt {
|
|
|
185
187
|
if (this.type === "<angle>")
|
|
186
188
|
return e;
|
|
187
189
|
let r = this.computedRange, n = this.coordRange;
|
|
188
|
-
return this.type === "<percentage>" && (n ??= this.percentageRange()),
|
|
190
|
+
return this.type === "<percentage>" && (n ??= this.percentageRange()), Ct(r, n, e);
|
|
189
191
|
}
|
|
190
192
|
/**
|
|
191
193
|
* Serialize a number from the internal representation to a string
|
|
@@ -194,7 +196,7 @@ class Jt {
|
|
|
194
196
|
*/
|
|
195
197
|
serialize(e, r) {
|
|
196
198
|
let n = this.type === "<percentage>" ? this.percentageRange(100) : this.computedRange, a = this.unit;
|
|
197
|
-
return e =
|
|
199
|
+
return e = Ct(this.coordRange, n, e), Et(e, { unit: a, precision: r });
|
|
198
200
|
}
|
|
199
201
|
toString() {
|
|
200
202
|
let e = this.type;
|
|
@@ -217,8 +219,8 @@ class Jt {
|
|
|
217
219
|
return ge(e, this) ? e : new this(e, r);
|
|
218
220
|
}
|
|
219
221
|
}
|
|
220
|
-
const
|
|
221
|
-
class
|
|
222
|
+
const ct = /* @__PURE__ */ Symbol("instance");
|
|
223
|
+
class Ze {
|
|
222
224
|
// Class properties - declared here so that type inference works
|
|
223
225
|
type;
|
|
224
226
|
name;
|
|
@@ -234,14 +236,14 @@ class We {
|
|
|
234
236
|
* @param {ColorSpace} space
|
|
235
237
|
*/
|
|
236
238
|
constructor(e, r = e.space) {
|
|
237
|
-
e[
|
|
239
|
+
e[ct] = this, this.type = "function", this.name = "color", Object.assign(this, e), this.space = r, this.type !== "custom" && (this.spaceCoords = Object.values(r.coords), this.coords || (this.coords = this.spaceCoords.map((n) => {
|
|
238
240
|
let a = ["<number>", "<percentage>"];
|
|
239
241
|
return n.type === "angle" && a.push("<angle>"), a;
|
|
240
242
|
})), this.coords = this.coords.map(
|
|
241
243
|
/** @param {string | string[] | Type[]} types */
|
|
242
244
|
(n, a) => {
|
|
243
245
|
let s = this.spaceCoords[a];
|
|
244
|
-
return typeof n == "string" && (n = n.trim().split(/\s*\|\s*/)), n.map((i) =>
|
|
246
|
+
return typeof n == "string" && (n = n.trim().split(/\s*\|\s*/)), n.map((i) => Xt.get(i, s));
|
|
245
247
|
}
|
|
246
248
|
));
|
|
247
249
|
}
|
|
@@ -251,7 +253,7 @@ class We {
|
|
|
251
253
|
* @param {Type[]} types
|
|
252
254
|
*/
|
|
253
255
|
serializeCoords(e, r, n) {
|
|
254
|
-
return n = e.map((a, s) =>
|
|
256
|
+
return n = e.map((a, s) => Xt.get(n?.[s] ?? this.coords[s][0], this.spaceCoords[s])), e.map((a, s) => n[s].serialize(a, r));
|
|
255
257
|
}
|
|
256
258
|
/**
|
|
257
259
|
* Validates the coordinates of a color against a format's coord grammar and
|
|
@@ -298,7 +300,7 @@ class We {
|
|
|
298
300
|
return !e || ge(e, this) ? (
|
|
299
301
|
/** @type {Format} */
|
|
300
302
|
e
|
|
301
|
-
) : e[
|
|
303
|
+
) : e[ct] ? e[ct] : new Ze(e, ...r);
|
|
302
304
|
}
|
|
303
305
|
}
|
|
304
306
|
const P = {
|
|
@@ -306,11 +308,11 @@ const P = {
|
|
|
306
308
|
D50: [0.3457 / 0.3585, 1, (1 - 0.3457 - 0.3585) / 0.3585],
|
|
307
309
|
D65: [0.3127 / 0.329, 1, (1 - 0.3127 - 0.329) / 0.329]
|
|
308
310
|
};
|
|
309
|
-
function
|
|
311
|
+
function _t(t) {
|
|
310
312
|
return Array.isArray(t) ? t : P[t];
|
|
311
313
|
}
|
|
312
|
-
function
|
|
313
|
-
if (t =
|
|
314
|
+
function Je(t, e, r, n = {}) {
|
|
315
|
+
if (t = _t(t), e = _t(e), !t || !e)
|
|
314
316
|
throw new TypeError(
|
|
315
317
|
`Missing white point to convert ${t ? "" : "from"}${!t && !e ? "/" : ""}${e ? "" : "to"}`
|
|
316
318
|
);
|
|
@@ -329,23 +331,23 @@ function Fe(t, e, r, n = {}) {
|
|
|
329
331
|
return x(a.XYZ, a.M);
|
|
330
332
|
throw new TypeError("Only Bradford CAT with white points D50 and D65 supported for now.");
|
|
331
333
|
}
|
|
332
|
-
function
|
|
334
|
+
function X0(t, e) {
|
|
333
335
|
let r = {
|
|
334
336
|
str: String(t)?.trim(),
|
|
335
337
|
options: e
|
|
336
338
|
};
|
|
337
339
|
if (te.run("parse-start", r), r.color)
|
|
338
340
|
return r.color;
|
|
339
|
-
r.parsed =
|
|
341
|
+
r.parsed = Nr(r.str);
|
|
340
342
|
let n, a = r.options ? r.options.parseMeta ?? r.options.meta : null;
|
|
341
343
|
if (r.parsed) {
|
|
342
|
-
let s = r.parsed.name, i, o, l = r.parsed.args, c = l.map((h,
|
|
344
|
+
let s = r.parsed.name, i, o, l = r.parsed.args, c = l.map((h, m) => r.parsed.argMeta[m]?.type);
|
|
343
345
|
if (s === "color") {
|
|
344
346
|
let h = l.shift();
|
|
345
347
|
c.shift();
|
|
346
|
-
let
|
|
347
|
-
if (i = g.findFormat({ name: s, id:
|
|
348
|
-
let M, p = h in g.registry ? h :
|
|
348
|
+
let m = h.startsWith("--") ? h.substring(2) : `--${h}`, d = [h, m];
|
|
349
|
+
if (i = g.findFormat({ name: s, id: d, type: "function" }), !i) {
|
|
350
|
+
let M, p = h in g.registry ? h : m;
|
|
349
351
|
if (p in g.registry) {
|
|
350
352
|
let w = g.registry[p].formats?.color?.id;
|
|
351
353
|
w && (M = `Did you mean ${t.replace("color(" + h, "color(" + w)}?`);
|
|
@@ -354,9 +356,9 @@ function U0(t, e) {
|
|
|
354
356
|
`Cannot parse ${r.str}. ` + (M ?? "Missing a plugin?")
|
|
355
357
|
);
|
|
356
358
|
}
|
|
357
|
-
o = i.space, i.id.startsWith("--") && !h.startsWith("--") &&
|
|
359
|
+
o = i.space, i.id.startsWith("--") && !h.startsWith("--") && N.warn(
|
|
358
360
|
`${o.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${i.id}) instead of color(${h}).`
|
|
359
|
-
), h.startsWith("--") && !i.id.startsWith("--") &&
|
|
361
|
+
), h.startsWith("--") && !i.id.startsWith("--") && N.warn(
|
|
360
362
|
`${o.name} is a standard space and supported in the CSS spec. Use color(${i.id}) instead of prefixed color(${h}).`
|
|
361
363
|
);
|
|
362
364
|
} else
|
|
@@ -389,25 +391,25 @@ function U0(t, e) {
|
|
|
389
391
|
}
|
|
390
392
|
if (!n)
|
|
391
393
|
throw new TypeError(`Could not parse ${t} as a color. Missing a plugin?`);
|
|
392
|
-
return n.alpha = L(n.alpha) ? n.alpha : n.alpha === void 0 ? 1 :
|
|
394
|
+
return n.alpha = L(n.alpha) ? n.alpha : n.alpha === void 0 ? 1 : et(0, n.alpha, 1), n;
|
|
393
395
|
}
|
|
394
|
-
const
|
|
396
|
+
const G0 = {
|
|
395
397
|
"%": 0.01,
|
|
396
398
|
deg: 1,
|
|
397
399
|
grad: 0.9,
|
|
398
400
|
rad: 180 / Math.PI,
|
|
399
401
|
turn: 360
|
|
400
|
-
},
|
|
402
|
+
}, We = {
|
|
401
403
|
// Need to list calc(NaN) explicitly as otherwise its ending paren would terminate the function call
|
|
402
404
|
function: /^([a-z]+)\(((?:calc\(NaN\)|.)+?)\)$/i,
|
|
403
405
|
number: /^([-+]?(?:[0-9]*\.)?[0-9]+(e[-+]?[0-9]+)?)$/i,
|
|
404
|
-
unitValue: RegExp(`(${Object.keys(
|
|
406
|
+
unitValue: RegExp(`(${Object.keys(G0).join("|")})$`),
|
|
405
407
|
// NOTE The -+ are not just for prefix, but also for idents, and e+N notation!
|
|
406
408
|
singleArgument: /\/?\s*(none|NaN|calc\(NaN\)|[-+\w.]+(?:%|deg|g?rad|turn)?)/g
|
|
407
409
|
};
|
|
408
|
-
function
|
|
409
|
-
let e = {}, r = t.match(
|
|
410
|
-
return r ? (e.type = r === "%" ? "<percentage>" : "<angle>", e.unit = r, e.unitless = Number(n.slice(0, -r.length)), n = e.unitless *
|
|
410
|
+
function Yr(t) {
|
|
411
|
+
let e = {}, r = t.match(We.unitValue)?.[0], n = e.raw = t;
|
|
412
|
+
return r ? (e.type = r === "%" ? "<percentage>" : "<angle>", e.unit = r, e.unitless = Number(n.slice(0, -r.length)), n = e.unitless * G0[r]) : We.number.test(n) ? (n = Number(n), e.type = "<number>") : n === "none" ? n = null : n === "NaN" || n === "calc(NaN)" ? (n = NaN, e.type = "<number>") : e.type = "<ident>", { value: (
|
|
411
413
|
/** @type {number} */
|
|
412
414
|
n
|
|
413
415
|
), meta: (
|
|
@@ -415,14 +417,14 @@ function Gr(t) {
|
|
|
415
417
|
e
|
|
416
418
|
) };
|
|
417
419
|
}
|
|
418
|
-
function
|
|
420
|
+
function Nr(t) {
|
|
419
421
|
if (!t)
|
|
420
422
|
return;
|
|
421
423
|
t = t.trim();
|
|
422
|
-
let e = t.match(
|
|
424
|
+
let e = t.match(We.function);
|
|
423
425
|
if (e) {
|
|
424
|
-
let r = [], n = [], a = !1, s = e[1].toLowerCase(), i = e[2].replace(
|
|
425
|
-
let { value: c, meta: f } =
|
|
426
|
+
let r = [], n = [], a = !1, s = e[1].toLowerCase(), i = e[2].replace(We.singleArgument, (o, l) => {
|
|
427
|
+
let { value: c, meta: f } = Yr(l);
|
|
426
428
|
return (
|
|
427
429
|
// If there's a slash here, it's modern syntax
|
|
428
430
|
(o.startsWith("/") || // If there's still elements to process after there's already 3 in `args` (and the we're not dealing with "color()"), it's likely to be a legacy color like "hsl(0, 0%, 0%, 0.5)"
|
|
@@ -445,11 +447,11 @@ function C(t, e) {
|
|
|
445
447
|
return t.map((n) => C(n, e));
|
|
446
448
|
if (!t)
|
|
447
449
|
throw new TypeError("Empty color reference");
|
|
448
|
-
ye(t) && (t =
|
|
450
|
+
ye(t) && (t = X0(t, e));
|
|
449
451
|
let r = t.space || t.spaceId;
|
|
450
452
|
return typeof r == "string" && (t.space = g.get(r)), t.alpha === void 0 && (t.alpha = 1), t;
|
|
451
453
|
}
|
|
452
|
-
const
|
|
454
|
+
const qr = 75e-6;
|
|
453
455
|
class g {
|
|
454
456
|
constructor(e) {
|
|
455
457
|
this.id = e.id, this.name = e.name, this.base = e.base ? g.get(e.base) : null, this.aliases = e.aliases, this.base && (this.fromBase = e.fromBase, this.toBase = e.toBase);
|
|
@@ -458,7 +460,7 @@ class g {
|
|
|
458
460
|
"name" in r[a] || (r[a].name = a);
|
|
459
461
|
this.coords = r;
|
|
460
462
|
let n = e.white ?? this.base.white ?? "D65";
|
|
461
|
-
this.white =
|
|
463
|
+
this.white = _t(n), this.formats = e.formats ?? {};
|
|
462
464
|
for (let a in this.formats) {
|
|
463
465
|
let s = this.formats[a];
|
|
464
466
|
s.type ||= "function", s.name ||= a;
|
|
@@ -467,13 +469,13 @@ class g {
|
|
|
467
469
|
...this.formats.color ?? {},
|
|
468
470
|
id: e.cssId || this.id
|
|
469
471
|
}), e.gamutSpace ? this.gamutSpace = e.gamutSpace === "self" ? this : g.get(e.gamutSpace) : this.isPolar ? this.gamutSpace = this.base : this.gamutSpace = this, this.gamutSpace.isUnbounded && (this.inGamut = (a, s) => !0), this.referred = e.referred, Object.defineProperty(this, "path", {
|
|
470
|
-
value:
|
|
472
|
+
value: Xr(this).reverse(),
|
|
471
473
|
writable: !1,
|
|
472
474
|
enumerable: !0,
|
|
473
475
|
configurable: !0
|
|
474
476
|
}), te.run("colorspace-init-end", this);
|
|
475
477
|
}
|
|
476
|
-
inGamut(e, { epsilon: r =
|
|
478
|
+
inGamut(e, { epsilon: r = qr } = {}) {
|
|
477
479
|
if (!this.equals(this.gamutSpace))
|
|
478
480
|
return e = this.to(this.gamutSpace, e), this.gamutSpace.inGamut(e, { epsilon: r });
|
|
479
481
|
let n = Object.values(this.coords);
|
|
@@ -509,7 +511,7 @@ class g {
|
|
|
509
511
|
if (!e)
|
|
510
512
|
return null;
|
|
511
513
|
e === "default" ? e = Object.values(this.formats)[0] : typeof e == "string" && (e = this.formats[e]);
|
|
512
|
-
let r =
|
|
514
|
+
let r = Ze.get(e, this);
|
|
513
515
|
return r !== e && e.name in this.formats && (this.formats[e.name] = r), r;
|
|
514
516
|
}
|
|
515
517
|
/**
|
|
@@ -609,7 +611,7 @@ class g {
|
|
|
609
611
|
i &&= l.some((c) => o.includes(c));
|
|
610
612
|
}
|
|
611
613
|
if (i) {
|
|
612
|
-
let o =
|
|
614
|
+
let o = Ze.get(s, n);
|
|
613
615
|
return o !== s && (n.formats[s.name] = o), o;
|
|
614
616
|
}
|
|
615
617
|
}
|
|
@@ -651,13 +653,13 @@ class g {
|
|
|
651
653
|
name: "color"
|
|
652
654
|
};
|
|
653
655
|
}
|
|
654
|
-
function
|
|
656
|
+
function Xr(t) {
|
|
655
657
|
let e = [t];
|
|
656
658
|
for (let r = t; r = r.base; )
|
|
657
659
|
e.push(r);
|
|
658
660
|
return e;
|
|
659
661
|
}
|
|
660
|
-
var
|
|
662
|
+
var A = new g({
|
|
661
663
|
id: "xyz-d65",
|
|
662
664
|
name: "XYZ D65",
|
|
663
665
|
coords: {
|
|
@@ -704,15 +706,15 @@ class O extends g {
|
|
|
704
706
|
range: [0, 1],
|
|
705
707
|
name: "Blue"
|
|
706
708
|
}
|
|
707
|
-
}), e.base || (e.base =
|
|
709
|
+
}), e.base || (e.base = A), e.toXYZ_M && e.fromXYZ_M && (e.toBase ??= (r) => {
|
|
708
710
|
let n = x(r, e.toXYZ_M);
|
|
709
|
-
return this.white !== this.base.white && (n =
|
|
710
|
-
}, e.fromBase ??= (r) => (r =
|
|
711
|
+
return this.white !== this.base.white && (n = Je(this.white, this.base.white, n)), n;
|
|
712
|
+
}, e.fromBase ??= (r) => (r = Je(this.base.white, this.white, r), x(r, e.fromXYZ_M))), e.referred ??= "display", super(e);
|
|
711
713
|
}
|
|
712
714
|
}
|
|
713
|
-
function
|
|
715
|
+
function Z0(t, e = {}) {
|
|
714
716
|
if (Array.isArray(t))
|
|
715
|
-
return t.map((l) =>
|
|
717
|
+
return t.map((l) => Z0(l, e));
|
|
716
718
|
let { cssProperty: r = "background-color", element: n, ...a } = e, s = null;
|
|
717
719
|
try {
|
|
718
720
|
return C(t, a);
|
|
@@ -737,21 +739,21 @@ function K0(t, e = {}) {
|
|
|
737
739
|
}
|
|
738
740
|
return e.errorMeta && (e.errorMeta.error = s), null;
|
|
739
741
|
}
|
|
740
|
-
function
|
|
742
|
+
function ke(t, e) {
|
|
741
743
|
t = C(t);
|
|
742
744
|
let r = g.get(e, e?.space), n = e?.precision, a;
|
|
743
|
-
return !r || t.space.equals(r) ? a = t.coords.slice() : a = r.from(t), n === void 0 ? a : a.map((s) =>
|
|
745
|
+
return !r || t.space.equals(r) ? a = t.coords.slice() : a = r.from(t), n === void 0 ? a : a.map((s) => kt(s, n));
|
|
744
746
|
}
|
|
745
747
|
function T(t, e) {
|
|
746
748
|
if (t = C(t), e === "alpha")
|
|
747
749
|
return t.alpha ?? 1;
|
|
748
750
|
let { space: r, index: n } = g.resolveCoord(e, t.space);
|
|
749
|
-
return
|
|
751
|
+
return ke(t, r)[n];
|
|
750
752
|
}
|
|
751
|
-
function
|
|
753
|
+
function At(t, e, r, n) {
|
|
752
754
|
return t = C(t), Array.isArray(e) && ([e, r, n] = [t.space, e, r]), e = g.get(e), t.coords = e === t.space ? r.slice() : e.to(t.space, r), n !== void 0 && (t.alpha = n), t;
|
|
753
755
|
}
|
|
754
|
-
|
|
756
|
+
At.returns = "color";
|
|
755
757
|
function F(t, e, r) {
|
|
756
758
|
if (t = C(t), arguments.length === 2 && K(arguments[1]) === "object") {
|
|
757
759
|
let n = arguments[1];
|
|
@@ -760,23 +762,23 @@ function F(t, e, r) {
|
|
|
760
762
|
} else if (typeof r == "function" && (r = r(T(t, e))), e === "alpha")
|
|
761
763
|
t.alpha = r;
|
|
762
764
|
else {
|
|
763
|
-
let { space: n, index: a } = g.resolveCoord(e, t.space), s =
|
|
764
|
-
s[a] = r,
|
|
765
|
+
let { space: n, index: a } = g.resolveCoord(e, t.space), s = ke(t, n);
|
|
766
|
+
s[a] = r, At(t, n, s);
|
|
765
767
|
}
|
|
766
768
|
return t;
|
|
767
769
|
}
|
|
768
770
|
F.returns = "color";
|
|
769
|
-
var
|
|
771
|
+
var Ot = new g({
|
|
770
772
|
id: "xyz-d50",
|
|
771
773
|
name: "XYZ D50",
|
|
772
774
|
white: "D50",
|
|
773
|
-
base:
|
|
774
|
-
fromBase: (t) =>
|
|
775
|
-
toBase: (t) =>
|
|
775
|
+
base: A,
|
|
776
|
+
fromBase: (t) => Je(A.white, "D50", t),
|
|
777
|
+
toBase: (t) => Je("D50", A.white, t)
|
|
776
778
|
});
|
|
777
|
-
const
|
|
778
|
-
let
|
|
779
|
-
var
|
|
779
|
+
const Gr = 216 / 24389, Gt = 24 / 116, Ie = 24389 / 27;
|
|
780
|
+
let ut = P.D50;
|
|
781
|
+
var Y = new g({
|
|
780
782
|
id: "lab",
|
|
781
783
|
name: "Lab",
|
|
782
784
|
coords: {
|
|
@@ -793,12 +795,12 @@ var N = new g({
|
|
|
793
795
|
},
|
|
794
796
|
// Assuming XYZ is relative to D50, convert to CIE Lab
|
|
795
797
|
// from CIE standard, which now defines these as a rational fraction
|
|
796
|
-
white:
|
|
797
|
-
base:
|
|
798
|
+
white: ut,
|
|
799
|
+
base: Ot,
|
|
798
800
|
// Convert D50-adapted XYX to Lab
|
|
799
801
|
// CIE 15.3:2004 section 8.2.1.1
|
|
800
802
|
fromBase(t) {
|
|
801
|
-
let r = t.map((i, o) => i /
|
|
803
|
+
let r = t.map((i, o) => i / ut[o]).map((i) => i > Gr ? Math.cbrt(i) : (Ie * i + 16) / 116), n = 116 * r[1] - 16, a = 500 * (r[0] - r[1]), s = 200 * (r[1] - r[2]);
|
|
802
804
|
return [n, a, s];
|
|
803
805
|
},
|
|
804
806
|
// Convert Lab to D50-adapted XYZ
|
|
@@ -807,10 +809,10 @@ var N = new g({
|
|
|
807
809
|
toBase(t) {
|
|
808
810
|
let [e, r, n] = t, a = [];
|
|
809
811
|
return a[1] = (e + 16) / 116, a[0] = r / 500 + a[1], a[2] = a[1] - n / 200, [
|
|
810
|
-
a[0] >
|
|
811
|
-
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] /
|
|
812
|
-
a[2] >
|
|
813
|
-
].map((i, o) => i *
|
|
812
|
+
a[0] > Gt ? Math.pow(a[0], 3) : (116 * a[0] - 16) / Ie,
|
|
813
|
+
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] / Ie,
|
|
814
|
+
a[2] > Gt ? Math.pow(a[2], 3) : (116 * a[2] - 16) / Ie
|
|
815
|
+
].map((i, o) => i * ut[o]);
|
|
814
816
|
},
|
|
815
817
|
formats: {
|
|
816
818
|
lab: {
|
|
@@ -825,7 +827,7 @@ var N = new g({
|
|
|
825
827
|
function X(t) {
|
|
826
828
|
return typeof t != "number" ? t : (t % 360 + 360) % 360;
|
|
827
829
|
}
|
|
828
|
-
function
|
|
830
|
+
function J0(t, e) {
|
|
829
831
|
let [r, n] = e, a = L(r), s = L(n);
|
|
830
832
|
if (a && s)
|
|
831
833
|
return [r, n];
|
|
@@ -853,7 +855,7 @@ var q = new g({
|
|
|
853
855
|
name: "Hue"
|
|
854
856
|
}
|
|
855
857
|
},
|
|
856
|
-
base:
|
|
858
|
+
base: Y,
|
|
857
859
|
fromBase(t) {
|
|
858
860
|
if (this.ε === void 0) {
|
|
859
861
|
let o = Object.values(this.base.coords)[1].refRange, l = o[1] - o[0];
|
|
@@ -872,35 +874,35 @@ var q = new g({
|
|
|
872
874
|
}
|
|
873
875
|
}
|
|
874
876
|
});
|
|
875
|
-
const
|
|
876
|
-
function
|
|
877
|
+
const Zt = 25 ** 7, Fe = Math.PI, Jt = 180 / Fe, ue = Fe / 180;
|
|
878
|
+
function Wt(t) {
|
|
877
879
|
const e = t * t;
|
|
878
880
|
return e * e * e * t;
|
|
879
881
|
}
|
|
880
|
-
function
|
|
882
|
+
function W0(t, e, { kL: r = 1, kC: n = 1, kH: a = 1 } = {}) {
|
|
881
883
|
[t, e] = C([t, e]);
|
|
882
|
-
let [s, i, o] =
|
|
884
|
+
let [s, i, o] = Y.from(t), l = q.from(Y, [s, i, o])[1], [c, f, u] = Y.from(e), h = q.from(Y, [c, f, u])[1];
|
|
883
885
|
l < 0 && (l = 0), h < 0 && (h = 0);
|
|
884
|
-
let
|
|
885
|
-
_ < 0 && (_ += 2 *
|
|
886
|
+
let m = (l + h) / 2, d = Wt(m), M = 0.5 * (1 - Math.sqrt(d / (d + Zt))), p = (1 + M) * i, w = (1 + M) * f, b = Math.sqrt(p ** 2 + o ** 2), y = Math.sqrt(w ** 2 + u ** 2), _ = p === 0 && o === 0 ? 0 : Math.atan2(o, p), S = w === 0 && u === 0 ? 0 : Math.atan2(u, w);
|
|
887
|
+
_ < 0 && (_ += 2 * Fe), S < 0 && (S += 2 * Fe), _ *= Jt, S *= Jt;
|
|
886
888
|
let I = c - s, H = y - b, B = S - _, j = _ + S, Q = Math.abs(B), G;
|
|
887
|
-
b * y === 0 ? G = 0 : Q <= 180 ? G = B : B > 180 ? G = B - 360 : B < -180 ? G = B + 360 :
|
|
888
|
-
let J = 2 * Math.sqrt(y * b) * Math.sin(G * ue / 2), U = (s + c) / 2, W = (b + y) / 2, we =
|
|
889
|
+
b * y === 0 ? G = 0 : Q <= 180 ? G = B : B > 180 ? G = B - 360 : B < -180 ? G = B + 360 : N.warn("the unthinkable has happened");
|
|
890
|
+
let J = 2 * Math.sqrt(y * b) * Math.sin(G * ue / 2), U = (s + c) / 2, W = (b + y) / 2, we = Wt(W), D;
|
|
889
891
|
b * y === 0 ? D = j : Q <= 180 ? D = j / 2 : j < 360 ? D = (j + 360) / 2 : D = (j - 360) / 2;
|
|
890
|
-
let
|
|
892
|
+
let Ae = (U - 50) ** 2, Oe = 1 + 0.015 * Ae / Math.sqrt(20 + Ae), le = 1 + 0.045 * W, V = 1;
|
|
891
893
|
V -= 0.17 * Math.cos((D - 30) * ue), V += 0.24 * Math.cos(2 * D * ue), V += 0.32 * Math.cos((3 * D + 6) * ue), V -= 0.2 * Math.cos((4 * D - 63) * ue);
|
|
892
|
-
let ce = 1 + 0.015 * W * V,
|
|
894
|
+
let ce = 1 + 0.015 * W * V, st = 30 * Math.exp(-1 * ((D - 275) / 25) ** 2), Pe = 2 * Math.sqrt(we / (we + Zt)), Ce = -1 * Math.sin(2 * st * ue) * Pe, ae = (I / (r * Oe)) ** 2;
|
|
893
895
|
return ae += (H / (n * le)) ** 2, ae += (J / (a * ce)) ** 2, ae += Ce * (H / (n * le)) * (J / (a * ce)), Math.sqrt(ae);
|
|
894
896
|
}
|
|
895
|
-
const
|
|
897
|
+
const Zr = [
|
|
896
898
|
[0.819022437996703, 0.3619062600528904, -0.1288737815209879],
|
|
897
899
|
[0.0329836539323885, 0.9292868615863434, 0.0361446663506424],
|
|
898
900
|
[0.0481771893596242, 0.2642395317527308, 0.6335478284694309]
|
|
899
|
-
],
|
|
901
|
+
], Jr = [
|
|
900
902
|
[1.2268798758459243, -0.5578149944602171, 0.2813910456659647],
|
|
901
903
|
[-0.0405757452148008, 1.112286803280317, -0.0717110580655164],
|
|
902
904
|
[-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]
|
|
903
|
-
],
|
|
905
|
+
], Wr = [
|
|
904
906
|
[0.210454268309314, 0.7936177747023054, -0.0040720430116193],
|
|
905
907
|
[1.9779985324311684, -2.42859224204858, 0.450593709617411],
|
|
906
908
|
[0.0259040424655478, 0.7827717124575296, -0.8086757549230774]
|
|
@@ -926,14 +928,14 @@ var Z = new g({
|
|
|
926
928
|
},
|
|
927
929
|
// Note that XYZ is relative to D65
|
|
928
930
|
white: "D65",
|
|
929
|
-
base:
|
|
931
|
+
base: A,
|
|
930
932
|
fromBase(t) {
|
|
931
|
-
let e = x(t,
|
|
932
|
-
return e[0] = Math.cbrt(e[0]), e[1] = Math.cbrt(e[1]), e[2] = Math.cbrt(e[2]), x(e,
|
|
933
|
+
let e = x(t, Zr);
|
|
934
|
+
return e[0] = Math.cbrt(e[0]), e[1] = Math.cbrt(e[1]), e[2] = Math.cbrt(e[2]), x(e, Wr, e);
|
|
933
935
|
},
|
|
934
936
|
toBase(t) {
|
|
935
937
|
let e = x(t, ee);
|
|
936
|
-
return e[0] = e[0] ** 3, e[1] = e[1] ** 3, e[2] = e[2] ** 3, x(e,
|
|
938
|
+
return e[0] = e[0] ** 3, e[1] = e[1] ** 3, e[2] = e[2] ** 3, x(e, Jr, e);
|
|
937
939
|
},
|
|
938
940
|
formats: {
|
|
939
941
|
oklab: {
|
|
@@ -945,13 +947,13 @@ var Z = new g({
|
|
|
945
947
|
}
|
|
946
948
|
}
|
|
947
949
|
});
|
|
948
|
-
function
|
|
950
|
+
function Lt(t, e) {
|
|
949
951
|
[t, e] = C([t, e]);
|
|
950
952
|
let [r, n, a] = Z.from(t), [s, i, o] = Z.from(e), l = r - s, c = n - i, f = a - o;
|
|
951
953
|
return Math.sqrt(l ** 2 + c ** 2 + f ** 2);
|
|
952
954
|
}
|
|
953
|
-
const
|
|
954
|
-
function ie(t, e, { epsilon: r =
|
|
955
|
+
const Fr = 75e-6;
|
|
956
|
+
function ie(t, e, { epsilon: r = Fr } = {}) {
|
|
955
957
|
t = C(t), e || (e = t.space), e = g.get(e);
|
|
956
958
|
let n = t.coords;
|
|
957
959
|
return e !== t.space && (n = e.from(t)), e.inGamut(n, { epsilon: r });
|
|
@@ -966,7 +968,7 @@ function pe(t) {
|
|
|
966
968
|
alpha: t.alpha
|
|
967
969
|
};
|
|
968
970
|
}
|
|
969
|
-
function
|
|
971
|
+
function F0(t, e, r = "lab") {
|
|
970
972
|
r = g.get(r);
|
|
971
973
|
let n = r.from(t), a = r.from(e);
|
|
972
974
|
return Math.sqrt(
|
|
@@ -976,23 +978,23 @@ function rr(t, e, r = "lab") {
|
|
|
976
978
|
}, 0)
|
|
977
979
|
);
|
|
978
980
|
}
|
|
979
|
-
function
|
|
980
|
-
return
|
|
981
|
+
function Qr(t, e) {
|
|
982
|
+
return F0(t, e, "lab");
|
|
981
983
|
}
|
|
982
|
-
const
|
|
983
|
-
function
|
|
984
|
+
const Ur = Math.PI, Ft = Ur / 180;
|
|
985
|
+
function Vr(t, e, { l: r = 2, c: n = 1 } = {}) {
|
|
984
986
|
[t, e] = C([t, e]);
|
|
985
|
-
let [a, s, i] =
|
|
987
|
+
let [a, s, i] = Y.from(t), [, o, l] = q.from(Y, [a, s, i]), [c, f, u] = Y.from(e), h = q.from(Y, [c, f, u])[1];
|
|
986
988
|
o < 0 && (o = 0), h < 0 && (h = 0);
|
|
987
|
-
let
|
|
989
|
+
let m = a - c, d = o - h, M = s - f, p = i - u, w = M ** 2 + p ** 2 - d ** 2, b = 0.511;
|
|
988
990
|
a >= 16 && (b = 0.040975 * a / (1 + 0.01765 * a));
|
|
989
991
|
let y = 0.0638 * o / (1 + 0.0131 * o) + 0.638, _;
|
|
990
|
-
L(l) && (l = 0), l >= 164 && l <= 345 ? _ = 0.56 + Math.abs(0.2 * Math.cos((l + 168) *
|
|
991
|
-
let S = Math.pow(o, 4), I = Math.sqrt(S / (S + 1900)), H = y * (I * _ + 1 - I), B = (
|
|
992
|
-
return B += (
|
|
992
|
+
L(l) && (l = 0), l >= 164 && l <= 345 ? _ = 0.56 + Math.abs(0.2 * Math.cos((l + 168) * Ft)) : _ = 0.36 + Math.abs(0.4 * Math.cos((l + 35) * Ft));
|
|
993
|
+
let S = Math.pow(o, 4), I = Math.sqrt(S / (S + 1900)), H = y * (I * _ + 1 - I), B = (m / (r * b)) ** 2;
|
|
994
|
+
return B += (d / (n * y)) ** 2, B += w / H ** 2, Math.sqrt(B);
|
|
993
995
|
}
|
|
994
|
-
const
|
|
995
|
-
var
|
|
996
|
+
const Qt = 203;
|
|
997
|
+
var Pt = new g({
|
|
996
998
|
// Absolute CIE XYZ, with a D65 whitepoint,
|
|
997
999
|
// as used in most HDR colorspaces as a starting point.
|
|
998
1000
|
// SDR spaces are converted per BT.2048
|
|
@@ -1014,32 +1016,32 @@ var Ht = new g({
|
|
|
1014
1016
|
name: "Za"
|
|
1015
1017
|
}
|
|
1016
1018
|
},
|
|
1017
|
-
base:
|
|
1019
|
+
base: A,
|
|
1018
1020
|
fromBase(t) {
|
|
1019
|
-
return t.map((e) => e *
|
|
1021
|
+
return t.map((e) => e * Qt);
|
|
1020
1022
|
},
|
|
1021
1023
|
toBase(t) {
|
|
1022
|
-
return t.map((e) => e /
|
|
1024
|
+
return t.map((e) => e / Qt);
|
|
1023
1025
|
}
|
|
1024
1026
|
});
|
|
1025
|
-
const
|
|
1027
|
+
const He = 1.15, je = 0.66, Ut = 2610 / 2 ** 14, Kr = 2 ** 14 / 2610, Vt = 3424 / 2 ** 12, Kt = 2413 / 2 ** 7, e0 = 2392 / 2 ** 7, en = 1.7 * 2523 / 2 ** 5, t0 = 2 ** 5 / (1.7 * 2523), De = -0.56, ft = 16295499532821565e-27, tn = [
|
|
1026
1028
|
[0.41478972, 0.579999, 0.014648],
|
|
1027
1029
|
[-0.20151, 1.120649, 0.0531008],
|
|
1028
1030
|
[-0.0166008, 0.2648, 0.6684799]
|
|
1029
|
-
],
|
|
1031
|
+
], rn = [
|
|
1030
1032
|
[1.9242264357876067, -1.0047923125953657, 0.037651404030618],
|
|
1031
1033
|
[0.35031676209499907, 0.7264811939316552, -0.06538442294808501],
|
|
1032
1034
|
[-0.09098281098284752, -0.3127282905230739, 1.5227665613052603]
|
|
1033
|
-
],
|
|
1035
|
+
], nn = [
|
|
1034
1036
|
[0.5, 0.5, 0],
|
|
1035
1037
|
[3.524, -4.066708, 0.542708],
|
|
1036
1038
|
[0.199076, 1.096799, -1.295875]
|
|
1037
|
-
],
|
|
1039
|
+
], an = [
|
|
1038
1040
|
[1, 0.13860504327153927, 0.05804731615611883],
|
|
1039
1041
|
[1, -0.1386050432715393, -0.058047316156118904],
|
|
1040
1042
|
[1, -0.09601924202631895, -0.811891896056039]
|
|
1041
1043
|
];
|
|
1042
|
-
var
|
|
1044
|
+
var Q0 = new g({
|
|
1043
1045
|
id: "jzazbz",
|
|
1044
1046
|
name: "Jzazbz",
|
|
1045
1047
|
coords: {
|
|
@@ -1054,25 +1056,25 @@ var nr = new g({
|
|
|
1054
1056
|
refRange: [-0.21, 0.21]
|
|
1055
1057
|
}
|
|
1056
1058
|
},
|
|
1057
|
-
base:
|
|
1059
|
+
base: Pt,
|
|
1058
1060
|
fromBase(t) {
|
|
1059
|
-
let [e, r, n] = t, a =
|
|
1061
|
+
let [e, r, n] = t, a = He * e - (He - 1) * n, s = je * r - (je - 1) * e, o = (
|
|
1060
1062
|
/** @type {Vector3} } */
|
|
1061
|
-
x([a, s, n],
|
|
1062
|
-
let
|
|
1063
|
-
return
|
|
1063
|
+
x([a, s, n], tn).map(function(h) {
|
|
1064
|
+
let m = Vt + Kt * E(h / 1e4, Ut), d = 1 + e0 * E(h / 1e4, Ut);
|
|
1065
|
+
return E(m / d, en);
|
|
1064
1066
|
})
|
|
1065
|
-
), [l, c, f] = x(o,
|
|
1066
|
-
return [(1 +
|
|
1067
|
+
), [l, c, f] = x(o, nn);
|
|
1068
|
+
return [(1 + De) * l / (1 + De * l) - ft, c, f];
|
|
1067
1069
|
},
|
|
1068
1070
|
toBase(t) {
|
|
1069
|
-
let [e, r, n] = t, a = (e +
|
|
1071
|
+
let [e, r, n] = t, a = (e + ft) / (1 + De - De * (e + ft)), i = (
|
|
1070
1072
|
/** @type {Vector3} } */
|
|
1071
|
-
x([a, r, n],
|
|
1072
|
-
let
|
|
1073
|
-
return 1e4 *
|
|
1073
|
+
x([a, r, n], an).map(function(h) {
|
|
1074
|
+
let m = Vt - E(h, t0), d = e0 * E(h, t0) - Kt;
|
|
1075
|
+
return 1e4 * E(m / d, Kr);
|
|
1074
1076
|
})
|
|
1075
|
-
), [o, l, c] = x(i,
|
|
1077
|
+
), [o, l, c] = x(i, rn), f = (o + (He - 1) * c) / He, u = (l + (je - 1) * f) / je;
|
|
1076
1078
|
return [f, u, c];
|
|
1077
1079
|
},
|
|
1078
1080
|
formats: {
|
|
@@ -1085,7 +1087,7 @@ var nr = new g({
|
|
|
1085
1087
|
]
|
|
1086
1088
|
}
|
|
1087
1089
|
}
|
|
1088
|
-
}),
|
|
1090
|
+
}), Rt = new g({
|
|
1089
1091
|
id: "jzczhz",
|
|
1090
1092
|
name: "JzCzHz",
|
|
1091
1093
|
coords: {
|
|
@@ -1103,7 +1105,7 @@ var nr = new g({
|
|
|
1103
1105
|
name: "Hue"
|
|
1104
1106
|
}
|
|
1105
1107
|
},
|
|
1106
|
-
base:
|
|
1108
|
+
base: Q0,
|
|
1107
1109
|
fromBase: q.fromBase,
|
|
1108
1110
|
toBase: q.toBase,
|
|
1109
1111
|
formats: {
|
|
@@ -1113,31 +1115,31 @@ var nr = new g({
|
|
|
1113
1115
|
}
|
|
1114
1116
|
}
|
|
1115
1117
|
});
|
|
1116
|
-
function
|
|
1118
|
+
function sn(t, e) {
|
|
1117
1119
|
[t, e] = C([t, e]);
|
|
1118
|
-
let [r, n, a] =
|
|
1120
|
+
let [r, n, a] = Rt.from(t), [s, i, o] = Rt.from(e), l = r - s, c = n - i;
|
|
1119
1121
|
L(a) && L(o) ? (a = 0, o = 0) : L(a) ? a = o : L(o) && (o = a);
|
|
1120
1122
|
let f = a - o, u = 2 * Math.sqrt(n * i) * Math.sin(f / 2 * (Math.PI / 180));
|
|
1121
1123
|
return Math.sqrt(l ** 2 + c ** 2 + u ** 2);
|
|
1122
1124
|
}
|
|
1123
|
-
const
|
|
1125
|
+
const U0 = 3424 / 4096, V0 = 2413 / 128, K0 = 2392 / 128, r0 = 2610 / 16384, on = 2523 / 32, ln = 16384 / 2610, n0 = 32 / 2523, cn = [
|
|
1124
1126
|
[0.3592832590121217, 0.6976051147779502, -0.035891593232029],
|
|
1125
1127
|
[-0.1920808463704993, 1.100476797037432, 0.0753748658519118],
|
|
1126
1128
|
[0.0070797844607479, 0.0748396662186362, 0.8433265453898765]
|
|
1127
|
-
],
|
|
1129
|
+
], un = [
|
|
1128
1130
|
[2048 / 4096, 2048 / 4096, 0],
|
|
1129
1131
|
[6610 / 4096, -13613 / 4096, 7003 / 4096],
|
|
1130
1132
|
[17933 / 4096, -17390 / 4096, -543 / 4096]
|
|
1131
|
-
],
|
|
1133
|
+
], fn = [
|
|
1132
1134
|
[0.9999999999999998, 0.0086090370379328, 0.111029625003026],
|
|
1133
1135
|
[0.9999999999999998, -0.0086090370379328, -0.1110296250030259],
|
|
1134
1136
|
[0.9999999999999998, 0.5600313357106791, -0.3206271749873188]
|
|
1135
|
-
],
|
|
1137
|
+
], hn = [
|
|
1136
1138
|
[2.0701522183894223, -1.3263473389671563, 0.2066510476294053],
|
|
1137
1139
|
[0.3647385209748072, 0.6805660249472273, -0.0453045459220347],
|
|
1138
1140
|
[-0.0497472075358123, -0.0492609666966131, 1.1880659249923042]
|
|
1139
1141
|
];
|
|
1140
|
-
var
|
|
1142
|
+
var vt = new g({
|
|
1141
1143
|
id: "ictcp",
|
|
1142
1144
|
name: "ICTCP",
|
|
1143
1145
|
// From BT.2100-2 page 7:
|
|
@@ -1165,14 +1167,14 @@ var xt = new g({
|
|
|
1165
1167
|
name: "CP"
|
|
1166
1168
|
}
|
|
1167
1169
|
},
|
|
1168
|
-
base:
|
|
1170
|
+
base: Pt,
|
|
1169
1171
|
fromBase(t) {
|
|
1170
|
-
let e = x(t,
|
|
1171
|
-
return
|
|
1172
|
+
let e = x(t, cn);
|
|
1173
|
+
return mn(e);
|
|
1172
1174
|
},
|
|
1173
1175
|
toBase(t) {
|
|
1174
|
-
let e =
|
|
1175
|
-
return x(e,
|
|
1176
|
+
let e = dn(t);
|
|
1177
|
+
return x(e, hn);
|
|
1176
1178
|
},
|
|
1177
1179
|
formats: {
|
|
1178
1180
|
ictcp: {
|
|
@@ -1184,48 +1186,48 @@ var xt = new g({
|
|
|
1184
1186
|
}
|
|
1185
1187
|
}
|
|
1186
1188
|
});
|
|
1187
|
-
function
|
|
1189
|
+
function mn(t) {
|
|
1188
1190
|
let e = (
|
|
1189
1191
|
/** @type {Vector3} */
|
|
1190
1192
|
t.map(function(r) {
|
|
1191
|
-
let n =
|
|
1192
|
-
return (n / a) **
|
|
1193
|
+
let n = U0 + V0 * (r / 1e4) ** r0, a = 1 + K0 * (r / 1e4) ** r0;
|
|
1194
|
+
return (n / a) ** on;
|
|
1193
1195
|
})
|
|
1194
1196
|
);
|
|
1195
|
-
return x(e,
|
|
1197
|
+
return x(e, un);
|
|
1196
1198
|
}
|
|
1197
|
-
function
|
|
1199
|
+
function dn(t) {
|
|
1198
1200
|
return (
|
|
1199
1201
|
/** @type {Vector3} */
|
|
1200
|
-
x(t,
|
|
1201
|
-
let a = Math.max(n **
|
|
1202
|
-
return 1e4 * (a / s) **
|
|
1202
|
+
x(t, fn).map(function(n) {
|
|
1203
|
+
let a = Math.max(n ** n0 - U0, 0), s = V0 - K0 * n ** n0;
|
|
1204
|
+
return 1e4 * (a / s) ** ln;
|
|
1203
1205
|
})
|
|
1204
1206
|
);
|
|
1205
1207
|
}
|
|
1206
|
-
function
|
|
1208
|
+
function gn(t, e) {
|
|
1207
1209
|
[t, e] = C([t, e]);
|
|
1208
|
-
let [r, n, a] =
|
|
1210
|
+
let [r, n, a] = vt.from(t), [s, i, o] = vt.from(e);
|
|
1209
1211
|
return 720 * Math.sqrt((r - s) ** 2 + 0.25 * (n - i) ** 2 + (a - o) ** 2);
|
|
1210
1212
|
}
|
|
1211
|
-
function
|
|
1213
|
+
function pn(t, e) {
|
|
1212
1214
|
[t, e] = C([t, e]);
|
|
1213
1215
|
let r = 2, [n, a, s] = Z.from(t), [i, o, l] = Z.from(e), c = n - i, f = r * (a - o), u = r * (s - l);
|
|
1214
1216
|
return Math.sqrt(c ** 2 + f ** 2 + u ** 2);
|
|
1215
1217
|
}
|
|
1216
|
-
const
|
|
1218
|
+
const bn = P.D65, er = 0.42, a0 = 1 / er, ht = 2 * Math.PI, tr = [
|
|
1217
1219
|
[0.401288, 0.650173, -0.051461],
|
|
1218
1220
|
[-0.250268, 1.204414, 0.045854],
|
|
1219
1221
|
[-2079e-6, 0.048952, 0.953127]
|
|
1220
|
-
],
|
|
1222
|
+
], Mn = [
|
|
1221
1223
|
[1.8620678550872327, -1.0112546305316843, 0.14918677544445175],
|
|
1222
1224
|
[0.38752654323613717, 0.6214474419314753, -0.008973985167612518],
|
|
1223
1225
|
[-0.015841498849333856, -0.03412293802851557, 1.0499644368778496]
|
|
1224
|
-
],
|
|
1226
|
+
], yn = [
|
|
1225
1227
|
[460, 451, 288],
|
|
1226
1228
|
[460, -891, -261],
|
|
1227
1229
|
[460, -220, -6300]
|
|
1228
|
-
],
|
|
1230
|
+
], wn = {
|
|
1229
1231
|
dark: [0.8, 0.525, 0.8],
|
|
1230
1232
|
dim: [0.9, 0.59, 0.9],
|
|
1231
1233
|
average: [1, 0.69, 1]
|
|
@@ -1234,40 +1236,40 @@ const Cn = P.D65, or = 0.42, o0 = 1 / or, dt = 2 * Math.PI, lr = [
|
|
|
1234
1236
|
h: [20.14, 90, 164.25, 237.53, 380.14],
|
|
1235
1237
|
e: [0.8, 0.7, 1, 1.2, 0.8],
|
|
1236
1238
|
H: [0, 100, 200, 300, 400]
|
|
1237
|
-
},
|
|
1238
|
-
function
|
|
1239
|
+
}, Cn = 180 / Math.PI, s0 = Math.PI / 180;
|
|
1240
|
+
function rr(t, e) {
|
|
1239
1241
|
return (
|
|
1240
1242
|
/** @type {[number, number, number]} */
|
|
1241
1243
|
t.map((n) => {
|
|
1242
|
-
const a =
|
|
1243
|
-
return 400 *
|
|
1244
|
+
const a = E(e * Math.abs(n) * 0.01, er);
|
|
1245
|
+
return 400 * tt(a, n) / (a + 27.13);
|
|
1244
1246
|
})
|
|
1245
1247
|
);
|
|
1246
1248
|
}
|
|
1247
|
-
function
|
|
1248
|
-
const r = 100 / e * 27.13 **
|
|
1249
|
+
function _n(t, e) {
|
|
1250
|
+
const r = 100 / e * 27.13 ** a0;
|
|
1249
1251
|
return (
|
|
1250
1252
|
/** @type {[number, number, number]} */
|
|
1251
1253
|
t.map((n) => {
|
|
1252
1254
|
const a = Math.abs(n);
|
|
1253
|
-
return
|
|
1255
|
+
return tt(r * E(a / (400 - a), a0), n);
|
|
1254
1256
|
})
|
|
1255
1257
|
);
|
|
1256
1258
|
}
|
|
1257
|
-
function
|
|
1259
|
+
function Ln(t) {
|
|
1258
1260
|
let e = X(t);
|
|
1259
1261
|
e <= se.h[0] && (e += 360);
|
|
1260
|
-
const r =
|
|
1262
|
+
const r = q0(se.h, e) - 1, [n, a] = se.h.slice(r, r + 2), [s, i] = se.e.slice(r, r + 2), o = se.H[r], l = (e - n) / s;
|
|
1261
1263
|
return o + 100 * l / (l + (a - e) / i);
|
|
1262
1264
|
}
|
|
1263
|
-
function
|
|
1265
|
+
function Rn(t) {
|
|
1264
1266
|
let e = (t % 400 + 400) % 400;
|
|
1265
1267
|
const r = Math.floor(0.01 * e);
|
|
1266
1268
|
e = e % 100;
|
|
1267
1269
|
const [n, a] = se.h.slice(r, r + 2), [s, i] = se.e.slice(r, r + 2);
|
|
1268
1270
|
return X((e * (i * n - s * a) - 100 * n * i) / (e * (i - s) - 100 * i));
|
|
1269
1271
|
}
|
|
1270
|
-
function
|
|
1272
|
+
function nr(t, e, r, n, a) {
|
|
1271
1273
|
const s = {};
|
|
1272
1274
|
s.discounting = a, s.refWhite = t, s.surround = n;
|
|
1273
1275
|
const i = (
|
|
@@ -1275,24 +1277,24 @@ function ur(t, e, r, n, a) {
|
|
|
1275
1277
|
t.map((p) => p * 100)
|
|
1276
1278
|
);
|
|
1277
1279
|
s.la = e, s.yb = r;
|
|
1278
|
-
const o = i[1], l = x(i,
|
|
1279
|
-
let c =
|
|
1280
|
+
const o = i[1], l = x(i, tr);
|
|
1281
|
+
let c = wn[s.surround];
|
|
1280
1282
|
const f = c[0];
|
|
1281
1283
|
s.c = c[1], s.nc = c[2];
|
|
1282
1284
|
const h = (1 / (5 * s.la + 1)) ** 4;
|
|
1283
1285
|
s.fl = h * s.la + 0.1 * (1 - h) * (1 - h) * Math.cbrt(5 * s.la), s.flRoot = s.fl ** 0.25, s.n = s.yb / o, s.z = 1.48 + Math.sqrt(s.n), s.nbb = 0.725 * s.n ** -0.2, s.ncb = s.nbb;
|
|
1284
|
-
const
|
|
1286
|
+
const m = Math.max(Math.min(f * (1 - 1 / 3.6 * Math.exp((-s.la - 42) / 92)), 1), 0);
|
|
1285
1287
|
s.dRgb = /** @type {[number, number, number]} */
|
|
1286
|
-
l.map((p) =>
|
|
1288
|
+
l.map((p) => Be(1, o / p, m)), s.dRgbInv = /** @type {[number, number, number]} */
|
|
1287
1289
|
s.dRgb.map((p) => 1 / p);
|
|
1288
|
-
const
|
|
1290
|
+
const d = (
|
|
1289
1291
|
/** @type {[number, number, number]} */
|
|
1290
1292
|
l.map((p, w) => p * s.dRgb[w])
|
|
1291
|
-
), M =
|
|
1293
|
+
), M = rr(d, s.fl);
|
|
1292
1294
|
return s.aW = s.nbb * (2 * M[0] + M[1] + 0.05 * M[2]), s;
|
|
1293
1295
|
}
|
|
1294
|
-
const
|
|
1295
|
-
function
|
|
1296
|
+
const i0 = nr(bn, 64 / Math.PI * 0.2, 20, "average", !1);
|
|
1297
|
+
function St(t, e) {
|
|
1296
1298
|
if (!(t.J !== void 0 ^ t.Q !== void 0))
|
|
1297
1299
|
throw new Error("Conversion requires one and only one: 'J' or 'Q'");
|
|
1298
1300
|
if (!(t.C !== void 0 ^ t.M !== void 0 ^ t.s !== void 0))
|
|
@@ -1302,15 +1304,15 @@ function Bt(t, e) {
|
|
|
1302
1304
|
if (t.J === 0 || t.Q === 0)
|
|
1303
1305
|
return [0, 0, 0];
|
|
1304
1306
|
let r = 0;
|
|
1305
|
-
t.h !== void 0 ? r = X(t.h) *
|
|
1307
|
+
t.h !== void 0 ? r = X(t.h) * s0 : r = Rn(t.H) * s0;
|
|
1306
1308
|
const n = Math.cos(r), a = Math.sin(r);
|
|
1307
1309
|
let s = 0;
|
|
1308
|
-
t.J !== void 0 ? s =
|
|
1310
|
+
t.J !== void 0 ? s = E(t.J, 1 / 2) * 0.1 : t.Q !== void 0 && (s = 0.25 * e.c * t.Q / ((e.aW + 4) * e.flRoot));
|
|
1309
1311
|
let i = 0;
|
|
1310
1312
|
t.C !== void 0 ? i = t.C / s : t.M !== void 0 ? i = t.M / e.flRoot / s : t.s !== void 0 && (i = 4e-4 * t.s ** 2 * (e.aW + 4) / e.c);
|
|
1311
|
-
const o =
|
|
1313
|
+
const o = E(i * Math.pow(1.64 - Math.pow(0.29, e.n), -0.73), 10 / 9), l = 0.25 * (Math.cos(r + 2) + 3.8), c = e.aW * E(s, 2 / e.c / e.z), f = 5e4 / 13 * e.nc * e.ncb * l, u = c / e.nbb, h = 23 * (u + 0.305) * $t(o, 23 * f + o * (11 * n + 108 * a)), m = h * n, d = h * a, M = _n(
|
|
1312
1314
|
/** @type {Vector3} */
|
|
1313
|
-
x([u,
|
|
1315
|
+
x([u, m, d], yn).map((p) => p * 1 / 1403),
|
|
1314
1316
|
e.fl
|
|
1315
1317
|
);
|
|
1316
1318
|
return (
|
|
@@ -1318,22 +1320,22 @@ function Bt(t, e) {
|
|
|
1318
1320
|
x(
|
|
1319
1321
|
/** @type {Vector3} */
|
|
1320
1322
|
M.map((p, w) => p * e.dRgbInv[w]),
|
|
1321
|
-
|
|
1323
|
+
Mn
|
|
1322
1324
|
).map((p) => p / 100)
|
|
1323
1325
|
);
|
|
1324
1326
|
}
|
|
1325
|
-
function
|
|
1327
|
+
function ar(t, e) {
|
|
1326
1328
|
const r = (
|
|
1327
1329
|
/** @type {Vector3} */
|
|
1328
1330
|
t.map((y) => y * 100)
|
|
1329
|
-
), n =
|
|
1331
|
+
), n = rr(
|
|
1330
1332
|
/** @type {[number, number, number]} */
|
|
1331
|
-
x(r,
|
|
1333
|
+
x(r, tr).map((y, _) => y * e.dRgb[_]),
|
|
1332
1334
|
e.fl
|
|
1333
|
-
), a = n[0] + (-12 * n[1] + n[2]) / 11, s = (n[0] + n[1] - 2 * n[2]) / 9, i = (Math.atan2(s, a) %
|
|
1334
|
-
return { J: h, C:
|
|
1335
|
+
), a = n[0] + (-12 * n[1] + n[2]) / 11, s = (n[0] + n[1] - 2 * n[2]) / 9, i = (Math.atan2(s, a) % ht + ht) % ht, o = 0.25 * (Math.cos(i + 2) + 3.8), l = 5e4 / 13 * e.nc * e.ncb * $t(o * Math.sqrt(a ** 2 + s ** 2), n[0] + n[1] + 1.05 * n[2] + 0.305), c = E(l, 0.9) * Math.pow(1.64 - Math.pow(0.29, e.n), 0.73), f = e.nbb * (2 * n[0] + n[1] + 0.05 * n[2]), u = E(f / e.aW, 0.5 * e.c * e.z), h = 100 * E(u, 2), m = 4 / e.c * u * (e.aW + 4) * e.flRoot, d = c * u, M = d * e.flRoot, p = X(i * Cn), w = Ln(p), b = 50 * E(e.c * c / (e.aW + 4), 1 / 2);
|
|
1336
|
+
return { J: h, C: d, h: p, s: b, Q: m, M, H: w };
|
|
1335
1337
|
}
|
|
1336
|
-
var
|
|
1338
|
+
var vn = new g({
|
|
1337
1339
|
id: "cam16-jmh",
|
|
1338
1340
|
cssId: "--cam16-jmh",
|
|
1339
1341
|
name: "CAM16-JMh",
|
|
@@ -1352,33 +1354,33 @@ var kn = new g({
|
|
|
1352
1354
|
name: "Hue"
|
|
1353
1355
|
}
|
|
1354
1356
|
},
|
|
1355
|
-
base:
|
|
1357
|
+
base: A,
|
|
1356
1358
|
fromBase(t) {
|
|
1357
1359
|
this.ε === void 0 && (this.ε = Object.values(this.coords)[1].refRange[1] / 1e5);
|
|
1358
|
-
const e =
|
|
1360
|
+
const e = ar(t, i0), r = Math.abs(e.M) < this.ε;
|
|
1359
1361
|
return [e.J, r ? 0 : e.M, r ? null : e.h];
|
|
1360
1362
|
},
|
|
1361
1363
|
toBase(t) {
|
|
1362
|
-
return
|
|
1364
|
+
return St({ J: t[0], M: t[1], h: t[2] }, i0);
|
|
1363
1365
|
}
|
|
1364
1366
|
});
|
|
1365
|
-
const
|
|
1366
|
-
function
|
|
1367
|
-
return 116 * (t >
|
|
1367
|
+
const Sn = P.D65, xn = 216 / 24389, sr = 24389 / 27;
|
|
1368
|
+
function Bn(t) {
|
|
1369
|
+
return 116 * (t > xn ? Math.cbrt(t) : (sr * t + 16) / 116) - 16;
|
|
1368
1370
|
}
|
|
1369
|
-
function
|
|
1370
|
-
return t > 8 ? Math.pow((t + 16) / 116, 3) : t /
|
|
1371
|
+
function xt(t) {
|
|
1372
|
+
return t > 8 ? Math.pow((t + 16) / 116, 3) : t / sr;
|
|
1371
1373
|
}
|
|
1372
|
-
function
|
|
1374
|
+
function zn(t, e) {
|
|
1373
1375
|
let [r, n, a] = t, s = [], i = 0;
|
|
1374
1376
|
if (a === 0)
|
|
1375
1377
|
return [0, 0, 0];
|
|
1376
|
-
let o =
|
|
1378
|
+
let o = xt(a);
|
|
1377
1379
|
a > 0 ? i = 0.00379058511492914 * a ** 2 + 0.608983189401032 * a + 0.9155088574762233 : i = 9514440756550361e-21 * a ** 2 + 0.08693057439788597 * a - 21.928975842194614;
|
|
1378
1380
|
const l = 2e-12, c = 15;
|
|
1379
1381
|
let f = 0, u = 1 / 0;
|
|
1380
1382
|
for (; f <= c; ) {
|
|
1381
|
-
s =
|
|
1383
|
+
s = St({ J: i, C: n, h: r }, e);
|
|
1382
1384
|
const h = Math.abs(s[1] - o);
|
|
1383
1385
|
if (h < u) {
|
|
1384
1386
|
if (h <= l)
|
|
@@ -1387,19 +1389,19 @@ function $n(t, e) {
|
|
|
1387
1389
|
}
|
|
1388
1390
|
i = i - (s[1] - o) * i / (2 * s[1]), f += 1;
|
|
1389
1391
|
}
|
|
1390
|
-
return
|
|
1392
|
+
return St({ J: i, C: n, h: r }, e);
|
|
1391
1393
|
}
|
|
1392
|
-
function
|
|
1393
|
-
const r =
|
|
1394
|
+
function En(t, e) {
|
|
1395
|
+
const r = Bn(t[1]);
|
|
1394
1396
|
if (r === 0)
|
|
1395
1397
|
return [0, 0, 0];
|
|
1396
|
-
const n =
|
|
1398
|
+
const n = ar(t, It);
|
|
1397
1399
|
return [X(n.h), n.C, r];
|
|
1398
1400
|
}
|
|
1399
|
-
const
|
|
1400
|
-
|
|
1401
|
-
200 / Math.PI *
|
|
1402
|
-
|
|
1401
|
+
const It = nr(
|
|
1402
|
+
Sn,
|
|
1403
|
+
200 / Math.PI * xt(50),
|
|
1404
|
+
xt(50) * 100,
|
|
1403
1405
|
"average",
|
|
1404
1406
|
!1
|
|
1405
1407
|
);
|
|
@@ -1421,14 +1423,14 @@ var ze = new g({
|
|
|
1421
1423
|
name: "Tone"
|
|
1422
1424
|
}
|
|
1423
1425
|
},
|
|
1424
|
-
base:
|
|
1426
|
+
base: A,
|
|
1425
1427
|
fromBase(t) {
|
|
1426
1428
|
this.ε === void 0 && (this.ε = Object.values(this.coords)[1].refRange[1] / 1e5);
|
|
1427
|
-
let e =
|
|
1429
|
+
let e = En(t);
|
|
1428
1430
|
return e[1] < this.ε && (e[1] = 0, e[0] = null), e;
|
|
1429
1431
|
},
|
|
1430
1432
|
toBase(t) {
|
|
1431
|
-
return
|
|
1433
|
+
return zn(t, It);
|
|
1432
1434
|
},
|
|
1433
1435
|
formats: {
|
|
1434
1436
|
color: {
|
|
@@ -1437,32 +1439,32 @@ var ze = new g({
|
|
|
1437
1439
|
}
|
|
1438
1440
|
}
|
|
1439
1441
|
});
|
|
1440
|
-
const
|
|
1441
|
-
function
|
|
1442
|
+
const kn = Math.PI / 180, o0 = [1, 7e-3, 0.0228];
|
|
1443
|
+
function l0(t) {
|
|
1442
1444
|
t[1] < 0 && (t = ze.fromBase(ze.toBase(t)));
|
|
1443
|
-
const e = Math.log(Math.max(1 +
|
|
1445
|
+
const e = Math.log(Math.max(1 + o0[2] * t[1] * It.flRoot, 1)) / o0[2], r = t[0] * kn, n = e * Math.cos(r), a = e * Math.sin(r);
|
|
1444
1446
|
return [t[2], n, a];
|
|
1445
1447
|
}
|
|
1446
|
-
function
|
|
1448
|
+
function $n(t, e) {
|
|
1447
1449
|
[t, e] = C([t, e]);
|
|
1448
|
-
let [r, n, a] =
|
|
1450
|
+
let [r, n, a] = l0(ze.from(t)), [s, i, o] = l0(ze.from(e));
|
|
1449
1451
|
return Math.sqrt((r - s) ** 2 + (n - i) ** 2 + (a - o) ** 2);
|
|
1450
1452
|
}
|
|
1451
1453
|
var be = {
|
|
1452
|
-
deltaE76:
|
|
1453
|
-
deltaECMC:
|
|
1454
|
-
deltaE2000:
|
|
1455
|
-
deltaEJz:
|
|
1456
|
-
deltaEITP:
|
|
1457
|
-
deltaEOK:
|
|
1458
|
-
deltaEOK2:
|
|
1459
|
-
deltaEHCT:
|
|
1454
|
+
deltaE76: Qr,
|
|
1455
|
+
deltaECMC: Vr,
|
|
1456
|
+
deltaE2000: W0,
|
|
1457
|
+
deltaEJz: sn,
|
|
1458
|
+
deltaEITP: gn,
|
|
1459
|
+
deltaEOK: Lt,
|
|
1460
|
+
deltaEOK2: pn,
|
|
1461
|
+
deltaEHCT: $n
|
|
1460
1462
|
};
|
|
1461
|
-
function
|
|
1463
|
+
function An(t) {
|
|
1462
1464
|
const e = t ? Math.floor(Math.log10(Math.abs(t))) : 0;
|
|
1463
1465
|
return Math.max(parseFloat(`1e${e - 2}`), 1e-6);
|
|
1464
1466
|
}
|
|
1465
|
-
const
|
|
1467
|
+
const c0 = {
|
|
1466
1468
|
hct: {
|
|
1467
1469
|
method: "hct.c",
|
|
1468
1470
|
jnd: 2,
|
|
@@ -1477,7 +1479,7 @@ const h0 = {
|
|
|
1477
1479
|
}
|
|
1478
1480
|
};
|
|
1479
1481
|
function re(t, {
|
|
1480
|
-
method: e =
|
|
1482
|
+
method: e = N.gamut_mapping,
|
|
1481
1483
|
space: r = void 0,
|
|
1482
1484
|
deltaEMethod: n = "",
|
|
1483
1485
|
jnd: a = 2,
|
|
@@ -1490,11 +1492,11 @@ function re(t, {
|
|
|
1490
1492
|
);
|
|
1491
1493
|
let i;
|
|
1492
1494
|
if (e === "css")
|
|
1493
|
-
i =
|
|
1495
|
+
i = On(t, { space: r });
|
|
1494
1496
|
else {
|
|
1495
1497
|
if (e !== "clip" && !ie(t, r)) {
|
|
1496
|
-
Object.prototype.hasOwnProperty.call(
|
|
1497
|
-
let o =
|
|
1498
|
+
Object.prototype.hasOwnProperty.call(c0, e) && ({ method: e, jnd: a, deltaEMethod: n, blackWhiteClamp: s } = c0[e]);
|
|
1499
|
+
let o = W0;
|
|
1498
1500
|
if (n !== "") {
|
|
1499
1501
|
for (let c in be)
|
|
1500
1502
|
if ("deltae" + n.toLowerCase() === c.toLowerCase()) {
|
|
@@ -1516,7 +1518,7 @@ function re(t, {
|
|
|
1516
1518
|
h.coords.forEach((b, y) => {
|
|
1517
1519
|
L(b) && (h.coords[y] = 0);
|
|
1518
1520
|
});
|
|
1519
|
-
let
|
|
1521
|
+
let d = (c.range || c.refRange)[0], M = An(a), p = d, w = T(h, u);
|
|
1520
1522
|
for (; w - p > M; ) {
|
|
1521
1523
|
let b = pe(h);
|
|
1522
1524
|
b = re(b, { space: r, method: "clip" }), o(h, b) - a < M ? p = T(h, u) : w = T(h, u), F(h, u, (p + w) / 2);
|
|
@@ -1541,11 +1543,11 @@ function re(t, {
|
|
|
1541
1543
|
t;
|
|
1542
1544
|
}
|
|
1543
1545
|
re.returns = "color";
|
|
1544
|
-
const
|
|
1546
|
+
const u0 = {
|
|
1545
1547
|
WHITE: { space: Z, coords: [1, 0, 0], alpha: 1 },
|
|
1546
1548
|
BLACK: { space: Z, coords: [0, 0, 0], alpha: 1 }
|
|
1547
1549
|
};
|
|
1548
|
-
function
|
|
1550
|
+
function On(t, { space: e } = {}) {
|
|
1549
1551
|
t = C(t), e || (e = t.space), e = g.get(e);
|
|
1550
1552
|
const a = g.get("oklch");
|
|
1551
1553
|
if (e.isUnbounded)
|
|
@@ -1553,17 +1555,17 @@ function jn(t, { space: e } = {}) {
|
|
|
1553
1555
|
const s = v(t, a);
|
|
1554
1556
|
let i = s.coords[0];
|
|
1555
1557
|
if (i >= 1) {
|
|
1556
|
-
const
|
|
1557
|
-
return
|
|
1558
|
+
const d = v(u0.WHITE, e);
|
|
1559
|
+
return d.alpha = t.alpha, v(d, e);
|
|
1558
1560
|
}
|
|
1559
1561
|
if (i <= 0) {
|
|
1560
|
-
const
|
|
1561
|
-
return
|
|
1562
|
+
const d = v(u0.BLACK, e);
|
|
1563
|
+
return d.alpha = t.alpha, v(d, e);
|
|
1562
1564
|
}
|
|
1563
1565
|
if (ie(s, e, { epsilon: 0 }))
|
|
1564
1566
|
return v(s, e);
|
|
1565
|
-
function o(
|
|
1566
|
-
const M = v(
|
|
1567
|
+
function o(d) {
|
|
1568
|
+
const M = v(d, e), p = Object.values(
|
|
1567
1569
|
/** @type {ColorSpace} */
|
|
1568
1570
|
e.coords
|
|
1569
1571
|
);
|
|
@@ -1571,24 +1573,24 @@ function jn(t, { space: e } = {}) {
|
|
|
1571
1573
|
M.coords.map((w, b) => {
|
|
1572
1574
|
if ("range" in p[b]) {
|
|
1573
1575
|
const [y, _] = p[b].range;
|
|
1574
|
-
return
|
|
1576
|
+
return et(y, w, _);
|
|
1575
1577
|
}
|
|
1576
1578
|
return w;
|
|
1577
1579
|
}), M;
|
|
1578
1580
|
}
|
|
1579
|
-
let l = 0, c = s.coords[1], f = !0, u = pe(s), h = o(u),
|
|
1580
|
-
if (
|
|
1581
|
+
let l = 0, c = s.coords[1], f = !0, u = pe(s), h = o(u), m = Lt(h, u);
|
|
1582
|
+
if (m < 0.02)
|
|
1581
1583
|
return h;
|
|
1582
1584
|
for (; c - l > 1e-4; ) {
|
|
1583
|
-
const
|
|
1584
|
-
if (u.coords[1] =
|
|
1585
|
-
l =
|
|
1586
|
-
else if (h = o(u),
|
|
1587
|
-
if (0.02 -
|
|
1585
|
+
const d = (l + c) / 2;
|
|
1586
|
+
if (u.coords[1] = d, f && ie(u, e, { epsilon: 0 }))
|
|
1587
|
+
l = d;
|
|
1588
|
+
else if (h = o(u), m = Lt(h, u), m < 0.02) {
|
|
1589
|
+
if (0.02 - m < 1e-4)
|
|
1588
1590
|
break;
|
|
1589
|
-
f = !1, l =
|
|
1591
|
+
f = !1, l = d;
|
|
1590
1592
|
} else
|
|
1591
|
-
c =
|
|
1593
|
+
c = d;
|
|
1592
1594
|
}
|
|
1593
1595
|
return h;
|
|
1594
1596
|
}
|
|
@@ -1598,9 +1600,9 @@ function v(t, e, { inGamut: r } = {}) {
|
|
|
1598
1600
|
return r && (a = re(a, r === !0 ? void 0 : r)), a;
|
|
1599
1601
|
}
|
|
1600
1602
|
v.returns = "color";
|
|
1601
|
-
function
|
|
1603
|
+
function ve(t, e = {}) {
|
|
1602
1604
|
let {
|
|
1603
|
-
precision: r =
|
|
1605
|
+
precision: r = N.precision,
|
|
1604
1606
|
format: n,
|
|
1605
1607
|
inGamut: a = !0,
|
|
1606
1608
|
coords: s,
|
|
@@ -1620,10 +1622,10 @@ function Se(t, e = {}) {
|
|
|
1620
1622
|
`format ${f} can only be used to parse colors, not for serialization`
|
|
1621
1623
|
);
|
|
1622
1624
|
else {
|
|
1623
|
-
let
|
|
1624
|
-
if (
|
|
1625
|
+
let m = n.name || "color", d = n.serializeCoords(h, r, s);
|
|
1626
|
+
if (m === "color") {
|
|
1625
1627
|
let y = n.id || n.ids?.[0] || c.space.cssId || c.space.id;
|
|
1626
|
-
|
|
1628
|
+
d.unshift(y);
|
|
1627
1629
|
}
|
|
1628
1630
|
let M = c.alpha;
|
|
1629
1631
|
i !== void 0 && typeof i != "object" && (i = typeof i == "string" ? { type: i } : { include: i });
|
|
@@ -1631,19 +1633,19 @@ function Se(t, e = {}) {
|
|
|
1631
1633
|
if (o ??= n.commas, w) {
|
|
1632
1634
|
if (r !== null) {
|
|
1633
1635
|
let y;
|
|
1634
|
-
p === "<percentage>" && (y = "%", M *= 100), M =
|
|
1636
|
+
p === "<percentage>" && (y = "%", M *= 100), M = Et(M, { precision: r, unit: y });
|
|
1635
1637
|
}
|
|
1636
1638
|
b = `${o ? "," : " /"} ${M}`;
|
|
1637
1639
|
}
|
|
1638
|
-
l = `${
|
|
1640
|
+
l = `${m}(${d.join(o ? ", " : " ")}${b})`;
|
|
1639
1641
|
}
|
|
1640
1642
|
return l;
|
|
1641
1643
|
}
|
|
1642
|
-
const
|
|
1644
|
+
const Pn = [
|
|
1643
1645
|
[0.6369580483012914, 0.14461690358620832, 0.1688809751641721],
|
|
1644
1646
|
[0.2627002120112671, 0.6779980715188708, 0.05930171646986196],
|
|
1645
1647
|
[0, 0.028072693049087428, 1.060985057710791]
|
|
1646
|
-
],
|
|
1648
|
+
], In = [
|
|
1647
1649
|
[1.716651187971268, -0.355670783776392, -0.25336628137366],
|
|
1648
1650
|
[-0.666684351832489, 1.616481236634939, 0.0157685458139111],
|
|
1649
1651
|
[0.017639857445311, -0.042770613257809, 0.942103121235474]
|
|
@@ -1653,9 +1655,9 @@ var Ee = new O({
|
|
|
1653
1655
|
cssId: "--rec2020-linear",
|
|
1654
1656
|
name: "Linear REC.2020",
|
|
1655
1657
|
white: "D65",
|
|
1656
|
-
toXYZ_M:
|
|
1657
|
-
fromXYZ_M:
|
|
1658
|
-
}),
|
|
1658
|
+
toXYZ_M: Pn,
|
|
1659
|
+
fromXYZ_M: In
|
|
1660
|
+
}), ir = new O({
|
|
1659
1661
|
id: "rec2020",
|
|
1660
1662
|
name: "REC.2020",
|
|
1661
1663
|
base: Ee,
|
|
@@ -1675,39 +1677,39 @@ var Ee = new O({
|
|
|
1675
1677
|
});
|
|
1676
1678
|
}
|
|
1677
1679
|
});
|
|
1678
|
-
const
|
|
1680
|
+
const Hn = [
|
|
1679
1681
|
[0.4865709486482162, 0.26566769316909306, 0.1982172852343625],
|
|
1680
1682
|
[0.2289745640697488, 0.6917385218365064, 0.079286914093745],
|
|
1681
1683
|
[0, 0.04511338185890264, 1.043944368900976]
|
|
1682
|
-
],
|
|
1684
|
+
], jn = [
|
|
1683
1685
|
[2.493496911941425, -0.9313836179191239, -0.40271078445071684],
|
|
1684
1686
|
[-0.8294889695615747, 1.7626640603183463, 0.023624685841943577],
|
|
1685
1687
|
[0.03584583024378447, -0.07617238926804182, 0.9568845240076872]
|
|
1686
1688
|
];
|
|
1687
|
-
var
|
|
1689
|
+
var or = new O({
|
|
1688
1690
|
id: "p3-linear",
|
|
1689
1691
|
cssId: "display-p3-linear",
|
|
1690
1692
|
name: "Linear P3",
|
|
1691
1693
|
white: "D65",
|
|
1692
|
-
toXYZ_M:
|
|
1693
|
-
fromXYZ_M:
|
|
1694
|
+
toXYZ_M: Hn,
|
|
1695
|
+
fromXYZ_M: jn
|
|
1694
1696
|
});
|
|
1695
|
-
const
|
|
1697
|
+
const Dn = [
|
|
1696
1698
|
[0.41239079926595934, 0.357584339383878, 0.1804807884018343],
|
|
1697
1699
|
[0.21263900587151027, 0.715168678767756, 0.07219231536073371],
|
|
1698
1700
|
[0.01933081871559182, 0.11919477979462598, 0.9505321522496607]
|
|
1699
|
-
],
|
|
1701
|
+
], k = [
|
|
1700
1702
|
[3.2409699419045226, -1.537383177570094, -0.4986107602930034],
|
|
1701
1703
|
[-0.9692436362808796, 1.8759675015077202, 0.04155505740717559],
|
|
1702
1704
|
[0.05563007969699366, -0.20397695888897652, 1.0569715142428786]
|
|
1703
1705
|
];
|
|
1704
|
-
var
|
|
1706
|
+
var lr = new O({
|
|
1705
1707
|
id: "srgb-linear",
|
|
1706
1708
|
name: "Linear sRGB",
|
|
1707
1709
|
white: "D65",
|
|
1708
|
-
toXYZ_M:
|
|
1709
|
-
fromXYZ_M:
|
|
1710
|
-
}),
|
|
1710
|
+
toXYZ_M: Dn,
|
|
1711
|
+
fromXYZ_M: k
|
|
1712
|
+
}), f0 = {
|
|
1711
1713
|
aliceblue: [240 / 255, 248 / 255, 1],
|
|
1712
1714
|
antiquewhite: [250 / 255, 235 / 255, 215 / 255],
|
|
1713
1715
|
aqua: [0, 1, 1],
|
|
@@ -1857,11 +1859,11 @@ var gr = new O({
|
|
|
1857
1859
|
yellow: [1, 1, 0],
|
|
1858
1860
|
yellowgreen: [154 / 255, 205 / 255, 50 / 255]
|
|
1859
1861
|
};
|
|
1860
|
-
let
|
|
1862
|
+
let h0 = Array(3).fill("<percentage> | <number>[0, 255]"), m0 = Array(3).fill("<number>[0, 255]");
|
|
1861
1863
|
var oe = new O({
|
|
1862
1864
|
id: "srgb",
|
|
1863
1865
|
name: "sRGB",
|
|
1864
|
-
base:
|
|
1866
|
+
base: lr,
|
|
1865
1867
|
fromBase: (t) => t.map((e) => {
|
|
1866
1868
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
1867
1869
|
return n > 31308e-7 ? r * (1.055 * n ** (1 / 2.4) - 0.055) : 12.92 * e;
|
|
@@ -1872,26 +1874,26 @@ var oe = new O({
|
|
|
1872
1874
|
}),
|
|
1873
1875
|
formats: {
|
|
1874
1876
|
rgb: {
|
|
1875
|
-
coords:
|
|
1877
|
+
coords: h0
|
|
1876
1878
|
},
|
|
1877
1879
|
rgb_number: {
|
|
1878
1880
|
name: "rgb",
|
|
1879
1881
|
commas: !0,
|
|
1880
|
-
coords:
|
|
1882
|
+
coords: m0,
|
|
1881
1883
|
alpha: !1
|
|
1882
1884
|
},
|
|
1883
1885
|
color: {
|
|
1884
1886
|
/* use defaults */
|
|
1885
1887
|
},
|
|
1886
1888
|
rgba: {
|
|
1887
|
-
coords:
|
|
1889
|
+
coords: h0,
|
|
1888
1890
|
commas: !0,
|
|
1889
1891
|
alpha: !0
|
|
1890
1892
|
},
|
|
1891
1893
|
rgba_number: {
|
|
1892
1894
|
name: "rgba",
|
|
1893
1895
|
commas: !0,
|
|
1894
|
-
coords:
|
|
1896
|
+
coords: m0
|
|
1895
1897
|
},
|
|
1896
1898
|
hex: {
|
|
1897
1899
|
type: "custom",
|
|
@@ -1931,41 +1933,41 @@ var oe = new O({
|
|
|
1931
1933
|
parse(t) {
|
|
1932
1934
|
t = t.toLowerCase();
|
|
1933
1935
|
let e = { spaceId: "srgb", coords: null, alpha: 1 };
|
|
1934
|
-
if (t === "transparent" ? (e.coords =
|
|
1936
|
+
if (t === "transparent" ? (e.coords = f0.black, e.alpha = 0) : e.coords = f0[t], e.coords)
|
|
1935
1937
|
return e;
|
|
1936
1938
|
}
|
|
1937
1939
|
}
|
|
1938
1940
|
}
|
|
1939
|
-
}),
|
|
1941
|
+
}), cr = new O({
|
|
1940
1942
|
id: "p3",
|
|
1941
1943
|
cssId: "display-p3",
|
|
1942
1944
|
name: "P3",
|
|
1943
|
-
base:
|
|
1945
|
+
base: or,
|
|
1944
1946
|
// Gamma encoding/decoding is the same as sRGB
|
|
1945
1947
|
fromBase: oe.fromBase,
|
|
1946
1948
|
toBase: oe.toBase
|
|
1947
1949
|
});
|
|
1948
|
-
|
|
1949
|
-
let
|
|
1950
|
+
N.display_space = oe;
|
|
1951
|
+
let Tn;
|
|
1950
1952
|
if (typeof CSS < "u" && CSS.supports)
|
|
1951
|
-
for (let t of [
|
|
1952
|
-
let e = t.getMinCoords(), n =
|
|
1953
|
+
for (let t of [Y, ir, cr]) {
|
|
1954
|
+
let e = t.getMinCoords(), n = ve({ space: t, coords: e, alpha: 1 });
|
|
1953
1955
|
if (CSS.supports("color", n)) {
|
|
1954
|
-
|
|
1956
|
+
N.display_space = t;
|
|
1955
1957
|
break;
|
|
1956
1958
|
}
|
|
1957
1959
|
}
|
|
1958
|
-
function
|
|
1960
|
+
function Yn(t, { space: e = N.display_space, ...r } = {}) {
|
|
1959
1961
|
t = C(t);
|
|
1960
1962
|
let n = (
|
|
1961
1963
|
/** @type {Display} */
|
|
1962
|
-
|
|
1964
|
+
ve(t, r)
|
|
1963
1965
|
);
|
|
1964
1966
|
if (typeof CSS > "u" || CSS.supports(
|
|
1965
1967
|
"color",
|
|
1966
1968
|
/** @type {string} */
|
|
1967
1969
|
n
|
|
1968
|
-
) || !
|
|
1970
|
+
) || !N.display_space)
|
|
1969
1971
|
n = /** @type {Display} */
|
|
1970
1972
|
new String(n), n.color = /** @type {PlainColorObject} */
|
|
1971
1973
|
t;
|
|
@@ -1974,11 +1976,11 @@ function Gn(t, { space: e = Y.display_space, ...r } = {}) {
|
|
|
1974
1976
|
/** @type {PlainColorObject} */
|
|
1975
1977
|
t
|
|
1976
1978
|
);
|
|
1977
|
-
if ((t.coords.some(L) || L(t.alpha)) && !(
|
|
1979
|
+
if ((t.coords.some(L) || L(t.alpha)) && !(Tn ??= CSS.supports("color", "hsl(none 50% 50%)")) && (a = pe(
|
|
1978
1980
|
/** @type {PlainColorObject} */
|
|
1979
1981
|
t
|
|
1980
1982
|
), a.coords = /** @type {[number, number, number]} */
|
|
1981
|
-
a.coords.map(
|
|
1983
|
+
a.coords.map(z), a.alpha = z(a.alpha), n = ve(a, r), CSS.supports(
|
|
1982
1984
|
"color",
|
|
1983
1985
|
/** @type {string} */
|
|
1984
1986
|
n
|
|
@@ -1986,11 +1988,11 @@ function Gn(t, { space: e = Y.display_space, ...r } = {}) {
|
|
|
1986
1988
|
return n = /** @type {Display} */
|
|
1987
1989
|
new String(n), n.color = a, n;
|
|
1988
1990
|
a = v(a, e), n = /** @type {Display} */
|
|
1989
|
-
new String(
|
|
1991
|
+
new String(ve(a, r)), n.color = a;
|
|
1990
1992
|
}
|
|
1991
1993
|
return n;
|
|
1992
1994
|
}
|
|
1993
|
-
function
|
|
1995
|
+
function Nn(t, e, { space: r, hue: n = "shorter" } = {}) {
|
|
1994
1996
|
t = C(t), r ||= t.space, r = g.get(r);
|
|
1995
1997
|
let a = Object.values(r.coords);
|
|
1996
1998
|
[t, e] = [t, e].map((c) => v(c, r));
|
|
@@ -1998,85 +2000,85 @@ function Zn(t, e, { space: r, hue: n = "shorter" } = {}) {
|
|
|
1998
2000
|
/** @type {[number, number, number]} */
|
|
1999
2001
|
s.map((c, f) => {
|
|
2000
2002
|
let u = a[f], h = i[f];
|
|
2001
|
-
return u.type === "angle" && ([c, h] =
|
|
2003
|
+
return u.type === "angle" && ([c, h] = J0(n, [c, h])), d0(c, h);
|
|
2002
2004
|
})
|
|
2003
|
-
), l =
|
|
2005
|
+
), l = d0(t.alpha, e.alpha);
|
|
2004
2006
|
return { space: (
|
|
2005
2007
|
/** @type {ColorSpace} */
|
|
2006
2008
|
r
|
|
2007
2009
|
), coords: o, alpha: l };
|
|
2008
2010
|
}
|
|
2009
|
-
function
|
|
2011
|
+
function d0(t, e) {
|
|
2010
2012
|
return L(t) || L(e) ? t === e ? null : 0 : t - e;
|
|
2011
2013
|
}
|
|
2012
|
-
function
|
|
2014
|
+
function qn(t, e) {
|
|
2013
2015
|
return t = C(t), e = C(e), t.space === e.space && t.alpha === e.alpha && t.coords.every((r, n) => r === e.coords[n]);
|
|
2014
2016
|
}
|
|
2015
2017
|
function ne(t) {
|
|
2016
|
-
return T(t, [
|
|
2018
|
+
return T(t, [A, "y"]);
|
|
2017
2019
|
}
|
|
2018
|
-
function
|
|
2019
|
-
F(t, [
|
|
2020
|
+
function ur(t, e) {
|
|
2021
|
+
F(t, [A, "y"], e);
|
|
2020
2022
|
}
|
|
2021
|
-
function
|
|
2023
|
+
function Xn(t) {
|
|
2022
2024
|
Object.defineProperty(t.prototype, "luminance", {
|
|
2023
2025
|
get() {
|
|
2024
2026
|
return ne(this);
|
|
2025
2027
|
},
|
|
2026
2028
|
set(e) {
|
|
2027
|
-
|
|
2029
|
+
ur(this, e);
|
|
2028
2030
|
}
|
|
2029
2031
|
});
|
|
2030
2032
|
}
|
|
2031
|
-
var
|
|
2033
|
+
var Gn = /* @__PURE__ */ Object.freeze({
|
|
2032
2034
|
__proto__: null,
|
|
2033
2035
|
getLuminance: ne,
|
|
2034
|
-
register:
|
|
2035
|
-
setLuminance:
|
|
2036
|
+
register: Xn,
|
|
2037
|
+
setLuminance: ur
|
|
2036
2038
|
});
|
|
2037
|
-
function
|
|
2039
|
+
function Zn(t, e) {
|
|
2038
2040
|
t = C(t), e = C(e);
|
|
2039
2041
|
let r = Math.max(ne(t), 0), n = Math.max(ne(e), 0);
|
|
2040
2042
|
return n > r && ([r, n] = [n, r]), (r + 0.05) / (n + 0.05);
|
|
2041
2043
|
}
|
|
2042
|
-
const
|
|
2043
|
-
function
|
|
2044
|
-
return t >=
|
|
2044
|
+
const Jn = 0.56, Wn = 0.57, Fn = 0.62, Qn = 0.65, g0 = 0.022, Un = 1.414, Vn = 0.1, Kn = 5e-4, ea = 1.14, p0 = 0.027, ta = 1.14;
|
|
2045
|
+
function b0(t) {
|
|
2046
|
+
return t >= g0 ? t : t + (g0 - t) ** Un;
|
|
2045
2047
|
}
|
|
2046
2048
|
function fe(t) {
|
|
2047
2049
|
let e = t < 0 ? -1 : 1, r = Math.abs(t);
|
|
2048
2050
|
return e * Math.pow(r, 2.4);
|
|
2049
2051
|
}
|
|
2050
|
-
function
|
|
2052
|
+
function ra(t, e) {
|
|
2051
2053
|
e = C(e), t = C(t);
|
|
2052
2054
|
let r, n, a, s, i, o;
|
|
2053
|
-
e = v(e, "srgb"), [s, i, o] = e.coords.map((
|
|
2055
|
+
e = v(e, "srgb"), [s, i, o] = e.coords.map((m) => L(m) ? 0 : m);
|
|
2054
2056
|
let l = fe(s) * 0.2126729 + fe(i) * 0.7151522 + fe(o) * 0.072175;
|
|
2055
|
-
t = v(t, "srgb"), [s, i, o] = t.coords.map((
|
|
2056
|
-
let c = fe(s) * 0.2126729 + fe(i) * 0.7151522 + fe(o) * 0.072175, f =
|
|
2057
|
-
return Math.abs(u - f) <
|
|
2057
|
+
t = v(t, "srgb"), [s, i, o] = t.coords.map((m) => L(m) ? 0 : m);
|
|
2058
|
+
let c = fe(s) * 0.2126729 + fe(i) * 0.7151522 + fe(o) * 0.072175, f = b0(l), u = b0(c), h = u > f;
|
|
2059
|
+
return Math.abs(u - f) < Kn ? n = 0 : h ? (r = u ** Jn - f ** Wn, n = r * ea) : (r = u ** Qn - f ** Fn, n = r * ta), Math.abs(n) < Vn ? a = 0 : n > 0 ? a = n - p0 : a = n + p0, a * 100;
|
|
2058
2060
|
}
|
|
2059
|
-
function
|
|
2061
|
+
function na(t, e) {
|
|
2060
2062
|
t = C(t), e = C(e);
|
|
2061
2063
|
let r = Math.max(ne(t), 0), n = Math.max(ne(e), 0);
|
|
2062
2064
|
n > r && ([r, n] = [n, r]);
|
|
2063
2065
|
let a = r + n;
|
|
2064
2066
|
return a === 0 ? 0 : (r - n) / a;
|
|
2065
2067
|
}
|
|
2066
|
-
const
|
|
2067
|
-
function
|
|
2068
|
+
const aa = 5e4;
|
|
2069
|
+
function sa(t, e) {
|
|
2068
2070
|
t = C(t), e = C(e);
|
|
2069
2071
|
let r = Math.max(ne(t), 0), n = Math.max(ne(e), 0);
|
|
2070
|
-
return n > r && ([r, n] = [n, r]), n === 0 ?
|
|
2072
|
+
return n > r && ([r, n] = [n, r]), n === 0 ? aa : (r - n) / n;
|
|
2071
2073
|
}
|
|
2072
|
-
function
|
|
2074
|
+
function ia(t, e) {
|
|
2073
2075
|
t = C(t), e = C(e);
|
|
2074
|
-
let r = T(t, [
|
|
2076
|
+
let r = T(t, [Y, "l"]), n = T(e, [Y, "l"]);
|
|
2075
2077
|
return Math.abs(r - n);
|
|
2076
2078
|
}
|
|
2077
|
-
const
|
|
2079
|
+
const oa = 216 / 24389, M0 = 24 / 116, Te = 24389 / 27;
|
|
2078
2080
|
let mt = P.D65;
|
|
2079
|
-
var
|
|
2081
|
+
var Bt = new g({
|
|
2080
2082
|
id: "lab-d65",
|
|
2081
2083
|
name: "Lab D65",
|
|
2082
2084
|
coords: {
|
|
@@ -2094,11 +2096,11 @@ var zt = new g({
|
|
|
2094
2096
|
// Assuming XYZ is relative to D65, convert to CIE Lab
|
|
2095
2097
|
// from CIE standard, which now defines these as a rational fraction
|
|
2096
2098
|
white: mt,
|
|
2097
|
-
base:
|
|
2099
|
+
base: A,
|
|
2098
2100
|
// Convert D65-adapted XYZ to Lab
|
|
2099
2101
|
// CIE 15.3:2004 section 8.2.1.1
|
|
2100
2102
|
fromBase(t) {
|
|
2101
|
-
let r = t.map((n, a) => n / mt[a]).map((n) => n >
|
|
2103
|
+
let r = t.map((n, a) => n / mt[a]).map((n) => n > oa ? Math.cbrt(n) : (Te * n + 16) / 116);
|
|
2102
2104
|
return [
|
|
2103
2105
|
116 * r[1] - 16,
|
|
2104
2106
|
// L
|
|
@@ -2114,9 +2116,9 @@ var zt = new g({
|
|
|
2114
2116
|
toBase(t) {
|
|
2115
2117
|
let e = [];
|
|
2116
2118
|
return e[1] = (t[0] + 16) / 116, e[0] = t[1] / 500 + e[1], e[2] = e[1] - t[2] / 200, [
|
|
2117
|
-
e[0] >
|
|
2118
|
-
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] /
|
|
2119
|
-
e[2] >
|
|
2119
|
+
e[0] > M0 ? Math.pow(e[0], 3) : (116 * e[0] - 16) / Te,
|
|
2120
|
+
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] / Te,
|
|
2121
|
+
e[2] > M0 ? Math.pow(e[2], 3) : (116 * e[2] - 16) / Te
|
|
2120
2122
|
].map((n, a) => n * mt[a]);
|
|
2121
2123
|
},
|
|
2122
2124
|
formats: {
|
|
@@ -2129,140 +2131,140 @@ var zt = new g({
|
|
|
2129
2131
|
}
|
|
2130
2132
|
}
|
|
2131
2133
|
});
|
|
2132
|
-
const
|
|
2133
|
-
function
|
|
2134
|
+
const dt = Math.pow(5, 0.5) * 0.5 + 0.5;
|
|
2135
|
+
function la(t, e) {
|
|
2134
2136
|
t = C(t), e = C(e);
|
|
2135
|
-
let r = T(t, [
|
|
2137
|
+
let r = T(t, [Bt, "l"]), n = T(e, [Bt, "l"]), a = Math.abs(Math.pow(r, dt) - Math.pow(n, dt)), s = Math.pow(a, 1 / dt) * Math.SQRT2 - 40;
|
|
2136
2138
|
return s < 7.5 ? 0 : s;
|
|
2137
2139
|
}
|
|
2138
|
-
var
|
|
2140
|
+
var Xe = /* @__PURE__ */ Object.freeze({
|
|
2139
2141
|
__proto__: null,
|
|
2140
|
-
contrastAPCA:
|
|
2141
|
-
contrastDeltaPhi:
|
|
2142
|
-
contrastLstar:
|
|
2143
|
-
contrastMichelson:
|
|
2144
|
-
contrastWCAG21:
|
|
2145
|
-
contrastWeber:
|
|
2142
|
+
contrastAPCA: ra,
|
|
2143
|
+
contrastDeltaPhi: la,
|
|
2144
|
+
contrastLstar: ia,
|
|
2145
|
+
contrastMichelson: na,
|
|
2146
|
+
contrastWCAG21: Zn,
|
|
2147
|
+
contrastWeber: sa
|
|
2146
2148
|
});
|
|
2147
|
-
function
|
|
2149
|
+
function ca(t, e, r) {
|
|
2148
2150
|
ye(r) && (r = { algorithm: r });
|
|
2149
2151
|
let { algorithm: n, ...a } = r || {};
|
|
2150
2152
|
if (!n) {
|
|
2151
|
-
let s = Object.keys(
|
|
2153
|
+
let s = Object.keys(Xe).map((i) => i.replace(/^contrast/, "")).join(", ");
|
|
2152
2154
|
throw new TypeError(
|
|
2153
2155
|
`contrast() function needs a contrast algorithm. Please specify one of: ${s}`
|
|
2154
2156
|
);
|
|
2155
2157
|
}
|
|
2156
2158
|
t = C(t), e = C(e);
|
|
2157
|
-
for (let s in
|
|
2159
|
+
for (let s in Xe)
|
|
2158
2160
|
if ("contrast" + n.toLowerCase() === s.toLowerCase())
|
|
2159
|
-
return
|
|
2161
|
+
return Xe[s](t, e, a);
|
|
2160
2162
|
throw new TypeError(`Unknown contrast algorithm: ${n}`);
|
|
2161
2163
|
}
|
|
2162
|
-
function
|
|
2163
|
-
let [e, r, n] =
|
|
2164
|
+
function rt(t) {
|
|
2165
|
+
let [e, r, n] = ke(t, A), a = e + 15 * r + 3 * n;
|
|
2164
2166
|
return [4 * e / a, 9 * r / a];
|
|
2165
2167
|
}
|
|
2166
|
-
function
|
|
2167
|
-
let [e, r, n] =
|
|
2168
|
+
function fr(t) {
|
|
2169
|
+
let [e, r, n] = ke(t, A), a = e + r + n;
|
|
2168
2170
|
return [e / a, r / a];
|
|
2169
2171
|
}
|
|
2170
|
-
function
|
|
2172
|
+
function ua(t) {
|
|
2171
2173
|
Object.defineProperty(t.prototype, "uv", {
|
|
2172
2174
|
get() {
|
|
2173
|
-
return
|
|
2175
|
+
return rt(this);
|
|
2174
2176
|
}
|
|
2175
2177
|
}), Object.defineProperty(t.prototype, "xy", {
|
|
2176
2178
|
get() {
|
|
2177
|
-
return
|
|
2179
|
+
return fr(this);
|
|
2178
2180
|
}
|
|
2179
2181
|
});
|
|
2180
2182
|
}
|
|
2181
|
-
var
|
|
2183
|
+
var fa = /* @__PURE__ */ Object.freeze({
|
|
2182
2184
|
__proto__: null,
|
|
2183
|
-
register:
|
|
2184
|
-
uv:
|
|
2185
|
-
xy:
|
|
2185
|
+
register: ua,
|
|
2186
|
+
uv: rt,
|
|
2187
|
+
xy: fr
|
|
2186
2188
|
});
|
|
2187
2189
|
function Le(t, e, r = {}) {
|
|
2188
2190
|
ye(r) && (r = { method: r });
|
|
2189
|
-
let { method: n =
|
|
2191
|
+
let { method: n = N.deltaE, ...a } = r;
|
|
2190
2192
|
for (let s in be)
|
|
2191
2193
|
if ("deltae" + n.toLowerCase() === s.toLowerCase())
|
|
2192
2194
|
return be[s](t, e, a);
|
|
2193
2195
|
throw new TypeError(`Unknown deltaE method: ${n}`);
|
|
2194
2196
|
}
|
|
2195
|
-
function
|
|
2197
|
+
function hr(t, e = 0.25) {
|
|
2196
2198
|
let n = [g.get("oklch", "lch"), "l"];
|
|
2197
2199
|
return F(t, n, (a) => a * (1 + e));
|
|
2198
2200
|
}
|
|
2199
|
-
function
|
|
2201
|
+
function mr(t, e = 0.25) {
|
|
2200
2202
|
let n = [g.get("oklch", "lch"), "l"];
|
|
2201
2203
|
return F(t, n, (a) => a * (1 - e));
|
|
2202
2204
|
}
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
var
|
|
2205
|
+
hr.returns = "color";
|
|
2206
|
+
mr.returns = "color";
|
|
2207
|
+
var ha = /* @__PURE__ */ Object.freeze({
|
|
2206
2208
|
__proto__: null,
|
|
2207
|
-
darken:
|
|
2208
|
-
lighten:
|
|
2209
|
+
darken: mr,
|
|
2210
|
+
lighten: hr
|
|
2209
2211
|
});
|
|
2210
|
-
function
|
|
2211
|
-
return [t, e] = [C(t), C(e)], K(r) === "object" && ([r, n] = [0.5, r]),
|
|
2212
|
+
function dr(t, e, r, n = {}) {
|
|
2213
|
+
return [t, e] = [C(t), C(e)], K(r) === "object" && ([r, n] = [0.5, r]), $e(t, e, n)(r ?? 0.5);
|
|
2212
2214
|
}
|
|
2213
|
-
function
|
|
2215
|
+
function gr(t, e, r = {}) {
|
|
2214
2216
|
let n;
|
|
2215
|
-
|
|
2217
|
+
Ht(t) && ([n, r] = [t, e], [t, e] = n.rangeArgs.colors);
|
|
2216
2218
|
let { maxDeltaE: a, deltaEMethod: s, steps: i = 2, maxSteps: o = 1e3, ...l } = r;
|
|
2217
|
-
n || ([t, e] = [C(t), C(e)], n =
|
|
2219
|
+
n || ([t, e] = [C(t), C(e)], n = $e(t, e, l));
|
|
2218
2220
|
let c = Le(t, e), f = a > 0 ? Math.max(i, Math.ceil(c / a) + 1) : i, u = [];
|
|
2219
2221
|
if (o !== void 0 && (f = Math.min(f, o)), f === 1)
|
|
2220
2222
|
u = [{ p: 0.5, color: n(0.5) }];
|
|
2221
2223
|
else {
|
|
2222
2224
|
let h = 1 / (f - 1);
|
|
2223
|
-
u = Array.from({ length: f }, (
|
|
2224
|
-
let M =
|
|
2225
|
+
u = Array.from({ length: f }, (m, d) => {
|
|
2226
|
+
let M = d * h;
|
|
2225
2227
|
return { p: M, color: n(M) };
|
|
2226
2228
|
});
|
|
2227
2229
|
}
|
|
2228
2230
|
if (a > 0) {
|
|
2229
|
-
let h = u.reduce((
|
|
2231
|
+
let h = u.reduce((m, d, M) => {
|
|
2230
2232
|
if (M === 0)
|
|
2231
2233
|
return 0;
|
|
2232
|
-
let p = Le(
|
|
2233
|
-
return Math.max(
|
|
2234
|
+
let p = Le(d.color, u[M - 1].color, s);
|
|
2235
|
+
return Math.max(m, p);
|
|
2234
2236
|
}, 0);
|
|
2235
2237
|
for (; h > a; ) {
|
|
2236
2238
|
h = 0;
|
|
2237
|
-
for (let
|
|
2238
|
-
let
|
|
2239
|
-
h = Math.max(h, Le(w,
|
|
2239
|
+
for (let m = 1; m < u.length && u.length < o; m++) {
|
|
2240
|
+
let d = u[m - 1], M = u[m], p = (M.p + d.p) / 2, w = n(p);
|
|
2241
|
+
h = Math.max(h, Le(w, d.color), Le(w, M.color)), u.splice(m, 0, { p, color: n(p) }), m++;
|
|
2240
2242
|
}
|
|
2241
2243
|
}
|
|
2242
2244
|
}
|
|
2243
2245
|
return u = u.map((h) => h.color), u;
|
|
2244
2246
|
}
|
|
2245
|
-
function
|
|
2246
|
-
if (
|
|
2247
|
+
function $e(t, e, r = {}) {
|
|
2248
|
+
if (Ht(t)) {
|
|
2247
2249
|
let [l, c] = [t, e];
|
|
2248
|
-
return
|
|
2250
|
+
return $e(...l.rangeArgs.colors, { ...l.rangeArgs.options, ...c });
|
|
2249
2251
|
}
|
|
2250
2252
|
let { space: n, outputSpace: a, progression: s, premultiplied: i } = r;
|
|
2251
2253
|
t = C(t), e = C(e), t = pe(t), e = pe(e);
|
|
2252
2254
|
let o = { colors: [t, e], options: r };
|
|
2253
|
-
if (n ? n = g.get(n) : n = g.registry[
|
|
2255
|
+
if (n ? n = g.get(n) : n = g.registry[N.interpolationSpace] || t.space, a = a ? g.get(a) : n, t = v(t, n), e = v(e, n), t = re(t), e = re(e), n.coords.h && n.coords.h.type === "angle") {
|
|
2254
2256
|
let l = r.hue = r.hue || "shorter", c = [n, "h"], [f, u] = [T(t, c), T(e, c)];
|
|
2255
|
-
L(f) && !L(u) ? f = u : L(u) && !L(f) && (u = f), [f, u] =
|
|
2257
|
+
L(f) && !L(u) ? f = u : L(u) && !L(f) && (u = f), [f, u] = J0(l, [f, u]), F(t, c, f), F(e, c, u);
|
|
2256
2258
|
}
|
|
2257
2259
|
return i && (t.coords = /** @type {[number, number, number]} */
|
|
2258
2260
|
t.coords.map((l) => l * t.alpha), e.coords = /** @type {[number, number, number]} */
|
|
2259
2261
|
e.coords.map((l) => l * e.alpha)), Object.assign(
|
|
2260
2262
|
(l) => {
|
|
2261
2263
|
l = s ? s(l) : l;
|
|
2262
|
-
let c = t.coords.map((h,
|
|
2263
|
-
let
|
|
2264
|
-
return
|
|
2265
|
-
}), f =
|
|
2264
|
+
let c = t.coords.map((h, m) => {
|
|
2265
|
+
let d = e.coords[m];
|
|
2266
|
+
return Be(h, d, l);
|
|
2267
|
+
}), f = Be(t.alpha, e.alpha, l), u = { space: n, coords: c, alpha: f };
|
|
2266
2268
|
return i && (u.coords = u.coords.map((h) => h / f)), a !== n && (u = v(u, a)), u;
|
|
2267
2269
|
},
|
|
2268
2270
|
{
|
|
@@ -2270,21 +2272,21 @@ function Oe(t, e, r = {}) {
|
|
|
2270
2272
|
}
|
|
2271
2273
|
);
|
|
2272
2274
|
}
|
|
2273
|
-
function
|
|
2275
|
+
function Ht(t) {
|
|
2274
2276
|
return K(t) === "function" && !!t.rangeArgs;
|
|
2275
2277
|
}
|
|
2276
|
-
|
|
2277
|
-
function
|
|
2278
|
-
t.defineFunction("mix",
|
|
2278
|
+
N.interpolationSpace = "lab";
|
|
2279
|
+
function ma(t) {
|
|
2280
|
+
t.defineFunction("mix", dr, { returns: "color" }), t.defineFunction("range", $e, { returns: "function<color>" }), t.defineFunction("steps", gr, { returns: "array<color>" });
|
|
2279
2281
|
}
|
|
2280
|
-
var
|
|
2282
|
+
var da = /* @__PURE__ */ Object.freeze({
|
|
2281
2283
|
__proto__: null,
|
|
2282
|
-
isRange:
|
|
2283
|
-
mix:
|
|
2284
|
-
range:
|
|
2285
|
-
register:
|
|
2286
|
-
steps:
|
|
2287
|
-
}),
|
|
2284
|
+
isRange: Ht,
|
|
2285
|
+
mix: dr,
|
|
2286
|
+
range: $e,
|
|
2287
|
+
register: ma,
|
|
2288
|
+
steps: gr
|
|
2289
|
+
}), ga = new g({
|
|
2288
2290
|
id: "hsl",
|
|
2289
2291
|
name: "HSL",
|
|
2290
2292
|
coords: {
|
|
@@ -2341,7 +2343,7 @@ var Ma = /* @__PURE__ */ Object.freeze({
|
|
|
2341
2343
|
alpha: !0
|
|
2342
2344
|
}
|
|
2343
2345
|
}
|
|
2344
|
-
}),
|
|
2346
|
+
}), pr = new g({
|
|
2345
2347
|
id: "hsv",
|
|
2346
2348
|
name: "HSV",
|
|
2347
2349
|
coords: {
|
|
@@ -2394,7 +2396,7 @@ var Ma = /* @__PURE__ */ Object.freeze({
|
|
|
2394
2396
|
coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"]
|
|
2395
2397
|
}
|
|
2396
2398
|
}
|
|
2397
|
-
}),
|
|
2399
|
+
}), pa = new g({
|
|
2398
2400
|
id: "hwb",
|
|
2399
2401
|
name: "HWB",
|
|
2400
2402
|
coords: {
|
|
@@ -2412,7 +2414,7 @@ var Ma = /* @__PURE__ */ Object.freeze({
|
|
|
2412
2414
|
name: "Blackness"
|
|
2413
2415
|
}
|
|
2414
2416
|
},
|
|
2415
|
-
base:
|
|
2417
|
+
base: pr,
|
|
2416
2418
|
fromBase(t) {
|
|
2417
2419
|
let [e, r, n] = t;
|
|
2418
2420
|
return [e, n * (100 - r) / 100, 100 - n];
|
|
@@ -2434,69 +2436,69 @@ var Ma = /* @__PURE__ */ Object.freeze({
|
|
|
2434
2436
|
}
|
|
2435
2437
|
}
|
|
2436
2438
|
});
|
|
2437
|
-
const
|
|
2439
|
+
const ba = [
|
|
2438
2440
|
[0.5766690429101305, 0.1855582379065463, 0.1882286462349947],
|
|
2439
2441
|
[0.29734497525053605, 0.6273635662554661, 0.07529145849399788],
|
|
2440
2442
|
[0.02703136138641234, 0.07068885253582723, 0.9913375368376388]
|
|
2441
|
-
],
|
|
2443
|
+
], Ma = [
|
|
2442
2444
|
[2.0415879038107465, -0.5650069742788596, -0.34473135077832956],
|
|
2443
2445
|
[-0.9692436362808795, 1.8759675015077202, 0.04155505740717557],
|
|
2444
2446
|
[0.013444280632031142, -0.11836239223101838, 1.0151749943912054]
|
|
2445
2447
|
];
|
|
2446
|
-
var
|
|
2448
|
+
var br = new O({
|
|
2447
2449
|
id: "a98rgb-linear",
|
|
2448
2450
|
cssId: "--a98-rgb-linear",
|
|
2449
2451
|
name: "Linear Adobe® 98 RGB compatible",
|
|
2450
2452
|
white: "D65",
|
|
2451
|
-
toXYZ_M:
|
|
2452
|
-
fromXYZ_M:
|
|
2453
|
-
}),
|
|
2453
|
+
toXYZ_M: ba,
|
|
2454
|
+
fromXYZ_M: Ma
|
|
2455
|
+
}), ya = new O({
|
|
2454
2456
|
id: "a98rgb",
|
|
2455
2457
|
cssId: "a98-rgb",
|
|
2456
2458
|
name: "Adobe® 98 RGB compatible",
|
|
2457
|
-
base:
|
|
2459
|
+
base: br,
|
|
2458
2460
|
toBase: (t) => t.map((e) => Math.pow(Math.abs(e), 563 / 256) * Math.sign(e)),
|
|
2459
2461
|
fromBase: (t) => t.map((e) => Math.pow(Math.abs(e), 256 / 563) * Math.sign(e))
|
|
2460
2462
|
});
|
|
2461
|
-
const
|
|
2463
|
+
const wa = [
|
|
2462
2464
|
[0.7977666449006423, 0.13518129740053308, 0.0313477341283922],
|
|
2463
2465
|
[0.2880748288194013, 0.711835234241873, 8993693872564e-17],
|
|
2464
2466
|
[0, 0, 0.8251046025104602]
|
|
2465
|
-
],
|
|
2467
|
+
], Ca = [
|
|
2466
2468
|
[1.3457868816471583, -0.25557208737979464, -0.05110186497554526],
|
|
2467
2469
|
[-0.5446307051249019, 1.5082477428451468, 0.02052744743642139],
|
|
2468
2470
|
[0, 0, 1.2119675456389452]
|
|
2469
2471
|
];
|
|
2470
|
-
var
|
|
2472
|
+
var Mr = new O({
|
|
2471
2473
|
id: "prophoto-linear",
|
|
2472
2474
|
cssId: "--prophoto-rgb-linear",
|
|
2473
2475
|
name: "Linear ProPhoto",
|
|
2474
2476
|
white: "D50",
|
|
2475
|
-
base:
|
|
2476
|
-
toXYZ_M:
|
|
2477
|
-
fromXYZ_M:
|
|
2477
|
+
base: Ot,
|
|
2478
|
+
toXYZ_M: wa,
|
|
2479
|
+
fromXYZ_M: Ca
|
|
2478
2480
|
});
|
|
2479
|
-
const
|
|
2480
|
-
var
|
|
2481
|
+
const _a = 1 / 512, La = 16 / 512;
|
|
2482
|
+
var Ra = new O({
|
|
2481
2483
|
id: "prophoto",
|
|
2482
2484
|
cssId: "prophoto-rgb",
|
|
2483
2485
|
name: "ProPhoto",
|
|
2484
|
-
base:
|
|
2486
|
+
base: Mr,
|
|
2485
2487
|
toBase(t) {
|
|
2486
2488
|
return t.map((e) => {
|
|
2487
2489
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
2488
|
-
return n <
|
|
2490
|
+
return n < La ? e / 16 : r * n ** 1.8;
|
|
2489
2491
|
});
|
|
2490
2492
|
},
|
|
2491
2493
|
fromBase(t) {
|
|
2492
2494
|
return t.map((e) => {
|
|
2493
2495
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
2494
|
-
return n >=
|
|
2496
|
+
return n >= _a ? r * n ** (1 / 1.8) : 16 * e;
|
|
2495
2497
|
});
|
|
2496
2498
|
}
|
|
2497
2499
|
});
|
|
2498
|
-
const
|
|
2499
|
-
var
|
|
2500
|
+
const Ye = 1.09929682680944, y0 = 0.018053968510807;
|
|
2501
|
+
var va = new O({
|
|
2500
2502
|
id: "--rec2020-oetf",
|
|
2501
2503
|
name: "REC.2020_Scene_Referred",
|
|
2502
2504
|
base: Ee,
|
|
@@ -2505,16 +2507,16 @@ var ka = new O({
|
|
|
2505
2507
|
toBase(t) {
|
|
2506
2508
|
return t.map(function(e) {
|
|
2507
2509
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
2508
|
-
return n <
|
|
2510
|
+
return n < y0 * 4.5 ? e / 4.5 : r * Math.pow((n + Ye - 1) / Ye, 1 / 0.45);
|
|
2509
2511
|
});
|
|
2510
2512
|
},
|
|
2511
2513
|
fromBase(t) {
|
|
2512
2514
|
return t.map(function(e) {
|
|
2513
2515
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
2514
|
-
return n >=
|
|
2516
|
+
return n >= y0 ? r * (Ye * Math.pow(n, 0.45) - (Ye - 1)) : 4.5 * e;
|
|
2515
2517
|
});
|
|
2516
2518
|
}
|
|
2517
|
-
}),
|
|
2519
|
+
}), Sa = new g({
|
|
2518
2520
|
id: "oklch",
|
|
2519
2521
|
name: "OkLCh",
|
|
2520
2522
|
coords: {
|
|
@@ -2542,11 +2544,11 @@ var ka = new O({
|
|
|
2542
2544
|
}
|
|
2543
2545
|
}
|
|
2544
2546
|
});
|
|
2545
|
-
const Me = 2 * Math.PI,
|
|
2547
|
+
const Me = 2 * Math.PI, Qe = [
|
|
2546
2548
|
[4.076741636075958, -3.307711539258063, 0.2309699031821043],
|
|
2547
2549
|
[-1.2684379732850315, 2.609757349287688, -0.341319376002657],
|
|
2548
2550
|
[-0.0041960761386756, -0.7034186179359362, 1.7076146940746117]
|
|
2549
|
-
],
|
|
2551
|
+
], Ue = [
|
|
2550
2552
|
// Red
|
|
2551
2553
|
[
|
|
2552
2554
|
// Limit
|
|
@@ -2568,8 +2570,8 @@ const Me = 2 * Math.PI, Ve = [
|
|
|
2568
2570
|
// `Kn` coefficients
|
|
2569
2571
|
[1.35733652, -915799e-8, -1.1513021, -0.50559606, 692167e-8]
|
|
2570
2572
|
]
|
|
2571
|
-
],
|
|
2572
|
-
function
|
|
2573
|
+
], gt = Number.MAX_VALUE, Se = 0.206, jt = 0.03, Re = (1 + Se) / (1 + jt);
|
|
2574
|
+
function $(t, e) {
|
|
2573
2575
|
let r = t.length;
|
|
2574
2576
|
if (r !== e.length)
|
|
2575
2577
|
throw new Error(`Vectors of size ${r} and ${e.length} are not aligned`);
|
|
@@ -2578,69 +2580,69 @@ function A(t, e) {
|
|
|
2578
2580
|
n += a * e[s];
|
|
2579
2581
|
}), n;
|
|
2580
2582
|
}
|
|
2581
|
-
function
|
|
2582
|
-
return 0.5 * (Re * t -
|
|
2583
|
+
function xe(t) {
|
|
2584
|
+
return 0.5 * (Re * t - Se + Math.sqrt((Re * t - Se) * (Re * t - Se) + 4 * jt * Re * t));
|
|
2583
2585
|
}
|
|
2584
|
-
function
|
|
2585
|
-
return (t ** 2 +
|
|
2586
|
+
function de(t) {
|
|
2587
|
+
return (t ** 2 + Se * t) / (Re * (t + jt));
|
|
2586
2588
|
}
|
|
2587
|
-
function
|
|
2589
|
+
function Dt(t) {
|
|
2588
2590
|
let [e, r] = t;
|
|
2589
2591
|
return [r / e, r / (1 - e)];
|
|
2590
2592
|
}
|
|
2591
|
-
function
|
|
2593
|
+
function xa(t, e) {
|
|
2592
2594
|
let r = 0.11516993 + 1 / (7.4477897 + 4.1590124 * e + t * (-2.19557347 + 1.75198401 * e + t * (-2.13704948 - 10.02301043 * e + t * (-4.24894561 + 5.38770819 * e + 4.69891013 * t)))), n = 0.11239642 + 1 / (1.6132032 - 0.68124379 * e + t * (0.40370612 + 0.90148123 * e + t * (-0.27087943 + 0.6122399 * e + t * (299215e-8 - 0.45399568 * e - 0.14661872 * t))));
|
|
2593
2595
|
return [r, n];
|
|
2594
2596
|
}
|
|
2595
|
-
function
|
|
2597
|
+
function Tt(t, e) {
|
|
2596
2598
|
let r = x(t, ee);
|
|
2597
2599
|
return r[0] = r[0] ** 3, r[1] = r[1] ** 3, r[2] = r[2] ** 3, x(r, e, r);
|
|
2598
2600
|
}
|
|
2599
|
-
function
|
|
2600
|
-
let a =
|
|
2601
|
+
function nt(t, e, r, n) {
|
|
2602
|
+
let a = za(t, e, r, n), s = Tt([1, a * t, a * e], r), i = E(1 / Math.max(...s), 1 / 3), o = i * a;
|
|
2601
2603
|
return [i, o];
|
|
2602
2604
|
}
|
|
2603
|
-
function
|
|
2605
|
+
function Ba(t, e, r, n, a, s, i, o) {
|
|
2604
2606
|
let l;
|
|
2605
|
-
if (o === void 0 && (o =
|
|
2607
|
+
if (o === void 0 && (o = nt(t, e, s, i)), (r - a) * o[1] - (o[0] - a) * n <= 0)
|
|
2606
2608
|
l = o[1] * a / (n * o[0] + o[1] * (a - r));
|
|
2607
2609
|
else {
|
|
2608
2610
|
l = o[1] * (a - 1) / (n * (o[0] - 1) + o[1] * (a - r));
|
|
2609
|
-
let c = r - a, f = n, u =
|
|
2610
|
-
le =
|
|
2611
|
+
let c = r - a, f = n, u = $(ee[0].slice(1), [t, e]), h = $(ee[1].slice(1), [t, e]), m = $(ee[2].slice(1), [t, e]), d = c + f * u, M = c + f * h, p = c + f * m, w = a * (1 - l) + l * r, b = l * n, y = w + b * u, _ = w + b * h, S = w + b * m, I = y ** 3, H = _ ** 3, B = S ** 3, j = 3 * d * y ** 2, Q = 3 * M * _ ** 2, G = 3 * p * S ** 2, J = 6 * d ** 2 * y, U = 6 * M ** 2 * _, W = 6 * p ** 2 * S, we = $(s[0], [I, H, B]) - 1, D = $(s[0], [j, Q, G]), Ae = $(s[0], [J, U, W]), Oe = D / (D * D - 0.5 * we * Ae), le = -we * Oe, V = $(s[1], [I, H, B]) - 1, ce = $(s[1], [j, Q, G]), st = $(s[1], [J, U, W]), Pe = ce / (ce * ce - 0.5 * V * st), Ce = -V * Pe, ae = $(s[2], [I, H, B]) - 1, it = $(s[2], [j, Q, G]), zr = $(s[2], [J, U, W]), qt = it / (it * it - 0.5 * ae * zr), ot = -ae * qt;
|
|
2612
|
+
le = Oe >= 0 ? le : gt, Ce = Pe >= 0 ? Ce : gt, ot = qt >= 0 ? ot : gt, l += Math.min(le, Math.min(Ce, ot));
|
|
2611
2613
|
}
|
|
2612
2614
|
return l;
|
|
2613
2615
|
}
|
|
2614
|
-
function
|
|
2615
|
-
let [n, a, s] = t, i =
|
|
2616
|
-
return u = n * 0.4, h = (1 - n) * 0.8, [Math.sqrt(1 / (1 / u ** 2 + 1 / h ** 2)),
|
|
2616
|
+
function yr(t, e, r) {
|
|
2617
|
+
let [n, a, s] = t, i = nt(a, s, e, r), o = Ba(a, s, n, 1, n, e, r, i), l = Dt(i), c = o / Math.min(n * l[0], (1 - n) * l[1]), f = xa(a, s), u = n * f[0], h = (1 - n) * f[1], m = 0.9 * c * Math.sqrt(Math.sqrt(1 / (1 / u ** 4 + 1 / h ** 4)));
|
|
2618
|
+
return u = n * 0.4, h = (1 - n) * 0.8, [Math.sqrt(1 / (1 / u ** 2 + 1 / h ** 2)), m, o];
|
|
2617
2619
|
}
|
|
2618
|
-
function
|
|
2620
|
+
function za(t, e, r, n) {
|
|
2619
2621
|
let a, s, i, o, l, c, f, u;
|
|
2620
|
-
|
|
2621
|
-
let h = a + s * t + i * e + o * t ** 2 + l * t * e,
|
|
2622
|
+
$(n[0][0], [t, e]) > 1 ? ([a, s, i, o, l] = n[0][1], [c, f, u] = r[0]) : $(n[1][0], [t, e]) > 1 ? ([a, s, i, o, l] = n[1][1], [c, f, u] = r[1]) : ([a, s, i, o, l] = n[2][1], [c, f, u] = r[2]);
|
|
2623
|
+
let h = a + s * t + i * e + o * t ** 2 + l * t * e, m = $(ee[0].slice(1), [t, e]), d = $(ee[1].slice(1), [t, e]), M = $(ee[2].slice(1), [t, e]), p = 1 + h * m, w = 1 + h * d, b = 1 + h * M, y = p ** 3, _ = w ** 3, S = b ** 3, I = 3 * m * p ** 2, H = 3 * d * w ** 2, B = 3 * M * b ** 2, j = 6 * m ** 2 * p, Q = 6 * d ** 2 * w, G = 6 * M ** 2 * b, J = c * y + f * _ + u * S, U = c * I + f * H + u * B, W = c * j + f * Q + u * G;
|
|
2622
2624
|
return h = h - J * U / (U ** 2 - 0.5 * J * W), h;
|
|
2623
2625
|
}
|
|
2624
|
-
function
|
|
2625
|
-
let [n, a, s] = t, i =
|
|
2626
|
+
function Ea(t, e, r) {
|
|
2627
|
+
let [n, a, s] = t, i = de(s), o = null, l = null;
|
|
2626
2628
|
if (n = X(n) / 360, i !== 0 && i !== 1 && a !== 0) {
|
|
2627
|
-
let c = Math.cos(Me * n), f = Math.sin(Me * n), [u, h,
|
|
2628
|
-
a <
|
|
2629
|
+
let c = Math.cos(Me * n), f = Math.sin(Me * n), [u, h, m] = yr([i, c, f], e, r), d = 0.8, M = 1.25, p, w, b, y;
|
|
2630
|
+
a < d ? (p = M * a, w = 0, b = d * u, y = 1 - b / h) : (p = 5 * (a - 0.8), w = h, b = 0.2 * h ** 2 * 1.25 ** 2 / u, y = 1 - b / (m - h));
|
|
2629
2631
|
let _ = w + p * b / (1 - y * p);
|
|
2630
2632
|
o = _ * c, l = _ * f;
|
|
2631
2633
|
}
|
|
2632
2634
|
return [i, o, l];
|
|
2633
2635
|
}
|
|
2634
|
-
function
|
|
2635
|
-
let n = 1e-7, a = 1e-4, s = t[0], i = 0, o =
|
|
2636
|
+
function ka(t, e, r) {
|
|
2637
|
+
let n = 1e-7, a = 1e-4, s = t[0], i = 0, o = xe(s), l = Math.sqrt(t[1] ** 2 + t[2] ** 2), c = 0.5 + Math.atan2(-t[2], -t[1]) / Me;
|
|
2636
2638
|
if (o !== 0 && o !== 1 && l !== 0) {
|
|
2637
|
-
let u = t[1] / l, h = t[2] / l, [
|
|
2638
|
-
l <
|
|
2639
|
+
let u = t[1] / l, h = t[2] / l, [m, d, M] = yr([s, u, h], e, r), p = 0.8, w = 1.25, b, y, _, S;
|
|
2640
|
+
l < d ? (y = p * m, _ = 1 - y / d, S = l / (y + _ * l), i = S * p) : (b = d, y = 0.2 * d ** 2 * w ** 2 / m, _ = 1 - y / (M - d), S = (l - b) / (y + _ * (l - b)), i = p + 0.2 * S);
|
|
2639
2641
|
}
|
|
2640
2642
|
const f = Math.abs(i) < a;
|
|
2641
2643
|
return f || o === 0 || Math.abs(1 - o) < n ? (c = null, f || (i = 0)) : c = X(c * 360), [c, i, o];
|
|
2642
2644
|
}
|
|
2643
|
-
var
|
|
2645
|
+
var $a = new g({
|
|
2644
2646
|
id: "okhsl",
|
|
2645
2647
|
name: "Okhsl",
|
|
2646
2648
|
coords: {
|
|
@@ -2662,11 +2664,11 @@ var Ia = new g({
|
|
|
2662
2664
|
gamutSpace: "self",
|
|
2663
2665
|
// Convert Oklab to Okhsl
|
|
2664
2666
|
fromBase(t) {
|
|
2665
|
-
return
|
|
2667
|
+
return ka(t, Qe, Ue);
|
|
2666
2668
|
},
|
|
2667
2669
|
// Convert Okhsl to Oklab
|
|
2668
2670
|
toBase(t) {
|
|
2669
|
-
return
|
|
2671
|
+
return Ea(t, Qe, Ue);
|
|
2670
2672
|
},
|
|
2671
2673
|
formats: {
|
|
2672
2674
|
color: {
|
|
@@ -2674,7 +2676,7 @@ var Ia = new g({
|
|
|
2674
2676
|
coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"]
|
|
2675
2677
|
}
|
|
2676
2678
|
}
|
|
2677
|
-
}),
|
|
2679
|
+
}), wr = new g({
|
|
2678
2680
|
id: "oklrab",
|
|
2679
2681
|
name: "Oklrab",
|
|
2680
2682
|
coords: {
|
|
@@ -2693,10 +2695,10 @@ var Ia = new g({
|
|
|
2693
2695
|
white: "D65",
|
|
2694
2696
|
base: Z,
|
|
2695
2697
|
fromBase(t) {
|
|
2696
|
-
return [
|
|
2698
|
+
return [xe(t[0]), t[1], t[2]];
|
|
2697
2699
|
},
|
|
2698
2700
|
toBase(t) {
|
|
2699
|
-
return [
|
|
2701
|
+
return [de(t[0]), t[1], t[2]];
|
|
2700
2702
|
},
|
|
2701
2703
|
formats: {
|
|
2702
2704
|
color: {
|
|
@@ -2707,7 +2709,7 @@ var Ia = new g({
|
|
|
2707
2709
|
]
|
|
2708
2710
|
}
|
|
2709
2711
|
}
|
|
2710
|
-
}),
|
|
2712
|
+
}), Aa = new g({
|
|
2711
2713
|
id: "oklrch",
|
|
2712
2714
|
name: "Oklrch",
|
|
2713
2715
|
coords: {
|
|
@@ -2726,7 +2728,7 @@ var Ia = new g({
|
|
|
2726
2728
|
}
|
|
2727
2729
|
},
|
|
2728
2730
|
white: "D65",
|
|
2729
|
-
base:
|
|
2731
|
+
base: wr,
|
|
2730
2732
|
fromBase: q.fromBase,
|
|
2731
2733
|
toBase: q.toBase,
|
|
2732
2734
|
formats: {
|
|
@@ -2739,29 +2741,29 @@ var Ia = new g({
|
|
|
2739
2741
|
}
|
|
2740
2742
|
}
|
|
2741
2743
|
});
|
|
2742
|
-
function
|
|
2744
|
+
function Oa(t, e, r) {
|
|
2743
2745
|
let [n, a, s] = t;
|
|
2744
2746
|
n = X(n) / 360;
|
|
2745
|
-
let i =
|
|
2747
|
+
let i = de(s), o = null, l = null;
|
|
2746
2748
|
if (i !== 0 && a !== 0) {
|
|
2747
|
-
let c = Math.cos(Me * n), f = Math.sin(Me * n), u =
|
|
2749
|
+
let c = Math.cos(Me * n), f = Math.sin(Me * n), u = nt(c, f, e, r), [h, m] = Dt(u), d = 0.5, M = 1 - d / h, p = 1 - a * d / (d + m - m * M * a), w = a * m * d / (d + m - m * M * a);
|
|
2748
2750
|
i = s * p;
|
|
2749
|
-
let b = s * w, y =
|
|
2751
|
+
let b = s * w, y = de(p), _ = w * y / p, S = de(i);
|
|
2750
2752
|
b = b * S / i, i = S;
|
|
2751
|
-
let [I, H, B] =
|
|
2753
|
+
let [I, H, B] = Tt([y, c * _, f * _], e), j = E(1 / Math.max(Math.max(I, H), Math.max(B, 0)), 1 / 3);
|
|
2752
2754
|
i = i * j, b = b * j, o = b * c, l = b * f;
|
|
2753
2755
|
}
|
|
2754
2756
|
return [i, o, l];
|
|
2755
2757
|
}
|
|
2756
|
-
function
|
|
2757
|
-
let n = 1e-4, a = t[0], s = 0, i =
|
|
2758
|
+
function Pa(t, e, r) {
|
|
2759
|
+
let n = 1e-4, a = t[0], s = 0, i = xe(a), o = Math.sqrt(t[1] ** 2 + t[2] ** 2), l = 0.5 + Math.atan2(-t[2], -t[1]) / Me;
|
|
2758
2760
|
if (a !== 0 && a !== 1 && o !== 0) {
|
|
2759
|
-
let c = t[1] / o, f = t[2] / o, u =
|
|
2760
|
-
a = a / B, o = o / B, o = o *
|
|
2761
|
+
let c = t[1] / o, f = t[2] / o, u = nt(c, f, e, r), [h, m] = Dt(u), d = 0.5, M = 1 - d / h, p = m / (o + a * m), w = p * a, b = p * o, y = de(w), _ = b * y / w, [S, I, H] = Tt([y, c * _, f * _], e), B = E(1 / Math.max(Math.max(S, I), Math.max(H, 0)), 1 / 3);
|
|
2762
|
+
a = a / B, o = o / B, o = o * xe(a) / a, a = xe(a), i = a / w, s = (d + m) * b / (m * d + m * M * b);
|
|
2761
2763
|
}
|
|
2762
2764
|
return Math.abs(s) < n || i === 0 ? l = null : l = X(l * 360), [l, s, i];
|
|
2763
2765
|
}
|
|
2764
|
-
var
|
|
2766
|
+
var Ia = new g({
|
|
2765
2767
|
id: "okhsv",
|
|
2766
2768
|
name: "Okhsv",
|
|
2767
2769
|
coords: {
|
|
@@ -2783,11 +2785,11 @@ var Ta = new g({
|
|
|
2783
2785
|
gamutSpace: "self",
|
|
2784
2786
|
// Convert Oklab to Okhsl
|
|
2785
2787
|
fromBase(t) {
|
|
2786
|
-
return
|
|
2788
|
+
return Pa(t, Qe, Ue);
|
|
2787
2789
|
},
|
|
2788
2790
|
// Convert Okhsl to Oklab
|
|
2789
2791
|
toBase(t) {
|
|
2790
|
-
return
|
|
2792
|
+
return Oa(t, Qe, Ue);
|
|
2791
2793
|
},
|
|
2792
2794
|
formats: {
|
|
2793
2795
|
color: {
|
|
@@ -2796,9 +2798,9 @@ var Ta = new g({
|
|
|
2796
2798
|
}
|
|
2797
2799
|
}
|
|
2798
2800
|
});
|
|
2799
|
-
let
|
|
2800
|
-
const
|
|
2801
|
-
var
|
|
2801
|
+
let Cr = P.D65;
|
|
2802
|
+
const Ha = 216 / 24389, w0 = 24389 / 27, [C0, _0] = rt({ space: A, coords: Cr });
|
|
2803
|
+
var _r = new g({
|
|
2802
2804
|
id: "luv",
|
|
2803
2805
|
name: "Luv",
|
|
2804
2806
|
coords: {
|
|
@@ -2814,23 +2816,23 @@ var kr = new g({
|
|
|
2814
2816
|
refRange: [-215, 215]
|
|
2815
2817
|
}
|
|
2816
2818
|
},
|
|
2817
|
-
white:
|
|
2818
|
-
base:
|
|
2819
|
+
white: Cr,
|
|
2820
|
+
base: A,
|
|
2819
2821
|
// Convert D65-adapted XYZ to Luv
|
|
2820
2822
|
// https://en.wikipedia.org/wiki/CIELUV#The_forward_transformation
|
|
2821
2823
|
fromBase(t) {
|
|
2822
2824
|
let e = (
|
|
2823
2825
|
/** @type {[number, number, number]} */
|
|
2824
2826
|
[
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2827
|
+
z(t[0]),
|
|
2828
|
+
z(t[1]),
|
|
2829
|
+
z(t[2])
|
|
2828
2830
|
]
|
|
2829
|
-
), r = e[1], [n, a] =
|
|
2831
|
+
), r = e[1], [n, a] = rt({ space: A, coords: e });
|
|
2830
2832
|
if (!Number.isFinite(n) || !Number.isFinite(a))
|
|
2831
2833
|
return [0, 0, 0];
|
|
2832
|
-
let s = r <=
|
|
2833
|
-
return [s, 13 * s * (n -
|
|
2834
|
+
let s = r <= Ha ? w0 * r : 116 * Math.cbrt(r) - 16;
|
|
2835
|
+
return [s, 13 * s * (n - C0), 13 * s * (a - _0)];
|
|
2834
2836
|
},
|
|
2835
2837
|
// Convert Luv to D65-adapted XYZ
|
|
2836
2838
|
// https://en.wikipedia.org/wiki/CIELUV#The_reverse_transformation
|
|
@@ -2838,8 +2840,8 @@ var kr = new g({
|
|
|
2838
2840
|
let [e, r, n] = t;
|
|
2839
2841
|
if (e === 0 || L(e))
|
|
2840
2842
|
return [0, 0, 0];
|
|
2841
|
-
r =
|
|
2842
|
-
let a = r / (13 * e) +
|
|
2843
|
+
r = z(r), n = z(n);
|
|
2844
|
+
let a = r / (13 * e) + C0, s = n / (13 * e) + _0, i = e <= 8 ? e / w0 : Math.pow((e + 16) / 116, 3);
|
|
2843
2845
|
return [i * (9 * a / (4 * s)), i, i * ((12 - 3 * a - 20 * s) / (4 * s))];
|
|
2844
2846
|
},
|
|
2845
2847
|
formats: {
|
|
@@ -2852,7 +2854,7 @@ var kr = new g({
|
|
|
2852
2854
|
]
|
|
2853
2855
|
}
|
|
2854
2856
|
}
|
|
2855
|
-
}),
|
|
2857
|
+
}), Yt = new g({
|
|
2856
2858
|
id: "lchuv",
|
|
2857
2859
|
name: "LChuv",
|
|
2858
2860
|
coords: {
|
|
@@ -2870,7 +2872,7 @@ var kr = new g({
|
|
|
2870
2872
|
name: "Hue"
|
|
2871
2873
|
}
|
|
2872
2874
|
},
|
|
2873
|
-
base:
|
|
2875
|
+
base: _r,
|
|
2874
2876
|
fromBase: q.fromBase,
|
|
2875
2877
|
toBase: q.toBase,
|
|
2876
2878
|
formats: {
|
|
@@ -2880,13 +2882,13 @@ var kr = new g({
|
|
|
2880
2882
|
}
|
|
2881
2883
|
}
|
|
2882
2884
|
});
|
|
2883
|
-
const
|
|
2885
|
+
const ja = 216 / 24389, Da = 24389 / 27, L0 = k[0][0], R0 = k[0][1], pt = k[0][2], v0 = k[1][0], S0 = k[1][1], bt = k[1][2], x0 = k[2][0], B0 = k[2][1], Mt = k[2][2];
|
|
2884
2886
|
function he(t, e, r) {
|
|
2885
2887
|
const n = e / (Math.sin(r) - t * Math.cos(r));
|
|
2886
2888
|
return n < 0 ? 1 / 0 : n;
|
|
2887
2889
|
}
|
|
2888
|
-
function
|
|
2889
|
-
const e = Math.pow(t + 16, 3) / 1560896, r = e >
|
|
2890
|
+
function Ve(t) {
|
|
2891
|
+
const e = Math.pow(t + 16, 3) / 1560896, r = e > ja ? e : t / Da, n = r * (284517 * L0 - 94839 * pt), a = r * (838422 * pt + 769860 * R0 + 731718 * L0), s = r * (632260 * pt - 126452 * R0), i = r * (284517 * v0 - 94839 * bt), o = r * (838422 * bt + 769860 * S0 + 731718 * v0), l = r * (632260 * bt - 126452 * S0), c = r * (284517 * x0 - 94839 * Mt), f = r * (838422 * Mt + 769860 * B0 + 731718 * x0), u = r * (632260 * Mt - 126452 * B0);
|
|
2890
2892
|
return {
|
|
2891
2893
|
r0s: n / s,
|
|
2892
2894
|
r0i: a * t / s,
|
|
@@ -2902,11 +2904,11 @@ function et(t) {
|
|
|
2902
2904
|
b1i: (f - 769860) * t / (u + 126452)
|
|
2903
2905
|
};
|
|
2904
2906
|
}
|
|
2905
|
-
function
|
|
2907
|
+
function z0(t, e) {
|
|
2906
2908
|
const r = e / 360 * Math.PI * 2, n = he(t.r0s, t.r0i, r), a = he(t.r1s, t.r1i, r), s = he(t.g0s, t.g0i, r), i = he(t.g1s, t.g1i, r), o = he(t.b0s, t.b0i, r), l = he(t.b1s, t.b1i, r);
|
|
2907
2909
|
return Math.min(n, a, s, i, o, l);
|
|
2908
2910
|
}
|
|
2909
|
-
var
|
|
2911
|
+
var Ta = new g({
|
|
2910
2912
|
id: "hsluv",
|
|
2911
2913
|
name: "HSLuv",
|
|
2912
2914
|
coords: {
|
|
@@ -2924,31 +2926,31 @@ var Xa = new g({
|
|
|
2924
2926
|
name: "Lightness"
|
|
2925
2927
|
}
|
|
2926
2928
|
},
|
|
2927
|
-
base:
|
|
2929
|
+
base: Yt,
|
|
2928
2930
|
gamutSpace: oe,
|
|
2929
2931
|
// Convert LCHuv to HSLuv
|
|
2930
2932
|
fromBase(t) {
|
|
2931
|
-
let [e, r, n] = [
|
|
2933
|
+
let [e, r, n] = [z(t[0]), z(t[1]), z(t[2])], a;
|
|
2932
2934
|
if (e > 99.9999999)
|
|
2933
2935
|
a = 0, e = 100;
|
|
2934
2936
|
else if (e < 1e-8)
|
|
2935
2937
|
a = 0, e = 0;
|
|
2936
2938
|
else {
|
|
2937
|
-
let s =
|
|
2939
|
+
let s = Ve(e), i = z0(s, n);
|
|
2938
2940
|
a = r / i * 100;
|
|
2939
2941
|
}
|
|
2940
2942
|
return [n, a, e];
|
|
2941
2943
|
},
|
|
2942
2944
|
// Convert HSLuv to LCHuv
|
|
2943
2945
|
toBase(t) {
|
|
2944
|
-
let [e, r, n] = [
|
|
2946
|
+
let [e, r, n] = [z(t[0]), z(t[1]), z(t[2])], a;
|
|
2945
2947
|
if (n > 99.9999999)
|
|
2946
2948
|
n = 100, a = 0;
|
|
2947
2949
|
else if (n < 1e-8)
|
|
2948
2950
|
n = 0, a = 0;
|
|
2949
2951
|
else {
|
|
2950
|
-
let s =
|
|
2951
|
-
a =
|
|
2952
|
+
let s = Ve(n);
|
|
2953
|
+
a = z0(s, e) / 100 * r;
|
|
2952
2954
|
}
|
|
2953
2955
|
return [n, a, e];
|
|
2954
2956
|
},
|
|
@@ -2959,23 +2961,23 @@ var Xa = new g({
|
|
|
2959
2961
|
}
|
|
2960
2962
|
}
|
|
2961
2963
|
});
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
function
|
|
2964
|
+
k[0][0];
|
|
2965
|
+
k[0][1];
|
|
2966
|
+
k[0][2];
|
|
2967
|
+
k[1][0];
|
|
2968
|
+
k[1][1];
|
|
2969
|
+
k[1][2];
|
|
2970
|
+
k[2][0];
|
|
2971
|
+
k[2][1];
|
|
2972
|
+
k[2][2];
|
|
2973
|
+
function me(t, e) {
|
|
2972
2974
|
return Math.abs(e) / Math.sqrt(Math.pow(t, 2) + 1);
|
|
2973
2975
|
}
|
|
2974
|
-
function
|
|
2975
|
-
let e =
|
|
2976
|
+
function E0(t) {
|
|
2977
|
+
let e = me(t.r0s, t.r0i), r = me(t.r1s, t.r1i), n = me(t.g0s, t.g0i), a = me(t.g1s, t.g1i), s = me(t.b0s, t.b0i), i = me(t.b1s, t.b1i);
|
|
2976
2978
|
return Math.min(e, r, n, a, s, i);
|
|
2977
2979
|
}
|
|
2978
|
-
var
|
|
2980
|
+
var Ya = new g({
|
|
2979
2981
|
id: "hpluv",
|
|
2980
2982
|
name: "HPLuv",
|
|
2981
2983
|
coords: {
|
|
@@ -2993,31 +2995,31 @@ var Ga = new g({
|
|
|
2993
2995
|
name: "Lightness"
|
|
2994
2996
|
}
|
|
2995
2997
|
},
|
|
2996
|
-
base:
|
|
2998
|
+
base: Yt,
|
|
2997
2999
|
gamutSpace: "self",
|
|
2998
3000
|
// Convert LCHuv to HPLuv
|
|
2999
3001
|
fromBase(t) {
|
|
3000
|
-
let [e, r, n] = [
|
|
3002
|
+
let [e, r, n] = [z(t[0]), z(t[1]), z(t[2])], a;
|
|
3001
3003
|
if (e > 99.9999999)
|
|
3002
3004
|
a = 0, e = 100;
|
|
3003
3005
|
else if (e < 1e-8)
|
|
3004
3006
|
a = 0, e = 0;
|
|
3005
3007
|
else {
|
|
3006
|
-
let s =
|
|
3008
|
+
let s = Ve(e), i = E0(s);
|
|
3007
3009
|
a = r / i * 100;
|
|
3008
3010
|
}
|
|
3009
3011
|
return [n, a, e];
|
|
3010
3012
|
},
|
|
3011
3013
|
// Convert HPLuv to LCHuv
|
|
3012
3014
|
toBase(t) {
|
|
3013
|
-
let [e, r, n] = [
|
|
3015
|
+
let [e, r, n] = [z(t[0]), z(t[1]), z(t[2])], a;
|
|
3014
3016
|
if (n > 99.9999999)
|
|
3015
3017
|
n = 100, a = 0;
|
|
3016
3018
|
else if (n < 1e-8)
|
|
3017
3019
|
n = 0, a = 0;
|
|
3018
3020
|
else {
|
|
3019
|
-
let s =
|
|
3020
|
-
a =
|
|
3021
|
+
let s = Ve(n);
|
|
3022
|
+
a = E0(s) / 100 * r;
|
|
3021
3023
|
}
|
|
3022
3024
|
return [n, a, e];
|
|
3023
3025
|
},
|
|
@@ -3027,68 +3029,68 @@ var Ga = new g({
|
|
|
3027
3029
|
coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"]
|
|
3028
3030
|
}
|
|
3029
3031
|
}
|
|
3030
|
-
}),
|
|
3032
|
+
}), Nt = new O({
|
|
3031
3033
|
id: "rec2100-linear",
|
|
3032
3034
|
name: "Linear REC.2100",
|
|
3033
3035
|
white: "D65",
|
|
3034
3036
|
toBase: Ee.toBase,
|
|
3035
3037
|
fromBase: Ee.fromBase
|
|
3036
3038
|
});
|
|
3037
|
-
const
|
|
3038
|
-
var
|
|
3039
|
+
const k0 = 203, $0 = 2610 / 2 ** 14, Na = 2 ** 14 / 2610, qa = 2523 / 2 ** 5, A0 = 2 ** 5 / 2523, O0 = 3424 / 2 ** 12, P0 = 2413 / 2 ** 7, I0 = 2392 / 2 ** 7;
|
|
3040
|
+
var Xa = new O({
|
|
3039
3041
|
id: "rec2100pq",
|
|
3040
3042
|
cssId: "rec2100-pq",
|
|
3041
3043
|
name: "REC.2100-PQ",
|
|
3042
|
-
base:
|
|
3044
|
+
base: Nt,
|
|
3043
3045
|
toBase(t) {
|
|
3044
3046
|
return t.map(function(e) {
|
|
3045
|
-
return (Math.max(e **
|
|
3047
|
+
return (Math.max(e ** A0 - O0, 0) / (P0 - I0 * e ** A0)) ** Na * 1e4 / k0;
|
|
3046
3048
|
});
|
|
3047
3049
|
},
|
|
3048
3050
|
fromBase(t) {
|
|
3049
3051
|
return t.map(function(e) {
|
|
3050
|
-
let r = Math.max(e *
|
|
3051
|
-
return (n / a) **
|
|
3052
|
+
let r = Math.max(e * k0 / 1e4, 0), n = O0 + P0 * r ** $0, a = 1 + I0 * r ** $0;
|
|
3053
|
+
return (n / a) ** qa;
|
|
3052
3054
|
});
|
|
3053
3055
|
}
|
|
3054
3056
|
});
|
|
3055
|
-
const
|
|
3056
|
-
var
|
|
3057
|
+
const H0 = 0.17883277, j0 = 0.28466892, D0 = 0.55991073, yt = 3.7743;
|
|
3058
|
+
var Ga = new O({
|
|
3057
3059
|
id: "rec2100hlg",
|
|
3058
3060
|
cssId: "rec2100-hlg",
|
|
3059
3061
|
name: "REC.2100-HLG",
|
|
3060
3062
|
referred: "scene",
|
|
3061
|
-
base:
|
|
3063
|
+
base: Nt,
|
|
3062
3064
|
toBase(t) {
|
|
3063
3065
|
return t.map(function(e) {
|
|
3064
|
-
return e <= 0.5 ? e ** 2 / 3 *
|
|
3066
|
+
return e <= 0.5 ? e ** 2 / 3 * yt : (Math.exp((e - D0) / H0) + j0) / 12 * yt;
|
|
3065
3067
|
});
|
|
3066
3068
|
},
|
|
3067
3069
|
fromBase(t) {
|
|
3068
3070
|
return t.map(function(e) {
|
|
3069
|
-
return e /=
|
|
3071
|
+
return e /= yt, e <= 1 / 12 ? E(3 * e, 0.5) : H0 * Math.log(12 * e - j0) + D0;
|
|
3070
3072
|
});
|
|
3071
3073
|
}
|
|
3072
3074
|
});
|
|
3073
|
-
const
|
|
3075
|
+
const Lr = {};
|
|
3074
3076
|
te.add("chromatic-adaptation-start", (t) => {
|
|
3075
|
-
t.options.method && (t.M =
|
|
3077
|
+
t.options.method && (t.M = Rr(t.W1, t.W2, t.options.method));
|
|
3076
3078
|
});
|
|
3077
3079
|
te.add("chromatic-adaptation-end", (t) => {
|
|
3078
|
-
t.M || (t.M =
|
|
3080
|
+
t.M || (t.M = Rr(t.W1, t.W2, t.options.method));
|
|
3079
3081
|
});
|
|
3080
|
-
function
|
|
3081
|
-
|
|
3082
|
+
function at({ id: t, toCone_M: e, fromCone_M: r }) {
|
|
3083
|
+
Lr[t] = arguments[0];
|
|
3082
3084
|
}
|
|
3083
|
-
function
|
|
3084
|
-
let n =
|
|
3085
|
+
function Rr(t, e, r = "Bradford") {
|
|
3086
|
+
let n = Lr[r], [a, s, i] = _e(n.toCone_M, t), [o, l, c] = _e(n.toCone_M, e), f = [
|
|
3085
3087
|
[o / a, 0, 0],
|
|
3086
3088
|
[0, l / s, 0],
|
|
3087
3089
|
[0, 0, c / i]
|
|
3088
3090
|
], u = _e(f, n.toCone_M);
|
|
3089
3091
|
return _e(n.fromCone_M, u);
|
|
3090
3092
|
}
|
|
3091
|
-
|
|
3093
|
+
at({
|
|
3092
3094
|
id: "von Kries",
|
|
3093
3095
|
toCone_M: [
|
|
3094
3096
|
[0.40024, 0.7076, -0.08081],
|
|
@@ -3101,7 +3103,7 @@ st({
|
|
|
3101
3103
|
[0, 0, 1.0890636230968613]
|
|
3102
3104
|
]
|
|
3103
3105
|
});
|
|
3104
|
-
|
|
3106
|
+
at({
|
|
3105
3107
|
id: "Bradford",
|
|
3106
3108
|
// Convert an array of XYZ values in the range 0.0 - 1.0
|
|
3107
3109
|
// to cone fundamentals
|
|
@@ -3117,7 +3119,7 @@ st({
|
|
|
3117
3119
|
[-0.00852866457517732, 0.04004282165408486, 0.96848669578755]
|
|
3118
3120
|
]
|
|
3119
3121
|
});
|
|
3120
|
-
|
|
3122
|
+
at({
|
|
3121
3123
|
id: "CAT02",
|
|
3122
3124
|
// with complete chromatic adaptation to W2, so D = 1.0
|
|
3123
3125
|
toCone_M: [
|
|
@@ -3131,7 +3133,7 @@ st({
|
|
|
3131
3133
|
[-0.009627608738429355, -0.00569803121611342, 1.0153256399545427]
|
|
3132
3134
|
]
|
|
3133
3135
|
});
|
|
3134
|
-
|
|
3136
|
+
at({
|
|
3135
3137
|
id: "CAT16",
|
|
3136
3138
|
toCone_M: [
|
|
3137
3139
|
[0.401288, 0.650173, -0.051461],
|
|
@@ -3165,16 +3167,16 @@ Object.assign(P, {
|
|
|
3165
3167
|
F11: [1.00962, 1, 0.6435]
|
|
3166
3168
|
});
|
|
3167
3169
|
P.ACES = [0.32168 / 0.33767, 1, (1 - 0.32168 - 0.33767) / 0.33767];
|
|
3168
|
-
const
|
|
3170
|
+
const Za = [
|
|
3169
3171
|
[0.6624541811085053, 0.13400420645643313, 0.1561876870049078],
|
|
3170
3172
|
[0.27222871678091454, 0.6740817658111484, 0.05368951740793705],
|
|
3171
3173
|
[-0.005574649490394108, 0.004060733528982826, 1.0103391003129971]
|
|
3172
|
-
],
|
|
3174
|
+
], Ja = [
|
|
3173
3175
|
[1.6410233796943257, -0.32480329418479, -0.23642469523761225],
|
|
3174
3176
|
[-0.6636628587229829, 1.6153315916573379, 0.016756347685530137],
|
|
3175
3177
|
[0.011721894328375376, -0.008284441996237409, 0.9883948585390215]
|
|
3176
3178
|
];
|
|
3177
|
-
var
|
|
3179
|
+
var vr = new O({
|
|
3178
3180
|
id: "acescg",
|
|
3179
3181
|
cssId: "--acescg",
|
|
3180
3182
|
name: "ACEScg",
|
|
@@ -3197,11 +3199,11 @@ var Ar = new O({
|
|
|
3197
3199
|
},
|
|
3198
3200
|
referred: "scene",
|
|
3199
3201
|
white: P.ACES,
|
|
3200
|
-
toXYZ_M:
|
|
3201
|
-
fromXYZ_M:
|
|
3202
|
+
toXYZ_M: Za,
|
|
3203
|
+
fromXYZ_M: Ja
|
|
3202
3204
|
});
|
|
3203
|
-
const
|
|
3204
|
-
var
|
|
3205
|
+
const Ne = 2 ** -16, wt = -0.35828683, qe = (Math.log2(65504) + 9.72) / 17.52;
|
|
3206
|
+
var Wa = new O({
|
|
3205
3207
|
id: "acescc",
|
|
3206
3208
|
cssId: "--acescc",
|
|
3207
3209
|
name: "ACEScc",
|
|
@@ -3214,77 +3216,77 @@ var Va = new O({
|
|
|
3214
3216
|
// so that all positive ACES values are maintained."
|
|
3215
3217
|
coords: {
|
|
3216
3218
|
r: {
|
|
3217
|
-
range: [
|
|
3219
|
+
range: [wt, qe],
|
|
3218
3220
|
name: "Red"
|
|
3219
3221
|
},
|
|
3220
3222
|
g: {
|
|
3221
|
-
range: [
|
|
3223
|
+
range: [wt, qe],
|
|
3222
3224
|
name: "Green"
|
|
3223
3225
|
},
|
|
3224
3226
|
b: {
|
|
3225
|
-
range: [
|
|
3227
|
+
range: [wt, qe],
|
|
3226
3228
|
name: "Blue"
|
|
3227
3229
|
}
|
|
3228
3230
|
},
|
|
3229
3231
|
referred: "scene",
|
|
3230
|
-
base:
|
|
3232
|
+
base: vr,
|
|
3231
3233
|
// from section 4.4.2 Decoding Function
|
|
3232
3234
|
toBase(t) {
|
|
3233
3235
|
const e = -0.3013698630136986;
|
|
3234
3236
|
return t.map(function(r) {
|
|
3235
|
-
return r <= e ? (2 ** (r * 17.52 - 9.72) -
|
|
3237
|
+
return r <= e ? (2 ** (r * 17.52 - 9.72) - Ne) * 2 : r < qe ? 2 ** (r * 17.52 - 9.72) : 65504;
|
|
3236
3238
|
});
|
|
3237
3239
|
},
|
|
3238
3240
|
// Non-linear encoding function from S-2014-003, section 4.4.1 Encoding Function
|
|
3239
3241
|
fromBase(t) {
|
|
3240
3242
|
return t.map(function(e) {
|
|
3241
|
-
return e <= 0 ? (Math.log2(
|
|
3243
|
+
return e <= 0 ? (Math.log2(Ne) + 9.72) / 17.52 : e < Ne ? (Math.log2(Ne + e * 0.5) + 9.72) / 17.52 : (Math.log2(e) + 9.72) / 17.52;
|
|
3242
3244
|
});
|
|
3243
3245
|
}
|
|
3244
3246
|
// encoded media white (rgb 1,1,1) => linear [ 222.861, 222.861, 222.861 ]
|
|
3245
3247
|
// encoded media black (rgb 0,0,0) => linear [ 0.0011857, 0.0011857, 0.0011857]
|
|
3246
|
-
}),
|
|
3248
|
+
}), T0 = /* @__PURE__ */ Object.freeze({
|
|
3247
3249
|
__proto__: null,
|
|
3248
|
-
A98RGB:
|
|
3249
|
-
A98RGB_Linear:
|
|
3250
|
-
ACEScc:
|
|
3251
|
-
ACEScg:
|
|
3252
|
-
CAM16_JMh:
|
|
3250
|
+
A98RGB: ya,
|
|
3251
|
+
A98RGB_Linear: br,
|
|
3252
|
+
ACEScc: Wa,
|
|
3253
|
+
ACEScg: vr,
|
|
3254
|
+
CAM16_JMh: vn,
|
|
3253
3255
|
HCT: ze,
|
|
3254
|
-
HPLuv:
|
|
3255
|
-
HSL:
|
|
3256
|
-
HSLuv:
|
|
3257
|
-
HSV:
|
|
3258
|
-
HWB:
|
|
3259
|
-
ICTCP:
|
|
3260
|
-
JzCzHz:
|
|
3261
|
-
Jzazbz:
|
|
3256
|
+
HPLuv: Ya,
|
|
3257
|
+
HSL: ga,
|
|
3258
|
+
HSLuv: Ta,
|
|
3259
|
+
HSV: pr,
|
|
3260
|
+
HWB: pa,
|
|
3261
|
+
ICTCP: vt,
|
|
3262
|
+
JzCzHz: Rt,
|
|
3263
|
+
Jzazbz: Q0,
|
|
3262
3264
|
LCH: q,
|
|
3263
|
-
LCHuv:
|
|
3264
|
-
Lab:
|
|
3265
|
-
Lab_D65:
|
|
3266
|
-
Luv:
|
|
3267
|
-
OKLCH:
|
|
3265
|
+
LCHuv: Yt,
|
|
3266
|
+
Lab: Y,
|
|
3267
|
+
Lab_D65: Bt,
|
|
3268
|
+
Luv: _r,
|
|
3269
|
+
OKLCH: Sa,
|
|
3268
3270
|
OKLab: Z,
|
|
3269
|
-
OKLrCH:
|
|
3270
|
-
OKLrab:
|
|
3271
|
-
Okhsl:
|
|
3272
|
-
Okhsv:
|
|
3273
|
-
P3:
|
|
3274
|
-
P3_Linear:
|
|
3275
|
-
ProPhoto:
|
|
3276
|
-
ProPhoto_Linear:
|
|
3277
|
-
REC_2020:
|
|
3271
|
+
OKLrCH: Aa,
|
|
3272
|
+
OKLrab: wr,
|
|
3273
|
+
Okhsl: $a,
|
|
3274
|
+
Okhsv: Ia,
|
|
3275
|
+
P3: cr,
|
|
3276
|
+
P3_Linear: or,
|
|
3277
|
+
ProPhoto: Ra,
|
|
3278
|
+
ProPhoto_Linear: Mr,
|
|
3279
|
+
REC_2020: ir,
|
|
3278
3280
|
REC_2020_Linear: Ee,
|
|
3279
|
-
REC_2020_Scene_Referred:
|
|
3280
|
-
REC_2100_HLG:
|
|
3281
|
-
REC_2100_Linear:
|
|
3282
|
-
REC_2100_PQ:
|
|
3283
|
-
XYZ_ABS_D65:
|
|
3284
|
-
XYZ_D50:
|
|
3285
|
-
XYZ_D65:
|
|
3281
|
+
REC_2020_Scene_Referred: va,
|
|
3282
|
+
REC_2100_HLG: Ga,
|
|
3283
|
+
REC_2100_Linear: Nt,
|
|
3284
|
+
REC_2100_PQ: Xa,
|
|
3285
|
+
XYZ_ABS_D65: Pt,
|
|
3286
|
+
XYZ_D50: Ot,
|
|
3287
|
+
XYZ_D65: A,
|
|
3286
3288
|
sRGB: oe,
|
|
3287
|
-
sRGB_Linear:
|
|
3289
|
+
sRGB_Linear: lr
|
|
3288
3290
|
});
|
|
3289
3291
|
class R {
|
|
3290
3292
|
/**
|
|
@@ -3309,7 +3311,7 @@ class R {
|
|
|
3309
3311
|
enumerable: !0,
|
|
3310
3312
|
configurable: !0
|
|
3311
3313
|
// see note in https://262.ecma-international.org/8.0/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver
|
|
3312
|
-
}), this.coords = a ? a.slice() : [0, 0, 0], this.alpha = L(s) ? s : s === void 0 ? 1 :
|
|
3314
|
+
}), this.coords = a ? a.slice() : [0, 0, 0], this.alpha = L(s) ? s : s === void 0 ? 1 : et(0, s, 1);
|
|
3313
3315
|
for (let i in this.space.coords)
|
|
3314
3316
|
Object.defineProperty(this, i, {
|
|
3315
3317
|
get: () => this.get(i),
|
|
@@ -3330,7 +3332,7 @@ class R {
|
|
|
3330
3332
|
};
|
|
3331
3333
|
}
|
|
3332
3334
|
display(...e) {
|
|
3333
|
-
let r =
|
|
3335
|
+
let r = Yn(this, ...e);
|
|
3334
3336
|
return r.color = new R(r.color), r;
|
|
3335
3337
|
}
|
|
3336
3338
|
/**
|
|
@@ -3348,7 +3350,7 @@ class R {
|
|
|
3348
3350
|
static try(e, r) {
|
|
3349
3351
|
if (ge(e, this))
|
|
3350
3352
|
return e;
|
|
3351
|
-
let n =
|
|
3353
|
+
let n = Z0(e, r);
|
|
3352
3354
|
return n ? new R(n) : null;
|
|
3353
3355
|
}
|
|
3354
3356
|
static defineFunction(e, r, n = r) {
|
|
@@ -3383,37 +3385,37 @@ class R {
|
|
|
3383
3385
|
}
|
|
3384
3386
|
R.defineFunctions({
|
|
3385
3387
|
get: T,
|
|
3386
|
-
getAll:
|
|
3388
|
+
getAll: ke,
|
|
3387
3389
|
set: F,
|
|
3388
|
-
setAll:
|
|
3390
|
+
setAll: At,
|
|
3389
3391
|
to: v,
|
|
3390
|
-
equals:
|
|
3392
|
+
equals: qn,
|
|
3391
3393
|
inGamut: ie,
|
|
3392
3394
|
toGamut: re,
|
|
3393
|
-
distance:
|
|
3394
|
-
deltas:
|
|
3395
|
-
toString:
|
|
3395
|
+
distance: F0,
|
|
3396
|
+
deltas: Nn,
|
|
3397
|
+
toString: ve
|
|
3396
3398
|
});
|
|
3397
3399
|
Object.assign(R, {
|
|
3398
|
-
util:
|
|
3400
|
+
util: Dr,
|
|
3399
3401
|
hooks: te,
|
|
3400
3402
|
WHITES: P,
|
|
3401
3403
|
Space: g,
|
|
3402
3404
|
spaces: g.registry,
|
|
3403
|
-
parse:
|
|
3405
|
+
parse: X0,
|
|
3404
3406
|
// Global defaults one may want to configure
|
|
3405
|
-
defaults:
|
|
3407
|
+
defaults: N
|
|
3406
3408
|
});
|
|
3407
|
-
for (let t of Object.keys(
|
|
3408
|
-
g.register(
|
|
3409
|
+
for (let t of Object.keys(T0))
|
|
3410
|
+
g.register(T0[t]);
|
|
3409
3411
|
for (let t in g.registry)
|
|
3410
|
-
|
|
3412
|
+
zt(t, g.registry[t]);
|
|
3411
3413
|
te.add("colorspace-init-end", (t) => {
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
+
zt(t.id, t), t.aliases?.forEach((e) => {
|
|
3415
|
+
zt(e, t);
|
|
3414
3416
|
});
|
|
3415
3417
|
});
|
|
3416
|
-
function
|
|
3418
|
+
function zt(t, e) {
|
|
3417
3419
|
let r = t.replace(/-/g, "_");
|
|
3418
3420
|
Object.defineProperty(R.prototype, r, {
|
|
3419
3421
|
// Convert coords to coords in another colorspace and return them
|
|
@@ -3470,20 +3472,20 @@ function Et(t, e) {
|
|
|
3470
3472
|
R.extend(be);
|
|
3471
3473
|
R.extend({ deltaE: Le });
|
|
3472
3474
|
Object.assign(R, { deltaEMethods: be });
|
|
3473
|
-
R.extend(
|
|
3474
|
-
R.extend({ contrast:
|
|
3475
|
-
R.extend(
|
|
3476
|
-
R.extend(
|
|
3477
|
-
R.extend(
|
|
3478
|
-
R.extend(
|
|
3479
|
-
const
|
|
3475
|
+
R.extend(ha);
|
|
3476
|
+
R.extend({ contrast: ca });
|
|
3477
|
+
R.extend(fa);
|
|
3478
|
+
R.extend(Gn);
|
|
3479
|
+
R.extend(da);
|
|
3480
|
+
R.extend(Xe);
|
|
3481
|
+
const Fa = {
|
|
3480
3482
|
RED: "red",
|
|
3481
3483
|
ORANGE: "orange",
|
|
3482
3484
|
YELLOW: "yellow",
|
|
3483
3485
|
GREEN: "green",
|
|
3484
3486
|
BLUE: "blue",
|
|
3485
3487
|
PURPLE: "purple"
|
|
3486
|
-
},
|
|
3488
|
+
}, Qa = [
|
|
3487
3489
|
{
|
|
3488
3490
|
name: "RED",
|
|
3489
3491
|
hue: (t) => t < 30 || t > 315,
|
|
@@ -3514,32 +3516,36 @@ const Ka = {
|
|
|
3514
3516
|
hue: (t) => t > 270 && t <= 315,
|
|
3515
3517
|
rgb: ([t, e, r]) => t > e && r > e
|
|
3516
3518
|
}
|
|
3517
|
-
],
|
|
3519
|
+
], Ua = $r`
|
|
3518
3520
|
.clippy-color-combobox__option {
|
|
3519
3521
|
align-items: center;
|
|
3520
3522
|
display: flex;
|
|
3521
3523
|
}
|
|
3522
3524
|
`;
|
|
3523
|
-
var
|
|
3525
|
+
var Va = Object.defineProperty, Ka = Object.getOwnPropertyDescriptor, Sr = (t) => {
|
|
3524
3526
|
throw TypeError(t);
|
|
3525
|
-
},
|
|
3526
|
-
for (var a = n > 1 ? void 0 : n ?
|
|
3527
|
+
}, xr = (t, e, r, n) => {
|
|
3528
|
+
for (var a = n > 1 ? void 0 : n ? Ka(e, r) : e, s = t.length - 1, i; s >= 0; s--)
|
|
3527
3529
|
(i = t[s]) && (a = (n ? i(e, r, a) : i(a)) || a);
|
|
3528
|
-
return n && a &&
|
|
3529
|
-
},
|
|
3530
|
-
const
|
|
3531
|
-
|
|
3530
|
+
return n && a && Va(e, r, a), a;
|
|
3531
|
+
}, Br = (t, e, r) => e.has(t) || Sr("Cannot " + r), es = (t, e, r) => (Br(t, e, "read from private field"), r ? r.call(t) : e.get(t)), ts = (t, e, r) => e.has(t) ? Sr("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), rs = (t, e, r, n) => (Br(t, e, "write to private field"), e.set(t, r), r), Ge;
|
|
3532
|
+
const ns = "clippy-color-combobox";
|
|
3533
|
+
class as extends Y0 {
|
|
3534
|
+
}
|
|
3535
|
+
let Ke = class extends kr(as) {
|
|
3532
3536
|
constructor() {
|
|
3533
|
-
super(...arguments), this.translations =
|
|
3534
|
-
const e =
|
|
3535
|
-
return r
|
|
3537
|
+
super(...arguments), this.translations = Fa, ts(this, Ge, []), this.filter = (t) => {
|
|
3538
|
+
const e = t.toLowerCase();
|
|
3539
|
+
return (r) => {
|
|
3540
|
+
const n = r.label.toLowerCase(), a = r.names;
|
|
3541
|
+
return n.includes(e) || a.some((s) => this.translations[s]?.includes(e));
|
|
3542
|
+
};
|
|
3536
3543
|
};
|
|
3537
3544
|
}
|
|
3538
|
-
get lang() {
|
|
3539
|
-
return _t(this, ve) || Z0;
|
|
3540
|
-
}
|
|
3541
3545
|
set lang(t) {
|
|
3542
|
-
this.loadLocalizations(t)
|
|
3546
|
+
this.loadLocalizations(t).then(() => {
|
|
3547
|
+
super.lang = t;
|
|
3548
|
+
});
|
|
3543
3549
|
}
|
|
3544
3550
|
async loadLocalizations(t) {
|
|
3545
3551
|
const r = t.split("-");
|
|
@@ -3547,18 +3553,18 @@ let Ae = class extends W0 {
|
|
|
3547
3553
|
for (let a = r.length; a > 0; a--) {
|
|
3548
3554
|
const s = r.slice(0, a).join("-");
|
|
3549
3555
|
try {
|
|
3550
|
-
n = await
|
|
3556
|
+
n = await Hr(/* @__PURE__ */ Object.assign({ "./messages/en.ts": () => import("./en-B-D8DBsf.js"), "./messages/nl.ts": () => import("./nl-CJG2-yS5.js") }), `./messages/${s}.ts`, 3).then((i) => i.default), this.translations = n || this.translations, this.lang = s;
|
|
3551
3557
|
break;
|
|
3552
3558
|
} catch {
|
|
3553
3559
|
}
|
|
3554
3560
|
}
|
|
3555
3561
|
}
|
|
3556
3562
|
get options() {
|
|
3557
|
-
return
|
|
3563
|
+
return es(this, Ge);
|
|
3558
3564
|
}
|
|
3559
3565
|
set options(t) {
|
|
3560
|
-
|
|
3561
|
-
const n = new R(r), a =
|
|
3566
|
+
rs(this, Ge, t.map(({ label: e, value: r }) => {
|
|
3567
|
+
const n = new R(r), a = Qa.filter(({ hue: s, rgb: i }) => n.h ? s(n.h) : i([n.r || 0, n.g || 0, n.b || 0])).map(({ name: s }) => s);
|
|
3562
3568
|
return {
|
|
3563
3569
|
color: n,
|
|
3564
3570
|
label: e,
|
|
@@ -3570,27 +3576,11 @@ let Ae = class extends W0 {
|
|
|
3570
3576
|
valueToQuery(t) {
|
|
3571
3577
|
return Array.isArray(t) ? t[0] : t.split(",")[0];
|
|
3572
3578
|
}
|
|
3573
|
-
connectedCallback() {
|
|
3574
|
-
super.connectedCallback();
|
|
3575
|
-
const t = "lang";
|
|
3576
|
-
let e = _t(this, ve) || this.getAttribute(t);
|
|
3577
|
-
if (!e) {
|
|
3578
|
-
let r = this.parentElement;
|
|
3579
|
-
for (; r; ) {
|
|
3580
|
-
if (r.hasAttribute(t)) {
|
|
3581
|
-
e = r.getAttribute(t) || e;
|
|
3582
|
-
break;
|
|
3583
|
-
}
|
|
3584
|
-
r = r.parentElement;
|
|
3585
|
-
}
|
|
3586
|
-
}
|
|
3587
|
-
this.lang = e || Z0;
|
|
3588
|
-
}
|
|
3589
3579
|
renderEntry(t) {
|
|
3590
3580
|
const e = t.color?.toString();
|
|
3591
|
-
return
|
|
3581
|
+
return Ar`
|
|
3592
3582
|
<span class="clippy-color-combobox__option">
|
|
3593
|
-
<svg role="img" xmlns="http://www.w3.org/2000/svg" class="nl-color-sample" style=${
|
|
3583
|
+
<svg role="img" xmlns="http://www.w3.org/2000/svg" class="nl-color-sample" style=${Ir({ color: e })}>
|
|
3594
3584
|
<path d="M0 0H32V32H0Z" fill="currentcolor" />
|
|
3595
3585
|
</svg>
|
|
3596
3586
|
<span>${t.label}</span>
|
|
@@ -3598,19 +3588,15 @@ let Ae = class extends W0 {
|
|
|
3598
3588
|
`;
|
|
3599
3589
|
}
|
|
3600
3590
|
};
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
], Ae.prototype, "options", 1);
|
|
3610
|
-
Ae = Gt([
|
|
3611
|
-
Dr(as)
|
|
3612
|
-
], Ae);
|
|
3591
|
+
Ge = /* @__PURE__ */ new WeakMap();
|
|
3592
|
+
Ke.styles = [...Y0.styles, Ua, Or(jr)];
|
|
3593
|
+
xr([
|
|
3594
|
+
Pr({ type: Array })
|
|
3595
|
+
], Ke.prototype, "options", 1);
|
|
3596
|
+
Ke = xr([
|
|
3597
|
+
Er(ns)
|
|
3598
|
+
], Ke);
|
|
3613
3599
|
export {
|
|
3614
|
-
|
|
3615
|
-
|
|
3600
|
+
Fa as C,
|
|
3601
|
+
Ke as a
|
|
3616
3602
|
};
|