@rinzai/zen 0.10.2 → 0.11.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.
Files changed (42) hide show
  1. package/README.md +3 -3
  2. package/dist/avatar/index.d.ts +1 -1
  3. package/dist/avatar/index.d.ts.map +1 -1
  4. package/dist/avatar/index.js +23 -21
  5. package/dist/canvas/geometry.d.ts +51 -0
  6. package/dist/canvas/geometry.d.ts.map +1 -0
  7. package/dist/canvas/geometry.js +91 -0
  8. package/dist/canvas/index.d.ts +59 -0
  9. package/dist/canvas/index.d.ts.map +1 -0
  10. package/dist/canvas/index.js +303 -0
  11. package/dist/code-block/index.d.ts.map +1 -1
  12. package/dist/code-block/index.js +24 -31
  13. package/dist/color-picker/index.d.ts +36 -0
  14. package/dist/color-picker/index.d.ts.map +1 -0
  15. package/dist/color-picker/index.js +210 -0
  16. package/dist/combobox/index.js +46 -46
  17. package/dist/date-picker/index.js +5 -5
  18. package/dist/index.d.ts +4 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/input/index.js +4 -4
  21. package/dist/input-group/index.js +8 -8
  22. package/dist/lib.js +84 -80
  23. package/dist/money-input/index.js +8 -8
  24. package/dist/month-picker/index.js +11 -11
  25. package/dist/repeat-picker/index.js +8 -8
  26. package/dist/select/index.js +16 -16
  27. package/dist/sortable/index.d.ts.map +1 -1
  28. package/dist/sortable/index.js +1 -1
  29. package/dist/tag-input/index.js +4 -4
  30. package/dist/textarea/index.js +4 -4
  31. package/dist/utils/color.d.ts +35 -0
  32. package/dist/utils/color.d.ts.map +1 -0
  33. package/dist/utils/color.js +66 -0
  34. package/dist/utils/theme-wave.d.ts.map +1 -1
  35. package/dist/utils/theme-wave.js +70 -69
  36. package/dist/utils/theme.d.ts.map +1 -1
  37. package/dist/utils/theme.js +56 -59
  38. package/dist/utils/useCopyToClipboard.d.ts +13 -0
  39. package/dist/utils/useCopyToClipboard.d.ts.map +1 -0
  40. package/dist/utils/useCopyToClipboard.js +26 -0
  41. package/dist/zen.css +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ //#region packages/utils/color.ts
3
+ var e = (e) => Math.min(1, Math.max(0, e));
4
+ function t(e) {
5
+ let t = /^#?([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i.exec(e.trim());
6
+ if (!t) return null;
7
+ let n = t[1];
8
+ return n.length <= 4 && (n = n.replace(/./g, "$&$&")), n.length === 6 && (n += "ff"), [
9
+ 0,
10
+ 2,
11
+ 4,
12
+ 6
13
+ ].map((e) => parseInt(n.slice(e, e + 2), 16) / 255);
14
+ }
15
+ function n([t, n, r, i = 1]) {
16
+ let a = (t) => Math.round(e(t) * 255).toString(16).padStart(2, "0");
17
+ return `#${a(t)}${a(n)}${a(r)}${i < 1 ? a(i) : ""}`;
18
+ }
19
+ function r(e) {
20
+ let n = t(e);
21
+ if (!n) return null;
22
+ let [r, i, a, o] = n, s = Math.max(r, i, a), c = s - Math.min(r, i, a), l = 0;
23
+ return c && (l = s === r ? (i - a) / c % 6 : s === i ? (a - r) / c + 2 : (r - i) / c + 4), {
24
+ h: (l * 60 + 360) % 360,
25
+ s: s ? c / s : 0,
26
+ v: s,
27
+ a: o
28
+ };
29
+ }
30
+ function i({ h: e, s: t, v: r, a: i }) {
31
+ let a = (n) => {
32
+ let i = (n + e / 60) % 6;
33
+ return r - r * t * Math.max(0, Math.min(i, 4 - i, 1));
34
+ };
35
+ return n([
36
+ a(5),
37
+ a(3),
38
+ a(1),
39
+ i
40
+ ]);
41
+ }
42
+ var a = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, o = (e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055;
43
+ function s(t, n, r) {
44
+ let i = n * Math.cos(r * Math.PI / 180), a = n * Math.sin(r * Math.PI / 180), o = (t + .3963377774 * i + .2158037573 * a) ** 3, s = (t - .1055613458 * i - .0638541728 * a) ** 3, c = (t - .0894841775 * i - 1.291485548 * a) ** 3;
45
+ return [
46
+ e(4.0767416621 * o - 3.3077115913 * s + .2309699292 * c),
47
+ e(-1.2684380046 * o + 2.6097574011 * s - .3413193965 * c),
48
+ e(-.0041960863 * o - .7034186147 * s + 1.707614701 * c)
49
+ ];
50
+ }
51
+ function c(e) {
52
+ let n = t(e);
53
+ if (!n) return null;
54
+ let [r, i, o] = n.slice(0, 3).map(a), s = Math.cbrt(.4122214708 * r + .5363325363 * i + .0514459929 * o), c = Math.cbrt(.2119034982 * r + .6806995451 * i + .1073969566 * o), l = Math.cbrt(.0883024619 * r + .2817188376 * i + .6299787005 * o), u = .2104542553 * s + .793617785 * c - .0040720468 * l, d = 1.9779984951 * s - 2.428592205 * c + .4505937099 * l, f = .0259040371 * s + .7827717662 * c - .808675766 * l, p = Math.hypot(d, f);
55
+ return {
56
+ l: u,
57
+ c: p,
58
+ h: p < 1e-4 ? 0 : (Math.atan2(f, d) * 180 / Math.PI + 360) % 360,
59
+ alpha: n[3]
60
+ };
61
+ }
62
+ function l({ l: e, c: t, h: r, alpha: i = 1 }) {
63
+ return n([...s(e, t, r).map(o), i]);
64
+ }
65
+ //#endregion
66
+ export { n as formatHex, r as hexToHsv, c as hexToOklch, i as hsvToHex, o as linearToSrgb, l as oklchToHex, s as oklchToLinear, t as parseHex, a as srgbToLinear };
@@ -1 +1 @@
1
- {"version":3,"file":"theme-wave.d.ts","sourceRoot":"","sources":["../../packages/utils/theme-wave.ts"],"names":[],"mappings":"AA2NA;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,IAAI,EAClB,IAAI,CAAC,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChD,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GACxB,IAAI,CAyKN"}
1
+ {"version":3,"file":"theme-wave.d.ts","sourceRoot":"","sources":["../../packages/utils/theme-wave.ts"],"names":[],"mappings":"AA4NA;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,IAAI,EAClB,IAAI,CAAC,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChD,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GACxB,IAAI,CAyKN"}
@@ -1,19 +1,20 @@
1
1
  "use client";
2
2
  import { applyGraphicsMode as e } from "./graphics.js";
3
3
  import { reducedMotion as t } from "./motion.js";
4
- import { changeTheme as n, oklchToLinearRgb as r } from "./theme.js";
4
+ import { linearToSrgb as n } from "./color.js";
5
+ import { changeTheme as r, oklchToLinearRgb as i } from "./theme.js";
5
6
  //#region packages/utils/theme-wave.ts
6
- var i = 1330, a = [
7
+ var a = 1330, o = [
7
8
  .25,
8
9
  .55,
9
10
  .35,
10
11
  1
11
- ], o = 1050, s = [
12
+ ], s = 1050, c = [
12
13
  .55,
13
14
  0,
14
15
  .85,
15
16
  .35
16
- ], c = .05, l = 36, u = [
17
+ ], l = .05, u = 36, d = [
17
18
  [
18
19
  3,
19
20
  1.9,
@@ -29,15 +30,15 @@ var i = 1330, a = [
29
30
  4.1,
30
31
  .2
31
32
  ]
32
- ], d = 48, f = 72, p = 28, m = "zen-theme-waving", h = "zen-theme-closing", g = "zen-theme-water", _ = "zen-theme-area", v = 0, y = null;
33
- function b() {
34
- y && y.style.setProperty("view-transition-name", y.name, y.priority), y = null;
33
+ ], f = 48, p = 72, m = 28, h = "zen-theme-waving", g = "zen-theme-closing", _ = "zen-theme-water", v = "zen-theme-area", y = 0, b = null;
34
+ function x() {
35
+ b && b.style.setProperty("view-transition-name", b.name, b.priority), b = null;
35
36
  }
36
- function x(e, t, n) {
37
+ function S(e, t, n) {
37
38
  let r = Math.min(1, Math.max(0, (n - e) / (t - e)));
38
39
  return r * r * (3 - 2 * r);
39
40
  }
40
- function S([e, t, n, r], i) {
41
+ function C([e, t, n, r], i) {
41
42
  let a = (e, t, n) => 3 * e * n * (1 - n) ** 2 + 3 * t * n ** 2 * (1 - n) + n ** 3, o = 0, s = 1;
42
43
  for (let t = 0; t < 24; t++) {
43
44
  let t = (o + s) / 2;
@@ -45,10 +46,10 @@ function S([e, t, n, r], i) {
45
46
  }
46
47
  return a(t, r, (o + s) / 2);
47
48
  }
48
- function C(e, t, n, r) {
49
- return Math.min(l, c * t) * u.reduce((t, [i, a, o], s) => t + o * Math.sin(i * e + a * n + r * (s + 1)), 0);
49
+ function w(e, t, n, r) {
50
+ return Math.min(u, l * t) * d.reduce((t, [i, a, o], s) => t + o * Math.sin(i * e + a * n + r * (s + 1)), 0);
50
51
  }
51
- var w = `
52
+ var T = `
52
53
  precision highp float;
53
54
  uniform vec2 res;
54
55
  uniform float dpr;
@@ -64,8 +65,8 @@ uniform vec3 aurora[3];
64
65
  uniform float light;
65
66
 
66
67
  float wobble(float a, float r) {
67
- float size = min(${l.toFixed(1)}, ${c.toFixed(3)} * r);
68
- return size * (${u.map(([e, t, n], r) => `${n.toFixed(2)} * sin(${e.toFixed(1)} * a + ${t.toFixed(2)} * time + seed * ${(r + 1).toFixed(1)})`).join(" + ")});
68
+ float size = min(${u.toFixed(1)}, ${l.toFixed(3)} * r);
69
+ return size * (${d.map(([e, t, n], r) => `${n.toFixed(2)} * sin(${e.toFixed(1)} * a + ${t.toFixed(2)} * time + seed * ${(r + 1).toFixed(1)})`).join(" + ")});
69
70
  }
70
71
 
71
72
  // A train of ripples whose front is x px away (ahead of it when positive, as it moves):
@@ -73,8 +74,8 @@ float wobble(float a, float r) {
73
74
  // the train faster than it spreads, as on water. Its slope (height per px of x): the
74
75
  // ripples are a fixed size, as real ones are, however big the water.
75
76
  float rippleSlope(float x) {
76
- float k = 6.2832 / ${p.toFixed(1)};
77
- float reach = x < 0.0 ? ${(2.5 * p).toFixed(1)} : ${(.35 * p).toFixed(1)};
77
+ float k = 6.2832 / ${m.toFixed(1)};
78
+ float reach = x < 0.0 ? ${(2.5 * m).toFixed(1)} : ${(.35 * m).toFixed(1)};
78
79
  float phase = k * x - 7.0 * time;
79
80
  return exp(-x * x / (2.0 * reach * reach)) * (-x / (reach * reach) * cos(phase) / k - sin(phase));
80
81
  }
@@ -122,18 +123,18 @@ void main() {
122
123
  color = clamp(color, 0.0, 1.0);
123
124
  float cover = max(color.r, max(color.g, color.b));
124
125
  gl_FragColor = vec4(color, cover + shade * (1.0 - cover));
125
- }`, T = "attribute vec2 at; void main() { gl_Position = vec4(at, 0.0, 1.0); }", E;
126
- function D() {
127
- if (E !== void 0) return E;
128
- E = null;
126
+ }`, E = "attribute vec2 at; void main() { gl_Position = vec4(at, 0.0, 1.0); }", D;
127
+ function O() {
128
+ if (D !== void 0) return D;
129
+ D = null;
129
130
  let e = document.createElement("canvas");
130
- e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${g} !important`;
131
+ e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${_} !important`;
131
132
  let t = e.getContext("webgl", {
132
133
  premultipliedAlpha: !0,
133
134
  antialias: !1
134
135
  }), n = t?.createProgram();
135
136
  if (!t || !n) return null;
136
- for (let [e, r] of [[t.VERTEX_SHADER, T], [t.FRAGMENT_SHADER, w]]) {
137
+ for (let [e, r] of [[t.VERTEX_SHADER, E], [t.FRAGMENT_SHADER, T]]) {
137
138
  let i = t.createShader(e);
138
139
  if (!i) return null;
139
140
  t.shaderSource(i, r), t.compileShader(i), t.attachShader(n, i);
@@ -148,95 +149,95 @@ function D() {
148
149
  3
149
150
  ]), t.STATIC_DRAW), t.enableVertexAttribArray(0), t.vertexAttribPointer(0, 2, t.FLOAT, !1, 0, 0);
150
151
  let r = /* @__PURE__ */ new Map();
151
- return E = {
152
+ return D = {
152
153
  canvas: e,
153
154
  gl: t,
154
155
  uniform: (e) => (r.has(e) || r.set(e, t.getUniformLocation(n, e)), r.get(e))
155
- }, E;
156
+ }, D;
156
157
  }
157
- function O(e) {
158
+ function k(e) {
158
159
  e.gl.clear(e.gl.COLOR_BUFFER_BIT), e.canvas.remove();
159
160
  }
160
- function k(e) {
161
- return r(e).map((e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055);
161
+ function A(e) {
162
+ return i(e).map(n);
162
163
  }
163
- function A() {
164
+ function j() {
164
165
  return !t() && !!document.startViewTransition && e() !== "lite";
165
166
  }
166
- function j() {
167
- if (E !== void 0 || !A()) return;
168
- let e = D();
167
+ function M() {
168
+ if (D !== void 0 || !j()) return;
169
+ let e = O();
169
170
  e?.gl.drawArrays(e.gl.TRIANGLES, 0, 3);
170
171
  }
171
- function M(e, t, r) {
172
- let c = document.documentElement, u = !!r && r !== c, p = window.innerWidth, w = window.innerHeight, T = u ? r.getBoundingClientRect() : new DOMRect(0, 0, p, w), E = Math.max(0, T.left), j = Math.max(0, T.top), M = Math.min(p, T.right), N = Math.min(w, T.bottom), P = A() && M > E && N > j ? D() : null;
172
+ function N(e, t, n) {
173
+ let i = document.documentElement, l = !!n && n !== i, d = window.innerWidth, m = window.innerHeight, T = l ? n.getBoundingClientRect() : new DOMRect(0, 0, d, m), E = Math.max(0, T.left), D = Math.max(0, T.top), M = Math.min(d, T.right), N = Math.min(m, T.bottom), P = j() && M > E && N > D ? O() : null;
173
174
  if (!P) {
174
- n(u ? r : c, e);
175
+ r(l ? n : i, e);
175
176
  return;
176
177
  }
177
- let F = (E + M) / 2, I = (j + N) / 2;
178
+ let F = (E + M) / 2, I = (D + N) / 2;
178
179
  if (t instanceof Element) {
179
180
  let e = t.getBoundingClientRect();
180
181
  F = e.left + e.width / 2, I = e.top + e.height / 2;
181
182
  } else t && ({x: F, y: I} = t);
182
- let L = Math.hypot(Math.max(F - T.left, T.right - F), Math.max(I - T.top, T.bottom - I)), R = Math.random() * 2 * Math.PI, z = L + l + 2, B = ++v;
183
- O(P), b(), c.classList.add(m);
184
- let V = u ? _ : "root";
185
- if (u) {
186
- let { style: e } = r;
187
- y = {
183
+ let L = Math.hypot(Math.max(F - T.left, T.right - F), Math.max(I - T.top, T.bottom - I)), R = Math.random() * 2 * Math.PI, z = L + u + 2, B = ++y;
184
+ k(P), x(), i.classList.add(h);
185
+ let V = l ? v : "root";
186
+ if (l) {
187
+ let { style: e } = n;
188
+ b = {
188
189
  style: e,
189
190
  name: e.getPropertyValue("view-transition-name"),
190
191
  priority: e.getPropertyPriority("view-transition-name")
191
- }, e.setProperty("view-transition-name", _, "important");
192
+ }, e.setProperty("view-transition-name", v, "important");
192
193
  }
193
194
  Object.assign(P.canvas.style, {
194
195
  left: `${E}px`,
195
- top: `${j}px`,
196
+ top: `${D}px`,
196
197
  width: `${M - E}px`,
197
- height: `${N - j}px`,
198
- clipPath: u ? `inset(${T.top - j}px ${M - T.right}px ${N - T.bottom}px ${T.left - E}px round ${getComputedStyle(r).borderRadius})` : ""
198
+ height: `${N - D}px`,
199
+ clipPath: l ? `inset(${T.top - D}px ${M - T.right}px ${N - T.bottom}px ${T.left - E}px round ${getComputedStyle(n).borderRadius})` : ""
199
200
  });
200
201
  let H = [], U = !1, W = document.startViewTransition(async () => {
201
202
  e(), await Promise.resolve();
202
- let t = getComputedStyle(u ? r : c);
203
- U = Number(t.getPropertyValue("--background").trim().split(" ")[0]) <= .5, c.classList.toggle(h, U);
204
- let n = t.getPropertyValue("--glow").trim(), [i, a, o] = n.split(" ").map(Number);
203
+ let t = getComputedStyle(l ? n : i);
204
+ U = Number(t.getPropertyValue("--background").trim().split(" ")[0]) <= .5, i.classList.toggle(g, U);
205
+ let r = t.getPropertyValue("--glow").trim(), [a, o, s] = r.split(" ").map(Number);
205
206
  H = [
206
- n,
207
+ r,
207
208
  t.getPropertyValue("--glow-2").trim(),
208
- `${i} ${a} ${(o + 240) % 360}`
209
- ].flatMap(k), document.body.append(P.canvas);
209
+ `${a} ${o} ${(s + 240) % 360}`
210
+ ].flatMap(A), document.body.append(P.canvas);
210
211
  });
211
212
  W.ready.then(() => {
212
- let e = U ? o : i, t = (e) => (U ? 1 - S(s, e) : S(a, e)) * z, n = `::view-transition-${U ? "old" : "new"}(${V})`, r = new DOMMatrix(getComputedStyle(c, `::view-transition-group(${g})`).transform), [l, p] = u ? [T.left, T.top] : [E - r.e, j - r.f], m = (n) => {
213
+ let e = U ? s : a, t = (e) => (U ? 1 - C(c, e) : C(o, e)) * z, n = `::view-transition-${U ? "old" : "new"}(${V})`, r = new DOMMatrix(getComputedStyle(i, `::view-transition-group(${_})`).transform), [u, d] = l ? [T.left, T.top] : [E - r.e, D - r.f], m = (n) => {
213
214
  let r = t(n), i = n * e / 1e3;
214
- return `polygon(${Array.from({ length: f }, (e, t) => {
215
- let n = t / f * 2 * Math.PI, a = Math.max(0, r + C(n, r, i, R));
216
- return `${(F - l + a * Math.cos(n)).toFixed(1)}px ${(I - p + a * Math.sin(n)).toFixed(1)}px`;
215
+ return `polygon(${Array.from({ length: p }, (e, t) => {
216
+ let n = t / p * 2 * Math.PI, a = Math.max(0, r + w(n, r, i, R));
217
+ return `${(F - u + a * Math.cos(n)).toFixed(1)}px ${(I - d + a * Math.sin(n)).toFixed(1)}px`;
217
218
  }).join(",")})`;
218
219
  }, h = Array.from({ length: 49 }, (e, t) => ({
219
- clipPath: m(t / d),
220
- offset: t / d
221
- })), _ = c.animate(h, {
220
+ clipPath: m(t / f),
221
+ offset: t / f
222
+ })), g = i.animate(h, {
222
223
  duration: e,
223
224
  pseudoElement: n
224
225
  });
225
- _.pause();
226
- let y, { canvas: b, gl: w, uniform: D } = P, k = Math.min(window.devicePixelRatio || 1, 2);
227
- b.width = Math.round((M - E) * k), b.height = Math.round((N - j) * k), w.viewport(0, 0, b.width, b.height), w.uniform2f(D("res"), b.width, b.height), w.uniform1f(D("dpr"), k), w.uniform2f(D("from"), F - E, I - j), w.uniform1f(D("seed"), R), w.uniform3fv(D("aurora[0]"), H), w.uniform1f(D("light"), +!U);
228
- let A = (e) => 1.6 * x(.05, .45, e) * (1 - e) ** 1.5, L = (n) => {
229
- if (B !== v) return;
230
- y ??= n;
231
- let r = Math.min(1, (n - y) / e);
232
- if (_.currentTime = r * e, r === 1) return _.finish(), O(P);
226
+ g.pause();
227
+ let v, { canvas: b, gl: x, uniform: O } = P, A = Math.min(window.devicePixelRatio || 1, 2);
228
+ b.width = Math.round((M - E) * A), b.height = Math.round((N - D) * A), x.viewport(0, 0, b.width, b.height), x.uniform2f(O("res"), b.width, b.height), x.uniform1f(O("dpr"), A), x.uniform2f(O("from"), F - E, I - D), x.uniform1f(O("seed"), R), x.uniform3fv(O("aurora[0]"), H), x.uniform1f(O("light"), +!U);
229
+ let j = (e) => 1.6 * S(.05, .45, e) * (1 - e) ** 1.5, L = (n) => {
230
+ if (B !== y) return;
231
+ v ??= n;
232
+ let r = Math.min(1, (n - v) / e);
233
+ if (g.currentTime = r * e, r === 1) return g.finish(), k(P);
233
234
  let i = t(r), a = Math.min(1, (1 - r) / .12), o, s;
234
- U ? (o = 1.6 * r * Math.sqrt(1 - r) * a, s = Math.min(1, r * 4) * Math.min(1, i / 24) * a) : (o = A(r) * a, s = Math.min(1, i / 40) * (1 - r ** 3) * a), w.uniform1f(D("time"), r * e / 1e3), w.uniform1f(D("edge"), i), w.uniform1f(D("dir"), U ? -1 : 1), w.uniform1f(D("strength"), o), w.uniform1f(D("prism"), s), w.drawArrays(w.TRIANGLES, 0, 3), requestAnimationFrame(L);
235
+ U ? (o = 1.6 * r * Math.sqrt(1 - r) * a, s = Math.min(1, r * 4) * Math.min(1, i / 24) * a) : (o = j(r) * a, s = Math.min(1, i / 40) * (1 - r ** 3) * a), x.uniform1f(O("time"), r * e / 1e3), x.uniform1f(O("edge"), i), x.uniform1f(O("dir"), U ? -1 : 1), x.uniform1f(O("strength"), o), x.uniform1f(O("prism"), s), x.drawArrays(x.TRIANGLES, 0, 3), requestAnimationFrame(L);
235
236
  };
236
237
  requestAnimationFrame(L);
237
238
  }).catch(() => {}), W.finished.finally(() => {
238
- B === v && (b(), c.classList.remove(m, h), O(P));
239
+ B === y && (x(), i.classList.remove(h, g), k(P));
239
240
  });
240
241
  }
241
242
  //#endregion
242
- export { j as prepareThemeWave, M as themeWave };
243
+ export { M as prepareThemeWave, N as themeWave };
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../packages/utils/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,iDAAkD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,6DAA6D;IAC7D,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEtD,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,aAQ3B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,GAAG,aAAa,CAG7E;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CACrB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAClE,aAAa,CAEf;AAQD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,GAAE,UAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyEvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,aAAa,EACpB,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACxF,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAWjE;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGrD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAkB1D;AAID,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAa1E;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1D"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../packages/utils/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,WAAW,iDAAkD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,6DAA6D;IAC7D,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEtD,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,aAQ3B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,GAAG,aAAa,CAG7E;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CACrB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAClE,aAAa,CAEf;AAQD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,GAAE,UAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyEvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,aAAa,EACpB,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACxF,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAWjE;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGrD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAkB1D;AAID,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAG1E;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1D"}
@@ -1,11 +1,12 @@
1
1
  "use client";
2
+ import { oklchToLinear as e } from "./color.js";
2
3
  //#region packages/utils/theme.ts
3
- var e = [
4
+ var t = [
4
5
  "mono",
5
6
  "muted",
6
7
  "balanced",
7
8
  "vivid"
8
- ], t = [
9
+ ], n = [
9
10
  {
10
11
  id: "violet",
11
12
  label: "Violet",
@@ -55,7 +56,7 @@ var e = [
55
56
  intensity: "mono",
56
57
  tint: "neutral"
57
58
  }
58
- ], n = {
59
+ ], r = {
59
60
  preset: "violet",
60
61
  hue: 295,
61
62
  intensity: "balanced",
@@ -64,8 +65,8 @@ var e = [
64
65
  glow: "soft",
65
66
  topography: "subtle"
66
67
  };
67
- function r(e, n) {
68
- let r = t.find((e) => e.id === n);
68
+ function i(e, t) {
69
+ let r = n.find((e) => e.id === t);
69
70
  return {
70
71
  ...e,
71
72
  preset: r.id,
@@ -74,21 +75,21 @@ function r(e, n) {
74
75
  tint: r.tint
75
76
  };
76
77
  }
77
- function i(e, t) {
78
+ function a(e, t) {
78
79
  return {
79
80
  ...e,
80
81
  ...t,
81
82
  preset: "custom"
82
83
  };
83
84
  }
84
- var a = {
85
+ var o = {
85
86
  mono: .012,
86
87
  muted: .07,
87
88
  balanced: .13,
88
89
  vivid: .19
89
- }, o = (e, t, n) => `${s(e, 3)} ${s(t, 3)} ${s((n % 360 + 360) % 360, 1)}`, s = (e, t) => Math.round(e * 10 ** t) / 10 ** t;
90
- function c(e, t = "dark") {
91
- let n = e.hue, r = a[e.intensity], i = e.contrast === "high", s = e.tint === "tinted" ? Math.min(.014, r * .12) : .003, c = e.intensity === "mono", l = (e, t = 1) => o(e, s * t, n), u = { "topo-strength": String({
90
+ }, s = (e, t, n) => `${c(e, 3)} ${c(t, 3)} ${c((n % 360 + 360) % 360, 1)}`, c = (e, t) => Math.round(e * 10 ** t) / 10 ** t;
91
+ function l(e, t = "dark") {
92
+ let n = e.hue, r = o[e.intensity], i = e.contrast === "high", a = e.tint === "tinted" ? Math.min(.014, r * .12) : .003, c = e.intensity === "mono", l = (e, t = 1) => s(e, a * t, n), u = { "topo-strength": String({
92
93
  off: 0,
93
94
  subtle: .55,
94
95
  visible: 1
@@ -98,27 +99,27 @@ function c(e, t = "dark") {
98
99
  });
99
100
  return t === "light" ? {
100
101
  background: l(i ? .995 : .985, .4),
101
- foreground: o(i ? .16 : .21, .02, n),
102
- card: o(1, 0, 0),
103
- "card-foreground": o(i ? .16 : .21, .02, n),
104
- popover: o(1, 0, 0),
105
- "popover-foreground": o(i ? .16 : .21, .02, n),
102
+ foreground: s(i ? .16 : .21, .02, n),
103
+ card: s(1, 0, 0),
104
+ "card-foreground": s(i ? .16 : .21, .02, n),
105
+ popover: s(1, 0, 0),
106
+ "popover-foreground": s(i ? .16 : .21, .02, n),
106
107
  secondary: l(.955, .6),
107
- "secondary-foreground": o(.21, .02, n),
108
+ "secondary-foreground": s(.21, .02, n),
108
109
  muted: l(.96, .5),
109
110
  "muted-foreground": l(i ? .42 : .5, 1.5),
110
111
  border: l(i ? .78 : .91, .8),
111
112
  input: l(i ? .78 : .91, .8),
112
- primary: o(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
113
- "primary-foreground": o(.985, 0, 0),
114
- accent: o(.95, c ? .005 : r * .25, n),
115
- "accent-foreground": o(.42, c ? .02 : Math.min(.16, r * .9), n),
116
- ring: o(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
117
- destructive: o(.55, .22, 25),
118
- "destructive-foreground": o(.985, 0, 0),
119
- glow: o(.62, c ? .02 : Math.min(.2, r * 1.4), n),
120
- "glow-2": o(.65, c ? .02 : r * 1.05, n + 30),
121
- tint: o(.21, .02, n),
113
+ primary: s(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
114
+ "primary-foreground": s(.985, 0, 0),
115
+ accent: s(.95, c ? .005 : r * .25, n),
116
+ "accent-foreground": s(.42, c ? .02 : Math.min(.16, r * .9), n),
117
+ ring: s(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
118
+ destructive: s(.55, .22, 25),
119
+ "destructive-foreground": s(.985, 0, 0),
120
+ glow: s(.62, c ? .02 : Math.min(.2, r * 1.4), n),
121
+ "glow-2": s(.65, c ? .02 : r * 1.05, n + 30),
122
+ tint: s(.21, .02, n),
122
123
  ...d({
123
124
  off: 0,
124
125
  soft: .4,
@@ -127,27 +128,27 @@ function c(e, t = "dark") {
127
128
  ...u
128
129
  } : {
129
130
  background: l(i ? .13 : .155),
130
- foreground: o(.97, .004, n),
131
+ foreground: s(.97, .004, n),
131
132
  card: l(i ? .17 : .195),
132
- "card-foreground": o(.97, .004, n),
133
+ "card-foreground": s(.97, .004, n),
133
134
  popover: l(i ? .18 : .21),
134
- "popover-foreground": o(.97, .004, n),
135
+ "popover-foreground": s(.97, .004, n),
135
136
  secondary: l(.25),
136
- "secondary-foreground": o(.97, .004, n),
137
+ "secondary-foreground": s(.97, .004, n),
137
138
  muted: l(.235),
138
139
  "muted-foreground": l(i ? .84 : .72, 1.5),
139
140
  border: l(i ? .4 : .28, 1.5),
140
141
  input: l(i ? .4 : .28, 1.5),
141
- primary: o(c ? .88 : .72, r, n),
142
- "primary-foreground": o(c ? .2 : .17, c ? .01 : .03, n),
143
- accent: o(.3, r * .35, n),
144
- "accent-foreground": o(.88, r * .5, n),
145
- ring: o(.72, r, n),
146
- destructive: o(.64, .2, 25),
147
- "destructive-foreground": o(.13, .02, 25),
148
- glow: o(.7, c ? .02 : r, n),
149
- "glow-2": o(.72, c ? .02 : r * .75, n + 30),
150
- tint: o(1, 0, 0),
142
+ primary: s(c ? .88 : .72, r, n),
143
+ "primary-foreground": s(c ? .2 : .17, c ? .01 : .03, n),
144
+ accent: s(.3, r * .35, n),
145
+ "accent-foreground": s(.88, r * .5, n),
146
+ ring: s(.72, r, n),
147
+ destructive: s(.64, .2, 25),
148
+ "destructive-foreground": s(.13, .02, 25),
149
+ glow: s(.7, c ? .02 : r, n),
150
+ "glow-2": s(.72, c ? .02 : r * .75, n + 30),
151
+ tint: s(1, 0, 0),
151
152
  ...d({
152
153
  off: 0,
153
154
  soft: .55,
@@ -156,13 +157,13 @@ function c(e, t = "dark") {
156
157
  ...u
157
158
  };
158
159
  }
159
- function l(e, { appearance: t = "dark", target: n } = {}) {
160
- let r = n ?? document.documentElement, i = Object.entries(c(e, t)).filter(([e, t]) => r.style.getPropertyValue(`--${e}`) !== t);
161
- i.length && u(r, () => {
160
+ function u(e, { appearance: t = "dark", target: n } = {}) {
161
+ let r = n ?? document.documentElement, i = Object.entries(l(e, t)).filter(([e, t]) => r.style.getPropertyValue(`--${e}`) !== t);
162
+ i.length && d(r, () => {
162
163
  for (let [e, t] of i) r.style.setProperty(`--${e}`, t);
163
164
  });
164
165
  }
165
- function u(e, t) {
166
+ function d(e, t) {
166
167
  if (document.documentElement.classList.contains("zen-theme-waving")) return t();
167
168
  e.setAttribute("data-zen-theme-applying", "");
168
169
  try {
@@ -171,16 +172,16 @@ function u(e, t) {
171
172
  e.removeAttribute("data-zen-theme-applying");
172
173
  }
173
174
  }
174
- function d(e) {
175
+ function f(e) {
175
176
  let t = e ?? document.documentElement;
176
- for (let e of Object.keys(c(n))) t.style.removeProperty(`--${e}`);
177
+ for (let e of Object.keys(l(r))) t.style.removeProperty(`--${e}`);
177
178
  }
178
- function f(r) {
179
- let i = typeof r == "object" && r ? r : {}, a = (e, t, n) => t.includes(e) ? e : n, o = n, s = t.map((e) => e.id);
179
+ function p(e) {
180
+ let i = typeof e == "object" && e ? e : {}, a = (e, t, n) => t.includes(e) ? e : n, o = r, s = n.map((e) => e.id);
180
181
  return {
181
182
  preset: typeof i.preset == "string" && (i.preset === "custom" || s.includes(i.preset)) ? i.preset : o.preset,
182
183
  hue: typeof i.hue == "number" && Number.isFinite(i.hue) ? (Math.round(i.hue) % 360 + 360) % 360 : o.hue,
183
- intensity: a(i.intensity, e, o.intensity),
184
+ intensity: a(i.intensity, t, o.intensity),
184
185
  tint: a(i.tint, ["neutral", "tinted"], o.tint),
185
186
  contrast: a(i.contrast, ["standard", "high"], o.contrast),
186
187
  glow: a(i.glow, [
@@ -195,20 +196,16 @@ function f(r) {
195
196
  ], o.topography)
196
197
  };
197
198
  }
198
- function p(e) {
199
- let [t, n, r] = e.split(" ").map(Number), i = n * Math.cos(r * Math.PI / 180), a = n * Math.sin(r * Math.PI / 180), o = (t + .3963377774 * i + .2158037573 * a) ** 3, s = (t - .1055613458 * i - .0638541728 * a) ** 3, c = (t - .0894841775 * i - 1.291485548 * a) ** 3, l = (e) => Math.min(1, Math.max(0, e));
200
- return [
201
- l(4.0767416621 * o - 3.3077115913 * s + .2309699292 * c),
202
- l(-1.2684380046 * o + 2.6097574011 * s - .3413193965 * c),
203
- l(-.0041960863 * o - .7034186147 * s + 1.707614701 * c)
204
- ];
199
+ function m(t) {
200
+ let [n, r, i] = t.split(" ").map(Number);
201
+ return e(n, r, i);
205
202
  }
206
- function m(e, t) {
203
+ function h(e, t) {
207
204
  let n = (e) => {
208
- let [t, n, r] = p(e);
205
+ let [t, n, r] = m(e);
209
206
  return .2126 * t + .7152 * n + .0722 * r;
210
207
  }, [r, i] = [n(e), n(t)].sort((e, t) => t - e);
211
208
  return (r + .05) / (i + .05);
212
209
  }
213
210
  //#endregion
214
- export { n as DEFAULT_THEME, e as INTENSITIES, t as PRESETS, r as applyPreset, l as applyTheme, u as changeTheme, m as contrastRatio, i as customize, f as normalizeTheme, p as oklchToLinearRgb, d as resetTheme, c as themeVars };
211
+ export { r as DEFAULT_THEME, t as INTENSITIES, n as PRESETS, i as applyPreset, u as applyTheme, d as changeTheme, h as contrastRatio, a as customize, p as normalizeTheme, m as oklchToLinearRgb, f as resetTheme, l as themeVars };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copies text to the clipboard. `copied` is true for `resetAfter` ms after a copy that worked; `copy`
3
+ * resolves false when nothing was copied (no Clipboard API, an insecure page, a denied permission).
4
+ */
5
+ export declare function useCopyToClipboard({ resetAfter }?: CopyToClipboardOptions): {
6
+ copy: (text: string) => Promise<boolean>;
7
+ copied: boolean;
8
+ };
9
+ export interface CopyToClipboardOptions {
10
+ /** How long `copied` stays true after a copy, in ms. */
11
+ resetAfter?: number;
12
+ }
13
+ //# sourceMappingURL=useCopyToClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopyToClipboard.d.ts","sourceRoot":"","sources":["../../packages/utils/useCopyToClipboard.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,UAAiB,EAAE,GAAE,sBAA2B;iBAU3C,MAAM;;EAc/C;AAED,MAAM,WAAW,sBAAsB;IACnC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
3
+ //#region packages/utils/useCopyToClipboard.ts
4
+ function i({ resetAfter: i = 1500 } = {}) {
5
+ let [a, o] = r(null);
6
+ t(() => {
7
+ if (!a) return;
8
+ let e = setTimeout(() => o(null), i);
9
+ return () => clearTimeout(e);
10
+ }, [a, i]);
11
+ let s = n(0);
12
+ return {
13
+ copy: e(async (e) => {
14
+ let t = ++s.current, n = !0;
15
+ try {
16
+ await navigator.clipboard.writeText(e);
17
+ } catch {
18
+ n = !1;
19
+ }
20
+ return t === s.current && o(n ? {} : null), n;
21
+ }, []),
22
+ copied: a !== null
23
+ };
24
+ }
25
+ //#endregion
26
+ export { i as useCopyToClipboard };