@gryt/theme 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,54 +1,149 @@
1
- function _(r) {
2
- return r <= 0.04045 ? r / 12.92 : ((r + 0.055) / 1.055) ** 2.4;
1
+ const ne = [
2
+ 0,
3
+ 0.1217,
4
+ 0.3812,
5
+ 0.6579,
6
+ 0.883,
7
+ 1.0304,
8
+ 1.1034,
9
+ 1.12,
10
+ 1.1025,
11
+ 1.0705,
12
+ 1.0376,
13
+ 1.0115,
14
+ 0.9949,
15
+ 0.987,
16
+ 0.9857,
17
+ 0.9881,
18
+ 0.992,
19
+ 0.9959,
20
+ 0.9989,
21
+ 1.0008,
22
+ 1.0016,
23
+ 1.0017,
24
+ 1.0014,
25
+ 1.0009,
26
+ 1.0004,
27
+ 1.0001,
28
+ 1
29
+ ], M = [
30
+ 0,
31
+ 0.0496,
32
+ 0.1585,
33
+ 0.2869,
34
+ 0.4135,
35
+ 0.5279,
36
+ 0.6263,
37
+ 0.7079,
38
+ 0.7741,
39
+ 0.8268,
40
+ 0.8681,
41
+ 0.9002,
42
+ 0.9249,
43
+ 0.9437,
44
+ 0.958,
45
+ 0.9688,
46
+ 0.9768,
47
+ 0.9829,
48
+ 0.9874,
49
+ 0.9907,
50
+ 0.9932,
51
+ 0.995,
52
+ 0.9963,
53
+ 0.9973,
54
+ 0.9981,
55
+ 0.9986,
56
+ 1
57
+ ], ce = {
58
+ /** Most interactions. */
59
+ spring: 500,
60
+ /** Drawer, where the travel is the width of a panel. */
61
+ springSoft: 700,
62
+ /**
63
+ * For something that travels further than its own width.
64
+ *
65
+ * A bottom sheet comes up from off the screen and covers most of it, which is
66
+ * a longer journey than a drawer's. Reusing `springSoft` there meant the same
67
+ * time over more distance, and it read as a snap.
68
+ */
69
+ springSlow: 900,
70
+ /** Colour changes, which should not feel sprung. */
71
+ fast: 150,
72
+ /**
73
+ * One pass of an indeterminate Progress bar across its track.
74
+ *
75
+ * Long enough to read as "working" rather than "flickering", short enough
76
+ * that a second pass starts before you wonder whether it has stopped.
77
+ */
78
+ sweep: 1400
79
+ }, ve = {
80
+ button: { hover: 1.03, press: 0.96 },
81
+ iconButton: { hover: 1.06, press: 0.94 },
82
+ checkbox: { hover: 1.08, press: 0.92 },
83
+ radio: { hover: 1.08, press: 0.92 },
84
+ switch: { hover: 1.05, press: 0.95 },
85
+ toggle: { hover: 1.06, press: 0.94 },
86
+ toast: { hover: 1.04, press: 0.96 },
87
+ sliderThumb: { hover: 1.12, press: 0.94 }
88
+ }, Re = 64;
89
+ function Ae(e, a) {
90
+ if (e.length === 0) return a;
91
+ if (a <= 0) return e[0];
92
+ if (a >= 1) return e[e.length - 1];
93
+ const n = (e.length - 1) * a, r = Math.floor(n), o = n - r, t = e[r], c = e[r + 1] ?? t;
94
+ return t + (c - t) * o;
95
+ }
96
+ function Y(e) {
97
+ return e <= 0.04045 ? e / 12.92 : ((e + 0.055) / 1.055) ** 2.4;
3
98
  }
4
- function A(r) {
5
- return r <= 31308e-7 ? 12.92 * r : 1.055 * r ** (1 / 2.4) - 0.055;
99
+ function $(e) {
100
+ return e <= 31308e-7 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - 0.055;
6
101
  }
7
- function x(r) {
8
- return Math.min(1, Math.max(0, r));
102
+ function w(e) {
103
+ return Math.min(1, Math.max(0, e));
9
104
  }
10
- function H(r) {
11
- const a = r.replace("#", ""), t = a.length === 3 ? a.split("").map((e) => e + e).join("") : a;
105
+ function v(e) {
106
+ const a = e.replace("#", ""), n = a.length === 3 ? a.split("").map((r) => r + r).join("") : a;
12
107
  return [
13
- parseInt(t.slice(0, 2), 16) / 255,
14
- parseInt(t.slice(2, 4), 16) / 255,
15
- parseInt(t.slice(4, 6), 16) / 255
108
+ parseInt(n.slice(0, 2), 16) / 255,
109
+ parseInt(n.slice(2, 4), 16) / 255,
110
+ parseInt(n.slice(4, 6), 16) / 255
16
111
  ];
17
112
  }
18
- function N([r, a, t]) {
19
- const e = (o) => Math.round(x(o) * 255).toString(16).padStart(2, "0");
20
- return `#${e(r)}${e(a)}${e(t)}`;
113
+ function B([e, a, n]) {
114
+ const r = (o) => Math.round(w(o) * 255).toString(16).padStart(2, "0");
115
+ return `#${r(e)}${r(a)}${r(n)}`;
21
116
  }
22
- function R(r) {
23
- const [a, t, e] = H(r).map(_), o = Math.cbrt(
24
- 0.4122214708 * a + 0.5363325363 * t + 0.0514459929 * e
117
+ function A(e) {
118
+ const [a, n, r] = v(e).map(Y), o = Math.cbrt(
119
+ 0.4122214708 * a + 0.5363325363 * n + 0.0514459929 * r
120
+ ), t = Math.cbrt(
121
+ 0.2119034982 * a + 0.6806995451 * n + 0.1073969566 * r
25
122
  ), c = Math.cbrt(
26
- 0.2119034982 * a + 0.6806995451 * t + 0.1073969566 * e
27
- ), n = Math.cbrt(
28
- 0.0883024619 * a + 0.2817188376 * t + 0.6299787005 * e
29
- ), d = 0.2104542553 * o + 0.793617785 * c - 0.0040720468 * n, f = 1.9779984951 * o - 2.428592205 * c + 0.4505937099 * n, g = 0.0259040371 * o + 0.7827717662 * c - 0.808675766 * n;
123
+ 0.0883024619 * a + 0.2817188376 * n + 0.6299787005 * r
124
+ ), s = 0.2104542553 * o + 0.793617785 * t - 0.0040720468 * c, i = 1.9779984951 * o - 2.428592205 * t + 0.4505937099 * c, g = 0.0259040371 * o + 0.7827717662 * t - 0.808675766 * c;
30
125
  return {
31
- l: d,
32
- c: Math.hypot(f, g),
33
- h: (Math.atan2(g, f) * 180 / Math.PI + 360) % 360
126
+ l: s,
127
+ c: Math.hypot(i, g),
128
+ h: (Math.atan2(g, i) * 180 / Math.PI + 360) % 360
34
129
  };
35
130
  }
36
- function m({ l: r, c: a, h: t }) {
37
- const e = a * Math.cos(t * Math.PI / 180), o = a * Math.sin(t * Math.PI / 180), c = (r + 0.3963377774 * e + 0.2158037573 * o) ** 3, n = (r - 0.1055613458 * e - 0.0638541728 * o) ** 3, d = (r - 0.0894841775 * e - 1.291485548 * o) ** 3;
38
- return N([
39
- A(x(4.0767416621 * c - 3.3077115913 * n + 0.2309699292 * d)),
40
- A(x(-1.2684380046 * c + 2.6097574011 * n - 0.3413193965 * d)),
41
- A(x(-0.0041960863 * c - 0.7034186147 * n + 1.707614701 * d))
131
+ function L({ l: e, c: a, h: n }) {
132
+ const r = a * Math.cos(n * Math.PI / 180), o = a * Math.sin(n * Math.PI / 180), t = (e + 0.3963377774 * r + 0.2158037573 * o) ** 3, c = (e - 0.1055613458 * r - 0.0638541728 * o) ** 3, s = (e - 0.0894841775 * r - 1.291485548 * o) ** 3;
133
+ return B([
134
+ $(w(4.0767416621 * t - 3.3077115913 * c + 0.2309699292 * s)),
135
+ $(w(-1.2684380046 * t + 2.6097574011 * c - 0.3413193965 * s)),
136
+ $(w(-0.0041960863 * t - 0.7034186147 * c + 1.707614701 * s))
42
137
  ]);
43
138
  }
44
- const Y = [0.195, 0.24, 0.27, 0.3, 0.33, 0.37, 0.43, 0.52], z = [0.014, 0.026, 0.04, 0.052, 0.062, 0.072, 0.084, 0.1];
45
- function h(r, a) {
46
- const { h: t } = R(r), e = Y.map((d, f) => m({ l: d, c: z[f], h: t }));
47
- e.push(r, a);
48
- const o = R(a).l, c = Math.min(0.95, Math.max(0.84, o + 0.04)), n = Math.min(0.98, Math.max(c + 0.06, 0.93));
49
- return e.push(m({ l: c, c: 0.11, h: t })), e.push(m({ l: n, c: 0.055, h: t })), e;
139
+ const oe = [0.195, 0.24, 0.27, 0.3, 0.33, 0.37, 0.43, 0.52], se = [0.014, 0.026, 0.04, 0.052, 0.062, 0.072, 0.084, 0.1];
140
+ function y(e, a) {
141
+ const { h: n } = A(e), r = oe.map((s, i) => L({ l: s, c: se[i], h: n }));
142
+ r.push(e, a);
143
+ const o = A(a).l, t = Math.min(0.95, Math.max(0.84, o + 0.04)), c = Math.min(0.98, Math.max(t + 0.06, 0.93));
144
+ return r.push(L({ l: t, c: 0.11, h: n })), r.push(L({ l: c, c: 0.055, h: n })), r;
50
145
  }
51
- const q = [
146
+ const fe = [
52
147
  0.187,
53
148
  0.231,
54
149
  0.245,
@@ -61,7 +156,7 @@ const q = [
61
156
  0.57,
62
157
  0.627,
63
158
  0.908
64
- ], K = [
159
+ ], de = [
65
160
  0.011,
66
161
  0.014,
67
162
  0.016,
@@ -75,36 +170,36 @@ const q = [
75
170
  0,
76
171
  8e-3
77
172
  ];
78
- function U(r) {
173
+ function z(e) {
79
174
  const a = {
80
- 0: r.bg,
81
- 1: r.surface,
82
- 2: r.surfaceRaised,
83
- 5: r.border,
84
- 10: r.muted,
85
- 11: r.text
86
- }, t = R(r.border).h;
87
- return q.map(
88
- (e, o) => a[o] ?? m({ l: e, c: K[o], h: t })
175
+ 0: e.bg,
176
+ 1: e.surface,
177
+ 2: e.surfaceRaised,
178
+ 5: e.border,
179
+ 10: e.muted,
180
+ 11: e.text
181
+ }, n = A(e.border).h;
182
+ return fe.map(
183
+ (r, o) => a[o] ?? L({ l: r, c: de[o], h: n })
89
184
  );
90
185
  }
91
- function S(r, a) {
92
- const t = H(a);
93
- return r.map((e) => {
94
- const o = H(e);
95
- let c = 0;
96
- for (let u = 0; u < 3; u++) {
97
- const i = o[u], p = t[u];
98
- i > p ? c = Math.max(c, p < 1 ? (i - p) / (1 - p) : 0) : i < p && (c = Math.max(c, p > 0 ? (p - i) / p : 0));
186
+ function S(e, a) {
187
+ const n = v(a);
188
+ return e.map((r) => {
189
+ const o = v(r);
190
+ let t = 0;
191
+ for (let l = 0; l < 3; l++) {
192
+ const u = o[l], d = n[l];
193
+ u > d ? t = Math.max(t, d < 1 ? (u - d) / (1 - d) : 0) : u < d && (t = Math.max(t, d > 0 ? (d - u) / d : 0));
99
194
  }
100
- if (c < 1e-6) return "transparent";
101
- const n = N(
102
- o.map((u, i) => x(t[i] + (u - t[i]) / c))
103
- ), [d, f, g] = H(n).map((u) => Math.round(u * 255));
104
- return `rgb(${d} ${f} ${g} / ${(c * 100).toFixed(1)}%)`;
195
+ if (t < 1e-6) return "transparent";
196
+ const c = B(
197
+ o.map((l, u) => w(n[u] + (l - n[u]) / t))
198
+ ), [s, i, g] = v(c).map((l) => Math.round(l * 255));
199
+ return `rgb(${s} ${i} ${g} / ${(t * 100).toFixed(1)}%)`;
105
200
  });
106
201
  }
107
- const J = [
202
+ const ie = [
108
203
  0.962,
109
204
  1,
110
205
  0.978,
@@ -117,7 +212,7 @@ const J = [
117
212
  0.61,
118
213
  0.48,
119
214
  0.25
120
- ], X = [
215
+ ], ue = [
121
216
  6e-3,
122
217
  0,
123
218
  4e-3,
@@ -130,35 +225,35 @@ const J = [
130
225
  0.014,
131
226
  0.012,
132
227
  0.014
133
- ], Q = [0.975, 0.955, 0.93, 0.905, 0.878, 0.845, 0.795, 0.72], V = [0.012, 0.024, 0.038, 0.05, 0.062, 0.074, 0.09, 0.11];
134
- function F(r) {
228
+ ], ge = [0.975, 0.955, 0.93, 0.905, 0.878, 0.845, 0.795, 0.72], le = [0.012, 0.024, 0.038, 0.05, 0.062, 0.074, 0.09, 0.11];
229
+ function W(e) {
135
230
  const a = {
136
- 0: r.bg,
137
- 1: r.surface,
138
- 2: r.surfaceRaised,
139
- 5: r.border,
140
- 10: r.muted,
141
- 11: r.text
142
- }, t = R(r.border).h;
143
- return J.map(
144
- (e, o) => a[o] ?? m({ l: e, c: X[o], h: t })
231
+ 0: e.bg,
232
+ 1: e.surface,
233
+ 2: e.surfaceRaised,
234
+ 5: e.border,
235
+ 10: e.muted,
236
+ 11: e.text
237
+ }, n = A(e.border).h;
238
+ return ie.map(
239
+ (r, o) => a[o] ?? L({ l: r, c: ue[o], h: n })
145
240
  );
146
241
  }
147
- function b(r) {
148
- const { l: a, c: t, h: e } = R(r), o = Q.map(
149
- (c, n) => m({ l: c, c: V[n], h: e })
242
+ function m(e) {
243
+ const { l: a, c: n, h: r } = A(e), o = ge.map(
244
+ (t, c) => L({ l: t, c: le[c], h: r })
150
245
  );
151
- return o.push(r), o.push(m({ l: Math.max(0, a - 0.07), c: t, h: e })), o.push(m({ l: 0.46, c: 0.15, h: e })), o.push(m({ l: 0.33, c: 0.1, h: e })), o;
246
+ return o.push(e), o.push(L({ l: Math.max(0, a - 0.07), c: n, h: r })), o.push(L({ l: 0.46, c: 0.15, h: r })), o.push(L({ l: 0.33, c: 0.1, h: r })), o;
152
247
  }
153
- function E(r) {
154
- const [a, t, e] = H(r).map(_);
155
- return 0.2126 * a + 0.7152 * t + 0.0722 * e;
248
+ function F(e) {
249
+ const [a, n, r] = v(e).map(Y);
250
+ return 0.2126 * a + 0.7152 * n + 0.0722 * r;
156
251
  }
157
- function se(r, a) {
158
- const t = E(r), e = E(a);
159
- return (Math.max(t, e) + 0.05) / (Math.min(t, e) + 0.05);
252
+ function Se(e, a) {
253
+ const n = F(e), r = F(a);
254
+ return (Math.max(n, r) + 0.05) / (Math.min(n, r) + 0.05);
160
255
  }
161
- const s = {
256
+ const f = {
162
257
  color: {
163
258
  bg: "#111318",
164
259
  surface: "#1a1d24",
@@ -189,120 +284,138 @@ const s = {
189
284
  xl: 28,
190
285
  full: 999
191
286
  }
192
- }, l = {
287
+ }, h = {
193
288
  bg: "#f1f2f7",
194
289
  surface: "#ffffff",
195
290
  surfaceRaised: "#f7f8fb",
196
291
  border: "#dadde6",
197
292
  muted: "#5b5d65",
198
293
  text: "#1f2129"
199
- }, C = {
200
- neutral: U({
201
- bg: s.color.bg,
202
- surface: s.color.surface,
203
- surfaceRaised: s.color.surfaceRaised,
204
- border: s.color.border,
205
- muted: s.color.muted,
206
- text: s.color.text
294
+ }, O = {
295
+ neutral: z({
296
+ bg: f.color.bg,
297
+ surface: f.color.surface,
298
+ surfaceRaised: f.color.surfaceRaised,
299
+ border: f.color.border,
300
+ muted: f.color.muted,
301
+ text: f.color.text
207
302
  }),
208
- accent: h(s.color.accent, s.color.accentLight),
209
- secondary: h(
210
- s.color.secondary,
211
- s.color.secondaryLight
303
+ accent: y(f.color.accent, f.color.accentLight),
304
+ secondary: y(
305
+ f.color.secondary,
306
+ f.color.secondaryLight
212
307
  ),
213
- success: h(s.color.success, s.color.success),
214
- danger: h(s.color.danger, s.color.dangerLight),
215
- warning: h(s.color.warning, s.color.warning)
216
- }, T = {
217
- neutral: F(l),
218
- accent: b(s.color.accent),
219
- secondary: b(s.color.secondary),
220
- success: b(s.color.success),
221
- danger: b(s.color.danger),
222
- warning: b(s.color.warning)
223
- }, O = T.neutral[3], de = {
224
- neutral: S(C.neutral, s.color.bg),
225
- accent: S(C.accent, s.color.bg)
226
- }, fe = {
227
- neutral: S(T.neutral, l.bg),
228
- accent: S(T.accent, l.bg)
308
+ success: y(f.color.success, f.color.success),
309
+ danger: y(f.color.danger, f.color.dangerLight),
310
+ warning: y(f.color.warning, f.color.warning)
311
+ }, G = {
312
+ neutral: W(h),
313
+ accent: m(f.color.accent),
314
+ secondary: m(f.color.secondary),
315
+ success: m(f.color.success),
316
+ danger: m(f.color.danger),
317
+ warning: m(f.color.warning)
318
+ }, K = G.neutral[3], ke = {
319
+ neutral: S(O.neutral, f.color.bg),
320
+ accent: S(O.accent, f.color.bg)
321
+ }, Te = {
322
+ neutral: S(G.neutral, h.bg),
323
+ accent: S(G.accent, h.bg)
229
324
  };
230
- function ue(r = {}) {
231
- const a = r.appearance === "light", e = { ...a ? {
232
- ...s.color,
233
- ...l,
234
- surfaceHover: O
235
- } : s.color, ...r.color }, o = { ...s.radius, ...r.radius }, c = {
236
- bg: e.bg,
237
- surface: e.surface,
238
- surfaceRaised: e.surfaceRaised,
239
- border: e.border,
240
- muted: e.muted,
241
- text: e.text
242
- }, n = a ? {
243
- neutral: F(c),
244
- accent: b(e.accent),
245
- secondary: b(e.secondary),
246
- success: b(e.success),
247
- danger: b(e.danger),
248
- warning: b(e.warning)
325
+ function Me(e = {}) {
326
+ const a = e.appearance === "light", r = { ...a ? {
327
+ ...f.color,
328
+ ...h,
329
+ surfaceHover: K
330
+ } : f.color, ...e.color }, o = { ...f.radius, ...e.radius }, t = {
331
+ bg: r.bg,
332
+ surface: r.surface,
333
+ surfaceRaised: r.surfaceRaised,
334
+ border: r.border,
335
+ muted: r.muted,
336
+ text: r.text
337
+ }, c = a ? {
338
+ neutral: W(t),
339
+ accent: m(r.accent),
340
+ secondary: m(r.secondary),
341
+ success: m(r.success),
342
+ danger: m(r.danger),
343
+ warning: m(r.warning)
249
344
  } : {
250
- neutral: U(c),
251
- accent: h(e.accent, e.accentLight),
252
- secondary: h(e.secondary, e.secondaryLight),
253
- success: h(e.success, e.success),
254
- danger: h(e.danger, e.dangerLight),
255
- warning: h(e.warning, e.warning)
256
- }, d = {};
257
- for (const [f, g] of Object.entries(n))
258
- g.forEach((u, i) => {
259
- d[`--gryt-${f}-${i + 1}`] = u, d[`--color-gryt-${f}-${i + 1}`] = u;
345
+ neutral: z(t),
346
+ accent: y(r.accent, r.accentLight),
347
+ secondary: y(r.secondary, r.secondaryLight),
348
+ success: y(r.success, r.success),
349
+ danger: y(r.danger, r.dangerLight),
350
+ warning: y(r.warning, r.warning)
351
+ }, s = {};
352
+ for (const [u, d] of Object.entries(c))
353
+ d.forEach((b, k) => {
354
+ s[`--gryt-${u}-${k + 1}`] = b, s[`--color-gryt-${u}-${k + 1}`] = b;
260
355
  });
261
- for (const f of ["neutral", "accent"])
262
- S(n[f], e.bg).forEach((g, u) => {
263
- d[`--gryt-${f}-a${u + 1}`] = g, d[`--color-gryt-${f}-a${u + 1}`] = g;
356
+ for (const u of ["neutral", "accent"])
357
+ S(c[u], r.bg).forEach((d, b) => {
358
+ s[`--gryt-${u}-a${b + 1}`] = d, s[`--color-gryt-${u}-a${b + 1}`] = d;
264
359
  });
360
+ const i = (u) => `linear(${u.map((d) => Number(d.toFixed(4))).join(", ")})`, g = {};
361
+ if (e.motion !== void 0) {
362
+ const { scale: u, curve: d } = e.motion;
363
+ if (u !== 1)
364
+ for (const [b, k] of Object.entries(ce)) {
365
+ const ae = b.replace(/[A-Z]/g, (te) => `-${te.toLowerCase()}`);
366
+ g[`--gryt-dur-${ae}`] = `${Math.round(k * u)}ms`;
367
+ }
368
+ if (Array.isArray(d)) {
369
+ const b = `cubic-bezier(${d.join(", ")})`;
370
+ g["--ease-spring"] = b, g["--ease-spring-tight"] = b;
371
+ } else d === "smooth" ? (g["--ease-spring"] = i(M), g["--ease-spring-tight"] = i(M)) : d === "linear" ? (g["--ease-spring"] = "linear", g["--ease-spring-tight"] = "linear") : (g["--ease-spring"] = i(ne), g["--ease-spring-tight"] = i(M));
372
+ }
373
+ const l = {};
374
+ for (const [u, d] of Object.entries(e.fonts ?? {}))
375
+ typeof d == "string" && d.trim() !== "" && (l[`--gryt-font-${u}`] = d);
265
376
  return {
266
- ...d,
267
- "--gryt-bg": e.bg,
268
- "--gryt-surface": e.surface,
269
- "--gryt-surface-raised": e.surfaceRaised,
270
- "--gryt-surface-hover": e.surfaceHover,
271
- "--gryt-border": e.border,
272
- "--gryt-text": e.text,
273
- "--gryt-muted": e.muted,
274
- "--gryt-accent": e.accent,
275
- "--gryt-accent-light": e.accentLight,
276
- "--gryt-secondary": e.secondary,
277
- "--gryt-secondary-light": e.secondaryLight,
278
- "--gryt-success": e.success,
279
- "--gryt-danger": e.danger,
280
- "--gryt-danger-light": e.dangerLight,
281
- "--gryt-warning": e.warning,
282
- "--gryt-on-accent": e.onAccent,
283
- "--gryt-on-secondary": e.onSecondary,
284
- "--gryt-on-danger": e.onDanger,
377
+ ...s,
378
+ ...g,
379
+ ...l,
380
+ "--gryt-bg": r.bg,
381
+ "--gryt-surface": r.surface,
382
+ "--gryt-surface-raised": r.surfaceRaised,
383
+ "--gryt-surface-hover": r.surfaceHover,
384
+ "--gryt-border": r.border,
385
+ "--gryt-text": r.text,
386
+ "--gryt-muted": r.muted,
387
+ "--gryt-accent": r.accent,
388
+ "--gryt-accent-light": r.accentLight,
389
+ "--gryt-secondary": r.secondary,
390
+ "--gryt-secondary-light": r.secondaryLight,
391
+ "--gryt-success": r.success,
392
+ "--gryt-danger": r.danger,
393
+ "--gryt-danger-light": r.dangerLight,
394
+ "--gryt-warning": r.warning,
395
+ "--gryt-on-accent": r.onAccent,
396
+ "--gryt-on-secondary": r.onSecondary,
397
+ "--gryt-on-danger": r.onDanger,
285
398
  // Tailwind's @theme emits --color-* names, and the utilities compile
286
399
  // against those. Both sets have to move together or an override would
287
400
  // change the raw var but not bg-gryt-accent.
288
- "--color-gryt-bg": e.bg,
289
- "--color-gryt-surface": e.surface,
290
- "--color-gryt-surface-raised": e.surfaceRaised,
291
- "--color-gryt-surface-hover": e.surfaceHover,
292
- "--color-gryt-border": e.border,
293
- "--color-gryt-text": e.text,
294
- "--color-gryt-muted": e.muted,
295
- "--color-gryt-accent": e.accent,
296
- "--color-gryt-accent-light": e.accentLight,
297
- "--color-gryt-secondary": e.secondary,
298
- "--color-gryt-secondary-light": e.secondaryLight,
299
- "--color-gryt-success": e.success,
300
- "--color-gryt-danger": e.danger,
301
- "--color-gryt-danger-light": e.dangerLight,
302
- "--color-gryt-warning": e.warning,
303
- "--color-gryt-on-accent": e.onAccent,
304
- "--color-gryt-on-secondary": e.onSecondary,
305
- "--color-gryt-on-danger": e.onDanger,
401
+ "--color-gryt-bg": r.bg,
402
+ "--color-gryt-surface": r.surface,
403
+ "--color-gryt-surface-raised": r.surfaceRaised,
404
+ "--color-gryt-surface-hover": r.surfaceHover,
405
+ "--color-gryt-border": r.border,
406
+ "--color-gryt-text": r.text,
407
+ "--color-gryt-muted": r.muted,
408
+ "--color-gryt-accent": r.accent,
409
+ "--color-gryt-accent-light": r.accentLight,
410
+ "--color-gryt-secondary": r.secondary,
411
+ "--color-gryt-secondary-light": r.secondaryLight,
412
+ "--color-gryt-success": r.success,
413
+ "--color-gryt-danger": r.danger,
414
+ "--color-gryt-danger-light": r.dangerLight,
415
+ "--color-gryt-warning": r.warning,
416
+ "--color-gryt-on-accent": r.onAccent,
417
+ "--color-gryt-on-secondary": r.onSecondary,
418
+ "--color-gryt-on-danger": r.onDanger,
306
419
  "--gryt-radius-sm": `${o.sm}px`,
307
420
  "--gryt-radius-md": `${o.md}px`,
308
421
  "--gryt-radius-lg": `${o.lg}px`,
@@ -310,7 +423,7 @@ function ue(r = {}) {
310
423
  "--gryt-radius-full": `${o.full}px`
311
424
  };
312
425
  }
313
- const v = [
426
+ const T = [
314
427
  "accent",
315
428
  "accentLight",
316
429
  "secondary",
@@ -322,7 +435,7 @@ const v = [
322
435
  "onAccent",
323
436
  "onSecondary",
324
437
  "onDanger"
325
- ], B = [
438
+ ], V = [
326
439
  "bg",
327
440
  "surface",
328
441
  "surfaceRaised",
@@ -330,66 +443,95 @@ const v = [
330
443
  "border",
331
444
  "muted",
332
445
  "text"
333
- ], D = ["sm", "md", "lg", "xl", "full"], Z = 60;
334
- function M(r) {
335
- return r.replace(/\s+/g, " ").trim().slice(0, Z);
446
+ ], E = ["sm", "md", "lg", "xl", "full"], N = ["body", "display", "mono"], X = ["spring", "smooth", "linear"], _ = {
447
+ body: '"Atkinson Hyperlegible Next", ui-sans-serif, system-ui, sans-serif',
448
+ display: '"Atkinson Hyperlegible Next", ui-sans-serif, system-ui, sans-serif',
449
+ mono: '"Atkinson Hyperlegible Mono", ui-monospace, Menlo, Consolas, monospace'
450
+ }, x = { scale: 1, curve: "spring" }, q = 3;
451
+ function J(e) {
452
+ return Array.isArray(e);
453
+ }
454
+ function Z(e) {
455
+ if (!Array.isArray(e) || e.length !== 4) return !1;
456
+ const [a, n, r, o] = e;
457
+ return ![a, n, r, o].every((t) => typeof t == "number" && Number.isFinite(t)) || a < 0 || a > 1 || r < 0 || r > 1 ? !1 : Math.abs(n) <= 10 && Math.abs(o) <= 10;
458
+ }
459
+ const be = 200;
460
+ function Q(e) {
461
+ const a = e.trim();
462
+ return a === "" || a.length > be ? !1 : !/[;{}()<>\\]|\/\*|@import|url\s*\(/i.test(a);
463
+ }
464
+ const he = 60;
465
+ function C(e) {
466
+ return e.replace(/\s+/g, " ").trim().slice(0, he);
336
467
  }
337
- const L = {
468
+ const H = {
338
469
  hue: {
339
- accent: s.color.accent,
340
- accentLight: s.color.accentLight,
341
- secondary: s.color.secondary,
342
- secondaryLight: s.color.secondaryLight,
343
- success: s.color.success,
344
- danger: s.color.danger,
345
- dangerLight: s.color.dangerLight,
346
- warning: s.color.warning,
347
- onAccent: s.color.onAccent,
348
- onSecondary: s.color.onSecondary,
349
- onDanger: s.color.onDanger
470
+ accent: f.color.accent,
471
+ accentLight: f.color.accentLight,
472
+ secondary: f.color.secondary,
473
+ secondaryLight: f.color.secondaryLight,
474
+ success: f.color.success,
475
+ danger: f.color.danger,
476
+ dangerLight: f.color.dangerLight,
477
+ warning: f.color.warning,
478
+ onAccent: f.color.onAccent,
479
+ onSecondary: f.color.onSecondary,
480
+ onDanger: f.color.onDanger
350
481
  },
351
482
  lightHue: null,
352
483
  dark: {
353
- bg: s.color.bg,
354
- surface: s.color.surface,
355
- surfaceRaised: s.color.surfaceRaised,
356
- surfaceHover: s.color.surfaceHover,
357
- border: s.color.border,
358
- muted: s.color.muted,
359
- text: s.color.text
484
+ bg: f.color.bg,
485
+ surface: f.color.surface,
486
+ surfaceRaised: f.color.surfaceRaised,
487
+ surfaceHover: f.color.surfaceHover,
488
+ border: f.color.border,
489
+ muted: f.color.muted,
490
+ text: f.color.text
360
491
  },
361
492
  light: {
362
- bg: l.bg,
363
- surface: l.surface,
364
- surfaceRaised: l.surfaceRaised,
365
- surfaceHover: O,
366
- border: l.border,
367
- muted: l.muted,
368
- text: l.text
493
+ bg: h.bg,
494
+ surface: h.surface,
495
+ surfaceRaised: h.surfaceRaised,
496
+ surfaceHover: K,
497
+ border: h.border,
498
+ muted: h.muted,
499
+ text: h.text
369
500
  },
370
- radius: { ...s.radius }
501
+ radius: { ...f.radius }
371
502
  };
372
- function G(r) {
503
+ function I(e) {
373
504
  return {
374
- ...r.name === void 0 ? {} : { name: r.name },
375
- hue: { ...r.hue },
376
- lightHue: r.lightHue === null ? null : { ...r.lightHue },
377
- dark: { ...r.dark },
378
- light: { ...r.light },
379
- radius: { ...r.radius }
505
+ ...e.name === void 0 ? {} : { name: e.name },
506
+ hue: { ...e.hue },
507
+ lightHue: e.lightHue === null ? null : { ...e.lightHue },
508
+ dark: { ...e.dark },
509
+ light: { ...e.light },
510
+ radius: { ...e.radius },
511
+ ...e.fonts == null ? {} : { fonts: { ...e.fonts } },
512
+ ...e.motion == null ? {} : {
513
+ motion: {
514
+ scale: e.motion.scale,
515
+ curve: J(e.motion.curve) ? [...e.motion.curve] : e.motion.curve
516
+ }
517
+ }
380
518
  };
381
519
  }
382
- function ee(r, a) {
383
- return a === "light" && r.lightHue !== null ? r.lightHue : r.hue;
520
+ function ye(e, a) {
521
+ return a === "light" && e.lightHue !== null ? e.lightHue : e.hue;
384
522
  }
385
- function ge(r, a) {
523
+ function $e(e, a) {
386
524
  return {
387
525
  appearance: a,
388
- color: { ...ee(r, a), ...r[a] },
389
- radius: { ...r.radius }
526
+ color: { ...ye(e, a), ...e[a] },
527
+ radius: { ...e.radius },
528
+ // Fonts do not vary by appearance — a theme that changed typeface when
529
+ // somebody flipped to light would be two themes. Nor does motion.
530
+ ...e.fonts == null ? {} : { fonts: { ...e.fonts } },
531
+ ...e.motion == null ? {} : { motion: e.motion }
390
532
  };
391
533
  }
392
- const w = {
534
+ const R = {
393
535
  accent: "accent",
394
536
  accentLight: "accent-light",
395
537
  secondary: "secondary",
@@ -401,7 +543,7 @@ const w = {
401
543
  onAccent: "on-accent",
402
544
  onSecondary: "on-secondary",
403
545
  onDanger: "on-danger"
404
- }, j = {
546
+ }, ee = {
405
547
  bg: "bg",
406
548
  surface: "surface",
407
549
  surfaceRaised: "raised",
@@ -409,116 +551,156 @@ const w = {
409
551
  border: "border",
410
552
  muted: "muted",
411
553
  text: "text"
412
- }, re = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
413
- function W(r) {
414
- return re.test(r.trim());
554
+ }, me = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
555
+ function re(e) {
556
+ return me.test(e.trim());
415
557
  }
416
- function $(r) {
417
- const a = r.trim().toLowerCase();
558
+ function P(e) {
559
+ const a = e.trim().toLowerCase();
418
560
  return a.length === 4 ? `#${a[1]}${a[1]}${a[2]}${a[2]}${a[3]}${a[3]}` : a;
419
561
  }
420
- function ie(r, a) {
421
- const t = new URLSearchParams(), e = (c) => $(c).slice(1), o = M(r.name ?? "");
422
- o !== "" && t.set("name", o);
423
- for (const c of v)
424
- r.hue[c] !== L.hue[c] && t.set(w[c], e(r.hue[c]));
425
- if (r.lightHue !== null)
426
- for (const c of v)
427
- t.set(`lh-${w[c]}`, e(r.lightHue[c]));
428
- for (const c of ["dark", "light"]) {
429
- const n = c === "dark" ? "d" : "l";
430
- for (const d of B)
431
- r[c][d] !== L[c][d] && t.set(`${n}-${j[d]}`, e(r[c][d]));
562
+ function De(e, a) {
563
+ const n = new URLSearchParams(), r = (t) => P(t).slice(1), o = C(e.name ?? "");
564
+ o !== "" && n.set("name", o);
565
+ for (const t of T)
566
+ e.hue[t] !== H.hue[t] && n.set(R[t], r(e.hue[t]));
567
+ if (e.lightHue !== null)
568
+ for (const t of T)
569
+ n.set(`lh-${R[t]}`, r(e.lightHue[t]));
570
+ for (const t of ["dark", "light"]) {
571
+ const c = t === "dark" ? "d" : "l";
572
+ for (const s of V)
573
+ e[t][s] !== H[t][s] && n.set(`${c}-${ee[s]}`, r(e[t][s]));
432
574
  }
433
- for (const c of D)
434
- r.radius[c] !== L.radius[c] && t.set(`r-${c}`, String(r.radius[c]));
435
- return a === "light" && t.set("mode", "light"), t;
575
+ for (const t of E)
576
+ e.radius[t] !== H.radius[t] && n.set(`r-${t}`, String(e.radius[t]));
577
+ if (e.motion != null && (e.motion.scale !== x.scale && n.set("m-scale", String(e.motion.scale)), e.motion.curve !== x.curve && n.set(
578
+ "m-curve",
579
+ J(e.motion.curve) ? e.motion.curve.join(",") : e.motion.curve
580
+ )), e.fonts != null)
581
+ for (const t of N)
582
+ e.fonts[t] !== _[t] && n.set(`f-${t}`, e.fonts[t]);
583
+ return a === "light" && n.set("mode", "light"), n;
436
584
  }
437
- function le(r) {
438
- const a = r.trim();
585
+ function Ge(e) {
586
+ const a = e.trim();
439
587
  if (a === "") return null;
440
- if (a.startsWith("{")) return ce(a);
441
- const t = a.includes("?") ? a.slice(a.indexOf("?") + 1) : a;
442
- return ae(new URLSearchParams(t));
588
+ if (a.startsWith("{")) return Le(a);
589
+ const n = a.includes("?") ? a.slice(a.indexOf("?") + 1) : a;
590
+ return pe(new URLSearchParams(n));
443
591
  }
444
- function ae(r) {
445
- const a = G(L);
446
- let t = !1;
447
- const e = (c) => {
448
- const n = r.get(c);
449
- if (n === null) return null;
450
- const d = n.startsWith("#") ? n : `#${n}`;
451
- return W(d) ? (t = !0, $(d)) : null;
452
- }, o = M(r.get("name") ?? "");
453
- o !== "" && (a.name = o, t = !0);
454
- for (const c of v) {
455
- const n = e(w[c]);
456
- n !== null && (a.hue[c] = n);
592
+ function pe(e) {
593
+ const a = I(H);
594
+ let n = !1;
595
+ const r = (t) => {
596
+ const c = e.get(t);
597
+ if (c === null) return null;
598
+ const s = c.startsWith("#") ? c : `#${c}`;
599
+ return re(s) ? (n = !0, P(s)) : null;
600
+ }, o = C(e.get("name") ?? "");
601
+ o !== "" && (a.name = o, n = !0);
602
+ for (const t of T) {
603
+ const c = r(R[t]);
604
+ c !== null && (a.hue[t] = c);
605
+ }
606
+ if (e.has(`lh-${R.accent}`)) {
607
+ const t = { ...a.hue };
608
+ for (const c of T) {
609
+ const s = r(`lh-${R[c]}`);
610
+ s !== null && (t[c] = s);
611
+ }
612
+ a.lightHue = t;
457
613
  }
458
- if (r.has(`lh-${w.accent}`)) {
459
- const c = { ...a.hue };
460
- for (const n of v) {
461
- const d = e(`lh-${w[n]}`);
462
- d !== null && (c[n] = d);
614
+ for (const t of ["dark", "light"]) {
615
+ const c = t === "dark" ? "d" : "l";
616
+ for (const s of V) {
617
+ const i = r(`${c}-${ee[s]}`);
618
+ i !== null && (a[t][s] = i);
463
619
  }
464
- a.lightHue = c;
465
620
  }
466
- for (const c of ["dark", "light"]) {
467
- const n = c === "dark" ? "d" : "l";
468
- for (const d of B) {
469
- const f = e(`${n}-${j[d]}`);
470
- f !== null && (a[c][d] = f);
621
+ for (const t of E) {
622
+ const c = Number(e.get(`r-${t}`));
623
+ Number.isFinite(c) && c >= 0 && c <= 999 && e.has(`r-${t}`) && (a.radius[t] = Math.round(c), n = !0);
624
+ }
625
+ {
626
+ const t = e.get("m-scale");
627
+ if (t !== null) {
628
+ const s = Number(t);
629
+ Number.isFinite(s) && s >= 0 && s <= q && (a.motion = { ...a.motion ?? x, scale: s }, n = !0);
471
630
  }
631
+ const c = e.get("m-curve");
632
+ if (c !== null)
633
+ if (X.includes(c))
634
+ a.motion = {
635
+ ...a.motion ?? x,
636
+ curve: c
637
+ }, n = !0;
638
+ else {
639
+ const s = c.split(",").map(Number);
640
+ Z(s) && (a.motion = { ...a.motion ?? x, curve: s }, n = !0);
641
+ }
472
642
  }
473
- for (const c of D) {
474
- const n = Number(r.get(`r-${c}`));
475
- Number.isFinite(n) && n >= 0 && n <= 999 && r.has(`r-${c}`) && (a.radius[c] = Math.round(n), t = !0);
643
+ for (const t of N) {
644
+ const c = e.get(`f-${t}`);
645
+ c !== null && Q(c) && (a.fonts = { ...a.fonts ?? _, [t]: c.trim() }, n = !0);
476
646
  }
477
- return t ? {
647
+ return n ? {
478
648
  theme: a,
479
- appearance: r.get("mode") === "light" ? "light" : "dark"
649
+ appearance: e.get("mode") === "light" ? "light" : "dark"
480
650
  } : null;
481
651
  }
482
- function ce(r) {
652
+ function Le(e) {
483
653
  let a;
484
654
  try {
485
- a = JSON.parse(r);
655
+ a = JSON.parse(e);
486
656
  } catch {
487
657
  return null;
488
658
  }
489
659
  if (typeof a != "object" || a === null) return null;
490
- const t = a, e = G(L);
660
+ const n = a, r = I(H);
491
661
  let o = !1;
492
- const c = (n, d) => {
493
- if (!(typeof n != "object" || n === null))
494
- for (const [f, g] of Object.entries(n))
495
- typeof g == "string" && W(g) && f in d && (d[f] = $(g), o = !0);
662
+ const t = (c, s) => {
663
+ if (!(typeof c != "object" || c === null))
664
+ for (const [i, g] of Object.entries(c))
665
+ typeof g == "string" && re(g) && i in s && (s[i] = P(g), o = !0);
496
666
  };
497
- if (typeof t.name == "string") {
498
- const n = M(t.name);
499
- n !== "" && (e.name = n, o = !0);
667
+ if (typeof n.name == "string") {
668
+ const c = C(n.name);
669
+ c !== "" && (r.name = c, o = !0);
670
+ }
671
+ if (t(n.hue, r.hue), t(n.dark, r.dark), t(n.light, r.light), typeof n.lightHue == "object" && n.lightHue !== null) {
672
+ const c = { ...r.hue };
673
+ t(n.lightHue, c), r.lightHue = c;
500
674
  }
501
- if (c(t.hue, e.hue), c(t.dark, e.dark), c(t.light, e.light), typeof t.lightHue == "object" && t.lightHue !== null) {
502
- const n = { ...e.hue };
503
- c(t.lightHue, n), e.lightHue = n;
675
+ if (typeof n.motion == "object" && n.motion !== null) {
676
+ const c = n.motion, s = Number(c.scale);
677
+ Number.isFinite(s) && s >= 0 && s <= q && (r.motion = { ...r.motion ?? x, scale: s }, o = !0), typeof c.curve == "string" ? X.includes(c.curve) && (r.motion = {
678
+ ...r.motion ?? x,
679
+ curve: c.curve
680
+ }, o = !0) : Z(c.curve) && (r.motion = { ...r.motion ?? x, curve: c.curve }, o = !0);
504
681
  }
505
- if (typeof t.radius == "object" && t.radius !== null)
506
- for (const [n, d] of Object.entries(
507
- t.radius
682
+ if (typeof n.fonts == "object" && n.fonts !== null)
683
+ for (const [c, s] of Object.entries(
684
+ n.fonts
685
+ ))
686
+ N.includes(c) && (typeof s != "string" || !Q(s) || (r.fonts = { ...r.fonts ?? _, [c]: s.trim() }, o = !0));
687
+ if (typeof n.radius == "object" && n.radius !== null)
688
+ for (const [c, s] of Object.entries(
689
+ n.radius
508
690
  )) {
509
- const f = Number(d);
510
- D.includes(n) && Number.isFinite(f) && f >= 0 && f <= 999 && (e.radius[n] = Math.round(f), o = !0);
691
+ const i = Number(s);
692
+ E.includes(c) && Number.isFinite(i) && i >= 0 && i <= 999 && (r.radius[c] = Math.round(i), o = !0);
511
693
  }
512
- return o ? { theme: e, appearance: "dark" } : null;
694
+ return o ? { theme: r, appearance: "dark" } : null;
513
695
  }
514
- const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg: 14, xl: 18, full: 999 }, I = { sm: 4, md: 6, lg: 10, xl: 14, full: 6 }, te = { sm: 6, md: 8, lg: 10, xl: 14, full: 10 }, P = { sm: 2, md: 4, lg: 6, xl: 8, full: 4 }, ne = { sm: 8, md: 8, lg: 8, xl: 8, full: 8 }, oe = [
696
+ const p = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, D = { sm: 6, md: 8, lg: 14, xl: 18, full: 999 }, U = { sm: 4, md: 6, lg: 10, xl: 14, full: 6 }, xe = { sm: 6, md: 8, lg: 10, xl: 14, full: 10 }, j = { sm: 2, md: 4, lg: 6, xl: 8, full: 4 }, He = { sm: 8, md: 8, lg: 8, xl: 8, full: 8 }, we = [
515
697
  {
516
698
  id: "gryt",
517
699
  name: "Gryt",
518
700
  note: "What the library ships, from the Gryt code-theme.",
519
701
  group: "Gryt",
520
702
  source: "github.com/Gryt-chat/code-theme",
521
- theme: L
703
+ theme: H
522
704
  },
523
705
  {
524
706
  /* Credits to Carlo, who made this in the generator and sent the link.
@@ -531,7 +713,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
531
713
  note: "The shipped palette, every corner at eight pixels. Made by Carlo.",
532
714
  group: "Gryt",
533
715
  source: "Carlo",
534
- theme: { ...G(L), name: "Gryt Rounded", radius: ne }
716
+ theme: { ...I(H), name: "Gryt Rounded", radius: He }
535
717
  },
536
718
  {
537
719
  id: "ember",
@@ -572,7 +754,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
572
754
  muted: "#6b5b50",
573
755
  text: "#241a14"
574
756
  },
575
- radius: y
757
+ radius: p
576
758
  }
577
759
  },
578
760
  {
@@ -614,7 +796,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
614
796
  muted: "#5b5b63",
615
797
  text: "#17171a"
616
798
  },
617
- radius: k
799
+ radius: D
618
800
  }
619
801
  },
620
802
  /*
@@ -682,7 +864,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
682
864
  muted: "#765b61",
683
865
  text: "#31151d"
684
866
  },
685
- radius: y
867
+ radius: p
686
868
  }
687
869
  },
688
870
  {
@@ -725,7 +907,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
725
907
  muted: "#6a5f69",
726
908
  text: "#261b26"
727
909
  },
728
- radius: y
910
+ radius: p
729
911
  }
730
912
  },
731
913
  {
@@ -768,7 +950,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
768
950
  muted: "#705d63",
769
951
  text: "#2c191f"
770
952
  },
771
- radius: y
953
+ radius: p
772
954
  }
773
955
  },
774
956
  {
@@ -811,7 +993,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
811
993
  muted: "#606272",
812
994
  text: "#1c1d2f"
813
995
  },
814
- radius: y
996
+ radius: p
815
997
  }
816
998
  },
817
999
  {
@@ -854,7 +1036,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
854
1036
  muted: "#616369",
855
1037
  text: "#1d1f26"
856
1038
  },
857
- radius: y
1039
+ radius: p
858
1040
  }
859
1041
  },
860
1042
  {
@@ -897,7 +1079,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
897
1079
  muted: "#5f6469",
898
1080
  text: "#1a2025"
899
1081
  },
900
- radius: y
1082
+ radius: p
901
1083
  }
902
1084
  },
903
1085
  {
@@ -965,7 +1147,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
965
1147
  },
966
1148
  /* Hard corners on purpose. The reference is window mullions, plate
967
1149
  edges and rubber floor tiles, and Paper already has the soft set. */
968
- radius: I
1150
+ radius: U
969
1151
  }
970
1152
  },
971
1153
  {
@@ -1007,7 +1189,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1007
1189
  muted: "#3d3d3d",
1008
1190
  text: "#000000"
1009
1191
  },
1010
- radius: P
1192
+ radius: j
1011
1193
  }
1012
1194
  },
1013
1195
  {
@@ -1066,7 +1248,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1066
1248
  muted: "#6c664b",
1067
1249
  text: "#1f1f1f"
1068
1250
  },
1069
- radius: k
1251
+ radius: D
1070
1252
  }
1071
1253
  },
1072
1254
  {
@@ -1124,7 +1306,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1124
1306
  muted: "#4c566a",
1125
1307
  text: "#2e3440"
1126
1308
  },
1127
- radius: k
1309
+ radius: D
1128
1310
  }
1129
1311
  },
1130
1312
  {
@@ -1183,7 +1365,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1183
1365
  muted: "#6c6f85",
1184
1366
  text: "#4c4f69"
1185
1367
  },
1186
- radius: y
1368
+ radius: p
1187
1369
  }
1188
1370
  },
1189
1371
  {
@@ -1243,7 +1425,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1243
1425
  muted: "#59636e",
1244
1426
  text: "#1f2328"
1245
1427
  },
1246
- radius: I
1428
+ radius: U
1247
1429
  }
1248
1430
  },
1249
1431
  {
@@ -1291,7 +1473,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1291
1473
  muted: "#87867f",
1292
1474
  text: "#141413"
1293
1475
  },
1294
- radius: y
1476
+ radius: p
1295
1477
  }
1296
1478
  },
1297
1479
  {
@@ -1352,7 +1534,7 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1352
1534
  muted: "#71717a",
1353
1535
  text: "#18181b"
1354
1536
  },
1355
- radius: te
1537
+ radius: xe
1356
1538
  }
1357
1539
  },
1358
1540
  {
@@ -1399,144 +1581,59 @@ const y = { sm: 8, md: 12, lg: 20, xl: 28, full: 999 }, k = { sm: 6, md: 8, lg:
1399
1581
  muted: "#586e75",
1400
1582
  text: "#073642"
1401
1583
  },
1402
- radius: P
1584
+ radius: j
1403
1585
  }
1404
1586
  }
1405
- ], he = new Map(
1406
- oe.map((r) => [r.id, r])
1407
- ), be = [
1408
- 0,
1409
- 0.1217,
1410
- 0.3812,
1411
- 0.6579,
1412
- 0.883,
1413
- 1.0304,
1414
- 1.1034,
1415
- 1.12,
1416
- 1.1025,
1417
- 1.0705,
1418
- 1.0376,
1419
- 1.0115,
1420
- 0.9949,
1421
- 0.987,
1422
- 0.9857,
1423
- 0.9881,
1424
- 0.992,
1425
- 0.9959,
1426
- 0.9989,
1427
- 1.0008,
1428
- 1.0016,
1429
- 1.0017,
1430
- 1.0014,
1431
- 1.0009,
1432
- 1.0004,
1433
- 1.0001,
1434
- 1
1435
- ], ye = [
1436
- 0,
1437
- 0.0496,
1438
- 0.1585,
1439
- 0.2869,
1440
- 0.4135,
1441
- 0.5279,
1442
- 0.6263,
1443
- 0.7079,
1444
- 0.7741,
1445
- 0.8268,
1446
- 0.8681,
1447
- 0.9002,
1448
- 0.9249,
1449
- 0.9437,
1450
- 0.958,
1451
- 0.9688,
1452
- 0.9768,
1453
- 0.9829,
1454
- 0.9874,
1455
- 0.9907,
1456
- 0.9932,
1457
- 0.995,
1458
- 0.9963,
1459
- 0.9973,
1460
- 0.9981,
1461
- 0.9986,
1462
- 1
1463
- ], me = {
1464
- /** Most interactions. */
1465
- spring: 500,
1466
- /** Drawer, where the travel is the width of a panel. */
1467
- springSoft: 700,
1468
- /**
1469
- * For something that travels further than its own width.
1470
- *
1471
- * A bottom sheet comes up from off the screen and covers most of it, which is
1472
- * a longer journey than a drawer's. Reusing `springSoft` there meant the same
1473
- * time over more distance, and it read as a snap.
1474
- */
1475
- springSlow: 900,
1476
- /** Colour changes, which should not feel sprung. */
1477
- fast: 150,
1478
- /**
1479
- * One pass of an indeterminate Progress bar across its track.
1480
- *
1481
- * Long enough to read as "working" rather than "flickering", short enough
1482
- * that a second pass starts before you wonder whether it has stopped.
1483
- */
1484
- sweep: 1400
1485
- }, pe = {
1486
- button: { hover: 1.03, press: 0.96 },
1487
- iconButton: { hover: 1.06, press: 0.94 },
1488
- checkbox: { hover: 1.08, press: 0.92 },
1489
- radio: { hover: 1.08, press: 0.92 },
1490
- switch: { hover: 1.05, press: 0.95 },
1491
- toggle: { hover: 1.06, press: 0.94 },
1492
- toast: { hover: 1.04, press: 0.96 },
1493
- sliderThumb: { hover: 1.12, press: 0.94 }
1494
- }, Le = 64;
1495
- function xe(r, a) {
1496
- if (r.length === 0) return a;
1497
- if (a <= 0) return r[0];
1498
- if (a >= 1) return r[r.length - 1];
1499
- const t = (r.length - 1) * a, e = Math.floor(t), o = t - e, c = r[e], n = r[e + 1] ?? c;
1500
- return c + (n - c) * o;
1501
- }
1587
+ ], Ee = new Map(
1588
+ we.map((e) => [e.id, e])
1589
+ );
1502
1590
  export {
1503
- v as GRYT_HUE_KEYS,
1504
- B as GRYT_NEUTRAL_KEYS,
1505
- D as GRYT_RADIUS_KEYS,
1506
- Z as GRYT_THEME_NAME_MAX,
1591
+ N as GRYT_FONT_KEYS,
1592
+ be as GRYT_FONT_STACK_MAX,
1593
+ T as GRYT_HUE_KEYS,
1594
+ X as GRYT_MOTION_CURVES,
1595
+ q as GRYT_MOTION_SCALE_MAX,
1596
+ V as GRYT_NEUTRAL_KEYS,
1597
+ E as GRYT_RADIUS_KEYS,
1598
+ he as GRYT_THEME_NAME_MAX,
1507
1599
  S as alphaScale,
1508
- G as cloneGrytTheme,
1509
- se as contrast,
1510
- ue as createGrytTheme,
1511
- le as decodeGrytTheme,
1512
- ie as encodeGrytTheme,
1513
- de as grytAlphaScales,
1514
- fe as grytAlphaScalesLight,
1515
- Le as grytDrawerBleed,
1516
- me as grytDurations,
1517
- l as grytLightTokens,
1518
- oe as grytPresets,
1519
- he as grytPresetsById,
1520
- pe as grytScaleSteps,
1521
- C as grytScales,
1522
- T as grytScalesLight,
1523
- L as grytTheme,
1524
- ee as grytThemeHues,
1525
- ge as grytThemeToOptions,
1526
- s as grytTokens,
1527
- R as hexToOklch,
1528
- H as hexToRgb,
1529
- h as hueScale,
1530
- b as hueScaleLight,
1531
- W as isHexColor,
1532
- U as neutralScale,
1533
- F as neutralScaleLight,
1534
- $ as normalizeHexColor,
1535
- M as normalizeThemeName,
1536
- m as oklchToHex,
1537
- N as rgbToHex,
1538
- xe as sampleCurve,
1539
- be as springSamples,
1540
- ye as springTightSamples
1600
+ I as cloneGrytTheme,
1601
+ Se as contrast,
1602
+ Me as createGrytTheme,
1603
+ Ge as decodeGrytTheme,
1604
+ De as encodeGrytTheme,
1605
+ ke as grytAlphaScales,
1606
+ Te as grytAlphaScalesLight,
1607
+ Re as grytDrawerBleed,
1608
+ ce as grytDurations,
1609
+ _ as grytFonts,
1610
+ h as grytLightTokens,
1611
+ x as grytMotion,
1612
+ we as grytPresets,
1613
+ Ee as grytPresetsById,
1614
+ ve as grytScaleSteps,
1615
+ O as grytScales,
1616
+ G as grytScalesLight,
1617
+ H as grytTheme,
1618
+ ye as grytThemeHues,
1619
+ $e as grytThemeToOptions,
1620
+ f as grytTokens,
1621
+ A as hexToOklch,
1622
+ v as hexToRgb,
1623
+ y as hueScale,
1624
+ m as hueScaleLight,
1625
+ J as isBezier,
1626
+ Q as isFontStack,
1627
+ re as isHexColor,
1628
+ Z as isValidBezier,
1629
+ z as neutralScale,
1630
+ W as neutralScaleLight,
1631
+ P as normalizeHexColor,
1632
+ C as normalizeThemeName,
1633
+ L as oklchToHex,
1634
+ B as rgbToHex,
1635
+ Ae as sampleCurve,
1636
+ ne as springSamples,
1637
+ M as springTightSamples
1541
1638
  };
1542
1639
  //# sourceMappingURL=index.js.map