@thi.ng/color 4.0.8 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -601,7 +601,7 @@ node --experimental-repl-await
601
601
  > const color = await import("@thi.ng/color");
602
602
  ```
603
603
 
604
- Package sizes (gzipped, pre-treeshake): ESM: 14.19 KB
604
+ Package sizes (gzipped, pre-treeshake): ESM: 15.02 KB
605
605
 
606
606
  ## Dependencies
607
607
 
package/color-range.js CHANGED
@@ -170,7 +170,7 @@ export const colorFromRange = (range, opts) => {
170
170
  */
171
171
  export function* colorsFromRange(range, opts = {}) {
172
172
  let num = opts.num != undefined ? opts.num : Infinity;
173
- while (--num >= 0)
173
+ while (num-- > 0)
174
174
  yield colorFromRange(range, opts);
175
175
  }
176
176
  /** @internal */
package/dev/hsluv.js ADDED
@@ -0,0 +1,224 @@
1
+ (function () {
2
+ function f(a) {
3
+ var c = [],
4
+ b = Math.pow(a + 16, 3) / 1560896;
5
+ b = b > g ? b : a / k;
6
+ for (var d = 0; 3 > d; ) {
7
+ var e = d++,
8
+ h = l[e][0],
9
+ w = l[e][1];
10
+ e = l[e][2];
11
+ for (var x = 0; 2 > x; ) {
12
+ var y = x++,
13
+ z = (632260 * e - 126452 * w) * b + 126452 * y;
14
+ c.push({
15
+ b: ((284517 * h - 94839 * e) * b) / z,
16
+ a:
17
+ ((838422 * e + 769860 * w + 731718 * h) * a * b -
18
+ 769860 * y * a) /
19
+ z,
20
+ });
21
+ }
22
+ }
23
+ return c;
24
+ }
25
+ function m(a) {
26
+ a = f(a);
27
+ for (var c = Infinity, b = 0; b < a.length; ) {
28
+ var d = a[b];
29
+ ++b;
30
+ c = Math.min(c, Math.abs(d.a) / Math.sqrt(Math.pow(d.b, 2) + 1));
31
+ }
32
+ return c;
33
+ }
34
+ function n(a, c) {
35
+ c = (c / 360) * Math.PI * 2;
36
+ a = f(a);
37
+ for (var b = Infinity, d = 0; d < a.length; ) {
38
+ var e = a[d];
39
+ ++d;
40
+ e = e.a / (Math.sin(c) - e.b * Math.cos(c));
41
+ 0 <= e && (b = Math.min(b, e));
42
+ }
43
+ return b;
44
+ }
45
+ function p(a, c) {
46
+ for (var b = 0, d = 0, e = a.length; d < e; ) {
47
+ var h = d++;
48
+ b += a[h] * c[h];
49
+ }
50
+ return b;
51
+ }
52
+ function q(a) {
53
+ return 0.0031308 >= a
54
+ ? 12.92 * a
55
+ : 1.055 * Math.pow(a, 0.4166666666666667) - 0.055;
56
+ }
57
+ function r(a) {
58
+ return 0.04045 < a ? Math.pow((a + 0.055) / 1.055, 2.4) : a / 12.92;
59
+ }
60
+ function t(a) {
61
+ return [q(p(l[0], a)), q(p(l[1], a)), q(p(l[2], a))];
62
+ }
63
+ function u(a) {
64
+ a = [r(a[0]), r(a[1]), r(a[2])];
65
+ return [p(v[0], a), p(v[1], a), p(v[2], a)];
66
+ }
67
+ function A(a) {
68
+ var c = a[0],
69
+ b = a[1];
70
+ a = c + 15 * b + 3 * a[2];
71
+ 0 != a ? ((c = (4 * c) / a), (a = (9 * b) / a)) : (a = c = NaN);
72
+ b =
73
+ b <= g
74
+ ? (b / B) * k
75
+ : 116 * Math.pow(b / B, 0.3333333333333333) - 16;
76
+ return 0 == b ? [0, 0, 0] : [b, 13 * b * (c - C), 13 * b * (a - D)];
77
+ }
78
+ function E(a) {
79
+ var c = a[0];
80
+ if (0 == c) return [0, 0, 0];
81
+ var b = a[1] / (13 * c) + C;
82
+ a = a[2] / (13 * c) + D;
83
+ c = 8 >= c ? (B * c) / k : B * Math.pow((c + 16) / 116, 3);
84
+ b = 0 - (9 * c * b) / ((b - 4) * a - b * a);
85
+ return [b, c, (9 * c - 15 * a * c - a * b) / (3 * a)];
86
+ }
87
+ function F(a) {
88
+ var c = a[0],
89
+ b = a[1],
90
+ d = a[2];
91
+ a = Math.sqrt(b * b + d * d);
92
+ 1e-8 > a
93
+ ? (b = 0)
94
+ : ((b = (180 * Math.atan2(d, b)) / Math.PI),
95
+ 0 > b && (b = 360 + b));
96
+ return [c, a, b];
97
+ }
98
+ function G(a) {
99
+ var c = a[1],
100
+ b = (a[2] / 360) * 2 * Math.PI;
101
+ return [a[0], Math.cos(b) * c, Math.sin(b) * c];
102
+ }
103
+ function H(a) {
104
+ var c = a[0],
105
+ b = a[1];
106
+ a = a[2];
107
+ if (99.9999999 < a) return [100, 0, c];
108
+ if (1e-8 > a) return [0, 0, c];
109
+ b = (n(a, c) / 100) * b;
110
+ return [a, b, c];
111
+ }
112
+ function I(a) {
113
+ var c = a[0],
114
+ b = a[1];
115
+ a = a[2];
116
+ if (99.9999999 < c) return [a, 0, 100];
117
+ if (1e-8 > c) return [a, 0, 0];
118
+ var d = n(c, a);
119
+ return [a, (b / d) * 100, c];
120
+ }
121
+ function J(a) {
122
+ var c = a[0],
123
+ b = a[1];
124
+ a = a[2];
125
+ if (99.9999999 < a) return [100, 0, c];
126
+ if (1e-8 > a) return [0, 0, c];
127
+ b = (m(a) / 100) * b;
128
+ return [a, b, c];
129
+ }
130
+ function K(a) {
131
+ var c = a[0],
132
+ b = a[1];
133
+ a = a[2];
134
+ if (99.9999999 < c) return [a, 0, 100];
135
+ if (1e-8 > c) return [a, 0, 0];
136
+ var d = m(c);
137
+ return [a, (b / d) * 100, c];
138
+ }
139
+ function L(a) {
140
+ for (var c = "#", b = 0; 3 > b; ) {
141
+ var d = b++;
142
+ d = Math.round(255 * a[d]);
143
+ var e = d % 16;
144
+ c += M.charAt(((d - e) / 16) | 0) + M.charAt(e);
145
+ }
146
+ return c;
147
+ }
148
+ function N(a) {
149
+ a = a.toLowerCase();
150
+ for (var c = [], b = 0; 3 > b; ) {
151
+ var d = b++;
152
+ c.push(
153
+ (16 * M.indexOf(a.charAt(2 * d + 1)) +
154
+ M.indexOf(a.charAt(2 * d + 2))) /
155
+ 255
156
+ );
157
+ }
158
+ return c;
159
+ }
160
+ function O(a) {
161
+ return t(E(G(a)));
162
+ }
163
+ function P(a) {
164
+ return F(A(u(a)));
165
+ }
166
+ function Q(a) {
167
+ return O(H(a));
168
+ }
169
+ function R(a) {
170
+ return I(P(a));
171
+ }
172
+ function S(a) {
173
+ return O(J(a));
174
+ }
175
+ function T(a) {
176
+ return K(P(a));
177
+ }
178
+ var l = [
179
+ [3.240969941904521, -1.537383177570093, -0.498610760293],
180
+ [-0.96924363628087, 1.87596750150772, 0.041555057407175],
181
+ [0.055630079696993, -0.20397695888897, 1.056971514242878],
182
+ ],
183
+ v = [
184
+ [0.41239079926595, 0.35758433938387, 0.18048078840183],
185
+ [0.21263900587151, 0.71516867876775, 0.072192315360733],
186
+ [0.019330818715591, 0.11919477979462, 0.95053215224966],
187
+ ],
188
+ B = 1,
189
+ C = 0.19783000664283,
190
+ D = 0.46831999493879,
191
+ k = 903.2962962,
192
+ g = 0.0088564516,
193
+ M = "0123456789abcdef";
194
+ window.hsluv = {
195
+ hsluvToRgb: Q,
196
+ rgbToHsluv: R,
197
+ hpluvToRgb: S,
198
+ rgbToHpluv: T,
199
+ hsluvToHex: function (a) {
200
+ return L(Q(a));
201
+ },
202
+ hexToHsluv: function (a) {
203
+ return R(N(a));
204
+ },
205
+ hpluvToHex: function (a) {
206
+ return L(S(a));
207
+ },
208
+ hexToHpluv: function (a) {
209
+ return T(N(a));
210
+ },
211
+ lchToHpluv: K,
212
+ hpluvToLch: J,
213
+ lchToHsluv: I,
214
+ hsluvToLch: H,
215
+ lchToLuv: G,
216
+ luvToLch: F,
217
+ xyzToLuv: A,
218
+ luvToXyz: E,
219
+ xyzToRgb: t,
220
+ rgbToXyz: u,
221
+ lchToRgb: O,
222
+ rgbToLch: P,
223
+ };
224
+ })();