@datawire-ai/busyfile-design-library 1.30.7 → 1.30.9

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 (51) hide show
  1. package/dist/index10.js +57 -48
  2. package/dist/index100.js +170 -114
  3. package/dist/index101.js +7 -135
  4. package/dist/index102.js +25 -15
  5. package/dist/index103.js +5 -15
  6. package/dist/index104.js +135 -8
  7. package/dist/index105.js +16 -50
  8. package/dist/index106.js +8 -219
  9. package/dist/index107.js +50 -30
  10. package/dist/index111.js +3 -13
  11. package/dist/index112.js +44 -224
  12. package/dist/index113.js +650 -3
  13. package/dist/index114.js +13 -46
  14. package/dist/index115.js +221 -645
  15. package/dist/index123.js +1 -1
  16. package/dist/index124.js +3 -3
  17. package/dist/index127.js +3 -3
  18. package/dist/index128.js +3 -3
  19. package/dist/index200.js +525 -5
  20. package/dist/index201.js +128 -3
  21. package/dist/index202.js +132 -22
  22. package/dist/index203.js +5 -110
  23. package/dist/index204.js +3 -16
  24. package/dist/index205.js +21 -522
  25. package/dist/index206.js +109 -127
  26. package/dist/index207.js +15 -133
  27. package/dist/index269.js +1 -1
  28. package/dist/index41.js +1 -1
  29. package/dist/index42.js +4 -4
  30. package/dist/index44.js +6 -6
  31. package/dist/index46.js +4 -4
  32. package/dist/index49.js +9 -9
  33. package/dist/index52.js +7 -7
  34. package/dist/index59.js +1 -1
  35. package/dist/index63.js +1 -1
  36. package/dist/index75.js +5 -5
  37. package/dist/index80.js +2 -2
  38. package/dist/index82.js +15 -15
  39. package/dist/index85.js +10 -10
  40. package/dist/index86.js +2 -2
  41. package/dist/index87.js +4 -4
  42. package/dist/index92.js +120 -46
  43. package/dist/index93.js +10 -5
  44. package/dist/index94.js +219 -24
  45. package/dist/index95.js +14 -33
  46. package/dist/index97.js +33 -181
  47. package/dist/index98.js +51 -7
  48. package/dist/index99.js +30 -11
  49. package/dist/style.css +1 -1
  50. package/dist/types/index.d.ts +2 -1
  51. package/package.json +1 -1
package/dist/index10.js CHANGED
@@ -1,21 +1,24 @@
1
- import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
- import { useState as o, useMemo as V, useEffect as z } from "react";
3
- import { InputWithLabel as S } from "./index53.js";
4
- import { Button as p } from "./index3.js";
5
- import { cn as m } from "./index37.js";
6
- import j from "./index54.js";
7
- import E from "./index55.js";
8
- const O = ({
9
- label: x = "Password",
10
- showForgot: h = !1,
11
- forgotPasswordUrl: b = "/forgot-password",
12
- onValidityChange: l,
1
+ import { jsx as t, jsxs as m } from "react/jsx-runtime";
2
+ import { useState as u, useMemo as A, useEffect as I } from "react";
3
+ import { InputWithLabel as Z } from "./index53.js";
4
+ import { Button as B } from "./index3.js";
5
+ import { cn as p } from "./index37.js";
6
+ import F from "./index54.js";
7
+ import L from "./index55.js";
8
+ const K = ({
9
+ label: l = "Password",
10
+ showForgot: f = !1,
11
+ forgotPasswordUrl: v = "/forgot-password",
12
+ onValidityChange: n,
13
13
  customValidator: i,
14
14
  showPasswordValidation: r = !0,
15
- labelClassName: f = "",
16
- ...g
15
+ labelClassName: d = "",
16
+ value: x,
17
+ onChange: c,
18
+ errorText: N,
19
+ ...y
17
20
  }) => {
18
- const [n, N] = o(!1), [s, v] = o(""), [u, y] = o(!1), w = (e) => [
21
+ const [o, V] = u(!1), [k, w] = u(""), [b, z] = u(!1), h = x !== void 0, s = h ? x ?? "" : k, S = (e) => [
19
22
  {
20
23
  label: "minimum 8 characters",
21
24
  isValid: e.length >= 8
@@ -36,77 +39,83 @@ const O = ({
36
39
  label: "one number",
37
40
  isValid: /\d/.test(e)
38
41
  }
39
- ], a = V(() => r ? i ? i(s) : w(s) : [], [r, i, s]), d = a.every((e) => e.isValid);
40
- return z(() => {
41
- r && l && l(d, a);
42
- }, [s, d, a, l, r]), /* @__PURE__ */ t("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ c("div", { className: "flex flex-col gap-2 w-full", children: [
43
- /* @__PURE__ */ c("div", { className: "flex justify-between items-center", children: [
44
- /* @__PURE__ */ t(
42
+ ], a = A(() => {
43
+ if (!r) return [];
44
+ const e = typeof s == "string" ? s : "";
45
+ return i ? i(e) : S(e);
46
+ }, [r, i, s]), g = a.every((e) => e.isValid);
47
+ I(() => {
48
+ r && n && n(g, a);
49
+ }, [s, g, a, n, r]);
50
+ const j = (e) => {
51
+ h ? c == null || c(e) : w(e.target.value);
52
+ };
53
+ return /* @__PURE__ */ t("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ m("div", { className: "flex flex-col gap-2 w-full", children: [
54
+ (l || f) && /* @__PURE__ */ m("div", { className: "flex justify-between items-center", children: [
55
+ l && /* @__PURE__ */ t(
45
56
  "label",
46
57
  {
47
- className: m(
58
+ className: p(
48
59
  "text-sm font-regular text-neutral-1",
49
- f
60
+ d
50
61
  ),
51
- children: x
62
+ children: l
52
63
  }
53
64
  ),
54
- h && /* @__PURE__ */ t(
55
- p,
65
+ f && /* @__PURE__ */ t(
66
+ "a",
56
67
  {
57
- className: "cursor-pointer font-normal hover:underline text-xs",
58
- variant: "primary",
59
- onClick: () => {
60
- window.location.href = b;
61
- },
68
+ href: v,
69
+ className: "cursor-pointer font-normal hover:underline text-xs text-primary bg-transparent p-0",
62
70
  children: "Forgot Password?"
63
71
  }
64
72
  )
65
73
  ] }),
66
74
  /* @__PURE__ */ t(
67
- S,
75
+ Z,
68
76
  {
69
- labelClassName: f,
70
- type: n ? "text" : "password",
77
+ labelClassName: d,
78
+ type: o ? "text" : "password",
71
79
  value: s,
72
- onChange: (e) => v(e.target.value),
73
- onFocus: () => y(!0),
74
- ...g,
80
+ onChange: j,
81
+ onFocus: () => z(!0),
82
+ errorText: N,
83
+ ...y,
75
84
  endSlot: /* @__PURE__ */ t(
76
- p,
85
+ B,
77
86
  {
78
87
  type: "button",
79
- className: "cursor-pointer font-normal hover:underline text-xs",
88
+ className: "cursor-pointer font-normal hover:underline text-xs text-neutral-0 bg-transparent p-0 hover:bg-transparent",
80
89
  variant: "primary",
81
- onClick: () => N(!n),
82
- children: n ? /* @__PURE__ */ t(j, { size: 24, className: "text-neutral-black-2" }) : /* @__PURE__ */ t(E, { size: 24, className: "text-neutral-black-2" })
90
+ onClick: () => V(!o),
91
+ children: o ? /* @__PURE__ */ t(F, { size: 24, className: "text-neutral-black-2" }) : /* @__PURE__ */ t(L, { size: 24, className: "text-neutral-black-2" })
83
92
  }
84
93
  )
85
94
  }
86
95
  ),
87
- r && /* @__PURE__ */ t("div", { className: "grid grid-cols-2 gap-y-1 text-xs mt-3", children: a.map((e, k) => /* @__PURE__ */ c("div", { className: "flex items-center gap-1", children: [
96
+ r && /* @__PURE__ */ t("div", { className: "grid grid-cols-2 gap-y-1 text-xs mt-3", children: a.map((e, E) => /* @__PURE__ */ m("div", { className: "flex items-center gap-1", children: [
88
97
  /* @__PURE__ */ t(
89
98
  "div",
90
99
  {
91
- className: m(
100
+ className: p(
92
101
  "w-1.5 h-1.5 rounded-full transition-colors",
93
- e.isValid ? "bg-success-1" : u ? "bg-primary-1" : "bg-neutral-black-2"
102
+ e.isValid ? "bg-success-1" : b ? "bg-primary-1" : "bg-neutral-black-2"
94
103
  )
95
104
  }
96
105
  ),
97
106
  /* @__PURE__ */ t(
98
107
  "span",
99
108
  {
100
- className: m(
109
+ className: p(
101
110
  "transition-colors",
102
- e.isValid ? "text-success-1" : u ? "text-primary-1" : "text-neutral-black-2"
111
+ e.isValid ? "text-success-1" : b ? "text-primary-1" : "text-neutral-black-2"
103
112
  ),
104
113
  children: e.label
105
114
  }
106
115
  )
107
- ] }, k)) })
116
+ ] }, E)) })
108
117
  ] }) });
109
118
  };
110
119
  export {
111
- O as PasswordInput
120
+ K as PasswordInput
112
121
  };
package/dist/index100.js CHANGED
@@ -1,128 +1,184 @@
1
1
  "use client";
2
- import * as n from "react";
3
- import { composeEventHandlers as m } from "./index89.js";
4
- import { Primitive as g, dispatchDiscreteCustomEvent as k } from "./index95.js";
5
- import { useComposedRefs as R } from "./index90.js";
6
- import { useCallbackRef as w } from "./index108.js";
7
- import { useEscapeKeydown as U } from "./index121.js";
8
- import { jsx as T } from "react/jsx-runtime";
9
- var z = "DismissableLayer", y = "dismissableLayer.update", H = "dismissableLayer.pointerDownOutside", M = "dismissableLayer.focusOutside", L, B = n.createContext({
10
- layers: /* @__PURE__ */ new Set(),
11
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
12
- branches: /* @__PURE__ */ new Set()
13
- }), j = n.forwardRef(
14
- (r, e) => {
2
+ import * as c from "react";
3
+ import { composeEventHandlers as p } from "./index89.js";
4
+ import { createCollection as V } from "./index112.js";
5
+ import { useComposedRefs as j } from "./index90.js";
6
+ import { createContextScope as z } from "./index91.js";
7
+ import { useId as q } from "./index93.js";
8
+ import { Primitive as G } from "./index97.js";
9
+ import { useCallbackRef as J } from "./index108.js";
10
+ import { useControllableState as Q } from "./index98.js";
11
+ import { useDirection as W } from "./index101.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) => {
15
94
  const {
16
- disableOutsidePointerEvents: i = !1,
17
- onEscapeKeyDown: o,
18
- onPointerDownOutside: t,
19
- onFocusOutside: a,
20
- onInteractOutside: l,
21
- onDismiss: d,
22
- ...v
23
- } = r, c = n.useContext(B), [u, S] = n.useState(null), f = (u == null ? void 0 : u.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document), [, F] = n.useState({}), W = R(e, (s) => S(s)), p = Array.from(c.layers), [A] = [...c.layersWithOutsidePointerEventsDisabled].slice(-1), N = p.indexOf(A), b = u ? p.indexOf(u) : -1, I = c.layersWithOutsidePointerEventsDisabled.size > 0, P = b >= N, _ = q((s) => {
24
- const E = s.target, C = [...c.branches].some((h) => h.contains(E));
25
- !P || C || (t == null || t(s), l == null || l(s), s.defaultPrevented || d == null || d());
26
- }, f), D = G((s) => {
27
- const E = s.target;
28
- [...c.branches].some((h) => h.contains(E)) || (a == null || a(s), l == null || l(s), s.defaultPrevented || d == null || d());
29
- }, f);
30
- return U((s) => {
31
- b === c.layers.size - 1 && (o == null || o(s), !s.defaultPrevented && d && (s.preventDefault(), d()));
32
- }, f), n.useEffect(() => {
33
- if (u)
34
- return i && (c.layersWithOutsidePointerEventsDisabled.size === 0 && (L = f.body.style.pointerEvents, f.body.style.pointerEvents = "none"), c.layersWithOutsidePointerEventsDisabled.add(u)), c.layers.add(u), O(), () => {
35
- i && c.layersWithOutsidePointerEventsDisabled.size === 1 && (f.body.style.pointerEvents = L);
36
- };
37
- }, [u, f, i, c]), n.useEffect(() => () => {
38
- u && (c.layers.delete(u), c.layersWithOutsidePointerEventsDisabled.delete(u), O());
39
- }, [u, c]), n.useEffect(() => {
40
- const s = () => F({});
41
- return document.addEventListener(y, s), () => document.removeEventListener(y, s);
42
- }, []), /* @__PURE__ */ T(
43
- g.div,
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,
44
107
  {
45
- ...v,
46
- ref: W,
47
- style: {
48
- pointerEvents: I ? P ? "auto" : "none" : void 0,
49
- ...r.style
50
- },
51
- onFocusCapture: m(r.onFocusCapture, D.onFocusCapture),
52
- onBlurCapture: m(r.onBlurCapture, D.onBlurCapture),
53
- onPointerDownCapture: m(
54
- r.onPointerDownCapture,
55
- _.onPointerDownCapture
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
+ }
56
145
  )
57
146
  }
58
147
  );
59
148
  }
60
149
  );
61
- j.displayName = z;
62
- var X = "DismissableLayerBranch", Y = n.forwardRef((r, e) => {
63
- const i = n.useContext(B), o = n.useRef(null), t = R(e, o);
64
- return n.useEffect(() => {
65
- const a = o.current;
66
- if (a)
67
- return i.branches.add(a), () => {
68
- i.branches.delete(a);
69
- };
70
- }, [i.branches]), /* @__PURE__ */ T(g.div, { ...r, ref: t });
71
- });
72
- Y.displayName = X;
73
- function q(r, e = globalThis == null ? void 0 : globalThis.document) {
74
- const i = w(r), o = n.useRef(!1), t = n.useRef(() => {
75
- });
76
- return n.useEffect(() => {
77
- const a = (d) => {
78
- if (d.target && !o.current) {
79
- let v = function() {
80
- x(
81
- H,
82
- i,
83
- c,
84
- { discrete: !0 }
85
- );
86
- };
87
- const c = { originalEvent: d };
88
- d.pointerType === "touch" ? (e.removeEventListener("click", t.current), t.current = v, e.addEventListener("click", t.current, { once: !0 })) : v();
89
- } else
90
- e.removeEventListener("click", t.current);
91
- o.current = !1;
92
- }, l = window.setTimeout(() => {
93
- e.addEventListener("pointerdown", a);
94
- }, 0);
95
- return () => {
96
- window.clearTimeout(l), e.removeEventListener("pointerdown", a), e.removeEventListener("click", t.current);
97
- };
98
- }, [e, i]), {
99
- // ensures we check React component tree (not just DOM tree)
100
- onPointerDownCapture: () => o.current = !0
101
- };
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;
102
163
  }
103
- function G(r, e = globalThis == null ? void 0 : globalThis.document) {
104
- const i = w(r), o = n.useRef(!1);
105
- return n.useEffect(() => {
106
- const t = (a) => {
107
- a.target && !o.current && x(M, i, { originalEvent: a }, {
108
- discrete: !1
109
- });
110
- };
111
- return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
112
- }, [e, i]), {
113
- onFocusCapture: () => o.current = !0,
114
- onBlurCapture: () => o.current = !1
115
- };
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];
116
168
  }
117
- function O() {
118
- const r = new CustomEvent(y);
119
- document.dispatchEvent(r);
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;
120
173
  }
121
- function x(r, e, i, { discrete: o }) {
122
- const t = i.originalEvent.target, a = new CustomEvent(r, { bubbles: !1, cancelable: !0, detail: i });
123
- e && t.addEventListener(r, e, { once: !0 }), o ? k(t, a) : t.dispatchEvent(a);
174
+ function se(e, r) {
175
+ return e.map((s, o) => e[(r + o) % e.length]);
124
176
  }
177
+ var ge = O, Re = M;
125
178
  export {
126
- j as DismissableLayer,
127
- Y as DismissableLayerBranch
179
+ Re as Item,
180
+ ge as Root,
181
+ O as RovingFocusGroup,
182
+ M as RovingFocusGroupItem,
183
+ Fe as createRovingFocusGroupScope
128
184
  };
package/dist/index101.js CHANGED
@@ -1,138 +1,10 @@
1
- "use client";
2
- import * as d from "react";
3
- import { useComposedRefs as R } from "./index90.js";
4
- import { Primitive as M } from "./index95.js";
5
- import { useCallbackRef as y } from "./index108.js";
6
- import { jsx as _ } from "react/jsx-runtime";
7
- var F = "focusScope.autoFocusOnMount", T = "focusScope.autoFocusOnUnmount", N = { bubbles: !1, cancelable: !0 }, K = "FocusScope", k = d.forwardRef((e, n) => {
8
- const {
9
- loop: t = !1,
10
- trapped: u = !1,
11
- onMountAutoFocus: p,
12
- onUnmountAutoFocus: L,
13
- ...g
14
- } = e, [o, U] = d.useState(null), E = y(p), v = y(L), b = d.useRef(null), A = R(n, (s) => U(s)), a = d.useRef({
15
- paused: !1,
16
- pause() {
17
- this.paused = !0;
18
- },
19
- resume() {
20
- this.paused = !1;
21
- }
22
- }).current;
23
- d.useEffect(() => {
24
- if (u) {
25
- let s = function(i) {
26
- if (a.paused || !o) return;
27
- const c = i.target;
28
- o.contains(c) ? b.current = c : f(b.current, { select: !0 });
29
- }, l = function(i) {
30
- if (a.paused || !o) return;
31
- const c = i.relatedTarget;
32
- c !== null && (o.contains(c) || f(b.current, { select: !0 }));
33
- }, r = function(i) {
34
- if (document.activeElement === document.body)
35
- for (const h of i)
36
- h.removedNodes.length > 0 && f(o);
37
- };
38
- document.addEventListener("focusin", s), document.addEventListener("focusout", l);
39
- const m = new MutationObserver(r);
40
- return o && m.observe(o, { childList: !0, subtree: !0 }), () => {
41
- document.removeEventListener("focusin", s), document.removeEventListener("focusout", l), m.disconnect();
42
- };
43
- }
44
- }, [u, o, a.paused]), d.useEffect(() => {
45
- if (o) {
46
- S.add(a);
47
- const s = document.activeElement;
48
- if (!o.contains(s)) {
49
- const r = new CustomEvent(F, N);
50
- o.addEventListener(F, E), o.dispatchEvent(r), r.defaultPrevented || (w(W(I(o)), { select: !0 }), document.activeElement === s && f(o));
51
- }
52
- return () => {
53
- o.removeEventListener(F, E), setTimeout(() => {
54
- const r = new CustomEvent(T, N);
55
- o.addEventListener(T, v), o.dispatchEvent(r), r.defaultPrevented || f(s ?? document.body, { select: !0 }), o.removeEventListener(T, v), S.remove(a);
56
- }, 0);
57
- };
58
- }
59
- }, [o, E, v, a]);
60
- const P = d.useCallback(
61
- (s) => {
62
- if (!t && !u || a.paused) return;
63
- const l = s.key === "Tab" && !s.altKey && !s.ctrlKey && !s.metaKey, r = document.activeElement;
64
- if (l && r) {
65
- const m = s.currentTarget, [i, c] = x(m);
66
- i && c ? !s.shiftKey && r === c ? (s.preventDefault(), t && f(i, { select: !0 })) : s.shiftKey && r === i && (s.preventDefault(), t && f(c, { select: !0 })) : r === m && s.preventDefault();
67
- }
68
- },
69
- [t, u, a.paused]
70
- );
71
- return /* @__PURE__ */ _(M.div, { tabIndex: -1, ...g, ref: A, onKeyDown: P });
72
- });
73
- k.displayName = K;
74
- function w(e, { select: n = !1 } = {}) {
75
- const t = document.activeElement;
76
- for (const u of e)
77
- if (f(u, { select: n }), document.activeElement !== t) return;
78
- }
79
- function x(e) {
80
- const n = I(e), t = O(n, e), u = O(n.reverse(), e);
81
- return [t, u];
82
- }
83
- function I(e) {
84
- const n = [], t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
85
- acceptNode: (u) => {
86
- const p = u.tagName === "INPUT" && u.type === "hidden";
87
- return u.disabled || u.hidden || p ? NodeFilter.FILTER_SKIP : u.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
88
- }
89
- });
90
- for (; t.nextNode(); ) n.push(t.currentNode);
91
- return n;
92
- }
93
- function O(e, n) {
94
- for (const t of e)
95
- if (!D(t, { upTo: n })) return t;
96
- }
97
- function D(e, { upTo: n }) {
98
- if (getComputedStyle(e).visibility === "hidden") return !0;
99
- for (; e; ) {
100
- if (n !== void 0 && e === n) return !1;
101
- if (getComputedStyle(e).display === "none") return !0;
102
- e = e.parentElement;
103
- }
104
- return !1;
105
- }
106
- function H(e) {
107
- return e instanceof HTMLInputElement && "select" in e;
108
- }
109
- function f(e, { select: n = !1 } = {}) {
110
- if (e && e.focus) {
111
- const t = document.activeElement;
112
- e.focus({ preventScroll: !0 }), e !== t && H(e) && n && e.select();
113
- }
114
- }
115
- var S = V();
116
- function V() {
117
- let e = [];
118
- return {
119
- add(n) {
120
- const t = e[0];
121
- n !== t && (t == null || t.pause()), e = C(e, n), e.unshift(n);
122
- },
123
- remove(n) {
124
- var t;
125
- e = C(e, n), (t = e[0]) == null || t.resume();
126
- }
127
- };
128
- }
129
- function C(e, n) {
130
- const t = [...e], u = t.indexOf(n);
131
- return u !== -1 && t.splice(u, 1), t;
132
- }
133
- function W(e) {
134
- return e.filter((n) => n.tagName !== "A");
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";
135
7
  }
136
8
  export {
137
- k as FocusScope
9
+ n as useDirection
138
10
  };
package/dist/index102.js CHANGED
@@ -1,17 +1,27 @@
1
- "use client";
2
- import * as r from "react";
3
- import s from "react-dom";
4
- import { Primitive as c } from "./index95.js";
5
- import { useLayoutEffect as u } from "./index109.js";
6
- import { jsx as l } from "react/jsx-runtime";
7
- var p = "Portal", d = r.forwardRef((e, a) => {
8
- var o;
9
- const { container: f, ...i } = e, [m, n] = r.useState(!1);
10
- u(() => n(!0), []);
11
- const t = f || m && ((o = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : o.body);
12
- return t ? s.createPortal(/* @__PURE__ */ l(c.div, { ...i, ref: a }), t) : null;
13
- });
14
- d.displayName = p;
1
+ import * as h from "react";
2
+ import { useLayoutEffect as z } from "./index109.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;
24
+ }
15
25
  export {
16
- d as Portal
26
+ c as useSize
17
27
  };