@yselimcan/ui 0.0.5 → 0.0.7

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 (224) hide show
  1. package/dist/index100.js +4 -5
  2. package/dist/index101.js +66 -7
  3. package/dist/index102.js +8 -87
  4. package/dist/index103.js +12 -11
  5. package/dist/index104.js +3 -62
  6. package/dist/index105.js +4 -38
  7. package/dist/index106.js +6 -14
  8. package/dist/index107.js +29 -32
  9. package/dist/index108.js +12 -19
  10. package/dist/index109.js +65 -4
  11. package/dist/index110.js +53 -3
  12. package/dist/index111.js +13 -5
  13. package/dist/index112.js +5 -11
  14. package/dist/index113.js +13 -19
  15. package/dist/index114.js +13 -13
  16. package/dist/index115.js +32 -296
  17. package/dist/index116.js +19 -5
  18. package/dist/index117.js +40 -38
  19. package/dist/index118.js +16 -123
  20. package/dist/index119.js +12 -21
  21. package/dist/index120.js +38 -77
  22. package/dist/index121.js +14 -65
  23. package/dist/index122.js +8 -45
  24. package/dist/index123.js +13 -14
  25. package/dist/index124.js +5 -5
  26. package/dist/index125.js +87 -29
  27. package/dist/index126.js +296 -4
  28. package/dist/index127.js +10 -26
  29. package/dist/index128.js +122 -14
  30. package/dist/index129.js +4 -21
  31. package/dist/index130.js +259 -54
  32. package/dist/index131.js +78 -16
  33. package/dist/index132.js +37 -26
  34. package/dist/index133.js +21 -41
  35. package/dist/index134.js +12 -43
  36. package/dist/index135.js +55 -20
  37. package/dist/index136.js +11 -48
  38. package/dist/index137.js +11 -51
  39. package/dist/index138.js +29 -16
  40. package/dist/index139.js +18 -11
  41. package/dist/index140.js +65 -21
  42. package/dist/index141.js +103 -34
  43. package/dist/index142.js +8 -230
  44. package/dist/index143.js +8 -283
  45. package/dist/index144.js +21 -52
  46. package/dist/index145.js +102 -14
  47. package/dist/index146.js +7 -79
  48. package/dist/index147.js +32 -3
  49. package/dist/index148.js +228 -28
  50. package/dist/index149.js +74 -23
  51. package/dist/index150.js +283 -15
  52. package/dist/index151.js +52 -68
  53. package/dist/index152.js +46 -4
  54. package/dist/index153.js +70 -98
  55. package/dist/index154.js +3 -79
  56. package/dist/index155.js +13 -262
  57. package/dist/index156.js +15 -11
  58. package/dist/index157.js +28 -10
  59. package/dist/index158.js +7 -40
  60. package/dist/index159.js +22 -4
  61. package/dist/index160.js +24 -66
  62. package/dist/index161.js +160 -9
  63. package/dist/index162.js +113 -8
  64. package/dist/index163.js +64 -5
  65. package/dist/index164.js +74 -132
  66. package/dist/index165.js +64 -53
  67. package/dist/index166.js +68 -10
  68. package/dist/index167.js +14 -118
  69. package/dist/index168.js +7 -11
  70. package/dist/index169.js +5 -8
  71. package/dist/index17.js +4 -4
  72. package/dist/index170.js +16 -11
  73. package/dist/index171.js +21 -22
  74. package/dist/index172.js +58 -11
  75. package/dist/index173.js +16 -65
  76. package/dist/index174.js +26 -11
  77. package/dist/index175.js +42 -12
  78. package/dist/index176.js +20 -11
  79. package/dist/index177.js +48 -11
  80. package/dist/index178.js +47 -83
  81. package/dist/index179.js +17 -11
  82. package/dist/index18.js +4 -4
  83. package/dist/index180.js +11 -11
  84. package/dist/index181.js +34 -55
  85. package/dist/index182.js +15 -11
  86. package/dist/index183.js +79 -11
  87. package/dist/index184.js +23 -18
  88. package/dist/index185.js +4 -9
  89. package/dist/index186.js +10 -7
  90. package/dist/index187.js +10 -103
  91. package/dist/index188.js +40 -7
  92. package/dist/index189.js +4 -32
  93. package/dist/index19.js +9 -9
  94. package/dist/index190.js +10 -75
  95. package/dist/index191.js +11 -14
  96. package/dist/index192.js +114 -25
  97. package/dist/index193.js +11 -7
  98. package/dist/index194.js +85 -20
  99. package/dist/index195.js +12 -24
  100. package/dist/index196.js +59 -157
  101. package/dist/index197.js +4 -114
  102. package/dist/index198.js +5 -76
  103. package/dist/index199.js +11 -64
  104. package/dist/index20.js +2 -2
  105. package/dist/index201.js +21 -47
  106. package/dist/index202.js +4 -200
  107. package/dist/index203.js +26 -47
  108. package/dist/index204.js +127 -19
  109. package/dist/index205.js +45 -27
  110. package/dist/index206.js +17 -11
  111. package/dist/index207.js +5 -7
  112. package/dist/index208.js +181 -4
  113. package/dist/index209.js +74 -8
  114. package/dist/index21.js +3 -3
  115. package/dist/index210.js +396 -14
  116. package/dist/index211.js +199 -21
  117. package/dist/index212.js +46 -126
  118. package/dist/index213.js +18 -43
  119. package/dist/index214.js +47 -17
  120. package/dist/index215.js +7 -5
  121. package/dist/index216.js +5 -181
  122. package/dist/index217.js +15 -74
  123. package/dist/index218.js +12 -396
  124. package/dist/index219.js +32 -38
  125. package/dist/index22.js +5 -5
  126. package/dist/index220.js +4 -57
  127. package/dist/index221.js +11 -27
  128. package/dist/index222.js +9 -7
  129. package/dist/index223.js +37 -11
  130. package/dist/index224.js +57 -12
  131. package/dist/index225.js +27 -11
  132. package/dist/index226.js +6 -20
  133. package/dist/index227.js +11 -10
  134. package/dist/index228.js +11 -7
  135. package/dist/index229.js +11 -42
  136. package/dist/index23.js +2 -2
  137. package/dist/index230.js +22 -4
  138. package/dist/index231.js +11 -4
  139. package/dist/index232.js +6 -595
  140. package/dist/index233.js +42 -11
  141. package/dist/index234.js +594 -12
  142. package/dist/index235.js +11 -32
  143. package/dist/index236.js +4 -209
  144. package/dist/index237.js +209 -4
  145. package/dist/index238.js +3 -13
  146. package/dist/index239.js +13 -47
  147. package/dist/index24.js +9 -9
  148. package/dist/index240.js +47 -3
  149. package/dist/index242.js +4 -4
  150. package/dist/index243.js +2 -2
  151. package/dist/index244.js +1 -1
  152. package/dist/index246.js +3 -3
  153. package/dist/index247.js +1 -1
  154. package/dist/index251.js +1 -1
  155. package/dist/index253.js +1 -1
  156. package/dist/index256.js +1 -1
  157. package/dist/index257.js +1 -1
  158. package/dist/index260.js +1 -1
  159. package/dist/index261.js +1 -1
  160. package/dist/index262.js +2 -2
  161. package/dist/index264.js +2 -2
  162. package/dist/index27.js +1 -1
  163. package/dist/index28.js +1 -1
  164. package/dist/index32.js +1 -1
  165. package/dist/index33.js +16 -16
  166. package/dist/index34.js +5 -5
  167. package/dist/index35.js +13 -13
  168. package/dist/index36.js +10 -10
  169. package/dist/index37.js +7 -7
  170. package/dist/index38.js +9 -9
  171. package/dist/index39.js +4 -4
  172. package/dist/index40.js +2 -2
  173. package/dist/index41.js +3 -3
  174. package/dist/index42.js +2 -2
  175. package/dist/index43.js +1 -1
  176. package/dist/index45.js +5 -5
  177. package/dist/index46.js +9 -9
  178. package/dist/index47.js +9 -9
  179. package/dist/index48.js +18 -18
  180. package/dist/index49.js +4 -4
  181. package/dist/index50.js +11 -11
  182. package/dist/index52.js +25 -25
  183. package/dist/index53.js +3 -3
  184. package/dist/index54.js +31 -31
  185. package/dist/index55.js +13 -13
  186. package/dist/index56.js +12 -12
  187. package/dist/index57.js +1 -1
  188. package/dist/index58.js +3 -3
  189. package/dist/index59.js +5 -5
  190. package/dist/index60.js +11 -11
  191. package/dist/index61.js +4 -4
  192. package/dist/index62.js +3 -3
  193. package/dist/index63.js +11 -11
  194. package/dist/index64.js +4 -4
  195. package/dist/index65.js +3 -3
  196. package/dist/index66.js +13 -13
  197. package/dist/index67.js +1 -1
  198. package/dist/index69.js +32 -32
  199. package/dist/index70.js +5 -5
  200. package/dist/index71.js +17 -17
  201. package/dist/index72.js +23 -23
  202. package/dist/index73.js +7 -7
  203. package/dist/index74.js +1 -1
  204. package/dist/index75.js +13 -13
  205. package/dist/index76.js +2 -2
  206. package/dist/index77.js +4 -4
  207. package/dist/index78.js +3 -3
  208. package/dist/index79.js +1 -1
  209. package/dist/index80.js +1 -1
  210. package/dist/index81.js +17 -17
  211. package/dist/index82.js +4 -4
  212. package/dist/index83.js +4 -4
  213. package/dist/index86.js +89 -11
  214. package/dist/index87.js +8 -8
  215. package/dist/index88.js +12 -96
  216. package/dist/index89.js +87 -81
  217. package/dist/index94.js +133 -4
  218. package/dist/index95.js +24 -63
  219. package/dist/index96.js +8 -8
  220. package/dist/index97.js +5 -14
  221. package/dist/index98.js +12 -3
  222. package/dist/index99.js +22 -3
  223. package/dist/styles.css +1 -1
  224. package/package.json +8 -4
package/dist/index126.js CHANGED
@@ -1,7 +1,299 @@
1
1
  "use client";
2
- import * as e from "react";
3
- const o = () => {
4
- }, t = typeof document < "u" ? e.useLayoutEffect : o;
2
+ import * as b from "react";
3
+ import { tabbable as we, isTabbable as De, focusable as Ke } from "./index237.js";
4
+ import { isHTMLElement as q, getNodeName as He, getWindow as _e, getComputedStyle as Ue } from "./index94.js";
5
+ import { useMergedRefs as Re } from "./index101.js";
6
+ import { useValueAsRef as H } from "./index170.js";
7
+ import { useStableCallback as _ } from "./index95.js";
8
+ import { useIsoLayoutEffect as U } from "./index97.js";
9
+ import { visuallyHidden as We } from "./index167.js";
10
+ import { useTimeout as ye } from "./index138.js";
11
+ import { useAnimationFrame as $e } from "./index140.js";
12
+ import { FocusGuard as Te } from "./index160.js";
13
+ import { createChangeEventDetails as ze } from "./index115.js";
14
+ import { createAttribute as Fe } from "./index238.js";
15
+ import { enqueueFocus as te } from "./index239.js";
16
+ import { markOthers as Je } from "./index240.js";
17
+ import { usePortalContext as Qe } from "./index128.js";
18
+ import { useFloatingTree as Xe } from "./index135.js";
19
+ import { CLICK_TRIGGER_IDENTIFIER as Ye } from "./index133.js";
20
+ import { resolveRef as D } from "./index236.js";
21
+ import { jsxs as Ze, jsx as xe } from "react/jsx-runtime";
22
+ import { isTypeableCombobox as he, getFloatingFocusElement as Ie, getDocument as I, activeElement as V, contains as m, getTarget as W } from "./index166.js";
23
+ import { getTabbableOptions as re, isOutsideEvent as Le, getNextTabbable as et, getPreviousTabbable as tt } from "./index165.js";
24
+ import { getNodeAncestors as ke, getNodeChildren as Ce } from "./index241.js";
25
+ import { isVirtualClick as nt, isVirtualPointerEvent as rt, stopEvent as ot } from "./index225.js";
26
+ import { triggerHover as st, outsidePress as ut, focusOut as it } from "./index116.js";
27
+ function ct(n, p) {
28
+ const h = _e(n.target);
29
+ return n instanceof h.KeyboardEvent ? "keyboard" : n instanceof h.FocusEvent ? p || "keyboard" : "pointerType" in n ? n.pointerType || "keyboard" : "touches" in n ? "touch" : n instanceof h.MouseEvent ? p || (n.detail === 0 ? "keyboard" : "mouse") : "";
30
+ }
31
+ const Ae = 20;
32
+ let L = [];
33
+ function oe() {
34
+ L = L.filter((n) => n.isConnected);
35
+ }
36
+ function at(n) {
37
+ oe(), n && He(n) !== "body" && (L.push(n), L.length > Ae && (L = L.slice(-Ae)));
38
+ }
39
+ function ne() {
40
+ return oe(), L[L.length - 1];
41
+ }
42
+ function ft(n) {
43
+ if (!n)
44
+ return null;
45
+ const p = re();
46
+ return De(n, p) ? n : we(n, p)[0] || n;
47
+ }
48
+ function lt(n) {
49
+ return !n || !n.isConnected ? !1 : typeof n.checkVisibility == "function" ? n.checkVisibility() : Ue(n).display !== "none";
50
+ }
51
+ function Oe(n, p) {
52
+ if (!p.current.includes("floating") && !n.getAttribute("role")?.includes("dialog"))
53
+ return;
54
+ const h = re(), $ = Ke(n, h).filter((S) => {
55
+ const P = S.getAttribute("data-tabindex") || "";
56
+ return De(S, h) || S.hasAttribute("data-tabindex") && !P.startsWith("-");
57
+ }), N = n.getAttribute("tabindex");
58
+ p.current.includes("floating") || $.length === 0 ? N !== "0" && n.setAttribute("tabindex", "0") : (N !== "-1" || n.hasAttribute("data-tabindex") && n.getAttribute("data-tabindex") !== "-1") && (n.setAttribute("tabindex", "-1"), n.setAttribute("data-tabindex", "-1"));
59
+ }
60
+ function Mt(n) {
61
+ const {
62
+ context: p,
63
+ children: h,
64
+ disabled: i = !1,
65
+ order: $ = ["content"],
66
+ initialFocus: N = !0,
67
+ returnFocus: S = !0,
68
+ restoreFocus: P = !1,
69
+ modal: E = !0,
70
+ closeOnFocusOut: M = !0,
71
+ openInteractionType: Ne = "",
72
+ getInsideElements: Se = () => [],
73
+ nextFocusableElement: z,
74
+ previousFocusableElement: J,
75
+ beforeContentFocusGuardRef: Pe,
76
+ externalTree: Me
77
+ } = n, F = "rootStore" in p ? p.rootStore : p, v = F.useState("open"), a = F.useState("domReferenceElement"), f = F.useState("floatingElement"), {
78
+ events: Q,
79
+ dataRef: k
80
+ } = F.context, O = _(() => k.current.floatingContext?.nodeId), se = _(Se), ue = N === !1, x = he(a) && ue, C = H($), ie = H(N), j = H(S), ce = H(Ne), R = Xe(Me), c = Qe(), Ge = b.useRef(null), qe = b.useRef(null), y = b.useRef(!1), B = b.useRef(!1), X = b.useRef(!1), ae = b.useRef(-1), fe = b.useRef(""), Y = b.useRef(""), le = ye(), de = ye(), be = $e(), Z = c != null, r = Ie(f), A = _((t = r) => t ? we(t, re()) : []), G = _((t) => {
81
+ const o = A(t);
82
+ return C.current.map(() => o).filter(Boolean).flat();
83
+ });
84
+ b.useEffect(() => {
85
+ if (i || !E)
86
+ return;
87
+ function t(l) {
88
+ l.key === "Tab" && m(r, V(I(r))) && A().length === 0 && !x && ot(l);
89
+ }
90
+ const o = I(r);
91
+ return o.addEventListener("keydown", t), () => {
92
+ o.removeEventListener("keydown", t);
93
+ };
94
+ }, [i, a, r, E, C, x, A, G]), b.useEffect(() => {
95
+ if (i || !f)
96
+ return;
97
+ function t(o) {
98
+ const l = W(o), d = A().indexOf(l);
99
+ d !== -1 && (ae.current = d);
100
+ }
101
+ return f.addEventListener("focusin", t), () => {
102
+ f.removeEventListener("focusin", t);
103
+ };
104
+ }, [i, f, A]), b.useEffect(() => {
105
+ if (i || !v)
106
+ return;
107
+ const t = I(r);
108
+ function o() {
109
+ X.current = !1;
110
+ }
111
+ function l(d) {
112
+ const e = W(d), s = m(f, e) || m(a, e) || m(c?.portalNode, e);
113
+ X.current = !s, Y.current = d.pointerType || "keyboard";
114
+ }
115
+ function u() {
116
+ Y.current = "keyboard";
117
+ }
118
+ return t.addEventListener("pointerdown", l, !0), t.addEventListener("pointerup", o, !0), t.addEventListener("pointercancel", o, !0), t.addEventListener("keydown", u, !0), () => {
119
+ t.removeEventListener("pointerdown", l, !0), t.removeEventListener("pointerup", o, !0), t.removeEventListener("pointercancel", o, !0), t.removeEventListener("keydown", u, !0);
120
+ };
121
+ }, [i, f, a, r, v, c]), b.useEffect(() => {
122
+ if (i || !M)
123
+ return;
124
+ function t() {
125
+ B.current = !0, de.start(0, () => {
126
+ B.current = !1;
127
+ });
128
+ }
129
+ function o(e) {
130
+ const s = e.relatedTarget, w = e.currentTarget, g = W(e);
131
+ queueMicrotask(() => {
132
+ const K = O(), ge = F.context.triggerElements, Be = !(m(a, s) || m(f, s) || m(s, f) || m(c?.portalNode, s) || s != null && ge.hasElement(s) || ge.hasMatchingElement((T) => m(T, s)) || s?.hasAttribute(Fe("focus-guard")) || R && (Ce(R.nodesRef.current, K).find((T) => m(T.context?.elements.floating, s) || m(T.context?.elements.domReference, s)) || ke(R.nodesRef.current, K).find((T) => [T.context?.elements.floating, Ie(T.context?.elements.floating)].includes(s) || T.context?.elements.domReference === s)));
133
+ if (w === a && r && Oe(r, C), P && w !== a && !lt(g) && V(I(r)) === I(r).body) {
134
+ if (q(r) && (r.focus(), P === "popup")) {
135
+ be.request(() => {
136
+ r.focus();
137
+ });
138
+ return;
139
+ }
140
+ const T = ae.current, ee = A(), ve = ee[T] || ee[ee.length - 1] || r;
141
+ q(ve) && ve.focus();
142
+ }
143
+ if (k.current.insideReactTree) {
144
+ k.current.insideReactTree = !1;
145
+ return;
146
+ }
147
+ (x || !E) && s && Be && !B.current && // Fix React 18 Strict Mode returnFocus due to double rendering.
148
+ // For an "untrapped" typeable combobox (input role=combobox with
149
+ // initialFocus=false), re-opening the popup and tabbing out should still close it even
150
+ // when the previously focused element (e.g. the next tabbable outside the popup) is
151
+ // focused again. Otherwise, the popup remains open on the second Tab sequence:
152
+ // click input -> Tab (closes) -> click input -> Tab.
153
+ // Allow closing when `isUntrappedTypeableCombobox` regardless of the previously focused element.
154
+ (x || s !== ne()) && (y.current = !0, F.setOpen(!1, ze(it, e)));
155
+ });
156
+ }
157
+ function l() {
158
+ X.current || (k.current.insideReactTree = !0, le.start(0, () => {
159
+ k.current.insideReactTree = !1;
160
+ }));
161
+ }
162
+ const u = q(a) ? a : null, d = [];
163
+ if (!(!f && !u))
164
+ return u && (u.addEventListener("focusout", o), u.addEventListener("pointerdown", t), d.push(() => {
165
+ u.removeEventListener("focusout", o), u.removeEventListener("pointerdown", t);
166
+ })), f && (f.addEventListener("focusout", o), c && (f.addEventListener("focusout", l, !0), d.push(() => {
167
+ f.removeEventListener("focusout", l, !0);
168
+ })), d.push(() => {
169
+ f.removeEventListener("focusout", o);
170
+ })), () => {
171
+ d.forEach((e) => {
172
+ e();
173
+ });
174
+ };
175
+ }, [i, a, f, r, E, R, c, F, M, P, A, x, O, C, k, le, de, be]);
176
+ const me = b.useRef(null), pe = b.useRef(null), Ve = Re(me, Pe, c?.beforeInsideRef), je = Re(pe, c?.afterInsideRef);
177
+ b.useEffect(() => {
178
+ if (i || !f || !v)
179
+ return;
180
+ const t = Array.from(c?.portalNode?.querySelectorAll(`[${Fe("portal")}]`) || []), l = (R ? ke(R.nodesRef.current, O()) : []).find((e) => he(e.context?.elements.domReference || null))?.context?.elements.domReference, u = [f, l, ...t, ...se(), Ge.current, qe.current, me.current, pe.current, c?.beforeOutsideRef.current, c?.afterOutsideRef.current, D(J), D(z), x ? a : null].filter((e) => e != null), d = Je(u, E || x);
181
+ return () => {
182
+ d();
183
+ };
184
+ }, [v, i, a, f, E, C, c, x, R, O, se, z, J]), U(() => {
185
+ if (!v || i || !q(r))
186
+ return;
187
+ const t = I(r), o = V(t);
188
+ queueMicrotask(() => {
189
+ const l = G(r), u = ie.current, d = typeof u == "function" ? u(ce.current || "") : u;
190
+ if (d === void 0 || d === !1)
191
+ return;
192
+ let e;
193
+ d === !0 || d === null ? e = l[0] || r : e = D(d), e = e || l[0] || r, !m(r, o) && te(e, {
194
+ preventScroll: e === r
195
+ });
196
+ });
197
+ }, [i, v, r, ue, G, ie, ce]), U(() => {
198
+ if (i || !r)
199
+ return;
200
+ const t = I(r), o = V(t);
201
+ at(o);
202
+ function l(e) {
203
+ if (e.open || (fe.current = ct(e.nativeEvent, Y.current)), e.reason === st && e.nativeEvent.type === "mouseleave" && (y.current = !0), e.reason === ut)
204
+ if (e.nested)
205
+ y.current = !1;
206
+ else if (nt(e.nativeEvent) || rt(e.nativeEvent))
207
+ y.current = !1;
208
+ else {
209
+ let s = !1;
210
+ document.createElement("div").focus({
211
+ get preventScroll() {
212
+ return s = !0, !1;
213
+ }
214
+ }), s ? y.current = !1 : y.current = !0;
215
+ }
216
+ }
217
+ Q.on("openchange", l);
218
+ const u = t.createElement("span");
219
+ u.setAttribute("tabindex", "-1"), u.setAttribute("aria-hidden", "true"), Object.assign(u.style, We), Z && a && a.insertAdjacentElement("afterend", u);
220
+ function d() {
221
+ const e = j.current;
222
+ let s = typeof e == "function" ? e(fe.current) : e;
223
+ if (s === void 0 || s === !1)
224
+ return null;
225
+ if (s === null && (s = !0), typeof s == "boolean") {
226
+ const g = a || ne();
227
+ return g && g.isConnected ? g : u;
228
+ }
229
+ const w = a || ne() || u;
230
+ return D(s) || w;
231
+ }
232
+ return () => {
233
+ Q.off("openchange", l);
234
+ const e = V(t), s = m(f, e) || R && Ce(R.nodesRef.current, O(), !1).some((g) => m(g.context?.elements.floating, e)), w = d();
235
+ queueMicrotask(() => {
236
+ const g = ft(w), K = typeof j.current != "boolean";
237
+ // eslint-disable-next-line react-hooks/exhaustive-deps
238
+ j.current && !y.current && q(g) && // If the focus moved somewhere else after mount, avoid returning focus
239
+ // since it likely entered a different element which should be
240
+ // respected: https://github.com/floating-ui/floating-ui/issues/2607
241
+ (!(!K && g !== e && e !== t.body) || s) && g.focus({
242
+ preventScroll: !0
243
+ }), u.remove();
244
+ });
245
+ };
246
+ }, [i, f, r, j, k, Q, R, Z, a, O]), b.useEffect(() => {
247
+ queueMicrotask(() => {
248
+ y.current = !1;
249
+ });
250
+ }, [i]), b.useEffect(() => {
251
+ if (i || !v)
252
+ return;
253
+ function t(l) {
254
+ W(l)?.closest(`[${Ye}]`) && (B.current = !0);
255
+ }
256
+ const o = I(r);
257
+ return o.addEventListener("pointerdown", t, !0), () => {
258
+ o.removeEventListener("pointerdown", t, !0);
259
+ };
260
+ }, [i, v, r]), U(() => {
261
+ if (!i && c)
262
+ return c.setFocusManagerState({
263
+ modal: E,
264
+ closeOnFocusOut: M,
265
+ open: v,
266
+ onOpenChange: F.setOpen,
267
+ domReference: a
268
+ }), () => {
269
+ c.setFocusManagerState(null);
270
+ };
271
+ }, [i, c, E, v, F, M, a]), U(() => {
272
+ if (!(i || !r))
273
+ return Oe(r, C), () => {
274
+ queueMicrotask(oe);
275
+ };
276
+ }, [i, r, C]);
277
+ const Ee = !i && (E ? !x : !0) && (Z || E);
278
+ return /* @__PURE__ */ Ze(b.Fragment, {
279
+ children: [Ee && /* @__PURE__ */ xe(Te, {
280
+ "data-type": "inside",
281
+ ref: Ve,
282
+ onFocus: (t) => {
283
+ if (E) {
284
+ const o = G();
285
+ te(o[o.length - 1]);
286
+ } else c?.portalNode && (y.current = !1, Le(t, c.portalNode) ? et(a)?.focus() : D(J ?? c.beforeOutsideRef)?.focus());
287
+ }
288
+ }), h, Ee && /* @__PURE__ */ xe(Te, {
289
+ "data-type": "inside",
290
+ ref: je,
291
+ onFocus: (t) => {
292
+ E ? te(G()[0]) : c?.portalNode && (M && (y.current = !0), Le(t, c.portalNode) ? tt(a)?.focus() : D(z ?? c.afterOutsideRef)?.focus());
293
+ }
294
+ })]
295
+ });
296
+ }
5
297
  export {
6
- t as useIsoLayoutEffect
298
+ Mt as FloatingFocusManager
7
299
  };
package/dist/index127.js CHANGED
@@ -1,30 +1,14 @@
1
- "use client";
2
- import * as a from "react";
3
- import { useRefWithInit as c } from "./index101.js";
4
- const n = a[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0, -3)], r = (
5
- // React 17 doesn't have useInsertionEffect.
6
- n && // Preact replaces useInsertionEffect with useLayoutEffect and fires too late.
7
- n !== a.useLayoutEffect ? n : (e) => e()
8
- );
9
- function f(e) {
10
- const t = c(o).current;
11
- return t.next = e, r(t.effect), t.trampoline;
12
- }
13
- function o() {
14
- const e = {
15
- next: void 0,
16
- callback: l,
17
- trampoline: (...t) => e.callback?.(...t),
18
- effect: () => {
19
- e.callback = e.next;
20
- }
21
- };
1
+ import n from "./index100.js";
2
+ import * as o from "react";
3
+ const t = /* @__PURE__ */ o.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (t.displayName = "MenuPortalContext");
5
+ function s() {
6
+ const e = o.useContext(t);
7
+ if (e === void 0)
8
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Menu.Portal> is missing." : n(32));
22
9
  return e;
23
10
  }
24
- function l() {
25
- if (process.env.NODE_ENV !== "production")
26
- throw new Error("Base UI: Cannot call an event handler while rendering.");
27
- }
28
11
  export {
29
- f as useStableCallback
12
+ t as MenuPortalContext,
13
+ s as useMenuPortalContext
30
14
  };
package/dist/index128.js CHANGED
@@ -1,20 +1,128 @@
1
1
  "use client";
2
- import { useIsoLayoutEffect as n } from "./index126.js";
3
- import { useRefWithInit as r } from "./index101.js";
4
- function s(e) {
5
- const t = r(f, e).current;
6
- return t.next = e, n(t.effect), t;
7
- }
8
- function f(e) {
9
- const t = {
10
- current: e,
11
- next: e,
12
- effect: () => {
13
- t.current = t.next;
2
+ import * as t from "react";
3
+ import * as h from "react-dom";
4
+ import { isNode as M } from "./index94.js";
5
+ import { useId as D } from "./index139.js";
6
+ import { useIsoLayoutEffect as V } from "./index97.js";
7
+ import { FocusGuard as S } from "./index160.js";
8
+ import { createChangeEventDetails as w } from "./index115.js";
9
+ import { createAttribute as G } from "./index238.js";
10
+ import { useRenderElement as _ } from "./index87.js";
11
+ import { ownerVisuallyHidden as j } from "./index133.js";
12
+ import { jsxs as T, jsx as P } from "react/jsx-runtime";
13
+ import { enableFocusInside as I, isOutsideEvent as g, getPreviousTabbable as q, getNextTabbable as A, disableFocusInside as B } from "./index165.js";
14
+ import { EMPTY_OBJECT as H } from "./index106.js";
15
+ import { focusOut as J } from "./index116.js";
16
+ const F = /* @__PURE__ */ t.createContext(null);
17
+ process.env.NODE_ENV !== "production" && (F.displayName = "PortalContext");
18
+ const Y = () => t.useContext(F), k = G("portal");
19
+ function z(N = {}) {
20
+ const {
21
+ ref: f,
22
+ container: s,
23
+ componentProps: b = H,
24
+ elementProps: E,
25
+ elementState: x
26
+ } = N, d = D(), m = Y()?.portalNode, [e, c] = t.useState(null), [p, u] = t.useState(null), n = t.useRef(null);
27
+ V(() => {
28
+ if (s === null) {
29
+ n.current && (n.current = null, u(null), c(null));
30
+ return;
31
+ }
32
+ if (d == null)
33
+ return;
34
+ const a = (s && (M(s) ? s : s.current)) ?? m ?? document.body;
35
+ if (a == null) {
36
+ n.current && (n.current = null, u(null), c(null));
37
+ return;
14
38
  }
39
+ n.current !== a && (n.current = a, u(null), c(a));
40
+ }, [s, m, d]);
41
+ const i = _("div", b, {
42
+ ref: [f, u],
43
+ state: x,
44
+ props: [{
45
+ id: d,
46
+ [k]: ""
47
+ }, E]
48
+ });
49
+ return {
50
+ portalNode: p,
51
+ portalSubtree: e && i ? /* @__PURE__ */ h.createPortal(i, e) : null
15
52
  };
16
- return t;
17
53
  }
54
+ const K = /* @__PURE__ */ t.forwardRef(function(f, s) {
55
+ const {
56
+ children: b,
57
+ container: E,
58
+ className: x,
59
+ render: d,
60
+ renderGuards: R,
61
+ ...m
62
+ } = f, {
63
+ portalNode: e,
64
+ portalSubtree: c
65
+ } = z({
66
+ container: E,
67
+ ref: s,
68
+ componentProps: f,
69
+ elementProps: m
70
+ }), p = t.useRef(null), u = t.useRef(null), n = t.useRef(null), i = t.useRef(null), [o, a] = t.useState(null), C = o?.modal, O = o?.open, v = typeof R == "boolean" ? R : !!o && !o.modal && o.open && !!e;
71
+ t.useEffect(() => {
72
+ if (!e || C)
73
+ return;
74
+ function r(l) {
75
+ e && g(l) && (l.type === "focusin" ? I : B)(e);
76
+ }
77
+ return e.addEventListener("focusin", r, !0), e.addEventListener("focusout", r, !0), () => {
78
+ e.removeEventListener("focusin", r, !0), e.removeEventListener("focusout", r, !0);
79
+ };
80
+ }, [e, C]), t.useEffect(() => {
81
+ !e || O || I(e);
82
+ }, [O, e]);
83
+ const L = t.useMemo(() => ({
84
+ beforeOutsideRef: p,
85
+ afterOutsideRef: u,
86
+ beforeInsideRef: n,
87
+ afterInsideRef: i,
88
+ portalNode: e,
89
+ setFocusManagerState: a
90
+ }), [e]);
91
+ return /* @__PURE__ */ T(t.Fragment, {
92
+ children: [c, /* @__PURE__ */ T(F.Provider, {
93
+ value: L,
94
+ children: [v && e && /* @__PURE__ */ P(S, {
95
+ "data-type": "outside",
96
+ ref: p,
97
+ onFocus: (r) => {
98
+ if (g(r, e))
99
+ n.current?.focus();
100
+ else {
101
+ const l = o ? o.domReference : null;
102
+ q(l)?.focus();
103
+ }
104
+ }
105
+ }), v && e && /* @__PURE__ */ P("span", {
106
+ "aria-owns": e.id,
107
+ style: j
108
+ }), e && /* @__PURE__ */ h.createPortal(b, e), v && e && /* @__PURE__ */ P(S, {
109
+ "data-type": "outside",
110
+ ref: u,
111
+ onFocus: (r) => {
112
+ if (g(r, e))
113
+ i.current?.focus();
114
+ else {
115
+ const l = o ? o.domReference : null;
116
+ A(l)?.focus(), o?.closeOnFocusOut && o?.onOpenChange(!1, w(J, r.nativeEvent));
117
+ }
118
+ }
119
+ })]
120
+ })]
121
+ });
122
+ });
123
+ process.env.NODE_ENV !== "production" && (K.displayName = "FloatingPortal");
18
124
  export {
19
- s as useValueAsRef
125
+ K as FloatingPortal,
126
+ z as useFloatingPortalNode,
127
+ Y as usePortalContext
20
128
  };
package/dist/index129.js CHANGED
@@ -1,24 +1,7 @@
1
- import o from "./index94.js";
2
- import * as e from "react";
3
- const n = /* @__PURE__ */ e.createContext(null);
4
- process.env.NODE_ENV !== "production" && (n.displayName = "SelectRootContext");
5
- const c = /* @__PURE__ */ e.createContext(null);
6
- process.env.NODE_ENV !== "production" && (c.displayName = "SelectFloatingContext");
7
- function s() {
8
- const t = e.useContext(n);
9
- if (t === null)
10
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: SelectRootContext is missing. Select parts must be placed within <Select.Root>." : o(60));
11
- return t;
12
- }
13
- function i() {
14
- const t = e.useContext(c);
15
- if (t === null)
16
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: SelectFloatingContext is missing. Select parts must be placed within <Select.Root>." : o(61));
17
- return t;
1
+ import { isReactVersionAtLeast as r } from "./index200.js";
2
+ function n(e) {
3
+ return r(19) ? e : e ? "true" : void 0;
18
4
  }
19
5
  export {
20
- c as SelectFloatingContext,
21
- n as SelectRootContext,
22
- i as useSelectFloatingContext,
23
- s as useSelectRootContext
6
+ n as inertValue
24
7
  };