@rinzai/zen 0.8.5 → 0.9.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/animated-number/index.d.ts.map +1 -1
- package/dist/animated-number/index.js +19 -18
- package/dist/breadcrumbs/index.d.ts +15 -0
- package/dist/breadcrumbs/index.d.ts.map +1 -0
- package/dist/breadcrumbs/index.js +39 -0
- package/dist/card/index.d.ts +3 -1
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +3 -2
- package/dist/chart/donut.d.ts.map +1 -1
- package/dist/chart/donut.js +72 -70
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.js +154 -152
- package/dist/code-block/index.js +1 -1
- package/dist/code-input/index.d.ts +20 -0
- package/dist/code-input/index.d.ts.map +1 -0
- package/dist/code-input/index.js +44 -0
- package/dist/command-palette/index.d.ts +37 -0
- package/dist/command-palette/index.d.ts.map +1 -0
- package/dist/command-palette/index.js +120 -0
- package/dist/dialog/index.d.ts +9 -1
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +116 -32
- package/dist/empty-state/index.d.ts +14 -0
- package/dist/empty-state/index.d.ts.map +1 -0
- package/dist/empty-state/index.js +31 -0
- package/dist/file-drop/index.d.ts +18 -0
- package/dist/file-drop/index.d.ts.map +1 -0
- package/dist/file-drop/index.js +49 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib.js +75 -63
- package/dist/pagination/index.d.ts +26 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +62 -0
- package/dist/skeleton/index.d.ts +12 -2
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +11 -5
- package/dist/sparkline/index.d.ts +15 -0
- package/dist/sparkline/index.d.ts.map +1 -0
- package/dist/sparkline/index.js +56 -0
- package/dist/stepper/index.d.ts +19 -0
- package/dist/stepper/index.d.ts.map +1 -0
- package/dist/stepper/index.js +53 -0
- package/dist/table/index.d.ts +6 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +78 -46
- package/dist/table-of-contents/index.d.ts +1 -0
- package/dist/table-of-contents/index.d.ts.map +1 -1
- package/dist/table-of-contents/index.js +25 -23
- package/dist/tag-input/index.d.ts +19 -0
- package/dist/tag-input/index.d.ts.map +1 -0
- package/dist/tag-input/index.js +61 -0
- package/dist/theme.css +159 -0
- package/dist/timeline/index.d.ts +18 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +45 -0
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +68 -67
- package/dist/utils/indicator.d.ts.map +1 -1
- package/dist/utils/indicator.js +1 -1
- package/dist/utils/motion.d.ts +3 -0
- package/dist/utils/motion.d.ts.map +1 -0
- package/dist/utils/motion.js +7 -0
- package/dist/utils/section-link.d.ts +9 -0
- package/dist/utils/section-link.d.ts.map +1 -0
- package/dist/utils/section-link.js +10 -0
- package/dist/utils/theme-wave.d.ts.map +1 -1
- package/dist/utils/theme-wave.js +84 -83
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +6 -1
- package/dist/utils/useSeen.d.ts +4 -0
- package/dist/utils/useSeen.d.ts.map +1 -0
- package/dist/utils/useSeen.js +17 -0
- package/dist/zen.css +1 -1
- package/package.json +1 -1
package/dist/tree/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/tree/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,cAAc,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/tree/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/tree/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import {
|
|
4
|
-
import r from "../
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
3
|
+
import { reducedMotion as t } from "../utils/motion.js";
|
|
4
|
+
import { TableCell as n, TableRow as r } from "../table/index.js";
|
|
5
|
+
import i from "../icons/micro/chevron-right.js";
|
|
6
|
+
import { useCallback as a, useMemo as o, useRef as s, useState as c } from "react";
|
|
7
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
7
8
|
//#region packages/tree/index.tsx
|
|
8
|
-
function
|
|
9
|
-
let [
|
|
10
|
-
let e = [],
|
|
11
|
-
|
|
12
|
-
let l =
|
|
9
|
+
function d({ items: n, getKey: r, getChildren: i, defaultExpanded: l = !0, rowHeight: u = 36 }) {
|
|
10
|
+
let [d, f] = c(() => /* @__PURE__ */ new Set()), [p, m] = c(null), [h, g] = c(null), _ = s(null), v = a((e) => d.has(e) !== l, [d, l]), y = o(() => {
|
|
11
|
+
let e = [], t = (n, a, o) => {
|
|
12
|
+
n.forEach((s, c) => {
|
|
13
|
+
let l = r(s), u = i(s), d = !!u?.length, f = d && v(l);
|
|
13
14
|
e.push({
|
|
14
15
|
item: s,
|
|
15
16
|
key: l,
|
|
@@ -18,65 +19,65 @@ function u({ items: t, getKey: n, getChildren: r, defaultExpanded: c = !0, rowHe
|
|
|
18
19
|
hasChildren: d,
|
|
19
20
|
expanded: f,
|
|
20
21
|
position: c + 1,
|
|
21
|
-
siblings:
|
|
22
|
-
}), f &&
|
|
22
|
+
siblings: n.length
|
|
23
|
+
}), f && t(u, a + 1, l);
|
|
23
24
|
});
|
|
24
25
|
};
|
|
25
|
-
return
|
|
26
|
+
return t(n, 0, null), e;
|
|
26
27
|
}, [
|
|
27
|
-
t,
|
|
28
28
|
n,
|
|
29
29
|
r,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
i,
|
|
31
|
+
v
|
|
32
|
+
]), b = () => {
|
|
33
|
+
let e = [], t = (n) => {
|
|
34
|
+
for (let a of n) {
|
|
35
|
+
let n = i(a);
|
|
36
|
+
n?.length && (e.push(r(a)), t(n));
|
|
36
37
|
}
|
|
37
38
|
};
|
|
38
|
-
return
|
|
39
|
-
},
|
|
39
|
+
return t(n), e;
|
|
40
|
+
}, x = a((e, t) => f((n) => {
|
|
40
41
|
let r = new Set(n);
|
|
41
|
-
return t ===
|
|
42
|
-
}), [
|
|
43
|
-
let
|
|
42
|
+
return t === l ? r.delete(e) : r.add(e), r;
|
|
43
|
+
}), [l]), S = (e) => {
|
|
44
|
+
let n = () => {
|
|
44
45
|
let t = Date.now();
|
|
45
|
-
|
|
46
|
+
m({
|
|
46
47
|
key: e,
|
|
47
48
|
at: t
|
|
48
|
-
}), setTimeout(() =>
|
|
49
|
+
}), setTimeout(() => m((e) => e?.at === t ? null : e), 320);
|
|
49
50
|
};
|
|
50
|
-
if (
|
|
51
|
-
else if (!
|
|
52
|
-
else if (
|
|
51
|
+
if (h === e) _.current = null, g(null), n();
|
|
52
|
+
else if (!v(e)) n(), x(e, !0);
|
|
53
|
+
else if (t()) x(e, !1);
|
|
53
54
|
else {
|
|
54
|
-
|
|
55
|
+
g(e);
|
|
55
56
|
let t = () => {
|
|
56
|
-
|
|
57
|
+
_.current === t && (x(e, !1), g((t) => t === e ? null : t), _.current = null);
|
|
57
58
|
};
|
|
58
|
-
|
|
59
|
+
_.current = t, setTimeout(t, 500);
|
|
59
60
|
}
|
|
60
|
-
}, [C, w] =
|
|
61
|
+
}, [C, w] = c(null), T = y.some((e) => e.key === C) ? C : y[0]?.key ?? null, E = (e) => e.expanded && h !== e.key, D = (e, t) => {
|
|
61
62
|
if (t.target !== t.currentTarget) return;
|
|
62
|
-
let n =
|
|
63
|
-
if (t.key === "ArrowDown") r =
|
|
64
|
-
else if (t.key === "ArrowUp") r =
|
|
65
|
-
else if (t.key === "Home") r =
|
|
66
|
-
else if (t.key === "End") r =
|
|
67
|
-
else if (t.key === "ArrowRight" && e.hasChildren) E(e) ? r =
|
|
68
|
-
else if (t.key === "ArrowLeft") E(e) ? S(e.key) : r =
|
|
63
|
+
let n = y.indexOf(e), r;
|
|
64
|
+
if (t.key === "ArrowDown") r = y[n + 1];
|
|
65
|
+
else if (t.key === "ArrowUp") r = y[n - 1];
|
|
66
|
+
else if (t.key === "Home") r = y[0];
|
|
67
|
+
else if (t.key === "End") r = y.at(-1);
|
|
68
|
+
else if (t.key === "ArrowRight" && e.hasChildren) E(e) ? r = y[n + 1] : S(e.key);
|
|
69
|
+
else if (t.key === "ArrowLeft") E(e) ? S(e.key) : r = y.find((t) => t.key === e.parentKey);
|
|
69
70
|
else return;
|
|
70
71
|
t.preventDefault(), r && t.currentTarget.closest("[role=\"treegrid\"], table")?.querySelector(`[data-tree-key="${CSS.escape(r.key)}"]`)?.focus();
|
|
71
72
|
};
|
|
72
73
|
return {
|
|
73
|
-
rows:
|
|
74
|
+
rows: y,
|
|
74
75
|
toggle: S,
|
|
75
|
-
isExpanded:
|
|
76
|
-
expand: (e) =>
|
|
77
|
-
collapse: (e) =>
|
|
78
|
-
expandAll: () =>
|
|
79
|
-
collapseAll: () =>
|
|
76
|
+
isExpanded: v,
|
|
77
|
+
expand: (e) => x(e, !0),
|
|
78
|
+
collapse: (e) => x(e, !1),
|
|
79
|
+
expandAll: () => f(l ? /* @__PURE__ */ new Set() : new Set(b())),
|
|
80
|
+
collapseAll: () => f(l ? new Set(b()) : /* @__PURE__ */ new Set()),
|
|
80
81
|
tableProps: { role: "treegrid" },
|
|
81
82
|
rowProps: (t) => ({
|
|
82
83
|
"aria-level": t.depth + 1,
|
|
@@ -90,10 +91,10 @@ function u({ items: t, getKey: n, getChildren: r, defaultExpanded: c = !0, rowHe
|
|
|
90
91
|
e.target === e.currentTarget && w(t.key);
|
|
91
92
|
},
|
|
92
93
|
onKeyDown: (e) => D(t, e),
|
|
93
|
-
className: e("outline-hidden focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring/60",
|
|
94
|
-
style: { "--row-h": `${
|
|
94
|
+
className: e("outline-hidden focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring/60", p && t.parentKey === p.key && "zen__tree-row-enter", h && t.parentKey === h && "zen__tree-row-exit"),
|
|
95
|
+
style: { "--row-h": `${u - 1}px` },
|
|
95
96
|
onAnimationEnd: (e) => {
|
|
96
|
-
e.animationName === "zen-row-close" &&
|
|
97
|
+
e.animationName === "zen-row-close" && h && t.parentKey === h && _.current?.();
|
|
97
98
|
}
|
|
98
99
|
}),
|
|
99
100
|
toggleProps: (e) => ({
|
|
@@ -101,13 +102,13 @@ function u({ items: t, getKey: n, getChildren: r, defaultExpanded: c = !0, rowHe
|
|
|
101
102
|
onToggle: () => S(e.key),
|
|
102
103
|
tabIndex: -1
|
|
103
104
|
}),
|
|
104
|
-
rowHeight:
|
|
105
|
+
rowHeight: u
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
|
-
function
|
|
108
|
-
let u =
|
|
109
|
-
return /* @__PURE__ */
|
|
110
|
-
...
|
|
108
|
+
function f({ row: t, tree: n, className: i, style: a, onFocus: o, onKeyDown: s, ...c }) {
|
|
109
|
+
let u = n.rowProps(t);
|
|
110
|
+
return /* @__PURE__ */ l(r, {
|
|
111
|
+
...c,
|
|
111
112
|
...u,
|
|
112
113
|
onFocus: (e) => {
|
|
113
114
|
o?.(e), u.onFocus(e);
|
|
@@ -122,34 +123,34 @@ function d({ row: t, tree: r, className: i, style: a, onFocus: o, onKeyDown: s,
|
|
|
122
123
|
}
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
|
-
function
|
|
126
|
-
return /* @__PURE__ */
|
|
127
|
-
numeric:
|
|
126
|
+
function p({ numeric: t, className: r, children: i, ...a }) {
|
|
127
|
+
return /* @__PURE__ */ l(n, {
|
|
128
|
+
numeric: t,
|
|
128
129
|
className: e("py-0 whitespace-nowrap", r),
|
|
129
130
|
...a,
|
|
130
|
-
children: /* @__PURE__ */
|
|
131
|
-
className: e("zen__tree-cell flex h-[var(--row-h)] items-center",
|
|
131
|
+
children: /* @__PURE__ */ l("div", {
|
|
132
|
+
className: e("zen__tree-cell flex h-[var(--row-h)] items-center", t && "justify-end"),
|
|
132
133
|
children: i
|
|
133
134
|
})
|
|
134
135
|
});
|
|
135
136
|
}
|
|
136
|
-
function
|
|
137
|
-
return /* @__PURE__ */
|
|
137
|
+
function m({ row: t, tree: n, indent: r = 20, children: i, className: a }) {
|
|
138
|
+
return /* @__PURE__ */ u("div", {
|
|
138
139
|
className: e("flex min-w-0 flex-1 items-center gap-1", a),
|
|
139
140
|
style: { paddingLeft: t.depth * r },
|
|
140
|
-
children: [t.hasChildren ? /* @__PURE__ */
|
|
141
|
+
children: [t.hasChildren ? /* @__PURE__ */ l(h, { ...n.toggleProps(t) }) : /* @__PURE__ */ l("span", { className: "-ml-1 w-6 shrink-0" }), i]
|
|
141
142
|
});
|
|
142
143
|
}
|
|
143
|
-
function
|
|
144
|
-
return /* @__PURE__ */
|
|
144
|
+
function h({ expanded: t, onToggle: n, className: r, ...a }) {
|
|
145
|
+
return /* @__PURE__ */ l("button", {
|
|
145
146
|
type: "button",
|
|
146
147
|
onClick: n,
|
|
147
148
|
"aria-label": t ? "Collapse" : "Expand",
|
|
148
149
|
"aria-expanded": t,
|
|
149
|
-
className: e("text-muted-foreground hover:bg-tint/[0.08] hover:text-foreground focus-visible:ring-ring/50 -ml-1 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md outline-hidden transition-colors focus-visible:ring-2",
|
|
150
|
+
className: e("text-muted-foreground hover:bg-tint/[0.08] hover:text-foreground focus-visible:ring-ring/50 -ml-1 grid size-6 shrink-0 cursor-pointer place-items-center rounded-md outline-hidden transition-colors focus-visible:ring-2", r),
|
|
150
151
|
...a,
|
|
151
|
-
children: /* @__PURE__ */
|
|
152
|
+
children: /* @__PURE__ */ l(i, { className: e("zen__tree-chevron size-4 transition-transform duration-200 ease-out", t && "rotate-90") })
|
|
152
153
|
});
|
|
153
154
|
}
|
|
154
155
|
//#endregion
|
|
155
|
-
export {
|
|
156
|
+
export { p as TreeCell, m as TreeLabel, f as TreeRow, h as TreeToggle, d as useTree };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicator.d.ts","sourceRoot":"","sources":["../../packages/utils/indicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAC;AAE7E,uEAAuE;AACvE,MAAM,WAAW,YAAY;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CACxB,QAAQ,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAmB,GAC1B,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"indicator.d.ts","sourceRoot":"","sources":["../../packages/utils/indicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAC;AAE7E,uEAAuE;AACvE,MAAM,WAAW,YAAY;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CACxB,QAAQ,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAmB,GAC1B,YAAY,GAAG,IAAI,CAkCrB"}
|
package/dist/utils/indicator.js
CHANGED
|
@@ -7,7 +7,7 @@ function n(n, r, i = []) {
|
|
|
7
7
|
let e = n.current;
|
|
8
8
|
if (!e) return;
|
|
9
9
|
let t = () => {
|
|
10
|
-
let t = e.querySelector(r), n = t && {
|
|
10
|
+
let t = e.checkVisibility?.() === !1 ? null : e.querySelector(r), n = t && {
|
|
11
11
|
x: t.offsetLeft,
|
|
12
12
|
y: t.offsetTop,
|
|
13
13
|
w: t.offsetWidth,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../packages/utils/motion.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,wBAAgB,aAAa,IAAI,OAAO,CAMvC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/utils/motion.ts
|
|
3
|
+
function e() {
|
|
4
|
+
return typeof window < "u" && (!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches || document.documentElement.classList.contains("reduce-motion"));
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
export { e as reducedMotion };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Makes an in-page link (`<a href="#id">`) scroll smoothly, as an onClick. The
|
|
4
|
+
* address gets the #id and focus moves to the section, so the keyboard and
|
|
5
|
+
* screen readers carry on from there. Opening in a new tab or window, and
|
|
6
|
+
* links to nothing on the page, are left to the browser.
|
|
7
|
+
*/
|
|
8
|
+
export declare function followSectionLink(event: MouseEvent<HTMLAnchorElement>): void;
|
|
9
|
+
//# sourceMappingURL=section-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-link.d.ts","sourceRoot":"","sources":["../../packages/utils/section-link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAoB5E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { reducedMotion as e } from "./motion.js";
|
|
3
|
+
//#region packages/utils/section-link.ts
|
|
4
|
+
function t(t) {
|
|
5
|
+
if (t.defaultPrevented || t.button !== 0 || t.metaKey || t.ctrlKey || t.shiftKey || t.altKey) return;
|
|
6
|
+
let { hash: n } = t.currentTarget, r = n && document.getElementById(decodeURIComponent(n.slice(1)));
|
|
7
|
+
r && (t.preventDefault(), r.scrollIntoView({ behavior: e() ? "instant" : "smooth" }), history.replaceState(history.state, "", n), r.hasAttribute("tabindex") || r.setAttribute("tabindex", "-1"), r.focus({ preventScroll: !0 }));
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as followSectionLink };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-wave.d.ts","sourceRoot":"","sources":["../../packages/utils/theme-wave.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/utils/theme-wave.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { applyGraphicsMode as e } from "./graphics.js";
|
|
3
|
-
import {
|
|
3
|
+
import { reducedMotion as t } from "./motion.js";
|
|
4
|
+
import { changeTheme as n, oklchToLinearRgb as r } from "./theme.js";
|
|
4
5
|
//#region packages/utils/theme-wave.ts
|
|
5
|
-
var
|
|
6
|
+
var i = 1330, a = [
|
|
6
7
|
.25,
|
|
7
8
|
.55,
|
|
8
9
|
.35,
|
|
9
10
|
1
|
|
10
|
-
],
|
|
11
|
+
], o = 1050, s = [
|
|
11
12
|
.55,
|
|
12
13
|
0,
|
|
13
14
|
.85,
|
|
14
15
|
.35
|
|
15
|
-
],
|
|
16
|
+
], c = .05, l = 36, u = [
|
|
16
17
|
[
|
|
17
18
|
3,
|
|
18
19
|
1.9,
|
|
@@ -28,15 +29,15 @@ var r = 1330, i = [
|
|
|
28
29
|
4.1,
|
|
29
30
|
.2
|
|
30
31
|
]
|
|
31
|
-
],
|
|
32
|
-
function
|
|
33
|
-
|
|
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;
|
|
34
35
|
}
|
|
35
|
-
function
|
|
36
|
+
function x(e, t, n) {
|
|
36
37
|
let r = Math.min(1, Math.max(0, (n - e) / (t - e)));
|
|
37
38
|
return r * r * (3 - 2 * r);
|
|
38
39
|
}
|
|
39
|
-
function
|
|
40
|
+
function S([e, t, n, r], i) {
|
|
40
41
|
let a = (e, t, n) => 3 * e * n * (1 - n) ** 2 + 3 * t * n ** 2 * (1 - n) + n ** 3, o = 0, s = 1;
|
|
41
42
|
for (let t = 0; t < 24; t++) {
|
|
42
43
|
let t = (o + s) / 2;
|
|
@@ -44,10 +45,10 @@ function x([e, t, n, r], i) {
|
|
|
44
45
|
}
|
|
45
46
|
return a(t, r, (o + s) / 2);
|
|
46
47
|
}
|
|
47
|
-
function
|
|
48
|
-
return Math.min(
|
|
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
50
|
}
|
|
50
|
-
var
|
|
51
|
+
var w = `
|
|
51
52
|
precision highp float;
|
|
52
53
|
uniform vec2 res;
|
|
53
54
|
uniform float dpr;
|
|
@@ -63,8 +64,8 @@ uniform vec3 aurora[3];
|
|
|
63
64
|
uniform float light;
|
|
64
65
|
|
|
65
66
|
float wobble(float a, float r) {
|
|
66
|
-
float size = min(${
|
|
67
|
-
return size * (${
|
|
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
69
|
}
|
|
69
70
|
|
|
70
71
|
// A train of ripples whose front is x px away (ahead of it when positive, as it moves):
|
|
@@ -72,8 +73,8 @@ float wobble(float a, float r) {
|
|
|
72
73
|
// the train faster than it spreads, as on water. Its slope (height per px of x): the
|
|
73
74
|
// ripples are a fixed size, as real ones are, however big the water.
|
|
74
75
|
float rippleSlope(float x) {
|
|
75
|
-
float k = 6.2832 / ${
|
|
76
|
-
float reach = x < 0.0 ? ${(2.5 *
|
|
76
|
+
float k = 6.2832 / ${p.toFixed(1)};
|
|
77
|
+
float reach = x < 0.0 ? ${(2.5 * p).toFixed(1)} : ${(.35 * p).toFixed(1)};
|
|
77
78
|
float phase = k * x - 7.0 * time;
|
|
78
79
|
return exp(-x * x / (2.0 * reach * reach)) * (-x / (reach * reach) * cos(phase) / k - sin(phase));
|
|
79
80
|
}
|
|
@@ -121,18 +122,18 @@ void main() {
|
|
|
121
122
|
color = clamp(color, 0.0, 1.0);
|
|
122
123
|
float cover = max(color.r, max(color.g, color.b));
|
|
123
124
|
gl_FragColor = vec4(color, cover + shade * (1.0 - cover));
|
|
124
|
-
}`,
|
|
125
|
-
function
|
|
126
|
-
if (
|
|
127
|
-
|
|
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;
|
|
128
129
|
let e = document.createElement("canvas");
|
|
129
|
-
e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${
|
|
130
|
+
e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${g} !important`;
|
|
130
131
|
let t = e.getContext("webgl", {
|
|
131
132
|
premultipliedAlpha: !0,
|
|
132
133
|
antialias: !1
|
|
133
134
|
}), n = t?.createProgram();
|
|
134
135
|
if (!t || !n) return null;
|
|
135
|
-
for (let [e, r] of [[t.VERTEX_SHADER,
|
|
136
|
+
for (let [e, r] of [[t.VERTEX_SHADER, T], [t.FRAGMENT_SHADER, w]]) {
|
|
136
137
|
let i = t.createShader(e);
|
|
137
138
|
if (!i) return null;
|
|
138
139
|
t.shaderSource(i, r), t.compileShader(i), t.attachShader(n, i);
|
|
@@ -147,95 +148,95 @@ function E() {
|
|
|
147
148
|
3
|
|
148
149
|
]), t.STATIC_DRAW), t.enableVertexAttribArray(0), t.vertexAttribPointer(0, 2, t.FLOAT, !1, 0, 0);
|
|
149
150
|
let r = /* @__PURE__ */ new Map();
|
|
150
|
-
return
|
|
151
|
+
return E = {
|
|
151
152
|
canvas: e,
|
|
152
153
|
gl: t,
|
|
153
154
|
uniform: (e) => (r.has(e) || r.set(e, t.getUniformLocation(n, e)), r.get(e))
|
|
154
|
-
},
|
|
155
|
-
}
|
|
156
|
-
function D(e) {
|
|
157
|
-
e.gl.clear(e.gl.COLOR_BUFFER_BIT), e.canvas.remove();
|
|
155
|
+
}, E;
|
|
158
156
|
}
|
|
159
157
|
function O(e) {
|
|
160
|
-
|
|
158
|
+
e.gl.clear(e.gl.COLOR_BUFFER_BIT), e.canvas.remove();
|
|
161
159
|
}
|
|
162
|
-
function k() {
|
|
163
|
-
return
|
|
160
|
+
function k(e) {
|
|
161
|
+
return r(e).map((e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055);
|
|
164
162
|
}
|
|
165
163
|
function A() {
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
return !t() && !!document.startViewTransition && e() !== "lite";
|
|
165
|
+
}
|
|
166
|
+
function j() {
|
|
167
|
+
if (E !== void 0 || !A()) return;
|
|
168
|
+
let e = D();
|
|
168
169
|
e?.gl.drawArrays(e.gl.TRIANGLES, 0, 3);
|
|
169
170
|
}
|
|
170
|
-
function
|
|
171
|
-
let
|
|
172
|
-
if (!
|
|
173
|
-
|
|
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;
|
|
173
|
+
if (!P) {
|
|
174
|
+
n(u ? r : c, e);
|
|
174
175
|
return;
|
|
175
176
|
}
|
|
176
|
-
let
|
|
177
|
-
if (
|
|
178
|
-
let e =
|
|
179
|
-
|
|
180
|
-
} else
|
|
181
|
-
let
|
|
182
|
-
|
|
183
|
-
let
|
|
184
|
-
if (
|
|
185
|
-
let { style: e } =
|
|
186
|
-
|
|
177
|
+
let F = (E + M) / 2, I = (j + N) / 2;
|
|
178
|
+
if (t instanceof Element) {
|
|
179
|
+
let e = t.getBoundingClientRect();
|
|
180
|
+
F = e.left + e.width / 2, I = e.top + e.height / 2;
|
|
181
|
+
} 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 = {
|
|
187
188
|
style: e,
|
|
188
189
|
name: e.getPropertyValue("view-transition-name"),
|
|
189
190
|
priority: e.getPropertyPriority("view-transition-name")
|
|
190
|
-
}, e.setProperty("view-transition-name",
|
|
191
|
+
}, e.setProperty("view-transition-name", _, "important");
|
|
191
192
|
}
|
|
192
|
-
Object.assign(
|
|
193
|
-
left: `${
|
|
194
|
-
top: `${
|
|
195
|
-
width: `${
|
|
196
|
-
height: `${
|
|
197
|
-
clipPath:
|
|
193
|
+
Object.assign(P.canvas.style, {
|
|
194
|
+
left: `${E}px`,
|
|
195
|
+
top: `${j}px`,
|
|
196
|
+
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
199
|
});
|
|
199
|
-
let
|
|
200
|
+
let H = [], U = !1, W = document.startViewTransition(async () => {
|
|
200
201
|
e(), await Promise.resolve();
|
|
201
|
-
let t = getComputedStyle(
|
|
202
|
-
|
|
203
|
-
let n = t.getPropertyValue("--glow").trim(), [
|
|
204
|
-
|
|
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);
|
|
205
|
+
H = [
|
|
205
206
|
n,
|
|
206
207
|
t.getPropertyValue("--glow-2").trim(),
|
|
207
|
-
`${
|
|
208
|
-
].flatMap(
|
|
208
|
+
`${i} ${a} ${(o + 240) % 360}`
|
|
209
|
+
].flatMap(k), document.body.append(P.canvas);
|
|
209
210
|
});
|
|
210
|
-
|
|
211
|
-
let e =
|
|
211
|
+
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) => {
|
|
212
213
|
let r = t(n), i = n * e / 1e3;
|
|
213
|
-
return `polygon(${Array.from({ length:
|
|
214
|
-
let n = t /
|
|
215
|
-
return `${(
|
|
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`;
|
|
216
217
|
}).join(",")})`;
|
|
217
|
-
},
|
|
218
|
-
clipPath:
|
|
219
|
-
offset: t /
|
|
220
|
-
})),
|
|
218
|
+
}, h = Array.from({ length: 49 }, (e, t) => ({
|
|
219
|
+
clipPath: m(t / d),
|
|
220
|
+
offset: t / d
|
|
221
|
+
})), _ = c.animate(h, {
|
|
221
222
|
duration: e,
|
|
222
223
|
pseudoElement: n
|
|
223
224
|
});
|
|
224
|
-
|
|
225
|
-
let
|
|
226
|
-
|
|
227
|
-
let
|
|
228
|
-
if (
|
|
229
|
-
|
|
230
|
-
let r = Math.min(1, (n -
|
|
231
|
-
if (
|
|
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);
|
|
232
233
|
let i = t(r), a = Math.min(1, (1 - r) / .12), o, s;
|
|
233
|
-
|
|
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);
|
|
234
235
|
};
|
|
235
|
-
requestAnimationFrame(
|
|
236
|
-
}).catch(() => {}),
|
|
237
|
-
|
|
236
|
+
requestAnimationFrame(L);
|
|
237
|
+
}).catch(() => {}), W.finished.finally(() => {
|
|
238
|
+
B === v && (b(), c.classList.remove(m, h), O(P));
|
|
238
239
|
});
|
|
239
240
|
}
|
|
240
241
|
//#endregion
|
|
241
|
-
export {
|
|
242
|
+
export { j as prepareThemeWave, M as themeWave };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnchoredPopup.d.ts","sourceRoot":"","sources":["../../packages/utils/useAnchoredPopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAmD,MAAM,OAAO,CAAC;AAElG;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,EACrE,KAAe,EACf,MAAU,EACV,UAAkB,EAClB,YAAY,GACf,GAAE,oBAAyB;;;oBAgBb,OAAO;;;eA6CkD,aAAa;;;;;;;;;;;;;EAJpF;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM;;WACoC,aAAa;EACpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAe,EAAE,MAAU,EAAE,KAAK,EAAE,GAAE,aAAkB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"useAnchoredPopup.d.ts","sourceRoot":"","sources":["../../packages/utils/useAnchoredPopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAmD,MAAM,OAAO,CAAC;AAElG;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,EACrE,KAAe,EACf,MAAU,EACV,UAAkB,EAClB,YAAY,GACf,GAAE,oBAAyB;;;oBAgBb,OAAO;;;eA6CkD,aAAa;;;;;;;;;;;;;EAJpF;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM;;WACoC,aAAa;EACpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAe,EAAE,MAAU,EAAE,KAAK,EAAE,GAAE,aAAkB,GAAG,aAAa,CAsBnH;AAED,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAChC;AAYD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAiCnE;AAoCD,MAAM,WAAW,oBAAoB;IACjC,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C"}
|
|
@@ -62,6 +62,11 @@ function s(e, { align: t = "start", offset: n = 4, width: r } = {}) {
|
|
|
62
62
|
positionTryFallbacks: "flip-block",
|
|
63
63
|
inset: "auto",
|
|
64
64
|
margin: `${n}px 0`,
|
|
65
|
+
transformOrigin: {
|
|
66
|
+
start: "top left",
|
|
67
|
+
end: "top right",
|
|
68
|
+
center: "top"
|
|
69
|
+
}[t],
|
|
65
70
|
...r === "at-least" && {
|
|
66
71
|
width: "max-content",
|
|
67
72
|
minWidth: "anchor-size(width)"
|
|
@@ -113,7 +118,7 @@ function f(e) {
|
|
|
113
118
|
width: e.offsetWidth,
|
|
114
119
|
height: e.offsetHeight
|
|
115
120
|
}, l = document.documentElement.clientWidth, u = window.innerHeight, f = o.bottom + i, p = o.top - i - c.height, m = f + c.height > u - d && p >= d ? p : f, h = getComputedStyle(n).direction === "rtl", g = h ? o.right - c.width : o.left, _ = h ? o.left : o.right - c.width, v = r === "center" ? o.left + (o.width - c.width) / 2 : r === "end" ? _ : g;
|
|
116
|
-
s.top = `${m}px`, s.left = `${Math.max(d, Math.min(v, l - c.width - d))}px`;
|
|
121
|
+
s.top = `${m}px`, s.transformOrigin = s.transformOrigin.replace(/top|bottom/, m === p ? "bottom" : "top"), s.left = `${Math.max(d, Math.min(v, l - c.width - d))}px`;
|
|
117
122
|
}
|
|
118
123
|
//#endregion
|
|
119
124
|
export { o as anchorFor, s as anchoredStyle, u as useAnchorFallback, a as useAnchoredPopup };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSeen.d.ts","sourceRoot":"","sources":["../../packages/utils/useSeen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEvD,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,CAa/D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect as e, useState as t } from "react";
|
|
3
|
+
//#region packages/utils/useSeen.ts
|
|
4
|
+
function n(n) {
|
|
5
|
+
let [r, i] = t(!1);
|
|
6
|
+
return e(() => {
|
|
7
|
+
let e = n.current;
|
|
8
|
+
if (r || !e) return;
|
|
9
|
+
if (typeof IntersectionObserver > "u") return i(!0);
|
|
10
|
+
let t = new IntersectionObserver((e) => {
|
|
11
|
+
e.some((e) => e.isIntersecting) && i(!0);
|
|
12
|
+
});
|
|
13
|
+
return t.observe(e), () => t.disconnect();
|
|
14
|
+
}, [n, r]), r;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { n as useSeen };
|