@rinzai/zen 0.8.6 → 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.
Files changed (75) hide show
  1. package/dist/animated-number/index.d.ts.map +1 -1
  2. package/dist/animated-number/index.js +19 -18
  3. package/dist/breadcrumbs/index.d.ts +15 -0
  4. package/dist/breadcrumbs/index.d.ts.map +1 -0
  5. package/dist/breadcrumbs/index.js +39 -0
  6. package/dist/card/index.d.ts +3 -1
  7. package/dist/card/index.d.ts.map +1 -1
  8. package/dist/card/index.js +3 -2
  9. package/dist/chart/donut.d.ts.map +1 -1
  10. package/dist/chart/donut.js +72 -70
  11. package/dist/chart/index.d.ts.map +1 -1
  12. package/dist/chart/index.js +154 -152
  13. package/dist/code-block/index.js +1 -1
  14. package/dist/code-input/index.d.ts +20 -0
  15. package/dist/code-input/index.d.ts.map +1 -0
  16. package/dist/code-input/index.js +44 -0
  17. package/dist/command-palette/index.d.ts +37 -0
  18. package/dist/command-palette/index.d.ts.map +1 -0
  19. package/dist/command-palette/index.js +120 -0
  20. package/dist/dialog/index.d.ts +9 -1
  21. package/dist/dialog/index.d.ts.map +1 -1
  22. package/dist/dialog/index.js +116 -32
  23. package/dist/empty-state/index.d.ts +14 -0
  24. package/dist/empty-state/index.d.ts.map +1 -0
  25. package/dist/empty-state/index.js +31 -0
  26. package/dist/file-drop/index.d.ts +18 -0
  27. package/dist/file-drop/index.d.ts.map +1 -0
  28. package/dist/file-drop/index.js +49 -0
  29. package/dist/index.d.ts +13 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/lib.js +75 -63
  32. package/dist/pagination/index.d.ts +26 -0
  33. package/dist/pagination/index.d.ts.map +1 -0
  34. package/dist/pagination/index.js +62 -0
  35. package/dist/skeleton/index.d.ts +12 -2
  36. package/dist/skeleton/index.d.ts.map +1 -1
  37. package/dist/skeleton/index.js +11 -5
  38. package/dist/sparkline/index.d.ts +15 -0
  39. package/dist/sparkline/index.d.ts.map +1 -0
  40. package/dist/sparkline/index.js +56 -0
  41. package/dist/stepper/index.d.ts +19 -0
  42. package/dist/stepper/index.d.ts.map +1 -0
  43. package/dist/stepper/index.js +53 -0
  44. package/dist/table/index.d.ts +6 -1
  45. package/dist/table/index.d.ts.map +1 -1
  46. package/dist/table/index.js +78 -46
  47. package/dist/table-of-contents/index.d.ts +1 -0
  48. package/dist/table-of-contents/index.d.ts.map +1 -1
  49. package/dist/table-of-contents/index.js +25 -23
  50. package/dist/tag-input/index.d.ts +19 -0
  51. package/dist/tag-input/index.d.ts.map +1 -0
  52. package/dist/tag-input/index.js +61 -0
  53. package/dist/theme.css +159 -0
  54. package/dist/timeline/index.d.ts +18 -0
  55. package/dist/timeline/index.d.ts.map +1 -0
  56. package/dist/timeline/index.js +45 -0
  57. package/dist/tree/index.d.ts.map +1 -1
  58. package/dist/tree/index.js +68 -67
  59. package/dist/utils/indicator.d.ts.map +1 -1
  60. package/dist/utils/indicator.js +1 -1
  61. package/dist/utils/motion.d.ts +3 -0
  62. package/dist/utils/motion.d.ts.map +1 -0
  63. package/dist/utils/motion.js +7 -0
  64. package/dist/utils/section-link.d.ts +9 -0
  65. package/dist/utils/section-link.d.ts.map +1 -0
  66. package/dist/utils/section-link.js +10 -0
  67. package/dist/utils/theme-wave.d.ts.map +1 -1
  68. package/dist/utils/theme-wave.js +72 -71
  69. package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
  70. package/dist/utils/useAnchoredPopup.js +6 -1
  71. package/dist/utils/useSeen.d.ts +4 -0
  72. package/dist/utils/useSeen.d.ts.map +1 -0
  73. package/dist/utils/useSeen.js +17 -0
  74. package/dist/zen.css +1 -1
  75. package/package.json +1 -1
@@ -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;AAEjE,OAAO,EACH,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EAKZ,MAAM,OAAO,CAAC;AAEf,iCAAiC;AACjC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAsB,EAAE,SAAc,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;;kBAoE3F,MAAM;sBA5DU,MAAM;kBA4JzB,MAAM;oBACJ,MAAM;IACtB,yCAAyC;;IAEzC,wBAAwB;;IAExB,kCAAkC;;;;oBAzCf,WAAW,CAAC,CAAC,CAAC;;;;;;;;qBAQpB,UAAU,CAAC,WAAW,CAAC;uBAGrB,aAAa,CAAC,WAAW,CAAC;;eAOK,aAAa;4BACvC;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;uBAMvB,WAAW,CAAC,CAAC,CAAC;;;;;;EAsB3C;AAED,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,+FAA+F;AAC/F,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,+BAkBvG;AAED,qGAAqG;AACrG,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAQjF;AAED,6GAA6G;AAC7G,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,+BAU9F;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,+BAqBrF;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC;IACnD,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,IAAI,CAAC;IACzD,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/E,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/tree/index.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { TableCell as t, TableRow as n } from "../table/index.js";
4
- import r from "../icons/micro/chevron-right.js";
5
- import { useCallback as i, useMemo as a, useRef as o, useState as s } from "react";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
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 u({ items: t, getKey: n, getChildren: r, defaultExpanded: c = !0, rowHeight: l = 36 }) {
9
- let [u, d] = s(() => /* @__PURE__ */ new Set()), [f, p] = s(null), [m, h] = s(null), g = o(null), _ = i((e) => u.has(e) !== c, [u, c]), v = a(() => {
10
- let e = [], i = (t, a, o) => {
11
- t.forEach((s, c) => {
12
- let l = n(s), u = r(s), d = !!u?.length, f = d && _(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: t.length
22
- }), f && i(u, a + 1, l);
22
+ siblings: n.length
23
+ }), f && t(u, a + 1, l);
23
24
  });
24
25
  };
25
- return i(t, 0, null), e;
26
+ return t(n, 0, null), e;
26
27
  }, [
27
- t,
28
28
  n,
29
29
  r,
30
- _
31
- ]), y = () => {
32
- let e = [], i = (t) => {
33
- for (let a of t) {
34
- let t = r(a);
35
- t?.length && (e.push(n(a)), i(t));
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 i(t), e;
39
- }, b = i((e, t) => d((n) => {
39
+ return t(n), e;
40
+ }, x = a((e, t) => f((n) => {
40
41
  let r = new Set(n);
41
- return t === c ? r.delete(e) : r.add(e), r;
42
- }), [c]), x = () => typeof window < "u" && (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches || document.documentElement.classList.contains("reduce-motion")), S = (e) => {
43
- let t = () => {
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
- p({
46
+ m({
46
47
  key: e,
47
48
  at: t
48
- }), setTimeout(() => p((e) => e?.at === t ? null : e), 320);
49
+ }), setTimeout(() => m((e) => e?.at === t ? null : e), 320);
49
50
  };
50
- if (m === e) g.current = null, h(null), t();
51
- else if (!_(e)) t(), b(e, !0);
52
- else if (x()) b(e, !1);
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
- h(e);
55
+ g(e);
55
56
  let t = () => {
56
- g.current === t && (b(e, !1), h((t) => t === e ? null : t), g.current = null);
57
+ _.current === t && (x(e, !1), g((t) => t === e ? null : t), _.current = null);
57
58
  };
58
- g.current = t, setTimeout(t, 500);
59
+ _.current = t, setTimeout(t, 500);
59
60
  }
60
- }, [C, w] = s(null), T = v.some((e) => e.key === C) ? C : v[0]?.key ?? null, E = (e) => e.expanded && m !== e.key, D = (e, t) => {
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 = v.indexOf(e), r;
63
- if (t.key === "ArrowDown") r = v[n + 1];
64
- else if (t.key === "ArrowUp") r = v[n - 1];
65
- else if (t.key === "Home") r = v[0];
66
- else if (t.key === "End") r = v.at(-1);
67
- else if (t.key === "ArrowRight" && e.hasChildren) E(e) ? r = v[n + 1] : S(e.key);
68
- else if (t.key === "ArrowLeft") E(e) ? S(e.key) : r = v.find((t) => t.key === e.parentKey);
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: v,
74
+ rows: y,
74
75
  toggle: S,
75
- isExpanded: _,
76
- expand: (e) => b(e, !0),
77
- collapse: (e) => b(e, !1),
78
- expandAll: () => d(c ? /* @__PURE__ */ new Set() : new Set(y())),
79
- collapseAll: () => d(c ? new Set(y()) : /* @__PURE__ */ new Set()),
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", f && t.parentKey === f.key && "zen__tree-row-enter", m && t.parentKey === m && "zen__tree-row-exit"),
94
- style: { "--row-h": `${l - 1}px` },
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" && m && t.parentKey === m && g.current?.();
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: l
105
+ rowHeight: u
105
106
  };
106
107
  }
107
- function d({ row: t, tree: r, className: i, style: a, onFocus: o, onKeyDown: s, ...l }) {
108
- let u = r.rowProps(t);
109
- return /* @__PURE__ */ c(n, {
110
- ...l,
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 f({ numeric: n, className: r, children: i, ...a }) {
126
- return /* @__PURE__ */ c(t, {
127
- numeric: n,
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__ */ c("div", {
131
- className: e("zen__tree-cell flex h-[var(--row-h)] items-center", n && "justify-end"),
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 p({ row: t, tree: n, indent: r = 20, children: i, className: a }) {
137
- return /* @__PURE__ */ l("div", {
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__ */ c(m, { ...n.toggleProps(t) }) : /* @__PURE__ */ c("span", { className: "-ml-1 w-6 shrink-0" }), i]
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 m({ expanded: t, onToggle: n, className: i, ...a }) {
144
- return /* @__PURE__ */ c("button", {
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", i),
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__ */ c(r, { className: e("zen__tree-chevron size-4 transition-transform duration-200 ease-out", t && "rotate-90") })
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 { f as TreeCell, p as TreeLabel, d as TreeRow, m as TreeToggle, u as useTree };
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,CAiCrB"}
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"}
@@ -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,3 @@
1
+ /** Whether to skip motion: the OS setting, or an app's own switch (html.reduce-motion). */
2
+ export declare function reducedMotion(): boolean;
3
+ //# sourceMappingURL=motion.d.ts.map
@@ -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":"AA6NA;;;;;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":"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,18 +1,19 @@
1
1
  "use client";
2
2
  import { applyGraphicsMode as e } from "./graphics.js";
3
- import { changeTheme as t, oklchToLinearRgb as n } from "./theme.js";
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 r = 1330, i = [
6
+ var i = 1330, a = [
6
7
  .25,
7
8
  .55,
8
9
  .35,
9
10
  1
10
- ], a = 1050, o = [
11
+ ], o = 1050, s = [
11
12
  .55,
12
13
  0,
13
14
  .85,
14
15
  .35
15
- ], s = .05, c = 36, l = [
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
- ], u = 48, d = 72, f = 28, p = "zen-theme-waving", m = "zen-theme-closing", h = "zen-theme-water", g = "zen-theme-area", _ = 0, v = null;
32
- function y() {
33
- v && v.style.setProperty("view-transition-name", v.name, v.priority), v = null;
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 b(e, t, n) {
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 x([e, t, n, r], i) {
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 S(e, t, n, r) {
48
- return Math.min(c, s * t) * l.reduce((t, [i, a, o], s) => t + o * Math.sin(i * e + a * n + r * (s + 1)), 0);
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 C = `
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(${c.toFixed(1)}, ${s.toFixed(3)} * r);
67
- return size * (${l.map(([e, t, n], r) => `${n.toFixed(2)} * sin(${e.toFixed(1)} * a + ${t.toFixed(2)} * time + seed * ${(r + 1).toFixed(1)})`).join(" + ")});
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 / ${f.toFixed(1)};
76
- float reach = x < 0.0 ? ${(2.5 * f).toFixed(1)} : ${(.35 * f).toFixed(1)};
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
- }`, w = "attribute vec2 at; void main() { gl_Position = vec4(at, 0.0, 1.0); }", T;
125
- function E() {
126
- if (T !== void 0) return T;
127
- T = null;
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:${h} !important`;
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, w], [t.FRAGMENT_SHADER, C]]) {
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 T = {
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
- }, T;
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
- return n(e).map((e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055);
158
+ e.gl.clear(e.gl.COLOR_BUFFER_BIT), e.canvas.remove();
161
159
  }
162
- function k() {
163
- return !(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches || document.documentElement.classList.contains("reduce-motion")) && !!document.startViewTransition && e() !== "lite";
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
- if (T !== void 0 || !k()) return;
167
- let e = E();
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 j(e, n, s) {
171
- let l = document.documentElement, f = !!s && s !== l, C = window.innerWidth, w = window.innerHeight, T = f ? s.getBoundingClientRect() : new DOMRect(0, 0, C, w), A = Math.max(0, T.left), j = Math.max(0, T.top), M = Math.min(C, T.right), N = Math.min(w, T.bottom), P = k() && M > A && N > j ? E() : null;
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
173
  if (!P) {
173
- t(f ? s : l, e);
174
+ n(u ? r : c, e);
174
175
  return;
175
176
  }
176
- let F = (A + M) / 2, I = (j + N) / 2;
177
- if (n instanceof Element) {
178
- let e = n.getBoundingClientRect();
177
+ let F = (E + M) / 2, I = (j + N) / 2;
178
+ if (t instanceof Element) {
179
+ let e = t.getBoundingClientRect();
179
180
  F = e.left + e.width / 2, I = e.top + e.height / 2;
180
- } else n && ({x: F, y: I} = n);
181
- 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 + c + 2, B = ++_;
182
- D(P), y(), l.classList.add(p);
183
- let V = f ? g : "root";
184
- if (f) {
185
- let { style: e } = s;
186
- v = {
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", g, "important");
191
+ }, e.setProperty("view-transition-name", _, "important");
191
192
  }
192
193
  Object.assign(P.canvas.style, {
193
- left: `${A}px`,
194
+ left: `${E}px`,
194
195
  top: `${j}px`,
195
- width: `${M - A}px`,
196
+ width: `${M - E}px`,
196
197
  height: `${N - j}px`,
197
- clipPath: f ? `inset(${T.top - j}px ${M - T.right}px ${N - T.bottom}px ${T.left - A}px round ${getComputedStyle(s).borderRadius})` : ""
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
200
  let H = [], U = !1, W = document.startViewTransition(async () => {
200
201
  e(), await Promise.resolve();
201
- let t = getComputedStyle(f ? s : l);
202
- U = Number(t.getPropertyValue("--background").trim().split(" ")[0]) <= .5, l.classList.toggle(m, U);
203
- let n = t.getPropertyValue("--glow").trim(), [r, i, a] = n.split(" ").map(Number);
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);
204
205
  H = [
205
206
  n,
206
207
  t.getPropertyValue("--glow-2").trim(),
207
- `${r} ${i} ${(a + 240) % 360}`
208
- ].flatMap(O), document.body.append(P.canvas);
208
+ `${i} ${a} ${(o + 240) % 360}`
209
+ ].flatMap(k), document.body.append(P.canvas);
209
210
  });
210
211
  W.ready.then(() => {
211
- let e = U ? a : r, t = (e) => (U ? 1 - x(o, e) : x(i, e)) * z, n = `::view-transition-${U ? "old" : "new"}(${V})`, s = new DOMMatrix(getComputedStyle(l, `::view-transition-group(${h})`).transform), [c, p] = f ? [T.left, T.top] : [A - s.e, j - s.f], m = (n) => {
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: d }, (e, t) => {
214
- let n = t / d * 2 * Math.PI, a = Math.max(0, r + S(n, r, i, R));
215
- return `${(F - c + a * Math.cos(n)).toFixed(1)}px ${(I - p + a * Math.sin(n)).toFixed(1)}px`;
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
- }, g = Array.from({ length: 49 }, (e, t) => ({
218
- clipPath: m(t / u),
219
- offset: t / u
220
- })), v = l.animate(g, {
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
- v.pause();
225
- let y, { canvas: C, gl: w, uniform: E } = P, O = Math.min(window.devicePixelRatio || 1, 2);
226
- C.width = Math.round((M - A) * O), C.height = Math.round((N - j) * O), w.viewport(0, 0, C.width, C.height), w.uniform2f(E("res"), C.width, C.height), w.uniform1f(E("dpr"), O), w.uniform2f(E("from"), F - A, I - j), w.uniform1f(E("seed"), R), w.uniform3fv(E("aurora[0]"), H), w.uniform1f(E("light"), +!U);
227
- let k = (e) => 1.6 * b(.05, .45, e) * (1 - e) ** 1.5, L = (n) => {
228
- if (B !== _) return;
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;
229
230
  y ??= n;
230
231
  let r = Math.min(1, (n - y) / e);
231
- if (v.currentTime = r * e, r === 1) return v.finish(), D(P);
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
- U ? (o = 1.6 * r * Math.sqrt(1 - r) * a, s = Math.min(1, r * 4) * Math.min(1, i / 24) * a) : (o = k(r) * a, s = Math.min(1, i / 40) * (1 - r ** 3) * a), w.uniform1f(E("time"), r * e / 1e3), w.uniform1f(E("edge"), i), w.uniform1f(E("dir"), U ? -1 : 1), w.uniform1f(E("strength"), o), w.uniform1f(E("prism"), s), w.drawArrays(w.TRIANGLES, 0, 3), requestAnimationFrame(L);
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
236
  requestAnimationFrame(L);
236
237
  }).catch(() => {}), W.finished.finally(() => {
237
- B === _ && (y(), l.classList.remove(p, m), D(P));
238
+ B === v && (b(), c.classList.remove(m, h), O(P));
238
239
  });
239
240
  }
240
241
  //#endregion
241
- export { A as prepareThemeWave, j as themeWave };
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,CAoBnH;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;AAmCD,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"}
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,4 @@
1
+ import { RefObject } from 'react';
2
+ /** True once the element has been on screen; it stays true. */
3
+ export declare function useSeen(ref: RefObject<Element | null>): boolean;
4
+ //# sourceMappingURL=useSeen.d.ts.map
@@ -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 };