@datawire-ai/busyfile-design-library 1.31.1 → 1.33.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 (64) hide show
  1. package/dist/index100.js +3 -3
  2. package/dist/index101.js +2 -2
  3. package/dist/index102.js +2 -2
  4. package/dist/index106.js +5 -5
  5. package/dist/index107.js +1 -1
  6. package/dist/index108.js +3 -14
  7. package/dist/index109.js +46 -10
  8. package/dist/index110.js +11 -4
  9. package/dist/index111.js +4 -13
  10. package/dist/index112.js +12 -3
  11. package/dist/index113.js +644 -40
  12. package/dist/index116.js +23 -649
  13. package/dist/index117.js +15 -18
  14. package/dist/index118.js +33 -16
  15. package/dist/index119.js +12 -33
  16. package/dist/index12.js +28 -30
  17. package/dist/index120.js +15 -18
  18. package/dist/index121.js +1 -1
  19. package/dist/index123.js +1 -1
  20. package/dist/index30.js +52 -51
  21. package/dist/index42.js +6 -6
  22. package/dist/index44.js +9 -9
  23. package/dist/index46.js +7 -7
  24. package/dist/index48.js +1 -1
  25. package/dist/index49.js +5 -5
  26. package/dist/index50.js +1 -1
  27. package/dist/index52.js +5 -5
  28. package/dist/index54.js +1 -1
  29. package/dist/index55.js +1 -1
  30. package/dist/index56.js +1 -1
  31. package/dist/index57.js +1 -1
  32. package/dist/index59.js +5 -5
  33. package/dist/index61.js +1 -1
  34. package/dist/index62.js +1 -1
  35. package/dist/index63.js +1 -1
  36. package/dist/index65.js +1 -1
  37. package/dist/index66.js +1 -1
  38. package/dist/index67.js +1 -1
  39. package/dist/index68.js +1 -1
  40. package/dist/index70.js +1 -1
  41. package/dist/index71.js +1 -1
  42. package/dist/index73.js +1 -1
  43. package/dist/index75.js +7 -7
  44. package/dist/index78.js +1 -1
  45. package/dist/index79.js +1 -1
  46. package/dist/index81.js +1 -1
  47. package/dist/index82.js +10 -10
  48. package/dist/index84.js +1 -1
  49. package/dist/index85.js +5 -5
  50. package/dist/index86.js +2 -2
  51. package/dist/index87.js +5 -5
  52. package/dist/index88.js +1 -1
  53. package/dist/index90.js +5 -66
  54. package/dist/index91.js +66 -5
  55. package/dist/index92.js +33 -51
  56. package/dist/index93.js +181 -5
  57. package/dist/index94.js +51 -24
  58. package/dist/index95.js +7 -69
  59. package/dist/index96.js +24 -33
  60. package/dist/index97.js +5 -181
  61. package/dist/index98.js +69 -7
  62. package/dist/index99.js +1 -1
  63. package/dist/types/index.d.ts +3 -3
  64. package/package.json +1 -1
package/dist/index93.js CHANGED
@@ -1,8 +1,184 @@
1
- import * as u from "react";
2
- function t(r) {
3
- const e = u.useRef({ value: r, previous: r });
4
- return u.useMemo(() => (e.current.value !== r && (e.current.previous = e.current.value, e.current.value = r), e.current.previous), [r]);
1
+ "use client";
2
+ import * as c from "react";
3
+ import { composeEventHandlers as p } from "./index90.js";
4
+ import { createCollection as V } from "./index109.js";
5
+ import { useComposedRefs as j } from "./index89.js";
6
+ import { createContextScope as z } from "./index91.js";
7
+ import { useId as q } from "./index99.js";
8
+ import { Primitive as G } from "./index92.js";
9
+ import { useCallbackRef as J } from "./index110.js";
10
+ import { useControllableState as Q } from "./index94.js";
11
+ import { useDirection as W } from "./index95.js";
12
+ import { jsx as d } from "react/jsx-runtime";
13
+ var y = "rovingFocusGroup.onEntryFocus", X = { bubbles: !1, cancelable: !0 }, I = "RovingFocusGroup", [D, N, Z] = V(I), [$, Fe] = z(
14
+ I,
15
+ [Z]
16
+ ), [ee, oe] = $(I), O = c.forwardRef(
17
+ (e, r) => /* @__PURE__ */ d(D.Provider, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ d(D.Slot, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ d(te, { ...e, ref: r }) }) })
18
+ );
19
+ O.displayName = I;
20
+ var te = c.forwardRef((e, r) => {
21
+ const {
22
+ __scopeRovingFocusGroup: s,
23
+ orientation: o,
24
+ loop: T = !1,
25
+ dir: w,
26
+ currentTabStopId: v,
27
+ defaultCurrentTabStopId: C,
28
+ onCurrentTabStopIdChange: S,
29
+ onEntryFocus: m,
30
+ preventScrollOnEntryFocus: u = !1,
31
+ ...b
32
+ } = e, F = c.useRef(null), g = j(r, F), R = W(w), [E, t] = Q({
33
+ prop: v,
34
+ defaultProp: C ?? null,
35
+ onChange: S,
36
+ caller: I
37
+ }), [i, h] = c.useState(!1), a = J(m), l = N(s), A = c.useRef(!1), [L, P] = c.useState(0);
38
+ return c.useEffect(() => {
39
+ const n = F.current;
40
+ if (n)
41
+ return n.addEventListener(y, a), () => n.removeEventListener(y, a);
42
+ }, [a]), /* @__PURE__ */ d(
43
+ ee,
44
+ {
45
+ scope: s,
46
+ orientation: o,
47
+ dir: R,
48
+ loop: T,
49
+ currentTabStopId: E,
50
+ onItemFocus: c.useCallback(
51
+ (n) => t(n),
52
+ [t]
53
+ ),
54
+ onItemShiftTab: c.useCallback(() => h(!0), []),
55
+ onFocusableItemAdd: c.useCallback(
56
+ () => P((n) => n + 1),
57
+ []
58
+ ),
59
+ onFocusableItemRemove: c.useCallback(
60
+ () => P((n) => n - 1),
61
+ []
62
+ ),
63
+ children: /* @__PURE__ */ d(
64
+ G.div,
65
+ {
66
+ tabIndex: i || L === 0 ? -1 : 0,
67
+ "data-orientation": o,
68
+ ...b,
69
+ ref: g,
70
+ style: { outline: "none", ...e.style },
71
+ onMouseDown: p(e.onMouseDown, () => {
72
+ A.current = !0;
73
+ }),
74
+ onFocus: p(e.onFocus, (n) => {
75
+ const U = !A.current;
76
+ if (n.target === n.currentTarget && U && !i) {
77
+ const x = new CustomEvent(y, X);
78
+ if (n.currentTarget.dispatchEvent(x), !x.defaultPrevented) {
79
+ const _ = l().filter((f) => f.focusable), B = _.find((f) => f.active), Y = _.find((f) => f.id === E), H = [B, Y, ..._].filter(
80
+ Boolean
81
+ ).map((f) => f.ref.current);
82
+ k(H, u);
83
+ }
84
+ }
85
+ A.current = !1;
86
+ }),
87
+ onBlur: p(e.onBlur, () => h(!1))
88
+ }
89
+ )
90
+ }
91
+ );
92
+ }), K = "RovingFocusGroupItem", M = c.forwardRef(
93
+ (e, r) => {
94
+ const {
95
+ __scopeRovingFocusGroup: s,
96
+ focusable: o = !0,
97
+ active: T = !1,
98
+ tabStopId: w,
99
+ children: v,
100
+ ...C
101
+ } = e, S = q(), m = w || S, u = oe(K, s), b = u.currentTabStopId === m, F = N(s), { onFocusableItemAdd: g, onFocusableItemRemove: R, currentTabStopId: E } = u;
102
+ return c.useEffect(() => {
103
+ if (o)
104
+ return g(), () => R();
105
+ }, [o, g, R]), /* @__PURE__ */ d(
106
+ D.ItemSlot,
107
+ {
108
+ scope: s,
109
+ id: m,
110
+ focusable: o,
111
+ active: T,
112
+ children: /* @__PURE__ */ d(
113
+ G.span,
114
+ {
115
+ tabIndex: b ? 0 : -1,
116
+ "data-orientation": u.orientation,
117
+ ...C,
118
+ ref: r,
119
+ onMouseDown: p(e.onMouseDown, (t) => {
120
+ o ? u.onItemFocus(m) : t.preventDefault();
121
+ }),
122
+ onFocus: p(e.onFocus, () => u.onItemFocus(m)),
123
+ onKeyDown: p(e.onKeyDown, (t) => {
124
+ if (t.key === "Tab" && t.shiftKey) {
125
+ u.onItemShiftTab();
126
+ return;
127
+ }
128
+ if (t.target !== t.currentTarget) return;
129
+ const i = ce(t, u.orientation, u.dir);
130
+ if (i !== void 0) {
131
+ if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey) return;
132
+ t.preventDefault();
133
+ let a = F().filter((l) => l.focusable).map((l) => l.ref.current);
134
+ if (i === "last") a.reverse();
135
+ else if (i === "prev" || i === "next") {
136
+ i === "prev" && a.reverse();
137
+ const l = a.indexOf(t.currentTarget);
138
+ a = u.loop ? se(a, l + 1) : a.slice(l + 1);
139
+ }
140
+ setTimeout(() => k(a));
141
+ }
142
+ }),
143
+ children: typeof v == "function" ? v({ isCurrentTabStop: b, hasTabStop: E != null }) : v
144
+ }
145
+ )
146
+ }
147
+ );
148
+ }
149
+ );
150
+ M.displayName = K;
151
+ var re = {
152
+ ArrowLeft: "prev",
153
+ ArrowUp: "prev",
154
+ ArrowRight: "next",
155
+ ArrowDown: "next",
156
+ PageUp: "first",
157
+ Home: "first",
158
+ PageDown: "last",
159
+ End: "last"
160
+ };
161
+ function ne(e, r) {
162
+ return r !== "rtl" ? e : e === "ArrowLeft" ? "ArrowRight" : e === "ArrowRight" ? "ArrowLeft" : e;
163
+ }
164
+ function ce(e, r, s) {
165
+ const o = ne(e.key, s);
166
+ if (!(r === "vertical" && ["ArrowLeft", "ArrowRight"].includes(o)) && !(r === "horizontal" && ["ArrowUp", "ArrowDown"].includes(o)))
167
+ return re[o];
168
+ }
169
+ function k(e, r = !1) {
170
+ const s = document.activeElement;
171
+ for (const o of e)
172
+ if (o === s || (o.focus({ preventScroll: r }), document.activeElement !== s)) return;
173
+ }
174
+ function se(e, r) {
175
+ return e.map((s, o) => e[(r + o) % e.length]);
5
176
  }
177
+ var ge = O, Re = M;
6
178
  export {
7
- t as usePrevious
179
+ Re as Item,
180
+ ge as Root,
181
+ O as RovingFocusGroup,
182
+ M as RovingFocusGroupItem,
183
+ Fe as createRovingFocusGroupScope
8
184
  };
package/dist/index94.js CHANGED
@@ -1,27 +1,54 @@
1
- import * as h from "react";
2
- import { useLayoutEffect as z } from "./index110.js";
3
- function c(r) {
4
- const [d, e] = h.useState(void 0);
5
- return z(() => {
6
- if (r) {
7
- e({ width: r.offsetWidth, height: r.offsetHeight });
8
- const f = new ResizeObserver((i) => {
9
- if (!Array.isArray(i) || !i.length)
10
- return;
11
- const b = i[0];
12
- let o, t;
13
- if ("borderBoxSize" in b) {
14
- const s = b.borderBoxSize, u = Array.isArray(s) ? s[0] : s;
15
- o = u.inlineSize, t = u.blockSize;
16
- } else
17
- o = r.offsetWidth, t = r.offsetHeight;
18
- e({ width: o, height: t });
19
- });
20
- return f.observe(r, { box: "border-box" }), () => f.unobserve(r);
21
- } else
22
- e(void 0);
23
- }, [r]), d;
1
+ import * as n from "react";
2
+ import { useLayoutEffect as v } from "./index111.js";
3
+ var E = n[" useInsertionEffect ".trim().toString()] || v;
4
+ function y({
5
+ prop: t,
6
+ defaultProp: u,
7
+ onChange: o = () => {
8
+ },
9
+ caller: i
10
+ }) {
11
+ const [l, e, r] = w({
12
+ defaultProp: u,
13
+ onChange: o
14
+ }), c = t !== void 0, a = c ? t : l;
15
+ {
16
+ const s = n.useRef(t !== void 0);
17
+ n.useEffect(() => {
18
+ const f = s.current;
19
+ f !== c && console.warn(
20
+ `${i} is changing from ${f ? "controlled" : "uncontrolled"} to ${c ? "controlled" : "uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
21
+ ), s.current = c;
22
+ }, [c, i]);
23
+ }
24
+ const m = n.useCallback(
25
+ (s) => {
26
+ var f;
27
+ if (c) {
28
+ const d = R(s) ? s(t) : s;
29
+ d !== t && ((f = r.current) == null || f.call(r, d));
30
+ } else
31
+ e(s);
32
+ },
33
+ [c, t, e, r]
34
+ );
35
+ return [a, m];
36
+ }
37
+ function w({
38
+ defaultProp: t,
39
+ onChange: u
40
+ }) {
41
+ const [o, i] = n.useState(t), l = n.useRef(o), e = n.useRef(u);
42
+ return E(() => {
43
+ e.current = u;
44
+ }, [u]), n.useEffect(() => {
45
+ var r;
46
+ l.current !== o && ((r = e.current) == null || r.call(e, o), l.current = o);
47
+ }, [o, l]), [o, i, e];
48
+ }
49
+ function R(t) {
50
+ return typeof t == "function";
24
51
  }
25
52
  export {
26
- c as useSize
53
+ y as useControllableState
27
54
  };
package/dist/index95.js CHANGED
@@ -1,72 +1,10 @@
1
- "use client";
2
- import * as a from "react";
3
- import { useComposedRefs as E } from "./index89.js";
4
- import { useLayoutEffect as A } from "./index110.js";
5
- function T(n, e) {
6
- return a.useReducer((r, t) => e[r][t] ?? r, n);
7
- }
8
- var R = (n) => {
9
- const { present: e, children: r } = n, t = v(e), i = typeof r == "function" ? r({ present: t.isPresent }) : a.Children.only(r), c = E(t.ref, P(i));
10
- return typeof r == "function" || t.isPresent ? a.cloneElement(i, { ref: c }) : null;
11
- };
12
- R.displayName = "Presence";
13
- function v(n) {
14
- const [e, r] = a.useState(), t = a.useRef(null), i = a.useRef(n), c = a.useRef("none"), p = n ? "mounted" : "unmounted", [N, s] = T(p, {
15
- mounted: {
16
- UNMOUNT: "unmounted",
17
- ANIMATION_OUT: "unmountSuspended"
18
- },
19
- unmountSuspended: {
20
- MOUNT: "mounted",
21
- ANIMATION_END: "unmounted"
22
- },
23
- unmounted: {
24
- MOUNT: "mounted"
25
- }
26
- });
27
- return a.useEffect(() => {
28
- const o = l(t.current);
29
- c.current = N === "mounted" ? o : "none";
30
- }, [N]), A(() => {
31
- const o = t.current, m = i.current;
32
- if (m !== n) {
33
- const f = c.current, u = l(o);
34
- n ? s("MOUNT") : u === "none" || (o == null ? void 0 : o.display) === "none" ? s("UNMOUNT") : s(m && f !== u ? "ANIMATION_OUT" : "UNMOUNT"), i.current = n;
35
- }
36
- }, [n, s]), A(() => {
37
- if (e) {
38
- let o;
39
- const m = e.ownerDocument.defaultView ?? window, d = (u) => {
40
- const g = l(t.current).includes(CSS.escape(u.animationName));
41
- if (u.target === e && g && (s("ANIMATION_END"), !i.current)) {
42
- const O = e.style.animationFillMode;
43
- e.style.animationFillMode = "forwards", o = m.setTimeout(() => {
44
- e.style.animationFillMode === "forwards" && (e.style.animationFillMode = O);
45
- });
46
- }
47
- }, f = (u) => {
48
- u.target === e && (c.current = l(t.current));
49
- };
50
- return e.addEventListener("animationstart", f), e.addEventListener("animationcancel", d), e.addEventListener("animationend", d), () => {
51
- m.clearTimeout(o), e.removeEventListener("animationstart", f), e.removeEventListener("animationcancel", d), e.removeEventListener("animationend", d);
52
- };
53
- } else
54
- s("ANIMATION_END");
55
- }, [e, s]), {
56
- isPresent: ["mounted", "unmountSuspended"].includes(N),
57
- ref: a.useCallback((o) => {
58
- t.current = o ? getComputedStyle(o) : null, r(o);
59
- }, [])
60
- };
61
- }
62
- function l(n) {
63
- return (n == null ? void 0 : n.animationName) || "none";
64
- }
65
- function P(n) {
66
- var t, i;
67
- let e = (t = Object.getOwnPropertyDescriptor(n.props, "ref")) == null ? void 0 : t.get, r = e && "isReactWarning" in e && e.isReactWarning;
68
- return r ? n.ref : (e = (i = Object.getOwnPropertyDescriptor(n, "ref")) == null ? void 0 : i.get, r = e && "isReactWarning" in e && e.isReactWarning, r ? n.props.ref : n.props.ref || n.ref);
1
+ import * as t from "react";
2
+ import "react/jsx-runtime";
3
+ var r = t.createContext(void 0);
4
+ function n(o) {
5
+ const e = t.useContext(r);
6
+ return o || e || "ltr";
69
7
  }
70
8
  export {
71
- R as Presence
9
+ n as useDirection
72
10
  };
package/dist/index96.js CHANGED
@@ -1,36 +1,27 @@
1
- import * as f from "react";
2
- import * as p from "react-dom";
3
- import { createSlot as c } from "./index40.js";
4
- import { jsx as l } from "react/jsx-runtime";
5
- var u = [
6
- "a",
7
- "button",
8
- "div",
9
- "form",
10
- "h2",
11
- "h3",
12
- "img",
13
- "input",
14
- "label",
15
- "li",
16
- "nav",
17
- "ol",
18
- "p",
19
- "select",
20
- "span",
21
- "svg",
22
- "ul"
23
- ], h = u.reduce((t, i) => {
24
- const o = c(`Primitive.${i}`), r = f.forwardRef((e, m) => {
25
- const { asChild: s, ...a } = e, n = s ? o : i;
26
- return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ l(n, { ...a, ref: m });
27
- });
28
- return r.displayName = `Primitive.${i}`, { ...t, [i]: r };
29
- }, {});
30
- function w(t, i) {
31
- t && p.flushSync(() => t.dispatchEvent(i));
1
+ import * as h from "react";
2
+ import { useLayoutEffect as z } from "./index111.js";
3
+ function c(r) {
4
+ const [d, e] = h.useState(void 0);
5
+ return z(() => {
6
+ if (r) {
7
+ e({ width: r.offsetWidth, height: r.offsetHeight });
8
+ const f = new ResizeObserver((i) => {
9
+ if (!Array.isArray(i) || !i.length)
10
+ return;
11
+ const b = i[0];
12
+ let o, t;
13
+ if ("borderBoxSize" in b) {
14
+ const s = b.borderBoxSize, u = Array.isArray(s) ? s[0] : s;
15
+ o = u.inlineSize, t = u.blockSize;
16
+ } else
17
+ o = r.offsetWidth, t = r.offsetHeight;
18
+ e({ width: o, height: t });
19
+ });
20
+ return f.observe(r, { box: "border-box" }), () => f.unobserve(r);
21
+ } else
22
+ e(void 0);
23
+ }, [r]), d;
32
24
  }
33
25
  export {
34
- h as Primitive,
35
- w as dispatchDiscreteCustomEvent
26
+ c as useSize
36
27
  };
package/dist/index97.js CHANGED
@@ -1,184 +1,8 @@
1
- "use client";
2
- import * as c from "react";
3
- import { composeEventHandlers as p } from "./index91.js";
4
- import { createCollection as V } from "./index113.js";
5
- import { useComposedRefs as j } from "./index89.js";
6
- import { createContextScope as z } from "./index90.js";
7
- import { useId as q } from "./index99.js";
8
- import { Primitive as G } from "./index96.js";
9
- import { useCallbackRef as J } from "./index109.js";
10
- import { useControllableState as Q } from "./index92.js";
11
- import { useDirection as W } from "./index98.js";
12
- import { jsx as d } from "react/jsx-runtime";
13
- var y = "rovingFocusGroup.onEntryFocus", X = { bubbles: !1, cancelable: !0 }, I = "RovingFocusGroup", [D, N, Z] = V(I), [$, Fe] = z(
14
- I,
15
- [Z]
16
- ), [ee, oe] = $(I), O = c.forwardRef(
17
- (e, r) => /* @__PURE__ */ d(D.Provider, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ d(D.Slot, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ d(te, { ...e, ref: r }) }) })
18
- );
19
- O.displayName = I;
20
- var te = c.forwardRef((e, r) => {
21
- const {
22
- __scopeRovingFocusGroup: s,
23
- orientation: o,
24
- loop: T = !1,
25
- dir: w,
26
- currentTabStopId: v,
27
- defaultCurrentTabStopId: C,
28
- onCurrentTabStopIdChange: S,
29
- onEntryFocus: m,
30
- preventScrollOnEntryFocus: u = !1,
31
- ...b
32
- } = e, F = c.useRef(null), g = j(r, F), R = W(w), [E, t] = Q({
33
- prop: v,
34
- defaultProp: C ?? null,
35
- onChange: S,
36
- caller: I
37
- }), [i, h] = c.useState(!1), a = J(m), l = N(s), A = c.useRef(!1), [L, P] = c.useState(0);
38
- return c.useEffect(() => {
39
- const n = F.current;
40
- if (n)
41
- return n.addEventListener(y, a), () => n.removeEventListener(y, a);
42
- }, [a]), /* @__PURE__ */ d(
43
- ee,
44
- {
45
- scope: s,
46
- orientation: o,
47
- dir: R,
48
- loop: T,
49
- currentTabStopId: E,
50
- onItemFocus: c.useCallback(
51
- (n) => t(n),
52
- [t]
53
- ),
54
- onItemShiftTab: c.useCallback(() => h(!0), []),
55
- onFocusableItemAdd: c.useCallback(
56
- () => P((n) => n + 1),
57
- []
58
- ),
59
- onFocusableItemRemove: c.useCallback(
60
- () => P((n) => n - 1),
61
- []
62
- ),
63
- children: /* @__PURE__ */ d(
64
- G.div,
65
- {
66
- tabIndex: i || L === 0 ? -1 : 0,
67
- "data-orientation": o,
68
- ...b,
69
- ref: g,
70
- style: { outline: "none", ...e.style },
71
- onMouseDown: p(e.onMouseDown, () => {
72
- A.current = !0;
73
- }),
74
- onFocus: p(e.onFocus, (n) => {
75
- const U = !A.current;
76
- if (n.target === n.currentTarget && U && !i) {
77
- const x = new CustomEvent(y, X);
78
- if (n.currentTarget.dispatchEvent(x), !x.defaultPrevented) {
79
- const _ = l().filter((f) => f.focusable), B = _.find((f) => f.active), Y = _.find((f) => f.id === E), H = [B, Y, ..._].filter(
80
- Boolean
81
- ).map((f) => f.ref.current);
82
- k(H, u);
83
- }
84
- }
85
- A.current = !1;
86
- }),
87
- onBlur: p(e.onBlur, () => h(!1))
88
- }
89
- )
90
- }
91
- );
92
- }), K = "RovingFocusGroupItem", M = c.forwardRef(
93
- (e, r) => {
94
- const {
95
- __scopeRovingFocusGroup: s,
96
- focusable: o = !0,
97
- active: T = !1,
98
- tabStopId: w,
99
- children: v,
100
- ...C
101
- } = e, S = q(), m = w || S, u = oe(K, s), b = u.currentTabStopId === m, F = N(s), { onFocusableItemAdd: g, onFocusableItemRemove: R, currentTabStopId: E } = u;
102
- return c.useEffect(() => {
103
- if (o)
104
- return g(), () => R();
105
- }, [o, g, R]), /* @__PURE__ */ d(
106
- D.ItemSlot,
107
- {
108
- scope: s,
109
- id: m,
110
- focusable: o,
111
- active: T,
112
- children: /* @__PURE__ */ d(
113
- G.span,
114
- {
115
- tabIndex: b ? 0 : -1,
116
- "data-orientation": u.orientation,
117
- ...C,
118
- ref: r,
119
- onMouseDown: p(e.onMouseDown, (t) => {
120
- o ? u.onItemFocus(m) : t.preventDefault();
121
- }),
122
- onFocus: p(e.onFocus, () => u.onItemFocus(m)),
123
- onKeyDown: p(e.onKeyDown, (t) => {
124
- if (t.key === "Tab" && t.shiftKey) {
125
- u.onItemShiftTab();
126
- return;
127
- }
128
- if (t.target !== t.currentTarget) return;
129
- const i = ce(t, u.orientation, u.dir);
130
- if (i !== void 0) {
131
- if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey) return;
132
- t.preventDefault();
133
- let a = F().filter((l) => l.focusable).map((l) => l.ref.current);
134
- if (i === "last") a.reverse();
135
- else if (i === "prev" || i === "next") {
136
- i === "prev" && a.reverse();
137
- const l = a.indexOf(t.currentTarget);
138
- a = u.loop ? se(a, l + 1) : a.slice(l + 1);
139
- }
140
- setTimeout(() => k(a));
141
- }
142
- }),
143
- children: typeof v == "function" ? v({ isCurrentTabStop: b, hasTabStop: E != null }) : v
144
- }
145
- )
146
- }
147
- );
148
- }
149
- );
150
- M.displayName = K;
151
- var re = {
152
- ArrowLeft: "prev",
153
- ArrowUp: "prev",
154
- ArrowRight: "next",
155
- ArrowDown: "next",
156
- PageUp: "first",
157
- Home: "first",
158
- PageDown: "last",
159
- End: "last"
160
- };
161
- function ne(e, r) {
162
- return r !== "rtl" ? e : e === "ArrowLeft" ? "ArrowRight" : e === "ArrowRight" ? "ArrowLeft" : e;
163
- }
164
- function ce(e, r, s) {
165
- const o = ne(e.key, s);
166
- if (!(r === "vertical" && ["ArrowLeft", "ArrowRight"].includes(o)) && !(r === "horizontal" && ["ArrowUp", "ArrowDown"].includes(o)))
167
- return re[o];
168
- }
169
- function k(e, r = !1) {
170
- const s = document.activeElement;
171
- for (const o of e)
172
- if (o === s || (o.focus({ preventScroll: r }), document.activeElement !== s)) return;
173
- }
174
- function se(e, r) {
175
- return e.map((s, o) => e[(r + o) % e.length]);
1
+ import * as u from "react";
2
+ function t(r) {
3
+ const e = u.useRef({ value: r, previous: r });
4
+ return u.useMemo(() => (e.current.value !== r && (e.current.previous = e.current.value, e.current.value = r), e.current.previous), [r]);
176
5
  }
177
- var ge = O, Re = M;
178
6
  export {
179
- Re as Item,
180
- ge as Root,
181
- O as RovingFocusGroup,
182
- M as RovingFocusGroupItem,
183
- Fe as createRovingFocusGroupScope
7
+ t as usePrevious
184
8
  };
package/dist/index98.js CHANGED
@@ -1,10 +1,72 @@
1
- import * as t from "react";
2
- import "react/jsx-runtime";
3
- var r = t.createContext(void 0);
4
- function n(o) {
5
- const e = t.useContext(r);
6
- return o || e || "ltr";
1
+ "use client";
2
+ import * as a from "react";
3
+ import { useComposedRefs as E } from "./index89.js";
4
+ import { useLayoutEffect as A } from "./index111.js";
5
+ function T(n, e) {
6
+ return a.useReducer((r, t) => e[r][t] ?? r, n);
7
+ }
8
+ var R = (n) => {
9
+ const { present: e, children: r } = n, t = v(e), i = typeof r == "function" ? r({ present: t.isPresent }) : a.Children.only(r), c = E(t.ref, P(i));
10
+ return typeof r == "function" || t.isPresent ? a.cloneElement(i, { ref: c }) : null;
11
+ };
12
+ R.displayName = "Presence";
13
+ function v(n) {
14
+ const [e, r] = a.useState(), t = a.useRef(null), i = a.useRef(n), c = a.useRef("none"), p = n ? "mounted" : "unmounted", [N, s] = T(p, {
15
+ mounted: {
16
+ UNMOUNT: "unmounted",
17
+ ANIMATION_OUT: "unmountSuspended"
18
+ },
19
+ unmountSuspended: {
20
+ MOUNT: "mounted",
21
+ ANIMATION_END: "unmounted"
22
+ },
23
+ unmounted: {
24
+ MOUNT: "mounted"
25
+ }
26
+ });
27
+ return a.useEffect(() => {
28
+ const o = l(t.current);
29
+ c.current = N === "mounted" ? o : "none";
30
+ }, [N]), A(() => {
31
+ const o = t.current, m = i.current;
32
+ if (m !== n) {
33
+ const f = c.current, u = l(o);
34
+ n ? s("MOUNT") : u === "none" || (o == null ? void 0 : o.display) === "none" ? s("UNMOUNT") : s(m && f !== u ? "ANIMATION_OUT" : "UNMOUNT"), i.current = n;
35
+ }
36
+ }, [n, s]), A(() => {
37
+ if (e) {
38
+ let o;
39
+ const m = e.ownerDocument.defaultView ?? window, d = (u) => {
40
+ const g = l(t.current).includes(CSS.escape(u.animationName));
41
+ if (u.target === e && g && (s("ANIMATION_END"), !i.current)) {
42
+ const O = e.style.animationFillMode;
43
+ e.style.animationFillMode = "forwards", o = m.setTimeout(() => {
44
+ e.style.animationFillMode === "forwards" && (e.style.animationFillMode = O);
45
+ });
46
+ }
47
+ }, f = (u) => {
48
+ u.target === e && (c.current = l(t.current));
49
+ };
50
+ return e.addEventListener("animationstart", f), e.addEventListener("animationcancel", d), e.addEventListener("animationend", d), () => {
51
+ m.clearTimeout(o), e.removeEventListener("animationstart", f), e.removeEventListener("animationcancel", d), e.removeEventListener("animationend", d);
52
+ };
53
+ } else
54
+ s("ANIMATION_END");
55
+ }, [e, s]), {
56
+ isPresent: ["mounted", "unmountSuspended"].includes(N),
57
+ ref: a.useCallback((o) => {
58
+ t.current = o ? getComputedStyle(o) : null, r(o);
59
+ }, [])
60
+ };
61
+ }
62
+ function l(n) {
63
+ return (n == null ? void 0 : n.animationName) || "none";
64
+ }
65
+ function P(n) {
66
+ var t, i;
67
+ let e = (t = Object.getOwnPropertyDescriptor(n.props, "ref")) == null ? void 0 : t.get, r = e && "isReactWarning" in e && e.isReactWarning;
68
+ return r ? n.ref : (e = (i = Object.getOwnPropertyDescriptor(n, "ref")) == null ? void 0 : i.get, r = e && "isReactWarning" in e && e.isReactWarning, r ? n.props.ref : n.props.ref || n.ref);
7
69
  }
8
70
  export {
9
- n as useDirection
71
+ R as Presence
10
72
  };