@drjoshcsimmons/scl 0.1.14 → 0.1.15

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 (131) hide show
  1. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  2. package/dist/index100.js +24 -12
  3. package/dist/index102.js +178 -27
  4. package/dist/index103.js +47 -3
  5. package/dist/index104.js +30 -25
  6. package/dist/index105.js +54 -5
  7. package/dist/index106.js +30 -55
  8. package/dist/index107.js +1 -1
  9. package/dist/index108.js +650 -30
  10. package/dist/index109.js +1 -1
  11. package/dist/index11.js +2 -2
  12. package/dist/index110.js +27 -647
  13. package/dist/index113.js +6 -12
  14. package/dist/index114.js +42 -200
  15. package/dist/index115.js +47 -21
  16. package/dist/index116.js +10 -398
  17. package/dist/index117.js +200 -42
  18. package/dist/index118.js +21 -47
  19. package/dist/index119.js +399 -20
  20. package/dist/index12.js +1 -1
  21. package/dist/index120.js +15 -3
  22. package/dist/index121.js +3 -32
  23. package/dist/index122.js +32 -12
  24. package/dist/index123.js +18 -6
  25. package/dist/index124.js +1 -1
  26. package/dist/index125.js +2 -25
  27. package/dist/index126.js +53 -29
  28. package/dist/index127.js +65 -5
  29. package/dist/index128.js +25 -2
  30. package/dist/index129.js +29 -53
  31. package/dist/index13.js +2 -2
  32. package/dist/index130.js +5 -65
  33. package/dist/index131.js +2 -5
  34. package/dist/index132.js +2 -3
  35. package/dist/index133.js +5 -24
  36. package/dist/index134.js +3 -113
  37. package/dist/index135.js +23 -15
  38. package/dist/index136.js +107 -519
  39. package/dist/index137.js +14 -126
  40. package/dist/index138.js +516 -125
  41. package/dist/index139.js +128 -2
  42. package/dist/index14.js +2 -2
  43. package/dist/index140.js +134 -2
  44. package/dist/index141.js +65 -69
  45. package/dist/index142.js +68 -8
  46. package/dist/index143.js +9 -14
  47. package/dist/index144.js +14 -66
  48. package/dist/index145.js +65 -64
  49. package/dist/index148.js +11 -21
  50. package/dist/index149.js +26 -11
  51. package/dist/index15.js +54 -54
  52. package/dist/index150.js +4 -27
  53. package/dist/index151.js +22 -4
  54. package/dist/index17.js +70 -71
  55. package/dist/index18.js +2 -2
  56. package/dist/index19.js +4 -4
  57. package/dist/index20.js +2 -2
  58. package/dist/index21.js +15 -15
  59. package/dist/index22.js +20 -20
  60. package/dist/index24.js +12 -12
  61. package/dist/index25.js +59 -59
  62. package/dist/index26.js +1 -1
  63. package/dist/index27.js +32 -32
  64. package/dist/index29.js +7 -7
  65. package/dist/index31.js +14 -14
  66. package/dist/index32.js +17 -17
  67. package/dist/index33.js +10 -10
  68. package/dist/index36.js +9 -9
  69. package/dist/index37.js +18 -18
  70. package/dist/index4.js +26 -26
  71. package/dist/index45.js +237 -33
  72. package/dist/index46.js +11 -241
  73. package/dist/index47.js +33 -237
  74. package/dist/index48.js +73 -11
  75. package/dist/index49.js +198 -217
  76. package/dist/index5.js +1 -1
  77. package/dist/index50.js +435 -12
  78. package/dist/index51.js +112 -517
  79. package/dist/index52.js +245 -18
  80. package/dist/index53.js +9 -161
  81. package/dist/index54.js +107 -62
  82. package/dist/index55.js +119 -325
  83. package/dist/index56.js +10 -10
  84. package/dist/index57.js +1 -1
  85. package/dist/index58.js +53 -75
  86. package/dist/index59.js +247 -242
  87. package/dist/index6.js +36 -36
  88. package/dist/index60.js +260 -9
  89. package/dist/index61.js +12 -130
  90. package/dist/index62.js +530 -18
  91. package/dist/index63.js +18 -860
  92. package/dist/index64.js +161 -9
  93. package/dist/index65.js +82 -31
  94. package/dist/index66.js +20 -433
  95. package/dist/index67.js +856 -56
  96. package/dist/index68.js +9 -118
  97. package/dist/index69.js +6 -6
  98. package/dist/index7.js +1 -1
  99. package/dist/index70.js +1 -1
  100. package/dist/index71.js +336 -12
  101. package/dist/index72.js +303 -118
  102. package/dist/index73.js +12 -310
  103. package/dist/index74.js +31 -12
  104. package/dist/index75.js +12 -254
  105. package/dist/index76.js +66 -5
  106. package/dist/index77.js +44 -25
  107. package/dist/index78.js +23 -64
  108. package/dist/index79.js +5 -123
  109. package/dist/index8.js +5 -5
  110. package/dist/index80.js +50 -13
  111. package/dist/index81.js +32 -133
  112. package/dist/index82.js +1 -1
  113. package/dist/index83.js +7 -218
  114. package/dist/index84.js +55 -14
  115. package/dist/index85.js +10 -68
  116. package/dist/index86.js +4 -34
  117. package/dist/index87.js +29 -47
  118. package/dist/index88.js +10 -49
  119. package/dist/index89.js +122 -47
  120. package/dist/index9.js +21 -21
  121. package/dist/index90.js +14 -8
  122. package/dist/index91.js +130 -41
  123. package/dist/index92.js +218 -7
  124. package/dist/index93.js +14 -48
  125. package/dist/index94.js +68 -29
  126. package/dist/index95.js +43 -176
  127. package/dist/index96.js +48 -53
  128. package/dist/index97.js +8 -10
  129. package/dist/index98.js +4 -4
  130. package/dist/index99.js +6 -30
  131. package/package.json +1 -1
package/dist/index89.js CHANGED
@@ -1,52 +1,127 @@
1
- var S = function(r) {
2
- if (typeof document > "u")
3
- return null;
4
- var u = Array.isArray(r) ? r[0] : r;
5
- return u.ownerDocument.body;
6
- }, f = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), p = {}, h = 0, W = function(r) {
7
- return r && (r.host || W(r.parentNode));
8
- }, D = function(r, u) {
9
- return u.map(function(e) {
10
- if (r.contains(e))
11
- return e;
12
- var n = W(e);
13
- return n && r.contains(n) ? n : (console.error("aria-hidden", e, "in not contained inside", r, ". Doing nothing"), null);
14
- }).filter(function(e) {
15
- return !!e;
1
+ import * as n from "react";
2
+ import { composeEventHandlers as m } from "./index79.js";
3
+ import { Primitive as g, dispatchDiscreteCustomEvent as k } from "./index81.js";
4
+ import { useComposedRefs as R } from "./index78.js";
5
+ import { useCallbackRef as w } from "./index85.js";
6
+ import { useEscapeKeydown as U } from "./index116.js";
7
+ import { jsx as T } from "react/jsx-runtime";
8
+ var z = "DismissableLayer", y = "dismissableLayer.update", H = "dismissableLayer.pointerDownOutside", M = "dismissableLayer.focusOutside", L, B = n.createContext({
9
+ layers: /* @__PURE__ */ new Set(),
10
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
11
+ branches: /* @__PURE__ */ new Set()
12
+ }), j = n.forwardRef(
13
+ (r, e) => {
14
+ const {
15
+ disableOutsidePointerEvents: i = !1,
16
+ onEscapeKeyDown: o,
17
+ onPointerDownOutside: t,
18
+ onFocusOutside: a,
19
+ onInteractOutside: l,
20
+ onDismiss: d,
21
+ ...v
22
+ } = 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) => {
23
+ const E = s.target, C = [...c.branches].some((h) => h.contains(E));
24
+ !P || C || (t == null || t(s), l == null || l(s), s.defaultPrevented || d == null || d());
25
+ }, f), D = G((s) => {
26
+ const E = s.target;
27
+ [...c.branches].some((h) => h.contains(E)) || (a == null || a(s), l == null || l(s), s.defaultPrevented || d == null || d());
28
+ }, f);
29
+ return U((s) => {
30
+ b === c.layers.size - 1 && (o == null || o(s), !s.defaultPrevented && d && (s.preventDefault(), d()));
31
+ }, f), n.useEffect(() => {
32
+ if (u)
33
+ 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(), () => {
34
+ i && c.layersWithOutsidePointerEventsDisabled.size === 1 && (f.body.style.pointerEvents = L);
35
+ };
36
+ }, [u, f, i, c]), n.useEffect(() => () => {
37
+ u && (c.layers.delete(u), c.layersWithOutsidePointerEventsDisabled.delete(u), O());
38
+ }, [u, c]), n.useEffect(() => {
39
+ const s = () => F({});
40
+ return document.addEventListener(y, s), () => document.removeEventListener(y, s);
41
+ }, []), /* @__PURE__ */ T(
42
+ g.div,
43
+ {
44
+ ...v,
45
+ ref: W,
46
+ style: {
47
+ pointerEvents: I ? P ? "auto" : "none" : void 0,
48
+ ...r.style
49
+ },
50
+ onFocusCapture: m(r.onFocusCapture, D.onFocusCapture),
51
+ onBlurCapture: m(r.onBlurCapture, D.onBlurCapture),
52
+ onPointerDownCapture: m(
53
+ r.onPointerDownCapture,
54
+ _.onPointerDownCapture
55
+ )
56
+ }
57
+ );
58
+ }
59
+ );
60
+ j.displayName = z;
61
+ var X = "DismissableLayerBranch", Y = n.forwardRef((r, e) => {
62
+ const i = n.useContext(B), o = n.useRef(null), t = R(e, o);
63
+ return n.useEffect(() => {
64
+ const a = o.current;
65
+ if (a)
66
+ return i.branches.add(a), () => {
67
+ i.branches.delete(a);
68
+ };
69
+ }, [i.branches]), /* @__PURE__ */ T(g.div, { ...r, ref: t });
70
+ });
71
+ Y.displayName = X;
72
+ function q(r, e = globalThis == null ? void 0 : globalThis.document) {
73
+ const i = w(r), o = n.useRef(!1), t = n.useRef(() => {
16
74
  });
17
- }, E = function(r, u, e, n) {
18
- var i = D(u, Array.isArray(r) ? r : [r]);
19
- p[e] || (p[e] = /* @__PURE__ */ new WeakMap());
20
- var s = p[e], l = [], o = /* @__PURE__ */ new Set(), b = new Set(i), y = function(t) {
21
- !t || o.has(t) || (o.add(t), y(t.parentNode));
75
+ return n.useEffect(() => {
76
+ const a = (d) => {
77
+ if (d.target && !o.current) {
78
+ let v = function() {
79
+ x(
80
+ H,
81
+ i,
82
+ c,
83
+ { discrete: !0 }
84
+ );
85
+ };
86
+ const c = { originalEvent: d };
87
+ d.pointerType === "touch" ? (e.removeEventListener("click", t.current), t.current = v, e.addEventListener("click", t.current, { once: !0 })) : v();
88
+ } else
89
+ e.removeEventListener("click", t.current);
90
+ o.current = !1;
91
+ }, l = window.setTimeout(() => {
92
+ e.addEventListener("pointerdown", a);
93
+ }, 0);
94
+ return () => {
95
+ window.clearTimeout(l), e.removeEventListener("pointerdown", a), e.removeEventListener("click", t.current);
96
+ };
97
+ }, [e, i]), {
98
+ // ensures we check React component tree (not just DOM tree)
99
+ onPointerDownCapture: () => o.current = !0
22
100
  };
23
- i.forEach(y);
24
- var A = function(t) {
25
- !t || b.has(t) || Array.prototype.forEach.call(t.children, function(a) {
26
- if (o.has(a))
27
- A(a);
28
- else
29
- try {
30
- var c = a.getAttribute(n), w = c !== null && c !== "false", d = (f.get(a) || 0) + 1, M = (s.get(a) || 0) + 1;
31
- f.set(a, d), s.set(a, M), l.push(a), d === 1 && w && v.set(a, !0), M === 1 && a.setAttribute(e, "true"), w || a.setAttribute(n, "true");
32
- } catch (k) {
33
- console.error("aria-hidden: cannot operate on ", a, k);
34
- }
35
- });
101
+ }
102
+ function G(r, e = globalThis == null ? void 0 : globalThis.document) {
103
+ const i = w(r), o = n.useRef(!1);
104
+ return n.useEffect(() => {
105
+ const t = (a) => {
106
+ a.target && !o.current && x(M, i, { originalEvent: a }, {
107
+ discrete: !1
108
+ });
109
+ };
110
+ return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
111
+ }, [e, i]), {
112
+ onFocusCapture: () => o.current = !0,
113
+ onBlurCapture: () => o.current = !1
36
114
  };
37
- return A(u), o.clear(), h++, function() {
38
- l.forEach(function(t) {
39
- var a = f.get(t) - 1, c = s.get(t) - 1;
40
- f.set(t, a), s.set(t, c), a || (v.has(t) || t.removeAttribute(n), v.delete(t)), c || t.removeAttribute(e);
41
- }), h--, h || (f = /* @__PURE__ */ new WeakMap(), f = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), p = {});
42
- };
43
- }, C = function(r, u, e) {
44
- e === void 0 && (e = "data-aria-hidden");
45
- var n = Array.from(Array.isArray(r) ? r : [r]), i = S(r);
46
- return i ? (n.push.apply(n, Array.from(i.querySelectorAll("[aria-live], script"))), E(n, i, e, "aria-hidden")) : function() {
47
- return null;
48
- };
49
- };
115
+ }
116
+ function O() {
117
+ const r = new CustomEvent(y);
118
+ document.dispatchEvent(r);
119
+ }
120
+ function x(r, e, i, { discrete: o }) {
121
+ const t = i.originalEvent.target, a = new CustomEvent(r, { bubbles: !1, cancelable: !0, detail: i });
122
+ e && t.addEventListener(r, e, { once: !0 }), o ? k(t, a) : t.dispatchEvent(a);
123
+ }
50
124
  export {
51
- C as hideOthers
125
+ j as DismissableLayer,
126
+ Y as DismissableLayerBranch
52
127
  };
package/dist/index9.js CHANGED
@@ -1,21 +1,21 @@
1
- import { jsx as n } from "react/jsx-runtime";
1
+ import { jsx as i } from "react/jsx-runtime";
2
2
  import * as s from "react";
3
- import { Root as d } from "./index67.js";
4
- import { cva as b } from "./index45.js";
5
- import { cn as c } from "./index2.js";
6
- const p = b(
7
- "inline-flex items-center justify-center gap-2 whitespace-nowrap font-mono font-bold uppercase tracking-wider transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-30 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3
+ import { Root as d } from "./index58.js";
4
+ import { cva as c } from "./index47.js";
5
+ import { cn as v } from "./index2.js";
6
+ const p = c(
7
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap font-mono font-bold uppercase tracking-wider cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-30 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
- default: "bg-primary text-primary-foreground border-2 border-primary hover:bg-primary/90 active:bg-primary/80",
12
- secondary: "bg-secondary text-secondary-foreground border-2 border-secondary hover:bg-secondary/90 active:bg-secondary/80",
13
- outline: "bg-transparent text-primary border-2 border-primary hover:bg-primary/10 active:bg-primary/20",
14
- "secondary-outline": "bg-transparent text-secondary border-2 border-secondary hover:bg-secondary/10 active:bg-secondary/20",
15
- ghost: "bg-transparent text-primary border-2 border-transparent hover:border-primary/50 active:bg-primary/10",
16
- link: "bg-transparent text-primary underline-offset-4 hover:underline border-none",
17
- destructive: "bg-destructive text-destructive-foreground border-2 border-destructive hover:bg-destructive/90 active:bg-destructive/80",
18
- "destructive-outline": "bg-transparent text-destructive border-2 border-destructive hover:bg-destructive/10 active:bg-destructive/20"
11
+ default: "bg-primary text-primary-foreground border-2 border-primary hover:bg-transparent hover:text-primary active:bg-primary active:text-primary-foreground active:border-primary-foreground",
12
+ secondary: "bg-secondary text-secondary-foreground border-2 border-secondary hover:bg-transparent hover:text-secondary active:bg-secondary active:text-secondary-foreground active:border-secondary-foreground",
13
+ outline: "bg-transparent text-primary border-2 border-primary hover:bg-primary hover:text-primary-foreground active:bg-transparent active:text-primary active:border-primary-foreground",
14
+ "secondary-outline": "bg-transparent text-secondary border-2 border-secondary hover:bg-secondary hover:text-secondary-foreground active:bg-transparent active:text-secondary active:border-secondary-foreground",
15
+ ghost: "bg-transparent text-primary border-2 border-transparent hover:border-primary hover:bg-primary hover:text-primary-foreground active:bg-transparent active:border-primary-foreground active:text-primary",
16
+ link: "bg-transparent text-primary underline-offset-4 hover:underline border-none active:no-underline",
17
+ destructive: "bg-destructive text-destructive-foreground border-2 border-destructive hover:bg-transparent hover:text-destructive active:bg-destructive active:text-destructive-foreground active:border-destructive-foreground",
18
+ "destructive-outline": "bg-transparent text-destructive border-2 border-destructive hover:bg-destructive hover:text-destructive-foreground active:bg-transparent active:text-destructive active:border-destructive-foreground"
19
19
  },
20
20
  size: {
21
21
  default: "h-11 px-6 py-3 text-sm",
@@ -29,18 +29,18 @@ const p = b(
29
29
  size: "default"
30
30
  }
31
31
  }
32
- ), v = s.forwardRef(
33
- ({ className: r, variant: e, size: t, asChild: o = !1, ...i }, a) => /* @__PURE__ */ n(
32
+ ), u = s.forwardRef(
33
+ ({ className: r, variant: e, size: t, asChild: o = !1, ...a }, n) => /* @__PURE__ */ i(
34
34
  o ? d : "button",
35
35
  {
36
- className: c(p({ variant: e, size: t, className: r })),
37
- ref: a,
38
- ...i
36
+ className: v(p({ variant: e, size: t, className: r })),
37
+ ref: n,
38
+ ...a
39
39
  }
40
40
  )
41
41
  );
42
- v.displayName = "Button";
42
+ u.displayName = "Button";
43
43
  export {
44
- v as Button,
44
+ u as Button,
45
45
  p as buttonVariants
46
46
  };
package/dist/index90.js CHANGED
@@ -1,11 +1,17 @@
1
- import { __assign as m } from "./index125.js";
2
1
  import * as r from "react";
3
- import { RemoveScroll as e } from "./index126.js";
4
- import t from "./index127.js";
5
- var s = r.forwardRef(function(a, o) {
6
- return r.createElement(e, m({}, a, { ref: o, sideCar: t }));
7
- });
8
- s.classNames = e.classNames;
2
+ var t = 0;
3
+ function a() {
4
+ r.useEffect(() => {
5
+ const e = document.querySelectorAll("[data-radix-focus-guard]");
6
+ return document.body.insertAdjacentElement("afterbegin", e[0] ?? n()), document.body.insertAdjacentElement("beforeend", e[1] ?? n()), t++, () => {
7
+ t === 1 && document.querySelectorAll("[data-radix-focus-guard]").forEach((o) => o.remove()), t--;
8
+ };
9
+ }, []);
10
+ }
11
+ function n() {
12
+ const e = document.createElement("span");
13
+ return e.setAttribute("data-radix-focus-guard", ""), e.tabIndex = 0, e.style.outline = "none", e.style.opacity = "0", e.style.position = "fixed", e.style.pointerEvents = "none", e;
14
+ }
9
15
  export {
10
- s as default
16
+ a as useFocusGuards
11
17
  };
package/dist/index91.js CHANGED
@@ -1,48 +1,137 @@
1
- import r from "react";
2
- import { createContextScope as y } from "./index78.js";
3
- import { useComposedRefs as M } from "./index77.js";
4
- import { createSlot as x } from "./index118.js";
5
- import { jsx as u } from "react/jsx-runtime";
6
- function g(s) {
7
- const m = s + "CollectionProvider", [A, N] = y(m), [_, f] = A(
8
- m,
9
- { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
10
- ), p = (c) => {
11
- const { scope: e, children: l } = c, o = r.useRef(null), t = r.useRef(/* @__PURE__ */ new Map()).current;
12
- return /* @__PURE__ */ u(_, { scope: e, itemMap: t, collectionRef: o, children: l });
13
- };
14
- p.displayName = m;
15
- const a = s + "CollectionSlot", E = x(a), C = r.forwardRef(
16
- (c, e) => {
17
- const { scope: l, children: o } = c, t = f(a, l), n = M(e, t.collectionRef);
18
- return /* @__PURE__ */ u(E, { ref: n, children: o });
1
+ import * as d from "react";
2
+ import { useComposedRefs as R } from "./index78.js";
3
+ import { Primitive as M } from "./index81.js";
4
+ import { useCallbackRef as y } from "./index85.js";
5
+ import { jsx as _ } from "react/jsx-runtime";
6
+ var F = "focusScope.autoFocusOnMount", T = "focusScope.autoFocusOnUnmount", N = { bubbles: !1, cancelable: !0 }, K = "FocusScope", k = d.forwardRef((e, n) => {
7
+ const {
8
+ loop: t = !1,
9
+ trapped: u = !1,
10
+ onMountAutoFocus: p,
11
+ onUnmountAutoFocus: L,
12
+ ...g
13
+ } = 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({
14
+ paused: !1,
15
+ pause() {
16
+ this.paused = !0;
17
+ },
18
+ resume() {
19
+ this.paused = !1;
19
20
  }
20
- );
21
- C.displayName = a;
22
- const d = s + "CollectionItemSlot", R = "data-radix-collection-item", T = x(d), I = r.forwardRef(
23
- (c, e) => {
24
- const { scope: l, children: o, ...t } = c, n = r.useRef(null), S = M(e, n), i = f(d, l);
25
- return r.useEffect(() => (i.itemMap.set(n, { ref: n, ...t }), () => void i.itemMap.delete(n))), /* @__PURE__ */ u(T, { [R]: "", ref: S, children: o });
21
+ }).current;
22
+ d.useEffect(() => {
23
+ if (u) {
24
+ let s = function(i) {
25
+ if (a.paused || !o) return;
26
+ const c = i.target;
27
+ o.contains(c) ? b.current = c : f(b.current, { select: !0 });
28
+ }, l = function(i) {
29
+ if (a.paused || !o) return;
30
+ const c = i.relatedTarget;
31
+ c !== null && (o.contains(c) || f(b.current, { select: !0 }));
32
+ }, r = function(i) {
33
+ if (document.activeElement === document.body)
34
+ for (const h of i)
35
+ h.removedNodes.length > 0 && f(o);
36
+ };
37
+ document.addEventListener("focusin", s), document.addEventListener("focusout", l);
38
+ const m = new MutationObserver(r);
39
+ return o && m.observe(o, { childList: !0, subtree: !0 }), () => {
40
+ document.removeEventListener("focusin", s), document.removeEventListener("focusout", l), m.disconnect();
41
+ };
26
42
  }
43
+ }, [u, o, a.paused]), d.useEffect(() => {
44
+ if (o) {
45
+ S.add(a);
46
+ const s = document.activeElement;
47
+ if (!o.contains(s)) {
48
+ const r = new CustomEvent(F, N);
49
+ o.addEventListener(F, E), o.dispatchEvent(r), r.defaultPrevented || (w(W(I(o)), { select: !0 }), document.activeElement === s && f(o));
50
+ }
51
+ return () => {
52
+ o.removeEventListener(F, E), setTimeout(() => {
53
+ const r = new CustomEvent(T, N);
54
+ o.addEventListener(T, v), o.dispatchEvent(r), r.defaultPrevented || f(s ?? document.body, { select: !0 }), o.removeEventListener(T, v), S.remove(a);
55
+ }, 0);
56
+ };
57
+ }
58
+ }, [o, E, v, a]);
59
+ const P = d.useCallback(
60
+ (s) => {
61
+ if (!t && !u || a.paused) return;
62
+ const l = s.key === "Tab" && !s.altKey && !s.ctrlKey && !s.metaKey, r = document.activeElement;
63
+ if (l && r) {
64
+ const m = s.currentTarget, [i, c] = x(m);
65
+ 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();
66
+ }
67
+ },
68
+ [t, u, a.paused]
27
69
  );
28
- I.displayName = d;
29
- function O(c) {
30
- const e = f(s + "CollectionConsumer", c);
31
- return r.useCallback(() => {
32
- const o = e.collectionRef.current;
33
- if (!o) return [];
34
- const t = Array.from(o.querySelectorAll(`[${R}]`));
35
- return Array.from(e.itemMap.values()).sort(
36
- (i, v) => t.indexOf(i.ref.current) - t.indexOf(v.ref.current)
37
- );
38
- }, [e.collectionRef, e.itemMap]);
70
+ return /* @__PURE__ */ _(M.div, { tabIndex: -1, ...g, ref: A, onKeyDown: P });
71
+ });
72
+ k.displayName = K;
73
+ function w(e, { select: n = !1 } = {}) {
74
+ const t = document.activeElement;
75
+ for (const u of e)
76
+ if (f(u, { select: n }), document.activeElement !== t) return;
77
+ }
78
+ function x(e) {
79
+ const n = I(e), t = O(n, e), u = O(n.reverse(), e);
80
+ return [t, u];
81
+ }
82
+ function I(e) {
83
+ const n = [], t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
84
+ acceptNode: (u) => {
85
+ const p = u.tagName === "INPUT" && u.type === "hidden";
86
+ return u.disabled || u.hidden || p ? NodeFilter.FILTER_SKIP : u.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
87
+ }
88
+ });
89
+ for (; t.nextNode(); ) n.push(t.currentNode);
90
+ return n;
91
+ }
92
+ function O(e, n) {
93
+ for (const t of e)
94
+ if (!D(t, { upTo: n })) return t;
95
+ }
96
+ function D(e, { upTo: n }) {
97
+ if (getComputedStyle(e).visibility === "hidden") return !0;
98
+ for (; e; ) {
99
+ if (n !== void 0 && e === n) return !1;
100
+ if (getComputedStyle(e).display === "none") return !0;
101
+ e = e.parentElement;
39
102
  }
40
- return [
41
- { Provider: p, Slot: C, ItemSlot: I },
42
- O,
43
- N
44
- ];
103
+ return !1;
104
+ }
105
+ function H(e) {
106
+ return e instanceof HTMLInputElement && "select" in e;
107
+ }
108
+ function f(e, { select: n = !1 } = {}) {
109
+ if (e && e.focus) {
110
+ const t = document.activeElement;
111
+ e.focus({ preventScroll: !0 }), e !== t && H(e) && n && e.select();
112
+ }
113
+ }
114
+ var S = V();
115
+ function V() {
116
+ let e = [];
117
+ return {
118
+ add(n) {
119
+ const t = e[0];
120
+ n !== t && (t == null || t.pause()), e = C(e, n), e.unshift(n);
121
+ },
122
+ remove(n) {
123
+ var t;
124
+ e = C(e, n), (t = e[0]) == null || t.resume();
125
+ }
126
+ };
127
+ }
128
+ function C(e, n) {
129
+ const t = [...e], u = t.indexOf(n);
130
+ return u !== -1 && t.splice(u, 1), t;
131
+ }
132
+ function W(e) {
133
+ return e.filter((n) => n.tagName !== "A");
45
134
  }
46
135
  export {
47
- g as createCollection
136
+ k as FocusScope
48
137
  };